diff --git a/.github/actions/setup_project/action.yml b/.github/actions/setup_project/action.yml index dc7de948..afd2ddb2 100644 --- a/.github/actions/setup_project/action.yml +++ b/.github/actions/setup_project/action.yml @@ -6,13 +6,13 @@ runs: - name: Install apt packages uses: awalsh128/cache-apt-pkgs-action@latest with: - packages: gettext libgraphviz-dev + packages: gettext version: 1.0 # increment to reset cache - name: Install dependencies run: | sudo apt update - sudo apt install gettext libgraphviz-dev + sudo apt install gettext shell: bash - name: Set up python diff --git a/core/api.py b/core/api.py index 2f203680..fd8a06fc 100644 --- a/core/api.py +++ b/core/api.py @@ -1,10 +1,19 @@ +from typing import Annotated + +import annotated_types from django.conf import settings from django.http import HttpResponse from ninja_extra import ControllerBase, api_controller, route from ninja_extra.exceptions import PermissionDenied from club.models import Mailing -from core.schemas import MarkdownSchema +from core.api_permissions import CanView +from core.models import User +from core.schemas import ( + FamilyGodfatherSchema, + MarkdownSchema, + UserFamilySchema, +) from core.templatetags.renderer import markdown @@ -27,3 +36,45 @@ class MailingListController(ControllerBase): ).prefetch_related("subscriptions") data = "\n".join(m.fetch_format() for m in mailings) return data + + +DepthValue = Annotated[int, annotated_types.Ge(0), annotated_types.Le(10)] +DEFAULT_DEPTH = 4 + + +@api_controller("/family") +class FamilyController(ControllerBase): + @route.get( + "/{user_id}", + permissions=[CanView], + response=UserFamilySchema, + url_name="family_graph", + ) + def get_family_graph( + self, + user_id: int, + godfathers_depth: DepthValue = DEFAULT_DEPTH, + godchildren_depth: DepthValue = DEFAULT_DEPTH, + ): + user: User = self.get_object_or_exception(User, pk=user_id) + + relations = user.get_family(godfathers_depth, godchildren_depth) + if not relations: + # If the user has no relations, return only the user + # He is alone in its family, but the family exists nonetheless + return {"users": [user], "relationships": []} + + user_ids = {r.from_user_id for r in relations} | { + r.to_user_id for r in relations + } + return { + "users": User.objects.filter(id__in=user_ids).distinct(), + "relationships": ( + [ + FamilyGodfatherSchema( + godchild=r.from_user_id, godfather=r.to_user_id + ) + for r in relations + ] + ), + } diff --git a/core/api_permissions.py b/core/api_permissions.py index f23fc970..c61e49f9 100644 --- a/core/api_permissions.py +++ b/core/api_permissions.py @@ -78,7 +78,7 @@ class CanView(BasePermission): """Check that this user has the permission to view the object of this route. Wrap the `user.can_view(obj)` method. - To see an example, look at the exemple in the module docstring. + To see an example, look at the example in the module docstring. """ def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool: @@ -94,7 +94,7 @@ class CanEdit(BasePermission): """Check that this user has the permission to edit the object of this route. Wrap the `user.can_edit(obj)` method. - To see an example, look at the exemple in the module docstring. + To see an example, look at the example in the module docstring. """ def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool: @@ -110,7 +110,7 @@ class IsOwner(BasePermission): """Check that this user owns the object of this route. Wrap the `user.is_owner(obj)` method. - To see an example, look at the exemple in the module docstring. + To see an example, look at the example in the module docstring. """ def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool: diff --git a/core/models.py b/core/models.py index 171221f5..0100c900 100644 --- a/core/models.py +++ b/core/models.py @@ -57,6 +57,7 @@ from django.utils.functional import cached_property from django.utils.html import escape from django.utils.translation import gettext_lazy as _ from phonenumber_field.modelfields import PhoneNumberField +from pydantic.v1 import NonNegativeInt if TYPE_CHECKING: from club.models import Club @@ -606,6 +607,41 @@ class User(AbstractBaseUser): today.year - born.year - ((today.month, today.day) < (born.month, born.day)) ) + def get_family( + self, + godfathers_depth: NonNegativeInt = 4, + godchildren_depth: NonNegativeInt = 4, + ) -> set[User.godfathers.through]: + """Get the family of the user, with the given depth. + + Args: + godfathers_depth: The number of generations of godfathers to fetch + godchildren_depth: The number of generations of godchildren to fetch + + Returns: + A list of family relationships in this user's family + """ + res = [] + for depth, key, reverse_key in [ + (godfathers_depth, "from_user_id", "to_user_id"), + (godchildren_depth, "to_user_id", "from_user_id"), + ]: + if depth == 0: + continue + links = list(User.godfathers.through.objects.filter(**{key: self.id})) + res.extend(links) + for _ in range(1, depth): + ids = [getattr(c, reverse_key) for c in links] + links = list( + User.godfathers.through.objects.filter( + **{f"{key}__in": ids} + ).exclude(id__in=[r.id for r in res]) + ) + if not links: + break + res.extend(links) + return set(res) + def email_user(self, subject, message, from_email=None, **kwargs): """Sends an email to this User.""" if from_email is None: diff --git a/core/schemas.py b/core/schemas.py index 6ee967d8..2fdafd3d 100644 --- a/core/schemas.py +++ b/core/schemas.py @@ -1,3 +1,4 @@ +from django.contrib.staticfiles.storage import staticfiles_storage from ninja import ModelSchema, Schema from core.models import User @@ -13,3 +14,41 @@ class SimpleUserSchema(ModelSchema): class MarkdownSchema(Schema): text: str + + +class UserProfileSchema(ModelSchema): + """The necessary information to show a user profile""" + + class Meta: + model = User + fields = ["id", "nick_name", "first_name", "last_name"] + + display_name: str + profile_url: str + profile_pict: str + + @staticmethod + def resolve_display_name(obj: User) -> str: + return obj.get_display_name() + + @staticmethod + def resolve_profile_url(obj: User) -> str: + return obj.get_absolute_url() + + @staticmethod + def resolve_profile_pict(obj: User) -> str: + if obj.profile_pict_id is None: + return staticfiles_storage.url("core/img/unknown.jpg") + return obj.profile_pict.get_download_url() + + +class FamilyGodfatherSchema(Schema): + godfather: int + godchild: int + + +class UserFamilySchema(Schema): + """Represent a graph of a user's family""" + + users: list[UserProfileSchema] + relationships: list[FamilyGodfatherSchema] diff --git a/core/static/core/js/script.js b/core/static/core/js/script.js index c55cf51f..70455c17 100644 --- a/core/static/core/js/script.js +++ b/core/static/core/js/script.js @@ -89,7 +89,7 @@ function update_query_string(key, value, action = History.REPLACE, url = null) { if (!url){ url = new URL(window.location.href); } - if (!value) { + if (value === undefined || value === null || value === "") { // If the value is null, undefined or empty => delete it url.searchParams.delete(key) } else if (Array.isArray(value)) { diff --git a/core/static/core/style.scss b/core/static/core/style.scss index d1e193dd..9c8b55e1 100644 --- a/core/static/core/style.scss +++ b/core/static/core/style.scss @@ -239,6 +239,7 @@ a:not(.button) { padding: 9px 13px; border: none; text-decoration: none; + border-radius: 5px; &.btn-blue { background-color: $deepblue; diff --git a/core/static/user/js/family_graph.js b/core/static/user/js/family_graph.js new file mode 100644 index 00000000..c3d81126 --- /dev/null +++ b/core/static/user/js/family_graph.js @@ -0,0 +1,267 @@ +async function get_graph_data(url, godfathers_depth, godchildren_depth) { + let data = await ( + await fetch( + `${url}?godfathers_depth=${godfathers_depth}&godchildren_depth=${godchildren_depth}`, + ) + ).json(); + return [ + ...data.users.map((user) => { + return { data: user }; + }), + ...data.relationships.map((rel) => { + return { + data: { source: rel.godfather, target: rel.godchild }, + }; + }), + ]; +} + +function create_graph(container, data, active_user_id) { + let cy = cytoscape({ + boxSelectionEnabled: false, + autounselectify: true, + + container: container, + elements: data, + minZoom: 0.5, + + style: [ + // the stylesheet for the graph + { + selector: "node", + style: { + label: "data(display_name)", + "background-image": "data(profile_pict)", + width: "100%", + height: "100%", + "background-fit": "cover", + "background-repeat": "no-repeat", + shape: "ellipse", + }, + }, + + { + selector: "edge", + style: { + width: 5, + "line-color": "#ccc", + "target-arrow-color": "#ccc", + "target-arrow-shape": "triangle", + "curve-style": "bezier", + }, + }, + + { + selector: ".traversed", + style: { + "border-width": "5px", + "border-style": "solid", + "border-color": "red", + "target-arrow-color": "red", + "line-color": "red", + }, + }, + + { + selector: ".not-traversed", + style: { + "line-opacity": "0.5", + "background-opacity": "0.5", + "background-image-opacity": "0.5", + }, + }, + ], + layout: { + name: "klay", + nodeDimensionsIncludeLabels: true, + fit: true, + klay: { + addUnnecessaryBendpoints: true, + direction: 'DOWN', + nodePlacement: 'INTERACTIVE', + layoutHierarchy: true + } + } + }); + let active_user = cy + .getElementById(active_user_id) + .style("shape", "rectangle"); + /* Reset graph */ + let reset_graph = () => { + cy.elements((element) => { + if (element.hasClass("traversed")) { + element.removeClass("traversed"); + } + if (element.hasClass("not-traversed")) { + element.removeClass("not-traversed"); + } + }); + }; + + let on_node_tap = (el) => { + reset_graph(); + /* Create path on graph if selected isn't the targeted user */ + if (el === active_user) { + return; + } + cy.elements((element) => { + element.addClass("not-traversed"); + }); + + cy.elements() + .aStar({ + root: el, + goal: active_user, + }) + .path.forEach((el) => { + el.removeClass("not-traversed"); + el.addClass("traversed"); + }); + }; + + cy.on("tap", "node", (tapped) => { + on_node_tap(tapped.target); + }); + cy.zoomingEnabled(false); + + /* Add context menu */ + if (cy.cxtmenu === undefined) { + console.error( + "ctxmenu isn't loaded, context menu won't be available on graphs", + ); + return cy; + } + cy.cxtmenu({ + selector: "node", + + commands: [ + { + content: '', + select: function (el) { + window.open(el.data().profile_url, "_blank").focus(); + }, + }, + + { + content: '', + select: function (el) { + on_node_tap(el); + }, + }, + + { + content: '', + select: function (el) { + reset_graph(); + }, + }, + ], + }); + + return cy; +} + +document.addEventListener("alpine:init", () => { + /* + This needs some constants to be set before the document has been loaded + + api_url: base url for fetching the tree as a string + active_user: id of the user to fetch the tree from + depth_min: minimum tree depth for godfathers and godchildren as an int + depth_max: maximum tree depth for godfathers and godchildren as an int + */ + const default_depth = 2; + + if ( + typeof api_url === "undefined" || + typeof active_user === "undefined" || + typeof depth_min === "undefined" || + typeof depth_max === "undefined" + ) { + console.error("Some constants are not set before using the family_graph script, please look at the documentation"); + return; + } + + function get_initial_depth(prop) { + let value = parseInt(initialUrlParams.get(prop)); + if (isNaN(value) || value < depth_min || value > depth_max) { + return default_depth; + } + return value; + } + + Alpine.data("graph", () => ({ + loading: false, + godfathers_depth: get_initial_depth("godfathers_depth"), + godchildren_depth: get_initial_depth("godchildren_depth"), + reverse: initialUrlParams.get("reverse")?.toLowerCase?.() === 'true', + graph: undefined, + graph_data: {}, + + async init() { + let delayed_fetch = Alpine.debounce(async () => { + this.fetch_graph_data(); + }, 100); + ["godfathers_depth", "godchildren_depth"].forEach((param) => { + this.$watch(param, async (value) => { + if (value < depth_min || value > depth_max) { + return; + } + update_query_string(param, value, History.REPLACE); + delayed_fetch(); + }); + }); + this.$watch("reverse", async (value) => { + update_query_string("reverse", value, History.REPLACE); + this.reverse_graph(); + }); + this.$watch("graph_data", async () => { + await this.generate_graph(); + if (this.reverse) { + await this.reverse_graph(); + } + }); + this.fetch_graph_data(); + }, + + async screenshot() { + const link = document.createElement("a"); + link.href = this.graph.jpg(); + link.download = gettext("family_tree.%(extension)s", "jpg"); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }, + + async reset() { + this.reverse = false; + this.godfathers_depth = default_depth; + this.godchildren_depth = default_depth; + }, + + async reverse_graph() { + this.graph.elements((el) => { + el.position(new Object({ x: -el.position().x, y: -el.position().y })); + }); + this.graph.center(this.graph.elements()); + }, + + async fetch_graph_data() { + this.graph_data = await get_graph_data( + api_url, + this.godfathers_depth, + this.godchildren_depth, + ); + }, + + async generate_graph() { + this.loading = true; + this.graph = create_graph( + $(this.$refs.graph), + this.graph_data, + active_user, + ); + this.loading = false; + }, + })); +}); diff --git a/core/static/user/user_godfathers.scss b/core/static/user/user_godfathers.scss index 9f922c07..9764ee3e 100644 --- a/core/static/user/user_godfathers.scss +++ b/core/static/user/user_godfathers.scss @@ -1,3 +1,85 @@ +.graph { + width: 100%; + height: 70vh; + display: block; +} + +.graph-toolbar { + margin-top: 10px; + margin-bottom: 10px; + display: flex; + flex-direction: row; + justify-content: space-around; + gap: 30px; + + .toolbar-column{ + display: flex; + flex-direction: column; + gap: 20px; + min-width: 30%; + } + + .toolbar-input { + display: flex; + flex-direction: row; + gap: 20px; + align-items: center; + width: 100%; + + label { + max-width: 70%; + text-align: left; + margin-bottom: 0; + } + + .depth-choice { + white-space: nowrap; + input[type="number"] { + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; + &::-webkit-inner-spin-button, + &::-webkit-outer-spin-button { + -webkit-appearance: none; + } + } + button { + background: none; + & > .fa { + border-radius: 50%; + font-size: 12px; + padding: 5px; + } + &:enabled > .fa { + background-color: #354a5f; + color: white; + } + &:enabled:hover > .fa { + color: white; + background-color: #35405f; // just a bit darker + } + &:disabled > .fa { + background-color: gray; + color: white; + } + } + } + + input { + align-self: center; + max-width: 40px; + } + } + + @media screen and (max-width: 500px) { + flex-direction: column; + gap: 20px; + .toolbar-column { + min-width: 100%; + } + } +} + .container { display: flex; flex-direction: column; @@ -9,6 +91,14 @@ margin: 0; } } +#family-tree-link { + display: inline-block; + margin-top: 10px; + text-align: center; + @media (min-width: 450px) { + margin-right: auto; + } +} .users { display: flex; @@ -90,7 +180,7 @@ } } - &:last-of-type { + &.delete { margin-top: 10px; display: block; text-align: center; @@ -98,7 +188,7 @@ @media (max-width: 375px) { position: absolute; - bottom: 0%; + bottom: 0; right: 0; } } diff --git a/core/static/vendored/cytoscape/cytoscape-cxtmenu.min.js b/core/static/vendored/cytoscape/cytoscape-cxtmenu.min.js new file mode 100644 index 00000000..0fd2b0e7 --- /dev/null +++ b/core/static/vendored/cytoscape/cytoscape-cxtmenu.min.js @@ -0,0 +1,7 @@ +/** + * Minified by jsDelivr using Terser v5.15.1. + * Original file: /npm/cytoscape-cxtmenu@3.5.0/cytoscape-cxtmenu.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.cytoscapeCxtmenu=e():t.cytoscapeCxtmenu=e()}(this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=4)}([function(t,e,i){"use strict";var n=i(2),o=i(1),a=i(3),d=a.removeEles,r=a.setStyles,l=a.createElement,s=a.getPixelRatio,c=a.getOffset;t.exports=function(t){var e=o({},n,t),i=this,a=i.container(),u=void 0,p={options:e,handlers:[],container:l({class:"cxtmenu"})},h=p.container,g=l(),f=l({tag:"canvas"}),m=[],v=f.getContext("2d"),x=100,P=2*(x+e.activePadding),b=void 0,y=void 0;function S(t,e){E.drawBg=[t,e]}function M(t,i){v.globalCompositeOperation="source-over",v.clearRect(0,0,P,P),v.fillStyle=e.fillColor;for(var n=2*Math.PI/m.length,o=Math.PI/2,a=o+n,d=0;da+e.spotlightPadding?a+e.spotlightPadding:e.indicatorSize;v.beginPath(),v.fillRect(-p/2,-p/2,p,p),v.closePath(),v.fill(),v.rotate(-u),v.translate(-s,-c),v.beginPath(),v.arc(n+e.activePadding,n+e.activePadding,a+e.spotlightPadding,0,2*Math.PI,!0),v.closePath(),v.fill(),v.globalCompositeOperation="source-over"}function C(){var t=s(),e=P,i=P;f.width=e*t,f.height=i*t,f.style.width=e+"px",f.style.height=i+"px",v.setTransform(1,0,0,1,0,0),v.scale(t,t)}a.insertBefore(h,a.firstChild),h.appendChild(g),g.appendChild(f),r(h,{position:"absolute",zIndex:e.zIndex,userSelect:"none",pointerEvents:"none"}),["mousedown","mousemove","mouseup","contextmenu"].forEach((function(t){h.addEventListener(t,(function(t){return t.preventDefault(),!1}))})),r(g,{display:"none",width:P+"px",height:P+"px",position:"absolute",zIndex:1,marginLeft:-e.activePadding+"px",marginTop:-e.activePadding+"px",userSelect:"none"}),f.width=P,f.height=P;var R=!0,E={},I=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return setTimeout(t,16)};C(),function t(){E.drawBg&&M.apply(null,E.drawBg),E.drawCommands&&w.apply(null,E.drawCommands),E={},R&&I(t)}();var O,T,F,z,N,j,k,L,A,q=void 0,W=void 0,B=void 0,H={on:function(t,e,n){var o=n;return"core"===e&&(o=function(t){if(t.cyTarget===i||t.target===i)return n.apply(this,[t])}),p.handlers.push({events:t,selector:e,fn:o}),"core"===e?i.on(t,o):i.on(t,e,o),this}};function X(){R=!1,function(){for(var t=p.handlers,e=0;e0,o=(n?i.touches[0].pageX:i.pageX)-window.pageXOffset,a=(n?i.touches[0].pageY:i.pageY)-window.pageYOffset;b=void 0;var d=o-y.left-q,r=a-y.top-W;0===d&&(d=.01);var l=Math.sqrt(d*d+r*r),s=(r*r-l*l-d*d)/(-2*l*d),c=Math.acos(s),p=void 0;if(u&&u.isNode instanceof Function&&u.isNode()&&!u.isParent()&&!e.atMouse?(p=u.renderedOuterWidth(),B=p/2,B=!e.adaptativeNodeSpotlightRadius&&e.minSpotlightRadius?Math.max(B,e.minSpotlightRadius):B,B=!e.adaptativeNodeSpotlightRadius&&e.maxSpotlightRadius?Math.min(B,e.maxSpotlightRadius):B):(B=(p=1)/2,B=e.minSpotlightRadius?Math.max(B,e.minSpotlightRadius):B,B=e.maxSpotlightRadius?Math.min(B,e.maxSpotlightRadius):B),x=p/2+(e.menuRadius instanceof Function?e.menuRadius(u):Number(e.menuRadius)),lx+e.activePadding+e.outsideMenuCancel)S(x,B);else{S(x,B);var h=d*x/l,g=r*x/l;r>0&&(c=Math.PI+Math.abs(c-Math.PI));for(var f=2*Math.PI/m.length,v=Math.PI/2,P=v+f,M=0;M1?e-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:document,i=e.querySelectorAll(t),n=0;n1?r-1:0),t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw a}}}}var u="undefined"==typeof window?null:window,c=u?u.navigator:null;u&&u.document;var d=e(""),h=e({}),p=e((function(){})),f="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),g=function(e){return e&&e.instanceString&&y(e.instanceString)?e.instanceString():null},v=function(t){return null!=t&&e(t)==d},y=function(t){return null!=t&&e(t)===p},m=function(e){return!E(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},b=function(t){return null!=t&&e(t)===h&&!m(t)&&t.constructor===Object},x=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},w=function(e){return"undefined"===f?void 0:null!=e&&e instanceof HTMLElement},E=function(e){return k(e)||C(e)},k=function(e){return"collection"===g(e)&&e._private.single},C=function(e){return"collection"===g(e)&&!e._private.single},S=function(e){return"core"===g(e)},P=function(e){return"stylesheet"===g(e)},D=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},T=function(t){return function(t){return null!=t&&e(t)===h}(t)&&y(t.then)},_=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var e=[],t=0;tt?1:0},L=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t}(e)||function(e){var t,n,r,i,a,o,s,l;function u(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var c=new RegExp("^hsl[a]?\\(((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?)))\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])(?:\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)$").exec(e);if(c){if((n=parseInt(c[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(c[2]))<0||r>100)return;if(r/=100,(i=parseFloat(c[3]))<0||i>100)return;if(i/=100,void 0!==(a=c[4])&&((a=parseFloat(a))<0||a>1))return;if(0===r)o=s=l=Math.round(255*i);else{var d=i<.5?i*(1+r):i+r-i*r,h=2*i-d;o=Math.round(255*u(h,d,n+1/3)),s=Math.round(255*u(h,d,n)),l=Math.round(255*u(h,d,n-1/3))}t=[o,s,l,a]}return t}(e)},R={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},V=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i=t||n<0||d&&e-u>=a}function v(){var e=H();if(g(e))return y(e);s=setTimeout(v,function(e){var n=t-(e-l);return d?ge(n,a-(e-u)):n}(e))}function y(e){return s=void 0,h&&r?p(e):(r=i=void 0,o)}function m(){var e=H(),n=g(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return f(l);if(d)return clearTimeout(s),s=setTimeout(v,t),p(l)}return void 0===s&&(s=setTimeout(v,t)),o}return t=pe(t)||0,j(n)&&(c=!!n.leading,a=(d="maxWait"in n)?fe(pe(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0},m.flush=function(){return void 0===s?o:y(H())},m},ye=u?u.performance:null,me=ye&&ye.now?function(){return ye.now()}:function(){return Date.now()},be=function(){if(u){if(u.requestAnimationFrame)return function(e){u.requestAnimationFrame(e)};if(u.mozRequestAnimationFrame)return function(e){u.mozRequestAnimationFrame(e)};if(u.webkitRequestAnimationFrame)return function(e){u.webkitRequestAnimationFrame(e)};if(u.msRequestAnimationFrame)return function(e){u.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(me())}),1e3/60)}}(),xe=function(e){return be(e)},we=me,Ee=65599,ke=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;)r=r*Ee+t.value|0;return r},Ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return t*Ee+e|0},Se=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},Pe=function(e){return 2097152*e[0]+e[1]},De=function(e,t){return[Ce(e[0],t[0]),Se(e[1],t[1])]},Te=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return ke({next:function(){return r=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},Ge=function(e){e.splice(0,e.length)},Ue=function(e,t,n){return n&&(t=N(n,t)),e[t]},Ze=function(e,t,n,r){n&&(t=N(n,t)),e[t]=r},$e="undefined"!=typeof Map?Map:function(){function e(){t(this,e),this._obj={}}return r(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),Qe=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var i=0;i2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&S(e)){var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===r||"edges"===r){this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new Je,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];m(t.classes)?l=t.classes:v(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;ut?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw new Error("lo must be non-negative");for(null==a&&(a=e.length);in;0<=n?t++:t--)u.push(t);return u}.apply(this).reverse()).length;ag;0<=g?++h:--h)v.push(a(e,r));return v},f=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t&&i(a,o=e[s=r-1>>1])<0;)e[r]=o,r=s;return e[r]=a},g=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i0;){var k=m.pop(),C=g(k),S=k.id();if(d[S]=C,C!==1/0)for(var P=k.neighborhood().intersect(p),D=0;D0)for(n.unshift(t);c[i];){var a=c[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},ot={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=new Array(i),o=n,s=function(e){for(var t=0;t0;){if(l=g.pop(),u=l.id(),v.delete(u),w++,u===d){for(var E=[],k=i,C=d,S=m[C];E.unshift(k),null!=S&&E.unshift(S),null!=(k=y[C]);)S=m[C=k.id()];return{found:!0,distance:h[u],path:this.spawn(E),steps:w}}f[u]=!0;for(var P=l._private.edges,D=0;DD&&(p[P]=D,m[P]=S,b[P]=w),!i){var T=S*u+C;!i&&p[T]>D&&(p[T]=D,m[T]=C,b[T]=w)}}}for(var _=0;_1&&void 0!==arguments[1]?arguments[1]:a,r=b(e),i=[],o=r;;){if(null==o)return t.spawn();var l=m(o),u=l.edge,c=l.pred;if(i.unshift(o[0]),o.same(n)&&i.length>0)break;null!=u&&i.unshift(u),o=c}return s.spawn(i)},hasNegativeWeightCycle:f,negativeWeightCycles:g}}},pt=Math.sqrt(2),ft=function(e,t,n){0===n.length&&Ve("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n,u=l.length-1;u>=0;u--){var c=l[u],d=c[1],h=c[2];(t[d]===o&&t[h]===s||t[d]===s&&t[h]===o)&&l.splice(u,1)}for(var p=0;pr;){var i=Math.floor(Math.random()*t.length);t=ft(i,e,t),n--}return t},vt={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy((function(e){return e.isLoop()}));var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/pt);if(!(i<2)){for(var l=[],u=0;u0?1:e<0?-1:0},kt=function(e,t){return Math.sqrt(Ct(e,t))},Ct=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},St=function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Mt=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},Bt=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},Nt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},zt=function(e){var t,n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===o.length)t=n=r=i=o[0];else if(2===o.length)t=r=o[0],i=n=o[1];else if(4===o.length){var s=a(o,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},It=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},At=function(e,t){return!(e.x1>t.x2)&&(!(t.x1>e.x2)&&(!(e.x2t.y2)&&!(t.y1>e.y2)))))))},Lt=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},Ot=function(e,t){return Lt(e,t.x1,t.y1)&&Lt(e,t.x2,t.y2)},Rt=function(e,t,n,r,i,a,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?nn(i,a):u,d=i/2,h=a/2,p=(c=Math.min(c,d,h))!==d,f=c!==h;if(p){var g=n-d+c-o,v=r-h-o,y=n+d-c+o,m=v;if((s=Zt(e,t,n,r,g,v,y,m,!1)).length>0)return s}if(f){var b=n+d+o,x=r-h+c-o,w=b,E=r+h-c+o;if((s=Zt(e,t,n,r,b,x,w,E,!1)).length>0)return s}if(p){var k=n-d+c-o,C=r+h+o,S=n+d-c+o,P=C;if((s=Zt(e,t,n,r,k,C,S,P,!1)).length>0)return s}if(f){var D=n-d-o,T=r-h+c-o,_=D,M=r+h-c+o;if((s=Zt(e,t,n,r,D,T,_,M,!1)).length>0)return s}var B=n-d+c,N=r-h+c;if((l=Gt(e,t,n,r,B,N,c+o)).length>0&&l[0]<=B&&l[1]<=N)return[l[0],l[1]];var z=n+d-c,I=r-h+c;if((l=Gt(e,t,n,r,z,I,c+o)).length>0&&l[0]>=z&&l[1]<=I)return[l[0],l[1]];var A=n+d-c,L=r+h-c;if((l=Gt(e,t,n,r,A,L,c+o)).length>0&&l[0]>=A&&l[1]>=L)return[l[0],l[1]];var O=n-d+c,R=r+h-c;return(l=Gt(e,t,n,r,O,R,c+o)).length>0&&l[0]<=O&&l[1]>=R?[l[0],l[1]]:[]},Vt=function(e,t,n,r,i,a,o){var s=o,l=Math.min(n,i),u=Math.max(n,i),c=Math.min(r,a),d=Math.max(r,a);return l-s<=e&&e<=u+s&&c-s<=t&&t<=d+s},Ft=function(e,t,n,r,i,a,o,s,l){var u=Math.min(n,o,i)-l,c=Math.max(n,o,i)+l,d=Math.min(r,s,a)-l,h=Math.max(r,s,a)+l;return!(ec||th)},jt=function(e,t,n,r,i,a,o,s){var l=[];!function(e,t,n,r,i){var a,o,s,l,u,c,d,h;0===e&&(e=1e-5),s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),a=(o=(3*n-t*t)/9)*o*o+(s/=54)*s,i[1]=0,d=t/3,a>0?(u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-d+u+c,d+=(u+c)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-c+u)/2,i[3]=d,i[5]=-d):(i[5]=i[3]=0,0===a?(h=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*h-d,i[4]=i[2]=-(h+d)):(l=(o=-o)*o*o,l=Math.acos(s/Math.sqrt(l)),h=2*Math.sqrt(o),i[0]=-d+h*Math.cos(l/3),i[2]=-d+h*Math.cos((l+2*Math.PI)/3),i[4]=-d+h*Math.cos((l+4*Math.PI)/3)))}(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,l);for(var u=[],c=0;c<6;c+=2)Math.abs(l[c+1])<1e-7&&l[c]>=0&&l[c]<=1&&u.push(l[c]);u.push(1),u.push(0);for(var d,h,p,f=-1,g=0;g=0?pl?(e-i)*(e-i)+(t-a)*(t-a):u-d},Yt=function(e,t,n){for(var r,i,a,o,s=0,l=0;l=e&&e>=a||r<=e&&e<=a))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},Xt=function(e,t,n,r,i,a,o,s,l){var u,c=new Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var d,h=Math.cos(-u),p=Math.sin(-u),f=0;f0){var g=Ht(c,-l);d=Wt(g)}else d=c;return Yt(e,t,d)},Wt=function(e){for(var t,n,r,i,a,o,s,l,u=new Array(e.length/2),c=0;c=0&&f<=1&&v.push(f),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,m=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,m]:[y,m,v[1]*s[0]+e,v[1]*s[1]+t]:[y,m]},Ut=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},Zt=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,d=o-i,h=t-a,p=r-t,f=s-a,g=d*h-f*u,v=c*h-p*u,y=f*c-d*p;if(0!==y){var m=g/y,b=v/y;return-.001<=m&&m<=1.001&&-.001<=b&&b<=1.001||l?[e+m*c,t+m*p]:[]}return 0===g||0===v?Ut(e,n,o)===o?[o,s]:Ut(e,n,i)===i?[i,a]:Ut(i,o,n)===n?[n,r]:[]:[]},$t=function(e,t,n,r,i,a,o,s){var l,u,c,d,h,p,f=[],g=new Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y0){var m=Ht(g,-s);u=Wt(m)}else u=g}else u=n;for(var b=0;bu&&(u=t)},d=function(e){return l[e]},h=0;h0?b.edgesTo(m)[0]:m.edgesTo(b)[0];var w=r(x);m=m.id(),h[m]>h[v]+w&&(h[m]=h[v]+w,p.nodes.indexOf(m)<0?p.push(m):p.updateItem(m),u[m]=0,l[m]=[]),h[m]==h[v]+w&&(u[m]=u[m]+u[v],l[m].push(v))}else for(var E=0;E0;){for(var P=n.pop(),D=0;D0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i}(c,l,t,r);return b=function(e){for(var t=0;t5&&void 0!==arguments[5]?arguments[5]:Cn,o=r,s=0;s=2?Mn(e,t,n,0,Dn,Tn):Mn(e,t,n,0,Pn)},squaredEuclidean:function(e,t,n){return Mn(e,t,n,0,Dn)},manhattan:function(e,t,n){return Mn(e,t,n,0,Pn)},max:function(e,t,n){return Mn(e,t,n,-1/0,_n)}};function Nn(e,t,n,r,i,a){var o;return o=y(e)?e:Bn[e]||Bn.euclidean,0===t&&y(e)?o(i,a):o(t,n,r,i,a)}Bn["squared-euclidean"]=Bn.squaredEuclidean,Bn.squaredeuclidean=Bn.squaredEuclidean;var zn=He({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),In=function(e){return zn(e)},An=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)},o=n,s=t;return Nn(e,r.length,a,(function(e){return r[e](t)}),o,s)},Ln=function(e,t,n){for(var r=n.length,i=new Array(r),a=new Array(r),o=new Array(t),s=null,l=0;ln)return!1}return!0},jn=function(e,t,n){for(var r=0;ri&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var p,f=t[o],g=t[r[o]];p="dendrogram"===i.mode?{left:f,right:g,key:f.key}:{value:f.value.concat(g.value),key:f.key},e[f.index]=p,e.splice(g.index,1),t[f.key]=p;for(var v=0;vn[g.key][y.key]&&(a=n[g.key][y.key])):"max"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];r?e=e.slice(t,n):(n0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?isFinite(l)||(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort((function(e,t){return e-t}));var u=e.length,c=Math.floor(u/2);return u%2!=0?e[c+1+o]:(e[c-1+o]+e[c+o])/2}(e):"mean"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;io&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u=D?(T=D,D=M,_=B):M>T&&(T=M);for(var N=0;N0?1:0;C[k%u.minIterations*t+R]=V,O+=V}if(O>0&&(k>=u.minIterations-1||k==u.maxIterations-1)){for(var F=0,j=0;j0&&r.push(i);return r}(t,a,o),X=function(e,t,n){for(var r=rr(e,t,n),i=0;il&&(s=u,l=c)}n[i]=a[s]}return r=rr(e,t,n)}(t,r,Y),W={},H=0;H1)}}));var l=Object.keys(t).filter((function(e){return t[e].cutVertex})).map((function(t){return e.getElementById(t)}));return{cut:e.spawn(l),components:i}},lr=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e);return e.forEach((function(o){if(o.isNode()){var s=o.id();s in t||function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach((function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))})),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),d=l.merge(c);r.push(d),a=a.difference(d)}}(s)}})),{cut:a,components:r}},ur={};[nt,at,ot,lt,ct,ht,vt,sn,un,dn,pn,kn,Kn,Jn,ar,{hierholzer:function(e){if(!b(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=or(e),o=a.root,s=a.directed,l=this,u=!1;o&&(i=v(o)?this.filter(o)[0].id():o[0].id());var c={},d={};s?l.forEach((function(e){var t=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?n?u=!0:n=t:1==s?r?u=!0:r=t:(s>1||o>1)&&(u=!0),c[t]=[],e.outgoers().forEach((function(e){e.isEdge()&&c[t].push(e.id())}))}else d[t]=[void 0,e.target().id()]})):l.forEach((function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(n?r?u=!0:r=t:n=t),c[t]=[],e.connectedEdges().forEach((function(e){return c[t].push(e.id())}))):d[t]=[e.source().id(),e.target().id()]}));var h={found:!1,trail:void 0};if(u)return h;if(r&&n)if(s){if(i&&r!=i)return h;i=r}else{if(i&&r!=i&&n!=i)return h;i||(i=r)}else i||(i=l[0].id());var p=function(e){for(var t,n,r,i=e,a=[e];c[i].length;)t=c[i].shift(),n=d[t][0],i!=(r=d[t][1])?(c[r]=c[r].filter((function(e){return e!=t})),i=r):s||i==n||(c[n]=c[n].filter((function(e){return e!=t})),i=n),a.unshift(t),a.unshift(i);return a},f=[],g=[];for(g=p(i);1!=g.length;)0==c[g[0]].length?(f.unshift(l.getElementById(g.shift())),f.unshift(l.getElementById(g.shift()))):g=p(g.shift()).concat(g);for(var y in f.unshift(l.getElementById(g.shift())),c)if(c[y].length)return h;return h.found=!0,h.trail=this.spawn(f,!0),h}},{hopcroftTarjanBiconnected:sr,htbc:sr,htb:sr,hopcroftTarjanBiconnectedComponents:sr},{tarjanStronglyConnected:lr,tsc:lr,tscc:lr,tarjanStronglyConnectedComponents:lr}].forEach((function(e){L(ur,e)})); +/*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ +var cr=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};cr.prototype={fulfill:function(e){return dr(this,1,"fulfillValue",e)},reject:function(e){return dr(this,2,"rejectReason",e)},then:function(e,t){var n=new cr;return this.onFulfilled.push(fr(e,n,"fulfill")),this.onRejected.push(fr(t,n,"reject")),hr(this),n.proxy}};var dr=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,hr(e)),e},hr=function(e){1===e.state?pr(e,"onFulfilled",e.fulfillValue):2===e.state&&pr(e,"onRejected",e.rejectReason)},pr=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e0:void 0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t-1};var ri=function(e,t){var n=this.__data__,r=Qr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ii(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){m(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};qi.className=qi.classNames=qi.classes;var Yi={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:I,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Yi.variable="(?:[\\w-.]|(?:\\\\"+Yi.metaChar+"))+",Yi.className="(?:[\\w-]|(?:\\\\"+Yi.metaChar+"))+",Yi.value=Yi.string+"|"+Yi.number,Yi.id=Yi.variable,function(){var e,t,n;for(e=Yi.comparatorOp.split("|"),n=0;n=0||"="!==t&&(Yi.comparatorOp+="|\\!"+t)}();var Xi=0,Wi=1,Hi=2,Ki=3,Gi=4,Ui=5,Zi=6,$i=7,Qi=8,Ji=9,ea=10,ta=11,na=12,ra=13,ia=14,aa=15,oa=16,sa=17,la=18,ua=19,ca=20,da=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return function(e,t){return-1*A(e,t)}(e.selector,t.selector)})),ha=function(){for(var e,t={},n=0;n0&&l.edgeCount>0)return je("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return je("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&je("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return v(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case Xi:var l=e(s);return l.substring(0,l.length-1);case Ki:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case Ui:var d=r.operator,h=r.field;return"["+e(d)+h+"]";case Gi:return"["+r.field+"]";case Zi:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case $i:return s;case Qi:return"#"+s;case Ji:return"."+s;case sa:case aa:return i(r.parent,a)+n(">")+i(r.child,a);case la:case oa:return i(r.ancestor,a)+" "+i(r.descendant,a);case ua:var f=i(r.left,a),g=i(r.subject,a),v=i(r.right,a);return f+(f.length>0?" ":"")+g+v;case ca:return""}},i=function(e,t){return e.checks.reduce((function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)}),"")},a="",o=0;o1&&o=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":d=!0,r=e>n;break;case">=":d=!0,r=e>=n;break;case"<":d=!0,r=e0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function Ba(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Ba)},_a.forEachUp=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Na)},_a.forEachUpAndDown=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,za)},_a.ancestors=_a.parents,(Pa=Da={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Fi.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Fi.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Pa.data,Pa.removeAttr=Pa.removeData;var Ia,Aa,La=Da,Oa={};function Ra(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&this.isNode()&&!this.removed()){for(var n=0,r=this[0],i=r._private.edges,a=0;at})),minIndegree:Va("indegree",(function(e,t){return et})),minOutdegree:Va("outdegree",(function(e,t){return et}))}),L(Oa,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,c=u;u&&(l=l[0]);var d=c?l.position():{x:0,y:0};return i={x:s.x-d.x,y:s.y-d.y},void 0===e?i:i[e]}for(var h=0;h0,y=g;g&&(f=f[0]);var m=y?f.position():{x:0,y:0};void 0!==t?p.position(e,t+m[e]):void 0!==i&&p.position({x:i.x+m.x,y:i.y+m.y})}}else if(!a)return;return this}}).modelPosition=Ia.point=Ia.position,Ia.modelPositions=Ia.points=Ia.positions,Ia.renderedPoint=Ia.renderedPosition,Ia.relativePoint=Ia.relativePosition;var qa,Ya,Xa=Aa;qa=Ya={},Ya.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},Ya.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},Ya.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var d=y(i.width.val-a.w,s,l),h=d.biasDiff,p=d.biasComplementDiff,f=y(i.height.val-a.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-h+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Ka=function(e,t){return null==t?e:Ha(e,t.x1,t.y1,t.x2,t.y2)},Ga=function(e,t,n){return Ue(e,t,n)},Ua=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Nt(u,1),Ha(e,u.x1,u.y1,u.x2,u.y2)}}},Za=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var i=t._private,a=i.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),d=t.pstyle("text-valign"),h=Ga(a,"labelWidth",n),p=Ga(a,"labelHeight",n),f=Ga(a,"labelX",n),g=Ga(a,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,k=p,C=h,S=C/2,P=k/2;if(m)o=f-S,s=f+S,l=g-P,u=g+P;else{switch(c.value){case"left":o=f-C,s=f;break;case"center":o=f-S,s=f+S;break;case"right":o=f,s=f+C}switch(d.value){case"top":l=g-k,u=g;break;case"center":l=g-P,u=g+P;break;case"bottom":l=g,u=g+k}}o+=v-Math.max(x,w)-E-2,s+=v+Math.max(x,w)+E+2,l+=y-Math.max(x,w)-E-2,u+=y+Math.max(x,w)+E+2;var D=n||"main",T=i.labelBounds,_=T[D]=T[D]||{};_.x1=o,_.y1=l,_.x2=s,_.y2=u,_.w=s-o,_.h=u-l;var M=m&&"autorotate"===b.strValue,B=null!=b.pfValue&&0!==b.pfValue;if(M||B){var N=M?Ga(i.rstyle,"labelAngle",n):b.pfValue,z=Math.cos(N),I=Math.sin(N),A=(o+s)/2,L=(l+u)/2;if(!m){switch(c.value){case"left":A=s;break;case"right":A=o}switch(d.value){case"top":L=u;break;case"bottom":L=l}}var O=function(e,t){return{x:(e-=A)*z-(t-=L)*I+A,y:e*I+t*z+L}},R=O(o,l),V=O(o,u),F=O(s,l),j=O(s,u);o=Math.min(R.x,V.x,F.x,j.x),s=Math.max(R.x,V.x,F.x,j.x),l=Math.min(R.y,V.y,F.y,j.y),u=Math.max(R.y,V.y,F.y,j.y)}var q=D+"Rot",Y=T[q]=T[q]||{};Y.x1=o,Y.y1=l,Y.x2=s,Y.y2=u,Y.w=s-o,Y.h=u-l,Ha(e,o,l,s,u),Ha(i.labelBounds.all,o,l,s,u)}return e}},$a=function(e,t){var n,r,i,a,o,s,l,u=e._private.cy,c=u.styleEnabled(),d=u.headless(),h=_t(),p=e._private,f=e.isNode(),g=e.isEdge(),v=p.rstyle,y=f&&c?e.pstyle("bounds-expansion").pfValue:[0],m=function(e){return"none"!==e.pstyle("display").value},b=!c||m(e)&&(!g||m(e.source())&&m(e.target()));if(b){var x=0;c&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(x=e.pstyle("overlay-padding").value);var w=0;c&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(w=e.pstyle("underlay-padding").value);var E=Math.max(x,w),k=0;if(c&&(k=e.pstyle("width").pfValue/2),f&&t.includeNodes){var C=e.position();o=C.x,s=C.y;var S=e.outerWidth()/2,P=e.outerHeight()/2;Ha(h,n=o-S,i=s-P,r=o+S,a=s+P),c&&t.includeOutlines&&function(e,t){if(!t.cy().headless()){var n,r,i,a=t.pstyle("outline-opacity").value,o=t.pstyle("outline-width").value;if(a>0&&o>0){var s=t.pstyle("outline-offset").value,l=t.pstyle("shape").value,u=o+s,c=(e.w+2*u)/e.w,d=(e.h+2*u)/e.h,h=0;["diamond","pentagon","round-triangle"].includes(l)?(c=(e.w+2.4*u)/e.w,h=-u/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(l)?c=(e.w+2.4*u)/e.w:"star"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.6*u)/e.h,h=-u/3.8):"triangle"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.4*u)/e.h,h=-u/1.4):"vee"===l&&(c=(e.w+4.4*u)/e.w,d=(e.h+3.8*u)/e.h,h=.5*-u);var p=e.h*d-e.h,f=e.w*c-e.w;if(zt(e,[Math.ceil(p/2),Math.ceil(f/2)]),0!==h){var g=(r=0,i=h,{x1:(n=e).x1+r,x2:n.x2+r,y1:n.y1+i,y2:n.y2+i,w:n.w,h:n.h});Mt(e,g)}}}}(h,e)}else if(g&&t.includeEdges)if(c&&!d){var D=e.pstyle("curve-style").strValue;if(n=Math.min(v.srcX,v.midX,v.tgtX),r=Math.max(v.srcX,v.midX,v.tgtX),i=Math.min(v.srcY,v.midY,v.tgtY),a=Math.max(v.srcY,v.midY,v.tgtY),Ha(h,n-=k,i-=k,r+=k,a+=k),"haystack"===D){var T=v.haystackPts;if(T&&2===T.length){if(n=T[0].x,i=T[0].y,n>(r=T[1].x)){var _=n;n=r,r=_}if(i>(a=T[1].y)){var M=i;i=a,a=M}Ha(h,n-k,i-k,r+k,a+k)}}else if("bezier"===D||"unbundled-bezier"===D||D.endsWith("segments")||D.endsWith("taxi")){var B;switch(D){case"bezier":case"unbundled-bezier":B=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":B=v.linePts}if(null!=B)for(var N=0;N(r=A.x)){var L=n;n=r,r=L}if((i=I.y)>(a=A.y)){var O=i;i=a,a=O}Ha(h,n-=k,i-=k,r+=k,a+=k)}if(c&&t.includeEdges&&g&&(Ua(h,e,"mid-source"),Ua(h,e,"mid-target"),Ua(h,e,"source"),Ua(h,e,"target")),c)if("yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,V=e.pstyle("ghost-offset-y").pfValue;Ha(h,h.x1+R,h.y1+V,h.x2+R,h.y2+V)}var F=p.bodyBounds=p.bodyBounds||{};It(F,h),zt(F,y),Nt(F,1),c&&(n=h.x1,r=h.x2,i=h.y1,a=h.y2,Ha(h,n-E,i-E,r+E,a+E));var j=p.overlayBounds=p.overlayBounds||{};It(j,h),zt(j,y),Nt(j,1);var q=p.labelBounds=p.labelBounds||{};null!=q.all?((l=q.all).x1=1/0,l.y1=1/0,l.x2=-1/0,l.y2=-1/0,l.w=0,l.h=0):q.all=_t(),c&&t.includeLabels&&(t.includeMainLabels&&Za(h,e,null),g&&(t.includeSourceLabels&&Za(h,e,"source"),t.includeTargetLabels&&Za(h,e,"target")))}return h.x1=Wa(h.x1),h.y1=Wa(h.y1),h.x2=Wa(h.x2),h.y2=Wa(h.y2),h.w=Wa(h.x2-h.x1),h.h=Wa(h.y2-h.y1),h.w>0&&h.h>0&&b&&(zt(h,y),Nt(h,1)),h},Qa=function(e){var t=0,n=function(e){return(e?1:0)<0&&void 0!==arguments[0]?arguments[0]:bo,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},wo.removeAllListeners=function(){return this.removeListener("*")},wo.emit=wo.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,m(t)||(t=[t]),Co(this,(function(e,a){null!=n&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&function(e,t){for(var n=0;n1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&v(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){e(this[t])&&this.unmergeAt(t)}return this},map:function(e,t){for(var n=[],r=0;rr&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i=0&&i1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(b(e)){var i=e;r.applyBypass(this,i,!1),this.emitAndNotify("style")}else if(v(e)){if(void 0===t){var a=this[0];return a?r.getStylePropertyValue(a,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var o=this[0];return o?r.getRawStyle(o):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Go.neighbourhood=Go.neighborhood,Go.closedNeighbourhood=Go.closedNeighborhood,Go.openNeighbourhood=Go.openNeighborhood,L(Go,{source:Ta((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Ta((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:Qo({attr:"source"}),targets:Qo({attr:"target"})}),L(Go,{edgesWith:Ta(Jo(),"edgesWith"),edgesTo:Ta(Jo({thisIsSrc:!0}),"edgesTo")}),L(Go,{connectedEdges:Ta((function(e){for(var t=[],n=0;n0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Go.componentsOf=Go.components;var ts=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new $e,a=!1;if(t){if(t.length>0&&b(t[0])&&!k(t[0])){a=!0;for(var o=[],s=new Je,l=0,u=t.length;l0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a._private,s=[],l=[],u=0,c=i.length;u0){for(var R=e.length===i.length?i:new ts(a,e),V=0;V0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var T=0;T1e-4&&Math.abs(s.v)>1e-4;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),as=function(e,t,n,r){var i=function(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var h=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function f(e,t){return 3*t-6*e}function g(e){return 3*e}function v(e,t,n){return((p(t,n)*e+f(t,n))*e+g(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*f(t,n)*e+g(t)}function m(t,r){for(var a=0;a0?i=l:r=l}while(Math.abs(a)>o&&++u=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function k(){E=!0,e===t&&n===r||b()}var C=function(i){return E||k(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};C.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var S="generateBezier("+[e,t,n,r]+")";return C.toString=function(){return S},C}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},os={linear:function(e,t,n){return e+(t-e)*n},ease:as(.25,.1,.25,1),"ease-in":as(.42,0,1,1),"ease-out":as(0,0,.58,1),"ease-in-out":as(.42,0,.58,1),"ease-in-sine":as(.47,0,.745,.715),"ease-out-sine":as(.39,.575,.565,1),"ease-in-out-sine":as(.445,.05,.55,.95),"ease-in-quad":as(.55,.085,.68,.53),"ease-out-quad":as(.25,.46,.45,.94),"ease-in-out-quad":as(.455,.03,.515,.955),"ease-in-cubic":as(.55,.055,.675,.19),"ease-out-cubic":as(.215,.61,.355,1),"ease-in-out-cubic":as(.645,.045,.355,1),"ease-in-quart":as(.895,.03,.685,.22),"ease-out-quart":as(.165,.84,.44,1),"ease-in-out-quart":as(.77,0,.175,1),"ease-in-quint":as(.755,.05,.855,.06),"ease-out-quint":as(.23,1,.32,1),"ease-in-out-quint":as(.86,0,.07,1),"ease-in-expo":as(.95,.05,.795,.035),"ease-out-expo":as(.19,1,.22,1),"ease-in-out-expo":as(1,0,0,1),"ease-in-circ":as(.6,.04,.98,.335),"ease-out-circ":as(.075,.82,.165,1),"ease-in-out-circ":as(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return os.linear;var r=is(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":as};function ss(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ls(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function us(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ls(e,i),s=ls(t,i);if(x(o)&&x(s))return ss(a,o,s,n,r);if(m(o)&&m(s)){for(var l=[],u=0;u0?("spring"===d&&h.push(o.duration),o.easingImpl=os[d].apply(null,h)):o.easingImpl=os[d]}var p,f=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var g=o.startPosition,y=o.position;if(y&&i&&!e.locked()){var m={};ds(g.x,y.x)&&(m.x=us(g.x,y.x,p,f)),ds(g.y,y.y)&&(m.y=us(g.y,y.y,p,f)),e.position(m)}var b=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(ds(b.x,x.x)&&(w.x=us(b.x,x.x,p,f)),ds(b.y,x.y)&&(w.y=us(b.y,x.y,p,f)),e.emit("pan"));var k=o.startZoom,C=o.zoom,S=null!=C&&r;S&&(ds(k,C)&&(a.zoom=Tt(a.minZoom,us(k,C,p,f),a.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var P=o.style;if(P&&P.length>0&&i){for(var D=0;D=0;t--){(0,e[t])()}e.splice(0,e.length)},c=a.length-1;c>=0;c--){var d=a[c],h=d._private;h.stopped?(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.frames)):(h.playing||h.applying)&&(h.playing&&h.applying&&(h.applying=!1),h.started||hs(0,d,e),cs(t,d,e,n),h.applying&&(h.applying=!1),u(h.frames),null!=h.step&&h.step(e),d.completed()&&(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var fs={animate:Fi.animate(),animation:Fi.animation(),animated:Fi.animated(),clearQueue:Fi.clearQueue(),delay:Fi.delay(),delayAnimation:Fi.delayAnimation(),stop:Fi.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){ps(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&xe((function(n){ps(n,e),t()}))}()}}},gs={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&k(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},vs=function(e){return v(e)?new ka(e):e},ys={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new xo(gs,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,vs(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,vs(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,vs(t),n),this},once:function(e,t,n){return this.emitter().one(e,vs(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fi.eventAliasesOn(ys);var ms={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};ms.jpeg=ms.jpg;var bs={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var r;r=v(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var i=new n(L({},e,{cy:this,eles:r}));return i}Ve("No such layout `"+t+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ve("A `name` must be specified to make a layout");else Ve("Layout options must be specified to make a layout")}};bs.createLayout=bs.makeLayout=bs.layout;var xs={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Es.invalidateDimensions=Es.resize;var ks={collection:function(e,t){return v(e)?this.$(e):E(e)?e.collection():m(e)?(t||(t={}),new ts(this,e,t.unique,t.removed)):new ts(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};ks.elements=ks.filter=ks.$;var Cs={};Cs.apply=function(e){for(var t=this._private.cy.collection(),n=0;n0;if(d||c&&h){var p=void 0;d&&h||d?p=l.properties:h&&(p=l.mappedProperties);for(var f=0;f1&&(g=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],k=i.valueMin[1],C=i.valueMax[1],S=i.valueMin[2],P=i.valueMax[2],D=null==i.valueMin[3]?1:i.valueMin[3],T=null==i.valueMax[3]?1:i.valueMax[3],_=[Math.round(w+(E-w)*g),Math.round(k+(C-k)*g),Math.round(S+(P-S)*g),Math.round(D+(T-D)*g)];n={bypass:i.bypass,name:i.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!s.number)return!1;var M=i.valueMin+(i.valueMax-i.valueMin)*g;n=this.parse(i.name,M,i.bypass,"mapping")}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var B=i.field.split("."),N=d.data,z=0;z0&&a>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},Cs.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Cs.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},Cs.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||"curve-style"!==t||"bezier"!==n&&"bezier"!==r||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})),!i.triggersBoundsOfConnectedEdges||"display"!==t||"none"!==n&&"none"!==r||e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))},Cs.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Ss={applyBypass:function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;at.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(i.match(/^\s*$/))break;var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){je("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l)if(new ka(l).invalid){je("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var d=[];;){if(n.match(/^\s*$/))break;var h=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!h){je("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=h[0];var p=h[1],f=h[2];if(this.properties[p])this.parse(p,f)?(d.push({name:p,val:f}),o()):(je("Skipping property: Invalid property definition in: "+r),o());else je("Skipping property: Invalid property name in: "+r),o()}if(c){a();break}this.selector(l);for(var g=0;g=7&&"d"===t[0]&&(l=new RegExp(o.data.regex).exec(t))){if(n)return!1;var d=o.data;return{name:e,value:l,strValue:""+t,mapped:d,field:l[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(u=new RegExp(o.mapData.regex).exec(t))){if(n)return!1;if(c.multiple)return!1;var h=o.mapData;if(!c.color&&!c.number)return!1;var p=this.parse(e,u[4]);if(!p||p.mapped)return!1;var f=this.parse(e,u[5]);if(!f||f.mapped)return!1;if(p.pfValue===f.pfValue||p.strValue===f.strValue)return je("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+p.strValue+"`"),this.parse(e,p.strValue);if(c.color){var g=p.value,b=f.value;if(!(g[0]!==b[0]||g[1]!==b[1]||g[2]!==b[2]||g[3]!==b[3]&&(null!=g[3]&&1!==g[3]||null!=b[3]&&1!==b[3])))return!1}return{name:e,value:u,strValue:""+t,mapped:h,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:p.value,valueMax:f.value,bypass:n}}}if(c.multiple&&"multiple"!==r){var w;if(w=s?t.split(/\s+/):m(t)?t:[t],c.evenMultiple&&w.length%2!=0)return null;for(var E=[],k=[],C=[],S="",P=!1,D=0;D0?" ":"")+T.strValue}return c.validate&&!c.validate(E,k)?null:c.singleEnum&&P?1===E.length&&v(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:C,strValue:S,bypass:n,units:k}}var _,B,N=function(){for(var r=0;rc.max||c.strictMax&&t===c.max))return null;var V={name:e,value:t,strValue:""+t+(z||""),units:z,bypass:n};return c.unitless||"px"!==z&&"em"!==z?V.pfValue=t:V.pfValue="px"!==z&&z?this.getEmSizeInPixels()*t:t,"ms"!==z&&"s"!==z||(V.pfValue="ms"===z?t:1e3*t),"deg"!==z&&"rad"!==z||(V.pfValue="rad"===z?t:(_=t,Math.PI*_/180)),"%"===z&&(V.pfValue=t/100),V}if(c.propList){var F=[],j=""+t;if("none"===j);else{for(var q=j.split(/\s*,\s*|\s+/),Y=0;Y0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:o=(o=(o=Math.min((s-2*t)/n.w,(l-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:o)=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),x(e)?n=e:b(e)&&(n=e.level,null!=e.position?t=yt(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;x(l.x)&&(t.pan.x=l.x,o=!1),x(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(v(e)){var n=e;e=this.mutableElements().filter(n)}else E(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};As.centre=As.center,As.autolockNodes=As.autolock,As.autoungrabifyNodes=As.autoungrabify;var Ls={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ls.attr=Ls.data,Ls.removeAttr=Ls.removeData;var Os=function(e){var t=this,n=(e=L({},e)).container;n&&!w(n)&&w(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==u&&void 0!==n&&!e.headless,o=e;o.layout=L({name:a?"grid":"null"},o.layout),o.renderer=L({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new ts(this),listeners:[],aniEles:new ts(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:x(o.zoom)?o.zoom:1,pan:{x:b(o.pan)&&x(o.pan.x)?o.pan.x:0,y:b(o.pan)&&x(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});l.styleEnabled&&t.setStyle([]);var c=L({},o,o.renderer);t.initRenderer(c);!function(e,t){if(e.some(T))return vr.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(b(e)||m(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=L({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()}(a,(function(){t.startAnimationLoop(),l.ready=!0,y(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,u=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(E(n.roots))e=n.roots;else if(m(n.roots)){for(var c=[],d=0;d0;){var N=_.shift(),z=T(N,M);if(z)N.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(B);else if(null===z){je("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}D();var I=0;if(n.avoidOverlap)for(var L=0;L0&&b[0].length<=3?l/2:0),d=2*Math.PI/b[r].length*i;return 0===r&&1===b[0].length&&(c=1),{x:G+c*Math.cos(d),y:U+c*Math.sin(d)}}return{x:G+(i+1-(a+1)/2)*o,y:(r+1)*s}})),this};var Xs={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ws(e){this.options=L({},Xs,e)}Ws.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l=s.x1+s.w/2,u=s.y1+s.h/2,c=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var v=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(d*d/(v*v+y*y));o=Math.max(m,o)}return r.nodes().layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*c*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l+a,y:u+s}})),this};var Hs,Ks={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Gs(e){this.options=L({},Ks,e)}Gs.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=o.x1+o.w/2,l=o.y1+o.h/2,u=[],c=0,d=0;d0)Math.abs(m[0].value-x.value)>=v&&(m=[],y.push(m));m.push(x)}var w=c+t.minNodeSpacing;if(!t.avoidOverlap){var E=y.length>0&&y[0].length>1,k=(Math.min(o.w,o.h)/2-w)/(y.length+E?1:0);w=Math.min(w,k)}for(var C=0,S=0;S1&&t.avoidOverlap){var _=Math.cos(T)-Math.cos(0),M=Math.sin(T)-Math.sin(0),B=Math.sqrt(w*w/(_*_+M*M));C=Math.max(B,C)}P.r=C,C+=w}if(t.equidistant){for(var N=0,z=0,I=0;I=e.numIter)&&(rl(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&a(),xe(t)):(gl(r,e),s())}()}else{for(;u;)u=o(l),l++;gl(r,e),s()}return this},Zs.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Zs.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var $s=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(E);for(u=0;ur.count?0:r.graph},Js=function e(t,n,r,i){var a=i.graphSet[r];if(-10)var s=(u=r.nodeOverlap*o)*i/(g=Math.sqrt(i*i+a*a)),l=u*a/g;else{var u,c=ll(e,i,a),d=ll(t,-1*i,-1*a),h=d.x-c.x,p=d.y-c.y,f=h*h+p*p,g=Math.sqrt(f);s=(u=(e.nodeRepulsion+t.nodeRepulsion)/f)*h/g,l=u*p/g}e.isLocked||(e.offsetX-=s,e.offsetY-=l),t.isLocked||(t.offsetX+=s,t.offsetY+=l)}},sl=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ll=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0n?(u.x=r,u.y=i+a/2,u):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},ul=function(e,t){for(var n=0;n1){var f=t.gravity*d/p,g=t.gravity*h/p;c.offsetX+=f,c.offsetY+=g}}}}},dl=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},fl=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLefti.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTopf&&(d+=p+t.componentSpacing,c=0,h=0,p=0)}}},vl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function yl(e){this.options=L({},vl,e)}yl.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},d=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},h=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=h&&null!=p)l=h,u=p;else if(null!=h&&null==p)l=h,u=Math.ceil(o/l);else if(null==h&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var f=c(),g=d();(f-1)*g>=o?c(f-1):(g-1)*f>=o&&d(g-1)}else for(;u*l=o?d(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x=u&&(B=0,M++)},z={},I=0;I(r=qt(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5(r=jt(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),k=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w0&&(y(m),y(b))}function b(e,t,n){return Ue(e,t,n)}function x(n,r){var i,a=n._private,o=f;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),d=b(a.rscratch,"labelAngle",r),h=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,g=s.x1-o-h,y=s.x2+o-h,m=s.y1-o-p,x=s.y2+o-p;if(d){var w=Math.cos(d),E=Math.sin(d),k=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},C=k(g,m),S=k(g,x),P=k(y,m),D=k(y,x),T=[C.x+h,C.y+p,P.x+h,P.y+p,D.x+h,D.y+p,S.x+h,S.y+p];if(Yt(e,t,T))return v(n),!0}else if(Lt(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i,a,o=this.getCachedZSortedEles().interactive,s=[],l=Math.min(e,n),u=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r),h=_t({x1:e=l,y1:t=c,x2:n=u,y2:r=d}),p=0;p0?-(Math.PI-a.ang):Math.PI+a.ang),Zl(t,n,Ul),zl=Gl.nx*Ul.ny-Gl.ny*Ul.nx,Il=Gl.nx*Ul.nx-Gl.ny*-Ul.ny,Ol=Math.asin(Math.max(-1,Math.min(1,zl))),Math.abs(Ol)<1e-6)return Bl=t.x,Nl=t.y,void(Vl=jl=0);Al=1,Ll=!1,Il<0?Ol<0?Ol=Math.PI+Ol:(Ol=Math.PI-Ol,Al=-1,Ll=!0):Ol>0&&(Al=-1,Ll=!0),jl=void 0!==t.radius?t.radius:r,Rl=Ol/2,ql=Math.min(Gl.len/2,Ul.len/2),i?(Fl=Math.abs(Math.cos(Rl)*jl/Math.sin(Rl)))>ql?(Fl=ql,Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))):Vl=jl:(Fl=Math.min(ql,jl),Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))),Wl=t.x+Ul.nx*Fl,Hl=t.y+Ul.ny*Fl,Bl=Wl-Ul.ny*Vl*Al,Nl=Hl+Ul.nx*Vl*Al,Yl=t.x+Gl.nx*Fl,Xl=t.y+Gl.ny*Fl,Kl=t};function Ql(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Jl(e,t,n,r){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:($l(e,t,n,r,i),{cx:Bl,cy:Nl,radius:Vl,startX:Yl,startY:Xl,stopX:Wl,stopY:Hl,startAngle:Gl.ang+Math.PI/2*Al,endAngle:Ul.ang-Math.PI/2*Al,counterClockwise:Ll})}var eu={};function tu(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},w=x(m,v),E=x(b,y),k=!1;"auto"===c?u=Math.abs(w)>Math.abs(E)?"horizontal":"vertical":"upward"===c||"downward"===c?(u="vertical",k=!0):"leftward"!==c&&"rightward"!==c||(u="horizontal",k=!0);var C,S="vertical"===u,P=S?E:w,D=S?b:m,T=Et(D),_=!1;(k&&(h||f)||!("downward"===c&&D<0||"upward"===c&&D>0||"leftward"===c&&D>0||"rightward"===c&&D<0)||(P=(T*=-1)*Math.abs(P),_=!0),h)?C=(p<0?1+p:p)*P:C=(p<0?P:0)+p*T;var M=function(e){return Math.abs(e)=Math.abs(P)},B=M(C),N=M(Math.abs(P)-Math.abs(C));if((B||N)&&!_)if(S){var z=Math.abs(D)<=a/2,I=Math.abs(m)<=o/2;if(z){var A=(r.x1+r.x2)/2,L=r.y1,O=r.y2;n.segpts=[A,L,A,O]}else if(I){var R=(r.y1+r.y2)/2,V=r.x1,F=r.x2;n.segpts=[V,R,F,R]}else n.segpts=[r.x1,r.y2]}else{var j=Math.abs(D)<=i/2,q=Math.abs(b)<=s/2;if(j){var Y=(r.y1+r.y2)/2,X=r.x1,W=r.x2;n.segpts=[X,Y,W,Y]}else if(q){var H=(r.x1+r.x2)/2,K=r.y1,G=r.y2;n.segpts=[H,K,H,G]}else n.segpts=[r.x2,r.y1]}else if(S){var U=r.y1+C+(l?a/2*T:0),Z=r.x1,$=r.x2;n.segpts=[Z,U,$,U]}else{var Q=r.x1+C+(l?i/2*T:0),J=r.y1,ee=r.y2;n.segpts=[Q,J,Q,ee]}if(n.isRound){var te=e.pstyle("taxi-radius").value,ne="arc-radius"===e.pstyle("radius-type").value[0];n.radii=new Array(n.segpts.length/2).fill(te),n.isArcRadius=new Array(n.segpts.length/2).fill(ne)}},eu.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!x(n.startX)||!x(n.startY),v=!x(n.arrowStartX)||!x(n.arrowStartY),y=!x(n.endX)||!x(n.endY),m=!x(n.arrowEndX)||!x(n.arrowEndY),b=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=kt({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wh.poolIndex()){var p=d;d=h,h=p}var f=s.srcPos=d.position(),g=s.tgtPos=h.position(),v=s.srcW=d.outerWidth(),y=s.srcH=d.outerHeight(),m=s.tgtW=h.outerWidth(),b=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(d)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(h)],k=s.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,S=s.tgtRs=h._private.rscratch,P=s.srcRs=d._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var D=0;D0){var H=u,K=Ct(H,bt(t)),G=Ct(H,bt(W)),U=K;if(G2)Ct(H,{x:W[2],y:W[3]})0){var le=c,ue=Ct(le,bt(t)),ce=Ct(le,bt(se)),de=ue;if(ce2)Ct(le,{x:se[2],y:se[3]})=c||b){d={cp:v,segment:m};break}}if(d)break}var x=d.cp,w=d.segment,E=(c-p)/w.length,k=w.t1-w.t0,C=u?w.t0+k*E:w.t1-k*E;C=Tt(0,C,1),t=Dt(x.p0,x.p1,x.p2,C),l=function(e,t,n,r){var i=Tt(0,r-.001,1),a=Tt(0,r+.001,1),o=Dt(e,t,n,i),s=Dt(e,t,n,a);return su(o,s)}(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,P,D,T,_=0,M=r.allpts.length,B=0;B+3=c));B+=2);var N=(c-P)/S;N=Tt(0,N,1),t=function(e,t,n,r){var i=t.x-e.x,a=t.y-e.y,o=kt(e,t),s=i/o,l=a/o;return n=null==n?0:n,r=null!=r?r:n*o,{x:e.x+s*r,y:e.y+l*r}}(D,T,N),l=su(D,T)}o("labelX",s,t.x),o("labelY",s,t.y),o("labelAutoAngle",s,l)}};l("source"),l("target"),this.applyLabelDimensions(e)}},au.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},au.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ue(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,d=i.width,h=i.height+(l-1)*(a-1)*u;Ze(n.rstyle,"labelWidth",t,d),Ze(n.rscratch,"labelWidth",t,d),Ze(n.rstyle,"labelHeight",t,h),Ze(n.rscratch,"labelHeight",t,h),Ze(n.rscratch,"labelLineHeight",t,c)},au.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(Ze(n.rscratch,e,t,r),r):Ue(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var u=o("labelKey");if(null!=u&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var c=i.split("\n"),d=e.pstyle("text-max-width").pfValue,h="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;gd){var b,x="",w=0,E=l(v.matchAll(f));try{for(E.s();!(b=E.n()).done;){var k=b.value,C=k[0],S=v.substring(w,k.index);w=k.index+C.length;var P=0===x.length?S:x+S+C;this.calculateLabelDimensions(e,P).width<=d?x+=S+C:(x&&p.push(x),x=S+C)}}catch(e){E.e(e)}finally{E.f()}x.match(/^[\s\u200b]+$/)||p.push(x)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",u)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,T="",_=!1;if(this.calculateLabelDimensions(e,i).widthD)break;T+=i[M],M===i.length-1&&(_=!0)}return _||(T+="…"),T}return i},au.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},au.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window().document,i=Te(t,e._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),o=a[i];if(null!=o)return o;var s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=r.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}h.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var f=0,g=0,v=t.split("\n"),y=0;y1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var D=i(t);v&&(e.hoverData.tapholdCancelled=!0);n=!0,r(g,["mousemove","vmousemove","tapdrag"],t,{x:c[0],y:c[1]});var T=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:c[0],y:c[1]}}),f[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(v){var _={originalEvent:t,type:"cxtdrag",position:{x:c[0],y:c[1]}};m?m.emit(_):o.emit(_),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&g===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.hoverData.cxtOver=g,g&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var M;if(e.hoverData.justStartedPan){var B=e.hoverData.mdownPos;M={x:(c[0]-B[0])*s,y:(c[1]-B[1])*s},e.hoverData.justStartedPan=!1}else M={x:b[0]*s,y:b[1]*s};o.panBy(M),o.emit("dragpan"),e.hoverData.dragged=!0}c=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=f[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||g==y||(y&&r(y,["mouseout","tapdragout"],t,{x:c[0],y:c[1]}),g&&r(g,["mouseover","tapdragover"],t,{x:c[0],y:c[1]}),e.hoverData.last=g),m)if(v){if(o.boxSelectionEnabled()&&D)m&&m.grabbed()&&(d(w),m.emit("freeon"),w.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),w.emit("dragfree"))),T();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var N=!e.dragData.didDrag;N&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||u(w,{inDragLayer:!0});var z={x:0,y:0};if(x(b[0])&&x(b[1])&&(z.x+=b[0],z.y+=b[1],N)){var I=e.hoverData.dragDelta;I&&x(I[0])&&x(I[1])&&(z.x+=I[0],z.y+=I[1])}e.hoverData.draggingEles=!0,w.silentShift(z).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])}();n=!0}else if(v){if(e.hoverData.dragging||!o.boxSelectionEnabled()||!D&&o.panningEnabled()&&o.userPanningEnabled()){if(!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=bt(h),e.redrawHint("select",!0),e.redraw())}}else T();m&&m.pannable()&&m.active()&&m.unactivate()}return f[2]=c[0],f[3]=c[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if((1!==e.hoverData.which||1===t.which||!e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var p={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(p):a.emit(p),!e.hoverData.cxtDragged){var f={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):a.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),b=!1,t.timeStamp-w<=a.multiClickDebounceTime()?(m&&clearTimeout(m),b=!0,w=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(m=setTimeout((function(){b||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),w=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var v=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(v).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();d(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null,e.hoverData.which=null}}),!1);var k,C,S,P,D,T,_,M,B,N,z,I,A,L=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4])t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",L,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||L(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var O,R,V,F,j,q,Y,X=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},W=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",O=function(t){if(e.hasTouchStarted=!0,E(t)){p(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]){o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);i[2]=o[0],i[3]=o[1]}if(t.touches[2]){o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);i[4]=o[0],i[5]=o[1]}if(t.touches[1]){e.touchData.singleTouchMoved=!0,d(e.dragData.touchDragEles);var l=e.findContainerClientCoords();B=l[0],N=l[1],z=l[2],I=l[3],k=t.touches[0].clientX-B,C=t.touches[0].clientY-N,S=t.touches[1].clientX-B,P=t.touches[1].clientY-N,A=0<=k&&k<=z&&0<=S&&S<=z&&0<=C&&C<=I&&0<=P&&P<=I;var h=n.pan(),f=n.zoom();D=X(k,C,S,P),T=W(k,C,S,P),M=[((_=[(k+S)/2,(C+P)/2])[0]-h.x)/f,(_[1]-h.y)/f];if(T<4e4&&!t.touches[2]){var g=e.findNearestElement(i[0],i[1],!0,!0),v=e.findNearestElement(i[2],i[3],!0,!0);return g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):v&&v.isNode()?(v.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=v):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),m=y[0];if(null!=m&&(m.activate(),e.touchData.start=m,e.touchData.starts=y,e.nodeIsGrabbable(m))){var b=e.dragData.touchDragEles=n.collection(),x=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),m.selected()?(x=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(x,{addToList:b})):c(m,{addToList:b}),s(m);var w=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};m.emit(w("grabon")),x?x.forEach((function(e){e.emit(w("grab"))})):m.emit(w("grab"))}r(m,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==m&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var L=e.touchData.startPosition=[null,null,null,null,null,null],O=0;O=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var w=t.touches[0].clientX-B,_=t.touches[0].clientY-N,z=t.touches[1].clientX-B,I=t.touches[1].clientY-N,L=W(w,_,z,I);if(L/T>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var O={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(O),e.touchData.start=null):o.emit(O)}}if(n&&e.touchData.cxt){O={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(O):o.emit(O),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",V=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",F=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]){h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);u[2]=h[0],u[3]=h[1]}if(t.touches[2]){h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);u[4]=h[0],u[5]=h[1]}if(i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(p):s.emit(p)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var g=e.dragData.touchDragEles;if(null!=i){var v=i._private.grabbed;d(g),e.redrawHint("drag",!0),e.redrawHint("eles",!0),v&&(i.emit("freeon"),g.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),g.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var y=e.findNearestElement(u[0],u[1],!0,!0);r(y,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var m=e.touchData.startPosition[0]-u[0],b=m*m,x=e.touchData.startPosition[1]-u[1],w=(b+x*x)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),j=!1,t.timeStamp-Y<=s.multiClickDebounceTime()?(q&&clearTimeout(q),j=!0,Y=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):(q=setTimeout((function(){j||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),Y=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&w2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g0)return g[0]}return null},p=Object.keys(d),f=0;f0?u:Rt(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nn(r,i):s);if(Xt(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if(Xt(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Yt(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||(!!Kt(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!Kt(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},gu.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",Jt(3,0)),this.generateRoundPolygon("round-triangle",Jt(3,0)),this.generatePolygon("rectangle",Jt(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",Jt(5,0)),this.generateRoundPolygon("round-pentagon",Jt(5,0)),this.generatePolygon("hexagon",Jt(6,0)),this.generateRoundPolygon("round-hexagon",Jt(6,0)),this.generatePolygon("heptagon",Jt(7,0)),this.generateRoundPolygon("round-heptagon",Jt(7,0)),this.generatePolygon("octagon",Jt(8,0)),this.generateRoundPolygon("round-octagon",Jt(8,0));var r=new Array(20),i=tn(5,0),a=tn(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*(1e3/60))break;var v=e.deq(t,d,c);if(!(v.length>0))break;for(var y=0;y0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,d,c)&&r())}),i(t))}}},wu=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Le;t(this,e),this.idsByKey=new $e,this.keyForId=new $e,this.cachesByLvl=new $e,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return r(e,[{key:"getIdsFor",value:function(e){null==e&&Ve("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Je,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new $e,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Eu={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},ku=He({getKey:null,doesEleInvalidateKey:Le,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ae,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Cu=function(e,t){this.renderer=e,this.onDequeues=[];var n=ku(t);L(this,n),this.lookup=new wu(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},Su=Cu.prototype;Su.reasons=Eu,Su.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},Su.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Su.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new rt((function(e,t){return t.reqs-e.reqs}))},Su.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Su.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(wt(s*n))),r<-4)r=-4;else if(s>=7.99||r>3)return null;var u=Math.pow(2,r),c=t.h*u,d=t.w*u,h=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,h))return null;var p,f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;if(p=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||d>1024)return null;var g=a.getTextureQueue(p),v=g[g.length-2],y=function(){return a.recycleTexture(p,d)||a.addTexture(p,d)};v||(v=g[g.length-1]),v||(v=y()),v.width-v.usedWidthr;D--)S=a.getElement(e,t,n,D,Eu.downscale);P()}else{var T;if(!x&&!w&&!E)for(var _=r-1;_>=-4;_--){var M=l.get(e,_);if(M){T=M;break}}if(b(T))return a.queueElement(e,r),T;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,h,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return f={x:v.usedWidth,texture:v,level:r,scale:u,width:d,height:c,scaledLabelShown:h},v.usedWidth+=Math.ceil(d+8),v.eleCaches.push(f),l.set(e,r,f),a.checkTextureFullness(v),f},Su.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Su.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?Ke(t,e):e.fullnessChecks++},Su.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;Ke(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,Ge(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),Ke(r,a),n.push(a),a}},Su.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},Su.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1&&t.size()>0;a++){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,!u){r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,Eu.dequeue)}}return r},Su.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=Ie,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},Su.onDequeue=function(e){this.onDequeues.push(e)},Su.offDequeue=function(e){Ke(this.onDequeues,e)},Su.setupDequeueing=xu({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(r.levelIsComplete(n,e))return c;!function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Ke(c,o)}}();var d=function(t){var i=(t=t||{}).after;if(function(){if(!o){o=_t();for(var t=0;t16e6)return null;var a=r.makeLayer(o,n);if(null!=i){var s=c.indexOf(i)+1;c.splice(s,0,a)}else(void 0===t.insert||t.insert)&&c.unshift(a);return a};if(r.skipping&&!a)return null;for(var h=null,p=e.length/1,f=!a,g=0;g=p||!Ot(h.bb,v.boundingBox()))&&!(h=d({insert:!0,after:h})))return null;s||f?r.queueLayer(h,v):r.drawEleInLayer(h,v,n,t),h.eles.push(v),m[n]=h}}return s||(f?null:c)},Du.getEleLevelForLayerLevel=function(e,t){return e},Du.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},Du.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},Du.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},Du.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=we(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},Du.invalidateLayer=function(e){if(this.lastInvalidationTime=we(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Ke(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,m=u*c,b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===d?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=f,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;e.lineWidth=p+g,e.lineCap=f,g>0?(o.colorStrokeStyle(e,v[0],v[1],v[2],n),"straight-triangle"===d?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")):e.lineCap="butt"},w=function(){i&&o.drawEdgeOverlay(e,t)},E=function(){i&&o.drawEdgeUnderlay(e,t)},k=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(e,t,n)},C=function(){o.drawElementText(e,t,null,r)};e.lineJoin="round";var S="yes"===t.pstyle("ghost").value;if(S){var P=t.pstyle("ghost-offset-x").pfValue,D=t.pstyle("ghost-offset-y").pfValue,T=t.pstyle("ghost-opacity").value,_=y*T;e.translate(P,D),b(_),k(_),e.translate(-P,-D)}else x();E(),b(),k(),w(),C(),n&&e.translate(l.x1,l.y1)}}},Wu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Xu.drawEdgeOverlay=Wu("overlay"),Xu.drawEdgeUnderlay=Wu("underlay"),Xu.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,u=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}Ku.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(wt(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(u||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,f=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,f,a),t.isEdge()&&(o.drawText(e,t,"source",f,a),o.drawText(e,t,"target",f,a))):o.drawText(e,t,i,f,a),n&&e.translate(p.x1,p.y1)},Ku.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Ku.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ue(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Ku.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private,o=a.rscratch,s=i?t.effectiveOpacity():1;if(!i||0!==s&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var l,u,c=Ue(o,"labelX",n),d=Ue(o,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(c)&&!isNaN(d)){this.setupTextStyle(e,t,i);var p,f=n?n+"-":"",g=Ue(o,"labelWidth",n),v=Ue(o,"labelHeight",n),y=t.pstyle(f+"text-margin-x").pfValue,m=t.pstyle(f+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),c+=y,d+=m,0!==(p=r?this.getTextAngle(t,n):0)&&(l=c,u=d,e.translate(l,u),e.rotate(p),c=0,d=0),w){case"top":break;case"center":d+=v/2;break;case"bottom":d+=v}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,P=t.pstyle("text-background-shape").strValue,D=0===P.indexOf("round"),T=2;if(E>0||C>0&&k>0){var _=c-S;switch(x){case"left":_-=g;break;case"center":_-=g/2}var M=d-v-S,B=g+2*S,N=v+2*S;if(E>0){var z=e.fillStyle,I=t.pstyle("text-background-color").value;e.fillStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*s+")",D?Gu(e,_,M,B,N,T):e.fillRect(_,M,B,N),e.fillStyle=z}if(C>0&&k>0){var A=e.strokeStyle,L=e.lineWidth,O=t.pstyle("text-border-color").value,R=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*s+")",e.lineWidth=C,e.setLineDash)switch(R){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?Gu(e,_,M,B,N,T,"stroke"):e.strokeRect(_,M,B,N),"double"===R){var V=C/2;D?Gu(e,_+V,M+V,B-2*V,N-2*V,T,"stroke"):e.strokeRect(_+V,M+V,B-2*V,N-2*V)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=A}}var F=2*t.pstyle("text-outline-width").pfValue;if(F>0&&(e.lineWidth=F),"wrap"===t.pstyle("text-wrap").value){var j=Ue(o,"labelWrapCachedLines",n),q=Ue(o,"labelLineHeight",n),Y=g/2,X=this.getLabelJustification(t);switch("auto"===X||("left"===x?"left"===X?c+=-g:"center"===X&&(c+=-Y):"center"===x?"left"===X?c+=-Y:"right"===X&&(c+=Y):"right"===x&&("center"===X?c+=Y:"right"===X&&(c+=g))),w){case"top":d-=(j.length-1)*q;break;case"center":case"bottom":d-=(j.length-1)*q}for(var W=0;W0&&e.strokeText(j[W],c,d),e.fillText(j[W],c,d),d+=q}else F>0&&e.strokeText(h,c,d),e.fillText(h,c,d);0!==p&&(e.rotate(-p),e.translate(-l,-u))}}};var Uu={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,d=t.position();if(x(d.x)&&x(d.y)&&(!s||t.visible())){var h,p,f=s?t.effectiveOpacity():1,g=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),k=0,C=0;C0&&void 0!==arguments[0]?arguments[0]:M;l.eleFillStyle(e,t,n)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;l.colorStrokeStyle(e,B[0],B[1],B[2],t)},K=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:q;l.colorStrokeStyle(e,F[0],F[1],F[2],t)},G=function(e,t,n,r){var i,a=l.nodePathCache=l.nodePathCache||[],o=_e("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],u=!1;return null!=s?(i=s,u=!0,c.pathCache=i):(i=new Path2D,a[o]=c.pathCache=i),{path:i,cacheHit:u}},U=t.pstyle("shape").strValue,Z=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(d.x,d.y);var $=G(r,i,U,Z);h=$.path,v=$.cacheHit}var Q=function(){if(!v){var n=d;g&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(h||e,n.x,n.y,r,i,X,c)}g?e.fill(h):e.fill()},J=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(g||l.nodeShapes[l.getNodeShape(t)].draw(e,d.x,d.y,r,i,X,c)))},te=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=(T>0?T:-T)*t,r=T>0?0:255;0!==T&&(l.colorFillStyle(e,r,r,r,n),g?e.fill(h):e.fill())},ne=function(){if(_>0){if(e.lineWidth=_,e.lineCap=I,e.lineJoin=z,e.setLineDash)switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L),e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([])}if("center"!==A){if(e.save(),e.lineWidth*=2,"inside"===A)g?e.clip(h):e.clip();else{var t=new Path2D;t.rect(-r/2-_,-i/2-_,r+2*_,i+2*_),t.addPath(h),e.clip(t,"evenodd")}g?e.stroke(h):e.stroke(),e.restore()}else g?e.stroke(h):e.stroke();if("double"===N){e.lineWidth=_/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(h):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},re=function(){if(V>0){if(e.lineWidth=V,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=d;g&&(n={x:0,y:0});var a=l.getNodeShape(t),o=_;"inside"===A&&(o=0),"outside"===A&&(o*=2);var s,u=(r+o+(V+Y))/r,c=(i+o+(V+Y))/i,h=r*u,p=i*c,f=l.nodeShapes[a].points;if(g)s=G(h,p,a,f).path;if("ellipse"===a)l.drawEllipsePath(s||e,n.x,n.y,h,p);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var v=0,y=0,m=0;"round-diamond"===a?v=1.4*(o+Y+V):"round-heptagon"===a?(v=1.075*(o+Y+V),m=-(o/2+Y+V)/35):"round-hexagon"===a?v=1.12*(o+Y+V):"round-pentagon"===a?(v=1.13*(o+Y+V),m=-(o/2+Y+V)/15):"round-tag"===a?(v=1.12*(o+Y+V),y=.07*(o/2+V+Y)):"round-triangle"===a&&(v=(o+Y+V)*(Math.PI/2),m=-(o+Y/2+V)/Math.PI),0!==v&&(h=r*(u=(r+v)/r),["round-hexagon","round-tag"].includes(a)||(p=i*(c=(i+v)/i)));for(var b=h/2,x=p/2,w=(X="auto"===X?rn(h,p):X)+(o+V+Y)/2,E=new Array(f.length/2),k=new Array(f.length/2),C=0;C0){if(r=r||n.position(),null==i||null==a){var d=n.padding();i=n.width()+2*d,a=n.height()+2*d}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};Uu.drawNodeOverlay=Zu("overlay"),Uu.drawNodeUnderlay=Zu("underlay"),Uu.hasPie=function(e){return(e=e[0])._private.hasPie},Uu.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var h=1;h<=i.pieBackgroundN;h++){var p=t.pstyle("pie-"+h+"-background-size").value,f=t.pstyle("pie-"+h+"-background-color").value,g=t.pstyle("pie-"+h+"-background-opacity").value*n,v=p/100;v+d>1&&(v=1-d);var y=1.5*Math.PI+2*Math.PI*d,m=y+2*Math.PI*v;0===p||d>=1||d+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,f[0],f[1],f[2],g),e.fill(),d+=v)}};var $u={};$u.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},$u.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;io.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},k={zoom:b,pan:{x:w.x,y:w.y}},C=o.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!f||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var S=o.getCachedZSortedEles();function P(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function D(e,r){var s,l,c,d;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,d=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,d=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?P(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(k=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var _=u.contexts[o.NODE],M=o.textureCache.texture;k=o.textureCache.viewport;_.setTransform(1,0,0,1,0,0),h?P(_,0,0,k.width,k.height):_.clearRect(0,0,k.width,k.height);var B=m.core("outside-texture-bg-color").value,N=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(_,B[0],B[1],B[2],N),_.fillRect(0,0,k.width,k.height);b=l.zoom();D(_,!1),_.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s),_.drawImage(M,k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var z=l.extent(),I=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),A=o.hideEdgesOnViewport&&I,L=[];if(L[o.NODE]=!c[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,L[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),L[o.DRAG]=!c[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,L[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||L[o.NODE]){var O=h&&!L[o.NODE]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.nondrag,s,z):o.drawLayeredElements(_,S.nondrag,s,z),o.debug&&o.drawDebugPoints(_,S.nondrag),n||h||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||L[o.DRAG])){O=h&&!L[o.DRAG]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.drag,s,z):o.drawCachedElements(_,S.drag,s,z),o.debug&&o.drawDebugPoints(_,S.drag),n||h||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(D(_=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var R=m.core("selection-box-border-width").value/b;_.lineWidth=R,_.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",_.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),R>0&&(_.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",_.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var V=u.bgActivePosistion;_.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",_.beginPath(),_.arc(V.x,V.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),_.fill()}var F=o.lastRedrawTime;if(o.showFps&&F){F=Math.round(F);var j=Math.round(1e3/F);_.setTransform(1,0,0,1,0,0),_.fillStyle="rgba(255, 0, 0, 0.75)",_.strokeStyle="rgba(255, 0, 0, 0.75)",_.lineWidth=1,_.fillText("1 frame = "+F+" ms = "+j+" fps",0,20);_.strokeRect(0,30,250,20),_.fillRect(0,30,250*Math.min(j/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(h&&1!==p){var q=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],X=u.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],H=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):P(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||L[o.NODE])&&(H(q,Y,L[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||L[o.DRAG])&&(H(X,W,L[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=k,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")};for(var Qu={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l0&&a>0){h.clearRect(0,0,i,a),h.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)h.translate(-n.x1*l,-n.y1*l),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}e.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=e.bg,h.rect(0,0,i,a),h.fill())}return d},ac.png=function(e){return sc(e,this.bufferCanvasImage(e),"image/png")},ac.jpg=function(e){return sc(e,this.bufferCanvasImage(e),"image/jpeg")};var lc={nodeShapeImpl:function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},uc=dc,cc=dc.prototype;function dc(e){var t=this,n=t.cy.window().document;t.data={canvases:new Array(cc.CANVAS_LAYERS),contexts:new Array(cc.CANVAS_LAYERS),canvasNeedsRedraw:new Array(cc.CANVAS_LAYERS),bufferCanvases:new Array(cc.BUFFER_COUNT),bufferContexts:new Array(cc.CANVAS_LAYERS)};t.data.canvasContainer=n.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",r.position="relative",r.zIndex="0",r.overflow="hidden";var i=e.cy.container();i.appendChild(t.data.canvasContainer),i.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)";var a={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};c&&c.userAgent.match(/msie|trident|edge/i)&&(a["-ms-touch-action"]="none",a["touch-action"]="none");for(var o=0;o=n.length)return{done:!0};var r=n[e++];return{value:[r,t.get(r)],done:!1}}}},function(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var n="__proto__",t=Object.create(null);if(void 0!==t[n])return!1;var e=Object.getOwnPropertyNames(t);if(0!=e.length)return!1;if(t[n]=42,42!==t[n])return!1;if(0==Object.getOwnPropertyNames(t).length)return!1;return!0}()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(n){return this.obj[":"+n]},n.prototype.set=function(n,t){this.obj[":"+n]=t},n.prototype[UY]=function(n){delete this.obj[":"+n]},n.prototype.keys=function(){var n=[];for(var t in this.obj)58==t.charCodeAt(0)&&n.push(t.substring(1));return n});return n}()}()}function Gi(n,t){$j(),OT.dc(n,t)}function Ni(n,t){return _g(n,t)}function Oi(n,t){return n.a.B(t)}function Ti(n,t){return n.g[t.e]}function Pi(n,t){return n.i[t.e]}function Ri(n,t){return n.j[t.e]}function Yi(n,t){return n.n[t.e]}function Ai(n,t){return n.o[t.e]}function _i(n,t){return n>t?n:t}function Mi(n,t){return n>t?n:t}function Di(n,t){return n>t?n:t}function xi(n,t){return nt?1:0}function $f(n){return null!=n?oS(n):0}function Uf(n){this.a=$o(),this.b=n}function Ff(n){this.a=$o(),this.b=n}function Vf(n){this.a=n,el.call(this,n)}function zf(){ts(),this.b=new ye(this)}function qf(){var n;qf=e,n=new ai(", "),_l(DT),wA=new nl(n,n)}function Qf(){Qf=e,hA=new hf,bA=new Yf}function Kf(){Kf=e,gA=new h,vA=new l}function Wf(){Wf=e,pA=new Qu,mA=new Ef}function Jf(){Jf=e,CA=new lf,HA=new ys}function Zf(){Zf=e,UA=new g,FA=new v}function Xf(n){n.g=new Rt,n.b=new Rt}function ns(n){n.a=new gt,n.c=new gt}function ts(){ts=e,K$=new Qn,Q$=new rl}function es(){Da.call(this,"IS_NULL",2)}function rs(){_o.call(this,"Head",1)}function cs(){_o.call(this,"Tail",3)}function is(n,t){wm.call(this,n,t,null)}function as(n,t){nH(n,0,n.length,t)}function us(n,t){return Ph(t.a,n.a),n.a}function os(n,t){return n.a*=t,n.b*=t,n}function fs(n,t){ud(),this.a=n,this.b=t}function ss(n,t){return n.a[t.d.k][t.k]}function bs(n,t){return n.a[t.d.k][t.k]}function hs(n,t){return ua(function(n,t){var e,r;e=null,r=n.b;for(;r;)n.a.$b(t,r.d)>=0?r=r.a[1]:(e=r,r=r.a[0]);return e}(n.a,t))}function ls(n,t){return ua(function(n,t){var e,r;e=null,r=n.b;for(;r;)n.a.$b(t,r.d)<=0?r=r.a[0]:(e=r,r=r.a[1]);return e}(n.a,t))}function ws(n,t){return zh(uC(n.a,t),20)}function ds(n,t){return null!=n&&qE(n,t)}function gs(n){return n.a=t)throw new Sc}function Qh(n,t){return _l(n),_l(t),new sl(n,t)}function Kh(n,t){return _l(n),_l(t),new bl(n,t)}function Wh(n,t,e){return n=e+1&&n.splice(0,e+1);break}return n}(OT.ec(n))}function Hl(n,t){var e;return(e=$w(n,t)).g=2,e}function Cl(n,t){n.b=t.b,n.c=t.c,n.d=t.d,n.a=t.a}function Il(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function Ll(n){return n.b.c.length+n.e.c.length}function Gl(n){return Array.isArray(n)&&n.ad===t}function Nl(n,t){return Kf(),-1!=Kj(new Qe(n),t)}function Ol(n,t,e,r,c,i){return WH(n,t,e,r,c,0,i)}function Tl(n,t,e){Zf(),ev.call(this,n.b,t,e,n.d)}function Pl(n,t){Zf(),ev.call(this,n.b,t,n.c,n.d)}function Rl(n,t,e){Gk(t,n.c.length),Io(n.c,t,e)}function Yl(n,t){return Nk(t,n.a.length),n.a[t]}function Al(n){n.sort((function(n,t){return n-t}))}function _l(n){if(null==n)throw new qr;return n}function Ml(n){if(null==n)throw new qr;this.a=n}function Dl(n,t,e){if(n.a!=t)throw new kc;n.a=e}function xl(n,t){if(!n)throw new ii((cc(),t))}function Bl(n,t){if(!n)throw new mi((cc(),t))}function $l(n){if(null==n)throw new qr;return n}function Ul(n){ir.call(this,new sk),Em(this,n)}function Fl(n){this.a=new Vu(n.Y()),Em(this,n)}function Vl(n){this.c=n,this.a=new Fu(this.c.a)}function zl(n){ud(),this.a=(Vd(),new Je(_l(n)))}function ql(){(ql=e)(),nQ=!1,tQ=!0}function Ql(){Ql=e,iQ=Pk(ZY,AT,24,256,0,1)}function Kl(){Kl=e,aU=kl(pl(new dS,(mT(),VB)),d$)}function Wl(){Wl=e,Dx=new m,Bx=new cl,xx=new j}function Jl(n){return null!=n&&Yw(n)&&!(n.ad===t)}function Zl(n){return!Array.isArray(n)&&n.ad===t}function Xl(n,t){return Gs(t)?Ad(n,t):UI(n.d,t)}function nw(n,t){return ds(t,17)&&Ks(n,zh(t,17))}function tw(n,t){return ds(t,17)&&function(n,t){if(t&&n.b[t.e]==t)return Fw(n.b,t.e,null),--n.c,!0;return!1}(n,zh(t,17))}function ew(n,t){var e;return gj(e=CS(n),t),e}function rw(n,t){return!n&&(n=[]),n[n.length]=t,n}function cw(n,t,e){if(!n)throw new ii(function(n,t){var e,r,c,i;cc(),n=null==n?DT:n,n.length,t.length,e=new Xi,i=0,r=0;for(;r0),n.a.sb(n.c=--n.b)}function gw(n){n.b?gw(n.b):n.d.V()&&Xl(n.f.b,n.e)}function vw(n){if(lS(n.d),n.d.d!=n.c)throw new kc}function kw(n,t){if(t[DY]!=n[DY])throw new kc}function pw(n,t){return Kf(),_l(n),_l(t),new Ra(n,t)}function mw(n,t){ud(),Fa.call(this,n,Bj(new Ke(t)))}function jw(n,t,e,r){this.a=n,Yk.call(this,n,t,e,r)}function yw(n){this.a=Math.cos(n),this.b=Math.sin(n)}function Sw(n,t,e){xc.call(this,n),this.b=t,this.a=e}function Ew(n){this.b=new Rt,this.a=new Rt,this.c=n}function Hw(n){this.c=new ui,this.a=new Rt,this.b=n}function Cw(){Cw=e,RA=new ne(!1),YA=new ne(!0)}function Iw(n,t){return++n.d,n.c[n.c.length]=t,!0}function Lw(n,t){Dv(n.d,t,n.b.b,n.b),++n.a,n.c=null}function Gw(n,t){return null==n.a.db(t,n)}function Nw(n,t){return qk(n.slice(0,t),n)}function Ow(n,t){return qk(new Array(t),n)}function Tw(n,t,e){var r;return r=n.b[t],n.b[t]=e,r}function Pw(n){return Es(),Eh(function(n){var t;return t=n.g,zh(t||(n.g=new zt(n)),20)}(n.a).mb(),(Wf(),pA))}function Rw(n){return Kf(),new Af(Df(Kh(n.a,new b)))}function Yw(n){return typeof n===YT||typeof n===$T}function Aw(t){n.setTimeout((function(){throw t}),0)}function _w(n){return _l(n),ds(n,345)?zh(n,345):rH(n)}function Mw(n,t){return null==Jj(n.a,t,(ql(),nQ))}function Dw(n,t){var e;return function(n,t){if(n<0||n>=t)throw new ci(function(n,t){if(n<0)return tG(oP,_j(Ni(WY,1),fP,1,4,["index",iS(n)]));if(t<0)throw new ii(sP+t);return tG("%s (%s) must be less than size (%s)",_j(Ni(WY,1),fP,1,4,["index",iS(n),iS(t)]))}(n,t))}(t,e=n.a.Y()),e-1-t}function xw(n,t,e){var r;return r=Mp(n,t),function(n,t,e){if(e){var r=e.gc();e=r(e)}else e=void 0;n.a[t]=e}(n,t,e),r}function Bw(n,t,e){var r;return rm(e,r=$w(n,t)),r}function $w(n,t){var e;return(e=new cy).i=n,e.d=t,e}function Uw(n,t,e){this.a=n,Av(e,t),this.c=t,this.b=e}function Fw(n,e,r){return function(n){if(!n)throw new Vr}(null==r||function(n,e){switch(Gp(n)){case 5:return Gs(e);case 6:return Ls(e);case 7:return kb(e);case 0:return qE(e,n.__elementTypeId$);case 2:return Yw(e)&&!(e.ad===t);case 1:return Yw(e)&&!(e.ad===t)||qE(e,n.__elementTypeId$);default:return!0}}(n,r)),n[e]=r}function Vw(n){n.a=null,n.e=null,Ik(n.b),n.d=0,++n.c}function zw(n){return n.f||(n.f=new Ju(n))}function qw(n){return n.k||(n.k=new xt(n))}function Qw(n){return n.e||(n.e=new Wa(n))}function Kw(n){var t;return!(t=n.e)&&(n.e=t=n.gb()),t}function Ww(n){return n.c.f.d==n.d.f.d}function Jw(n,t){var e;return Wp(e=new Bv(n),t),e}function Zw(n,t){return n.a+=String.fromCharCode(t),n}function Xw(n){return!n.a&&n.d?n.d.b:n.a}function nd(n){return Qs(n)?0|n:n.l|n.m<<22}function td(n,t){return Gs(t)?yg(n,t):Wo(kg(n.d,t))}function ed(n){return ds(n,19)?zh(n,19).Y():ak(n.mb())}function rd(n){return n?new Fl((qf(),n)):function(n){var t;return Zp(t=new Jc,n),t}(null.mb())}function cd(n,t){return Ko(n)===Ko(t)||null!=n&&vy(n,t)}function id(n,t){return Xc(),xj(ri(Tb(n)),ri(Tb(t)))}function ad(n){return Es(),Eh(n.a.bb().mb(),(Wf(),mA))}function ud(){ud=e,hh(),dA=new lv((Vd(),Vd(),fQ))}function od(){od=e,hh(),EA=new Ku((Vd(),Vd(),bQ))}function fd(n,t){if(null==n)throw new Si((cc(),t))}function sd(n,t,e,r){n.g[t.e][e.e]=r,n.g[e.e][t.e]=r}function bd(n){Nf(-1!=n.c),n.d.vb(n.c),n.b=n.c,n.c=-1}function hd(n){this.c=n,this.b=n.a.b.a,Ws(n.a.c,this)}function ld(n){jN.call(this,new Ke(n)),this.a=new ui}function wd(){Lc.call(this,new Pc(new jr)),this.a=this}function dd(){kp(),this.b=(Es(),new jr),this.a=new jr}function gd(n){md(n.a),n.b=Pk(WY,fP,1,n.b.length,4,1)}function vd(n){return!n.b&&(n.b=new Ki(n.c.W())),n.b}function kd(n,t){var e;return IO(n,t,e=new vt),e.d}function pd(n,t){var e;return(e=$w("",n)).k=t,e.g=1,e}function md(n){var t;for(t=n.mb();t.G();)t.H(),t.I()}function jd(n,t){return ds(t,79)&&Rc(n.b,zh(t,79).mc())}function yd(n,t,e){return Gs(t)?zg(n,t,e):rI(n.d,t,e)}function Sd(n,t,e,r){this.d=n,this.b=t,this.a=e,this.c=r}function Ed(n,t,e,r){this.d=n,this.e=t,this.c=e,this.b=r}function Hd(n,t,e,r){this.a=n,this.c=t,this.b=e,this.d=r}function Cd(n,t,e,r){Ta.call(this,n,t),this.a=e,this.b=r}function Id(n,t){return cc(),n==t?0:n0?1:0}function ng(n,t){return Xm(function(n,t){return Lh(n.l&t.l,n.m&t.m,n.h&t.h)}(Qs(n)?oj(n):n,Qs(t)?oj(t):t))}function tg(n){return 0==n.b?null:(Pf(0!=n.b),Jp(n,n.a.a))}function eg(n){n.d=n.d-15,n.b=n.b-15,n.c=n.c+15,n.a=n.a+15}function rg(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function cg(n,t,e){this.d=n,this.b=new Rt,this.c=t,this.a=e}function ig(n,t){!function(n,t){n.a=t}(this,new Za(n.a,n.b)),function(n,t){n.b=t}(this,Fh(t))}function ag(n){gs(new Qe(bH(n.e)))&&(function(n){var t,e,r;for(r=new Vl(new rr(n.c).a);vs(r.a);)switch(r.b=ik(r.a),t=zh((e=new Mo(r.c,r.b)).b.b[e.a.e],62),zh(e.a,67).e){case 0:t.d=0,t.e=-(t.b+n.d);break;case 1:t.d=(n.e.e.j.a-t.c)/2,t.e=-(t.b+n.d);break;case 2:t.d=n.e.e.j.a-t.c,t.e=-(t.b+n.d);break;case 3:t.d=0,t.e=n.e.e.j.b+n.d;break;case 4:t.d=(n.e.e.j.a-t.c)/2,t.e=n.e.e.j.b+n.d;break;case 5:t.d=n.e.e.j.a-t.c,t.e=n.e.e.j.b+n.d;break;case 6:t.d=-(t.c+n.d),t.e=0;break;case 7:t.d=-(t.c+n.d),t.e=(n.e.e.j.b-t.b)/2;break;case 8:t.d=-(t.c+n.d),t.e=n.e.e.j.b-t.b;break;case 9:t.d=n.e.e.j.a+n.d,t.e=0;break;case 10:t.d=n.e.e.j.a+n.d,t.e=(n.e.e.j.b-t.b)/2;break;case 11:t.d=n.e.e.j.a+n.d,t.e=n.e.e.j.b-t.b;break;case 12:t.d=n.q.b+n.d,t.e=n.q.d+n.d;break;case 13:t.d=(n.e.e.j.a-t.c)/2,t.e=n.q.d+n.d;break;case 14:t.d=n.e.e.j.a-n.q.c-t.c-n.d,t.e=n.q.d+n.d;break;case 15:t.d=n.q.b+n.d,t.e=(n.e.e.j.b-t.b)/2;break;case 16:t.d=(n.e.e.j.a-t.c)/2,t.e=(n.e.e.j.b-t.b)/2;break;case 17:t.d=n.e.e.j.a-n.q.c-t.c-n.d,t.e=(n.e.e.j.b-t.b)/2;break;case 18:t.d=n.q.b+n.d,t.e=n.e.e.j.b-n.q.a-t.b-n.d;break;case 19:t.d=(n.e.e.j.a-t.c)/2,t.e=n.e.e.j.b-n.q.a-t.b-n.d;break;case 20:t.d=n.e.e.j.a-n.q.c-t.c-n.d,t.e=n.e.e.j.b-n.q.a-t.b-n.d}}(n),function(n){var t,e,r,c,i;for(r=new Qe(bH(n.e));r.a>>0).toString(16)}function jg(n,t){return function(n,t){return ql(),n==t?0:n?1:-1}(ei(($l(n),n)),ei(($l(t),t)))}function yg(n,t){return null==t?Wo(kg(n.d,null)):Ro(n.e,t)}function Sg(n,t,e){return new Dg(n.c,vN(n.b,function(n,t,e){return new SI(n,!1,null,(Qf(),hA),!0,t,e)}(n.d,t,e)),n.a)}function Eg(n){return 0|Math.max(Math.min(n,UT),-2147483648)}function Hg(n){this.e=n,this.b=this.e.a.entries(),this.a=[]}function Cg(n){this.c=n,this.b=new ry(new De(this.c.a).a)}function Ig(n){this.b=(Kf(),Kf(),Kf(),gA),this.a=zh(_l(n),35)}function Lg(n,t,e){Zf(),Rh.call(this,n,t),null!=e&&(this.c=e)}function Gg(n,t,e){if(n<0||te)throw new ci(function(n,t,e){if(n<0||n>e)return cI(n,e,"start index");if(t<0||t>e)return cI(t,e,"end index");return tG("end index (%s) must not be less than start index (%s)",_j(Ni(WY,1),fP,1,4,[iS(t),iS(n)]))}(n,t,e))}function Ng(n,t){if(null==n)throw new Si((cc(),t));return n}function Og(n){if(!bS(n))throw new mc;return n.c=n.b,n.b.H()}function Tg(n){var t;return gj(t=new Ia(vj(n.length)),n),t}function Pg(n){var t;t=n.c.b.b,n.b=t,n.a=n.c.b,t.a=n.c.b.b=n}function Rg(n){this.b=null,!n&&(Xu(),Xu(),n=wQ),this.a=n}function Yg(n){this.b=n,this.a=new tv(this.b,this.b.c.length)}function Ag(n){return ud(),_l(n),OE(n||Uh(new Qe(null)))}function _g(n,t){var e=n.a=n.a||[];return e[t]||(e[t]=n.Oc(t))}function Mg(n,t,e){var r;mH(t,e,n.c.length),r=e-t,pa(n.c,t,r)}function Dg(n,t,e){Oa.call(this,t.a),this.c=n,this.b=t,this.a=e}function xg(n){return Vo(n.c),n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function Bg(n){return Vo(n.e),n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function $g(n){return nj(_j(Ni(BA,1),yR,10,0,[n.f.i,n.i,n.a]))}function Ug(){Ug=e,rU=ay((qd(),_j(Ni(iU,1),bP,193,0,[tU,eU])))}function Fg(){Fg=e,D$=ay((Pv(),_j(Ni(z$,1),bP,175,0,[_$,M$])))}function Vg(){Vg=e,jU=ay((gv(),_j(Ni(SU,1),bP,192,0,[mU,pU])))}function zg(n,t,e){return null==t?rI(n.d,null,e):kS(n.e,t,e)}function qg(n,t){return tw(n.a,t)?Tw(n,zh(t,17).e,null):null}function Qg(n){return _l(n),dH((Kf(),new Af(Df(Kh(n.a,new b)))))}function Kg(n,t){var e,r;return r=iw(n,t),e=n.a.ub(r),new $a(n,e)}function Wg(n,t,e){var r;(r=new it).b=t,r.a=e,++t.b,Ph(n.d,r)}function Jg(n,t,e){n.d&&zk(n.d.b,n),n.d=t,n.d&&Rl(n.d.b,e,n)}function Zg(n,t,e){mH(t,e,n.Y()),this.c=n,this.a=t,this.b=e-t}function Xg(n,t,e,r){this.d=n,this.b=t,this.a=e,this.c=r}function nv(n,t){Lc.call(this,jm(_l(n),_l(t))),this.b=n,this.c=t}function tv(n,t){this.a=n,xe.call(this,n),Gk(t,n.Y()),this.b=t}function ev(n,t,e,r){Zf(),Lg.call(this,n,t,e),null!=r&&(this.d=r)}function rv(n){return Pf(n.a2e3&&(TA=t,PA=n.setTimeout(ba,10));if(0==OA++)return function(n){var t,e;if(n.a){e=null;do{t=n.a,n.a=null,e=FC(t,e)}while(n.a);n.a=e}}((oc(),NA)),!0;return!1}();try{return function(n,t,e){return n.apply(t,e)}(t,e,r)}finally{!function(t){t&&function(n){var t,e;if(n.b){e=null;do{t=n.b,n.b=null,e=FC(t,e)}while(n.b);n.b=e}}((oc(),NA)),--OA,t&&-1!=PA&&(!function(t){n.clearTimeout(t)}(PA),PA=-1)}(c)}}function hv(n){return ds(n,19)?zh(n,19).V():!n.mb().G()}function lv(n){ud(),this.a=(Vd(),ds(n,63)?new Ji(n):new Zs(n))}function wv(){wv=e,WV=new yo(uR,0),JV=new yo("TOP_LEFT",1)}function dv(){dv=e,qU=new oo("DOWN",0),QU=new oo("UP",1)}function gv(){gv=e,mU=new _u("LAYER_SWEEP",0),pU=new _u(gY,1)}function vv(){vv=e,LU=new io("UPPER",0),IU=new io("LOWER",1)}function kv(n,t){return!!ds(t,21)&&jH(n.a,zh(t,21))}function pv(n,t){return!!ds(t,21)&&jH(n.a,zh(t,21))}function mv(n,t){return!!ds(t,21)&&jH(n.a,zh(t,21))}function jv(n){var t;return Uy(t=new Dd,n),ip(t,(HT(),W_),null),t}function yv(n,t){return t===n?"(this Map)":(cc(),null==t?DT:rH(t))}function Sv(n,t,e,r){return ds(e,63)?new yb(n,t,e,r):new jw(n,t,e,r)}function Ev(){Ev=e,eD=ay((Vp(),_j(Ni(ED,1),bP,149,0,[nD,XM,ZM])))}function Hv(){Hv=e,N_=ay((Yy(),_j(Ni(YM,1),bP,166,0,[I_,C_,L_])))}function Cv(){Cv=e,sU=ay((jp(),_j(Ni(wU,1),bP,173,0,[fU,oU,uU])))}function Iv(n,t){var e;Vd(),nH(e=n.ob(),0,e.length,t),function(n,t){var e,r;for(r=n.Y(),e=0;et)throw new ci(cI(n,t,"index"));return n}function _v(n,t,e){_l(n),function(n){var t,e,r;for(Iv(n.c,n.a),r=new Qe(n.c);r.a>22&VP,n<0?zP:0)}function kk(){kk=e,i_=ay((Py(),_j(Ni(s_,1),bP,59,0,[e_,t_,n_,XA,r_])))}function pk(){pk=e,HD=ay((FO(),_j(Ni(ND,1),bP,32,0,[yD,cD,rD,jD,SD])))}function mk(){mk=e,UM=ay((BS(),_j(Ni(WM,1),bP,100,0,[BM,xM,_M,MM,DM])))}function jk(){jk=e,EU=kl(yl(yl(yl(jl(new dS,(mT(),i$)),h$),_B),qB),c$)}function yk(n,t){var e;for(e=t.mb();e.G();)_G(n,zh(e.H(),55),0,0)}function Sk(n,t,e){var r;for(r=n.mb();r.G();)HG(zh(r.H(),55),t,e)}function Ek(n,t,e){var r,c;for(r=0,c=0;ct)throw new ci("Index: "+n+", Size: "+t)}function Nk(n,t){if(n<0||n>=t)throw new ci("Index: "+n+", Size: "+t)}function Ok(n,t){var e;return!!(e=sy(n,t.yb()))&&Nd(e.e,t.zb())}function Tk(n,t){var e;return e=n.d,t>0?zh(vl(e.a,t-1),9):null}function Pk(n,t,e,r,c,i){var a;return a=EH(c,r),9!=c&&_j(Ni(n,i),t,e,c,a),a}function Rk(n){var t;if(!km(n))throw new mc;return n.d=1,t=n.c,n.c=null,t}function Yk(n,t,e,r){this.f=n,this.e=t,this.d=e,this.b=r,this.c=r?r.d:null}function Ak(n){var t;return t=zh(vl(n.f,0),7),zh(Pj(t,(jT(),Oz)),7)}function _k(n){var t;return t=zh(vl(n.f,0),7),zh(Pj(t,(jT(),Oz)),7)}function Mk(){Mk=e,qq=ay((FS(),_j(Ni(Qq,1),bP,153,0,[Uq,Vq,Fq])))}function Dk(){Dk=e,Zq=ay((Qm(),_j(Ni(Xq,1),bP,172,0,[Kq,Wq,Jq])))}function xk(){xk=e,ZA=ay((SE(),_j(Ni(c_,1),bP,103,0,[zA,KA,WA,JA,qA,QA])))}function Bk(){Bk=e,H_=ay((QH(),_j(Ni(G_,1),bP,133,0,[y_,m_,S_,k_,j_,p_])))}function $k(){$k=e,JM=ay((NH(),_j(Ni(tD,1),bP,28,0,[KM,QM,qM,FM,zM,VM])))}function Uk(){Uk=e,q$=ay((LC(),_j(Ni(W$,1),bP,125,0,[F$,B$,V$,U$,$$,x$])))}function Fk(){Fk=e,VA=new Rh("de.cau.cs.kieler.labels.labelManager",null)}function Vk(n,t){var e;return(e=new vt).c=!0,e.d=t.zb(),IO(n,t.yb(),e)}function zk(n,t){var e;return-1!=(e=ap(n,t,0))&&(n.vb(e),!0)}function qk(n,t){return 9!=Gp(t)&&_j(Lp(t),t._c,t.__elementTypeId$,Gp(t),n),n}function Qk(n){return kw(n.c.a.c,n),Pf(n.b!=n.c.a.b),n.a=n.b,n.b=n.b.a,n.a}function Kk(n){Nf(!!n.c),kw(n.e,n),n.c.I(),n.c=null,n.b=lj(n),Ws(n.e,n)}function Wk(n,t,e){Lc.call(this,jm(_l(n),_l(t))),this.b=n,this.c=t,this.a=e}function Jk(n,t,e,r){this.b=new Ie(this),this.a=n,this.c=t,this.e=e,this.d=r}function Zk(n){ey.call(this,n,0),pb(this),this.b.b=this.b,this.b.a=this.b}function Xk(n,t){Do.call(this,n,t),this.a=Pk(pQ,fP,183,2,0,1),this.b=!0}function np(n,t){return Gs(t)?null==t?!!kg(n.d,null):function(n,t){return!(void 0===Ea(n.a,t))}(n.e,t):!!kg(n.d,t)}function tp(n,t){return Ii(),(n-t>0?n-t:-(n-t))<=UP||n==t||isNaN(n)&&isNaN(t)}function ep(n,t){return Ii(),(n-t>0?n-t:-(n-t))<=UP||n==t||isNaN(n)&&isNaN(t)}function rp(n){var t,e;t=!0;do{e=t?gS(n):RS(n),t=!t}while(e);dj(n,n.d)}function cp(n,t,e){var r;if(null==t)throw new qr;return r=Od(n,t),function(n,t,e){if(e){var r=e.gc();n.a[t]=r(e)}else delete n.a[t]}(n,t,e),r}function ip(n,t,e){return!n.n&&(n.n=new jr),null==e?Xl(n.n,t):yd(n.n,t,e),n}function ap(n,t,e){for(;e=n.a.c.length;)Ph(n.a,new oi);return zh(vl(n.a,t),20)}function op(n,t,e,r,c){var i;return rm(e,i=$w(n,t)),i.g=c?8:0,i.f=r,i.e=c,i}function fp(n,t){var e;this.f=n,this.b=t,e=zh(td(n.b,t),126),this.c=e?e.b:null}function sp(n,t){var e,r;for(e=0,r=t.length;e0&&(r+=function(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S;for(c=0,k=0,Es(),v=new jr,r=new jr,i=new jr,S=new jr,function(n,t,e){var r,c,i,a,u,o,f,s,b,h,l;for(r=0,c=0,s=0;s0&&yd(t,i,iS(r+=i.b.c.length+i.e.c.length));else{for(u=RC(o,(FO(),rD)).mb();u.G();)r+=(i=zh(u.H(),7)).b.c.length+i.e.c.length;for(a=RC(o,rD).mb();a.G();)(i=zh(a.H(),7)).b.c.length+i.e.c.length>0&&yd(t,i,iS(r))}for(f=n.length-1;f>=0;f--)if(qs(zh(Pj(o=n[f],(HT(),lM)),28)))for(h=RC(o,(FO(),SD)).mb();h.G();)(b=zh(h.H(),7)).b.c.length+b.e.c.length>0&&yd(e,b,iS(c+=b.b.c.length+b.e.c.length));else{for(l=RC(o,(FO(),SD)).mb();l.G();)c+=(b=zh(l.H(),7)).b.c.length+b.e.c.length;for(h=RC(o,SD).mb();h.G();)(b=zh(h.H(),7)).b.c.length+b.e.c.length>0&&yd(e,b,iS(c))}}(n,i,S),t=null,g=0,y=0,p=!0,o=!0,h=0,w=n.length;hf.k&&(++t,l=!0),w&&f&&w.k>f.k&&(++t,d=!0),h&&u&&h.ku.k&&(++t,o=!0),h&&u&&h.kf.k&&(++t,s=!0),o&&s&&u==f&&--t)}}return t}(t)),r}function lp(n,t){var e;return(e=zh(Xl(n.c,t),176))?(Il(e),e.e):null}function wp(n){return hy(n,UT)>0?UT:hy(n,KT)<0?KT:nd(n)}function dp(n){return qf(),Yp(n,"size"),nd(function(n,t){return hy(n,t)<0}(Oy(n,8),NP)?Oy(n,8):NP),new Xi}function gp(n){fh.call(this,(cc(),null==n?DT:rH(n)),ds(n,46)?zh(n,46):null)}function vp(n){Sf(this),xl(n>=0,"Initial capacity must not be negative")}function kp(){kp=e,Ox=Sl(yl(yl(new dS,(mT(),a$)),QB),t$),Tx=jl(new dS,ZB)}function pp(){pp=e,gB=new B,wB=new $,dB=new U,lB=new F,vB=new V,kB=new z}function mp(){mp=e,mQ=new _o("All",0),jQ=new rs,yQ=new js,SQ=new cs}function jp(){jp=e,fU=new Au(mY,0),oU=new Au("LONGEST_PATH",1),uU=new Au(gY,2)}function yp(){yp=e,MA=Lh(VP,VP,524287),DA=Lh(0,0,524288),vk(1),vk(2),xA=vk(0)}function Sp(){Sp=e,R$=ay((mL(),_j(Ni(Y$,1),bP,109,0,[T$,I$,N$,L$,G$,C$,O$,P$])))}function Ep(){Ep=e,$U=ay((cH(),_j(Ni(FU,1),bP,141,0,[BU,MU,DU,_U,xU])))}function Hp(){Hp=e,gV=ay((TH(),_j(Ni(SV,1),bP,115,0,[bV,sV,lV,hV,wV])))}function Cp(){Cp=e,aq=ay((iH(),_j(Ni(sq,1),bP,85,0,[cq,nq,tq,eq,rq])))}function Ip(n){lC(),function(n,t,e){n.a=1502^t,n.b=e^FY}(this,nd(ng(Xm(function(n,t){var e,r,c,i,a;t&=63,e=n.h,(r=0!=(524288&e))&&(e|=-1048576),t<22?(a=e>>t,i=n.m>>t|e<<22-t,c=n.l>>t|n.m<<22-t):t<44?(a=r?zP:0,i=e>>t-22,c=n.m>>t-22|e<<44-t):(a=r?zP:0,i=r?VP:0,c=e>>t-44);return Lh(c&VP,i&VP,a&zP)}(Qs(n)?oj(n):n,24)),zY)),nd(ng(n,zY)))}function Lp(n){return Gs(n)?XY:Ls(n)?rQ:kb(n)?eQ:Zl(n)||Gl(n)?n.$c:n.$c||GA}function Gp(n){return null==n.__elementTypeCategory$?9:n.__elementTypeCategory$}function Np(n){var t,e;for(ro(),e=nR,t=0;te&&(e=n[t]);return e}function Op(n,t){var e;return(e=zh(td(n.b,t),106))||(e=t.rc(),yd(n.b,t,e)),e}function Tp(n,t){var e;return(e=zh(td(n.c,t),176))?(Us(n,e),e.e):null}function Pp(n,t,e,r){var c;(c=zh(Tp(n.e,t),116)).b+=e,c.a+=r,FE(n.e,t,c),n.d=!0}function Rp(n){var t;for(++n.a,t=n.c.a.length;n.a"+n.d.f+"("+n.d+")":"e_"+wb(n)}function Fp(){Fp=e,AM=ay((PI(),_j(Ni($M,1),bP,41,0,[IM,CM,GM,RM,PM,TM,NM,OM,LM])))}function Vp(){Vp=e,nD=new du("OUTSIDE",0),XM=new du("INSIDE",1),ZM=new du("FIXED",2)}function zp(){zp=e,qV=new jo(sR,0),QV=new jo("TOP",1),zV=new jo("BOTTOM",2)}function qp(){qp=e,ZU=new so("CLASSIC",0),XU=new so("IMPROVE_STRAIGHTNESS",1)}function Qp(){this.e=new ui,this.a=new Ud,this.d=new ui,this.b=new Rt,this.c=new Rt}function Kp(n,t,e){this.b=t,this.a=n,this.c=e,Ph(this.a.e,this),Ph(this.b.b,this)}function Wp(n,t){n.d=xi(n.d,t.d),n.c=_i(n.c,t.c),n.a=_i(n.a,t.a),n.b=xi(n.b,t.b)}function Jp(n,t){var e;return e=t.c,t.a.b=t.b,t.b.a=t.a,t.a=t.b=null,t.c=null,--n.b,e}function Zp(n,t){var e;for(Kf(),_l(n),_l(t),e=!1;t.G();)e|=n.ib(t.H());return e}function Xp(n){var t;return kw(n.e,n),Pf(n.b),n.c=n.a,t=zh(n.a.H(),21),n.b=lj(n),t}function nm(n){return KP=0x8000000000000000)return yp(),MA;c=!1,n<0&&(c=!0,n=-n);r=0,n>=QP&&(n-=(r=Eg(n/QP))*QP);e=0,n>=qP&&(n-=(e=Eg(n/qP))*qP);return t=Eg(n),i=Lh(t,e,r),c&&(a=1+~i.l&VP,u=~i.m+(0==a?1:0)&VP,o=~i.h+(0==a&&0==u?1:0)&zP,i.l=a,i.m=u,i.h=o),i}(n))}function tm(n){if(n){if(n.V())throw new mc;return n.sb(n.Y()-1)}return function(n){var t;for(Kf();;)if(t=n.H(),!n.G())return t}(null.mb())}function em(n,t){var e;return t<(e=n.d).a.c.length-1?zh(vl(e.a,t+1),9):null}function rm(n,t){if(n){t.k=n;var e=function(n){if(n.Tc())return null;var t=n.k;return LT[t]}(t);e?e.$c=t:LT[n]=[t]}}function cm(n,t){var e,r;r=!1;do{r|=e=n.i?Nj(n,t):Gj(n,t)}while(e);return r}function im(n,t,e){var r,c;r=t;do{c=ri(n.n[r.k])+e,n.n[r.k]=c,r=n.a[r.k]}while(r!=t)}function am(n,t){return Ng(n,"set1"),Ng(t,"set2"),eo(),new gh(n,new Ga(t),t)}function um(n){var t=/function(?:\s+([\w$]+))?\s*\(/.exec(n);return t&&t[1]||xT}function om(){om=e,iV=ay((qH(),_j(Ni(fV,1),bP,123,0,[cV,rV,eV,nV,XF,tV])))}function fm(){fm=e,EV=ay((zH(),_j(Ni(YV,1),bP,124,0,[mV,pV,yV,kV,jV,vV])))}function sm(){sm=e,aQ=_j(Ni(OQ,1),BP,26,12,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function bm(){bm=e,fq=new Eo(fR,0),uq=new Eo("INPUT",1),oq=new Eo("OUTPUT",2)}function hm(n){this.c=n,this.b=new ry(new De(n.b).a),this.a=null,this.d=(Kf(),Kf(),vA)}function lm(n){this.e=n,this.d=new Ia(vj(aw(this.e).Y())),this.c=this.e.a,this.b=this.e.c}function wm(n,t,e){this.c=n,Fv.call(this),this.b=t,this.j=new Ed(t.d,t.e,t.c,t.b),this.a=e}function dm(n,t){n.j>0&&n.c0&&0!=n.e&&dm(n.g,t/n.j*n.g.d))}function gm(n){return n.b.d.f.g==(KH(),uB)?zh(Pj(n.b.d.f,(jT(),Oz)),7):n.b.d}function vm(n){return n.b.c.f.g==(KH(),uB)?zh(Pj(n.b.c.f,(jT(),Oz)),7):n.b.c}function km(n){switch(Fo(3!=n.d),n.d){case 2:return!1;case 0:return!0}return function(n){return n.d=3,n.c=function(n){for(var t;n.b.G();)if(t=n.b.H(),n.a.D(t))return t;return n.d=2,null}(n),2!=n.d&&(n.d=0,!0)}(n)}function pm(n){switch(n.e){case 2:return FO(),SD;case 4:return FO(),rD;default:return n}}function mm(n){switch(n.e){case 1:return FO(),jD;case 3:return FO(),cD;default:return n}}function jm(n,t){var e;return Vd(),e=new Vu(1),Gs(n)?zg(e,n,t):rI(e.d,n,t),new nr(e)}function ym(n,t){return n.g?(n.g=ym(n.g,t),--n.a,n.j=Ty(n.j,t.c),oC(n)):n.e}function Sm(n,t){return n.e?(n.e=Sm(n.e,t),--n.a,n.j=Ty(n.j,t.c),oC(n)):n.g}function Em(n,t){var e,r,c;for($l(t),e=!1,c=t.mb();c.G();)r=c.H(),e|=n.ib(r);return e}function Hm(n){var t,e;for(e=new _r,t=n.b.mb();t.G();)Th(e,zh(t.H(),92).a);return e}function Cm(n){var t,e,r;for(t=0,r=n.mb();r.G();)t+=($l(e=Tb(r.H())),e);return t/n.Y()}function Im(n,t){var e;return(e=zh(td(n.c,t),200))||((e=new Wr).c=t,yd(n.c,e.c,e)),e}function Lm(n,t){var e;return $l(t),e=t.e,!n.b[e]&&(Fw(n.b,e,t),++n.c,!0)}function Gm(n,t){var e,r;return e=1-t,r=n.a[e],n.a[e]=r.a[t],r.a[t]=n,n.b=!0,r.b=!1,r}function Nm(n,t){var e;return!!ds(t,10)&&(e=zh(t,10),n.a==e.a&&n.b==e.b)}function Om(n,t,e){return n.g=new Am(t,e),Ib(n,n.g,n.i),n.d=Di(2,n.d),++n.a,n.j=Ny(n.j,e),n}function Tm(n,t,e){return n.e=new Am(t,e),Ib(n.f,n.e,n),n.d=Di(2,n.d),++n.a,n.j=Ny(n.j,e),n}function Pm(n,t){var e=n.a,r=0;for(var c in e)e.hasOwnProperty(c)&&(t[r++]=c);return t}function Rm(n,t){var e,r;for($l(t),r=t.bb().mb();r.G();)e=zh(r.H(),21),n.db(e.yb(),e.zb())}function Ym(n,t,e){this.g=n,this.d=t,this.e=e,this.a=new Rt,function(n){var t,e,r,c,i;for(i=new zb(n.d,n.e),c=YL(i);c.G();)for(r=zh(c.H(),7),e=new Qe(n.e==(FO(),SD)?r.b:r.e);e.a0),this.b=n,this.c=t,this.j=t,this.a=1,this.d=1,this.e=null,this.g=null}function _m(n){return 1.4901161193847656e-8*zI(n,26)+11102230246251565e-32*zI(n,27)}function Mm(n){return ds(n,87)?ov(zh(n,87)):ds(n,88)?zh(n,88).a:ds(n,63)?new Tc(n):new Ka(n)}function Dm(n){var t;return t=zh(Pj(n,(jT(),kz)),32),n.g==(KH(),uB)&&(t==(FO(),SD)||t==rD)}function xm(n,t){return!!function(n,t){var e,r,c,i;for(e=zh(Pj(t,(jT(),gz)),18),i=zh(uC(eB,e),18),c=i.mb();c.G();)if(r=zh(c.H(),18),!zh(uC(n.a,r),20).V())return!1;return!0}(n,t)&&(LI(n.a,zh(Pj(t,(jT(),gz)),18),t),!0)}function Bm(n,t){var e;if(t)for(e=0;e<6;e++)zh(vl(n.a,e),18).jb(zh(vl(t.a,e),19));return n}function $m(n,t){var e;return n.b?null:(e=function(n,t){return new Lb(n>0?n-1:n,t)}(n.e,n.f),Th(n.a,e),e.g=n,n.d=t,e)}function Um(n,t){var e,r;for(r=BE(n,0);r.b!=r.d.c;)(e=zh(Yv(r),10)).a+=t.a,e.b+=t.b;return n}function Fm(n,t){var e,r;for(e=0;e0?n.g?Jm(n.g,t,e):0:n.c}function Zm(n,t){var e,r;return!!n.c&&(r=n.g,(e=n.a.$b(t,r))>0|0==e&n.f==(Qf(),hA))}function Xm(n){var t;return 0==(t=n.h)?n.l+n.m*qP:t==zP?n.l+n.m*qP-QP:n}function nj(n){var t,e,r,c;for(t=new ui,r=0,c=n.length;r=c;i--)n[i+1]=n[i];n[c]=r}function aj(n,t,e,r){var c,i;for(c=function(n,t,e,r){var c,i,a,u;i=t,c=e-1;for(;i<=c;)if((u=n[a=i+c>>>1])r))return a;c=a-1}return-(i+1)}(n,t,e,r),c<0&&(c=-c-1),i=e-1;i>=c;i--)n[i+1]=n[i];n[c]=r}function uj(n,t){var e,r;for($l(t),r=t.mb();r.G();)if(e=r.H(),!n.kb(e))return!1;return!0}function oj(n){var t,e,r;return e=0,(r=n)<0&&(r+=QP,e=zP),t=Eg(r/qP),Lh(Eg(r-t*qP),t,e)}function fj(n,t){return n.c.c=Pk(WY,fP,1,0,4,1),OC(n,n.e,t),OC(n,n.a,t),Vd(),Iv(n.c,null),function(n){var t,e,r;for(t=0,r=new Qe(n.c);r.a0;r--)e|=eE(n,t,r-1,r);return e}function Nj(n,t){var e,r,c;for(e=!1,r=n.d[t].length,c=0;c1&&(Iv(t,n.b),function(n,t){var e,r,c,i,a,u,o,f,s;for(c=new Rt,o=new Qe(t);o.at?1:n==t?0:isNaN(n)?isNaN(t)?0:1:-1}function Bj(n){switch(n.Y()){case 0:return dA;case 1:return new zl(n.mb().H());default:return new lv(n)}}function $j(){var n,t;$j=e,t=!(Error.stackTraceLimit||"stack"in new Error),n=new kt,OT=t?new i:n}function Uj(){Uj=e,kx=new Rh("intCoordinates",(ql(),ql(),nQ)),px=new wl("jsonObject"),mx=new Za(0,0)}function Fj(){Fj=e,SB=new Nu("MIRROR_X",0),EB=new Nu("TRANSPOSE",1),yB=new Nu("MIRROR_AND_TRANSPOSE",2)}function Vj(){Vj=e,uV=new vo(sR,0),aV=new vo("INCOMING_ONLY",1),oV=new vo("OUTGOING_ONLY",2)}function zj(){return JO(),_j(Ni(FF,1),bP,60,0,[yF,pF,kF,HF,EF,UF,$F,SF,mF,jF,CF,xF,BF])}function qj(){var n,t,r,c;for(qj=e,A$=new AS(FF),r=0,c=(t=zj()).length;r0)return qh(t-1,n.a.c.length),Hk(n.a,t-1);throw new pc}function ty(n){n.b.c.length-n.e.c.length<0?(Ub(n,(FO(),rD)),n.a.a=n.j.a):(Ub(n,(FO(),SD)),n.a.a=0)}function ey(n,t){xl(n>=0,"Negative initial capacity"),xl(t>=0,"Non-positive load factor"),Ik(this)}function ry(n){var t;this.e=n,this.d=new uk(this.e.e),this.a=this.d,this.b=lj(this),t=n[DY],this[DY]=t}function cy(){this.n=null,this.j=null,this.i=null,this.d=null,this.b=null,this.k=null,this.a=null}function iy(n){var t,e,r,c;for(c=1,e=0,r=n.length;e=48&&n<58?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function Gy(n){switch(hh(),n.Y()){case 0:return od(),EA;case 1:return new oa(n.mb().H());default:return new Ku(n)}}function Ny(n,t){var e;return Qs(n)&&Qs(t)&&KP<(e=n+t)&&e>22),c=n.h+t.h+(r>>22),Lh(e&VP,r&VP,c&zP)}(Qs(n)?oj(n):n,Qs(t)?oj(t):t))}function Oy(n,t){var e;return Qs(n)&&Qs(t)&&KP<(e=n*t)&&e>13|(15&n.m)<<9,c=n.m>>4&8191,i=n.m>>17|(255&n.h)<<5,a=(1048320&n.h)>>8,u=8191&t.l,o=t.l>>13|(15&t.m)<<9,f=t.m>>4&8191,s=t.m>>17|(255&t.h)<<5,b=(1048320&t.h)>>8,d=e*u,g=r*u,v=c*u,k=i*u,p=a*u,0!=o&&(g+=e*o,v+=r*o,k+=c*o,p+=i*o);0!=f&&(v+=e*f,k+=r*f,p+=c*f);0!=s&&(k+=e*s,p+=r*s);return 0!=b&&(p+=e*b),l=(d>>22)+(g>>9)+((262143&v)<<4)+((31&k)<<17),w=(v>>18)+(k>>5)+((4095&p)<<8),w+=(l+=(h=(d&VP)+((511&g)<<13))>>22)>>22,Lh(h&=VP,l&=VP,w&=zP)}(Qs(n)?oj(n):n,Qs(t)?oj(t):t))}function Ty(n,t){var e;return Qs(n)&&Qs(t)&&KP<(e=n-t)&&e>22),c=n.h-t.h+(r>>22),Lh(e&VP,r&VP,c&zP)}(Qs(n)?oj(n):n,Qs(t)?oj(t):t))}function Py(){Py=e,e_=new uu(fR,0),t_=new uu(aR,1),n_=new uu(iR,2),XA=new uu("DOWN",3),r_=new uu("UP",4)}function Ry(){Ry=e,d_=new fu(fR,0),l_=new fu("POLYLINE",1),h_=new fu("ORTHOGONAL",2),w_=new fu("SPLINES",3)}function Yy(){Yy=e,I_=new bu("INHERIT",0),C_=new bu("INCLUDE_CHILDREN",1),L_=new bu("SEPARATE_CHILDREN",2)}function Ay(){Ay=e,bU=jl(pl(new dS,(mT(),YB)),n$),hU=kl(jl(ml(new dS,GB),IB),LB),lU=kl(yl(new dS,NB),LB)}function _y(){_y=e,dU=jl(pl(new dS,(mT(),YB)),n$),gU=kl(jl(ml(new dS,GB),IB),LB),vU=kl(yl(new dS,NB),LB)}function My(n){this.a=new Rf,this.d=new Rf,this.b=new Rf,this.c=new Rf,this.g=new Rf,this.i=new Rf,this.f=n}function Dy(n,t,e,r,c,i){this.e=new Rt,this.f=(bm(),fq),Ph(this.e,n),this.d=t,this.a=e,this.b=r,this.f=c,this.c=i}function xy(n,t,e,r,c){var i,a;for(a=n.mb();a.G();)(i=zh(a.H(),33)).i.a=t.a,i.i.b=c?t.b:t.b+r.b-i.j.b,t.a+=i.j.a+e}function By(n,t){var e,r;for(xh(),r=Rw(JH(n));bS(r);)if((e=zh(Og(r),12)).d.f==t||e.c.f==t)return e;return null}function $y(n,t,e){var r,c,i;for(r=0,i=BE(n,0);i.b!=i.d.c&&!((c=ri(Tb(Yv(i))))>e);)c>=t&&++r;return r}function Uy(n,t){var e;return t?((e=t.n?t.n:(Vd(),Vd(),sQ)).V()||(n.n?Rm(n.n,e):n.n=new sf(e)),n):n}function Fy(n,t,e){try{!function(n,t,e){if(_l(t),e.G())for(tf(t,n.C(e.H()));e.G();)tf(t,n.c),tf(t,n.C(e.H()))}(n,t,e)}catch(n){throw ds(n=ly(n),181)?new gp(n):zy(n)}return t}function Vy(n,t,e){try{!function(n,t,e){var r,c;if(_l(t),e.G())for(c=zh(e.H(),21),tf(t,Is(n.a,c.yb())),tf(t,n.b),tf(t,Is(n.a,c.zb()));e.G();)tf(t,n.a.c),r=zh(e.H(),21),tf(t,Is(n.a,r.yb())),tf(t,n.b),tf(t,Is(n.a,r.zb()))}(n,t,e)}catch(n){throw ds(n=ly(n),181)?new gp(n):zy(n)}return t}function zy(n){var t;return ds(n,164)&&Ko((t=zh(n,164)).b)!==Ko((rc(),NT))?Ko(t.b)===Ko(NT)?null:t.b:n}function qy(n,t){var e;for(e=zh(Pj(Xw(n),(jT(),Az)),9);e;){if(e==t)return!0;e=zh(Pj(Xw(e),Az),9)}return!1}function Qy(n){switch(zh(Pj(n,(jT(),Sz)),140).e){case 1:ip(n,Sz,(zp(),zV));break;case 2:ip(n,Sz,(zp(),QV))}}function Ky(n){switch(hh(),n.c){case 0:return od(),EA;case 1:return new oa(KC(new Fu(n)));default:return new Gc(n)}}function Wy(n){var t,e;for(ud(),t=0,e=n.length;t-129&&n<128?(t=n+128,!(e=(Ql(),iQ)[t])&&(e=iQ[t]=new Ne(n)),e):new Ne(n)}function aS(n){var t,e;for(t=xH(n.b,n.d),e=UT;e>t;){if(dj(n,n.d),0==t){e=0;break}gS(n),RS(n),e=t,t=xH(n.b,n.d)}n.c=e}function uS(){var n,t,e;lC(),e=kQ+++(Date.now?Date.now():(new Date).getTime()),n=Eg(Math.floor(e*yY))&zY,t=Eg(e-n*VY),this.a=1502^n,this.b=t^FY}function oS(n){return Gs(n)?EE(n):Ls(n)?Eg(($l(n),n)):kb(n)?ei(($l(n),n))?1231:1237:Zl(n)?n.v():(Gl(n),wb(n))}function fS(n,t,e,r){var c,i,a;for(a=0,i=YL(new zb(t,r));i.G();)c=zh(i.H(),7),yd(n.i,c,iS(a++));yd(e,t,iS(a))}function sS(n){var t;return(t=zh(Pj(n,(HT(),x_)),59))==(Py(),e_)?zh(Pj(n,(jT(),nz)),15).a>=1?t_:XA:t}function bS(n){if(_l(n.b),n.b.G())return!0;for(;n.a.G();)if(_l(n.b=n.Wb(n.a.H())),n.b.G())return!0;return!1}function hS(n){return n.d==n.c.d&&n.i==n.g.d||(n.a.c=Pk(WY,fP,1,0,4,1),wj(n.a,n.c),wj(n.a,n.g),n.d=n.c.d,n.i=n.g.d),n.a}function lS(n){var t;if(n.b){if(lS(n.b),n.b.d!=n.c)throw new kc}else n.d.V()&&(t=zh(td(n.f.b,n.e),19))&&(n.d=t)}function wS(n,t,e,r,c){var i,a,u,o;for(Aj(t,o=gk(n),r,c,e),i=0,u=new Qe(o);u.at){cv(e);break}}Lw(e,t)}function kS(n,t,e){var r;return r=Ea(n.a,t),function(n,t,e){n.set(t,e)}(n.a,t,void 0===e?null:e),void 0===r?(++n.c,rh(n.b)):++n.d,r}function pS(n,t,e){return(t-n<=0?0-(t-n):t-n)bY?n-e>bY:e-n>bY)}function mS(n){switch(n.e){case 0:return sV;case 1:return bV;case 2:return hV;case 3:return lV;default:return wV}}function jS(n,t){switch(t.e){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function yS(n){switch(FO(),n.e){case 4:return cD;case 1:return rD;case 3:return jD;case 2:return SD;default:return yD}}function SS(n,t){if(t==n.c)return n.d;if(t==n.d)return n.c;throw new ii("Node "+t+" not part of edge "+n)}function ES(n,t){var e;return Ks(n.a,t)?zh(Ks(n.a,t)?n.b[t.e]:null,62):(e=new Mr,Lm(n.a,t),Tw(n,t.e,e),e)}function HS(n,t){var e,r,c;for(c=n.g.tb(),e=0;c.G();){if((r=ri(Tb(c.H()))-t)>RY)return e;r>YY&&++e}return e}function CS(n){var t,e,r,c;return Lm(e=new Zh(t=zh(ea((c=(r=n.$c).f)==oA?r:c),11),zh(Ow(t,t.length),11),0),n),e}function IS(n,t){var e,r;for(r=new Qe(t);r.a %s",_j(Ni(WY,1),fP,1,4,[iS(t),iS(e)])),mH(t,e=e<(r=n.length)?e:r,r),e-t}function PS(n,t){var e,r,c;for(e=n,c=0;;){if(e==t)return c;if(!(r=zh(Pj(e,(jT(),Az)),9)))throw new Ur;e=Xw(r),++c}}function RS(n){var t,e,r;for(r=!1,e=n.d.length-1;e>=0;e--)n.j=(t=new GC(n.e,n.d,e,1),new ZH(e,n.d,t)),r|=cm(n,e);return r}function YS(n){this.f=(Es(),new jr),this.n=new jr,this.k=new jr,this.g=new Jc,this.i=new jE((ac(),yA)),this.j=n,function(n,t){var e,r,c,i,a;for(e=0,a=0,c=0,i=t.length;c0?n-t:-(n-t))<=UP||n==t||isNaN(n)&&isNaN(t)?0:nt?1:mf(isNaN(n),isNaN(t)))>0}function zS(n,t){return Ii(),Ii(),((n-t>0?n-t:-(n-t))<=UP||n==t||isNaN(n)&&isNaN(t)?0:nt?1:mf(isNaN(n),isNaN(t)))<0}function qS(n){var t,e;for(n.d||function(n){var t,e,r,c,i,a;if(c=n.g.tb(),r=n.b.tb(),n.e)for(e=0;eRY;){for(i=t,a=0;(t-i<=0?0-(t-i):t-i)c}(n.j,e,r)&&(zc(n.j,n.d[t][e],n.d[t][r]),a=(i=n.d[t])[r],i[r]=i[e],i[e]=a,c=!0),c}function rE(n,t,e){var r,c,i,a,u;c=(u=Xw(n)).a,r=zh(Pj(u,(jT(),az)),15).a,i=u.d,a=n.i,t&&(a.a=a.a-c.b-r-i.a),e&&(a.b=a.b-c.d-r-i.b)}function cE(n,t){var e,r,c;for(r=Rw(JH(n));bS(r);)return e=zh(Og(r),12),new Mt(_l((c=zh(t.B(e),9)).i.b+c.j.b/2));return ic(),ic(),nA}function iE(n){var t,e,r,c;for(e=DN(n),t=oY,c=0,r=0;t>.5&&c<50;)t=Ha(aC(e,r=NL(e),!0).b),++c;return aC(n,r,!1)}function aE(n){var t,e,r,c;for(e=DN(n),t=oY,c=0,r=0;t>.5&&c<50;)t=Ha(aC(e,r=GL(e),!0).a),++c;return aC(n,r,!1)}function uE(n){var t,e,r;for(this.a=new Rf,this.e=new Jc,this.f=0,e=0,r=n.length;e0),t.a.sb(t.c=--t.b))}function dE(n,t,e){ZS(e,"Compound graph preprocessor",1),n.a=new qu,LN(n,t,null),function(n,t){var e,r,c,i,a,u,o;for(a=aw(n.a).mb();a.G();){if((i=zh(a.H(),12)).b.c.length>0)for(Iv(r=new dh(zh(uC(n.a,i),18)),new ie(t)),c=new tv(i.b,0);c.b=n.b>>1)for(r=n.c,e=n.b;e>t;--e)r=r.b;else for(r=n.a.a,e=0;e0&&(c.b+=t),c}function UE(n,t){var e,r,c;for(c=new ui,r=n.mb();r.G();)HG(e=zh(r.H(),55),0,c.b),c.b+=e.e.b+t,c.a=_i(c.a,e.e.a);return c.a>0&&(c.a+=t),c}function FE(n,t,e){var r,c,i;return(c=zh(td(n.c,t),176))?(i=ph(c,e),Us(n,c),i):(r=new fl(n,t,e),yd(n.c,t,r),Pg(r),null)}function VE(n,t){return!!function(n){switch(n.e){case 0:return OF;case 1:return LF;case 2:return IF;case 3:return RF;case 4:return PF;case 5:return DF;case 6:return MF;case 7:return TF;case 8:return GF;case 9:return NF;case 11:return AF;case 10:return YF;default:return _F}}(n.b).kb(t.c)&&(function(n){return n==SF||n==mF}(n.b)?!(Wh(t.d,n.c,n.a)&&Wh(t.a,n.c,n.a)):Wh(t.d,n.c,n.a)&&Wh(t.a,n.c,n.a))}function zE(n){switch(n.e){case 8:return FO(),cD;case 9:return FO(),jD;case 10:return FO(),rD;case 11:return FO(),SD;default:return FO(),yD}}function qE(n,t){return Gs(n)?!!RT[t]:n._c?!!n._c[t]:Ls(n)?!!PT[t]:!!kb(n)&&!!TT[t]}function QE(){Uj(),this.i=(Es(),new jr),this.a=new jr,this.k=new jr,this.j=new jr,this.b=new jr,this.n=new jr,this.f=new jr,this.e=new jr}function KE(n,t){var e,r;t.a.R(n)||(r=zh(Pj(n,(jT(),kz)),32),e=zh(vl(n.f,0),7),r==(FO(),cD)?Ub(e,jD):r==jD&&Ub(e,cD),t.a.db(n,t))}function WE(n){return Di(1,zh(Pj(n,(jT(),Bz)),24).a)*(n.c.f.g==(KH(),sB)&&n.d.f.g==sB?1:n.c.f.g==sB||n.d.f.g==sB?2:8)}function JE(n){var t,e,r,c;for(c=zh(Pj(n,(jT(),Oz)),7),e=0,r=(t=zh(tH(n.b,Pk(cB,JR,12,n.b.c.length,0,1)),47)).length;er&&Fw(t,r,null),t}function eH(n,t){var e,r;for(r=n.a.length,t.lengthr&&Fw(t,r,null),t}function rH(n){return Gs(n)?n:Ls(n)?Ca(($l(n),n)):kb(n)?ms(ei(($l(n),n))):Zl(n)?n.w():Gl(n)?mg(n):n.toString?n.toString():"[JavaScriptObject]"}function cH(){cH=e,BU=new ao("SIMPLE",0),MU=new ao(gY,1),DU=new ao("LINEAR_SEGMENTS",2),_U=new ao("BRANDES_KOEPF",3),xU=new ao(mY,4)}function iH(){iH=e,cq=new So(sR,0),nq=new So("FIRST",1),tq=new So("FIRST_SEPARATE",2),eq=new So("LAST",3),rq=new So("LAST_SEPARATE",4)}function aH(){aH=e,wF=new ot,hF=jl(new dS,(mT(),zB)),lF=kl(jl(new dS,f$),o$),sF=kl(yl(jl(ml(new dS,KB),JB),XB),WB),bF=kl(yl(new dS,XB),AB)}function uH(n){var t,e,r;for(e=new $e(new Be(n.d.a).a.bb().mb());e.a.G();)r=zh(e.a.H(),21),Ph((t=zh(r.yb(),12)).c.e,t),Ph(t.d.b,t)}function oH(n,t){var e,r;if(Of(t>0),(t&-t)==t)return Eg(t*zI(n,31)*4.656612873077393e-10);do{r=(e=zI(n,31))%t}while(e-r+(t-1)<0);return Eg(r)}function fH(n,t){if(n.c.f==t)return n.d.f;if(n.d.f==t)return n.c.f;throw new ii("Node "+t+" is neither source nor target of edge "+n)}function sH(n,t,e){return Of(n>=0&&n<=1114111),n>=VT?(t[e++]=55296+(n-VT>>10&1023)&zT,t[e]=56320+(n-VT&1023)&zT,2):(t[e]=n&zT,1)}function bH(n){var t,e;if(!n.a)for(n.a=Ts(zh(n.e,9).c.c.length),e=new Qe(zh(n.e,9).c);e.ac&&Fw(t,c,null),t}function kH(n,t,e){if(e&&(t<0||t>e.a.c.length))throw new ii("index must be >= 0 and <= layer node count");n.d&&zk(n.d.a,n),n.d=e,e&&Rl(e.a,t,n)}function pH(n,t,e,r,c,i,a,u){var o,f;r&&((o=r.a[0])&&pH(n,t,e,o,c,i,a,u),function(n,t,e,r,c,i,a){var u,o;if(t.Xc()&&(o=n.a.$b(e,r),o<0||!c&&0==o))return!1;if(t.Yc()&&(u=n.a.$b(e,i),u>0||!a&&0==u))return!1;return!0}(n,e,r.d,c,i,a,u)&&t.ib(r),(f=r.a[1])&&pH(n,t,e,f,c,i,a,u))}function mH(n,t,e){if(n<0)throw new ci(nP+n+" < 0");if(t>e)throw new ci("toIndex: "+t+" > size "+e);if(n>t)throw new ii(nP+n+" > toIndex: "+t)}function jH(n,t){var e,r,c;return e=t.yb(),c=t.zb(),r=n.cb(e),!!(Ko(c)===Ko(r)||null!=c&&vy(c,r))&&!(null==r&&!n.R(e))}function yH(n,t,e){var r;(r=t.c.f).g==(KH(),fB)?(ip(n,(jT(),Iz),zh(Pj(r,Iz),7)),ip(n,Lz,zh(Pj(r,Lz),7))):(ip(n,(jT(),Iz),t.c),ip(n,Lz,e.d))}function SH(n,t,e){var r,c,i,a;for(function(n){var t,e;for(null==n.g&&(n.g=El(n)),t=0,e=n.g.length;tr&&n.charCodeAt(t-1)<=32;)--t;return r>0||t>19)!=(u=t.h>>19)?u-a:(r=n.h)!=(i=t.h)?r-i:(e=n.m)!=(c=t.m)?e-c:n.l-t.l}function RH(n){var t,e,r;for(e=new $e(new Be(n.p.a).a.bb().mb());e.a.G();)if(r=zh(e.a.H(),21),(t=zh(r.yb(),89)).e&&n.b[t.b]<0)return t;return null}function YH(n,t){var e,r,c,i,a;r=xi(n.d,t.d),i=xi(n.e,t.e),(c=_i(n.d+n.c,t.d+t.c))=t.length)throw new ci("Greedy SwitchDecider: Free layer layer not in graph.");this.b=t[n],this.c=new Jb(this.b),this.d=new tj(this.b)}function XH(n,t){var e;if(this.f=n,this.b=this.f.c,Av(t,e=n.d),t>=(e/2|0))for(this.e=n.e,this.d=e;t++0;)fv(this);this.a=null}function nC(n){var t,e,r;for(e=new Qe(n.a.b);e.a0&&(n.g=kC(n.g)),vC(n);case 2:return jf(n.e)<0&&(n.e=vC(n.e)),kC(n);default:return n.d=1+Di(Ac(n.e),Ac(n.g)),n}}function fC(n,t){this.f=(Es(),new jr),this.b=new jr,this.j=new jr,this.a=n,this.c=t,this.c>0&&kI(this,this.c-1,(FO(),rD)),this.c0&&CI(n,t,e),0):(Uo(0==e),0)}function hC(n,t){var e,r,c,i,a;for(c=zh(Pj(t,(jT(),zz)),15).a*zh(Pj(t,(yT(),jq)),15).a,a=n[0].i.a+n[0].j.a,i=1;i=0;t--)vQ[t]=c,c*=.5;for(r=1,n=24;n>=0;n--)gQ[n]=r,r*=.5}function wC(n){for(;0!=n.g.c&&0!=n.d.c;)Vs(n.g).c>Vs(n.d).c?(n.i+=n.g.c,nE(n.d)):Vs(n.d).c>Vs(n.g).c?(n.e+=n.d.c,nE(n.g)):(n.i+=al(n.g),n.e+=al(n.d),nE(n.g),nE(n.d))}function dC(n){var t,e,r,c;for(c=new zi("["),t=!1,r=n.mb();r.G();)e=r.H(),t?c.a+=", ":t=!0,rf(c,e===n?"(this Collection)":(cc(),null==e?DT:rH(e)));return c.a+="]",c.a}function gC(n){var t,e,r,c;for(c=new zi("{"),t=!1,r=n.bb().mb();r.G();)e=zh(r.H(),21),t?c.a+=", ":t=!0,rf(c,yv(n,e.yb())),c.a+="=",rf(c,yv(n,e.zb()));return c.a+="}",c.a}function vC(n){var t;return Fo(!!n.g),t=n.g,n.g=t.e,t.e=n,t.j=n.j,t.a=n.a,n.a=1+Yc(n.e)+Yc(n.g),n.j=Ny(Ny(n.c,_c(n.e)),_c(n.g)),n.d=1+Di(Ac(n.e),Ac(n.g)),t.d=1+Di(Ac(t.e),Ac(t.g)),t}function kC(n){var t;return Fo(!!n.e),t=n.e,n.e=t.g,t.g=n,t.j=n.j,t.a=n.a,n.a=1+Yc(n.e)+Yc(n.g),n.j=Ny(Ny(n.c,_c(n.e)),_c(n.g)),n.d=1+Di(Ac(n.e),Ac(n.g)),t.d=1+Di(Ac(t.e),Ac(t.g)),t}function pC(n){var t;gs(new Qe(HH(n.e)))&&((t=zh(NS(n.e,(HT(),lM)),28))==(NH(),VM)?function(n){var t,e,r,c,i;for(t=n.e.j,r=new Qe(HH(n));r.a=VT?(t=55296+(n-VT>>10&1023)&zT,e=56320+(n-VT&1023)&zT,String.fromCharCode(t)+""+String.fromCharCode(e)):String.fromCharCode(n&zT)}function DC(n,t,e,r){var c;Ph(n.c,new Sd(n,e,r,zh(td(n.k,e),24).a)),Ww(r)&&(t==n.e?r.d.f!=n.a&&r.c.f!=n.a:r.d.f!=n.e&&r.c.f!=n.e)&&(c=e==r.c?r.d:r.c,Ph(n.c,new Sd(n,c,r,zh(td(n.k,c),24).a)))}function xC(n,t){var e,r,c;if(t===n)return!0;if(!ds(t,57))return!1;if(c=zh(t,57),n.Y()!=c.Y())return!1;for(r=c.bb().mb();r.G();)if(e=zh(r.H(),21),!n._(e))return!1;return!0}function BC(n,t){var e,r,c;return Uy(r=new _E(n),t),ip(r,(jT(),vz),t),ip(r,(HT(),lM),(NH(),VM)),ip(r,P_,(SE(),QA)),fr(r,(KH(),uB)),sg(e=new MH,r),Ub(e,(FO(),SD)),sg(c=new MH,r),Ub(c,rD),r}function $C(n,t){var e,r,c;for(c=UT,r=new Qe(hS(t));r.a0&&zC(n,i,e));t.k=0}function qC(n,t){if(0>t)throw new ii("Top must be smaller or equal to bottom.");if(0>n)throw new ii("Left must be smaller or equal to right.");this.d=0,this.c=n,this.a=t,this.b=0}function QC(n){var t,e,r;if(0==n.length)throw new ii(AY);for(e=0,r=n.length;e1)throw new ii("In straight hyperEdges there may be only one edge.");Th((c=new Be(e.a).a.bb().mb(),r=zh(new $e(c).a.H(),21),zh(r.yb(),12)).a,new Za(t,n.b))}function fI(n,t,e){var r,c;if(this.f=n,Av(e,c=(r=zh(td(n.b,t),126))?r.a:0),e>=(c/2|0))for(this.e=r?r.c:null,this.d=c;e++0;)xg(this);this.b=t,this.a=null}function sI(n,t){typeof klaycallback===$T?klaycallback(t):((typeof document!==pR||typeof module===YT&&module.exports)&&AQ(n(t)),typeof document===pR&&typeof self!==pR&&self.postMessage(t))}function bI(n,t){var e,r,c,i;"x"in n.a&&(c=zh(Od(n,"x"),104),t.i.a=c.a),"y"in n.a&&(i=zh(Od(n,"y"),104),t.i.b=i.a),CR in n.a&&(r=zh(Od(n,CR),104),t.j.a=r.a),IR in n.a&&(e=zh(Od(n,IR),104),t.j.b=e.a)}function hI(n,t,e){var r;Lk(this),t==(gg(),WF)?Gw(this.g,n.c):Gw(this.o,n.c),Gw(e==WF?this.g:this.o,n.d),Gw(this.c,n),mE(this,$g(n.c).b,r=$g(n.d).b,r),this.f=function(n,t){return FH(),(n-t<=0?0-(n-t):n-t)<.2}($g(n.c).b,$g(n.d).b)}function lI(n,t,e){var r,c,i,a,u;for(Vd(),u=new vp((a=new Ki(zh(vl(t.a,e),18))).b.Y()),c=new Xe(a.b.mb());c.b.G();)r=zh(c.b.H(),37),(i=zh(td(n.a,r),31))||(i=lT(r),yd(n.a,r,i)),u.c[u.c.length]=i;return u}function wI(n){var t,e;if(Uu(zh(Pj(n,(HT(),lM)),28)))for(e=new Qe(n.f);e.at&&r.$b(n[i-1],n[i])>0;--i)a=n[i],Fw(n,i,n[i-1]),Fw(n,i-1,a)}(t,e,r,i);else if(dI(t,n,u=e+c,o=u+((a=r+c)-u>>1),-c,i),dI(t,n,o,a,-c,i),i.$b(n[o-1],n[o])<=0)for(;e=r||t upperEndpoint (%s)",_j(Ni(WY,1),fP,1,4,[t,e])))}((u=n.$b(e,i))<=0,e,i),0==u&&Uo(r!=(Qf(),hA)|a!=hA))}function EI(n){if(this.a=n,n.c.f.g==(KH(),uB))this.c=n.c,this.d=zh(Pj(n.c.f,(jT(),kz)),32);else{if(n.d.f.g!=uB)throw new ii("Edge "+n+" is not an external edge.");this.c=n.d,this.d=zh(Pj(n.d.f,(jT(),kz)),32)}}function HI(){HI=e,iF=yl(new dS,(mT(),UB)),uF=jl(new dS,zB),oF=kl(jl(new dS,f$),o$),cF=kl(yl(jl(new dS,MB),DB),xB),fF=jl(new dS,v$),aF=kl(new dS,FB),eF=kl(yl(jl(ml(new dS,KB),JB),XB),WB),rF=kl(yl(new dS,XB),AB)}function CI(n,t,e){var r,c,i,a;return Yp(e,xP),0==e?$H(n,t):(Uo(lb(n.b,t)),(a=n.c.a)?(i=Pk(OQ,BP,26,1,12,1),r=VG(a,n.d,t,e,i),Dl(n.c,a,r),i[0]):(n.d.$b(t,t),c=new Am(t,e),Ib(n.a,c,n.a),Dl(n.c,null,c),0))}function II(n,t,e){var r,c,i,a,u;for(r=0,u=e,t||(r=e*(n.c.length-1),u*=-1),i=new Qe(n);i.a0&&((!ru(n.b.d)||!r.q.d)&&(!cu(n.b.d)||!r.q.b)&&(r.j.e-=0>i/2-.5?0:i/2-.5),(!ru(n.b.d)||!r.q.a)&&(!cu(n.b.d)||!r.q.c)&&(r.j.b+=0>i-1?0:i-1))}(n,t,e),i=new Rt,c=new Qe(n.b.a.b);c.a0&&((!ru(n.b.d)||!r.q.d)&&(!cu(n.b.d)||!r.q.b)&&(r.j.e+=0>i/2-.5?0:i/2-.5),(!ru(n.b.d)||!r.q.a)&&(!cu(n.b.d)||!r.q.c)&&(r.j.b-=i-1))}(n,t,e)}function NI(n,t){var e,r,c,i;for(n.c[t.k]=!0,Ph(n.a,t),i=new Qe(t.f);i.a(a=u+ri(n.b[n.f[c.k].k]))?e:a;return e-r}function _I(n){var t;return cp(t=new $c,"type",new Ml(($b(Px),Px.n))),cp(t,mR,new Ml(n.f)),n.b&&cp(t,"value",n.b),n.a&&cp(t,"context",n.a),cp(t,jR,new Ml(Cs(new ai("\n"),new xe(new Ke((null==n.g&&(n.g=El(n)),n.g)))))),t}function MI(n,t){var e,r,c,i,a;if(t===n)return!0;if(!ds(t,20))return!1;if(a=zh(t,20),n.Y()!=a.Y())return!1;for(i=a.mb(),r=n.mb();r.G();)if(e=r.H(),c=i.H(),!(Ko(e)===Ko(c)||null!=e&&vy(e,c)))return!1;return!0}function DI(n){!LA&&((t=["\\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"])[34]='\\"',t[92]="\\\\",t[173]="\\u00ad",t[1536]="\\u0600",t[1537]="\\u0601",t[1538]="\\u0602",t[1539]="\\u0603",t[1757]="\\u06dd",t[1807]="\\u070f",t[6068]="\\u17b4",t[6069]="\\u17b5",t[8203]="\\u200b",t[8204]="\\u200c",t[8205]="\\u200d",t[8206]="\\u200e",t[8207]="\\u200f",t[8232]="\\u2028",t[8233]="\\u2029",t[8234]="\\u202a",t[8235]="\\u202b",t[8236]="\\u202c",t[8237]="\\u202d",t[8238]="\\u202e",t[8288]="\\u2060",t[8289]="\\u2061",t[8290]="\\u2062",t[8291]="\\u2063",t[8292]="\\u2064",t[8298]="\\u206a",t[8299]="\\u206b",t[8300]="\\u206c",t[8301]="\\u206d",t[8302]="\\u206e",t[8303]="\\u206f",t[65279]="\\ufeff",t[65529]="\\ufff9",t[65530]="\\ufffa",t[65531]="\\ufffb",LA=t);var t,e=n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,(function(n){return function(n,t){var e=LA[n.charCodeAt(0)];return null==e?n:e}(n)}));return'"'+e+'"'}function xI(n,t){var e,r,c,i,a;for(r=new $e(new Be((1==t?Mx:_x).a).a.bb().mb());r.a.G();)for(c=zh(r.a.H(),21),e=zh(c.yb(),59),a=zh(uC(n.f.c,e),18).mb();a.G();)i=zh(a.H(),27),zk(n.b.b,i.b),zk(n.b.a,zh(i.b,25).f)}function BI(n,t,e){var r,c,i,a;if(ZS(e,"Recursive layout",2),0!=t.b.c.length){for(a=1/t.b.c.length,i=new Qe(t.b);i.a=2147483648&&(r-=4294967296),r)}function qI(n,t,e){var r,c,i;if(t!=e){r=t;do{Rb(n,r.d),(i=zh(Pj(r,(jT(),Az)),9))&&(Ms(n,(c=r.a).b,c.d),Rb(n,i.i),r=Xw(i))}while(i);r=e;do{Yb(n,r.d),(i=zh(Pj(r,(jT(),Az)),9))&&(Ds(n,(c=r.a).b,c.d),Yb(n,i.i),r=Xw(i))}while(i)}}function QI(n,t){var e,r,c,i,a;for(e=new Rt,a=new Zu,c=new $e(new Be(n.a).a.bb().mb());c.a.G();)i=zh(c.a.H(),21),BG(a,(r=zh(i.yb(),12)).c,r,null),BG(a,r.d,r,null);for(;a.a;)Ph(e,aN(a,t,qs(zh(Pj(t,(HT(),lM)),28))));return e}function KI(n,t){var e,r,c,i,a;for(r=new $e(new Be((1==t?Mx:_x).a).a.bb().mb());r.a.G();)for(c=zh(r.a.H(),21),e=zh(c.yb(),59),a=zh(uC(n.f.c,e),18).mb();a.G();)i=zh(a.H(),27),Ph(n.b.b,zh(i.b,25)),Ph(n.b.a,zh(i.b,25).f)}function WI(n){var t,e,r,c,i,a;for(xh(),Es(),e=new sk,r=new Qe(n.e.c);r.a0&&c0):c<0&&-c0)}function nL(n,t,e,r,c){var i,a;Nm(nj(_j(Ni(BA,1),yR,10,0,[c.f.i,c.i,c.a])),e)||(t.c==c?Fs(t.a,0,new Qo(e)):Th(t.a,new Qo(e)),r&&!ya(n.a,e)&&((a=zh(Pj(t,(HT(),W_)),44))||(a=new _r,ip(t,W_,a)),Dv(a,i=new Qo(e),a.c.b,a.c),Gw(n.a,i)))}function tL(n){var t,e,r,c,i,a;for(t=0,e=new Qe(n.a);e.a((a=$g(r.d).b)-i<=0?0-(a-i):a-i)?t:a-i<=0?0-(a-i):a-i);return t}function eL(n,t){var e,r,c;if(Ko(t)===Ko(_l(n)))return!0;if(!ds(t,20))return!1;if(r=zh(t,20),(c=n.Y())!=r.Y())return!1;if(ds(r,63)){for(e=0;e=0)return r;for(c=1,i=new Qe(t.f);i.a(a=rL(n,u))+1?c:a+1);return function(n,t,e){var r,c;for(r=(c=n.a.c).c.length;ro-e&&u=n.g.d?((t=n.f).e=ym(n.e,t),t.g=n.g,t.a=n.a-1,t.j=Ty(n.j,e),oC(t)):((t=n.i).g=Sm(n.g,t),t.e=n.e,t.a=n.a-1,t.j=Ty(n.j,e),oC(t)):n.e:n.g}function oL(n){var t,e,r,c,i,a;for(c=new Qe(n.a);c.ai.k?Ub(a,jD):a.g==jD&&i.k>r.k&&Ub(a,cD))}function fL(n,t,e){var r,c,i,a,u,o;for(o=n.b,i=0,c=new Qe(n.a.b);c.a0)return wL(n,t,e.g);if(0!=r)return Ny(Ny(t.ac(e.g),t._b(e)),wL(n,t,e.e));switch(n.b.f.e){case 0:return Ny(t._b(e),t.ac(e.g));case 1:return t.ac(e.g);default:throw new mr}}function dL(n,t,e){var r;if(!e)return 0;if((r=n.d.$b(n.b.e,e.b))<0)return dL(n,t,e.e);if(0!=r)return Ny(Ny(t.ac(e.e),t._b(e)),dL(n,t,e.g));switch(n.b.d.e){case 0:return Ny(t._b(e),t.ac(e.e));case 1:return t.ac(e.e);default:throw new mr}}function gL(n,t,e,r){var c,i,a,u;return fr(a=new _E(n),(KH(),fB)),ip(a,(jT(),Oz),t),ip(a,(HT(),lM),(NH(),VM)),ip(a,Iz,e),ip(a,Lz,r),Ub(i=new MH,(FO(),SD)),sg(i,a),Ub(u=new MH,rD),sg(u,a),hg(t,i),Uy(c=new Dd,t),ip(c,W_,null),lg(c,u),hg(c,r),a}function vL(n,t){var e,r,c,i,a,u,o,f;for(e=0,a=0,u=(i=n.j).length;a.5&&c<50;)t=Ha(aC(e,r=GL(e),!0).a),++c;return aC(n,($l(i=Tb(kE(Fh(n.g),Fh(n.g).b-1))),i-r),!1)}(b);break;case 2:case 4:b.a=p,k=function(n){var t,e,r,c,i;for(e=FG(DN(n)),t=oY,c=0,r=0;t>.5&&c<50;)t=Ha(aC(e,r=NL(e),!0).b),++c;return aC(n,($l(i=Tb(kE(Fh(n.g),Fh(n.g).b-1))),i-r),!1)}(b);break;default:return null}return sr(b,new QC(_j(Ni(BA,1),yR,10,0,[o,p,k,w,g]))),b}(n.a.c,t,n.a.d,r,zE(n.b),e),Em(n.a.a,qS(u)),a=mC(n.a.b,u.a,n.b),eg(c=new Bv((!u.k&&(u.k=new PC(Hm(u))),u.k))),a?Jw(c,a):c}function pL(n,t){var e,r,c;for(e=new Qe(n.b);e.ae.a&&(i=Di(i,a.a-e.a-1));return i}function yL(n){var t,e;switch(t=zh(Pj(n,(HT(),tM)),15).a,e=zh(Pj(n,eM),15).a,ip(n,eM,new Me(t)),ip(n,tM,new Me(e)),zh(Pj(n,P_),103).e){case 1:ip(n,P_,(SE(),JA));break;case 2:ip(n,P_,(SE(),qA));break;case 3:ip(n,P_,(SE(),KA));break;case 4:ip(n,P_,(SE(),WA))}}function SL(n,t,e){var r,c,i;for(i=new Qe(n.e);i.a0&&(r.b.c-=r.c,r.b.c<=0&&r.b.f>0&&Th(t,r.b));for(c=new Qe(n.b);c.a0&&(r.a.f-=r.c,r.a.f<=0&&r.a.c>0&&Th(e,r.a))}function EL(n,t,e){var r,c,i;for(i=new Qe(n.j);i.a0&&(r.b.e-=r.c,r.b.e<=0&&r.b.k>0&&Th(t,r.b));for(c=new Qe(n.d);c.a0&&(r.a.k-=r.c,r.a.k<=0&&r.a.e>0&&Th(e,r.a))}function HL(n,t){switch(n.e){case 1:switch(t.e){case 1:return EY;case 4:return.5;case 3:return HY;case 2:return CY}break;case 2:switch(t.e){case 1:return EY;case 2:return.5;case 3:return HY;case 4:return CY}break;default:throw new ii(SY)}return 0}function CL(n,t){var e,r,c,i;for(Pf((i=new tv(n,0)).b0),i.a.sb(i.c=--i.b),ch(i,c),Pf(i.b1)&&(++i,++a);return!qs(zh(Pj(e,(HT(),lM)),28))&&u&&(++i,++a),yd(c,e,iS(i)),a}function GL(n){var t,e,r,c,i,a,u,o,f,s;for(f=(s=(u=zh((a=n.b.mb()).H(),92)).a.a)>RY,o=sRY)&&!o)return Cm(u.b);if(c&&o||r&&f)return(t=i/(i-s))*Cm(e.b)+(1-t)*Cm(u.b)}return 0}function NL(n){var t,e,r,c,i,a,u,o,f,s;for(f=(s=(u=zh((a=n.b.mb()).H(),92)).a.b)>RY,o=sRY)&&!o)return Cm(u.b);if(c&&o||r&&f)return(t=i/(i-s))*Cm(e.b)+(1-t)*Cm(u.b)}return 0}function OL(n,t,e){var r,c;return r=0,Ww(t)?ya(n.g,t)?(sL(n.i,iS(Ab(n,t.c)),1),sL(n.i,iS(Ab(n,t.d)),1),ks(n.g,t),r+=IE(n,t,n.i)):(Gw(n.g,t),CI(n.i,iS(Ab(n,t.c)),1),CI(n.i,iS(Ab(n,t.d)),1)):(c=$H(n.i,iS(zh(td(n.k,e),24).a)),r+=n.g.a.Y()-c),r}function TL(n){switch(n.e){case 0:return SF;case 1:return yF;case 2:return pF;case 3:return kF;case 4:return HF;case 5:return EF;case 6:return UF;case 7:return $F;case 8:return jF;case 9:return mF;case 10:return xF;case 11:return CF;default:return BF}}function PL(n){switch(n.e){case 0:return EF;case 1:return UF;case 2:return $F;case 3:return SF;case 4:return yF;case 5:return pF;case 6:return kF;case 7:return HF;case 8:return jF;case 9:return mF;case 10:return xF;case 11:return CF;default:return BF}}function RL(n){switch(n.e){case 0:return pF;case 1:return kF;case 2:return HF;case 3:return EF;case 4:return UF;case 5:return $F;case 6:return SF;case 7:return yF;case 8:return jF;case 9:return mF;case 10:return xF;case 11:return CF;default:return BF}}function YL(n){var t;switch(t=n.a.f,n.b){case 0:return new Qe(n.a.f);case 1:return pw(new Yg(t),BH(n));case 2:switch(n.c.e){case 2:case 1:return pw(new Qe(t),BH(n));case 3:case 4:return pw(new Yg(t),BH(n))}}throw new Ei("PortOrder not implemented.")}function AL(n,t){var e;n.d&&(t.c!=n.e.c||function(n,t){return zm(),n==Fx&&t==Vx||n==Fx&&t==zx||n==qx&&t==zx||n==qx&&t==Vx}(n.e.b,t.b))&&(Ph(n.f,n.d),n.a=n.d.d+n.d.c,n.d=null,n.e=null),!function(n){return n==Fx||n==Vx}(t.b)?n.b=t:n.c=t,(t.b==(zm(),Fx)&&!t.a||t.b==Vx&&t.a||t.b==zx&&t.a||t.b==qx&&!t.a)&&n.c&&n.b&&(e=new Ed(n.a,n.c.d,t.c-n.a,n.b.d-n.c.d),n.d=e,n.e=t)}function _L(n,t,e,r){this.e=n,this.j=zh(Pj(n,(jT(),qz)),134),this.f=Pk(hB,NR,9,t,0,1),this.b=Pk(rQ,AT,184,t,6,1),this.a=Pk(hB,NR,9,t,0,1),this.d=Pk(rQ,AT,184,t,6,1),this.i=Pk(hB,NR,9,t,0,1),this.g=Pk(rQ,AT,184,t,6,1),this.n=Pk(rQ,AT,184,t,6,1),this.k=e,this.c=r}function ML(n){if(!n.a.c||!n.a.d)throw new ji(($b(X$),X$.j+" must have a source and target "+($b(nU),nU.j+" specified.")));if(n.a.c==n.a.d)throw new ji("Network simplex does not support self-loops: "+n.a+" "+n.a.c+" "+n.a.d);return Iw(n.a.c.g,n.a),Iw(n.a.d.c,n.a),n.a}function DL(n,t,e,r,c){r==(FO(),rD)&&c==rD?Wd(n,t)>Wd(n,e)?n.d=RE(n,e):n.b=RE(n,t):r==SD&&c==SD?Wd(n,t)Wd(n,e)&&(n.d=RE(n,e),n.b=RE(n,t)):Wd(n,t)0&&i>0?t++:r>0?e++:i>0?c++:e++}Iv(n.f,new Rn)}function BL(n,t,e,r){var c,i,a,u,o;e.d.f!=t.f&&(fr(c=new _E(n),(KH(),fB)),ip(c,(jT(),Oz),e),ip(c,(HT(),lM),(NH(),VM)),r.c[r.c.length]=c,sg(a=new MH,c),Ub(a,(FO(),SD)),sg(u=new MH,c),Ub(u,rD),o=e.d,hg(e,a),Uy(i=new Dd,e),ip(i,W_,null),lg(i,u),hg(i,o),TI(c,a,u))}function $L(n){var t,e,r,c,i,a,u;for(c=oY,a=oY,i=null,e=new hd(new ar(n.e));e.b!=e.c.a.b;)if(1==zh((t=Qk(e)).d,60).c&&(r=zh(t.e,116).a,u=zh(t.e,116).b,(c-r>bY||r-cbY)&&(a=zh(t.e,116).b,c=zh(t.e,116).a,i=zh(t.d,60),0==a&&0==c)))return i;return i}function UL(n,t){var e,r,c,i,a,u;return i=n.d,(u=zh(Pj(n,(HT(),HM)),15).a)<0&&ip(n,HM,new Me(u=0)),t.j.b=u,a=Math.floor(u/2),Ub(r=new MH,(FO(),SD)),sg(r,t),r.i.b=a,Ub(c=new MH,rD),sg(c,t),c.i.b=a,hg(n,r),Uy(e=new Dd,n),ip(e,W_,null),lg(e,c),hg(e,i),function(n,t,e){var r;(r=t.c.f).g==(KH(),fB)?(ip(n,(jT(),Iz),zh(Pj(r,Iz),7)),ip(n,Lz,zh(Pj(r,Lz),7))):(ip(n,(jT(),Iz),t.c),ip(n,Lz,e.d))}(t,n,e),function(n,t){var e,r;for(r=new tv(n.b,0);r.bRY&&(this.b.ib(e),u=!1),this.b.ib(o);u&&this.b.ib(e)}function qL(n){var t,e,r,c;if(function(n,t){var e,r,c,i,a,u,o;for(c=Pk(OQ,BP,26,n.e.a.c.length,12,1),a=new Qe(n.e.a);a.a0){for(Vi(n.c);YI(n,zh(rv(new Qe(n.e.a)),61))0?e:0,r.i.b=e+ah(n.a,i,u)):r.i.b=($l(a),a)),o=ah(n.a,i,u),r.i.bi?0:i)i?0:i:u,(0>(oi?0:i)i?0:i:u)),i=o,o+=a,r=zh(vl(n.c,c),9),(e=new Hf(f)).j.b=t.j.b,LI(n.b,t,e),Ph(r.c,e);zk(n.g.c,t),Ph(n.i,new Gu(n,t))}function cG(n,t,e){var r,c,i,a,u,o;for(t.k=1,c=t.d,o=GS(t,(bm(),oq)).mb();o.G();)for(r=new Qe(zh(o.H(),7).e);r.ab+u&&r.I();for(a=new Qe(h);a.abY||r-cbY)&&(a=zh(t.e,116).b,c=zh(t.e,116).a,i=zh(t.d,60),0==a&&0==c)))return i;return i}function hG(n,t){var e,r,c;n.d=t,Ik(n.b),n.c=!1;n:for(e=new Qe(n.d.c);e.ai.j.e+i.j.b?l.d=!0:(l.d=!0,l.c=!0))),r.b!=r.d.c&&(t=e);l&&(a=zh(td(k,o.d.f),25),t.ba.j.e+a.j.b?l.d=!0:(l.d=!0,l.c=!0))}for(f=Rw(rS(g));bS(f);)0!=(o=zh(Og(f),12)).a.b&&(t=zh($s(o.a),10),o.d.g==(FO(),cD)&&((S=new JL(t,new Za(t.a,i.j.e),i,o)).c=!0,y.c[y.c.length]=S),o.d.g==jD&&((S=new JL(t,new Za(t.a,i.j.e+i.j.b),i,o)).d=!0,y.c[y.c.length]=S))}if(0!=y.c.length){for(Vd(),Iv(y,null),Nk(0,y.c.length),c=new $I(zh(y.c[0],142),n.d),h=1;ha?new Kp(t,n,i-a):i>0&&a>0&&(new Kp(n,t,0),new Kp(t,n,0)))}function dG(n,t){var e,r,c,i,a,u,o,f;for(o=new Rt,f=null,r=zh(Gd(A$,n),20).mb();r.G();){for(u=new $e(new Be((e=zh(r.H(),75)).c.a).a.bb().mb());u.a.G();)c=zh(u.a.H(),21),ch(t,i=zh(c.yb(),7)),VI(i,n.b);wj(o,e.b),f=n.a}for(ZC(o),Dp(o,f),a=new Qe(o);a.ae.k&&u1&&(i=e?Oo(t.d)+1:Oo(a.d)-1,bg(a,zh(vl(n.a.c,i),16))),mG(n,a,e));return t}function jG(n,t){var e,r,c,i;for(c=t.d?n.a.c==(dg(),zU)?rS(t.b):cS(t.b):n.a.c==(dg(),VU)?rS(t.b):cS(t.b),i=!1,Kf(),r=new Af(Df(Kh(c.a,new b)));bS(r);)if(e=zh(Og(r),12),n.c.a[e.c.f.d.k]!==n.c.a[e.d.f.d.k]&&(i=!0,ya(n.b,n.a.f[fH(e,t.b).k])))return t.c=!0,t.a=e,t;return t.c=i,t.a=null,t}function yG(n){var t,e,r,c,i,a,u;for(i=new Qe(n.a.a);i.a0&&Mj(this.n,!0,(Py(),t_)),n.g==(KH(),uB)&&Oh(this.n,!1,!1,!1,!1)}function HG(n,t,e){var r,c,i,a,u,o,f,s;for(i=new Za(t,e),f=new Qe(n.b);f.ar?b:r)>n.j.a&&(f=(u-n.j.a)/2,a.b=_i(a.b,f),a.c=_i(a.c,f))}function _G(n,t,e,r){var c,i,a,u,o,f,s,b;for(a=Ms(t.d,e,r),s=new Qe(t.b);s.a=40)&&function(n){var t,e,r,c,i,a,u;for(n.o=new ec,r=new oi,a=new Qe(n.e.a);a.a0,u=SS(t,i),_f(e?u.c:u.g,t),1==hS(u).c.length&&Dv(r,u,r.c.b,r.c),c=new Xa(i,t),ff(n.o,c),zk(n.e.a,i))}(n),function(n){var t,e,r,c,i,a,u,o,f,s;for(f=n.e.a.c.length,i=new Qe(n.e.a);i.a0?(o=n.g)?(a=o.d,n.g=VG(o,t,e,r,c),0==c[0]&&++n.a,n.j=Ny(n.j,r),n.g.d==a?n:oC(n)):(c[0]=0,Om(n,e,r)):(c[0]=n.c,Uo(hy(Ny(n.c,r),UT)<=0),n.c+=r,n.j=Ny(n.j,r),n)}function zG(n,t,e){var r,c,i,a,u,o,f,s;for(c=!0,a=new Qe(t.c);a.af&&r>f)){c=!1,n.a&&Ah();break}f=ri(e.n[u.k])+ri(e.d[u.k])+u.j.b+u.e.a}if(!c)break}return n.a&&Ah(),c}function qG(n){var t,e,r,c,i,a;if(gs(new Qe(r=hH(n)))){for(a=new Ed(0,0,n.e.j.a,n.e.j.b),e=new Qe(r);e.aa.i.b-a.e.d+f.a+b&&(h=o.i+f.i,f.a=(f.i*f.a+o.i*o.a)/h,f.i=h,o.g=f,e=!0)),i=a,o=f;return e}function XG(n){var t,e,r,c,i;if(Ko(Pj(n,(HT(),lM)))===Ko((NH(),zM))||Ko(Pj(n,lM))===Ko(VM))for(i=new Qe(n.f);i.aa)return FO(),rD;break;case 4:case 3:if(s<0)return FO(),cD;if(s+e>i)return FO(),jD}return(o=(f+u/2)/a)+(r=(s+e/2)/i)<=1&&o-r<=0?(FO(),SD):o+r>=1&&o-r>=0?(FO(),rD):r<.5?(FO(),cD):(FO(),jD)}function tN(n,t,e,r,c,i,a){var u,o,f,s,b;for(b=new co,o=t.mb();o.G();)for(s=new Qe(PE(zh(o.H(),627)));s.a0&&Th(n.e,i)):(n.c[a]-=f+1,n.c[a]<=0&&n.a[a]>0&&Th(n.d,i))))}function rN(n){var t,e,r,c,i,a,u,o;for(qj(),this.b=new Kn,this.c=new Rt,this.a=new Rt,u=0,o=(a=zj()).length;u0){for(c=u.length;c>0&&""==u[c-1];)--c;c0&&0==c[0]&&++n.a,n.j=Ny(n.j,r-c[0]),oC(n)):(c[0]=0,r>0?Tm(n,e,r):n):i>0?(u=n.g)?(n.g=fN(u,t,e,r,c),0==r&&0!=c[0]?--n.a:r>0&&0==c[0]&&++n.a,n.j=Ny(n.j,r-c[0]),oC(n)):(c[0]=0,r>0?Om(n,e,r):n):(c[0]=n.c,0==r?uL(n):(n.j=Ny(n.j,r-n.c),n.c=r,n))}function sN(n,t,e,r,c){var i,a,u;return(i=t.$b(e,n.b))<0?(a=n.e)?(n.e=sN(a,t,e,r,c),c[0]>0&&(r>=c[0]?(--n.a,n.j=Ty(n.j,c[0])):n.j=Ty(n.j,r)),0==c[0]?n:oC(n)):(c[0]=0,n):i>0?(u=n.g)?(n.g=sN(u,t,e,r,c),c[0]>0&&(r>=c[0]?(--n.a,n.j=Ty(n.j,c[0])):n.j=Ty(n.j,r)),oC(n)):(c[0]=0,n):(c[0]=n.c,r>=n.c?uL(n):(n.c-=r,n.j=Ty(n.j,r),n))}function bN(n,t,e){var r,c,i,a,u,o,f,s;for(o=new Qe(e.b);o.a0&&f>0&&vO(v,new Za(H,f),!0))),d=_i(d,v.i.a+v.j.a),g=_i(g,v.i.b+v.j.b),l=new Qe(v.c);l.at.a&&(r.kb((qH(),XF))?n.d.a+=(e.a-t.a)/2:r.kb(tV)&&(n.d.a+=e.a-t.a)),e.b>t.b&&(r.kb((qH(),rV))?n.d.b+=(e.b-t.b)/2:r.kb(eV)&&(n.d.b+=e.b-t.b)),zh(Pj(n,(jT(),mz)),18).kb((kG(),LV))&&(e.a>t.a||e.b>t.b))for(u=new Qe(n.b);u.a0||0==e&&t.f==(Qf(),hA))&&(u=t.g,o=t.f):(c=t.c,u=t.g,o=t.f),r&&c&&((e=n.a.$b(i,u))>0||0==e&&a==(Qf(),hA)&&o==(Qf(),hA))&&(i=u,Qf(),a=hA,o=bA),new SI(n.a,r,i,a,c,u,o)}function kN(n,t,e,r){var c,i,a,u,o,f;if(e.c.f!=t.f)for(fr(c=new _E(n),(KH(),fB)),ip(c,(jT(),Oz),e),ip(c,(HT(),lM),(NH(),VM)),r.c[r.c.length]=c,sg(a=new MH,c),Ub(a,(FO(),SD)),sg(u=new MH,c),Ub(u,rD),hg(e,a),Uy(i=new Dd,e),ip(i,W_,null),lg(i,u),hg(i,t),TI(c,a,u),f=new tv(e.b,0);f.b=r&&f.a>=r&&(s.a=r),h.a<=e&&f.a<=e&&(l.a=e-10),1==t.c.a.Y()?sp(a.a,_j(Ni(BA,1),yR,10,0,[s,b,w,l])):sp(a.a,_j(Ni(BA,1),yR,10,0,[s,b,c,w,l]))}function mN(n,t){var e,r,c,i,a,u;for(i=n.c,a=n.d,lg(n,null),hg(n,null),t&&ei(ri(Ob(Pj(a,(jT(),jz)))))?lg(n,gN(a.f,(bm(),oq),(FO(),rD))):lg(n,a),t&&ei(ri(Ob(Pj(i,(jT(),Yz)))))?hg(n,gN(i.f,(bm(),uq),(FO(),SD))):hg(n,i),r=new Qe(n.b);r.aa&&(a=zh(Pj(e,Bz),24).a);for(r=Rw(rS(u));bS(r);)e=zh(Og(r),12),u.d!=e.c.f.d&&zh(Pj(e,(jT(),Bz)),24).a==a&&Ph(f,new Xa(e.c.f,e));Iv(f,n.c),Rl(n.b,u.k,f)}}(b,n),b.f=Ts(b.d),function(n,t){var e,r,c,i,a,u,o,f;for(i=new Qe(t.c);i.aa&&(a=zh(Pj(e,Bz),24).a);for(r=Rw(cS(u));bS(r);)e=zh(Og(r),12),u.d!=e.d.f.d&&zh(Pj(e,(jT(),Bz)),24).a==a&&Ph(f,new Xa(e.d.f,e));Iv(f,n.c),Rl(n.f,u.k,f)}}(b,n),b}function SN(n){var t,e,r,c,i,a,u,o;for(a=new Qe(n.a);a.ari(bs(a.g,a.d[0]).a)?(Pf(o.b>0),o.a.sb(o.c=--o.b),ch(o,a),c=!0):u.e&&u.e.Y()>0&&(i=(!u.e&&(u.e=new Rt),u.e).nb(t),f=(!u.e&&(u.e=new Rt),u.e).nb(e),(i||f)&&((!u.e&&(u.e=new Rt),u.e).ib(a),++a.c));c||(r.c[r.c.length]=a)}function HN(n,t,e,r){var c,i,a,u,o,f,s,b,h,l,w;e.d.f!=t.f&&(fr(c=new _E(n),(KH(),fB)),ip(c,(jT(),Oz),e),ip(c,(HT(),lM),(NH(),VM)),r.c[r.c.length]=c,sg(a=new MH,c),Ub(a,(FO(),SD)),sg(u=new MH,c),Ub(u,rD),o=e.d,hg(e,a),Uy(i=new Dd,e),ip(i,W_,null),lg(i,u),hg(i,o),b=(s=(f=zh(vl(a.b,0),12).c).f).g,w=(l=(h=zh(vl(u.e,0),12).d).f).g,ip(c,Iz,b==fB?zh(Pj(s,Iz),7):f),ip(c,Lz,w==fB?zh(Pj(l,Lz),7):h))}function CN(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w;for(a=t,b=t.d,f=t.c.f,h=t.d.f,s=Oo(f.d),l=Oo(h.d),u=s;ut&&(n.a=t),n.b<0?n.b=0:n.b>e&&(n.b=e)}(f,n.j.a,n.j.b),Ub(u,nN(u,i)),a=zh(Pj(r,(jT(),mz)),18),o=u.g,i.e){case 2:case 1:(o==(FO(),cD)||o==jD)&&a.ib((kG(),TV));break;case 4:case 3:(o==(FO(),rD)||o==SD)&&a.ib((kG(),TV))}else c=yS(i),u=gN(n,e,e==(bm(),oq)?c:Cy(c));return u}function TN(n){var t,e,r,c,i,a,u,o;for(r=sb(nk(n.a)),c=new Zh(t=zh(ea(FF),11),zh(Ow(t,t.length),11),0);r.a.G()||r.b.mb().G();)u=(e=zh(Ap(r),12)).c.g,o=e.d.g,u==(FO(),yD)?o!=yD&&(a=MS(o),ip(e,(jT(),Kz),a),Ub(e.c,o),Lm(c,a),r.a.I()):o==yD?(a=MS(u),ip(e,(jT(),Kz),a),Ub(e.d,u),Lm(c,a),r.a.I()):(a=IN(u,o),ip(e,(jT(),Kz),a),Lm(c,a),r.a.I());return 1==c.c?i=zh(ik(new Fu(c)),60):(JO(),i=BF),IC(n,i,!1),i}function PN(n,t,e){var r,c,i,a,u,o,f,s,b;for(o=e+t.d.c.a,b=new Qe(t.f);b.a1,u=Rw(vf((ud(),new lv(Wy(_j(Ni(WY,1),fP,1,4,[s.b,s.e]))))));bS(u);)f=(a=zh(Og(u),12)).c==s?a.d:a.c,Ha(nj(_j(Ni(BA,1),yR,10,0,[f.f.i,f.i,f.a])).b-i.b)>1&&nL(n,a,i,c,s)}}function RN(n,t){var e,r,c,i,a;for(a=new ry(new De(n.f.b).a);a.b;){if(c=zh((i=Xp(a)).yb(),251),1==t){if(c.yc()!=(Py(),r_)&&c.yc()!=XA)continue}else if(c.yc()!=(Py(),n_)&&c.yc()!=t_)continue;switch(r=zh(zh(i.zb(),27).b,25),e=zh(zh(i.zb(),27).a,78).c,c.yc().e){case 2:r.j.d=n.e.a,r.j.c=_i(1,r.j.c+e);break;case 1:r.j.d=r.j.d+e,r.j.c=_i(1,r.j.c-e);break;case 4:r.j.e=n.e.b,r.j.b=_i(1,r.j.b+e);break;case 3:r.j.e=r.j.e+e,r.j.b=_i(1,r.j.b-e)}}}function YN(n,t,e,r,c){var i,a,u,o,f,s,b,h;for(Es(),b=new jr,a=new Rt,uI(n,e,n.d.Mc(),a,b),uI(n,r,n.d.Nc(),a,b),u=new tv(a,0);u.b=s&&(k>s&&(f.c=Pk(WY,fP,1,0,4,1),s=k),f.c[f.c.length]=w);0!=f.c.length&&(o=zh(vl(f,oH(t,f.c.length)),80),kd(I.a,o),o.d=b++,SL(o,H,y),f.c=Pk(WY,fP,1,0,4,1))}for(m=n.c.length+1,d=new Qe(n);d.aC.d&&(bd(e),zk(C.b,r),r.c>0&&(r.a=C,Ph(C.e,r),r.b=S,Ph(S.b,r)))}(a,zh(Pj(t,(jT(),Uz)),154)),function(n){var t,e,r,c,i,a,u,o,f;for(o=new Rt,a=new Rt,i=new Qe(n);i.a-1){for(c=new Qe(a);c.a0||(u.i=$i(u.i,r.i-1),--u.f,0==u.f&&(a.c[a.c.length]=u))}}(a),h=-1,s=new Qe(a);s.ab||r+c>o)throw new Fr;if(0!=(1&f.g)&&0==(4&f.g)||s==u)c>0&&GH(n,t,e,r,c,!0);else if(n===e&&tr;)e[a]=n[--t];else for(a=r+c;r0&&0==i[0]&&++n.a,n.j=Ny(n.j,c-i[0])),oC(n)):(i[0]=0,0==r&&c>0?Tm(n,e,c):n);if(a>0)return(o=n.g)?(n.g=MN(o,t,e,r,c,i),i[0]==r&&(0==c&&0!=i[0]?--n.a:c>0&&0==i[0]&&++n.a,n.j=Ny(n.j,c-i[0])),oC(n)):(i[0]=0,0==r&&c>0?Om(n,e,c):n);if(i[0]=n.c,r==n.c){if(0==c)return uL(n);n.j=Ny(n.j,c-n.c),n.c=c}return n}function DN(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g;for(o=n.e,l=n.f,a=n.d,s=(w=n.c)-1,d=n.g,b=Fh(n.g.xb(1,n.g.Y()-1)),f=new Rt,e=0;e0&&(o=n.i.a/i);break;case 2:case 4:(c=n.f.j.b)>0&&(o=n.i.b/c)}ip(n,(jT(),Dz),o)}if(u=n.j,r)n.a.a=r.a,n.a.b=r.b;else if(t!=QM&&t!=KM&&a!=yD)switch(a.e){case 1:n.a.a=u.a/2;break;case 2:n.a.a=u.a,n.a.b=u.b/2;break;case 3:n.a.a=u.a/2,n.a.b=u.b;break;case 4:n.a.b=u.b/2}else n.a.a=u.a/2,n.a.b=u.b/2}(o,f,c,zh(Pj(o,hM),10)),c.e){case 2:case 1:(o.g==(FO(),cD)||o.g==jD)&&i.ib((kG(),TV));break;case 4:case 3:(o.g==(FO(),rD)||o.g==SD)&&i.ib((kG(),TV))}}function UN(n){var t,e,r,c,i;for(r=new Rt,i=new Qe(n.c.f);i.a=d-1)return null;for((c=new Rt).c[c.c.length]=t,v=t,a=e,l=-1,u=zh(vl(n.d.c.c,e),16),h=0;h1&&a1&&a>1;)f=iN(n,k),u=zh(vl(n.d.c.c,a),16),s=zh(vl(n.d.c.c,a-1),16),kH(k,d=$i(zh(w.sb(b++),24).a,s.a.c.length),s),kH(f,v,u),v=d,k&&(c.c[c.c.length]=k),k=f,--p,++i,--a;for(g=(r-(c.c.length-1)*n.d.d)/c.c.length,o=new Qe(c);o.a=0)return!1;if(e.e&&r==(KH(),aB)&&r!=e.e)return!1;if(t.k=e.b,Ph(e.f,t),e.e=r,r==(KH(),fB)||r==bB||r==aB)for(c=new Qe(t.f);c.a0&&(Mj(n.n,!1,(Py(),n_)),Mj(n.n,!0,t_))}function zN(n,t,e){var r,c,i,a;switch(i=n.i,c=nj(_j(Ni(BA,1),yR,10,0,[t.i,t.f.i])),r=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])),a=t.d,t.g.e){case 4:i.a=xi(c.a,r.a)-a.b-n.j.a-e,i.b=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).b+e;break;case 2:i.a=_i(c.a+t.j.a,r.a)+a.c+e,i.b=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).b+e;break;case 1:i.a=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).a+e,i.b=xi(c.b,r.b)-a.d-n.j.b-e;break;case 3:i.a=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).a+e,i.b=_i(c.b+t.j.b,r.b)+a.a+e}}function qN(n,t,e){var r,c,i,a;switch(i=n.i,c=nj(_j(Ni(BA,1),yR,10,0,[t.i,t.f.i])),r=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])),a=t.d,t.g.e){case 4:i.a=xi(c.a,r.a)-a.b-n.j.a-e,i.b=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).b-n.j.b-e;break;case 2:i.a=_i(c.a+t.j.a,r.a)+a.c+e,i.b=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).b-n.j.b-e;break;case 1:i.a=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).a+e,i.b=xi(c.b,r.b)-a.d-n.j.b-e;break;case 3:i.a=nj(_j(Ni(BA,1),yR,10,0,[t.f.i,t.i,t.a])).a+e,i.b=_i(c.b+t.j.b,r.b)+a.a+e}}function QN(){QN=e,_V=new Nv("ONE_SIDED",0,!0,!1,!1),BV=new Nv("TWO_SIDED",1,!1,!1,!1),MV=new Nv("ONE_SIDED_BEST_OF_UP_OR_DOWN",2,!0,!0,!1),$V=new Nv("TWO_SIDED_BEST_OF_UP_OR_DOWN",3,!1,!0,!1),DV=new Nv("ONE_SIDED_BEST_OF_UP_OR_DOWN_ORTHOGONAL_HYPEREDGES",4,!0,!0,!0),UV=new Nv("TWO_SIDED_BEST_OF_UP_OR_DOWN_ORTHOGONAL_HYPEREDGES",5,!1,!0,!0),xV=new Nv("ONE_SIDED_ORTHOGONAL_HYPEREDGES",6,!0,!1,!0),AV=new Nv("OFF",7,!1,!1,!1)}function KN(n,t,e,r,c,i,a){var u,o,f,s,b,h,l;return b=ei(ri(Ob(Pj(t,(yT(),Gq))))),h=null,i==(bm(),uq)&&r.c.f==e?h=r.c:i==oq&&r.d.f==e&&(h=r.d),f=a,a&&b&&!h?(Ph(a.e,r),l=Mi(zh(Pj(a.d,(HT(),HM)),15).a,zh(Pj(r,HM),15).a),ip(a.d,HM,new Me(l))):(FO(),s=yD,h?s=h.g:Uu(zh(Pj(e,(HT(),lM)),28))&&(s=i==uq?SD:rD),o=function(n,t,e,r,c,i){var a,u,o,f,s,b,h;f=r==(bm(),uq)?i.c:i.d,o=sS(t),f.f==e?(a=zh(td(n.b,f),9))||(ip(a=$O(f,zh(Pj(e,(HT(),lM)),28),c,r==uq?-1:1,f.j,o,t),(jT(),Oz),f),yd(n.b,f,a)):(s=zh(Pj(i,(HT(),HM)),15).a,u=function(n,t,e,r){var c,i;switch(c=sS(Xw(e)),sg(i=new MH,e),r.e){case 1:Ub(i,Cy(yS(c)));break;case 2:Ub(i,yS(c))}return ip(i,(jT(),Nz),zh(Pj(t,Nz),15)),ip(t,Oz,i),yd(n.b,i,t),i}(n,a=$O((b=new d,h=zh(Pj(t,(jT(),zz)),15).a*zh(Pj(t,(yT(),jq)),15).a/2,ip(b,Nz,new Me(h)),b),zh(Pj(e,lM),28),c,r==uq?-1:1,new Za(s,s),o,t),e,r),ip(a,Oz,u),yd(n.b,u,a));return zh(Pj(t,(jT(),mz)),18).ib((kG(),LV)),Uu(zh(Pj(t,(HT(),lM)),28))?ip(t,lM,(NH(),qM)):ip(t,lM,(NH(),QM)),a}(n,t,e,i,s,r),u=jv((Xw(e),r)),i==uq?(lg(u,zh(vl(o.f,0),7)),hg(u,c)):(lg(u,c),hg(u,zh(vl(o.f,0),7))),f=new Dy(r,u,o,zh(Pj(o,(jT(),Oz)),7),i,!h)),LI(n.a,r,new kh(f.d,t,i)),f}function WN(n,t,e,r){var c,i,a,u,o,f,s;if(fr(i=new _E(n),(KH(),bB)),ip(i,(HT(),lM),(NH(),VM)),c=0,t){for(ip(a=new MH,(jT(),Oz),t),ip(i,Oz,t.f),Ub(a,(FO(),SD)),sg(a,i),o=0,f=(s=zh(tH(t.b,Pk(cB,JR,12,t.b.c.length,0,1)),47)).length;oh?s:h;for(mE(this,nj(_j(Ni(BA,1),yR,10,0,[n.f.i,n.i,n.a])).b,b,s),a=new $e(new Be(t.a).a.bb().mb());a.a.G();)c=zh(a.a.H(),21),i=zh(c.yb(),27),Gw(this.c,zh(i.b,12));this.f=!1}function rO(n,t,e,r){var c,i,a,u,o;if(!((u=(HT(),cM).b)in t.a)||!Od(t,u).ic().a){if(!(o=Od(t,mR)))throw new Sw("Labels must have a property 'text'.",null,t);if(!o.lc())throw new Sw("A label's 'text' property must be a string.",o,t);if(ip(i=new Hf(o.lc().a),(jT(),Oz),t),yd(n.f,i,t),bI(t,i),AH(t,i),ds(e,9)?Ph(zh(e,9).c,i):ds(e,12)?Ph(zh(e,12).b,i):ds(e,7)&&Ph(zh(e,7).c,i),ds(e,12))switch(a=zh(Pj(i,B_),107),bI(t,i),ip(i,B_,a),c=zh(Pj(r,mz),18),a.e){case 2:case 3:c.ib((kG(),IV));case 1:case 0:c.ib((kG(),HV)),ip(i,B_,(qm(),a_))}}}function cO(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g;for(c=0,i=0,o=new Qe(n.a);o.a.5?g-=2*i*(l-.5):l<.5&&(g+=2*c*(.5-l)),g<(r=a.e.b)&&(g=r),w=a.e.c,g>d.a-w-f&&(g=d.a-w-f),a.i.a=t+g}}function iO(){iO=e,Gx=new Jc,Lx=DG(_j(Ni($A,1),fP,79,0,[(HT(),T_),V_])),Hx=DG(_j(Ni($A,1),fP,79,0,[aM,wM,(yT(),Mq),z_,(jT(),Bz),Bq,Pq])),jx=DG(_j(Ni($A,1),fP,79,0,[R_,M_,cM,F_,K_,Z_,X_,mM,jM,Q_,bq,vq,kq,Lq,yq,Gq,Dq,Rq,lq])),Ex=DG(_j(Ni($A,1),fP,79,0,[eM,tM,J_,HM,iM,xz,az,nz,zz,Yq,jq,Iq])),Sx=DG(_j(Ni($A,1),fP,79,0,[gM,P_,x_,$_,B_,U_,q_,uM,oM,fM,sM,bM,lM,dM,hq,gq,Nq,pq,dq,Oq,Tq,Sq,Eq,Cq,Aq,_q,xq,$q,Hq])),yx=DG(_j(Ni($A,1),fP,79,0,[rM,yM,SM,wq])),Ix=DG(_j(Ni($A,1),fP,79,0,[O_,A_,W_,nM,hM,kM])),Cx=DG(_j(Ni($A,1),fP,79,0,[(Uj(),kx)]))}function aO(n){var t,e,r,c,i,a,u;for(t=0,i=new Qe(n.b.a);i.aUP)&&u<10);hi(n.c,new L),aO(n),function(n){TO(n,(Py(),n_)),n.e=!0}(n.c),function(n){var t,e,r,c,i,a,u;for(c=new Qe(n.a.b);c.a0;){for(Nk(0,u.c.length),l=zh(u.c[0],12),Nk(0,b.c.length),c=ap((r=zh(b.c[0],12)).d.b,r,0),Jg(l,r.d,c),lg(r,null),hg(r,null),h=l.a,t&&Th(h,new Qo(g)),e=BE(r.a,0);e.b!=e.d.c;)Th(h,new Qo(zh(Yv(e),10)));for(d=l.b,s=new Qe(r.b);s.a0?xp(this,this.f/this.a):null!=bs(t.g,t.d[0]).a&&null!=bs(e.g,e.d[0]).a?xp(this,(ri(bs(t.g,t.d[0]).a)+ri(bs(e.g,e.d[0]).a))/2):null!=bs(t.g,t.d[0]).a?xp(this,bs(t.g,t.d[0]).a):null!=bs(e.g,e.d[0]).a&&xp(this,bs(e.g,e.d[0]).a)}function hO(n,t){var e,r,c,i,a,u,o,f,s,b,h;switch(n.g.e){case 1:if(r=zh(Pj(n,(jT(),Oz)),12),(e=zh(Pj(r,Tz),44))?ei(ri(Ob(Pj(r,Vz))))&&(e=Rj(e)):e=new _r,f=zh(Pj(n,Iz),7),t<=(s=nj(_j(Ni(BA,1),yR,10,0,[f.f.i,f.i,f.a]))).a)return s.b;if(Dv(e,s,e.a,e.a.a),b=zh(Pj(n,Lz),7),(h=nj(_j(Ni(BA,1),yR,10,0,[b.f.i,b.i,b.a]))).a<=t)return h.b;for(Dv(e,h,e.c.b,e.c),a=zh(Yv(o=BE(e,0)),10),u=zh(Yv(o),10);u.a=2)for(Yd(n.a),r=0,h=BE(e,0);h.b!=h.d.c;)b=zh(Yv(h),10),0==r?(t=Yb(Yb(new Za(b.a,b.b),n.c.i),n.c.f.i),n.c.a.a=t.a,n.c.a.b=t.b):r==e.b-1?(t=Yb(Yb(new Za(b.a,b.b),n.d.i),n.d.f.i),n.d.a.a=t.a,n.d.a.b=t.b):Th(n.a,b),++r;if(s)for(o=BE(n.a,0);o.b!=o.d.c;)u=zh(Yv(o),10),a.a=_i(a.a,u.a),a.b=_i(a.b,u.b);for(i=new Qe(n.b);i.a0&&ip(a,fz,(ql(),ql(),tQ)),(u=zh(Pj(a,(HT(),lM)),28))==(NH(),KM)||u!=QM&&r.ib((kG(),OV)),ei(ri(Ob(Pj(a,M_))))&&r.ib((kG(),CV)),ei(ri(Ob(Pj(a,Q_))))&&(r.ib((kG(),NV)),r.ib(GV),ip(a,lM,QM)),a}function dO(n,t){t.V()&&Oh(n.n,!0,!0,!0,!0),t.t((FO(),sD))&&Oh(n.n,!0,!0,!0,!1),t.t(iD)&&Oh(n.n,!1,!0,!0,!0),t.t(kD)&&Oh(n.n,!0,!0,!1,!0),t.t(mD)&&Oh(n.n,!0,!1,!0,!0),t.t(bD)&&Oh(n.n,!1,!0,!0,!1),t.t(aD)&&Oh(n.n,!1,!0,!1,!0),t.t(pD)&&Oh(n.n,!0,!1,!1,!0),t.t(vD)&&Oh(n.n,!0,!1,!0,!1),t.t(dD)&&Oh(n.n,!0,!0,!0,!0),t.t(oD)&&Oh(n.n,!0,!0,!0,!0),t.t(dD)&&Oh(n.n,!0,!0,!0,!0),t.t(uD)&&Oh(n.n,!0,!0,!0,!0),t.t(gD)&&Oh(n.n,!0,!0,!0,!0),t.t(wD)&&Oh(n.n,!0,!0,!0,!0),t.t(lD)&&Oh(n.n,!0,!0,!0,!0)}function gO(n,t){var e,r,c,i,a,u,o,f,s;for(u=!0,c=0,o=n.f[t.k],f=t.j.b+n.n,e=n.c[t.k][2],ck(n.a,o,iS(zh(vl(n.a,o),24).a-1+e)),ck(n.b,o,ri(Tb(vl(n.b,o)))-f+e*n.e),++o>=n.i?(++n.i,Ph(n.a,iS(1)),Ph(n.b,f)):(r=n.c[t.k][1],ck(n.a,o,iS(zh(vl(n.a,o),24).a+1-r)),ck(n.b,o,ri(Tb(vl(n.b,o)))+f-r*n.e)),(n.q==(mL(),I$)&&(zh(vl(n.a,o),24).a>n.j||zh(vl(n.a,o-1),24).a>n.j)||n.q==N$&&(ri(Tb(vl(n.b,o)))>n.k||ri(Tb(vl(n.b,o-1)))>n.k))&&(u=!1),i=Rw(rS(t));bS(i);)a=zh(Og(i),12).c.f,n.f[a.k]==o&&(c+=zh((s=gO(n,a)).a,24).a,u=u&&ei(ri(Ob(s.b))));return n.f[t.k]=o,new Xa(iS(c+=n.c[t.k][0]),(ql(),u?tQ:nQ))}function vO(n,t,e){var r,c,i,a,u,o,f,s,b,h,l,w,d,g,v;if(h=new Qo(n.j),v=t.a/h.a,u=t.b/h.b,d=t.a-h.a,i=t.b-h.b,e)for(c=Ko(Pj(n,(HT(),lM)))===Ko((NH(),VM)),w=new Qe(n.f);w.a=1&&(g-a>0&&b>=0?(o.i.a+=d,o.i.b+=i*a):g-a<0&&s>=0&&(o.i.a+=d*g,o.i.b+=i));n.j.a=t.a,n.j.b=t.b,ip(n,(HT(),yM),($S(),new Zh(r=zh(ea(AD),11),zh(Ow(r,r.length),11),0)))}function kO(n){var t,e,r,c,i,a,u,o,f,s;for(r=new Rt,a=new Qe(n.e.a);a.a-1){for(r=BE(a,0);r.b!=r.d.c;)(e=zh(Yv(r),77)).n=i;for(;0!=a.b;)for(t=new Qe((e=zh(gH(a,0),77)).d);t.a0),i.a.sb(i.c=--i.b),ch(i,e),Lw(o,e),VI(e,u.g),cv(o),cv(o),r.a.eb(e)}}function EO(n){var t,e,r,c,i,a,u,o;for(t=null,r=new Qe(n);r.a0&&0==e.c&&(!t&&(t=new Rt),t.c[t.c.length]=e);if(t)for(;0!=t.c.length;){if((e=zh(Hk(t,0),102)).b&&e.b.c.length>0)for(!e.b&&(e.b=new Rt),i=new Qe(e.b);i.aap(n,e,0))return new Xa(c,e)}else if(ri(bs(c.g,c.d[0]).a)>ri(bs(e.g,e.d[0]).a))return new Xa(c,e);for(u=(!e.e&&(e.e=new Rt),e.e).mb();u.G();)!(a=zh(u.H(),102)).b&&(a.b=new Rt),Gk(0,(o=a.b).c.length),Io(o.c,0,e),a.c==o.c.length&&(t.c[t.c.length]=a)}return null}function HO(n,t){var e,r,c,i,a,u,o,f,s;if(1!=ed(cS(t))||zh(Qg(cS(t)),12).d.f.g!=(KH(),fB))return null;for(fr(e=(i=zh(Qg(cS(t)),12)).d.f,(KH(),aB)),ip(e,(jT(),Iz),null),ip(e,Lz,null),ip(e,(HT(),lM),zh(Pj(t,lM),28)),ip(e,rM,zh(Pj(t,rM),86)),c=Pj(i.c,Oz),a=null,f=RC(e,(FO(),rD)).mb();f.G();)if(0!=(u=zh(f.H(),7)).e.c.length){ip(u,Oz,c),s=i.c,u.j.a=s.j.a,u.j.b=s.j.b,u.a.a=s.a.a,u.a.b=s.a.b,wj(u.c,s.c),s.c.c=Pk(WY,fP,1,0,4,1),a=u;break}if(ip(i.c,Oz,null),!hv(RC(t,rD)))for(o=new Qe(nk(RC(t,rD)));o.a0?c+n.i[1]*t+n.n[1]:0,n.o[3]>0?c+n.i[3]*t+n.n[3]:0),_i(n.o[4]>0?e+n.i[4]*t+n.n[4]:0,n.o[2]>0?e+n.i[2]*t+n.n[2]:0))}(n,n.k);break;case 4:r=new Qo(a);break;case 5:r=function(n,t){var e,r,c,i,a;for(a=new ui,i=new Qe(HH(n));i.a0&&(i.a=_i(i.a,c+n.q.b+n.q.c)),e>0&&(i.b=_i(i.b,e+n.q.d+n.q.a))):(c>0&&(i.a=_i(i.a,c)),e>0&&(i.b=_i(i.b,e)))),function(n,t){n.e.j.a=t.a,n.e.j.b=t.b}(n.e,i)}}function IO(n,t,e){var r,c,i,a,u,o,f,s,b,h,l;if(!n.b)return!1;for(a=null,h=null,c=1,(o=new Xk(null,null)).a[1]=n.b,b=o;b.a[c];)f=c,u=h,h=b,b=b.a[c],c=(r=n.a.$b(t,b.d))<0?0:1,0==r&&(!e.c||Nd(b.e,e.d))&&(a=b),b&&b.b||Ui(b.a[c])||(Ui(b.a[1-c])?h=h.a[f]=Gm(b,c):Ui(b.a[1-c])||(l=h.a[1-f])&&(Ui(l.a[1-f])||Ui(l.a[f])?(i=u.a[1]==h?1:0,Ui(l.a[f])?u.a[i]=iv(h,f):Ui(l.a[1-f])&&(u.a[i]=Gm(h,f)),b.b=u.a[i].b=!0,u.a[i].a[0].b=!1,u.a[i].a[1].b=!1):(h.b=!1,l.b=!0,b.b=!0)));return a&&(e.b=!0,e.d=a.e,b!=a&&(function(n,t,e,r){var c,i;for(c=null==(i=t).d||n.a.$b(e.d,i.d)>0?1:0;i.a[c]!=e;)i=i.a[c],c=n.a.$b(e.d,i.d)>0?1:0;i.a[c]=r,r.b=e.b,r.a[0]=e.a[0],r.a[1]=e.a[1],e.a[0]=null,e.a[1]=null}(n,o,a,s=new Xk(b.d,b.e)),h==a&&(h=s)),h.a[h.a[1]==b?1:0]=b.a[b.a[0]?0:1],--n.c),n.b=o.a[1],n.b&&(n.b.b=!1),e.b}function LO(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w;for(h=new Qe(n);h.a(v=r?zh(Pj(s,RU),24).a:KT)?o:v,p=new Qe(s.f);p.a=f&&j>=g&&(h+=w.i.b+d.i.b+d.a.b-m,++u));if(e)for(a=new Qe(k.b);a.a=f&&j>=g&&(h+=w.i.b+d.i.b+d.a.b-m,++u))}u>0&&(y+=h/u,++l)}l>0?(t.a=c*y/l,t.i=l):(t.a=0,t.i=0)}function TO(n,t){var e;if(n.e)throw new ji(($b($x),"The "+$x.j+BR));if(!function(n,t){return Ks(n.c,t)}(n.a,t))throw new Hc("The direction "+t+" is not supported by the CGraph instance.");if(t==n.d)return n;switch(e=n.d,n.d=t,e.e){case 0:switch(t.e){case 2:Ij(n);break;case 1:lE(n),Ij(n);break;case 4:nC(n),Ij(n);break;case 3:nC(n),lE(n),Ij(n)}break;case 2:switch(t.e){case 1:lE(n),NG(n);break;case 4:nC(n),Ij(n);break;case 3:nC(n),lE(n),Ij(n)}break;case 1:switch(t.e){case 2:lE(n),NG(n);break;case 4:lE(n),nC(n),Ij(n);break;case 3:lE(n),nC(n),lE(n),Ij(n)}break;case 4:switch(t.e){case 2:nC(n),Ij(n);break;case 1:nC(n),lE(n),Ij(n);break;case 3:lE(n),NG(n)}break;case 3:switch(t.e){case 2:lE(n),nC(n),Ij(n);break;case 1:lE(n),nC(n),lE(n),Ij(n);break;case 4:lE(n),NG(n)}}return n}function PO(n,t,e){var r,c,i,a,u,o,f,s;if(!n.a[t.d.k][t.k].e){for(n.a[t.d.k][t.k].e=!0,n.a[t.d.k][t.k].b=0,n.a[t.d.k][t.k].d=0,n.a[t.d.k][t.k].a=null,s=new Qe(t.f);s.a0&&(n.a[t.d.k][t.k].d+=zI(n.e,24)*yY*.07000000029802322-.03500000014901161,n.a[t.d.k][t.k].a=n.a[t.d.k][t.k].d/n.a[t.d.k][t.k].b)}}function RO(n,t){var e,r,c,i,a,u,o,f,s,b;for(r=new Qe(n.a.c);r.aMR||t.k==qU&&f<_R)&&(t.n[s.k]=ri(t.n[s.k])+f));n.e.Jc()}function YO(n,t){var e,r,c,i,a,u,o,f,s,b;!function(n,t){var e,r,c;if(n.n)for(r=0,c=t.length;rg?f:g}for(e.e.b+=f-u.b,b=new Qe(n.a);b.a1;)t=xi(c,n.c),fr(s=new _E(n.e.c),(KH(),aB)),ip(s,(HT(),lM),zh(Pj(o,lM),28)),ip(s,rM,zh(Pj(o,rM),86)),s.k=n.e.b++,Ph(n.b,s),s.j.b=o.j.b,s.j.a=t,Ub(b=new MH,(FO(),rD)),sg(b,o),b.i.a=s.j.a,b.i.b=s.j.b/2,Ub(h=new MH,SD),sg(h,s),h.i.b=s.j.b/2,h.i.a=-h.j.a,lg(l=new Dd,b),hg(l,h),o=s,Ph(n.e.c.b,o),--f,c-=n.c+n.e.d;for(new OH(n.d,n.b,n.c),a=new Qe(r);a.at.a||t.p>n.a)){for(e=0,r=0,u=new $e(new Be(n.o.a).a.bb().mb());u.a.G();)c=zh(u.a.H(),21),i=zh(c.yb(),7),pS(nj(_j(Ni(BA,1),yR,10,0,[i.f.i,i.i,i.a])).b,t.p,t.a)&&++e;for(o=new $e(new Be(n.g.a).a.bb().mb());o.a.G();)c=zh(o.a.H(),21),i=zh(c.yb(),7),pS(nj(_j(Ni(BA,1),yR,10,0,[i.f.i,i.i,i.a])).b,t.p,t.a)&&--e;for(f=new $e(new Be(t.o.a).a.bb().mb());f.a.G();)c=zh(f.a.H(),21),i=zh(c.yb(),7),pS(nj(_j(Ni(BA,1),yR,10,0,[i.f.i,i.i,i.a])).b,n.p,n.a)&&++r;for(a=new $e(new Be(t.g.a).a.bb().mb());a.a.G();)c=zh(a.a.H(),21),i=zh(c.yb(),7),pS(nj(_j(Ni(BA,1),yR,10,0,[i.f.i,i.i,i.a])).b,n.p,n.a)&&--r;e1)for(o=BE(Fh(RC(t,SD)),0);o.b!=o.d.c;)0==(u=zh(Yv(o),7)).b.c.length?(Ub(c=new MH,SD),c.j.a=u.j.a,c.j.b=u.j.b,sg(c,r),ip(c,Oz,Pj(u,Oz)),sg(u,null)):sg(a,r);return ip(t,Oz,null),ip(t,cz,nQ),fr(t,aB),ip(r,(HT(),lM),zh(Pj(t,lM),28)),ip(r,rM,zh(Pj(t,rM),86)),Rl(n.b,0,r),r}function $O(n,t,e,r,c,i,a){var u,o,f,s,b,h;switch(b=e,fr(f=new _E(a),(KH(),uB)),ip(f,(jT(),pz),c),ip(f,(HT(),lM),(NH(),VM)),ip(f,Nz,zh(Pj(n,iM),15)),!(o=zh(Pj(n,hM),10))&&(o=new Za(c.a/2,c.b/2)),ip(f,hM,o),sg(s=new MH,f),t!=QM&&t!=KM||(u=i!=(Py(),e_)?i:t_,b=r>0?yS(u):Cy(yS(u)),ip(n,gM,b)),b.e){case 4:ip(f,(yT(),Cq),(iH(),tq)),ip(f,wz,(Vj(),oV)),f.j.b=c.b,Ub(s,(FO(),rD)),s.i.b=o.b;break;case 2:ip(f,(yT(),Cq),(iH(),rq)),ip(f,wz,(Vj(),aV)),f.j.b=c.b,Ub(s,(FO(),SD)),s.i.b=o.b;break;case 1:ip(f,Sz,(zp(),QV)),f.j.a=c.a,Ub(s,(FO(),jD)),s.i.a=o.a;break;case 3:ip(f,Sz,(zp(),zV)),f.j.a=c.a,Ub(s,(FO(),cD)),s.i.a=o.a}if(t==FM||t==zM||t==VM){switch(h=0,b.e){case 4:case 2:case 1:case 3:h=null.cd,t==zM&&(h/=null.cd)}ip(f,Dz,h)}return ip(f,kz,b),f}function UO(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p;for(f=new _r,Es(),yd(v=new jr,n,rC(n)),Yp(2,MP),r=new vp(2),n.c&&Ph(r,n.c),n.d&&Ph(r,n.d),l=new Qe(r);l.a1&&Dv(f,w,f.c.b,f.c),$p(e)));w=d}return f}function FO(){var n;FO=e,yD=new gu(fR,0),cD=new gu("NORTH",1),rD=new gu("EAST",2),jD=new gu("SOUTH",3),SD=new gu("WEST",4),Vd(),fD=new Ki(new Zh(n=zh(ea(ND),11),zh(Ow(n,n.length),11),0)),sD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[]))),iD=Ky(ew(rD,_j(Ni(ND,1),bP,32,0,[]))),kD=Ky(ew(jD,_j(Ni(ND,1),bP,32,0,[]))),mD=Ky(ew(SD,_j(Ni(ND,1),bP,32,0,[]))),dD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[jD]))),oD=Ky(ew(rD,_j(Ni(ND,1),bP,32,0,[SD]))),vD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[SD]))),bD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[rD]))),pD=Ky(ew(jD,_j(Ni(ND,1),bP,32,0,[SD]))),aD=Ky(ew(rD,_j(Ni(ND,1),bP,32,0,[jD]))),wD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[rD,SD]))),uD=Ky(ew(rD,_j(Ni(ND,1),bP,32,0,[jD,SD]))),gD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[jD,SD]))),hD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[rD,jD]))),lD=Ky(ew(cD,_j(Ni(ND,1),bP,32,0,[rD,jD,SD])))}function VO(n,t,e){var r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m;if(ip(s=new Qp,px,t),yd(n.e,t,s),ip(s,(jT(),Az),e),n.d&&CC(n.d,s,!1),AH(t,s),LR in t.a&&(g=s.a,v=zh(Od(t,LR),69),(d=zh(Od(v,"left"),104))&&(g.b=d.a),(p=zh(Od(v,"top"),104))&&(g.d=p.a),(k=zh(Od(v,"right"),104))&&(g.c=k.a),(c=zh(Od(v,vR),104))&&(g.a=c.a)),b=new Zh(r=zh(ea(FV),11),zh(Ow(r,r.length),11),0),ip(s,mz,b),null==n.g&&(n.g=Ob(Pj(s,(Qd(),Nx)))),GR in t.a){if(!(m=Od(t,GR)).hc())throw new Sw("The 'children' property of nodes must be an array.",m,t);if((f=m.hc()).a.length>0){for(e&&ip(e,Gz,s),u=Pk(hB,NR,9,f.a.length,0,1),l=0;l1)for(Ph(i,new eO(l,k,e)),b=new $e(new Be(k.a).a.bb().mb());b.a.G();)f=zh(b.a.H(),21),zk(c,zh(f.yb(),27).b);if(a.a.Y()>1)for(Ph(i,new eO(l,a,e)),b=new $e(new Be(a.a).a.bb().mb());b.a.G();)f=zh(b.a.H(),21),zk(c,zh(f.yb(),27).b)}}function KO(n,t){var e,r,c,i,a,u,o,f,s;switch(Iv(i=nk(Qh(t,new tl(n))),new Zn),(c=n.b).c){case 2:Gw(t,new aI(r=kL(n,a=km(e=Mf(Qh(i,new je(c.a))))?zh(Rk(e),91).b:15,km(e=Mf(Qh(i,new je(zE(c)))))?zh(Rk(e),91).b:15,km(e=Mf(Qh(i,new je(c.b))))?zh(Rk(e),91).b:15),n.c,n.e,n.a.c.f,c.a)),Gw(t,new aI(r,n.c,n.e,n.a.c.f,zE(c))),Gw(t,new aI(r,n.c,n.e,n.a.c.f,c.b));break;case 1:Gw(t,new aI(r=fL(n,a=km(e=Mf(Qh(i,new je(c.a))))?zh(Rk(e),91).b:15,km(e=Mf(Qh(i,new je(c.b))))?zh(Rk(e),91).b:15),n.c,n.e,n.a.c.f,c.a)),Gw(t,new aI(r,n.c,n.e,n.a.c.f,c.b));break;case 0:a=km(e=Mf(Qh(i,new je(c.a))))?zh(Rk(e),91).b:15,u=n.b,o=function(n,t,e){var r,c,i,a,u,o,f,s,b;return r=wH(n.g),f=Rb(yf(n.i),n.a),s=Rb(yf(t.i),t.a),c=Rb(new Qo(f),os(new yw(r),e)),b=Rb(new Qo(s),os(new yw(r),e)),a=os(Yb(new Qo(c),b),.5),o=Rb(Rb(new Qo(b),a),os(new yw(r),Po(a.a*a.a+a.b*a.b))),i=aC(u=new ld(_j(Ni(BA,1),yR,10,0,[f,c,o,b,s])),.5,!1),u.a=i,sr(u,new QC(_j(Ni(BA,1),yR,10,0,[i,f,s]))),u}(n.a.c,n.a.d,a),Em(n.a.a,qS(o)),f=mC(n.a.b,o.a,u),eg(s=new Bv((!o.k&&(o.k=new PC(Hm(o))),o.k))),Gw(t,new aI(r=f?Jw(s,f):s,n.c,n.e,n.a.c.f,c.a));break;default:throw new ii("The loopside must be defined.")}return r}function WO(n,t,e){var r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m;for(a=new Qe(n.a.c);a.a0)if(r=s.Y(),o=Eg(Math.floor((r+1)/2))-1,c=Eg(Math.ceil((r+1)/2))-1,t.k==QU)for(f=c;f>=o;f--)t.a[p.k]==p&&(w=zh(s.sb(f),27),l=zh(w.a,9),!ya(e,w.b)&&h>n.b.e[l.k]&&(t.a[l.k]=p,t.f[p.k]=t.f[l.k],t.a[p.k]=t.f[p.k],h=n.b.e[l.k]));else for(f=o;f<=c;f++)t.a[p.k]==p&&(g=zh(s.sb(f),27),d=zh(g.a,9),!ya(e,g.b)&&h0||e.k==QU&&cg?l:g):e.n[t.k]=r>(l>g?l:g)?r:l>g?l:g)):(d=n.d.f,w=Im(n,e.i[t.k]),h=Im(n,e.i[b.k]),e.k==QU?Wg(w,h,ri(e.n[t.k])+ri(e.d[a.k])+a.j.b+a.e.a+d-(ri(e.n[b.k])+ri(e.d[f.k])-f.e.d)):Wg(w,h,ri(e.n[t.k])+ri(e.d[a.k])-a.e.d-ri(e.n[b.k])-ri(e.d[f.k])-f.j.b-f.e.a-d))):g=n.e.Ic(g,t,a),a=e.a[a.k]}while(a!=t);!function(n,t){Gw(n.b,t)}(n.e,t)}}function eT(n,t,e,r){var c,i,a,u,o,f,s,b,h,l,w,d,g,v;if(h=!1,b=!1,Uu(zh(Pj(r,(HT(),lM)),28))){a=!1,u=!1;n:for(w=new Qe(r.f);w.a=r.j.b/2}v?(g=zh(Pj(r,(jT(),Xz)),20))?h?i=g:(c=zh(Pj(r,uz),20))?i=g.Y()<=c.Y()?g:c:(i=new Rt,ip(r,uz,i)):(i=new Rt,ip(r,Xz,i)):(c=zh(Pj(r,(jT(),uz)),20))?b?i=c:(g=zh(Pj(r,Xz),20))?i=c.Y()<=g.Y()?c:g:(i=new Rt,ip(r,Xz,i)):(i=new Rt,ip(r,uz,i)),i.ib(n),ip(n,(jT(),oz),e),t.d==e?(hg(t,null),e.b.c.length+e.e.c.length==0&&sg(e,null)):(lg(t,null),e.b.c.length+e.e.c.length==0&&sg(e,null)),Yd(t.a)}function rT(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k;for((e=new AE(t)).a||function(n){var t,e,r,c,i;switch(c=zh(vl(n.b,0),9),t=new _E(n),Ph(n.b,t),t.j.a=_i(1,c.j.a),t.j.b=_i(1,c.j.b),t.i.a=c.i.a,t.i.b=c.i.b,zh(Pj(c,(jT(),kz)),32).e){case 4:t.i.a+=2;break;case 1:t.i.b+=2;break;case 2:t.i.a-=2;break;case 3:t.i.b-=2}sg(r=new MH,t),lg(e=new Dd,i=zh(vl(c.f,0),7)),hg(e,r),Rb(No(r.i),i.i),Rb(No(r.a),i.a)}(t),f=function(n){var t,e,r,c,i,a,u;for(u=new Tv,a=new Qe(n.b);a.a=u.b.c)&&(u.b=t),(!u.c||t.c<=u.c.c)&&(u.d=u.c,u.c=t),(!u.e||t.d>=u.e.d)&&(u.e=t),(!u.f||t.d<=u.f.d)&&(u.f=t);return r=new yE((zm(),Fx)),_v(n,Zx,new Ke(_j(Ni(Ux,1),fP,160,0,[r]))),a=new yE(qx),_v(n,Jx,new Ke(_j(Ni(Ux,1),fP,160,0,[a]))),c=new yE(Vx),_v(n,Wx,new Ke(_j(Ni(Ux,1),fP,160,0,[c]))),i=new yE(zx),_v(n,Kx,new Ke(_j(Ni(Ux,1),fP,160,0,[i]))),CL(r.c,Fx),CL(c.c,Vx),CL(i.c,zx),CL(a.c,qx),u.a.c=Pk(WY,fP,1,0,4,1),wj(u.a,r.c),wj(u.a,Mm(c.c)),wj(u.a,i.c),wj(u.a,Mm(a.c)),u}(f)),e}function cT(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S,E,H,C;return b=function(n,t){var e,r,c,i,a,u,o,f,s,b,h;if(n.V())return new ui;for(o=0,s=0,r=n.mb();r.G();)o=_i(o,(c=zh(r.H(),55).e).a),s+=c.a*c.b;for(o=_i(o,Math.sqrt(s)*zh(Pj(zh(n.mb().H(),55),(jT(),nz)),15).a),b=0,h=0,u=0,e=t,a=n.mb();a.G();)b+(f=(i=zh(a.H(),55)).e).a>o&&(b=0,h+=u+t,u=0),HG(i,b,h),e=_i(e,b+f.a),u=_i(u,f.b),b+=f.a+t;return new Za(e+t,h+u+t)}(ws(n,(FO(),fD)),t),w=$E(ws(n,sD),t),m=$E(ws(n,kD),t),E=UE(ws(n,mD),t),h=UE(ws(n,iD),t),k=$E(ws(n,vD),t),d=$E(ws(n,bD),t),y=$E(ws(n,pD),t),j=$E(ws(n,aD),t),H=UE(ws(n,oD),t),v=$E(ws(n,dD),t),p=$E(ws(n,wD),t),S=$E(ws(n,uD),t),C=UE(ws(n,gD),t),l=UE(ws(n,hD),t),g=$E(ws(n,lD),t),e=Np(_j(Ni(RQ,1),ZT,26,12,[k.a,E.a,y.a,C.a])),r=Np(_j(Ni(RQ,1),ZT,26,12,[w.a,b.a,m.a,g.a])),c=v.a,i=Np(_j(Ni(RQ,1),ZT,26,12,[d.a,h.a,j.a,l.a])),f=Np(_j(Ni(RQ,1),ZT,26,12,[k.b,w.b,d.b,p.b])),o=Np(_j(Ni(RQ,1),ZT,26,12,[E.b,b.b,h.b,g.b])),s=H.b,u=Np(_j(Ni(RQ,1),ZT,26,12,[y.b,m.b,j.b,S.b])),Sk(ws(n,fD),e+c,f+s),Sk(ws(n,lD),e+c,f+s),Sk(ws(n,sD),e+c,0),Sk(ws(n,kD),e+c,f+s+o),Sk(ws(n,mD),0,f+s),Sk(ws(n,iD),e+c+r,f+s),Sk(ws(n,bD),e+c+r,0),Sk(ws(n,pD),0,f+s+o),Sk(ws(n,aD),e+c+r,f+s+o),Sk(ws(n,oD),0,f),Sk(ws(n,dD),e,0),Sk(ws(n,uD),0,f+s+o),Sk(ws(n,hD),e+c+r,0),(a=new ui).a=Np(_j(Ni(RQ,1),ZT,26,12,[e+r+c+i,H.a,p.a,S.a])),a.b=Np(_j(Ni(RQ,1),ZT,26,12,[f+o+s+u,v.b,C.b,l.b])),a}function iT(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d;if(r=new _r,f=null,(l=(w=n.c).f.g)!=(KH(),sB)&&l!=bB)throw new ii("The target node of the edge must be a normal node or a northSouthPort.");for(l==bB&&(h=zh(Pj(w,(jT(),Oz)),7),f=new Za(nj(_j(Ni(BA,1),yR,10,0,[h.f.i,h.i,h.a])).a,nj(_j(Ni(BA,1),yR,10,0,[w.f.i,w.i,w.a])).b),w=h),au(r,nj(_j(Ni(BA,1),yR,10,0,[w.f.i,w.i,w.a]))),a=_i(5,DS(w.f,w.g)),(b=new yw(wH(w.g))).a*=a,b.b*=a,Th(r,Rb(b,nj(_j(Ni(BA,1),yR,10,0,[w.f.i,w.i,w.a])))),f&&Dv(r,f,r.c.b,r.c),i=n,o=n,u=null,e=!1;i;)0!=(c=i.a).b&&(e?(Th(r,os(Rb(u,(Pf(0!=c.b),zh(c.a.a.c,10))),.5)),e=!1):e=!0,u=yf((Pf(0!=c.b),zh(c.c.b.c,10))),Em(r,c),Yd(c)),o=i,i=zh(Wo(kg(t.d,i)),12);(d=o.d).f.g==bB&&(h=zh(Pj(d,(jT(),Oz)),7),Th(r,new Za(nj(_j(Ni(BA,1),yR,10,0,[h.f.i,h.i,h.a])).a,nj(_j(Ni(BA,1),yR,10,0,[d.f.i,d.i,d.a])).b)),d=h),a=_i(5,DS(d.f,d.g)),os(b=new yw(wH(d.g)),a),Th(r,Rb(b,nj(_j(Ni(BA,1),yR,10,0,[d.f.i,d.i,d.a])))),au(r,nj(_j(Ni(BA,1),yR,10,0,[d.f.i,d.i,d.a]))),s=new jN(r),Em(n.a,qS(s))}function aT(n){var t,e,r,c,i,a,u,o,f,s,h,l,w,d;if(Ko(Pj(n.c,(HT(),lM)))===Ko((NH(),zM))||Ko(Pj(n.c,lM))===Ko(VM))for(s=new Qe(n.c.f);s.a1&&(a=xi(a,Ha(zh(kE(u.a,1),10).b-s.b)))));else for(w=new Qe(t.f);w.ac&&(i=h.a-c,a=UT,r.c=Pk(WY,fP,1,0,4,1),c=h.a),h.a>=c&&(r.c[r.c.length]=u,u.a.b>1&&(a=xi(a,Ha(zh(kE(u.a,u.a.b-2),10).b-h.b)))));if(0!=r.c.length&&i>t.j.a/2&&a>t.j.b/2){for(sg(l=new MH,t),Ub(l,(FO(),cD)),l.i.a=t.j.a/2,sg(d=new MH,t),Ub(d,jD),d.i.a=t.j.a/2,d.i.b=t.j.b,o=new Qe(r);o.a=f.b?lg(u,d):lg(u,l)):(f=zh(Sh(u.a),10),(0==u.a.b?$g(u.c):zh($s(u.a),10)).b>=f.b?hg(u,d):hg(u,l)),(b=zh(Pj(u,(HT(),W_)),44))&&OS(b,f,!0);t.i.a=c-t.j.a/2}}function oT(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p;for(v=new Rt,k=new Rt,p=new Rt,i=new Qe(t);i.a50?v.c[v.c.length]=c:c.k>0?k.c[k.c.length]=c:p.c[p.c.length]=c;if(1==k.c.length&&0==v.c.length&&(wj(v,k),k.c=Pk(WY,fP,1,0,4,1)),0!=v.c.length&&Ks(uf(n.a),(JO(),yF))&&Ks(uf(n.a),(JO(),EF))?function(n,t){var e,r,c;for(r=new Qe(t);r.a1&&(IC(c,d=zh(Ap(o),60),!0),ww(s),ug(n.a,d))}for(h=p.c.length,r=function(n){var t,e,r,c;switch(of(n.a).c){case 4:return JO(),EF;case 3:return zh(av(n.a).mb().H(),60);case 2:return t=zh(ik(e=new Fu(r=of(n.a))),60),c=zh(ik(e),60),PL(t)==c?Ks(r,(JO(),EF))?kF:EF:TL(TL(t))==c?TL(t):RL(t);case 1:return PL(zh(ik(new Fu(r=of(n.a))),60));case 0:return JO(),HF;default:return null}}(n),l=new Rt,a=h/af(n.a).c|0,u=0;u3&&(wj(l,(JO(),JO(),gF)),w-=4),w){case 3:Ph(l,PL(r));case 2:g=TL(PL(r));do{g=TL(g)}while(!Ks(uf(n.a),g));l.c[l.c.length]=g,g=RL(PL(r));do{g=RL(g)}while(!Ks(uf(n.a),g));l.c[l.c.length]=g;break;case 1:Ph(l,PL(r))}for(b=new Qe(l),f=new Qe(p);b.a0,g=p.e.c.length>0,f&&g?h.c[h.c.length]=p:f?w.c[w.c.length]=p:g&&(k.c[k.c.length]=p);for(l=new Qe(w);l.a=d&&(p>d&&(w.c=Pk(WY,fP,1,0,4,1),d=p),w.c[w.c.length]=a);0!=w.c.length&&(l=zh(vl(w,oH(t,w.c.length)),77),L.a.eb(l),l.i=g++,EL(l,C,S),w.c=Pk(WY,fP,1,0,4,1))}for(j=n.c.length+1,u=new Qe(n);u.aI.i&&(bd(e),zk(I.d,r),r.c>0&&(r.a=I,Ph(I.j,r),r.b=E,Ph(E.d,r)))}function lT(n){switch(n.e){case 14:return new q;case 37:return new K;case 8:return new Kc;case 30:return new Wc;case 38:return new J;case 3:return new Z;case 47:case 1:return new we((Fj(),EB));case 4:return new X;case 49:return new nn;case 23:return new nt;case 13:return new tn;case 34:return new rn;case 40:return new cn;case 35:return new on;case 44:return new zf;case 28:return new fn;case 39:return new sn;case 27:return new bn;case 6:return new hn;case 31:return new gn;case 9:return new St;case 43:return new kn;case 17:return new pn;case 18:return new yn;case 29:return new Et;case 11:return new Nn;case 12:return new En;case 36:return new Hn;case 46:case 0:return new we((Fj(),SB));case 41:return new In;case 15:return new Ln;case 33:return new Gn;case 42:return new Tn;case 22:return new Pn;case 19:return new dn;case 10:return new Cn;case 7:return new Yn;case 24:return new An;case 21:return new _n;case 16:return new Dn;case 45:return new xn;case 26:return new Bn;case 20:return new $n;case 25:return new Un;case 5:return new Wn;case 32:return new Jn;case 48:case 2:return new we((Fj(),yB));default:throw new ii("No implementation is available for the layout processor "+(null!=n.d?n.d:""+n.e))}}function wT(n,t,e){var r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S,E,H,C,I,L,G;for(I=0,i=0,s=t[0].d,S=e[0].d,l=0,d=e.length;l0;){for(Pf(y.b>0),j=0,c=new Qe((p=zh(y.a.sb(y.c=--y.b),7)).b);c.a0&&(p.g==(FO(),cD)?(n.a[p.k]=I,++I):(n.a[p.k]=I+v+k,++k),i+=j)}I+=k}else{for(g=0,m=new Qe(b.f);m.a0&&(++I,i+=g)}for(E=Pk(OQ,BP,26,i,12,1),u=0,h=0,w=t.length;h0;)o%2>0&&(r+=L[o+1]),++L[o=(o-1)/2|0];return r}function dT(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S,E,H,C,I,L,G,N;for(ZS(t,"Compound graph postprocessor",1),e=ei(ri(Ob(Pj(n,(yT(),bq))))),u=zh(Pj(n,(jT(),hz)),144),b=new Jc,y=u.W().mb();y.G();){for(j=zh(y.H(),12),Iv(a=new dh(u.U(j)),new ie(n)),C=vm((Nk(0,a.c.length),zh(a.c[0],114))),L=gm(zh(vl(a,a.c.length-1),114)),Yd(j.a),E=C.f,S=qy(L.f,E)?zh(Pj(E,Gz),55):Xw(E),w=zh(Pj(j,(HT(),W_)),44),Nl(a,rB)?w?Yd(w):(w=new _r,ip(j,W_,w)):w&&ip(j,W_,null),g=null,i=new Qe(a);i.aQR,N=Ha(g.b-p.b)>QR,(!e&&G&&N||e&&(G||N))&&Th(j.a,H)),Em(j.a,r),0==r.b?g=H:(Pf(0!=r.b),g=zh(r.c.b.c,10)),(k=zh(Pj(v,W_),44))&&(Zj(l=new _r,0,k),Um(l,m),Em(w,l)),gm(c)==L&&(Xw(L.f)!=c.a&&qI(m=new ui,Xw(L.f),S),ip(j,Zz,m)),d=new tv(v.b,0);d.b(C=zh(Pj(e,(jT(),Bz)),24).a)?b:C;for(r=new Qe(E.e);r.a(C=zh(Pj(e,(jT(),Bz)),24).a)?S:C}ip(p,PU,iS(b)),ip(p,RU,iS(S))}for(g=0,h=new Qe(t.c);h.a=0){for(o=null,u=new tv(s.a,f+1);u.b1){j=Pk(cQ,AT,15,n.a.length,0,1),f=Ts(n.a.length),w=0,l=0,e=2*t.d.a.c.length+1;n:for(m=new Qe(t.f);m.a0?(j[p.k]=new Me(C/(p.b.c.length+p.e.c.length)),w=Bi(w,j[p.k].a),l=Mi(l,j[p.k].a)):g&&(j[p.k]=new Me(C))}for(d=(t.d?ap(t.d.a,t,0):-1)+1,h=t.d.a.c.length+1,o=new Qe(f);o.ae&&d.a.db(p,d);for(L=new Jc,g=new Jc,j=new $e(new Be(I.a).a.bb().mb());j.a.G();)for(h=zh(j.a.H(),21),p=zh(h.yb(),9),a=1==t?cS(p):rS(p),Kf(),f=new Af(Df(Kh(a.a,new b)));bS(f);)o=zh(Og(f),12),Oo(p.d)!=Oo(o.d.f.d)&&Gw(L,o.d.f);for(y=new $e(new Be(d.a).a.bb().mb());y.a.G();)for(h=zh(y.a.H(),21),p=zh(h.yb(),9),a=1==t?cS(p):rS(p),Kf(),f=new Af(Df(Kh(a.a,new b)));bS(f);)o=zh(Og(f),12),Oo(p.d)!=Oo(o.d.f.d)&&Gw(g,o.d.f);for(jB&&Ah(),H=zh(vl(n.d.c.c,r+(1==t?1:-1)),16),v=KT,k=UT,l=0;ll?v:l:g.a.R(p)&&(k=k1||ed(vf(new lv(Wy(_j(Ni(WY,1),fP,1,4,[k.b,k.e])))))>1)&&c.ib((kG(),GV)),Ko(Pj(w,(yT(),dq)))===Ko((gv(),pU))&&!(ER in t.a)){e=new _r;try{for(u=Od(t,ER).hc(),i=0;i0&&(n.a[D.k]=Q++)}else{for(P=0,x=new Qe(C.f);x.a0&&++Q}for(X=0,G=0,T=e.length;G0;){for(Pf(U.b>0),$=0,u=new Qe((D=zh(U.a.sb(U.c=--U.b),7)).b);u.a0&&(D.g==(FO(),cD)?(n.a[D.k]=X,++X):(n.a[D.k]=X+R+A,++A))}X+=A}else{for(P=0,x=new Qe(C.f);x.a0&&++X}for(Es(),B=new jr,l=new Rf,I=0,N=t.length;If.b&&(f.b=F)):D.f.d==q&&(Ff.c&&(f.c=F));for(nH(w,0,w.length,(Xu(),Xu(),wQ)),Z=Pk(OQ,BP,26,w.length,12,1),r=Pk(OQ,BP,26,X+1,12,1),g=0;g0;)y%2>0&&(c+=en[y+1]),++en[y=(y-1)/2|0];for(E=Pk(GU,fP,156,2*w.length,0,1),p=0;p0&&(45==n.charCodeAt(0)||43==n.charCodeAt(0))?1:0;tUT)throw new Qi(QT+n+'"');return c}((cc(),""+e.jc().a))),void ip(n,h,d)}catch(n){throw ds(n=ly(n),130)?new xc("Invalid integer format for property '"+t+PR+e+")."):zy(n)}else{if(zh(jx.a,18).kb(t)){if(!e.ic())throw new xc(TR+t+PR+e+").");return h=zh(zh(jx.b,57).cb(t),79),ql(),void ip(n,h,d=e.ic().a?tQ:nQ)}if(zh(Ex.a,18).kb(t)){if(!e.jc())throw new xc("Invalid float format for property '"+t+PR+e+").");return void ip(n,h=zh(zh(Ex.b,57).cb(t),79),d=new _e(e.jc().a))}if(zh(Sx.a,18).kb(t)){if(!e.lc())throw new xc(RR+t+PR+e+").");f=e.lc().a,s=null;try{ky((HT(),gM),t)?(FO(),s=zh(Ey((pk(),HD),f),32)):ky(P_,t)?(SE(),s=zh(Ey((xk(),ZA),f),103)):ky(x_,t)?(Py(),s=zh(Ey((kk(),i_),f),59)):ky($_,t)?(Ry(),s=zh(Ey((Kv(),v_),f),122)):ky(q_,t)?(Yy(),s=zh(Ey((Hv(),N_),f),166)):ky(uM,t)||ky(oM,t)||ky(fM,t)||ky(sM,t)||ky(bM,t)?(BS(),s=zh(Ey((mk(),UM),f),100)):ky(lM,t)?(NH(),s=zh(Ey(($k(),JM),f),28)):ky(dM,t)?(Vp(),s=zh(Ey((Ev(),eD),f),149)):ky(U_,t)?(QH(),s=zh(Ey((Bk(),H_),f),133)):ky(B_,t)?(qm(),s=zh(Ey((Qv(),b_),f),107)):ky((yT(),gq),t)?(qd(),s=zh(Ey((Ug(),rU),f),193)):ky(Nq,t)?(jp(),s=zh(Ey((Cv(),sU),f),173)):ky(pq,t)?(TH(),s=zh(Ey((Hp(),gV),f),115)):ky(hq,t)?(qp(),s=zh(Ey((Zv(),nF),f),194)):ky(dq,t)?(gv(),s=zh(Ey((Vg(),jU),f),192)):ky(Tq,t)?(mL(),s=zh(Ey((Sp(),R$),f),109)):ky(Oq,t)?(cH(),s=zh(Ey((Ep(),$U),f),141)):ky(Aq,t)?(LC(),s=zh(Ey((Uk(),q$),f),125)):ky(_q,t)?(Pv(),s=zh(Ey((Fg(),D$),f),175)):ky(Sq,t)?(zH(),s=zh(Ey((fm(),EV),f),124)):ky(Eq,t)?(QN(),s=zh(Ey((Km(),VV),f),110)):ky(Cq,t)?(iH(),s=zh(Ey((Cp(),aq),f),85)):ky(xq,t)?(FS(),s=zh(Ey((Mk(),qq),f),153)):ky($q,t)?(Qm(),s=zh(Ey((Dk(),Zq),f),172)):ky(Hq,t)&&(wv(),s=zh(Ey((Xv(),XV),f),174))}catch(n){throw ds(n=ly(n),54)?new xc(RR+t+PR+e+")."):zy(n)}return void ip(n,h=zh(zh(Sx.b,57).cb(t),79),s)}if(zh(yx.a,18).kb(t)){if(!e.lc())throw new xc(RR+t+PR+e+").");for(l=null,a=0,u=(o=uN(e.lc().a,"[\\[\\]\\s,]+")).length;a0&&Oj(t.charCodeAt(e-1),JP);)--e;if(r>=e)throw new ii("The given string does not contain any numbers.");if(2!=(c=uN(t.substr(r,e-r),",|;|\r|\n")).length)throw new ii("Exactly two numbers are expected, "+c.length+" were found.");try{n.a=VH(LH(c[0])),n.b=VH(LH(c[1]))}catch(n){throw ds(n=ly(n),130)?new ii(ZP+n):zy(n)}}(w=new ui,e.lc().a),void ip(n,h=zh(zh(Ix.b,57).cb(t),79),w)}catch(n){throw ds(n=ly(n),29)?new xc("Invalid KVector format for property '"+t+"' "+e+"."):zy(n)}else if(ky(A_,t)||ky(W_,t))try{return function(n,t){var e,r,c,i,a;r=uN(t,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n"),Yd(n);try{for(e=0,i=0,c=0,a=0;e0&&(i%2==0?c=VH(r[e]):a=VH(r[e]),i>0&&i%2!=0&&Th(n,new Za(c,a)),++i),++e}catch(n){throw ds(n=ly(n),130)?new ii("The given string does not match the expected format for vectors."+n):zy(n)}}(g=new _r,e.lc().a),void ip(n,h=zh(zh(Ix.b,57).cb(t),79),g)}catch(n){throw ds(n=ly(n),29)?new xc("Invalid KVectorChain format for property '"+t+"' "+e+"."):zy(n)}else if(ky(nM,t)||ky(O_,t))try{return function(n,t){var e,r,c,i,a,u,o,f;for(i=0;i<(cc(),t.length)&&Tj(t.charCodeAt(i),WP);)++i;for(e=t.length;e>0&&Tj(t.charCodeAt(e-1),JP);)--e;if(i1?_g(this,n-1):this,t},IT.Pc=function(){return $b(this),this.b},IT.Qc=function(){return na(this)},IT.Rc=function(){return ta(this)},IT.Sc=function(){return 0!=(4&this.g)},IT.Tc=function(){return 0!=(1&this.g)},IT.w=function(){return(0!=(2&this.g)?"interface ":0!=(1&this.g)?"":"class ")+($b(this),this.n)},IT.g=0;var KY;lL(119,72,{3:1,119:1,54:1,46:1},$r),lL(29,72,qT,Ur,ii),lL(95,72,MT,Fr,ci),lL(231,1,{3:1,231:1}),lL(24,231,{3:1,23:1,24:1,231:1},Ne),IT.F=function(n){return function(n,t){return Bf(n.a,t.a)}(this,zh(n,24))},IT.t=function(n){return ds(n,24)&&zh(n,24).a==this.a},IT.v=function(){return this.a},IT.w=function(){return aa(this.a)},IT.a=0,RT={3:1,345:1,23:1,2:1},lL(350,1,WT,ct),IT.$b=function(n,t){return function(n,t){return Id((cc(),n.toLowerCase()),t.toLowerCase())}(Pb(n),Pb(t))},lL(257,95,MT,(function(n){ci.call(this,n)})),lL(145,1,{23:1,145:1}),IT.F=function(n){return pf(this,zh(n,145))},IT.t=function(n){var t;return n===this||!!ds(n,145)&&(t=zh(n,145),Rc(this.a,t.a))},IT.v=function(){return EE(this.a)},IT.w=function(){return this.a},lL(358,29,qT,(function(n){ii.call(this,(cc(),null==n?DT:n))})),lL(256,29,{3:1,54:1,29:1,46:1,256:1},(function(n){ii.call(this,(cc(),null==n?DT:n))})),lL(185,145,JT),lL(289,185,JT,qi),IT.Zc=function(n,t,e){var r,c;for(r=Pk(PQ,ZT,26,e,12,1),c=0;ce)throw new ci(XT)}for(a=Pk(PQ,ZT,26,i,12,1),s=0,u=0,o=0;o0;){if(128!=(192&(r=n[t+o++])))throw new ii("Invalid UTF8 sequence at "+(t+o-1)+", byte="+(r>>>0).toString(16));c=c<<6|63&r}s+=sH(c,a,s)}return a};var WY=Bw(tP,"Object",1),JY=Bw(tP,"Throwable",46),ZY=(Bw(tP,"Exception",54),Bw(tP,"RuntimeException",72),Bw(eP,"JavaScriptException",164),Bw(rP,"StackTraceCreator/Collector",642),Bw(rP,"StackTraceCreator/CollectorLegacy",356),Bw(rP,"StackTraceCreator/CollectorModern",643),Bw(rP,"StackTraceCreator/CollectorModernNoSourceMap",357),Bw(cP,"IOException",181),Bw(cP,"UnsupportedEncodingException",351),Bw(tP,"Class",288),Bw(tP,"ClassCastException",119),Bw(tP,"IllegalArgumentException",29),Bw(tP,"IndexOutOfBoundsException",95),Bw(tP,"Number",231),Bw(tP,"Integer",24)),XY=Bw(tP,"String",2);Bw(tP,"String/1",350),Bw(tP,"StringIndexOutOfBoundsException",257),Bw(iP,"Charset",145),Bw(iP,"IllegalCharsetNameException",358),Bw(iP,"UnsupportedCharsetException",256),Bw(aP,"EmulatedCharset",185),Bw(aP,"EmulatedCharset/LatinCharset",289),Bw(aP,"EmulatedCharset/UtfCharset",355);lL(669,1,{3:1});var nA;Bw(uP,"Optional",669);lL(601,669,{3:1},c),IT.t=function(n){return n===this},IT.v=function(){return 2040732332},IT.w=function(){return"Optional.absent()"},IT.A=function(n){return _l(n),ic(),nA};Bw(uP,"Absent",601);var tA=Hl(uP,"Function");lL(208,1,{},ai),IT.C=function(n){return _w(n)};Bw(uP,"Joiner",208);lL(363,208,{},nl),IT.C=function(n){return Is(this,n)};Bw(uP,"Joiner/1",363);lL(362,1,{},cb);Bw(uP,"Joiner/MapJoiner",362);var eA,rA=Hl(uP,"Predicate");lL(244,1,{68:1,244:1,3:1},At),IT.D=function(n){var t;for(t=0;t0},IT.H=function(){if(this.b>=this.c)throw new mc;return ra(this,this.b++)},IT.L=function(){return this.b},IT.M=function(){if(this.b<=0)throw new mc;return ra(this,--this.b)},IT.N=function(){return this.b-1},IT.b=0,IT.c=0;Bw(wP,"AbstractIndexedListIterator",378);lL(428,108,lP),IT.G=function(){return km(this)},IT.H=function(){return Rk(this)},IT.d=1;Bw(wP,"AbstractIterator",428);lL(653,1,{144:1}),IT.P=function(){return this.f||(this.f=this.S())},IT.T=function(){return new Na(this.P())},IT.t=function(n){return Xj(this,n)},IT.v=function(){return this.P().v()},IT.V=function(){return 0==this.Y()},IT.W=function(){return aw(this)},IT.w=function(){return this.P().w()};Bw(wP,"AbstractMultimap",653);lL(294,653,gP),IT.Q=function(){xE(this)},IT.R=function(n){return np(this.b,n)},IT.S=function(){return new Pa(this,this.b)},IT.T=function(){return new Ys(this,this.b)},IT.$=function(){return ds(n=this.Z(),137)?(Vd(),new nb(zh(n,137))):ds(n,18)?(Vd(),new Ki(zh(n,18))):ds(n,20)?vg(zh(n,20)):(Vd(),new Ze(n));var n},IT.U=function(n){return uC(this,n)},IT.X=function(n){return pI(this,n)},IT.Y=function(){return this.c},IT.c=0;Bw(wP,"AbstractMapBasedMultimap",294);lL(600,294,gP),IT.Z=function(){return new vp(this.a)},IT.$=function(){return ud(),ud(),dA},IT.U=function(n){return zh(uC(this,n),20)},IT.X=function(n){return zh(pI(this,n),20)},IT.P=function(){return this.f||(this.f=new Pa(this,this.b))},IT.t=function(n){return Xj(this,n)};Bw(wP,"AbstractListMultimap",600);lL(388,1,vP),IT.G=function(){return this.b.b||this.d.G()},IT.H=function(){var n;return this.d.G()||((n=Xp(this.b)).yb(),this.a=zh(n.zb(),19),this.d=this.a.mb()),this.d.H()},IT.I=function(){this.d.I(),this.a.V()&&Kk(this.b),--this.c.c};Bw(wP,"AbstractMapBasedMultimap/Itr",388);lL(389,388,vP,hm);Bw(wP,"AbstractMapBasedMultimap/1",389);lL(638,1,kP),IT.Q=function(){this.bb().Q()},IT._=function(n){return jH(this,n)},IT.R=function(n){return!!cC(this,n,!1)},IT.ab=function(n){var t,e;for(t=this.bb().mb();t.G();)if(e=zh(t.H(),21).zb(),Ko(n)===Ko(e)||null!=n&&vy(n,e))return!0;return!1},IT.t=function(n){return xC(this,n)},IT.cb=function(n){return Wo(cC(this,n,!1))},IT.v=function(){return Cj(this.bb())},IT.V=function(){return 0==this.Y()},IT.W=function(){return new Be(this)},IT.db=function(n,t){throw new Ei("Put not supported on this map")},IT.eb=function(n){return Wo(cC(this,n,!0))},IT.Y=function(){return this.bb().Y()},IT.w=function(){return gC(this)},IT.fb=function(){return new Ue(this)};Bw(pP,"AbstractMap",638);lL(654,638,kP),IT.bb=function(){return uw(this)},IT.W=function(){return this.d||(this.d=new Na(this))},IT.fb=function(){return Qw(this)};Bw(wP,"Maps/ViewCachingAbstractMap",654);lL(262,654,kP,Pa),IT.cb=function(n){return function(n,t){var e;return(e=zh(pE(n.a,t),19))?vE(n.b,t,e):null}(this,n)},IT.eb=function(n){return function(n,t){var e,r;return(e=zh(Xl(n.a,t),19))?((r=n.b.Z()).jb(e),n.b.c-=e.Y(),e.Q(),r):null}(this,n)},IT.Q=function(){this.a==this.b.b?xE(this.b):hw(new Cg(this))},IT.R=function(n){return LE(this.a,n)},IT.hb=function(){return new Dt(this)},IT.gb=function(){return this.hb()},IT.t=function(n){return this===n||xC(this.a,n)},IT.v=function(){return Cj(new De(this.a))},IT.W=function(){return aw(this.b)},IT.Y=function(){return Du(this.a)},IT.w=function(){return gC(this.a)};Bw(wP,"AbstractMapBasedMultimap/AsMap",262);lL(640,1,mP),IT.ib=function(n){return function(){throw new Ei("Add not supported on this collection")}()},IT.jb=function(n){return Em(this,n)},IT.Q=function(){md(this)},IT.kb=function(n){return OS(this,n,!1)},IT.lb=function(n){return uj(this,n)},IT.V=function(){return 0==this.Y()},IT.nb=function(n){return OS(this,n,!0)},IT.ob=function(){return this.pb(Pk(WY,fP,1,this.Y(),4,1))},IT.pb=function(n){return vH(this,n)},IT.w=function(){return dC(this)};Bw(pP,"AbstractCollection",640);lL(641,640,jP),IT.t=function(n){return _S(this,n)},IT.v=function(){return Cj(this)};Bw(pP,"AbstractSet",641);lL(649,641,jP);Bw(wP,"Sets/ImprovedAbstractSet",649);lL(655,649,jP),IT.Q=function(){this.qb().Q()},IT.kb=function(n){return KS(this,n)},IT.V=function(){return this.qb().V()},IT.nb=function(n){var t;return!!this.kb(n)&&(t=zh(n,21),this.qb().W().nb(t.yb()))},IT.Y=function(){return this.qb().Y()};Bw(wP,"Maps/EntrySet",655);lL(387,655,jP,Dt),IT.kb=function(n){return GE(new De(this.a.a),n)},IT.mb=function(){return new Cg(this.a)},IT.qb=function(){return this.a},IT.nb=function(n){var t;return!!GE(new De(this.a.a),n)&&(t=zh(n,21),rk(this.a.b,t.yb()),!0)};Bw(wP,"AbstractMapBasedMultimap/AsMap/AsMapEntries",387);lL(299,1,vP,Cg),IT.H=function(){var n;return n=Xp(this.b),this.a=zh(n.zb(),19),function(n,t){var e;return e=t.yb(),Es(),new Aa(e,vE(n.b,e,zh(t.zb(),19)))}(this.c,n)},IT.G=function(){return this.b.b},IT.I=function(){Kk(this.b),this.c.b.c-=this.a.Y(),this.a.Q()};Bw(wP,"AbstractMapBasedMultimap/AsMap/AsMapIterator",299);lL(260,649,jP,Na),IT.Q=function(){this.b.Q()},IT.kb=function(n){return this.b.R(n)},IT.V=function(){return this.b.V()},IT.mb=function(){return Es(),Eh(this.b.bb().mb(),(Wf(),pA))},IT.nb=function(n){return!!this.b.R(n)&&(this.b.eb(n),!0)},IT.Y=function(){return this.b.Y()};Bw(wP,"Maps/KeySet",260);lL(386,260,jP,Ys),IT.Q=function(){hw(new Ya(this,this.b.bb().mb()))},IT.lb=function(n){return this.b.W().lb(n)},IT.t=function(n){return this===n||this.b.W().t(n)},IT.v=function(){return this.b.W().v()},IT.mb=function(){return new Ya(this,this.b.bb().mb())},IT.nb=function(n){var t,e;return e=0,(t=zh(this.b.eb(n),19))&&(e=t.Y(),t.Q(),this.a.c-=e),e>0};Bw(wP,"AbstractMapBasedMultimap/KeySet",386);lL(300,1,vP,Ya),IT.G=function(){return this.c.G()},IT.H=function(){return this.a=zh(this.c.H(),21),this.a.yb()},IT.I=function(){var n;Sj(!!this.a),n=zh(this.a.zb(),19),this.c.I(),this.b.a.c-=n.Y(),n.Q()};Bw(wP,"AbstractMapBasedMultimap/KeySet/1",300);lL(216,640,mP,Yk),IT.ib=function(n){return function(n,t){var e,r;return lS(n),r=n.d.V(),(e=n.d.ib(t))&&(++n.f.c,r&&jh(n)),e}(this,n)},IT.jb=function(n){return function(n,t){var e,r,c;return!t.V()&&(c=n.Y(),(e=n.d.jb(t))&&(r=n.d.Y(),n.f.c+=r-c,0==c&&jh(n)),e)}(this,n)},IT.Q=function(){var n,t;0!=(t=(n=this).Y())&&(n.d.Q(),n.f.c-=t,gw(n))},IT.kb=function(n){return lS(this),this.d.kb(n)},IT.lb=function(n){return lS(this),this.d.lb(n)},IT.t=function(n){return function(n,t){return t===n||(lS(n),n.d.t(t))}(this,n)},IT.v=function(){return lS(this),this.d.v()},IT.mb=function(){return lS(this),new el(this)},IT.nb=function(n){return function(n,t){var e;return lS(n),(e=n.d.nb(t))&&(--n.f.c,gw(n)),e}(this,n)},IT.Y=function(){return lS(this),this.d.Y()},IT.w=function(){return lS(this),rH(this.d)};Bw(wP,"AbstractMapBasedMultimap/WrappedCollection",216);var sA=Hl(pP,"List");lL(297,216,yP,jw),IT.rb=function(n,t){var e;lS(this),e=this.d.V(),zh(this.d,20).rb(n,t),++this.a.c,e&&jh(this)},IT.sb=function(n){return lS(this),zh(this.d,20).sb(n)},IT.tb=function(){return lS(this),new Vf(this)},IT.ub=function(n){return lS(this),new xd(this,n)},IT.vb=function(n){var t;return lS(this),t=zh(this.d,20).vb(n),--this.a.c,gw(this),t},IT.wb=function(n,t){return lS(this),zh(this.d,20).wb(n,t)},IT.xb=function(n,t){return lS(this),Sv(this.a,this.e,zh(this.d,20).xb(n,t),this.b?this.b:this)};Bw(wP,"AbstractMapBasedMultimap/WrappedList",297);lL(385,297,SP,yb);Bw(wP,"AbstractMapBasedMultimap/RandomAccessWrappedList",385);lL(189,1,vP,el),IT.G=function(){return vw(this),this.b.G()},IT.H=function(){return vw(this),this.b.H()},IT.I=function(){this.b.I(),--this.d.f.c,gw(this.d)};Bw(wP,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",189);lL(298,189,EP,Vf,xd),IT.J=function(n){var t;t=0==function(n){return lS(n),n.d.Y()}(this.a),(vw(this),zh(this.b,96)).J(n),++this.a.a.c,t&&jh(this.a)},IT.K=function(){return(vw(this),zh(this.b,96)).K()},IT.L=function(){return(vw(this),zh(this.b,96)).L()},IT.M=function(){return(vw(this),zh(this.b,96)).M()},IT.N=function(){return(vw(this),zh(this.b,96)).N()},IT.O=function(n){(vw(this),zh(this.b,96)).O(n)};Bw(wP,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",298);lL(295,216,jP,Hb);Bw(wP,"AbstractMapBasedMultimap/WrappedSet",295);lL(296,216,HP,Cb);Bw(wP,"AbstractMapBasedMultimap/WrappedSortedSet",296);lL(668,1,CP),IT.t=function(n){var t;return!!ds(n,21)&&(t=zh(n,21),cd(this.yb(),t.yb())&&cd(this.zb(),t.zb()))},IT.v=function(){var n,t;return n=this.yb(),t=this.zb(),(null==n?0:oS(n))^(null==t?0:oS(t))},IT.Ab=function(n){throw new Qr},IT.w=function(){return this.yb()+"="+this.zb()};Bw(wP,IP,668);lL(390,640,mP,xt),IT.Q=function(){xE(this.a)},IT.kb=function(n){return function(n,t){var e;for(e=ad(Qw(n.P()));e.b.G();)if(zh(Oi(e,e.b.H()),19).kb(t))return!0;return!1}(this.a,n)},IT.mb=function(){return new hm(this.a)},IT.Y=function(){return this.a.c};Bw(wP,"AbstractMultimap/Values",390);lL(656,640,LP),IT.ib=function(n){return this.Bb(n,1),!0},IT.Bb=function(n,t){throw new Qr},IT.jb=function(n){return function(n,t){var e,r;if(Ir(),t.V())return!1;if(ds(t,207))for(r=zh(t,207).bb().mb();r.G();)e=zh(r.H(),83),n.Bb(e.Zb(),e.Yb());else Zp(n,t.mb());return!0}(this,n)},IT.Q=function(){hw(this.Eb())},IT.kb=function(n){return this.Cb(n)>0},IT.Cb=function(n){var t,e;for(e=Kw(this).mb();e.G();)if(cd((t=zh(e.H(),83)).Zb(),n))return t.Yb();return 0},IT.gb=function(){return new Bt(this)},IT.bb=function(){return Kw(this)},IT.t=function(n){return function(n,t){var e,r,c;if(Ir(),t===n)return!0;if(ds(t,207)){if(c=zh(t,207),n.Y()!=c.Y()||Kw(n).Y()!=c.bb().Y())return!1;for(r=c.bb().mb();r.G();)if(e=zh(r.H(),83),n.Cb(e.Zb())!=e.Yb())return!1;return!0}return!1}(this,n)},IT.v=function(){return Kw(this).v()},IT.V=function(){return Kw(this).V()},IT.mb=function(){return Ir(),new Ua(this,Kw(this).mb())},IT.nb=function(n){return this.Fb(n,1)>0},IT.Fb=function(n,t){throw new Qr},IT.Gb=function(n,t){var e,r;return Ir(),Yp(t,"count"),(r=t-(e=this.Cb(n)))>0?this.Bb(n,r):r<0&&this.Fb(n,-r),e},IT.Hb=function(n,t,e){return function(n,t,e,r){return Ir(),Yp(e,"oldCount"),Yp(r,"newCount"),n.Cb(t)==e&&(n.Gb(t,r),!0)}(this,n,t,e)},IT.Y=function(){return function(n){var t,e;for(Ir(),e=0,t=Kw(n).mb();t.G();)e=Ny(e,zh(t.H(),83).Yb());return wp(e)}(this)},IT.w=function(){return rH(Kw(this))};Bw(wP,"AbstractMultiset",656);lL(657,649,jP),IT.Q=function(){this.Ib().Q()},IT.kb=function(n){var t;return!!ds(n,83)&&(!((t=zh(n,83)).Yb()<=0)&&this.Ib().Cb(t.Zb())==t.Yb())},IT.nb=function(n){var t,e,r;return!(!ds(n,83)||(t=(e=zh(n,83)).Zb(),0==(r=e.Yb())))&&this.Ib().Hb(t,r,0)};Bw(wP,"Multisets/EntrySet",657);lL(396,657,jP,Bt),IT.mb=function(){return this.a.Eb()},IT.Ib=function(){return this.a},IT.Y=function(){return this.a.Db()};Bw(wP,"AbstractMultiset/EntrySet",396);lL(384,294,gP),IT.Z=function(){return new Ia(vj(this.a))},IT.$=function(){return hh(),od(),EA},IT.U=function(n){return zh(uC(this,n),18)},IT.X=function(n){return zh(pI(this,n),18)},IT.P=function(){return this.f||(this.f=new Pa(this,this.b))},IT.t=function(n){return Xj(this,n)};Bw(wP,"AbstractSetMultimap",384);lL(342,656,LP);Bw(wP,"AbstractSortedMultiset",342);lL(280,600,gP,Qb),IT.a=0;var bA,hA;Bw(wP,"ArrayListMultimap",280);lL(159,17,GP);var lA=op(wP,"BoundType",159,oA,(function(){return Qf(),_j(Ni(lA,1),bP,159,0,[hA,bA])}));lL(623,159,GP,hf);op(wP,"BoundType/1",623,lA,null);lL(624,159,GP,Yf);var wA;op(wP,"BoundType/2",624,lA,null);lL(234,1,OP),IT.w=function(){return n=this.c.mb(),Kf(),Zw(Fy((qf(),wA),Zw(new Zi,91),n),93).a;var n};Bw(wP,"FluentIterable",234);lL(170,234,OP,If),IT.mb=function(){return Rw(this)};Bw(wP,"FluentIterable/2",170);lL(664,1,{}),IT.w=function(){return rH(Pd(this.a.d).b)};Bw(wP,"ForwardingObject",664);lL(665,664,mP),IT.ib=function(n){return Pd(this.a.d),Zr()},IT.jb=function(n){return Pd(this.a.d),Xr()},IT.Q=function(){Pd(this.a.d),nc()},IT.kb=function(n){return Bu(Pd(this.a.d),n)},IT.lb=function(n){return $u(Pd(this.a.d),n)},IT.V=function(){return Pd(this.a.d).b.V()},IT.mb=function(){return new tr(Pd(this.a.d).b.mb())},IT.nb=function(n){return Pd(this.a.d),tc()},IT.Y=function(){return Pd(this.a.d).b.Y()},IT.ob=function(){return Zd(Pd(this.a.d))},IT.pb=function(n){return og(Pd(this.a.d),n)};Bw(wP,"ForwardingCollection",665);lL(660,640,TP),IT.mb=function(){return this.Kb()},IT.ib=function(n){return function(){throw new Qr}()},IT.jb=function(n){return function(){throw new Qr}()},IT.Q=function(){!function(){throw new Qr}()},IT.kb=function(n){return null!=n&&OS(this,n,!1)},IT.Jb=function(){switch(this.Y()){case 0:return ud(),ud(),dA;case 1:return ud(),new zl(this.Kb().H());default:return new mw(this,this.ob())}},IT.nb=function(n){return function(){throw new Qr}()};Bw(wP,"ImmutableCollection",660);lL(316,660,TP,wc),IT.mb=function(){return _p(this.a.mb())},IT.kb=function(n){return null!=n&&this.a.kb(n)},IT.lb=function(n){return this.a.lb(n)},IT.V=function(){return this.a.V()},IT.Kb=function(){return _p(this.a.mb())},IT.Y=function(){return this.a.Y()},IT.ob=function(){return this.a.ob()},IT.pb=function(n){return this.a.pb(n)},IT.w=function(){return rH(this.a)};var dA;Bw(wP,"ForwardingImmutableCollection",316);lL(87,660,PP),IT.mb=function(){return this.Kb()},IT.tb=function(){return this.Lb(0)},IT.ub=function(n){return this.Lb(n)},IT.xb=function(n,t){return this.Mb(n,t)},IT.rb=function(n,t){throw new Qr},IT.t=function(n){return eL(this,n)},IT.v=function(){return function(n){var t,e,r;for(t=1,r=n.mb();r.G();)t=~~(t=31*t+(null==(e=r.H())?0:oS(e)));return t}(this)},IT.Kb=function(){return this.Lb(0)},IT.Lb=function(n){return Ns(this,n)},IT.vb=function(n){throw new Qr},IT.wb=function(n,t){throw new Qr},IT.Mb=function(n,t){return Bj(new Zg(new Qa(this),n,t))};Bw(wP,"ImmutableList",87);lL(667,87,PP),IT.mb=function(){return _p(this.Nb().mb())},IT.xb=function(n,t){return Bj(this.Nb().xb(n,t))},IT.kb=function(n){return oh(this,n)},IT.lb=function(n){return this.Nb().lb(n)},IT.t=function(n){return this.Nb().t(n)},IT.sb=function(n){return Jo(this,n)},IT.v=function(){return this.Nb().v()},IT.V=function(){return this.Nb().V()},IT.Kb=function(){return _p(this.Nb().mb())},IT.Y=function(){return this.Nb().Y()},IT.Mb=function(n,t){return Bj(this.Nb().xb(n,t))},IT.ob=function(){return this.Nb().pb(Pk(WY,fP,1,this.Nb().Y(),4,1))},IT.pb=function(n){return this.Nb().pb(n)},IT.w=function(){return rH(this.Nb())};Bw(wP,"ForwardingImmutableList",667);lL(524,1,RP),IT.bb=function(){return fw(this)},IT.W=function(){return sw(this)},IT.fb=function(){return this.Rb()},IT.Q=function(){throw new Qr},IT.R=function(n){return null!=this.cb(n)},IT.ab=function(n){return this.Rb().kb(n)},IT.Pb=function(){return new dc(this)},IT.Qb=function(){return new gc(this)},IT.t=function(n){return function(n,t){var e;return Es(),n===t||!!ds(t,57)&&(e=zh(t,57),eI(fw(n),e.bb()))}(this,n)},IT.v=function(){return fw(this).v()},IT.V=function(){return 0==this.Y()},IT.db=function(n,t){return function(){throw new Qr}()},IT.eb=function(n){throw new Qr},IT.w=function(){var n;return Es(),n=Zw(dp(this.Y()),123),Vy(kA,n,fw(this).mb()),n.a+="}",n.a},IT.Rb=function(){return this.g?this.g:this.g=this.Qb()},IT.e=null,IT.f=null,IT.g=null;Bw(wP,"ImmutableMap",524);lL(320,524,RP),IT.R=function(n){return LE(this.d,n)},IT.ab=function(n){return xu(this.d,n)},IT.Ob=function(){return Gy(new $t(this))},IT.Pb=function(){return Gy(vd(this.d))},IT.Qb=function(){return hh(),new wc(Rd(this.d))},IT.t=function(n){return ja(this.d,n)},IT.cb=function(n){return null==n?null:pE(this.d,n)},IT.v=function(){return this.d.c.v()},IT.V=function(){return this.d.c.V()},IT.Y=function(){return this.d.c.Y()},IT.w=function(){return rH(this.d.c)};Bw(wP,"ForwardingImmutableMap",320);lL(666,665,jP),IT.t=function(n){return n===this||ma(Pd(this.a.d),n)},IT.v=function(){return Pd(this.a.d).b.v()};Bw(wP,"ForwardingSet",666);lL(523,666,jP,$t),IT.kb=function(n){if(ds(n,21)&&null==zh(n,21).yb())return!1;try{return Bu(Pd(this.a.d),n)}catch(n){if(ds(n=ly(n),119))return!1;throw zy(n)}},IT.pb=function(n){var t;return t=og(Pd(this.a.d),n),Pd(this.a.d).b.Y()=(c=i.Y()))i.Q();else for(r=i.mb(),e=0;et?1:0}(t.Yb(),n.Yb())}(zh(n,83),zh(t,83))};Bw(wP,"Multisets/1",398);lL(397,658,{83:1,3:1},hl),IT.Yb=function(){return this.a},IT.Zb=function(){return this.b},IT.a=0;Bw(wP,"Multisets/ImmutableEntry",397);lL(303,1,vP,Ua),IT.G=function(){return this.d>0||this.c.G()},IT.H=function(){if(!(this.d>0||this.c.G()))throw new mc;return 0==this.d&&(this.b=zh(this.c.H(),83),this.f=this.d=this.b.Yb()),--this.d,this.a=!0,this.b.Zb()},IT.I=function(){Sj(this.a),1==this.f?this.c.I():this.e.Fb(this.b.Zb(),1),--this.f,this.a=!1},IT.a=!1,IT.d=0,IT.f=0;var yA;Bw(wP,"Multisets/MultisetIteratorImpl",303);lL(622,659,{3:1,56:1},f),IT.$b=function(n,t){return function(n,t){return _l(n),_l(t),Wm(n,t)}(zh(n,23),zh(t,23))},IT.w=function(){return"Ordering.natural()"};Bw(wP,"NaturalOrdering",622);lL(343,661,PP,mw),IT.ub=function(n){return Ns(this.b,n)},IT.Sb=function(){return this.a},IT.sb=function(n){return Jo(this.b,n)},IT.Lb=function(n){return Ns(this.b,n)};var SA;Bw(wP,"RegularImmutableAsList",343);lL(559,275,RP,wd),IT.Tb=function(){return this.a};Bw(wP,"RegularImmutableBiMap",559);lL(53,667,PP,lv),IT.Nb=function(){return this.a};Bw(wP,"RegularImmutableList",53);lL(321,320,RP,Pc);var EA;Bw(wP,"RegularImmutableMap",321);lL(265,315,YP,Ku);Bw(wP,"RegularImmutableSet",265);lL(650,641,jP);Bw(wP,"Sets/SetView",650);lL(377,650,jP,gh),IT.kb=function(n){return ya(this.b,n)&&ya(this.c,n)},IT.lb=function(n){return uj(this.b,n)&&uj(this.c,n)},IT.V=function(){return Bp(this)},IT.mb=function(){return pw(new $e(new Be(this.b.a).a.bb().mb()),this.a)},IT.Y=function(){return ak(pw(new $e(new Be(this.b.a).a.bb().mb()),this.a))};Bw(wP,"Sets/2",377);lL(328,275,RP,nv,Wk),IT.fb=function(){return hh(),new oa(this.c)},IT.Tb=function(){return this.a||(this.a=new Wk(this.c,this.b,this))},IT.Ub=function(){return hh(),new oa(this.c)};Bw(wP,"SingletonImmutableBiMap",328);lL(127,667,PP,zl),IT.Nb=function(){return this.a};Bw(wP,"SingletonImmutableList",127);lL(135,663,YP,oa),IT.mb=function(){return Kf(),new Vt(this.a)},IT.kb=function(n){return vy(this.a,n)},IT.Kb=function(){return Kf(),new Vt(this.a)},IT.Y=function(){return 1};Bw(wP,"SingletonImmutableSet",135);lL(285,342,{207:1,3:1,22:1,19:1},Dg,jE),IT.Bb=function(n,t){return CI(this,n,t)},IT.Cb=function(n){return $H(this,n)},IT.Db=function(){return wp(Wj(this,(Jf(),HA)))},IT.Eb=function(){return new As(this)},IT.Fb=function(n,t){return sL(this,n,t)},IT.Gb=function(n,t){return bC(this,n,t)},IT.Hb=function(n,t,e){var r,c,i;return Yp(e,"newCount"),Yp(t,"oldCount"),Uo(lb(this.b,n)),(i=this.c.a)?(c=Pk(OQ,BP,26,1,12,1),r=MN(i,this.d,n,t,e,c),Dl(this.c,i,r),c[0]==t):0==t&&(e>0&&CI(this,n,e),!0)},IT.Y=function(){return wp(Wj(this,(Jf(),CA)))};Bw(wP,"TreeMultiset",285);lL(619,658,{83:1},Va),IT.Yb=function(){var n;return 0==(n=this.b.c)?$H(this.a,this.b.b):n},IT.Zb=function(){return this.b.b};Bw(wP,"TreeMultiset/1",619);lL(620,1,vP,As),IT.H=function(){return function(n){var t;if(!yj(n))throw new mc;return t=new Va(n.c,n.a),n.b=t,n.a.i==n.c.a?n.a=null:n.a=n.a.i,t}(this)},IT.G=function(){return yj(this)},IT.I=function(){Sj(!!this.b),bC(this.c,this.b.b.b,0),this.b=null};var HA,CA;Bw(wP,"TreeMultiset/2",620);lL(205,17,$P);var IA=op(wP,"TreeMultiset/Aggregate",205,oA,(function(){return Jf(),_j(Ni(IA,1),bP,205,0,[CA,HA])}));lL(617,205,$P,lf),IT._b=function(n){return n.c},IT.ac=function(n){return n?n.j:0};op(wP,"TreeMultiset/Aggregate/1",617,IA,null);lL(618,205,$P,ys),IT._b=function(n){return 1},IT.ac=function(n){return n?n.a:0};op(wP,"TreeMultiset/Aggregate/2",618,IA,null);lL(206,658,{83:1,206:1},Am),IT.Yb=function(){return this.c},IT.Zb=function(){return this.b},IT.w=function(){return Ir(),Rv(new hl(this.b,this.c))},IT.a=0,IT.c=0,IT.d=0,IT.j=0;Bw(wP,"TreeMultiset/AvlNode",206);lL(616,1,{},s);Bw(wP,"TreeMultiset/Reference",616);var LA,GA=Bw(eP,"JavaScriptObject$",0);lL(628,1,{});Bw(eP,"Scheduler",628);var NA,OA=0,TA=0,PA=-1;lL(360,628,{},a);Bw(rP,"SchedulerImpl",360);lL(646,1,{}),IT.hc=function(){return null},IT.ic=function(){return null},IT.jc=function(){return null},IT.kc=function(){return null},IT.lc=function(){return null};Bw(FP,"JSONValue",646);lL(214,646,{214:1},cr,Xt),IT.t=function(n){return!!ds(n,214)&&this.a==zh(n,214).a},IT.gc=function(){return hr},IT.v=function(){return wb(this.a)},IT.hc=function(){return this},IT.w=function(){var n,t,e;for(e=new zi("["),t=0,n=this.a.length;t0&&(e.a+=","),ef(e,Mp(this,t));return e.a+="]",e.a};var RA,YA;Bw(FP,"JSONArray",214);lL(292,646,{},ne),IT.gc=function(){return lr},IT.ic=function(){return this},IT.w=function(){return ms(this.a)},IT.a=!1;Bw(FP,"JSONBoolean",292);lL(371,72,MT,Mc);var AA;Bw(FP,"JSONException",371);lL(435,646,{},w),IT.gc=function(){return kr},IT.w=function(){return DT};Bw(FP,"JSONNull",435);lL(104,646,{104:1},te),IT.t=function(n){return!!ds(n,104)&&this.a==zh(n,104).a},IT.gc=function(){return wr},IT.v=function(){return Eg(ri(this.a))},IT.jc=function(){return this},IT.w=function(){return this.a+""},IT.a=0;Bw(FP,"JSONNumber",104);lL(69,646,{69:1},$c,ee),IT.t=function(n){return!!ds(n,69)&&this.a==zh(n,69).a},IT.gc=function(){return dr},IT.v=function(){return wb(this.a)},IT.kc=function(){return this},IT.w=function(){var n,t,e,r,c,i;for(i=new zi("{"),n=!0,e=0,r=(c=Pm(this,Pk(XY,AT,2,0,5,1))).length;e>>28]|t[n>>24&15]<<4|t[n>>20&15]<<8|t[n>>16&15]<<12|t[n>>12&15]<<16|t[n>>8&15]<<20|t[n>>4&15]<<24|t[15&n]<<28);var n,t},IT.w=function(){return"("+this.a+","+this.b+")"},IT.a=0,IT.b=0;var BA=Bw(XP,"KVector",10);lL(58,648,{3:1,5:1,22:1,19:1,58:1,20:1},oi),IT.ib=function(n){return Th(this,n)},IT.Q=function(){Yd(this)},IT.ub=function(n){return BE(this,n)},IT.Y=function(){return this.b},IT.b=0;Bw(pP,"LinkedList",58);lL(44,58,{44:1,286:1,3:1,5:1,22:1,19:1,58:1,20:1},_r,Nb),IT.w=function(){var n,t,e;for(n=new zi("("),t=BE(this,0);t.b!=t.d.c;)rf(n,(e=zh(Yv(t),10)).a+","+e.b),t.b!=t.d.c&&(n.a+="; ");return n.a+=")",n.a};Bw(XP,"KVectorChain",44);var $A=Hl(tR,"IProperty");lL(131,1,{179:1,131:1,3:1},d);var UA,FA;Bw(tR,"MapPropertyHolder",131);lL(14,1,eR,Pl,Tl,wl,Rh,Lg,ev),IT.F=function(n){return function(n,t){return Id(n.b,t.mc())}(this,zh(n,79))},IT.t=function(n){return jd(this,n)},IT.mc=function(){return this.b},IT.nc=function(){return this.c},IT.oc=function(){return this.d},IT.v=function(){return EE(this.b)},IT.w=function(){return this.b};Bw(tR,"Property",14);lL(366,1,{23:1},g),IT.F=function(n){return-1};Bw(tR,"Property/1",366);lL(367,1,{23:1},v),IT.F=function(n){return 1};Bw(tR,"Property/2",367);lL(27,1,{27:1,22:1},Xa),IT.t=function(n){var t,e,r;return!!ds(n,27)&&(e=zh(n,27),t=null==this.a?null==e.a:vy(this.a,e.a),r=null==this.b?null==e.b:vy(this.b,e.b),t&&r)},IT.v=function(){var n,t,e;return n=-65536&(t=null==this.a?0:oS(this.a)),t&zT^(-65536&(e=null==this.b?0:oS(this.b)))>>16&zT|n^(e&zT)<<16},IT.mb=function(){return new re(this)},IT.w=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+rH(this.b)+")":null==this.b?"pair("+rH(this.a)+",null)":"pair("+rH(this.a)+","+rH(this.b)+")"};Bw(rR,"Pair",27);lL(431,1,vP,re),IT.G=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},IT.H=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw new mc},IT.I=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),new zr},IT.b=!1,IT.c=!1;Bw(rR,"Pair/1",431);lL(228,72,MT,Dc);Bw(cR,"UnsupportedConfigurationException",228);lL(99,72,MT,xc);var VA,zA,qA,QA,KA,WA,JA;Bw(cR,"UnsupportedGraphException",99);lL(103,17,{103:1,3:1,23:1,17:1},nu);var ZA,XA,n_,t_,e_,r_,c_=op(oR,"Alignment",103,oA,(function(){return SE(),_j(Ni(c_,1),bP,103,0,[zA,KA,WA,JA,qA,QA])}));lL(59,17,{59:1,3:1,23:1,17:1},uu);var i_,a_,u_,o_,f_,s_=op(oR,"Direction",59,oA,(function(){return Py(),_j(Ni(s_,1),bP,59,0,[e_,t_,n_,XA,r_])}));lL(107,17,{107:1,3:1,23:1,17:1},ou);var b_,h_,l_,w_,d_,g_=op(oR,"EdgeLabelPlacement",107,oA,(function(){return qm(),_j(Ni(g_,1),bP,107,0,[f_,a_,u_,o_])}));lL(122,17,{122:1,3:1,23:1,17:1},fu);var v_,k_,p_,m_,j_,y_,S_,E_=op(oR,"EdgeRouting",122,oA,(function(){return Ry(),_j(Ni(E_,1),bP,122,0,[d_,l_,h_,w_])}));lL(133,17,{133:1,3:1,23:1,17:1},su);var H_,C_,I_,L_,G_=op(oR,"EdgeType",133,oA,(function(){return QH(),_j(Ni(G_,1),bP,133,0,[y_,m_,S_,k_,j_,p_])}));lL(166,17,{166:1,3:1,23:1,17:1},bu);var N_,O_,T_,P_,R_,Y_,A_,__,M_,D_,x_,B_,$_,U_,F_,V_,z_,q_,Q_,K_,W_,J_,Z_,X_,nM,tM,eM,rM,cM,iM,aM,uM,oM,fM,sM,bM,hM,lM,wM,dM,gM,vM,kM,pM,mM,jM,yM,SM,EM,HM,CM,IM,LM,GM,NM,OM,TM,PM,RM,YM=op(oR,"HierarchyHandling",166,oA,(function(){return Yy(),_j(Ni(YM,1),bP,166,0,[I_,C_,L_])}));lL(41,17,{41:1,3:1,23:1,17:1},hu);var AM,_M,MM,DM,xM,BM,$M=op(oR,"NodeLabelPlacement",41,oA,(function(){return PI(),_j(Ni($M,1),bP,41,0,[IM,CM,GM,RM,PM,TM,NM,OM,LM])}));lL(100,17,{100:1,3:1,23:1,17:1},lu);var UM,FM,VM,zM,qM,QM,KM,WM=op(oR,"PortAlignment",100,oA,(function(){return BS(),_j(Ni(WM,1),bP,100,0,[BM,xM,_M,MM,DM])}));lL(28,17,{28:1,3:1,23:1,17:1},wu);var JM,ZM,XM,nD,tD=op(oR,"PortConstraints",28,oA,(function(){return NH(),_j(Ni(tD,1),bP,28,0,[KM,QM,qM,FM,zM,VM])}));lL(149,17,{149:1,3:1,23:1,17:1},du);var eD,rD,cD,iD,aD,uD,oD,fD,sD,bD,hD,lD,wD,dD,gD,vD,kD,pD,mD,jD,yD,SD,ED=op(oR,"PortLabelPlacement",149,oA,(function(){return Vp(),_j(Ni(ED,1),bP,149,0,[nD,XM,ZM])}));lL(32,17,{32:1,3:1,23:1,17:1},gu);var HD,CD,ID,LD,GD,ND=op(oR,"PortSide",32,oA,(function(){return FO(),_j(Ni(ND,1),bP,32,0,[yD,cD,rD,jD,SD])}));lL(150,17,{150:1,3:1,23:1,17:1},vu);var OD,TD,PD,RD,YD,AD=op(oR,"SizeConstraint",150,oA,(function(){return $S(),_j(Ni(AD,1),bP,150,0,[LD,GD,ID,CD])}));lL(139,17,{139:1,3:1,23:1,17:1},ku);var _D,MD=op(oR,"SizeOptions",139,oA,(function(){return eC(),_j(Ni(MD,1),bP,139,0,[RD,YD,PD,TD])}));lL(62,1,{62:1},co,Ed),IT.t=function(n){var t;return!(null==n||!ds(n,62))&&(t=zh(n,62),Nd(this.d,t.d)&&Nd(this.e,t.e)&&Nd(this.c,t.c)&&Nd(this.b,t.b))},IT.v=function(){return iy(_j(Ni(WY,1),fP,1,4,[this.d,this.e,this.c,this.b]))},IT.w=function(){return"Rect[x="+this.d+",y="+this.e+",w="+this.c+",h="+this.b+"]"},IT.b=0,IT.c=0,IT.d=0,IT.e=0;Bw(lR,"Rectangle",62);lL(283,62,{283:1,62:1},Mr),IT.a=0;var DD,xD,BD,$D,UD,FD,VD,zD,qD,QD,KD,WD,JD,ZD,XD,nx,tx,ex,rx,cx,ix,ax;Bw(wR,"LabelGroup",283);lL(67,17,{67:1,3:1,23:1,17:1},Cd);var ux,ox,fx,sx=op(wR,"LabelLocation",67,oA,xS);lL(225,17,{225:1,3:1,23:1,17:1},pu);var bx,hx=op(wR,"TextAlignment",225,oA,(function(){return qv(),_j(Ni(hx,1),bP,225,0,[ox,ux,fx])}));lL(589,1,{},xN),IT.a=0,IT.b=!1,IT.d=0,IT.f=0,IT.k=0,IT.r=0,IT.s=0;var lx,wx,dx,gx;Bw(lR,"LabelAndNodeSizeProcessor/NodeData",589);lL(171,17,{171:1,3:1,23:1,17:1},mu);var vx=op(lR,"LabelSide",171,oA,(function(){return US(),_j(Ni(vx,1),bP,171,0,[gx,lx,wx])}));lL(590,1,{},ce),IT.b=!0,IT.c=!0,IT.d=!0,IT.e=!0;Bw(lR,gR,590);lL(121,1,kR),IT.t=function(n){var t;return!!ds(n,121)&&(t=zh(n,121),this.d==t.d&&this.a==t.a&&this.b==t.b&&this.c==t.c)},IT.v=function(){var n,t;return n=Eg(ri(this.b))<<16,n|=Eg(ri(this.a))&zT,t=Eg(ri(this.c))<<16,n^(t|=Eg(ri(this.d))&zT)},IT.w=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},IT.a=0,IT.b=0,IT.c=0,IT.d=0;Bw(lR,"Spacing",121);lL(232,121,kR,Dr,Sb,Kb);Bw(lR,"Spacing/Insets",232);lL(65,121,{286:1,121:1,65:1,3:1,5:1},xr,Eb,Wb);var kx,px,mx;Bw(lR,"Spacing/Margins",65);lL(364,1,{},QE),IT.c=!1,IT.d=null,IT.g=null;var jx,yx,Sx,Ex,Hx,Cx,Ix,Lx,Gx;Bw(OR,"JsonGraphImporter",364);lL(417,14,eR,fo);var Nx;Bw(OR,"LayoutOptionResolver/DummyProperty",417);lL(348,1,{},jt);Bw(OR,"RecursiveLGraphLayout",348);lL(73,99,{73:1,3:1,54:1,46:1},Bc,Js,Sw);var Ox,Tx,Px=Bw(OR,"UnsupportedJsonGraphException",73);lL(380,1,{},dd);Bw(YR,"GraphConfigurator",380);lL(49,1,{},dS);Bw(YR,"IntermediateProcessingConfiguration",49);lL(365,1,{},Uv);var Rx;Bw(YR,"KlayLayered",365);lL(577,1,{},ej),IT.i=0;var Yx;Bw(DR,"ComponentsToCGraphTransformer",577);lL(578,1,{},H),IT.tc=function(n,t){return xi(n.wc(),t.wc())},IT.uc=function(n,t){return xi(n.xc(),t.xc())};Bw(DR,"ComponentsToCGraphTransformer/1",578);lL(25,1,{25:1}),IT.k=0,IT.o=null,IT.p=!0,IT.r=MR;var Ax=Bw(xR,"CNode",25);lL(198,25,{198:1,25:1},is,wm),IT.vc=function(){this.b.d=this.j.d,this.b.e=this.j.e},IT.wc=function(){return null!=this.a?ri(this.a):this.c.i},IT.xc=function(){return null!=this.a?ri(this.a):this.c.i},IT.w=function(){return""};var _x,Mx;Bw(DR,"ComponentsToCGraphTransformer/CRectNode",198);lL(549,1,{},C);Bw(DR,"OneDimensionalComponentsCompaction",549);lL(550,1,AP,I),IT.B=function(n){return Hj(),ql(),0!=zh(zh(n,27).a,25).f.f?tQ:nQ};Bw(DR,"OneDimensionalComponentsCompaction/lambda$0$Type",550);lL(551,1,AP,L),IT.B=function(n){return Hj(),ql(),jS(zh(zh(n,27).a,25).n,zh(zh(n,27).b,59))||0!=zh(zh(n,27).a,25).f.f&&jS(zh(zh(n,27).a,25).n,zh(zh(n,27).b,59))?tQ:nQ};Bw(DR,"OneDimensionalComponentsCompaction/lambda$1$Type",551);lL(324,1,{},Ew);Bw(xR,"CGraph",324);lL(78,1,{78:1},uE),IT.b=0,IT.c=0,IT.d=0,IT.f=0,IT.i=!0,IT.j=MR;Bw(xR,"CGroup",78);lL(470,1,{},G),IT.tc=function(n,t){return _i(n.wc(),t.wc())},IT.uc=function(n,t){return _i(n.xc(),t.xc())};var Dx,xx,Bx;Bw(xR,"ISpacingsHandler/1",470);lL(323,1,{},RI),IT.e=!1;var $x=Bw(xR,"OneDimensionalCompactor",323);lL(554,1,AP,p),IT.B=function(n){return Wl(),ql(),0!=zh(zh(n,27).a,25).f.f?tQ:nQ};Bw(xR,"OneDimensionalCompactor/lambda$0$Type",554);lL(335,1,{},$h),IT.a=!1,IT.b=!1,IT.c=!1,IT.d=!1;Bw(xR,"Quadruplet",335);lL(587,1,{},m),IT.Cc=function(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g;for(s=_R,r=new Qe(n.a.b);r.ae.j.d||e.j.d==c.j.d&&e.j.c0&&(Ph(n.c,new vh(t.c,t.d,n.d)),n.b=t.d)}(this,zh(n,48))},IT.b=0;Bw(UR,"RectilinearConvexHull/MaximalElementsEventHandler",243);lL(571,1,WT,N),IT.$b=function(n,t){return id(n,t)};Bw(UR,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",571);lL(570,1,{160:1},ok),IT.Ec=function(n){AL(this,zh(n,48))},IT.a=0,IT.b=null,IT.c=null,IT.d=null,IT.e=null;Bw(UR,"RectilinearConvexHull/RectangleEventHandler",570);lL(572,1,WT,O),IT.$b=function(n,t){return zv(),zh(n,48).c==zh(t,48).c?xj(zh(t,48).d,zh(n,48).d):xj(zh(n,48).c,zh(t,48).c)};Bw(UR,"RectilinearConvexHull/lambda$0$Type",572);lL(573,1,WT,T),IT.$b=function(n,t){return zv(),zh(n,48).c==zh(t,48).c?xj(zh(n,48).d,zh(t,48).d):xj(zh(n,48).c,zh(t,48).c)};Bw(UR,"RectilinearConvexHull/lambda$1$Type",573);lL(574,1,WT,P),IT.$b=function(n,t){return zv(),zh(n,48).c==zh(t,48).c?xj(zh(t,48).d,zh(n,48).d):xj(zh(t,48).c,zh(n,48).c)};Bw(UR,"RectilinearConvexHull/lambda$2$Type",574);lL(575,1,WT,R),IT.$b=function(n,t){return zv(),zh(n,48).c==zh(t,48).c?xj(zh(n,48).d,zh(t,48).d):xj(zh(t,48).c,zh(n,48).c)};Bw(UR,"RectilinearConvexHull/lambda$3$Type",575);lL(576,1,WT,Y),IT.$b=function(n,t){return jC(n,t)};Bw(UR,"RectilinearConvexHull/lambda$4$Type",576);lL(469,1,{},Ov);Bw(UR,"Scanline",469);lL(662,1,{});var eB;Bw(VR,"AbstractGraphPlacer",662);lL(222,1,{222:1},nh);Bw(VR,"ComponentGroup",222);lL(434,662,{},Nr),IT.Fc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l;if(this.a.c=Pk(WY,fP,1,0,4,1),t.b.c=Pk(WY,fP,1,0,4,1),n.V())return t.e.a=0,void(t.e.b=0);for(Uy(t,c=zh(n.sb(0),55)),r=n.mb();r.G();)nS(this,zh(r.H(),55));for(h=new ui,l=2*zh(Pj(c,(jT(),zz)),15).a,u=new Qe(this.a);u.ab&&(j=0,y+=s+p,s=0),HG(i,j+(w=i.d).a,y+w.b),w.a=0,w.b=0,e=_i(e,j+v.a),s=_i(s,v.b),j+=v.a+p;if(t.e.a=e,t.e.b=y+s,g=zh(Pj(t,zz),15).a,ei(ri(Ob(Pj(c,(yT(),lq)))))){for(fT(r=new A,n,g),f=n.mb();f.G();)Rb(No(zh(f.H(),55).d),r.e);Rb(No(t.e),r.a)}yk(t,n)}else(k=zh(n.sb(0),55))!=t&&(t.b.c=Pk(WY,fP,1,0,4,1),_G(t,k,0,0),Uy(t,k),Cl(t.a,k.a),t.e.a=k.e.a,t.e.b=k.e.b)};Bw(VR,"SimpleRowGraphPlacer",432);lL(433,1,WT,M),IT.$b=function(n,t){return function(n,t){var e;return 0==(e=t.k-n.k)?xj(n.e.a*n.e.b,t.e.a*t.e.b):e}(zh(n,55),zh(t,55))};var rB;Bw(VR,"SimpleRowGraphPlacer/1",433);lL(369,1,KR,yt),IT.sc=function(n,t){dT(n,t)};Bw(WR,"CompoundGraphPostprocessor",369);lL(370,1,FR,D),IT.D=function(n){var t;return!!(t=zh(Pj(zh(n,114).b,(HT(),W_)),44))&&0!=t.b};Bw(WR,"CompoundGraphPostprocessor/1",370);lL(368,1,KR,zo),IT.sc=function(n,t){dE(this,n,t)};Bw(WR,"CompoundGraphPreprocessor",368);lL(187,1,{187:1},Dy),IT.c=!1;Bw(WR,"CompoundGraphPreprocessor/ExternalPort",187);lL(114,1,{114:1},kh),IT.w=function(){return gb(this.c)+":"+Up(this.b)};Bw(WR,"CrossHierarchyEdge",114);lL(310,1,WT,ie),IT.$b=function(n,t){return function(n,t,e){var r,c;return t.c==(bm(),oq)&&e.c==uq?-1:t.c==uq&&e.c==oq?1:(r=PS(t.a,n.a),c=PS(e.a,n.a),t.c==oq?c-r:r-c)}(this,zh(n,114),zh(t,114))};Bw(WR,"CrossHierarchyEdgeComparator",310);lL(147,131,{179:1,131:1,147:1,3:1}),IT.k=0;Bw(ZR,"LGraphElement",147);lL(12,147,{179:1,131:1,12:1,147:1,3:1},Dd),IT.w=function(){return Up(this)};var cB=Bw(ZR,"LEdge",12);lL(55,147,{179:1,131:1,55:1,147:1,3:1,22:1},Qp),IT.mb=function(){return new Qe(this.c)},IT.w=function(){return 0==this.c.c.length?"G-unlayered"+dC(this.b):0==this.b.c.length?"G-layered"+dC(this.c):"G[layerless"+dC(this.b)+", layers"+dC(this.c)+"]"};var iB=Bw(ZR,"LGraph",55);lL(273,1,{}),IT.pc=function(){return this.e.j};Bw(ZR,"LGraphAdapters/AbstractLShapeAdapter",273);lL(240,1,{627:1},ae),IT.b=null;Bw(ZR,"LGraphAdapters/LEdgeAdapter",240);lL(325,1,{},Su),IT.pc=function(){return this.a.e},IT.b=null,IT.c=!1;Bw(ZR,"LGraphAdapters/LGraphAdapter",325);lL(224,273,{129:1,224:1},ue);Bw(ZR,"LGraphAdapters/LLabelAdapter",224);lL(555,273,{626:1},Eu),IT.a=null,IT.b=null,IT.c=!1;Bw(ZR,"LGraphAdapters/LNodeAdapter",555);lL(556,273,{161:1},Hu),IT.a=null,IT.b=null,IT.c=null,IT.d=!1;Bw(ZR,"LGraphAdapters/LPortAdapter",556);lL(557,1,WT,x),IT.$b=function(n,t){return function(n,t){var e,r,c,i;if(0!=(i=n.g.e-t.g.e))return i;if(e=zh(Pj(n,(HT(),wM)),24),r=zh(Pj(t,wM),24),e&&r&&0!=(c=e.a-r.a))return c;switch(n.g.e){case 1:return xj(n.i.a,t.i.a);case 2:return xj(n.i.b,t.i.b);case 3:return xj(t.i.a,n.i.a);case 4:return xj(t.i.b,n.i.b);default:throw new ji(XR)}}(zh(n,7),zh(t,7))};Bw(ZR,"LGraphAdapters/PortComparator",557);lL(168,1,{168:1},Yt,Ud),IT.t=function(n){var t;return!!ds(n,168)&&(t=zh(n,168),this.d==t.d&&this.a==t.a&&this.b==t.b&&this.c==t.c)},IT.v=function(){var n,t;return n=Eg(ri(this.b))<<16,n|=Eg(ri(this.a))&zT,t=Eg(ri(this.c))<<16,n^(t|=Eg(ri(this.d))&zT)},IT.w=function(){return"Insets[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},IT.a=0,IT.b=0,IT.c=0,IT.d=0;Bw(ZR,"LInsets",168);lL(165,147,{179:1,131:1,147:1,165:1,3:1});Bw(ZR,"LShape",165);lL(33,165,{179:1,131:1,147:1,33:1,165:1,3:1},Hf),IT.w=function(){return null==this.a?"l_"+this.k:"l_"+this.a};Bw(ZR,"LLabel",33);lL(9,165,{179:1,131:1,147:1,9:1,165:1,3:1},_E),IT.w=function(){return pg(this)};var aB,uB,oB,fB,sB,bB,hB=Bw(ZR,"LNode",9);lL(132,17,{132:1,3:1,23:1,17:1},Iu);var lB,wB,dB,gB,vB,kB,pB=op(ZR,"LNode/NodeType",132,oA,(function(){return KH(),_j(Ni(pB,1),bP,132,0,[sB,fB,uB,bB,oB,aB])}));lL(7,165,{179:1,131:1,147:1,7:1,165:1,3:1},MH),IT.w=function(){var n;return null==(n=lk(this))?"p_"+this.k:"p_"+n};var mB=Bw(ZR,"LPort",7);lL(399,1,FR,B),IT.D=function(n){return xb(n)};Bw(ZR,"LPort/1",399);lL(400,1,FR,$),IT.D=function(n){return Db(n)};Bw(ZR,"LPort/2",400);lL(401,1,FR,U),IT.D=function(n){return zh(n,7).g==(FO(),cD)};Bw(ZR,"LPort/3",401);lL(402,1,FR,F),IT.D=function(n){return zh(n,7).g==(FO(),rD)};Bw(ZR,"LPort/4",402);lL(403,1,FR,V),IT.D=function(n){return zh(n,7).g==(FO(),jD)};Bw(ZR,"LPort/5",403);lL(404,1,FR,z),IT.D=function(n){return zh(n,7).g==(FO(),SD)};Bw(ZR,"LPort/6",404);lL(190,1,OP,oe),IT.mb=function(){return new fe(new Qe(this.a.b))};Bw(ZR,"LPort/7",190);lL(405,1,vP,fe),IT.H=function(){return zh(rv(this.a),12).c},IT.G=function(){return gs(this.a)},IT.I=function(){ww(this.a)};Bw(ZR,"LPort/7/1",405);lL(169,1,OP,se),IT.mb=function(){return new be(new Qe(this.a.e))};Bw(ZR,"LPort/8",169);lL(304,1,vP,be),IT.H=function(){return zh(rv(this.a),12).d},IT.G=function(){return gs(this.a)},IT.I=function(){ww(this.a)};Bw(ZR,"LPort/8/1",304);lL(16,147,{179:1,131:1,147:1,16:1,3:1,22:1},Hw),IT.mb=function(){return new Qe(this.a)},IT.w=function(){return"L_"+ap(this.b.c,this,0)+dC(this.a)};Bw(ZR,"Layer",16);lL(437,1,KR,q),IT.sc=function(n,t){var e,r,c,i;for(ZS(t,"Big nodes intermediate-processing",1),this.a=n,r=new Qe(this.a.c);r.ai?50:i,e=new Rt,l=i+this.d,s=new Qe(b);s.al){for(h=1,r=a.j.a;r>i;)++h,r=(a.j.a-(h-1)*this.d)/h;Ph(e,new Vv(this,a,h,r))}for(u=new Qe(e);u.aa?50:a,e=new Rt,w=a+this.d,b=new Qe(h);b.aw){for(l=1,r=u.j.a;r>a;)++l,r=(u.j.a-(l-1)*this.d)/l;Ph(e,new cg(this,u,l))}for(o=new Qe(e);o.a0||s.g==SD&&s.b.c.length-s.e.c.length<0)){e=!1;break}if(s.g==SD)for(c=new Qe(s.e);c.a0&&(n.a=o+(h-1)*c,t.d.b+=n.a,t.e.b+=n.a),0!=l.a.Y()&&(h=YN(new YC(1,c),t,l,w,t.e.b+o-t.d.b))>0&&(t.e.b+=o+(h-1)*c)}(this,n,e),function(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S;for(k=new Rt,s=new Qe(n.c);s.a0&&cN((Nk(0,e.c.length),zh(e.c[0],16)),n),e.c.length>1&&cN(zh(vl(e,e.c.length-1),16),n),Zy(t)};Bw(nY,"HierarchicalPortPositionProcessor",454);lL(471,1,KR,fn),IT.sc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h;for(ZS(t,"Hyperedge merging",1),s=new tv(n.c,0);s.b(l=h.c.length)+1?Ph(s,new Xa(o,(Nk(b=(u+l)/2|0,a.c.length),zh(a.c[b],9)))):l>u+1&&Ph(s,new Xa(o,(Nk(b=((l-u)/2|0)-1,h.c.length),zh(h.c[b],9))))}for(g=new Qe(s);g.a=2){for(o=!0,Nk(1,u.c.length),w=zh(u.c[1],16),b=new Qe(r.a);b.a=2){for(o=!0,d=zh(vl(u,u.c.length-2),16),b=new Qe(c.a);b.ae?o:e}n.e.b=o-f,n.d.b-=f,Zy(t)};Bw(nY,"LayerSizeAndGraphHeightCalculator",496);lL(497,1,KR,In),IT.sc=function(n,t){var e,r,c,i;for(ZS(t,"Edge joining",1),e=ei(ri(Ob(Pj(n,(yT(),bq))))),r=new Qe(n.c);r.a0&&Ph(n.p,s),Ph(n.o,s);l=o+(t-=r),f+=t*n.e,ck(n.a,u,iS(l)),ck(n.b,u,f),n.j=Di(n.j,l),n.k=_i(n.k,f),n.d+=t,t+=d}}(this),this.q=zh(Pj(n,(yT(),Tq)),109),o=zh(Pj(this.g,Pq),24).a,c=new On,this.q.e){case 2:case 1:default:nO(this,c);break;case 3:for(this.q=(mL(),P$),nO(this,c),a=0,i=new Qe(this.a);i.athis.j&&(this.q=I$,nO(this,c));break;case 4:for(this.q=(mL(),P$),nO(this,c),u=0,r=new Qe(this.b);r.athis.k&&(this.q=N$,nO(this,c));break;case 6:nO(this,new pe(Eg(To(this.f.length*o/100))));break;case 5:nO(this,new me(Eg(To(this.d*o/100))))}!function(n,t){var e,r,c,i,a,u;for(c=new Rt,e=0;e<=n.i;e++)(r=new Hw(t)).k=n.i-e,c.c[c.c.length]=r;for(u=new Qe(n.o);u.a=2){for(w=!0,e=zh(rv(b=new Qe(i.f)),7);b.a(r-=n.a)?c:r}return c}(this,n),l=n.c.c.length,d=function(n,t){var e,r,c,i,a;for(r=0,e=new Qe(t.c);e.a(a=(c=zh(rv(i),9)).j.a+c.e.c+c.e.b+n.b)?r:a;return r}(this,n),I=l*d,(r=(c=zh(Pj(n,(HT(),x_)),59))==(Py(),n_)||c==t_||c==e_?zh(Pj(n,nz),15).a:1/zh(Pj(n,nz),15).a)>(e=I/w))Zy(t);else{H=0,i=oY;do{h=i,i=(e=I/++H/(w*H))-r<=0?0-(e-r):e-r}while(e>r);for(hH?1:H)|0,m=S,N=!0;f=S&&(N=!0),++m,++f}for(s=new tv(n.c,0);s.b "+this.a+" "+gb(this.c)},IT.a=0,IT.b=0,IT.d=0;Bw(nY,"SplineSelfLoopRouter/LoopPadding",91);lL(521,1,FR,tl),IT.D=function(n){return VE(this,zh(n,91))},IT.a=0,IT.c=0;Bw(nY,"SplineSelfLoopRouter/LoopPadding/EnclosingPredicate",521);lL(520,1,WT,Zn),IT.$b=function(n,t){return function(n,t){return xj(t.b,n.b)}(zh(n,91),zh(t,91))};Bw(nY,"SplineSelfLoopRouter/LoopPadding/MarginComparator",520);lL(196,1,FR,je),IT.D=function(n){return zh(n,91).c==this.a};Bw(nY,"SplineSelfLoopRouter/LoopPadding/PortSidePredicate",196);lL(195,1,{195:1},Lv),IT.c=0,IT.d=0,IT.e=0;Bw(nY,"SplineSelfLoopRouter/SelfLoopEdge",195);lL(519,1,WT,Xn),IT.$b=function(n,t){return function(n,t){return n.d-t.d}(zh(n,195),zh(t,195))};Bw(nY,"SplineSelfLoopRouter/SelfLoopEdge/StepSizeComparator",519);lL(82,25,{25:1,82:1},$I),IT.vc=function(){var n,t;for(n=BE(this.a,0);n.b!=n.d.c;)zh(Yv(n),10).a=this.j.d;for(t=BE(this.c,0);t.b!=t.d.c;)zh(Yv(t),10).a=this.j.d},IT.wc=function(){return this.b},IT.xc=function(){return this.e},IT.w=function(){return dC(new Be(this.d.a))},IT.b=0,IT.e=0;Bw(hY,"CLEdge",82);lL(93,25,{25:1,93:1},EG),IT.vc=function(){this.b.i.a=this.j.d+this.b.e.b},IT.wc=function(){return this.b.g==(KH(),uB)?0:this.a},IT.xc=function(){return this.b.g==(KH(),uB)?0:this.c},IT.w=function(){return rH(Pj(this.b,(jT(),Oz)))},IT.a=0,IT.c=0;var _$,M$;Bw(hY,"CLNode",93);lL(175,17,{175:1,3:1,23:1,17:1},Pu);var D$,x$,B$,$$,U$,F$,V$,z$=op(hY,"ConstraintCalculationStrategy",175,oA,(function(){return Pv(),_j(Ni(z$,1),bP,175,0,[_$,M$])}));lL(125,17,{125:1,3:1,23:1,17:1},Ru);var q$,Q$,K$,W$=op(hY,"GraphCompactionStrategy",125,oA,(function(){return LC(),_j(Ni(W$,1),bP,125,0,[F$,B$,V$,U$,$$,x$])}));lL(455,1,KR,zf),IT.sc=function(n,t){var e,r,c;if((r=zh(Pj(n,(yT(),Aq)),125))!=(LC(),F$)){if(ZS(t,"Horizontal Compaction",1),this.a=n,li(e=new RI(hG(c=new qo,n)),this.b),1===zh(Pj(n,_q),175).e)bi(e,Q$);else bi(e,(Wl(),xx));switch(r.e){case 1:$G(e);break;case 2:$G(TO(e,(Py(),t_)));break;case 3:$G(ha(TO($G(e),(Py(),t_))));break;case 4:$G(ha(hi(TO($G(e),(Py(),t_)),new Fn)));break;case 5:$G(function(n,t){return n.b=t,n}(e,K$))}TO(e,(Py(),n_)),e.e=!0,YG(c),Zy(t)}};Bw(hY,"HorizontalGraphCompactor",455);lL(462,1,{},ye),IT.tc=function(n,t){var e,r;return ds(n,82)&&ds(t,82)&&!Bp(am(zh(n,82).d,zh(t,82).d))?0:(e=null,ds(n,93)&&(e=zh(n,93).b),r=null,ds(t,93)&&(r=zh(t,93).b),e&&e.g==(KH(),uB)||r&&r.g==(KH(),uB)?0:ps(zh(Pj(this.a.a,(jT(),qz)),134),e?e.g:(KH(),fB),r?r.g:(KH(),fB)))},IT.uc=function(n,t){return ds(n,82)&&ds(t,82)&&!Bp(am(zh(n,82).d,zh(t,82).d))?1:xi(n.xc(),t.xc())};Bw(hY,"HorizontalGraphCompactor/1",462);lL(456,317,{},rl),IT.Dc=function(n){var t,e,r;for(this.b=n,GI(this,new Vn,this.a),GI(this,new zn,this.a),t=_R,r=new Qe(this.b.a.b);r.a(r=Math.ceil(r))?0:r,t.o&&i.o&&ds(t,82)&&ds(i,82)&&!Bp(am(zh(t,82).d,zh(i,82).d))?(c=us(new Yr,n.d),u=Eg(To(i.g.a-t.g.a)),ML(la(da(ga(wa(new Rr,0>u?0:u),1),c),n.c[t.f.d])),ML(la(da(ga(wa(new Rr,0>-u?0:-u),1),c),n.c[i.f.d]))):(f=1,(ds(t,82)&&ds(i,93)||ds(i,82)&&ds(t,93))&&(f=2),ML(la(da(ga(wa(new Rr,Eg(r)),f),n.c[t.f.d]),n.c[i.f.d]))))}(this),function(n){var t,e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v;for(Es(),s=new jr,o=new qu,r=new Qe(n.a.a.b);r.at.j.d){if((l=n.c[t.f.d])==(g=n.c[b.f.d]))continue;ML(la(da(ga(wa(new Rr,1),100),l),g))}}}(this),function(n){var t,e,r,c,i,a;for(c=new oi,r=new Qe(n.d.a);r.a1)for(t=us(ka(new Yr,n.b++),n.d),a=BE(c,0);a.b!=a.d.c;)i=zh(Yv(a),61),ML(la(da(ga(wa(new Rr,1),0),t),i))}(this),MG(eh(this.d),new qb),c=new Qe(this.a.a.b);c.a0&&(this.a[D.k]=W++)}else{for(P=0,x=new Qe(C.f);x.a0&&++W}for(tn=0,G=0,T=t.length;G0;){for(Pf(U.b>0),$=0,a=new Qe((D=zh(U.a.sb(U.c=--U.b),7)).b);a.a0&&(D.g==(FO(),cD)?(this.a[D.k]=tn,++tn):(this.a[D.k]=tn+R+A,++A))}tn+=A}else{for(P=0,x=new Qe(C.f);x.a0&&++tn}for(B=new jr,w=new Jc,I=0,N=n.length;Is.c&&(s.c=F)):D.f.d==K&&(Fs.d&&(s.d=F));for(nH(d,0,d.length,(Xu(),Xu(),wQ)),nn=Pk(OQ,BP,26,d.length,12,1),e=Pk(OQ,BP,26,tn+1,12,1),v=0;v0;)j%2>0&&(r+=cn[j+1]),++cn[j=(j-1)/2|0];for(E=Pk(Z$,fP,158,2*d.length,0,1),m=0;mt.f?1:n.gt.g?1:n.b-t.b}(this,zh(n,204))},IT.b=0,IT.c=0,IT.d=0,IT.f=0,IT.g=0;var J$=Bw(lY,"BetweenLayerHyperedgeAllCrossingsCounter/Hyperedge",204);lL(158,1,{158:1,23:1},Hd),IT.F=function(n){return function(n,t){return n.ct.c?1:n.bt.b?1:n.a!=t.a?n.a.b-t.a.b:0==n.d&&1==t.d?-1:1==n.d&&0==t.d?1:0}(this,zh(n,158))},IT.b=0,IT.c=0,IT.d=0;var Z$=Bw(lY,"BetweenLayerHyperedgeAllCrossingsCounter/HyperedgeCorner",158);lL(611,339,{},Fc),IT.Gc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S;for(S=0,c=0,a=n[0].d,p=t[0].d,f=0,b=t.length;f0;){for(Pf(k.b>0),v=0,r=new Qe((d=zh(k.a.sb(k.c=--k.b),7)).b);r.a0&&(d.g==(FO(),cD)?(this.a[d.k]=S,++S):(this.a[d.k]=S+l+w,++w),c+=v)}S+=w}else{for(h=0,g=new Qe(u.f);g.a0&&(++S,c+=h)}for(m=Pk(OQ,BP,26,c,12,1),i=0,o=0,s=n.length;o0;)i%2>0&&(r+=u[i+1]),++u[i=(i-1)/2|0];return r}(S,c,m),e};Bw(lY,"BetweenLayerStraightEdgeAllCrossingsCounter",611);lL(338,1,{},GC),IT.b=0,IT.e=!1;Bw(lY,"CrossingMatrixFiller",338);lL(447,1,KR,nt),IT.sc=function(n,t){var e,r;ZS(t,"Greedy switch crossing reduction",1),this.e=zh(Pj(n,(yT(),Eq)),110),n.c.c.length<2||this.e==(QN(),AV)||(function(n,t){var e,r,c,i,a,u,o,f;for(n.f=t,c=t.c.c.length,n.a=Pk(hB,AT,51,c,0,2),n.d=Pk(hB,AT,51,c,0,2),n.g=Pk(hB,AT,51,c,0,2),a=new tv(t.c,0);a.bAb(n.d,xf(t.a,t.b))?-1:n.c==t.c&&xf(n.a,n.b)==xf(n.a,n.b)?0:1}(this,zh(n,226))},IT.w=function(){return"ComparableEdgeAndPort [port="+this.b+", edge="+this.a+", portPosition="+this.c+"]"},IT.c=0;Bw(lY,"InLayerEdgeTwoNodeCrossingCounter/ComparableEdgeAndPort",226);lL(612,1,{},lH),IT.e=!0,IT.f=0,IT.g=0,IT.k=!1;Bw(lY,"NorthSouthEdgeAllCrossingsCounter",612);lL(615,1,{},tj),IT.b=0,IT.d=0,IT.e=!1;Bw(lY,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",615);lL(143,1,OP,zb),IT.mb=function(){return YL(this)},IT.b=0;Bw(lY,"PortIterable",143);lL(344,1,vP,Yg),IT.H=function(){return zh(dw(this.a),7)},IT.G=function(){return this.a.b>0},IT.I=function(){throw new Qr};Bw(lY,"PortIterable/1",344);lL(336,1,{},ZH);Bw(lY,"SwitchDecider",336);lL(89,1,{89:1},tt),IT.w=function(){return"NEdge[id="+this.b+" w="+this.f+" d="+this.a+"]"},IT.a=1,IT.b=0,IT.e=!1,IT.f=0;var X$=Bw(dY,"NEdge",89);lL(157,1,{},Rr);Bw(dY,"NEdge/NEdgeBuilder",157);lL(278,1,{},Pr);Bw(dY,"NGraph",278);lL(61,1,{61:1},$v),IT.b=0,IT.d=-1,IT.e=0,IT.i=-1,IT.j=!1;var nU=Bw(dY,"NNode",61);lL(333,13,zR,Br),IT.rb=function(n,t){++this.d,Gk(n,this.c.length),Io(this.c,n,t)},IT.ib=function(n){return Iw(this,n)},IT.jb=function(n){return++this.d,wj(this,n)},IT.Q=function(){++this.d,this.c=Pk(WY,fP,1,0,4,1)},IT.vb=function(n){return++this.d,Hk(this,n)},IT.nb=function(n){return _f(this,n)};Bw(dY,"NNode/ChangeAwareArrayList",333);lL(199,1,{},Yr);Bw(dY,"NNode/NNodeBuilder",199);lL(595,1,{},et),IT.a=!1,IT.f=UT,IT.j=0;var tU,eU;Bw(dY,"NetworkSimplex",595);lL(193,17,{180:1,193:1,3:1,23:1,17:1},Yu),IT.rc=function(){switch(this.e){case 0:return new Yh;case 1:return new mt;default:throw new ii("No implementation is available for the cycle breaker "+(null!=this.d?this.d:""+this.e))}};var rU,cU,iU=op(vY,"CycleBreakingStrategy",193,oA,(function(){return qd(),_j(Ni(iU,1),bP,193,0,[tU,eU])}));lL(539,1,kY,Yh),IT.qc=function(n){return cU},IT.sc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j,y,S,E,H,C,I,L,G,N,O;for(ZS(t,"Greedy cycle removal",1),O=(v=n.b).c.length,this.a=Pk(OQ,BP,26,O,12,1),this.c=Pk(OQ,BP,26,O,12,1),this.b=Pk(OQ,BP,26,O,12,1),u=0,d=new Qe(v);d.a0?H+1:1);for(c=new Qe(m.e);c.a0?H+1:1)}0==this.c[u]?Th(this.d,l):0==this.a[u]&&Th(this.e,l),++u}for(h=-1,b=1,f=new Rt,C=zh(Pj(n,(jT(),Uz)),154);O>0;){for(;0!=this.d.b;)L=zh(yh(this.d),9),this.b[L.k]=h--,eN(this,L),--O;for(;0!=this.e.b;)G=zh(yh(this.e),9),this.b[G.k]=b++,eN(this,G),--O;if(O>0){for(s=KT,g=new Qe(v);g.a=s&&(k>s&&(f.c=Pk(WY,fP,1,0,4,1),s=k),f.c[f.c.length]=l);o=zh(vl(f,oH(C,f.c.length)),9),this.b[o.k]=b++,eN(this,o),--O}}for(I=v.c.length+1,u=0;uthis.b[N]&&(mN(e,!0),ip(n,lz,(ql(),ql(),tQ)));this.a=null,this.c=null,this.b=null,Yd(this.e),Yd(this.d),Zy(t)};var aU;Bw(vY,"GreedyCycleBreaker",539);lL(540,1,kY,mt),IT.qc=function(n){return aU},IT.sc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l;for(ZS(t,"Interactive cycle breaking",1),f=new Rt,b=new Qe(n.b);b.a0&&zC(this,a,f);for(r=new Qe(f);r.a(a=u+f.j.a)?u+1:a,d=new tv(e,0),r=null;d.b=a){Pf(d.b>0),d.a.sb(d.c=--d.b);break}l.a>u&&(r?(wj(r.b,l.b),r.a=_i(r.a,l.a),bd(d)):(Ph(l.b,f),l.c=xi(l.c,u),l.a=_i(l.a,a),r=l))}r||((r=new Ar).c=u,r.a=a,ch(d,r),Ph(r.b,f))}for(i=n.c,o=0,w=new Qe(e);w.a0&&(e+=a.i.a+a.j.a/2,++f),s=new Qe(a.f);s.a1&&(n.c[s]=!0):k.g==SD&&k.e.c.length+k.b.c.length>1&&(n.d[s]=!0)}d.g==(KH(),bB)&&(++u[s],i[s]=!0)}for(e=!0,w=!0,a=0;a0;I++){o=(f=0!=zI(C,1))?0:d-1,u=this.b[o],E=0!=zI(C,1)?y:k,wS(u,c,f,!1,!0),i=UT,a=!0;do{if(Fm(this.b,this.k),H=i,i=0,i+=hp(this.f,u,o),f){for(g=1;g=0;g--)s=this.b[g],Ek(E,u,(bm(),uq)),wS(s,c,!1,!a,!1),i+=hp(this.f,s,g),this.c[g]||this.d[g+1]?i+=ET(this.e,s,u):i+=wT(this.i,s,u),u=s;o=0}a=!1,f=!f}while(i0);(ir?i:r;if(i>a){for(s=GS(n,e).mb();s.G();)h[(f=zh(s.H(),7)).k]=t+iL(e,f.g)-a;return i-a}return 0}switch(e.e){case 1:for(c=0,u=0,b=new Qe(n.f);b.a"),nt.e?1:n.ft.f?1:wb(n)-wb(t)}(this,zh(n,197))},IT.b=0,IT.c=0,IT.e=0,IT.f=0;var CU=Bw(LY,"HyperedgeCrossingsCounter/Hyperedge",197);lL(156,1,{156:1,23:1},Bd),IT.F=function(n){return function(n,t){return n.ct.c?1:n.bt.b?1:n.a!=t.a?wb(n.a)-wb(t.a):n.d==(vv(),LU)&&t.d==IU?-1:n.d==IU&&t.d==LU?1:0}(this,zh(n,156))},IT.b=0,IT.c=0;var IU,LU,GU=Bw(LY,"HyperedgeCrossingsCounter/HyperedgeCorner",156);lL(242,17,{242:1,3:1,23:1,17:1},io);var NU,OU=op(LY,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",242,oA,(function(){return vv(),_j(Ni(OU,1),bP,242,0,[LU,IU])}));lL(545,1,kY,Ct),IT.qc=function(n){return zh(Pj(n,(jT(),mz)),18).kb((kG(),LV))?NU:null},IT.sc=function(n,t){var e;for(ZS(t,"Interactive node placement",1),this.a=zh(Pj(n,(jT(),qz)),134),e=new Qe(n.c);e.a0&&f[r]&&(w=ah(n.b,f[r],o)),d=_i(d,c.d.c.b+w);for(i=new Qe(s.f);i.am)?(o=2,a=UT):0==o?(o=1,a=y):(o=0,a=y):(h=y>=a||a-y0?(s=zh(vl(b.d.a,i-1),9),S=Ih(n.b,b,s),d=b.i.b-b.e.d-(s.i.b+s.j.b+s.e.a+S)):d=b.i.b-b.e.d,o=d0?S:0,l.c=e,l.d=zh(td(p,f.c.f),61),Iw(l.c.g,l),Iw(l.d.c,l),(C=new tt).f=WE(f),C.a=S<0?-S:0,C.c=e,C.d=zh(td(p,f.d.f),61),Iw(C.c.g,C),Iw(C.d.c,C));for(c=zh(Pj(n,(yT(),Bq)),24).a*Eg(Math.sqrt(k)),MG(wi(di(eh(r),c),!1),$m(t,1)),d=new Qe(r.a);d.aa)&&Gw(n.c,zh(g.b,12));++u}i=a}}}(this,n),Yp(4,MP),h=new vp(4),zh(Pj(n,Sq),124).e){case 3:l=new _L(n,this.d.d,(dv(),qU),(dg(),VU)),h.c[h.c.length]=l;break;case 1:w=new _L(n,this.d.d,(dv(),QU),(dg(),VU)),h.c[h.c.length]=w;break;case 4:v=new _L(n,this.d.d,(dv(),qU),(dg(),zU)),h.c[h.c.length]=v;break;case 2:k=new _L(n,this.d.d,(dv(),QU),(dg(),zU)),h.c[h.c.length]=k;break;default:l=new _L(n,this.d.d,(dv(),qU),(dg(),VU)),w=new _L(n,this.d.d,QU,VU),v=new _L(n,this.d.d,qU,zU),k=new _L(n,this.d.d,QU,zU),h.c[h.c.length]=v,h.c[h.c.length]=k,h.c[h.c.length]=l,h.c[h.c.length]=w}for(e=new ho(n,this.d),i=new Qe(h);i.ay[o]&&(w=o),s=new Qe(n.b.c);s.aAI(r))&&(f=r);for(!f&&(Nk(0,h.c.length),f=zh(h.c[0],81)),b=new Qe(n.c);b.a0?1:r<0?-1:0)}(this,zh(n,27),zh(t,27))};Bw(OY,"NeighborhoodInformation/NeighborComparator",598);lL(334,1,{});Bw(OY,"ThresholdStrategy",334);lL(602,334,{},jc),IT.Ic=function(n,t,e){return this.a.k==(dv(),QU)?_R:MR},IT.Jc=function(){};Bw(OY,"ThresholdStrategy/NullThresholdStrategy",602);lL(249,1,{249:1},lo),IT.c=!1,IT.d=!1;Bw(OY,"ThresholdStrategy/Postprocessable",249);lL(603,334,{},yc),IT.Ic=function(n,t,e){var r,c,i;return c=t==e,r=this.a.a[e.k]==t,c||r?(i=n,this.a.c,dg(),c&&(i=NN(this,t,!0)),(i==1/0||i==-1/0)&&r&&(i=NN(this,e,!1)),i):n},IT.Jc=function(){for(var n,t,e;0!=this.d.b;)(t=jG(this,e=zh(tg(this.d),249))).a&&(n=t.a,this.c.a[n.c.f.d.k]!==this.c.a[n.d.f.d.k]&&(XI(this,e)||ff(this.e,e)));for(;0!=this.e.a.c.length;)XI(this,zh(ny(this.e),249))};Bw(OY,"ThresholdStrategy/SimpleThresholdStrategy",603);lL(423,1,{180:1},ut),IT.rc=function(){switch(this.a.e){case 1:return new Bo;case 3:return new Ot;default:return new Nt}};var eF,rF,cF,iF,aF,uF,oF,fF;Bw(TY,"EdgeRouterFactory",423);lL(538,1,kY,Nt),IT.qc=function(n){var t,e;return e=zh(Pj(n,(jT(),mz)),18),t=new dS,e.kb((kG(),GV))&&(Bm(t,iF),Bm(t,uF)),(e.kb(OV)||ei(ri(Ob(Pj(n,(yT(),yq))))))&&(Bm(t,uF),e.kb(TV)&&Bm(t,oF)),e.kb(LV)&&Bm(t,cF),e.kb(RV)&&Bm(t,fF),e.kb(NV)&&Bm(t,aF),e.kb(HV)&&Bm(t,eF),e.kb(IV)&&Bm(t,rF),t},IT.sc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l;ZS(t,"Orthogonal edge routing",1),h=zh(Pj(n,(jT(),qz)),134),ei(ri(Ob(Pj(n,(HT(),D_))))),s=new YC(0,h.a),l=0,i=new tv(n.c,0),a=null,u=null;do{f=(o=i.b0?(e=h.b+(b-1)*h.a,o&&(e+=h.b),e"+this.b},IT.c=0;Bw(TY,"OrthogonalRoutingGenerator/Dependency",118);lL(80,1,{80:1,23:1},rj),IT.F=function(n){return function(n,t){return n.d-t.d}(this,zh(n,80))},IT.t=function(n){var t;return!!ds(n,80)&&(t=zh(n,80),this.d==t.d)},IT.v=function(){return this.d},IT.w=function(){var n,t,e,r;for(n=new zi("{"),r=new Qe(this.g);r.aQR&&(c=new Za(o,b),Th(e.a,c),gG(this.a,e,n,c,!1),i=new Za(s,b),Th(e.a,i),gG(this.a,e,n,i,!1))},IT.Lc=function(n){return n.f.i.a+n.i.a+n.a.a},IT.Mc=function(){return FO(),jD},IT.Nc=function(){return FO(),cD};Bw(TY,"OrthogonalRoutingGenerator/NorthToSouthRoutingStrategy",580);lL(581,1,{},Re),IT.Kc=function(n,t){var e,r,c,i,a,u,o,f,s,b;for(b=t-n.i*this.a.c,u=new Qe(n.g);u.aQR&&(c=new Za(o,b),Th(e.a,c),gG(this.a,e,n,c,!1),i=new Za(s,b),Th(e.a,i),gG(this.a,e,n,i,!1))},IT.Lc=function(n){return n.f.i.a+n.i.a+n.a.a},IT.Mc=function(){return FO(),cD},IT.Nc=function(){return FO(),jD};Bw(TY,"OrthogonalRoutingGenerator/SouthToNorthRoutingStrategy",581);lL(579,1,{},Ye),IT.Kc=function(n,t){var e,r,c,i,a,u,o,f,s,b;for(b=t+n.i*this.a.c,u=new Qe(n.g);u.aQR&&(c=new Za(b,o),Th(e.a,c),gG(this.a,e,n,c,!0),i=new Za(b,s),Th(e.a,i),gG(this.a,e,n,i,!0))},IT.Lc=function(n){return n.f.i.b+n.i.b+n.a.b},IT.Mc=function(){return FO(),rD},IT.Nc=function(){return FO(),SD};var sF,bF,hF,lF,wF;Bw(TY,"OrthogonalRoutingGenerator/WestToEastRoutingStrategy",579);lL(535,1,kY,Bo),IT.qc=function(n){var t,e;return e=zh(Pj(n,(jT(),mz)),18),t=new dS,(e.kb((kG(),OV))||ei(ri(Ob(Pj(n,(yT(),yq))))))&&(Bm(t,hF),e.kb(TV)&&Bm(t,lF)),e.kb(HV)&&Bm(t,sF),e.kb(IV)&&Bm(t,bF),t},IT.sc=function(n,t){var e,r,c,i,a,u,o,f,s,b,h,l,w,d,g,v,k,p,m,j;for(ZS(t,"Polyline edge routing",1),b=zh(Pj(n,(jT(),zz)),15).a,e=zh(Pj(n,(yT(),jq)),15).a,g=0,0!=n.c.c.length&&(g=.4*e*(v=tL(zh(vl(n.c,0),16)))),i=new tv(n.c,0);i.b0&&(g-=b),cO(c,g),o=0,s=new Qe(c.a);s.a(d-w<=0?0-(d-w):d-w)?u:d-w<=0?0-(d-w):d-w;switch(f.g.e){case 0:case 4:case 1:case 3:PN(this,f,g)}o=o>u?o:u}i.b(v=tL((Pf(i.b0),i.a.sb(i.c=--i.b)),a=.4*e*o,!r&&i.b0?((h=(v+1)*this.a)=0&&(N+=(v+2)*this.a)}d=m,o=f}while(m);for(r=new Qe(I);r.a("+this.c+") "+this.b},IT.c=0;var WF,JF;Bw(PY,"SplineEdgeRouter/Dependency",117);lL(223,17,{223:1,3:1,23:1,17:1},wo);var ZF=op(PY,"SplineEdgeRouter/SideToProcess",223,oA,(function(){return gg(),_j(Ni(ZF,1),bP,223,0,[WF,JF])}));lL(77,1,{77:1,23:1},hI,eO),IT.F=function(n){return function(n,t){return n.i-t.i}(this,zh(n,77))},IT.a=0,IT.b=0,IT.e=0,IT.f=!1,IT.i=0,IT.k=0,IT.n=0,IT.p=0;var XF,nV,tV,eV,rV,cV;Bw(PY,"SplineEdgeRouter/SplineHyperEdge",77);lL(123,17,{123:1,3:1,23:1,17:1},go);var iV,aV,uV,oV,fV=op(MY,"ContentAlignment",123,oA,(function(){return qH(),_j(Ni(fV,1),bP,123,0,[cV,rV,eV,nV,XF,tV])}));lL(218,17,{218:1,3:1,23:1,17:1},vo);var sV,bV,hV,lV,wV,dV=op(MY,"EdgeConstraint",218,oA,(function(){return Vj(),_j(Ni(dV,1),bP,218,0,[uV,aV,oV])}));lL(115,17,{115:1,3:1,23:1,17:1},ko);var gV,vV,kV,pV,mV,jV,yV,SV=op(MY,"EdgeLabelSideSelection",115,oA,(function(){return TH(),_j(Ni(SV,1),bP,115,0,[bV,sV,lV,hV,wV])}));lL(124,17,{124:1,3:1,23:1,17:1},po);var EV,HV,CV,IV,LV,GV,NV,OV,TV,PV,RV,YV=op(MY,"FixedAlignment",124,oA,(function(){return zH(),_j(Ni(YV,1),bP,124,0,[mV,pV,yV,kV,jV,vV])}));lL(113,17,{113:1,3:1,23:1,17:1},mo);var AV,_V,MV,DV,xV,BV,$V,UV,FV=op(MY,"GraphProperties",113,oA,(function(){return kG(),_j(Ni(FV,1),bP,113,0,[CV,LV,GV,NV,OV,TV,RV,HV,IV,PV])}));lL(110,17,{110:1,3:1,23:1,17:1},Nv),IT.a=!1,IT.b=!1,IT.c=!1;var VV,zV,qV,QV,KV=op(MY,"GreedySwitchType",110,oA,(function(){return QN(),_j(Ni(KV,1),bP,110,0,[_V,BV,MV,$V,DV,UV,xV,AV])}));lL(140,17,{140:1,3:1,23:1,17:1},jo);var WV,JV,ZV=op(MY,"InLayerConstraint",140,oA,(function(){return zp(),_j(Ni(ZV,1),bP,140,0,[qV,QV,zV])}));lL(174,17,{174:1,3:1,23:1,17:1},yo);var XV,nz,tz,ez,rz,cz,iz,az,uz,oz,fz,sz,bz,hz,lz,wz,dz,gz,vz,kz,pz,mz,jz,yz,Sz,Ez,Hz,Cz,Iz,Lz,Gz,Nz,Oz,Tz,Pz,Rz,Yz,Az,_z,Mz,Dz,xz,Bz,$z,Uz,Fz,Vz,zz,qz,Qz,Kz,Wz,Jz,Zz,Xz,nq,tq,eq,rq,cq,iq=op(MY,"InteractiveReferencePoint",174,oA,(function(){return wv(),_j(Ni(iq,1),bP,174,0,[WV,JV])}));lL(85,17,{85:1,3:1,23:1,17:1},So);var aq,uq,oq,fq,sq=op(MY,"LayerConstraint",85,oA,(function(){return iH(),_j(Ni(sq,1),bP,85,0,[cq,nq,tq,eq,rq])}));lL(219,17,{219:1,3:1,23:1,17:1},Eo);var bq,hq,lq,wq,dq,gq,vq,kq,pq,mq,jq,yq,Sq,Eq,Hq,Cq,Iq,Lq,Gq,Nq,Oq,Tq,Pq,Rq,Yq,Aq,_q,Mq,Dq,xq,Bq,$q,Uq,Fq,Vq,zq=op(MY,"PortType",219,oA,(function(){return bm(),_j(Ni(zq,1),bP,219,0,[fq,uq,oq])}));lL(153,17,{153:1,3:1,23:1,17:1},Ho);var qq,Qq=op(MY,"SelfLoopPlacement",153,oA,(function(){return FS(),_j(Ni(Qq,1),bP,153,0,[Uq,Vq,Fq])}));lL(134,1,{134:1},xO),IT.a=0,IT.b=0,IT.c=0,IT.d=0,IT.e=0,IT.f=0;var Kq,Wq,Jq;Bw(MY,"Spacings",134);lL(172,17,{172:1,3:1,23:1,17:1},Co);var Zq,Xq=op(MY,"WideNodesStrategy",172,oA,(function(){return Qm(),_j(Ni(Xq,1),bP,172,0,[Kq,Wq,Jq])}));lL(644,1,{});Bw(cP,"OutputStream",644);lL(645,644,{});Bw(cP,"FilterOutputStream",645);lL(291,645,{},ft);Bw(cP,"PrintStream",291);lL(255,1,{}),IT.w=function(){return this.a};Bw(tP,"AbstractStringBuilder",255);lL(621,95,MT,Sc);Bw(tP,"ArrayIndexOutOfBoundsException",621);lL(290,72,MT,Vr,mi);Bw(tP,"ArrayStoreException",290);lL(252,46,_T);Bw(tP,"Error",252);lL(84,252,_T,mr,gp);var nQ,tQ;Bw(tP,"AssertionError",84);TT={3:1,349:1,23:1};var eQ=Bw(tP,"Boolean",349);PT={3:1,23:1,184:1,231:1};var rQ=Bw(tP,"Double",184);lL(15,231,{3:1,23:1,15:1,231:1},_e,Me),IT.F=function(n){return function(n,t){return xj(n.a,t.a)}(this,zh(n,15))},IT.t=function(n){return ds(n,15)&&zh(n,15).a==this.a},IT.v=function(){return Eg(this.a)},IT.w=function(){return n=this.a,cc(),""+n;var n},IT.a=0;var cQ=Bw(tP,"Float",15);lL(101,72,MT,zr,ji);var iQ,aQ;Bw(tP,"IllegalStateException",101);lL(608,72,MT,yi);Bw(tP,"NegativeArraySizeException",608);lL(76,72,{3:1,54:1,76:1,46:1},qr,Si);Bw(tP,"NullPointerException",76);lL(130,29,{3:1,54:1,29:1,130:1,46:1},Ec,Qi);Bw(tP,"NumberFormatException",130);lL(146,1,{3:1,146:1},$d),IT.t=function(n){var t;return!!ds(n,146)&&(t=zh(n,146),this.c==t.c&&Nd(this.d,t.d)&&Nd(this.a,t.a)&&Nd(this.b,t.b))},IT.v=function(){return iy(_j(Ni(WY,1),fP,1,4,[iS(this.c),this.a,this.d,this.b]))},IT.w=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},IT.c=0;var uQ=Bw(tP,"StackTraceElement",146);lL(98,255,{345:1},Zi,Xi,zi);var oQ;Bw(tP,"StringBuilder",98);lL(45,72,{3:1,54:1,46:1,45:1},Qr,Ei);Bw(tP,"UnsupportedOperationException",45);lL(213,638,kP),IT.Q=function(){Ik(this)},IT.R=function(n){return np(this,n)},IT.ab=function(n){return fy(this,n,this.e)||fy(this,n,this.d)},IT.bb=function(){return new De(this)},IT.cb=function(n){return td(this,n)},IT.db=function(n,t){return yd(this,n,t)},IT.eb=function(n){return Xl(this,n)},IT.Y=function(){return Du(this)};Bw(pP,"AbstractHashMap",213);lL(120,641,jP,De),IT.Q=function(){this.a.Q()},IT.kb=function(n){return kv(this,n)},IT.mb=function(){return new ry(this.a)},IT.nb=function(n){var t;return!!kv(this,n)&&(t=zh(n,21).yb(),this.a.eb(t),!0)},IT.Y=function(){return this.a.Y()};Bw(pP,"AbstractHashMap/EntrySet",120);lL(148,1,vP,ry),IT.H=function(){return Xp(this)},IT.G=function(){return this.b},IT.I=function(){Kk(this)},IT.b=!1;Bw(pP,"AbstractHashMap/EntrySetIterator",148);lL(162,1,vP,xe),IT.G=function(){return this.b0},IT.L=function(){return this.b},IT.M=function(){return dw(this)},IT.N=function(){return this.b-1},IT.O=function(n){ih(this,n)};Bw(pP,"AbstractList/ListIteratorImpl",43);lL(258,647,yP,Zg),IT.rb=function(n,t){Gk(n,this.b),this.c.rb(this.a+n,t),++this.b},IT.sb=function(n){return Nk(n,this.b),this.c.sb(this.a+n)},IT.vb=function(n){var t;return Nk(n,this.b),t=this.c.vb(this.a+n),--this.b,t},IT.wb=function(n,t){return Nk(n,this.b),this.c.wb(this.a+n,t)},IT.Y=function(){return this.b},IT.a=0,IT.b=0;Bw(pP,"AbstractList/SubList",258);lL(36,641,jP,Be),IT.Q=function(){this.a.Q()},IT.kb=function(n){return this.a.R(n)},IT.mb=function(){return new $e(this.a.bb().mb())},IT.nb=function(n){return!!this.a.R(n)&&(this.a.eb(n),!0)},IT.Y=function(){return this.a.Y()};Bw(pP,"AbstractMap/1",36);lL(40,1,vP,$e),IT.G=function(){return this.a.G()},IT.H=function(){return zh(this.a.H(),21).yb()},IT.I=function(){this.a.I()};Bw(pP,"AbstractMap/1/1",40);lL(211,640,mP,Ue),IT.Q=function(){this.a.Q()},IT.kb=function(n){return this.a.ab(n)},IT.mb=function(){return new Fe(this.a.bb().mb())},IT.Y=function(){return this.a.Y()};Bw(pP,"AbstractMap/2",211);lL(212,1,vP,Fe),IT.G=function(){return this.a.G()},IT.H=function(){return zh(this.a.H(),21).zb()},IT.I=function(){this.a.I()};Bw(pP,"AbstractMap/2/1",212);lL(210,1,{210:1,21:1}),IT.t=function(n){var t;return!!ds(n,21)&&(t=zh(n,21),Nd(this.d,t.yb())&&Nd(this.e,t.zb()))},IT.yb=function(){return this.d},IT.zb=function(){return this.e},IT.v=function(){return $f(this.d)^$f(this.e)},IT.Ab=function(n){return ph(this,n)},IT.w=function(){return this.d+"="+this.e};Bw(pP,"AbstractMap/AbstractEntry",210);lL(163,210,{210:1,163:1,21:1},Do);Bw(pP,"AbstractMap/SimpleEntry",163);lL(652,1,CP),IT.t=function(n){var t;return!!ds(n,21)&&(t=zh(n,21),Nd(this.yb(),t.yb())&&Nd(this.zb(),t.zb()))},IT.v=function(){return $f(this.yb())^$f(this.zb())},IT.w=function(){return this.yb()+"="+this.zb()};Bw(pP,IP,652);lL(639,638,kP),IT._=function(n){return Ok(this,n)},IT.R=function(n){return Yo(this,n)},IT.bb=function(){return new Ve(this)},IT.cb=function(n){return Wo(sy(this,n))},IT.W=function(){return new ze(this)};Bw(pP,"AbstractNavigableMap",639);lL(287,641,jP,Ve),IT.kb=function(n){return ds(n,21)&&Ok(this.b,zh(n,21))},IT.mb=function(){return new wh(this.b)},IT.nb=function(n){var t;return!!ds(n,21)&&(t=zh(n,21),Vk(this.b,t))},IT.Y=function(){return this.b.c};Bw(pP,"AbstractNavigableMap/EntrySet",287);lL(229,641,HP,ze),IT.Q=function(){si(this.a)},IT.kb=function(n){return Yo(this.a,n)},IT.mb=function(){return new qe(new wh(new eb(this.a).b))},IT.nb=function(n){return!!Yo(this.a,n)&&(kd(this.a,n),!0)},IT.Y=function(){return this.a.c};Bw(pP,"AbstractNavigableMap/NavigableKeySet",229);lL(230,1,vP,qe),IT.G=function(){return Mu(this.a.a)},IT.H=function(){return vb(this.a).yb()},IT.I=function(){il(this.a)};Bw(pP,"AbstractNavigableMap/NavigableKeySet/1",230);lL(4,1,vP,Qe),IT.G=function(){return gs(this)},IT.H=function(){return rv(this)},IT.I=function(){ww(this)},IT.a=0,IT.b=-1;Bw(pP,"ArrayList/1",4);lL(94,647,xY,Ke),IT.kb=function(n){return-1!=function(n,t){var e,r;for(e=0,r=n.Y();e{% trans %}Delete{% endtrans %} + {% trans %}Delete{% endtrans %} {% endif %} {% endmacro %} diff --git a/core/templates/core/user_godfathers.jinja b/core/templates/core/user_godfathers.jinja index 496d0f21..7debf137 100644 --- a/core/templates/core/user_godfathers.jinja +++ b/core/templates/core/user_godfathers.jinja @@ -11,14 +11,20 @@ {% block content %}
- - {% trans %}Show family picture{% endtrans %} - + {% if godchildren or godfathers %} + + {% trans %}Show family tree{% endtrans %} + + {% endif %}

{% trans %}Godfathers / Godmothers{% endtrans %}

- {% if profile.godfathers.exists() %} + {% if godfathers %} - - {% trans %}Show ancestors tree{% endtrans %} - {% else %}

{% trans %}No godfathers / godmothers{% endtrans %} {% endif %}

{% trans %}Godchildren{% endtrans %}

- {% if profile.godchildren.exists() %} + {% if godchildren %} - - - {% trans %}Show descent tree{% endtrans %} - {% else %}

{% trans %}No godchildren{% endtrans %} {% endif %} diff --git a/core/templates/core/user_godfathers_tree.jinja b/core/templates/core/user_godfathers_tree.jinja index 775ac52c..df34ec9b 100644 --- a/core/templates/core/user_godfathers_tree.jinja +++ b/core/templates/core/user_godfathers_tree.jinja @@ -1,54 +1,105 @@ {% extends "core/base.jinja" %} +{% set depth_min=0 %} +{% set depth_max=10 %} + +{%- block additional_css -%} + +{%- endblock -%} + +{% block additional_js %} + + + + + + + +{% endblock %} {% block title %} - {% if param == "godchildren" %} - {% trans user_name=profile.get_display_name() %}{{ user_name }}'s godchildren{% endtrans %} - {% else %} - {% trans user_name=profile.get_display_name() %}{{ user_name }}'s godfathers{% endtrans %} - {% endif %} + {% trans user_name=profile.get_display_name() %}{{ user_name }}'s family tree{% endtrans %} {% endblock %} -{% macro display_members_list(user) %} - {% if user.__getattribute__(param).exists() %} -

    - {% for u in user.__getattribute__(param).all() %} -
  • - - {{ u.get_short_name() }} - - {% if u in members_set %} - {% trans %}Already seen (check above){% endtrans %} - {% else %} - {{ members_set.add(u) or "" }} - {{ display_members_list(u) }} - {% endif %} -
  • - {% endfor %} -
- {% endif %} -{% endmacro %} - {% block content %} -

- {% trans %}Back to family{% endtrans %}

- {% if profile.__getattribute__(param).exists() %} - {% if param == "godchildren" %} -

- {% trans %}Show a picture of the tree{% endtrans %}

-

{% trans u=profile.get_short_name() %}Descent tree of {{ u }}{% endtrans %}

- {% else %} -

- {% trans %}Show a picture of the tree{% endtrans %}

-

{% trans u=profile.get_short_name() %}Ancestors tree of {{ u }}{% endtrans %}

- {% endif %} - {{ members_set.add(profile) or "" }} - {{ display_members_list(profile) }} - {% else %} - {% if param == "godchildren" %} -

{% trans %}No godchildren{% endtrans %} - {% else %} -

{% trans %}No godfathers / godmothers{% endtrans %} - {% endif %} - {% endif %} +

+
+
+
+ + + + + + +
+ +
+ + + + + + +
+
+ +
+
+ + +
+ + +
+
+
+
+ + {% endblock %} diff --git a/core/tests/__init__.py b/core/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/core/tests.py b/core/tests/test_core.py similarity index 100% rename from core/tests.py rename to core/tests/test_core.py diff --git a/core/tests/test_family.py b/core/tests/test_family.py new file mode 100644 index 00000000..842ff12a --- /dev/null +++ b/core/tests/test_family.py @@ -0,0 +1,187 @@ +from django.test import TestCase +from django.urls import reverse +from model_bakery import baker + +from core.baker_recipes import subscriber_user +from core.models import User + + +class TestFetchFamilyApi(TestCase): + @classmethod + def setUpTestData(cls): + # Relations (A -> B means A is the godchild of B): + # main_user -> user0 -> user3 + # -> user1 -> user6 -> user7 -> user8 -> user9 + # -> user2 -> user10 + # + # main_user <- user3 <- user11 + # <- user12 + # <- user4 <- user13 + # <- user14 + # <- user15 <- user16 + # <- user5 + + cls.main_user = baker.make(User) + cls.users = baker.make(User, _quantity=17) + cls.main_user.godfathers.add(*cls.users[0:3]) + cls.main_user.godchildren.add(*cls.users[3:6]) + cls.users[1].godfathers.add(cls.users[6]) + cls.users[6].godfathers.add(cls.users[7]) + cls.users[7].godfathers.add(cls.users[8]) + cls.users[8].godfathers.add(cls.users[9]) + cls.users[2].godfathers.add(cls.users[10]) + + cls.users[3].godchildren.add(cls.users[11], cls.users[12]) + cls.users[4].godchildren.add(*cls.users[13:16]) + cls.users[15].godchildren.add(cls.users[16]) + + cls.root_user = baker.make(User, is_superuser=True) + cls.subscriber_user = subscriber_user.make() + + def setUp(self): + self.maxDiff = None + + def test_fetch_family_forbidden(self): + # Anonymous user + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + ) + assert response.status_code == 403 + + self.client.force_login(baker.make(User)) # unsubscribed user + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + ) + assert response.status_code == 403 + + def test_fetch_family_hidden_user(self): + self.main_user.is_subscriber_viewable = False + self.main_user.save() + for user_to_login, error_code in [ + (self.main_user, 200), + (self.subscriber_user, 403), + (self.root_user, 200), + ]: + self.client.force_login(user_to_login) + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + ) + assert response.status_code == error_code + + def test_fetch_family_with_zero_depth(self): + """Fetch the family with a depth of 0.""" + self.client.force_login(self.main_user) + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + + f"?godfathers_depth=0&godchildren_depth=0" + ) + assert response.status_code == 200 + assert [u["id"] for u in response.json()["users"]] == [self.main_user.id] + assert response.json()["relationships"] == [] + + def test_fetch_empty_family(self): + empty_user = baker.make(User) + self.client.force_login(empty_user) + response = self.client.get(reverse("api:family_graph", args=[empty_user.id])) + assert response.status_code == 200 + assert [u["id"] for u in response.json()["users"]] == [empty_user.id] + assert response.json()["relationships"] == [] + + def test_fetch_whole_family(self): + self.client.force_login(self.main_user) + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + + f"?godfathers_depth=10&godchildren_depth=10" + ) + assert response.status_code == 200 + assert [u["id"] for u in response.json()["users"]] == [ + self.main_user.id, + *[u.id for u in self.users], + ] + self.assertCountEqual( + response.json()["relationships"], + [ + {"godfather": self.users[0].id, "godchild": self.main_user.id}, + {"godfather": self.users[1].id, "godchild": self.main_user.id}, + {"godfather": self.users[2].id, "godchild": self.main_user.id}, + {"godfather": self.main_user.id, "godchild": self.users[3].id}, + {"godfather": self.main_user.id, "godchild": self.users[4].id}, + {"godfather": self.main_user.id, "godchild": self.users[5].id}, + {"godfather": self.users[6].id, "godchild": self.users[1].id}, + {"godfather": self.users[7].id, "godchild": self.users[6].id}, + {"godfather": self.users[8].id, "godchild": self.users[7].id}, + {"godfather": self.users[9].id, "godchild": self.users[8].id}, + {"godfather": self.users[10].id, "godchild": self.users[2].id}, + {"godfather": self.users[3].id, "godchild": self.users[11].id}, + {"godfather": self.users[3].id, "godchild": self.users[12].id}, + {"godfather": self.users[4].id, "godchild": self.users[13].id}, + {"godfather": self.users[4].id, "godchild": self.users[14].id}, + {"godfather": self.users[4].id, "godchild": self.users[15].id}, + {"godfather": self.users[15].id, "godchild": self.users[16].id}, + ], + ) + + def test_fetch_family_first_level(self): + """Fetch only the first level of the family.""" + self.client.force_login(self.main_user) + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + + f"?godfathers_depth=1&godchildren_depth=1" + ) + assert response.status_code == 200 + assert [u["id"] for u in response.json()["users"]] == [ + self.main_user.id, + *[u.id for u in self.users[:6]], + ] + self.assertCountEqual( + response.json()["relationships"], + [ + {"godfather": self.users[0].id, "godchild": self.main_user.id}, + {"godfather": self.users[1].id, "godchild": self.main_user.id}, + {"godfather": self.users[2].id, "godchild": self.main_user.id}, + {"godfather": self.main_user.id, "godchild": self.users[3].id}, + {"godfather": self.main_user.id, "godchild": self.users[4].id}, + {"godfather": self.main_user.id, "godchild": self.users[5].id}, + ], + ) + + def test_fetch_family_only_godfathers(self): + """Fetch only the godfathers.""" + self.client.force_login(self.main_user) + response = self.client.get( + reverse("api:family_graph", args=[self.main_user.id]) + + f"?godfathers_depth=10&godchildren_depth=0" + ) + assert response.status_code == 200 + assert [u["id"] for u in response.json()["users"]] == [ + self.main_user.id, + *[u.id for u in self.users[:3]], + *[u.id for u in self.users[6:11]], + ] + self.assertCountEqual( + response.json()["relationships"], + [ + {"godfather": self.users[0].id, "godchild": self.main_user.id}, + {"godfather": self.users[1].id, "godchild": self.main_user.id}, + {"godfather": self.users[2].id, "godchild": self.main_user.id}, + {"godfather": self.users[6].id, "godchild": self.users[1].id}, + {"godfather": self.users[7].id, "godchild": self.users[6].id}, + {"godfather": self.users[8].id, "godchild": self.users[7].id}, + {"godfather": self.users[9].id, "godchild": self.users[8].id}, + {"godfather": self.users[10].id, "godchild": self.users[2].id}, + ], + ) + + def test_nb_queries(self): + # The number of queries should be 1 per level of existing depth. + with self.assertNumQueries(0): + self.main_user.get_family(godfathers_depth=0, godchildren_depth=0) + with self.assertNumQueries(3): + self.main_user.get_family(godfathers_depth=3, godchildren_depth=0) + with self.assertNumQueries(3): + self.main_user.get_family(godfathers_depth=0, godchildren_depth=3) + with self.assertNumQueries(6): + self.main_user.get_family(godfathers_depth=3, godchildren_depth=3) + with self.assertNumQueries(4): + # If a level is empty, the next ones should not be queried. + self.main_user.get_family(godfathers_depth=0, godchildren_depth=10) diff --git a/core/urls.py b/core/urls.py index 32f81a2b..ac282a37 100644 --- a/core/urls.py +++ b/core/urls.py @@ -112,11 +112,6 @@ urlpatterns = [ UserGodfathersTreeView.as_view(), name="user_godfathers_tree", ), - path( - "user//godfathers/tree/pict/", - UserGodfathersTreePictureView.as_view(), - name="user_godfathers_tree_pict", - ), path( "user//godfathers///delete/", delete_user_godfather, diff --git a/core/views/forms.py b/core/views/forms.py index 8bf12912..0bbb1e3f 100644 --- a/core/views/forms.py +++ b/core/views/forms.py @@ -335,9 +335,40 @@ class UserGodfathersForm(forms.Form): label=_("Add"), ) user = AutoCompleteSelectField( - "users", required=True, label=_("Select user"), help_text=None + "users", required=True, label=_("Select user"), help_text="" ) + def __init__(self, *args, user: User, **kwargs): + super().__init__(*args, **kwargs) + self.target_user = user + + def clean_user(self): + other_user = self.cleaned_data.get("user") + if not other_user: + raise ValidationError(_("This user does not exist")) + if other_user == self.target_user: + raise ValidationError(_("You cannot be related to yourself")) + return other_user + + def clean(self): + super().clean() + if not self.is_valid(): + return self.cleaned_data + other_user = self.cleaned_data["user"] + if self.cleaned_data["type"] == "godfather": + if self.target_user.godfathers.contains(other_user): + self.add_error( + "user", + _("%s is already your godfather") % (other_user.get_short_name()), + ) + else: + if self.target_user.godchildren.contains(other_user): + self.add_error( + "user", + _("%s is already your godchild") % (other_user.get_short_name()), + ) + return self.cleaned_data + class PagePropForm(forms.ModelForm): error_css_class = "error" diff --git a/core/views/user.py b/core/views/user.py index 641ebb65..58ab9738 100644 --- a/core/views/user.py +++ b/core/views/user.py @@ -34,7 +34,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.core.exceptions import PermissionDenied from django.forms import CheckboxSelectMultiple from django.forms.models import modelform_factory -from django.http import Http404, HttpResponse +from django.http import Http404 from django.shortcuts import get_object_or_404, redirect from django.template.loader import render_to_string from django.template.response import TemplateResponse @@ -323,7 +323,7 @@ def delete_user_godfather(request, user_id, godfather_id, is_father): return redirect("core:user_godfathers", user_id=user_id) -class UserGodfathersView(UserTabsMixin, CanViewMixin, DetailView): +class UserGodfathersView(UserTabsMixin, CanViewMixin, DetailView, FormView): """Display a user's godfathers.""" model = User @@ -331,27 +331,23 @@ class UserGodfathersView(UserTabsMixin, CanViewMixin, DetailView): context_object_name = "profile" template_name = "core/user_godfathers.jinja" current_tab = "godfathers" + form_class = UserGodfathersForm - def post(self, request, *args, **kwargs): - self.object = self.get_object() - self.form = UserGodfathersForm(request.POST) - if self.form.is_valid() and self.form.cleaned_data["user"] != self.object: - if self.form.cleaned_data["type"] == "godfather": - self.object.godfathers.add(self.form.cleaned_data["user"]) - self.object.save() - else: - self.object.godchildren.add(self.form.cleaned_data["user"]) - self.object.save() - self.form = UserGodfathersForm() - return super().get(request, *args, **kwargs) + def get_form_kwargs(self): + return super().get_form_kwargs() | {"user": self.object} + + def form_valid(self, form): + if form.cleaned_data["type"] == "godfather": + self.object.godfathers.add(form.cleaned_data["user"]) + else: + self.object.godchildren.add(form.cleaned_data["user"]) + return redirect("core:user_godfathers", user_id=self.object.id) def get_context_data(self, **kwargs): - kwargs = super().get_context_data(**kwargs) - try: - kwargs["form"] = self.form - except: - kwargs["form"] = UserGodfathersForm() - return kwargs + return super().get_context_data(**kwargs) | { + "godfathers": list(self.object.godfathers.select_related("profile_pict")), + "godchildren": list(self.object.godchildren.select_related("profile_pict")), + } class UserGodfathersTreeView(UserTabsMixin, CanViewMixin, DetailView): @@ -365,86 +361,12 @@ class UserGodfathersTreeView(UserTabsMixin, CanViewMixin, DetailView): def get_context_data(self, **kwargs): kwargs = super().get_context_data(**kwargs) - if "descent" in self.request.GET: - kwargs["param"] = "godchildren" - else: - kwargs["param"] = "godfathers" - kwargs["members_set"] = set() + kwargs["api_url"] = reverse( + "api:family_graph", kwargs={"user_id": self.object.id} + ) return kwargs -class UserGodfathersTreePictureView(CanViewMixin, DetailView): - """Display a user's tree as a picture.""" - - model = User - pk_url_kwarg = "user_id" - - def build_complex_graph(self): - import pygraphviz as pgv - - self.depth = int(self.request.GET.get("depth", 4)) - if self.param == "godfathers": - self.graph = pgv.AGraph(strict=False, directed=True, rankdir="BT") - else: - self.graph = pgv.AGraph(strict=False, directed=True) - family = set() - self.level = 1 - - # Since the tree isn't very deep, we can build it recursively - def crawl_family(user): - if self.level > self.depth: - return - self.level += 1 - for u in user.__getattribute__(self.param).all(): - self.graph.add_edge(user.get_short_name(), u.get_short_name()) - if u not in family: - family.add(u) - crawl_family(u) - self.level -= 1 - - self.graph.add_node(self.object.get_short_name()) - family.add(self.object) - crawl_family(self.object) - - def build_family_graph(self): - import pygraphviz as pgv - - self.graph = pgv.AGraph(strict=False, directed=True) - self.graph.add_node(self.object.get_short_name()) - for u in self.object.godfathers.all(): - self.graph.add_edge(u.get_short_name(), self.object.get_short_name()) - for u in self.object.godchildren.all(): - self.graph.add_edge(self.object.get_short_name(), u.get_short_name()) - - def get(self, request, *args, **kwargs): - self.object = self.get_object() - if "descent" in self.request.GET: - self.param = "godchildren" - elif "ancestors" in self.request.GET: - self.param = "godfathers" - else: - self.param = "family" - - if self.param == "family": - self.build_family_graph() - else: - self.build_complex_graph() - # Pimp the graph before display - self.graph.node_attr["color"] = "lightblue" - self.graph.node_attr["style"] = "filled" - main_node = self.graph.get_node(self.object.get_short_name()) - main_node.attr["color"] = "sandybrown" - main_node.attr["shape"] = "rect" - if self.param == "godchildren": - self.graph.graph_attr["label"] = _("Godchildren") - elif self.param == "godfathers": - self.graph.graph_attr["label"] = _("Family") - else: - self.graph.graph_attr["label"] = _("Family") - img = self.graph.draw(format="png", prog="dot") - return HttpResponse(img, content_type="image/png") - - class UserStatsView(UserTabsMixin, CanViewMixin, DetailView): """Display a user's stats.""" diff --git a/docs/howto/translation.md b/docs/howto/translation.md index 8f40501a..da83d8b4 100644 --- a/docs/howto/translation.md +++ b/docs/howto/translation.md @@ -31,7 +31,8 @@ Il faut d'abord générer un fichier de traductions, l'éditer et enfin le compiler au format binaire pour qu'il soit lu par le serveur. ```bash -./manage.py makemessages --locale=fr --ignore "env/*" -e py,jinja +./manage.py makemessages --locale=fr -e py,jinja # Pour le backend +./manage.py makemessages --locale=fr -d djangojs # Pour le frontend ``` ## Éditer le fichier django.po diff --git a/docs/tutorial/install.md b/docs/tutorial/install.md index 9434aec6..747900b7 100644 --- a/docs/tutorial/install.md +++ b/docs/tutorial/install.md @@ -8,7 +8,6 @@ Certaines dépendances sont nécessaires niveau système : - zlib1g-dev - python - gettext -- graphviz ### Installer WSL @@ -71,8 +70,8 @@ cd /mnt//vos/fichiers/comme/dhab Puis installez les autres dépendances : ```bash - sudo apt install build-essentials libssl-dev libjpeg-dev zlib1g-dev python-dev \ - libffi-dev python-dev-is-python3 libgraphviz-dev pkg-config \ + sudo apt install build-essential libssl-dev libjpeg-dev zlib1g-dev python-dev \ + libffi-dev python-dev-is-python3 pkg-config \ gettext git pipx pipx install poetry @@ -85,7 +84,7 @@ cd /mnt//vos/fichiers/comme/dhab sudo pacman -S python - sudo pacman -S gcc git graphviz gettext graphviz pkgconf python-poetry + sudo pacman -S gcc git gettext pkgconf python-poetry ``` === "macOS" @@ -93,12 +92,8 @@ cd /mnt//vos/fichiers/comme/dhab Pour installer les dépendances, il est fortement recommandé d'installer le gestionnaire de paquets `homebrew `_. Il est également nécessaire d'avoir installé xcode - ```bash - echo 'export PATH="$(brew --prefix graphviz)/bin:$PATH"' >> ~/.zshrc - echo 'export CFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I $(brew --prefix graphviz)/include"' >> ~/.zshrc - echo 'export LDFLAGS="-L /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L $(brew --prefix graphviz)/lib"' >> ~/.zshrc - - brew install git python graphviz pipx + ```bash + brew install git python pipx pipx install poetry # Pour bien configurer gettext diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 35d46ec5..2c4a859b 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-08 13:30+0200\n" +"POT-Creation-Date: 2024-09-17 11:24+0200\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Skia \n" "Language-Team: AE info \n" @@ -41,7 +41,7 @@ msgstr "code postal" msgid "country" msgstr "pays" -#: accounting/models.py:55 core/models.py:364 +#: accounting/models.py:55 core/models.py:365 msgid "phone" msgstr "téléphone" @@ -127,8 +127,8 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:261 core/models.py:904 core/models.py:1431 -#: core/models.py:1476 core/models.py:1505 core/models.py:1529 +#: accounting/models.py:261 core/models.py:940 core/models.py:1467 +#: core/models.py:1512 core/models.py:1541 core/models.py:1565 #: counter/models.py:585 counter/models.py:678 counter/models.py:888 #: eboutic/models.py:57 eboutic/models.py:173 forum/models.py:311 #: forum/models.py:412 stock/models.py:96 @@ -166,7 +166,7 @@ msgid "accounting type" msgstr "type comptable" #: accounting/models.py:299 accounting/models.py:438 accounting/models.py:471 -#: accounting/models.py:503 core/models.py:1504 core/models.py:1530 +#: accounting/models.py:503 core/models.py:1540 core/models.py:1566 #: counter/models.py:644 msgid "label" msgstr "étiquette" @@ -219,7 +219,7 @@ msgstr "Compte" msgid "Company" msgstr "Entreprise" -#: accounting/models.py:312 core/models.py:311 sith/settings.py:413 +#: accounting/models.py:312 core/models.py:312 sith/settings.py:413 #: stock/templates/stock/shopping_list_items.jinja:37 msgid "Other" msgstr "Autre" @@ -780,7 +780,8 @@ msgstr "Opération liée : " #: core/templates/core/file_edit.jinja:8 #: core/templates/core/macros_pages.jinja:25 #: core/templates/core/page_prop.jinja:11 -#: core/templates/core/user_godfathers.jinja:62 +#: core/templates/core/user_godfathers.jinja:61 +#: core/templates/core/user_godfathers_tree.jinja:91 #: core/templates/core/user_preferences.jinja:18 #: core/templates/core/user_preferences.jinja:27 #: core/templates/core/user_preferences.jinja:65 @@ -1041,11 +1042,11 @@ msgstr "actif" msgid "short description" msgstr "description courte" -#: club/models.py:80 core/models.py:366 +#: club/models.py:80 core/models.py:367 msgid "address" msgstr "Adresse" -#: club/models.py:97 core/models.py:277 +#: club/models.py:97 core/models.py:278 msgid "home" msgstr "home" @@ -1064,12 +1065,12 @@ msgstr "Un club avec ce nom UNIX existe déjà." msgid "user" msgstr "nom d'utilisateur" -#: club/models.py:353 core/models.py:330 election/models.py:178 +#: club/models.py:353 core/models.py:331 election/models.py:178 #: election/models.py:212 trombi/models.py:211 msgid "role" msgstr "rôle" -#: club/models.py:358 core/models.py:88 counter/models.py:209 +#: club/models.py:358 core/models.py:89 counter/models.py:209 #: counter/models.py:240 election/models.py:13 election/models.py:115 #: election/models.py:188 forum/models.py:60 forum/models.py:244 msgid "description" @@ -1084,7 +1085,7 @@ msgid "Enter a valid address. Only the root of the address is needed." msgstr "" "Entrez une adresse valide. Seule la racine de l'adresse est nécessaire." -#: club/models.py:428 com/models.py:82 com/models.py:309 core/models.py:905 +#: club/models.py:428 com/models.py:82 com/models.py:309 core/models.py:941 msgid "is moderated" msgstr "est modéré" @@ -1439,7 +1440,7 @@ msgstr "résumé" msgid "content" msgstr "contenu" -#: com/models.py:71 core/models.py:1474 launderette/models.py:92 +#: com/models.py:71 core/models.py:1510 launderette/models.py:92 #: launderette/models.py:130 launderette/models.py:181 stock/models.py:74 #: stock/models.py:129 msgid "type" @@ -1490,7 +1491,7 @@ msgstr "weekmail" msgid "rank" msgstr "rang" -#: com/models.py:295 core/models.py:870 core/models.py:920 +#: com/models.py:295 core/models.py:906 core/models.py:956 msgid "file" msgstr "fichier" @@ -1975,30 +1976,30 @@ msgstr "" "Vous devez êtres un membre du bureau du club sélectionné pour poster dans le " "Weekmail." -#: core/models.py:83 +#: core/models.py:84 msgid "meta group status" msgstr "status du meta-groupe" -#: core/models.py:85 +#: core/models.py:86 msgid "Whether a group is a meta group or not" msgstr "Si un groupe est un meta-groupe ou pas" -#: core/models.py:171 +#: core/models.py:172 #, python-format msgid "%(value)s is not a valid promo (between 0 and %(end)s)" msgstr "%(value)s n'est pas une promo valide (doit être entre 0 et %(end)s)" -#: core/models.py:230 +#: core/models.py:231 msgid "username" msgstr "nom d'utilisateur" -#: core/models.py:234 +#: core/models.py:235 msgid "Required. 254 characters or fewer. Letters, digits and ./+/-/_ only." msgstr "" "Requis. Pas plus de 254 caractères. Uniquement des lettres, numéros, et ./" "+/-/_" -#: core/models.py:240 +#: core/models.py:241 msgid "" "Enter a valid username. This value may contain only letters, numbers and ./" "+/-/_ characters." @@ -2006,43 +2007,43 @@ msgstr "" "Entrez un nom d'utilisateur correct. Uniquement des lettres, numéros, et ./" "+/-/_" -#: core/models.py:246 +#: core/models.py:247 msgid "A user with that username already exists." msgstr "Un utilisateur de ce nom existe déjà" -#: core/models.py:248 +#: core/models.py:249 msgid "first name" msgstr "Prénom" -#: core/models.py:249 +#: core/models.py:250 msgid "last name" msgstr "Nom" -#: core/models.py:250 +#: core/models.py:251 msgid "email address" msgstr "adresse email" -#: core/models.py:251 +#: core/models.py:252 msgid "date of birth" msgstr "date de naissance" -#: core/models.py:252 +#: core/models.py:253 msgid "nick name" msgstr "surnom" -#: core/models.py:254 +#: core/models.py:255 msgid "staff status" msgstr "status \"staff\"" -#: core/models.py:256 +#: core/models.py:257 msgid "Designates whether the user can log into this admin site." msgstr "Est-ce que l'utilisateur peut se logger à la partie admin du site." -#: core/models.py:259 +#: core/models.py:260 msgid "active" msgstr "actif" -#: core/models.py:262 +#: core/models.py:263 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -2050,163 +2051,163 @@ msgstr "" "Est-ce que l'utilisateur doit être traité comme actif. Désélectionnez au " "lieu de supprimer les comptes." -#: core/models.py:266 +#: core/models.py:267 msgid "date joined" msgstr "date d'inscription" -#: core/models.py:267 +#: core/models.py:268 msgid "last update" msgstr "dernière mise à jour" -#: core/models.py:269 +#: core/models.py:270 msgid "superuser" msgstr "super-utilisateur" -#: core/models.py:271 +#: core/models.py:272 msgid "Designates whether this user is a superuser. " msgstr "Est-ce que l'utilisateur est super-utilisateur." -#: core/models.py:285 +#: core/models.py:286 msgid "profile" msgstr "profil" -#: core/models.py:293 +#: core/models.py:294 msgid "avatar" msgstr "avatar" -#: core/models.py:301 +#: core/models.py:302 msgid "scrub" msgstr "blouse" -#: core/models.py:307 +#: core/models.py:308 msgid "sex" msgstr "Genre" -#: core/models.py:311 +#: core/models.py:312 msgid "Man" msgstr "Homme" -#: core/models.py:311 +#: core/models.py:312 msgid "Woman" msgstr "Femme" -#: core/models.py:313 +#: core/models.py:314 msgid "pronouns" msgstr "pronoms" -#: core/models.py:315 +#: core/models.py:316 msgid "tshirt size" msgstr "taille de t-shirt" -#: core/models.py:318 +#: core/models.py:319 msgid "-" msgstr "-" -#: core/models.py:319 +#: core/models.py:320 msgid "XS" msgstr "XS" -#: core/models.py:320 +#: core/models.py:321 msgid "S" msgstr "S" -#: core/models.py:321 +#: core/models.py:322 msgid "M" msgstr "M" -#: core/models.py:322 +#: core/models.py:323 msgid "L" msgstr "L" -#: core/models.py:323 +#: core/models.py:324 msgid "XL" msgstr "XL" -#: core/models.py:324 +#: core/models.py:325 msgid "XXL" msgstr "XXL" -#: core/models.py:325 +#: core/models.py:326 msgid "XXXL" msgstr "XXXL" -#: core/models.py:333 +#: core/models.py:334 msgid "Student" msgstr "Étudiant" -#: core/models.py:334 +#: core/models.py:335 msgid "Administrative agent" msgstr "Personnel administratif" -#: core/models.py:335 +#: core/models.py:336 msgid "Teacher" msgstr "Enseignant" -#: core/models.py:336 +#: core/models.py:337 msgid "Agent" msgstr "Personnel" -#: core/models.py:337 +#: core/models.py:338 msgid "Doctor" msgstr "Doctorant" -#: core/models.py:338 +#: core/models.py:339 msgid "Former student" msgstr "Ancien étudiant" -#: core/models.py:339 +#: core/models.py:340 msgid "Service" msgstr "Service" -#: core/models.py:345 +#: core/models.py:346 msgid "department" msgstr "département" -#: core/models.py:352 +#: core/models.py:353 msgid "dpt option" msgstr "Filière" -#: core/models.py:354 pedagogy/models.py:69 pedagogy/models.py:293 +#: core/models.py:355 pedagogy/models.py:69 pedagogy/models.py:293 msgid "semester" msgstr "semestre" -#: core/models.py:355 +#: core/models.py:356 msgid "quote" msgstr "citation" -#: core/models.py:356 +#: core/models.py:357 msgid "school" msgstr "école" -#: core/models.py:358 +#: core/models.py:359 msgid "promo" msgstr "promo" -#: core/models.py:361 +#: core/models.py:362 msgid "forum signature" msgstr "signature du forum" -#: core/models.py:363 +#: core/models.py:364 msgid "second email address" msgstr "adresse email secondaire" -#: core/models.py:365 +#: core/models.py:366 msgid "parent phone" msgstr "téléphone des parents" -#: core/models.py:368 +#: core/models.py:369 msgid "parent address" msgstr "adresse des parents" -#: core/models.py:371 +#: core/models.py:372 msgid "is subscriber viewable" msgstr "profil visible par les cotisants" -#: core/models.py:571 +#: core/models.py:572 msgid "A user with that username already exists" msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" -#: core/models.py:701 core/templates/core/macros.jinja:75 +#: core/models.py:737 core/templates/core/macros.jinja:75 #: core/templates/core/macros.jinja:77 core/templates/core/macros.jinja:78 #: core/templates/core/user_detail.jinja:100 #: core/templates/core/user_detail.jinja:101 @@ -2225,101 +2226,101 @@ msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" msgid "Profile" msgstr "Profil" -#: core/models.py:820 +#: core/models.py:856 msgid "Visitor" msgstr "Visiteur" -#: core/models.py:827 +#: core/models.py:863 msgid "receive the Weekmail" msgstr "recevoir le Weekmail" -#: core/models.py:828 +#: core/models.py:864 msgid "show your stats to others" msgstr "montrez vos statistiques aux autres" -#: core/models.py:830 +#: core/models.py:866 msgid "get a notification for every click" msgstr "avoir une notification pour chaque click" -#: core/models.py:833 +#: core/models.py:869 msgid "get a notification for every refilling" msgstr "avoir une notification pour chaque rechargement" -#: core/models.py:859 sas/views.py:356 +#: core/models.py:895 sas/views.py:356 msgid "file name" msgstr "nom du fichier" -#: core/models.py:863 core/models.py:1223 +#: core/models.py:899 core/models.py:1259 msgid "parent" msgstr "parent" -#: core/models.py:877 +#: core/models.py:913 msgid "compressed file" msgstr "version allégée" -#: core/models.py:884 +#: core/models.py:920 msgid "thumbnail" msgstr "miniature" -#: core/models.py:892 core/models.py:909 +#: core/models.py:928 core/models.py:945 msgid "owner" msgstr "propriétaire" -#: core/models.py:896 core/models.py:1240 core/views/files.py:230 +#: core/models.py:932 core/models.py:1276 core/views/files.py:230 msgid "edit group" msgstr "groupe d'édition" -#: core/models.py:899 core/models.py:1243 core/views/files.py:233 +#: core/models.py:935 core/models.py:1279 core/views/files.py:233 msgid "view group" msgstr "groupe de vue" -#: core/models.py:901 +#: core/models.py:937 msgid "is folder" msgstr "est un dossier" -#: core/models.py:902 +#: core/models.py:938 msgid "mime type" msgstr "type mime" -#: core/models.py:903 +#: core/models.py:939 msgid "size" msgstr "taille" -#: core/models.py:914 +#: core/models.py:950 msgid "asked for removal" msgstr "retrait demandé" -#: core/models.py:916 +#: core/models.py:952 msgid "is in the SAS" msgstr "est dans le SAS" -#: core/models.py:1010 +#: core/models.py:1046 msgid "Character '/' not authorized in name" msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" -#: core/models.py:1012 core/models.py:1016 +#: core/models.py:1048 core/models.py:1052 msgid "Loop in folder tree" msgstr "Boucle dans l'arborescence des dossiers" -#: core/models.py:1019 +#: core/models.py:1055 msgid "You can not make a file be a children of a non folder file" msgstr "" "Vous ne pouvez pas mettre un fichier enfant de quelque chose qui n'est pas " "un dossier" -#: core/models.py:1030 +#: core/models.py:1066 msgid "Duplicate file" msgstr "Un fichier de ce nom existe déjà" -#: core/models.py:1047 +#: core/models.py:1083 msgid "You must provide a file" msgstr "Vous devez fournir un fichier" -#: core/models.py:1206 +#: core/models.py:1242 msgid "page unix name" msgstr "nom unix de la page" -#: core/models.py:1212 +#: core/models.py:1248 msgid "" "Enter a valid page name. This value may contain only unaccented letters, " "numbers and ./+/-/_ characters." @@ -2327,55 +2328,55 @@ msgstr "" "Entrez un nom de page correct. Uniquement des lettres non accentuées, " "numéros, et ./+/-/_" -#: core/models.py:1230 +#: core/models.py:1266 msgid "page name" msgstr "nom de la page" -#: core/models.py:1235 +#: core/models.py:1271 msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:1248 +#: core/models.py:1284 msgid "lock user" msgstr "utilisateur bloquant" -#: core/models.py:1255 +#: core/models.py:1291 msgid "lock_timeout" msgstr "décompte du déblocage" -#: core/models.py:1305 +#: core/models.py:1341 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:1308 +#: core/models.py:1344 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:1428 +#: core/models.py:1464 msgid "revision" msgstr "révision" -#: core/models.py:1429 +#: core/models.py:1465 msgid "page title" msgstr "titre de la page" -#: core/models.py:1430 +#: core/models.py:1466 msgid "page content" msgstr "contenu de la page" -#: core/models.py:1471 +#: core/models.py:1507 msgid "url" msgstr "url" -#: core/models.py:1472 +#: core/models.py:1508 msgid "param" msgstr "param" -#: core/models.py:1477 +#: core/models.py:1513 msgid "viewed" msgstr "vue" -#: core/models.py:1535 +#: core/models.py:1571 msgid "operation type" msgstr "type d'opération" @@ -2906,8 +2907,9 @@ msgstr "Vous avez correctement changé votre mot de passe !" #: core/templates/core/password_reset.jinja:8 #: core/templates/core/password_reset_confirm.jinja:8 +#: core/templates/core/user_godfathers_tree.jinja:87 msgid "Reset" -msgstr "Reset" +msgstr "Réinitialiser" #: core/templates/core/password_reset_complete.jinja:4 msgid "You successfully reset your password!" @@ -3223,68 +3225,44 @@ msgstr "Numéro de compte : " msgid "%(user_name)s's family" msgstr "Famille de %(user_name)s" -#: core/templates/core/user_godfathers.jinja:15 -msgid "Show family picture" -msgstr "Voir une image de la famille" +#: core/templates/core/user_godfathers.jinja:20 +msgid "Show family tree" +msgstr "Afficher l'arbre généalogique" -#: core/templates/core/user_godfathers.jinja:18 +#: core/templates/core/user_godfathers.jinja:24 msgid "Godfathers / Godmothers" msgstr "Parrains / Marraines" -#: core/templates/core/user_godfathers.jinja:32 -msgid "Show ancestors tree" -msgstr "Voir l'arbre des ancêtres" - -#: core/templates/core/user_godfathers.jinja:35 -#: core/templates/core/user_godfathers_tree.jinja:50 +#: core/templates/core/user_godfathers.jinja:38 msgid "No godfathers / godmothers" msgstr "Pas de famille" -#: core/templates/core/user_godfathers.jinja:38 core/views/user.py:439 +#: core/templates/core/user_godfathers.jinja:41 msgid "Godchildren" msgstr "Fillots / Fillotes" -#: core/templates/core/user_godfathers.jinja:52 -msgid "Show descent tree" -msgstr "Voir l'arbre de la descendance" - -#: core/templates/core/user_godfathers.jinja:55 -#: core/templates/core/user_godfathers_tree.jinja:48 +#: core/templates/core/user_godfathers.jinja:54 msgid "No godchildren" msgstr "Pas de fillots / fillotes" -#: core/templates/core/user_godfathers_tree.jinja:5 -#, python-format -msgid "%(user_name)s's godchildren" -msgstr "Fillots/Fillotes de %(user_name)s" - -#: core/templates/core/user_godfathers_tree.jinja:7 -#, python-format -msgid "%(user_name)s's godfathers" -msgstr "Parrains/Marraines de %(user_name)s" - #: core/templates/core/user_godfathers_tree.jinja:20 -msgid "Already seen (check above)" -msgstr "Déjà vu (voir plus haut)" - -#: core/templates/core/user_godfathers_tree.jinja:33 -msgid "Back to family" -msgstr "Retour à la famille" - -#: core/templates/core/user_godfathers_tree.jinja:37 -#: core/templates/core/user_godfathers_tree.jinja:41 -msgid "Show a picture of the tree" -msgstr "Voir une image de l'arbre" - -#: core/templates/core/user_godfathers_tree.jinja:38 #, python-format -msgid "Descent tree of %(u)s" -msgstr "Descendants de %(u)s" +msgid "%(user_name)s's family tree" +msgstr "Arbre généalogique de %(user_name)s" -#: core/templates/core/user_godfathers_tree.jinja:42 +#: core/templates/core/user_godfathers_tree.jinja:29 #, python-format -msgid "Ancestors tree of %(u)s" -msgstr "Ancêtres de %(u)s" +msgid "Max godfather depth between %(min)s and %(max)s" +msgstr "Maximum de profondeur pour les parrains entre %(min)s et %(max)s" + +#: core/templates/core/user_godfathers_tree.jinja:55 +#, python-format +msgid "Max godchildren depth between %(min)s and %(max)s" +msgstr "Maximum de profondeur pour les fillots entre %(min)s et %(max)s" + +#: core/templates/core/user_godfathers_tree.jinja:83 +msgid "Reverse" +msgstr "Inverser" #: core/templates/core/user_group.jinja:9 #, python-format @@ -3680,12 +3658,31 @@ msgstr "Fillot / Fillote" msgid "Select user" msgstr "Choisir un utilisateur" -#: core/views/forms.py:351 core/views/forms.py:369 election/models.py:22 +#: core/views/forms.py:348 +msgid "This user does not exist" +msgstr "Cet utilisateur n'existe pas" + +#: core/views/forms.py:350 +msgid "You cannot be related to yourself" +msgstr "Vous ne pouvez pas être relié à vous-même" + +#: core/views/forms.py:362 +#, python-format +msgid "%s is already your godfather" +msgstr "%s est déjà votre parrain/marraine" + +#: core/views/forms.py:368 +#, fuzzy, python-format +#| msgid "This user has already commented on this UV" +msgid "%s is already your godchild" +msgstr "%s est déjà votre fillot/fillote" + +#: core/views/forms.py:382 core/views/forms.py:400 election/models.py:22 #: election/views.py:147 msgid "edit groups" msgstr "groupe d'édition" -#: core/views/forms.py:354 core/views/forms.py:372 election/models.py:29 +#: core/views/forms.py:385 core/views/forms.py:403 election/models.py:29 #: election/views.py:150 msgid "view groups" msgstr "groupe de vue" @@ -3702,7 +3699,7 @@ msgstr "Utilisateurs à ajouter au groupe" msgid "We couldn't verify that this email actually exists" msgstr "Nous n'avons pas réussi à vérifier que cette adresse mail existe." -#: core/views/user.py:202 core/views/user.py:441 core/views/user.py:443 +#: core/views/user.py:202 msgid "Family" msgstr "Famille" @@ -6313,85 +6310,3 @@ msgstr "Vous ne pouvez plus écrire de commentaires, la date est passée." #, python-format msgid "Maximum characters: %(max_length)s" msgstr "Nombre de caractères max: %(max_length)s" - -#~ msgid "Picture Unavailable" -#~ msgstr "Photo Indisponible" - -#~ msgid "Convert dokuwiki/BBcode syntax to Markdown" -#~ msgstr "Convertir de la syntaxe dokuwiki/BBcode vers Markdown" - -#~ msgid "This album does not contain any photos." -#~ msgstr "Cet album ne contient aucune photo." - -#~ msgid "You have no basket." -#~ msgstr "Vous n'avez pas de panier." - -#~ msgid "The basket cookie was badly formatted." -#~ msgstr "Le cookie du panier a été mal formaté." - -#, python-format -#~ msgid "%(name)s : this product does not exist." -#~ msgstr "%(name)s : ce produit n'existe pas." - -#, python-format -#~ msgid "You cannot buy %(nbr)d %(name)s." -#~ msgstr "Vous ne pouvez pas acheter %(nbr)d %(name)s." - -#~ msgid "Error downloading your pictures" -#~ msgstr "Erreur de téléchargement de vos photos" - -#~ msgid "Error connecting to the server" -#~ msgstr "Erreur lors de la connection au serveur" - -#~ msgid "past member" -#~ msgstr "Anciens membres" - -#, python-format -#~ msgid "Welcome %(user_name)s!" -#~ msgstr "Bienvenue, %(user_name)s!" - -#~ msgid "" -#~ "You successfully registered and you will soon receive a confirmation mail." -#~ msgstr "" -#~ "Vous vous êtes correctement enregistré, et vous devriez recevoir " -#~ "rapidement un email de confirmation." - -#, python-format -#~ msgid "Your username is %(username)s." -#~ msgstr "Votre nom d'utilisateur est %(username)s." - -#~ msgid "Subscription error" -#~ msgstr "Erreur de cotisation" - -#~ msgid "Folder: " -#~ msgstr "Dossier : " - -#~ msgid "File: " -#~ msgstr "Fichier : " - -#~ msgid "Username" -#~ msgstr "Nom d'utilisateur" - -#~ msgid "Password" -#~ msgstr "Mot de passe" - -#~ msgid "Register a user" -#~ msgstr "Enregistrer un utilisateur" - -#~ msgid "Current profile: " -#~ msgstr "Profil actuel : " - -#~ msgid "Current avatar: " -#~ msgstr "Avatar actuel : " - -#~ msgid "Current scrub: " -#~ msgstr "Blouse actuelle : " - -#~ msgid "preview" -#~ msgstr "miniature" - -#~ msgid "Rotate left" -#~ msgstr "Tourner vers la gauche" - -#~ msgid "Rotate right" -#~ msgstr "Tourner vers la droite" diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po new file mode 100644 index 00000000..7826cf67 --- /dev/null +++ b/locale/fr/LC_MESSAGES/djangojs.po @@ -0,0 +1,21 @@ +# Sith AE french frontend translation file +# Copyright (C) 2024 +# This file is distributed under the same license as the Sith package. +# ae@utbm.fr / ae.info@utbm.fr +# +#, fuzzy +msgid "" +msgstr "" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-17 11:54+0200\n" +"PO-Revision-Date: 2024-09-17 11:54+0200\n" +"Last-Translator: Sli \n" +"Language-Team: AE info \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: core/static/user/js/family_graph.js:230 +msgid "family_tree.%(extension)s" +msgstr "arbre_genealogique.%(extension)s" diff --git a/poetry.lock b/poetry.lock index 533d7c28..b49aa74f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -92,78 +92,78 @@ files = [ [[package]] name = "cffi" -version = "1.17.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, - {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, - {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, - {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, - {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, - {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, - {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, - {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, - {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, - {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, - {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, - {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, - {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, - {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, - {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, - {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -412,38 +412,38 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "43.0.0" +version = "43.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, - {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, - {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, - {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, - {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, - {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, - {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, + {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, + {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, + {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, + {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, + {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, + {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, + {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, ] [package.dependencies] @@ -456,7 +456,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -497,13 +497,13 @@ files = [ [[package]] name = "django" -version = "4.2.15" +version = "4.2.16" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.8" files = [ - {file = "Django-4.2.15-py3-none-any.whl", hash = "sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30"}, - {file = "Django-4.2.15.tar.gz", hash = "sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a"}, + {file = "Django-4.2.16-py3-none-any.whl", hash = "sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898"}, + {file = "Django-4.2.16.tar.gz", hash = "sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad"}, ] [package.dependencies] @@ -761,19 +761,19 @@ python-dateutil = ">=2.4" [[package]] name = "filelock" -version = "3.15.4" +version = "3.16.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, - {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, + {file = "filelock-3.16.0-py3-none-any.whl", hash = "sha256:f6ed4c963184f4c84dd5557ce8fece759a3724b37b80c6c4f20a2f63a4dc6609"}, + {file = "filelock-3.16.0.tar.gz", hash = "sha256:81de9eb8453c769b63369f87f11131a7ab04e367f8d97ad39dc230daa07e3bec"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.1.1)", "pytest (>=8.3.2)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.3)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "freezegun" @@ -1450,13 +1450,13 @@ ptyprocess = ">=0.5" [[package]] name = "phonenumbers" -version = "8.13.44" +version = "8.13.45" description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers." optional = false python-versions = "*" files = [ - {file = "phonenumbers-8.13.44-py2.py3-none-any.whl", hash = "sha256:52cd02865dab1428ca9e89d442629b61d407c7dc687cfb80a3e8d068a584513c"}, - {file = "phonenumbers-8.13.44.tar.gz", hash = "sha256:2175021e84ee4e41b43c890f2d0af51f18c6ca9ad525886d6d6e4ea882e46fac"}, + {file = "phonenumbers-8.13.45-py2.py3-none-any.whl", hash = "sha256:bf05ec20fcd13f0d53e43a34ed7bd1c8be26a72b88fce4b8c64fca5b4641987a"}, + {file = "phonenumbers-8.13.45.tar.gz", hash = "sha256:53679a95b6060fd5e15467759252c87933d8566d6a5be00995a579eb0e02435b"}, ] [[package]] @@ -1558,19 +1558,19 @@ xmp = ["defusedxml"] [[package]] name = "platformdirs" -version = "4.2.2" +version = "4.3.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, + {file = "platformdirs-4.3.2-py3-none-any.whl", hash = "sha256:eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617"}, + {file = "platformdirs-4.3.2.tar.gz", hash = "sha256:9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" @@ -1691,18 +1691,18 @@ files = [ [[package]] name = "pydantic" -version = "2.8.2" +version = "2.9.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, - {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, + {file = "pydantic-2.9.1-py3-none-any.whl", hash = "sha256:7aff4db5fdf3cf573d4b3c30926a510a10e19a0774d38fc4967f78beb6deb612"}, + {file = "pydantic-2.9.1.tar.gz", hash = "sha256:1363c7d975c7036df0db2b4a61f2e062fbc0aa5ab5f2772e0ffc7191a4f4bce2"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.20.1" +annotated-types = ">=0.6.0" +pydantic-core = "2.23.3" typing-extensions = [ {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, {version = ">=4.6.1", markers = "python_version < \"3.13\""}, @@ -1710,103 +1710,104 @@ typing-extensions = [ [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.20.1" +version = "2.23.3" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, - {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, - {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, - {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, - {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, - {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, - {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, - {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, - {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, - {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, - {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, - {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, - {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, - {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, + {file = "pydantic_core-2.23.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7f10a5d1b9281392f1bf507d16ac720e78285dfd635b05737c3911637601bae6"}, + {file = "pydantic_core-2.23.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c09a7885dd33ee8c65266e5aa7fb7e2f23d49d8043f089989726391dd7350c5"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6470b5a1ec4d1c2e9afe928c6cb37eb33381cab99292a708b8cb9aa89e62429b"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9172d2088e27d9a185ea0a6c8cebe227a9139fd90295221d7d495944d2367700"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86fc6c762ca7ac8fbbdff80d61b2c59fb6b7d144aa46e2d54d9e1b7b0e780e01"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0cb80fd5c2df4898693aa841425ea1727b1b6d2167448253077d2a49003e0ed"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03667cec5daf43ac4995cefa8aaf58f99de036204a37b889c24a80927b629cec"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:047531242f8e9c2db733599f1c612925de095e93c9cc0e599e96cf536aaf56ba"}, + {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5499798317fff7f25dbef9347f4451b91ac2a4330c6669821c8202fd354c7bee"}, + {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bbb5e45eab7624440516ee3722a3044b83fff4c0372efe183fd6ba678ff681fe"}, + {file = "pydantic_core-2.23.3-cp310-none-win32.whl", hash = "sha256:8b5b3ed73abb147704a6e9f556d8c5cb078f8c095be4588e669d315e0d11893b"}, + {file = "pydantic_core-2.23.3-cp310-none-win_amd64.whl", hash = "sha256:2b603cde285322758a0279995b5796d64b63060bfbe214b50a3ca23b5cee3e83"}, + {file = "pydantic_core-2.23.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c889fd87e1f1bbeb877c2ee56b63bb297de4636661cc9bbfcf4b34e5e925bc27"}, + {file = "pydantic_core-2.23.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea85bda3189fb27503af4c45273735bcde3dd31c1ab17d11f37b04877859ef45"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7f7f72f721223f33d3dc98a791666ebc6a91fa023ce63733709f4894a7dc611"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b2b55b0448e9da68f56b696f313949cda1039e8ec7b5d294285335b53104b61"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c24574c7e92e2c56379706b9a3f07c1e0c7f2f87a41b6ee86653100c4ce343e5"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2b05e6ccbee333a8f4b8f4d7c244fdb7a979e90977ad9c51ea31261e2085ce0"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2c409ce1c219c091e47cb03feb3c4ed8c2b8e004efc940da0166aaee8f9d6c8"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d965e8b325f443ed3196db890d85dfebbb09f7384486a77461347f4adb1fa7f8"}, + {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f56af3a420fb1ffaf43ece3ea09c2d27c444e7c40dcb7c6e7cf57aae764f2b48"}, + {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b01a078dd4f9a52494370af21aa52964e0a96d4862ac64ff7cea06e0f12d2c5"}, + {file = "pydantic_core-2.23.3-cp311-none-win32.whl", hash = "sha256:560e32f0df04ac69b3dd818f71339983f6d1f70eb99d4d1f8e9705fb6c34a5c1"}, + {file = "pydantic_core-2.23.3-cp311-none-win_amd64.whl", hash = "sha256:c744fa100fdea0d000d8bcddee95213d2de2e95b9c12be083370b2072333a0fa"}, + {file = "pydantic_core-2.23.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e0ec50663feedf64d21bad0809f5857bac1ce91deded203efc4a84b31b2e4305"}, + {file = "pydantic_core-2.23.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db6e6afcb95edbe6b357786684b71008499836e91f2a4a1e55b840955b341dbb"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98ccd69edcf49f0875d86942f4418a4e83eb3047f20eb897bffa62a5d419c8fa"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a678c1ac5c5ec5685af0133262103defb427114e62eafeda12f1357a12140162"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01491d8b4d8db9f3391d93b0df60701e644ff0894352947f31fff3e52bd5c801"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fcf31facf2796a2d3b7fe338fe8640aa0166e4e55b4cb108dbfd1058049bf4cb"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7200fd561fb3be06827340da066df4311d0b6b8eb0c2116a110be5245dceb326"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc1636770a809dee2bd44dd74b89cc80eb41172bcad8af75dd0bc182c2666d4c"}, + {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:67a5def279309f2e23014b608c4150b0c2d323bd7bccd27ff07b001c12c2415c"}, + {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:748bdf985014c6dd3e1e4cc3db90f1c3ecc7246ff5a3cd4ddab20c768b2f1dab"}, + {file = "pydantic_core-2.23.3-cp312-none-win32.whl", hash = "sha256:255ec6dcb899c115f1e2a64bc9ebc24cc0e3ab097775755244f77360d1f3c06c"}, + {file = "pydantic_core-2.23.3-cp312-none-win_amd64.whl", hash = "sha256:40b8441be16c1e940abebed83cd006ddb9e3737a279e339dbd6d31578b802f7b"}, + {file = "pydantic_core-2.23.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6daaf5b1ba1369a22c8b050b643250e3e5efc6a78366d323294aee54953a4d5f"}, + {file = "pydantic_core-2.23.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d015e63b985a78a3d4ccffd3bdf22b7c20b3bbd4b8227809b3e8e75bc37f9cb2"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3fc572d9b5b5cfe13f8e8a6e26271d5d13f80173724b738557a8c7f3a8a3791"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f6bd91345b5163ee7448bee201ed7dd601ca24f43f439109b0212e296eb5b423"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc379c73fd66606628b866f661e8785088afe2adaba78e6bbe80796baf708a63"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbdce4b47592f9e296e19ac31667daed8753c8367ebb34b9a9bd89dacaa299c9"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3cf31edf405a161a0adad83246568647c54404739b614b1ff43dad2b02e6d5"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e22b477bf90db71c156f89a55bfe4d25177b81fce4aa09294d9e805eec13855"}, + {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0a0137ddf462575d9bce863c4c95bac3493ba8e22f8c28ca94634b4a1d3e2bb4"}, + {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:203171e48946c3164fe7691fc349c79241ff8f28306abd4cad5f4f75ed80bc8d"}, + {file = "pydantic_core-2.23.3-cp313-none-win32.whl", hash = "sha256:76bdab0de4acb3f119c2a4bff740e0c7dc2e6de7692774620f7452ce11ca76c8"}, + {file = "pydantic_core-2.23.3-cp313-none-win_amd64.whl", hash = "sha256:37ba321ac2a46100c578a92e9a6aa33afe9ec99ffa084424291d84e456f490c1"}, + {file = "pydantic_core-2.23.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d063c6b9fed7d992bcbebfc9133f4c24b7a7f215d6b102f3e082b1117cddb72c"}, + {file = "pydantic_core-2.23.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6cb968da9a0746a0cf521b2b5ef25fc5a0bee9b9a1a8214e0a1cfaea5be7e8a4"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edbefe079a520c5984e30e1f1f29325054b59534729c25b874a16a5048028d16"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbaaf2ef20d282659093913da9d402108203f7cb5955020bd8d1ae5a2325d1c4"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb539d7e5dc4aac345846f290cf504d2fd3c1be26ac4e8b5e4c2b688069ff4cf"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e6f33503c5495059148cc486867e1d24ca35df5fc064686e631e314d959ad5b"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04b07490bc2f6f2717b10c3969e1b830f5720b632f8ae2f3b8b1542394c47a8e"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:03795b9e8a5d7fda05f3873efc3f59105e2dcff14231680296b87b80bb327295"}, + {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c483dab0f14b8d3f0df0c6c18d70b21b086f74c87ab03c59250dbf6d3c89baba"}, + {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b2682038e255e94baf2c473dca914a7460069171ff5cdd4080be18ab8a7fd6e"}, + {file = "pydantic_core-2.23.3-cp38-none-win32.whl", hash = "sha256:f4a57db8966b3a1d1a350012839c6a0099f0898c56512dfade8a1fe5fb278710"}, + {file = "pydantic_core-2.23.3-cp38-none-win_amd64.whl", hash = "sha256:13dd45ba2561603681a2676ca56006d6dee94493f03d5cadc055d2055615c3ea"}, + {file = "pydantic_core-2.23.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:82da2f4703894134a9f000e24965df73cc103e31e8c31906cc1ee89fde72cbd8"}, + {file = "pydantic_core-2.23.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dd9be0a42de08f4b58a3cc73a123f124f65c24698b95a54c1543065baca8cf0e"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89b731f25c80830c76fdb13705c68fef6a2b6dc494402987c7ea9584fe189f5d"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c6de1ec30c4bb94f3a69c9f5f2182baeda5b809f806676675e9ef6b8dc936f28"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb68b41c3fa64587412b104294b9cbb027509dc2f6958446c502638d481525ef"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c3980f2843de5184656aab58698011b42763ccba11c4a8c35936c8dd6c7068c"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94f85614f2cba13f62c3c6481716e4adeae48e1eaa7e8bac379b9d177d93947a"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:510b7fb0a86dc8f10a8bb43bd2f97beb63cffad1203071dc434dac26453955cd"}, + {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1eba2f7ce3e30ee2170410e2171867ea73dbd692433b81a93758ab2de6c64835"}, + {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b259fd8409ab84b4041b7b3f24dcc41e4696f180b775961ca8142b5b21d0e70"}, + {file = "pydantic_core-2.23.3-cp39-none-win32.whl", hash = "sha256:40d9bd259538dba2f40963286009bf7caf18b5112b19d2b55b09c14dde6db6a7"}, + {file = "pydantic_core-2.23.3-cp39-none-win_amd64.whl", hash = "sha256:5a8cd3074a98ee70173a8633ad3c10e00dcb991ecec57263aacb4095c5efb958"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f399e8657c67313476a121a6944311fab377085ca7f490648c9af97fc732732d"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6b5547d098c76e1694ba85f05b595720d7c60d342f24d5aad32c3049131fa5c4"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0dda0290a6f608504882d9f7650975b4651ff91c85673341789a476b1159f211"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b6e5da855e9c55a0c67f4db8a492bf13d8d3316a59999cfbaf98cc6e401961"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:09e926397f392059ce0afdcac920df29d9c833256354d0c55f1584b0b70cf07e"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:87cfa0ed6b8c5bd6ae8b66de941cece179281239d482f363814d2b986b79cedc"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e61328920154b6a44d98cabcb709f10e8b74276bc709c9a513a8c37a18786cc4"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce3317d155628301d649fe5e16a99528d5680af4ec7aa70b90b8dacd2d725c9b"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e89513f014c6be0d17b00a9a7c81b1c426f4eb9224b15433f3d98c1a071f8433"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4f62c1c953d7ee375df5eb2e44ad50ce2f5aff931723b398b8bc6f0ac159791a"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2718443bc671c7ac331de4eef9b673063b10af32a0bb385019ad61dcf2cc8f6c"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d90e08b2727c5d01af1b5ef4121d2f0c99fbee692c762f4d9d0409c9da6541"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b676583fc459c64146debea14ba3af54e540b61762dfc0613dc4e98c3f66eeb"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:50e4661f3337977740fdbfbae084ae5693e505ca2b3130a6d4eb0f2281dc43b8"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:68f4cf373f0de6abfe599a38307f4417c1c867ca381c03df27c873a9069cda25"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:59d52cf01854cb26c46958552a21acb10dd78a52aa34c86f284e66b209db8cab"}, + {file = "pydantic_core-2.23.3.tar.gz", hash = "sha256:3cb0f65d8b4121c1b015c60104a685feb929a29d7cf204387c7f2688c7974690"}, ] [package.dependencies] @@ -1826,16 +1827,6 @@ files = [ [package.extras] windows-terminal = ["colorama (>=0.4.6)"] -[[package]] -name = "pygraphviz" -version = "1.13" -description = "Python interface to Graphviz" -optional = false -python-versions = ">=3.10" -files = [ - {file = "pygraphviz-1.13.tar.gz", hash = "sha256:6ad8aa2f26768830a5a1cfc8a14f022d13df170a8f6fdfd68fd1aa1267000964"}, -] - [[package]] name = "pymdown-extensions" version = "10.9" @@ -1894,13 +1885,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-django" -version = "4.8.0" +version = "4.9.0" description = "A Django plugin for pytest." optional = false python-versions = ">=3.8" files = [ - {file = "pytest-django-4.8.0.tar.gz", hash = "sha256:5d054fe011c56f3b10f978f41a8efb2e5adfc7e680ef36fb571ada1f24779d90"}, - {file = "pytest_django-4.8.0-py3-none-any.whl", hash = "sha256:ca1ddd1e0e4c227cf9e3e40a6afc6d106b3e70868fd2ac5798a22501271cd0c7"}, + {file = "pytest_django-4.9.0-py3-none-any.whl", hash = "sha256:1d83692cb39188682dbb419ff0393867e9904094a549a7d38a3154d5731b2b99"}, + {file = "pytest_django-4.9.0.tar.gz", hash = "sha256:8bf7bc358c9ae6f6fc51b6cebb190fe20212196e6807121f11bd6a3b03428314"}, ] [package.dependencies] @@ -2232,13 +2223,13 @@ files = [ [[package]] name = "sentry-sdk" -version = "2.13.0" +version = "2.14.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.13.0-py2.py3-none-any.whl", hash = "sha256:6beede8fc2ab4043da7f69d95534e320944690680dd9a963178a49de71d726c6"}, - {file = "sentry_sdk-2.13.0.tar.gz", hash = "sha256:8d4a576f7a98eb2fdb40e13106e41f330e5c79d72a68be1316e7852cf4995260"}, + {file = "sentry_sdk-2.14.0-py2.py3-none-any.whl", hash = "sha256:b8bc3dc51d06590df1291b7519b85c75e2ced4f28d9ea655b6d54033503b5bf4"}, + {file = "sentry_sdk-2.14.0.tar.gz", hash = "sha256:1e0e2eaf6dad918c7d1e0edac868a7bf20017b177f242cefe2a6bcd47955961d"}, ] [package.dependencies] @@ -2532,13 +2523,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.3" +version = "20.26.4" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, - {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, + {file = "virtualenv-20.26.4-py3-none-any.whl", hash = "sha256:48f2695d9809277003f30776d155615ffc11328e6a0a8c1f0ec80188d7874a55"}, + {file = "virtualenv-20.26.4.tar.gz", hash = "sha256:c17f4e0f3e6036e9f26700446f85c76ab11df65ff6d8a9cbfad9f71aabfcf23c"}, ] [package.dependencies] @@ -2552,41 +2543,41 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "watchdog" -version = "5.0.0" +version = "5.0.2" description = "Filesystem events monitoring" optional = false python-versions = ">=3.9" files = [ - {file = "watchdog-5.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bf3216ec994eabb2212df9861f19056ca0d4cd3516d56cb95801933876519bfe"}, - {file = "watchdog-5.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb59ad83a1700304fc1ac7bc53ae9e5cbe9d60a52ed9bba8e2e2d782a201bb2b"}, - {file = "watchdog-5.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1228cb097e855d1798b550be8f0e9f0cfbac4384f9a3e91f66d250d03e11294e"}, - {file = "watchdog-5.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3c177085c3d210d1c73cb4569442bdaef706ebebc423bd7aed9e90fc12b2e553"}, - {file = "watchdog-5.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:01ab36cddc836a0f202c66267daaef92ba5c17c7d6436deff0587bb61234c5c9"}, - {file = "watchdog-5.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0834c21efa3e767849b09e667274604c7cdfe30b49eb95d794565c53f4db3c1e"}, - {file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1e26f570dd7f5178656affb24d6f0e22ce66c8daf88d4061a27bfb9ac866b40d"}, - {file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d146331e6b206baa9f6dd40f72b5783ad2302c240df68e7fce196d30588ccf7b"}, - {file = "watchdog-5.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6c96b1706430839872a3e33b9370ee3f7a0079f6b828129d88498ad1f96a0f45"}, - {file = "watchdog-5.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:663b096368ed7831ac42259919fdb9e0a1f0a8994d972675dfbcca0225e74de1"}, - {file = "watchdog-5.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:685931412978d00a91a193d9018fc9e394e565e8e7a0c275512a80e59c6e85f8"}, - {file = "watchdog-5.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:109daafc5b0f2a98d1fa9475ff9737eb3559d57b18129a36495e20c71de0b44f"}, - {file = "watchdog-5.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c2b4d90962639ae7cee371ea3a8da506831945d4418eee090c53bc38e6648dc6"}, - {file = "watchdog-5.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e58eafe9cc5ceebe1562cdb89bacdcd0ef470896e8b0139fe677a5abec243da"}, - {file = "watchdog-5.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b8d747bf6d8fe5ce89cb1a36c3724d1599bd4cde3f90fcba518e6260c7058a52"}, - {file = "watchdog-5.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bc16d448a74a929b896ed9578c25756b2125400b19b3258be8d9a681c7ae8e71"}, - {file = "watchdog-5.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7e6b0e9b8a9dc3865d65888b5f5222da4ba9c4e09eab13cff5e305e7b7e7248f"}, - {file = "watchdog-5.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4fe6780915000743074236b21b6c37419aea71112af62237881bc265589fe463"}, - {file = "watchdog-5.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0710e9502727f688a7e06d48078545c54485b3d6eb53b171810879d8223c362a"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:d76efab5248aafbf8a2c2a63cd7b9545e6b346ad1397af8b862a3bb3140787d8"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:ff4e957c45c446de34c513eadce01d0b65da7eee47c01dce472dd136124552c9"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:16c1aa3377bb1f82c5e24277fcbf4e2cac3c4ce46aaaf7212d53caa9076eb7b7"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:22fcad6168fc43cf0e709bd854be5b8edbb0b260f0a6f28f1ea9baa53c6907f7"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:0120b2fa65732797ffa65fa8ee5540c288aa861d91447df298626d6385a24658"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2aa59fab7ff75281778c649557275ca3085eccbdf825a0e2a5ca3810e977afe5"}, - {file = "watchdog-5.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:78db0fe0336958fc0e1269545c980b6f33d04d184ba191b2800a8b71d3e971a9"}, - {file = "watchdog-5.0.0-py3-none-win32.whl", hash = "sha256:d1acef802916083f2ad7988efc7decf07e46e266916c0a09d8fb9d387288ea12"}, - {file = "watchdog-5.0.0-py3-none-win_amd64.whl", hash = "sha256:3c2d50fdb86aa6df3973313272f5a17eb26eab29ff5a0bf54b6d34597b4dc4e4"}, - {file = "watchdog-5.0.0-py3-none-win_ia64.whl", hash = "sha256:1d17ec7e022c34fa7ddc72aa41bf28c9d1207ffb193df18ba4f6fde453725b3c"}, - {file = "watchdog-5.0.0.tar.gz", hash = "sha256:990aedb9e2f336b45a70aed9c014450e7c4a70fd99c5f5b1834d57e1453a177e"}, + {file = "watchdog-5.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d961f4123bb3c447d9fcdcb67e1530c366f10ab3a0c7d1c0c9943050936d4877"}, + {file = "watchdog-5.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72990192cb63872c47d5e5fefe230a401b87fd59d257ee577d61c9e5564c62e5"}, + {file = "watchdog-5.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bec703ad90b35a848e05e1b40bf0050da7ca28ead7ac4be724ae5ac2653a1a0"}, + {file = "watchdog-5.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dae7a1879918f6544201d33666909b040a46421054a50e0f773e0d870ed7438d"}, + {file = "watchdog-5.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c4a440f725f3b99133de610bfec93d570b13826f89616377715b9cd60424db6e"}, + {file = "watchdog-5.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8b2918c19e0d48f5f20df458c84692e2a054f02d9df25e6c3c930063eca64c1"}, + {file = "watchdog-5.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:aa9cd6e24126d4afb3752a3e70fce39f92d0e1a58a236ddf6ee823ff7dba28ee"}, + {file = "watchdog-5.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f627c5bf5759fdd90195b0c0431f99cff4867d212a67b384442c51136a098ed7"}, + {file = "watchdog-5.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7594a6d32cda2b49df3fd9abf9b37c8d2f3eab5df45c24056b4a671ac661619"}, + {file = "watchdog-5.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba32efcccfe2c58f4d01115440d1672b4eb26cdd6fc5b5818f1fb41f7c3e1889"}, + {file = "watchdog-5.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:963f7c4c91e3f51c998eeff1b3fb24a52a8a34da4f956e470f4b068bb47b78ee"}, + {file = "watchdog-5.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8c47150aa12f775e22efff1eee9f0f6beee542a7aa1a985c271b1997d340184f"}, + {file = "watchdog-5.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:14dd4ed023d79d1f670aa659f449bcd2733c33a35c8ffd88689d9d243885198b"}, + {file = "watchdog-5.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b84bff0391ad4abe25c2740c7aec0e3de316fdf7764007f41e248422a7760a7f"}, + {file = "watchdog-5.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e8d5ff39f0a9968952cce548e8e08f849141a4fcc1290b1c17c032ba697b9d7"}, + {file = "watchdog-5.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fb223456db6e5f7bd9bbd5cd969f05aae82ae21acc00643b60d81c770abd402b"}, + {file = "watchdog-5.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9814adb768c23727a27792c77812cf4e2fd9853cd280eafa2bcfa62a99e8bd6e"}, + {file = "watchdog-5.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:901ee48c23f70193d1a7bc2d9ee297df66081dd5f46f0ca011be4f70dec80dab"}, + {file = "watchdog-5.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:638bcca3d5b1885c6ec47be67bf712b00a9ab3d4b22ec0881f4889ad870bc7e8"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:5597c051587f8757798216f2485e85eac583c3b343e9aa09127a3a6f82c65ee8"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:53ed1bf71fcb8475dd0ef4912ab139c294c87b903724b6f4a8bd98e026862e6d"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:29e4a2607bd407d9552c502d38b45a05ec26a8e40cc7e94db9bb48f861fa5abc"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:b6dc8f1d770a8280997e4beae7b9a75a33b268c59e033e72c8a10990097e5fde"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:d2ab34adc9bf1489452965cdb16a924e97d4452fcf88a50b21859068b50b5c3b"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:7d1aa7e4bb0f0c65a1a91ba37c10e19dabf7eaaa282c5787e51371f090748f4b"}, + {file = "watchdog-5.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:726eef8f8c634ac6584f86c9c53353a010d9f311f6c15a034f3800a7a891d941"}, + {file = "watchdog-5.0.2-py3-none-win32.whl", hash = "sha256:bda40c57115684d0216556671875e008279dea2dc00fcd3dde126ac8e0d7a2fb"}, + {file = "watchdog-5.0.2-py3-none-win_amd64.whl", hash = "sha256:d010be060c996db725fbce7e3ef14687cdcc76f4ca0e4339a68cc4532c382a73"}, + {file = "watchdog-5.0.2-py3-none-win_ia64.whl", hash = "sha256:3960136b2b619510569b90f0cd96408591d6c251a75c97690f4553ca88889769"}, + {file = "watchdog-5.0.2.tar.gz", hash = "sha256:dcebf7e475001d2cdeb020be630dc5b687e9acdd60d16fea6bb4508e7b94cf76"}, ] [package.extras] @@ -2635,4 +2626,4 @@ filelock = ">=3.4" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "0041e2ec8f5a4ff1f0fca78bb0d6c5865d0a12a92b9869940c389fd524569ba2" +content-hash = "b6202203d272cecdb607ea8ebc1ba12dd8369e4f387f65692c4a9681915e6f48" diff --git a/pyproject.toml b/pyproject.toml index 6212bcba..2a4329fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,6 @@ django-ordered-model = "^3.7" django-simple-captcha = "^0.6.0" python-dateutil = "^2.8.2" sentry-sdk = "^2.12.0" -pygraphviz = "^1.1" Jinja2 = "^3.1" django-countries = "^7.5.1" dict2xml = "^1.7.3" diff --git a/sith/settings.py b/sith/settings.py index ff7b4dd2..64588ab5 100644 --- a/sith/settings.py +++ b/sith/settings.py @@ -751,6 +751,10 @@ SITH_FRONT_DEP_VERSIONS = { "https://github.com/getsentry/sentry-javascript/": "8.26.0", "https://github.com/jhuckaby/webcamjs/": "1.0.0", "https://github.com/alpinejs/alpine": "3.14.1", + "https://github.com/cytoscape/cytoscape.js": "3.30.2 ", + "https://github.com/cytoscape/cytoscape.js-cxtmenu": "3.5.0", + "https://github.com/cytoscape/cytoscape.js-klay": "3.1.4", + "https://github.com/kieler/klayjs": "0.4.1", # Deprecated, elk should be used but cytoscape-elk is broken "https://github.com/mrdoob/three.js/": "r148", "https://github.com/vasturiano/three-spritetext": "1.6.5", "https://github.com/vasturiano/3d-force-graph/": "1.70.19",