[{"data":1,"prerenderedAt":7229},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fdata-structures\u002Funion-find":374,"course-wordcounts":7097,"ref-card-index":7153},[4,28,50,71,120,152,205,230,286,306,331,352],{"module":5,"moduleNumber":6,"slug":7,"lessons":8},"Foundations",1,"foundations",[9,15,21],{"title":10,"path":11,"lessonNumber":6,"topics":12,"summary":14},"What Is an Algorithm?","\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm",[5,13],"Correctness & Induction","An algorithm is a finite, mechanical recipe that transforms inputs into outputs. We pin down what counts as an algorithm, how we write one down, and the three things we always ask of it: is it correct, is it fast, and can we prove it.\n",{"title":16,"path":17,"lessonNumber":18,"topics":19,"summary":20},"Asymptotic Analysis","\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis",2,[16],"We measure an algorithm's running time as a function of its input size, then strip away machine-specific constants and lower-order terms to compare algorithms cleanly. This lesson defines the RAM model and the $O$, $\\Omega$, $\\Theta$, $o$, and $\\omega$ notations, and shows how to read the cost of loops off the page.\n",{"title":22,"path":23,"lessonNumber":24,"topics":25,"summary":27},"Recurrences and the Master Theorem","\u002Falgorithms\u002Ffoundations\u002Frecurrences",3,[26],"Recurrences","Recursive and divide-and-conquer algorithms describe their own running time with a recurrence: $T(n)$ in terms of $T$ on smaller inputs. We solve recurrences three ways — drawing the recursion tree, guessing-and-verifying by induction, and applying the Master Theorem — using merge sort as the running example.\n",{"module":29,"moduleNumber":18,"slug":30,"lessons":31},"Divide & Conquer","divide-and-conquer",[32,38,44],{"title":33,"path":34,"lessonNumber":6,"topics":35,"summary":37},"Divide and Conquer & Mergesort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort",[29,36],"Comparison Sorting","Divide and conquer breaks a problem into smaller copies of itself, solves them recursively, and stitches the answers together. We meet the paradigm through mergesort — its merge step, its loop-invariant proof, and the recursion tree that pins its cost at $\\Theta(n\\log n)$ — then glimpse Karatsuba multiplication as a second example of the same idea.",{"title":39,"path":40,"lessonNumber":18,"topics":41,"summary":43},"Quicksort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort",[36,42],"Probabilistic Analysis","Quicksort sorts in place by partitioning around a pivot and recursing on each side. We give Lomuto and Hoare partitioning with a correctness invariant, see why a bad pivot costs $\\Theta(n^2)$ while a balanced one gives $\\Theta(n\\log n)$, and prove that randomizing the pivot makes the expected cost $\\Theta(n\\log n)$ on every input.",{"title":45,"path":46,"lessonNumber":24,"topics":47,"summary":49},"Linear-Time Selection","\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection",[48,29],"Order Statistics","Finding the $k$-th smallest element looks like it should require sorting, but it does not. Quickselect adapts quicksort's partition to recurse on just one side, achieving expected $O(n)$. The median-of-medians algorithm guarantees a good pivot with the groups-of-five trick, pushing the worst case down to a provable $O(n)$.",{"module":51,"moduleNumber":24,"slug":52,"lessons":53},"Sorting & Order Statistics","sorting",[54,60,65],{"title":55,"path":56,"lessonNumber":6,"topics":57,"summary":59},"Heaps and Heapsort","\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort",[58,36],"Heaps","A binary heap is a tree we store flat in an array, with index arithmetic standing in for pointers. We build the max-heap property bottom-up in $O(n)$ time, sort in place in $\\Theta(n\\log n)$ by repeatedly extracting the maximum, and reuse the same structure to implement a priority queue.",{"title":61,"path":62,"lessonNumber":18,"topics":63,"summary":64},"Lower Bounds for Comparison Sorting","\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds",[36],"Every sort we have seen runs in $\\Omega(n\\log n)$, and that is no accident. Modeling a sort as a decision tree of comparisons, we show any such tree must have $n!$ leaves, forcing height $\\ge \\log_2(n!) = \\Omega(n\\log n)$ — a worst-case bound no comparison sort can ever beat.",{"title":66,"path":67,"lessonNumber":24,"topics":68,"summary":70},"Sorting in Linear Time","\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting",[69],"Linear-Time Sorting","The $\\Omega(n\\log n)$ barrier only binds algorithms that compare. By instead using keys as array indices we slip past it: counting sort runs in $\\Theta(n+k)$ and is stable, radix sort layers it digit by digit, and bucket sort averages $\\Theta(n)$ on uniform data. We see exactly when each applies.",{"module":72,"moduleNumber":73,"slug":74,"lessons":75},"Data Structures",4,"data-structures",[76,82,88,93,99,105,113],{"title":77,"path":78,"lessonNumber":6,"topics":79,"summary":81},"Elementary Data Structures","\u002Falgorithms\u002Fdata-structures\u002Felementary-structures",[80],"Linear Structures","Every container is built one of two ways: **contiguous** in an array, or **linked** through pointers. We trade cache-friendly random access against $O(1)$ splicing, derive the **amortized $O(1)$** append of a doubling dynamic array, and assemble the two ordered access disciplines — the LIFO **stack** and the FIFO **queue** (with its generalization, the **deque**) — on top of both.",{"title":83,"path":84,"lessonNumber":18,"topics":85,"summary":87},"Hash Tables","\u002Falgorithms\u002Fdata-structures\u002Fhash-tables",[86],"Hashing","A hash table implements the dictionary — insert, search, delete — in expected $O(1)$ time by scattering keys across an array with a hash function. We build up from direct addressing, handle collisions by chaining and by open addressing, analyze the load factor $\\alpha$, and see how universal hashing earns its expected-time guarantee against every input.",{"title":89,"path":90,"lessonNumber":24,"topics":91,"summary":92},"Binary Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees",[89],"A binary search tree keeps keys ordered so that every operation follows a single root-to-leaf path. We state the BST property, give search and insert, find minimum, maximum, and successor, see that an inorder walk emits the keys in sorted order, and confront the catch — every operation costs $O(h)$, and a carelessly built tree degrades to height $h = \\Theta(n)$, motivating balance.",{"title":94,"path":95,"lessonNumber":73,"topics":96,"summary":98},"AVL Trees","\u002Falgorithms\u002Fdata-structures\u002Favl-trees",[97],"Balanced Trees","An AVL tree is the first balanced BST: at every node the two subtrees' heights differ by at most $1$. A Fibonacci-style minimal-node argument forces height $h \\le 1.44\\log_2 n = O(\\log n)$, so search, insert, and delete are all $O(\\log n)$. Insertion rebalances with at most one of four rotation cases (LL, RR, LR, RL); deletion may rotate all the way to the root.",{"title":100,"path":101,"lessonNumber":102,"topics":103,"summary":104},"Balanced Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees",5,[97],"An ordinary BST can degrade to height $\\Theta(n)$; balanced search trees guarantee $h = O(\\log n)$ by maintaining invariants and repairing them after every update. We meet rotations, the local restructuring primitive, then red-black trees, whose color invariants force logarithmic height, and finally B-trees, which trade tall-and-thin for short-and-wide to win on disk.",{"title":106,"path":107,"lessonNumber":108,"topics":109,"summary":112},"Disjoint Sets (Union-Find)","\u002Falgorithms\u002Fdata-structures\u002Funion-find",6,[110,111],"Disjoint Sets","Amortized Analysis","The disjoint-set data structure tracks a partition of elements into groups, answering \"are these two in the same group?\" and merging groups on demand. A forest of parent pointers, sped up by union by rank and path compression, drives every operation to near-constant $O(\\alpha(n))$ amortized time — the engine behind connectivity queries and Kruskal's minimum spanning tree.",{"title":114,"path":115,"lessonNumber":116,"topics":117,"summary":119},"Fenwick & Segment Trees","\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees",7,[118],"Range Queries","A prefix-sum array answers a range sum in $O(1)$ but pays $O(n)$ per update; a plain array updates in $O(1)$ but pays $O(n)$ per range sum. Fenwick and segment trees give us _both_ in $O(\\log n)$. The Fenwick (binary indexed) tree is a tiny array keyed by the low bit; the segment tree is a general balanced tree over canonical ranges that handles any associative aggregate and, with lazy propagation, range updates too.",{"module":121,"moduleNumber":102,"slug":122,"lessons":123},"Sequences & Strings","sequences",[124,130,135,141,147],{"title":125,"path":126,"lessonNumber":6,"topics":127,"summary":129},"Two Pointers, Sliding Windows & Prefix Sums","\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows",[128],"Array Techniques","A family of array idioms that collapse an obvious $O(n^2)$ scan into a single $O(n)$ pass by maintaining an invariant as indices move. We meet two pointers (converging on a sorted array, and a fast\u002Fslow pair for in-place rewriting), the sliding window (fixed and variable size, amortized $O(n)$), and prefix sums, which answer any range-sum in $O(1)$ and count subarrays summing to $k$.",{"title":131,"path":132,"lessonNumber":18,"topics":133,"summary":134},"Monotonic Stacks & Queues","\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks",[128],"A **monotonic stack** keeps its contents sorted by popping every element that would break the order before each push — turning a family of \"previous\u002Fnext greater (or smaller) element\" questions into a single $O(n)$ scan. We derive the next-greater-element routine and its amortized analysis, fuse two such scans to measure the **largest rectangle in a histogram** in linear time, and extend the idea to a **monotonic deque** that streams the **sliding-window maximum** in $O(n)$.",{"title":136,"path":137,"lessonNumber":24,"topics":138,"summary":140},"Binary Search on the Answer","\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer",[139],"Searching","Binary search is not really about arrays — it is about locating the boundary of a **monotone predicate** $p(x)$ in $O(\\log(\\text{range}))$ probes. We first pin down the half-open `while (lo \u003C hi)` template for $\\textsc{lower\\_bound}$ and $\\textsc{upper\\_bound}$, then generalize to \"binary search on the answer\": whenever feasibility is monotone in a numeric parameter, we binary search the parameter itself, calling a feasibility check at each step.",{"title":142,"path":143,"lessonNumber":73,"topics":144,"summary":146},"String Matching: Rabin–Karp, KMP & Z","\u002Falgorithms\u002Fsequences\u002Fstring-matching",[145],"Strings","Given a text $T$ of length $n$ and a pattern $P$ of length $m$, find every occurrence of $P$ in $T$. The naive scan costs $O(nm)$; we beat it three ways. Rabin–Karp uses a **rolling hash** to test alignments in $O(1)$ amortised each, with expected $O(n+m)$. KMP precomputes a **failure function** so the scan never re-reads a text character, for worst-case $O(n+m)$. The **Z-function** gives the same bound from a different angle and converts freely to KMP's table.",{"title":148,"path":149,"lessonNumber":102,"topics":150,"summary":151},"Tries & Prefix Trees","\u002Falgorithms\u002Fsequences\u002Ftries",[145],"A **trie** stores a set of strings in a tree keyed by _characters_, so that insert, search, and prefix-test all run in $O(L)$ time — the length of the key, _independent of how many keys are stored_. Shared prefixes are stored once, which makes tries the natural structure for autocomplete, wildcard dictionaries, board word-search, and — over the alphabet $\\{0,1\\}$ — the maximum-XOR-pair problem.",{"module":153,"moduleNumber":108,"slug":154,"lessons":155},"Graphs","graphs",[156,163,168,173,178,183,188,193,199],{"title":157,"path":158,"lessonNumber":6,"topics":159,"summary":162},"Graph Representations and Traversal","\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal",[160,161],"Graph Representations","Graph Traversal","A graph captures _relationships_ — who connects to whom. We fix the vocabulary, weigh the two standard representations (adjacency list versus matrix), then meet the two explorations you'll use constantly: breadth-first search, which finds shortest paths by number of edges, and depth-first search, whose discovery and finish times reveal a graph's hidden structure. Both run in $O(V + E)$.",{"title":164,"path":165,"lessonNumber":18,"topics":166,"summary":167},"Topological Sort and Strong Connectivity","\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc",[161],"Directed acyclic graphs model dependencies: tasks that must precede other tasks. A _topological order_ lays such a graph out in a line so every edge points forward, and depth-first finish times hand it to us almost for free. We then ask the harder question for graphs _with_ cycles: which vertices can reach each other? The answer is the strongly connected components, found by a two-pass DFS.",{"title":169,"path":170,"lessonNumber":24,"topics":171,"summary":172},"Minimum Spanning Trees","\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees",[169],"Given a weighted network, how do we connect everything as cheaply as possible? The answer is a minimum spanning tree. One lemma, the cut property, justifies _every_ correct MST algorithm, and from it two famous greedy methods fall out: Kruskal's, which grows a forest edge by edge with a union-find structure, and Prim's, which grows a single tree using a priority queue.",{"title":174,"path":175,"lessonNumber":73,"topics":176,"summary":177},"Shortest Paths","\u002Falgorithms\u002Fgraphs\u002Fshortest-paths",[174],"Finding the cheapest route through a weighted network is one of the most-used algorithms in computing. A single operation — _relaxation_ — underlies them all. Dijkstra's algorithm solves the non-negative case greedily; Bellman-Ford handles negative edges and detects negative cycles; and Floyd-Warshall finds the shortest path between _every_ pair of vertices.",{"title":179,"path":180,"lessonNumber":102,"topics":181,"summary":182},"Network Flow","\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow",[179],"How much can flow through a network from source to sink? Max-flow is a surprisingly general model — once you see a problem as flow, a whole toolbox opens up. We build flow networks, find maximum flows by repeatedly pushing along augmenting paths in the residual graph, prove the max-flow min-cut theorem, and watch bipartite matching fall out as a special case.",{"title":184,"path":185,"lessonNumber":108,"topics":186,"summary":187},"Bridges & Articulation Points","\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points",[153],"A **bridge** is an edge whose removal disconnects the graph; an **articulation point** is a vertex whose removal does. Both are single points of failure in a network. A single depth-first search computes discovery times and **low-links**, and two local criteria — $low[v] > disc[u]$ for bridges, $low[v] \\ge disc[u]$ for cut vertices — find them all in $O(V+E)$.",{"title":189,"path":190,"lessonNumber":116,"topics":191,"summary":192},"Lowest Common Ancestor & Binary Lifting","\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor",[153],"Given a rooted tree, the lowest common ancestor of $u$ and $v$ is the deepest node that is an ancestor of both. A naive walk answers one query in $O(h)$; **binary lifting** precomputes the $2^k$-th ancestor of every node in $O(n\\log n)$, then answers $k$-th-ancestor and LCA queries in $O(\\log n)$ each. We derive both jumps, apply them to tree distance, and compare against the Euler-tour + RMQ and Tarjan offline alternatives.",{"title":194,"path":195,"lessonNumber":196,"topics":197,"summary":198},"2-SAT via Implication Graphs","\u002Falgorithms\u002Fgraphs\u002Ftwo-sat",8,[153],"A boolean formula whose every clause has exactly two literals can be solved in _linear_ time — even though its three-literal cousin is NP-complete. The trick is to read each clause as a pair of implications, build a directed graph on the $2n$ literals, and ask a question we already know how to answer: which literals share a strongly connected component? The formula is satisfiable iff no variable lands in the same SCC as its own negation, and the SCCs' topological order hands us a satisfying assignment for free.",{"title":200,"path":201,"lessonNumber":202,"topics":203,"summary":204},"Eulerian Tours","\u002Falgorithms\u002Fgraphs\u002Feulerian-tours",9,[153],"An **Eulerian tour** uses every _edge_ of a graph exactly once. We give the exact parity and balance conditions under which one exists (even degree for undirected graphs, in-degree equal to out-degree for directed) and Hierholzer's $O(E)$ algorithm that constructs one by splicing closed sub-tours. We contrast this sharply with the **Hamiltonian** problem (visit every _vertex_ once), which is NP-complete: visiting edges is easy, visiting vertices is hard.",{"module":206,"moduleNumber":116,"slug":207,"lessons":208},"Greedy Algorithms","greedy",[209,214,220,225],{"title":210,"path":211,"lessonNumber":6,"topics":212,"summary":213},"The Greedy Method","\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method",[206],"A greedy algorithm builds a solution one locally-best choice at a time and never looks back. We pin down the two properties that make this work — the greedy-choice property and optimal substructure — prove the canonical activity-selection algorithm correct with an exchange argument, watch greedy fail spectacularly on the 0\u002F1 knapsack, and glimpse matroids as the theory that says exactly when greed is good.",{"title":215,"path":216,"lessonNumber":18,"topics":217,"summary":219},"Scheduling & Interval Partitioning","\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals",[218],"Greedy","Three classic scheduling problems all yield to greedy algorithms — and all three turn on a single design decision: which key to sort by. Interval scheduling sorts by **finish** time to pack the most compatible jobs; interval partitioning sorts by **start** time and proves the rooms needed equal the maximum overlap **depth**; minimizing maximum lateness sorts by **deadline** and is justified by an adjacent-swap exchange argument.",{"title":221,"path":222,"lessonNumber":24,"topics":223,"summary":224},"Huffman Codes","\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes",[206],"Huffman coding is the greedy method's most beautiful application: it builds a provably optimal prefix-free binary code by repeatedly merging the two least frequent symbols. We develop prefix-free codes as binary trees, give the algorithm with a priority queue, build a Huffman tree from example frequencies, prove optimality with the same greedy-choice-plus-substructure argument, and pin the running time at $O(n\\log n)$.",{"title":226,"path":227,"lessonNumber":73,"topics":228,"summary":229},"Matroids & Exchange Arguments","\u002Falgorithms\u002Fgreedy\u002Fmatroids",[218],"The capstone of the greedy module: _why_ and _when_ a greedy algorithm is provably optimal. We recap the two correctness templates — **greedy-stays-ahead** and the **exchange argument** — then meet the **matroid** $M=(S,\\mathcal{I})$, an abstraction whose **exchange property** is exactly the structure greedy needs. The matroid–greedy theorem says sorting by weight and taking what stays independent yields a maximum-weight basis _if and only if_ the structure is a matroid. Kruskal's MST is the canonical instance; 0\u002F1 knapsack and TSP are the canonical failures.",{"module":231,"moduleNumber":196,"slug":232,"lessons":233},"Dynamic Programming","dynamic-programming",[234,239,245,250,255,260,265,270,275,280],{"title":235,"path":236,"lessonNumber":6,"topics":237,"summary":238},"Principles of Dynamic Programming","\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples",[231,26],"Dynamic programming is recursion with memory: when a recursive solution re-solves the same subproblems again and again, we solve each one once and store the answer. We pin down the two structural conditions that make this work — overlapping subproblems and optimal substructure — contrast top-down memoization with bottom-up tabulation, and distil the whole method into a five-step recipe.",{"title":240,"path":241,"lessonNumber":18,"topics":242,"summary":244},"Sequence Alignment & LCS","\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp",[231,243],"String Structures","Two strings can be compared by asking how much of one survives inside the other. The longest common subsequence (LCS) and edit distance are the two classic answers, and they are the _same_ dynamic program wearing different costs. We derive the LCS recurrence by examining the last characters, fill a worked DP table, reconstruct the subsequence, and then show edit distance as the identical $\\Theta(mn)$ pattern.",{"title":246,"path":247,"lessonNumber":24,"topics":248,"summary":249},"Longest Increasing Subsequence","\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence",[231],"Given a sequence of numbers, how long is its longest strictly increasing subsequence? A first dynamic program indexes subproblems by the element each subsequence _ends at_, giving an $O(n^2)$ solution with parent-pointer reconstruction. A sharper idea, the patience-sorting _tails_ array searched by binary search, drops the time to $O(n\\log n)$. We then fold in the variants: non-decreasing, counting, Russian-doll envelopes, and bitonic.",{"title":251,"path":252,"lessonNumber":73,"topics":253,"summary":254},"Knapsack & Subset Problems","\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack",[231],"We start from $\\textsc{Subset-sum}$ — does some sublist hit a target $t$? — and its include\u002Fexclude recurrence over a boolean table $A(i, u)$, then bolt on values to get 0\u002F1 knapsack as the same machine with $\\lor$ promoted to $\\max$. We fill both tables, recover the chosen items, and confront the surprise that the $\\Theta(nt)$ running time is only _pseudo-polynomial_ — exponential in the bit length $b$, and unimprovable unless $\\mathrm{P}=\\mathrm{NP}$ since subset-sum is $\\textsc{NP-complete}$. The fractional variant reveals the sharp line between greedy and dynamic programming.",{"title":256,"path":257,"lessonNumber":102,"topics":258,"summary":259},"Coin Change & Unbounded Knapsack","\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded",[231],"The previous lesson let each item be taken at most once. Drop that cap — items may be reused _any number of times_ — and the 0\u002F1 knapsack collapses from a two-dimensional table to a one-dimensional one, because there is no longer a prefix of \"already-used\" items to track. We meet **unbounded knapsack**, then its most famous instance, **coin change**: the minimum-coins recurrence $C[a] = 1 + \\min_c C[a-c]$, and the counting variant where the _order of the loops_ decides whether you count unordered combinations or ordered sequences — the classic bug. Greed fails in general but works for canonical coin systems.",{"title":261,"path":262,"lessonNumber":108,"topics":263,"summary":264},"Interval DP","\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp",[231],"Many problems ask for the best way to combine a contiguous range of items, and the answer is a dynamic program over subintervals $[i,j]$ that chooses a split point $k$. We derive the pattern from matrix-chain multiplication — parenthesising a product to minimize scalar multiplications in $O(n^3)$ — distil it into a reusable template filled by increasing interval length, and then meet its sharpest variant: the \"last operation\" trick behind Burst Balloons and cutting a stick, where fixing the _last_ move (not the first) makes the two sides independent.",{"title":266,"path":267,"lessonNumber":116,"topics":268,"summary":269},"Dynamic Programming on Trees","\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp",[231],"When the subproblems of a dynamic program are _rooted subtrees_, a single post-order DFS solves the whole thing in $O(n)$: each node combines the already-computed answers of its children. We meet the archetype — maximum-weight independent set on a tree — then the \"path through a node\" pattern behind tree diameter and maximum path sum, and finally **rerooting**, which computes a per-node answer for _every_ node as root in $O(n)$ with two passes.",{"title":271,"path":272,"lessonNumber":196,"topics":273,"summary":274},"Bitmask DP","\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp",[231],"When a subproblem depends not on an index or a prefix but on _which subset_ of a small ground set has been used, we can encode that subset as the bits of an integer and index a DP table by it. With $n \\le \\sim 20$ the $2^n$ subsets fit in a table, turning $\\Theta(n!)$ brute force into $O(2^n \\cdot \\text{poly}(n))$. We meet the bit tricks, the Held–Karp TSP archetype, assignment by mask, subset-sum partitioning, and submask enumeration with its $3^n$ bound.",{"title":276,"path":277,"lessonNumber":202,"topics":278,"summary":279},"DP Optimizations","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations",[231],"A correct DP recurrence is only half the battle; its naive evaluation is often a factor of $n$ slower than necessary. This capstone surveys five techniques, monotonic-queue, the convex hull trick, divide-and-conquer optimization, Knuth's optimization, and SOS DP, that each exploit _structure in the transition_ (a sliding window, linear costs, monotone optimal splits, the quadrangle inequality, or subset lattices) to shave an $O(n)$, $O(\\log n)$, or worse factor off the running time.",{"title":281,"path":282,"lessonNumber":283,"topics":284,"summary":285},"Dynamic Programming on Graphs","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs",10,[231],"Many graph algorithms are dynamic programs in disguise: the subproblem is the _best value reachable under a restricted resource_ — intermediate vertices allowed, edges allowed, or a topological prefix — and edge _relaxation_ is the DP transition. We frame Floyd–Warshall as the archetype ($O(V^3)$ all-pairs shortest paths), Bellman–Ford as a DP over path length (the at-most-$K$-stops variant), DAG-DP in topological order ($O(V+E)$), and Warshall's transitive closure as the boolean analog.",{"module":287,"moduleNumber":202,"slug":288,"lessons":289},"Backtracking & Search","backtracking",[290,296,301],{"title":291,"path":292,"lessonNumber":6,"topics":293,"summary":295},"Backtracking: Subsets, Permutations & Combinations","\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals",[294],"Backtracking","Backtracking builds a solution one choice at a time and abandons a partial solution the moment it cannot be completed, exploring a state-space tree by depth-first search. We meet the universal choose\u002Fexplore\u002Fun-choose template, derive the canonical enumerations — subsets ($2^n$), permutations ($n!$), and combinations ($\\binom{n}{k}$) — handle duplicate elements by skipping equal siblings, and see how pruning turns an exponential search into a tractable one.",{"title":297,"path":298,"lessonNumber":18,"topics":299,"summary":300},"Constraint Search: N-Queens & Sudoku","\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search",[294],"Many hard puzzles are **constraint satisfaction problems**: assign each variable a value from its domain so that every constraint holds. Backtracking solves them by assigning variables one at a time and rejecting a partial assignment the instant a constraint breaks. We make the rejection cheap — $O(1)$ conflict checks for N-Queens via column and diagonal sets — and prune harder with **forward checking**, **MRV** ordering, and **constraint propagation**, which is what lets an exponential search actually finish.",{"title":302,"path":303,"lessonNumber":24,"topics":304,"summary":305},"Branch & Bound and Meet in the Middle","\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound",[294],"Plain backtracking prunes a search tree by _feasibility_; for _optimization_ problems we can prune far more aggressively by _value_. **Branch and bound** keeps the best complete solution found so far and discards any partial solution whose optimistic bound cannot beat it. **Meet in the middle** splits the instance in two, enumerates each half, and recombines by binary search — turning $2^n$ into $O(2^{n\u002F2}\\,n)$ and pushing exact search out to $n \\approx 40$.",{"module":307,"moduleNumber":283,"slug":308,"lessons":309},"Mathematical Algorithms","mathematical-algorithms",[310,316,321,326],{"title":311,"path":312,"lessonNumber":6,"topics":313,"summary":315},"Number Theory: GCD & Modular Arithmetic","\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics",[314],"Number Theory","This lesson opens the mathematical-algorithms module with the bedrock of computational number theory. We prove Euclid's recurrence $\\gcd(a,b)=\\gcd(b,\\,a\\bmod b)$ and its $O(\\log\\min(a,b))$ running time, extend it to recover Bézout coefficients $x,y$ with $ax+by=\\gcd(a,b)$, and build modular arithmetic on residue classes — including when a modular inverse $a^{-1}\\bmod m$ exists and how to compute it.",{"title":317,"path":318,"lessonNumber":18,"topics":319,"summary":320},"Modular Exponentiation & Primality","\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality",[314],"Computing $a^n \\bmod m$ naively costs $n$ multiplications; **repeated squaring** does it in $O(\\log n)$ by reading the bits of the exponent. We use this routine to state **Fermat's little theorem** (and the modular inverse it gives), then to test primality — trial division, the probabilistic **Fermat** and **Miller–Rabin** tests, and the deterministic witness set that settles primality for every 64-bit number.",{"title":322,"path":323,"lessonNumber":24,"topics":324,"summary":325},"Sieves & Factorization","\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization",[314],"The previous lesson tested one number for primality; here we ask for _all_ primes up to $n$ at once. The **sieve of Eratosthenes** cross-cuts composites in $O(n\\log\\log n)$, and a **linear sieve** does it in $O(n)$ while recording each number's **smallest prime factor**, which then factors any $x \\le n$ in $O(\\log x)$. From a factorization $x = \\prod p_i^{e_i}$ the multiplicative functions $\\tau$, $\\sigma$, and Euler's totient $\\varphi$ fall out immediately.",{"title":327,"path":328,"lessonNumber":73,"topics":329,"summary":330},"Combinatorics & Counting","\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics",[314],"Counting is the arithmetic of finite sets. We build up from permutations $n!$ and combinations $\\binom{n}{k}$, prove Pascal's rule by a bijection, and count multisets with stars and bars. The practical core is computing $\\binom{n}{k}\\bmod p$ in $O(1)$ from precomputed factorials and inverse factorials. We close with inclusion–exclusion and the Chinese Remainder Theorem, both of which lean on the modular inverse from the previous lesson.",{"module":332,"moduleNumber":333,"slug":334,"lessons":335},"Computational Geometry",11,"computational-geometry",[336,342,347],{"title":337,"path":338,"lessonNumber":6,"topics":339,"summary":341},"Geometric Primitives & Orientation","\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives",[340],"Geometry","Computational geometry is built on a single reliable primitive — the **orientation test**, a sign of a cross product that tells whether three points turn left, right, or lie collinear. From points-as-vectors and the dot and cross products we derive orientation, segment intersection, the shoelace area formula, and point-in-polygon tests, keeping all arithmetic **exact and integer** so that no floating-point rounding can corrupt a sign.",{"title":343,"path":344,"lessonNumber":18,"topics":345,"summary":346},"Convex Hull","\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull",[340],"The convex hull is the smallest convex polygon enclosing a point set — the rubber band snapped around the nails. We build it with Andrew's monotone chain, sorting by $(x,y)$ and sweeping a lower and upper hull while popping any non-left turn via the orientation primitive, in $O(n\\log n)$. A reduction from sorting shows that bound is optimal, and the hull unlocks diameter, smallest enclosing rectangle, and more through rotating calipers.",{"title":348,"path":349,"lessonNumber":24,"topics":350,"summary":351},"Sweep-Line Algorithms","\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line",[340],"The plane-sweep paradigm turns a static $2$-D geometry problem into a dynamic $1$-D ordered-set problem: a vertical line sweeps left to right, stopping at an $x$-sorted **event queue** while a balanced-BST **status structure** tracks the objects it currently crosses, ordered by $y$. We derive Bentley–Ottmann segment intersection in $O((n+k)\\log n)$, recover closest-pair in $O(n\\log n)$, and reduce skyline, rectangle-area, and overlap problems to $\\pm1$ event sweeps.",{"module":353,"moduleNumber":354,"slug":355,"lessons":356},"Intractability",12,"intractability",[357,363,367],{"title":358,"path":359,"lessonNumber":6,"topics":360,"summary":362},"P, NP, and Reductions","\u002Falgorithms\u002Fintractability\u002Fp-np-reductions",[361],"NP-Completeness","Most problems we have met so far have fast algorithms. A vast and important family seemingly does not. This lesson builds the vocabulary for that divide: decision problems, the class $\\mathsf{P}$ of problems we can solve quickly, the class $\\mathsf{NP}$ of problems whose solutions we can _check_ quickly, and polynomial-time reductions, the tool that lets us compare the difficulty of two problems without solving either.",{"title":361,"path":364,"lessonNumber":18,"topics":365,"summary":366},"\u002Falgorithms\u002Fintractability\u002Fnp-completeness",[361],"Some problems in $\\mathsf{NP}$ are universally hardest: every other problem in $\\mathsf{NP}$ reduces to them. This lesson defines $\\mathsf{NP}$-hard and $\\mathsf{NP}$-complete, states the Cook–Levin theorem that anchors the whole edifice on **SAT**, walks the web of reductions that grows from it, and gives the four-step recipe for proving a brand-new problem $\\mathsf{NP}$-complete.",{"title":368,"path":369,"lessonNumber":24,"topics":370,"summary":373},"Coping with NP-Hardness","\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness",[371,372],"Approximation","Heuristics","Proving a problem $\\mathsf{NP}$-hard is the beginning, not the end. The world still needs answers. This lesson surveys the four honest responses to hardness: approximation algorithms with a provable ratio (worked through a 2-approximation for vertex cover), heuristics and local search, exact exponential methods like branch and bound, and exploiting special structure in the instances you actually face.",{"id":375,"title":106,"blurb":376,"body":377,"description":7057,"extension":7058,"meta":7059,"module":72,"navigation":7061,"path":107,"practice":7062,"rawbody":7079,"readingTime":7080,"seo":7085,"sources":7086,"status":7093,"stem":7094,"summary":112,"topics":7095,"__hash__":7096},"course\u002F01.algorithms\u002F04.data-structures\u002F06.union-find.md","",{"type":378,"value":379,"toc":7045},"minimark",[380,466,671,676,879,1099,1277,1281,1307,1417,1580,1635,1701,1708,1904,1952,2001,2092,2323,2427,2433,2788,2792,2810,2969,3412,3481,3593,3915,3919,3986,4135,4343,4368,4378,4382,4389,4551,4786,4943,4947,4950,5203,5285,5778,5833,6226,6490,6504,6508,6942,7041],[381,382,383,384,388,389,393,394,398,399,402,403,406,407,410,411,414,415,425,426,465],"p",{},"Some problems keep a collection of items partitioned into ",[385,386,387],"strong",{},"disjoint groups","\nthat only ever ",[390,391,392],"em",{},"merge",", never split, and repeatedly ask whether two items\ncurrently share a group. Are these two cities on the same electrical grid? Do\nthese two pixels belong to the same connected region? Does adding this edge to a\n",[395,396,397],"a",{"href":158},"graph"," create a cycle? The ",[385,400,401],{},"disjoint-set"," (or ",[385,404,405],{},"union-find",") data structure\nanswers exactly these questions, and does so in ",[390,408,409],{},"near-constant"," ",[395,412,413],{"href":17},"amortized"," time\nper operation",[416,417,418],"sup",{},[395,419,424],{"href":420,"ariaDescribedBy":421,"dataFootnoteRef":376,"id":423},"#user-content-fn-clrs-djs",[422],"footnote-label","user-content-fnref-clrs-djs","1",", slow-growing enough that for every input you will ever see, it is\neffectively ",[427,428,431],"span",{"className":429},[430],"katex",[427,432,436],{"className":433,"ariaHidden":435},[434],"katex-html","true",[427,437,440,445,452,457,460],{"className":438},[439],"base",[427,441],{"className":442,"style":444},[443],"strut","height:1em;vertical-align:-0.25em;",[427,446,451],{"className":447,"style":450},[448,449],"mord","mathnormal","margin-right:0.0278em;","O",[427,453,456],{"className":454},[455],"mopen","(",[427,458,424],{"className":459},[448],[427,461,464],{"className":462},[463],"mclose",")",".",[381,467,468,469,472,473,476,477,524,525,410,549,575,576,636,637,640,641,644,645,670],{},"There is a recurring lesson in the design of efficient algorithms: ",[385,470,471],{},"the right\ndata structure is what makes an algorithm fast."," Dijkstra's and Prim's shortest-\npath and MST algorithms are correct with any priority queue, but their ",[390,474,475],{},"speed","\nhinges on the queue: a binary heap gives ",[427,478,480],{"className":479},[430],[427,481,483],{"className":482,"ariaHidden":435},[434],[427,484,486,489,492,495,499,504,514,517,521],{"className":485},[439],[427,487],{"className":488,"style":444},[443],[427,490,451],{"className":491,"style":450},[448,449],[427,493,456],{"className":494},[455],[427,496,498],{"className":497},[448,449],"m",[427,500],{"className":501,"style":503},[502],"mspace","margin-right:0.1667em;",[427,505,508],{"className":506},[507],"mop",[427,509,513],{"className":510,"style":512},[448,511],"mathrm","margin-right:0.0139em;","log",[427,515],{"className":516,"style":503},[502],[427,518,520],{"className":519},[448,449],"n",[427,522,464],{"className":523},[463],", while a Fibonacci heap (with\namortized ",[427,526,528],{"className":527},[430],[427,529,531],{"className":530,"ariaHidden":435},[434],[427,532,534,537,540,543,546],{"className":533},[439],[427,535],{"className":536,"style":444},[443],[427,538,451],{"className":539,"style":450},[448,449],[427,541,456],{"className":542},[455],[427,544,424],{"className":545},[448],[427,547,464],{"className":548},[463],[427,550,552],{"className":551},[430],[427,553,555],{"className":554,"ariaHidden":435},[434],[427,556,558,562],{"className":557},[439],[427,559],{"className":560,"style":561},[443],"height:0.8778em;vertical-align:-0.1944em;",[427,563,567],{"className":564},[565,566],"enclosing","textsc",[427,568,571],{"className":569},[448,570],"text",[427,572,574],{"className":573},[448],"Decrease-Key",") shaves it toward ",[427,577,579],{"className":578},[430],[427,580,582,609],{"className":581,"ariaHidden":435},[434],[427,583,585,588,591,594,597,601,606],{"className":584},[439],[427,586],{"className":587,"style":444},[443],[427,589,451],{"className":590,"style":450},[448,449],[427,592,456],{"className":593},[455],[427,595,498],{"className":596},[448,449],[427,598],{"className":599,"style":600},[502],"margin-right:0.2222em;",[427,602,605],{"className":603},[604],"mbin","+",[427,607],{"className":608,"style":600},[502],[427,610,612,615,618,621,627,630,633],{"className":611},[439],[427,613],{"className":614,"style":444},[443],[427,616,520],{"className":617},[448,449],[427,619],{"className":620,"style":503},[502],[427,622,624],{"className":623},[507],[427,625,513],{"className":626,"style":512},[448,511],[427,628],{"className":629,"style":503},[502],[427,631,520],{"className":632},[448,449],[427,634,464],{"className":635},[463],".\n",[395,638,639],{"href":170},"Kruskal's MST"," tells the same story through a different structure. The algorithm\nis one line of logic, and ",[390,642,643],{},"every bit"," of its efficiency comes from the\ndisjoint-set structure beneath it. We will build that structure from the ground\nup and watch it collapse from ",[427,646,648],{"className":647},[430],[427,649,651],{"className":650,"ariaHidden":435},[434],[427,652,654,657,661,664,667],{"className":653},[439],[427,655],{"className":656,"style":444},[443],[427,658,660],{"className":659},[448],"Θ",[427,662,456],{"className":663},[455],[427,665,520],{"className":666},[448,449],[427,668,464],{"className":669},[463]," per query down to inverse Ackermann.",[672,673,675],"h2",{"id":674},"the-disjoint-set-adt","The disjoint-set ADT",[381,677,678,679,874,875,878],{},"We maintain a collection ",[427,680,682],{"className":681},[430],[427,683,685],{"className":684,"ariaHidden":435},[434],[427,686,688,691],{"className":687},[439],[427,689],{"className":690,"style":444},[443],[427,692,695,701,759,764,767,808,811,814,818,821,824,827,870],{"className":693},[694],"minner",[427,696,700],{"className":697,"style":699},[455,698],"delimcenter","top:0em;","{",[427,702,704,709],{"className":703},[448],[427,705,708],{"className":706,"style":707},[448,449],"margin-right:0.0576em;","S",[427,710,713],{"className":711},[712],"msupsub",[427,714,718,750],{"className":715},[716,717],"vlist-t","vlist-t2",[427,719,722,745],{"className":720},[721],"vlist-r",[427,723,727],{"className":724,"style":726},[725],"vlist","height:0.3011em;",[427,728,730,735],{"style":729},"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;",[427,731],{"className":732,"style":734},[733],"pstrut","height:2.7em;",[427,736,742],{"className":737},[738,739,740,741],"sizing","reset-size6","size3","mtight",[427,743,424],{"className":744},[448,741],[427,746,749],{"className":747},[748],"vlist-s","​",[427,751,753],{"className":752},[721],[427,754,757],{"className":755,"style":756},[725],"height:0.15em;",[427,758],{},[427,760,763],{"className":761},[762],"mpunct",",",[427,765],{"className":766,"style":503},[502],[427,768,770,773],{"className":769},[448],[427,771,708],{"className":772,"style":707},[448,449],[427,774,776],{"className":775},[712],[427,777,779,800],{"className":778},[716,717],[427,780,782,797],{"className":781},[721],[427,783,785],{"className":784,"style":726},[725],[427,786,787,790],{"style":729},[427,788],{"className":789,"style":734},[733],[427,791,793],{"className":792},[738,739,740,741],[427,794,796],{"className":795},[448,741],"2",[427,798,749],{"className":799},[748],[427,801,803],{"className":802},[721],[427,804,806],{"className":805,"style":756},[725],[427,807],{},[427,809,763],{"className":810},[762],[427,812],{"className":813,"style":503},[502],[427,815,817],{"className":816},[694],"…",[427,819],{"className":820,"style":503},[502],[427,822,763],{"className":823},[762],[427,825],{"className":826,"style":503},[502],[427,828,830,833],{"className":829},[448],[427,831,708],{"className":832,"style":707},[448,449],[427,834,836],{"className":835},[712],[427,837,839,862],{"className":838},[716,717],[427,840,842,859],{"className":841},[721],[427,843,846],{"className":844,"style":845},[725],"height:0.3361em;",[427,847,848,851],{"style":729},[427,849],{"className":850,"style":734},[733],[427,852,854],{"className":853},[738,739,740,741],[427,855,858],{"className":856,"style":857},[448,449,741],"margin-right:0.0315em;","k",[427,860,749],{"className":861},[748],[427,863,865],{"className":864},[721],[427,866,868],{"className":867,"style":756},[725],[427,869],{},[427,871,873],{"className":872,"style":699},[463,698],"}"," of disjoint sets that\ntogether partition a universe of elements. Each set is named by a\n",[385,876,877],{},"representative",", some fixed member of the set chosen by the structure. The\nADT has three operations:",[880,881,882,967,1021],"ul",{},[883,884,885,917,918,934,935,950,951,966],"li",{},[427,886,888],{"className":887},[430],[427,889,891],{"className":890,"ariaHidden":435},[434],[427,892,894,897,907,910,914],{"className":893},[439],[427,895],{"className":896,"style":444},[443],[427,898,900],{"className":899},[565,566],[427,901,903],{"className":902},[448,570],[427,904,906],{"className":905},[448],"Make-Set",[427,908,456],{"className":909},[455],[427,911,913],{"className":912},[448,449],"x",[427,915,464],{"className":916},[463]," creates a new set whose only member is ",[427,919,921],{"className":920},[430],[427,922,924],{"className":923,"ariaHidden":435},[434],[427,925,927,931],{"className":926},[439],[427,928],{"className":929,"style":930},[443],"height:0.4306em;",[427,932,913],{"className":933},[448,449]," (so ",[427,936,938],{"className":937},[430],[427,939,941],{"className":940,"ariaHidden":435},[434],[427,942,944,947],{"className":943},[439],[427,945],{"className":946,"style":930},[443],[427,948,913],{"className":949},[448,449]," is its\nown representative). ",[427,952,954],{"className":953},[430],[427,955,957],{"className":956,"ariaHidden":435},[434],[427,958,960,963],{"className":959},[439],[427,961],{"className":962,"style":930},[443],[427,964,913],{"className":965},[448,449]," must not already be in any set.",[883,968,969,1000,1001,1016,1017,1020],{},[427,970,972],{"className":971},[430],[427,973,975],{"className":974,"ariaHidden":435},[434],[427,976,978,981,991,994,997],{"className":977},[439],[427,979],{"className":980,"style":444},[443],[427,982,984],{"className":983},[565,566],[427,985,987],{"className":986},[448,570],[427,988,990],{"className":989},[448],"Find-Set",[427,992,456],{"className":993},[455],[427,995,913],{"className":996},[448,449],[427,998,464],{"className":999},[463]," returns the representative of the set containing ",[427,1002,1004],{"className":1003},[430],[427,1005,1007],{"className":1006,"ariaHidden":435},[434],[427,1008,1010,1013],{"className":1009},[439],[427,1011],{"className":1012,"style":930},[443],[427,1014,913],{"className":1015},[448,449],". Two\nelements are in the same set ",[390,1018,1019],{},"iff"," they return the same representative.",[883,1022,1023,1065,1066,1081,1082,1098],{},[427,1024,1026],{"className":1025},[430],[427,1027,1029],{"className":1028,"ariaHidden":435},[434],[427,1030,1032,1035,1045,1048,1051,1054,1057,1062],{"className":1031},[439],[427,1033],{"className":1034,"style":444},[443],[427,1036,1038],{"className":1037},[565,566],[427,1039,1041],{"className":1040},[448,570],[427,1042,1044],{"className":1043},[448],"Union",[427,1046,456],{"className":1047},[455],[427,1049,913],{"className":1050},[448,449],[427,1052,763],{"className":1053},[762],[427,1055],{"className":1056,"style":503},[502],[427,1058,1061],{"className":1059,"style":1060},[448,449],"margin-right:0.0359em;","y",[427,1063,464],{"className":1064},[463]," merges the sets containing ",[427,1067,1069],{"className":1068},[430],[427,1070,1072],{"className":1071,"ariaHidden":435},[434],[427,1073,1075,1078],{"className":1074},[439],[427,1076],{"className":1077,"style":930},[443],[427,1079,913],{"className":1080},[448,449]," and ",[427,1083,1085],{"className":1084},[430],[427,1086,1088],{"className":1087,"ariaHidden":435},[434],[427,1089,1091,1095],{"className":1090},[439],[427,1092],{"className":1093,"style":1094},[443],"height:0.625em;vertical-align:-0.1944em;",[427,1096,1061],{"className":1097,"style":1060},[448,449]," into one, picking a\nrepresentative for the combined set. The two old sets are destroyed.",[381,1100,1101,1102,1137,1138,1199,1200,410,1215,1237,1238,410,1274,1276],{},"The query ",[1103,1104,1105,1106,1081,1121,1136],"q",{},"are ",[427,1107,1109],{"className":1108},[430],[427,1110,1112],{"className":1111,"ariaHidden":435},[434],[427,1113,1115,1118],{"className":1114},[439],[427,1116],{"className":1117,"style":930},[443],[427,1119,913],{"className":1120},[448,449],[427,1122,1124],{"className":1123},[430],[427,1125,1127],{"className":1126,"ariaHidden":435},[434],[427,1128,1130,1133],{"className":1129},[439],[427,1131],{"className":1132,"style":1094},[443],[427,1134,1061],{"className":1135,"style":1060},[448,449]," together?"," is just the test\n",[427,1139,1141],{"className":1140},[430],[427,1142,1144,1178],{"className":1143,"ariaHidden":435},[434],[427,1145,1147,1150,1157,1160,1163,1166,1170,1175],{"className":1146},[439],[427,1148],{"className":1149,"style":444},[443],[427,1151,1153],{"className":1152},[448,570],[427,1154,990],{"className":1155},[448,1156],"textbf",[427,1158,456],{"className":1159},[455],[427,1161,913],{"className":1162},[448,449],[427,1164,464],{"className":1165},[463],[427,1167],{"className":1168,"style":1169},[502],"margin-right:0.2778em;",[427,1171,1174],{"className":1172},[1173],"mrel","=",[427,1176],{"className":1177,"style":1169},[502],[427,1179,1181,1184,1190,1193,1196],{"className":1180},[439],[427,1182],{"className":1183,"style":444},[443],[427,1185,1187],{"className":1186},[448,570],[427,1188,990],{"className":1189},[448,1156],[427,1191,456],{"className":1192},[455],[427,1194,1061],{"className":1195,"style":1060},[448,449],[427,1197,464],{"className":1198},[463],". After ",[427,1201,1203],{"className":1202},[430],[427,1204,1206],{"className":1205,"ariaHidden":435},[434],[427,1207,1209,1212],{"className":1208},[439],[427,1210],{"className":1211,"style":930},[443],[427,1213,520],{"className":1214},[448,449],[427,1216,1218],{"className":1217},[430],[427,1219,1221],{"className":1220,"ariaHidden":435},[434],[427,1222,1224,1228],{"className":1223},[439],[427,1225],{"className":1226,"style":1227},[443],"height:0.6944em;",[427,1229,1231],{"className":1230},[565,566],[427,1232,1234],{"className":1233},[448,570],[427,1235,906],{"className":1236},[448]," operations\nthere can be at most ",[427,1239,1241],{"className":1240},[430],[427,1242,1244,1264],{"className":1243,"ariaHidden":435},[434],[427,1245,1247,1251,1254,1257,1261],{"className":1246},[439],[427,1248],{"className":1249,"style":1250},[443],"height:0.6667em;vertical-align:-0.0833em;",[427,1252,520],{"className":1253},[448,449],[427,1255],{"className":1256,"style":600},[502],[427,1258,1260],{"className":1259},[604],"−",[427,1262],{"className":1263,"style":600},[502],[427,1265,1267,1271],{"className":1266},[439],[427,1268],{"className":1269,"style":1270},[443],"height:0.6444em;",[427,1272,424],{"className":1273},[448],[385,1275,1044],{}," operations, since each union reduces the\nnumber of sets by one.",[672,1278,1280],{"id":1279},"the-forest-representation","The forest representation",[381,1282,1283,1284,1287,1288,465,1291,1298,1299,1302,1303,1306],{},"The fast implementation represents each set as a ",[385,1285,1286],{},"rooted tree",", and the whole\ncollection as a ",[385,1289,1290],{},"forest",[416,1292,1293],{},[395,1294,796],{"href":1295,"ariaDescribedBy":1296,"dataFootnoteRef":376,"id":1297},"#user-content-fn-erickson-djs",[422],"user-content-fnref-erickson-djs"," Every element points only to its ",[385,1300,1301],{},"parent","; the\n",[385,1304,1305],{},"root"," of each tree is the set's representative and points to itself. There are\nno child pointers and no key ordering. This is not a search tree, just a tangle\nof upward pointers whose only job is to lead to a root.",[1308,1309,1313,1411],"figure",{"className":1310},[1311,1312],"tikz-figure","tikz-diagram-rendered",[1314,1315,1320],"svg",{"xmlns":1316,"width":1317,"height":1318,"viewBox":1319},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","255.775","146.168","-75 -75 191.831 109.626",[1321,1322,1325,1330,1339,1342,1349,1352,1359,1362,1369,1372,1379,1382,1389,1392,1399,1402,1405,1408],"g",{"stroke":1323,"style":1324},"currentColor","stroke-miterlimit:10;stroke-width:.4",[1326,1327],"path",{"fill":1328,"d":1329},"none","M-26.058-42.82c0-6.287-5.095-11.382-11.38-11.382S-48.82-49.107-48.82-42.821s5.096 11.381 11.381 11.381 11.381-5.095 11.381-11.38Zm-11.38 0",[1321,1331,1333],{"transform":1332},"translate(-2.164 2.153)",[1326,1334],{"d":1335,"fill":1323,"stroke":1323,"className":1336,"style":1338},"M-36.267-44.012Q-36.267-43.578-36.045-43.275Q-35.823-42.972-35.408-42.972Q-34.812-42.972-34.263-43.246Q-33.713-43.519-33.367-44.003Q-33.337-44.032-33.289-44.032Q-33.240-44.032-33.189-43.976Q-33.137-43.920-33.137-43.871Q-33.137-43.832-33.157-43.812Q-33.523-43.300-34.143-43.004Q-34.763-42.709-35.427-42.709Q-35.906-42.709-36.272-42.936Q-36.638-43.163-36.838-43.544Q-37.039-43.925-37.039-44.403Q-37.039-45.077-36.663-45.741Q-36.287-46.405-35.662-46.822Q-35.037-47.240-34.348-47.240Q-33.899-47.240-33.540-47.023Q-33.181-46.805-33.181-46.381Q-33.181-46.107-33.340-45.914Q-33.499-45.721-33.767-45.721Q-33.928-45.721-34.038-45.821Q-34.148-45.922-34.148-46.083Q-34.148-46.317-33.977-46.483Q-33.806-46.649-33.577-46.649L-33.557-46.649Q-33.674-46.820-33.897-46.901Q-34.119-46.981-34.358-46.981Q-34.944-46.981-35.383-46.481Q-35.823-45.980-36.045-45.284Q-36.267-44.589-36.267-44.012",[1337],"tikz-text","stroke-width:0.300",[1326,1340],{"fill":1328,"d":1341},"M-45.975-11.523c0-6.286-5.095-11.381-11.38-11.381s-11.382 5.095-11.382 11.381S-63.64-.142-57.356-.142s11.381-5.095 11.381-11.38Zm-11.38 0",[1321,1343,1345],{"transform":1344},"translate(-22.56 33.45)",[1326,1346],{"d":1347,"fill":1323,"stroke":1323,"className":1348,"style":1338},"M-35.701-42.709Q-36.331-42.709-36.694-43.185Q-37.058-43.661-37.058-44.310Q-37.058-44.950-36.726-45.638Q-36.394-46.327-35.830-46.783Q-35.266-47.240-34.617-47.240Q-34.319-47.240-34.085-47.079Q-33.850-46.918-33.718-46.639Q-33.606-47.040-33.279-47.040Q-33.152-47.040-33.066-46.964Q-32.981-46.888-32.981-46.761Q-32.981-46.732-32.983-46.717Q-32.986-46.703-32.991-46.683L-33.689-43.890Q-33.757-43.592-33.757-43.402Q-33.757-42.972-33.469-42.972Q-33.157-42.972-32.993-43.370Q-32.830-43.768-32.717-44.291Q-32.698-44.349-32.639-44.349L-32.517-44.349Q-32.478-44.349-32.454-44.315Q-32.429-44.281-32.429-44.252Q-32.605-43.553-32.813-43.131Q-33.020-42.709-33.489-42.709Q-33.826-42.709-34.085-42.906Q-34.343-43.104-34.407-43.431Q-35.051-42.709-35.701-42.709M-35.691-42.972Q-35.330-42.972-34.990-43.243Q-34.651-43.514-34.407-43.881Q-34.397-43.890-34.397-43.910L-33.860-46.083L-33.850-46.112Q-33.909-46.468-34.106-46.725Q-34.304-46.981-34.641-46.981Q-34.978-46.981-35.269-46.705Q-35.559-46.429-35.759-46.053Q-35.955-45.653-36.133-44.955Q-36.311-44.257-36.311-43.871Q-36.311-43.524-36.162-43.248Q-36.013-42.972-35.691-42.972",[1337],[1326,1350],{"fill":1328,"d":1351},"m-43.656-33.05-7.482 11.757M-6.14-11.523c0-6.286-5.096-11.381-11.382-11.381s-11.38 5.095-11.38 11.381S-23.808-.142-17.523-.142-6.14-5.237-6.14-11.522Zm-11.382 0",[1321,1353,1355],{"transform":1354},"translate(17.036 34.77)",[1326,1356],{"d":1357,"fill":1323,"stroke":1323,"className":1358,"style":1338},"M-36.907-43.002Q-36.907-43.060-36.897-43.090L-35.447-48.871Q-35.408-49.042-35.398-49.139Q-35.398-49.300-36.047-49.300Q-36.150-49.300-36.150-49.432Q-36.145-49.457-36.128-49.520Q-36.111-49.584-36.084-49.618Q-36.057-49.652-36.008-49.652L-34.661-49.759L-34.631-49.759Q-34.631-49.750-34.597-49.733Q-34.563-49.716-34.558-49.711Q-34.539-49.662-34.539-49.633L-35.320-46.512Q-34.705-47.240-33.860-47.240Q-33.508-47.240-33.252-47.118Q-32.996-46.996-32.852-46.749Q-32.708-46.503-32.708-46.161Q-32.708-45.751-32.891-45.170Q-33.074-44.589-33.347-43.871Q-33.489-43.544-33.489-43.270Q-33.489-42.972-33.259-42.972Q-32.869-42.972-32.607-43.390Q-32.346-43.807-32.239-44.291Q-32.219-44.349-32.161-44.349L-32.039-44.349Q-32-44.349-31.975-44.322Q-31.951-44.296-31.951-44.261Q-31.951-44.252-31.960-44.232Q-32.048-43.871-32.222-43.522Q-32.395-43.173-32.659-42.941Q-32.922-42.709-33.279-42.709Q-33.630-42.709-33.879-42.950Q-34.128-43.192-34.128-43.539Q-34.128-43.724-34.050-43.929Q-33.767-44.681-33.579-45.272Q-33.391-45.863-33.391-46.312Q-33.391-46.600-33.503-46.791Q-33.616-46.981-33.879-46.981Q-34.417-46.981-34.817-46.652Q-35.217-46.322-35.510-45.780L-36.189-43.050Q-36.228-42.899-36.340-42.804Q-36.453-42.709-36.599-42.709Q-36.726-42.709-36.816-42.794Q-36.907-42.880-36.907-43.002",[1337],[1326,1360],{"fill":1328,"d":1361},"m-31.222-33.05 7.483 11.757M-6.14 19.775c0-6.286-5.096-11.381-11.382-11.381s-11.38 5.095-11.38 11.381 5.095 11.381 11.38 11.381S-6.14 26.061-6.14 19.776Zm-11.382 0",[1321,1363,1365],{"transform":1364},"translate(17.771 66.068)",[1326,1366],{"d":1367,"fill":1323,"stroke":1323,"className":1368,"style":1338},"M-35.710-42.709Q-36.316-42.709-36.653-43.182Q-36.990-43.656-36.990-44.291Q-36.990-44.383-36.943-44.654Q-36.897-44.925-36.897-44.989L-35.930-48.871Q-35.891-49.042-35.881-49.139Q-35.881-49.300-36.531-49.300Q-36.628-49.300-36.628-49.432Q-36.624-49.457-36.606-49.520Q-36.589-49.584-36.563-49.618Q-36.536-49.652-36.487-49.652L-35.139-49.759Q-35.017-49.759-35.017-49.633L-35.759-46.683Q-35.193-47.240-34.617-47.240Q-34.192-47.240-33.887-47.015Q-33.582-46.791-33.430-46.425Q-33.279-46.058-33.279-45.643Q-33.279-45.160-33.467-44.645Q-33.655-44.130-33.987-43.688Q-34.319-43.246-34.763-42.977Q-35.208-42.709-35.710-42.709M-35.691-42.972Q-35.349-42.972-35.051-43.258Q-34.753-43.544-34.568-43.900Q-34.368-44.300-34.194-44.987Q-34.021-45.673-34.021-46.083Q-34.021-46.439-34.170-46.710Q-34.319-46.981-34.641-46.981Q-35.002-46.981-35.332-46.715Q-35.662-46.449-35.911-46.083L-36.189-44.950Q-36.350-44.320-36.360-43.939Q-36.360-43.563-36.196-43.268Q-36.033-42.972-35.691-42.972",[1337],[1326,1370],{"fill":1328,"d":1371},"M-17.522.058v8.136M93.444-42.82c0-6.287-5.095-11.382-11.381-11.382s-11.381 5.095-11.381 11.381 5.095 11.381 11.38 11.381c6.287 0 11.382-5.095 11.382-11.38Zm-11.381 0",[1321,1373,1375],{"transform":1374},"translate(116.515 2.5)",[1326,1376],{"d":1377,"fill":1323,"stroke":1323,"className":1378,"style":1338},"M-36.467-41.171Q-36.282-41.029-36.018-41.029Q-35.662-41.029-35.437-41.820Q-35.344-42.201-34.929-44.330L-34.470-46.781L-35.330-46.781Q-35.427-46.781-35.427-46.913Q-35.388-47.133-35.300-47.133L-34.407-47.133L-34.290-47.782Q-34.231-48.085-34.182-48.302Q-34.133-48.519-34.077-48.705Q-34.021-48.890-33.909-49.120Q-33.738-49.447-33.447-49.659Q-33.157-49.872-32.820-49.872Q-32.600-49.872-32.393-49.791Q-32.185-49.711-32.053-49.550Q-31.921-49.388-31.921-49.169Q-31.921-48.915-32.090-48.727Q-32.258-48.539-32.498-48.539Q-32.659-48.539-32.773-48.639Q-32.888-48.739-32.888-48.900Q-32.888-49.120-32.739-49.283Q-32.590-49.447-32.371-49.471Q-32.556-49.613-32.830-49.613Q-32.981-49.613-33.115-49.471Q-33.250-49.330-33.289-49.169Q-33.352-48.915-33.567-47.792L-33.689-47.133L-32.659-47.133Q-32.561-47.133-32.561-47.001Q-32.566-46.976-32.581-46.915Q-32.595-46.854-32.622-46.818Q-32.649-46.781-32.688-46.781L-33.757-46.781L-34.221-44.340Q-34.309-43.807-34.424-43.258Q-34.539-42.709-34.746-42.130Q-34.954-41.551-35.276-41.161Q-35.598-40.770-36.038-40.770Q-36.375-40.770-36.641-40.963Q-36.907-41.156-36.907-41.473Q-36.907-41.727-36.743-41.915Q-36.580-42.103-36.331-42.103Q-36.165-42.103-36.052-42.003Q-35.940-41.903-35.940-41.742Q-35.940-41.527-36.099-41.349Q-36.257-41.171-36.467-41.171",[1337],[1326,1380],{"fill":1328,"d":1381},"M73.527-11.523c0-6.286-5.095-11.381-11.381-11.381s-11.381 5.095-11.381 11.381S55.86-.142 62.146-.142s11.381-5.095 11.381-11.38Zm-11.381 0",[1321,1383,1385],{"transform":1384},"translate(96.982 34.77)",[1326,1386],{"d":1387,"fill":1323,"stroke":1323,"className":1388,"style":1338},"M-35.701-42.709Q-36.331-42.709-36.694-43.185Q-37.058-43.661-37.058-44.310Q-37.058-44.950-36.726-45.638Q-36.394-46.327-35.830-46.783Q-35.266-47.240-34.617-47.240Q-34.324-47.240-34.087-47.076Q-33.850-46.913-33.718-46.639L-33.157-48.871Q-33.118-49.042-33.108-49.139Q-33.108-49.300-33.757-49.300Q-33.860-49.300-33.860-49.432Q-33.855-49.457-33.838-49.520Q-33.821-49.584-33.794-49.618Q-33.767-49.652-33.718-49.652L-32.371-49.759Q-32.249-49.759-32.249-49.633L-33.689-43.881Q-33.757-43.715-33.757-43.402Q-33.757-42.972-33.469-42.972Q-33.157-42.972-32.993-43.370Q-32.830-43.768-32.717-44.291Q-32.698-44.349-32.639-44.349L-32.517-44.349Q-32.478-44.349-32.454-44.315Q-32.429-44.281-32.429-44.252Q-32.605-43.553-32.813-43.131Q-33.020-42.709-33.489-42.709Q-33.826-42.709-34.085-42.906Q-34.343-43.104-34.407-43.431Q-35.051-42.709-35.701-42.709M-35.691-42.972Q-35.330-42.972-34.990-43.243Q-34.651-43.514-34.407-43.881Q-34.397-43.890-34.397-43.920L-33.850-46.122Q-33.909-46.473-34.109-46.727Q-34.309-46.981-34.641-46.981Q-34.978-46.981-35.269-46.705Q-35.559-46.429-35.759-46.053Q-35.955-45.653-36.133-44.955Q-36.311-44.257-36.311-43.871Q-36.311-43.524-36.162-43.248Q-36.013-42.972-35.691-42.972",[1337],[1326,1390],{"fill":1328,"d":1391},"m75.846-33.05-7.483 11.757M113.36-11.523c0-6.286-5.094-11.381-11.38-11.381s-11.381 5.095-11.381 11.381S95.694-.142 101.979-.142c6.287 0 11.382-5.095 11.382-11.38Zm-11.38 0",[1321,1393,1395],{"transform":1394},"translate(137.09 33.45)",[1326,1396],{"d":1397,"fill":1323,"stroke":1323,"className":1398,"style":1338},"M-35.427-42.709Q-35.906-42.709-36.265-42.958Q-36.624-43.207-36.812-43.629Q-37-44.051-37-44.520Q-37-45.233-36.641-45.861Q-36.282-46.488-35.667-46.864Q-35.051-47.240-34.348-47.240Q-33.918-47.240-33.599-47.018Q-33.279-46.796-33.279-46.381Q-33.279-45.804-33.738-45.524Q-34.197-45.243-34.773-45.177Q-35.349-45.111-36.047-45.111L-36.077-45.111Q-36.238-44.515-36.238-44.091Q-36.238-43.646-36.033-43.309Q-35.828-42.972-35.408-42.972Q-34.812-42.972-34.263-43.246Q-33.713-43.519-33.367-44.003Q-33.337-44.032-33.289-44.032Q-33.240-44.032-33.189-43.976Q-33.137-43.920-33.137-43.871Q-33.137-43.832-33.157-43.812Q-33.523-43.300-34.143-43.004Q-34.763-42.709-35.427-42.709M-36.018-45.370Q-35.437-45.370-34.944-45.424Q-34.451-45.477-34.050-45.695Q-33.650-45.912-33.650-46.371Q-33.650-46.556-33.752-46.696Q-33.855-46.835-34.019-46.908Q-34.182-46.981-34.358-46.981Q-34.783-46.981-35.122-46.752Q-35.461-46.522-35.681-46.154Q-35.901-45.785-36.018-45.370",[1337],[1326,1400],{"fill":1328,"d":1401},"m88.28-33.05 7.483 11.757M-40.436-54.007c-4.84-18.063 10.834-18.063 6.77-2.898",[1326,1403],{"stroke":1328,"d":1404},"m-34.183-54.973 2.374-2.677-1.856.745-1.235-1.573",[1326,1406],{"fill":1328,"d":1407},"M79.066-54.007c-4.84-18.063 10.834-18.063 6.77-2.898",[1326,1409],{"stroke":1328,"d":1410},"m85.319-54.973 2.373-2.677-1.856.745-1.235-1.573",[1412,1413,1416],"figcaption",{"className":1414},[1415],"tikz-cap","Two disjoint-set trees of parent pointers, each root looping to itself",[381,1418,1419,1420,1474,1475,1490,1491,1537,1538,1554,1555,1576,1577,1579],{},"Two sets: ",[427,1421,1423],{"className":1422},[430],[427,1424,1426],{"className":1425,"ariaHidden":435},[434],[427,1427,1429,1432],{"className":1428},[439],[427,1430],{"className":1431,"style":444},[443],[427,1433,1435,1438,1441,1444,1447,1451,1454,1457,1461,1464,1467,1471],{"className":1434},[694],[427,1436,700],{"className":1437,"style":699},[455,698],[427,1439,395],{"className":1440},[448,449],[427,1442,763],{"className":1443},[762],[427,1445],{"className":1446,"style":503},[502],[427,1448,1450],{"className":1449},[448,449],"b",[427,1452,763],{"className":1453},[762],[427,1455],{"className":1456,"style":503},[502],[427,1458,1460],{"className":1459},[448,449],"c",[427,1462,763],{"className":1463},[762],[427,1465],{"className":1466,"style":503},[502],[427,1468,1470],{"className":1469},[448,449],"h",[427,1472,873],{"className":1473,"style":699},[463,698]," with representative ",[427,1476,1478],{"className":1477},[430],[427,1479,1481],{"className":1480,"ariaHidden":435},[434],[427,1482,1484,1487],{"className":1483},[439],[427,1485],{"className":1486,"style":930},[443],[427,1488,1460],{"className":1489},[448,449],", and ",[427,1492,1494],{"className":1493},[430],[427,1495,1497],{"className":1496,"ariaHidden":435},[434],[427,1498,1500,1503],{"className":1499},[439],[427,1501],{"className":1502,"style":444},[443],[427,1504,1506,1509,1513,1516,1519,1523,1526,1529,1534],{"className":1505},[694],[427,1507,700],{"className":1508,"style":699},[455,698],[427,1510,1512],{"className":1511},[448,449],"d",[427,1514,763],{"className":1515},[762],[427,1517],{"className":1518,"style":503},[502],[427,1520,1522],{"className":1521},[448,449],"e",[427,1524,763],{"className":1525},[762],[427,1527],{"className":1528,"style":503},[502],[427,1530,1533],{"className":1531,"style":1532},[448,449],"margin-right:0.1076em;","f",[427,1535,873],{"className":1536,"style":699},[463,698]," with\nrepresentative ",[427,1539,1541],{"className":1540},[430],[427,1542,1544],{"className":1543,"ariaHidden":435},[434],[427,1545,1547,1551],{"className":1546},[439],[427,1548],{"className":1549,"style":1550},[443],"height:0.8889em;vertical-align:-0.1944em;",[427,1552,1533],{"className":1553,"style":1532},[448,449],". Each node's single arrow points at its parent; the roots loop\nto themselves. ",[427,1556,1558],{"className":1557},[430],[427,1559,1561],{"className":1560,"ariaHidden":435},[434],[427,1562,1564,1567],{"className":1563},[439],[427,1565],{"className":1566,"style":1227},[443],[427,1568,1570],{"className":1569},[565,566],[427,1571,1573],{"className":1572},[448,570],[427,1574,990],{"className":1575},[448]," follows parent pointers up to the root; ",[385,1578,1044],{},"\nmakes one tree's root a child of the other's.",[1581,1582,1586],"pre",{"className":1583,"code":1584,"language":1585,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: Naive disjoint-set forest operations\nMake-Set(x):\n  $parent(x) \\gets x$\nFind-Set(x):\n  while $x \\ne parent(x)$ do\n    $x \\gets parent(x)$ \u002F\u002F walk to the root\n  return $x$\nUnion(x, y):\n  $parent(\\textbf{Find-Set}(x)) \\gets \\textbf{Find-Set}(y)$\n","algorithm",[1587,1588,1589,1595,1600,1605,1610,1615,1620,1625,1630],"code",{"__ignoreMap":376},[427,1590,1592],{"class":1591,"line":6},"line",[427,1593,1594],{},"caption: Naive disjoint-set forest operations\n",[427,1596,1597],{"class":1591,"line":18},[427,1598,1599],{},"Make-Set(x):\n",[427,1601,1602],{"class":1591,"line":24},[427,1603,1604],{},"  $parent(x) \\gets x$\n",[427,1606,1607],{"class":1591,"line":73},[427,1608,1609],{},"Find-Set(x):\n",[427,1611,1612],{"class":1591,"line":102},[427,1613,1614],{},"  while $x \\ne parent(x)$ do\n",[427,1616,1617],{"class":1591,"line":108},[427,1618,1619],{},"    $x \\gets parent(x)$ \u002F\u002F walk to the root\n",[427,1621,1622],{"class":1591,"line":116},[427,1623,1624],{},"  return $x$\n",[427,1626,1627],{"class":1591,"line":196},[427,1628,1629],{},"Union(x, y):\n",[427,1631,1632],{"class":1591,"line":202},[427,1633,1634],{},"  $parent(\\textbf{Find-Set}(x)) \\gets \\textbf{Find-Set}(y)$\n",[381,1636,1637,1638,1653,1654,1675,1676,1700],{},"So far this is correct but not fast: a careless sequence of unions can build a\ntall, skinny tree, a path of ",[427,1639,1641],{"className":1640},[430],[427,1642,1644],{"className":1643,"ariaHidden":435},[434],[427,1645,1647,1650],{"className":1646},[439],[427,1648],{"className":1649,"style":930},[443],[427,1651,520],{"className":1652},[448,449]," nodes, making ",[427,1655,1657],{"className":1656},[430],[427,1658,1660],{"className":1659,"ariaHidden":435},[434],[427,1661,1663,1666],{"className":1662},[439],[427,1664],{"className":1665,"style":1227},[443],[427,1667,1669],{"className":1668},[565,566],[427,1670,1672],{"className":1671},[448,570],[427,1673,990],{"className":1674},[448]," cost ",[427,1677,1679],{"className":1678},[430],[427,1680,1682],{"className":1681,"ariaHidden":435},[434],[427,1683,1685,1688,1691,1694,1697],{"className":1684},[439],[427,1686],{"className":1687,"style":444},[443],[427,1689,660],{"className":1690},[448],[427,1692,456],{"className":1693},[455],[427,1695,520],{"className":1696},[448,449],[427,1698,464],{"className":1699},[463],".\nTwo heuristics, used together, flatten the forest and make the structure\nextraordinarily fast.",[672,1702,1704,1705],{"id":1703},"a-warm-up-labels-and-always-relabel-the-smaller-side","A warm-up: labels, and ",[1103,1706,1707],{},"always relabel the smaller side",[381,1709,1710,1711,1744,1745,1748,1749,1779,1780,1810,1811,1876,1877,1899,1900,1903],{},"Before the forest, consider the most naive possible implementation, along with the one\nidea that already makes it respectable. Keep an array ",[427,1712,1714],{"className":1713},[430],[427,1715,1717],{"className":1716,"ariaHidden":435},[434],[427,1718,1720,1723,1727,1730,1733,1737,1740],{"className":1719},[439],[427,1721],{"className":1722,"style":444},[443],[427,1724,1726],{"className":1725},[448,449],"co",[427,1728,498],{"className":1729},[448,449],[427,1731,381],{"className":1732},[448,449],[427,1734,1736],{"className":1735},[455],"[",[427,1738],{"className":1739,"style":503},[502],[427,1741,1743],{"className":1742},[463],"]"," that stores, for\neach element, a ",[390,1746,1747],{},"label"," naming its current set. Then ",[427,1750,1752],{"className":1751},[430],[427,1753,1755],{"className":1754,"ariaHidden":435},[434],[427,1756,1758,1761,1770,1773,1776],{"className":1757},[439],[427,1759],{"className":1760,"style":444},[443],[427,1762,1764],{"className":1763},[565,566],[427,1765,1767],{"className":1766},[448,570],[427,1768,990],{"className":1769},[448],[427,1771,456],{"className":1772},[455],[427,1774,913],{"className":1775},[448,449],[427,1777,464],{"className":1778},[463]," is just\n",[427,1781,1783],{"className":1782},[430],[427,1784,1786],{"className":1785,"ariaHidden":435},[434],[427,1787,1789,1792,1795,1798,1801,1804,1807],{"className":1788},[439],[427,1790],{"className":1791,"style":444},[443],[427,1793,1726],{"className":1794},[448,449],[427,1796,498],{"className":1797},[448,449],[427,1799,381],{"className":1800},[448,449],[427,1802,1736],{"className":1803},[455],[427,1805,913],{"className":1806},[448,449],[427,1808,1743],{"className":1809},[463],", a single array lookup, and the same-set test\n",[427,1812,1814],{"className":1813},[430],[427,1815,1817,1851],{"className":1816,"ariaHidden":435},[434],[427,1818,1820,1823,1826,1829,1832,1835,1839,1842,1845,1848],{"className":1819},[439],[427,1821],{"className":1822,"style":444},[443],[427,1824,1726],{"className":1825},[448,449],[427,1827,498],{"className":1828},[448,449],[427,1830,381],{"className":1831},[448,449],[427,1833,1736],{"className":1834},[455],[427,1836,1838],{"className":1837},[448,449],"u",[427,1840,1743],{"className":1841},[463],[427,1843],{"className":1844,"style":1169},[502],[427,1846,1174],{"className":1847},[1173],[427,1849],{"className":1850,"style":1169},[502],[427,1852,1854,1857,1860,1863,1866,1869,1873],{"className":1853},[439],[427,1855],{"className":1856,"style":444},[443],[427,1858,1726],{"className":1859},[448,449],[427,1861,498],{"className":1862},[448,449],[427,1864,381],{"className":1865},[448,449],[427,1867,1736],{"className":1868},[455],[427,1870,1872],{"className":1871,"style":1060},[448,449],"v",[427,1874,1743],{"className":1875},[463]," is instant. The whole cost lives in ",[427,1878,1880],{"className":1879},[430],[427,1881,1883],{"className":1882,"ariaHidden":435},[434],[427,1884,1886,1890],{"className":1885},[439],[427,1887],{"className":1888,"style":1889},[443],"height:0.6833em;",[427,1891,1893],{"className":1892},[565,566],[427,1894,1896],{"className":1895},[448,570],[427,1897,1044],{"className":1898},[448],": merging two\nsets means walking through one of them and ",[390,1901,1902],{},"rewriting"," every member's label to\nmatch the other.",[381,1905,1906,1907,1910,1911,1926,1927,1951],{},"The question is ",[390,1908,1909],{},"which"," set to rewrite. If we are careless and always relabel,\nsay, the set containing ",[427,1912,1914],{"className":1913},[430],[427,1915,1917],{"className":1916,"ariaHidden":435},[434],[427,1918,1920,1923],{"className":1919},[439],[427,1921],{"className":1922,"style":930},[443],[427,1924,1838],{"className":1925},[448,449],", an adversary can force ",[427,1928,1930],{"className":1929},[430],[427,1931,1933],{"className":1932,"ariaHidden":435},[434],[427,1934,1936,1939,1942,1945,1948],{"className":1935},[439],[427,1937],{"className":1938,"style":444},[443],[427,1940,660],{"className":1941},[448],[427,1943,456],{"className":1944},[455],[427,1946,520],{"className":1947},[448,449],[427,1949,464],{"className":1950},[463]," work on every\nunion. The fix is a single disciplined rule:",[1953,1954,1956],"callout",{"type":1955},"remark",[381,1957,1958,1961,1962,1965,1966,1081,1981,1996,1997,2000],{},[385,1959,1960],{},"Remark (Union by size)."," Always relabel the ",[390,1963,1964],{},"smaller"," set. When uniting the sets of ",[427,1967,1969],{"className":1968},[430],[427,1970,1972],{"className":1971,"ariaHidden":435},[434],[427,1973,1975,1978],{"className":1974},[439],[427,1976],{"className":1977,"style":930},[443],[427,1979,1838],{"className":1980},[448,449],[427,1982,1984],{"className":1983},[430],[427,1985,1987],{"className":1986,"ariaHidden":435},[434],[427,1988,1990,1993],{"className":1989},[439],[427,1991],{"className":1992,"style":930},[443],[427,1994,1872],{"className":1995,"style":1060},[448,449],",\nrewrite the labels of whichever set has ",[390,1998,1999],{},"fewer"," members, and keep the larger\nset's label.",[381,2002,2003,2004,2034,2035,2075,2076,2091],{},"To do this efficiently, alongside ",[427,2005,2007],{"className":2006},[430],[427,2008,2010],{"className":2009,"ariaHidden":435},[434],[427,2011,2013,2016,2019,2022,2025,2028,2031],{"className":2012},[439],[427,2014],{"className":2015,"style":444},[443],[427,2017,1726],{"className":2018},[448,449],[427,2020,498],{"className":2021},[448,449],[427,2023,381],{"className":2024},[448,449],[427,2026,1736],{"className":2027},[455],[427,2029],{"className":2030,"style":503},[502],[427,2032,1743],{"className":2033},[463]," keep a list ",[427,2036,2038],{"className":2037},[430],[427,2039,2041],{"className":2040,"ariaHidden":435},[434],[427,2042,2044,2047,2050,2053,2057,2061,2065,2068,2072],{"className":2043},[439],[427,2045],{"className":2046,"style":444},[443],[427,2048,498],{"className":2049},[448,449],[427,2051,1522],{"className":2052},[448,449],[427,2054,2056],{"className":2055},[448,449],"mb",[427,2058,2060],{"className":2059,"style":450},[448,449],"er",[427,2062,2064],{"className":2063},[448,449],"s",[427,2066,1736],{"className":2067},[455],[427,2069,2071],{"className":2070},[448],"ℓ",[427,2073,1743],{"className":2074},[463]," of the\nelements currently carrying label ",[427,2077,2079],{"className":2078},[430],[427,2080,2082],{"className":2081,"ariaHidden":435},[434],[427,2083,2085,2088],{"className":2084},[439],[427,2086],{"className":2087,"style":1227},[443],[427,2089,2071],{"className":2090},[448],", plus each set's size; the union then\nsplices the smaller list into the larger and relabels only the short side.",[381,2093,2094,2095,2098,2099,2101,2102,2105,2106,2171,2172,2237,2238,2253,2254,2257,2258,2297,2298,2322],{},"Why does this help so much? ",[385,2096,2097],{},"Charge the cost to the elements that get\nrelabeled."," An element's label changes only when it sits in the ",[390,2100,1964],{}," of two\nmerging sets, and after that merge, the set it belongs to is ",[390,2103,2104],{},"at least twice"," as\nbig as before. A set can double in size at most ",[427,2107,2109],{"className":2108},[430],[427,2110,2112],{"className":2111,"ariaHidden":435},[434],[427,2113,2115,2119,2165,2168],{"className":2114},[439],[427,2116],{"className":2117,"style":2118},[443],"height:0.9386em;vertical-align:-0.2441em;",[427,2120,2122,2128],{"className":2121},[507],[427,2123,2125],{"className":2124},[507],[427,2126,513],{"className":2127,"style":512},[448,511],[427,2129,2131],{"className":2130},[712],[427,2132,2134,2156],{"className":2133},[716,717],[427,2135,2137,2153],{"className":2136},[721],[427,2138,2141],{"className":2139,"style":2140},[725],"height:0.207em;",[427,2142,2144,2147],{"style":2143},"top:-2.4559em;margin-right:0.05em;",[427,2145],{"className":2146,"style":734},[733],[427,2148,2150],{"className":2149},[738,739,740,741],[427,2151,796],{"className":2152},[448,741],[427,2154,749],{"className":2155},[748],[427,2157,2159],{"className":2158},[721],[427,2160,2163],{"className":2161,"style":2162},[725],"height:0.2441em;",[427,2164],{},[427,2166],{"className":2167,"style":503},[502],[427,2169,520],{"className":2170},[448,449]," times before it\nswallows the whole universe, so ",[385,2173,2174,2175,2236],{},"each element is relabeled at most ",[427,2176,2178],{"className":2177},[430],[427,2179,2181],{"className":2180,"ariaHidden":435},[434],[427,2182,2184,2187,2230,2233],{"className":2183},[439],[427,2185],{"className":2186,"style":2118},[443],[427,2188,2190,2196],{"className":2189},[507],[427,2191,2193],{"className":2192},[507],[427,2194,513],{"className":2195,"style":512},[448,511],[427,2197,2199],{"className":2198},[712],[427,2200,2202,2222],{"className":2201},[716,717],[427,2203,2205,2219],{"className":2204},[721],[427,2206,2208],{"className":2207,"style":2140},[725],[427,2209,2210,2213],{"style":2143},[427,2211],{"className":2212,"style":734},[733],[427,2214,2216],{"className":2215},[738,739,740,741],[427,2217,796],{"className":2218},[448,741],[427,2220,749],{"className":2221},[748],[427,2223,2225],{"className":2224},[721],[427,2226,2228],{"className":2227,"style":2162},[725],[427,2229],{},[427,2231],{"className":2232,"style":503},[502],[427,2234,520],{"className":2235},[448,449],"\ntimes"," over the entire run. Summed over all ",[427,2239,2241],{"className":2240},[430],[427,2242,2244],{"className":2243,"ariaHidden":435},[434],[427,2245,2247,2250],{"className":2246},[439],[427,2248],{"className":2249,"style":930},[443],[427,2251,520],{"className":2252},[448,449]," elements, ",[390,2255,2256],{},"all"," of the union\nwork together costs ",[427,2259,2261],{"className":2260},[430],[427,2262,2264],{"className":2263,"ariaHidden":435},[434],[427,2265,2267,2270,2273,2276,2279,2282,2288,2291,2294],{"className":2266},[439],[427,2268],{"className":2269,"style":444},[443],[427,2271,451],{"className":2272,"style":450},[448,449],[427,2274,456],{"className":2275},[455],[427,2277,520],{"className":2278},[448,449],[427,2280],{"className":2281,"style":503},[502],[427,2283,2285],{"className":2284},[507],[427,2286,513],{"className":2287,"style":512},[448,511],[427,2289],{"className":2290,"style":503},[502],[427,2292,520],{"className":2293},[448,449],[427,2295,464],{"className":2296},[463],", even though a single union might still touch\n",[427,2299,2301],{"className":2300},[430],[427,2302,2304],{"className":2303,"ariaHidden":435},[434],[427,2305,2307,2310,2313,2316,2319],{"className":2306},[439],[427,2308],{"className":2309,"style":444},[443],[427,2311,660],{"className":2312},[448],[427,2314,456],{"className":2315},[455],[427,2317,520],{"className":2318},[448,449],[427,2320,464],{"className":2321},[463]," elements.",[381,2324,2325,2326,2329,2330,2369,2370,2373,2374,2398,2399,465],{},"This is the whole game in miniature: a structurally trivial idea (relabel the\nsmaller side) plus an amortized ",[1103,2327,2328],{},"doubling"," argument turns a quadratic-looking\ncost into ",[427,2331,2333],{"className":2332},[430],[427,2334,2336],{"className":2335,"ariaHidden":435},[434],[427,2337,2339,2342,2345,2348,2351,2354,2360,2363,2366],{"className":2338},[439],[427,2340],{"className":2341,"style":444},[443],[427,2343,451],{"className":2344,"style":450},[448,449],[427,2346,456],{"className":2347},[455],[427,2349,520],{"className":2350},[448,449],[427,2352],{"className":2353,"style":503},[502],[427,2355,2357],{"className":2356},[507],[427,2358,513],{"className":2359,"style":512},[448,511],[427,2361],{"className":2362,"style":503},[502],[427,2364,520],{"className":2365},[448,449],[427,2367,464],{"className":2368},[463],". The forest representation below keeps exactly this\nintuition, ",[390,2371,2372],{},"the smaller thing yields to the larger",", but replaces the explicit\nrelabeling with a single pointer move, so a union becomes ",[427,2375,2377],{"className":2376},[430],[427,2378,2380],{"className":2379,"ariaHidden":435},[434],[427,2381,2383,2386,2389,2392,2395],{"className":2382},[439],[427,2384],{"className":2385,"style":444},[443],[427,2387,451],{"className":2388,"style":450},[448,449],[427,2390,456],{"className":2391},[455],[427,2393,424],{"className":2394},[448],[427,2396,464],{"className":2397},[463]," instead of\n",[427,2400,2402],{"className":2401},[430],[427,2403,2405],{"className":2404,"ariaHidden":435},[434],[427,2406,2408,2411,2414,2417,2424],{"className":2407},[439],[427,2409],{"className":2410,"style":444},[443],[427,2412,451],{"className":2413,"style":450},[448,449],[427,2415,456],{"className":2416},[455],[427,2418,2420],{"className":2419},[448,570],[427,2421,2423],{"className":2422},[448],"size",[427,2425,464],{"className":2426},[463],[381,2428,2429,2430,2432],{},"Everything now hinges on ",[390,2431,1909],{}," root we hang beneath the other. Get it wrong and\nthe forest degenerates into exactly the chain we feared; get it right and the\ntrees stay flat. The figure contrasts the two outcomes of the same four merges.",[1308,2434,2436,2729],{"className":2435},[1311,1312],[1314,2437,2441],{"xmlns":1316,"width":2438,"height":2439,"viewBox":2440},"335.761","190.091","-75 -75 251.821 142.568",[1321,2442,2443,2446,2454,2457,2464,2467,2474,2477,2484,2487,2490,2493,2496,2499,2502,2505,2508,2538,2584,2587,2593,2596,2602,2605,2611,2614,2620,2623,2626,2629,2632,2635,2638,2641,2644,2689],{"stroke":1323,"style":1324},[1326,2444],{"fill":1328,"d":2445},"M-20.268-42.62c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.459-9.959 9.959 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,2447,2449],{"transform":2448},"translate(-2.45 1.937)",[1326,2450],{"d":2451,"fill":1323,"stroke":1323,"className":2452,"style":2453},"M-28.604-42.518Q-29-42.518-29.286-42.722Q-29.571-42.927-29.718-43.261Q-29.866-43.595-29.866-43.986Q-29.866-44.421-29.692-44.882Q-29.518-45.344-29.206-45.735Q-28.894-46.126-28.484-46.361Q-28.073-46.596-27.633-46.596Q-27.365-46.596-27.148-46.458Q-26.930-46.319-26.798-46.073Q-26.759-46.223-26.651-46.319Q-26.543-46.416-26.403-46.416Q-26.280-46.416-26.196-46.343Q-26.113-46.271-26.113-46.148Q-26.113-46.095-26.122-46.064L-26.741-43.573Q-26.798-43.375-26.798-43.177Q-26.798-42.782-26.535-42.782Q-26.249-42.782-26.115-43.105Q-25.981-43.428-25.862-43.933Q-25.853-43.964-25.829-43.988Q-25.805-44.012-25.770-44.012L-25.664-44.012Q-25.616-44.012-25.594-43.979Q-25.572-43.946-25.572-43.898Q-25.686-43.467-25.777-43.214Q-25.867-42.962-26.060-42.740Q-26.253-42.518-26.552-42.518Q-26.860-42.518-27.108-42.689Q-27.356-42.861-27.427-43.151Q-27.682-42.865-27.978-42.692Q-28.275-42.518-28.604-42.518M-28.587-42.782Q-28.257-42.782-27.947-43.023Q-27.638-43.265-27.427-43.581Q-27.418-43.590-27.418-43.608L-26.921-45.572Q-26.978-45.889-27.170-46.113Q-27.361-46.337-27.651-46.337Q-28.020-46.337-28.319-46.018Q-28.618-45.700-28.785-45.291Q-28.921-44.944-29.046-44.434Q-29.171-43.924-29.171-43.599Q-29.171-43.274-29.033-43.028Q-28.894-42.782-28.587-42.782",[1337],"stroke-width:0.270",[1326,2455],{"fill":1328,"d":2456},"M-20.268-14.166c0-5.5-4.458-9.959-9.958-9.959s-9.959 4.459-9.959 9.959 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,2458,2460],{"transform":2459},"translate(-1.982 31.578)",[1326,2461],{"d":2462,"fill":1323,"stroke":1323,"className":2463,"style":2453},"M-28.604-42.518Q-29.180-42.518-29.501-42.949Q-29.822-43.379-29.822-43.959Q-29.822-44.364-29.738-44.592L-28.859-48.090Q-28.824-48.240-28.824-48.314Q-28.824-48.451-29.391-48.451Q-29.488-48.451-29.488-48.569Q-29.488-48.626-29.457-48.697Q-29.426-48.767-29.360-48.767L-28.139-48.864Q-28.086-48.864-28.053-48.835Q-28.020-48.806-28.020-48.758L-28.020-48.723L-28.679-46.113Q-28.156-46.596-27.633-46.596Q-27.247-46.596-26.956-46.392Q-26.666-46.187-26.519-45.853Q-26.372-45.519-26.372-45.128Q-26.372-44.544-26.675-43.935Q-26.978-43.327-27.499-42.922Q-28.020-42.518-28.604-42.518M-28.587-42.782Q-28.218-42.782-27.914-43.105Q-27.611-43.428-27.453-43.823Q-27.308-44.179-27.187-44.687Q-27.066-45.194-27.066-45.515Q-27.066-45.840-27.211-46.088Q-27.356-46.337-27.651-46.337Q-28.253-46.337-28.824-45.537L-29.066-44.544Q-29.211-43.920-29.211-43.656Q-29.211-43.313-29.059-43.047Q-28.908-42.782-28.587-42.782",[1337],[1326,2465],{"fill":1328,"d":2466},"M-20.268 14.286c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,2468,2470],{"transform":2469},"translate(-2.002 58.843)",[1326,2471],{"d":2472,"fill":1323,"stroke":1323,"className":2473,"style":2453},"M-29.136-43.726Q-29.136-43.331-28.923-43.056Q-28.710-42.782-28.328-42.782Q-27.783-42.782-27.277-43.017Q-26.772-43.252-26.455-43.674Q-26.434-43.709-26.372-43.709Q-26.315-43.709-26.269-43.658Q-26.223-43.608-26.223-43.555Q-26.223-43.520-26.249-43.494Q-26.596-43.019-27.159-42.768Q-27.721-42.518-28.345-42.518Q-28.776-42.518-29.125-42.720Q-29.475-42.922-29.666-43.278Q-29.857-43.634-29.857-44.060Q-29.857-44.522-29.655-44.979Q-29.453-45.436-29.097-45.805Q-28.741-46.174-28.297-46.385Q-27.853-46.596-27.383-46.596Q-27.115-46.596-26.866-46.515Q-26.618-46.433-26.451-46.255Q-26.284-46.077-26.284-45.814Q-26.284-45.577-26.434-45.399Q-26.583-45.221-26.816-45.221Q-26.956-45.221-27.062-45.315Q-27.167-45.410-27.167-45.555Q-27.167-45.757-27.020-45.911Q-26.873-46.064-26.671-46.064Q-26.776-46.205-26.981-46.271Q-27.185-46.337-27.392-46.337Q-27.928-46.337-28.325-45.908Q-28.723-45.480-28.930-44.860Q-29.136-44.241-29.136-43.726",[1337],[1326,2475],{"fill":1328,"d":2476},"M-20.268 42.739c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,2478,2480],{"transform":2479},"translate(-2.396 88.483)",[1326,2481],{"d":2482,"fill":1323,"stroke":1323,"className":2483,"style":2453},"M-28.604-42.518Q-29-42.518-29.286-42.722Q-29.571-42.927-29.718-43.261Q-29.866-43.595-29.866-43.986Q-29.866-44.421-29.692-44.882Q-29.518-45.344-29.206-45.735Q-28.894-46.126-28.484-46.361Q-28.073-46.596-27.633-46.596Q-27.365-46.596-27.148-46.458Q-26.930-46.319-26.798-46.073L-26.293-48.090Q-26.258-48.240-26.258-48.314Q-26.258-48.451-26.825-48.451Q-26.921-48.451-26.921-48.569Q-26.921-48.626-26.891-48.697Q-26.860-48.767-26.798-48.767L-25.572-48.864Q-25.519-48.864-25.489-48.835Q-25.458-48.806-25.458-48.758L-25.458-48.723L-26.741-43.573Q-26.741-43.515-26.770-43.384Q-26.798-43.252-26.798-43.177Q-26.798-42.782-26.535-42.782Q-26.249-42.782-26.115-43.105Q-25.981-43.428-25.862-43.933Q-25.853-43.964-25.829-43.988Q-25.805-44.012-25.770-44.012L-25.664-44.012Q-25.616-44.012-25.594-43.979Q-25.572-43.946-25.572-43.898Q-25.686-43.467-25.777-43.214Q-25.867-42.962-26.060-42.740Q-26.253-42.518-26.552-42.518Q-26.860-42.518-27.108-42.689Q-27.356-42.861-27.427-43.151Q-27.682-42.865-27.978-42.692Q-28.275-42.518-28.604-42.518M-28.587-42.782Q-28.257-42.782-27.947-43.023Q-27.638-43.265-27.427-43.581Q-27.418-43.590-27.418-43.617L-26.921-45.572Q-26.978-45.889-27.170-46.113Q-27.361-46.337-27.651-46.337Q-28.020-46.337-28.319-46.018Q-28.618-45.700-28.785-45.291Q-28.921-44.944-29.046-44.434Q-29.171-43.924-29.171-43.599Q-29.171-43.274-29.033-43.028Q-28.894-42.782-28.587-42.782",[1337],[1326,2485],{"fill":1328,"d":2486},"M-30.226 32.58v-6.135",[1326,2488],{"stroke":1328,"d":2489},"m-30.226 24.445-1.6 3.2 1.6-1.2 1.6 1.2",[1326,2491],{"fill":1328,"d":2492},"M-30.226 4.128v-6.136",[1326,2494],{"stroke":1328,"d":2495},"m-30.226-4.008-1.6 3.2 1.6-1.2 1.6 1.2",[1326,2497],{"fill":1328,"d":2498},"M-30.226-24.325v-6.136",[1326,2500],{"stroke":1328,"d":2501},"m-30.226-32.46-1.6 3.2 1.6-1.2 1.6 1.2",[1326,2503],{"fill":1328,"d":2504},"M-40.038-39.99c-15.844 4.245-15.844-9.503-2.898-6.034",[1326,2506],{"stroke":1328,"d":2507},"m-41.004-45.507-2.677-2.373.745 1.856-1.573 1.234",[1321,2509,2512,2520,2526,2532],{"stroke":1328,"fontFamily":2510,"fontSize":2511},"cmr8","8",[1321,2513,2515],{"transform":2514},"translate(-32.044 -20.762)",[1326,2516],{"d":2517,"fill":1323,"stroke":1323,"className":2518,"style":2519},"M-29.945-44.346Q-29.945-44.842-29.695-45.267Q-29.445-45.693-29.025-45.939Q-28.605-46.185-28.105-46.185Q-27.566-46.185-27.175-46.060Q-26.785-45.935-26.785-45.521Q-26.785-45.416-26.835-45.324Q-26.886-45.232-26.978-45.181Q-27.070-45.131-27.179-45.131Q-27.285-45.131-27.376-45.181Q-27.468-45.232-27.519-45.324Q-27.570-45.416-27.570-45.521Q-27.570-45.744-27.402-45.849Q-27.624-45.908-28.097-45.908Q-28.394-45.908-28.609-45.769Q-28.824-45.631-28.955-45.400Q-29.085-45.170-29.144-44.900Q-29.203-44.631-29.203-44.346Q-29.203-43.951-29.070-43.601Q-28.937-43.252-28.665-43.035Q-28.394-42.818-27.996-42.818Q-27.621-42.818-27.345-43.035Q-27.070-43.252-26.968-43.611Q-26.953-43.674-26.890-43.674L-26.785-43.674Q-26.749-43.674-26.724-43.646Q-26.699-43.619-26.699-43.580L-26.699-43.556Q-26.831-43.076-27.216-42.808Q-27.601-42.541-28.105-42.541Q-28.468-42.541-28.802-42.678Q-29.136-42.814-29.396-43.064Q-29.656-43.314-29.800-43.650Q-29.945-43.986-29.945-44.346M-26.113-43.451Q-26.113-43.935-25.710-44.230Q-25.308-44.525-24.757-44.644Q-24.206-44.764-23.714-44.764L-23.714-45.053Q-23.714-45.279-23.830-45.486Q-23.945-45.693-24.142-45.812Q-24.339-45.931-24.570-45.931Q-24.996-45.931-25.281-45.826Q-25.210-45.799-25.163-45.744Q-25.117-45.689-25.091-45.619Q-25.066-45.549-25.066-45.474Q-25.066-45.369-25.117-45.277Q-25.167-45.185-25.259-45.135Q-25.351-45.084-25.456-45.084Q-25.562-45.084-25.654-45.135Q-25.746-45.185-25.796-45.277Q-25.847-45.369-25.847-45.474Q-25.847-45.892-25.458-46.039Q-25.070-46.185-24.570-46.185Q-24.238-46.185-23.884-46.055Q-23.531-45.924-23.302-45.670Q-23.074-45.416-23.074-45.068L-23.074-43.267Q-23.074-43.135-23.001-43.025Q-22.929-42.916-22.800-42.916Q-22.675-42.916-22.607-43.021Q-22.538-43.127-22.538-43.267L-22.538-43.779L-22.257-43.779L-22.257-43.267Q-22.257-43.064-22.374-42.906Q-22.492-42.748-22.673-42.664Q-22.855-42.580-23.058-42.580Q-23.288-42.580-23.441-42.752Q-23.593-42.924-23.624-43.154Q-23.785-42.873-24.093-42.707Q-24.402-42.541-24.753-42.541Q-25.265-42.541-25.689-42.764Q-26.113-42.986-26.113-43.451M-25.425-43.451Q-25.425-43.166-25.199-42.980Q-24.972-42.795-24.679-42.795Q-24.433-42.795-24.208-42.912Q-23.984-43.029-23.849-43.232Q-23.714-43.435-23.714-43.689L-23.714-44.521Q-23.980-44.521-24.265-44.467Q-24.550-44.412-24.822-44.283Q-25.093-44.154-25.259-43.947Q-25.425-43.740-25.425-43.451M-19.956-42.619L-21.937-42.619L-21.937-42.916Q-21.667-42.916-21.499-42.961Q-21.331-43.006-21.331-43.178L-21.331-45.314Q-21.331-45.529-21.394-45.625Q-21.456-45.721-21.574-45.742Q-21.691-45.764-21.937-45.764L-21.937-46.060L-20.769-46.146L-20.769-45.361Q-20.691-45.572-20.538-45.758Q-20.386-45.943-20.187-46.045Q-19.988-46.146-19.761-46.146Q-19.515-46.146-19.324-46.002Q-19.132-45.857-19.132-45.627Q-19.132-45.471-19.238-45.361Q-19.343-45.252-19.499-45.252Q-19.656-45.252-19.765-45.361Q-19.874-45.471-19.874-45.627Q-19.874-45.787-19.769-45.892Q-20.093-45.892-20.308-45.664Q-20.523-45.435-20.619-45.096Q-20.714-44.756-20.714-44.451L-20.714-43.178Q-20.714-43.010-20.488-42.963Q-20.261-42.916-19.956-42.916L-19.956-42.619M-18.652-44.373Q-18.652-44.853-18.419-45.269Q-18.187-45.685-17.777-45.935Q-17.367-46.185-16.890-46.185Q-16.160-46.185-15.761-45.744Q-15.363-45.303-15.363-44.572Q-15.363-44.467-15.456-44.443L-17.906-44.443L-17.906-44.373Q-17.906-43.963-17.785-43.607Q-17.663-43.252-17.392-43.035Q-17.121-42.818-16.691-42.818Q-16.328-42.818-16.031-43.047Q-15.734-43.275-15.632-43.627Q-15.624-43.674-15.538-43.689L-15.456-43.689Q-15.363-43.662-15.363-43.580Q-15.363-43.572-15.371-43.541Q-15.433-43.314-15.572-43.131Q-15.710-42.947-15.902-42.814Q-16.093-42.681-16.312-42.611Q-16.531-42.541-16.769-42.541Q-17.140-42.541-17.478-42.678Q-17.816-42.814-18.083-43.066Q-18.351-43.318-18.501-43.658Q-18.652-43.998-18.652-44.373M-17.898-44.681L-15.937-44.681Q-15.937-44.986-16.038-45.277Q-16.140-45.568-16.357-45.750Q-16.574-45.931-16.890-45.931Q-17.191-45.931-17.421-45.744Q-17.652-45.556-17.775-45.265Q-17.898-44.974-17.898-44.681M-12.960-42.619L-14.792-42.619L-14.792-42.916Q-14.519-42.916-14.351-42.963Q-14.183-43.010-14.183-43.178L-14.183-47.338Q-14.183-47.553-14.246-47.648Q-14.308-47.744-14.427-47.765Q-14.546-47.787-14.792-47.787L-14.792-48.084L-13.570-48.170L-13.570-43.178Q-13.570-43.010-13.402-42.963Q-13.234-42.916-12.960-42.916L-12.960-42.619M-12.515-44.373Q-12.515-44.853-12.283-45.269Q-12.050-45.685-11.640-45.935Q-11.230-46.185-10.753-46.185Q-10.023-46.185-9.624-45.744Q-9.226-45.303-9.226-44.572Q-9.226-44.467-9.320-44.443L-11.769-44.443L-11.769-44.373Q-11.769-43.963-11.648-43.607Q-11.527-43.252-11.255-43.035Q-10.984-42.818-10.554-42.818Q-10.191-42.818-9.894-43.047Q-9.597-43.275-9.496-43.627Q-9.488-43.674-9.402-43.689L-9.320-43.689Q-9.226-43.662-9.226-43.580Q-9.226-43.572-9.234-43.541Q-9.296-43.314-9.435-43.131Q-9.574-42.947-9.765-42.814Q-9.956-42.681-10.175-42.611Q-10.394-42.541-10.632-42.541Q-11.003-42.541-11.341-42.678Q-11.679-42.814-11.947-43.066Q-12.214-43.318-12.365-43.658Q-12.515-43.998-12.515-44.373M-11.761-44.681L-9.800-44.681Q-9.800-44.986-9.902-45.277Q-10.003-45.568-10.220-45.750Q-10.437-45.931-10.753-45.931Q-11.054-45.931-11.285-45.744Q-11.515-45.556-11.638-45.265Q-11.761-44.974-11.761-44.681M-8.695-42.627L-8.695-43.849Q-8.695-43.877-8.663-43.908Q-8.632-43.939-8.609-43.939L-8.503-43.939Q-8.433-43.939-8.417-43.877Q-8.355-43.556-8.216-43.316Q-8.078-43.076-7.845-42.935Q-7.613-42.795-7.304-42.795Q-7.066-42.795-6.857-42.855Q-6.648-42.916-6.511-43.064Q-6.374-43.213-6.374-43.459Q-6.374-43.713-6.585-43.879Q-6.796-44.045-7.066-44.099L-7.687-44.213Q-8.093-44.291-8.394-44.547Q-8.695-44.803-8.695-45.178Q-8.695-45.545-8.494-45.767Q-8.292-45.990-7.968-46.088Q-7.644-46.185-7.304-46.185Q-6.839-46.185-6.542-45.978L-6.320-46.162Q-6.296-46.185-6.265-46.185L-6.214-46.185Q-6.183-46.185-6.156-46.158Q-6.128-46.131-6.128-46.099L-6.128-45.115Q-6.128-45.084-6.154-45.055Q-6.179-45.025-6.214-45.025L-6.320-45.025Q-6.355-45.025-6.382-45.053Q-6.410-45.080-6.410-45.115Q-6.410-45.514-6.662-45.734Q-6.913-45.955-7.312-45.955Q-7.667-45.955-7.951-45.832Q-8.234-45.709-8.234-45.404Q-8.234-45.185-8.033-45.053Q-7.831-44.920-7.585-44.877L-6.960-44.764Q-6.531-44.674-6.222-44.377Q-5.913-44.080-5.913-43.666Q-5.913-43.096-6.312-42.818Q-6.710-42.541-7.304-42.541Q-7.855-42.541-8.206-42.877L-8.503-42.564Q-8.527-42.541-8.562-42.541L-8.609-42.541Q-8.632-42.541-8.663-42.572Q-8.695-42.603-8.695-42.627M-5.343-42.627L-5.343-43.849Q-5.343-43.877-5.312-43.908Q-5.281-43.939-5.257-43.939L-5.152-43.939Q-5.081-43.939-5.066-43.877Q-5.003-43.556-4.865-43.316Q-4.726-43.076-4.494-42.935Q-4.261-42.795-3.953-42.795Q-3.714-42.795-3.505-42.855Q-3.296-42.916-3.160-43.064Q-3.023-43.213-3.023-43.459Q-3.023-43.713-3.234-43.879Q-3.445-44.045-3.714-44.099L-4.335-44.213Q-4.742-44.291-5.042-44.547Q-5.343-44.803-5.343-45.178Q-5.343-45.545-5.142-45.767Q-4.941-45.990-4.617-46.088Q-4.292-46.185-3.953-46.185Q-3.488-46.185-3.191-45.978L-2.968-46.162Q-2.945-46.185-2.913-46.185L-2.863-46.185Q-2.831-46.185-2.804-46.158Q-2.777-46.131-2.777-46.099L-2.777-45.115Q-2.777-45.084-2.802-45.055Q-2.828-45.025-2.863-45.025L-2.968-45.025Q-3.003-45.025-3.031-45.053Q-3.058-45.080-3.058-45.115Q-3.058-45.514-3.310-45.734Q-3.562-45.955-3.960-45.955Q-4.316-45.955-4.599-45.832Q-4.882-45.709-4.882-45.404Q-4.882-45.185-4.681-45.053Q-4.480-44.920-4.234-44.877L-3.609-44.764Q-3.179-44.674-2.871-44.377Q-2.562-44.080-2.562-43.666Q-2.562-43.096-2.960-42.818Q-3.359-42.541-3.953-42.541Q-4.503-42.541-4.855-42.877L-5.152-42.564Q-5.175-42.541-5.210-42.541L-5.257-42.541Q-5.281-42.541-5.312-42.572Q-5.343-42.603-5.343-42.627M-1.554-43.084Q-1.554-43.267-1.417-43.404Q-1.281-43.541-1.089-43.541Q-0.898-43.541-0.765-43.408Q-0.632-43.275-0.632-43.084Q-0.632-42.885-0.765-42.752Q-0.898-42.619-1.089-42.619Q-1.281-42.619-1.417-42.756Q-1.554-42.892-1.554-43.084M-1.554-45.611Q-1.554-45.795-1.417-45.931Q-1.281-46.068-1.089-46.068Q-0.898-46.068-0.765-45.935Q-0.632-45.803-0.632-45.611Q-0.632-45.412-0.765-45.279Q-0.898-45.146-1.089-45.146Q-1.281-45.146-1.417-45.283Q-1.554-45.420-1.554-45.611",[1337],"stroke-width:0.240",[1321,2521,2522],{"transform":2514},[1326,2523],{"d":2524,"fill":1323,"stroke":1323,"className":2525,"style":2519},"M6.044-42.619L4.188-42.619L4.188-42.916Q4.462-42.916 4.630-42.963Q4.798-43.010 4.798-43.178L4.798-47.338Q4.798-47.553 4.735-47.648Q4.673-47.744 4.554-47.765Q4.435-47.787 4.188-47.787L4.188-48.084L5.411-48.170L5.411-45.467Q5.536-45.678 5.724-45.828Q5.911-45.978 6.138-46.062Q6.364-46.146 6.610-46.146Q7.778-46.146 7.778-45.068L7.778-43.178Q7.778-43.010 7.948-42.963Q8.118-42.916 8.388-42.916L8.388-42.619L6.532-42.619L6.532-42.916Q6.806-42.916 6.974-42.963Q7.142-43.010 7.142-43.178L7.142-45.053Q7.142-45.435 7.021-45.664Q6.899-45.892 6.548-45.892Q6.235-45.892 5.981-45.730Q5.728-45.568 5.581-45.299Q5.435-45.029 5.435-44.732L5.435-43.178Q5.435-43.010 5.605-42.963Q5.774-42.916 6.044-42.916L6.044-42.619M8.833-44.373Q8.833-44.853 9.065-45.269Q9.298-45.685 9.708-45.935Q10.118-46.185 10.595-46.185Q11.325-46.185 11.724-45.744Q12.122-45.303 12.122-44.572Q12.122-44.467 12.028-44.443L9.579-44.443L9.579-44.373Q9.579-43.963 9.700-43.607Q9.821-43.252 10.093-43.035Q10.364-42.818 10.794-42.818Q11.157-42.818 11.454-43.047Q11.751-43.275 11.853-43.627Q11.860-43.674 11.946-43.689L12.028-43.689Q12.122-43.662 12.122-43.580Q12.122-43.572 12.114-43.541Q12.052-43.314 11.913-43.131Q11.774-42.947 11.583-42.814Q11.392-42.681 11.173-42.611Q10.954-42.541 10.716-42.541Q10.345-42.541 10.007-42.678Q9.669-42.814 9.401-43.066Q9.134-43.318 8.983-43.658Q8.833-43.998 8.833-44.373M9.587-44.681L11.548-44.681Q11.548-44.986 11.446-45.277Q11.345-45.568 11.128-45.750Q10.911-45.931 10.595-45.931Q10.294-45.931 10.063-45.744Q9.833-45.556 9.710-45.265Q9.587-44.974 9.587-44.681M14.470-42.619L12.692-42.619L12.692-42.916Q12.966-42.916 13.134-42.963Q13.302-43.010 13.302-43.178L13.302-45.314Q13.302-45.529 13.245-45.625Q13.188-45.721 13.075-45.742Q12.962-45.764 12.716-45.764L12.716-46.060L13.915-46.146L13.915-43.178Q13.915-43.010 14.062-42.963Q14.208-42.916 14.470-42.916L14.470-42.619M13.028-47.541Q13.028-47.732 13.163-47.863Q13.298-47.994 13.493-47.994Q13.614-47.994 13.718-47.931Q13.821-47.869 13.884-47.765Q13.946-47.662 13.946-47.541Q13.946-47.346 13.815-47.211Q13.685-47.076 13.493-47.076Q13.294-47.076 13.161-47.209Q13.028-47.342 13.028-47.541M14.970-42.010Q14.970-42.291 15.181-42.502Q15.392-42.713 15.677-42.803Q15.521-42.928 15.442-43.117Q15.364-43.306 15.364-43.506Q15.364-43.861 15.595-44.154Q15.228-44.494 15.228-44.963Q15.228-45.314 15.431-45.584Q15.634-45.853 15.954-46Q16.274-46.146 16.618-46.146Q17.138-46.146 17.509-45.865Q17.872-46.236 18.419-46.236Q18.599-46.236 18.726-46.109Q18.853-45.982 18.853-45.803Q18.853-45.697 18.774-45.619Q18.696-45.541 18.587-45.541Q18.478-45.541 18.401-45.617Q18.325-45.693 18.325-45.803Q18.325-45.904 18.364-45.955Q18.372-45.963 18.376-45.969Q18.380-45.974 18.380-45.978Q18.005-45.978 17.685-45.724Q18.005-45.385 18.005-44.963Q18.005-44.693 17.888-44.476Q17.771-44.260 17.565-44.101Q17.360-43.943 17.118-43.861Q16.876-43.779 16.618-43.779Q16.399-43.779 16.187-43.838Q15.974-43.896 15.778-44.017Q15.685-43.877 15.685-43.697Q15.685-43.490 15.821-43.338Q15.958-43.185 16.165-43.185L16.860-43.185Q17.349-43.185 17.761-43.101Q18.173-43.017 18.452-42.760Q18.731-42.502 18.731-42.010Q18.731-41.646 18.411-41.414Q18.091-41.181 17.649-41.080Q17.208-40.978 16.853-40.978Q16.497-40.978 16.054-41.080Q15.610-41.181 15.290-41.414Q14.970-41.646 14.970-42.010M15.474-42.010Q15.474-41.814 15.618-41.666Q15.763-41.517 15.976-41.428Q16.188-41.338 16.429-41.291Q16.669-41.244 16.853-41.244Q17.095-41.244 17.425-41.322Q17.755-41.400 17.991-41.574Q18.228-41.748 18.228-42.010Q18.228-42.416 17.817-42.525Q17.407-42.635 16.845-42.635L16.165-42.635Q15.896-42.635 15.685-42.457Q15.474-42.279 15.474-42.010M16.618-44.045Q17.341-44.045 17.341-44.963Q17.341-45.885 16.618-45.885Q15.892-45.885 15.892-44.963Q15.892-44.045 16.618-44.045M21.146-42.619L19.290-42.619L19.290-42.916Q19.563-42.916 19.731-42.963Q19.899-43.010 19.899-43.178L19.899-47.338Q19.899-47.553 19.837-47.648Q19.774-47.744 19.655-47.765Q19.536-47.787 19.290-47.787L19.290-48.084L20.513-48.170L20.513-45.467Q20.638-45.678 20.825-45.828Q21.013-45.978 21.239-46.062Q21.466-46.146 21.712-46.146Q22.880-46.146 22.880-45.068L22.880-43.178Q22.880-43.010 23.050-42.963Q23.220-42.916 23.489-42.916L23.489-42.619L21.634-42.619L21.634-42.916Q21.907-42.916 22.075-42.963Q22.243-43.010 22.243-43.178L22.243-45.053Q22.243-45.435 22.122-45.664Q22.001-45.892 21.649-45.892Q21.337-45.892 21.083-45.730Q20.829-45.568 20.683-45.299Q20.536-45.029 20.536-44.732L20.536-43.178Q20.536-43.010 20.706-42.963Q20.876-42.916 21.146-42.916",[1337],[1321,2527,2528],{"transform":2514},[1326,2529],{"d":2530,"fill":1323,"stroke":1323,"className":2531,"style":2519},"M24.336-43.580L24.336-45.771L23.633-45.771L23.633-46.025Q23.989-46.025 24.231-46.258Q24.473-46.490 24.584-46.838Q24.696-47.185 24.696-47.541L24.977-47.541L24.977-46.068L26.153-46.068L26.153-45.771L24.977-45.771L24.977-43.596Q24.977-43.275 25.096-43.047Q25.215-42.818 25.496-42.818Q25.676-42.818 25.793-42.941Q25.910-43.064 25.963-43.244Q26.016-43.424 26.016-43.596L26.016-44.068L26.297-44.068L26.297-43.580Q26.297-43.326 26.192-43.086Q26.086-42.846 25.889-42.693Q25.692-42.541 25.434-42.541Q25.118-42.541 24.866-42.664Q24.614-42.787 24.475-43.021Q24.336-43.256 24.336-43.580",[1337],[1321,2533,2534],{"transform":2514},[1326,2535],{"d":2536,"fill":1323,"stroke":1323,"className":2537,"style":2519},"M30.405-43.252Q30.596-42.978 30.952-42.851Q31.307-42.724 31.690-42.724Q32.026-42.724 32.235-42.910Q32.444-43.096 32.540-43.389Q32.635-43.681 32.635-43.994Q32.635-44.318 32.538-44.613Q32.440-44.908 32.227-45.092Q32.014-45.275 31.682-45.275L31.116-45.275Q31.085-45.275 31.055-45.305Q31.026-45.334 31.026-45.361L31.026-45.443Q31.026-45.478 31.055-45.504Q31.085-45.529 31.116-45.529L31.596-45.564Q31.882-45.564 32.079-45.769Q32.276-45.974 32.372-46.269Q32.467-46.564 32.467-46.842Q32.467-47.221 32.268-47.459Q32.069-47.697 31.690-47.697Q31.370-47.697 31.081-47.590Q30.792-47.482 30.628-47.260Q30.807-47.260 30.930-47.133Q31.053-47.006 31.053-46.834Q31.053-46.662 30.928-46.537Q30.803-46.412 30.628-46.412Q30.456-46.412 30.331-46.537Q30.206-46.662 30.206-46.834Q30.206-47.201 30.430-47.449Q30.655-47.697 30.995-47.818Q31.335-47.939 31.690-47.939Q32.038-47.939 32.401-47.818Q32.764-47.697 33.012-47.447Q33.260-47.197 33.260-46.842Q33.260-46.357 32.942-45.974Q32.624-45.592 32.147-45.420Q32.698-45.310 33.098-44.924Q33.499-44.537 33.499-44.002Q33.499-43.545 33.235-43.189Q32.971-42.834 32.549-42.642Q32.128-42.451 31.690-42.451Q31.280-42.451 30.887-42.586Q30.495-42.721 30.229-43.006Q29.964-43.291 29.964-43.709Q29.964-43.904 30.096-44.033Q30.229-44.162 30.421-44.162Q30.546-44.162 30.649-44.103Q30.753-44.045 30.815-43.939Q30.878-43.834 30.878-43.709Q30.878-43.514 30.743-43.383Q30.608-43.252 30.405-43.252",[1337],[1321,2539,2541,2548,2554,2560,2566,2572,2578],{"fill":2540,"stroke":1328,"fontSize":2511},"var(--tk-warn)",[1321,2542,2544],{"transform":2543},"translate(18.26 44.68)",[1326,2545],{"d":2546,"fill":2540,"stroke":2540,"className":2547,"style":2519},"M-27.210-42.619L-29.800-42.619L-29.800-42.900Q-28.980-42.900-28.980-43.154L-28.980-47.549Q-28.980-47.803-29.800-47.803L-29.800-48.084L-25.226-48.084L-25.003-46.252L-25.234-46.252Q-25.296-46.779-25.398-47.072Q-25.499-47.365-25.683-47.523Q-25.867-47.681-26.171-47.742Q-26.476-47.803-27.019-47.803L-27.828-47.803Q-27.972-47.803-28.052-47.791Q-28.132-47.779-28.183-47.723Q-28.234-47.666-28.234-47.549L-28.234-45.490L-27.617-45.490Q-27.195-45.490-26.996-45.556Q-26.796-45.623-26.714-45.822Q-26.632-46.021-26.632-46.428L-26.402-46.428L-26.402-44.275L-26.632-44.275Q-26.632-44.681-26.714-44.881Q-26.796-45.080-26.996-45.146Q-27.195-45.213-27.617-45.213L-28.234-45.213L-28.234-43.154Q-28.234-42.900-27.210-42.900L-27.210-42.619M-22.410-42.619L-24.234-42.619L-24.234-42.849Q-24.042-42.849-23.919-42.865Q-23.796-42.881-23.712-42.947Q-23.628-43.014-23.628-43.154L-23.628-46.193Q-23.628-46.400-23.787-46.449Q-23.945-46.498-24.234-46.498L-24.234-46.732L-22.410-46.732L-22.410-46.498Q-22.703-46.498-22.861-46.449Q-23.019-46.400-23.019-46.193L-23.019-43.154Q-23.019-43.014-22.935-42.947Q-22.851-42.881-22.726-42.865Q-22.601-42.849-22.410-42.849L-22.410-42.619M-20.382-42.619L-21.788-42.619L-21.788-42.849Q-21.214-42.849-21.214-43.373L-21.214-46.451Q-21.355-46.498-21.788-46.498L-21.788-46.732L-20.667-46.732Q-20.632-46.732-20.605-46.697L-18.374-43.603L-18.374-45.978Q-18.374-46.498-18.949-46.498L-18.949-46.732L-17.542-46.732L-17.542-46.498Q-18.117-46.498-18.117-45.978L-18.117-42.689Q-18.117-42.670-18.146-42.644Q-18.175-42.619-18.195-42.619L-18.292-42.619Q-18.331-42.619-18.347-42.650L-20.910-46.193Q-20.925-46.217-20.935-46.230Q-20.945-46.244-20.956-46.260L-20.956-43.373Q-20.956-42.849-20.382-42.849L-20.382-42.619M-14.581-42.619L-16.871-42.619L-16.871-42.849Q-16.683-42.849-16.566-42.865Q-16.449-42.881-16.371-42.947Q-16.292-43.014-16.292-43.154L-16.292-46.193Q-16.292-46.400-16.439-46.449Q-16.585-46.498-16.871-46.498L-16.871-46.732L-14.581-46.732Q-14.167-46.732-13.808-46.562Q-13.449-46.392-13.187-46.101Q-12.925-45.810-12.777-45.430Q-12.628-45.049-12.628-44.635Q-12.628-44.103-12.890-43.637Q-13.152-43.170-13.599-42.894Q-14.046-42.619-14.581-42.619M-15.421-42.849L-14.765-42.849Q-13.996-42.849-13.662-43.340Q-13.328-43.830-13.328-44.635Q-13.328-45.021-13.398-45.351Q-13.468-45.681-13.634-45.943Q-13.800-46.205-14.078-46.351Q-14.355-46.498-14.765-46.498L-15.421-46.498Q-15.605-46.498-15.658-46.441Q-15.710-46.385-15.710-46.193L-15.710-43.154Q-15.710-42.971-15.656-42.910Q-15.601-42.849-15.421-42.849",[1337],[1321,2549,2550],{"transform":2543},[1326,2551],{"d":2552,"fill":2540,"stroke":2540,"className":2553,"style":2519},"M-9.589-40.627Q-10.202-41.084-10.604-41.719Q-11.007-42.353-11.202-43.099Q-11.397-43.846-11.397-44.619Q-11.397-45.392-11.202-46.139Q-11.007-46.885-10.604-47.519Q-10.202-48.154-9.589-48.611Q-9.577-48.615-9.569-48.617Q-9.561-48.619-9.550-48.619L-9.472-48.619Q-9.433-48.619-9.407-48.592Q-9.382-48.564-9.382-48.521Q-9.382-48.471-9.413-48.451Q-9.921-47.998-10.243-47.375Q-10.565-46.752-10.706-46.056Q-10.847-45.361-10.847-44.619Q-10.847-43.885-10.708-43.185Q-10.569-42.486-10.245-41.861Q-9.921-41.236-9.413-40.787Q-9.382-40.767-9.382-40.717Q-9.382-40.674-9.407-40.646Q-9.433-40.619-9.472-40.619L-9.550-40.619Q-9.558-40.623-9.567-40.625Q-9.577-40.627-9.589-40.627",[1337],[1321,2555,2556],{"transform":2543},[1326,2557],{"d":2558,"fill":2540,"stroke":2540,"className":2559,"style":2519},"M-7.397-42.541Q-7.753-42.541-8.022-42.721Q-8.292-42.900-8.432-43.195Q-8.573-43.490-8.573-43.849Q-8.573-44.236-8.411-44.650Q-8.249-45.064-7.965-45.402Q-7.682-45.740-7.313-45.943Q-6.944-46.146-6.542-46.146Q-6.049-46.146-5.772-45.697L-5.335-47.467Q-5.292-47.631-5.292-47.681Q-5.292-47.787-5.788-47.787Q-5.885-47.818-5.885-47.916L-5.862-48.017Q-5.831-48.072-5.772-48.084L-4.671-48.170Q-4.628-48.170-4.588-48.139Q-4.549-48.107-4.549-48.053L-5.702-43.451Q-5.741-43.205-5.741-43.154Q-5.741-42.795-5.495-42.795Q-5.350-42.795-5.249-42.902Q-5.147-43.010-5.083-43.164Q-5.018-43.318-4.969-43.508Q-4.921-43.697-4.901-43.795Q-4.874-43.865-4.811-43.865L-4.710-43.865Q-4.671-43.865-4.645-43.832Q-4.620-43.799-4.620-43.771Q-4.620-43.756-4.628-43.740Q-4.741-43.248-4.940-42.894Q-5.139-42.541-5.510-42.541Q-5.792-42.541-6.018-42.683Q-6.245-42.826-6.327-43.084Q-6.549-42.842-6.823-42.691Q-7.096-42.541-7.397-42.541M-7.381-42.795Q-7.171-42.795-6.962-42.908Q-6.753-43.021-6.583-43.195Q-6.413-43.369-6.284-43.564Q-6.296-43.549-6.305-43.535Q-6.315-43.521-6.327-43.506L-5.893-45.228Q-5.932-45.408-6.018-45.558Q-6.104-45.709-6.241-45.801Q-6.378-45.892-6.557-45.892Q-6.893-45.892-7.165-45.611Q-7.436-45.330-7.596-44.955Q-7.721-44.635-7.819-44.215Q-7.917-43.795-7.917-43.514Q-7.917-43.224-7.784-43.010Q-7.651-42.795-7.381-42.795",[1337],[1321,2561,2562],{"transform":2543},[1326,2563],{"d":2564,"fill":2540,"stroke":2540,"className":2565,"style":2519},"M-3.886-40.619L-3.968-40.619Q-4.004-40.619-4.029-40.648Q-4.054-40.678-4.054-40.717Q-4.054-40.767-4.023-40.787Q-3.636-41.123-3.353-41.572Q-3.070-42.021-2.904-42.521Q-2.738-43.021-2.664-43.539Q-2.590-44.056-2.590-44.619Q-2.590-45.189-2.664-45.705Q-2.738-46.221-2.904-46.717Q-3.070-47.213-3.349-47.660Q-3.629-48.107-4.023-48.451Q-4.054-48.471-4.054-48.521Q-4.054-48.560-4.029-48.590Q-4.004-48.619-3.968-48.619L-3.886-48.619Q-3.875-48.619-3.865-48.617Q-3.855-48.615-3.847-48.611Q-3.234-48.154-2.832-47.519Q-2.429-46.885-2.234-46.139Q-2.039-45.392-2.039-44.619Q-2.039-43.846-2.234-43.099Q-2.429-42.353-2.832-41.719Q-3.234-41.084-3.847-40.627Q-3.859-40.627-3.867-40.625Q-3.875-40.623-3.886-40.619",[1337],[1321,2567,2568],{"transform":2543},[1326,2569],{"d":2570,"fill":2540,"stroke":2540,"className":2571,"style":2519},"M1.859-43.084Q1.859-43.267 1.995-43.404Q2.132-43.541 2.324-43.541Q2.515-43.541 2.648-43.408Q2.781-43.275 2.781-43.084Q2.781-42.885 2.648-42.752Q2.515-42.619 2.324-42.619Q2.132-42.619 1.995-42.756Q1.859-42.892 1.859-43.084M1.859-45.611Q1.859-45.795 1.995-45.931Q2.132-46.068 2.324-46.068Q2.515-46.068 2.648-45.935Q2.781-45.803 2.781-45.611Q2.781-45.412 2.648-45.279Q2.515-45.146 2.324-45.146Q2.132-45.146 1.995-45.283Q1.859-45.420 1.859-45.611",[1337],[1321,2573,2574],{"transform":2543},[1326,2575],{"d":2576,"fill":2540,"stroke":2540,"className":2577,"style":2519},"M6.655-43.252Q6.846-42.978 7.202-42.851Q7.557-42.724 7.940-42.724Q8.276-42.724 8.485-42.910Q8.694-43.096 8.790-43.389Q8.885-43.681 8.885-43.994Q8.885-44.318 8.788-44.613Q8.690-44.908 8.477-45.092Q8.264-45.275 7.932-45.275L7.366-45.275Q7.335-45.275 7.305-45.305Q7.276-45.334 7.276-45.361L7.276-45.443Q7.276-45.478 7.305-45.504Q7.335-45.529 7.366-45.529L7.846-45.564Q8.132-45.564 8.329-45.769Q8.526-45.974 8.622-46.269Q8.717-46.564 8.717-46.842Q8.717-47.221 8.518-47.459Q8.319-47.697 7.940-47.697Q7.620-47.697 7.331-47.590Q7.042-47.482 6.878-47.260Q7.057-47.260 7.180-47.133Q7.303-47.006 7.303-46.834Q7.303-46.662 7.178-46.537Q7.053-46.412 6.878-46.412Q6.706-46.412 6.581-46.537Q6.456-46.662 6.456-46.834Q6.456-47.201 6.680-47.449Q6.905-47.697 7.245-47.818Q7.585-47.939 7.940-47.939Q8.288-47.939 8.651-47.818Q9.014-47.697 9.262-47.447Q9.510-47.197 9.510-46.842Q9.510-46.357 9.192-45.974Q8.874-45.592 8.397-45.420Q8.948-45.310 9.348-44.924Q9.749-44.537 9.749-44.002Q9.749-43.545 9.485-43.189Q9.221-42.834 8.800-42.642Q8.378-42.451 7.940-42.451Q7.530-42.451 7.137-42.586Q6.745-42.721 6.479-43.006Q6.214-43.291 6.214-43.709Q6.214-43.904 6.346-44.033Q6.479-44.162 6.671-44.162Q6.796-44.162 6.899-44.103Q7.003-44.045 7.065-43.939Q7.128-43.834 7.128-43.709Q7.128-43.514 6.993-43.383Q6.858-43.252 6.655-43.252",[1337],[1321,2579,2580],{"transform":2543},[1326,2581],{"d":2582,"fill":2540,"stroke":2540,"className":2583,"style":2519},"M15.113-42.619L13.258-42.619L13.258-42.916Q13.531-42.916 13.699-42.963Q13.867-43.010 13.867-43.178L13.867-47.338Q13.867-47.553 13.804-47.648Q13.742-47.744 13.623-47.765Q13.504-47.787 13.258-47.787L13.258-48.084L14.480-48.170L14.480-45.467Q14.605-45.678 14.793-45.828Q14.980-45.978 15.207-46.062Q15.433-46.146 15.679-46.146Q16.847-46.146 16.847-45.068L16.847-43.178Q16.847-43.010 17.017-42.963Q17.187-42.916 17.457-42.916L17.457-42.619L15.601-42.619L15.601-42.916Q15.875-42.916 16.043-42.963Q16.211-43.010 16.211-43.178L16.211-45.053Q16.211-45.435 16.090-45.664Q15.968-45.892 15.617-45.892Q15.304-45.892 15.050-45.730Q14.797-45.568 14.650-45.299Q14.504-45.029 14.504-44.732L14.504-43.178Q14.504-43.010 14.674-42.963Q14.843-42.916 15.113-42.916L15.113-42.619M17.902-44.314Q17.902-44.818 18.158-45.250Q18.414-45.681 18.849-45.933Q19.285-46.185 19.785-46.185Q20.172-46.185 20.513-46.041Q20.855-45.896 21.117-45.635Q21.379-45.373 21.521-45.037Q21.664-44.701 21.664-44.314Q21.664-43.822 21.400-43.412Q21.136-43.002 20.707-42.771Q20.277-42.541 19.785-42.541Q19.293-42.541 18.859-42.773Q18.425-43.006 18.164-43.414Q17.902-43.822 17.902-44.314M19.785-42.818Q20.242-42.818 20.494-43.041Q20.746-43.264 20.834-43.615Q20.922-43.967 20.922-44.412Q20.922-44.842 20.828-45.180Q20.734-45.517 20.480-45.724Q20.226-45.931 19.785-45.931Q19.136-45.931 18.892-45.515Q18.648-45.099 18.648-44.412Q18.648-43.967 18.736-43.615Q18.824-43.264 19.076-43.041Q19.328-42.818 19.785-42.818M24.031-41.068L22.175-41.068L22.175-41.361Q22.445-41.361 22.613-41.406Q22.781-41.451 22.781-41.627L22.781-45.451Q22.781-45.658 22.625-45.711Q22.468-45.764 22.175-45.764L22.175-46.060L23.398-46.146L23.398-45.681Q23.629-45.904 23.943-46.025Q24.258-46.146 24.597-46.146Q25.070-46.146 25.474-45.900Q25.879-45.654 26.111-45.238Q26.343-44.822 26.343-44.346Q26.343-43.971 26.195-43.642Q26.047-43.314 25.777-43.062Q25.508-42.810 25.164-42.676Q24.820-42.541 24.461-42.541Q24.172-42.541 23.900-42.662Q23.629-42.783 23.422-42.994L23.422-41.627Q23.422-41.451 23.590-41.406Q23.758-41.361 24.031-41.361L24.031-41.068M23.422-45.283L23.422-43.443Q23.574-43.154 23.836-42.974Q24.097-42.795 24.406-42.795Q24.691-42.795 24.914-42.933Q25.136-43.072 25.289-43.303Q25.441-43.533 25.519-43.805Q25.597-44.076 25.597-44.346Q25.597-44.678 25.472-45.035Q25.347-45.392 25.099-45.629Q24.851-45.865 24.504-45.865Q24.179-45.865 23.884-45.709Q23.590-45.553 23.422-45.283M26.910-42.627L26.910-43.849Q26.910-43.877 26.941-43.908Q26.972-43.939 26.996-43.939L27.101-43.939Q27.172-43.939 27.187-43.877Q27.250-43.556 27.388-43.316Q27.527-43.076 27.759-42.935Q27.992-42.795 28.300-42.795Q28.539-42.795 28.748-42.855Q28.957-42.916 29.093-43.064Q29.230-43.213 29.230-43.459Q29.230-43.713 29.019-43.879Q28.808-44.045 28.539-44.099L27.918-44.213Q27.511-44.291 27.211-44.547Q26.910-44.803 26.910-45.178Q26.910-45.545 27.111-45.767Q27.312-45.990 27.636-46.088Q27.961-46.185 28.300-46.185Q28.765-46.185 29.062-45.978L29.285-46.162Q29.308-46.185 29.340-46.185L29.390-46.185Q29.422-46.185 29.449-46.158Q29.476-46.131 29.476-46.099L29.476-45.115Q29.476-45.084 29.451-45.055Q29.425-45.025 29.390-45.025L29.285-45.025Q29.250-45.025 29.222-45.053Q29.195-45.080 29.195-45.115Q29.195-45.514 28.943-45.734Q28.691-45.955 28.293-45.955Q27.937-45.955 27.654-45.832Q27.371-45.709 27.371-45.404Q27.371-45.185 27.572-45.053Q27.773-44.920 28.019-44.877L28.644-44.764Q29.074-44.674 29.383-44.377Q29.691-44.080 29.691-43.666Q29.691-43.096 29.293-42.818Q28.894-42.541 28.300-42.541Q27.750-42.541 27.398-42.877L27.101-42.564Q27.078-42.541 27.043-42.541L26.996-42.541Q26.972-42.541 26.941-42.572Q26.910-42.603 26.910-42.627",[1337],[1326,2585],{"fill":1328,"d":2586},"M127.687.06c0-5.5-4.459-9.959-9.959-9.959S107.77-5.44 107.77.06s4.458 9.958 9.958 9.958 9.959-4.458 9.959-9.958Zm-9.959 0",[1321,2588,2590],{"transform":2589},"translate(145.504 44.617)",[1326,2591],{"d":2451,"fill":1323,"stroke":1323,"className":2592,"style":2453},[1337],[1326,2594],{"fill":1328,"d":2595},"M82.022 42.879c0-5.5-4.458-9.959-9.958-9.959s-9.959 4.459-9.959 9.959 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,2597,2599],{"transform":2598},"translate(100.308 88.623)",[1326,2600],{"d":2462,"fill":1323,"stroke":1323,"className":2601,"style":2453},[1337],[1326,2603],{"fill":1328,"d":2604},"M127.687 48.83c0-5.5-4.459-9.959-9.959-9.959s-9.958 4.459-9.958 9.959 4.458 9.958 9.958 9.958 9.959-4.458 9.959-9.958Zm-9.959 0",[1321,2606,2608],{"transform":2607},"translate(145.952 93.386)",[1326,2609],{"d":2472,"fill":1323,"stroke":1323,"className":2610,"style":2453},[1337],[1326,2612],{"fill":1328,"d":2613},"M173.35 42.879c0-5.5-4.458-9.959-9.958-9.959s-9.958 4.459-9.958 9.959 4.458 9.958 9.958 9.958 9.959-4.458 9.959-9.958Zm-9.958 0",[1321,2615,2617],{"transform":2616},"translate(191.222 88.623)",[1326,2618],{"d":2482,"fill":1323,"stroke":1323,"className":2619,"style":2453},[1337],[1326,2621],{"fill":1328,"d":2622},"m79.474 35.93 29.385-27.554",[1326,2624],{"stroke":1328,"d":2625},"M110.318 7.008 106.89 8.03l1.97.346.218 1.988",[1326,2627],{"fill":1328,"d":2628},"M117.728 38.671V12.218",[1326,2630],{"stroke":1328,"d":2631},"m117.728 10.218-1.6 3.2 1.6-1.2 1.6 1.2",[1326,2633],{"fill":1328,"d":2634},"M155.982 35.93 126.597 8.377",[1326,2636],{"stroke":1328,"d":2637},"m125.138 7.008 1.24 3.356.22-1.988 1.969-.346",[1326,2639],{"fill":1328,"d":2640},"M115.1-9.752c-4.246-15.844 9.502-15.844 6.033-2.898",[1326,2642],{"stroke":1328,"d":2643},"m120.616-10.718 2.373-2.677-1.856.745-1.235-1.573",[1321,2645,2646,2653,2659,2665,2671,2677,2683],{"stroke":1328,"fontFamily":2510,"fontSize":2511},[1321,2647,2649],{"transform":2648},"translate(103.797 6.268)",[1326,2650],{"d":2651,"fill":1323,"stroke":1323,"className":2652,"style":2519},"M-29.304-43.572L-29.304-45.314Q-29.304-45.529-29.367-45.625Q-29.429-45.721-29.548-45.742Q-29.667-45.764-29.913-45.764L-29.913-46.060L-28.667-46.146L-28.667-43.596L-28.667-43.572Q-28.667-43.260-28.613-43.098Q-28.558-42.935-28.408-42.865Q-28.257-42.795-27.937-42.795Q-27.507-42.795-27.234-43.133Q-26.960-43.471-26.960-43.916L-26.960-45.314Q-26.960-45.529-27.023-45.625Q-27.085-45.721-27.205-45.742Q-27.324-45.764-27.570-45.764L-27.570-46.060L-26.324-46.146L-26.324-43.361Q-26.324-43.150-26.261-43.055Q-26.199-42.959-26.080-42.937Q-25.960-42.916-25.714-42.916L-25.714-42.619L-26.937-42.541L-26.937-43.162Q-27.105-42.873-27.386-42.707Q-27.667-42.541-27.988-42.541Q-29.304-42.541-29.304-43.572M-23.339-42.619L-25.195-42.619L-25.195-42.916Q-24.921-42.916-24.753-42.963Q-24.585-43.010-24.585-43.178L-24.585-45.314Q-24.585-45.529-24.648-45.625Q-24.710-45.721-24.830-45.742Q-24.949-45.764-25.195-45.764L-25.195-46.060L-24.003-46.146L-24.003-45.412Q-23.890-45.627-23.697-45.795Q-23.503-45.963-23.265-46.055Q-23.027-46.146-22.773-46.146Q-21.605-46.146-21.605-45.068L-21.605-43.178Q-21.605-43.010-21.435-42.963Q-21.265-42.916-20.996-42.916L-20.996-42.619L-22.851-42.619L-22.851-42.916Q-22.578-42.916-22.410-42.963Q-22.242-43.010-22.242-43.178L-22.242-45.053Q-22.242-45.435-22.363-45.664Q-22.484-45.892-22.835-45.892Q-23.148-45.892-23.402-45.730Q-23.656-45.568-23.802-45.299Q-23.949-45.029-23.949-44.732L-23.949-43.178Q-23.949-43.010-23.779-42.963Q-23.609-42.916-23.339-42.916L-23.339-42.619M-18.691-42.619L-20.468-42.619L-20.468-42.916Q-20.195-42.916-20.027-42.963Q-19.859-43.010-19.859-43.178L-19.859-45.314Q-19.859-45.529-19.915-45.625Q-19.972-45.721-20.085-45.742Q-20.199-45.764-20.445-45.764L-20.445-46.060L-19.246-46.146L-19.246-43.178Q-19.246-43.010-19.099-42.963Q-18.953-42.916-18.691-42.916L-18.691-42.619M-20.132-47.541Q-20.132-47.732-19.997-47.863Q-19.863-47.994-19.667-47.994Q-19.546-47.994-19.443-47.931Q-19.339-47.869-19.277-47.765Q-19.214-47.662-19.214-47.541Q-19.214-47.346-19.345-47.211Q-19.476-47.076-19.667-47.076Q-19.867-47.076-19.999-47.209Q-20.132-47.342-20.132-47.541M-18.191-44.314Q-18.191-44.818-17.935-45.250Q-17.679-45.681-17.244-45.933Q-16.808-46.185-16.308-46.185Q-15.921-46.185-15.580-46.041Q-15.238-45.896-14.976-45.635Q-14.714-45.373-14.572-45.037Q-14.429-44.701-14.429-44.314Q-14.429-43.822-14.693-43.412Q-14.956-43.002-15.386-42.771Q-15.816-42.541-16.308-42.541Q-16.800-42.541-17.234-42.773Q-17.667-43.006-17.929-43.414Q-18.191-43.822-18.191-44.314M-16.308-42.818Q-15.851-42.818-15.599-43.041Q-15.347-43.264-15.259-43.615Q-15.171-43.967-15.171-44.412Q-15.171-44.842-15.265-45.180Q-15.359-45.517-15.613-45.724Q-15.867-45.931-16.308-45.931Q-16.956-45.931-17.201-45.515Q-17.445-45.099-17.445-44.412Q-17.445-43.967-17.357-43.615Q-17.269-43.264-17.017-43.041Q-16.765-42.818-16.308-42.818M-12.015-42.619L-13.871-42.619L-13.871-42.916Q-13.597-42.916-13.429-42.963Q-13.261-43.010-13.261-43.178L-13.261-45.314Q-13.261-45.529-13.324-45.625Q-13.386-45.721-13.505-45.742Q-13.624-45.764-13.871-45.764L-13.871-46.060L-12.679-46.146L-12.679-45.412Q-12.566-45.627-12.372-45.795Q-12.179-45.963-11.941-46.055Q-11.703-46.146-11.449-46.146Q-10.281-46.146-10.281-45.068L-10.281-43.178Q-10.281-43.010-10.111-42.963Q-9.941-42.916-9.671-42.916L-9.671-42.619L-11.527-42.619L-11.527-42.916Q-11.253-42.916-11.085-42.963Q-10.917-43.010-10.917-43.178L-10.917-45.053Q-10.917-45.435-11.038-45.664Q-11.160-45.892-11.511-45.892Q-11.824-45.892-12.078-45.730Q-12.331-45.568-12.478-45.299Q-12.624-45.029-12.624-44.732L-12.624-43.178Q-12.624-43.010-12.455-42.963Q-12.285-42.916-12.015-42.916",[1337],[1321,2654,2655],{"transform":2648},[1326,2656],{"d":2657,"fill":1323,"stroke":1323,"className":2658,"style":2519},"M-5.463-42.619L-5.744-42.619L-5.744-47.338Q-5.744-47.553-5.806-47.648Q-5.869-47.744-5.986-47.765Q-6.103-47.787-6.349-47.787L-6.349-48.084L-5.127-48.170L-5.127-45.681Q-4.650-46.146-3.951-46.146Q-3.470-46.146-3.062-45.902Q-2.654-45.658-2.418-45.244Q-2.181-44.830-2.181-44.346Q-2.181-43.971-2.330-43.642Q-2.478-43.314-2.748-43.062Q-3.017-42.810-3.361-42.676Q-3.705-42.541-4.064-42.541Q-4.385-42.541-4.683-42.689Q-4.982-42.838-5.189-43.099L-5.463-42.619M-5.103-45.291L-5.103-43.451Q-4.951-43.154-4.691-42.974Q-4.431-42.795-4.119-42.795Q-3.693-42.795-3.426-43.014Q-3.158-43.232-3.043-43.578Q-2.928-43.924-2.928-44.346Q-2.928-44.994-3.176-45.443Q-3.424-45.892-4.021-45.892Q-4.357-45.892-4.646-45.734Q-4.935-45.576-5.103-45.291",[1337],[1321,2660,2661],{"transform":2648},[1326,2662],{"d":2663,"fill":1323,"stroke":1323,"className":2664,"style":2519},"M-1.473-41.322Q-1.359-41.244-1.184-41.244Q-0.895-41.244-0.674-41.457Q-0.453-41.670-0.328-41.971L-0.039-42.619L-1.313-45.506Q-1.395-45.681-1.539-45.726Q-1.684-45.771-1.953-45.771L-1.953-46.068L-0.234-46.068L-0.234-45.771Q-0.656-45.771-0.656-45.588Q-0.656-45.576-0.641-45.506L0.297-43.381L1.129-45.291Q1.168-45.381 1.168-45.459Q1.168-45.599 1.066-45.685Q0.965-45.771 0.824-45.771L0.824-46.068L2.176-46.068L2.176-45.771Q1.922-45.771 1.728-45.646Q1.535-45.521 1.430-45.291L-0.016-41.971Q-0.129-41.717-0.295-41.494Q-0.461-41.271-0.690-41.129Q-0.918-40.986-1.184-40.986Q-1.481-40.986-1.721-41.178Q-1.961-41.369-1.961-41.658Q-1.961-41.814-1.856-41.916Q-1.750-42.017-1.602-42.017Q-1.496-42.017-1.416-41.971Q-1.336-41.924-1.289-41.846Q-1.242-41.767-1.242-41.658Q-1.242-41.537-1.303-41.449Q-1.363-41.361-1.473-41.322",[1337],[1321,2666,2667],{"transform":2648},[1326,2668],{"d":2669,"fill":1323,"stroke":1323,"className":2670,"style":2519},"M7.437-42.619L5.457-42.619L5.457-42.916Q5.726-42.916 5.894-42.961Q6.062-43.006 6.062-43.178L6.062-45.314Q6.062-45.529 6-45.625Q5.937-45.721 5.820-45.742Q5.703-45.764 5.457-45.764L5.457-46.060L6.625-46.146L6.625-45.361Q6.703-45.572 6.855-45.758Q7.007-45.943 7.207-46.045Q7.406-46.146 7.632-46.146Q7.878-46.146 8.070-46.002Q8.261-45.857 8.261-45.627Q8.261-45.471 8.156-45.361Q8.050-45.252 7.894-45.252Q7.738-45.252 7.628-45.361Q7.519-45.471 7.519-45.627Q7.519-45.787 7.625-45.892Q7.300-45.892 7.086-45.664Q6.871-45.435 6.775-45.096Q6.679-44.756 6.679-44.451L6.679-43.178Q6.679-43.010 6.906-42.963Q7.132-42.916 7.437-42.916L7.437-42.619M8.839-43.451Q8.839-43.935 9.242-44.230Q9.644-44.525 10.195-44.644Q10.746-44.764 11.238-44.764L11.238-45.053Q11.238-45.279 11.123-45.486Q11.007-45.693 10.810-45.812Q10.613-45.931 10.382-45.931Q9.957-45.931 9.671-45.826Q9.742-45.799 9.789-45.744Q9.836-45.689 9.861-45.619Q9.886-45.549 9.886-45.474Q9.886-45.369 9.836-45.277Q9.785-45.185 9.693-45.135Q9.601-45.084 9.496-45.084Q9.390-45.084 9.298-45.135Q9.207-45.185 9.156-45.277Q9.105-45.369 9.105-45.474Q9.105-45.892 9.494-46.039Q9.882-46.185 10.382-46.185Q10.714-46.185 11.068-46.055Q11.421-45.924 11.650-45.670Q11.878-45.416 11.878-45.068L11.878-43.267Q11.878-43.135 11.951-43.025Q12.023-42.916 12.152-42.916Q12.277-42.916 12.345-43.021Q12.414-43.127 12.414-43.267L12.414-43.779L12.695-43.779L12.695-43.267Q12.695-43.064 12.578-42.906Q12.461-42.748 12.279-42.664Q12.097-42.580 11.894-42.580Q11.664-42.580 11.511-42.752Q11.359-42.924 11.328-43.154Q11.168-42.873 10.859-42.707Q10.550-42.541 10.199-42.541Q9.687-42.541 9.263-42.764Q8.839-42.986 8.839-43.451M9.527-43.451Q9.527-43.166 9.753-42.980Q9.980-42.795 10.273-42.795Q10.519-42.795 10.744-42.912Q10.968-43.029 11.103-43.232Q11.238-43.435 11.238-43.689L11.238-44.521Q10.972-44.521 10.687-44.467Q10.402-44.412 10.130-44.283Q9.859-44.154 9.693-43.947Q9.527-43.740 9.527-43.451M14.918-42.619L13.062-42.619L13.062-42.916Q13.336-42.916 13.503-42.963Q13.671-43.010 13.671-43.178L13.671-45.314Q13.671-45.529 13.609-45.625Q13.546-45.721 13.427-45.742Q13.308-45.764 13.062-45.764L13.062-46.060L14.253-46.146L14.253-45.412Q14.367-45.627 14.560-45.795Q14.753-45.963 14.992-46.055Q15.230-46.146 15.484-46.146Q16.652-46.146 16.652-45.068L16.652-43.178Q16.652-43.010 16.822-42.963Q16.992-42.916 17.261-42.916L17.261-42.619L15.406-42.619L15.406-42.916Q15.679-42.916 15.847-42.963Q16.015-43.010 16.015-43.178L16.015-45.053Q16.015-45.435 15.894-45.664Q15.773-45.892 15.421-45.892Q15.109-45.892 14.855-45.730Q14.601-45.568 14.455-45.299Q14.308-45.029 14.308-44.732L14.308-43.178Q14.308-43.010 14.478-42.963Q14.648-42.916 14.918-42.916L14.918-42.619M19.531-42.619L17.734-42.619L17.734-42.916Q18.003-42.916 18.171-42.961Q18.339-43.006 18.339-43.178L18.339-47.338Q18.339-47.553 18.277-47.648Q18.214-47.744 18.097-47.765Q17.980-47.787 17.734-47.787L17.734-48.084L18.957-48.170L18.957-44.404L20.054-45.291Q20.261-45.471 20.261-45.619Q20.261-45.685 20.209-45.728Q20.156-45.771 20.086-45.771L20.086-46.068L21.621-46.068L21.621-45.771Q21.089-45.771 20.492-45.291L19.882-44.795L20.957-43.396Q21.093-43.221 21.201-43.113Q21.308-43.006 21.443-42.961Q21.578-42.916 21.804-42.916L21.804-42.619L20.179-42.619L20.179-42.916Q20.421-42.916 20.421-43.068Q20.421-43.146 20.378-43.217Q20.336-43.287 20.253-43.396L19.453-44.443L18.925-44.017L18.925-43.178Q18.925-43.010 19.093-42.963Q19.261-42.916 19.531-42.916L19.531-42.619M22.668-43.084Q22.668-43.267 22.804-43.404Q22.941-43.541 23.132-43.541Q23.324-43.541 23.457-43.408Q23.589-43.275 23.589-43.084Q23.589-42.885 23.457-42.752Q23.324-42.619 23.132-42.619Q22.941-42.619 22.804-42.756Q22.668-42.892 22.668-43.084M22.668-45.611Q22.668-45.795 22.804-45.931Q22.941-46.068 23.132-46.068Q23.324-46.068 23.457-45.935Q23.589-45.803 23.589-45.611Q23.589-45.412 23.457-45.279Q23.324-45.146 23.132-45.146Q22.941-45.146 22.804-45.283Q22.668-45.420 22.668-45.611",[1337],[1321,2672,2673],{"transform":2648},[1326,2674],{"d":2675,"fill":1323,"stroke":1323,"className":2676,"style":2519},"M30.269-42.619L28.413-42.619L28.413-42.916Q28.687-42.916 28.855-42.963Q29.023-43.010 29.023-43.178L29.023-47.338Q29.023-47.553 28.960-47.648Q28.898-47.744 28.779-47.765Q28.660-47.787 28.413-47.787L28.413-48.084L29.636-48.170L29.636-45.467Q29.761-45.678 29.949-45.828Q30.136-45.978 30.363-46.062Q30.589-46.146 30.835-46.146Q32.003-46.146 32.003-45.068L32.003-43.178Q32.003-43.010 32.173-42.963Q32.343-42.916 32.613-42.916L32.613-42.619L30.757-42.619L30.757-42.916Q31.031-42.916 31.199-42.963Q31.367-43.010 31.367-43.178L31.367-45.053Q31.367-45.435 31.246-45.664Q31.124-45.892 30.773-45.892Q30.460-45.892 30.206-45.730Q29.953-45.568 29.806-45.299Q29.660-45.029 29.660-44.732L29.660-43.178Q29.660-43.010 29.830-42.963Q29.999-42.916 30.269-42.916L30.269-42.619M33.058-44.373Q33.058-44.853 33.290-45.269Q33.523-45.685 33.933-45.935Q34.343-46.185 34.820-46.185Q35.550-46.185 35.949-45.744Q36.347-45.303 36.347-44.572Q36.347-44.467 36.253-44.443L33.804-44.443L33.804-44.373Q33.804-43.963 33.925-43.607Q34.046-43.252 34.318-43.035Q34.589-42.818 35.019-42.818Q35.382-42.818 35.679-43.047Q35.976-43.275 36.078-43.627Q36.085-43.674 36.171-43.689L36.253-43.689Q36.347-43.662 36.347-43.580Q36.347-43.572 36.339-43.541Q36.277-43.314 36.138-43.131Q35.999-42.947 35.808-42.814Q35.617-42.681 35.398-42.611Q35.179-42.541 34.941-42.541Q34.570-42.541 34.232-42.678Q33.894-42.814 33.626-43.066Q33.359-43.318 33.208-43.658Q33.058-43.998 33.058-44.373M33.812-44.681L35.773-44.681Q35.773-44.986 35.671-45.277Q35.570-45.568 35.353-45.750Q35.136-45.931 34.820-45.931Q34.519-45.931 34.288-45.744Q34.058-45.556 33.935-45.265Q33.812-44.974 33.812-44.681M38.695-42.619L36.917-42.619L36.917-42.916Q37.191-42.916 37.359-42.963Q37.527-43.010 37.527-43.178L37.527-45.314Q37.527-45.529 37.470-45.625Q37.413-45.721 37.300-45.742Q37.187-45.764 36.941-45.764L36.941-46.060L38.140-46.146L38.140-43.178Q38.140-43.010 38.287-42.963Q38.433-42.916 38.695-42.916L38.695-42.619M37.253-47.541Q37.253-47.732 37.388-47.863Q37.523-47.994 37.718-47.994Q37.839-47.994 37.943-47.931Q38.046-47.869 38.109-47.765Q38.171-47.662 38.171-47.541Q38.171-47.346 38.040-47.211Q37.910-47.076 37.718-47.076Q37.519-47.076 37.386-47.209Q37.253-47.342 37.253-47.541M39.195-42.010Q39.195-42.291 39.406-42.502Q39.617-42.713 39.902-42.803Q39.746-42.928 39.667-43.117Q39.589-43.306 39.589-43.506Q39.589-43.861 39.820-44.154Q39.453-44.494 39.453-44.963Q39.453-45.314 39.656-45.584Q39.859-45.853 40.179-46Q40.499-46.146 40.843-46.146Q41.363-46.146 41.734-45.865Q42.097-46.236 42.644-46.236Q42.824-46.236 42.951-46.109Q43.078-45.982 43.078-45.803Q43.078-45.697 42.999-45.619Q42.921-45.541 42.812-45.541Q42.703-45.541 42.626-45.617Q42.550-45.693 42.550-45.803Q42.550-45.904 42.589-45.955Q42.597-45.963 42.601-45.969Q42.605-45.974 42.605-45.978Q42.230-45.978 41.910-45.724Q42.230-45.385 42.230-44.963Q42.230-44.693 42.113-44.476Q41.996-44.260 41.790-44.101Q41.585-43.943 41.343-43.861Q41.101-43.779 40.843-43.779Q40.624-43.779 40.412-43.838Q40.199-43.896 40.003-44.017Q39.910-43.877 39.910-43.697Q39.910-43.490 40.046-43.338Q40.183-43.185 40.390-43.185L41.085-43.185Q41.574-43.185 41.986-43.101Q42.398-43.017 42.677-42.760Q42.956-42.502 42.956-42.010Q42.956-41.646 42.636-41.414Q42.316-41.181 41.874-41.080Q41.433-40.978 41.078-40.978Q40.722-40.978 40.279-41.080Q39.835-41.181 39.515-41.414Q39.195-41.646 39.195-42.010M39.699-42.010Q39.699-41.814 39.843-41.666Q39.988-41.517 40.201-41.428Q40.413-41.338 40.654-41.291Q40.894-41.244 41.078-41.244Q41.320-41.244 41.650-41.322Q41.980-41.400 42.216-41.574Q42.453-41.748 42.453-42.010Q42.453-42.416 42.042-42.525Q41.632-42.635 41.070-42.635L40.390-42.635Q40.121-42.635 39.910-42.457Q39.699-42.279 39.699-42.010M40.843-44.045Q41.566-44.045 41.566-44.963Q41.566-45.885 40.843-45.885Q40.117-45.885 40.117-44.963Q40.117-44.045 40.843-44.045M45.371-42.619L43.515-42.619L43.515-42.916Q43.788-42.916 43.956-42.963Q44.124-43.010 44.124-43.178L44.124-47.338Q44.124-47.553 44.062-47.648Q43.999-47.744 43.880-47.765Q43.761-47.787 43.515-47.787L43.515-48.084L44.738-48.170L44.738-45.467Q44.863-45.678 45.050-45.828Q45.238-45.978 45.464-46.062Q45.691-46.146 45.937-46.146Q47.105-46.146 47.105-45.068L47.105-43.178Q47.105-43.010 47.275-42.963Q47.445-42.916 47.714-42.916L47.714-42.619L45.859-42.619L45.859-42.916Q46.132-42.916 46.300-42.963Q46.468-43.010 46.468-43.178L46.468-45.053Q46.468-45.435 46.347-45.664Q46.226-45.892 45.874-45.892Q45.562-45.892 45.308-45.730Q45.054-45.568 44.908-45.299Q44.761-45.029 44.761-44.732L44.761-43.178Q44.761-43.010 44.931-42.963Q45.101-42.916 45.371-42.916",[1337],[1321,2678,2679],{"transform":2648},[1326,2680],{"d":2681,"fill":1323,"stroke":1323,"className":2682,"style":2519},"M48.562-43.580L48.562-45.771L47.859-45.771L47.859-46.025Q48.215-46.025 48.457-46.258Q48.699-46.490 48.810-46.838Q48.922-47.185 48.922-47.541L49.203-47.541L49.203-46.068L50.379-46.068L50.379-45.771L49.203-45.771L49.203-43.596Q49.203-43.275 49.322-43.047Q49.441-42.818 49.722-42.818Q49.902-42.818 50.019-42.941Q50.136-43.064 50.189-43.244Q50.242-43.424 50.242-43.596L50.242-44.068L50.523-44.068L50.523-43.580Q50.523-43.326 50.418-43.086Q50.312-42.846 50.115-42.693Q49.918-42.541 49.660-42.541Q49.344-42.541 49.092-42.664Q48.840-42.787 48.701-43.021Q48.562-43.256 48.562-43.580",[1337],[1321,2684,2685],{"transform":2648},[1326,2686],{"d":2687,"fill":1323,"stroke":1323,"className":2688,"style":2519},"M57.432-42.619L54.639-42.619L54.639-42.916Q55.701-42.916 55.701-43.178L55.701-47.346Q55.272-47.131 54.592-47.131L54.592-47.428Q55.611-47.428 56.127-47.939L56.272-47.939Q56.346-47.920 56.365-47.842L56.365-43.178Q56.365-42.916 57.432-42.916",[1337],[1321,2690,2691,2697,2702,2707,2712,2717,2723],{"fill":2540,"stroke":1328,"fontSize":2511},[1321,2692,2694],{"transform":2693},"translate(119.521 101.585)",[1326,2695],{"d":2546,"fill":2540,"stroke":2540,"className":2696,"style":2519},[1337],[1321,2698,2699],{"transform":2693},[1326,2700],{"d":2552,"fill":2540,"stroke":2540,"className":2701,"style":2519},[1337],[1321,2703,2704],{"transform":2693},[1326,2705],{"d":2558,"fill":2540,"stroke":2540,"className":2706,"style":2519},[1337],[1321,2708,2709],{"transform":2693},[1326,2710],{"d":2564,"fill":2540,"stroke":2540,"className":2711,"style":2519},[1337],[1321,2713,2714],{"transform":2693},[1326,2715],{"d":2570,"fill":2540,"stroke":2540,"className":2716,"style":2519},[1337],[1321,2718,2719],{"transform":2693},[1326,2720],{"d":2721,"fill":2540,"stroke":2540,"className":2722,"style":2519},"M9.456-42.619L6.663-42.619L6.663-42.916Q7.725-42.916 7.725-43.178L7.725-47.346Q7.296-47.131 6.616-47.131L6.616-47.428Q7.635-47.428 8.151-47.939L8.296-47.939Q8.370-47.920 8.389-47.842L8.389-43.178Q8.389-42.916 9.456-42.916",[1337],[1321,2724,2725],{"transform":2693},[1326,2726],{"d":2727,"fill":2540,"stroke":2540,"className":2728,"style":2519},"M15.113-42.619L13.258-42.619L13.258-42.916Q13.531-42.916 13.699-42.963Q13.867-43.010 13.867-43.178L13.867-47.338Q13.867-47.553 13.804-47.648Q13.742-47.744 13.623-47.765Q13.504-47.787 13.258-47.787L13.258-48.084L14.480-48.170L14.480-45.467Q14.605-45.678 14.793-45.828Q14.980-45.978 15.207-46.062Q15.433-46.146 15.679-46.146Q16.847-46.146 16.847-45.068L16.847-43.178Q16.847-43.010 17.017-42.963Q17.187-42.916 17.457-42.916L17.457-42.619L15.601-42.619L15.601-42.916Q15.875-42.916 16.043-42.963Q16.211-43.010 16.211-43.178L16.211-45.053Q16.211-45.435 16.090-45.664Q15.968-45.892 15.617-45.892Q15.304-45.892 15.050-45.730Q14.797-45.568 14.650-45.299Q14.504-45.029 14.504-44.732L14.504-43.178Q14.504-43.010 14.674-42.963Q14.843-42.916 15.113-42.916L15.113-42.619M17.902-44.314Q17.902-44.818 18.158-45.250Q18.414-45.681 18.849-45.933Q19.285-46.185 19.785-46.185Q20.172-46.185 20.513-46.041Q20.855-45.896 21.117-45.635Q21.379-45.373 21.521-45.037Q21.664-44.701 21.664-44.314Q21.664-43.822 21.400-43.412Q21.136-43.002 20.707-42.771Q20.277-42.541 19.785-42.541Q19.293-42.541 18.859-42.773Q18.425-43.006 18.164-43.414Q17.902-43.822 17.902-44.314M19.785-42.818Q20.242-42.818 20.494-43.041Q20.746-43.264 20.834-43.615Q20.922-43.967 20.922-44.412Q20.922-44.842 20.828-45.180Q20.734-45.517 20.480-45.724Q20.226-45.931 19.785-45.931Q19.136-45.931 18.892-45.515Q18.648-45.099 18.648-44.412Q18.648-43.967 18.736-43.615Q18.824-43.264 19.076-43.041Q19.328-42.818 19.785-42.818M24.031-41.068L22.175-41.068L22.175-41.361Q22.445-41.361 22.613-41.406Q22.781-41.451 22.781-41.627L22.781-45.451Q22.781-45.658 22.625-45.711Q22.468-45.764 22.175-45.764L22.175-46.060L23.398-46.146L23.398-45.681Q23.629-45.904 23.943-46.025Q24.258-46.146 24.597-46.146Q25.070-46.146 25.474-45.900Q25.879-45.654 26.111-45.238Q26.343-44.822 26.343-44.346Q26.343-43.971 26.195-43.642Q26.047-43.314 25.777-43.062Q25.508-42.810 25.164-42.676Q24.820-42.541 24.461-42.541Q24.172-42.541 23.900-42.662Q23.629-42.783 23.422-42.994L23.422-41.627Q23.422-41.451 23.590-41.406Q23.758-41.361 24.031-41.361L24.031-41.068M23.422-45.283L23.422-43.443Q23.574-43.154 23.836-42.974Q24.097-42.795 24.406-42.795Q24.691-42.795 24.914-42.933Q25.136-43.072 25.289-43.303Q25.441-43.533 25.519-43.805Q25.597-44.076 25.597-44.346Q25.597-44.678 25.472-45.035Q25.347-45.392 25.099-45.629Q24.851-45.865 24.504-45.865Q24.179-45.865 23.884-45.709Q23.590-45.553 23.422-45.283",[1337],[1412,2730,2732,2733,2749,2750,2765,2766,2787],{"className":2731},[1415],"The same four unions, two ways. Careless linking builds a height-",[427,2734,2736],{"className":2735},[430],[427,2737,2739],{"className":2738,"ariaHidden":435},[434],[427,2740,2742,2745],{"className":2741},[439],[427,2743],{"className":2744,"style":1270},[443],[427,2746,2748],{"className":2747},[448],"3"," chain; union by rank keeps height ",[427,2751,2753],{"className":2752},[430],[427,2754,2756],{"className":2755,"ariaHidden":435},[434],[427,2757,2759,2762],{"className":2758},[439],[427,2760],{"className":2761,"style":1270},[443],[427,2763,424],{"className":2764},[448]," — every ",[427,2767,2769],{"className":2768},[430],[427,2770,2772],{"className":2771,"ariaHidden":435},[434],[427,2773,2775,2778],{"className":2774},[439],[427,2776],{"className":2777,"style":1227},[443],[427,2779,2781],{"className":2780},[565,566],[427,2782,2784],{"className":2783},[448,570],[427,2785,990],{"className":2786},[448]," is then one hop",[672,2789,2791],{"id":2790},"heuristic-1-union-by-rank","Heuristic 1: union by rank",[381,2793,2794,2795,2798,2799,2802,2803,2805,2806,2809],{},"The trouble is unions that make a tall tree a child of a short one, deepening it.\n",[385,2796,2797],{},"Union by rank"," prevents this. Each root carries a ",[385,2800,2801],{},"rank",", an upper bound on\nthe height of its tree. When uniting two trees, we attach the root of ",[390,2804,1964],{},"\nrank beneath the root of ",[390,2807,2808],{},"larger"," rank, so the taller tree's height never grows.\nOnly when the two ranks are equal does the height increase, and then by exactly\none (and we bump the surviving root's rank).",[381,2811,2812,2813,2829,2830,2873,2874,2935,2936,465],{},"This single rule already guarantees that every tree of rank ",[427,2814,2816],{"className":2815},[430],[427,2817,2819],{"className":2818,"ariaHidden":435},[434],[427,2820,2822,2825],{"className":2821},[439],[427,2823],{"className":2824,"style":930},[443],[427,2826,2828],{"className":2827,"style":450},[448,449],"r"," contains at least\n",[427,2831,2833],{"className":2832},[430],[427,2834,2836],{"className":2835,"ariaHidden":435},[434],[427,2837,2839,2843],{"className":2838},[439],[427,2840],{"className":2841,"style":2842},[443],"height:0.6644em;",[427,2844,2846,2849],{"className":2845},[448],[427,2847,796],{"className":2848},[448],[427,2850,2852],{"className":2851},[712],[427,2853,2855],{"className":2854},[716],[427,2856,2858],{"className":2857},[721],[427,2859,2861],{"className":2860,"style":2842},[725],[427,2862,2864,2867],{"style":2863},"top:-3.063em;margin-right:0.05em;",[427,2865],{"className":2866,"style":734},[733],[427,2868,2870],{"className":2869},[738,739,740,741],[427,2871,2828],{"className":2872,"style":450},[448,449,741]," nodes, so rank, and hence height, is at most ",[427,2875,2877],{"className":2876},[430],[427,2878,2880],{"className":2879,"ariaHidden":435},[434],[427,2881,2883,2886,2929,2932],{"className":2882},[439],[427,2884],{"className":2885,"style":2118},[443],[427,2887,2889,2895],{"className":2888},[507],[427,2890,2892],{"className":2891},[507],[427,2893,513],{"className":2894,"style":512},[448,511],[427,2896,2898],{"className":2897},[712],[427,2899,2901,2921],{"className":2900},[716,717],[427,2902,2904,2918],{"className":2903},[721],[427,2905,2907],{"className":2906,"style":2140},[725],[427,2908,2909,2912],{"style":2143},[427,2910],{"className":2911,"style":734},[733],[427,2913,2915],{"className":2914},[738,739,740,741],[427,2916,796],{"className":2917},[448,741],[427,2919,749],{"className":2920},[748],[427,2922,2924],{"className":2923},[721],[427,2925,2927],{"className":2926,"style":2162},[725],[427,2928],{},[427,2930],{"className":2931,"style":503},[502],[427,2933,520],{"className":2934},[448,449],". With union by\nrank alone, every operation is ",[427,2937,2939],{"className":2938},[430],[427,2940,2942],{"className":2941,"ariaHidden":435},[434],[427,2943,2945,2948,2951,2954,2960,2963,2966],{"className":2944},[439],[427,2946],{"className":2947,"style":444},[443],[427,2949,451],{"className":2950,"style":450},[448,449],[427,2952,456],{"className":2953},[455],[427,2955,2957],{"className":2956},[507],[427,2958,513],{"className":2959,"style":512},[448,511],[427,2961],{"className":2962,"style":503},[502],[427,2964,520],{"className":2965},[448,449],[427,2967,464],{"className":2968},[463],[1308,2970,2972,3188],{"className":2971},[1311,1312],[1314,2973,2977],{"xmlns":1316,"width":2974,"height":2975,"viewBox":2976},"349.160","169.596","-75 -75 261.870 127.197",[1321,2978,2979,2982,3000,3021,3028,3031,3044,3051,3054,3057,3089,3092,3095,3109,3115,3118,3121,3134,3140,3143,3146,3149,3152,3155,3158],{"stroke":1323,"style":1324},[1326,2980],{"fill":1328,"d":2981},"M-43.522-49.435a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0Zm-7.113 0",[1321,2983,2986,2994],{"stroke":1328,"fontFamily":2984,"fontSize":2985},"cmr7","7",[1321,2987,2989],{"transform":2988},"translate(-11.205 -14.641)",[1326,2990],{"d":2991,"fill":1323,"stroke":1323,"className":2992,"style":2993},"M-48.571-49.435L-50.307-49.435L-50.307-49.715Q-50.078-49.715-49.929-49.749Q-49.781-49.784-49.781-49.924L-49.781-51.773Q-49.781-52.043-49.888-52.104Q-49.996-52.166-50.307-52.166L-50.307-52.446L-49.278-52.521L-49.278-51.814Q-49.148-52.122-48.906-52.321Q-48.663-52.521-48.345-52.521Q-48.126-52.521-47.955-52.397Q-47.784-52.272-47.784-52.060Q-47.784-51.923-47.884-51.824Q-47.983-51.725-48.116-51.725Q-48.253-51.725-48.352-51.824Q-48.451-51.923-48.451-52.060Q-48.451-52.200-48.352-52.299Q-48.642-52.299-48.842-52.103Q-49.042-51.906-49.135-51.612Q-49.227-51.318-49.227-51.038L-49.227-49.924Q-49.227-49.715-48.571-49.715L-48.571-49.435M-47.142-50.163Q-47.142-50.495-46.918-50.722Q-46.694-50.949-46.351-51.077Q-46.007-51.206-45.635-51.258Q-45.262-51.311-44.958-51.311L-44.958-51.564Q-44.958-51.769-45.065-51.949Q-45.173-52.128-45.354-52.231Q-45.535-52.333-45.744-52.333Q-46.151-52.333-46.386-52.241Q-46.298-52.204-46.251-52.120Q-46.205-52.036-46.205-51.934Q-46.205-51.838-46.251-51.759Q-46.298-51.681-46.378-51.636Q-46.458-51.592-46.547-51.592Q-46.697-51.592-46.798-51.689Q-46.899-51.787-46.899-51.934Q-46.899-52.556-45.744-52.556Q-45.532-52.556-45.282-52.492Q-45.033-52.429-44.831-52.310Q-44.630-52.190-44.503-52.005Q-44.377-51.821-44.377-51.578L-44.377-50.002Q-44.377-49.886-44.315-49.790Q-44.254-49.695-44.141-49.695Q-44.031-49.695-43.967-49.789Q-43.902-49.883-43.902-50.002L-43.902-50.450L-43.635-50.450L-43.635-50.002Q-43.635-49.732-43.862-49.567Q-44.090-49.401-44.370-49.401Q-44.578-49.401-44.715-49.555Q-44.852-49.708-44.876-49.924Q-45.023-49.657-45.305-49.512Q-45.587-49.367-45.911-49.367Q-46.188-49.367-46.472-49.442Q-46.756-49.517-46.949-49.696Q-47.142-49.876-47.142-50.163M-46.527-50.163Q-46.527-49.989-46.426-49.859Q-46.325-49.729-46.169-49.659Q-46.014-49.589-45.850-49.589Q-45.631-49.589-45.423-49.686Q-45.214-49.784-45.086-49.965Q-44.958-50.146-44.958-50.372L-44.958-51.100Q-45.282-51.100-45.648-51.009Q-46.014-50.918-46.270-50.706Q-46.527-50.495-46.527-50.163M-41.536-49.435L-43.170-49.435L-43.170-49.715Q-42.941-49.715-42.792-49.749Q-42.644-49.784-42.644-49.924L-42.644-51.773Q-42.644-52.043-42.751-52.104Q-42.859-52.166-43.170-52.166L-43.170-52.446L-42.111-52.521L-42.111-51.872Q-41.940-52.180-41.635-52.351Q-41.331-52.521-40.986-52.521Q-40.480-52.521-40.197-52.298Q-39.913-52.074-39.913-51.578L-39.913-49.924Q-39.913-49.787-39.764-49.751Q-39.615-49.715-39.390-49.715L-39.390-49.435L-41.020-49.435L-41.020-49.715Q-40.791-49.715-40.643-49.749Q-40.494-49.784-40.494-49.924L-40.494-51.564Q-40.494-51.899-40.614-52.099Q-40.733-52.299-41.048-52.299Q-41.318-52.299-41.552-52.163Q-41.786-52.026-41.924-51.792Q-42.063-51.558-42.063-51.284L-42.063-49.924Q-42.063-49.787-41.912-49.751Q-41.762-49.715-41.536-49.715L-41.536-49.435M-37.206-49.435L-38.788-49.435L-38.788-49.715Q-38.559-49.715-38.411-49.749Q-38.262-49.784-38.262-49.924L-38.262-53.543Q-38.262-53.813-38.370-53.875Q-38.477-53.936-38.788-53.936L-38.788-54.217L-37.708-54.292L-37.708-51.004L-36.724-51.773Q-36.519-51.910-36.519-52.060Q-36.519-52.104-36.560-52.139Q-36.601-52.173-36.645-52.173L-36.645-52.453L-35.281-52.453L-35.281-52.173Q-35.770-52.173-36.290-51.773L-36.847-51.339L-35.869-50.115Q-35.668-49.869-35.534-49.792Q-35.401-49.715-35.114-49.715L-35.114-49.435L-36.546-49.435L-36.546-49.715Q-36.358-49.715-36.358-49.828Q-36.358-49.924-36.512-50.115L-37.247-51.024L-37.729-50.645L-37.729-49.924Q-37.729-49.787-37.580-49.751Q-37.431-49.715-37.206-49.715",[1337],"stroke-width:0.210",[1321,2995,2996],{"transform":2988},[1326,2997],{"d":2998,"fill":1323,"stroke":1323,"className":2999,"style":2993},"M-30.222-49.295Q-30.857-49.295-31.221-49.640Q-31.586-49.985-31.721-50.510Q-31.856-51.035-31.856-51.660Q-31.856-52.685-31.500-53.384Q-31.145-54.083-30.222-54.083Q-29.295-54.083-28.943-53.384Q-28.591-52.685-28.591-51.660Q-28.591-51.035-28.726-50.510Q-28.861-49.985-29.224-49.640Q-29.586-49.295-30.222-49.295M-30.222-49.520Q-29.784-49.520-29.571-49.895Q-29.357-50.269-29.307-50.736Q-29.258-51.202-29.258-51.780Q-29.258-52.333-29.307-52.761Q-29.357-53.188-29.569-53.523Q-29.781-53.858-30.222-53.858Q-30.564-53.858-30.767-53.651Q-30.970-53.444-31.057-53.132Q-31.145-52.819-31.167-52.503Q-31.189-52.186-31.189-51.780Q-31.189-51.363-31.167-51.021Q-31.145-50.679-31.056-50.331Q-30.967-49.982-30.762-49.751Q-30.557-49.520-30.222-49.520",[1337],[1321,3001,3002,3009,3015],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3003,3005],{"transform":3004},"translate(-11.635 19.502)",[1326,3006],{"d":3007,"fill":1323,"stroke":1323,"className":3008,"style":2993},"M-47.309-49.435L-49.839-49.435L-49.839-49.715Q-48.871-49.715-48.871-49.924L-48.871-53.543Q-49.264-53.355-49.886-53.355L-49.886-53.636Q-49.469-53.636-49.105-53.737Q-48.741-53.837-48.485-54.083L-48.359-54.083Q-48.294-54.066-48.277-53.998L-48.277-49.924Q-48.277-49.715-47.309-49.715",[1337],[1321,3010,3011],{"transform":3004},[1326,3012],{"d":3013,"fill":1323,"stroke":1323,"className":3014,"style":2993},"M-41.958-49.435L-43.592-49.435L-43.592-49.715Q-43.363-49.715-43.214-49.749Q-43.065-49.784-43.065-49.924L-43.065-51.773Q-43.065-52.043-43.173-52.104Q-43.281-52.166-43.592-52.166L-43.592-52.446L-42.532-52.521L-42.532-51.872Q-42.361-52.180-42.057-52.351Q-41.753-52.521-41.408-52.521Q-40.902-52.521-40.618-52.298Q-40.334-52.074-40.334-51.578L-40.334-49.924Q-40.334-49.787-40.186-49.751Q-40.037-49.715-39.811-49.715L-39.811-49.435L-41.442-49.435L-41.442-49.715Q-41.213-49.715-41.064-49.749Q-40.915-49.784-40.915-49.924L-40.915-51.564Q-40.915-51.899-41.035-52.099Q-41.155-52.299-41.469-52.299Q-41.739-52.299-41.973-52.163Q-42.207-52.026-42.346-51.792Q-42.484-51.558-42.484-51.284L-42.484-49.924Q-42.484-49.787-42.334-49.751Q-42.183-49.715-41.958-49.715L-41.958-49.435M-39.265-50.918Q-39.265-51.260-39.130-51.559Q-38.995-51.858-38.755-52.082Q-38.516-52.306-38.198-52.431Q-37.880-52.556-37.549-52.556Q-37.104-52.556-36.704-52.340Q-36.305-52.125-36.070-51.747Q-35.836-51.370-35.836-50.918Q-35.836-50.577-35.978-50.293Q-36.120-50.009-36.364-49.802Q-36.609-49.596-36.918-49.481Q-37.227-49.367-37.549-49.367Q-37.979-49.367-38.381-49.568Q-38.783-49.770-39.024-50.122Q-39.265-50.474-39.265-50.918M-37.549-49.616Q-36.947-49.616-36.723-49.994Q-36.499-50.372-36.499-51.004Q-36.499-51.616-36.734-51.975Q-36.968-52.333-37.549-52.333Q-38.601-52.333-38.601-51.004Q-38.601-50.372-38.376-49.994Q-38.150-49.616-37.549-49.616",[1337],[1321,3016,3017],{"transform":3004},[1326,3018],{"d":3019,"fill":1323,"stroke":1323,"className":3020,"style":2993},"M-35.022-50.946Q-35.022-51.284-34.881-51.575Q-34.741-51.865-34.497-52.079Q-34.253-52.292-33.948-52.407Q-33.644-52.521-33.319-52.521Q-33.049-52.521-32.786-52.422Q-32.523-52.323-32.332-52.145L-32.332-53.543Q-32.332-53.813-32.439-53.875Q-32.547-53.936-32.858-53.936L-32.858-54.217L-31.781-54.292L-31.781-50.108Q-31.781-49.920-31.727-49.837Q-31.672-49.753-31.571-49.734Q-31.470-49.715-31.255-49.715L-31.255-49.435L-32.362-49.367L-32.362-49.784Q-32.779-49.367-33.405-49.367Q-33.836-49.367-34.208-49.579Q-34.581-49.790-34.801-50.151Q-35.022-50.512-35.022-50.946M-33.347-49.589Q-33.138-49.589-32.952-49.661Q-32.766-49.732-32.612-49.869Q-32.458-50.006-32.362-50.184L-32.362-51.793Q-32.448-51.940-32.593-52.060Q-32.738-52.180-32.908-52.239Q-33.077-52.299-33.258-52.299Q-33.818-52.299-34.087-51.910Q-34.355-51.520-34.355-50.939Q-34.355-50.368-34.121-49.978Q-33.887-49.589-33.347-49.589M-30.647-50.970Q-30.647-51.291-30.522-51.580Q-30.397-51.869-30.171-52.092Q-29.946-52.316-29.650-52.436Q-29.355-52.556-29.037-52.556Q-28.709-52.556-28.447-52.456Q-28.186-52.357-28.010-52.175Q-27.834-51.992-27.740-51.734Q-27.646-51.476-27.646-51.144Q-27.646-51.052-27.728-51.031L-29.983-51.031L-29.983-50.970Q-29.983-50.382-29.700-49.999Q-29.416-49.616-28.849-49.616Q-28.527-49.616-28.259-49.809Q-27.991-50.002-27.902-50.317Q-27.895-50.358-27.820-50.372L-27.728-50.372Q-27.646-50.348-27.646-50.276Q-27.646-50.269-27.652-50.242Q-27.765-49.845-28.136-49.606Q-28.507-49.367-28.931-49.367Q-29.368-49.367-29.768-49.575Q-30.168-49.784-30.407-50.151Q-30.647-50.518-30.647-50.970M-29.977-51.240L-28.162-51.240Q-28.162-51.517-28.259-51.769Q-28.357-52.022-28.555-52.178Q-28.753-52.333-29.037-52.333Q-29.314-52.333-29.527-52.175Q-29.741-52.016-29.859-51.761Q-29.977-51.506-29.977-51.240",[1337],[1321,3022,3024],{"transform":3023},"translate(24.856 2.25)",[1326,3025],{"d":3026,"fill":1323,"stroke":1323,"className":3027,"style":2453},"M-47.234-48.758L-47.234-51.487L-49.941-51.487Q-50.121-51.518-50.121-51.685Q-50.121-51.751-50.070-51.806Q-50.020-51.861-49.941-51.874L-47.234-51.874L-47.234-54.603Q-47.220-54.678-47.166-54.724Q-47.111-54.770-47.036-54.770Q-46.966-54.770-46.913-54.722Q-46.860-54.673-46.847-54.603L-46.847-51.874L-44.135-51.874Q-43.964-51.839-43.964-51.685Q-43.964-51.522-44.135-51.487L-46.847-51.487L-46.847-48.758Q-46.882-48.587-47.036-48.587Q-47.106-48.587-47.163-48.635Q-47.220-48.684-47.234-48.758",[1337],[1326,3029],{"fill":1328,"d":3030},"M13.384-49.435a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0Zm-7.113 0",[1321,3032,3033,3039],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3034,3036],{"transform":3035},"translate(45.7 -14.641)",[1326,3037],{"d":2991,"fill":1323,"stroke":1323,"className":3038,"style":2993},[1337],[1321,3040,3041],{"transform":3035},[1326,3042],{"d":2998,"fill":1323,"stroke":1323,"className":3043,"style":2993},[1337],[1321,3045,3047],{"transform":3046},"translate(86.424 1.675)",[1326,3048],{"d":3049,"fill":1323,"stroke":1323,"className":3050,"style":2453},"M-44.399-50.578L-49.941-50.578Q-50.020-50.591-50.070-50.641Q-50.121-50.692-50.121-50.767Q-50.121-50.916-49.941-50.964L-43.986-50.964Q-43.722-51.171-43.402-51.362Q-43.081-51.553-42.778-51.685Q-43.437-51.962-43.986-52.406L-49.941-52.406Q-50.121-52.436-50.121-52.595Q-50.121-52.744-49.941-52.792L-44.399-52.792Q-44.623-53.030-44.962-53.489Q-45.300-53.948-45.300-54.098Q-45.300-54.133-45.265-54.168Q-45.230-54.203-45.190-54.203L-45.010-54.203Q-44.948-54.203-44.900-54.106Q-44.623-53.544-44.175-53.067Q-43.727-52.590-43.164-52.263Q-42.602-51.935-41.987-51.795Q-41.903-51.755-41.903-51.685Q-41.903-51.593-41.987-51.575Q-42.747-51.391-43.406-50.947Q-44.382-50.305-44.900-49.255Q-44.948-49.158-45.010-49.158L-45.190-49.158Q-45.234-49.158-45.267-49.191Q-45.300-49.224-45.300-49.264Q-45.300-49.369-45.129-49.635Q-44.957-49.901-44.749-50.164Q-44.540-50.428-44.399-50.578",[1337],[1326,3052],{"fill":1328,"d":3053},"M87.361-59.393a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM87.361-33.786a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM80.248-41.099v-8.981",[1326,3055],{"stroke":1328,"d":3056},"m80.248-52.08-1.6 3.2 1.6-1.2 1.6 1.2",[1321,3058,3059,3065,3071,3077,3083],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3060,3062],{"transform":3061},"translate(148.642 4.595)",[1326,3063],{"d":2991,"fill":1323,"stroke":1323,"className":3064,"style":2993},[1337],[1321,3066,3067],{"transform":3061},[1326,3068],{"d":3069,"fill":1323,"stroke":1323,"className":3070,"style":2993},"M-28.885-49.435L-31.415-49.435L-31.415-49.715Q-30.447-49.715-30.447-49.924L-30.447-53.543Q-30.840-53.355-31.462-53.355L-31.462-53.636Q-31.045-53.636-30.681-53.737Q-30.317-53.837-30.061-54.083L-29.935-54.083Q-29.870-54.066-29.853-53.998L-29.853-49.924Q-29.853-49.715-28.885-49.715L-28.885-49.435M-27.416-48.205Q-27.416-48.239-27.388-48.266Q-27.118-48.495-26.970-48.818Q-26.821-49.141-26.821-49.497L-26.821-49.534Q-26.930-49.435-27.094-49.435Q-27.275-49.435-27.395-49.555Q-27.515-49.674-27.515-49.855Q-27.515-50.030-27.395-50.149Q-27.275-50.269-27.094-50.269Q-26.838-50.269-26.718-50.030Q-26.599-49.790-26.599-49.497Q-26.599-49.097-26.768-48.726Q-26.937-48.355-27.234-48.099Q-27.265-48.078-27.293-48.078Q-27.334-48.078-27.375-48.119Q-27.416-48.160-27.416-48.205",[1337],[1321,3072,3073],{"transform":3061},[1326,3074],{"d":3075,"fill":1323,"stroke":1323,"className":3076,"style":2993},"M-19.941-49.435L-22.826-49.435L-22.826-49.637Q-22.826-49.667-22.799-49.695L-21.551-50.912Q-21.479-50.987-21.437-51.029Q-21.394-51.072-21.315-51.151Q-20.902-51.564-20.671-51.922Q-20.440-52.279-20.440-52.703Q-20.440-52.935-20.519-53.138Q-20.598-53.342-20.739-53.492Q-20.881-53.643-21.076-53.723Q-21.271-53.803-21.503-53.803Q-21.814-53.803-22.072-53.644Q-22.330-53.485-22.460-53.208L-22.440-53.208Q-22.272-53.208-22.165-53.097Q-22.057-52.986-22.057-52.822Q-22.057-52.665-22.166-52.552Q-22.276-52.439-22.440-52.439Q-22.600-52.439-22.713-52.552Q-22.826-52.665-22.826-52.822Q-22.826-53.198-22.618-53.485Q-22.409-53.772-22.074-53.928Q-21.739-54.083-21.384-54.083Q-20.960-54.083-20.580-53.925Q-20.201-53.766-19.967-53.449Q-19.733-53.133-19.733-52.703Q-19.733-52.392-19.873-52.123Q-20.013-51.855-20.218-51.650Q-20.423-51.445-20.786-51.163Q-21.148-50.881-21.257-50.785L-22.112-50.057L-21.469-50.057Q-21.206-50.057-20.917-50.059Q-20.628-50.060-20.410-50.069Q-20.191-50.078-20.174-50.095Q-20.112-50.160-20.075-50.327Q-20.037-50.495-19.999-50.737L-19.733-50.737",[1337],[1321,3078,3079],{"transform":3061},[1326,3080],{"d":3081,"fill":1323,"stroke":1323,"className":3082,"style":2993},"M-14.590-49.435L-16.224-49.435L-16.224-49.715Q-15.995-49.715-15.846-49.749Q-15.697-49.784-15.697-49.924L-15.697-51.773Q-15.697-52.043-15.805-52.104Q-15.913-52.166-16.224-52.166L-16.224-52.446L-15.164-52.521L-15.164-51.872Q-14.993-52.180-14.689-52.351Q-14.385-52.521-14.040-52.521Q-13.534-52.521-13.250-52.298Q-12.966-52.074-12.966-51.578L-12.966-49.924Q-12.966-49.787-12.818-49.751Q-12.669-49.715-12.443-49.715L-12.443-49.435L-14.074-49.435L-14.074-49.715Q-13.845-49.715-13.696-49.749Q-13.547-49.784-13.547-49.924L-13.547-51.564Q-13.547-51.899-13.667-52.099Q-13.787-52.299-14.101-52.299Q-14.371-52.299-14.605-52.163Q-14.839-52.026-14.978-51.792Q-15.116-51.558-15.116-51.284L-15.116-49.924Q-15.116-49.787-14.966-49.751Q-14.815-49.715-14.590-49.715L-14.590-49.435M-11.897-50.918Q-11.897-51.260-11.762-51.559Q-11.627-51.858-11.387-52.082Q-11.148-52.306-10.830-52.431Q-10.512-52.556-10.181-52.556Q-9.736-52.556-9.336-52.340Q-8.937-52.125-8.702-51.747Q-8.468-51.370-8.468-50.918Q-8.468-50.577-8.610-50.293Q-8.752-50.009-8.996-49.802Q-9.241-49.596-9.550-49.481Q-9.859-49.367-10.181-49.367Q-10.611-49.367-11.013-49.568Q-11.415-49.770-11.656-50.122Q-11.897-50.474-11.897-50.918M-10.181-49.616Q-9.579-49.616-9.355-49.994Q-9.131-50.372-9.131-51.004Q-9.131-51.616-9.366-51.975Q-9.600-52.333-10.181-52.333Q-11.233-52.333-11.233-51.004Q-11.233-50.372-11.008-49.994Q-10.782-49.616-10.181-49.616",[1337],[1321,3084,3085],{"transform":3061},[1326,3086],{"d":3087,"fill":1323,"stroke":1323,"className":3088,"style":2993},"M-7.654-50.946Q-7.654-51.284-7.513-51.575Q-7.373-51.865-7.129-52.079Q-6.885-52.292-6.580-52.407Q-6.276-52.521-5.951-52.521Q-5.681-52.521-5.418-52.422Q-5.155-52.323-4.964-52.145L-4.964-53.543Q-4.964-53.813-5.071-53.875Q-5.179-53.936-5.490-53.936L-5.490-54.217L-4.413-54.292L-4.413-50.108Q-4.413-49.920-4.359-49.837Q-4.304-49.753-4.203-49.734Q-4.102-49.715-3.887-49.715L-3.887-49.435L-4.994-49.367L-4.994-49.784Q-5.411-49.367-6.037-49.367Q-6.468-49.367-6.840-49.579Q-7.213-49.790-7.433-50.151Q-7.654-50.512-7.654-50.946M-5.979-49.589Q-5.770-49.589-5.584-49.661Q-5.398-49.732-5.244-49.869Q-5.090-50.006-4.994-50.184L-4.994-51.793Q-5.080-51.940-5.225-52.060Q-5.370-52.180-5.540-52.239Q-5.709-52.299-5.890-52.299Q-6.450-52.299-6.719-51.910Q-6.987-51.520-6.987-50.939Q-6.987-50.368-6.753-49.978Q-6.519-49.589-5.979-49.589M-3.279-50.970Q-3.279-51.291-3.154-51.580Q-3.029-51.869-2.803-52.092Q-2.578-52.316-2.282-52.436Q-1.987-52.556-1.669-52.556Q-1.341-52.556-1.079-52.456Q-0.818-52.357-0.642-52.175Q-0.466-51.992-0.372-51.734Q-0.278-51.476-0.278-51.144Q-0.278-51.052-0.360-51.031L-2.615-51.031L-2.615-50.970Q-2.615-50.382-2.332-49.999Q-2.048-49.616-1.481-49.616Q-1.159-49.616-0.891-49.809Q-0.623-50.002-0.534-50.317Q-0.527-50.358-0.452-50.372L-0.360-50.372Q-0.278-50.348-0.278-50.276Q-0.278-50.269-0.284-50.242Q-0.397-49.845-0.768-49.606Q-1.139-49.367-1.563-49.367Q-2-49.367-2.400-49.575Q-2.800-49.784-3.039-50.151Q-3.279-50.518-3.279-50.970M-2.609-51.240L-0.794-51.240Q-0.794-51.517-0.891-51.769Q-0.989-52.022-1.187-52.178Q-1.385-52.333-1.669-52.333Q-1.946-52.333-2.159-52.175Q-2.373-52.016-2.491-51.761Q-2.609-51.506-2.609-51.240M0.310-49.442L0.310-50.505Q0.310-50.529 0.338-50.556Q0.365-50.583 0.389-50.583L0.498-50.583Q0.563-50.583 0.577-50.525Q0.673-50.091 0.919-49.840Q1.165-49.589 1.578-49.589Q1.920-49.589 2.173-49.722Q2.426-49.855 2.426-50.163Q2.426-50.320 2.332-50.435Q2.238-50.549 2.100-50.618Q1.961-50.686 1.794-50.724L1.213-50.823Q0.857-50.891 0.584-51.112Q0.310-51.332 0.310-51.674Q0.310-51.923 0.421-52.098Q0.532-52.272 0.719-52.371Q0.905-52.470 1.120-52.513Q1.336-52.556 1.578-52.556Q1.992-52.556 2.272-52.374L2.488-52.549Q2.498-52.552 2.505-52.554Q2.511-52.556 2.522-52.556L2.573-52.556Q2.600-52.556 2.624-52.532Q2.648-52.508 2.648-52.480L2.648-51.633Q2.648-51.612 2.624-51.585Q2.600-51.558 2.573-51.558L2.460-51.558Q2.433-51.558 2.407-51.583Q2.382-51.609 2.382-51.633Q2.382-51.869 2.276-52.033Q2.170-52.197 1.987-52.279Q1.804-52.361 1.572-52.361Q1.243-52.361 0.987-52.258Q0.731-52.156 0.731-51.879Q0.731-51.684 0.914-51.575Q1.096-51.465 1.325-51.424L1.900-51.318Q2.146-51.270 2.359-51.142Q2.573-51.014 2.710-50.811Q2.846-50.607 2.846-50.358Q2.846-49.845 2.481-49.606Q2.115-49.367 1.578-49.367Q1.083-49.367 0.751-49.661L0.485-49.387Q0.464-49.367 0.437-49.367L0.389-49.367Q0.365-49.367 0.338-49.394Q0.310-49.421 0.310-49.442",[1337],[1326,3090],{"fill":1328,"d":3091},"M-43.522-1.065a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM-43.522 21.697a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM-50.635 14.384V8.248",[1326,3093],{"stroke":1328,"d":3094},"m-50.635 6.248-1.6 3.2 1.6-1.2 1.6 1.2",[1321,3096,3097,3103],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3098,3100],{"transform":3099},"translate(-11.205 33.729)",[1326,3101],{"d":2991,"fill":1323,"stroke":1323,"className":3102,"style":2993},[1337],[1321,3104,3105],{"transform":3099},[1326,3106],{"d":3107,"fill":1323,"stroke":1323,"className":3108,"style":2993},"M-28.885-49.435L-31.415-49.435L-31.415-49.715Q-30.447-49.715-30.447-49.924L-30.447-53.543Q-30.840-53.355-31.462-53.355L-31.462-53.636Q-31.045-53.636-30.681-53.737Q-30.317-53.837-30.061-54.083L-29.935-54.083Q-29.870-54.066-29.853-53.998L-29.853-49.924Q-29.853-49.715-28.885-49.715",[1337],[1321,3110,3112],{"transform":3111},"translate(24.856 62.001)",[1326,3113],{"d":3026,"fill":1323,"stroke":1323,"className":3114,"style":2453},[1337],[1326,3116],{"fill":1328,"d":3117},"M13.384-1.065a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM13.384 21.697a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM6.27 14.384V8.248",[1326,3119],{"stroke":1328,"d":3120},"m6.27 6.248-1.6 3.2 1.6-1.2 1.6 1.2",[1321,3122,3123,3129],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3124,3126],{"transform":3125},"translate(45.7 33.729)",[1326,3127],{"d":2991,"fill":1323,"stroke":1323,"className":3128,"style":2993},[1337],[1321,3130,3131],{"transform":3125},[1326,3132],{"d":3107,"fill":1323,"stroke":1323,"className":3133,"style":2993},[1337],[1321,3135,3137],{"transform":3136},"translate(86.424 61.426)",[1326,3138],{"d":3049,"fill":1323,"stroke":1323,"className":3139,"style":2453},[1337],[1326,3141],{"fill":1328,"d":3142},"M98.742-8.178a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM81.67 17.43a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM115.814 17.43a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM81.67 41.614a7.113 7.113 0 1 0-14.226 0 7.113 7.113 0 0 0 14.226 0ZM78.613 11.345 86.463-.43",[1326,3144],{"stroke":1328,"d":3145},"M87.572-2.094 84.466-.319l1.997-.11.666 1.885",[1326,3147],{"fill":1328,"d":3148},"M104.644 11.345 96.794-.43",[1326,3150],{"stroke":1328,"d":3151},"m95.685-2.094.444 3.55.666-1.886 1.996.111",[1326,3153],{"fill":1328,"d":3154},"M74.557 34.3v-7.557",[1326,3156],{"stroke":1328,"d":3157},"m74.557 24.743-1.6 3.2 1.6-1.2 1.6 1.2",[1321,3159,3160,3166,3172,3178,3183],{"stroke":1328,"fontFamily":2984,"fontSize":2985},[1321,3161,3163],{"transform":3162},"translate(177.095 61.501)",[1326,3164],{"d":2991,"fill":1323,"stroke":1323,"className":3165,"style":2993},[1337],[1321,3167,3168],{"transform":3162},[1326,3169],{"d":3170,"fill":1323,"stroke":1323,"className":3171,"style":2993},"M-28.885-49.435L-31.770-49.435L-31.770-49.637Q-31.770-49.667-31.743-49.695L-30.495-50.912Q-30.423-50.987-30.381-51.029Q-30.338-51.072-30.259-51.151Q-29.846-51.564-29.615-51.922Q-29.384-52.279-29.384-52.703Q-29.384-52.935-29.463-53.138Q-29.542-53.342-29.683-53.492Q-29.825-53.643-30.020-53.723Q-30.215-53.803-30.447-53.803Q-30.758-53.803-31.016-53.644Q-31.274-53.485-31.404-53.208L-31.384-53.208Q-31.216-53.208-31.109-53.097Q-31.001-52.986-31.001-52.822Q-31.001-52.665-31.110-52.552Q-31.220-52.439-31.384-52.439Q-31.544-52.439-31.657-52.552Q-31.770-52.665-31.770-52.822Q-31.770-53.198-31.562-53.485Q-31.353-53.772-31.018-53.928Q-30.683-54.083-30.328-54.083Q-29.904-54.083-29.524-53.925Q-29.145-53.766-28.911-53.449Q-28.677-53.133-28.677-52.703Q-28.677-52.392-28.817-52.123Q-28.957-51.855-29.162-51.650Q-29.367-51.445-29.730-51.163Q-30.092-50.881-30.201-50.785L-31.056-50.057L-30.413-50.057Q-30.150-50.057-29.861-50.059Q-29.572-50.060-29.354-50.069Q-29.135-50.078-29.118-50.095Q-29.056-50.160-29.019-50.327Q-28.981-50.495-28.943-50.737L-28.677-50.737L-28.885-49.435M-27.416-48.205Q-27.416-48.239-27.388-48.266Q-27.118-48.495-26.970-48.818Q-26.821-49.141-26.821-49.497L-26.821-49.534Q-26.930-49.435-27.094-49.435Q-27.275-49.435-27.395-49.555Q-27.515-49.674-27.515-49.855Q-27.515-50.030-27.395-50.149Q-27.275-50.269-27.094-50.269Q-26.838-50.269-26.718-50.030Q-26.599-49.790-26.599-49.497Q-26.599-49.097-26.768-48.726Q-26.937-48.355-27.234-48.099Q-27.265-48.078-27.293-48.078Q-27.334-48.078-27.375-48.119Q-27.416-48.160-27.416-48.205",[1337],[1321,3173,3174],{"transform":3162},[1326,3175],{"d":3176,"fill":1323,"stroke":1323,"className":3177,"style":2993},"M-20.950-50.583L-22.994-50.583L-22.994-50.864L-20.663-54.036Q-20.628-54.083-20.563-54.083L-20.427-54.083Q-20.382-54.083-20.355-54.056Q-20.328-54.029-20.328-53.984L-20.328-50.864L-19.565-50.864L-19.565-50.583L-20.328-50.583L-20.328-49.924Q-20.328-49.715-19.572-49.715L-19.572-49.435L-21.705-49.435L-21.705-49.715Q-20.950-49.715-20.950-49.924L-20.950-50.583M-20.902-53.308L-22.693-50.864L-20.902-50.864",[1337],[1321,3179,3180],{"transform":3162},[1326,3181],{"d":3081,"fill":1323,"stroke":1323,"className":3182,"style":2993},[1337],[1321,3184,3185],{"transform":3162},[1326,3186],{"d":3087,"fill":1323,"stroke":1323,"className":3187,"style":2993},[1337],[1412,3189,3191,3192,3207,3208,3263,3264,3280,3281,3296,3297,3350,3351,465],{"className":3190},[1415],"Why rank ",[427,3193,3195],{"className":3194},[430],[427,3196,3198],{"className":3197,"ariaHidden":435},[434],[427,3199,3201,3204],{"className":3200},[439],[427,3202],{"className":3203,"style":930},[443],[427,3205,2828],{"className":3206,"style":450},[448,449]," forces ",[427,3209,3211],{"className":3210},[430],[427,3212,3214,3228],{"className":3213,"ariaHidden":435},[434],[427,3215,3217,3221,3225],{"className":3216},[439],[427,3218],{"className":3219,"style":3220},[443],"height:0.7719em;vertical-align:-0.136em;",[427,3222,3224],{"className":3223},[1173],"≥",[427,3226],{"className":3227,"style":1169},[502],[427,3229,3231,3234],{"className":3230},[439],[427,3232],{"className":3233,"style":2842},[443],[427,3235,3237,3240],{"className":3236},[448],[427,3238,796],{"className":3239},[448],[427,3241,3243],{"className":3242},[712],[427,3244,3246],{"className":3245},[716],[427,3247,3249],{"className":3248},[721],[427,3250,3252],{"className":3251,"style":2842},[725],[427,3253,3254,3257],{"style":2863},[427,3255],{"className":3256,"style":734},[733],[427,3258,3260],{"className":3259},[738,739,740,741],[427,3261,2828],{"className":3262,"style":450},[448,449,741]," nodes. A root's rank rises only when two equal-rank trees merge, and that merge at least doubles the node count: rank ",[427,3265,3267],{"className":3266},[430],[427,3268,3270],{"className":3269,"ariaHidden":435},[434],[427,3271,3273,3276],{"className":3272},[439],[427,3274],{"className":3275,"style":1270},[443],[427,3277,3279],{"className":3278},[448],"0"," is a single node, and each rank bump joins two trees of the previous rank. So a rank-",[427,3282,3284],{"className":3283},[430],[427,3285,3287],{"className":3286,"ariaHidden":435},[434],[427,3288,3290,3293],{"className":3289},[439],[427,3291],{"className":3292,"style":930},[443],[427,3294,2828],{"className":3295,"style":450},[448,449]," tree holds ",[427,3298,3300],{"className":3299},[430],[427,3301,3303,3315],{"className":3302,"ariaHidden":435},[434],[427,3304,3306,3309,3312],{"className":3305},[439],[427,3307],{"className":3308,"style":3220},[443],[427,3310,3224],{"className":3311},[1173],[427,3313],{"className":3314,"style":1169},[502],[427,3316,3318,3321],{"className":3317},[439],[427,3319],{"className":3320,"style":2842},[443],[427,3322,3324,3327],{"className":3323},[448],[427,3325,796],{"className":3326},[448],[427,3328,3330],{"className":3329},[712],[427,3331,3333],{"className":3332},[716],[427,3334,3336],{"className":3335},[721],[427,3337,3339],{"className":3338,"style":2842},[725],[427,3340,3341,3344],{"style":2863},[427,3342],{"className":3343,"style":734},[733],[427,3345,3347],{"className":3346},[738,739,740,741],[427,3348,2828],{"className":3349,"style":450},[448,449,741]," nodes, capping rank (and height) at ",[427,3352,3354],{"className":3353},[430],[427,3355,3357],{"className":3356,"ariaHidden":435},[434],[427,3358,3360,3363,3406,3409],{"className":3359},[439],[427,3361],{"className":3362,"style":2118},[443],[427,3364,3366,3372],{"className":3365},[507],[427,3367,3369],{"className":3368},[507],[427,3370,513],{"className":3371,"style":512},[448,511],[427,3373,3375],{"className":3374},[712],[427,3376,3378,3398],{"className":3377},[716,717],[427,3379,3381,3395],{"className":3380},[721],[427,3382,3384],{"className":3383,"style":2140},[725],[427,3385,3386,3389],{"style":2143},[427,3387],{"className":3388,"style":734},[733],[427,3390,3392],{"className":3391},[738,739,740,741],[427,3393,796],{"className":3394},[448,741],[427,3396,749],{"className":3397},[748],[427,3399,3401],{"className":3400},[721],[427,3402,3404],{"className":3403,"style":2162},[725],[427,3405],{},[427,3407],{"className":3408,"style":503},[502],[427,3410,520],{"className":3411},[448,449],[381,3413,3414,3415,3418,3419,3480],{},"Notice this is the ",[390,3416,3417],{},"same doubling\nargument"," from the warm-up, read from the other direction: there, a set doubled\neach time an element was relabeled; here, a root's rank rises only when two\nequal-rank trees merge, which doubles the node count. Either way, ",[427,3420,3422],{"className":3421},[430],[427,3423,3425],{"className":3424,"ariaHidden":435},[434],[427,3426,3428,3431,3474,3477],{"className":3427},[439],[427,3429],{"className":3430,"style":2118},[443],[427,3432,3434,3440],{"className":3433},[507],[427,3435,3437],{"className":3436},[507],[427,3438,513],{"className":3439,"style":512},[448,511],[427,3441,3443],{"className":3442},[712],[427,3444,3446,3466],{"className":3445},[716,717],[427,3447,3449,3463],{"className":3448},[721],[427,3450,3452],{"className":3451,"style":2140},[725],[427,3453,3454,3457],{"style":2143},[427,3455],{"className":3456,"style":734},[733],[427,3458,3460],{"className":3459},[738,739,740,741],[427,3461,796],{"className":3462},[448,741],[427,3464,749],{"className":3465},[748],[427,3467,3469],{"className":3468},[721],[427,3470,3472],{"className":3471,"style":2162},[725],[427,3473],{},[427,3475],{"className":3476,"style":503},[502],[427,3478,520],{"className":3479},[448,449]," is\nthe ceiling, because nothing can double more than that many times.",[381,3482,3483,3484,3505,3506,3521,3522,3537,3538,3553,3554,1081,3569,3572,3573,3588,3589,3592],{},"The figure shows a ",[427,3485,3487],{"className":3486},[430],[427,3488,3490],{"className":3489,"ariaHidden":435},[434],[427,3491,3493,3496],{"className":3492},[439],[427,3494],{"className":3495,"style":1889},[443],[427,3497,3499],{"className":3498},[565,566],[427,3500,3502],{"className":3501},[448,570],[427,3503,1044],{"className":3504},[448]," under this rule. The left tree has rank ",[427,3507,3509],{"className":3508},[430],[427,3510,3512],{"className":3511,"ariaHidden":435},[434],[427,3513,3515,3518],{"className":3514},[439],[427,3516],{"className":3517,"style":1270},[443],[427,3519,796],{"className":3520},[448],", the\nright rank ",[427,3523,3525],{"className":3524},[430],[427,3526,3528],{"className":3527,"ariaHidden":435},[434],[427,3529,3531,3534],{"className":3530},[439],[427,3532],{"className":3533,"style":1270},[443],[427,3535,424],{"className":3536},[448],"; since their ranks differ, the smaller-rank root ",[427,3539,3541],{"className":3540},[430],[427,3542,3544],{"className":3543,"ariaHidden":435},[434],[427,3545,3547,3550],{"className":3546},[439],[427,3548],{"className":3549,"style":1550},[443],[427,3551,1533],{"className":3552,"style":1532},[448,449]," is hung\nbeneath the larger-rank root ",[427,3555,3557],{"className":3556},[430],[427,3558,3560],{"className":3559,"ariaHidden":435},[434],[427,3561,3563,3566],{"className":3562},[439],[427,3564],{"className":3565,"style":930},[443],[427,3567,1460],{"className":3568},[448,449],[390,3570,3571],{},"no rank changes",". The result still has\nrank ",[427,3574,3576],{"className":3575},[430],[427,3577,3579],{"className":3578,"ariaHidden":435},[434],[427,3580,3582,3585],{"className":3581},[439],[427,3583],{"className":3584,"style":1270},[443],[427,3586,796],{"className":3587},[448],", exactly as the warm-up's ",[1103,3590,3591],{},"smaller side yields to the larger"," demands,\nbut now it costs a single pointer move rather than relabeling every member.",[1308,3594,3596,3911],{"className":3595},[1311,1312],[1314,3597,3601],{"xmlns":1316,"width":3598,"height":3599,"viewBox":3600},"548.076","191.301","-75 -75 411.057 143.476",[1321,3602,3603,3606,3612,3615,3622,3625,3632,3635,3642,3645,3649,3652,3655,3658,3661,3664,3667,3682,3685,3692,3695,3702,3705,3712,3715,3718,3721,3724,3727,3730,3744,3792,3795,3801,3804,3810,3813,3819,3822,3828,3831,3837,3840,3846,3849,3855,3858,3861,3864,3867,3870,3873,3876,3880,3883,3886,3889,3892,3895,3898],{"stroke":1323,"style":1324},[1326,3604],{"fill":1328,"d":3605},"M-9.68-42.82c0-6.287-5.095-11.382-11.38-11.382s-11.382 5.095-11.382 11.381S-27.346-31.44-21.06-31.44s11.382-5.095 11.382-11.38Zm-11.38 0",[1321,3607,3608],{"transform":1332},[1326,3609],{"d":3610,"fill":1323,"stroke":1323,"className":3611,"style":1338},"M-19.889-44.012Q-19.889-43.578-19.667-43.275Q-19.445-42.972-19.030-42.972Q-18.434-42.972-17.885-43.246Q-17.335-43.519-16.989-44.003Q-16.959-44.032-16.911-44.032Q-16.862-44.032-16.811-43.976Q-16.759-43.920-16.759-43.871Q-16.759-43.832-16.779-43.812Q-17.145-43.300-17.765-43.004Q-18.385-42.709-19.049-42.709Q-19.528-42.709-19.894-42.936Q-20.260-43.163-20.460-43.544Q-20.661-43.925-20.661-44.403Q-20.661-45.077-20.285-45.741Q-19.909-46.405-19.284-46.822Q-18.659-47.240-17.970-47.240Q-17.521-47.240-17.162-47.023Q-16.803-46.805-16.803-46.381Q-16.803-46.107-16.962-45.914Q-17.121-45.721-17.389-45.721Q-17.550-45.721-17.660-45.821Q-17.770-45.922-17.770-46.083Q-17.770-46.317-17.599-46.483Q-17.428-46.649-17.199-46.649L-17.179-46.649Q-17.296-46.820-17.519-46.901Q-17.741-46.981-17.980-46.981Q-18.566-46.981-19.005-46.481Q-19.445-45.980-19.667-45.284Q-19.889-44.589-19.889-44.012",[1337],[1326,3613],{"fill":1328,"d":3614},"M-45.975 2.01c0-6.286-5.095-11.381-11.38-11.381S-68.738-4.276-68.738 2.01s5.096 11.381 11.381 11.381S-45.975 8.296-45.975 2.01Zm-11.38 0",[1321,3616,3618],{"transform":3617},"translate(-38.938 46.984)",[1326,3619],{"d":3620,"fill":1323,"stroke":1323,"className":3621,"style":1338},"M-19.323-42.709Q-19.953-42.709-20.316-43.185Q-20.680-43.661-20.680-44.310Q-20.680-44.950-20.348-45.638Q-20.016-46.327-19.452-46.783Q-18.888-47.240-18.239-47.240Q-17.941-47.240-17.707-47.079Q-17.472-46.918-17.340-46.639Q-17.228-47.040-16.901-47.040Q-16.774-47.040-16.688-46.964Q-16.603-46.888-16.603-46.761Q-16.603-46.732-16.605-46.717Q-16.608-46.703-16.613-46.683L-17.311-43.890Q-17.379-43.592-17.379-43.402Q-17.379-42.972-17.091-42.972Q-16.779-42.972-16.615-43.370Q-16.452-43.768-16.339-44.291Q-16.320-44.349-16.261-44.349L-16.139-44.349Q-16.100-44.349-16.076-44.315Q-16.051-44.281-16.051-44.252Q-16.227-43.553-16.435-43.131Q-16.642-42.709-17.111-42.709Q-17.448-42.709-17.707-42.906Q-17.965-43.104-18.029-43.431Q-18.673-42.709-19.323-42.709M-19.313-42.972Q-18.952-42.972-18.612-43.243Q-18.273-43.514-18.029-43.881Q-18.019-43.890-18.019-43.910L-17.482-46.083L-17.472-46.112Q-17.531-46.468-17.728-46.725Q-17.926-46.981-18.263-46.981Q-18.600-46.981-18.891-46.705Q-19.181-46.429-19.381-46.053Q-19.577-45.653-19.755-44.955Q-19.933-44.257-19.933-43.871Q-19.933-43.524-19.784-43.248Q-19.635-42.972-19.313-42.972",[1337],[1326,3623],{"fill":1328,"d":3624},"M26.616 2.01c0-6.286-5.096-11.381-11.381-11.381S3.853-4.276 3.853 2.01 8.95 13.391 15.235 13.391s11.38-5.095 11.38-11.381Zm-11.381 0",[1321,3626,3628],{"transform":3627},"translate(33.414 48.303)",[1326,3629],{"d":3630,"fill":1323,"stroke":1323,"className":3631,"style":1338},"M-20.529-43.002Q-20.529-43.060-20.519-43.090L-19.069-48.871Q-19.030-49.042-19.020-49.139Q-19.020-49.300-19.669-49.300Q-19.772-49.300-19.772-49.432Q-19.767-49.457-19.750-49.520Q-19.733-49.584-19.706-49.618Q-19.679-49.652-19.630-49.652L-18.283-49.759L-18.253-49.759Q-18.253-49.750-18.219-49.733Q-18.185-49.716-18.180-49.711Q-18.161-49.662-18.161-49.633L-18.942-46.512Q-18.327-47.240-17.482-47.240Q-17.130-47.240-16.874-47.118Q-16.618-46.996-16.474-46.749Q-16.330-46.503-16.330-46.161Q-16.330-45.751-16.513-45.170Q-16.696-44.589-16.969-43.871Q-17.111-43.544-17.111-43.270Q-17.111-42.972-16.881-42.972Q-16.491-42.972-16.229-43.390Q-15.968-43.807-15.861-44.291Q-15.841-44.349-15.783-44.349L-15.661-44.349Q-15.622-44.349-15.597-44.322Q-15.573-44.296-15.573-44.261Q-15.573-44.252-15.582-44.232Q-15.670-43.871-15.844-43.522Q-16.017-43.173-16.281-42.941Q-16.544-42.709-16.901-42.709Q-17.252-42.709-17.501-42.950Q-17.750-43.192-17.750-43.539Q-17.750-43.724-17.672-43.929Q-17.389-44.681-17.201-45.272Q-17.013-45.863-17.013-46.312Q-17.013-46.600-17.125-46.791Q-17.238-46.981-17.501-46.981Q-18.039-46.981-18.439-46.652Q-18.839-46.322-19.132-45.780L-19.811-43.050Q-19.850-42.899-19.962-42.804Q-20.075-42.709-20.221-42.709Q-20.348-42.709-20.438-42.794Q-20.529-42.880-20.529-43.002",[1337],[1326,3633],{"fill":1328,"d":3634},"M26.616 53.625c0-6.286-5.096-11.381-11.381-11.381S3.853 47.339 3.853 53.624c0 6.287 5.096 11.382 11.382 11.382s11.38-5.095 11.38-11.381Zm-11.381 0",[1321,3636,3638],{"transform":3637},"translate(34.15 99.918)",[1326,3639],{"d":3640,"fill":1323,"stroke":1323,"className":3641,"style":1338},"M-19.332-42.709Q-19.938-42.709-20.275-43.182Q-20.612-43.656-20.612-44.291Q-20.612-44.383-20.565-44.654Q-20.519-44.925-20.519-44.989L-19.552-48.871Q-19.513-49.042-19.503-49.139Q-19.503-49.300-20.153-49.300Q-20.250-49.300-20.250-49.432Q-20.246-49.457-20.228-49.520Q-20.211-49.584-20.185-49.618Q-20.158-49.652-20.109-49.652L-18.761-49.759Q-18.639-49.759-18.639-49.633L-19.381-46.683Q-18.815-47.240-18.239-47.240Q-17.814-47.240-17.509-47.015Q-17.204-46.791-17.052-46.425Q-16.901-46.058-16.901-45.643Q-16.901-45.160-17.089-44.645Q-17.277-44.130-17.609-43.688Q-17.941-43.246-18.385-42.977Q-18.830-42.709-19.332-42.709M-19.313-42.972Q-18.971-42.972-18.673-43.258Q-18.375-43.544-18.190-43.900Q-17.990-44.300-17.816-44.987Q-17.643-45.673-17.643-46.083Q-17.643-46.439-17.792-46.710Q-17.941-46.981-18.263-46.981Q-18.624-46.981-18.954-46.715Q-19.284-46.449-19.533-46.083L-19.811-44.950Q-19.972-44.320-19.982-43.939Q-19.982-43.563-19.818-43.268Q-19.655-42.972-19.313-42.972",[1337],[1326,3643],{"fill":1328,"d":3644},"m-50.069-6.99 19.786-24.44",[1326,3646],{"d":3647,"style":3648},"m-28.706-33.377-3.305 1.936 1.791-.067.308 1.766Z","stroke-width:.399992",[1326,3650],{"fill":1328,"d":3651},"M7.948-6.99-11.84-31.43",[1326,3653],{"d":3654,"style":3648},"m-13.415-33.377 1.205 3.635.309-1.766 1.791.067Z",[1326,3656],{"fill":1328,"d":3657},"M15.235 42.044V16.666",[1326,3659],{"d":3660},"m15.235 14.16-1.351 3.585 1.35-1.179 1.351 1.18Z",[1326,3662],{"fill":1328,"d":3663},"M-24.058-54.007c-4.84-18.063 10.834-18.063 7.05-3.937",[1326,3665],{"d":3666},"m-17.657-55.523 2.232-3.113-1.61.789-1-1.488Z",[1321,3668,3669,3676],{"stroke":1328,"fontFamily":2510,"fontSize":2511},[1321,3670,3672],{"transform":3671},"translate(-11.927 99.224)",[1326,3673],{"d":3674,"fill":1323,"stroke":1323,"className":3675,"style":2519},"M-18.815-42.821L-20.795-42.821L-20.795-43.118Q-20.526-43.118-20.358-43.163Q-20.190-43.208-20.190-43.380L-20.190-45.516Q-20.190-45.731-20.252-45.827Q-20.315-45.923-20.432-45.944Q-20.549-45.966-20.795-45.966L-20.795-46.262L-19.627-46.348L-19.627-45.563Q-19.549-45.774-19.397-45.960Q-19.245-46.145-19.045-46.247Q-18.846-46.348-18.620-46.348Q-18.373-46.348-18.182-46.204Q-17.991-46.059-17.991-45.829Q-17.991-45.673-18.096-45.563Q-18.202-45.454-18.358-45.454Q-18.514-45.454-18.623-45.563Q-18.733-45.673-18.733-45.829Q-18.733-45.989-18.627-46.094Q-18.952-46.094-19.166-45.866Q-19.381-45.637-19.477-45.298Q-19.573-44.958-19.573-44.653L-19.573-43.380Q-19.573-43.212-19.346-43.165Q-19.120-43.118-18.815-43.118L-18.815-42.821M-17.413-43.653Q-17.413-44.137-17.010-44.432Q-16.608-44.727-16.057-44.846Q-15.506-44.966-15.014-44.966L-15.014-45.255Q-15.014-45.481-15.129-45.688Q-15.245-45.895-15.442-46.014Q-15.639-46.133-15.870-46.133Q-16.295-46.133-16.581-46.028Q-16.510-46.001-16.463-45.946Q-16.416-45.891-16.391-45.821Q-16.366-45.751-16.366-45.676Q-16.366-45.571-16.416-45.479Q-16.467-45.387-16.559-45.337Q-16.651-45.286-16.756-45.286Q-16.862-45.286-16.954-45.337Q-17.045-45.387-17.096-45.479Q-17.147-45.571-17.147-45.676Q-17.147-46.094-16.758-46.241Q-16.370-46.387-15.870-46.387Q-15.538-46.387-15.184-46.257Q-14.831-46.126-14.602-45.872Q-14.373-45.618-14.373-45.270L-14.373-43.469Q-14.373-43.337-14.301-43.227Q-14.229-43.118-14.100-43.118Q-13.975-43.118-13.907-43.223Q-13.838-43.329-13.838-43.469L-13.838-43.981L-13.557-43.981L-13.557-43.469Q-13.557-43.266-13.674-43.108Q-13.791-42.950-13.973-42.866Q-14.155-42.782-14.358-42.782Q-14.588-42.782-14.741-42.954Q-14.893-43.126-14.924-43.356Q-15.084-43.075-15.393-42.909Q-15.702-42.743-16.053-42.743Q-16.565-42.743-16.989-42.966Q-17.413-43.188-17.413-43.653M-16.725-43.653Q-16.725-43.368-16.498-43.182Q-16.272-42.997-15.979-42.997Q-15.733-42.997-15.508-43.114Q-15.284-43.231-15.149-43.434Q-15.014-43.637-15.014-43.891L-15.014-44.723Q-15.280-44.723-15.565-44.669Q-15.850-44.614-16.122-44.485Q-16.393-44.356-16.559-44.149Q-16.725-43.942-16.725-43.653M-11.334-42.821L-13.190-42.821L-13.190-43.118Q-12.916-43.118-12.748-43.165Q-12.581-43.212-12.581-43.380L-12.581-45.516Q-12.581-45.731-12.643-45.827Q-12.706-45.923-12.825-45.944Q-12.944-45.966-13.190-45.966L-13.190-46.262L-11.998-46.348L-11.998-45.614Q-11.885-45.829-11.692-45.997Q-11.498-46.165-11.260-46.257Q-11.022-46.348-10.768-46.348Q-9.600-46.348-9.600-45.270L-9.600-43.380Q-9.600-43.212-9.430-43.165Q-9.260-43.118-8.991-43.118L-8.991-42.821L-10.846-42.821L-10.846-43.118Q-10.573-43.118-10.405-43.165Q-10.237-43.212-10.237-43.380L-10.237-45.255Q-10.237-45.637-10.358-45.866Q-10.479-46.094-10.831-46.094Q-11.143-46.094-11.397-45.932Q-11.651-45.770-11.797-45.501Q-11.944-45.231-11.944-44.934L-11.944-43.380Q-11.944-43.212-11.774-43.165Q-11.604-43.118-11.334-43.118L-11.334-42.821M-6.721-42.821L-8.518-42.821L-8.518-43.118Q-8.248-43.118-8.081-43.163Q-7.913-43.208-7.913-43.380L-7.913-47.540Q-7.913-47.755-7.975-47.850Q-8.038-47.946-8.155-47.967Q-8.272-47.989-8.518-47.989L-8.518-48.286L-7.295-48.372L-7.295-44.606L-6.198-45.493Q-5.991-45.673-5.991-45.821Q-5.991-45.887-6.043-45.930Q-6.096-45.973-6.166-45.973L-6.166-46.270L-4.631-46.270L-4.631-45.973Q-5.163-45.973-5.760-45.493L-6.370-44.997L-5.295-43.598Q-5.159-43.423-5.051-43.315Q-4.944-43.208-4.809-43.163Q-4.674-43.118-4.448-43.118L-4.448-42.821L-6.073-42.821L-6.073-43.118Q-5.831-43.118-5.831-43.270Q-5.831-43.348-5.873-43.419Q-5.916-43.489-5.998-43.598L-6.799-44.645L-7.327-44.219L-7.327-43.380Q-7.327-43.212-7.159-43.165Q-6.991-43.118-6.721-43.118",[1337],[1321,3677,3678],{"transform":3671},[1326,3679],{"d":3680,"fill":1323,"stroke":1323,"className":3681,"style":2519},"M2.130-42.821L-1.030-42.821L-1.030-43.028Q-1.030-43.055-1.007-43.087L0.345-44.485Q0.724-44.872 0.972-45.161Q1.220-45.450 1.394-45.807Q1.567-46.165 1.567-46.555Q1.567-46.903 1.435-47.196Q1.302-47.489 1.048-47.667Q0.794-47.844 0.439-47.844Q0.079-47.844-0.212-47.649Q-0.503-47.454-0.647-47.126L-0.593-47.126Q-0.409-47.126-0.284-47.005Q-0.159-46.883-0.159-46.692Q-0.159-46.512-0.284-46.383Q-0.409-46.255-0.593-46.255Q-0.772-46.255-0.901-46.383Q-1.030-46.512-1.030-46.692Q-1.030-47.094-0.810-47.430Q-0.589-47.766-0.224-47.954Q0.142-48.141 0.544-48.141Q1.024-48.141 1.440-47.954Q1.857-47.766 2.108-47.405Q2.360-47.044 2.360-46.555Q2.360-46.196 2.206-45.893Q2.052-45.591 1.800-45.331Q1.548-45.071 1.198-44.786Q0.849-44.501 0.681-44.348L-0.249-43.508L0.466-43.508Q1.841-43.508 1.880-43.548Q1.950-43.626 1.993-43.811Q2.036-43.997 2.079-44.286L2.360-44.286",[1337],[1326,3683],{"fill":1328,"d":3684},"M87.46-42.82c0-6.287-5.096-11.382-11.381-11.382s-11.381 5.095-11.381 11.381 5.095 11.381 11.38 11.381S87.46-36.535 87.46-42.82Zm-11.381 0",[1321,3686,3688],{"transform":3687},"translate(94.153 2.5)",[1326,3689],{"d":3690,"fill":1323,"stroke":1323,"className":3691,"style":1338},"M-20.089-41.171Q-19.904-41.029-19.640-41.029Q-19.284-41.029-19.059-41.820Q-18.966-42.201-18.551-44.330L-18.092-46.781L-18.952-46.781Q-19.049-46.781-19.049-46.913Q-19.010-47.133-18.922-47.133L-18.029-47.133L-17.912-47.782Q-17.853-48.085-17.804-48.302Q-17.755-48.519-17.699-48.705Q-17.643-48.890-17.531-49.120Q-17.360-49.447-17.069-49.659Q-16.779-49.872-16.442-49.872Q-16.222-49.872-16.015-49.791Q-15.807-49.711-15.675-49.550Q-15.543-49.388-15.543-49.169Q-15.543-48.915-15.712-48.727Q-15.880-48.539-16.120-48.539Q-16.281-48.539-16.395-48.639Q-16.510-48.739-16.510-48.900Q-16.510-49.120-16.361-49.283Q-16.212-49.447-15.993-49.471Q-16.178-49.613-16.452-49.613Q-16.603-49.613-16.737-49.471Q-16.872-49.330-16.911-49.169Q-16.974-48.915-17.189-47.792L-17.311-47.133L-16.281-47.133Q-16.183-47.133-16.183-47.001Q-16.188-46.976-16.203-46.915Q-16.217-46.854-16.244-46.818Q-16.271-46.781-16.310-46.781L-17.379-46.781L-17.843-44.340Q-17.931-43.807-18.046-43.258Q-18.161-42.709-18.368-42.130Q-18.576-41.551-18.898-41.161Q-19.220-40.770-19.660-40.770Q-19.997-40.770-20.263-40.963Q-20.529-41.156-20.529-41.473Q-20.529-41.727-20.365-41.915Q-20.202-42.103-19.953-42.103Q-19.787-42.103-19.674-42.003Q-19.562-41.903-19.562-41.742Q-19.562-41.527-19.721-41.349Q-19.879-41.171-20.089-41.171",[1337],[1326,3693],{"fill":1328,"d":3694},"M51.165 2.01c0-6.286-5.096-11.381-11.381-11.381S28.403-4.276 28.403 2.01s5.095 11.381 11.38 11.381S51.166 8.296 51.166 2.01Zm-11.381 0",[1321,3696,3698],{"transform":3697},"translate(58.242 48.303)",[1326,3699],{"d":3700,"fill":1323,"stroke":1323,"className":3701,"style":1338},"M-19.323-42.709Q-19.953-42.709-20.316-43.185Q-20.680-43.661-20.680-44.310Q-20.680-44.950-20.348-45.638Q-20.016-46.327-19.452-46.783Q-18.888-47.240-18.239-47.240Q-17.946-47.240-17.709-47.076Q-17.472-46.913-17.340-46.639L-16.779-48.871Q-16.740-49.042-16.730-49.139Q-16.730-49.300-17.379-49.300Q-17.482-49.300-17.482-49.432Q-17.477-49.457-17.460-49.520Q-17.443-49.584-17.416-49.618Q-17.389-49.652-17.340-49.652L-15.993-49.759Q-15.871-49.759-15.871-49.633L-17.311-43.881Q-17.379-43.715-17.379-43.402Q-17.379-42.972-17.091-42.972Q-16.779-42.972-16.615-43.370Q-16.452-43.768-16.339-44.291Q-16.320-44.349-16.261-44.349L-16.139-44.349Q-16.100-44.349-16.076-44.315Q-16.051-44.281-16.051-44.252Q-16.227-43.553-16.435-43.131Q-16.642-42.709-17.111-42.709Q-17.448-42.709-17.707-42.906Q-17.965-43.104-18.029-43.431Q-18.673-42.709-19.323-42.709M-19.313-42.972Q-18.952-42.972-18.612-43.243Q-18.273-43.514-18.029-43.881Q-18.019-43.890-18.019-43.920L-17.472-46.122Q-17.531-46.473-17.731-46.727Q-17.931-46.981-18.263-46.981Q-18.600-46.981-18.891-46.705Q-19.181-46.429-19.381-46.053Q-19.577-45.653-19.755-44.955Q-19.933-44.257-19.933-43.871Q-19.933-43.524-19.784-43.248Q-19.635-42.972-19.313-42.972",[1337],[1326,3703],{"fill":1328,"d":3704},"M123.755 2.01c0-6.286-5.095-11.381-11.381-11.381S100.993-4.276 100.993 2.01s5.095 11.381 11.38 11.381c6.287 0 11.382-5.095 11.382-11.381Zm-11.381 0",[1321,3706,3708],{"transform":3707},"translate(131.106 46.984)",[1326,3709],{"d":3710,"fill":1323,"stroke":1323,"className":3711,"style":1338},"M-19.049-42.709Q-19.528-42.709-19.887-42.958Q-20.246-43.207-20.434-43.629Q-20.622-44.051-20.622-44.520Q-20.622-45.233-20.263-45.861Q-19.904-46.488-19.289-46.864Q-18.673-47.240-17.970-47.240Q-17.540-47.240-17.221-47.018Q-16.901-46.796-16.901-46.381Q-16.901-45.804-17.360-45.524Q-17.819-45.243-18.395-45.177Q-18.971-45.111-19.669-45.111L-19.699-45.111Q-19.860-44.515-19.860-44.091Q-19.860-43.646-19.655-43.309Q-19.450-42.972-19.030-42.972Q-18.434-42.972-17.885-43.246Q-17.335-43.519-16.989-44.003Q-16.959-44.032-16.911-44.032Q-16.862-44.032-16.811-43.976Q-16.759-43.920-16.759-43.871Q-16.759-43.832-16.779-43.812Q-17.145-43.300-17.765-43.004Q-18.385-42.709-19.049-42.709M-19.640-45.370Q-19.059-45.370-18.566-45.424Q-18.073-45.477-17.672-45.695Q-17.272-45.912-17.272-46.371Q-17.272-46.556-17.374-46.696Q-17.477-46.835-17.641-46.908Q-17.804-46.981-17.980-46.981Q-18.405-46.981-18.744-46.752Q-19.083-46.522-19.303-46.154Q-19.523-45.785-19.640-45.370",[1337],[1326,3713],{"fill":1328,"d":3714},"m47.07-6.99 19.787-24.44",[1326,3716],{"d":3717,"style":3648},"m68.433-33.377-3.305 1.936 1.792-.067.308 1.766Z",[1326,3719],{"fill":1328,"d":3720},"M105.087-6.99 85.3-31.43",[1326,3722],{"d":3723,"style":3648},"m83.724-33.377 1.206 3.635.308-1.766 1.791.067Z",[1326,3725],{"fill":1328,"d":3726},"M73.082-54.007c-4.84-18.063 10.834-18.063 7.049-3.937",[1326,3728],{"d":3729},"m79.482-55.523 2.232-3.113-1.61.789-1-1.488Z",[1321,3731,3732,3738],{"stroke":1328,"fontFamily":2510,"fontSize":2511},[1321,3733,3735],{"transform":3734},"translate(85.212 99.224)",[1326,3736],{"d":3674,"fill":1323,"stroke":1323,"className":3737,"style":2519},[1337],[1321,3739,3740],{"transform":3734},[1326,3741],{"d":3742,"fill":1323,"stroke":1323,"className":3743,"style":2519},"M2.138-42.821L-0.655-42.821L-0.655-43.118Q0.407-43.118 0.407-43.380L0.407-47.548Q-0.022-47.333-0.702-47.333L-0.702-47.630Q0.317-47.630 0.833-48.141L0.978-48.141Q1.052-48.122 1.071-48.044L1.071-43.380Q1.071-43.118 2.138-43.118",[1337],[1321,3745,3747,3750,3753],{"style":3746},"stroke-width:.8",[1326,3748],{"fill":1328,"d":3749},"M110.222-59.893h47.09",[1326,3751],{"d":3752},"m160.298-59.893-4.17-1.576 1.383 1.576-1.382 1.577Z",[1321,3754,3756,3759],{"fill":3755},"var(--tk-bg)",[1326,3757],{"stroke":1328,"d":3758},"M113.432-60.293h44.795v-11h-44.795Z",[1321,3760,3761,3768,3774,3780,3786],{"fill":1323,"stroke":1328,"fontSize":2511},[1321,3762,3764],{"transform":3763},"translate(135.993 -20.972)",[1326,3765],{"d":3766,"fill":1323,"stroke":1323,"className":3767,"style":2519},"M-19.815-44.630L-19.815-47.751Q-19.815-48.005-20.635-48.005L-20.635-48.286L-18.245-48.286L-18.245-48.005Q-19.069-48.005-19.069-47.751L-19.069-44.661Q-19.069-43.919-18.737-43.423Q-18.405-42.926-17.694-42.926Q-17.229-42.926-16.858-43.163Q-16.487-43.399-16.286-43.796Q-16.084-44.192-16.084-44.661L-16.084-47.532Q-16.084-48.005-16.909-48.005L-16.909-48.286L-14.983-48.286L-14.983-48.005Q-15.803-48.005-15.803-47.532L-15.803-44.630Q-15.803-44.110-16.053-43.651Q-16.303-43.192-16.737-42.919Q-17.170-42.645-17.694-42.645Q-18.233-42.645-18.725-42.903Q-19.217-43.161-19.516-43.618Q-19.815-44.075-19.815-44.630M-12.823-42.821L-14.229-42.821L-14.229-43.051Q-13.655-43.051-13.655-43.575L-13.655-46.653Q-13.795-46.700-14.229-46.700L-14.229-46.934L-13.108-46.934Q-13.073-46.934-13.045-46.899L-10.815-43.805L-10.815-46.180Q-10.815-46.700-11.389-46.700L-11.389-46.934L-9.983-46.934L-9.983-46.700Q-10.557-46.700-10.557-46.180L-10.557-42.891Q-10.557-42.872-10.586-42.846Q-10.616-42.821-10.635-42.821L-10.733-42.821Q-10.772-42.821-10.788-42.852L-13.350-46.395Q-13.366-46.419-13.375-46.432Q-13.385-46.446-13.397-46.462L-13.397-43.575Q-13.397-43.051-12.823-43.051L-12.823-42.821M-7.534-42.821L-9.358-42.821L-9.358-43.051Q-9.166-43.051-9.043-43.067Q-8.920-43.083-8.836-43.149Q-8.752-43.216-8.752-43.356L-8.752-46.395Q-8.752-46.602-8.911-46.651Q-9.069-46.700-9.358-46.700L-9.358-46.934L-7.534-46.934L-7.534-46.700Q-7.827-46.700-7.985-46.651Q-8.143-46.602-8.143-46.395L-8.143-43.356Q-8.143-43.216-8.059-43.149Q-7.975-43.083-7.850-43.067Q-7.725-43.051-7.534-43.051L-7.534-42.821M-4.698-42.708Q-5.276-42.708-5.768-42.999Q-6.260-43.290-6.547-43.784Q-6.834-44.278-6.834-44.852Q-6.834-45.290-6.670-45.690Q-6.506-46.091-6.215-46.393Q-5.924-46.696-5.532-46.870Q-5.139-47.044-4.698-47.044Q-4.252-47.044-3.858-46.870Q-3.463-46.696-3.172-46.389Q-2.881-46.083-2.721-45.686Q-2.561-45.290-2.561-44.852Q-2.561-44.415-2.727-44.026Q-2.893-43.637-3.186-43.341Q-3.479-43.044-3.873-42.876Q-4.268-42.708-4.698-42.708M-4.698-42.950Q-4.202-42.950-3.881-43.253Q-3.561-43.555-3.420-44.016Q-3.280-44.477-3.280-44.958Q-3.280-45.430-3.430-45.854Q-3.581-46.278-3.903-46.546Q-4.225-46.813-4.698-46.813Q-5.170-46.813-5.493-46.544Q-5.815-46.274-5.963-45.852Q-6.112-45.430-6.112-44.958Q-6.112-44.477-5.971-44.016Q-5.831-43.555-5.514-43.253Q-5.198-42.950-4.698-42.950M-0.428-42.821L-1.834-42.821L-1.834-43.051Q-1.260-43.051-1.260-43.575L-1.260-46.653Q-1.401-46.700-1.834-46.700L-1.834-46.934L-0.713-46.934Q-0.678-46.934-0.651-46.899L1.580-43.805L1.580-46.180Q1.580-46.700 1.005-46.700L1.005-46.934L2.412-46.934L2.412-46.700Q1.837-46.700 1.837-46.180L1.837-42.891Q1.837-42.872 1.808-42.846Q1.779-42.821 1.759-42.821L1.662-42.821Q1.623-42.821 1.607-42.852L-0.956-46.395Q-0.971-46.419-0.981-46.432Q-0.991-46.446-1.002-46.462L-1.002-43.575Q-1.002-43.051-0.428-43.051",[1337],[1321,3769,3770],{"transform":3763},[1326,3771],{"d":3772,"fill":1323,"stroke":1323,"className":3773,"style":2519},"M5.383-40.829Q4.770-41.286 4.368-41.921Q3.965-42.555 3.770-43.301Q3.575-44.048 3.575-44.821Q3.575-45.594 3.770-46.341Q3.965-47.087 4.368-47.721Q4.770-48.356 5.383-48.813Q5.395-48.817 5.403-48.819Q5.411-48.821 5.422-48.821L5.500-48.821Q5.539-48.821 5.565-48.794Q5.590-48.766 5.590-48.723Q5.590-48.673 5.559-48.653Q5.051-48.200 4.729-47.577Q4.407-46.954 4.266-46.258Q4.125-45.563 4.125-44.821Q4.125-44.087 4.264-43.387Q4.403-42.688 4.727-42.063Q5.051-41.438 5.559-40.989Q5.590-40.969 5.590-40.919Q5.590-40.876 5.565-40.848Q5.539-40.821 5.500-40.821L5.422-40.821Q5.414-40.825 5.405-40.827Q5.395-40.829 5.383-40.829",[1337],[1321,3775,3776],{"transform":3763},[1326,3777],{"d":3778,"fill":1323,"stroke":1323,"className":3779,"style":2519},"M7.576-42.743Q7.236-42.743 6.976-42.921Q6.717-43.098 6.582-43.393Q6.447-43.688 6.447-44.036Q6.447-44.298 6.513-44.555L7.263-47.583Q7.275-47.630 7.302-47.731Q7.330-47.833 7.330-47.883Q7.330-47.989 6.834-47.989Q6.736-48.020 6.736-48.118L6.760-48.219Q6.767-48.266 6.849-48.286L7.951-48.372Q7.994-48.372 8.033-48.341Q8.072-48.309 8.072-48.255L7.498-45.934Q7.955-46.348 8.431-46.348Q8.795-46.348 9.060-46.169Q9.326-45.989 9.467-45.688Q9.607-45.387 9.607-45.036Q9.607-44.512 9.326-43.973Q9.045-43.434 8.578-43.089Q8.111-42.743 7.576-42.743M7.592-42.997Q7.927-42.997 8.207-43.288Q8.486-43.579 8.623-43.934Q8.748-44.227 8.849-44.661Q8.951-45.094 8.951-45.372Q8.951-45.657 8.818-45.876Q8.685-46.094 8.416-46.094Q8.205-46.094 8.009-45.993Q7.814-45.891 7.654-45.735Q7.494-45.579 7.361-45.387L7.135-44.516Q7.084-44.282 7.054-44.100Q7.025-43.919 7.025-43.766Q7.025-43.466 7.166-43.231Q7.306-42.997 7.592-42.997M10.529-41.415Q10.529-41.438 10.560-41.485Q10.853-41.747 11.019-42.114Q11.185-42.481 11.185-42.868L11.185-42.926Q11.056-42.821 10.888-42.821Q10.697-42.821 10.560-42.954Q10.424-43.087 10.424-43.286Q10.424-43.477 10.560-43.610Q10.697-43.743 10.888-43.743Q11.189-43.743 11.314-43.473Q11.439-43.204 11.439-42.868Q11.439-42.419 11.258-42.005Q11.076-41.591 10.736-41.294Q10.713-41.270 10.674-41.270Q10.627-41.270 10.578-41.315Q10.529-41.360 10.529-41.415",[1337],[1321,3781,3782],{"transform":3763},[1326,3783],{"d":3784,"fill":1323,"stroke":1323,"className":3785,"style":2519},"M14.525-43.899Q14.525-43.524 14.707-43.260Q14.888-42.997 15.248-42.997Q15.756-42.997 16.211-43.190Q16.666-43.383 16.951-43.758Q16.970-43.790 17.021-43.790Q17.072-43.790 17.119-43.739Q17.166-43.688 17.166-43.637Q17.166-43.598 17.142-43.575Q16.826-43.161 16.310-42.952Q15.795-42.743 15.228-42.743Q14.818-42.743 14.507-42.940Q14.197-43.137 14.029-43.481Q13.861-43.825 13.861-44.219Q13.861-44.661 14.039-45.051Q14.216-45.442 14.535-45.737Q14.853-46.032 15.254-46.190Q15.654-46.348 16.080-46.348Q16.443-46.348 16.732-46.171Q17.021-45.993 17.021-45.645Q17.021-45.184 16.623-44.960Q16.224-44.735 15.730-44.682Q15.236-44.630 14.654-44.630L14.631-44.630Q14.525-44.161 14.525-43.899M14.693-44.883Q15.154-44.883 15.564-44.923Q15.974-44.962 16.322-45.128Q16.670-45.294 16.670-45.637Q16.670-45.856 16.484-45.975Q16.299-46.094 16.060-46.094Q15.713-46.094 15.439-45.928Q15.166-45.762 14.978-45.485Q14.791-45.208 14.693-44.883",[1337],[1321,3787,3788],{"transform":3763},[1326,3789],{"d":3790,"fill":1323,"stroke":1323,"className":3791,"style":2519},"M18.070-40.821L17.988-40.821Q17.952-40.821 17.927-40.850Q17.902-40.880 17.902-40.919Q17.902-40.969 17.933-40.989Q18.320-41.325 18.603-41.774Q18.886-42.223 19.052-42.723Q19.218-43.223 19.292-43.741Q19.366-44.258 19.366-44.821Q19.366-45.391 19.292-45.907Q19.218-46.423 19.052-46.919Q18.886-47.415 18.607-47.862Q18.327-48.309 17.933-48.653Q17.902-48.673 17.902-48.723Q17.902-48.762 17.927-48.792Q17.952-48.821 17.988-48.821L18.070-48.821Q18.081-48.821 18.091-48.819Q18.101-48.817 18.109-48.813Q18.722-48.356 19.124-47.721Q19.527-47.087 19.722-46.341Q19.917-45.594 19.917-44.821Q19.917-44.048 19.722-43.301Q19.527-42.555 19.124-41.921Q18.722-41.286 18.109-40.829Q18.097-40.829 18.089-40.827Q18.081-40.825 18.070-40.821",[1337],[1326,3793],{"fill":1328,"d":3794},"M252.086-42.82c0-6.287-5.096-11.382-11.381-11.382s-11.381 5.095-11.381 11.381 5.095 11.381 11.38 11.381 11.382-5.095 11.382-11.38Zm-11.381 0",[1321,3796,3798],{"transform":3797},"translate(259.602 2.153)",[1326,3799],{"d":3610,"fill":1323,"stroke":1323,"className":3800,"style":1338},[1337],[1326,3802],{"fill":1328,"d":3803},"M195.18-5.832c0-6.286-5.095-11.381-11.38-11.381s-11.382 5.095-11.382 11.38S177.514 5.55 183.8 5.55 195.18.453 195.18-5.832Zm-11.38 0",[1321,3805,3807],{"transform":3806},"translate(202.217 39.141)",[1326,3808],{"d":3620,"fill":1323,"stroke":1323,"className":3809,"style":1338},[1337],[1326,3811],{"fill":1328,"d":3812},"M252.086-5.832c0-6.286-5.096-11.381-11.381-11.381s-11.381 5.095-11.381 11.38 5.095 11.382 11.38 11.382S252.087.453 252.087-5.832Zm-11.381 0",[1321,3814,3816],{"transform":3815},"translate(258.78 39.489)",[1326,3817],{"d":3690,"fill":1323,"stroke":1323,"className":3818,"style":1338},[1337],[1326,3820],{"fill":1328,"d":3821},"M308.991-5.832c0-6.286-5.095-11.381-11.38-11.381s-11.382 5.095-11.382 11.38S291.325 5.55 297.61 5.55 308.991.453 308.991-5.832Zm-11.38 0",[1321,3823,3825],{"transform":3824},"translate(315.79 40.46)",[1326,3826],{"d":3630,"fill":1323,"stroke":1323,"className":3827,"style":1338},[1337],[1326,3829],{"fill":1328,"d":3830},"M229.324 34.001c0-6.285-5.096-11.38-11.381-11.38S206.56 27.715 206.56 34s5.096 11.381 11.382 11.381 11.38-5.095 11.38-11.38Zm-11.381 0",[1321,3832,3834],{"transform":3833},"translate(236.4 80.295)",[1326,3835],{"d":3700,"fill":1323,"stroke":1323,"className":3836,"style":1338},[1337],[1326,3838],{"fill":1328,"d":3839},"M274.848 34.001c0-6.285-5.095-11.38-11.38-11.38-6.287 0-11.382 5.095-11.382 11.38s5.095 11.381 11.381 11.381 11.381-5.095 11.381-11.38Zm-11.38 0",[1321,3841,3843],{"transform":3842},"translate(282.2 78.975)",[1326,3844],{"d":3710,"fill":1323,"stroke":1323,"className":3845,"style":1338},[1337],[1326,3847],{"fill":1328,"d":3848},"M308.991 34.001c0-6.285-5.095-11.38-11.38-11.38S286.228 27.715 286.228 34s5.096 11.381 11.381 11.381 11.381-5.095 11.381-11.38Zm-11.38 0",[1321,3850,3852],{"transform":3851},"translate(316.525 80.295)",[1326,3853],{"d":3640,"fill":1323,"stroke":1323,"className":3854,"style":1338},[1337],[1326,3856],{"fill":1328,"d":3857},"m193.51-12.144 34.907-22.69",[1326,3859],{"d":3860,"style":3648},"m230.517-36.199-3.741.821 1.724.49-.252 1.775Z",[1326,3862],{"fill":1328,"d":3863},"m287.9-12.144-34.907-22.69",[1326,3865],{"d":3866,"style":3648},"m250.892-36.199 2.27 3.086-.253-1.775 1.725-.49Z",[1326,3868],{"fill":1328,"d":3869},"M240.705-17.413v-10.751",[1326,3871],{"d":3872},"m240.705-30.67-1.35 3.584 1.35-1.178 1.35 1.178Z",[1326,3874],{"fill":1328,"d":3875},"m223.688 23.947 9.746-17.055",[1326,3877],{"d":3878,"style":3879},"m234.677 4.717-2.951 2.442 1.757-.353.588 1.693Z","stroke-width:.39998",[1326,3881],{"fill":1328,"d":3882},"m257.722 23.947-9.746-17.055",[1326,3884],{"d":3885,"style":3879},"m246.733 4.717.605 3.782.588-1.693 1.758.353Z",[1326,3887],{"fill":1328,"d":3888},"M297.61 22.42V8.824",[1326,3890],{"d":3891},"m297.61 6.318-1.35 3.585 1.35-1.179 1.351 1.179Z",[1326,3893],{"fill":1328,"d":3894},"M237.708-54.007c-4.84-18.063 10.834-18.063 7.049-3.937",[1326,3896],{"d":3897},"m244.108-55.523 2.232-3.113-1.61.789-.999-1.488Z",[1321,3899,3900,3906],{"stroke":1328,"fontFamily":2510,"fontSize":2511},[1321,3901,3903],{"transform":3902},"translate(326.66 2.778)",[1326,3904],{"d":3674,"fill":1323,"stroke":1323,"className":3905,"style":2519},[1337],[1321,3907,3908],{"transform":3902},[1326,3909],{"d":3680,"fill":1323,"stroke":1323,"className":3910,"style":2519},[1337],[1412,3912,3914],{"className":3913},[1415],"Union by rank hangs the lower-rank root beneath the higher-rank root",[672,3916,3918],{"id":3917},"heuristic-2-path-compression","Heuristic 2: path compression",[381,3920,3921,3924,3925,3955,3956,3959,3960,3963,3964,3985],{},[385,3922,3923],{},"Path compression"," attacks the cost from the other side. Each time\n",[427,3926,3928],{"className":3927},[430],[427,3929,3931],{"className":3930,"ariaHidden":435},[434],[427,3932,3934,3937,3946,3949,3952],{"className":3933},[439],[427,3935],{"className":3936,"style":444},[443],[427,3938,3940],{"className":3939},[565,566],[427,3941,3943],{"className":3942},[448,570],[427,3944,990],{"className":3945},[448],[427,3947,456],{"className":3948},[455],[427,3950,913],{"className":3951},[448,449],[427,3953,464],{"className":3954},[463]," walks up to the root, it makes a ",[390,3957,3958],{},"second"," pass and points\nevery node it visited ",[390,3961,3962],{},"directly"," at the root. The path is paid for once; every\nfuture ",[427,3965,3967],{"className":3966},[430],[427,3968,3970],{"className":3969,"ariaHidden":435},[434],[427,3971,3973,3976],{"className":3972},[439],[427,3974],{"className":3975,"style":1227},[443],[427,3977,3979],{"className":3978},[565,566],[427,3980,3982],{"className":3981},[448,570],[427,3983,990],{"className":3984},[448]," on those nodes is then a single hop.",[1308,3987,3989,4131],{"className":3988},[1311,1312],[1314,3990,3994],{"xmlns":1316,"width":3991,"height":3992,"viewBox":3993},"320.454","169.831","-75 -75 240.340 127.373",[1321,3995,3996,3999,4006,4009,4016,4019,4026,4029,4036,4039,4042,4071,4074,4080,4083,4089,4092,4098,4101,4107,4110,4113,4116,4119,4122,4125,4128],{"stroke":1323,"style":1324},[1326,3997],{"fill":1328,"d":3998},"M-48.82-46.414c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,4000,4002],{"transform":4001},"translate(-2.395 2.153)",[1326,4003],{"d":4004,"fill":1323,"stroke":1323,"className":4005,"style":1338},"M-58.007-46.585Q-58.007-46.643-57.997-46.673L-57.250-49.656Q-57.176-49.935-57.176-50.144Q-57.176-50.574-57.469-50.574Q-57.782-50.574-57.933-50.201Q-58.085-49.827-58.226-49.256Q-58.226-49.227-58.256-49.209Q-58.285-49.192-58.309-49.192L-58.426-49.192Q-58.461-49.192-58.485-49.229Q-58.509-49.266-58.509-49.295Q-58.402-49.729-58.302-50.032Q-58.202-50.335-57.989-50.584Q-57.777-50.833-57.460-50.833Q-57.113-50.833-56.852-50.633Q-56.590-50.433-56.527-50.105Q-56.273-50.437-55.948-50.635Q-55.624-50.833-55.238-50.833Q-54.921-50.833-54.679-50.647Q-54.437-50.462-54.437-50.144Q-54.437-49.891-54.596-49.703Q-54.755-49.515-55.018-49.515Q-55.179-49.515-55.289-49.615Q-55.399-49.715-55.399-49.876Q-55.399-50.096-55.238-50.269Q-55.077-50.442-54.867-50.442Q-55.028-50.574-55.257-50.574Q-55.687-50.574-56.005-50.269Q-56.322-49.964-56.576-49.495L-57.289-46.634Q-57.323-46.497-57.443-46.399Q-57.562-46.302-57.709-46.302Q-57.831-46.302-57.919-46.380Q-58.007-46.458-58.007-46.585",[1337],[1326,4007],{"fill":1328,"d":4008},"M-48.82-17.961c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,4010,4012],{"transform":4011},"translate(-3.714 30.606)",[1326,4013],{"d":4014,"fill":1323,"stroke":1323,"className":4015,"style":1338},"M-57.699-47.576Q-57.699-47.786-57.643-48.060Q-57.587-48.333-57.518-48.545Q-57.450-48.758-57.286-49.197Q-57.123-49.637-57.108-49.676Q-56.976-50.042-56.976-50.276Q-56.976-50.574-57.196-50.574Q-57.591-50.574-57.848-50.166Q-58.104-49.759-58.226-49.256Q-58.246-49.192-58.309-49.192L-58.426-49.192Q-58.509-49.192-58.509-49.285L-58.509-49.314Q-58.348-49.910-58.016-50.372Q-57.684-50.833-57.176-50.833Q-56.820-50.833-56.573-50.599Q-56.327-50.364-56.327-50.003Q-56.327-49.817-56.410-49.612Q-56.527-49.310-56.686-48.885Q-56.844-48.460-56.932-48.113Q-57.020-47.767-57.020-47.444Q-57.020-47.054-56.815-46.810Q-56.610-46.565-56.219-46.565Q-55.687-46.565-55.336-47.376Q-55.350-47.435-55.350-47.542Q-55.350-47.810-55.267-48.152L-54.706-50.403Q-54.672-50.535-54.549-50.630Q-54.427-50.726-54.286-50.726Q-54.169-50.726-54.078-50.647Q-53.988-50.569-53.988-50.442Q-53.988-50.384-53.998-50.364L-54.559-48.133Q-54.657-47.732-54.657-47.415Q-54.657-47.039-54.484-46.802Q-54.310-46.565-53.939-46.565Q-53.295-46.565-52.880-47.415Q-52.723-47.718-52.530-48.309Q-52.338-48.899-52.338-49.212Q-52.338-49.500-52.430-49.668Q-52.523-49.837-52.687-50.032Q-52.850-50.227-52.850-50.325Q-52.850-50.516-52.687-50.679Q-52.523-50.843-52.328-50.843Q-52.089-50.843-51.984-50.623Q-51.879-50.403-51.879-50.125Q-51.879-49.788-51.991-49.268Q-52.103-48.748-52.274-48.223Q-52.445-47.698-52.596-47.386Q-53.143-46.302-53.959-46.302Q-54.379-46.302-54.725-46.463Q-55.072-46.624-55.238-46.976Q-55.399-46.687-55.660-46.495Q-55.922-46.302-56.239-46.302Q-56.898-46.302-57.299-46.617Q-57.699-46.932-57.699-47.576",[1337],[1326,4017],{"fill":1328,"d":4018},"M-58.778-36.255v8.136M-48.82 10.492c0-5.5-4.458-9.959-9.958-9.959s-9.959 4.459-9.959 9.959 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,4020,4022],{"transform":4021},"translate(-2.603 59.058)",[1326,4023],{"d":4024,"fill":1323,"stroke":1323,"className":4025,"style":1338},"M-57.709-47.542Q-57.709-47.767-57.655-48.035Q-57.601-48.304-57.548-48.477Q-57.494-48.650-57.303-49.153Q-57.113-49.656-57.108-49.676Q-56.976-50.042-56.976-50.276Q-56.976-50.574-57.196-50.574Q-57.591-50.574-57.848-50.166Q-58.104-49.759-58.226-49.256Q-58.246-49.192-58.309-49.192L-58.426-49.192Q-58.509-49.192-58.509-49.285L-58.509-49.314Q-58.348-49.910-58.016-50.372Q-57.684-50.833-57.176-50.833Q-56.820-50.833-56.573-50.599Q-56.327-50.364-56.327-50.003Q-56.327-49.817-56.410-49.612Q-56.605-49.104-56.717-48.799Q-56.830-48.494-56.925-48.116Q-57.020-47.737-57.020-47.415Q-57.020-47.039-56.847-46.802Q-56.674-46.565-56.307-46.565Q-55.614-46.565-55.057-47.635Q-54.882-47.981-54.725-48.450Q-54.569-48.919-54.569-49.212Q-54.569-49.515-54.667-49.683Q-54.764-49.852-54.921-50.035Q-55.077-50.218-55.077-50.325Q-55.077-50.520-54.916-50.682Q-54.755-50.843-54.559-50.843Q-54.320-50.843-54.215-50.623Q-54.110-50.403-54.110-50.125Q-54.110-49.793-54.205-49.334Q-54.300-48.875-54.469-48.382Q-54.637-47.889-54.779-47.605Q-55.438-46.302-56.317-46.302Q-56.947-46.302-57.328-46.617Q-57.709-46.932-57.709-47.542",[1337],[1326,4027],{"fill":1328,"d":4028},"M-58.778-7.803V.333M-48.82 38.944c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,4030,4032],{"transform":4031},"translate(-2.862 87.511)",[1326,4033],{"d":4034,"fill":1323,"stroke":1323,"className":4035,"style":1338},"M-57.718-47.503Q-57.718-47.830-57.631-48.174Q-57.543-48.518-57.384-48.941Q-57.225-49.363-57.108-49.676Q-56.976-50.042-56.976-50.276Q-56.976-50.574-57.196-50.574Q-57.591-50.574-57.848-50.166Q-58.104-49.759-58.226-49.256Q-58.246-49.192-58.309-49.192L-58.426-49.192Q-58.509-49.192-58.509-49.285L-58.509-49.314Q-58.348-49.910-58.016-50.372Q-57.684-50.833-57.176-50.833Q-56.820-50.833-56.573-50.599Q-56.327-50.364-56.327-50.003Q-56.327-49.817-56.410-49.612Q-56.454-49.490-56.610-49.080Q-56.766-48.670-56.849-48.401Q-56.932-48.133-56.986-47.874Q-57.040-47.615-57.040-47.356Q-57.040-47.024-56.898-46.795Q-56.757-46.565-56.439-46.565Q-55.799-46.565-55.316-47.356Q-55.306-47.395-55.299-47.432Q-55.292-47.469-55.287-47.503L-54.569-50.403Q-54.535-50.535-54.413-50.630Q-54.291-50.726-54.149-50.726Q-54.027-50.726-53.937-50.647Q-53.846-50.569-53.846-50.442Q-53.846-50.384-53.856-50.364L-54.579-47.483Q-54.647-47.185-54.647-46.995Q-54.647-46.565-54.359-46.565Q-54.037-46.565-53.878-46.963Q-53.719-47.361-53.607-47.884Q-53.588-47.942-53.529-47.942L-53.407-47.942Q-53.368-47.942-53.343-47.908Q-53.319-47.874-53.319-47.845Q-53.426-47.415-53.527-47.107Q-53.627-46.800-53.841-46.551Q-54.056-46.302-54.379-46.302Q-54.696-46.302-54.947-46.475Q-55.199-46.648-55.287-46.946Q-55.516-46.653-55.819-46.477Q-56.122-46.302-56.459-46.302Q-57.035-46.302-57.377-46.617Q-57.718-46.932-57.718-47.503",[1337],[1326,4037],{"fill":1328,"d":4038},"M-58.778 20.65v8.136M-61.407-56.226c-4.246-15.844 9.503-15.844 6.034-2.898",[1326,4040],{"stroke":1328,"d":4041},"m-55.89-57.192 2.373-2.677-1.856.745-1.235-1.573",[1321,4043,4044,4047,4050],{"style":3746},[1326,4045],{"fill":1328,"d":4046},"M18.044-3.735h34.389",[1326,4048],{"stroke":1328,"d":4049},"m55.033-3.735-4.16-2.08 1.56 2.08-1.56 2.08",[1321,4051,4052,4059,4065],{"stroke":1328,"fontSize":2511},[1321,4053,4055],{"transform":4054},"translate(73.556 22.173)",[1326,4056],{"d":4057,"fill":1323,"stroke":1323,"className":4058,"style":2519},"M-55.856-46.414L-58.442-46.414L-58.442-46.711Q-58.122-46.711-57.878-46.758Q-57.633-46.805-57.633-46.973L-57.633-51.316Q-57.633-51.488-57.878-51.535Q-58.122-51.582-58.442-51.582L-58.442-51.879L-53.825-51.879L-53.594-50.031L-53.876-50.031Q-53.962-50.715-54.124-51.035Q-54.286-51.355-54.626-51.469Q-54.965-51.582-55.657-51.582L-56.465-51.582Q-56.684-51.582-56.776-51.539Q-56.868-51.496-56.868-51.316L-56.868-49.293L-56.258-49.293Q-55.833-49.293-55.635-49.359Q-55.438-49.426-55.356-49.619Q-55.274-49.812-55.274-50.230L-54.993-50.230L-54.993-48.062L-55.274-48.062Q-55.274-48.480-55.356-48.674Q-55.438-48.867-55.635-48.934Q-55.833-49-56.258-49L-56.868-49L-56.868-46.973Q-56.868-46.809-56.549-46.760Q-56.231-46.711-55.856-46.711L-55.856-46.414M-51.137-46.414L-52.915-46.414L-52.915-46.711Q-52.641-46.711-52.473-46.758Q-52.305-46.805-52.305-46.973L-52.305-49.109Q-52.305-49.324-52.362-49.420Q-52.419-49.516-52.532-49.537Q-52.645-49.559-52.891-49.559L-52.891-49.855L-51.692-49.941L-51.692-46.973Q-51.692-46.805-51.546-46.758Q-51.399-46.711-51.137-46.711L-51.137-46.414M-52.579-51.336Q-52.579-51.527-52.444-51.658Q-52.309-51.789-52.114-51.789Q-51.993-51.789-51.889-51.727Q-51.786-51.664-51.723-51.560Q-51.661-51.457-51.661-51.336Q-51.661-51.141-51.792-51.006Q-51.923-50.871-52.114-50.871Q-52.313-50.871-52.446-51.004Q-52.579-51.137-52.579-51.336M-48.708-46.414L-50.563-46.414L-50.563-46.711Q-50.290-46.711-50.122-46.758Q-49.954-46.805-49.954-46.973L-49.954-49.109Q-49.954-49.324-50.016-49.420Q-50.079-49.516-50.198-49.537Q-50.317-49.559-50.563-49.559L-50.563-49.855L-49.372-49.941L-49.372-49.207Q-49.258-49.422-49.065-49.590Q-48.872-49.758-48.633-49.850Q-48.395-49.941-48.141-49.941Q-46.973-49.941-46.973-48.863L-46.973-46.973Q-46.973-46.805-46.803-46.758Q-46.633-46.711-46.364-46.711L-46.364-46.414L-48.219-46.414L-48.219-46.711Q-47.946-46.711-47.778-46.758Q-47.610-46.805-47.610-46.973L-47.610-48.848Q-47.610-49.230-47.731-49.459Q-47.852-49.687-48.204-49.687Q-48.516-49.687-48.770-49.525Q-49.024-49.363-49.171-49.094Q-49.317-48.824-49.317-48.527L-49.317-46.973Q-49.317-46.805-49.147-46.758Q-48.977-46.711-48.708-46.711L-48.708-46.414M-44.102-46.336Q-44.583-46.336-44.991-46.580Q-45.399-46.824-45.637-47.238Q-45.876-47.652-45.876-48.141Q-45.876-48.633-45.618-49.049Q-45.360-49.465-44.928-49.703Q-44.497-49.941-44.005-49.941Q-43.383-49.941-42.934-49.504L-42.934-51.133Q-42.934-51.348-42.997-51.443Q-43.059-51.539-43.176-51.560Q-43.294-51.582-43.540-51.582L-43.540-51.879L-42.317-51.965L-42.317-47.156Q-42.317-46.945-42.255-46.850Q-42.192-46.754-42.075-46.732Q-41.958-46.711-41.708-46.711L-41.708-46.414L-42.958-46.336L-42.958-46.820Q-43.423-46.336-44.102-46.336M-44.036-46.590Q-43.696-46.590-43.403-46.781Q-43.110-46.973-42.958-47.269L-42.958-49.102Q-43.106-49.375-43.368-49.531Q-43.630-49.687-43.942-49.687Q-44.567-49.687-44.850-49.240Q-45.133-48.793-45.133-48.133Q-45.133-47.488-44.882-47.039Q-44.630-46.590-44.036-46.590M-39.087-47.863L-41.340-47.863L-41.340-48.414L-39.087-48.414L-39.087-47.863M-38.133-46.336L-38.133-48.141Q-38.133-48.168-38.102-48.199Q-38.071-48.230-38.048-48.230L-37.942-48.230Q-37.911-48.230-37.882-48.201Q-37.852-48.172-37.852-48.141Q-37.852-47.359-37.337-46.951Q-36.821-46.543-36.012-46.543Q-35.715-46.543-35.460-46.693Q-35.204-46.844-35.053-47.100Q-34.903-47.355-34.903-47.652Q-34.903-48.051-35.149-48.355Q-35.395-48.660-35.766-48.742L-36.887-49Q-37.227-49.074-37.514-49.295Q-37.801-49.516-37.967-49.834Q-38.133-50.152-38.133-50.504Q-38.133-50.934-37.903-51.289Q-37.673-51.644-37.292-51.846Q-36.911-52.047-36.485-52.047Q-36.235-52.047-35.989-51.988Q-35.743-51.930-35.524-51.807Q-35.305-51.684-35.141-51.504L-34.813-52Q-34.782-52.047-34.743-52.047L-34.696-52.047Q-34.669-52.047-34.637-52.016Q-34.606-51.984-34.606-51.957L-34.606-50.148Q-34.606-50.125-34.637-50.094Q-34.669-50.062-34.696-50.062L-34.798-50.062Q-34.829-50.062-34.858-50.092Q-34.887-50.121-34.887-50.148Q-34.887-50.281-34.930-50.467Q-34.973-50.652-35.038-50.807Q-35.102-50.961-35.202-51.119Q-35.301-51.277-35.391-51.367Q-35.821-51.773-36.485-51.773Q-36.762-51.773-37.022-51.641Q-37.282-51.508-37.440-51.273Q-37.598-51.039-37.598-50.758Q-37.598-50.402-37.358-50.131Q-37.118-49.859-36.751-49.773L-35.637-49.519Q-35.360-49.453-35.128-49.299Q-34.895-49.144-34.725-48.926Q-34.555-48.707-34.462-48.449Q-34.368-48.191-34.368-47.902Q-34.368-47.574-34.493-47.271Q-34.618-46.969-34.852-46.732Q-35.087-46.496-35.380-46.371Q-35.673-46.246-36.012-46.246Q-37.028-46.246-37.598-46.789L-37.926-46.293Q-37.958-46.246-37.997-46.246L-38.048-46.246Q-38.071-46.246-38.102-46.277Q-38.133-46.309-38.133-46.336M-33.649-48.168Q-33.649-48.648-33.417-49.064Q-33.184-49.480-32.774-49.730Q-32.364-49.980-31.887-49.980Q-31.157-49.980-30.758-49.539Q-30.360-49.098-30.360-48.367Q-30.360-48.262-30.454-48.238L-32.903-48.238L-32.903-48.168Q-32.903-47.758-32.782-47.402Q-32.661-47.047-32.389-46.830Q-32.118-46.613-31.688-46.613Q-31.325-46.613-31.028-46.842Q-30.731-47.070-30.630-47.422Q-30.622-47.469-30.536-47.484L-30.454-47.484Q-30.360-47.457-30.360-47.375Q-30.360-47.367-30.368-47.336Q-30.430-47.109-30.569-46.926Q-30.708-46.742-30.899-46.609Q-31.090-46.477-31.309-46.406Q-31.528-46.336-31.766-46.336Q-32.137-46.336-32.475-46.473Q-32.813-46.609-33.081-46.861Q-33.348-47.113-33.499-47.453Q-33.649-47.793-33.649-48.168M-32.895-48.477L-30.934-48.477Q-30.934-48.781-31.036-49.072Q-31.137-49.363-31.354-49.545Q-31.571-49.727-31.887-49.727Q-32.188-49.727-32.419-49.539Q-32.649-49.352-32.772-49.060Q-32.895-48.769-32.895-48.477M-29.247-47.375L-29.247-49.566L-29.950-49.566L-29.950-49.820Q-29.594-49.820-29.352-50.053Q-29.110-50.285-28.999-50.633Q-28.887-50.980-28.887-51.336L-28.606-51.336L-28.606-49.863L-27.430-49.863L-27.430-49.566L-28.606-49.566L-28.606-47.391Q-28.606-47.070-28.487-46.842Q-28.368-46.613-28.087-46.613Q-27.907-46.613-27.790-46.736Q-27.673-46.859-27.620-47.039Q-27.567-47.219-27.567-47.391L-27.567-47.863L-27.286-47.863L-27.286-47.375Q-27.286-47.121-27.391-46.881Q-27.497-46.641-27.694-46.488Q-27.891-46.336-28.149-46.336Q-28.465-46.336-28.717-46.459Q-28.969-46.582-29.108-46.816Q-29.247-47.051-29.247-47.375M-24.188-44.422Q-24.801-44.879-25.204-45.514Q-25.606-46.148-25.801-46.894Q-25.997-47.641-25.997-48.414Q-25.997-49.187-25.801-49.934Q-25.606-50.680-25.204-51.314Q-24.801-51.949-24.188-52.406Q-24.176-52.410-24.169-52.412Q-24.161-52.414-24.149-52.414L-24.071-52.414Q-24.032-52.414-24.007-52.387Q-23.981-52.359-23.981-52.316Q-23.981-52.266-24.012-52.246Q-24.520-51.793-24.842-51.170Q-25.165-50.547-25.305-49.852Q-25.446-49.156-25.446-48.414Q-25.446-47.680-25.307-46.980Q-25.169-46.281-24.844-45.656Q-24.520-45.031-24.012-44.582Q-23.981-44.562-23.981-44.512Q-23.981-44.469-24.007-44.441Q-24.032-44.414-24.071-44.414L-24.149-44.414Q-24.157-44.418-24.167-44.420Q-24.176-44.422-24.188-44.422",[1337],[1321,4060,4061],{"transform":4054},[1326,4062],{"d":4063,"fill":1323,"stroke":1323,"className":4064,"style":2519},"M-22.553-47.336Q-22.553-47.586-22.479-47.873Q-22.405-48.160-22.268-48.512Q-22.131-48.863-22.069-49.031Q-21.979-49.254-21.979-49.437Q-21.979-49.687-22.147-49.687Q-22.463-49.687-22.672-49.381Q-22.881-49.074-22.987-48.687Q-22.999-48.613-23.069-48.613L-23.171-48.613Q-23.206-48.613-23.233-48.648Q-23.260-48.684-23.260-48.711L-23.260-48.742Q-23.135-49.203-22.838-49.572Q-22.542-49.941-22.131-49.941Q-21.936-49.941-21.762-49.857Q-21.588-49.773-21.487-49.621Q-21.385-49.469-21.385-49.262Q-21.385-49.109-21.444-48.973Q-21.534-48.742-21.635-48.477Q-21.737-48.211-21.794-48.029Q-21.850-47.848-21.895-47.633Q-21.940-47.418-21.940-47.223Q-21.940-46.949-21.817-46.769Q-21.694-46.590-21.436-46.590Q-21.167-46.590-20.858-46.818Q-20.549-47.047-20.499-47.301L-19.932-49.574Q-19.893-49.699-19.790-49.781Q-19.686-49.863-19.561-49.863Q-19.452-49.863-19.372-49.789Q-19.292-49.715-19.292-49.605Q-19.292-49.582-19.307-49.519L-19.874-47.246Q-19.878-47.207-19.891-47.146Q-19.905-47.086-19.911-47.035Q-19.917-46.984-19.917-46.949Q-19.917-46.590-19.667-46.590Q-19.526-46.590-19.424-46.697Q-19.323-46.805-19.258-46.959Q-19.194-47.113-19.145-47.303Q-19.096-47.492-19.077-47.590Q-19.042-47.660-18.987-47.660L-18.881-47.660Q-18.842-47.660-18.819-47.631Q-18.796-47.602-18.796-47.566Q-18.796-47.551-18.803-47.535Q-18.874-47.238-18.971-46.980Q-19.069-46.723-19.245-46.529Q-19.421-46.336-19.682-46.336Q-19.948-46.336-20.171-46.469Q-20.393-46.602-20.483-46.840Q-20.671-46.613-20.926-46.475Q-21.182-46.336-21.452-46.336Q-21.776-46.336-22.026-46.445Q-22.276-46.555-22.415-46.779Q-22.553-47.004-22.553-47.336",[1337],[1321,4066,4067],{"transform":4054},[1326,4068],{"d":4069,"fill":1323,"stroke":1323,"className":4070,"style":2519},"M-17.921-44.414L-18.003-44.414Q-18.039-44.414-18.064-44.443Q-18.089-44.473-18.089-44.512Q-18.089-44.562-18.058-44.582Q-17.671-44.918-17.388-45.367Q-17.105-45.816-16.939-46.316Q-16.773-46.816-16.699-47.334Q-16.625-47.852-16.625-48.414Q-16.625-48.984-16.699-49.500Q-16.773-50.016-16.939-50.512Q-17.105-51.008-17.384-51.455Q-17.664-51.902-18.058-52.246Q-18.089-52.266-18.089-52.316Q-18.089-52.355-18.064-52.385Q-18.039-52.414-18.003-52.414L-17.921-52.414Q-17.910-52.414-17.900-52.412Q-17.890-52.410-17.882-52.406Q-17.269-51.949-16.867-51.314Q-16.464-50.680-16.269-49.934Q-16.074-49.187-16.074-48.414Q-16.074-47.641-16.269-46.894Q-16.464-46.148-16.867-45.514Q-17.269-44.879-17.882-44.422Q-17.894-44.422-17.902-44.420Q-17.910-44.418-17.921-44.414",[1337],[1326,4072],{"fill":1328,"d":4073},"M116.206-46.414c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,4075,4077],{"transform":4076},"translate(162.631 2.153)",[1326,4078],{"d":4004,"fill":1323,"stroke":1323,"className":4079,"style":1338},[1337],[1326,4081],{"fill":1328,"d":4082},"M70.542-3.595c0-5.5-4.459-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,4084,4086],{"transform":4085},"translate(116.5 44.972)",[1326,4087],{"d":4034,"fill":1323,"stroke":1323,"className":4088,"style":1338},[1337],[1326,4090],{"fill":1328,"d":4091},"M116.206 2.356c0-5.5-4.458-9.959-9.958-9.959s-9.959 4.459-9.959 9.959 4.459 9.958 9.959 9.958 9.958-4.458 9.958-9.958Zm-9.958 0",[1321,4093,4095],{"transform":4094},"translate(162.423 50.922)",[1326,4096],{"d":4024,"fill":1323,"stroke":1323,"className":4097,"style":1338},[1337],[1326,4099],{"fill":1328,"d":4100},"M161.87-3.595c0-5.5-4.458-9.958-9.958-9.958s-9.958 4.458-9.958 9.958 4.458 9.959 9.958 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,4102,4104],{"transform":4103},"translate(206.976 44.972)",[1326,4105],{"d":4014,"fill":1323,"stroke":1323,"className":4106,"style":1338},[1337],[1326,4108],{"fill":1328,"d":4109},"m67.994-10.543 29.385-27.555",[1326,4111],{"stroke":1328,"d":4112},"m98.838-39.466-3.429 1.022 1.97.346.219 1.988",[1326,4114],{"fill":1328,"d":4115},"M106.248-7.803v-26.452",[1326,4117],{"stroke":1328,"d":4118},"m106.248-36.255-1.6 3.2 1.6-1.2 1.6 1.2",[1326,4120],{"fill":1328,"d":4121},"m144.502-10.543-29.385-27.555",[1326,4123],{"stroke":1328,"d":4124},"m113.658-39.466 1.24 3.356.219-1.988 1.97-.346",[1326,4126],{"fill":1328,"d":4127},"M103.619-56.226c-4.246-15.844 9.503-15.844 6.034-2.898",[1326,4129],{"stroke":1328,"d":4130},"m109.135-57.192 2.374-2.677-1.856.745-1.235-1.573",[1412,4132,4134],{"className":4133},[1415],"Path compression points every node on a Find-Set path straight at the root",[381,4136,4137,4138,4153,4154,4226,4227,4257,4258,4273,4274,4273,4289,4304,4305,4320,4321,4342],{},"Before, ",[427,4139,4141],{"className":4140},[430],[427,4142,4144],{"className":4143,"ariaHidden":435},[434],[427,4145,4147,4150],{"className":4146},[439],[427,4148],{"className":4149,"style":930},[443],[427,4151,1838],{"className":4152},[448,449]," sits at the bottom of a chain ",[427,4155,4157],{"className":4156},[430],[427,4158,4160,4179,4197,4217],{"className":4159,"ariaHidden":435},[434],[427,4161,4163,4166,4169,4172,4176],{"className":4162},[439],[427,4164],{"className":4165,"style":930},[443],[427,4167,1838],{"className":4168},[448,449],[427,4170],{"className":4171,"style":1169},[502],[427,4173,4175],{"className":4174},[1173],"→",[427,4177],{"className":4178,"style":1169},[502],[427,4180,4182,4185,4188,4191,4194],{"className":4181},[439],[427,4183],{"className":4184,"style":930},[443],[427,4186,1872],{"className":4187,"style":1060},[448,449],[427,4189],{"className":4190,"style":1169},[502],[427,4192,4175],{"className":4193},[1173],[427,4195],{"className":4196,"style":1169},[502],[427,4198,4200,4203,4208,4211,4214],{"className":4199},[439],[427,4201],{"className":4202,"style":930},[443],[427,4204,4207],{"className":4205,"style":4206},[448,449],"margin-right:0.0269em;","w",[427,4209],{"className":4210,"style":1169},[502],[427,4212,4175],{"className":4213},[1173],[427,4215],{"className":4216,"style":1169},[502],[427,4218,4220,4223],{"className":4219},[439],[427,4221],{"className":4222,"style":930},[443],[427,4224,2828],{"className":4225,"style":450},[448,449],"; after\n",[427,4228,4230],{"className":4229},[430],[427,4231,4233],{"className":4232,"ariaHidden":435},[434],[427,4234,4236,4239,4248,4251,4254],{"className":4235},[439],[427,4237],{"className":4238,"style":444},[443],[427,4240,4242],{"className":4241},[565,566],[427,4243,4245],{"className":4244},[448,570],[427,4246,990],{"className":4247},[448],[427,4249,456],{"className":4250},[455],[427,4252,1838],{"className":4253},[448,449],[427,4255,464],{"className":4256},[463],", the nodes ",[427,4259,4261],{"className":4260},[430],[427,4262,4264],{"className":4263,"ariaHidden":435},[434],[427,4265,4267,4270],{"className":4266},[439],[427,4268],{"className":4269,"style":930},[443],[427,4271,1838],{"className":4272},[448,449],", ",[427,4275,4277],{"className":4276},[430],[427,4278,4280],{"className":4279,"ariaHidden":435},[434],[427,4281,4283,4286],{"className":4282},[439],[427,4284],{"className":4285,"style":930},[443],[427,4287,1872],{"className":4288,"style":1060},[448,449],[427,4290,4292],{"className":4291},[430],[427,4293,4295],{"className":4294,"ariaHidden":435},[434],[427,4296,4298,4301],{"className":4297},[439],[427,4299],{"className":4300,"style":930},[443],[427,4302,4207],{"className":4303,"style":4206},[448,449]," all point straight at ",[427,4306,4308],{"className":4307},[430],[427,4309,4311],{"className":4310,"ariaHidden":435},[434],[427,4312,4314,4317],{"className":4313},[439],[427,4315],{"className":4316,"style":930},[443],[427,4318,2828],{"className":4319,"style":450},[448,449],". The\n",[427,4322,4324],{"className":4323},[430],[427,4325,4327],{"className":4326,"ariaHidden":435},[434],[427,4328,4330,4333],{"className":4329},[439],[427,4331],{"className":4332,"style":1227},[443],[427,4334,4336],{"className":4335},[565,566],[427,4337,4339],{"className":4338},[448,570],[427,4340,990],{"className":4341},[448]," that pays for the walk leaves the tree dramatically flatter for\neveryone behind it.",[1581,4344,4346],{"className":1583,"code":4345,"language":1585,"meta":376,"style":376},"caption: $\\textsc{Find-Set}(x)$ — with path compression (recursive)\nif $x \\ne parent(x)$ then\n  $parent(x) \\gets$ call $\\textsc{Find-Set}(parent(x))$ \u002F\u002F point x at the root\nreturn $parent(x)$\n",[1587,4347,4348,4353,4358,4363],{"__ignoreMap":376},[427,4349,4350],{"class":1591,"line":6},[427,4351,4352],{},"caption: $\\textsc{Find-Set}(x)$ — with path compression (recursive)\n",[427,4354,4355],{"class":1591,"line":18},[427,4356,4357],{},"if $x \\ne parent(x)$ then\n",[427,4359,4360],{"class":1591,"line":24},[427,4361,4362],{},"  $parent(x) \\gets$ call $\\textsc{Find-Set}(parent(x))$ \u002F\u002F point x at the root\n",[427,4364,4365],{"class":1591,"line":73},[427,4366,4367],{},"return $parent(x)$\n",[381,4369,4370,4371,4374,4375,4377],{},"The recursion bottoms out at the root, and as it unwinds it reassigns every\nnode's parent to that root. With path compression in use, the rank of a root is\nonly an ",[390,4372,4373],{},"upper bound"," on its height (compression can make the tree shorter than\nits rank suggests), which is why the heuristic is called union by ",[385,4376,2801],{}," rather\nthan by height.",[672,4379,4381],{"id":4380},"the-near-constant-amortized-bound","The near-constant amortized bound",[381,4383,4384,4385,4388],{},"Used ",[390,4386,4387],{},"together",", union by rank and path compression make the disjoint-set\nstructure almost unbelievably fast.",[1953,4390,4392],{"type":4391},"theorem",[381,4393,4394,4397,4398,410,4413,4273,4434,4436,4437,4458,4459,4474,4475,4525,4526,4550],{},[385,4395,4396],{},"Theorem (Tarjan)."," A sequence of ",[427,4399,4401],{"className":4400},[430],[427,4402,4404],{"className":4403,"ariaHidden":435},[434],[427,4405,4407,4410],{"className":4406},[439],[427,4408],{"className":4409,"style":930},[443],[427,4411,498],{"className":4412},[448,449],[427,4414,4416],{"className":4415},[430],[427,4417,4419],{"className":4418,"ariaHidden":435},[434],[427,4420,4422,4425],{"className":4421},[439],[427,4423],{"className":4424,"style":1227},[443],[427,4426,4428],{"className":4427},[565,566],[427,4429,4431],{"className":4430},[448,570],[427,4432,906],{"className":4433},[448],[385,4435,1044],{},", and\n",[427,4438,4440],{"className":4439},[430],[427,4441,4443],{"className":4442,"ariaHidden":435},[434],[427,4444,4446,4449],{"className":4445},[439],[427,4447],{"className":4448,"style":1227},[443],[427,4450,4452],{"className":4451},[565,566],[427,4453,4455],{"className":4454},[448,570],[427,4456,990],{"className":4457},[448]," operations on ",[427,4460,4462],{"className":4461},[430],[427,4463,4465],{"className":4464,"ariaHidden":435},[434],[427,4466,4468,4471],{"className":4467},[439],[427,4469],{"className":4470,"style":930},[443],[427,4472,520],{"className":4473},[448,449]," elements, using union by rank and path\ncompression, runs in ",[427,4476,4478],{"className":4477},[430],[427,4479,4481],{"className":4480,"ariaHidden":435},[434],[427,4482,4484,4488,4491,4499,4502,4505,4510,4513,4516,4519],{"className":4483},[439],[427,4485],{"className":4486,"style":4487},[443],"height:1.2em;vertical-align:-0.35em;",[427,4489,451],{"className":4490,"style":450},[448,449],[427,4492,4494],{"className":4493},[455],[427,4495,456],{"className":4496},[4497,4498],"delimsizing","size1",[427,4500,498],{"className":4501},[448,449],[427,4503],{"className":4504,"style":503},[502],[427,4506,4509],{"className":4507,"style":4508},[448,449],"margin-right:0.0037em;","α",[427,4511,456],{"className":4512},[455],[427,4514,520],{"className":4515},[448,449],[427,4517,464],{"className":4518},[463],[427,4520,4522],{"className":4521},[463],[427,4523,464],{"className":4524},[4497,4498]," time, where ",[427,4527,4529],{"className":4528},[430],[427,4530,4532],{"className":4531,"ariaHidden":435},[434],[427,4533,4535,4538,4541,4544,4547],{"className":4534},[439],[427,4536],{"className":4537,"style":444},[443],[427,4539,4509],{"className":4540,"style":4508},[448,449],[427,4542,456],{"className":4543},[455],[427,4545,520],{"className":4546},[448,449],[427,4548,464],{"className":4549},[463]," is the\ninverse Ackermann function.",[381,4552,4553,4554,4578,4579,4582,4583,4627,4628,4643,4644,4754,4755,465,4779],{},"The function ",[427,4555,4557],{"className":4556},[430],[427,4558,4560],{"className":4559,"ariaHidden":435},[434],[427,4561,4563,4566,4569,4572,4575],{"className":4562},[439],[427,4564],{"className":4565,"style":444},[443],[427,4567,4509],{"className":4568,"style":4508},[448,449],[427,4570,456],{"className":4571},[455],[427,4573,520],{"className":4574},[448,449],[427,4576,464],{"className":4577},[463]," grows so slowly it is ",[390,4580,4581],{},"practically constant",": ",[427,4584,4586],{"className":4585},[430],[427,4587,4589,4617],{"className":4588,"ariaHidden":435},[434],[427,4590,4592,4595,4598,4601,4604,4607,4610,4614],{"className":4591},[439],[427,4593],{"className":4594,"style":444},[443],[427,4596,4509],{"className":4597,"style":4508},[448,449],[427,4599,456],{"className":4600},[455],[427,4602,520],{"className":4603},[448,449],[427,4605,464],{"className":4606},[463],[427,4608],{"className":4609,"style":1169},[502],[427,4611,4613],{"className":4612},[1173],"≤",[427,4615],{"className":4616,"style":1169},[502],[427,4618,4620,4623],{"className":4619},[439],[427,4621],{"className":4622,"style":1270},[443],[427,4624,4626],{"className":4625},[448],"4"," for every ",[427,4629,4631],{"className":4630},[430],[427,4632,4634],{"className":4633,"ariaHidden":435},[434],[427,4635,4637,4640],{"className":4636},[439],[427,4638],{"className":4639,"style":930},[443],[427,4641,520],{"className":4642},[448,449]," up to roughly ",[427,4645,4647],{"className":4646},[430],[427,4648,4650],{"className":4649,"ariaHidden":435},[434],[427,4651,4653,4657],{"className":4652},[439],[427,4654],{"className":4655,"style":4656},[443],"height:1.1889em;",[427,4658,4660,4663],{"className":4659},[448],[427,4661,796],{"className":4662},[448],[427,4664,4666],{"className":4665},[712],[427,4667,4669],{"className":4668},[716],[427,4670,4672],{"className":4671},[721],[427,4673,4675],{"className":4674,"style":4656},[725],[427,4676,4678,4682],{"style":4677},"top:-3.1889em;margin-right:0.05em;",[427,4679],{"className":4680,"style":4681},[733],"height:2.8259em;",[427,4683,4685],{"className":4684},[738,739,740,741],[427,4686,4688],{"className":4687},[448,741],[427,4689,4691,4694],{"className":4690},[448,741],[427,4692,796],{"className":4693},[448,741],[427,4695,4697],{"className":4696},[712],[427,4698,4700],{"className":4699},[716],[427,4701,4703],{"className":4702},[721],[427,4704,4707],{"className":4705,"style":4706},[725],"height:1.1799em;",[427,4708,4710,4714],{"style":4709},"top:-3.1799em;margin-right:0.0714em;",[427,4711],{"className":4712,"style":4713},[733],"height:2.7489em;",[427,4715,4718],{"className":4716},[738,4717,4498,741],"reset-size3",[427,4719,4721],{"className":4720},[448,741],[427,4722,4724,4727],{"className":4723},[448,741],[427,4725,796],{"className":4726},[448,741],[427,4728,4730],{"className":4729},[712],[427,4731,4733],{"className":4732},[716],[427,4734,4736],{"className":4735},[721],[427,4737,4740],{"className":4738,"style":4739},[725],"height:1.0484em;",[427,4741,4743,4747],{"style":4742},"top:-3.0484em;margin-right:0.1em;",[427,4744],{"className":4745,"style":4746},[733],"height:2.6444em;",[427,4748,4750],{"className":4749},[448,741],[427,4751,4753],{"className":4752},[448,741],"16",", a number far larger than the\ncount of atoms in the universe. So for any conceivable input, each operation\ncosts amortized ",[427,4756,4758],{"className":4757},[430],[427,4759,4761],{"className":4760,"ariaHidden":435},[434],[427,4762,4764,4767,4770,4773,4776],{"className":4763},[439],[427,4765],{"className":4766,"style":444},[443],[427,4768,451],{"className":4769,"style":450},[448,449],[427,4771,456],{"className":4772},[455],[427,4774,424],{"className":4775},[448],[427,4777,464],{"className":4778},[463],[416,4780,4781],{},[395,4782,2748],{"href":4783,"ariaDescribedBy":4784,"dataFootnoteRef":376,"id":4785},"#user-content-fn-clrs-ackermann",[422],"user-content-fnref-clrs-ackermann",[381,4787,4788,4789,4792,4793,4829,4830,4833,4834,4837,4838,4862,4863,4896,4897,4930,4931,4934,4935,4938,4939,4942],{},"The two heuristics earn this by attacking complementary failure modes: ",[385,4790,4791],{},"union\nby rank"," keeps trees from getting tall in the first place (height ",[427,4794,4796],{"className":4795},[430],[427,4797,4799,4811],{"className":4798,"ariaHidden":435},[434],[427,4800,4802,4805,4808],{"className":4801},[439],[427,4803],{"className":4804,"style":3220},[443],[427,4806,4613],{"className":4807},[1173],[427,4809],{"className":4810,"style":1169},[502],[427,4812,4814,4817,4823,4826],{"className":4813},[439],[427,4815],{"className":4816,"style":1550},[443],[427,4818,4820],{"className":4819},[507],[427,4821,513],{"className":4822,"style":512},[448,511],[427,4824],{"className":4825,"style":503},[502],[427,4827,520],{"className":4828},[448,449],"),\nwhile ",[385,4831,4832],{},"path compression"," ensures that any depth a tree ",[390,4835,4836],{},"does"," accumulate gets\npaid down and reused, so the expensive walks cannot recur. Neither alone gives\n",[427,4839,4841],{"className":4840},[430],[427,4842,4844],{"className":4843,"ariaHidden":435},[434],[427,4845,4847,4850,4853,4856,4859],{"className":4846},[439],[427,4848],{"className":4849,"style":444},[443],[427,4851,4509],{"className":4852,"style":4508},[448,449],[427,4854,456],{"className":4855},[455],[427,4857,520],{"className":4858},[448,449],[427,4860,464],{"className":4861},[463]," (union by rank alone is ",[427,4864,4866],{"className":4865},[430],[427,4867,4869],{"className":4868,"ariaHidden":435},[434],[427,4870,4872,4875,4878,4881,4887,4890,4893],{"className":4871},[439],[427,4873],{"className":4874,"style":444},[443],[427,4876,451],{"className":4877,"style":450},[448,449],[427,4879,456],{"className":4880},[455],[427,4882,4884],{"className":4883},[507],[427,4885,513],{"className":4886,"style":512},[448,511],[427,4888],{"className":4889,"style":503},[502],[427,4891,520],{"className":4892},[448,449],[427,4894,464],{"className":4895},[463]," amortized, path compression\nalone is ",[427,4898,4900],{"className":4899},[430],[427,4901,4903],{"className":4902,"ariaHidden":435},[434],[427,4904,4906,4909,4912,4915,4921,4924,4927],{"className":4905},[439],[427,4907],{"className":4908,"style":444},[443],[427,4910,451],{"className":4911,"style":450},[448,449],[427,4913,456],{"className":4914},[455],[427,4916,4918],{"className":4917},[507],[427,4919,513],{"className":4920,"style":512},[448,511],[427,4922],{"className":4923,"style":503},[502],[427,4925,520],{"className":4926},[448,449],[427,4928,464],{"className":4929},[463]," amortized), but their ",[390,4932,4933],{},"combination"," collapses to inverse\nAckermann. The full proof uses a subtle potential-function (amortized) argument,\ncharging each node's cost against the steady growth of the ranks above it. The\nintuition to keep is that a node can be ",[1103,4936,4937],{},"lifted closer to the root"," only so many\ntimes before it ",[390,4940,4941],{},"is"," the root's child, and ranks climb too slowly for that to\nhappen often.",[672,4944,4946],{"id":4945},"application-connectivity-and-minimum-spanning-trees","Application: connectivity and minimum spanning trees",[381,4948,4949],{},"Two applications make the structure indispensable.",[381,4951,4952,4955,4956,4977,4978,5017,5018,5051,5052,5109,5110,410,5112,1081,5127,5142,5143,5146,5147,5149,5150,5171,5172,465],{},[385,4953,4954],{},"Connectivity."," Given a graph, call ",[427,4957,4959],{"className":4958},[430],[427,4960,4962],{"className":4961,"ariaHidden":435},[434],[427,4963,4965,4968],{"className":4964},[439],[427,4966],{"className":4967,"style":1227},[443],[427,4969,4971],{"className":4970},[565,566],[427,4972,4974],{"className":4973},[448,570],[427,4975,906],{"className":4976},[448]," on every vertex, then\n",[427,4979,4981],{"className":4980},[430],[427,4982,4984],{"className":4983,"ariaHidden":435},[434],[427,4985,4987,4990,4999,5002,5005,5008,5011,5014],{"className":4986},[439],[427,4988],{"className":4989,"style":444},[443],[427,4991,4993],{"className":4992},[565,566],[427,4994,4996],{"className":4995},[448,570],[427,4997,1044],{"className":4998},[448],[427,5000,456],{"className":5001},[455],[427,5003,1838],{"className":5004},[448,449],[427,5006,763],{"className":5007},[762],[427,5009],{"className":5010,"style":503},[502],[427,5012,1872],{"className":5013,"style":1060},[448,449],[427,5015,464],{"className":5016},[463]," for every edge ",[427,5019,5021],{"className":5020},[430],[427,5022,5024],{"className":5023,"ariaHidden":435},[434],[427,5025,5027,5030],{"className":5026},[439],[427,5028],{"className":5029,"style":444},[443],[427,5031,5033,5036,5039,5042,5045,5048],{"className":5032},[694],[427,5034,700],{"className":5035,"style":699},[455,698],[427,5037,1838],{"className":5038},[448,449],[427,5040,763],{"className":5041},[762],[427,5043],{"className":5044,"style":503},[502],[427,5046,1872],{"className":5047,"style":1060},[448,449],[427,5049,873],{"className":5050,"style":699},[463,698],". Afterward,\n",[427,5053,5055],{"className":5054},[430],[427,5056,5058,5088],{"className":5057,"ariaHidden":435},[434],[427,5059,5061,5064,5070,5073,5076,5079,5082,5085],{"className":5060},[439],[427,5062],{"className":5063,"style":444},[443],[427,5065,5067],{"className":5066},[448,570],[427,5068,990],{"className":5069},[448,1156],[427,5071,456],{"className":5072},[455],[427,5074,1838],{"className":5075},[448,449],[427,5077,464],{"className":5078},[463],[427,5080],{"className":5081,"style":1169},[502],[427,5083,1174],{"className":5084},[1173],[427,5086],{"className":5087,"style":1169},[502],[427,5089,5091,5094,5100,5103,5106],{"className":5090},[439],[427,5092],{"className":5093,"style":444},[443],[427,5095,5097],{"className":5096},[448,570],[427,5098,990],{"className":5099},[448,1156],[427,5101,456],{"className":5102},[455],[427,5104,1872],{"className":5105,"style":1060},[448,449],[427,5107,464],{"className":5108},[463]," holds ",[390,5111,1019],{},[427,5113,5115],{"className":5114},[430],[427,5116,5118],{"className":5117,"ariaHidden":435},[434],[427,5119,5121,5124],{"className":5120},[439],[427,5122],{"className":5123,"style":930},[443],[427,5125,1838],{"className":5126},[448,449],[427,5128,5130],{"className":5129},[430],[427,5131,5133],{"className":5132,"ariaHidden":435},[434],[427,5134,5136,5139],{"className":5135},[439],[427,5137],{"className":5138,"style":930},[443],[427,5140,1872],{"className":5141,"style":1060},[448,449]," lie in the\nsame connected component. The structure also processes ",[390,5144,5145],{},"online"," edge insertions:\neach new edge is one ",[385,5148,1044],{},", and connectivity queries between insertions are\neach one pair of ",[427,5151,5153],{"className":5152},[430],[427,5154,5156],{"className":5155,"ariaHidden":435},[434],[427,5157,5159,5162],{"className":5158},[439],[427,5160],{"className":5161,"style":1227},[443],[427,5163,5165],{"className":5164},[565,566],[427,5166,5168],{"className":5167},[448,570],[427,5169,990],{"className":5170},[448]," calls, both amortized ",[427,5173,5175],{"className":5174},[430],[427,5176,5178],{"className":5177,"ariaHidden":435},[434],[427,5179,5181,5184,5187,5190,5193,5196,5199],{"className":5180},[439],[427,5182],{"className":5183,"style":444},[443],[427,5185,451],{"className":5186,"style":450},[448,449],[427,5188,456],{"className":5189},[455],[427,5191,4509],{"className":5192,"style":4508},[448,449],[427,5194,456],{"className":5195},[455],[427,5197,520],{"className":5198},[448,449],[427,5200,5202],{"className":5201},[463],"))",[381,5204,5205,5208,5209,5212,5213,5246,5247,1081,5262,5277,5278],{},[385,5206,5207],{},"Kruskal's minimum spanning tree."," Kruskal's algorithm builds a minimum\nspanning tree by scanning edges in increasing weight order and adding each edge\n",[390,5210,5211],{},"unless"," it would form a cycle. An edge ",[427,5214,5216],{"className":5215},[430],[427,5217,5219],{"className":5218,"ariaHidden":435},[434],[427,5220,5222,5225],{"className":5221},[439],[427,5223],{"className":5224,"style":444},[443],[427,5226,5228,5231,5234,5237,5240,5243],{"className":5227},[694],[427,5229,700],{"className":5230,"style":699},[455,698],[427,5232,1838],{"className":5233},[448,449],[427,5235,763],{"className":5236},[762],[427,5238],{"className":5239,"style":503},[502],[427,5241,1872],{"className":5242,"style":1060},[448,449],[427,5244,873],{"className":5245,"style":699},[463,698]," forms a cycle exactly when\n",[427,5248,5250],{"className":5249},[430],[427,5251,5253],{"className":5252,"ariaHidden":435},[434],[427,5254,5256,5259],{"className":5255},[439],[427,5257],{"className":5258,"style":930},[443],[427,5260,1838],{"className":5261},[448,449],[427,5263,5265],{"className":5264},[430],[427,5266,5268],{"className":5267,"ariaHidden":435},[434],[427,5269,5271,5274],{"className":5270},[439],[427,5272],{"className":5273,"style":930},[443],[427,5275,1872],{"className":5276,"style":1060},[448,449]," are already connected (i.e. already in the same set), which is the\ndisjoint-set query verbatim.",[416,5279,5280],{},[395,5281,4626],{"href":5282,"ariaDescribedBy":5283,"dataFootnoteRef":376,"id":5284},"#user-content-fn-skiena-djs",[422],"user-content-fnref-skiena-djs",[1308,5286,5288,5718],{"className":5287},[1311,1312],[1314,5289,5293],{"xmlns":1316,"width":5290,"height":5291,"viewBox":5292},"398.621","118.577","-75 -75 298.966 88.933",[1321,5294,5295,5298,5304,5307,5314,5317,5324,5327,5334,5348,5360,5372,5386,5431],{"stroke":1323,"style":1324},[1326,5296],{"fill":1328,"d":5297},"M-45.486-42.195c0-5.5-4.459-9.958-9.959-9.958s-9.958 4.458-9.958 9.958 4.458 9.959 9.958 9.959 9.959-4.459 9.959-9.959Zm-9.959 0",[1321,5299,5300],{"transform":2448},[1326,5301],{"d":5302,"fill":1323,"stroke":1323,"className":5303,"style":2453},"M-53.823-42.094Q-54.219-42.094-54.505-42.298Q-54.790-42.503-54.937-42.837Q-55.085-43.171-55.085-43.562Q-55.085-43.997-54.911-44.458Q-54.737-44.920-54.425-45.311Q-54.113-45.702-53.703-45.937Q-53.292-46.172-52.852-46.172Q-52.584-46.172-52.367-46.034Q-52.149-45.895-52.017-45.649Q-51.978-45.799-51.870-45.895Q-51.762-45.992-51.622-45.992Q-51.499-45.992-51.415-45.919Q-51.332-45.847-51.332-45.724Q-51.332-45.671-51.341-45.640L-51.960-43.149Q-52.017-42.951-52.017-42.753Q-52.017-42.358-51.754-42.358Q-51.468-42.358-51.334-42.681Q-51.200-43.004-51.081-43.509Q-51.072-43.540-51.048-43.564Q-51.024-43.588-50.989-43.588L-50.883-43.588Q-50.835-43.588-50.813-43.555Q-50.791-43.522-50.791-43.474Q-50.905-43.043-50.996-42.790Q-51.086-42.538-51.279-42.316Q-51.472-42.094-51.771-42.094Q-52.079-42.094-52.327-42.265Q-52.575-42.437-52.646-42.727Q-52.901-42.441-53.197-42.268Q-53.494-42.094-53.823-42.094M-53.806-42.358Q-53.476-42.358-53.166-42.599Q-52.857-42.841-52.646-43.157Q-52.637-43.166-52.637-43.184L-52.140-45.148Q-52.197-45.465-52.389-45.689Q-52.580-45.913-52.870-45.913Q-53.239-45.913-53.538-45.594Q-53.837-45.276-54.004-44.867Q-54.140-44.520-54.265-44.010Q-54.390-43.500-54.390-43.175Q-54.390-42.850-54.252-42.604Q-54.113-42.358-53.806-42.358",[1337],[1326,5305],{"fill":1328,"d":5306},"M.038-62.112c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959S.038-56.612.038-62.112Zm-9.958 0",[1321,5308,5310],{"transform":5309},"translate(43.543 -16.792)",[1326,5311],{"d":5312,"fill":1323,"stroke":1323,"className":5313,"style":2453},"M-53.823-42.094Q-54.399-42.094-54.720-42.525Q-55.041-42.955-55.041-43.535Q-55.041-43.940-54.957-44.168L-54.078-47.666Q-54.043-47.816-54.043-47.890Q-54.043-48.027-54.610-48.027Q-54.707-48.027-54.707-48.145Q-54.707-48.202-54.676-48.273Q-54.645-48.343-54.579-48.343L-53.358-48.440Q-53.305-48.440-53.272-48.411Q-53.239-48.383-53.239-48.334L-53.239-48.299L-53.898-45.689Q-53.375-46.172-52.852-46.172Q-52.466-46.172-52.175-45.968Q-51.885-45.763-51.738-45.429Q-51.591-45.095-51.591-44.704Q-51.591-44.120-51.894-43.511Q-52.197-42.903-52.718-42.498Q-53.239-42.094-53.823-42.094M-53.806-42.358Q-53.437-42.358-53.133-42.681Q-52.830-43.004-52.672-43.399Q-52.527-43.755-52.406-44.263Q-52.285-44.770-52.285-45.091Q-52.285-45.416-52.430-45.664Q-52.575-45.913-52.870-45.913Q-53.472-45.913-54.043-45.113L-54.285-44.120Q-54.430-43.496-54.430-43.232Q-54.430-42.889-54.278-42.623Q-54.127-42.358-53.806-42.358",[1337],[1326,5315],{"fill":1328,"d":5316},"M.038-22.278c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959S.038-16.778.038-22.278Zm-9.958 0",[1321,5318,5320],{"transform":5319},"translate(43.522 21.854)",[1326,5321],{"d":5322,"fill":1323,"stroke":1323,"className":5323,"style":2453},"M-54.355-43.302Q-54.355-42.907-54.142-42.632Q-53.929-42.358-53.547-42.358Q-53.002-42.358-52.496-42.593Q-51.991-42.828-51.674-43.250Q-51.653-43.285-51.591-43.285Q-51.534-43.285-51.488-43.234Q-51.442-43.184-51.442-43.131Q-51.442-43.096-51.468-43.070Q-51.815-42.595-52.378-42.344Q-52.940-42.094-53.564-42.094Q-53.995-42.094-54.344-42.296Q-54.694-42.498-54.885-42.854Q-55.076-43.210-55.076-43.636Q-55.076-44.098-54.874-44.555Q-54.672-45.012-54.316-45.381Q-53.960-45.750-53.516-45.961Q-53.072-46.172-52.602-46.172Q-52.334-46.172-52.085-46.091Q-51.837-46.009-51.670-45.831Q-51.503-45.653-51.503-45.390Q-51.503-45.153-51.653-44.975Q-51.802-44.797-52.035-44.797Q-52.175-44.797-52.281-44.891Q-52.386-44.986-52.386-45.131Q-52.386-45.333-52.239-45.487Q-52.092-45.640-51.890-45.640Q-51.995-45.781-52.200-45.847Q-52.404-45.913-52.611-45.913Q-53.147-45.913-53.544-45.484Q-53.942-45.056-54.149-44.436Q-54.355-43.817-54.355-43.302",[1337],[1326,5325],{"fill":1328,"d":5326},"M45.562-42.195c0-5.5-4.458-9.958-9.958-9.958s-9.959 4.458-9.959 9.958 4.459 9.959 9.959 9.959 9.958-4.459 9.958-9.959Zm-9.958 0",[1321,5328,5330],{"transform":5329},"translate(88.652 3.125)",[1326,5331],{"d":5332,"fill":1323,"stroke":1323,"className":5333,"style":2453},"M-53.823-42.094Q-54.219-42.094-54.505-42.298Q-54.790-42.503-54.937-42.837Q-55.085-43.171-55.085-43.562Q-55.085-43.997-54.911-44.458Q-54.737-44.920-54.425-45.311Q-54.113-45.702-53.703-45.937Q-53.292-46.172-52.852-46.172Q-52.584-46.172-52.367-46.034Q-52.149-45.895-52.017-45.649L-51.512-47.666Q-51.477-47.816-51.477-47.890Q-51.477-48.027-52.044-48.027Q-52.140-48.027-52.140-48.145Q-52.140-48.202-52.110-48.273Q-52.079-48.343-52.017-48.343L-50.791-48.440Q-50.738-48.440-50.708-48.411Q-50.677-48.383-50.677-48.334L-50.677-48.299L-51.960-43.149Q-51.960-43.091-51.989-42.960Q-52.017-42.828-52.017-42.753Q-52.017-42.358-51.754-42.358Q-51.468-42.358-51.334-42.681Q-51.200-43.004-51.081-43.509Q-51.072-43.540-51.048-43.564Q-51.024-43.588-50.989-43.588L-50.883-43.588Q-50.835-43.588-50.813-43.555Q-50.791-43.522-50.791-43.474Q-50.905-43.043-50.996-42.790Q-51.086-42.538-51.279-42.316Q-51.472-42.094-51.771-42.094Q-52.079-42.094-52.327-42.265Q-52.575-42.437-52.646-42.727Q-52.901-42.441-53.197-42.268Q-53.494-42.094-53.823-42.094M-53.806-42.358Q-53.476-42.358-53.166-42.599Q-52.857-42.841-52.646-43.157Q-52.637-43.166-52.637-43.193L-52.140-45.148Q-52.197-45.465-52.389-45.689Q-52.580-45.913-52.870-45.913Q-53.239-45.913-53.538-45.594Q-53.837-45.276-54.004-44.867Q-54.140-44.520-54.265-44.010Q-54.390-43.500-54.390-43.175Q-54.390-42.850-54.252-42.604Q-54.113-42.358-53.806-42.358",[1337],[1321,5335,5338,5341],{"fill":5336,"stroke":5336,"style":5337},"var(--tk-accent)","stroke-width:1.2",[1326,5339],{"fill":1328,"d":5340},"m-46.139-46.266 26.912-11.774",[1321,5342,5344],{"transform":5343},"translate(15.286 -13.184)",[1326,5345],{"d":5346,"fill":5336,"stroke":5336,"className":5347,"style":2519},"M-51.851-42.195L-54.644-42.195L-54.644-42.492Q-53.582-42.492-53.582-42.754L-53.582-46.922Q-54.011-46.707-54.691-46.707L-54.691-47.004Q-53.672-47.004-53.156-47.515L-53.011-47.515Q-52.937-47.496-52.918-47.418L-52.918-42.754Q-52.918-42.492-51.851-42.492",[1337],[1321,5349,5350,5353],{"fill":5336,"stroke":5336,"style":5337},[1326,5351],{"fill":1328,"d":5352},"m-46.139-38.123 26.912 11.774",[1321,5354,5356],{"transform":5355},"translate(15.286 18.34)",[1326,5357],{"d":5358,"fill":5336,"stroke":5336,"className":5359,"style":2519},"M-51.859-42.195L-55.019-42.195L-55.019-42.402Q-55.019-42.429-54.996-42.461L-53.644-43.859Q-53.265-44.246-53.017-44.535Q-52.769-44.824-52.595-45.181Q-52.422-45.539-52.422-45.929Q-52.422-46.277-52.554-46.570Q-52.687-46.863-52.941-47.041Q-53.195-47.218-53.550-47.218Q-53.910-47.218-54.201-47.023Q-54.492-46.828-54.636-46.500L-54.582-46.500Q-54.398-46.500-54.273-46.379Q-54.148-46.258-54.148-46.066Q-54.148-45.886-54.273-45.758Q-54.398-45.629-54.582-45.629Q-54.761-45.629-54.890-45.758Q-55.019-45.886-55.019-46.066Q-55.019-46.468-54.799-46.804Q-54.578-47.140-54.213-47.328Q-53.847-47.515-53.445-47.515Q-52.965-47.515-52.549-47.328Q-52.133-47.140-51.881-46.779Q-51.629-46.418-51.629-45.929Q-51.629-45.570-51.783-45.267Q-51.937-44.965-52.189-44.705Q-52.441-44.445-52.791-44.160Q-53.140-43.875-53.308-43.722L-54.238-42.883L-53.523-42.883Q-52.148-42.883-52.109-42.922Q-52.039-43-51.996-43.185Q-51.953-43.371-51.910-43.660L-51.629-43.660",[1337],[1321,5361,5362,5365],{"fill":5336,"stroke":5336,"style":5337},[1326,5363],{"fill":1328,"d":5364},"m-.614-58.04 26.912 11.774",[1321,5366,5368],{"transform":5367},"translate(71.512 -13.184)",[1326,5369],{"d":5370,"fill":5336,"stroke":5336,"className":5371,"style":2519},"M-54.652-42.828Q-54.461-42.554-54.105-42.427Q-53.750-42.300-53.367-42.300Q-53.031-42.300-52.822-42.486Q-52.613-42.672-52.517-42.965Q-52.422-43.258-52.422-43.570Q-52.422-43.894-52.519-44.189Q-52.617-44.484-52.830-44.668Q-53.043-44.851-53.375-44.851L-53.941-44.851Q-53.972-44.851-54.002-44.881Q-54.031-44.910-54.031-44.937L-54.031-45.019Q-54.031-45.054-54.002-45.080Q-53.972-45.105-53.941-45.105L-53.461-45.140Q-53.175-45.140-52.978-45.345Q-52.781-45.550-52.685-45.845Q-52.590-46.140-52.590-46.418Q-52.590-46.797-52.789-47.035Q-52.988-47.273-53.367-47.273Q-53.687-47.273-53.976-47.166Q-54.265-47.058-54.429-46.836Q-54.250-46.836-54.127-46.709Q-54.004-46.582-54.004-46.410Q-54.004-46.238-54.129-46.113Q-54.254-45.988-54.429-45.988Q-54.601-45.988-54.726-46.113Q-54.851-46.238-54.851-46.410Q-54.851-46.777-54.627-47.025Q-54.402-47.273-54.062-47.394Q-53.722-47.515-53.367-47.515Q-53.019-47.515-52.656-47.394Q-52.293-47.273-52.045-47.023Q-51.797-46.773-51.797-46.418Q-51.797-45.933-52.115-45.550Q-52.433-45.168-52.910-44.996Q-52.359-44.886-51.959-44.500Q-51.558-44.113-51.558-43.578Q-51.558-43.121-51.822-42.765Q-52.086-42.410-52.508-42.218Q-52.929-42.027-53.367-42.027Q-53.777-42.027-54.170-42.162Q-54.562-42.297-54.828-42.582Q-55.093-42.867-55.093-43.285Q-55.093-43.480-54.961-43.609Q-54.828-43.738-54.636-43.738Q-54.511-43.738-54.408-43.679Q-54.304-43.621-54.242-43.515Q-54.179-43.410-54.179-43.285Q-54.179-43.090-54.314-42.959Q-54.449-42.828-54.652-42.828",[1337],[1321,5373,5376,5379],{"fill":5374,"stroke":5374,"style":5375},"red","stroke-dasharray:3.0,3.0;stroke-width:.8",[1326,5377],{"fill":1328,"d":5378},"M-9.92-51.953v19.517",[1321,5380,5382],{"transform":5381},"translate(49.258 2.578)",[1326,5383],{"d":5384,"fill":5374,"stroke":5374,"className":5385,"style":2519},"M-52.965-43.508L-55.207-43.508L-55.207-43.804L-52.636-47.461Q-52.597-47.515-52.535-47.515L-52.390-47.515Q-52.340-47.515-52.308-47.484Q-52.277-47.453-52.277-47.402L-52.277-43.804L-51.445-43.804L-51.445-43.508L-52.277-43.508L-52.277-42.754Q-52.277-42.492-51.453-42.492L-51.453-42.195L-53.789-42.195L-53.789-42.492Q-52.965-42.492-52.965-42.754L-52.965-43.508M-52.910-46.609L-54.879-43.804L-52.910-43.804",[1337],[1321,5387,5388,5395,5401,5407,5413,5419,5425],{"fill":5374,"stroke":1328,"fontSize":2511},[1321,5389,5391],{"transform":5390},"translate(.85 47.525)",[1326,5392],{"d":5393,"fill":5374,"stroke":5374,"className":5394,"style":2519},"M-53.636-41.250L-53.636-43.187Q-53.636-43.465-53.808-43.666Q-53.980-43.867-54.242-43.966Q-54.504-44.066-54.773-44.066Q-54.800-44.066-54.830-44.095Q-54.859-44.125-54.859-44.156L-54.859-44.234Q-54.859-44.265-54.830-44.295Q-54.800-44.324-54.773-44.324Q-54.343-44.324-53.990-44.558Q-53.636-44.793-53.636-45.203L-53.636-47.140Q-53.636-47.433-53.476-47.642Q-53.316-47.851-53.066-47.970Q-52.816-48.090-52.531-48.142Q-52.246-48.195-51.957-48.195L-51.879-48.195Q-51.851-48.195-51.820-48.164Q-51.789-48.133-51.789-48.105L-51.789-48.027Q-51.789-47.996-51.818-47.966Q-51.847-47.937-51.879-47.937Q-52.133-47.937-52.398-47.849Q-52.664-47.761-52.834-47.578Q-53.004-47.394-53.004-47.125L-53.004-45.187Q-53.004-44.925-53.134-44.728Q-53.265-44.531-53.480-44.398Q-53.695-44.265-53.949-44.195Q-53.554-44.090-53.279-43.838Q-53.004-43.586-53.004-43.203L-53.004-41.265Q-53.004-40.996-52.834-40.812Q-52.664-40.629-52.400-40.541Q-52.136-40.453-51.879-40.453Q-51.847-40.453-51.818-40.424Q-51.789-40.394-51.789-40.363L-51.789-40.285Q-51.789-40.258-51.820-40.226Q-51.851-40.195-51.879-40.195L-51.957-40.195Q-52.215-40.195-52.506-40.246Q-52.797-40.297-53.058-40.420Q-53.320-40.543-53.478-40.754Q-53.636-40.965-53.636-41.250",[1337],[1321,5396,5397],{"transform":5390},[1326,5398],{"d":5399,"fill":5374,"stroke":5374,"className":5400,"style":2519},"M-49.691-42.117Q-50.031-42.117-50.291-42.295Q-50.550-42.472-50.685-42.767Q-50.820-43.062-50.820-43.410Q-50.820-43.672-50.754-43.929L-50.004-46.957Q-49.992-47.004-49.965-47.105Q-49.937-47.207-49.937-47.258Q-49.937-47.363-50.433-47.363Q-50.531-47.394-50.531-47.492L-50.508-47.593Q-50.500-47.640-50.418-47.660L-49.316-47.746Q-49.273-47.746-49.234-47.715Q-49.195-47.683-49.195-47.629L-49.769-45.308Q-49.312-45.722-48.836-45.722Q-48.472-45.722-48.207-45.543Q-47.941-45.363-47.800-45.062Q-47.660-44.761-47.660-44.410Q-47.660-43.886-47.941-43.347Q-48.222-42.808-48.689-42.463Q-49.156-42.117-49.691-42.117M-49.675-42.371Q-49.340-42.371-49.060-42.662Q-48.781-42.953-48.644-43.308Q-48.519-43.601-48.418-44.035Q-48.316-44.468-48.316-44.746Q-48.316-45.031-48.449-45.250Q-48.582-45.468-48.851-45.468Q-49.062-45.468-49.258-45.367Q-49.453-45.265-49.613-45.109Q-49.773-44.953-49.906-44.761L-50.133-43.890Q-50.183-43.656-50.213-43.474Q-50.242-43.293-50.242-43.140Q-50.242-42.840-50.101-42.605Q-49.961-42.371-49.675-42.371M-46.738-40.789Q-46.738-40.812-46.707-40.859Q-46.414-41.121-46.248-41.488Q-46.082-41.855-46.082-42.242L-46.082-42.300Q-46.211-42.195-46.379-42.195Q-46.570-42.195-46.707-42.328Q-46.843-42.461-46.843-42.660Q-46.843-42.851-46.707-42.984Q-46.570-43.117-46.379-43.117Q-46.078-43.117-45.953-42.847Q-45.828-42.578-45.828-42.242Q-45.828-41.793-46.009-41.379Q-46.191-40.965-46.531-40.668Q-46.554-40.644-46.593-40.644Q-46.640-40.644-46.689-40.689Q-46.738-40.734-46.738-40.789",[1337],[1321,5402,5403],{"transform":5390},[1326,5404],{"d":5405,"fill":5374,"stroke":5374,"className":5406,"style":2519},"M-42.773-43.211Q-42.773-42.972-42.685-42.783Q-42.597-42.593-42.426-42.482Q-42.254-42.371-42.019-42.371Q-41.511-42.371-41.056-42.564Q-40.601-42.758-40.316-43.133Q-40.297-43.164-40.246-43.164Q-40.195-43.164-40.148-43.113Q-40.101-43.062-40.101-43.011Q-40.101-42.972-40.125-42.949Q-40.441-42.535-40.957-42.326Q-41.472-42.117-42.039-42.117Q-42.340-42.117-42.595-42.218Q-42.851-42.320-43.043-42.508Q-43.234-42.695-43.340-42.953Q-43.445-43.211-43.445-43.500Q-43.445-43.922-43.256-44.324Q-43.066-44.726-42.740-45.043Q-42.414-45.359-42.011-45.541Q-41.609-45.722-41.187-45.722Q-40.804-45.722-40.492-45.556Q-40.179-45.390-40.179-45.035Q-40.179-44.820-40.310-44.660Q-40.441-44.500-40.652-44.500Q-40.785-44.500-40.879-44.586Q-40.972-44.672-40.972-44.804Q-40.972-44.976-40.851-45.109Q-40.730-45.242-40.566-45.265Q-40.769-45.468-41.207-45.468Q-41.574-45.468-41.871-45.250Q-42.168-45.031-42.369-44.679Q-42.570-44.328-42.672-43.929Q-42.773-43.531-42.773-43.211",[1337],[1321,5408,5409],{"transform":5390},[1326,5410],{"d":5411,"fill":5374,"stroke":5374,"className":5412,"style":2519},"M-39.513-40.285L-39.513-40.363Q-39.513-40.394-39.484-40.424Q-39.454-40.453-39.427-40.453Q-38.997-40.453-38.644-40.662Q-38.290-40.871-38.290-41.265L-38.290-43.203Q-38.290-43.582-38.019-43.836Q-37.747-44.090-37.345-44.195Q-37.755-44.308-38.023-44.558Q-38.290-44.808-38.290-45.187L-38.290-47.125Q-38.290-47.527-38.644-47.732Q-38.997-47.937-39.427-47.937Q-39.454-47.937-39.484-47.966Q-39.513-47.996-39.513-48.027L-39.513-48.105Q-39.513-48.133-39.482-48.164Q-39.451-48.195-39.427-48.195L-39.345-48.195Q-38.962-48.195-38.578-48.097Q-38.193-48-37.925-47.761Q-37.658-47.523-37.658-47.140L-37.658-45.203Q-37.658-44.789-37.310-44.556Q-36.962-44.324-36.533-44.324Q-36.501-44.324-36.472-44.295Q-36.443-44.265-36.443-44.234L-36.443-44.156Q-36.443-44.125-36.472-44.095Q-36.501-44.066-36.533-44.066Q-36.962-44.066-37.310-43.834Q-37.658-43.601-37.658-43.187L-37.658-41.250Q-37.658-40.867-37.925-40.629Q-38.193-40.390-38.578-40.293Q-38.962-40.195-39.345-40.195L-39.427-40.195Q-39.451-40.195-39.482-40.226Q-39.513-40.258-39.513-40.285",[1337],[1321,5414,5415],{"transform":5390},[1326,5416],{"d":5417,"fill":5374,"stroke":5374,"className":5418,"style":2519},"M-30.770-42.195L-32.750-42.195L-32.750-42.492Q-32.481-42.492-32.313-42.537Q-32.145-42.582-32.145-42.754L-32.145-44.890Q-32.145-45.105-32.207-45.201Q-32.270-45.297-32.387-45.318Q-32.504-45.340-32.750-45.340L-32.750-45.636L-31.582-45.722L-31.582-44.937Q-31.504-45.148-31.352-45.334Q-31.200-45.519-31-45.621Q-30.801-45.722-30.575-45.722Q-30.328-45.722-30.137-45.578Q-29.946-45.433-29.946-45.203Q-29.946-45.047-30.051-44.937Q-30.157-44.828-30.313-44.828Q-30.469-44.828-30.578-44.937Q-30.688-45.047-30.688-45.203Q-30.688-45.363-30.582-45.468Q-30.907-45.468-31.121-45.240Q-31.336-45.011-31.432-44.672Q-31.528-44.332-31.528-44.027L-31.528-42.754Q-31.528-42.586-31.301-42.539Q-31.075-42.492-30.770-42.492L-30.770-42.195M-29.465-43.949Q-29.465-44.429-29.233-44.845Q-29-45.261-28.590-45.511Q-28.180-45.761-27.703-45.761Q-26.973-45.761-26.575-45.320Q-26.176-44.879-26.176-44.148Q-26.176-44.043-26.270-44.019L-28.719-44.019L-28.719-43.949Q-28.719-43.539-28.598-43.183Q-28.477-42.828-28.205-42.611Q-27.934-42.394-27.504-42.394Q-27.141-42.394-26.844-42.623Q-26.547-42.851-26.446-43.203Q-26.438-43.250-26.352-43.265L-26.270-43.265Q-26.176-43.238-26.176-43.156Q-26.176-43.148-26.184-43.117Q-26.246-42.890-26.385-42.707Q-26.524-42.523-26.715-42.390Q-26.907-42.258-27.125-42.187Q-27.344-42.117-27.582-42.117Q-27.953-42.117-28.291-42.254Q-28.629-42.390-28.897-42.642Q-29.164-42.894-29.315-43.234Q-29.465-43.574-29.465-43.949M-28.711-44.258L-26.750-44.258Q-26.750-44.562-26.852-44.853Q-26.953-45.144-27.170-45.326Q-27.387-45.508-27.703-45.508Q-28.004-45.508-28.235-45.320Q-28.465-45.133-28.588-44.841Q-28.711-44.550-28.711-44.258M-26.246-41.218Q-26.246-41.324-26.196-41.416Q-26.145-41.508-26.053-41.558Q-25.961-41.609-25.856-41.609Q-25.746-41.609-25.655-41.558Q-25.563-41.508-25.512-41.416Q-25.461-41.324-25.461-41.218Q-25.461-41.004-25.653-40.883Q-25.496-40.820-25.270-40.820Q-24.969-40.820-24.840-41.129Q-24.711-41.437-24.711-41.804L-24.711-44.890Q-24.711-45.195-24.858-45.267Q-25.004-45.340-25.383-45.340L-25.383-45.636L-24.094-45.722L-24.094-41.781Q-24.094-41.461-24.254-41.177Q-24.414-40.894-24.692-40.728Q-24.969-40.562-25.286-40.562Q-25.645-40.562-25.946-40.726Q-26.246-40.890-26.246-41.218M-25.016-47.117Q-25.016-47.300-24.877-47.435Q-24.739-47.570-24.551-47.570Q-24.364-47.570-24.229-47.439Q-24.094-47.308-24.094-47.117Q-24.094-46.918-24.227-46.785Q-24.360-46.652-24.551-46.652Q-24.743-46.652-24.879-46.789Q-25.016-46.925-25.016-47.117M-23.094-43.949Q-23.094-44.429-22.862-44.845Q-22.629-45.261-22.219-45.511Q-21.809-45.761-21.332-45.761Q-20.602-45.761-20.203-45.320Q-19.805-44.879-19.805-44.148Q-19.805-44.043-19.899-44.019L-22.348-44.019L-22.348-43.949Q-22.348-43.539-22.227-43.183Q-22.106-42.828-21.834-42.611Q-21.563-42.394-21.133-42.394Q-20.770-42.394-20.473-42.623Q-20.176-42.851-20.075-43.203Q-20.067-43.250-19.981-43.265L-19.899-43.265Q-19.805-43.238-19.805-43.156Q-19.805-43.148-19.813-43.117Q-19.875-42.890-20.014-42.707Q-20.153-42.523-20.344-42.390Q-20.536-42.258-20.754-42.187Q-20.973-42.117-21.211-42.117Q-21.582-42.117-21.920-42.254Q-22.258-42.390-22.526-42.642Q-22.793-42.894-22.944-43.234Q-23.094-43.574-23.094-43.949M-22.340-44.258L-20.379-44.258Q-20.379-44.562-20.481-44.853Q-20.582-45.144-20.799-45.326Q-21.016-45.508-21.332-45.508Q-21.633-45.508-21.864-45.320Q-22.094-45.133-22.217-44.841Q-22.340-44.550-22.340-44.258M-19.274-43.922Q-19.274-44.418-19.024-44.843Q-18.774-45.269-18.354-45.515Q-17.934-45.761-17.434-45.761Q-16.895-45.761-16.504-45.636Q-16.114-45.511-16.114-45.097Q-16.114-44.992-16.164-44.900Q-16.215-44.808-16.307-44.758Q-16.399-44.707-16.508-44.707Q-16.614-44.707-16.705-44.758Q-16.797-44.808-16.848-44.900Q-16.899-44.992-16.899-45.097Q-16.899-45.320-16.731-45.425Q-16.953-45.484-17.426-45.484Q-17.723-45.484-17.938-45.345Q-18.153-45.207-18.284-44.976Q-18.414-44.746-18.473-44.476Q-18.532-44.207-18.532-43.922Q-18.532-43.527-18.399-43.177Q-18.266-42.828-17.995-42.611Q-17.723-42.394-17.325-42.394Q-16.950-42.394-16.674-42.611Q-16.399-42.828-16.297-43.187Q-16.282-43.250-16.219-43.250L-16.114-43.250Q-16.078-43.250-16.053-43.222Q-16.028-43.195-16.028-43.156L-16.028-43.133Q-16.161-42.652-16.545-42.384Q-16.930-42.117-17.434-42.117Q-17.797-42.117-18.131-42.254Q-18.465-42.390-18.725-42.640Q-18.985-42.890-19.129-43.226Q-19.274-43.562-19.274-43.922M-14.914-43.156L-14.914-45.347L-15.618-45.347L-15.618-45.601Q-15.262-45.601-15.020-45.834Q-14.778-46.066-14.666-46.414Q-14.555-46.761-14.555-47.117L-14.274-47.117L-14.274-45.644L-13.098-45.644L-13.098-45.347L-14.274-45.347L-14.274-43.172Q-14.274-42.851-14.155-42.623Q-14.036-42.394-13.754-42.394Q-13.575-42.394-13.457-42.517Q-13.340-42.640-13.287-42.820Q-13.235-43-13.235-43.172L-13.235-43.644L-12.953-43.644L-12.953-43.156Q-12.953-42.902-13.059-42.662Q-13.164-42.422-13.362-42.269Q-13.559-42.117-13.817-42.117Q-14.133-42.117-14.385-42.240Q-14.637-42.363-14.776-42.597Q-14.914-42.832-14.914-43.156M-12.235-43.949Q-12.235-44.429-12.002-44.845Q-11.770-45.261-11.360-45.511Q-10.950-45.761-10.473-45.761Q-9.743-45.761-9.344-45.320Q-8.946-44.879-8.946-44.148Q-8.946-44.043-9.039-44.019L-11.489-44.019L-11.489-43.949Q-11.489-43.539-11.368-43.183Q-11.246-42.828-10.975-42.611Q-10.703-42.394-10.274-42.394Q-9.911-42.394-9.614-42.623Q-9.317-42.851-9.215-43.203Q-9.207-43.250-9.121-43.265L-9.039-43.265Q-8.946-43.238-8.946-43.156Q-8.946-43.148-8.953-43.117Q-9.016-42.890-9.155-42.707Q-9.293-42.523-9.485-42.390Q-9.676-42.258-9.895-42.187Q-10.114-42.117-10.352-42.117Q-10.723-42.117-11.061-42.254Q-11.399-42.390-11.666-42.642Q-11.934-42.894-12.084-43.234Q-12.235-43.574-12.235-43.949M-11.481-44.258L-9.520-44.258Q-9.520-44.562-9.621-44.853Q-9.723-45.144-9.940-45.326Q-10.157-45.508-10.473-45.508Q-10.774-45.508-11.004-45.320Q-11.235-45.133-11.358-44.841Q-11.481-44.550-11.481-44.258M-6.641-42.117Q-7.121-42.117-7.530-42.361Q-7.938-42.605-8.176-43.019Q-8.414-43.433-8.414-43.922Q-8.414-44.414-8.157-44.830Q-7.899-45.246-7.467-45.484Q-7.036-45.722-6.543-45.722Q-5.922-45.722-5.473-45.285L-5.473-46.914Q-5.473-47.129-5.536-47.224Q-5.598-47.320-5.715-47.341Q-5.832-47.363-6.078-47.363L-6.078-47.660L-4.856-47.746L-4.856-42.937Q-4.856-42.726-4.793-42.631Q-4.731-42.535-4.614-42.513Q-4.496-42.492-4.246-42.492L-4.246-42.195L-5.496-42.117L-5.496-42.601Q-5.961-42.117-6.641-42.117M-6.575-42.371Q-6.235-42.371-5.942-42.562Q-5.649-42.754-5.496-43.050L-5.496-44.883Q-5.645-45.156-5.907-45.312Q-6.168-45.468-6.481-45.468Q-7.106-45.468-7.389-45.021Q-7.672-44.574-7.672-43.914Q-7.672-43.269-7.420-42.820Q-7.168-42.371-6.575-42.371M-3.258-42.660Q-3.258-42.843-3.121-42.980Q-2.985-43.117-2.793-43.117Q-2.602-43.117-2.469-42.984Q-2.336-42.851-2.336-42.660Q-2.336-42.461-2.469-42.328Q-2.602-42.195-2.793-42.195Q-2.985-42.195-3.121-42.332Q-3.258-42.468-3.258-42.660M-3.258-45.187Q-3.258-45.371-3.121-45.508Q-2.985-45.644-2.793-45.644Q-2.602-45.644-2.469-45.511Q-2.336-45.379-2.336-45.187Q-2.336-44.988-2.469-44.855Q-2.602-44.722-2.793-44.722Q-2.985-44.722-3.121-44.859Q-3.258-44.996-3.258-45.187",[1337],[1321,5420,5421],{"transform":5390},[1326,5422],{"d":5423,"fill":5374,"stroke":5374,"className":5424,"style":2519},"M2.453-42.203L2.453-43.425Q2.453-43.453 2.485-43.484Q2.516-43.515 2.539-43.515L2.645-43.515Q2.715-43.515 2.731-43.453Q2.793-43.133 2.932-42.892Q3.070-42.652 3.303-42.511Q3.535-42.371 3.844-42.371Q4.082-42.371 4.291-42.431Q4.500-42.492 4.637-42.640Q4.774-42.789 4.774-43.035Q4.774-43.289 4.563-43.455Q4.352-43.621 4.082-43.675L3.461-43.789Q3.055-43.867 2.754-44.123Q2.453-44.379 2.453-44.754Q2.453-45.121 2.654-45.343Q2.856-45.566 3.180-45.664Q3.504-45.761 3.844-45.761Q4.309-45.761 4.606-45.554L4.828-45.738Q4.852-45.761 4.883-45.761L4.934-45.761Q4.965-45.761 4.992-45.734Q5.020-45.707 5.020-45.675L5.020-44.691Q5.020-44.660 4.994-44.631Q4.969-44.601 4.934-44.601L4.828-44.601Q4.793-44.601 4.766-44.629Q4.738-44.656 4.738-44.691Q4.738-45.090 4.486-45.310Q4.235-45.531 3.836-45.531Q3.481-45.531 3.197-45.408Q2.914-45.285 2.914-44.980Q2.914-44.761 3.115-44.629Q3.317-44.496 3.563-44.453L4.188-44.340Q4.617-44.250 4.926-43.953Q5.235-43.656 5.235-43.242Q5.235-42.672 4.836-42.394Q4.438-42.117 3.844-42.117Q3.293-42.117 2.942-42.453L2.645-42.140Q2.621-42.117 2.586-42.117L2.539-42.117Q2.516-42.117 2.485-42.148Q2.453-42.179 2.453-42.203M5.860-43.027Q5.860-43.511 6.262-43.806Q6.664-44.101 7.215-44.220Q7.766-44.340 8.258-44.340L8.258-44.629Q8.258-44.855 8.143-45.062Q8.027-45.269 7.830-45.388Q7.633-45.508 7.402-45.508Q6.977-45.508 6.692-45.402Q6.762-45.375 6.809-45.320Q6.856-45.265 6.881-45.195Q6.906-45.125 6.906-45.050Q6.906-44.945 6.856-44.853Q6.805-44.761 6.713-44.711Q6.621-44.660 6.516-44.660Q6.410-44.660 6.318-44.711Q6.227-44.761 6.176-44.853Q6.125-44.945 6.125-45.050Q6.125-45.468 6.514-45.615Q6.902-45.761 7.402-45.761Q7.735-45.761 8.088-45.631Q8.442-45.500 8.670-45.246Q8.899-44.992 8.899-44.644L8.899-42.843Q8.899-42.711 8.971-42.601Q9.043-42.492 9.172-42.492Q9.297-42.492 9.365-42.597Q9.434-42.703 9.434-42.843L9.434-43.355L9.715-43.355L9.715-42.843Q9.715-42.640 9.598-42.482Q9.481-42.324 9.299-42.240Q9.117-42.156 8.914-42.156Q8.684-42.156 8.531-42.328Q8.379-42.500 8.348-42.730Q8.188-42.449 7.879-42.283Q7.570-42.117 7.219-42.117Q6.707-42.117 6.283-42.340Q5.860-42.562 5.860-43.027M6.547-43.027Q6.547-42.742 6.774-42.556Q7-42.371 7.293-42.371Q7.539-42.371 7.764-42.488Q7.988-42.605 8.123-42.808Q8.258-43.011 8.258-43.265L8.258-44.097Q7.992-44.097 7.707-44.043Q7.422-43.988 7.151-43.859Q6.879-43.730 6.713-43.523Q6.547-43.316 6.547-43.027M11.938-42.195L10.082-42.195L10.082-42.492Q10.356-42.492 10.524-42.539Q10.692-42.586 10.692-42.754L10.692-44.890Q10.692-45.105 10.629-45.201Q10.567-45.297 10.447-45.318Q10.328-45.340 10.082-45.340L10.082-45.636L11.274-45.722L11.274-44.988Q11.387-45.203 11.580-45.371Q11.774-45.539 12.012-45.631Q12.250-45.722 12.504-45.722Q13.465-45.722 13.641-45.011Q13.824-45.340 14.152-45.531Q14.481-45.722 14.860-45.722Q16.035-45.722 16.035-44.644L16.035-42.754Q16.035-42.586 16.203-42.539Q16.371-42.492 16.641-42.492L16.641-42.195L14.785-42.195L14.785-42.492Q15.059-42.492 15.227-42.537Q15.395-42.582 15.395-42.754L15.395-44.629Q15.395-45.015 15.270-45.242Q15.145-45.468 14.793-45.468Q14.488-45.468 14.233-45.306Q13.977-45.144 13.828-44.875Q13.680-44.605 13.680-44.308L13.680-42.754Q13.680-42.586 13.850-42.539Q14.020-42.492 14.289-42.492L14.289-42.195L12.434-42.195L12.434-42.492Q12.707-42.492 12.875-42.539Q13.043-42.586 13.043-42.754L13.043-44.629Q13.043-45.015 12.918-45.242Q12.793-45.468 12.442-45.468Q12.137-45.468 11.881-45.306Q11.625-45.144 11.477-44.875Q11.328-44.605 11.328-44.308L11.328-42.754Q11.328-42.586 11.498-42.539Q11.668-42.492 11.938-42.492L11.938-42.195M17.086-43.949Q17.086-44.429 17.318-44.845Q17.551-45.261 17.961-45.511Q18.371-45.761 18.848-45.761Q19.578-45.761 19.977-45.320Q20.375-44.879 20.375-44.148Q20.375-44.043 20.281-44.019L17.832-44.019L17.832-43.949Q17.832-43.539 17.953-43.183Q18.074-42.828 18.346-42.611Q18.617-42.394 19.047-42.394Q19.410-42.394 19.707-42.623Q20.004-42.851 20.106-43.203Q20.113-43.250 20.199-43.265L20.281-43.265Q20.375-43.238 20.375-43.156Q20.375-43.148 20.367-43.117Q20.305-42.890 20.166-42.707Q20.027-42.523 19.836-42.390Q19.645-42.258 19.426-42.187Q19.207-42.117 18.969-42.117Q18.598-42.117 18.260-42.254Q17.922-42.390 17.654-42.642Q17.387-42.894 17.236-43.234Q17.086-43.574 17.086-43.949M17.840-44.258L19.801-44.258Q19.801-44.562 19.699-44.853Q19.598-45.144 19.381-45.326Q19.164-45.508 18.848-45.508Q18.547-45.508 18.317-45.320Q18.086-45.133 17.963-44.841Q17.840-44.550 17.840-44.258",[1337],[1321,5426,5427],{"transform":5390},[1326,5428],{"d":5429,"fill":5374,"stroke":5374,"className":5430,"style":2519},"M23.751-42.203L23.751-43.425Q23.751-43.453 23.782-43.484Q23.814-43.515 23.837-43.515L23.943-43.515Q24.013-43.515 24.029-43.453Q24.091-43.133 24.230-42.892Q24.368-42.652 24.601-42.511Q24.833-42.371 25.142-42.371Q25.380-42.371 25.589-42.431Q25.798-42.492 25.935-42.640Q26.072-42.789 26.072-43.035Q26.072-43.289 25.861-43.455Q25.650-43.621 25.380-43.675L24.759-43.789Q24.353-43.867 24.052-44.123Q23.751-44.379 23.751-44.754Q23.751-45.121 23.952-45.343Q24.154-45.566 24.478-45.664Q24.802-45.761 25.142-45.761Q25.607-45.761 25.904-45.554L26.126-45.738Q26.150-45.761 26.181-45.761L26.232-45.761Q26.263-45.761 26.290-45.734Q26.318-45.707 26.318-45.675L26.318-44.691Q26.318-44.660 26.292-44.631Q26.267-44.601 26.232-44.601L26.126-44.601Q26.091-44.601 26.064-44.629Q26.036-44.656 26.036-44.691Q26.036-45.090 25.784-45.310Q25.532-45.531 25.134-45.531Q24.779-45.531 24.495-45.408Q24.212-45.285 24.212-44.980Q24.212-44.761 24.413-44.629Q24.615-44.496 24.861-44.453L25.486-44.340Q25.915-44.250 26.224-43.953Q26.532-43.656 26.532-43.242Q26.532-42.672 26.134-42.394Q25.736-42.117 25.142-42.117Q24.591-42.117 24.240-42.453L23.943-42.140Q23.919-42.117 23.884-42.117L23.837-42.117Q23.814-42.117 23.782-42.148Q23.751-42.179 23.751-42.203M27.060-43.949Q27.060-44.429 27.292-44.845Q27.525-45.261 27.935-45.511Q28.345-45.761 28.822-45.761Q29.552-45.761 29.950-45.320Q30.349-44.879 30.349-44.148Q30.349-44.043 30.255-44.019L27.806-44.019L27.806-43.949Q27.806-43.539 27.927-43.183Q28.048-42.828 28.320-42.611Q28.591-42.394 29.021-42.394Q29.384-42.394 29.681-42.623Q29.978-42.851 30.079-43.203Q30.087-43.250 30.173-43.265L30.255-43.265Q30.349-43.238 30.349-43.156Q30.349-43.148 30.341-43.117Q30.279-42.890 30.140-42.707Q30.001-42.523 29.810-42.390Q29.618-42.258 29.400-42.187Q29.181-42.117 28.943-42.117Q28.572-42.117 28.234-42.254Q27.896-42.390 27.628-42.642Q27.361-42.894 27.210-43.234Q27.060-43.574 27.060-43.949M27.814-44.258L29.775-44.258Q29.775-44.562 29.673-44.853Q29.572-45.144 29.355-45.326Q29.138-45.508 28.822-45.508Q28.521-45.508 28.290-45.320Q28.060-45.133 27.937-44.841Q27.814-44.550 27.814-44.258M31.462-43.156L31.462-45.347L30.759-45.347L30.759-45.601Q31.115-45.601 31.357-45.834Q31.599-46.066 31.710-46.414Q31.822-46.761 31.822-47.117L32.103-47.117L32.103-45.644L33.279-45.644L33.279-45.347L32.103-45.347L32.103-43.172Q32.103-42.851 32.222-42.623Q32.341-42.394 32.622-42.394Q32.802-42.394 32.919-42.517Q33.036-42.640 33.089-42.820Q33.142-43 33.142-43.172L33.142-43.644L33.423-43.644L33.423-43.156Q33.423-42.902 33.318-42.662Q33.212-42.422 33.015-42.269Q32.818-42.117 32.560-42.117Q32.243-42.117 31.991-42.240Q31.740-42.363 31.601-42.597Q31.462-42.832 31.462-43.156",[1337],[1321,5432,5433,5440,5446,5452,5458,5464,5470,5476,5482,5488,5494,5500,5506,5512,5518,5524,5530,5536,5542,5548,5554,5560,5566,5572,5578,5584,5590,5596,5602,5608,5614,5620,5626,5632,5638,5644,5650,5655,5660,5665,5670,5676,5682,5688,5694,5700,5706,5712],{"stroke":1328,"fontSize":2511},[1321,5434,5436],{"transform":5435},"translate(151.487 35.342)",[1326,5437],{"d":5438,"fill":1323,"stroke":1323,"className":5439,"style":2519},"M-53.636-72.750L-53.636-74.687Q-53.636-74.965-53.808-75.166Q-53.980-75.367-54.242-75.466Q-54.504-75.566-54.773-75.566Q-54.800-75.566-54.830-75.595Q-54.859-75.625-54.859-75.656L-54.859-75.734Q-54.859-75.765-54.830-75.795Q-54.800-75.824-54.773-75.824Q-54.343-75.824-53.990-76.058Q-53.636-76.293-53.636-76.703L-53.636-78.640Q-53.636-78.933-53.476-79.142Q-53.316-79.351-53.066-79.470Q-52.816-79.590-52.531-79.642Q-52.246-79.695-51.957-79.695L-51.879-79.695Q-51.851-79.695-51.820-79.664Q-51.789-79.632-51.789-79.605L-51.789-79.527Q-51.789-79.496-51.818-79.466Q-51.847-79.437-51.879-79.437Q-52.133-79.437-52.398-79.349Q-52.664-79.261-52.834-79.078Q-53.004-78.894-53.004-78.625L-53.004-76.687Q-53.004-76.425-53.134-76.228Q-53.265-76.031-53.480-75.898Q-53.695-75.765-53.949-75.695Q-53.554-75.590-53.279-75.338Q-53.004-75.086-53.004-74.703L-53.004-72.765Q-53.004-72.496-52.834-72.312Q-52.664-72.129-52.400-72.041Q-52.136-71.953-51.879-71.953Q-51.847-71.953-51.818-71.924Q-51.789-71.894-51.789-71.863L-51.789-71.785Q-51.789-71.757-51.820-71.726Q-51.851-71.695-51.879-71.695L-51.957-71.695Q-52.215-71.695-52.506-71.746Q-52.797-71.797-53.058-71.920Q-53.320-72.043-53.478-72.254Q-53.636-72.465-53.636-72.750",[1337],[1321,5441,5442],{"transform":5435},[1326,5443],{"d":5444,"fill":1323,"stroke":1323,"className":5445,"style":2519},"M-49.691-73.617Q-50.047-73.617-50.316-73.797Q-50.586-73.976-50.726-74.271Q-50.867-74.566-50.867-74.925Q-50.867-75.312-50.705-75.726Q-50.543-76.140-50.259-76.478Q-49.976-76.816-49.607-77.019Q-49.238-77.222-48.836-77.222Q-48.343-77.222-48.066-76.773Q-48.035-76.906-47.931-76.988Q-47.828-77.070-47.699-77.070Q-47.586-77.070-47.506-77Q-47.425-76.929-47.425-76.816Q-47.425-76.789-47.441-76.726L-47.996-74.527Q-48.035-74.281-48.035-74.230Q-48.035-73.871-47.789-73.871Q-47.644-73.871-47.543-73.978Q-47.441-74.086-47.377-74.240Q-47.312-74.394-47.263-74.584Q-47.215-74.773-47.195-74.871Q-47.168-74.941-47.105-74.941L-47.004-74.941Q-46.965-74.941-46.939-74.908Q-46.914-74.875-46.914-74.847Q-46.914-74.832-46.922-74.816Q-47.035-74.324-47.234-73.970Q-47.433-73.617-47.804-73.617Q-48.086-73.617-48.312-73.759Q-48.539-73.902-48.621-74.160Q-48.843-73.918-49.117-73.767Q-49.390-73.617-49.691-73.617M-49.675-73.871Q-49.465-73.871-49.256-73.984Q-49.047-74.097-48.877-74.271Q-48.707-74.445-48.578-74.640Q-48.590-74.625-48.599-74.611Q-48.609-74.597-48.621-74.582L-48.187-76.304Q-48.226-76.484-48.312-76.634Q-48.398-76.785-48.535-76.877Q-48.672-76.968-48.851-76.968Q-49.187-76.968-49.459-76.687Q-49.730-76.406-49.890-76.031Q-50.015-75.711-50.113-75.291Q-50.211-74.871-50.211-74.590Q-50.211-74.300-50.078-74.086Q-49.945-73.871-49.675-73.871M-45.859-72.289Q-45.859-72.312-45.828-72.359Q-45.535-72.621-45.369-72.988Q-45.203-73.355-45.203-73.742L-45.203-73.800Q-45.332-73.695-45.500-73.695Q-45.691-73.695-45.828-73.828Q-45.965-73.961-45.965-74.160Q-45.965-74.351-45.828-74.484Q-45.691-74.617-45.500-74.617Q-45.199-74.617-45.074-74.347Q-44.949-74.078-44.949-73.742Q-44.949-73.293-45.131-72.879Q-45.312-72.465-45.652-72.168Q-45.675-72.144-45.715-72.144Q-45.761-72.144-45.810-72.189Q-45.859-72.234-45.859-72.289",[1337],[1321,5447,5448],{"transform":5435},[1326,5449],{"d":5450,"fill":1323,"stroke":1323,"className":5451,"style":2519},"M-41.398-73.617Q-41.738-73.617-41.998-73.795Q-42.257-73.972-42.392-74.267Q-42.527-74.562-42.527-74.910Q-42.527-75.172-42.461-75.429L-41.711-78.457Q-41.699-78.504-41.672-78.605Q-41.644-78.707-41.644-78.757Q-41.644-78.863-42.140-78.863Q-42.238-78.894-42.238-78.992L-42.215-79.093Q-42.207-79.140-42.125-79.160L-41.023-79.246Q-40.980-79.246-40.941-79.215Q-40.902-79.183-40.902-79.129L-41.476-76.808Q-41.019-77.222-40.543-77.222Q-40.179-77.222-39.914-77.043Q-39.648-76.863-39.507-76.562Q-39.367-76.261-39.367-75.910Q-39.367-75.386-39.648-74.847Q-39.929-74.308-40.396-73.963Q-40.863-73.617-41.398-73.617M-41.382-73.871Q-41.047-73.871-40.767-74.162Q-40.488-74.453-40.351-74.808Q-40.226-75.101-40.125-75.535Q-40.023-75.968-40.023-76.246Q-40.023-76.531-40.156-76.750Q-40.289-76.968-40.558-76.968Q-40.769-76.968-40.965-76.867Q-41.160-76.765-41.320-76.609Q-41.480-76.453-41.613-76.261L-41.840-75.390Q-41.890-75.156-41.920-74.974Q-41.949-74.793-41.949-74.640Q-41.949-74.340-41.808-74.105Q-41.668-73.871-41.382-73.871",[1337],[1321,5453,5454],{"transform":5435},[1326,5455],{"d":5456,"fill":1323,"stroke":1323,"className":5457,"style":2519},"M-38.680-71.785L-38.680-71.863Q-38.680-71.894-38.651-71.924Q-38.621-71.953-38.594-71.953Q-38.164-71.953-37.811-72.162Q-37.457-72.371-37.457-72.765L-37.457-74.703Q-37.457-75.082-37.186-75.336Q-36.914-75.590-36.512-75.695Q-36.922-75.808-37.190-76.058Q-37.457-76.308-37.457-76.687L-37.457-78.625Q-37.457-79.027-37.811-79.232Q-38.164-79.437-38.594-79.437Q-38.621-79.437-38.651-79.466Q-38.680-79.496-38.680-79.527L-38.680-79.605Q-38.680-79.632-38.649-79.664Q-38.618-79.695-38.594-79.695L-38.512-79.695Q-38.129-79.695-37.745-79.597Q-37.360-79.500-37.092-79.261Q-36.825-79.023-36.825-78.640L-36.825-76.703Q-36.825-76.289-36.477-76.056Q-36.129-75.824-35.700-75.824Q-35.668-75.824-35.639-75.795Q-35.610-75.765-35.610-75.734L-35.610-75.656Q-35.610-75.625-35.639-75.595Q-35.668-75.566-35.700-75.566Q-36.129-75.566-36.477-75.334Q-36.825-75.101-36.825-74.687L-36.825-72.750Q-36.825-72.367-37.092-72.129Q-37.360-71.890-37.745-71.793Q-38.129-71.695-38.512-71.695L-38.594-71.695Q-38.618-71.695-38.649-71.726Q-38.680-71.757-38.680-71.785",[1337],[1321,5459,5460],{"transform":5435},[1326,5461],{"d":5462,"fill":1323,"stroke":1323,"className":5463,"style":2519},"M-30.005-73.695L-32.798-73.695L-32.798-73.992Q-31.736-73.992-31.736-74.254L-31.736-78.422Q-32.165-78.207-32.845-78.207L-32.845-78.504Q-31.826-78.504-31.310-79.015L-31.165-79.015Q-31.091-78.996-31.072-78.918L-31.072-74.254Q-31.072-73.992-30.005-73.992L-30.005-73.695M-28.634-74.160Q-28.634-74.343-28.497-74.480Q-28.361-74.617-28.169-74.617Q-27.978-74.617-27.845-74.484Q-27.712-74.351-27.712-74.160Q-27.712-73.961-27.845-73.828Q-27.978-73.695-28.169-73.695Q-28.361-73.695-28.497-73.832Q-28.634-73.968-28.634-74.160M-28.634-76.687Q-28.634-76.871-28.497-77.007Q-28.361-77.144-28.169-77.144Q-27.978-77.144-27.845-77.011Q-27.712-76.879-27.712-76.687Q-27.712-76.488-27.845-76.355Q-27.978-76.222-28.169-76.222Q-28.361-76.222-28.497-76.359Q-28.634-76.496-28.634-76.687",[1337],[1321,5465,5466],{"transform":5435},[1326,5467],{"d":5468,"fill":1323,"stroke":1323,"className":5469,"style":2519},"M-21.964-75.504L-21.964-78.625Q-21.964-78.879-22.784-78.879L-22.784-79.160L-20.394-79.160L-20.394-78.879Q-21.218-78.879-21.218-78.625L-21.218-75.535Q-21.218-74.793-20.886-74.297Q-20.554-73.800-19.843-73.800Q-19.378-73.800-19.007-74.037Q-18.636-74.273-18.435-74.670Q-18.233-75.066-18.233-75.535L-18.233-78.406Q-18.233-78.879-19.058-78.879L-19.058-79.160L-17.132-79.160L-17.132-78.879Q-17.952-78.879-17.952-78.406L-17.952-75.504Q-17.952-74.984-18.202-74.525Q-18.452-74.066-18.886-73.793Q-19.319-73.519-19.843-73.519Q-20.382-73.519-20.874-73.777Q-21.366-74.035-21.665-74.492Q-21.964-74.949-21.964-75.504M-14.972-73.695L-16.378-73.695L-16.378-73.925Q-15.804-73.925-15.804-74.449L-15.804-77.527Q-15.944-77.574-16.378-77.574L-16.378-77.808L-15.257-77.808Q-15.222-77.808-15.194-77.773L-12.964-74.679L-12.964-77.054Q-12.964-77.574-13.538-77.574L-13.538-77.808L-12.132-77.808L-12.132-77.574Q-12.706-77.574-12.706-77.054L-12.706-73.765Q-12.706-73.746-12.735-73.720Q-12.765-73.695-12.784-73.695L-12.882-73.695Q-12.921-73.695-12.937-73.726L-15.499-77.269Q-15.515-77.293-15.524-77.306Q-15.534-77.320-15.546-77.336L-15.546-74.449Q-15.546-73.925-14.972-73.925L-14.972-73.695M-9.683-73.695L-11.507-73.695L-11.507-73.925Q-11.315-73.925-11.192-73.941Q-11.069-73.957-10.985-74.023Q-10.901-74.090-10.901-74.230L-10.901-77.269Q-10.901-77.476-11.060-77.525Q-11.218-77.574-11.507-77.574L-11.507-77.808L-9.683-77.808L-9.683-77.574Q-9.976-77.574-10.134-77.525Q-10.292-77.476-10.292-77.269L-10.292-74.230Q-10.292-74.090-10.208-74.023Q-10.124-73.957-9.999-73.941Q-9.874-73.925-9.683-73.925L-9.683-73.695M-6.847-73.582Q-7.425-73.582-7.917-73.873Q-8.409-74.164-8.696-74.658Q-8.983-75.152-8.983-75.726Q-8.983-76.164-8.819-76.564Q-8.655-76.965-8.364-77.267Q-8.073-77.570-7.681-77.744Q-7.288-77.918-6.847-77.918Q-6.401-77.918-6.007-77.744Q-5.612-77.570-5.321-77.263Q-5.030-76.957-4.870-76.560Q-4.710-76.164-4.710-75.726Q-4.710-75.289-4.876-74.900Q-5.042-74.511-5.335-74.215Q-5.628-73.918-6.023-73.750Q-6.417-73.582-6.847-73.582M-6.847-73.824Q-6.351-73.824-6.030-74.127Q-5.710-74.429-5.569-74.890Q-5.429-75.351-5.429-75.832Q-5.429-76.304-5.579-76.728Q-5.730-77.152-6.052-77.420Q-6.374-77.687-6.847-77.687Q-7.319-77.687-7.642-77.418Q-7.964-77.148-8.112-76.726Q-8.261-76.304-8.261-75.832Q-8.261-75.351-8.120-74.890Q-7.980-74.429-7.663-74.127Q-7.347-73.824-6.847-73.824M-2.577-73.695L-3.983-73.695L-3.983-73.925Q-3.409-73.925-3.409-74.449L-3.409-77.527Q-3.550-77.574-3.983-77.574L-3.983-77.808L-2.862-77.808Q-2.827-77.808-2.800-77.773L-0.569-74.679L-0.569-77.054Q-0.569-77.574-1.144-77.574L-1.144-77.808L0.263-77.808L0.263-77.574Q-0.312-77.574-0.312-77.054L-0.312-73.765Q-0.312-73.746-0.341-73.720Q-0.370-73.695-0.390-73.695L-0.487-73.695Q-0.526-73.695-0.542-73.726L-3.105-77.269Q-3.120-77.293-3.130-77.306Q-3.140-77.320-3.151-77.336L-3.151-74.449Q-3.151-73.925-2.577-73.925",[1337],[1321,5471,5472],{"transform":5435},[1326,5473],{"d":5474,"fill":1323,"stroke":1323,"className":5475,"style":2519},"M10.442-75.511L4.098-75.511Q4.024-75.511 3.973-75.568Q3.923-75.625 3.923-75.695Q3.923-75.765 3.970-75.822Q4.016-75.879 4.098-75.879L10.442-75.879Q9.989-76.207 9.692-76.674Q9.395-77.140 9.290-77.679Q9.290-77.781 9.387-77.808L9.555-77.808Q9.637-77.789 9.657-77.703Q9.786-77.027 10.266-76.509Q10.747-75.992 11.411-75.800Q11.473-75.777 11.473-75.695Q11.473-75.613 11.411-75.590Q10.747-75.402 10.266-74.882Q9.786-74.363 9.657-73.687Q9.637-73.601 9.555-73.582L9.387-73.582Q9.290-73.609 9.290-73.711Q9.364-74.078 9.522-74.410Q9.680-74.742 9.913-75.019Q10.145-75.297 10.442-75.511",[1337],[1321,5477,5478],{"transform":5435},[1326,5479],{"d":5480,"fill":1323,"stroke":1323,"className":5481,"style":2519},"M16.120-72.750L16.120-74.687Q16.120-74.965 15.948-75.166Q15.776-75.367 15.514-75.466Q15.252-75.566 14.983-75.566Q14.956-75.566 14.926-75.595Q14.897-75.625 14.897-75.656L14.897-75.734Q14.897-75.765 14.926-75.795Q14.956-75.824 14.983-75.824Q15.413-75.824 15.766-76.058Q16.120-76.293 16.120-76.703L16.120-78.640Q16.120-78.933 16.280-79.142Q16.440-79.351 16.690-79.470Q16.940-79.590 17.225-79.642Q17.510-79.695 17.799-79.695L17.877-79.695Q17.905-79.695 17.936-79.664Q17.967-79.632 17.967-79.605L17.967-79.527Q17.967-79.496 17.938-79.466Q17.909-79.437 17.877-79.437Q17.623-79.437 17.358-79.349Q17.092-79.261 16.922-79.078Q16.752-78.894 16.752-78.625L16.752-76.687Q16.752-76.425 16.622-76.228Q16.491-76.031 16.276-75.898Q16.061-75.765 15.807-75.695Q16.202-75.590 16.477-75.338Q16.752-75.086 16.752-74.703L16.752-72.765Q16.752-72.496 16.922-72.312Q17.092-72.129 17.356-72.041Q17.620-71.953 17.877-71.953Q17.909-71.953 17.938-71.924Q17.967-71.894 17.967-71.863L17.967-71.785Q17.967-71.757 17.936-71.726Q17.905-71.695 17.877-71.695L17.799-71.695Q17.541-71.695 17.250-71.746Q16.959-71.797 16.698-71.920Q16.436-72.043 16.278-72.254Q16.120-72.465 16.120-72.750",[1337],[1321,5483,5484],{"transform":5435},[1326,5485],{"d":5486,"fill":1323,"stroke":1323,"className":5487,"style":2519},"M20.065-73.617Q19.709-73.617 19.440-73.797Q19.170-73.976 19.030-74.271Q18.889-74.566 18.889-74.925Q18.889-75.312 19.051-75.726Q19.213-76.140 19.497-76.478Q19.780-76.816 20.149-77.019Q20.518-77.222 20.920-77.222Q21.413-77.222 21.690-76.773Q21.721-76.906 21.825-76.988Q21.928-77.070 22.057-77.070Q22.170-77.070 22.250-77Q22.331-76.929 22.331-76.816Q22.331-76.789 22.315-76.726L21.760-74.527Q21.721-74.281 21.721-74.230Q21.721-73.871 21.967-73.871Q22.112-73.871 22.213-73.978Q22.315-74.086 22.379-74.240Q22.444-74.394 22.493-74.584Q22.541-74.773 22.561-74.871Q22.588-74.941 22.651-74.941L22.752-74.941Q22.791-74.941 22.817-74.908Q22.842-74.875 22.842-74.847Q22.842-74.832 22.834-74.816Q22.721-74.324 22.522-73.970Q22.323-73.617 21.952-73.617Q21.670-73.617 21.444-73.759Q21.217-73.902 21.135-74.160Q20.913-73.918 20.639-73.767Q20.366-73.617 20.065-73.617M20.081-73.871Q20.291-73.871 20.500-73.984Q20.709-74.097 20.879-74.271Q21.049-74.445 21.178-74.640Q21.166-74.625 21.157-74.611Q21.147-74.597 21.135-74.582L21.569-76.304Q21.530-76.484 21.444-76.634Q21.358-76.785 21.221-76.877Q21.084-76.968 20.905-76.968Q20.569-76.968 20.297-76.687Q20.026-76.406 19.866-76.031Q19.741-75.711 19.643-75.291Q19.545-74.871 19.545-74.590Q19.545-74.300 19.678-74.086Q19.811-73.871 20.081-73.871M23.897-72.289Q23.897-72.312 23.928-72.359Q24.221-72.621 24.387-72.988Q24.553-73.355 24.553-73.742L24.553-73.800Q24.424-73.695 24.256-73.695Q24.065-73.695 23.928-73.828Q23.791-73.961 23.791-74.160Q23.791-74.351 23.928-74.484Q24.065-74.617 24.256-74.617Q24.557-74.617 24.682-74.347Q24.807-74.078 24.807-73.742Q24.807-73.293 24.625-72.879Q24.444-72.465 24.104-72.168Q24.081-72.144 24.041-72.144Q23.995-72.144 23.946-72.189Q23.897-72.234 23.897-72.289",[1337],[1321,5489,5490],{"transform":5435},[1326,5491],{"d":5492,"fill":1323,"stroke":1323,"className":5493,"style":2519},"M28.358-73.617Q28.018-73.617 27.758-73.795Q27.499-73.972 27.364-74.267Q27.229-74.562 27.229-74.910Q27.229-75.172 27.295-75.429L28.045-78.457Q28.057-78.504 28.084-78.605Q28.112-78.707 28.112-78.757Q28.112-78.863 27.616-78.863Q27.518-78.894 27.518-78.992L27.541-79.093Q27.549-79.140 27.631-79.160L28.733-79.246Q28.776-79.246 28.815-79.215Q28.854-79.183 28.854-79.129L28.280-76.808Q28.737-77.222 29.213-77.222Q29.577-77.222 29.842-77.043Q30.108-76.863 30.249-76.562Q30.389-76.261 30.389-75.910Q30.389-75.386 30.108-74.847Q29.827-74.308 29.360-73.963Q28.893-73.617 28.358-73.617M28.374-73.871Q28.709-73.871 28.989-74.162Q29.268-74.453 29.405-74.808Q29.530-75.101 29.631-75.535Q29.733-75.968 29.733-76.246Q29.733-76.531 29.600-76.750Q29.467-76.968 29.198-76.968Q28.987-76.968 28.791-76.867Q28.596-76.765 28.436-76.609Q28.276-76.453 28.143-76.261L27.916-75.390Q27.866-75.156 27.836-74.974Q27.807-74.793 27.807-74.640Q27.807-74.340 27.948-74.105Q28.088-73.871 28.374-73.871",[1337],[1321,5495,5496],{"transform":5435},[1326,5497],{"d":5498,"fill":1323,"stroke":1323,"className":5499,"style":2519},"M31.076-71.785L31.076-71.863Q31.076-71.894 31.105-71.924Q31.135-71.953 31.162-71.953Q31.592-71.953 31.945-72.162Q32.299-72.371 32.299-72.765L32.299-74.703Q32.299-75.082 32.570-75.336Q32.842-75.590 33.244-75.695Q32.834-75.808 32.566-76.058Q32.299-76.308 32.299-76.687L32.299-78.625Q32.299-79.027 31.945-79.232Q31.592-79.437 31.162-79.437Q31.135-79.437 31.105-79.466Q31.076-79.496 31.076-79.527L31.076-79.605Q31.076-79.632 31.107-79.664Q31.138-79.695 31.162-79.695L31.244-79.695Q31.627-79.695 32.011-79.597Q32.396-79.500 32.664-79.261Q32.931-79.023 32.931-78.640L32.931-76.703Q32.931-76.289 33.279-76.056Q33.627-75.824 34.056-75.824Q34.088-75.824 34.117-75.795Q34.146-75.765 34.146-75.734L34.146-75.656Q34.146-75.625 34.117-75.595Q34.088-75.566 34.056-75.566Q33.627-75.566 33.279-75.334Q32.931-75.101 32.931-74.687L32.931-72.750Q32.931-72.367 32.664-72.129Q32.396-71.890 32.011-71.793Q31.627-71.695 31.244-71.695L31.162-71.695Q31.138-71.695 31.107-71.726Q31.076-71.757 31.076-71.785",[1337],[1321,5501,5502],{"transform":5435},[1326,5503],{"d":5504,"fill":1323,"stroke":1323,"className":5505,"style":2519},"M-53.636-62.250L-53.636-64.187Q-53.636-64.465-53.808-64.666Q-53.980-64.867-54.242-64.966Q-54.504-65.066-54.773-65.066Q-54.800-65.066-54.830-65.095Q-54.859-65.125-54.859-65.156L-54.859-65.234Q-54.859-65.265-54.830-65.295Q-54.800-65.324-54.773-65.324Q-54.343-65.324-53.990-65.558Q-53.636-65.793-53.636-66.203L-53.636-68.140Q-53.636-68.433-53.476-68.642Q-53.316-68.851-53.066-68.970Q-52.816-69.090-52.531-69.142Q-52.246-69.195-51.957-69.195L-51.879-69.195Q-51.851-69.195-51.820-69.164Q-51.789-69.132-51.789-69.105L-51.789-69.027Q-51.789-68.996-51.818-68.966Q-51.847-68.937-51.879-68.937Q-52.133-68.937-52.398-68.849Q-52.664-68.761-52.834-68.578Q-53.004-68.394-53.004-68.125L-53.004-66.187Q-53.004-65.925-53.134-65.728Q-53.265-65.531-53.480-65.398Q-53.695-65.265-53.949-65.195Q-53.554-65.090-53.279-64.838Q-53.004-64.586-53.004-64.203L-53.004-62.265Q-53.004-61.996-52.834-61.812Q-52.664-61.629-52.400-61.541Q-52.136-61.453-51.879-61.453Q-51.847-61.453-51.818-61.424Q-51.789-61.394-51.789-61.363L-51.789-61.285Q-51.789-61.258-51.820-61.226Q-51.851-61.195-51.879-61.195L-51.957-61.195Q-52.215-61.195-52.506-61.246Q-52.797-61.297-53.058-61.420Q-53.320-61.543-53.478-61.754Q-53.636-61.965-53.636-62.250",[1337],[1321,5507,5508],{"transform":5435},[1326,5509],{"d":5510,"fill":1323,"stroke":1323,"className":5511,"style":2519},"M-49.691-63.117Q-50.047-63.117-50.316-63.297Q-50.586-63.476-50.726-63.771Q-50.867-64.066-50.867-64.425Q-50.867-64.812-50.705-65.226Q-50.543-65.640-50.259-65.978Q-49.976-66.316-49.607-66.519Q-49.238-66.722-48.836-66.722Q-48.343-66.722-48.066-66.273Q-48.035-66.406-47.931-66.488Q-47.828-66.570-47.699-66.570Q-47.586-66.570-47.506-66.500Q-47.425-66.429-47.425-66.316Q-47.425-66.289-47.441-66.226L-47.996-64.027Q-48.035-63.781-48.035-63.730Q-48.035-63.371-47.789-63.371Q-47.644-63.371-47.543-63.478Q-47.441-63.586-47.377-63.740Q-47.312-63.894-47.263-64.084Q-47.215-64.273-47.195-64.371Q-47.168-64.441-47.105-64.441L-47.004-64.441Q-46.965-64.441-46.939-64.408Q-46.914-64.375-46.914-64.347Q-46.914-64.332-46.922-64.316Q-47.035-63.824-47.234-63.470Q-47.433-63.117-47.804-63.117Q-48.086-63.117-48.312-63.259Q-48.539-63.402-48.621-63.660Q-48.843-63.418-49.117-63.267Q-49.390-63.117-49.691-63.117M-49.675-63.371Q-49.465-63.371-49.256-63.484Q-49.047-63.597-48.877-63.771Q-48.707-63.945-48.578-64.140Q-48.590-64.125-48.599-64.111Q-48.609-64.097-48.621-64.082L-48.187-65.804Q-48.226-65.984-48.312-66.134Q-48.398-66.285-48.535-66.377Q-48.672-66.468-48.851-66.468Q-49.187-66.468-49.459-66.187Q-49.730-65.906-49.890-65.531Q-50.015-65.211-50.113-64.791Q-50.211-64.371-50.211-64.090Q-50.211-63.800-50.078-63.586Q-49.945-63.371-49.675-63.371M-45.859-61.789Q-45.859-61.812-45.828-61.859Q-45.535-62.121-45.369-62.488Q-45.203-62.855-45.203-63.242L-45.203-63.300Q-45.332-63.195-45.500-63.195Q-45.691-63.195-45.828-63.328Q-45.965-63.461-45.965-63.660Q-45.965-63.851-45.828-63.984Q-45.691-64.117-45.500-64.117Q-45.199-64.117-45.074-63.847Q-44.949-63.578-44.949-63.242Q-44.949-62.793-45.131-62.379Q-45.312-61.965-45.652-61.668Q-45.675-61.644-45.715-61.644Q-45.761-61.644-45.810-61.689Q-45.859-61.734-45.859-61.789",[1337],[1321,5513,5514],{"transform":5435},[1326,5515],{"d":5516,"fill":1323,"stroke":1323,"className":5517,"style":2519},"M-41.894-64.211Q-41.894-63.972-41.806-63.783Q-41.718-63.593-41.547-63.482Q-41.375-63.371-41.140-63.371Q-40.632-63.371-40.177-63.564Q-39.722-63.758-39.437-64.132Q-39.418-64.164-39.367-64.164Q-39.316-64.164-39.269-64.113Q-39.222-64.062-39.222-64.011Q-39.222-63.972-39.246-63.949Q-39.562-63.535-40.078-63.326Q-40.593-63.117-41.160-63.117Q-41.461-63.117-41.716-63.218Q-41.972-63.320-42.164-63.508Q-42.355-63.695-42.461-63.953Q-42.566-64.211-42.566-64.500Q-42.566-64.922-42.377-65.324Q-42.187-65.726-41.861-66.043Q-41.535-66.359-41.132-66.541Q-40.730-66.722-40.308-66.722Q-39.925-66.722-39.613-66.556Q-39.300-66.390-39.300-66.035Q-39.300-65.820-39.431-65.660Q-39.562-65.500-39.773-65.500Q-39.906-65.500-40-65.586Q-40.093-65.672-40.093-65.804Q-40.093-65.976-39.972-66.109Q-39.851-66.242-39.687-66.265Q-39.890-66.468-40.328-66.468Q-40.695-66.468-40.992-66.250Q-41.289-66.031-41.490-65.679Q-41.691-65.328-41.793-64.929Q-41.894-64.531-41.894-64.211",[1337],[1321,5519,5520],{"transform":5435},[1326,5521],{"d":5522,"fill":1323,"stroke":1323,"className":5523,"style":2519},"M-38.635-61.285L-38.635-61.363Q-38.635-61.394-38.606-61.424Q-38.576-61.453-38.549-61.453Q-38.119-61.453-37.766-61.662Q-37.412-61.871-37.412-62.265L-37.412-64.203Q-37.412-64.582-37.141-64.836Q-36.869-65.090-36.467-65.195Q-36.877-65.308-37.145-65.558Q-37.412-65.808-37.412-66.187L-37.412-68.125Q-37.412-68.527-37.766-68.732Q-38.119-68.937-38.549-68.937Q-38.576-68.937-38.606-68.966Q-38.635-68.996-38.635-69.027L-38.635-69.105Q-38.635-69.132-38.604-69.164Q-38.573-69.195-38.549-69.195L-38.467-69.195Q-38.084-69.195-37.700-69.097Q-37.315-69-37.047-68.761Q-36.780-68.523-36.780-68.140L-36.780-66.203Q-36.780-65.789-36.432-65.556Q-36.084-65.324-35.655-65.324Q-35.623-65.324-35.594-65.295Q-35.565-65.265-35.565-65.234L-35.565-65.156Q-35.565-65.125-35.594-65.095Q-35.623-65.066-35.655-65.066Q-36.084-65.066-36.432-64.834Q-36.780-64.601-36.780-64.187L-36.780-62.250Q-36.780-61.867-37.047-61.629Q-37.315-61.390-37.700-61.293Q-38.084-61.195-38.467-61.195L-38.549-61.195Q-38.573-61.195-38.604-61.226Q-38.635-61.258-38.635-61.285",[1337],[1321,5525,5526],{"transform":5435},[1326,5527],{"d":5528,"fill":1323,"stroke":1323,"className":5529,"style":2519},"M-29.968-63.195L-33.128-63.195L-33.128-63.402Q-33.128-63.429-33.105-63.461L-31.753-64.859Q-31.374-65.246-31.126-65.535Q-30.878-65.824-30.704-66.181Q-30.531-66.539-30.531-66.929Q-30.531-67.277-30.663-67.570Q-30.796-67.863-31.050-68.041Q-31.304-68.218-31.659-68.218Q-32.019-68.218-32.310-68.023Q-32.601-67.828-32.745-67.500L-32.691-67.500Q-32.507-67.500-32.382-67.379Q-32.257-67.257-32.257-67.066Q-32.257-66.886-32.382-66.757Q-32.507-66.629-32.691-66.629Q-32.870-66.629-32.999-66.757Q-33.128-66.886-33.128-67.066Q-33.128-67.468-32.908-67.804Q-32.687-68.140-32.322-68.328Q-31.956-68.515-31.554-68.515Q-31.074-68.515-30.658-68.328Q-30.242-68.140-29.990-67.779Q-29.738-67.418-29.738-66.929Q-29.738-66.570-29.892-66.267Q-30.046-65.965-30.298-65.705Q-30.550-65.445-30.900-65.160Q-31.249-64.875-31.417-64.722L-32.347-63.883L-31.632-63.883Q-30.257-63.883-30.218-63.922Q-30.148-64-30.105-64.185Q-30.062-64.371-30.019-64.660L-29.738-64.660L-29.968-63.195M-28.589-63.660Q-28.589-63.843-28.452-63.980Q-28.316-64.117-28.124-64.117Q-27.933-64.117-27.800-63.984Q-27.667-63.851-27.667-63.660Q-27.667-63.461-27.800-63.328Q-27.933-63.195-28.124-63.195Q-28.316-63.195-28.452-63.332Q-28.589-63.468-28.589-63.660M-28.589-66.187Q-28.589-66.371-28.452-66.507Q-28.316-66.644-28.124-66.644Q-27.933-66.644-27.800-66.511Q-27.667-66.379-27.667-66.187Q-27.667-65.988-27.800-65.855Q-27.933-65.722-28.124-65.722Q-28.316-65.722-28.452-65.859Q-28.589-65.996-28.589-66.187",[1337],[1321,5531,5532],{"transform":5435},[1326,5533],{"d":5534,"fill":1323,"stroke":1323,"className":5535,"style":2519},"M-21.919-65.004L-21.919-68.125Q-21.919-68.379-22.739-68.379L-22.739-68.660L-20.349-68.660L-20.349-68.379Q-21.173-68.379-21.173-68.125L-21.173-65.035Q-21.173-64.293-20.841-63.797Q-20.509-63.300-19.798-63.300Q-19.333-63.300-18.962-63.537Q-18.591-63.773-18.390-64.170Q-18.188-64.566-18.188-65.035L-18.188-67.906Q-18.188-68.379-19.013-68.379L-19.013-68.660L-17.087-68.660L-17.087-68.379Q-17.907-68.379-17.907-67.906L-17.907-65.004Q-17.907-64.484-18.157-64.025Q-18.407-63.566-18.841-63.293Q-19.274-63.019-19.798-63.019Q-20.337-63.019-20.829-63.277Q-21.321-63.535-21.620-63.992Q-21.919-64.449-21.919-65.004M-14.927-63.195L-16.333-63.195L-16.333-63.425Q-15.759-63.425-15.759-63.949L-15.759-67.027Q-15.899-67.074-16.333-67.074L-16.333-67.308L-15.212-67.308Q-15.177-67.308-15.149-67.273L-12.919-64.179L-12.919-66.554Q-12.919-67.074-13.493-67.074L-13.493-67.308L-12.087-67.308L-12.087-67.074Q-12.661-67.074-12.661-66.554L-12.661-63.265Q-12.661-63.246-12.690-63.220Q-12.720-63.195-12.739-63.195L-12.837-63.195Q-12.876-63.195-12.892-63.226L-15.454-66.769Q-15.470-66.793-15.479-66.806Q-15.489-66.820-15.501-66.836L-15.501-63.949Q-15.501-63.425-14.927-63.425L-14.927-63.195M-9.638-63.195L-11.462-63.195L-11.462-63.425Q-11.270-63.425-11.147-63.441Q-11.024-63.457-10.940-63.523Q-10.856-63.590-10.856-63.730L-10.856-66.769Q-10.856-66.976-11.015-67.025Q-11.173-67.074-11.462-67.074L-11.462-67.308L-9.638-67.308L-9.638-67.074Q-9.931-67.074-10.089-67.025Q-10.247-66.976-10.247-66.769L-10.247-63.730Q-10.247-63.590-10.163-63.523Q-10.079-63.457-9.954-63.441Q-9.829-63.425-9.638-63.425L-9.638-63.195M-6.802-63.082Q-7.380-63.082-7.872-63.373Q-8.364-63.664-8.651-64.158Q-8.938-64.652-8.938-65.226Q-8.938-65.664-8.774-66.064Q-8.610-66.465-8.319-66.767Q-8.028-67.070-7.636-67.244Q-7.243-67.418-6.802-67.418Q-6.356-67.418-5.962-67.244Q-5.567-67.070-5.276-66.763Q-4.985-66.457-4.825-66.060Q-4.665-65.664-4.665-65.226Q-4.665-64.789-4.831-64.400Q-4.997-64.011-5.290-63.715Q-5.583-63.418-5.977-63.250Q-6.372-63.082-6.802-63.082M-6.802-63.324Q-6.306-63.324-5.985-63.627Q-5.665-63.929-5.524-64.390Q-5.384-64.851-5.384-65.332Q-5.384-65.804-5.534-66.228Q-5.685-66.652-6.007-66.920Q-6.329-67.187-6.802-67.187Q-7.274-67.187-7.597-66.918Q-7.919-66.648-8.067-66.226Q-8.216-65.804-8.216-65.332Q-8.216-64.851-8.075-64.390Q-7.935-63.929-7.618-63.627Q-7.302-63.324-6.802-63.324M-2.532-63.195L-3.938-63.195L-3.938-63.425Q-3.364-63.425-3.364-63.949L-3.364-67.027Q-3.505-67.074-3.938-67.074L-3.938-67.308L-2.817-67.308Q-2.782-67.308-2.755-67.273L-0.524-64.179L-0.524-66.554Q-0.524-67.074-1.099-67.074L-1.099-67.308L0.308-67.308L0.308-67.074Q-0.267-67.074-0.267-66.554L-0.267-63.265Q-0.267-63.246-0.296-63.220Q-0.325-63.195-0.345-63.195L-0.442-63.195Q-0.481-63.195-0.497-63.226L-3.060-66.769Q-3.075-66.793-3.085-66.806Q-3.095-66.820-3.106-66.836L-3.106-63.949Q-3.106-63.425-2.532-63.425",[1337],[1321,5537,5538],{"transform":5435},[1326,5539],{"d":5540,"fill":1323,"stroke":1323,"className":5541,"style":2519},"M10.487-65.011L4.143-65.011Q4.069-65.011 4.018-65.068Q3.968-65.125 3.968-65.195Q3.968-65.265 4.015-65.322Q4.061-65.379 4.143-65.379L10.487-65.379Q10.034-65.707 9.737-66.174Q9.440-66.640 9.335-67.179Q9.335-67.281 9.433-67.308L9.600-67.308Q9.683-67.289 9.702-67.203Q9.831-66.527 10.311-66.009Q10.792-65.492 11.456-65.300Q11.518-65.277 11.518-65.195Q11.518-65.113 11.456-65.090Q10.792-64.902 10.311-64.382Q9.831-63.863 9.702-63.187Q9.683-63.101 9.600-63.082L9.433-63.082Q9.335-63.109 9.335-63.211Q9.409-63.578 9.567-63.910Q9.725-64.242 9.958-64.519Q10.190-64.797 10.487-65.011",[1337],[1321,5543,5544],{"transform":5435},[1326,5545],{"d":5546,"fill":1323,"stroke":1323,"className":5547,"style":2519},"M16.165-62.250L16.165-64.187Q16.165-64.465 15.993-64.666Q15.821-64.867 15.559-64.966Q15.297-65.066 15.028-65.066Q15.001-65.066 14.971-65.095Q14.942-65.125 14.942-65.156L14.942-65.234Q14.942-65.265 14.971-65.295Q15.001-65.324 15.028-65.324Q15.458-65.324 15.811-65.558Q16.165-65.793 16.165-66.203L16.165-68.140Q16.165-68.433 16.325-68.642Q16.485-68.851 16.735-68.970Q16.985-69.090 17.270-69.142Q17.555-69.195 17.844-69.195L17.922-69.195Q17.950-69.195 17.981-69.164Q18.012-69.132 18.012-69.105L18.012-69.027Q18.012-68.996 17.983-68.966Q17.954-68.937 17.922-68.937Q17.669-68.937 17.403-68.849Q17.137-68.761 16.967-68.578Q16.797-68.394 16.797-68.125L16.797-66.187Q16.797-65.925 16.667-65.728Q16.536-65.531 16.321-65.398Q16.106-65.265 15.852-65.195Q16.247-65.090 16.522-64.838Q16.797-64.586 16.797-64.203L16.797-62.265Q16.797-61.996 16.967-61.812Q17.137-61.629 17.401-61.541Q17.665-61.453 17.922-61.453Q17.954-61.453 17.983-61.424Q18.012-61.394 18.012-61.363L18.012-61.285Q18.012-61.258 17.981-61.226Q17.950-61.195 17.922-61.195L17.844-61.195Q17.586-61.195 17.295-61.246Q17.004-61.297 16.743-61.420Q16.481-61.543 16.323-61.754Q16.165-61.965 16.165-62.250",[1337],[1321,5549,5550],{"transform":5435},[1326,5551],{"d":5552,"fill":1323,"stroke":1323,"className":5553,"style":2519},"M20.110-63.117Q19.754-63.117 19.485-63.297Q19.215-63.476 19.075-63.771Q18.934-64.066 18.934-64.425Q18.934-64.812 19.096-65.226Q19.258-65.640 19.542-65.978Q19.825-66.316 20.194-66.519Q20.563-66.722 20.965-66.722Q21.458-66.722 21.735-66.273Q21.766-66.406 21.870-66.488Q21.973-66.570 22.102-66.570Q22.215-66.570 22.295-66.500Q22.376-66.429 22.376-66.316Q22.376-66.289 22.360-66.226L21.805-64.027Q21.766-63.781 21.766-63.730Q21.766-63.371 22.012-63.371Q22.157-63.371 22.258-63.478Q22.360-63.586 22.424-63.740Q22.489-63.894 22.538-64.084Q22.586-64.273 22.606-64.371Q22.633-64.441 22.696-64.441L22.797-64.441Q22.836-64.441 22.862-64.408Q22.887-64.375 22.887-64.347Q22.887-64.332 22.879-64.316Q22.766-63.824 22.567-63.470Q22.368-63.117 21.997-63.117Q21.715-63.117 21.489-63.259Q21.262-63.402 21.180-63.660Q20.958-63.418 20.684-63.267Q20.411-63.117 20.110-63.117M20.126-63.371Q20.336-63.371 20.545-63.484Q20.754-63.597 20.924-63.771Q21.094-63.945 21.223-64.140Q21.211-64.125 21.202-64.111Q21.192-64.097 21.180-64.082L21.614-65.804Q21.575-65.984 21.489-66.134Q21.403-66.285 21.266-66.377Q21.129-66.468 20.950-66.468Q20.614-66.468 20.342-66.187Q20.071-65.906 19.911-65.531Q19.786-65.211 19.688-64.791Q19.590-64.371 19.590-64.090Q19.590-63.800 19.723-63.586Q19.856-63.371 20.126-63.371M23.942-61.789Q23.942-61.812 23.973-61.859Q24.266-62.121 24.432-62.488Q24.598-62.855 24.598-63.242L24.598-63.300Q24.469-63.195 24.301-63.195Q24.110-63.195 23.973-63.328Q23.836-63.461 23.836-63.660Q23.836-63.851 23.973-63.984Q24.110-64.117 24.301-64.117Q24.602-64.117 24.727-63.847Q24.852-63.578 24.852-63.242Q24.852-62.793 24.670-62.379Q24.489-61.965 24.149-61.668Q24.126-61.644 24.086-61.644Q24.040-61.644 23.991-61.689Q23.942-61.734 23.942-61.789",[1337],[1321,5555,5556],{"transform":5435},[1326,5557],{"d":5558,"fill":1323,"stroke":1323,"className":5559,"style":2519},"M28.403-63.117Q28.063-63.117 27.803-63.295Q27.544-63.472 27.409-63.767Q27.274-64.062 27.274-64.410Q27.274-64.672 27.340-64.929L28.090-67.957Q28.102-68.004 28.129-68.105Q28.157-68.207 28.157-68.257Q28.157-68.363 27.661-68.363Q27.563-68.394 27.563-68.492L27.587-68.593Q27.594-68.640 27.676-68.660L28.778-68.746Q28.821-68.746 28.860-68.715Q28.899-68.683 28.899-68.629L28.325-66.308Q28.782-66.722 29.258-66.722Q29.622-66.722 29.887-66.543Q30.153-66.363 30.294-66.062Q30.434-65.761 30.434-65.410Q30.434-64.886 30.153-64.347Q29.872-63.808 29.405-63.463Q28.938-63.117 28.403-63.117M28.419-63.371Q28.754-63.371 29.034-63.662Q29.313-63.953 29.450-64.308Q29.575-64.601 29.676-65.035Q29.778-65.468 29.778-65.746Q29.778-66.031 29.645-66.250Q29.512-66.468 29.243-66.468Q29.032-66.468 28.837-66.367Q28.641-66.265 28.481-66.109Q28.321-65.953 28.188-65.761L27.962-64.890Q27.911-64.656 27.881-64.474Q27.852-64.293 27.852-64.140Q27.852-63.840 27.993-63.605Q28.133-63.371 28.419-63.371M31.356-61.789Q31.356-61.812 31.387-61.859Q31.680-62.121 31.846-62.488Q32.012-62.855 32.012-63.242L32.012-63.300Q31.883-63.195 31.715-63.195Q31.524-63.195 31.387-63.328Q31.251-63.461 31.251-63.660Q31.251-63.851 31.387-63.984Q31.524-64.117 31.715-64.117Q32.016-64.117 32.141-63.847Q32.266-63.578 32.266-63.242Q32.266-62.793 32.085-62.379Q31.903-61.965 31.563-61.668Q31.540-61.644 31.501-61.644Q31.454-61.644 31.405-61.689Q31.356-61.734 31.356-61.789",[1337],[1321,5561,5562],{"transform":5435},[1326,5563],{"d":5564,"fill":1323,"stroke":1323,"className":5565,"style":2519},"M35.321-64.211Q35.321-63.972 35.409-63.783Q35.497-63.593 35.668-63.482Q35.840-63.371 36.075-63.371Q36.583-63.371 37.038-63.564Q37.493-63.758 37.778-64.132Q37.797-64.164 37.848-64.164Q37.899-64.164 37.946-64.113Q37.993-64.062 37.993-64.011Q37.993-63.972 37.969-63.949Q37.653-63.535 37.137-63.326Q36.622-63.117 36.055-63.117Q35.754-63.117 35.499-63.218Q35.243-63.320 35.051-63.508Q34.860-63.695 34.754-63.953Q34.649-64.211 34.649-64.500Q34.649-64.922 34.838-65.324Q35.028-65.726 35.354-66.043Q35.680-66.359 36.083-66.541Q36.485-66.722 36.907-66.722Q37.290-66.722 37.602-66.556Q37.915-66.390 37.915-66.035Q37.915-65.820 37.784-65.660Q37.653-65.500 37.442-65.500Q37.309-65.500 37.215-65.586Q37.122-65.672 37.122-65.804Q37.122-65.976 37.243-66.109Q37.364-66.242 37.528-66.265Q37.325-66.468 36.887-66.468Q36.520-66.468 36.223-66.250Q35.926-66.031 35.725-65.679Q35.524-65.328 35.422-64.929Q35.321-64.531 35.321-64.211",[1337],[1321,5567,5568],{"transform":5435},[1326,5569],{"d":5570,"fill":1323,"stroke":1323,"className":5571,"style":2519},"M38.581-61.285L38.581-61.363Q38.581-61.394 38.610-61.424Q38.640-61.453 38.667-61.453Q39.097-61.453 39.450-61.662Q39.804-61.871 39.804-62.265L39.804-64.203Q39.804-64.582 40.075-64.836Q40.347-65.090 40.749-65.195Q40.339-65.308 40.071-65.558Q39.804-65.808 39.804-66.187L39.804-68.125Q39.804-68.527 39.450-68.732Q39.097-68.937 38.667-68.937Q38.640-68.937 38.610-68.966Q38.581-68.996 38.581-69.027L38.581-69.105Q38.581-69.132 38.612-69.164Q38.643-69.195 38.667-69.195L38.749-69.195Q39.132-69.195 39.516-69.097Q39.901-69 40.169-68.761Q40.436-68.523 40.436-68.140L40.436-66.203Q40.436-65.789 40.784-65.556Q41.132-65.324 41.561-65.324Q41.593-65.324 41.622-65.295Q41.651-65.265 41.651-65.234L41.651-65.156Q41.651-65.125 41.622-65.095Q41.593-65.066 41.561-65.066Q41.132-65.066 40.784-64.834Q40.436-64.601 40.436-64.187L40.436-62.250Q40.436-61.867 40.169-61.629Q39.901-61.390 39.516-61.293Q39.132-61.195 38.749-61.195L38.667-61.195Q38.643-61.195 38.612-61.226Q38.581-61.258 38.581-61.285",[1337],[1321,5573,5574],{"transform":5435},[1326,5575],{"d":5576,"fill":1323,"stroke":1323,"className":5577,"style":2519},"M-53.636-51.750L-53.636-53.687Q-53.636-53.965-53.808-54.166Q-53.980-54.367-54.242-54.466Q-54.504-54.566-54.773-54.566Q-54.800-54.566-54.830-54.595Q-54.859-54.625-54.859-54.656L-54.859-54.734Q-54.859-54.765-54.830-54.795Q-54.800-54.824-54.773-54.824Q-54.343-54.824-53.990-55.058Q-53.636-55.293-53.636-55.703L-53.636-57.640Q-53.636-57.933-53.476-58.142Q-53.316-58.351-53.066-58.470Q-52.816-58.590-52.531-58.642Q-52.246-58.695-51.957-58.695L-51.879-58.695Q-51.851-58.695-51.820-58.664Q-51.789-58.633-51.789-58.605L-51.789-58.527Q-51.789-58.496-51.818-58.466Q-51.847-58.437-51.879-58.437Q-52.133-58.437-52.398-58.349Q-52.664-58.261-52.834-58.078Q-53.004-57.894-53.004-57.625L-53.004-55.687Q-53.004-55.425-53.134-55.228Q-53.265-55.031-53.480-54.898Q-53.695-54.765-53.949-54.695Q-53.554-54.590-53.279-54.338Q-53.004-54.086-53.004-53.703L-53.004-51.765Q-53.004-51.496-52.834-51.312Q-52.664-51.129-52.400-51.041Q-52.136-50.953-51.879-50.953Q-51.847-50.953-51.818-50.924Q-51.789-50.894-51.789-50.863L-51.789-50.785Q-51.789-50.758-51.820-50.726Q-51.851-50.695-51.879-50.695L-51.957-50.695Q-52.215-50.695-52.506-50.746Q-52.797-50.797-53.058-50.920Q-53.320-51.043-53.478-51.254Q-53.636-51.465-53.636-51.750",[1337],[1321,5579,5580],{"transform":5435},[1326,5581],{"d":5582,"fill":1323,"stroke":1323,"className":5583,"style":2519},"M-49.691-52.617Q-50.031-52.617-50.291-52.795Q-50.550-52.972-50.685-53.267Q-50.820-53.562-50.820-53.910Q-50.820-54.172-50.754-54.429L-50.004-57.457Q-49.992-57.504-49.965-57.605Q-49.937-57.707-49.937-57.758Q-49.937-57.863-50.433-57.863Q-50.531-57.894-50.531-57.992L-50.508-58.093Q-50.500-58.140-50.418-58.160L-49.316-58.246Q-49.273-58.246-49.234-58.215Q-49.195-58.183-49.195-58.129L-49.769-55.808Q-49.312-56.222-48.836-56.222Q-48.472-56.222-48.207-56.043Q-47.941-55.863-47.800-55.562Q-47.660-55.261-47.660-54.910Q-47.660-54.386-47.941-53.847Q-48.222-53.308-48.689-52.963Q-49.156-52.617-49.691-52.617M-49.675-52.871Q-49.340-52.871-49.060-53.162Q-48.781-53.453-48.644-53.808Q-48.519-54.101-48.418-54.535Q-48.316-54.968-48.316-55.246Q-48.316-55.531-48.449-55.750Q-48.582-55.968-48.851-55.968Q-49.062-55.968-49.258-55.867Q-49.453-55.765-49.613-55.609Q-49.773-55.453-49.906-55.261L-50.133-54.390Q-50.183-54.156-50.213-53.974Q-50.242-53.793-50.242-53.640Q-50.242-53.340-50.101-53.105Q-49.961-52.871-49.675-52.871M-46.738-51.289Q-46.738-51.312-46.707-51.359Q-46.414-51.621-46.248-51.988Q-46.082-52.355-46.082-52.742L-46.082-52.800Q-46.211-52.695-46.379-52.695Q-46.570-52.695-46.707-52.828Q-46.843-52.961-46.843-53.160Q-46.843-53.351-46.707-53.484Q-46.570-53.617-46.379-53.617Q-46.078-53.617-45.953-53.347Q-45.828-53.078-45.828-52.742Q-45.828-52.293-46.009-51.879Q-46.191-51.465-46.531-51.168Q-46.554-51.144-46.593-51.144Q-46.640-51.144-46.689-51.189Q-46.738-51.234-46.738-51.289",[1337],[1321,5585,5586],{"transform":5435},[1326,5587],{"d":5588,"fill":1323,"stroke":1323,"className":5589,"style":2519},"M-42.277-52.617Q-42.633-52.617-42.902-52.797Q-43.172-52.976-43.312-53.271Q-43.453-53.566-43.453-53.925Q-43.453-54.312-43.291-54.726Q-43.129-55.140-42.845-55.478Q-42.562-55.816-42.193-56.019Q-41.824-56.222-41.422-56.222Q-40.929-56.222-40.652-55.773L-40.215-57.543Q-40.172-57.707-40.172-57.758Q-40.172-57.863-40.668-57.863Q-40.765-57.894-40.765-57.992L-40.742-58.093Q-40.711-58.148-40.652-58.160L-39.551-58.246Q-39.508-58.246-39.468-58.215Q-39.429-58.183-39.429-58.129L-40.582-53.527Q-40.621-53.281-40.621-53.230Q-40.621-52.871-40.375-52.871Q-40.230-52.871-40.129-52.978Q-40.027-53.086-39.963-53.240Q-39.898-53.394-39.849-53.584Q-39.801-53.773-39.781-53.871Q-39.754-53.941-39.691-53.941L-39.590-53.941Q-39.551-53.941-39.525-53.908Q-39.500-53.875-39.500-53.847Q-39.500-53.832-39.508-53.816Q-39.621-53.324-39.820-52.970Q-40.019-52.617-40.390-52.617Q-40.672-52.617-40.898-52.759Q-41.125-52.902-41.207-53.160Q-41.429-52.918-41.703-52.767Q-41.976-52.617-42.277-52.617M-42.261-52.871Q-42.051-52.871-41.842-52.984Q-41.633-53.097-41.463-53.271Q-41.293-53.445-41.164-53.640Q-41.176-53.625-41.185-53.611Q-41.195-53.597-41.207-53.582L-40.773-55.304Q-40.812-55.484-40.898-55.634Q-40.984-55.785-41.121-55.877Q-41.258-55.968-41.437-55.968Q-41.773-55.968-42.045-55.687Q-42.316-55.406-42.476-55.031Q-42.601-54.711-42.699-54.291Q-42.797-53.871-42.797-53.590Q-42.797-53.300-42.664-53.086Q-42.531-52.871-42.261-52.871",[1337],[1321,5591,5592],{"transform":5435},[1326,5593],{"d":5594,"fill":1323,"stroke":1323,"className":5595,"style":2519},"M-38.821-50.785L-38.821-50.863Q-38.821-50.894-38.792-50.924Q-38.762-50.953-38.735-50.953Q-38.305-50.953-37.952-51.162Q-37.598-51.371-37.598-51.765L-37.598-53.703Q-37.598-54.082-37.327-54.336Q-37.055-54.590-36.653-54.695Q-37.063-54.808-37.331-55.058Q-37.598-55.308-37.598-55.687L-37.598-57.625Q-37.598-58.027-37.952-58.232Q-38.305-58.437-38.735-58.437Q-38.762-58.437-38.792-58.466Q-38.821-58.496-38.821-58.527L-38.821-58.605Q-38.821-58.633-38.790-58.664Q-38.759-58.695-38.735-58.695L-38.653-58.695Q-38.270-58.695-37.886-58.597Q-37.501-58.500-37.233-58.261Q-36.966-58.023-36.966-57.640L-36.966-55.703Q-36.966-55.289-36.618-55.056Q-36.270-54.824-35.841-54.824Q-35.809-54.824-35.780-54.795Q-35.751-54.765-35.751-54.734L-35.751-54.656Q-35.751-54.625-35.780-54.595Q-35.809-54.566-35.841-54.566Q-36.270-54.566-36.618-54.334Q-36.966-54.101-36.966-53.687L-36.966-51.750Q-36.966-51.367-37.233-51.129Q-37.501-50.890-37.886-50.793Q-38.270-50.695-38.653-50.695L-38.735-50.695Q-38.759-50.695-38.790-50.726Q-38.821-50.758-38.821-50.785",[1337],[1321,5597,5598],{"transform":5435},[1326,5599],{"d":5600,"fill":1323,"stroke":1323,"className":5601,"style":2519},"M-32.947-53.328Q-32.756-53.054-32.400-52.927Q-32.045-52.800-31.662-52.800Q-31.326-52.800-31.117-52.986Q-30.908-53.172-30.812-53.465Q-30.717-53.758-30.717-54.070Q-30.717-54.394-30.814-54.689Q-30.912-54.984-31.125-55.168Q-31.338-55.351-31.670-55.351L-32.236-55.351Q-32.267-55.351-32.297-55.381Q-32.326-55.410-32.326-55.437L-32.326-55.519Q-32.326-55.554-32.297-55.580Q-32.267-55.605-32.236-55.605L-31.756-55.640Q-31.470-55.640-31.273-55.845Q-31.076-56.050-30.980-56.345Q-30.885-56.640-30.885-56.918Q-30.885-57.297-31.084-57.535Q-31.283-57.773-31.662-57.773Q-31.982-57.773-32.271-57.666Q-32.560-57.558-32.724-57.336Q-32.545-57.336-32.422-57.209Q-32.299-57.082-32.299-56.910Q-32.299-56.738-32.424-56.613Q-32.549-56.488-32.724-56.488Q-32.896-56.488-33.021-56.613Q-33.146-56.738-33.146-56.910Q-33.146-57.277-32.922-57.525Q-32.697-57.773-32.357-57.894Q-32.017-58.015-31.662-58.015Q-31.314-58.015-30.951-57.894Q-30.588-57.773-30.340-57.523Q-30.092-57.273-30.092-56.918Q-30.092-56.433-30.410-56.050Q-30.728-55.668-31.205-55.496Q-30.654-55.386-30.254-55Q-29.853-54.613-29.853-54.078Q-29.853-53.621-30.117-53.265Q-30.381-52.910-30.803-52.718Q-31.224-52.527-31.662-52.527Q-32.072-52.527-32.465-52.662Q-32.857-52.797-33.123-53.082Q-33.388-53.367-33.388-53.785Q-33.388-53.980-33.256-54.109Q-33.123-54.238-32.931-54.238Q-32.806-54.238-32.703-54.179Q-32.599-54.121-32.537-54.015Q-32.474-53.910-32.474-53.785Q-32.474-53.590-32.609-53.459Q-32.744-53.328-32.947-53.328M-28.775-53.160Q-28.775-53.343-28.638-53.480Q-28.502-53.617-28.310-53.617Q-28.119-53.617-27.986-53.484Q-27.853-53.351-27.853-53.160Q-27.853-52.961-27.986-52.828Q-28.119-52.695-28.310-52.695Q-28.502-52.695-28.638-52.832Q-28.775-52.968-28.775-53.160M-28.775-55.687Q-28.775-55.871-28.638-56.008Q-28.502-56.144-28.310-56.144Q-28.119-56.144-27.986-56.011Q-27.853-55.879-27.853-55.687Q-27.853-55.488-27.986-55.355Q-28.119-55.222-28.310-55.222Q-28.502-55.222-28.638-55.359Q-28.775-55.496-28.775-55.687",[1337],[1321,5603,5604],{"transform":5435},[1326,5605],{"d":5606,"fill":1323,"stroke":1323,"className":5607,"style":2519},"M-22.105-54.504L-22.105-57.625Q-22.105-57.879-22.925-57.879L-22.925-58.160L-20.535-58.160L-20.535-57.879Q-21.359-57.879-21.359-57.625L-21.359-54.535Q-21.359-53.793-21.027-53.297Q-20.695-52.800-19.984-52.800Q-19.519-52.800-19.148-53.037Q-18.777-53.273-18.576-53.670Q-18.374-54.066-18.374-54.535L-18.374-57.406Q-18.374-57.879-19.199-57.879L-19.199-58.160L-17.273-58.160L-17.273-57.879Q-18.093-57.879-18.093-57.406L-18.093-54.504Q-18.093-53.984-18.343-53.525Q-18.593-53.066-19.027-52.793Q-19.460-52.519-19.984-52.519Q-20.523-52.519-21.015-52.777Q-21.507-53.035-21.806-53.492Q-22.105-53.949-22.105-54.504M-15.113-52.695L-16.519-52.695L-16.519-52.925Q-15.945-52.925-15.945-53.449L-15.945-56.527Q-16.085-56.574-16.519-56.574L-16.519-56.808L-15.398-56.808Q-15.363-56.808-15.335-56.773L-13.105-53.679L-13.105-56.054Q-13.105-56.574-13.679-56.574L-13.679-56.808L-12.273-56.808L-12.273-56.574Q-12.847-56.574-12.847-56.054L-12.847-52.765Q-12.847-52.746-12.876-52.720Q-12.906-52.695-12.925-52.695L-13.023-52.695Q-13.062-52.695-13.078-52.726L-15.640-56.269Q-15.656-56.293-15.665-56.306Q-15.675-56.320-15.687-56.336L-15.687-53.449Q-15.687-52.925-15.113-52.925L-15.113-52.695M-9.824-52.695L-11.648-52.695L-11.648-52.925Q-11.456-52.925-11.333-52.941Q-11.210-52.957-11.126-53.023Q-11.042-53.090-11.042-53.230L-11.042-56.269Q-11.042-56.476-11.201-56.525Q-11.359-56.574-11.648-56.574L-11.648-56.808L-9.824-56.808L-9.824-56.574Q-10.117-56.574-10.275-56.525Q-10.433-56.476-10.433-56.269L-10.433-53.230Q-10.433-53.090-10.349-53.023Q-10.265-52.957-10.140-52.941Q-10.015-52.925-9.824-52.925L-9.824-52.695M-6.988-52.582Q-7.566-52.582-8.058-52.873Q-8.550-53.164-8.837-53.658Q-9.124-54.152-9.124-54.726Q-9.124-55.164-8.960-55.564Q-8.796-55.965-8.505-56.267Q-8.214-56.570-7.822-56.744Q-7.429-56.918-6.988-56.918Q-6.542-56.918-6.148-56.744Q-5.753-56.570-5.462-56.263Q-5.171-55.957-5.011-55.560Q-4.851-55.164-4.851-54.726Q-4.851-54.289-5.017-53.900Q-5.183-53.511-5.476-53.215Q-5.769-52.918-6.163-52.750Q-6.558-52.582-6.988-52.582M-6.988-52.824Q-6.492-52.824-6.171-53.127Q-5.851-53.429-5.710-53.890Q-5.570-54.351-5.570-54.832Q-5.570-55.304-5.720-55.728Q-5.871-56.152-6.193-56.420Q-6.515-56.687-6.988-56.687Q-7.460-56.687-7.783-56.418Q-8.105-56.148-8.253-55.726Q-8.402-55.304-8.402-54.832Q-8.402-54.351-8.261-53.890Q-8.121-53.429-7.804-53.127Q-7.488-52.824-6.988-52.824M-2.718-52.695L-4.124-52.695L-4.124-52.925Q-3.550-52.925-3.550-53.449L-3.550-56.527Q-3.691-56.574-4.124-56.574L-4.124-56.808L-3.003-56.808Q-2.968-56.808-2.941-56.773L-0.710-53.679L-0.710-56.054Q-0.710-56.574-1.285-56.574L-1.285-56.808L0.122-56.808L0.122-56.574Q-0.453-56.574-0.453-56.054L-0.453-52.765Q-0.453-52.746-0.482-52.720Q-0.511-52.695-0.531-52.695L-0.628-52.695Q-0.667-52.695-0.683-52.726L-3.246-56.269Q-3.261-56.293-3.271-56.306Q-3.281-56.320-3.292-56.336L-3.292-53.449Q-3.292-52.925-2.718-52.925",[1337],[1321,5609,5610],{"transform":5435},[1326,5611],{"d":5612,"fill":1323,"stroke":1323,"className":5613,"style":2519},"M10.301-54.511L3.957-54.511Q3.883-54.511 3.832-54.568Q3.782-54.625 3.782-54.695Q3.782-54.765 3.829-54.822Q3.875-54.879 3.957-54.879L10.301-54.879Q9.848-55.207 9.551-55.674Q9.254-56.140 9.149-56.679Q9.149-56.781 9.247-56.808L9.414-56.808Q9.497-56.789 9.516-56.703Q9.645-56.027 10.125-55.509Q10.606-54.992 11.270-54.800Q11.332-54.777 11.332-54.695Q11.332-54.613 11.270-54.590Q10.606-54.402 10.125-53.883Q9.645-53.363 9.516-52.687Q9.497-52.601 9.414-52.582L9.247-52.582Q9.149-52.609 9.149-52.711Q9.223-53.078 9.381-53.410Q9.539-53.742 9.772-54.019Q10.004-54.297 10.301-54.511",[1337],[1321,5615,5616],{"transform":5435},[1326,5617],{"d":5618,"fill":1323,"stroke":1323,"className":5619,"style":2519},"M15.979-51.750L15.979-53.687Q15.979-53.965 15.807-54.166Q15.635-54.367 15.373-54.466Q15.111-54.566 14.842-54.566Q14.815-54.566 14.785-54.595Q14.756-54.625 14.756-54.656L14.756-54.734Q14.756-54.765 14.785-54.795Q14.815-54.824 14.842-54.824Q15.272-54.824 15.625-55.058Q15.979-55.293 15.979-55.703L15.979-57.640Q15.979-57.933 16.139-58.142Q16.299-58.351 16.549-58.470Q16.799-58.590 17.084-58.642Q17.369-58.695 17.658-58.695L17.736-58.695Q17.764-58.695 17.795-58.664Q17.826-58.633 17.826-58.605L17.826-58.527Q17.826-58.496 17.797-58.466Q17.768-58.437 17.736-58.437Q17.483-58.437 17.217-58.349Q16.951-58.261 16.781-58.078Q16.611-57.894 16.611-57.625L16.611-55.687Q16.611-55.425 16.481-55.228Q16.350-55.031 16.135-54.898Q15.920-54.765 15.666-54.695Q16.061-54.590 16.336-54.338Q16.611-54.086 16.611-53.703L16.611-51.765Q16.611-51.496 16.781-51.312Q16.951-51.129 17.215-51.041Q17.479-50.953 17.736-50.953Q17.768-50.953 17.797-50.924Q17.826-50.894 17.826-50.863L17.826-50.785Q17.826-50.758 17.795-50.726Q17.764-50.695 17.736-50.695L17.658-50.695Q17.400-50.695 17.109-50.746Q16.818-50.797 16.557-50.920Q16.295-51.043 16.137-51.254Q15.979-51.465 15.979-51.750",[1337],[1321,5621,5622],{"transform":5435},[1326,5623],{"d":5624,"fill":1323,"stroke":1323,"className":5625,"style":2519},"M19.924-52.617Q19.568-52.617 19.299-52.797Q19.029-52.976 18.889-53.271Q18.748-53.566 18.748-53.925Q18.748-54.312 18.910-54.726Q19.072-55.140 19.356-55.478Q19.639-55.816 20.008-56.019Q20.377-56.222 20.779-56.222Q21.272-56.222 21.549-55.773Q21.580-55.906 21.684-55.988Q21.787-56.070 21.916-56.070Q22.029-56.070 22.109-56Q22.190-55.929 22.190-55.816Q22.190-55.789 22.174-55.726L21.619-53.527Q21.580-53.281 21.580-53.230Q21.580-52.871 21.826-52.871Q21.971-52.871 22.072-52.978Q22.174-53.086 22.238-53.240Q22.303-53.394 22.352-53.584Q22.400-53.773 22.420-53.871Q22.447-53.941 22.510-53.941L22.611-53.941Q22.650-53.941 22.676-53.908Q22.701-53.875 22.701-53.847Q22.701-53.832 22.693-53.816Q22.580-53.324 22.381-52.970Q22.182-52.617 21.811-52.617Q21.529-52.617 21.303-52.759Q21.076-52.902 20.994-53.160Q20.772-52.918 20.498-52.767Q20.225-52.617 19.924-52.617M19.940-52.871Q20.150-52.871 20.359-52.984Q20.568-53.097 20.738-53.271Q20.908-53.445 21.037-53.640Q21.025-53.625 21.016-53.611Q21.006-53.597 20.994-53.582L21.428-55.304Q21.389-55.484 21.303-55.634Q21.217-55.785 21.080-55.877Q20.943-55.968 20.764-55.968Q20.428-55.968 20.156-55.687Q19.885-55.406 19.725-55.031Q19.600-54.711 19.502-54.291Q19.404-53.871 19.404-53.590Q19.404-53.300 19.537-53.086Q19.670-52.871 19.940-52.871M23.756-51.289Q23.756-51.312 23.787-51.359Q24.080-51.621 24.246-51.988Q24.412-52.355 24.412-52.742L24.412-52.800Q24.283-52.695 24.115-52.695Q23.924-52.695 23.787-52.828Q23.650-52.961 23.650-53.160Q23.650-53.351 23.787-53.484Q23.924-53.617 24.115-53.617Q24.416-53.617 24.541-53.347Q24.666-53.078 24.666-52.742Q24.666-52.293 24.484-51.879Q24.303-51.465 23.963-51.168Q23.940-51.144 23.900-51.144Q23.854-51.144 23.805-51.189Q23.756-51.234 23.756-51.289",[1337],[1321,5627,5628],{"transform":5435},[1326,5629],{"d":5630,"fill":1323,"stroke":1323,"className":5631,"style":2519},"M28.217-52.617Q27.877-52.617 27.617-52.795Q27.358-52.972 27.223-53.267Q27.088-53.562 27.088-53.910Q27.088-54.172 27.154-54.429L27.904-57.457Q27.916-57.504 27.943-57.605Q27.971-57.707 27.971-57.758Q27.971-57.863 27.475-57.863Q27.377-57.894 27.377-57.992L27.401-58.093Q27.408-58.140 27.490-58.160L28.592-58.246Q28.635-58.246 28.674-58.215Q28.713-58.183 28.713-58.129L28.139-55.808Q28.596-56.222 29.072-56.222Q29.436-56.222 29.701-56.043Q29.967-55.863 30.108-55.562Q30.248-55.261 30.248-54.910Q30.248-54.386 29.967-53.847Q29.686-53.308 29.219-52.963Q28.752-52.617 28.217-52.617M28.233-52.871Q28.568-52.871 28.848-53.162Q29.127-53.453 29.264-53.808Q29.389-54.101 29.490-54.535Q29.592-54.968 29.592-55.246Q29.592-55.531 29.459-55.750Q29.326-55.968 29.057-55.968Q28.846-55.968 28.651-55.867Q28.455-55.765 28.295-55.609Q28.135-55.453 28.002-55.261L27.776-54.390Q27.725-54.156 27.695-53.974Q27.666-53.793 27.666-53.640Q27.666-53.340 27.807-53.105Q27.947-52.871 28.233-52.871M31.170-51.289Q31.170-51.312 31.201-51.359Q31.494-51.621 31.660-51.988Q31.826-52.355 31.826-52.742L31.826-52.800Q31.697-52.695 31.529-52.695Q31.338-52.695 31.201-52.828Q31.065-52.961 31.065-53.160Q31.065-53.351 31.201-53.484Q31.338-53.617 31.529-53.617Q31.830-53.617 31.955-53.347Q32.080-53.078 32.080-52.742Q32.080-52.293 31.899-51.879Q31.717-51.465 31.377-51.168Q31.354-51.144 31.315-51.144Q31.268-51.144 31.219-51.189Q31.170-51.234 31.170-51.289",[1337],[1321,5633,5634],{"transform":5435},[1326,5635],{"d":5636,"fill":1323,"stroke":1323,"className":5637,"style":2519},"M35.135-53.711Q35.135-53.472 35.223-53.283Q35.311-53.093 35.482-52.982Q35.654-52.871 35.889-52.871Q36.397-52.871 36.852-53.064Q37.307-53.258 37.592-53.633Q37.611-53.664 37.662-53.664Q37.713-53.664 37.760-53.613Q37.807-53.562 37.807-53.511Q37.807-53.472 37.783-53.449Q37.467-53.035 36.951-52.826Q36.436-52.617 35.869-52.617Q35.568-52.617 35.313-52.718Q35.057-52.820 34.865-53.008Q34.674-53.195 34.568-53.453Q34.463-53.711 34.463-54Q34.463-54.422 34.652-54.824Q34.842-55.226 35.168-55.543Q35.494-55.859 35.897-56.041Q36.299-56.222 36.721-56.222Q37.104-56.222 37.416-56.056Q37.729-55.890 37.729-55.535Q37.729-55.320 37.598-55.160Q37.467-55 37.256-55Q37.123-55 37.029-55.086Q36.936-55.172 36.936-55.304Q36.936-55.476 37.057-55.609Q37.178-55.742 37.342-55.765Q37.139-55.968 36.701-55.968Q36.334-55.968 36.037-55.750Q35.740-55.531 35.539-55.179Q35.338-54.828 35.236-54.429Q35.135-54.031 35.135-53.711M38.631-51.289Q38.631-51.312 38.662-51.359Q38.955-51.621 39.121-51.988Q39.287-52.355 39.287-52.742L39.287-52.800Q39.158-52.695 38.990-52.695Q38.799-52.695 38.662-52.828Q38.525-52.961 38.525-53.160Q38.525-53.351 38.662-53.484Q38.799-53.617 38.990-53.617Q39.291-53.617 39.416-53.347Q39.541-53.078 39.541-52.742Q39.541-52.293 39.359-51.879Q39.178-51.465 38.838-51.168Q38.815-51.144 38.775-51.144Q38.729-51.144 38.680-51.189Q38.631-51.234 38.631-51.289",[1337],[1321,5639,5640],{"transform":5435},[1326,5641],{"d":5642,"fill":1323,"stroke":1323,"className":5643,"style":2519},"M43.090-52.617Q42.734-52.617 42.465-52.797Q42.195-52.976 42.055-53.271Q41.914-53.566 41.914-53.925Q41.914-54.312 42.076-54.726Q42.238-55.140 42.522-55.478Q42.805-55.816 43.174-56.019Q43.543-56.222 43.945-56.222Q44.438-56.222 44.715-55.773L45.152-57.543Q45.195-57.707 45.195-57.758Q45.195-57.863 44.699-57.863Q44.602-57.894 44.602-57.992L44.625-58.093Q44.656-58.148 44.715-58.160L45.816-58.246Q45.859-58.246 45.898-58.215Q45.938-58.183 45.938-58.129L44.785-53.527Q44.746-53.281 44.746-53.230Q44.746-52.871 44.992-52.871Q45.137-52.871 45.238-52.978Q45.340-53.086 45.404-53.240Q45.469-53.394 45.518-53.584Q45.566-53.773 45.586-53.871Q45.613-53.941 45.676-53.941L45.777-53.941Q45.816-53.941 45.842-53.908Q45.867-53.875 45.867-53.847Q45.867-53.832 45.859-53.816Q45.746-53.324 45.547-52.970Q45.348-52.617 44.977-52.617Q44.695-52.617 44.469-52.759Q44.242-52.902 44.160-53.160Q43.938-52.918 43.664-52.767Q43.391-52.617 43.090-52.617M43.106-52.871Q43.316-52.871 43.525-52.984Q43.734-53.097 43.904-53.271Q44.074-53.445 44.203-53.640Q44.191-53.625 44.182-53.611Q44.172-53.597 44.160-53.582L44.594-55.304Q44.555-55.484 44.469-55.634Q44.383-55.785 44.246-55.877Q44.109-55.968 43.930-55.968Q43.594-55.968 43.322-55.687Q43.051-55.406 42.891-55.031Q42.766-54.711 42.668-54.291Q42.570-53.871 42.570-53.590Q42.570-53.300 42.703-53.086Q42.836-52.871 43.106-52.871",[1337],[1321,5645,5646],{"transform":5435},[1326,5647],{"d":5648,"fill":1323,"stroke":1323,"className":5649,"style":2519},"M46.546-50.785L46.546-50.863Q46.546-50.894 46.575-50.924Q46.605-50.953 46.632-50.953Q47.062-50.953 47.415-51.162Q47.769-51.371 47.769-51.765L47.769-53.703Q47.769-54.082 48.040-54.336Q48.312-54.590 48.714-54.695Q48.304-54.808 48.036-55.058Q47.769-55.308 47.769-55.687L47.769-57.625Q47.769-58.027 47.415-58.232Q47.062-58.437 46.632-58.437Q46.605-58.437 46.575-58.466Q46.546-58.496 46.546-58.527L46.546-58.605Q46.546-58.633 46.577-58.664Q46.608-58.695 46.632-58.695L46.714-58.695Q47.097-58.695 47.481-58.597Q47.866-58.500 48.134-58.261Q48.401-58.023 48.401-57.640L48.401-55.703Q48.401-55.289 48.749-55.056Q49.097-54.824 49.526-54.824Q49.558-54.824 49.587-54.795Q49.616-54.765 49.616-54.734L49.616-54.656Q49.616-54.625 49.587-54.595Q49.558-54.566 49.526-54.566Q49.097-54.566 48.749-54.334Q48.401-54.101 48.401-53.687L48.401-51.750Q48.401-51.367 48.134-51.129Q47.866-50.890 47.481-50.793Q47.097-50.695 46.714-50.695L46.632-50.695Q46.608-50.695 46.577-50.726Q46.546-50.758 46.546-50.785",[1337],[1321,5651,5652],{"transform":5435},[1326,5653],{"d":5393,"fill":1323,"stroke":1323,"className":5654,"style":2519},[1337],[1321,5656,5657],{"transform":5435},[1326,5658],{"d":5399,"fill":1323,"stroke":1323,"className":5659,"style":2519},[1337],[1321,5661,5662],{"transform":5435},[1326,5663],{"d":5405,"fill":1323,"stroke":1323,"className":5664,"style":2519},[1337],[1321,5666,5667],{"transform":5435},[1326,5668],{"d":5411,"fill":1323,"stroke":1323,"className":5669,"style":2519},[1337],[1321,5671,5672],{"transform":5435},[1326,5673],{"d":5674,"fill":1323,"stroke":1323,"className":5675,"style":2519},"M-31.953-43.508L-34.195-43.508L-34.195-43.804L-31.624-47.461Q-31.585-47.515-31.523-47.515L-31.378-47.515Q-31.328-47.515-31.296-47.484Q-31.265-47.453-31.265-47.402L-31.265-43.804L-30.433-43.804L-30.433-43.508L-31.265-43.508L-31.265-42.754Q-31.265-42.492-30.441-42.492L-30.441-42.195L-32.777-42.195L-32.777-42.492Q-31.953-42.492-31.953-42.754L-31.953-43.508M-31.898-46.609L-33.867-43.804L-31.898-43.804L-31.898-46.609M-29.468-42.660Q-29.468-42.843-29.331-42.980Q-29.195-43.117-29.003-43.117Q-28.812-43.117-28.679-42.984Q-28.546-42.851-28.546-42.660Q-28.546-42.461-28.679-42.328Q-28.812-42.195-29.003-42.195Q-29.195-42.195-29.331-42.332Q-29.468-42.468-29.468-42.660M-29.468-45.187Q-29.468-45.371-29.331-45.508Q-29.195-45.644-29.003-45.644Q-28.812-45.644-28.679-45.511Q-28.546-45.379-28.546-45.187Q-28.546-44.988-28.679-44.855Q-28.812-44.722-29.003-44.722Q-29.195-44.722-29.331-44.859Q-29.468-44.996-29.468-45.187",[1337],[1321,5677,5678],{"transform":5435},[1326,5679],{"d":5680,"fill":1323,"stroke":1323,"className":5681,"style":2519},"M-21.028-42.195L-23.618-42.195L-23.618-42.476Q-22.798-42.476-22.798-42.730L-22.798-47.125Q-22.798-47.379-23.618-47.379L-23.618-47.660L-19.044-47.660L-18.821-45.828L-19.052-45.828Q-19.114-46.355-19.216-46.648Q-19.317-46.941-19.501-47.099Q-19.685-47.258-19.989-47.318Q-20.294-47.379-20.837-47.379L-21.646-47.379Q-21.790-47.379-21.870-47.367Q-21.950-47.355-22.001-47.299Q-22.052-47.242-22.052-47.125L-22.052-45.066L-21.435-45.066Q-21.013-45.066-20.814-45.133Q-20.614-45.199-20.532-45.398Q-20.450-45.597-20.450-46.004L-20.220-46.004L-20.220-43.851L-20.450-43.851Q-20.450-44.258-20.532-44.457Q-20.614-44.656-20.814-44.722Q-21.013-44.789-21.435-44.789L-22.052-44.789L-22.052-42.730Q-22.052-42.476-21.028-42.476L-21.028-42.195M-16.228-42.195L-18.052-42.195L-18.052-42.425Q-17.860-42.425-17.737-42.441Q-17.614-42.457-17.530-42.523Q-17.446-42.590-17.446-42.730L-17.446-45.769Q-17.446-45.976-17.605-46.025Q-17.763-46.074-18.052-46.074L-18.052-46.308L-16.228-46.308L-16.228-46.074Q-16.521-46.074-16.679-46.025Q-16.837-45.976-16.837-45.769L-16.837-42.730Q-16.837-42.590-16.753-42.523Q-16.669-42.457-16.544-42.441Q-16.419-42.425-16.228-42.425L-16.228-42.195M-14.200-42.195L-15.607-42.195L-15.607-42.425Q-15.032-42.425-15.032-42.949L-15.032-46.027Q-15.173-46.074-15.607-46.074L-15.607-46.308L-14.485-46.308Q-14.450-46.308-14.423-46.273L-12.192-43.179L-12.192-45.554Q-12.192-46.074-12.767-46.074L-12.767-46.308L-11.360-46.308L-11.360-46.074Q-11.935-46.074-11.935-45.554L-11.935-42.265Q-11.935-42.246-11.964-42.220Q-11.993-42.195-12.013-42.195L-12.110-42.195Q-12.149-42.195-12.165-42.226L-14.728-45.769Q-14.743-45.793-14.753-45.806Q-14.763-45.820-14.774-45.836L-14.774-42.949Q-14.774-42.425-14.200-42.425L-14.200-42.195M-8.399-42.195L-10.689-42.195L-10.689-42.425Q-10.501-42.425-10.384-42.441Q-10.267-42.457-10.189-42.523Q-10.110-42.590-10.110-42.730L-10.110-45.769Q-10.110-45.976-10.257-46.025Q-10.403-46.074-10.689-46.074L-10.689-46.308L-8.399-46.308Q-7.985-46.308-7.626-46.138Q-7.267-45.968-7.005-45.677Q-6.743-45.386-6.595-45.006Q-6.446-44.625-6.446-44.211Q-6.446-43.679-6.708-43.213Q-6.970-42.746-7.417-42.470Q-7.864-42.195-8.399-42.195M-9.239-42.425L-8.583-42.425Q-7.814-42.425-7.480-42.916Q-7.146-43.406-7.146-44.211Q-7.146-44.597-7.216-44.927Q-7.286-45.258-7.452-45.519Q-7.618-45.781-7.896-45.927Q-8.173-46.074-8.583-46.074L-9.239-46.074Q-9.423-46.074-9.476-46.017Q-9.528-45.961-9.528-45.769L-9.528-42.730Q-9.528-42.547-9.474-42.486Q-9.419-42.425-9.239-42.425",[1337],[1321,5683,5684],{"transform":5435},[1326,5685],{"d":5686,"fill":1323,"stroke":1323,"className":5687,"style":2519},"M-1.686-42.117Q-2.026-42.117-2.286-42.295Q-2.545-42.472-2.680-42.767Q-2.815-43.062-2.815-43.410Q-2.815-43.672-2.749-43.929L-1.999-46.957Q-1.987-47.004-1.960-47.105Q-1.932-47.207-1.932-47.258Q-1.932-47.363-2.428-47.363Q-2.526-47.394-2.526-47.492L-2.502-47.593Q-2.495-47.640-2.413-47.660L-1.311-47.746Q-1.268-47.746-1.229-47.715Q-1.190-47.683-1.190-47.629L-1.764-45.308Q-1.307-45.722-0.831-45.722Q-0.467-45.722-0.202-45.543Q0.064-45.363 0.205-45.062Q0.345-44.761 0.345-44.410Q0.345-43.886 0.064-43.347Q-0.217-42.808-0.684-42.463Q-1.151-42.117-1.686-42.117M-1.670-42.371Q-1.335-42.371-1.055-42.662Q-0.776-42.953-0.639-43.308Q-0.514-43.601-0.413-44.035Q-0.311-44.468-0.311-44.746Q-0.311-45.031-0.444-45.250Q-0.577-45.468-0.846-45.468Q-1.057-45.468-1.252-45.367Q-1.448-45.265-1.608-45.109Q-1.768-44.953-1.901-44.761L-2.127-43.890Q-2.178-43.656-2.208-43.474Q-2.237-43.293-2.237-43.140Q-2.237-42.840-2.096-42.605Q-1.956-42.371-1.670-42.371",[1337],[1321,5689,5690],{"transform":5435},[1326,5691],{"d":5692,"fill":1323,"stroke":1323,"className":5693,"style":2519},"M8.768-43.172L3.455-43.172Q3.377-43.179 3.328-43.228Q3.280-43.277 3.280-43.355Q3.280-43.425 3.327-43.476Q3.373-43.527 3.455-43.539L8.768-43.539Q8.842-43.527 8.889-43.476Q8.936-43.425 8.936-43.355Q8.936-43.277 8.887-43.228Q8.838-43.179 8.768-43.172M8.768-44.859L3.455-44.859Q3.377-44.867 3.328-44.916Q3.280-44.965 3.280-45.043Q3.280-45.113 3.327-45.164Q3.373-45.215 3.455-45.226L8.768-45.226Q8.842-45.215 8.889-45.164Q8.936-45.113 8.936-45.043Q8.936-44.965 8.887-44.916Q8.838-44.867 8.768-44.859",[1337],[1321,5695,5696],{"transform":5435},[1326,5697],{"d":5698,"fill":1323,"stroke":1323,"className":5699,"style":2519},"M15.268-42.195L12.678-42.195L12.678-42.476Q13.498-42.476 13.498-42.730L13.498-47.125Q13.498-47.379 12.678-47.379L12.678-47.660L17.252-47.660L17.475-45.828L17.244-45.828Q17.182-46.355 17.080-46.648Q16.979-46.941 16.795-47.099Q16.611-47.258 16.307-47.318Q16.002-47.379 15.459-47.379L14.650-47.379Q14.506-47.379 14.426-47.367Q14.346-47.355 14.295-47.299Q14.244-47.242 14.244-47.125L14.244-45.066L14.861-45.066Q15.283-45.066 15.482-45.133Q15.682-45.199 15.764-45.398Q15.846-45.597 15.846-46.004L16.076-46.004L16.076-43.851L15.846-43.851Q15.846-44.258 15.764-44.457Q15.682-44.656 15.482-44.722Q15.283-44.789 14.861-44.789L14.244-44.789L14.244-42.730Q14.244-42.476 15.268-42.476L15.268-42.195M20.068-42.195L18.244-42.195L18.244-42.425Q18.436-42.425 18.559-42.441Q18.682-42.457 18.766-42.523Q18.850-42.590 18.850-42.730L18.850-45.769Q18.850-45.976 18.691-46.025Q18.533-46.074 18.244-46.074L18.244-46.308L20.068-46.308L20.068-46.074Q19.775-46.074 19.617-46.025Q19.459-45.976 19.459-45.769L19.459-42.730Q19.459-42.590 19.543-42.523Q19.627-42.457 19.752-42.441Q19.877-42.425 20.068-42.425L20.068-42.195M22.096-42.195L20.690-42.195L20.690-42.425Q21.264-42.425 21.264-42.949L21.264-46.027Q21.123-46.074 20.690-46.074L20.690-46.308L21.811-46.308Q21.846-46.308 21.873-46.273L24.104-43.179L24.104-45.554Q24.104-46.074 23.529-46.074L23.529-46.308L24.936-46.308L24.936-46.074Q24.361-46.074 24.361-45.554L24.361-42.265Q24.361-42.246 24.332-42.220Q24.303-42.195 24.283-42.195L24.186-42.195Q24.147-42.195 24.131-42.226L21.568-45.769Q21.553-45.793 21.543-45.806Q21.533-45.820 21.522-45.836L21.522-42.949Q21.522-42.425 22.096-42.425L22.096-42.195M27.897-42.195L25.607-42.195L25.607-42.425Q25.795-42.425 25.912-42.441Q26.029-42.457 26.107-42.523Q26.186-42.590 26.186-42.730L26.186-45.769Q26.186-45.976 26.039-46.025Q25.893-46.074 25.607-46.074L25.607-46.308L27.897-46.308Q28.311-46.308 28.670-46.138Q29.029-45.968 29.291-45.677Q29.553-45.386 29.701-45.006Q29.850-44.625 29.850-44.211Q29.850-43.679 29.588-43.213Q29.326-42.746 28.879-42.470Q28.432-42.195 27.897-42.195M27.057-42.425L27.713-42.425Q28.482-42.425 28.816-42.916Q29.150-43.406 29.150-44.211Q29.150-44.597 29.080-44.927Q29.010-45.258 28.844-45.519Q28.678-45.781 28.400-45.927Q28.123-46.074 27.713-46.074L27.057-46.074Q26.873-46.074 26.820-46.017Q26.768-45.961 26.768-45.769L26.768-42.730Q26.768-42.547 26.822-42.486Q26.877-42.425 27.057-42.425",[1337],[1321,5701,5702],{"transform":5435},[1326,5703],{"d":5704,"fill":1323,"stroke":1323,"className":5705,"style":2519},"M34.113-43.211Q34.113-42.972 34.201-42.783Q34.289-42.593 34.460-42.482Q34.632-42.371 34.867-42.371Q35.375-42.371 35.830-42.564Q36.285-42.758 36.570-43.133Q36.589-43.164 36.640-43.164Q36.691-43.164 36.738-43.113Q36.785-43.062 36.785-43.011Q36.785-42.972 36.761-42.949Q36.445-42.535 35.929-42.326Q35.414-42.117 34.847-42.117Q34.546-42.117 34.291-42.218Q34.035-42.320 33.843-42.508Q33.652-42.695 33.546-42.953Q33.441-43.211 33.441-43.500Q33.441-43.922 33.630-44.324Q33.820-44.726 34.146-45.043Q34.472-45.359 34.875-45.541Q35.277-45.722 35.699-45.722Q36.082-45.722 36.394-45.556Q36.707-45.390 36.707-45.035Q36.707-44.820 36.576-44.660Q36.445-44.500 36.234-44.500Q36.101-44.500 36.007-44.586Q35.914-44.672 35.914-44.804Q35.914-44.976 36.035-45.109Q36.156-45.242 36.320-45.265Q36.117-45.468 35.679-45.468Q35.312-45.468 35.015-45.250Q34.718-45.031 34.517-44.679Q34.316-44.328 34.214-43.929Q34.113-43.531 34.113-43.211",[1337],[1321,5707,5708],{"transform":5435},[1326,5709],{"d":5710,"fill":1323,"stroke":1323,"className":5711,"style":2519},"M48.116-44.195L39.620-44.195L39.620-44.453L48.116-44.453",[1337],[1321,5713,5714],{"transform":5435},[1326,5715],{"d":5716,"fill":1323,"stroke":1323,"className":5717,"style":2519},"M51.234-42.203L51.234-43.425Q51.234-43.453 51.266-43.484Q51.297-43.515 51.320-43.515L51.426-43.515Q51.496-43.515 51.512-43.453Q51.574-43.133 51.713-42.892Q51.851-42.652 52.084-42.511Q52.316-42.371 52.625-42.371Q52.863-42.371 53.072-42.431Q53.281-42.492 53.418-42.640Q53.555-42.789 53.555-43.035Q53.555-43.289 53.344-43.455Q53.133-43.621 52.863-43.675L52.242-43.789Q51.836-43.867 51.535-44.123Q51.234-44.379 51.234-44.754Q51.234-45.121 51.435-45.343Q51.637-45.566 51.961-45.664Q52.285-45.761 52.625-45.761Q53.090-45.761 53.387-45.554L53.609-45.738Q53.633-45.761 53.664-45.761L53.715-45.761Q53.746-45.761 53.773-45.734Q53.801-45.707 53.801-45.675L53.801-44.691Q53.801-44.660 53.775-44.631Q53.750-44.601 53.715-44.601L53.609-44.601Q53.574-44.601 53.547-44.629Q53.519-44.656 53.519-44.691Q53.519-45.090 53.267-45.310Q53.016-45.531 52.617-45.531Q52.262-45.531 51.978-45.408Q51.695-45.285 51.695-44.980Q51.695-44.761 51.896-44.629Q52.098-44.496 52.344-44.453L52.969-44.340Q53.398-44.250 53.707-43.953Q54.016-43.656 54.016-43.242Q54.016-42.672 53.617-42.394Q53.219-42.117 52.625-42.117Q52.074-42.117 51.723-42.453L51.426-42.140Q51.402-42.117 51.367-42.117L51.320-42.117Q51.297-42.117 51.266-42.148Q51.234-42.179 51.234-42.203M56.367-42.195L54.570-42.195L54.570-42.492Q54.840-42.492 55.008-42.537Q55.176-42.582 55.176-42.754L55.176-46.914Q55.176-47.129 55.113-47.224Q55.051-47.320 54.933-47.341Q54.816-47.363 54.570-47.363L54.570-47.660L55.793-47.746L55.793-43.980L56.891-44.867Q57.098-45.047 57.098-45.195Q57.098-45.261 57.045-45.304Q56.992-45.347 56.922-45.347L56.922-45.644L58.457-45.644L58.457-45.347Q57.926-45.347 57.328-44.867L56.719-44.371L57.793-42.972Q57.930-42.797 58.037-42.689Q58.144-42.582 58.279-42.537Q58.414-42.492 58.641-42.492L58.641-42.195L57.016-42.195L57.016-42.492Q57.258-42.492 57.258-42.644Q57.258-42.722 57.215-42.793Q57.172-42.863 57.090-42.972L56.289-44.019L55.762-43.593L55.762-42.754Q55.762-42.586 55.930-42.539Q56.098-42.492 56.367-42.492L56.367-42.195M60.883-42.195L59.105-42.195L59.105-42.492Q59.379-42.492 59.547-42.539Q59.715-42.586 59.715-42.754L59.715-44.890Q59.715-45.105 59.658-45.201Q59.601-45.297 59.488-45.318Q59.375-45.340 59.129-45.340L59.129-45.636L60.328-45.722L60.328-42.754Q60.328-42.586 60.474-42.539Q60.621-42.492 60.883-42.492L60.883-42.195M59.441-47.117Q59.441-47.308 59.576-47.439Q59.711-47.570 59.906-47.570Q60.027-47.570 60.131-47.508Q60.234-47.445 60.297-47.341Q60.359-47.238 60.359-47.117Q60.359-46.922 60.228-46.787Q60.098-46.652 59.906-46.652Q59.707-46.652 59.574-46.785Q59.441-46.918 59.441-47.117M63.266-40.644L61.410-40.644L61.410-40.937Q61.680-40.937 61.848-40.982Q62.016-41.027 62.016-41.203L62.016-45.027Q62.016-45.234 61.859-45.287Q61.703-45.340 61.410-45.340L61.410-45.636L62.633-45.722L62.633-45.258Q62.863-45.480 63.178-45.601Q63.492-45.722 63.832-45.722Q64.305-45.722 64.709-45.476Q65.113-45.230 65.346-44.814Q65.578-44.398 65.578-43.922Q65.578-43.547 65.430-43.218Q65.281-42.890 65.012-42.638Q64.742-42.386 64.398-42.252Q64.055-42.117 63.695-42.117Q63.406-42.117 63.135-42.238Q62.863-42.359 62.656-42.570L62.656-41.203Q62.656-41.027 62.824-40.982Q62.992-40.937 63.266-40.937L63.266-40.644M62.656-44.859L62.656-43.019Q62.808-42.730 63.070-42.550Q63.332-42.371 63.641-42.371Q63.926-42.371 64.148-42.509Q64.371-42.648 64.523-42.879Q64.676-43.109 64.754-43.381Q64.832-43.652 64.832-43.922Q64.832-44.254 64.707-44.611Q64.582-44.968 64.334-45.205Q64.086-45.441 63.738-45.441Q63.414-45.441 63.119-45.285Q62.824-45.129 62.656-44.859",[1337],[1412,5719,5721,5722,5752,5753,5777],{"className":5720},[1415],"Kruskal as union-find. Scanning edges by weight, each is accepted iff its endpoints have different roots; the rejected edge ",[427,5723,5725],{"className":5724},[430],[427,5726,5728],{"className":5727,"ariaHidden":435},[434],[427,5729,5731,5734,5737,5740,5743,5746,5749],{"className":5730},[439],[427,5732],{"className":5733,"style":444},[443],[427,5735,700],{"className":5736},[455],[427,5738,1450],{"className":5739},[448,449],[427,5741,763],{"className":5742},[762],[427,5744],{"className":5745,"style":503},[502],[427,5747,1460],{"className":5748},[448,449],[427,5750,873],{"className":5751},[463]," closes a cycle since ",[427,5754,5756],{"className":5755},[430],[427,5757,5759],{"className":5758,"ariaHidden":435},[434],[427,5760,5762,5765,5768,5771,5774],{"className":5761},[439],[427,5763],{"className":5764,"style":1550},[443],[427,5766,1450],{"className":5767},[448,449],[427,5769,763],{"className":5770},[762],[427,5772],{"className":5773,"style":503},[502],[427,5775,1460],{"className":5776},[448,449]," already share a set",[1581,5779,5781],{"className":1583,"code":5780,"language":1585,"meta":376,"style":376},"caption: $\\textsc{MST-Kruskal}(G, w)$ — minimum spanning tree via union-find\n$A \\gets \\emptyset$\nforeach vertex $v$ in $V[G]$ do\n  call $\\textsc{Make-Set}(v)$\nsort the edges of $G$ into nondecreasing order by weight $w$\nforeach edge $\\set{u, v}$ in that order do\n  if call $\\textsc{Find-Set}(u) \\ne$ call Find-Set$(v)$ then\n    $A \\gets A \\cup \\set{\\,\\set{u, v}\\,}$ \u002F\u002F joins two components\n    call $\\textsc{Union}(u, v)$\nreturn $A$\n",[1587,5782,5783,5788,5793,5798,5803,5808,5813,5818,5823,5828],{"__ignoreMap":376},[427,5784,5785],{"class":1591,"line":6},[427,5786,5787],{},"caption: $\\textsc{MST-Kruskal}(G, w)$ — minimum spanning tree via union-find\n",[427,5789,5790],{"class":1591,"line":18},[427,5791,5792],{},"$A \\gets \\emptyset$\n",[427,5794,5795],{"class":1591,"line":24},[427,5796,5797],{},"foreach vertex $v$ in $V[G]$ do\n",[427,5799,5800],{"class":1591,"line":73},[427,5801,5802],{},"  call $\\textsc{Make-Set}(v)$\n",[427,5804,5805],{"class":1591,"line":102},[427,5806,5807],{},"sort the edges of $G$ into nondecreasing order by weight $w$\n",[427,5809,5810],{"class":1591,"line":108},[427,5811,5812],{},"foreach edge $\\set{u, v}$ in that order do\n",[427,5814,5815],{"class":1591,"line":116},[427,5816,5817],{},"  if call $\\textsc{Find-Set}(u) \\ne$ call Find-Set$(v)$ then\n",[427,5819,5820],{"class":1591,"line":196},[427,5821,5822],{},"    $A \\gets A \\cup \\set{\\,\\set{u, v}\\,}$ \u002F\u002F joins two components\n",[427,5824,5825],{"class":1591,"line":202},[427,5826,5827],{},"    call $\\textsc{Union}(u, v)$\n",[427,5829,5830],{"class":1591,"line":283},[427,5831,5832],{},"return $A$\n",[381,5834,5835,5836,5875,5876,5936,5937,5994,5995,6034,6035,6038,6039,6063,6084,6085,410,6109,6130,6131,6188,6189,6225],{},"Now read off the running time. Sorting the edges costs ",[427,5837,5839],{"className":5838},[430],[427,5840,5842],{"className":5841,"ariaHidden":435},[434],[427,5843,5845,5848,5851,5854,5857,5860,5866,5869,5872],{"className":5844},[439],[427,5846],{"className":5847,"style":444},[443],[427,5849,451],{"className":5850,"style":450},[448,449],[427,5852,456],{"className":5853},[455],[427,5855,498],{"className":5856},[448,449],[427,5858],{"className":5859,"style":503},[502],[427,5861,5863],{"className":5862},[507],[427,5864,513],{"className":5865,"style":512},[448,511],[427,5867],{"className":5868,"style":503},[502],[427,5870,498],{"className":5871},[448,449],[427,5873,464],{"className":5874},[463],", and since a\nsimple graph has ",[427,5877,5879],{"className":5878},[430],[427,5880,5882,5900],{"className":5881,"ariaHidden":435},[434],[427,5883,5885,5888,5891,5894,5897],{"className":5884},[439],[427,5886],{"className":5887,"style":3220},[443],[427,5889,498],{"className":5890},[448,449],[427,5892],{"className":5893,"style":1169},[502],[427,5895,4613],{"className":5896},[1173],[427,5898],{"className":5899,"style":1169},[502],[427,5901,5903,5907],{"className":5902},[439],[427,5904],{"className":5905,"style":5906},[443],"height:0.8141em;",[427,5908,5910,5913],{"className":5909},[448],[427,5911,520],{"className":5912},[448,449],[427,5914,5916],{"className":5915},[712],[427,5917,5919],{"className":5918},[716],[427,5920,5922],{"className":5921},[721],[427,5923,5925],{"className":5924,"style":5906},[725],[427,5926,5927,5930],{"style":2863},[427,5928],{"className":5929,"style":734},[733],[427,5931,5933],{"className":5932},[738,739,740,741],[427,5934,796],{"className":5935},[448,741]," edges we have ",[427,5938,5940],{"className":5939},[430],[427,5941,5943,5970],{"className":5942,"ariaHidden":435},[434],[427,5944,5946,5949,5955,5958,5961,5964,5967],{"className":5945},[439],[427,5947],{"className":5948,"style":1550},[443],[427,5950,5952],{"className":5951},[507],[427,5953,513],{"className":5954,"style":512},[448,511],[427,5956],{"className":5957,"style":503},[502],[427,5959,498],{"className":5960},[448,449],[427,5962],{"className":5963,"style":1169},[502],[427,5965,4613],{"className":5966},[1173],[427,5968],{"className":5969,"style":1169},[502],[427,5971,5973,5976,5979,5982,5988,5991],{"className":5972},[439],[427,5974],{"className":5975,"style":1550},[443],[427,5977,796],{"className":5978},[448],[427,5980],{"className":5981,"style":503},[502],[427,5983,5985],{"className":5984},[507],[427,5986,513],{"className":5987,"style":512},[448,511],[427,5989],{"className":5990,"style":503},[502],[427,5992,520],{"className":5993},[448,449],", so the sort is\n",[427,5996,5998],{"className":5997},[430],[427,5999,6001],{"className":6000,"ariaHidden":435},[434],[427,6002,6004,6007,6010,6013,6016,6019,6025,6028,6031],{"className":6003},[439],[427,6005],{"className":6006,"style":444},[443],[427,6008,451],{"className":6009,"style":450},[448,449],[427,6011,456],{"className":6012},[455],[427,6014,498],{"className":6015},[448,449],[427,6017],{"className":6018,"style":503},[502],[427,6020,6022],{"className":6021},[507],[427,6023,513],{"className":6024,"style":512},[448,511],[427,6026],{"className":6027,"style":503},[502],[427,6029,520],{"className":6030},[448,449],[427,6032,464],{"className":6033},[463],", and this ",[390,6036,6037],{},"dominates",". The disjoint-set work spans ",[427,6040,6042],{"className":6041},[430],[427,6043,6045],{"className":6044,"ariaHidden":435},[434],[427,6046,6048,6051,6054,6057,6060],{"className":6047},[439],[427,6049],{"className":6050,"style":444},[443],[427,6052,451],{"className":6053,"style":450},[448,449],[427,6055,456],{"className":6056},[455],[427,6058,498],{"className":6059},[448,449],[427,6061,464],{"className":6062},[463],[427,6064,6066],{"className":6065},[430],[427,6067,6069],{"className":6068,"ariaHidden":435},[434],[427,6070,6072,6075],{"className":6071},[439],[427,6073],{"className":6074,"style":1227},[443],[427,6076,6078],{"className":6077},[565,566],[427,6079,6081],{"className":6080},[448,570],[427,6082,990],{"className":6083},[448]," tests and ",[427,6086,6088],{"className":6087},[430],[427,6089,6091],{"className":6090,"ariaHidden":435},[434],[427,6092,6094,6097,6100,6103,6106],{"className":6093},[439],[427,6095],{"className":6096,"style":444},[443],[427,6098,451],{"className":6099,"style":450},[448,449],[427,6101,456],{"className":6102},[455],[427,6104,520],{"className":6105},[448,449],[427,6107,464],{"className":6108},[463],[427,6110,6112],{"className":6111},[430],[427,6113,6115],{"className":6114,"ariaHidden":435},[434],[427,6116,6118,6121],{"className":6117},[439],[427,6119],{"className":6120,"style":1889},[443],[427,6122,6124],{"className":6123},[565,566],[427,6125,6127],{"className":6126},[448,570],[427,6128,1044],{"className":6129},[448],"s; even with only the warm-up's\nrelabel-the-smaller scheme this is ",[427,6132,6134],{"className":6133},[430],[427,6135,6137,6161],{"className":6136,"ariaHidden":435},[434],[427,6138,6140,6143,6146,6149,6152,6155,6158],{"className":6139},[439],[427,6141],{"className":6142,"style":444},[443],[427,6144,451],{"className":6145,"style":450},[448,449],[427,6147,456],{"className":6148},[455],[427,6150,498],{"className":6151},[448,449],[427,6153],{"className":6154,"style":600},[502],[427,6156,605],{"className":6157},[604],[427,6159],{"className":6160,"style":600},[502],[427,6162,6164,6167,6170,6173,6179,6182,6185],{"className":6163},[439],[427,6165],{"className":6166,"style":444},[443],[427,6168,520],{"className":6169},[448,449],[427,6171],{"className":6172,"style":503},[502],[427,6174,6176],{"className":6175},[507],[427,6177,513],{"className":6178,"style":512},[448,511],[427,6180],{"className":6181,"style":503},[502],[427,6183,520],{"className":6184},[448,449],[427,6186,464],{"className":6187},[463],", already cheaper than the\nsort, and with the rank\u002Fcompression forest it is ",[427,6190,6192],{"className":6191},[430],[427,6193,6195],{"className":6194,"ariaHidden":435},[434],[427,6196,6198,6201,6204,6207,6210,6213,6216,6219,6222],{"className":6197},[439],[427,6199],{"className":6200,"style":444},[443],[427,6202,451],{"className":6203,"style":450},[448,449],[427,6205,456],{"className":6206},[455],[427,6208,498],{"className":6209},[448,449],[427,6211],{"className":6212,"style":503},[502],[427,6214,4509],{"className":6215,"style":4508},[448,449],[427,6217,456],{"className":6218},[455],[427,6220,520],{"className":6221},[448,449],[427,6223,5202],{"className":6224},[463],", effectively\nlinear. Either way:",[427,6227,6230],{"className":6228},[6229],"katex-display",[427,6231,6233],{"className":6232},[430],[427,6234,6236,6274,6454],{"className":6235,"ariaHidden":435},[434],[427,6237,6239,6242,6247,6250,6253,6256,6259,6262,6265,6268,6271],{"className":6238},[439],[427,6240],{"className":6241,"style":444},[443],[427,6243,6246],{"className":6244,"style":6245},[448,449],"margin-right:0.1389em;","T",[427,6248,456],{"className":6249},[455],[427,6251,498],{"className":6252},[448,449],[427,6254,763],{"className":6255},[762],[427,6257],{"className":6258,"style":503},[502],[427,6260,520],{"className":6261},[448,449],[427,6263,464],{"className":6264},[463],[427,6266],{"className":6267,"style":1169},[502],[427,6269,1174],{"className":6270},[1173],[427,6272],{"className":6273,"style":1169},[502],[427,6275,6277,6281,6439,6442,6445,6448,6451],{"className":6276},[439],[427,6278],{"className":6279,"style":6280},[443],"height:2.2786em;vertical-align:-1.5286em;",[427,6282,6285],{"className":6283},[694,6284],"munder",[427,6286,6288,6430],{"className":6287},[716,717],[427,6289,6291,6427],{"className":6290},[721],[427,6292,6295,6315],{"className":6293,"style":6294},[725],"height:0.75em;",[427,6296,6298,6302],{"style":6297},"top:-1.4714em;",[427,6299],{"className":6300,"style":6301},[733],"height:3em;",[427,6303,6305],{"className":6304},[738,739,740,741],[427,6306,6308],{"className":6307},[448,741],[427,6309,6311],{"className":6310},[448,570,741],[427,6312,6314],{"className":6313},[448,741],"sort",[427,6316,6318,6321],{"style":6317},"top:-3em;",[427,6319],{"className":6320,"style":6301},[733],[427,6322,6324],{"className":6323},[694,6284],[427,6325,6327,6418],{"className":6326},[716,717],[427,6328,6330,6415],{"className":6329},[721],[427,6331,6333,6380],{"className":6332,"style":6294},[725],[427,6334,6338,6341],{"className":6335,"style":6337},[6336],"svg-align","top:-2.102em;",[427,6339],{"className":6340,"style":6301},[733],[427,6342,6346,6360,6370],{"className":6343,"style":6345},[6344],"stretchy","height:0.548em;min-width:1.6em;",[427,6347,6351],{"className":6348,"style":6350},[6349],"brace-left","height:0.548em;",[1314,6352,6357],{"xmlns":1316,"width":6353,"height":6354,"viewBox":6355,"preserveAspectRatio":6356},"400em","0.548em","0 0 400000 548","xMinYMin slice",[1326,6358],{"d":6359},"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",[427,6361,6364],{"className":6362,"style":6350},[6363],"brace-center",[1314,6365,6367],{"xmlns":1316,"width":6353,"height":6354,"viewBox":6355,"preserveAspectRatio":6366},"xMidYMin slice",[1326,6368],{"d":6369},"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",[427,6371,6374],{"className":6372,"style":6350},[6373],"brace-right",[1314,6375,6377],{"xmlns":1316,"width":6353,"height":6354,"viewBox":6355,"preserveAspectRatio":6376},"xMaxYMin slice",[1326,6378],{"d":6379},"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",[427,6381,6382,6385],{"style":6317},[427,6383],{"className":6384,"style":6301},[733],[427,6386,6388,6391,6394,6397,6400,6406,6409,6412],{"className":6387},[448],[427,6389,451],{"className":6390,"style":450},[448,449],[427,6392,456],{"className":6393},[455],[427,6395,498],{"className":6396},[448,449],[427,6398],{"className":6399,"style":503},[502],[427,6401,6403],{"className":6402},[507],[427,6404,513],{"className":6405,"style":512},[448,511],[427,6407],{"className":6408,"style":503},[502],[427,6410,498],{"className":6411},[448,449],[427,6413,464],{"className":6414},[463],[427,6416,749],{"className":6417},[748],[427,6419,6421],{"className":6420},[721],[427,6422,6425],{"className":6423,"style":6424},[725],"height:0.898em;",[427,6426],{},[427,6428,749],{"className":6429},[748],[427,6431,6433],{"className":6432},[721],[427,6434,6437],{"className":6435,"style":6436},[725],"height:1.5286em;",[427,6438],{},[427,6440],{"className":6441,"style":1169},[502],[427,6443],{"className":6444,"style":1169},[502],[427,6446,1174],{"className":6447},[1173],[427,6449],{"className":6450,"style":1169},[502],[427,6452],{"className":6453,"style":1169},[502],[427,6455,6457,6460,6463,6466,6469,6472,6478,6481,6484,6487],{"className":6456},[439],[427,6458],{"className":6459,"style":444},[443],[427,6461,451],{"className":6462,"style":450},[448,449],[427,6464,456],{"className":6465},[455],[427,6467,498],{"className":6468},[448,449],[427,6470],{"className":6471,"style":503},[502],[427,6473,6475],{"className":6474},[507],[427,6476,513],{"className":6477,"style":512},[448,511],[427,6479],{"className":6480,"style":503},[502],[427,6482,520],{"className":6483},[448,449],[427,6485,464],{"className":6486},[463],[427,6488,465],{"className":6489},[448],[381,6491,6492,6493,6496,6497,6500,6501,6503],{},"The lesson here is worth stating plainly: Kruskal's ",[390,6494,6495],{},"logic"," is one\nacyclicity test per edge, but its ",[390,6498,6499],{},"efficiency"," is entirely a property of the\nstructure answering that test. The cycle test ",[385,6502,4941],{}," the same-set query, and a\ngood disjoint-set structure is exactly what makes Kruskal both simple and fast.",[672,6505,6507],{"id":6506},"takeaways","Takeaways",[880,6509,6510,6565,6690,6774,6805,6885,6935],{},[883,6511,6512,6513,6515,6516,4273,6537,4273,6558,6560,6561,6564],{},"The ",[385,6514,401],{}," ADT — ",[427,6517,6519],{"className":6518},[430],[427,6520,6522],{"className":6521,"ariaHidden":435},[434],[427,6523,6525,6528],{"className":6524},[439],[427,6526],{"className":6527,"style":1227},[443],[427,6529,6531],{"className":6530},[565,566],[427,6532,6534],{"className":6533},[448,570],[427,6535,906],{"className":6536},[448],[427,6538,6540],{"className":6539},[430],[427,6541,6543],{"className":6542,"ariaHidden":435},[434],[427,6544,6546,6549],{"className":6545},[439],[427,6547],{"className":6548,"style":1227},[443],[427,6550,6552],{"className":6551},[565,566],[427,6553,6555],{"className":6554},[448,570],[427,6556,990],{"className":6557},[448],[385,6559,1044],{}," — maintains a\npartition under merges and answers ",[1103,6562,6563],{},"same group?"," by comparing representatives.",[883,6566,6567,6568,6571,6572,6611,6612,6685,6686,6689],{},"A ",[385,6569,6570],{},"labels + relabel-the-smaller"," warm-up already costs only ",[427,6573,6575],{"className":6574},[430],[427,6576,6578],{"className":6577,"ariaHidden":435},[434],[427,6579,6581,6584,6587,6590,6593,6596,6602,6605,6608],{"className":6580},[439],[427,6582],{"className":6583,"style":444},[443],[427,6585,451],{"className":6586,"style":450},[448,449],[427,6588,456],{"className":6589},[455],[427,6591,520],{"className":6592},[448,449],[427,6594],{"className":6595,"style":503},[502],[427,6597,6599],{"className":6598},[507],[427,6600,513],{"className":6601,"style":512},[448,511],[427,6603],{"className":6604,"style":503},[502],[427,6606,520],{"className":6607},[448,449],[427,6609,464],{"className":6610},[463],"\ntotal: each element is relabeled ",[427,6613,6615],{"className":6614},[430],[427,6616,6618,6630],{"className":6617,"ariaHidden":435},[434],[427,6619,6621,6624,6627],{"className":6620},[439],[427,6622],{"className":6623,"style":3220},[443],[427,6625,4613],{"className":6626},[1173],[427,6628],{"className":6629,"style":1169},[502],[427,6631,6633,6636,6679,6682],{"className":6632},[439],[427,6634],{"className":6635,"style":2118},[443],[427,6637,6639,6645],{"className":6638},[507],[427,6640,6642],{"className":6641},[507],[427,6643,513],{"className":6644,"style":512},[448,511],[427,6646,6648],{"className":6647},[712],[427,6649,6651,6671],{"className":6650},[716,717],[427,6652,6654,6668],{"className":6653},[721],[427,6655,6657],{"className":6656,"style":2140},[725],[427,6658,6659,6662],{"style":2143},[427,6660],{"className":6661,"style":734},[733],[427,6663,6665],{"className":6664},[738,739,740,741],[427,6666,796],{"className":6667},[448,741],[427,6669,749],{"className":6670},[748],[427,6672,6674],{"className":6673},[721],[427,6675,6677],{"className":6676,"style":2162},[725],[427,6678],{},[427,6680],{"className":6681,"style":503},[502],[427,6683,520],{"className":6684},[448,449]," times because its set ",[390,6687,6688],{},"doubles","\nwhenever it moves. This doubling argument is the seed of union by rank.",[883,6691,6512,6692,6695,6696,6717,6718,6720,6721,6748,6749,6773],{},[385,6693,6694],{},"forest representation"," stores each set as a tree of parent pointers\nwhose root is the representative; ",[427,6697,6699],{"className":6698},[430],[427,6700,6702],{"className":6701,"ariaHidden":435},[434],[427,6703,6705,6708],{"className":6704},[439],[427,6706],{"className":6707,"style":1227},[443],[427,6709,6711],{"className":6710},[565,566],[427,6712,6714],{"className":6713},[448,570],[427,6715,990],{"className":6716},[448]," walks to the root, ",[385,6719,1044],{},"\nlinks two roots, turning the warm-up's ",[427,6722,6724],{"className":6723},[430],[427,6725,6727],{"className":6726,"ariaHidden":435},[434],[427,6728,6730,6733,6736,6739,6745],{"className":6729},[439],[427,6731],{"className":6732,"style":444},[443],[427,6734,451],{"className":6735,"style":450},[448,449],[427,6737,456],{"className":6738},[455],[427,6740,6742],{"className":6741},[448,570],[427,6743,2423],{"className":6744},[448],[427,6746,464],{"className":6747},[463]," relabel into one\n",[427,6750,6752],{"className":6751},[430],[427,6753,6755],{"className":6754,"ariaHidden":435},[434],[427,6756,6758,6761,6764,6767,6770],{"className":6757},[439],[427,6759],{"className":6760,"style":444},[443],[427,6762,451],{"className":6763,"style":450},[448,449],[427,6765,456],{"className":6766},[455],[427,6768,424],{"className":6769},[448],[427,6771,464],{"className":6772},[463]," pointer move.",[883,6775,6776,6778,6779,6782,6783,6804],{},[385,6777,2797],{}," keeps trees short (attach shorter under taller), and ",[385,6780,6781],{},"path\ncompression"," flattens each ",[427,6784,6786],{"className":6785},[430],[427,6787,6789],{"className":6788,"ariaHidden":435},[434],[427,6790,6792,6795],{"className":6791},[439],[427,6793],{"className":6794,"style":1227},[443],[427,6796,6798],{"className":6797},[565,566],[427,6799,6801],{"className":6800},[448,570],[427,6802,990],{"className":6803},[448]," path to point straight at the root.",[883,6806,6807,6808,410,6838,6840,6841,6868,6869,6884],{},"Together they give ",[427,6809,6811],{"className":6810},[430],[427,6812,6814],{"className":6813,"ariaHidden":435},[434],[427,6815,6817,6820,6823,6826,6829,6832,6835],{"className":6816},[439],[427,6818],{"className":6819,"style":444},[443],[427,6821,451],{"className":6822,"style":450},[448,449],[427,6824,456],{"className":6825},[455],[427,6827,4509],{"className":6828,"style":4508},[448,449],[427,6830,456],{"className":6831},[455],[427,6833,520],{"className":6834},[448,449],[427,6836,5202],{"className":6837},[463],[385,6839,413],{}," time per operation — inverse\nAckermann, so ",[427,6842,6844],{"className":6843},[430],[427,6845,6847,6859],{"className":6846,"ariaHidden":435},[434],[427,6848,6850,6853,6856],{"className":6849},[439],[427,6851],{"className":6852,"style":3220},[443],[427,6854,4613],{"className":6855},[1173],[427,6857],{"className":6858,"style":1169},[502],[427,6860,6862,6865],{"className":6861},[439],[427,6863],{"className":6864,"style":1270},[443],[427,6866,4626],{"className":6867},[448]," for any realistic ",[427,6870,6872],{"className":6871},[430],[427,6873,6875],{"className":6874,"ariaHidden":435},[434],[427,6876,6878,6881],{"className":6877},[439],[427,6879],{"className":6880,"style":930},[443],[427,6882,520],{"className":6883},[448,449],", i.e. effectively constant.",[883,6886,6887,6888,6891,6892,6894,6895,6934],{},"It powers ",[385,6889,6890],{},"connectivity"," queries and ",[385,6893,639],{},", where the\nsame-set test is exactly the cycle test. Kruskal runs in ",[427,6896,6898],{"className":6897},[430],[427,6899,6901],{"className":6900,"ariaHidden":435},[434],[427,6902,6904,6907,6910,6913,6916,6919,6925,6928,6931],{"className":6903},[439],[427,6905],{"className":6906,"style":444},[443],[427,6908,451],{"className":6909,"style":450},[448,449],[427,6911,456],{"className":6912},[455],[427,6914,498],{"className":6915},[448,449],[427,6917],{"className":6918,"style":503},[502],[427,6920,6922],{"className":6921},[507],[427,6923,513],{"className":6924,"style":512},[448,511],[427,6926],{"className":6927,"style":503},[502],[427,6929,520],{"className":6930},[448,449],[427,6932,464],{"className":6933},[463],",\nwith the sort, not the union-find, as the bottleneck.",[883,6936,6937,6938,6941],{},"The unifying theme: ",[385,6939,6940],{},"clever data structures are what make algorithms fast.","\nKruskal's logic is one line; all of its speed lives in the disjoint-set\nstructure underneath.",[6943,6944,6947,6952],"section",{"className":6945,"dataFootnotes":376},[6946],"footnotes",[672,6948,6951],{"className":6949,"id":422},[6950],"sr-only","Footnotes",[6953,6954,6955,6969,6981,7029],"ol",{},[883,6956,6958,6961,6962],{"id":6957},"user-content-fn-clrs-djs",[385,6959,6960],{},"CLRS",", Ch. 21 — Data Structures for Disjoint Sets (§21.1): the Make-Set\u002FFind-Set\u002FUnion ADT and its near-constant amortized cost. ",[395,6963,6968],{"href":6964,"ariaLabel":6965,"className":6966,"dataFootnoteBackref":376},"#user-content-fnref-clrs-djs","Back to reference 1",[6967],"data-footnote-backref","↩",[883,6970,6972,6975,6976],{"id":6971},"user-content-fn-erickson-djs",[385,6973,6974],{},"Erickson",", Ch. — Disjoint Sets: the parent-pointer forest representation of a partition. ",[395,6977,6968],{"href":6978,"ariaLabel":6979,"className":6980,"dataFootnoteBackref":376},"#user-content-fnref-erickson-djs","Back to reference 2",[6967],[883,6982,6984,6986,6987,7023,7024],{"id":6983},"user-content-fn-clrs-ackermann",[385,6985,6960],{},", Ch. 21 — Data Structures for Disjoint Sets (§21.4): Tarjan's ",[427,6988,6990],{"className":6989},[430],[427,6991,6993],{"className":6992,"ariaHidden":435},[434],[427,6994,6996,6999,7002,7005,7008,7011,7014,7017,7020],{"className":6995},[439],[427,6997],{"className":6998,"style":444},[443],[427,7000,451],{"className":7001,"style":450},[448,449],[427,7003,456],{"className":7004},[455],[427,7006,498],{"className":7007},[448,449],[427,7009],{"className":7010,"style":503},[502],[427,7012,4509],{"className":7013,"style":4508},[448,449],[427,7015,456],{"className":7016},[455],[427,7018,520],{"className":7019},[448,449],[427,7021,5202],{"className":7022},[463]," inverse-Ackermann amortized bound. ",[395,7025,6968],{"href":7026,"ariaLabel":7027,"className":7028,"dataFootnoteBackref":376},"#user-content-fnref-clrs-ackermann","Back to reference 3",[6967],[883,7030,7032,7035,7036],{"id":7031},"user-content-fn-skiena-djs",[385,7033,7034],{},"Skiena",", §6.1 — Union-Find: the cycle test in Kruskal's MST is exactly the same-set query. ",[395,7037,6968],{"href":7038,"ariaLabel":7039,"className":7040,"dataFootnoteBackref":376},"#user-content-fnref-skiena-djs","Back to reference 4",[6967],[7042,7043,7044],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}html.dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}",{"title":376,"searchDepth":18,"depth":18,"links":7046},[7047,7048,7049,7051,7052,7053,7054,7055,7056],{"id":674,"depth":18,"text":675},{"id":1279,"depth":18,"text":1280},{"id":1703,"depth":18,"text":7050},"A warm-up: labels, and always relabel the smaller side",{"id":2790,"depth":18,"text":2791},{"id":3917,"depth":18,"text":3918},{"id":4380,"depth":18,"text":4381},{"id":4945,"depth":18,"text":4946},{"id":6506,"depth":18,"text":6507},{"id":422,"depth":18,"text":6951},"Some problems keep a collection of items partitioned into disjoint groups\nthat only ever merge, never split, and repeatedly ask whether two items\ncurrently share a group. Are these two cities on the same electrical grid? Do\nthese two pixels belong to the same connected region? Does adding this edge to a\ngraph create a cycle? The disjoint-set (or union-find) data structure\nanswers exactly these questions, and does so in near-constant amortized time\nper operation1, slow-growing enough that for every input you will ever see, it is\neffectively O(1).","md",{"moduleNumber":73,"lessonNumber":73,"order":7060},404,true,[7063,7067,7070,7073,7076],{"title":7064,"slug":7065,"difficulty":7066},"Number of Provinces","number-of-provinces","Medium",{"title":7068,"slug":7069,"difficulty":7066},"Redundant Connection","redundant-connection",{"title":7071,"slug":7072,"difficulty":7066},"Accounts Merge","accounts-merge",{"title":7074,"slug":7075,"difficulty":7066},"Most Stones Removed with Same Row or Column","most-stones-removed-with-same-row-or-column",{"title":7077,"slug":7078,"difficulty":7066},"Number of Islands","number-of-islands","---\ntitle: Disjoint Sets (Union-Find)\nmodule: Data Structures\nmoduleNumber: 4\nlessonNumber: 4\norder: 404\nsummary: >-\n  The disjoint-set data structure tracks a partition of elements into groups,\n  answering \"are these two in the same group?\" and merging groups on demand. A\n  forest of parent pointers, sped up by union by rank and path compression,\n  drives every operation to near-constant $O(\\alpha(n))$ amortized time — the\n  engine behind connectivity queries and Kruskal's minimum spanning tree.\ntopics: [Disjoint Sets, Amortized Analysis]\nsources:\n  - book: CLRS\n    ref: \"Ch. 21 — Data Structures for Disjoint Sets\"\n  - book: Skiena\n    ref: \"§6.1 — Union-Find\"\n  - book: Erickson\n    ref: \"Ch. — Disjoint Sets\"\npractice:\n  - title: 'Number of Provinces'\n    slug: number-of-provinces\n    difficulty: Medium\n  - title: 'Redundant Connection'\n    slug: redundant-connection\n    difficulty: Medium\n  - title: 'Accounts Merge'\n    slug: accounts-merge\n    difficulty: Medium\n  - title: 'Most Stones Removed with Same Row or Column'\n    slug: most-stones-removed-with-same-row-or-column\n    difficulty: Medium\n  - title: 'Number of Islands'\n    slug: number-of-islands\n    difficulty: Medium\n---\n\nSome problems keep a collection of items partitioned into **disjoint groups**\nthat only ever _merge_, never split, and repeatedly ask whether two items\ncurrently share a group. Are these two cities on the same electrical grid? Do\nthese two pixels belong to the same connected region? Does adding this edge to a\n[graph](\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal) create a cycle? The **disjoint-set** (or **union-find**) data structure\nanswers exactly these questions, and does so in _near-constant_ [amortized](\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis) time\nper operation[^clrs-djs], slow-growing enough that for every input you will ever see, it is\neffectively $O(1)$.\n\nThere is a recurring lesson in the design of efficient algorithms: **the right\ndata structure is what makes an algorithm fast.** Dijkstra's and Prim's shortest-\npath and MST algorithms are correct with any priority queue, but their _speed_\nhinges on the queue: a binary heap gives $O(m \\log n)$, while a Fibonacci heap (with\namortized $O(1)$ $\\textsc{Decrease-Key}$) shaves it toward $O(m + n \\log n)$.\n[Kruskal's MST](\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees) tells the same story through a different structure. The algorithm\nis one line of logic, and _every bit_ of its efficiency comes from the\ndisjoint-set structure beneath it. We will build that structure from the ground\nup and watch it collapse from $\\Theta(n)$ per query down to inverse Ackermann.\n\n## The disjoint-set ADT\n\nWe maintain a collection $\\set{S_1, S_2, \\dots, S_k}$ of disjoint sets that\ntogether partition a universe of elements. Each set is named by a\n**representative**, some fixed member of the set chosen by the structure. The\nADT has three operations:\n\n- $\\textsc{Make-Set}(x)$ creates a new set whose only member is $x$ (so $x$ is its\n  own representative). $x$ must not already be in any set.\n- $\\textsc{Find-Set}(x)$ returns the representative of the set containing $x$. Two\n  elements are in the same set _iff_ they return the same representative.\n- $\\textsc{Union}(x, y)$ merges the sets containing $x$ and $y$ into one, picking a\n  representative for the combined set. The two old sets are destroyed.\n\nThe query \"are $x$ and $y$ together?\" is just the test\n$\\textbf{Find-Set}(x) = \\textbf{Find-Set}(y)$. After $n$ $\\textsc{Make-Set}$ operations\nthere can be at most $n - 1$ **Union** operations, since each union reduces the\nnumber of sets by one.\n\n## The forest representation\n\nThe fast implementation represents each set as a **rooted tree**, and the whole\ncollection as a **forest**.[^erickson-djs] Every element points only to its **parent**; the\n**root** of each tree is the set's representative and points to itself. There are\nno child pointers and no key ordering. This is not a search tree, just a tangle\nof upward pointers whose only job is to lead to a root.\n\n$$\n% caption: Two disjoint-set trees of parent pointers, each root looping to itself\n\\begin{tikzpicture}[\n  every node\u002F.style={circle, draw, minimum size=8mm, inner sep=0},\n  >=stealth, level distance=11mm,\n  level 1\u002F.style={sibling distance=14mm}]\n  % tree 1, root c\n  \\node (c) {$c$}\n    child {node (a) {$a$}}\n    child {node (h) {$h$}\n      child {node (b) {$b$}}\n    };\n  % tree 2, root f\n  \\begin{scope}[xshift=42mm]\n    \\node (f) {$f$}\n      child {node (d) {$d$}}\n      child {node (e) {$e$}};\n  \\end{scope}\n  \\draw[->] (c) edge[loop above] ();\n  \\draw[->] (f) edge[loop above] ();\n\\end{tikzpicture}\n$$\n\nTwo sets: $\\set{a, b, c, h}$ with representative $c$, and $\\set{d, e, f}$ with\nrepresentative $f$. Each node's single arrow points at its parent; the roots loop\nto themselves. $\\textsc{Find-Set}$ follows parent pointers up to the root; **Union**\nmakes one tree's root a child of the other's.\n\n```algorithm\ncaption: Naive disjoint-set forest operations\nMake-Set(x):\n  $parent(x) \\gets x$\nFind-Set(x):\n  while $x \\ne parent(x)$ do\n    $x \\gets parent(x)$ \u002F\u002F walk to the root\n  return $x$\nUnion(x, y):\n  $parent(\\textbf{Find-Set}(x)) \\gets \\textbf{Find-Set}(y)$\n```\n\nSo far this is correct but not fast: a careless sequence of unions can build a\ntall, skinny tree, a path of $n$ nodes, making $\\textsc{Find-Set}$ cost $\\Theta(n)$.\nTwo heuristics, used together, flatten the forest and make the structure\nextraordinarily fast.\n\n## A warm-up: labels, and \"always relabel the smaller side\"\n\nBefore the forest, consider the most naive possible implementation, along with the one\nidea that already makes it respectable. Keep an array $comp[\\,]$ that stores, for\neach element, a _label_ naming its current set. Then $\\textsc{Find-Set}(x)$ is just\n$comp[x]$, a single array lookup, and the same-set test\n$comp[u] = comp[v]$ is instant. The whole cost lives in $\\textsc{Union}$: merging two\nsets means walking through one of them and _rewriting_ every member's label to\nmatch the other.\n\nThe question is _which_ set to rewrite. If we are careless and always relabel,\nsay, the set containing $u$, an adversary can force $\\Theta(n)$ work on every\nunion. The fix is a single disciplined rule:\n\n> **Remark (Union by size).** Always relabel the *smaller* set. When uniting the sets of $u$ and $v$,\n> rewrite the labels of whichever set has _fewer_ members, and keep the larger\n> set's label.\n\nTo do this efficiently, alongside $comp[\\,]$ keep a list $members[\\ell]$ of the\nelements currently carrying label $\\ell$, plus each set's size; the union then\nsplices the smaller list into the larger and relabels only the short side.\n\nWhy does this help so much? **Charge the cost to the elements that get\nrelabeled.** An element's label changes only when it sits in the _smaller_ of two\nmerging sets, and after that merge, the set it belongs to is _at least twice_ as\nbig as before. A set can double in size at most $\\log_2 n$ times before it\nswallows the whole universe, so **each element is relabeled at most $\\log_2 n$\ntimes** over the entire run. Summed over all $n$ elements, _all_ of the union\nwork together costs $O(n \\log n)$, even though a single union might still touch\n$\\Theta(n)$ elements.\n\nThis is the whole game in miniature: a structurally trivial idea (relabel the\nsmaller side) plus an amortized \"doubling\" argument turns a quadratic-looking\ncost into $O(n \\log n)$. The forest representation below keeps exactly this\nintuition, _the smaller thing yields to the larger_, but replaces the explicit\nrelabeling with a single pointer move, so a union becomes $O(1)$ instead of\n$O(\\text{size})$.\n\nEverything now hinges on _which_ root we hang beneath the other. Get it wrong and\nthe forest degenerates into exactly the chain we feared; get it right and the\ntrees stay flat. The figure contrasts the two outcomes of the same four merges.\n\n$$\n% caption: The same four unions, two ways. Careless linking builds a height-$3$ chain;\n%          union by rank keeps height $1$ — every $\\textsc{Find-Set}$ is then one hop\n\\begin{tikzpicture}[\n  vtx\u002F.style={circle, draw, minimum size=7mm, inner sep=0, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  % --- careless: a path a\u003C-b\u003C-c\u003C-d ---\n  \\node[vtx] (a) at (0,0) {$a$};\n  \\node[vtx] (b) at (0,-1.0) {$b$};\n  \\node[vtx] (c) at (0,-2.0) {$c$};\n  \\node[vtx] (d) at (0,-3.0) {$d$};\n  \\draw[->] (d) -- (c);\n  \\draw[->] (c) -- (b);\n  \\draw[->] (b) -- (a);\n  \\draw[->] (a) edge[loop left] ();\n  \\node[draw=none, font=\\footnotesize] at (0,0.8) {careless: height $3$};\n  \\node[draw=none, font=\\footnotesize, text=red!75!black] at (1.7,-1.5) {$\\textsc{Find}(d):3$ hops};\n  % --- union by rank: star ---\n  \\begin{scope}[xshift=52mm, yshift=-15mm]\n    \\node[vtx] (ra) {$a$};\n    \\node[vtx] (rb) [below left=10mm and 11mm of ra] {$b$};\n    \\node[vtx] (rc) [below=10mm of ra] {$c$};\n    \\node[vtx] (rd) [below right=10mm and 11mm of ra] {$d$};\n    \\draw[->] (rb) -- (ra);\n    \\draw[->] (rc) -- (ra);\n    \\draw[->] (rd) -- (ra);\n    \\draw[->] (ra) edge[loop above] ();\n    \\node[draw=none, font=\\footnotesize] at (0,1.35) {union by rank: height $1$};\n    \\node[draw=none, font=\\footnotesize, text=red!75!black] at (0,-2.0) {$\\textsc{Find}(d):1$ hop};\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\n## Heuristic 1: union by rank\n\nThe trouble is unions that make a tall tree a child of a short one, deepening it.\n**Union by rank** prevents this. Each root carries a **rank**, an upper bound on\nthe height of its tree. When uniting two trees, we attach the root of _smaller_\nrank beneath the root of _larger_ rank, so the taller tree's height never grows.\nOnly when the two ranks are equal does the height increase, and then by exactly\none (and we bump the surviving root's rank).\n\nThis single rule already guarantees that every tree of rank $r$ contains at least\n$2^r$ nodes, so rank, and hence height, is at most $\\log_2 n$. With union by\nrank alone, every operation is $O(\\log n)$.\n\n$$\n% caption: Why rank $r$ forces $\\ge 2^r$ nodes. A root's rank rises only when two\n%          equal-rank trees merge, and that merge at least doubles the node count: rank\n%          $0$ is a single node, and each rank bump joins two trees of the previous rank.\n%          So a rank-$r$ tree holds $\\ge 2^r$ nodes, capping rank (and height) at\n%          $\\log_2 n$.\n\\begin{tikzpicture}[\n  vtx\u002F.style={circle, draw, minimum size=5mm, inner sep=0, font=\\scriptsize},\n  >=stealth, x=1cm, y=1cm]\n  \\definecolor{acc}{HTML}{2348F2}\n  % rank 0: single node\n  \\node[vtx] (z0) at (0,0) {};\n  \\node[draw=none, font=\\scriptsize] at (0,0.6) {rank $0$};\n  \\node[draw=none, font=\\scriptsize] at (0,-0.6) {$1$ node};\n  % plus arrow\n  \\node[draw=none, font=\\small] at (1.0,0) {$+$};\n  \\node[vtx] (z0b) at (2.0,0) {};\n  \\node[draw=none, font=\\scriptsize] at (2.0,0.6) {rank $0$};\n  % => rank 1\n  \\node[draw=none, font=\\small] at (3.2,0) {$\\Rightarrow$};\n  \\node[vtx] (o0) at (4.6,0.35) {};\n  \\node[vtx] (o1) at (4.6,-0.55) {};\n  \\draw[->] (o1) -- (o0);\n  \\node[draw=none, font=\\scriptsize, anchor=west] at (5.1,-0.1) {rank $1$, $2$ nodes};\n  % second row: rank1 + rank1 => rank 2\n  \\begin{scope}[yshift=-2.0cm]\n    \\node[vtx] (p0) at (0,0.3) {}; \\node[vtx] (p1) at (0,-0.5) {}; \\draw[->] (p1)--(p0);\n    \\node[draw=none, font=\\scriptsize] at (0,0.9) {rank $1$};\n    \\node[draw=none, font=\\small] at (1.0,-0.1) {$+$};\n    \\node[vtx] (q0) at (2.0,0.3) {}; \\node[vtx] (q1) at (2.0,-0.5) {}; \\draw[->] (q1)--(q0);\n    \\node[draw=none, font=\\scriptsize] at (2.0,0.9) {rank $1$};\n    \\node[draw=none, font=\\small] at (3.2,-0.1) {$\\Rightarrow$};\n    % rank 2 tree of 4 nodes\n    \\node[vtx] (r0) at (5.0,0.55) {};\n    \\node[vtx] (r1) at (4.4,-0.35) {};\n    \\node[vtx] (r2) at (5.6,-0.35) {};\n    \\node[vtx] (r3) at (4.4,-1.2) {};\n    \\draw[->] (r1)--(r0); \\draw[->] (r2)--(r0); \\draw[->] (r3)--(r1);\n    \\node[draw=none, font=\\scriptsize, anchor=west] at (6.1,-0.1) {rank $2$, $4$ nodes};\n  \\end{scope}\n\\end{tikzpicture}\n$$ Notice this is the _same doubling\nargument_ from the warm-up, read from the other direction: there, a set doubled\neach time an element was relabeled; here, a root's rank rises only when two\nequal-rank trees merge, which doubles the node count. Either way, $\\log_2 n$ is\nthe ceiling, because nothing can double more than that many times.\n\nThe figure shows a $\\textsc{Union}$ under this rule. The left tree has rank $2$, the\nright rank $1$; since their ranks differ, the smaller-rank root $f$ is hung\nbeneath the larger-rank root $c$ and _no rank changes_. The result still has\nrank $2$, exactly as the warm-up's \"smaller side yields to the larger\" demands,\nbut now it costs a single pointer move rather than relabeling every member.\n\n$$\n% caption: Union by rank hangs the lower-rank root beneath the higher-rank root\n\\begin{tikzpicture}[\n  >=Stealth,\n  vtx\u002F.style={circle, draw, minimum size=8mm, inner sep=0},\n  node distance=10mm and 7mm]\n  % --- before: two trees ---\n  \\node[vtx] (c) {$c$};\n  \\node[vtx] (a) [below left=of c] {$a$};\n  \\node[vtx] (h) [below right=of c] {$h$};\n  \\node[vtx] (b) [below=of h] {$b$};\n  \\draw[->] (a) -- (c);\n  \\draw[->] (h) -- (c);\n  \\draw[->] (b) -- (h);\n  \\draw[->] (c) edge[loop above] ();\n  \\node[font=\\footnotesize] at (c |- b) {rank $2$};\n\n  \\node[vtx] (f) [right=26mm of c] {$f$};\n  \\node[vtx] (d) [below left=of f] {$d$};\n  \\node[vtx] (e) [below right=of f] {$e$};\n  \\draw[->] (d) -- (f);\n  \\draw[->] (e) -- (f);\n  \\draw[->] (f) edge[loop above] ();\n  \\node[font=\\footnotesize] at (f |- b) {rank $1$};\n\n  % union arrow (in the clear band between the two panels, above the trees)\n  \\draw[->, thick] ($(f)+(1.2,0.6)$)\n    -- node[above, font=\\footnotesize, draw=none, fill=white, inner sep=1.5pt] {$\\textsc{Union}(b,e)$} ($(f)+(3.0,0.6)$);\n\n  % --- after: f hung under c ---\n  \\begin{scope}[xshift=92mm]\n    \\node[vtx] (c2) at (0,0) {$c$};\n    \\node[vtx] (a2) at (-2.0,-1.3) {$a$};\n    \\node[vtx] (f2) at (0,-1.3) {$f$};\n    \\node[vtx] (h2) at (2.0,-1.3) {$h$};\n    \\node[vtx] (d2) at (-0.8,-2.7) {$d$};\n    \\node[vtx] (e2) at (0.8,-2.7) {$e$};\n    \\node[vtx] (b2) at (2.0,-2.7) {$b$};\n    \\draw[->] (a2) -- (c2);\n    \\draw[->] (h2) -- (c2);\n    \\draw[->] (f2) -- (c2);\n    \\draw[->] (d2) -- (f2);\n    \\draw[->] (e2) -- (f2);\n    \\draw[->] (b2) -- (h2);\n    \\draw[->] (c2) edge[loop above] ();\n    \\node[font=\\footnotesize] at (2.7,0) {rank $2$};\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\n## Heuristic 2: path compression\n\n**Path compression** attacks the cost from the other side. Each time\n$\\textsc{Find-Set}(x)$ walks up to the root, it makes a _second_ pass and points\nevery node it visited _directly_ at the root. The path is paid for once; every\nfuture $\\textsc{Find-Set}$ on those nodes is then a single hop.\n\n$$\n% caption: Path compression points every node on a Find-Set path straight at the root\n\\begin{tikzpicture}[\n  every node\u002F.style={circle, draw, minimum size=7mm, inner sep=0},\n  >=stealth, level distance=10mm]\n  % before: a chain\n  \\node (r) {$r$}\n    child {node (w) {$w$}\n      child {node (v) {$v$}\n        child {node (u) {$u$}}\n      }\n    };\n  \\draw[->] (r) edge[loop above] ();\n  \\draw[->, thick] (2.7,-1.5) -- node[draw=none, above, font=\\footnotesize] {Find-Set$(u)$} (4.0,-1.5);\n  % after: flattened\n  \\begin{scope}[xshift=58mm]\n    \\node (r2) {$r$};\n    \\node (u2) [below left=10mm and 11mm of r2] {$u$};\n    \\node (v2) [below=10mm of r2] {$v$};\n    \\node (w2) [below right=10mm and 11mm of r2] {$w$};\n    \\draw[->] (u2) -- (r2);\n    \\draw[->] (v2) -- (r2);\n    \\draw[->] (w2) -- (r2);\n    \\draw[->] (r2) edge[loop above] ();\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\nBefore, $u$ sits at the bottom of a chain $u \\to v \\to w \\to r$; after\n$\\textsc{Find-Set}(u)$, the nodes $u$, $v$, $w$ all point straight at $r$. The\n$\\textsc{Find-Set}$ that pays for the walk leaves the tree dramatically flatter for\neveryone behind it.\n\n```algorithm\ncaption: $\\textsc{Find-Set}(x)$ — with path compression (recursive)\nif $x \\ne parent(x)$ then\n  $parent(x) \\gets$ call $\\textsc{Find-Set}(parent(x))$ \u002F\u002F point x at the root\nreturn $parent(x)$\n```\n\nThe recursion bottoms out at the root, and as it unwinds it reassigns every\nnode's parent to that root. With path compression in use, the rank of a root is\nonly an _upper bound_ on its height (compression can make the tree shorter than\nits rank suggests), which is why the heuristic is called union by **rank** rather\nthan by height.\n\n## The near-constant amortized bound\n\nUsed _together_, union by rank and path compression make the disjoint-set\nstructure almost unbelievably fast.\n\n> **Theorem (Tarjan).** A sequence of $m$ $\\textsc{Make-Set}$, **Union**, and\n> $\\textsc{Find-Set}$ operations on $n$ elements, using union by rank and path\n> compression, runs in $O\\bigl(m\\,\\alpha(n)\\bigr)$ time, where $\\alpha(n)$ is the\n> inverse Ackermann function.\n\nThe function $\\alpha(n)$ grows so slowly it is _practically constant_: $\\alpha(n)\n\\le 4$ for every $n$ up to roughly $2^{2^{2^{16}}}$, a number far larger than the\ncount of atoms in the universe. So for any conceivable input, each operation\ncosts amortized $O(1)$.[^clrs-ackermann]\n\nThe two heuristics earn this by attacking complementary failure modes: **union\nby rank** keeps trees from getting tall in the first place (height $\\le \\log n$),\nwhile **path compression** ensures that any depth a tree _does_ accumulate gets\npaid down and reused, so the expensive walks cannot recur. Neither alone gives\n$\\alpha(n)$ (union by rank alone is $O(\\log n)$ amortized, path compression\nalone is $O(\\log n)$ amortized), but their _combination_ collapses to inverse\nAckermann. The full proof uses a subtle potential-function (amortized) argument,\ncharging each node's cost against the steady growth of the ranks above it. The\nintuition to keep is that a node can be \"lifted closer to the root\" only so many\ntimes before it _is_ the root's child, and ranks climb too slowly for that to\nhappen often.\n\n## Application: connectivity and minimum spanning trees\n\nTwo applications make the structure indispensable.\n\n**Connectivity.** Given a graph, call $\\textsc{Make-Set}$ on every vertex, then\n$\\textsc{Union}(u, v)$ for every edge $\\set{u, v}$. Afterward,\n$\\textbf{Find-Set}(u) = \\textbf{Find-Set}(v)$ holds _iff_ $u$ and $v$ lie in the\nsame connected component. The structure also processes _online_ edge insertions:\neach new edge is one **Union**, and connectivity queries between insertions are\neach one pair of $\\textsc{Find-Set}$ calls, both amortized $O(\\alpha(n))$.\n\n**Kruskal's minimum spanning tree.** Kruskal's algorithm builds a minimum\nspanning tree by scanning edges in increasing weight order and adding each edge\n_unless_ it would form a cycle. An edge $\\set{u, v}$ forms a cycle exactly when\n$u$ and $v$ are already connected (i.e. already in the same set), which is the\ndisjoint-set query verbatim.[^skiena-djs]\n\n$$\n% caption: Kruskal as union-find. Scanning edges by weight, each is accepted iff its\n%          endpoints have different roots; the rejected edge $\\{b,c\\}$ closes a cycle\n%          since $b,c$ already share a set\n\\begin{tikzpicture}[\n  vtx\u002F.style={circle, draw, minimum size=7mm, inner sep=0, font=\\small},\n  >=stealth, node distance=14mm]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node[vtx] (a) at (0,0) {$a$};\n  \\node[vtx] (b) at (1.6,0.7) {$b$};\n  \\node[vtx] (c) at (1.6,-0.7) {$c$};\n  \\node[vtx] (d) at (3.2,0) {$d$};\n  \\draw[acc, very thick] (a) -- node[draw=none,font=\\footnotesize,above left=-1pt]{$1$} (b);\n  \\draw[acc, very thick] (a) -- node[draw=none,font=\\footnotesize,below left=-1pt]{$2$} (c);\n  \\draw[acc, very thick] (b) -- node[draw=none,font=\\footnotesize,above right=-1pt]{$3$} (d);\n  \\draw[red, dashed, thick] (b) -- node[draw=none,font=\\footnotesize,right]{$4$} (c);\n  \\node[draw=none, font=\\footnotesize, text=red] at (1.6,-1.6) {$\\{b,c\\}$ rejected: same set};\n  \\begin{scope}[xshift=52mm, yshift=2mm]\n    \\node[draw=none, font=\\footnotesize, align=left, anchor=north west] at (0,0)\n      {$\\{a,b\\}\\,1$: \\textsc{Union} $\\to \\{a,b\\}$\\\\[1pt]\n       $\\{a,c\\}\\,2$: \\textsc{Union} $\\to \\{a,b,c\\}$\\\\[1pt]\n       $\\{b,d\\}\\,3$: \\textsc{Union} $\\to \\{a,b,c,d\\}$\\\\[1pt]\n       $\\{b,c\\}\\,4$: \\textsc{Find} $b=$ \\textsc{Find} $c$ — skip};\n  \\end{scope}\n\\end{tikzpicture}\n$$\n\n```algorithm\ncaption: $\\textsc{MST-Kruskal}(G, w)$ — minimum spanning tree via union-find\n$A \\gets \\emptyset$\nforeach vertex $v$ in $V[G]$ do\n  call $\\textsc{Make-Set}(v)$\nsort the edges of $G$ into nondecreasing order by weight $w$\nforeach edge $\\set{u, v}$ in that order do\n  if call $\\textsc{Find-Set}(u) \\ne$ call Find-Set$(v)$ then\n    $A \\gets A \\cup \\set{\\,\\set{u, v}\\,}$ \u002F\u002F joins two components\n    call $\\textsc{Union}(u, v)$\nreturn $A$\n```\n\nNow read off the running time. Sorting the edges costs $O(m \\log m)$, and since a\nsimple graph has $m \\le n^2$ edges we have $\\log m \\le 2 \\log n$, so the sort is\n$O(m \\log n)$, and this _dominates_. The disjoint-set work spans $O(m)$\n$\\textsc{Find-Set}$ tests and $O(n)$ $\\textsc{Union}$s; even with only the warm-up's\nrelabel-the-smaller scheme this is $O(m + n \\log n)$, already cheaper than the\nsort, and with the rank\u002Fcompression forest it is $O(m\\,\\alpha(n))$, effectively\nlinear. Either way:\n\n$$\nT(m, n) = \\underbrace{O(m \\log m)}_{\\text{sort}} \\;=\\; O(m \\log n).\n$$\n\nThe lesson here is worth stating plainly: Kruskal's _logic_ is one\nacyclicity test per edge, but its _efficiency_ is entirely a property of the\nstructure answering that test. The cycle test **is** the same-set query, and a\ngood disjoint-set structure is exactly what makes Kruskal both simple and fast.\n\n## Takeaways\n\n- The **disjoint-set** ADT — $\\textsc{Make-Set}$, $\\textsc{Find-Set}$, **Union** — maintains a\n  partition under merges and answers \"same group?\" by comparing representatives.\n- A **labels + relabel-the-smaller** warm-up already costs only $O(n \\log n)$\n  total: each element is relabeled $\\le \\log_2 n$ times because its set _doubles_\n  whenever it moves. This doubling argument is the seed of union by rank.\n- The **forest representation** stores each set as a tree of parent pointers\n  whose root is the representative; $\\textsc{Find-Set}$ walks to the root, **Union**\n  links two roots, turning the warm-up's $O(\\text{size})$ relabel into one\n  $O(1)$ pointer move.\n- **Union by rank** keeps trees short (attach shorter under taller), and **path\n  compression** flattens each $\\textsc{Find-Set}$ path to point straight at the root.\n- Together they give $O(\\alpha(n))$ **amortized** time per operation — inverse\n  Ackermann, so $\\le 4$ for any realistic $n$, i.e. effectively constant.\n- It powers **connectivity** queries and **Kruskal's MST**, where the\n  same-set test is exactly the cycle test. Kruskal runs in $O(m \\log n)$,\n  with the sort, not the union-find, as the bottleneck.\n- The unifying theme: **clever data structures are what make algorithms fast.**\n  Kruskal's logic is one line; all of its speed lives in the disjoint-set\n  structure underneath.\n\n[^clrs-djs]: **CLRS**, Ch. 21 — Data Structures for Disjoint Sets (§21.1): the Make-Set\u002FFind-Set\u002FUnion ADT and its near-constant amortized cost.\n[^erickson-djs]: **Erickson**, Ch. — Disjoint Sets: the parent-pointer forest representation of a partition.\n[^clrs-ackermann]: **CLRS**, Ch. 21 — Data Structures for Disjoint Sets (§21.4): Tarjan's $O(m\\,\\alpha(n))$ inverse-Ackermann amortized bound.\n[^skiena-djs]: **Skiena**, §6.1 — Union-Find: the cycle test in Kruskal's MST is exactly the same-set query.\n",{"text":7081,"minutes":7082,"time":7083,"words":7084},"10 min read",9.855,591300,1971,{"title":106,"description":7057},[7087,7089,7091],{"book":6960,"ref":7088},"Ch. 21 — Data Structures for Disjoint Sets",{"book":7034,"ref":7090},"§6.1 — Union-Find",{"book":6974,"ref":7092},"Ch. — Disjoint Sets","available","01.algorithms\u002F04.data-structures\u002F06.union-find",[110,111],"JIR8biD3zIqhQeiH40p4piPNm9dF0ljpTxM9pKkkwn4",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":7098,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":7099,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":7100,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":7101,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":7102,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":7103,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":7104,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":7105,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":7106,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":7107,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":7108,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":7109,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":7110,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":7111,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":7084,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":7112,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":7113,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":7114,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":7115,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":7116,"\u002Falgorithms\u002Fsequences\u002Ftries":7117,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":7118,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":7119,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":7120,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":7121,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":7122,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":7123,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":7124,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":7125,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":7126,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":7127,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":7128,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":7129,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":7130,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":7131,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":7132,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":7133,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":7134,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":7135,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":7136,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":7137,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":7138,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":7139,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":7140,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":7141,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":7142,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":7143,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":7113,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":7144,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":7145,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":7146,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":7147,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":7129,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":7148,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":7149,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":7110,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":7150,"\u002Falgorithms":7151,"\u002Ftheory-of-computation":7152,"\u002Fcomputer-architecture":7152,"\u002Fphysical-computing":7152,"\u002Fdatabases":7152,"\u002Fdeep-learning":7152},1763,2107,1738,2628,1723,2048,1697,1044,1542,1565,1679,1586,1388,1465,1455,1533,1483,1578,1791,1481,2704,1658,2070,1978,2080,1568,1451,1291,1543,1883,1443,1599,2038,2241,1744,1678,2288,1929,1657,1412,1554,1418,1713,1798,1694,1762,1534,1595,1262,1495,1630,2306,2142,107,0,{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":7154,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":7155,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":7156,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":7157,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":7158,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":7159,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":7160,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":7161,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":7162,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":7163,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":7164,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":7165,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":7166,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":7167,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":7168,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":7169,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":7170,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":7171,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":7172,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":7173,"\u002Falgorithms\u002Fsequences\u002Ftries":7174,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":7175,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":7176,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":7177,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":7178,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":7179,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":7180,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":7181,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":7182,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":7183,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":7184,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":7185,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":7186,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":7187,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":7188,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":7189,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":7190,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":7191,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":7192,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":7193,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":7194,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":7195,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":7196,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":7197,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":7198,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":7199,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":7200,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":7201,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":7202,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":7203,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":7204,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":7205,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":7206,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":7207,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":7208,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":7209,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":7210,"\u002Falgorithms":7211,"\u002Ftheory-of-computation":7214,"\u002Fcomputer-architecture":7217,"\u002Fphysical-computing":7220,"\u002Fdatabases":7223,"\u002Fdeep-learning":7226},{"path":11,"title":10,"module":5,"summary":14},{"path":17,"title":16,"module":5,"summary":20},{"path":23,"title":22,"module":5,"summary":27},{"path":34,"title":33,"module":29,"summary":37},{"path":40,"title":39,"module":29,"summary":43},{"path":46,"title":45,"module":29,"summary":49},{"path":56,"title":55,"module":51,"summary":59},{"path":62,"title":61,"module":51,"summary":64},{"path":67,"title":66,"module":51,"summary":70},{"path":78,"title":77,"module":72,"summary":81},{"path":84,"title":83,"module":72,"summary":87},{"path":90,"title":89,"module":72,"summary":92},{"path":95,"title":94,"module":72,"summary":98},{"path":101,"title":100,"module":72,"summary":104},{"path":107,"title":106,"module":72,"summary":112},{"path":115,"title":114,"module":72,"summary":119},{"path":126,"title":125,"module":121,"summary":129},{"path":132,"title":131,"module":121,"summary":134},{"path":137,"title":136,"module":121,"summary":140},{"path":143,"title":142,"module":121,"summary":146},{"path":149,"title":148,"module":121,"summary":151},{"path":158,"title":157,"module":153,"summary":162},{"path":165,"title":164,"module":153,"summary":167},{"path":170,"title":169,"module":153,"summary":172},{"path":175,"title":174,"module":153,"summary":177},{"path":180,"title":179,"module":153,"summary":182},{"path":185,"title":184,"module":153,"summary":187},{"path":190,"title":189,"module":153,"summary":192},{"path":195,"title":194,"module":153,"summary":198},{"path":201,"title":200,"module":153,"summary":204},{"path":211,"title":210,"module":206,"summary":213},{"path":216,"title":215,"module":206,"summary":219},{"path":222,"title":221,"module":206,"summary":224},{"path":227,"title":226,"module":206,"summary":229},{"path":236,"title":235,"module":231,"summary":238},{"path":241,"title":240,"module":231,"summary":244},{"path":247,"title":246,"module":231,"summary":249},{"path":252,"title":251,"module":231,"summary":254},{"path":257,"title":256,"module":231,"summary":259},{"path":262,"title":261,"module":231,"summary":264},{"path":267,"title":266,"module":231,"summary":269},{"path":272,"title":271,"module":231,"summary":274},{"path":277,"title":276,"module":231,"summary":279},{"path":282,"title":281,"module":231,"summary":285},{"path":292,"title":291,"module":287,"summary":295},{"path":298,"title":297,"module":287,"summary":300},{"path":303,"title":302,"module":287,"summary":305},{"path":312,"title":311,"module":307,"summary":315},{"path":318,"title":317,"module":307,"summary":320},{"path":323,"title":322,"module":307,"summary":325},{"path":328,"title":327,"module":307,"summary":330},{"path":338,"title":337,"module":332,"summary":341},{"path":344,"title":343,"module":332,"summary":346},{"path":349,"title":348,"module":332,"summary":351},{"path":359,"title":358,"module":353,"summary":362},{"path":364,"title":361,"module":353,"summary":366},{"path":369,"title":368,"module":353,"summary":373},{"path":7212,"title":7213,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":7215,"title":7216,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":7218,"title":7219,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":7221,"title":7222,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":7224,"title":7225,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":7227,"title":7228,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560522839]