[{"data":1,"prerenderedAt":10348},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":374,"course-wordcounts":10216,"ref-card-index":10272},[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":136,"blurb":376,"body":377,"description":10175,"extension":10176,"meta":10177,"module":121,"navigation":10179,"path":137,"practice":10180,"rawbody":10198,"readingTime":10199,"seo":10204,"sources":10205,"status":10212,"stem":10213,"summary":140,"topics":10214,"__hash__":10215},"course\u002F01.algorithms\u002F05.sequences\u002F03.binary-search-on-the-answer.md","",{"type":378,"value":379,"toc":10160},"minimark",[380,634,639,757,926,988,993,996,1194,1462,1528,1587,1590,2241,2298,2302,2433,2987,3094,3242,3245,3331,3429,3747,3751,3812,3816,3989,4401,4598,5263,5267,5334,5876,5942,6407,6597,6601,6794,7120,7249,7743,7747,7770,7975,8634,9141,9145,9207,9242,9474,9478,10069,10156],[381,382,383,384,387,388,413,414,430,431,446,447,493,494,498,499,523,524,528,529,531,532,624,625,629,630,633],"p",{},"We have seen binary search as the canonical ",[385,386,30],"a",{"href":34}," search: a sorted\narray of ",[389,390,393],"span",{"className":391},[392],"katex",[389,394,398],{"className":395,"ariaHidden":397},[396],"katex-html","true",[389,399,402,407],{"className":400},[401],"base",[389,403],{"className":404,"style":406},[405],"strut","height:0.4306em;",[389,408,412],{"className":409},[410,411],"mord","mathnormal","n"," keys, a target ",[389,415,417],{"className":416},[392],[389,418,420],{"className":419,"ariaHidden":397},[396],[389,421,423,426],{"className":422},[401],[389,424],{"className":425,"style":406},[405],[389,427,429],{"className":428},[410,411],"x",", and a halving loop that finds ",[389,432,434],{"className":433},[392],[389,435,437],{"className":436,"ariaHidden":397},[396],[389,438,440,443],{"className":439},[401],[389,441],{"className":442,"style":406},[405],[389,444,429],{"className":445},[410,411]," (or proves it\nabsent) in ",[389,448,450],{"className":449},[392],[389,451,453],{"className":452,"ariaHidden":397},[396],[389,454,456,460,465,470,480,485,488],{"className":455},[401],[389,457],{"className":458,"style":459},[405],"height:1em;vertical-align:-0.25em;",[389,461,464],{"className":462,"style":463},[410,411],"margin-right:0.0278em;","O",[389,466,469],{"className":467},[468],"mopen","(",[389,471,474],{"className":472},[473],"mop",[389,475,479],{"className":476,"style":478},[410,477],"mathrm","margin-right:0.0139em;","log",[389,481],{"className":482,"style":484},[483],"mspace","margin-right:0.1667em;",[389,486,412],{"className":487},[410,411],[389,489,492],{"className":490},[491],"mclose",")"," comparisons. That framing is correct but narrow. The\narray was never the point. What binary search needs is a\n",[495,496,497],"strong",{},"monotone predicate",": a boolean test ",[389,500,502],{"className":501},[392],[389,503,505],{"className":504,"ariaHidden":397},[396],[389,506,508,511,514,517,520],{"className":507},[401],[389,509],{"className":510,"style":459},[405],[389,512,381],{"className":513},[410,411],[389,515,469],{"className":516},[468],[389,518,429],{"className":519},[410,411],[389,521,492],{"className":522},[491]," that is ",[525,526,527],"code",{},"false"," up to some boundary\nand ",[525,530,397],{}," from there on. Sorted membership is just one instance, where\n",[389,533,535],{"className":534},[392],[389,536,538,569,609],{"className":537,"ariaHidden":397},[396],[389,539,541,544,547,550,554,557,561,566],{"className":540},[401],[389,542],{"className":543,"style":459},[405],[389,545,381],{"className":546},[410,411],[389,548,469],{"className":549},[468],[389,551,553],{"className":552},[410,411],"i",[389,555,492],{"className":556},[491],[389,558],{"className":559,"style":560},[483],"margin-right:0.2778em;",[389,562,565],{"className":563},[564],"mrel","=",[389,567],{"className":568,"style":560},[483],[389,570,572,576,584,588,592,595,599,602,606],{"className":571},[401],[389,573],{"className":574,"style":575},[405],"height:1.2em;vertical-align:-0.35em;",[389,577,579],{"className":578},[468],[389,580,469],{"className":581},[582,583],"delimsizing","size1",[389,585,587],{"className":586},[410,411],"A",[389,589,591],{"className":590},[468],"[",[389,593,553],{"className":594},[410,411],[389,596,598],{"className":597},[491],"]",[389,600],{"className":601,"style":560},[483],[389,603,605],{"className":604},[564],"≥",[389,607],{"className":608,"style":560},[483],[389,610,612,615,618],{"className":611},[401],[389,613],{"className":614,"style":575},[405],[389,616,429],{"className":617},[410,411],[389,619,621],{"className":620},[491],[389,622,492],{"className":623},[582,583],". Once we see binary search as ",[626,627,628],"em",{},"locating the\nboundary of a monotone predicate",", we can search ranges that no array ever\nmaterialises, the technique known as ",[495,631,632],{},"binary search on the answer",".",[635,636,638],"h2",{"id":637},"recap-binary-search-on-a-sorted-array","Recap: binary search on a sorted array",[381,640,641,642,685,686,701,702,740,741,756],{},"Fix a sorted array ",[389,643,645],{"className":644},[392],[389,646,648],{"className":647,"ariaHidden":397},[396],[389,649,651,654,657,660,664,667,676,679,682],{"className":650},[401],[389,652],{"className":653,"style":459},[405],[389,655,587],{"className":656},[410,411],[389,658,591],{"className":659},[468],[389,661,663],{"className":662},[410],"0",[389,665],{"className":666,"style":484},[483],[389,668,671],{"className":669},[670],"minner",[389,672,675],{"className":673},[674],"mpunct","..",[389,677],{"className":678,"style":484},[483],[389,680,412],{"className":681},[410,411],[389,683,492],{"className":684},[491]," and a target ",[389,687,689],{"className":688},[392],[389,690,692],{"className":691,"ariaHidden":397},[396],[389,693,695,698],{"className":694},[401],[389,696],{"className":697,"style":406},[405],[389,699,429],{"className":700},[410,411],". The loop maintains an\ninterval ",[389,703,705],{"className":704},[392],[389,706,708],{"className":707,"ariaHidden":397},[396],[389,709,711,714,717,722,726,730,733,737],{"className":710},[401],[389,712],{"className":713,"style":459},[405],[389,715,591],{"className":716},[468],[389,718,721],{"className":719,"style":720},[410,411],"margin-right:0.0197em;","l",[389,723,725],{"className":724},[410,411],"o",[389,727,729],{"className":728},[674],",",[389,731],{"className":732,"style":484},[483],[389,734,736],{"className":735},[410,411],"hi",[389,738,598],{"className":739},[491]," guaranteed to contain ",[389,742,744],{"className":743},[392],[389,745,747],{"className":746,"ariaHidden":397},[396],[389,748,750,753],{"className":749},[401],[389,751],{"className":752,"style":406},[405],[389,754,429],{"className":755},[410,411]," if it is present at all.",[758,759,761],"callout",{"type":760},"lemma",[381,762,763,766,767,803,804,837,838,853,854,883,884,925],{},[495,764,765],{},"Invariant."," At the top of each iteration, if ",[389,768,770],{"className":769},[392],[389,771,773,793],{"className":772,"ariaHidden":397},[396],[389,774,776,780,783,786,790],{"className":775},[401],[389,777],{"className":778,"style":779},[405],"height:0.5782em;vertical-align:-0.0391em;",[389,781,429],{"className":782},[410,411],[389,784],{"className":785,"style":560},[483],[389,787,789],{"className":788},[564],"∈",[389,791],{"className":792,"style":560},[483],[389,794,796,800],{"className":795},[401],[389,797],{"className":798,"style":799},[405],"height:0.6833em;",[389,801,587],{"className":802},[410,411]," then its index lies in\n",[389,805,807],{"className":806},[392],[389,808,810],{"className":809,"ariaHidden":397},[396],[389,811,813,816,819,822,825,828,831,834],{"className":812},[401],[389,814],{"className":815,"style":459},[405],[389,817,591],{"className":818},[468],[389,820,721],{"className":821,"style":720},[410,411],[389,823,725],{"className":824},[410,411],[389,826,729],{"className":827},[674],[389,829],{"className":830,"style":484},[483],[389,832,736],{"className":833},[410,411],[389,835,598],{"className":836},[491],". Each step compares ",[389,839,841],{"className":840},[392],[389,842,844],{"className":843,"ariaHidden":397},[396],[389,845,847,850],{"className":846},[401],[389,848],{"className":849,"style":406},[405],[389,851,429],{"className":852},[410,411]," to ",[389,855,857],{"className":856},[392],[389,858,860],{"className":859,"ariaHidden":397},[396],[389,861,863,866,869,872,876,880],{"className":862},[401],[389,864],{"className":865,"style":459},[405],[389,867,587],{"className":868},[410,411],[389,870,591],{"className":871},[468],[389,873,875],{"className":874},[410,411],"mi",[389,877,879],{"className":878},[410,411],"d",[389,881,598],{"className":882},[491]," and discards the half that\ncannot contain it, so the invariant is preserved while ",[389,885,887],{"className":886},[392],[389,888,890,912],{"className":889,"ariaHidden":397},[396],[389,891,893,897,900,904,909],{"className":892},[401],[389,894],{"className":895,"style":896},[405],"height:0.7778em;vertical-align:-0.0833em;",[389,898,736],{"className":899},[410,411],[389,901],{"className":902,"style":903},[483],"margin-right:0.2222em;",[389,905,908],{"className":906},[907],"mbin","−",[389,910],{"className":911,"style":903},[483],[389,913,915,919,922],{"className":914},[401],[389,916],{"className":917,"style":918},[405],"height:0.6944em;",[389,920,721],{"className":921,"style":720},[410,411],[389,923,725],{"className":924},[410,411]," at least\nhalves.",[381,927,928,929,962,963,983,984,987],{},"Because the interval length drops geometrically, the loop runs ",[389,930,932],{"className":931},[392],[389,933,935],{"className":934,"ariaHidden":397},[396],[389,936,938,941,944,947,953,956,959],{"className":937},[401],[389,939],{"className":940,"style":459},[405],[389,942,464],{"className":943,"style":463},[410,411],[389,945,469],{"className":946},[468],[389,948,950],{"className":949},[473],[389,951,479],{"className":952,"style":478},[410,477],[389,954],{"className":955,"style":484},[483],[389,957,412],{"className":958},[410,411],[389,960,492],{"className":961},[491]," times.\nThe plain ",[964,965,966,967,982],"q",{},"does ",[389,968,970],{"className":969},[392],[389,971,973],{"className":972,"ariaHidden":397},[396],[389,974,976,979],{"className":975},[401],[389,977],{"className":978,"style":406},[405],[389,980,429],{"className":981},[410,411]," occur?"," version is easy; the subtle and far more useful\nversions are the ",[495,985,986],{},"boundary"," queries.",[989,990,992],"h3",{"id":991},"lower_bound-and-upper_bound","lower_bound and upper_bound",[381,994,995],{},"Two queries answer almost every practical question about a sorted array:",[997,998,999,1101],"ul",{},[1000,1001,1002,1037,1038,1041,1042,1058,1059,633],"li",{},[389,1003,1005],{"className":1004},[392],[389,1006,1008],{"className":1007,"ariaHidden":397},[396],[389,1009,1011,1015,1028,1031,1034],{"className":1010},[401],[389,1012],{"className":1013,"style":1014},[405],"height:1.06em;vertical-align:-0.31em;",[389,1016,1020],{"className":1017},[1018,1019],"enclosing","textsc",[389,1021,1024],{"className":1022},[410,1023],"text",[389,1025,1027],{"className":1026},[410],"lower_bound",[389,1029,469],{"className":1030},[468],[389,1032,429],{"className":1033},[410,411],[389,1035,492],{"className":1036},[491]," is the ",[495,1039,1040],{},"first"," index ",[389,1043,1045],{"className":1044},[392],[389,1046,1048],{"className":1047,"ariaHidden":397},[396],[389,1049,1051,1055],{"className":1050},[401],[389,1052],{"className":1053,"style":1054},[405],"height:0.6595em;",[389,1056,553],{"className":1057},[410,411]," with ",[389,1060,1062],{"className":1061},[392],[389,1063,1065,1092],{"className":1064,"ariaHidden":397},[396],[389,1066,1068,1071,1074,1077,1080,1083,1086,1089],{"className":1067},[401],[389,1069],{"className":1070,"style":459},[405],[389,1072,587],{"className":1073},[410,411],[389,1075,591],{"className":1076},[468],[389,1078,553],{"className":1079},[410,411],[389,1081,598],{"className":1082},[491],[389,1084],{"className":1085,"style":560},[483],[389,1087,605],{"className":1088},[564],[389,1090],{"className":1091,"style":560},[483],[389,1093,1095,1098],{"className":1094},[401],[389,1096],{"className":1097,"style":406},[405],[389,1099,429],{"className":1100},[410,411],[1000,1102,1103,1037,1134,1041,1136,1058,1151,633],{},[389,1104,1106],{"className":1105},[392],[389,1107,1109],{"className":1108,"ariaHidden":397},[396],[389,1110,1112,1115,1125,1128,1131],{"className":1111},[401],[389,1113],{"className":1114,"style":1014},[405],[389,1116,1118],{"className":1117},[1018,1019],[389,1119,1121],{"className":1120},[410,1023],[389,1122,1124],{"className":1123},[410],"upper_bound",[389,1126,469],{"className":1127},[468],[389,1129,429],{"className":1130},[410,411],[389,1132,492],{"className":1133},[491],[495,1135,1040],{},[389,1137,1139],{"className":1138},[392],[389,1140,1142],{"className":1141,"ariaHidden":397},[396],[389,1143,1145,1148],{"className":1144},[401],[389,1146],{"className":1147,"style":1054},[405],[389,1149,553],{"className":1150},[410,411],[389,1152,1154],{"className":1153},[392],[389,1155,1157,1185],{"className":1156,"ariaHidden":397},[396],[389,1158,1160,1163,1166,1169,1172,1175,1178,1182],{"className":1159},[401],[389,1161],{"className":1162,"style":459},[405],[389,1164,587],{"className":1165},[410,411],[389,1167,591],{"className":1168},[468],[389,1170,553],{"className":1171},[410,411],[389,1173,598],{"className":1174},[491],[389,1176],{"className":1177,"style":560},[483],[389,1179,1181],{"className":1180},[564],">",[389,1183],{"className":1184,"style":560},[483],[389,1186,1188,1191],{"className":1187},[401],[389,1189],{"className":1190,"style":406},[405],[389,1192,429],{"className":1193},[410,411],[381,1195,1196,1197,1260,1261,1276,1277,1299,1300,1315,1316,1397,1398,1440,1441,1457,1458,1461],{},"Their difference ",[389,1198,1200],{"className":1199},[392],[389,1201,1203,1236],{"className":1202,"ariaHidden":397},[396],[389,1204,1206,1209,1218,1221,1224,1227,1230,1233],{"className":1205},[401],[389,1207],{"className":1208,"style":1014},[405],[389,1210,1212],{"className":1211},[1018,1019],[389,1213,1215],{"className":1214},[410,1023],[389,1216,1124],{"className":1217},[410],[389,1219,469],{"className":1220},[468],[389,1222,429],{"className":1223},[410,411],[389,1225,492],{"className":1226},[491],[389,1228],{"className":1229,"style":903},[483],[389,1231,908],{"className":1232},[907],[389,1234],{"className":1235,"style":903},[483],[389,1237,1239,1242,1251,1254,1257],{"className":1238},[401],[389,1240],{"className":1241,"style":1014},[405],[389,1243,1245],{"className":1244},[1018,1019],[389,1246,1248],{"className":1247},[410,1023],[389,1249,1027],{"className":1250},[410],[389,1252,469],{"className":1253},[468],[389,1255,429],{"className":1256},[410,411],[389,1258,492],{"className":1259},[491]," is the count\nof elements equal to ",[389,1262,1264],{"className":1263},[392],[389,1265,1267],{"className":1266,"ariaHidden":397},[396],[389,1268,1270,1273],{"className":1269},[401],[389,1271],{"className":1272,"style":406},[405],[389,1274,429],{"className":1275},[410,411],"; ",[389,1278,1280],{"className":1279},[392],[389,1281,1283],{"className":1282,"ariaHidden":397},[396],[389,1284,1286,1290],{"className":1285},[401],[389,1287],{"className":1288,"style":1289},[405],"height:1.0044em;vertical-align:-0.31em;",[389,1291,1293],{"className":1292},[1018,1019],[389,1294,1296],{"className":1295},[410,1023],[389,1297,1027],{"className":1298},[410]," itself is the insertion point\nthat keeps ",[389,1301,1303],{"className":1302},[392],[389,1304,1306],{"className":1305,"ariaHidden":397},[396],[389,1307,1309,1312],{"className":1308},[401],[389,1310],{"className":1311,"style":799},[405],[389,1313,587],{"className":1314},[410,411]," sorted. Both are boundary searches over the monotone predicate\n",[389,1317,1319],{"className":1318},[392],[389,1320,1322,1349,1382],{"className":1321,"ariaHidden":397},[396],[389,1323,1325,1328,1331,1334,1337,1340,1343,1346],{"className":1324},[401],[389,1326],{"className":1327,"style":459},[405],[389,1329,381],{"className":1330},[410,411],[389,1332,469],{"className":1333},[468],[389,1335,553],{"className":1336},[410,411],[389,1338,492],{"className":1339},[491],[389,1341],{"className":1342,"style":560},[483],[389,1344,565],{"className":1345},[564],[389,1347],{"className":1348,"style":560},[483],[389,1350,1352,1355,1361,1364,1367,1370,1373,1376,1379],{"className":1351},[401],[389,1353],{"className":1354,"style":575},[405],[389,1356,1358],{"className":1357},[468],[389,1359,469],{"className":1360},[582,583],[389,1362,587],{"className":1363},[410,411],[389,1365,591],{"className":1366},[468],[389,1368,553],{"className":1369},[410,411],[389,1371,598],{"className":1372},[491],[389,1374],{"className":1375,"style":560},[483],[389,1377,605],{"className":1378},[564],[389,1380],{"className":1381,"style":560},[483],[389,1383,1385,1388,1391],{"className":1384},[401],[389,1386],{"className":1387,"style":575},[405],[389,1389,429],{"className":1390},[410,411],[389,1392,1394],{"className":1393},[491],[389,1395,492],{"className":1396},[582,583]," (respectively ",[389,1399,1401],{"className":1400},[392],[389,1402,1404,1431],{"className":1403,"ariaHidden":397},[396],[389,1405,1407,1410,1413,1416,1419,1422,1425,1428],{"className":1406},[401],[389,1408],{"className":1409,"style":459},[405],[389,1411,587],{"className":1412},[410,411],[389,1414,591],{"className":1415},[468],[389,1417,553],{"className":1418},[410,411],[389,1420,598],{"className":1421},[491],[389,1423],{"className":1424,"style":560},[483],[389,1426,1181],{"className":1427},[564],[389,1429],{"className":1430,"style":560},[483],[389,1432,1434,1437],{"className":1433},[401],[389,1435],{"className":1436,"style":406},[405],[389,1438,429],{"className":1439},[410,411],"): a sorted array makes\n",[389,1442,1444],{"className":1443},[392],[389,1445,1447],{"className":1446,"ariaHidden":397},[396],[389,1448,1450,1454],{"className":1449},[401],[389,1451],{"className":1452,"style":1453},[405],"height:0.625em;vertical-align:-0.1944em;",[389,1455,381],{"className":1456},[410,411]," go ",[525,1459,1460],{},"false, …, false, true, …, true"," exactly once.",[381,1463,1464,1465,1468,1469,1472,1473,1476,1477,1507,1508,1523,1524,1527],{},"The reliable template is ",[495,1466,1467],{},"half-open"," and uses ",[525,1470,1471],{},"lo \u003C hi",", never ",[525,1474,1475],{},"lo \u003C= hi",". We\nsearch for the smallest index in ",[389,1478,1480],{"className":1479},[392],[389,1481,1483],{"className":1482,"ariaHidden":397},[396],[389,1484,1486,1489,1492,1495,1498,1501,1504],{"className":1485},[401],[389,1487],{"className":1488,"style":459},[405],[389,1490,591],{"className":1491},[468],[389,1493,663],{"className":1494},[410],[389,1496,729],{"className":1497},[674],[389,1499],{"className":1500,"style":484},[483],[389,1502,412],{"className":1503},[410,411],[389,1505,598],{"className":1506},[491]," at which the predicate holds, treating\nindex ",[389,1509,1511],{"className":1510},[392],[389,1512,1514],{"className":1513,"ariaHidden":397},[396],[389,1515,1517,1520],{"className":1516},[401],[389,1518],{"className":1519,"style":406},[405],[389,1521,412],{"className":1522},[410,411]," as a virtual ",[964,1525,1526],{},"past the end"," sentinel that is always feasible.",[1529,1530,1534],"pre",{"className":1531,"code":1532,"language":1533,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: $\\textsc{lower\\_bound}(A, x)$ — first index $i$ with $A[i] \\ge x$\n$lo \\gets 0$\n$hi \\gets n$ \u002F\u002F half-open: hi is past-the-end\nwhile $lo \u003C hi$ do\n  $mid \\gets lo + \\lfloor (hi - lo)\u002F2 \\rfloor$ \u002F\u002F floor, and overflow-safe\n  if $A[mid] \\ge x$ then\n    $hi \\gets mid$ \u002F\u002F mid may be the answer\n  else\n    $lo \\gets mid + 1$ \u002F\u002F mid infeasible\nreturn $lo$ \u002F\u002F $lo = hi$: boundary\n","algorithm",[525,1535,1536,1542,1547,1552,1557,1562,1567,1572,1577,1582],{"__ignoreMap":376},[389,1537,1539],{"class":1538,"line":6},"line",[389,1540,1541],{},"caption: $\\textsc{lower\\_bound}(A, x)$ — first index $i$ with $A[i] \\ge x$\n",[389,1543,1544],{"class":1538,"line":18},[389,1545,1546],{},"$lo \\gets 0$\n",[389,1548,1549],{"class":1538,"line":24},[389,1550,1551],{},"$hi \\gets n$ \u002F\u002F half-open: hi is past-the-end\n",[389,1553,1554],{"class":1538,"line":73},[389,1555,1556],{},"while $lo \u003C hi$ do\n",[389,1558,1559],{"class":1538,"line":102},[389,1560,1561],{},"  $mid \\gets lo + \\lfloor (hi - lo)\u002F2 \\rfloor$ \u002F\u002F floor, and overflow-safe\n",[389,1563,1564],{"class":1538,"line":108},[389,1565,1566],{},"  if $A[mid] \\ge x$ then\n",[389,1568,1569],{"class":1538,"line":116},[389,1570,1571],{},"    $hi \\gets mid$ \u002F\u002F mid may be the answer\n",[389,1573,1574],{"class":1538,"line":196},[389,1575,1576],{},"  else\n",[389,1578,1579],{"class":1538,"line":202},[389,1580,1581],{},"    $lo \\gets mid + 1$ \u002F\u002F mid infeasible\n",[389,1583,1584],{"class":1538,"line":283},[389,1585,1586],{},"return $lo$ \u002F\u002F $lo = hi$: boundary\n",[381,1588,1589],{},"Two details make this correct, and getting either wrong is the classic off-by-one\nbug:",[997,1591,1592,1835],{},[1000,1593,1594,1647,1648,1682,1683,1719,1720,1751,1752,1767,1768,1804,1805,633],{},[495,1595,1596,1597,1630,1631,1646],{},"The interval is half-open, ",[389,1598,1600],{"className":1599},[392],[389,1601,1603],{"className":1602,"ariaHidden":397},[396],[389,1604,1606,1609,1612,1615,1618,1621,1624,1627],{"className":1605},[401],[389,1607],{"className":1608,"style":459},[405],[389,1610,591],{"className":1611},[468],[389,1613,721],{"className":1614,"style":720},[410,411],[389,1616,725],{"className":1617},[410,411],[389,1619,729],{"className":1620},[674],[389,1622],{"className":1623,"style":484},[483],[389,1625,736],{"className":1626},[410,411],[389,1628,492],{"className":1629},[491]," as a search space but ",[389,1632,1634],{"className":1633},[392],[389,1635,1637],{"className":1636,"ariaHidden":397},[396],[389,1638,1640,1643],{"className":1639},[401],[389,1641],{"className":1642,"style":918},[405],[389,1644,736],{"className":1645},[410,411]," inclusive as\nan answer."," We initialize ",[389,1649,1651],{"className":1650},[392],[389,1652,1654,1673],{"className":1653,"ariaHidden":397},[396],[389,1655,1657,1660,1663,1666,1670],{"className":1656},[401],[389,1658],{"className":1659,"style":918},[405],[389,1661,736],{"className":1662},[410,411],[389,1664],{"className":1665,"style":560},[483],[389,1667,1669],{"className":1668},[564],"←",[389,1671],{"className":1672,"style":560},[483],[389,1674,1676,1679],{"className":1675},[401],[389,1677],{"className":1678,"style":406},[405],[389,1680,412],{"className":1681},[410,411],", not ",[389,1684,1686],{"className":1685},[392],[389,1687,1689,1708],{"className":1688,"ariaHidden":397},[396],[389,1690,1692,1696,1699,1702,1705],{"className":1691},[401],[389,1693],{"className":1694,"style":1695},[405],"height:0.6667em;vertical-align:-0.0833em;",[389,1697,412],{"className":1698},[410,411],[389,1700],{"className":1701,"style":903},[483],[389,1703,908],{"className":1704},[907],[389,1706],{"className":1707,"style":903},[483],[389,1709,1711,1715],{"className":1710},[401],[389,1712],{"className":1713,"style":1714},[405],"height:0.6444em;",[389,1716,1718],{"className":1717},[410],"1",", because the answer can be\n",[964,1721,1722,1723,729],{},"no element is ",[389,1724,1726],{"className":1725},[392],[389,1727,1729,1742],{"className":1728,"ariaHidden":397},[396],[389,1730,1732,1736,1739],{"className":1731},[401],[389,1733],{"className":1734,"style":1735},[405],"height:0.7719em;vertical-align:-0.136em;",[389,1737,605],{"className":1738},[564],[389,1740],{"className":1741,"style":560},[483],[389,1743,1745,1748],{"className":1744},[401],[389,1746],{"className":1747,"style":406},[405],[389,1749,429],{"className":1750},[410,411]," i.e. index ",[389,1753,1755],{"className":1754},[392],[389,1756,1758],{"className":1757,"ariaHidden":397},[396],[389,1759,1761,1764],{"className":1760},[401],[389,1762],{"className":1763,"style":406},[405],[389,1765,412],{"className":1766},[410,411],". The loop's exit ",[389,1769,1771],{"className":1770},[392],[389,1772,1774,1795],{"className":1773,"ariaHidden":397},[396],[389,1775,1777,1780,1783,1786,1789,1792],{"className":1776},[401],[389,1778],{"className":1779,"style":918},[405],[389,1781,721],{"className":1782,"style":720},[410,411],[389,1784,725],{"className":1785},[410,411],[389,1787],{"className":1788,"style":560},[483],[389,1790,565],{"className":1791},[564],[389,1793],{"className":1794,"style":560},[483],[389,1796,1798,1801],{"className":1797},[401],[389,1799],{"className":1800,"style":918},[405],[389,1802,736],{"className":1803},[410,411]," then names a\nvalid boundary in ",[389,1806,1808],{"className":1807},[392],[389,1809,1811],{"className":1810,"ariaHidden":397},[396],[389,1812,1814,1817,1820,1823,1826,1829,1832],{"className":1813},[401],[389,1815],{"className":1816,"style":459},[405],[389,1818,591],{"className":1819},[468],[389,1821,663],{"className":1822},[410],[389,1824,729],{"className":1825},[674],[389,1827],{"className":1828,"style":484},[483],[389,1830,412],{"className":1831},[410,411],[389,1833,598],{"className":1834},[491],[1000,1836,1837,1865,1866,1893,1894,1930,1931,1967,1968,1986,1987,2014,2015,2073,2074,2092,2093,2096,2097,2135,2136,2172,2173,2194,2195,2240],{},[495,1838,1839,1840,1864],{},"The mid uses ",[389,1841,1843],{"className":1842},[392],[389,1844,1846],{"className":1845,"ariaHidden":397},[396],[389,1847,1849,1852,1856,1860],{"className":1848},[401],[389,1850],{"className":1851,"style":459},[405],[389,1853,1855],{"className":1854},[468],"⌊",[389,1857,1859],{"className":1858},[410],"⋅",[389,1861,1863],{"className":1862},[491],"⌋"," and the two branches are asymmetric.","\nWhen ",[389,1867,1869],{"className":1868},[392],[389,1870,1872],{"className":1871,"ariaHidden":397},[396],[389,1873,1875,1878,1881,1884,1887,1890],{"className":1874},[401],[389,1876],{"className":1877,"style":459},[405],[389,1879,381],{"className":1880},[410,411],[389,1882,469],{"className":1883},[468],[389,1885,875],{"className":1886},[410,411],[389,1888,879],{"className":1889},[410,411],[389,1891,492],{"className":1892},[491]," holds we set ",[389,1895,1897],{"className":1896},[392],[389,1898,1900,1918],{"className":1899,"ariaHidden":397},[396],[389,1901,1903,1906,1909,1912,1915],{"className":1902},[401],[389,1904],{"className":1905,"style":918},[405],[389,1907,736],{"className":1908},[410,411],[389,1910],{"className":1911,"style":560},[483],[389,1913,1669],{"className":1914},[564],[389,1916],{"className":1917,"style":560},[483],[389,1919,1921,1924,1927],{"className":1920},[401],[389,1922],{"className":1923,"style":918},[405],[389,1925,875],{"className":1926},[410,411],[389,1928,879],{"className":1929},[410,411]," (not ",[389,1932,1934],{"className":1933},[392],[389,1935,1937,1958],{"className":1936,"ariaHidden":397},[396],[389,1938,1940,1943,1946,1949,1952,1955],{"className":1939},[401],[389,1941],{"className":1942,"style":896},[405],[389,1944,875],{"className":1945},[410,411],[389,1947,879],{"className":1948},[410,411],[389,1950],{"className":1951,"style":903},[483],[389,1953,908],{"className":1954},[907],[389,1956],{"className":1957,"style":903},[483],[389,1959,1961,1964],{"className":1960},[401],[389,1962],{"className":1963,"style":1714},[405],[389,1965,1718],{"className":1966},[410],"), because ",[389,1969,1971],{"className":1970},[392],[389,1972,1974],{"className":1973,"ariaHidden":397},[396],[389,1975,1977,1980,1983],{"className":1976},[401],[389,1978],{"className":1979,"style":918},[405],[389,1981,875],{"className":1982},[410,411],[389,1984,879],{"className":1985},[410,411]," is\nitself a candidate boundary. When ",[389,1988,1990],{"className":1989},[392],[389,1991,1993],{"className":1992,"ariaHidden":397},[396],[389,1994,1996,1999,2002,2005,2008,2011],{"className":1995},[401],[389,1997],{"className":1998,"style":459},[405],[389,2000,381],{"className":2001},[410,411],[389,2003,469],{"className":2004},[468],[389,2006,875],{"className":2007},[410,411],[389,2009,879],{"className":2010},[410,411],[389,2012,492],{"className":2013},[491]," fails we set ",[389,2016,2018],{"className":2017},[392],[389,2019,2021,2042,2064],{"className":2020,"ariaHidden":397},[396],[389,2022,2024,2027,2030,2033,2036,2039],{"className":2023},[401],[389,2025],{"className":2026,"style":918},[405],[389,2028,721],{"className":2029,"style":720},[410,411],[389,2031,725],{"className":2032},[410,411],[389,2034],{"className":2035,"style":560},[483],[389,2037,1669],{"className":2038},[564],[389,2040],{"className":2041,"style":560},[483],[389,2043,2045,2048,2051,2054,2057,2061],{"className":2044},[401],[389,2046],{"className":2047,"style":896},[405],[389,2049,875],{"className":2050},[410,411],[389,2052,879],{"className":2053},[410,411],[389,2055],{"className":2056,"style":903},[483],[389,2058,2060],{"className":2059},[907],"+",[389,2062],{"className":2063,"style":903},[483],[389,2065,2067,2070],{"className":2066},[401],[389,2068],{"className":2069,"style":1714},[405],[389,2071,1718],{"className":2072},[410],",\nbecause ",[389,2075,2077],{"className":2076},[392],[389,2078,2080],{"className":2079,"ariaHidden":397},[396],[389,2081,2083,2086,2089],{"className":2082},[401],[389,2084],{"className":2085,"style":918},[405],[389,2087,875],{"className":2088},[410,411],[389,2090,879],{"className":2091},[410,411]," is now known-infeasible and ",[626,2094,2095],{},"must"," be excluded. With a floored\nmid, ",[389,2098,2100],{"className":2099},[392],[389,2101,2103,2126],{"className":2102,"ariaHidden":397},[396],[389,2104,2106,2110,2113,2116,2119,2123],{"className":2105},[401],[389,2107],{"className":2108,"style":2109},[405],"height:0.7335em;vertical-align:-0.0391em;",[389,2111,875],{"className":2112},[410,411],[389,2114,879],{"className":2115},[410,411],[389,2117],{"className":2118,"style":560},[483],[389,2120,2122],{"className":2121},[564],"\u003C",[389,2124],{"className":2125,"style":560},[483],[389,2127,2129,2132],{"className":2128},[401],[389,2130],{"className":2131,"style":918},[405],[389,2133,736],{"className":2134},[410,411]," always, so ",[389,2137,2139],{"className":2138},[392],[389,2140,2142,2160],{"className":2141,"ariaHidden":397},[396],[389,2143,2145,2148,2151,2154,2157],{"className":2144},[401],[389,2146],{"className":2147,"style":918},[405],[389,2149,736],{"className":2150},[410,411],[389,2152],{"className":2153,"style":560},[483],[389,2155,1669],{"className":2156},[564],[389,2158],{"className":2159,"style":560},[483],[389,2161,2163,2166,2169],{"className":2162},[401],[389,2164],{"className":2165,"style":918},[405],[389,2167,875],{"className":2168},[410,411],[389,2170,879],{"className":2171},[410,411]," strictly shrinks the interval and the\nloop cannot spin forever. For ",[389,2174,2176],{"className":2175},[392],[389,2177,2179],{"className":2178,"ariaHidden":397},[396],[389,2180,2182,2185],{"className":2181},[401],[389,2183],{"className":2184,"style":1289},[405],[389,2186,2188],{"className":2187},[1018,1019],[389,2189,2191],{"className":2190},[410,1023],[389,2192,1124],{"className":2193},[410],", change the test to\n",[389,2196,2198],{"className":2197},[392],[389,2199,2201,2231],{"className":2200,"ariaHidden":397},[396],[389,2202,2204,2207,2210,2213,2216,2219,2222,2225,2228],{"className":2203},[401],[389,2205],{"className":2206,"style":459},[405],[389,2208,587],{"className":2209},[410,411],[389,2211,591],{"className":2212},[468],[389,2214,875],{"className":2215},[410,411],[389,2217,879],{"className":2218},[410,411],[389,2220,598],{"className":2221},[491],[389,2223],{"className":2224,"style":560},[483],[389,2226,1181],{"className":2227},[564],[389,2229],{"className":2230,"style":560},[483],[389,2232,2234,2237],{"className":2233},[401],[389,2235],{"className":2236,"style":406},[405],[389,2238,429],{"className":2239},[410,411],"; nothing else moves.",[758,2242,2244],{"type":2243},"note",[381,2245,2246,2249,2250,2268,2269,2272,2273,2288,2289,2292,2293,2295,2296,633],{},[495,2247,2248],{},"Intuition."," Think of ",[389,2251,2253],{"className":2252},[392],[389,2254,2256],{"className":2255,"ariaHidden":397},[396],[389,2257,2259,2262,2265],{"className":2258},[401],[389,2260],{"className":2261,"style":918},[405],[389,2263,721],{"className":2264,"style":720},[410,411],[389,2266,725],{"className":2267},[410,411]," as ",[964,2270,2271],{},"the frontier of proven-infeasible"," and ",[389,2274,2276],{"className":2275},[392],[389,2277,2279],{"className":2278,"ariaHidden":397},[396],[389,2280,2282,2285],{"className":2281},[401],[389,2283],{"className":2284,"style":918},[405],[389,2286,736],{"className":2287},[410,411]," as\n",[964,2290,2291],{},"the frontier of proven-feasible (or the sentinel)."," The two markers march\ntoward each other; when they meet, they pinch the boundary between the last\n",[525,2294,527],{}," and the first ",[525,2297,397],{},[635,2299,2301],{"id":2300},"the-generalization-searching-a-monotone-predicate","The generalization: searching a monotone predicate",[381,2303,2304,2305,2320,2321,2429,2430,2342],{},"Nothing in the loop above inspected the array except through ",[389,2306,2308],{"className":2307},[392],[389,2309,2311],{"className":2310,"ariaHidden":397},[396],[389,2312,2314,2317],{"className":2313},[401],[389,2315],{"className":2316,"style":1453},[405],[389,2318,381],{"className":2319},[410,411],". Abstract it\naway. Let ",[389,2322,2324],{"className":2323},[392],[389,2325,2327,2346,2398],{"className":2326,"ariaHidden":397},[396],[389,2328,2330,2333,2336,2339,2343],{"className":2329},[401],[389,2331],{"className":2332,"style":1453},[405],[389,2334,381],{"className":2335},[410,411],[389,2337],{"className":2338,"style":560},[483],[389,2340,2342],{"className":2341},[564],":",[389,2344],{"className":2345,"style":560},[483],[389,2347,2349,2352,2356,2359,2362,2365,2368,2372,2375,2378,2381,2384,2388,2391,2395],{"className":2348},[401],[389,2350],{"className":2351,"style":459},[405],[389,2353,2355],{"className":2354},[468],"{",[389,2357,721],{"className":2358,"style":720},[410,411],[389,2360,725],{"className":2361},[410,411],[389,2363,729],{"className":2364},[674],[389,2366],{"className":2367,"style":484},[483],[389,2369,2371],{"className":2370},[670],"…",[389,2373],{"className":2374,"style":484},[483],[389,2376,729],{"className":2377},[674],[389,2379],{"className":2380,"style":484},[483],[389,2382,736],{"className":2383},[410,411],[389,2385,2387],{"className":2386},[491],"}",[389,2389],{"className":2390,"style":560},[483],[389,2392,2394],{"className":2393},[564],"→",[389,2396],{"className":2397,"style":560},[483],[389,2399,2401,2404,2407,2414,2417,2420,2426],{"className":2400},[401],[389,2402],{"className":2403,"style":459},[405],[389,2405,2355],{"className":2406},[468],[389,2408,2410],{"className":2409},[410,1023],[389,2411,527],{"className":2412},[410,2413],"texttt",[389,2415,729],{"className":2416},[674],[389,2418],{"className":2419,"style":484},[483],[389,2421,2423],{"className":2422},[410,1023],[389,2424,397],{"className":2425},[410,2413],[389,2427,2387],{"className":2428},[491]," be\n",[495,2431,2432],{},"monotone",[758,2434,2436],{"type":2435},"definition",[381,2437,2438,2441,2442,2457,2458,2512,2513,2547,2548,2885,2886,2888,2889,2935,2936,2986],{},[495,2439,2440],{},"Definition (monotone predicate)."," ",[389,2443,2445],{"className":2444},[392],[389,2446,2448],{"className":2447,"ariaHidden":397},[396],[389,2449,2451,2454],{"className":2450},[401],[389,2452],{"className":2453,"style":1453},[405],[389,2455,381],{"className":2456},[410,411]," is monotone if ",[389,2459,2461],{"className":2460},[392],[389,2462,2464,2492],{"className":2463,"ariaHidden":397},[396],[389,2465,2467,2470,2473,2476,2479,2482,2485,2489],{"className":2466},[401],[389,2468],{"className":2469,"style":459},[405],[389,2471,381],{"className":2472},[410,411],[389,2474,469],{"className":2475},[468],[389,2477,429],{"className":2478},[410,411],[389,2480,492],{"className":2481},[491],[389,2483],{"className":2484,"style":560},[483],[389,2486,2488],{"className":2487},[564],"⇒",[389,2490],{"className":2491,"style":560},[483],[389,2493,2495,2498,2501,2504,2509],{"className":2494},[401],[389,2496],{"className":2497,"style":459},[405],[389,2499,381],{"className":2500},[410,411],[389,2502,469],{"className":2503},[468],[389,2505,2508],{"className":2506,"style":2507},[410,411],"margin-right:0.0359em;","y",[389,2510,492],{"className":2511},[491],"\nfor all ",[389,2514,2516],{"className":2515},[392],[389,2517,2519,2538],{"className":2518,"ariaHidden":397},[396],[389,2520,2522,2526,2529,2532,2535],{"className":2521},[401],[389,2523],{"className":2524,"style":2525},[405],"height:0.8304em;vertical-align:-0.1944em;",[389,2527,2508],{"className":2528,"style":2507},[410,411],[389,2530],{"className":2531,"style":560},[483],[389,2533,605],{"className":2534},[564],[389,2536],{"className":2537,"style":560},[483],[389,2539,2541,2544],{"className":2540},[401],[389,2542],{"className":2543,"style":406},[405],[389,2545,429],{"className":2546},[410,411],". Equivalently its truth pattern is\n",[389,2549,2551],{"className":2550},[392],[389,2552,2554],{"className":2553,"ariaHidden":397},[396],[389,2555,2557,2561,2735,2739,2742,2879,2882],{"className":2556},[401],[389,2558],{"className":2559,"style":2560},[405],"height:2.1535em;vertical-align:-1.4702em;",[389,2562,2565],{"className":2563},[670,2564],"munder",[389,2566,2570,2726],{"className":2567},[2568,2569],"vlist-t","vlist-t2",[389,2571,2574,2723],{"className":2572},[2573],"vlist-r",[389,2575,2578,2603],{"className":2576,"style":799},[2577],"vlist",[389,2579,2581,2586],{"style":2580},"top:-1.6659em;",[389,2582],{"className":2583,"style":2585},[2584],"pstrut","height:3em;",[389,2587,2593],{"className":2588},[2589,2590,2591,2592],"sizing","reset-size6","size3","mtight",[389,2594,2596],{"className":2595},[410,2592],[389,2597,2599],{"className":2598},[410,1023,2592],[389,2600,2602],{"className":2601},[410,2592],"below boundary",[389,2604,2606,2609],{"style":2605},"top:-3em;",[389,2607],{"className":2608,"style":2585},[2584],[389,2610,2612],{"className":2611},[670,2564],[389,2613,2615,2714],{"className":2614},[2568,2569],[389,2616,2618,2709],{"className":2617},[2573],[389,2619,2621,2671],{"className":2620,"style":799},[2577],[389,2622,2626,2629],{"className":2623,"style":2625},[2624],"svg-align","top:-2.352em;",[389,2627],{"className":2628,"style":2585},[2584],[389,2630,2634,2651,2661],{"className":2631,"style":2633},[2632],"stretchy","height:0.548em;min-width:1.6em;",[389,2635,2639],{"className":2636,"style":2638},[2637],"brace-left","height:0.548em;",[2640,2641,2647],"svg",{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2646},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","0.548em","0 0 400000 548","xMinYMin slice",[2648,2649],"path",{"d":2650},"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",[389,2652,2655],{"className":2653,"style":2638},[2654],"brace-center",[2640,2656,2658],{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2657},"xMidYMin slice",[2648,2659],{"d":2660},"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",[389,2662,2665],{"className":2663,"style":2638},[2664],"brace-right",[2640,2666,2668],{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2667},"xMaxYMin slice",[2648,2669],{"d":2670},"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",[389,2672,2673,2676],{"style":2605},[389,2674],{"className":2675,"style":2585},[2584],[389,2677,2679,2684,2687,2690,2693,2696,2700,2703,2706],{"className":2678},[410],[389,2680,2683],{"className":2681,"style":2682},[410,411],"margin-right:0.1389em;","F",[389,2685],{"className":2686,"style":484},[483],[389,2688,2683],{"className":2689,"style":2682},[410,411],[389,2691],{"className":2692,"style":484},[483],[389,2694],{"className":2695,"style":484},[483],[389,2697,2699],{"className":2698},[670],"⋯",[389,2701],{"className":2702,"style":484},[483],[389,2704],{"className":2705,"style":484},[483],[389,2707,2683],{"className":2708,"style":2682},[410,411],[389,2710,2713],{"className":2711},[2712],"vlist-s","​",[389,2715,2717],{"className":2716},[2573],[389,2718,2721],{"className":2719,"style":2720},[2577],"height:0.648em;",[389,2722],{},[389,2724,2713],{"className":2725},[2712],[389,2727,2729],{"className":2728},[2573],[389,2730,2733],{"className":2731,"style":2732},[2577],"height:1.4702em;",[389,2734],{},[389,2736,2738],{"className":2737},[483]," ",[389,2740],{"className":2741,"style":484},[483],[389,2743,2745],{"className":2744},[670,2564],[389,2746,2748,2871],{"className":2747},[2568,2569],[389,2749,2751,2868],{"className":2750},[2573],[389,2752,2754,2774],{"className":2753,"style":799},[2577],[389,2755,2756,2759],{"style":2580},[389,2757],{"className":2758,"style":2585},[2584],[389,2760,2762],{"className":2761},[2589,2590,2591,2592],[389,2763,2765,2768],{"className":2764},[410,2592],[389,2766,605],{"className":2767},[564,2592],[389,2769,2771],{"className":2770},[410,1023,2592],[389,2772,986],{"className":2773},[410,2592],[389,2775,2776,2779],{"style":2605},[389,2777],{"className":2778,"style":2585},[2584],[389,2780,2782],{"className":2781},[670,2564],[389,2783,2785,2860],{"className":2784},[2568,2569],[389,2786,2788,2857],{"className":2787},[2573],[389,2789,2791,2821],{"className":2790,"style":799},[2577],[389,2792,2794,2797],{"className":2793,"style":2625},[2624],[389,2795],{"className":2796,"style":2585},[2584],[389,2798,2800,2807,2814],{"className":2799,"style":2633},[2632],[389,2801,2803],{"className":2802,"style":2638},[2637],[2640,2804,2805],{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2646},[2648,2806],{"d":2650},[389,2808,2810],{"className":2809,"style":2638},[2654],[2640,2811,2812],{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2657},[2648,2813],{"d":2660},[389,2815,2817],{"className":2816,"style":2638},[2664],[2640,2818,2819],{"xmlns":2642,"width":2643,"height":2644,"viewBox":2645,"preserveAspectRatio":2667},[2648,2820],{"d":2670},[389,2822,2823,2826],{"style":2605},[389,2824],{"className":2825,"style":2585},[2584],[389,2827,2829,2833,2836,2839,2842,2845,2848,2851,2854],{"className":2828},[410],[389,2830,2832],{"className":2831,"style":2682},[410,411],"T",[389,2834],{"className":2835,"style":484},[483],[389,2837,2832],{"className":2838,"style":2682},[410,411],[389,2840],{"className":2841,"style":484},[483],[389,2843],{"className":2844,"style":484},[483],[389,2846,2699],{"className":2847},[670],[389,2849],{"className":2850,"style":484},[483],[389,2852],{"className":2853,"style":484},[483],[389,2855,2832],{"className":2856,"style":2682},[410,411],[389,2858,2713],{"className":2859},[2712],[389,2861,2863],{"className":2862},[2573],[389,2864,2866],{"className":2865,"style":2720},[2577],[389,2867],{},[389,2869,2713],{"className":2870},[2712],[389,2872,2874],{"className":2873},[2573],[389,2875,2877],{"className":2876,"style":2732},[2577],[389,2878],{},[389,2880],{"className":2881,"style":484},[483],[389,2883,729],{"className":2884},[674],"\nwith a single transition. The ",[495,2887,986],{}," is the smallest ",[389,2890,2892],{"className":2891},[392],[389,2893,2895],{"className":2894,"ariaHidden":397},[396],[389,2896,2898,2902],{"className":2897},[401],[389,2899],{"className":2900,"style":2901},[405],"height:0.6887em;",[389,2903,2905,2908],{"className":2904},[410],[389,2906,429],{"className":2907},[410,411],[389,2909,2912],{"className":2910},[2911],"msupsub",[389,2913,2915],{"className":2914},[2568],[389,2916,2918],{"className":2917},[2573],[389,2919,2921],{"className":2920,"style":2901},[2577],[389,2922,2924,2928],{"style":2923},"top:-3.063em;margin-right:0.05em;",[389,2925],{"className":2926,"style":2927},[2584],"height:2.7em;",[389,2929,2931],{"className":2930},[2589,2590,2591,2592],[389,2932,2934],{"className":2933},[907,2592],"⋆"," with\n",[389,2937,2939],{"className":2938},[392],[389,2940,2942],{"className":2941,"ariaHidden":397},[396],[389,2943,2945,2948,2951,2954,2983],{"className":2944},[401],[389,2946],{"className":2947,"style":459},[405],[389,2949,381],{"className":2950},[410,411],[389,2952,469],{"className":2953},[468],[389,2955,2957,2960],{"className":2956},[410],[389,2958,429],{"className":2959},[410,411],[389,2961,2963],{"className":2962},[2911],[389,2964,2966],{"className":2965},[2568],[389,2967,2969],{"className":2968},[2573],[389,2970,2972],{"className":2971,"style":2901},[2577],[389,2973,2974,2977],{"style":2923},[389,2975],{"className":2976,"style":2927},[2584],[389,2978,2980],{"className":2979},[2589,2590,2591,2592],[389,2981,2934],{"className":2982},[907,2592],[389,2984,492],{"className":2985},[491]," true.",[381,2988,2989,2990,3005,3006,3009,3010,3051,3052,3085,3086,3089,3090,3093],{},"If ",[389,2991,2993],{"className":2992},[392],[389,2994,2996],{"className":2995,"ariaHidden":397},[396],[389,2997,2999,3002],{"className":2998},[401],[389,3000],{"className":3001,"style":1453},[405],[389,3003,381],{"className":3004},[410,411]," is monotone ",[626,3007,3008],{},"and computable",", we can find ",[389,3011,3013],{"className":3012},[392],[389,3014,3016],{"className":3015,"ariaHidden":397},[396],[389,3017,3019,3022],{"className":3018},[401],[389,3020],{"className":3021,"style":2901},[405],[389,3023,3025,3028],{"className":3024},[410],[389,3026,429],{"className":3027},[410,411],[389,3029,3031],{"className":3030},[2911],[389,3032,3034],{"className":3033},[2568],[389,3035,3037],{"className":3036},[2573],[389,3038,3040],{"className":3039,"style":2901},[2577],[389,3041,3042,3045],{"style":2923},[389,3043],{"className":3044,"style":2927},[2584],[389,3046,3048],{"className":3047},[2589,2590,2591,2592],[389,3049,2934],{"className":3050},[907,2592]," by binary search over\nthe numeric range ",[389,3053,3055],{"className":3054},[392],[389,3056,3058],{"className":3057,"ariaHidden":397},[396],[389,3059,3061,3064,3067,3070,3073,3076,3079,3082],{"className":3060},[401],[389,3062],{"className":3063,"style":459},[405],[389,3065,591],{"className":3066},[468],[389,3068,721],{"className":3069,"style":720},[410,411],[389,3071,725],{"className":3072},[410,411],[389,3074,729],{"className":3075},[674],[389,3077],{"className":3078,"style":484},[483],[389,3080,736],{"className":3081},[410,411],[389,3083,598],{"className":3084},[491],", with no array at all. This is ",[495,3087,3088],{},"binary search on\nthe answer",": we are searching the space of candidate answers, and the only thing\nthat makes it work is that ",[495,3091,3092],{},"feasibility is monotone"," in the answer.",[3095,3096,3100,3236],"figure",{"className":3097},[3098,3099],"tikz-figure","tikz-diagram-rendered",[2640,3101,3105],{"xmlns":2642,"width":3102,"height":3103,"viewBox":3104},"260.219","79.583","-75 -75 195.164 59.687",[3106,3107,3110,3114,3123,3126,3132,3135,3141,3144,3150,3164,3167,3173,3176,3182,3185,3191,3195],"g",{"stroke":3108,"style":3109},"currentColor","stroke-miterlimit:10;stroke-width:.4",[2648,3111],{"fill":3112,"d":3113},"none","M-65.403-19.183h22.762v-22.762h-22.762Z",[3106,3115,3117],{"transform":3116},"translate(-3.595 3.075)",[2648,3118],{"d":3119,"fill":3108,"stroke":3108,"className":3120,"style":3122},"M-50.915-30.564L-53.556-30.564Q-53.653-30.564-53.653-30.683Q-53.653-30.744-53.620-30.812Q-53.587-30.880-53.525-30.880Q-53.024-30.880-52.796-30.933Q-52.677-30.977-52.598-31.210L-51.376-36.127Q-51.359-36.215-51.359-36.259Q-51.359-36.325-51.385-36.343Q-51.557-36.396-52.088-36.396Q-52.194-36.396-52.194-36.514Q-52.194-36.576-52.161-36.644Q-52.128-36.712-52.071-36.712L-47.228-36.712Q-47.180-36.712-47.149-36.677Q-47.118-36.642-47.118-36.593L-47.325-34.756Q-47.334-34.712-47.362-34.682Q-47.391-34.651-47.435-34.651L-47.514-34.651Q-47.615-34.651-47.615-34.774Q-47.571-35.323-47.571-35.433Q-47.571-35.881-47.771-36.092Q-47.971-36.303-48.272-36.349Q-48.573-36.396-49.100-36.396L-50.106-36.396Q-50.366-36.396-50.440-36.349Q-50.515-36.303-50.577-36.062L-51.144-33.794L-50.449-33.794Q-49.983-33.794-49.753-33.858Q-49.522-33.921-49.386-34.132Q-49.250-34.343-49.144-34.765Q-49.113-34.849-49.043-34.849L-48.964-34.849Q-48.920-34.849-48.887-34.816Q-48.854-34.783-48.854-34.739Q-48.854-34.721-48.863-34.704L-49.412-32.506Q-49.430-32.427-49.513-32.427L-49.592-32.427Q-49.693-32.427-49.693-32.546Q-49.693-32.594-49.647-32.779Q-49.601-32.963-49.601-33.082Q-49.601-33.341-49.841-33.412Q-50.080-33.482-50.467-33.482L-51.223-33.482L-51.807-31.122Q-51.807-31.105-51.809-31.089Q-51.812-31.074-51.816-31.052Q-51.816-30.955-51.746-30.933Q-51.495-30.880-50.862-30.880Q-50.814-30.880-50.785-30.847Q-50.757-30.814-50.757-30.771Q-50.757-30.564-50.915-30.564",[3121],"tikz-text","stroke-width:0.270",[2648,3124],{"fill":3112,"d":3125},"M-42.641-19.183h22.762v-22.762H-42.64Z",[3106,3127,3129],{"transform":3128},"translate(19.167 3.075)",[2648,3130],{"d":3119,"fill":3108,"stroke":3108,"className":3131,"style":3122},[3121],[2648,3133],{"fill":3112,"d":3134},"M-19.879-19.183H2.883v-22.762h-22.762Z",[3106,3136,3138],{"transform":3137},"translate(41.93 3.075)",[2648,3139],{"d":3119,"fill":3108,"stroke":3108,"className":3140,"style":3122},[3121],[2648,3142],{"fill":3112,"d":3143},"M2.883-19.183h22.762v-22.762H2.883Z",[3106,3145,3147],{"transform":3146},"translate(64.691 3.075)",[2648,3148],{"d":3119,"fill":3108,"stroke":3108,"className":3149,"style":3122},[3121],[3106,3151,3154,3157],{"stroke":3152,"style":3153},"var(--tk-accent)","stroke-width:1.2",[2648,3155],{"fill":3112,"d":3156},"M25.645-19.183h22.763v-22.762H25.645Z",[3106,3158,3160],{"transform":3159},"translate(87.708 3.075)",[2648,3161],{"d":3162,"fill":3108,"stroke":3108,"className":3163,"style":3122},"M-53.508-30.683Q-53.508-30.744-53.475-30.812Q-53.442-30.880-53.385-30.880Q-52.629-30.880-52.365-30.924Q-52.150-30.973-52.080-31.210L-50.854-36.127Q-50.818-36.268-50.818-36.334Q-50.818-36.396-51.104-36.396L-51.671-36.396Q-52.286-36.396-52.618-36.213Q-52.950-36.031-53.106-35.728Q-53.262-35.424-53.508-34.721Q-53.543-34.651-53.609-34.651L-53.688-34.651Q-53.789-34.651-53.789-34.765Q-53.789-34.796-53.780-34.814L-53.139-36.646Q-53.121-36.712-53.051-36.712L-47.615-36.712Q-47.566-36.712-47.536-36.677Q-47.505-36.642-47.505-36.593L-47.786-34.756Q-47.804-34.651-47.892-34.651L-47.975-34.651Q-48.010-34.651-48.041-34.690Q-48.072-34.730-48.072-34.774Q-47.984-35.477-47.984-35.657Q-47.984-35.982-48.116-36.147Q-48.248-36.312-48.465-36.354Q-48.683-36.396-49.034-36.396L-49.584-36.396Q-49.843-36.396-49.918-36.349Q-49.992-36.303-50.054-36.062L-51.284-31.140L-51.284-31.069Q-51.284-30.964-51.214-30.942Q-50.946-30.880-50.190-30.880Q-50.137-30.880-50.109-30.847Q-50.080-30.814-50.080-30.771Q-50.080-30.564-50.243-30.564L-53.411-30.564Q-53.508-30.564-53.508-30.683",[3121],[2648,3165],{"fill":3112,"d":3166},"M48.408-19.183H71.17v-22.762H48.408Z",[3106,3168,3170],{"transform":3169},"translate(110.47 3.075)",[2648,3171],{"d":3162,"fill":3108,"stroke":3108,"className":3172,"style":3122},[3121],[2648,3174],{"fill":3112,"d":3175},"M71.17-19.183h22.762v-22.762H71.17Z",[3106,3177,3179],{"transform":3178},"translate(133.233 3.075)",[2648,3180],{"d":3162,"fill":3108,"stroke":3108,"className":3181,"style":3122},[3121],[2648,3183],{"fill":3112,"d":3184},"M93.932-19.183h22.762v-22.762H93.932Z",[3106,3186,3188],{"transform":3187},"translate(155.995 3.075)",[2648,3189],{"d":3162,"fill":3108,"stroke":3108,"className":3190,"style":3122},[3121],[2648,3192],{"fill":3112,"stroke":3152,"d":3193,"style":3194},"M37.026-56.17v11.38","stroke-width:.8",[3106,3196,3197,3205,3211,3217,3223,3229],{"fill":3152,"stroke":3112},[3106,3198,3200],{"transform":3199},"translate(41.058 -32.758)",[2648,3201],{"d":3202,"fill":3152,"stroke":3152,"className":3203,"style":3204},"M-53.741-30.572L-53.741-31.794Q-53.741-31.822-53.709-31.853Q-53.678-31.884-53.655-31.884L-53.549-31.884Q-53.479-31.884-53.463-31.822Q-53.401-31.502-53.262-31.261Q-53.124-31.021-52.891-30.880Q-52.659-30.740-52.350-30.740Q-52.112-30.740-51.903-30.800Q-51.694-30.861-51.557-31.009Q-51.420-31.158-51.420-31.404Q-51.420-31.658-51.631-31.824Q-51.842-31.990-52.112-32.044L-52.733-32.158Q-53.139-32.236-53.440-32.492Q-53.741-32.748-53.741-33.123Q-53.741-33.490-53.540-33.712Q-53.338-33.935-53.014-34.033Q-52.690-34.130-52.350-34.130Q-51.885-34.130-51.588-33.923L-51.366-34.107Q-51.342-34.130-51.311-34.130L-51.260-34.130Q-51.229-34.130-51.202-34.103Q-51.174-34.076-51.174-34.044L-51.174-33.060Q-51.174-33.029-51.200-33Q-51.225-32.970-51.260-32.970L-51.366-32.970Q-51.401-32.970-51.428-32.998Q-51.456-33.025-51.456-33.060Q-51.456-33.459-51.708-33.679Q-51.959-33.900-52.358-33.900Q-52.713-33.900-52.997-33.777Q-53.280-33.654-53.280-33.349Q-53.280-33.130-53.079-32.998Q-52.877-32.865-52.631-32.822L-52.006-32.709Q-51.577-32.619-51.268-32.322Q-50.959-32.025-50.959-31.611Q-50.959-31.041-51.358-30.763Q-51.756-30.486-52.350-30.486Q-52.901-30.486-53.252-30.822L-53.549-30.509Q-53.573-30.486-53.608-30.486L-53.655-30.486Q-53.678-30.486-53.709-30.517Q-53.741-30.548-53.741-30.572M-48.502-30.564L-50.358-30.564L-50.358-30.861Q-50.084-30.861-49.917-30.908Q-49.749-30.955-49.749-31.123L-49.749-33.259Q-49.749-33.474-49.811-33.570Q-49.874-33.666-49.993-33.687Q-50.112-33.709-50.358-33.709L-50.358-34.005L-49.167-34.091L-49.167-33.357Q-49.053-33.572-48.860-33.740Q-48.667-33.908-48.428-34Q-48.190-34.091-47.936-34.091Q-46.975-34.091-46.799-33.380Q-46.616-33.709-46.288-33.900Q-45.959-34.091-45.581-34.091Q-44.405-34.091-44.405-33.013L-44.405-31.123Q-44.405-30.955-44.237-30.908Q-44.069-30.861-43.799-30.861L-43.799-30.564L-45.655-30.564L-45.655-30.861Q-45.381-30.861-45.213-30.906Q-45.045-30.951-45.045-31.123L-45.045-32.998Q-45.045-33.384-45.170-33.611Q-45.295-33.837-45.647-33.837Q-45.952-33.837-46.208-33.675Q-46.463-33.513-46.612-33.244Q-46.760-32.974-46.760-32.677L-46.760-31.123Q-46.760-30.955-46.590-30.908Q-46.420-30.861-46.151-30.861L-46.151-30.564L-48.006-30.564L-48.006-30.861Q-47.733-30.861-47.565-30.908Q-47.397-30.955-47.397-31.123L-47.397-32.998Q-47.397-33.384-47.522-33.611Q-47.647-33.837-47.999-33.837Q-48.303-33.837-48.559-33.675Q-48.815-33.513-48.963-33.244Q-49.112-32.974-49.112-32.677L-49.112-31.123Q-49.112-30.955-48.942-30.908Q-48.772-30.861-48.502-30.861L-48.502-30.564M-43.256-31.396Q-43.256-31.880-42.854-32.175Q-42.452-32.470-41.901-32.589Q-41.350-32.709-40.858-32.709L-40.858-32.998Q-40.858-33.224-40.973-33.431Q-41.088-33.638-41.286-33.757Q-41.483-33.877-41.713-33.877Q-42.139-33.877-42.424-33.771Q-42.354-33.744-42.307-33.689Q-42.260-33.634-42.235-33.564Q-42.209-33.494-42.209-33.419Q-42.209-33.314-42.260-33.222Q-42.311-33.130-42.403-33.080Q-42.495-33.029-42.600-33.029Q-42.706-33.029-42.797-33.080Q-42.889-33.130-42.940-33.222Q-42.991-33.314-42.991-33.419Q-42.991-33.837-42.602-33.984Q-42.213-34.130-41.713-34.130Q-41.381-34.130-41.028-34Q-40.674-33.869-40.446-33.615Q-40.217-33.361-40.217-33.013L-40.217-31.212Q-40.217-31.080-40.145-30.970Q-40.073-30.861-39.944-30.861Q-39.819-30.861-39.751-30.966Q-39.682-31.072-39.682-31.212L-39.682-31.724L-39.401-31.724L-39.401-31.212Q-39.401-31.009-39.518-30.851Q-39.635-30.693-39.817-30.609Q-39.999-30.525-40.202-30.525Q-40.432-30.525-40.584-30.697Q-40.737-30.869-40.768-31.099Q-40.928-30.818-41.237-30.652Q-41.545-30.486-41.897-30.486Q-42.409-30.486-42.833-30.709Q-43.256-30.931-43.256-31.396M-42.569-31.396Q-42.569-31.111-42.342-30.925Q-42.116-30.740-41.823-30.740Q-41.577-30.740-41.352-30.857Q-41.127-30.974-40.993-31.177Q-40.858-31.380-40.858-31.634L-40.858-32.466Q-41.124-32.466-41.409-32.412Q-41.694-32.357-41.965-32.228Q-42.237-32.099-42.403-31.892Q-42.569-31.685-42.569-31.396M-37.194-30.564L-39.026-30.564L-39.026-30.861Q-38.752-30.861-38.584-30.908Q-38.417-30.955-38.417-31.123L-38.417-35.283Q-38.417-35.498-38.479-35.593Q-38.542-35.689-38.661-35.710Q-38.780-35.732-39.026-35.732L-39.026-36.029L-37.803-36.115L-37.803-31.123Q-37.803-30.955-37.635-30.908Q-37.467-30.861-37.194-30.861L-37.194-30.564M-34.834-30.564L-36.667-30.564L-36.667-30.861Q-36.393-30.861-36.225-30.908Q-36.057-30.955-36.057-31.123L-36.057-35.283Q-36.057-35.498-36.120-35.593Q-36.182-35.689-36.301-35.710Q-36.420-35.732-36.667-35.732L-36.667-36.029L-35.444-36.115L-35.444-31.123Q-35.444-30.955-35.276-30.908Q-35.108-30.861-34.834-30.861L-34.834-30.564M-34.389-32.318Q-34.389-32.798-34.157-33.214Q-33.924-33.630-33.514-33.880Q-33.104-34.130-32.627-34.130Q-31.897-34.130-31.499-33.689Q-31.100-33.248-31.100-32.517Q-31.100-32.412-31.194-32.388L-33.643-32.388L-33.643-32.318Q-33.643-31.908-33.522-31.552Q-33.401-31.197-33.129-30.980Q-32.858-30.763-32.428-30.763Q-32.065-30.763-31.768-30.992Q-31.471-31.220-31.370-31.572Q-31.362-31.619-31.276-31.634L-31.194-31.634Q-31.100-31.607-31.100-31.525Q-31.100-31.517-31.108-31.486Q-31.170-31.259-31.309-31.076Q-31.448-30.892-31.639-30.759Q-31.831-30.627-32.049-30.556Q-32.268-30.486-32.506-30.486Q-32.877-30.486-33.215-30.623Q-33.553-30.759-33.821-31.011Q-34.088-31.263-34.239-31.603Q-34.389-31.943-34.389-32.318M-33.635-32.627L-31.674-32.627Q-31.674-32.931-31.776-33.222Q-31.877-33.513-32.094-33.695Q-32.311-33.877-32.627-33.877Q-32.928-33.877-33.159-33.689Q-33.389-33.502-33.512-33.210Q-33.635-32.919-33.635-32.627M-30.569-30.572L-30.569-31.794Q-30.569-31.822-30.538-31.853Q-30.506-31.884-30.483-31.884L-30.377-31.884Q-30.307-31.884-30.292-31.822Q-30.229-31.502-30.090-31.261Q-29.952-31.021-29.719-30.880Q-29.487-30.740-29.178-30.740Q-28.940-30.740-28.731-30.800Q-28.522-30.861-28.385-31.009Q-28.249-31.158-28.249-31.404Q-28.249-31.658-28.459-31.824Q-28.670-31.990-28.940-32.044L-29.561-32.158Q-29.967-32.236-30.268-32.492Q-30.569-32.748-30.569-33.123Q-30.569-33.490-30.368-33.712Q-30.167-33.935-29.842-34.033Q-29.518-34.130-29.178-34.130Q-28.713-34.130-28.417-33.923L-28.194-34.107Q-28.170-34.130-28.139-34.130L-28.088-34.130Q-28.057-34.130-28.030-34.103Q-28.002-34.076-28.002-34.044L-28.002-33.060Q-28.002-33.029-28.028-33Q-28.053-32.970-28.088-32.970L-28.194-32.970Q-28.229-32.970-28.256-32.998Q-28.284-33.025-28.284-33.060Q-28.284-33.459-28.536-33.679Q-28.788-33.900-29.186-33.900Q-29.542-33.900-29.825-33.777Q-30.108-33.654-30.108-33.349Q-30.108-33.130-29.907-32.998Q-29.706-32.865-29.459-32.822L-28.834-32.709Q-28.405-32.619-28.096-32.322Q-27.788-32.025-27.788-31.611Q-27.788-31.041-28.186-30.763Q-28.584-30.486-29.178-30.486Q-29.729-30.486-30.081-30.822L-30.377-30.509Q-30.401-30.486-30.436-30.486L-30.483-30.486Q-30.506-30.486-30.538-30.517Q-30.569-30.548-30.569-30.572M-26.635-31.525L-26.635-33.716L-27.338-33.716L-27.338-33.970Q-26.983-33.970-26.741-34.203Q-26.499-34.435-26.387-34.783Q-26.276-35.130-26.276-35.486L-25.995-35.486L-25.995-34.013L-24.819-34.013L-24.819-33.716L-25.995-33.716L-25.995-31.541Q-25.995-31.220-25.876-30.992Q-25.756-30.763-25.475-30.763Q-25.295-30.763-25.178-30.886Q-25.061-31.009-25.008-31.189Q-24.956-31.369-24.956-31.541L-24.956-32.013L-24.674-32.013L-24.674-31.525Q-24.674-31.271-24.780-31.031Q-24.885-30.791-25.083-30.638Q-25.280-30.486-25.538-30.486Q-25.854-30.486-26.106-30.609Q-26.358-30.732-26.497-30.966Q-26.635-31.201-26.635-31.525",[3121],"stroke-width:0.240",[3106,3206,3207],{"transform":3199},[2648,3208],{"d":3209,"fill":3152,"stroke":3152,"className":3210,"style":3204},"M-19.039-30.564L-21.024-30.564L-21.024-30.861Q-20.750-30.861-20.582-30.908Q-20.414-30.955-20.414-31.123L-20.414-33.716L-21.055-33.716L-21.055-34.013L-20.414-34.013L-20.414-34.947Q-20.414-35.212-20.297-35.449Q-20.180-35.685-19.987-35.849Q-19.793-36.013-19.545-36.105Q-19.297-36.197-19.032-36.197Q-18.746-36.197-18.522-36.039Q-18.297-35.880-18.297-35.603Q-18.297-35.447-18.403-35.337Q-18.508-35.228-18.672-35.228Q-18.828-35.228-18.938-35.337Q-19.047-35.447-19.047-35.603Q-19.047-35.810-18.887-35.916Q-18.985-35.939-19.078-35.939Q-19.309-35.939-19.481-35.783Q-19.653-35.627-19.739-35.390Q-19.824-35.154-19.824-34.931L-19.824-34.013L-18.856-34.013L-18.856-33.716L-19.801-33.716L-19.801-31.123Q-19.801-30.955-19.574-30.908Q-19.348-30.861-19.039-30.861L-19.039-30.564M-18.512-32.318Q-18.512-32.798-18.280-33.214Q-18.047-33.630-17.637-33.880Q-17.227-34.130-16.750-34.130Q-16.020-34.130-15.621-33.689Q-15.223-33.248-15.223-32.517Q-15.223-32.412-15.317-32.388L-17.766-32.388L-17.766-32.318Q-17.766-31.908-17.645-31.552Q-17.524-31.197-17.252-30.980Q-16.981-30.763-16.551-30.763Q-16.188-30.763-15.891-30.992Q-15.594-31.220-15.492-31.572Q-15.485-31.619-15.399-31.634L-15.317-31.634Q-15.223-31.607-15.223-31.525Q-15.223-31.517-15.231-31.486Q-15.293-31.259-15.432-31.076Q-15.571-30.892-15.762-30.759Q-15.953-30.627-16.172-30.556Q-16.391-30.486-16.629-30.486Q-17-30.486-17.338-30.623Q-17.676-30.759-17.944-31.011Q-18.211-31.263-18.362-31.603Q-18.512-31.943-18.512-32.318M-17.758-32.627L-15.797-32.627Q-15.797-32.931-15.899-33.222Q-16-33.513-16.217-33.695Q-16.434-33.877-16.750-33.877Q-17.051-33.877-17.282-33.689Q-17.512-33.502-17.635-33.210Q-17.758-32.919-17.758-32.627M-14.637-31.396Q-14.637-31.880-14.235-32.175Q-13.832-32.470-13.282-32.589Q-12.731-32.709-12.239-32.709L-12.239-32.998Q-12.239-33.224-12.354-33.431Q-12.469-33.638-12.666-33.757Q-12.864-33.877-13.094-33.877Q-13.520-33.877-13.805-33.771Q-13.735-33.744-13.688-33.689Q-13.641-33.634-13.615-33.564Q-13.590-33.494-13.590-33.419Q-13.590-33.314-13.641-33.222Q-13.692-33.130-13.783-33.080Q-13.875-33.029-13.981-33.029Q-14.086-33.029-14.178-33.080Q-14.270-33.130-14.321-33.222Q-14.371-33.314-14.371-33.419Q-14.371-33.837-13.983-33.984Q-13.594-34.130-13.094-34.130Q-12.762-34.130-12.408-34Q-12.055-33.869-11.826-33.615Q-11.598-33.361-11.598-33.013L-11.598-31.212Q-11.598-31.080-11.526-30.970Q-11.453-30.861-11.324-30.861Q-11.199-30.861-11.131-30.966Q-11.063-31.072-11.063-31.212L-11.063-31.724L-10.782-31.724L-10.782-31.212Q-10.782-31.009-10.899-30.851Q-11.016-30.693-11.198-30.609Q-11.379-30.525-11.582-30.525Q-11.813-30.525-11.965-30.697Q-12.117-30.869-12.149-31.099Q-12.309-30.818-12.617-30.652Q-12.926-30.486-13.278-30.486Q-13.789-30.486-14.213-30.709Q-14.637-30.931-14.637-31.396M-13.949-31.396Q-13.949-31.111-13.723-30.925Q-13.496-30.740-13.203-30.740Q-12.957-30.740-12.733-30.857Q-12.508-30.974-12.373-31.177Q-12.239-31.380-12.239-31.634L-12.239-32.466Q-12.504-32.466-12.789-32.412Q-13.074-32.357-13.346-32.228Q-13.617-32.099-13.783-31.892Q-13.949-31.685-13.949-31.396M-10.446-30.572L-10.446-31.794Q-10.446-31.822-10.414-31.853Q-10.383-31.884-10.360-31.884L-10.254-31.884Q-10.184-31.884-10.168-31.822Q-10.106-31.502-9.967-31.261Q-9.828-31.021-9.596-30.880Q-9.364-30.740-9.055-30.740Q-8.817-30.740-8.608-30.800Q-8.399-30.861-8.262-31.009Q-8.125-31.158-8.125-31.404Q-8.125-31.658-8.336-31.824Q-8.547-31.990-8.817-32.044L-9.438-32.158Q-9.844-32.236-10.145-32.492Q-10.446-32.748-10.446-33.123Q-10.446-33.490-10.244-33.712Q-10.043-33.935-9.719-34.033Q-9.395-34.130-9.055-34.130Q-8.590-34.130-8.293-33.923L-8.071-34.107Q-8.047-34.130-8.016-34.130L-7.965-34.130Q-7.934-34.130-7.907-34.103Q-7.879-34.076-7.879-34.044L-7.879-33.060Q-7.879-33.029-7.905-33Q-7.930-32.970-7.965-32.970L-8.071-32.970Q-8.106-32.970-8.133-32.998Q-8.160-33.025-8.160-33.060Q-8.160-33.459-8.412-33.679Q-8.664-33.900-9.063-33.900Q-9.418-33.900-9.701-33.777Q-9.985-33.654-9.985-33.349Q-9.985-33.130-9.783-32.998Q-9.582-32.865-9.336-32.822L-8.711-32.709Q-8.282-32.619-7.973-32.322Q-7.664-32.025-7.664-31.611Q-7.664-31.041-8.063-30.763Q-8.461-30.486-9.055-30.486Q-9.606-30.486-9.957-30.822L-10.254-30.509Q-10.278-30.486-10.313-30.486L-10.360-30.486Q-10.383-30.486-10.414-30.517Q-10.446-30.548-10.446-30.572M-5.278-30.564L-7.055-30.564L-7.055-30.861Q-6.782-30.861-6.614-30.908Q-6.446-30.955-6.446-31.123L-6.446-33.259Q-6.446-33.474-6.502-33.570Q-6.559-33.666-6.672-33.687Q-6.785-33.709-7.032-33.709L-7.032-34.005L-5.832-34.091L-5.832-31.123Q-5.832-30.955-5.686-30.908Q-5.539-30.861-5.278-30.861L-5.278-30.564M-6.719-35.486Q-6.719-35.677-6.584-35.808Q-6.449-35.939-6.254-35.939Q-6.133-35.939-6.030-35.877Q-5.926-35.814-5.864-35.710Q-5.801-35.607-5.801-35.486Q-5.801-35.291-5.932-35.156Q-6.063-35.021-6.254-35.021Q-6.453-35.021-6.586-35.154Q-6.719-35.287-6.719-35.486M-3.864-30.564L-4.145-30.564L-4.145-35.283Q-4.145-35.498-4.207-35.593Q-4.270-35.689-4.387-35.710Q-4.504-35.732-4.750-35.732L-4.750-36.029L-3.528-36.115L-3.528-33.627Q-3.051-34.091-2.352-34.091Q-1.871-34.091-1.463-33.847Q-1.055-33.603-0.819-33.189Q-0.582-32.775-0.582-32.291Q-0.582-31.916-0.731-31.587Q-0.879-31.259-1.149-31.007Q-1.418-30.755-1.762-30.621Q-2.106-30.486-2.465-30.486Q-2.785-30.486-3.084-30.634Q-3.383-30.783-3.590-31.044L-3.864-30.564M-3.504-33.236L-3.504-31.396Q-3.352-31.099-3.092-30.919Q-2.832-30.740-2.520-30.740Q-2.094-30.740-1.826-30.959Q-1.559-31.177-1.444-31.523Q-1.328-31.869-1.328-32.291Q-1.328-32.939-1.576-33.388Q-1.824-33.837-2.422-33.837Q-2.758-33.837-3.047-33.679Q-3.336-33.521-3.504-33.236M1.855-30.564L0.023-30.564L0.023-30.861Q0.297-30.861 0.465-30.908Q0.633-30.955 0.633-31.123L0.633-35.283Q0.633-35.498 0.570-35.593Q0.508-35.689 0.388-35.710Q0.269-35.732 0.023-35.732L0.023-36.029L1.246-36.115L1.246-31.123Q1.246-30.955 1.414-30.908Q1.582-30.861 1.855-30.861L1.855-30.564M2.301-32.318Q2.301-32.798 2.533-33.214Q2.765-33.630 3.176-33.880Q3.586-34.130 4.062-34.130Q4.793-34.130 5.191-33.689Q5.590-33.248 5.590-32.517Q5.590-32.412 5.496-32.388L3.047-32.388L3.047-32.318Q3.047-31.908 3.168-31.552Q3.289-31.197 3.560-30.980Q3.832-30.763 4.261-30.763Q4.625-30.763 4.922-30.992Q5.218-31.220 5.320-31.572Q5.328-31.619 5.414-31.634L5.496-31.634Q5.590-31.607 5.590-31.525Q5.590-31.517 5.582-31.486Q5.519-31.259 5.381-31.076Q5.242-30.892 5.051-30.759Q4.859-30.627 4.640-30.556Q4.422-30.486 4.183-30.486Q3.812-30.486 3.474-30.623Q3.136-30.759 2.869-31.011Q2.601-31.263 2.451-31.603Q2.301-31.943 2.301-32.318M3.054-32.627L5.015-32.627Q5.015-32.931 4.914-33.222Q4.812-33.513 4.595-33.695Q4.379-33.877 4.062-33.877Q3.761-33.877 3.531-33.689Q3.301-33.502 3.177-33.210Q3.054-32.919 3.054-32.627",[3121],[3106,3212,3213],{"transform":3199},[2648,3214],{"d":3215,"fill":3152,"stroke":3152,"className":3216,"style":3204},"M9.026-31.396Q9.026-31.880 9.428-32.175Q9.831-32.470 10.381-32.589Q10.932-32.709 11.424-32.709L11.424-32.998Q11.424-33.224 11.309-33.431Q11.194-33.638 10.997-33.757Q10.799-33.877 10.569-33.877Q10.143-33.877 9.858-33.771Q9.928-33.744 9.975-33.689Q10.022-33.634 10.047-33.564Q10.073-33.494 10.073-33.419Q10.073-33.314 10.022-33.222Q9.971-33.130 9.879-33.080Q9.788-33.029 9.682-33.029Q9.577-33.029 9.485-33.080Q9.393-33.130 9.342-33.222Q9.292-33.314 9.292-33.419Q9.292-33.837 9.680-33.984Q10.069-34.130 10.569-34.130Q10.901-34.130 11.254-34Q11.608-33.869 11.836-33.615Q12.065-33.361 12.065-33.013L12.065-31.212Q12.065-31.080 12.137-30.970Q12.210-30.861 12.338-30.861Q12.463-30.861 12.532-30.966Q12.600-31.072 12.600-31.212L12.600-31.724L12.881-31.724L12.881-31.212Q12.881-31.009 12.764-30.851Q12.647-30.693 12.465-30.609Q12.284-30.525 12.081-30.525Q11.850-30.525 11.698-30.697Q11.545-30.869 11.514-31.099Q11.354-30.818 11.045-30.652Q10.737-30.486 10.385-30.486Q9.874-30.486 9.450-30.709Q9.026-30.931 9.026-31.396M9.713-31.396Q9.713-31.111 9.940-30.925Q10.167-30.740 10.460-30.740Q10.706-30.740 10.930-30.857Q11.155-30.974 11.290-31.177Q11.424-31.380 11.424-31.634L11.424-32.466Q11.159-32.466 10.874-32.412Q10.588-32.357 10.317-32.228Q10.045-32.099 9.879-31.892Q9.713-31.685 9.713-31.396M15.104-30.564L13.249-30.564L13.249-30.861Q13.522-30.861 13.690-30.908Q13.858-30.955 13.858-31.123L13.858-33.259Q13.858-33.474 13.795-33.570Q13.733-33.666 13.614-33.687Q13.495-33.709 13.249-33.709L13.249-34.005L14.440-34.091L14.440-33.357Q14.553-33.572 14.747-33.740Q14.940-33.908 15.178-34Q15.417-34.091 15.670-34.091Q16.838-34.091 16.838-33.013L16.838-31.123Q16.838-30.955 17.008-30.908Q17.178-30.861 17.448-30.861L17.448-30.564L15.592-30.564L15.592-30.861Q15.866-30.861 16.034-30.908Q16.202-30.955 16.202-31.123L16.202-32.998Q16.202-33.380 16.081-33.609Q15.960-33.837 15.608-33.837Q15.295-33.837 15.042-33.675Q14.788-33.513 14.641-33.244Q14.495-32.974 14.495-32.677L14.495-31.123Q14.495-30.955 14.665-30.908Q14.835-30.861 15.104-30.861L15.104-30.564M17.936-30.572L17.936-31.794Q17.936-31.822 17.967-31.853Q17.999-31.884 18.022-31.884L18.127-31.884Q18.198-31.884 18.213-31.822Q18.276-31.502 18.415-31.261Q18.553-31.021 18.786-30.880Q19.018-30.740 19.327-30.740Q19.565-30.740 19.774-30.800Q19.983-30.861 20.120-31.009Q20.256-31.158 20.256-31.404Q20.256-31.658 20.045-31.824Q19.835-31.990 19.565-32.044L18.944-32.158Q18.538-32.236 18.237-32.492Q17.936-32.748 17.936-33.123Q17.936-33.490 18.137-33.712Q18.338-33.935 18.663-34.033Q18.987-34.130 19.327-34.130Q19.792-34.130 20.088-33.923L20.311-34.107Q20.335-34.130 20.366-34.130L20.417-34.130Q20.448-34.130 20.475-34.103Q20.502-34.076 20.502-34.044L20.502-33.060Q20.502-33.029 20.477-33Q20.452-32.970 20.417-32.970L20.311-32.970Q20.276-32.970 20.249-32.998Q20.221-33.025 20.221-33.060Q20.221-33.459 19.969-33.679Q19.717-33.900 19.319-33.900Q18.963-33.900 18.680-33.777Q18.397-33.654 18.397-33.349Q18.397-33.130 18.598-32.998Q18.799-32.865 19.045-32.822L19.670-32.709Q20.100-32.619 20.409-32.322Q20.717-32.025 20.717-31.611Q20.717-31.041 20.319-30.763Q19.920-30.486 19.327-30.486Q18.776-30.486 18.424-30.822L18.127-30.509Q18.104-30.486 18.069-30.486L18.022-30.486Q17.999-30.486 17.967-30.517Q17.936-30.548 17.936-30.572M22.831-30.595L21.760-33.451Q21.694-33.630 21.563-33.673Q21.432-33.716 21.174-33.716L21.174-34.013L22.854-34.013L22.854-33.716Q22.405-33.716 22.405-33.517Q22.409-33.502 22.411-33.484Q22.413-33.466 22.413-33.451L23.206-31.357L23.917-33.267Q23.881-33.361 23.881-33.406Q23.881-33.451 23.846-33.451Q23.780-33.630 23.649-33.673Q23.518-33.716 23.264-33.716L23.264-34.013L24.854-34.013L24.854-33.716Q24.405-33.716 24.405-33.517Q24.409-33.498 24.411-33.480Q24.413-33.462 24.413-33.451L25.245-31.236L25.999-33.236Q26.022-33.294 26.022-33.365Q26.022-33.525 25.885-33.621Q25.749-33.716 25.581-33.716L25.581-34.013L26.967-34.013L26.967-33.716Q26.733-33.716 26.555-33.589Q26.377-33.462 26.295-33.236L25.311-30.595Q25.256-30.486 25.143-30.486L25.085-30.486Q24.971-30.486 24.928-30.595L24.069-32.869L23.213-30.595Q23.174-30.486 23.053-30.486L22.999-30.486Q22.885-30.486 22.831-30.595",[3121],[3106,3218,3219],{"transform":3199},[2648,3220],{"d":3221,"fill":3152,"stroke":3152,"className":3222,"style":3204},"M27.156-32.318Q27.156-32.798 27.389-33.214Q27.621-33.630 28.031-33.880Q28.441-34.130 28.918-34.130Q29.648-34.130 30.047-33.689Q30.445-33.248 30.445-32.517Q30.445-32.412 30.352-32.388L27.902-32.388L27.902-32.318Q27.902-31.908 28.023-31.552Q28.145-31.197 28.416-30.980Q28.688-30.763 29.117-30.763Q29.480-30.763 29.777-30.992Q30.074-31.220 30.176-31.572Q30.184-31.619 30.270-31.634L30.352-31.634Q30.445-31.607 30.445-31.525Q30.445-31.517 30.438-31.486Q30.375-31.259 30.236-31.076Q30.098-30.892 29.906-30.759Q29.715-30.627 29.496-30.556Q29.277-30.486 29.039-30.486Q28.668-30.486 28.330-30.623Q27.992-30.759 27.725-31.011Q27.457-31.263 27.307-31.603Q27.156-31.943 27.156-32.318M27.910-32.627L29.871-32.627Q29.871-32.931 29.770-33.222Q29.668-33.513 29.451-33.695Q29.234-33.877 28.918-33.877Q28.617-33.877 28.387-33.689Q28.156-33.502 28.033-33.210Q27.910-32.919 27.910-32.627M32.941-30.564L30.961-30.564L30.961-30.861Q31.230-30.861 31.398-30.906Q31.566-30.951 31.566-31.123L31.566-33.259Q31.566-33.474 31.504-33.570Q31.441-33.666 31.324-33.687Q31.207-33.709 30.961-33.709L30.961-34.005L32.129-34.091L32.129-33.306Q32.207-33.517 32.359-33.703Q32.512-33.888 32.711-33.990Q32.910-34.091 33.137-34.091Q33.383-34.091 33.574-33.947Q33.766-33.802 33.766-33.572Q33.766-33.416 33.660-33.306Q33.555-33.197 33.398-33.197Q33.242-33.197 33.133-33.306Q33.023-33.416 33.023-33.572Q33.023-33.732 33.129-33.837Q32.805-33.837 32.590-33.609Q32.375-33.380 32.279-33.041Q32.184-32.701 32.184-32.396L32.184-31.123Q32.184-30.955 32.410-30.908Q32.637-30.861 32.941-30.861",[3121],[3106,3224,3225],{"transform":3199},[2648,3226],{"d":3227,"fill":3152,"stroke":3152,"className":3228,"style":3204},"M37.529-30.853Q37.697-30.740 37.940-30.740Q38.190-30.740 38.387-30.966Q38.584-31.193 38.643-31.451L39.002-32.892Q39.080-33.197 39.080-33.357Q39.080-33.568 38.963-33.703Q38.846-33.837 38.635-33.837Q38.381-33.837 38.153-33.691Q37.924-33.544 37.768-33.314Q37.612-33.084 37.553-32.837Q37.541-32.763 37.475-32.763L37.369-32.763Q37.338-32.763 37.311-32.798Q37.283-32.834 37.283-32.861L37.283-32.892Q37.362-33.205 37.561-33.478Q37.760-33.752 38.049-33.921Q38.338-34.091 38.651-34.091Q38.947-34.091 39.207-33.947Q39.467-33.802 39.576-33.541Q39.725-33.783 39.944-33.937Q40.162-34.091 40.416-34.091Q40.615-34.091 40.803-34.025Q40.990-33.959 41.112-33.820Q41.233-33.681 41.233-33.486Q41.233-33.275 41.102-33.119Q40.971-32.962 40.764-32.962Q40.631-32.962 40.537-33.046Q40.444-33.130 40.444-33.267Q40.444-33.431 40.551-33.560Q40.658-33.689 40.819-33.724Q40.643-33.837 40.401-33.837Q40.233-33.837 40.086-33.728Q39.940-33.619 39.840-33.455Q39.740-33.291 39.697-33.123L39.338-31.685Q39.268-31.341 39.268-31.220Q39.268-31.005 39.385-30.873Q39.502-30.740 39.713-30.740Q40.092-30.740 40.393-31.046Q40.694-31.353 40.787-31.740Q40.815-31.810 40.873-31.810L40.979-31.810Q41.018-31.810 41.041-31.781Q41.065-31.752 41.065-31.716Q41.065-31.701 41.057-31.685Q40.979-31.373 40.779-31.099Q40.580-30.826 40.295-30.656Q40.010-30.486 39.697-30.486Q39.397-30.486 39.137-30.630Q38.877-30.775 38.764-31.037Q38.619-30.802 38.403-30.644Q38.186-30.486 37.932-30.486Q37.733-30.486 37.545-30.552Q37.358-30.619 37.237-30.757Q37.115-30.896 37.115-31.091Q37.115-31.302 37.248-31.457Q37.381-31.611 37.584-31.611Q37.729-31.611 37.817-31.529Q37.904-31.447 37.904-31.306Q37.904-31.146 37.799-31.017Q37.694-30.888 37.529-30.853",[3121],[3106,3230,3231],{"transform":3199},[2648,3232],{"d":3233,"fill":3152,"stroke":3152,"className":3234,"style":3235},"M42.569-33.536Q42.569-33.554 42.575-33.572L43.144-34.623L42.083-35.127Q42.022-35.157 42.022-35.212Q42.022-35.250 42.051-35.275Q42.080-35.300 42.118-35.300L43.293-35.092L43.451-36.261Q43.463-36.340 43.539-36.340Q43.618-36.340 43.630-36.261L43.785-35.092L44.945-35.300L44.969-35.300Q45.007-35.300 45.032-35.278Q45.057-35.256 45.057-35.212Q45.057-35.162 45.010-35.133L43.935-34.623L44.500-33.586Q44.512-33.545 44.512-33.536Q44.512-33.498 44.482-33.472Q44.453-33.446 44.421-33.446Q44.389-33.446 44.351-33.484L43.539-34.336L42.730-33.484Q42.692-33.446 42.657-33.446Q42.628-33.446 42.599-33.475Q42.569-33.504 42.569-33.536",[3121],"stroke-width:0.180",[3237,3238,3241],"figcaption",{"className":3239},[3240],"tikz-cap","A monotone predicate flips false→true exactly once; binary search finds that boundary",[381,3243,3244],{},"The cost is uniform across every application:",[389,3246,3249],{"className":3247},[3248],"katex-display",[389,3250,3252],{"className":3251},[392],[389,3253,3255,3299],{"className":3254,"ariaHidden":397},[396],[389,3256,3258,3261,3265,3271,3277,3280,3287,3290,3293,3296],{"className":3257},[401],[389,3259],{"className":3260,"style":575},[405],[389,3262,3264],{"className":3263},[410],"Θ",[389,3266,3268],{"className":3267},[468],[389,3269,469],{"className":3270},[582,583],[389,3272,3274],{"className":3273},[473],[389,3275,479],{"className":3276,"style":478},[410,477],[389,3278,469],{"className":3279},[468],[389,3281,3283],{"className":3282},[410,1023],[389,3284,3286],{"className":3285},[410],"range",[389,3288,492],{"className":3289},[491],[389,3291],{"className":3292,"style":903},[483],[389,3294,1859],{"className":3295},[907],[389,3297],{"className":3298,"style":903},[483],[389,3300,3302,3305,3312,3315,3322,3328],{"className":3301},[401],[389,3303],{"className":3304,"style":575},[405],[389,3306,3308],{"className":3307},[410,1023],[389,3309,3311],{"className":3310},[410],"cost of one ",[389,3313,381],{"className":3314},[410,411],[389,3316,3318],{"className":3317},[410,1023],[389,3319,3321],{"className":3320},[410],"-check",[389,3323,3325],{"className":3324},[491],[389,3326,492],{"className":3327},[582,583],[389,3329,633],{"className":3330},[410],[381,3332,3333,3334,3382,3383,3428],{},"We pay ",[389,3335,3337],{"className":3336},[392],[389,3338,3340,3367],{"className":3339,"ariaHidden":397},[396],[389,3341,3343,3346,3352,3355,3358,3361,3364],{"className":3342},[401],[389,3344],{"className":3345,"style":459},[405],[389,3347,3349],{"className":3348},[473],[389,3350,479],{"className":3351,"style":478},[410,477],[389,3353,469],{"className":3354},[468],[389,3356,736],{"className":3357},[410,411],[389,3359],{"className":3360,"style":903},[483],[389,3362,908],{"className":3363},[907],[389,3365],{"className":3366,"style":903},[483],[389,3368,3370,3373,3376,3379],{"className":3369},[401],[389,3371],{"className":3372,"style":459},[405],[389,3374,721],{"className":3375,"style":720},[410,411],[389,3377,725],{"className":3378},[410,411],[389,3380,492],{"className":3381},[491]," probes, and each probe runs the feasibility check once.\nReplacing the array access ",[389,3384,3386],{"className":3385},[392],[389,3387,3389,3419],{"className":3388,"ariaHidden":397},[396],[389,3390,3392,3395,3398,3401,3404,3407,3410,3413,3416],{"className":3391},[401],[389,3393],{"className":3394,"style":459},[405],[389,3396,587],{"className":3397},[410,411],[389,3399,591],{"className":3400},[468],[389,3402,875],{"className":3403},[410,411],[389,3405,879],{"className":3406},[410,411],[389,3408,598],{"className":3409},[491],[389,3411],{"className":3412,"style":560},[483],[389,3414,605],{"className":3415},[564],[389,3417],{"className":3418,"style":560},[483],[389,3420,3422,3425],{"className":3421},[401],[389,3423],{"className":3424,"style":406},[405],[389,3426,429],{"className":3427},[410,411]," by an arbitrary monotone test is the\nentire idea.",[3095,3430,3432,3677],{"className":3431},[3098,3099],[2640,3433,3437],{"xmlns":2642,"width":3434,"height":3435,"viewBox":3436},"351.777","179.326","-75 -75 263.833 134.495",[3106,3438,3439,3442,3459,3466,3473,3476,3536,3539,3552,3558,3564,3567,3616,3619,3632,3638],{"stroke":3108,"style":3109},[2648,3440],{"fill":3112,"d":3441,"style":3194},"M-49.288-44.4h227.622",[3106,3443,3446,3453],{"stroke":3112,"fontFamily":3444,"fontSize":3445},"cmmi8","8",[3106,3447,3449],{"transform":3448},"translate(-3.37 11.934)",[2648,3450],{"d":3451,"fill":3108,"stroke":3108,"className":3452,"style":3204},"M-48.944-45.072Q-48.944-45.177-48.921-45.271L-47.929-49.248Q-47.890-49.435-47.890-49.462Q-47.890-49.568-48.386-49.568Q-48.479-49.599-48.479-49.697L-48.456-49.798Q-48.448-49.845-48.366-49.865L-47.265-49.951Q-47.222-49.951-47.183-49.920Q-47.143-49.888-47.143-49.834L-48.296-45.232Q-48.335-44.986-48.335-44.935Q-48.335-44.576-48.089-44.576Q-47.913-44.576-47.798-44.746Q-47.683-44.916-47.628-45.101Q-47.573-45.287-47.503-45.576Q-47.475-45.646-47.417-45.646L-47.311-45.646Q-47.272-45.646-47.249-45.617Q-47.225-45.587-47.225-45.552Q-47.225-45.537-47.233-45.521Q-47.350-45.013-47.542-44.668Q-47.733-44.322-48.104-44.322Q-48.448-44.322-48.696-44.529Q-48.944-44.736-48.944-45.072",[3121],[3106,3454,3455],{"transform":3448},[2648,3456],{"d":3457,"fill":3108,"stroke":3108,"className":3458,"style":3204},"M-46.320-45.705Q-46.320-46.127-46.131-46.529Q-45.941-46.931-45.615-47.248Q-45.289-47.564-44.886-47.746Q-44.484-47.927-44.062-47.927Q-43.457-47.927-43.056-47.539Q-42.656-47.150-42.656-46.545Q-42.656-46.130-42.845-45.726Q-43.035-45.322-43.361-45.004Q-43.687-44.685-44.088-44.504Q-44.488-44.322-44.914-44.322Q-45.215-44.322-45.470-44.423Q-45.726-44.525-45.918-44.712Q-46.109-44.900-46.215-45.158Q-46.320-45.416-46.320-45.705M-44.894-44.576Q-44.531-44.576-44.236-44.795Q-43.941-45.013-43.742-45.363Q-43.543-45.712-43.439-46.103Q-43.336-46.494-43.336-46.834Q-43.336-47.197-43.535-47.435Q-43.734-47.673-44.082-47.673Q-44.453-47.673-44.748-47.453Q-45.043-47.232-45.244-46.880Q-45.445-46.529-45.547-46.134Q-45.648-45.740-45.648-45.416Q-45.648-45.060-45.449-44.818Q-45.250-44.576-44.894-44.576",[3121],[3106,3460,3462],{"transform":3461},"translate(223.726 11.934)",[2648,3463],{"d":3464,"fill":3108,"stroke":3108,"className":3465,"style":3204},"M-48.847-44.576Q-48.843-44.595-48.841-44.609Q-48.839-44.623-48.839-44.646L-47.686-49.248Q-47.647-49.435-47.647-49.462Q-47.647-49.568-48.143-49.568Q-48.241-49.599-48.241-49.697L-48.218-49.798Q-48.210-49.845-48.128-49.865L-47.022-49.951Q-46.972-49.951-46.938-49.921Q-46.905-49.892-46.905-49.834L-47.526-47.330Q-47.284-47.607-46.974-47.767Q-46.663-47.927-46.311-47.927Q-45.858-47.927-45.577-47.701Q-45.296-47.474-45.296-47.041Q-45.296-46.701-45.429-46.300Q-45.561-45.900-45.815-45.232Q-45.913-45.017-45.913-44.826Q-45.913-44.576-45.737-44.576Q-45.429-44.576-45.210-44.892Q-44.991-45.209-44.905-45.576Q-44.878-45.646-44.815-45.646L-44.714-45.646Q-44.675-45.646-44.649-45.617Q-44.624-45.587-44.624-45.552Q-44.624-45.537-44.632-45.521Q-44.706-45.232-44.856-44.961Q-45.007-44.689-45.237-44.505Q-45.468-44.322-45.753-44.322Q-46.058-44.322-46.276-44.509Q-46.495-44.697-46.495-45.002Q-46.495-45.166-46.440-45.287Q-46.198-45.931-46.056-46.373Q-45.913-46.814-45.913-47.142Q-45.913-47.377-46.009-47.525Q-46.104-47.673-46.327-47.673Q-47.155-47.673-47.714-46.599L-48.218-44.591Q-48.249-44.470-48.347-44.396Q-48.444-44.322-48.569-44.322Q-48.683-44.322-48.765-44.392Q-48.847-44.462-48.847-44.576M-43.706-45.002Q-43.706-45.134-43.651-45.287L-42.979-47.017Q-42.890-47.240-42.890-47.423Q-42.890-47.673-43.065-47.673Q-43.370-47.673-43.581-47.365Q-43.792-47.056-43.897-46.673Q-43.909-46.599-43.979-46.599L-44.081-46.599Q-44.116-46.599-44.143-46.634Q-44.171-46.670-44.171-46.697L-44.171-46.728Q-44.050-47.193-43.755-47.560Q-43.460-47.927-43.050-47.927Q-42.843-47.927-42.673-47.845Q-42.503-47.763-42.399-47.609Q-42.296-47.455-42.296-47.248Q-42.296-47.127-42.354-46.959L-43.026-45.232Q-43.112-44.998-43.112-44.826Q-43.112-44.576-42.936-44.576Q-42.624-44.576-42.409-44.894Q-42.194-45.212-42.112-45.576Q-42.085-45.646-42.026-45.646L-41.921-45.646Q-41.882-45.646-41.858-45.617Q-41.835-45.587-41.835-45.552Q-41.835-45.537-41.843-45.521Q-41.921-45.220-42.067-44.953Q-42.214-44.685-42.438-44.504Q-42.663-44.322-42.952-44.322Q-43.268-44.322-43.487-44.509Q-43.706-44.697-43.706-45.002M-42.784-49.240Q-42.784-49.420-42.638-49.558Q-42.491-49.697-42.315-49.697Q-42.179-49.697-42.087-49.609Q-41.995-49.521-41.995-49.384Q-41.995-49.209-42.140-49.068Q-42.284-48.927-42.456-48.927Q-42.589-48.927-42.686-49.019Q-42.784-49.111-42.784-49.240",[3121],[3106,3467,3469],{"transform":3468},"translate(106.418 -6.378)",[2648,3470],{"d":3471,"fill":3152,"stroke":3152,"className":3472,"style":3204},"M-48.593-44.576Q-48.589-44.595-48.587-44.609Q-48.585-44.623-48.585-44.646L-47.991-47.017Q-47.952-47.173-47.952-47.310Q-47.952-47.459-48.005-47.566Q-48.058-47.673-48.190-47.673Q-48.370-47.673-48.489-47.504Q-48.608-47.334-48.665-47.148Q-48.722-46.962-48.792-46.673Q-48.804-46.599-48.874-46.599L-48.975-46.599Q-49.011-46.599-49.038-46.634Q-49.065-46.670-49.065-46.697L-49.065-46.728Q-48.979-47.060-48.886-47.302Q-48.792-47.545-48.616-47.736Q-48.440-47.927-48.175-47.927Q-47.972-47.927-47.778-47.845Q-47.585-47.763-47.460-47.607Q-47.335-47.451-47.335-47.248Q-47.077-47.568-46.753-47.748Q-46.429-47.927-46.050-47.927Q-45.643-47.927-45.364-47.742Q-45.085-47.556-45.042-47.170Q-44.776-47.525-44.438-47.726Q-44.100-47.927-43.694-47.927Q-43.241-47.927-42.960-47.701Q-42.679-47.474-42.679-47.041Q-42.679-46.701-42.811-46.300Q-42.944-45.900-43.198-45.232Q-43.296-45.017-43.296-44.826Q-43.296-44.576-43.120-44.576Q-42.811-44.576-42.591-44.898Q-42.370-45.220-42.288-45.576Q-42.261-45.646-42.198-45.646L-42.097-45.646Q-42.058-45.646-42.032-45.613Q-42.007-45.580-42.007-45.552Q-42.007-45.537-42.015-45.521Q-42.089-45.232-42.239-44.961Q-42.390-44.689-42.620-44.505Q-42.850-44.322-43.136-44.322Q-43.444-44.322-43.663-44.509Q-43.882-44.697-43.882-45.002Q-43.882-45.158-43.823-45.287Q-43.581-45.931-43.438-46.373Q-43.296-46.814-43.296-47.142Q-43.296-47.373-43.393-47.523Q-43.491-47.673-43.714-47.673Q-44.538-47.673-45.097-46.599L-45.593-44.607Q-45.624-44.482-45.729-44.402Q-45.835-44.322-45.960-44.322Q-46.069-44.322-46.151-44.392Q-46.233-44.462-46.233-44.576Q-46.229-44.595-46.227-44.609Q-46.225-44.623-46.225-44.646L-45.714-46.673Q-45.647-46.962-45.647-47.142Q-45.647-47.373-45.745-47.523Q-45.843-47.673-46.065-47.673Q-46.526-47.673-46.866-47.373Q-47.206-47.072-47.456-46.599L-47.952-44.607Q-47.983-44.482-48.089-44.402Q-48.194-44.322-48.319-44.322Q-48.429-44.322-48.511-44.392Q-48.593-44.462-48.593-44.576M-41.089-45.002Q-41.089-45.134-41.034-45.287L-40.362-47.017Q-40.272-47.240-40.272-47.423Q-40.272-47.673-40.448-47.673Q-40.753-47.673-40.964-47.365Q-41.175-47.056-41.280-46.673Q-41.292-46.599-41.362-46.599L-41.464-46.599Q-41.499-46.599-41.526-46.634Q-41.554-46.670-41.554-46.697L-41.554-46.728Q-41.433-47.193-41.138-47.560Q-40.843-47.927-40.433-47.927Q-40.225-47.927-40.056-47.845Q-39.886-47.763-39.782-47.609Q-39.679-47.455-39.679-47.248Q-39.679-47.127-39.737-46.959L-40.409-45.232Q-40.495-44.998-40.495-44.826Q-40.495-44.576-40.319-44.576Q-40.007-44.576-39.792-44.894Q-39.577-45.212-39.495-45.576Q-39.468-45.646-39.409-45.646L-39.304-45.646Q-39.265-45.646-39.241-45.617Q-39.218-45.587-39.218-45.552Q-39.218-45.537-39.225-45.521Q-39.304-45.220-39.450-44.953Q-39.597-44.685-39.821-44.504Q-40.046-44.322-40.335-44.322Q-40.651-44.322-40.870-44.509Q-41.089-44.697-41.089-45.002M-40.167-49.240Q-40.167-49.420-40.020-49.558Q-39.874-49.697-39.698-49.697Q-39.561-49.697-39.470-49.609Q-39.378-49.521-39.378-49.384Q-39.378-49.209-39.522-49.068Q-39.667-48.927-39.839-48.927Q-39.972-48.927-40.069-49.019Q-40.167-49.111-40.167-49.240M-37.386-44.322Q-37.741-44.322-38.011-44.502Q-38.280-44.681-38.421-44.976Q-38.561-45.271-38.561-45.630Q-38.561-46.017-38.399-46.431Q-38.237-46.845-37.954-47.183Q-37.671-47.521-37.302-47.724Q-36.933-47.927-36.530-47.927Q-36.038-47.927-35.761-47.478L-35.323-49.248Q-35.280-49.412-35.280-49.462Q-35.280-49.568-35.776-49.568Q-35.874-49.599-35.874-49.697L-35.850-49.798Q-35.819-49.853-35.761-49.865L-34.659-49.951Q-34.616-49.951-34.577-49.920Q-34.538-49.888-34.538-49.834L-35.690-45.232Q-35.729-44.986-35.729-44.935Q-35.729-44.576-35.483-44.576Q-35.339-44.576-35.237-44.683Q-35.136-44.791-35.071-44.945Q-35.007-45.099-34.958-45.289Q-34.909-45.478-34.890-45.576Q-34.862-45.646-34.800-45.646L-34.698-45.646Q-34.659-45.646-34.634-45.613Q-34.608-45.580-34.608-45.552Q-34.608-45.537-34.616-45.521Q-34.729-45.029-34.929-44.675Q-35.128-44.322-35.499-44.322Q-35.780-44.322-36.007-44.464Q-36.233-44.607-36.315-44.865Q-36.538-44.623-36.811-44.472Q-37.085-44.322-37.386-44.322M-37.370-44.576Q-37.159-44.576-36.950-44.689Q-36.741-44.802-36.571-44.976Q-36.401-45.150-36.272-45.345Q-36.284-45.330-36.294-45.316Q-36.304-45.302-36.315-45.287L-35.882-47.009Q-35.921-47.189-36.007-47.339Q-36.093-47.490-36.229-47.582Q-36.366-47.673-36.546-47.673Q-36.882-47.673-37.153-47.392Q-37.425-47.111-37.585-46.736Q-37.710-46.416-37.808-45.996Q-37.905-45.576-37.905-45.295Q-37.905-45.005-37.772-44.791Q-37.640-44.576-37.370-44.576",[3121],[2648,3474],{"fill":3112,"stroke":3152,"d":3475,"style":3194},"M64.523-49.522v10.243",[3106,3477,3479,3482,3485],{"fill":3478,"stroke":3478,"style":3194},"var(--tk-warn)",[2648,3480],{"fill":3112,"d":3481},"M70.213-57.204h99.83",[2648,3483],{"stroke":3112,"d":3484},"m172.643-57.204-4.16-2.08 1.56 2.08-1.56 2.08",[3106,3486,3487,3494,3500,3506,3512,3518,3524,3530],{"fill":3478,"stroke":3112,"fontSize":3445},[3106,3488,3490],{"transform":3489},"translate(127.055 -18.537)",[2648,3491],{"d":3492,"fill":3478,"stroke":3478,"className":3493,"style":3204},"M-47.800-42.849L-49.401-42.849Q-49.436-42.849-49.470-42.890Q-49.503-42.931-49.503-42.966L-49.472-43.072Q-49.440-43.134-49.386-43.142Q-49.194-43.142-49.110-43.158Q-49.026-43.173-48.974-43.240Q-48.921-43.306-48.882-43.447L-47.991-47.017Q-47.952-47.173-47.952-47.310Q-47.952-47.459-48.005-47.566Q-48.058-47.673-48.190-47.673Q-48.370-47.673-48.489-47.504Q-48.608-47.334-48.665-47.148Q-48.722-46.962-48.792-46.673Q-48.804-46.599-48.874-46.599L-48.975-46.599Q-49.011-46.599-49.038-46.634Q-49.065-46.670-49.065-46.697L-49.065-46.728Q-48.979-47.060-48.886-47.302Q-48.792-47.545-48.616-47.736Q-48.440-47.927-48.175-47.927Q-47.893-47.927-47.663-47.783Q-47.433-47.638-47.366-47.384Q-46.847-47.927-46.288-47.927Q-45.753-47.927-45.433-47.543Q-45.112-47.158-45.112-46.615Q-45.112-46.091-45.393-45.552Q-45.675-45.013-46.142-44.668Q-46.608-44.322-47.143-44.322Q-47.382-44.322-47.583-44.439Q-47.784-44.556-47.913-44.767L-48.257-43.392Q-48.268-43.353-48.288-43.232Q-48.288-43.142-47.784-43.142Q-47.679-43.111-47.679-43.017L-47.714-42.912Q-47.745-42.857-47.800-42.849M-47.358-46.966L-47.792-45.240Q-47.733-44.966-47.563-44.771Q-47.393-44.576-47.128-44.576Q-46.792-44.576-46.513-44.867Q-46.233-45.158-46.097-45.513Q-45.972-45.806-45.870-46.240Q-45.768-46.673-45.768-46.951Q-45.768-47.236-45.901-47.455Q-46.034-47.673-46.304-47.673Q-46.515-47.673-46.710-47.572Q-46.905-47.470-47.065-47.314Q-47.225-47.158-47.358-46.966",[3121],[3106,3495,3496],{"transform":3489},[2648,3497],{"d":3498,"fill":3478,"stroke":3478,"className":3499,"style":3204},"M-42.392-42.408Q-43.005-42.865-43.407-43.500Q-43.810-44.134-44.005-44.880Q-44.200-45.627-44.200-46.400Q-44.200-47.173-44.005-47.920Q-43.810-48.666-43.407-49.300Q-43.005-49.935-42.392-50.392Q-42.380-50.396-42.372-50.398Q-42.364-50.400-42.353-50.400L-42.275-50.400Q-42.236-50.400-42.210-50.373Q-42.185-50.345-42.185-50.302Q-42.185-50.252-42.216-50.232Q-42.724-49.779-43.046-49.156Q-43.368-48.533-43.509-47.837Q-43.650-47.142-43.650-46.400Q-43.650-45.666-43.511-44.966Q-43.372-44.267-43.048-43.642Q-42.724-43.017-42.216-42.568Q-42.185-42.548-42.185-42.498Q-42.185-42.455-42.210-42.427Q-42.236-42.400-42.275-42.400L-42.353-42.400Q-42.361-42.404-42.370-42.406Q-42.380-42.408-42.392-42.408",[3121],[3106,3501,3502],{"transform":3489},[2648,3503],{"d":3504,"fill":3478,"stroke":3478,"className":3505,"style":3204},"M-41.009-44.576Q-41.005-44.595-41.003-44.609Q-41.001-44.623-41.001-44.646L-40.407-47.017Q-40.368-47.173-40.368-47.310Q-40.368-47.459-40.421-47.566Q-40.474-47.673-40.606-47.673Q-40.786-47.673-40.905-47.504Q-41.024-47.334-41.081-47.148Q-41.138-46.962-41.208-46.673Q-41.220-46.599-41.290-46.599L-41.392-46.599Q-41.427-46.599-41.454-46.634Q-41.481-46.670-41.481-46.697L-41.481-46.728Q-41.395-47.060-41.302-47.302Q-41.208-47.545-41.032-47.736Q-40.856-47.927-40.591-47.927Q-40.388-47.927-40.194-47.845Q-40.001-47.763-39.876-47.607Q-39.751-47.451-39.751-47.248Q-39.493-47.568-39.169-47.748Q-38.845-47.927-38.466-47.927Q-38.059-47.927-37.780-47.742Q-37.501-47.556-37.458-47.170Q-37.192-47.525-36.854-47.726Q-36.517-47.927-36.110-47.927Q-35.657-47.927-35.376-47.701Q-35.095-47.474-35.095-47.041Q-35.095-46.701-35.227-46.300Q-35.360-45.900-35.614-45.232Q-35.712-45.017-35.712-44.826Q-35.712-44.576-35.536-44.576Q-35.227-44.576-35.007-44.898Q-34.786-45.220-34.704-45.576Q-34.677-45.646-34.614-45.646L-34.513-45.646Q-34.474-45.646-34.448-45.613Q-34.423-45.580-34.423-45.552Q-34.423-45.537-34.431-45.521Q-34.505-45.232-34.655-44.961Q-34.806-44.689-35.036-44.505Q-35.267-44.322-35.552-44.322Q-35.860-44.322-36.079-44.509Q-36.298-44.697-36.298-45.002Q-36.298-45.158-36.239-45.287Q-35.997-45.931-35.854-46.373Q-35.712-46.814-35.712-47.142Q-35.712-47.373-35.809-47.523Q-35.907-47.673-36.130-47.673Q-36.954-47.673-37.513-46.599L-38.009-44.607Q-38.040-44.482-38.145-44.402Q-38.251-44.322-38.376-44.322Q-38.485-44.322-38.567-44.392Q-38.649-44.462-38.649-44.576Q-38.645-44.595-38.643-44.609Q-38.642-44.623-38.642-44.646L-38.130-46.673Q-38.063-46.962-38.063-47.142Q-38.063-47.373-38.161-47.523Q-38.259-47.673-38.481-47.673Q-38.942-47.673-39.282-47.373Q-39.622-47.072-39.872-46.599L-40.368-44.607Q-40.399-44.482-40.505-44.402Q-40.610-44.322-40.735-44.322Q-40.845-44.322-40.927-44.392Q-41.009-44.462-41.009-44.576M-33.505-45.002Q-33.505-45.134-33.450-45.287L-32.778-47.017Q-32.688-47.240-32.688-47.423Q-32.688-47.673-32.864-47.673Q-33.169-47.673-33.380-47.365Q-33.591-47.056-33.696-46.673Q-33.708-46.599-33.778-46.599L-33.880-46.599Q-33.915-46.599-33.942-46.634Q-33.970-46.670-33.970-46.697L-33.970-46.728Q-33.849-47.193-33.554-47.560Q-33.259-47.927-32.849-47.927Q-32.642-47.927-32.472-47.845Q-32.302-47.763-32.198-47.609Q-32.095-47.455-32.095-47.248Q-32.095-47.127-32.153-46.959L-32.825-45.232Q-32.911-44.998-32.911-44.826Q-32.911-44.576-32.735-44.576Q-32.423-44.576-32.208-44.894Q-31.993-45.212-31.911-45.576Q-31.884-45.646-31.825-45.646L-31.720-45.646Q-31.681-45.646-31.657-45.617Q-31.634-45.587-31.634-45.552Q-31.634-45.537-31.642-45.521Q-31.720-45.220-31.866-44.953Q-32.013-44.685-32.237-44.504Q-32.462-44.322-32.751-44.322Q-33.067-44.322-33.286-44.509Q-33.505-44.697-33.505-45.002M-32.583-49.240Q-32.583-49.420-32.436-49.558Q-32.290-49.697-32.114-49.697Q-31.977-49.697-31.886-49.609Q-31.794-49.521-31.794-49.384Q-31.794-49.209-31.938-49.068Q-32.083-48.927-32.255-48.927Q-32.388-48.927-32.485-49.019Q-32.583-49.111-32.583-49.240M-29.802-44.322Q-30.157-44.322-30.427-44.502Q-30.696-44.681-30.837-44.976Q-30.977-45.271-30.977-45.630Q-30.977-46.017-30.815-46.431Q-30.653-46.845-30.370-47.183Q-30.087-47.521-29.718-47.724Q-29.349-47.927-28.946-47.927Q-28.454-47.927-28.177-47.478L-27.739-49.248Q-27.696-49.412-27.696-49.462Q-27.696-49.568-28.192-49.568Q-28.290-49.599-28.290-49.697L-28.267-49.798Q-28.235-49.853-28.177-49.865L-27.075-49.951Q-27.032-49.951-26.993-49.920Q-26.954-49.888-26.954-49.834L-28.106-45.232Q-28.145-44.986-28.145-44.935Q-28.145-44.576-27.899-44.576Q-27.755-44.576-27.653-44.683Q-27.552-44.791-27.487-44.945Q-27.423-45.099-27.374-45.289Q-27.325-45.478-27.306-45.576Q-27.278-45.646-27.216-45.646L-27.114-45.646Q-27.075-45.646-27.050-45.613Q-27.024-45.580-27.024-45.552Q-27.024-45.537-27.032-45.521Q-27.145-45.029-27.345-44.675Q-27.544-44.322-27.915-44.322Q-28.196-44.322-28.423-44.464Q-28.649-44.607-28.731-44.865Q-28.954-44.623-29.227-44.472Q-29.501-44.322-29.802-44.322M-29.786-44.576Q-29.575-44.576-29.366-44.689Q-29.157-44.802-28.987-44.976Q-28.817-45.150-28.688-45.345Q-28.700-45.330-28.710-45.316Q-28.720-45.302-28.731-45.287L-28.298-47.009Q-28.337-47.189-28.423-47.339Q-28.509-47.490-28.645-47.582Q-28.782-47.673-28.962-47.673Q-29.298-47.673-29.569-47.392Q-29.841-47.111-30.001-46.736Q-30.126-46.416-30.224-45.996Q-30.321-45.576-30.321-45.295Q-30.321-45.005-30.188-44.791Q-30.056-44.576-29.786-44.576",[3121],[3106,3507,3508],{"transform":3489},[2648,3509],{"d":3510,"fill":3478,"stroke":3478,"className":3511,"style":3204},"M-26.276-42.400L-26.358-42.400Q-26.394-42.400-26.419-42.429Q-26.444-42.459-26.444-42.498Q-26.444-42.548-26.413-42.568Q-26.026-42.904-25.743-43.353Q-25.460-43.802-25.294-44.302Q-25.128-44.802-25.054-45.320Q-24.980-45.837-24.980-46.400Q-24.980-46.970-25.054-47.486Q-25.128-48.002-25.294-48.498Q-25.460-48.994-25.739-49.441Q-26.019-49.888-26.413-50.232Q-26.444-50.252-26.444-50.302Q-26.444-50.341-26.419-50.371Q-26.394-50.400-26.358-50.400L-26.276-50.400Q-26.265-50.400-26.255-50.398Q-26.245-50.396-26.237-50.392Q-25.624-49.935-25.222-49.300Q-24.819-48.666-24.624-47.920Q-24.429-47.173-24.429-46.400Q-24.429-45.627-24.624-44.880Q-24.819-44.134-25.222-43.500Q-25.624-42.865-26.237-42.408Q-26.249-42.408-26.257-42.406Q-26.265-42.404-26.276-42.400",[3121],[3106,3513,3514],{"transform":3489},[2648,3515],{"d":3516,"fill":3478,"stroke":3478,"className":3517,"style":3204},"M-19.916-45.361L-19.916-47.552L-20.619-47.552L-20.619-47.806Q-20.263-47.806-20.021-48.039Q-19.779-48.271-19.668-48.619Q-19.556-48.966-19.556-49.322L-19.275-49.322L-19.275-47.849L-18.099-47.849L-18.099-47.552L-19.275-47.552L-19.275-45.377Q-19.275-45.056-19.156-44.828Q-19.037-44.599-18.756-44.599Q-18.576-44.599-18.459-44.722Q-18.341-44.845-18.289-45.025Q-18.236-45.205-18.236-45.377L-18.236-45.849L-17.955-45.849L-17.955-45.361Q-17.955-45.107-18.060-44.867Q-18.166-44.627-18.363-44.474Q-18.560-44.322-18.818-44.322Q-19.134-44.322-19.386-44.445Q-19.638-44.568-19.777-44.802Q-19.916-45.037-19.916-45.361M-15.228-44.400L-17.209-44.400L-17.209-44.697Q-16.939-44.697-16.771-44.742Q-16.603-44.787-16.603-44.959L-16.603-47.095Q-16.603-47.310-16.666-47.406Q-16.728-47.502-16.845-47.523Q-16.963-47.545-17.209-47.545L-17.209-47.841L-16.041-47.927L-16.041-47.142Q-15.963-47.353-15.810-47.539Q-15.658-47.724-15.459-47.826Q-15.259-47.927-15.033-47.927Q-14.787-47.927-14.595-47.783Q-14.404-47.638-14.404-47.408Q-14.404-47.252-14.509-47.142Q-14.615-47.033-14.771-47.033Q-14.927-47.033-15.037-47.142Q-15.146-47.252-15.146-47.408Q-15.146-47.568-15.041-47.673Q-15.365-47.673-15.580-47.445Q-15.795-47.216-15.890-46.877Q-15.986-46.537-15.986-46.232L-15.986-44.959Q-15.986-44.791-15.759-44.744Q-15.533-44.697-15.228-44.697L-15.228-44.400M-13.240-45.353L-13.240-47.095Q-13.240-47.310-13.302-47.406Q-13.365-47.502-13.484-47.523Q-13.603-47.545-13.849-47.545L-13.849-47.841L-12.603-47.927L-12.603-45.377L-12.603-45.353Q-12.603-45.041-12.549-44.879Q-12.494-44.716-12.343-44.646Q-12.193-44.576-11.873-44.576Q-11.443-44.576-11.170-44.914Q-10.896-45.252-10.896-45.697L-10.896-47.095Q-10.896-47.310-10.959-47.406Q-11.021-47.502-11.140-47.523Q-11.259-47.545-11.506-47.545L-11.506-47.841L-10.259-47.927L-10.259-45.142Q-10.259-44.931-10.197-44.836Q-10.134-44.740-10.015-44.718Q-9.896-44.697-9.650-44.697L-9.650-44.400L-10.873-44.322L-10.873-44.943Q-11.041-44.654-11.322-44.488Q-11.603-44.322-11.924-44.322Q-13.240-44.322-13.240-45.353M-9.205-46.154Q-9.205-46.634-8.972-47.050Q-8.740-47.466-8.330-47.716Q-7.920-47.966-7.443-47.966Q-6.713-47.966-6.314-47.525Q-5.916-47.084-5.916-46.353Q-5.916-46.248-6.009-46.224L-8.459-46.224L-8.459-46.154Q-8.459-45.744-8.338-45.388Q-8.216-45.033-7.945-44.816Q-7.674-44.599-7.244-44.599Q-6.881-44.599-6.584-44.828Q-6.287-45.056-6.185-45.408Q-6.177-45.455-6.091-45.470L-6.009-45.470Q-5.916-45.443-5.916-45.361Q-5.916-45.353-5.924-45.322Q-5.986-45.095-6.125-44.912Q-6.263-44.728-6.455-44.595Q-6.646-44.462-6.865-44.392Q-7.084-44.322-7.322-44.322Q-7.693-44.322-8.031-44.459Q-8.369-44.595-8.636-44.847Q-8.904-45.099-9.054-45.439Q-9.205-45.779-9.205-46.154M-8.451-46.462L-6.490-46.462Q-6.490-46.767-6.591-47.058Q-6.693-47.349-6.910-47.531Q-7.127-47.712-7.443-47.712Q-7.744-47.712-7.974-47.525Q-8.205-47.337-8.328-47.046Q-8.451-46.755-8.451-46.462M-4.947-44.865Q-4.947-45.048-4.810-45.185Q-4.674-45.322-4.482-45.322Q-4.291-45.322-4.158-45.189Q-4.025-45.056-4.025-44.865Q-4.025-44.666-4.158-44.533Q-4.291-44.400-4.482-44.400Q-4.674-44.400-4.810-44.537Q-4.947-44.673-4.947-44.865M-4.947-47.392Q-4.947-47.576-4.810-47.712Q-4.674-47.849-4.482-47.849Q-4.291-47.849-4.158-47.716Q-4.025-47.584-4.025-47.392Q-4.025-47.193-4.158-47.060Q-4.291-46.927-4.482-46.927Q-4.674-46.927-4.810-47.064Q-4.947-47.201-4.947-47.392",[3121],[3106,3519,3520],{"transform":3489},[2648,3521],{"d":3522,"fill":3478,"stroke":3478,"className":3523,"style":3204},"M2.534-44.322Q2.053-44.322 1.645-44.566Q1.237-44.810 0.999-45.224Q0.760-45.638 0.760-46.127Q0.760-46.619 1.018-47.035Q1.276-47.451 1.708-47.689Q2.139-47.927 2.631-47.927Q3.252-47.927 3.702-47.490L3.702-49.119Q3.702-49.334 3.639-49.429Q3.577-49.525 3.459-49.546Q3.342-49.568 3.096-49.568L3.096-49.865L4.319-49.951L4.319-45.142Q4.319-44.931 4.381-44.836Q4.444-44.740 4.561-44.718Q4.678-44.697 4.928-44.697L4.928-44.400L3.678-44.322L3.678-44.806Q3.213-44.322 2.534-44.322M2.600-44.576Q2.940-44.576 3.233-44.767Q3.526-44.959 3.678-45.255L3.678-47.087Q3.530-47.361 3.268-47.517Q3.006-47.673 2.694-47.673Q2.069-47.673 1.786-47.226Q1.502-46.779 1.502-46.119Q1.502-45.474 1.754-45.025Q2.006-44.576 2.600-44.576M7.444-44.400L5.463-44.400L5.463-44.697Q5.733-44.697 5.901-44.742Q6.069-44.787 6.069-44.959L6.069-47.095Q6.069-47.310 6.006-47.406Q5.944-47.502 5.827-47.523Q5.709-47.545 5.463-47.545L5.463-47.841L6.631-47.927L6.631-47.142Q6.709-47.353 6.862-47.539Q7.014-47.724 7.213-47.826Q7.413-47.927 7.639-47.927Q7.885-47.927 8.077-47.783Q8.268-47.638 8.268-47.408Q8.268-47.252 8.163-47.142Q8.057-47.033 7.901-47.033Q7.745-47.033 7.635-47.142Q7.526-47.252 7.526-47.408Q7.526-47.568 7.631-47.673Q7.307-47.673 7.092-47.445Q6.877-47.216 6.782-46.877Q6.686-46.537 6.686-46.232L6.686-44.959Q6.686-44.791 6.913-44.744Q7.139-44.697 7.444-44.697L7.444-44.400M8.749-46.095Q8.749-46.599 9.004-47.031Q9.260-47.462 9.696-47.714Q10.131-47.966 10.631-47.966Q11.018-47.966 11.360-47.822Q11.702-47.677 11.963-47.416Q12.225-47.154 12.368-46.818Q12.510-46.482 12.510-46.095Q12.510-45.603 12.247-45.193Q11.983-44.783 11.553-44.552Q11.124-44.322 10.631-44.322Q10.139-44.322 9.706-44.554Q9.272-44.787 9.010-45.195Q8.749-45.603 8.749-46.095M10.631-44.599Q11.088-44.599 11.340-44.822Q11.592-45.045 11.680-45.396Q11.768-45.748 11.768-46.193Q11.768-46.623 11.674-46.961Q11.581-47.298 11.327-47.505Q11.073-47.712 10.631-47.712Q9.983-47.712 9.739-47.296Q9.495-46.880 9.495-46.193Q9.495-45.748 9.583-45.396Q9.670-45.045 9.922-44.822Q10.174-44.599 10.631-44.599M14.877-42.849L13.022-42.849L13.022-43.142Q13.291-43.142 13.459-43.187Q13.627-43.232 13.627-43.408L13.627-47.232Q13.627-47.439 13.471-47.492Q13.315-47.545 13.022-47.545L13.022-47.841L14.245-47.927L14.245-47.462Q14.475-47.685 14.790-47.806Q15.104-47.927 15.444-47.927Q15.916-47.927 16.321-47.681Q16.725-47.435 16.958-47.019Q17.190-46.603 17.190-46.127Q17.190-45.752 17.041-45.423Q16.893-45.095 16.624-44.843Q16.354-44.591 16.010-44.457Q15.666-44.322 15.307-44.322Q15.018-44.322 14.747-44.443Q14.475-44.564 14.268-44.775L14.268-43.408Q14.268-43.232 14.436-43.187Q14.604-43.142 14.877-43.142L14.877-42.849M14.268-47.064L14.268-45.224Q14.420-44.935 14.682-44.755Q14.944-44.576 15.252-44.576Q15.538-44.576 15.760-44.714Q15.983-44.853 16.135-45.084Q16.288-45.314 16.366-45.586Q16.444-45.857 16.444-46.127Q16.444-46.459 16.319-46.816Q16.194-47.173 15.946-47.410Q15.698-47.646 15.350-47.646Q15.026-47.646 14.731-47.490Q14.436-47.334 14.268-47.064",[3121],[3106,3525,3526],{"transform":3489},[2648,3527],{"d":3528,"fill":3478,"stroke":3478,"className":3529,"style":3204},"M22.565-44.400L20.585-44.400L20.585-44.697Q20.854-44.697 21.022-44.742Q21.190-44.787 21.190-44.959L21.190-47.095Q21.190-47.310 21.128-47.406Q21.065-47.502 20.948-47.523Q20.831-47.545 20.585-47.545L20.585-47.841L21.753-47.927L21.753-47.142Q21.831-47.353 21.983-47.539Q22.135-47.724 22.335-47.826Q22.534-47.927 22.760-47.927Q23.006-47.927 23.198-47.783Q23.389-47.638 23.389-47.408Q23.389-47.252 23.284-47.142Q23.178-47.033 23.022-47.033Q22.866-47.033 22.756-47.142Q22.647-47.252 22.647-47.408Q22.647-47.568 22.753-47.673Q22.428-47.673 22.214-47.445Q21.999-47.216 21.903-46.877Q21.807-46.537 21.807-46.232L21.807-44.959Q21.807-44.791 22.034-44.744Q22.260-44.697 22.565-44.697L22.565-44.400M25.729-44.400L23.952-44.400L23.952-44.697Q24.225-44.697 24.393-44.744Q24.561-44.791 24.561-44.959L24.561-47.095Q24.561-47.310 24.505-47.406Q24.448-47.502 24.335-47.523Q24.221-47.545 23.975-47.545L23.975-47.841L25.174-47.927L25.174-44.959Q25.174-44.791 25.321-44.744Q25.467-44.697 25.729-44.697L25.729-44.400M24.288-49.322Q24.288-49.513 24.423-49.644Q24.557-49.775 24.753-49.775Q24.874-49.775 24.977-49.712Q25.081-49.650 25.143-49.546Q25.206-49.443 25.206-49.322Q25.206-49.127 25.075-48.992Q24.944-48.857 24.753-48.857Q24.553-48.857 24.421-48.990Q24.288-49.123 24.288-49.322M26.229-43.791Q26.229-44.072 26.440-44.283Q26.651-44.494 26.936-44.584Q26.780-44.709 26.702-44.898Q26.624-45.087 26.624-45.287Q26.624-45.642 26.854-45.935Q26.487-46.275 26.487-46.744Q26.487-47.095 26.690-47.365Q26.893-47.634 27.214-47.781Q27.534-47.927 27.878-47.927Q28.397-47.927 28.768-47.646Q29.131-48.017 29.678-48.017Q29.858-48.017 29.985-47.890Q30.112-47.763 30.112-47.584Q30.112-47.478 30.034-47.400Q29.956-47.322 29.846-47.322Q29.737-47.322 29.661-47.398Q29.585-47.474 29.585-47.584Q29.585-47.685 29.624-47.736Q29.631-47.744 29.635-47.750Q29.639-47.755 29.639-47.759Q29.264-47.759 28.944-47.505Q29.264-47.166 29.264-46.744Q29.264-46.474 29.147-46.257Q29.030-46.041 28.825-45.882Q28.620-45.724 28.378-45.642Q28.135-45.560 27.878-45.560Q27.659-45.560 27.446-45.619Q27.233-45.677 27.038-45.798Q26.944-45.658 26.944-45.478Q26.944-45.271 27.081-45.119Q27.217-44.966 27.424-44.966L28.120-44.966Q28.608-44.966 29.020-44.882Q29.432-44.798 29.712-44.541Q29.991-44.283 29.991-43.791Q29.991-43.427 29.671-43.195Q29.350-42.962 28.909-42.861Q28.467-42.759 28.112-42.759Q27.756-42.759 27.313-42.861Q26.870-42.962 26.549-43.195Q26.229-43.427 26.229-43.791M26.733-43.791Q26.733-43.595 26.878-43.447Q27.022-43.298 27.235-43.209Q27.448-43.119 27.688-43.072Q27.928-43.025 28.112-43.025Q28.354-43.025 28.684-43.103Q29.014-43.181 29.251-43.355Q29.487-43.529 29.487-43.791Q29.487-44.197 29.077-44.306Q28.667-44.416 28.104-44.416L27.424-44.416Q27.155-44.416 26.944-44.238Q26.733-44.060 26.733-43.791M27.878-45.826Q28.600-45.826 28.600-46.744Q28.600-47.666 27.878-47.666Q27.151-47.666 27.151-46.744Q27.151-45.826 27.878-45.826M32.405-44.400L30.549-44.400L30.549-44.697Q30.823-44.697 30.991-44.744Q31.159-44.791 31.159-44.959L31.159-49.119Q31.159-49.334 31.096-49.429Q31.034-49.525 30.915-49.546Q30.796-49.568 30.549-49.568L30.549-49.865L31.772-49.951L31.772-47.248Q31.897-47.459 32.085-47.609Q32.272-47.759 32.499-47.843Q32.725-47.927 32.971-47.927Q34.139-47.927 34.139-46.849L34.139-44.959Q34.139-44.791 34.309-44.744Q34.479-44.697 34.749-44.697L34.749-44.400L32.893-44.400L32.893-44.697Q33.167-44.697 33.335-44.744Q33.503-44.791 33.503-44.959L33.503-46.834Q33.503-47.216 33.382-47.445Q33.260-47.673 32.909-47.673Q32.596-47.673 32.342-47.511Q32.089-47.349 31.942-47.080Q31.796-46.810 31.796-46.513L31.796-44.959Q31.796-44.791 31.965-44.744Q32.135-44.697 32.405-44.697",[3121],[3106,3531,3532],{"transform":3489},[2648,3533],{"d":3534,"fill":3478,"stroke":3478,"className":3535,"style":3204},"M35.592-45.361L35.592-47.552L34.889-47.552L34.889-47.806Q35.245-47.806 35.487-48.039Q35.729-48.271 35.840-48.619Q35.952-48.966 35.952-49.322L36.233-49.322L36.233-47.849L37.409-47.849L37.409-47.552L36.233-47.552L36.233-45.377Q36.233-45.056 36.352-44.828Q36.471-44.599 36.752-44.599Q36.932-44.599 37.049-44.722Q37.166-44.845 37.219-45.025Q37.272-45.205 37.272-45.377L37.272-45.849L37.553-45.849L37.553-45.361Q37.553-45.107 37.448-44.867Q37.342-44.627 37.145-44.474Q36.948-44.322 36.690-44.322Q36.374-44.322 36.122-44.445Q35.870-44.568 35.731-44.802Q35.592-45.037 35.592-45.361",[3121],[2648,3537],{"fill":3112,"d":3538,"style":3194},"M-49.288 6.815h113.81",[3106,3540,3541,3547],{"stroke":3112,"fontFamily":3444,"fontSize":3445},[3106,3542,3544],{"transform":3543},"translate(-3.37 63.149)",[2648,3545],{"d":3451,"fill":3108,"stroke":3108,"className":3546,"style":3204},[3121],[3106,3548,3549],{"transform":3543},[2648,3550],{"d":3457,"fill":3108,"stroke":3108,"className":3551,"style":3204},[3121],[3106,3553,3555],{"transform":3554},"translate(109.915 63.149)",[2648,3556],{"d":3464,"fill":3108,"stroke":3108,"className":3557,"style":3204},[3121],[3106,3559,3561],{"transform":3560},"translate(49.512 44.837)",[2648,3562],{"d":3471,"fill":3152,"stroke":3152,"className":3563,"style":3204},[3121],[2648,3565],{"fill":3112,"stroke":3152,"d":3566,"style":3194},"M7.617 1.693v10.243",[3106,3568,3569,3572,3575],{"fill":3478,"stroke":3478,"style":3194},[2648,3570],{"fill":3112,"d":3571},"M1.927-5.989h-42.925",[2648,3573],{"stroke":3112,"d":3574},"m-43.598-5.989 4.16 2.08-1.56-2.08 1.56-2.08",[3106,3576,3577,3583,3588,3593,3598,3604,3610],{"fill":3478,"stroke":3112,"fontSize":3445},[3106,3578,3580],{"transform":3579},"translate(-12.982 32.678)",[2648,3581],{"d":3492,"fill":3478,"stroke":3478,"className":3582,"style":3204},[3121],[3106,3584,3585],{"transform":3579},[2648,3586],{"d":3498,"fill":3478,"stroke":3478,"className":3587,"style":3204},[3121],[3106,3589,3590],{"transform":3579},[2648,3591],{"d":3504,"fill":3478,"stroke":3478,"className":3592,"style":3204},[3121],[3106,3594,3595],{"transform":3579},[2648,3596],{"d":3510,"fill":3478,"stroke":3478,"className":3597,"style":3204},[3121],[3106,3599,3600],{"transform":3579},[2648,3601],{"d":3602,"fill":3478,"stroke":3478,"className":3603,"style":3204},"M-18.474-44.400L-20.459-44.400L-20.459-44.697Q-20.185-44.697-20.017-44.744Q-19.849-44.791-19.849-44.959L-19.849-47.552L-20.490-47.552L-20.490-47.849L-19.849-47.849L-19.849-48.783Q-19.849-49.048-19.732-49.285Q-19.615-49.521-19.422-49.685Q-19.228-49.849-18.980-49.941Q-18.732-50.033-18.466-50.033Q-18.181-50.033-17.957-49.875Q-17.732-49.716-17.732-49.439Q-17.732-49.283-17.838-49.173Q-17.943-49.064-18.107-49.064Q-18.263-49.064-18.373-49.173Q-18.482-49.283-18.482-49.439Q-18.482-49.646-18.322-49.752Q-18.420-49.775-18.513-49.775Q-18.744-49.775-18.916-49.619Q-19.088-49.462-19.174-49.226Q-19.259-48.990-19.259-48.767L-19.259-47.849L-18.291-47.849L-18.291-47.552L-19.236-47.552L-19.236-44.959Q-19.236-44.791-19.009-44.744Q-18.783-44.697-18.474-44.697L-18.474-44.400M-17.849-45.232Q-17.849-45.716-17.447-46.011Q-17.045-46.306-16.494-46.425Q-15.943-46.545-15.451-46.545L-15.451-46.834Q-15.451-47.060-15.566-47.267Q-15.681-47.474-15.879-47.593Q-16.076-47.712-16.306-47.712Q-16.732-47.712-17.017-47.607Q-16.947-47.580-16.900-47.525Q-16.853-47.470-16.828-47.400Q-16.802-47.330-16.802-47.255Q-16.802-47.150-16.853-47.058Q-16.904-46.966-16.996-46.916Q-17.088-46.865-17.193-46.865Q-17.299-46.865-17.390-46.916Q-17.482-46.966-17.533-47.058Q-17.584-47.150-17.584-47.255Q-17.584-47.673-17.195-47.820Q-16.806-47.966-16.306-47.966Q-15.974-47.966-15.621-47.836Q-15.267-47.705-15.039-47.451Q-14.810-47.197-14.810-46.849L-14.810-45.048Q-14.810-44.916-14.738-44.806Q-14.666-44.697-14.537-44.697Q-14.412-44.697-14.343-44.802Q-14.275-44.908-14.275-45.048L-14.275-45.560L-13.994-45.560L-13.994-45.048Q-13.994-44.845-14.111-44.687Q-14.228-44.529-14.410-44.445Q-14.591-44.361-14.795-44.361Q-15.025-44.361-15.177-44.533Q-15.330-44.705-15.361-44.935Q-15.521-44.654-15.830-44.488Q-16.138-44.322-16.490-44.322Q-17.002-44.322-17.425-44.545Q-17.849-44.767-17.849-45.232M-17.162-45.232Q-17.162-44.947-16.935-44.761Q-16.709-44.576-16.416-44.576Q-16.170-44.576-15.945-44.693Q-15.720-44.810-15.586-45.013Q-15.451-45.216-15.451-45.470L-15.451-46.302Q-15.716-46.302-16.002-46.248Q-16.287-46.193-16.558-46.064Q-16.830-45.935-16.996-45.728Q-17.162-45.521-17.162-45.232M-11.787-44.400L-13.619-44.400L-13.619-44.697Q-13.345-44.697-13.177-44.744Q-13.009-44.791-13.009-44.959L-13.009-49.119Q-13.009-49.334-13.072-49.429Q-13.134-49.525-13.254-49.546Q-13.373-49.568-13.619-49.568L-13.619-49.865L-12.396-49.951L-12.396-44.959Q-12.396-44.791-12.228-44.744Q-12.060-44.697-11.787-44.697L-11.787-44.400M-11.299-44.408L-11.299-45.630Q-11.299-45.658-11.267-45.689Q-11.236-45.720-11.213-45.720L-11.107-45.720Q-11.037-45.720-11.021-45.658Q-10.959-45.337-10.820-45.097Q-10.681-44.857-10.449-44.716Q-10.216-44.576-9.908-44.576Q-9.670-44.576-9.461-44.636Q-9.252-44.697-9.115-44.845Q-8.978-44.994-8.978-45.240Q-8.978-45.494-9.189-45.660Q-9.400-45.826-9.670-45.880L-10.291-45.994Q-10.697-46.072-10.998-46.328Q-11.299-46.584-11.299-46.959Q-11.299-47.326-11.097-47.548Q-10.896-47.771-10.572-47.869Q-10.248-47.966-9.908-47.966Q-9.443-47.966-9.146-47.759L-8.924-47.943Q-8.900-47.966-8.869-47.966L-8.818-47.966Q-8.787-47.966-8.759-47.939Q-8.732-47.912-8.732-47.880L-8.732-46.896Q-8.732-46.865-8.758-46.836Q-8.783-46.806-8.818-46.806L-8.924-46.806Q-8.959-46.806-8.986-46.834Q-9.013-46.861-9.013-46.896Q-9.013-47.295-9.265-47.515Q-9.517-47.736-9.916-47.736Q-10.271-47.736-10.554-47.613Q-10.838-47.490-10.838-47.185Q-10.838-46.966-10.636-46.834Q-10.435-46.701-10.189-46.658L-9.564-46.545Q-9.134-46.455-8.826-46.158Q-8.517-45.861-8.517-45.447Q-8.517-44.877-8.916-44.599Q-9.314-44.322-9.908-44.322Q-10.459-44.322-10.810-44.658L-11.107-44.345Q-11.131-44.322-11.166-44.322L-11.213-44.322Q-11.236-44.322-11.267-44.353Q-11.299-44.384-11.299-44.408M-7.990-46.154Q-7.990-46.634-7.758-47.050Q-7.525-47.466-7.115-47.716Q-6.705-47.966-6.228-47.966Q-5.498-47.966-5.099-47.525Q-4.701-47.084-4.701-46.353Q-4.701-46.248-4.795-46.224L-7.244-46.224L-7.244-46.154Q-7.244-45.744-7.123-45.388Q-7.002-45.033-6.730-44.816Q-6.459-44.599-6.029-44.599Q-5.666-44.599-5.369-44.828Q-5.072-45.056-4.970-45.408Q-4.963-45.455-4.877-45.470L-4.795-45.470Q-4.701-45.443-4.701-45.361Q-4.701-45.353-4.709-45.322Q-4.771-45.095-4.910-44.912Q-5.049-44.728-5.240-44.595Q-5.431-44.462-5.650-44.392Q-5.869-44.322-6.107-44.322Q-6.478-44.322-6.816-44.459Q-7.154-44.595-7.422-44.847Q-7.689-45.099-7.840-45.439Q-7.990-45.779-7.990-46.154M-7.236-46.462L-5.275-46.462Q-5.275-46.767-5.377-47.058Q-5.478-47.349-5.695-47.531Q-5.912-47.712-6.228-47.712Q-6.529-47.712-6.759-47.525Q-6.990-47.337-7.113-47.046Q-7.236-46.755-7.236-46.462M-3.732-44.865Q-3.732-45.048-3.595-45.185Q-3.459-45.322-3.267-45.322Q-3.076-45.322-2.943-45.189Q-2.810-45.056-2.810-44.865Q-2.810-44.666-2.943-44.533Q-3.076-44.400-3.267-44.400Q-3.459-44.400-3.595-44.537Q-3.732-44.673-3.732-44.865M-3.732-47.392Q-3.732-47.576-3.595-47.712Q-3.459-47.849-3.267-47.849Q-3.076-47.849-2.943-47.716Q-2.810-47.584-2.810-47.392Q-2.810-47.193-2.943-47.060Q-3.076-46.927-3.267-46.927Q-3.459-46.927-3.595-47.064Q-3.732-47.201-3.732-47.392",[3121],[3106,3605,3606],{"transform":3579},[2648,3607],{"d":3608,"fill":3478,"stroke":3478,"className":3609,"style":3204},"M3.755-44.322Q3.274-44.322 2.866-44.566Q2.458-44.810 2.220-45.224Q1.981-45.638 1.981-46.127Q1.981-46.619 2.239-47.035Q2.497-47.451 2.929-47.689Q3.360-47.927 3.852-47.927Q4.473-47.927 4.923-47.490L4.923-49.119Q4.923-49.334 4.860-49.429Q4.798-49.525 4.680-49.546Q4.563-49.568 4.317-49.568L4.317-49.865L5.540-49.951L5.540-45.142Q5.540-44.931 5.602-44.836Q5.665-44.740 5.782-44.718Q5.899-44.697 6.149-44.697L6.149-44.400L4.899-44.322L4.899-44.806Q4.434-44.322 3.755-44.322M3.821-44.576Q4.161-44.576 4.454-44.767Q4.747-44.959 4.899-45.255L4.899-47.087Q4.751-47.361 4.489-47.517Q4.227-47.673 3.915-47.673Q3.290-47.673 3.007-47.226Q2.723-46.779 2.723-46.119Q2.723-45.474 2.975-45.025Q3.227-44.576 3.821-44.576M8.665-44.400L6.684-44.400L6.684-44.697Q6.954-44.697 7.122-44.742Q7.290-44.787 7.290-44.959L7.290-47.095Q7.290-47.310 7.227-47.406Q7.165-47.502 7.048-47.523Q6.930-47.545 6.684-47.545L6.684-47.841L7.852-47.927L7.852-47.142Q7.930-47.353 8.083-47.539Q8.235-47.724 8.434-47.826Q8.634-47.927 8.860-47.927Q9.106-47.927 9.298-47.783Q9.489-47.638 9.489-47.408Q9.489-47.252 9.384-47.142Q9.278-47.033 9.122-47.033Q8.966-47.033 8.856-47.142Q8.747-47.252 8.747-47.408Q8.747-47.568 8.852-47.673Q8.528-47.673 8.313-47.445Q8.098-47.216 8.003-46.877Q7.907-46.537 7.907-46.232L7.907-44.959Q7.907-44.791 8.134-44.744Q8.360-44.697 8.665-44.697L8.665-44.400M9.970-46.095Q9.970-46.599 10.225-47.031Q10.481-47.462 10.917-47.714Q11.352-47.966 11.852-47.966Q12.239-47.966 12.581-47.822Q12.923-47.677 13.184-47.416Q13.446-47.154 13.589-46.818Q13.731-46.482 13.731-46.095Q13.731-45.603 13.468-45.193Q13.204-44.783 12.774-44.552Q12.345-44.322 11.852-44.322Q11.360-44.322 10.927-44.554Q10.493-44.787 10.231-45.195Q9.970-45.603 9.970-46.095M11.852-44.599Q12.309-44.599 12.561-44.822Q12.813-45.045 12.901-45.396Q12.989-45.748 12.989-46.193Q12.989-46.623 12.895-46.961Q12.802-47.298 12.548-47.505Q12.294-47.712 11.852-47.712Q11.204-47.712 10.960-47.296Q10.716-46.880 10.716-46.193Q10.716-45.748 10.804-45.396Q10.891-45.045 11.143-44.822Q11.395-44.599 11.852-44.599M16.098-42.849L14.243-42.849L14.243-43.142Q14.512-43.142 14.680-43.187Q14.848-43.232 14.848-43.408L14.848-47.232Q14.848-47.439 14.692-47.492Q14.536-47.545 14.243-47.545L14.243-47.841L15.466-47.927L15.466-47.462Q15.696-47.685 16.011-47.806Q16.325-47.927 16.665-47.927Q17.137-47.927 17.542-47.681Q17.946-47.435 18.179-47.019Q18.411-46.603 18.411-46.127Q18.411-45.752 18.262-45.423Q18.114-45.095 17.845-44.843Q17.575-44.591 17.231-44.457Q16.887-44.322 16.528-44.322Q16.239-44.322 15.968-44.443Q15.696-44.564 15.489-44.775L15.489-43.408Q15.489-43.232 15.657-43.187Q15.825-43.142 16.098-43.142L16.098-42.849M15.489-47.064L15.489-45.224Q15.641-44.935 15.903-44.755Q16.165-44.576 16.473-44.576Q16.759-44.576 16.981-44.714Q17.204-44.853 17.356-45.084Q17.509-45.314 17.587-45.586Q17.665-45.857 17.665-46.127Q17.665-46.459 17.540-46.816Q17.415-47.173 17.167-47.410Q16.919-47.646 16.571-47.646Q16.247-47.646 15.952-47.490Q15.657-47.334 15.489-47.064",[3121],[3106,3611,3612],{"transform":3579},[2648,3613],{"d":3614,"fill":3478,"stroke":3478,"className":3615,"style":3204},"M23.692-44.400L21.860-44.400L21.860-44.697Q22.134-44.697 22.302-44.744Q22.470-44.791 22.470-44.959L22.470-49.119Q22.470-49.334 22.407-49.429Q22.345-49.525 22.226-49.546Q22.106-49.568 21.860-49.568L21.860-49.865L23.083-49.951L23.083-44.959Q23.083-44.791 23.251-44.744Q23.419-44.697 23.692-44.697L23.692-44.400M24.138-46.154Q24.138-46.634 24.370-47.050Q24.602-47.466 25.013-47.716Q25.423-47.966 25.899-47.966Q26.630-47.966 27.028-47.525Q27.427-47.084 27.427-46.353Q27.427-46.248 27.333-46.224L24.884-46.224L24.884-46.154Q24.884-45.744 25.005-45.388Q25.126-45.033 25.397-44.816Q25.669-44.599 26.099-44.599Q26.462-44.599 26.759-44.828Q27.056-45.056 27.157-45.408Q27.165-45.455 27.251-45.470L27.333-45.470Q27.427-45.443 27.427-45.361Q27.427-45.353 27.419-45.322Q27.356-45.095 27.218-44.912Q27.079-44.728 26.888-44.595Q26.696-44.462 26.477-44.392Q26.259-44.322 26.020-44.322Q25.649-44.322 25.311-44.459Q24.974-44.595 24.706-44.847Q24.438-45.099 24.288-45.439Q24.138-45.779 24.138-46.154M24.892-46.462L26.852-46.462Q26.852-46.767 26.751-47.058Q26.649-47.349 26.433-47.531Q26.216-47.712 25.899-47.712Q25.599-47.712 25.368-47.525Q25.138-47.337 25.015-47.046Q24.892-46.755 24.892-46.462M29.981-44.400L27.997-44.400L27.997-44.697Q28.270-44.697 28.438-44.744Q28.606-44.791 28.606-44.959L28.606-47.552L27.966-47.552L27.966-47.849L28.606-47.849L28.606-48.783Q28.606-49.048 28.724-49.285Q28.841-49.521 29.034-49.685Q29.227-49.849 29.476-49.941Q29.724-50.033 29.989-50.033Q30.274-50.033 30.499-49.875Q30.724-49.716 30.724-49.439Q30.724-49.283 30.618-49.173Q30.513-49.064 30.349-49.064Q30.192-49.064 30.083-49.173Q29.974-49.283 29.974-49.439Q29.974-49.646 30.134-49.752Q30.036-49.775 29.942-49.775Q29.712-49.775 29.540-49.619Q29.368-49.462 29.282-49.226Q29.196-48.990 29.196-48.767L29.196-47.849L30.165-47.849L30.165-47.552L29.220-47.552L29.220-44.959Q29.220-44.791 29.446-44.744Q29.673-44.697 29.981-44.697L29.981-44.400M31.134-45.361L31.134-47.552L30.431-47.552L30.431-47.806Q30.786-47.806 31.028-48.039Q31.270-48.271 31.382-48.619Q31.493-48.966 31.493-49.322L31.774-49.322L31.774-47.849L32.950-47.849L32.950-47.552L31.774-47.552L31.774-45.377Q31.774-45.056 31.894-44.828Q32.013-44.599 32.294-44.599Q32.474-44.599 32.591-44.722Q32.708-44.845 32.761-45.025Q32.813-45.205 32.813-45.377L32.813-45.849L33.095-45.849L33.095-45.361Q33.095-45.107 32.989-44.867Q32.884-44.627 32.686-44.474Q32.489-44.322 32.231-44.322Q31.915-44.322 31.663-44.445Q31.411-44.568 31.272-44.802Q31.134-45.037 31.134-45.361",[3121],[2648,3617],{"fill":3112,"d":3618,"style":3194},"M7.617 40.958h56.906",[3106,3620,3621,3627],{"stroke":3112,"fontFamily":3444,"fontSize":3445},[3106,3622,3624],{"transform":3623},"translate(53.535 97.292)",[2648,3625],{"d":3451,"fill":3108,"stroke":3108,"className":3626,"style":3204},[3121],[3106,3628,3629],{"transform":3623},[2648,3630],{"d":3457,"fill":3108,"stroke":3108,"className":3631,"style":3204},[3121],[3106,3633,3635],{"transform":3634},"translate(109.915 97.292)",[2648,3636],{"d":3464,"fill":3108,"stroke":3108,"className":3637,"style":3204},[3121],[3106,3639,3640,3647,3653,3659,3665,3671],{"fill":3152,"stroke":3112,"fontSize":3445},[3106,3641,3643],{"transform":3642},"translate(123.034 86.407)",[2648,3644],{"d":3645,"fill":3152,"stroke":3152,"className":3646,"style":3204},"M-48.569-46.408Q-48.569-46.591-48.433-46.728Q-48.296-46.865-48.104-46.865Q-47.913-46.865-47.780-46.732Q-47.647-46.599-47.647-46.408Q-47.647-46.216-47.784-46.080Q-47.921-45.943-48.104-45.943Q-48.288-45.943-48.429-46.084Q-48.569-46.224-48.569-46.408",[3121],[3106,3648,3649],{"transform":3642},[2648,3650],{"d":3651,"fill":3152,"stroke":3152,"className":3652,"style":3204},"M-44.791-46.408Q-44.791-46.591-44.655-46.728Q-44.518-46.865-44.326-46.865Q-44.135-46.865-44.002-46.732Q-43.869-46.599-43.869-46.408Q-43.869-46.216-44.006-46.080Q-44.143-45.943-44.326-45.943Q-44.510-45.943-44.651-46.084Q-44.791-46.224-44.791-46.408",[3121],[3106,3654,3655],{"transform":3642},[2648,3656],{"d":3657,"fill":3152,"stroke":3152,"className":3658,"style":3204},"M-41.013-46.408Q-41.013-46.591-40.877-46.728Q-40.740-46.865-40.548-46.865Q-40.357-46.865-40.224-46.732Q-40.091-46.599-40.091-46.408Q-40.091-46.216-40.228-46.080Q-40.365-45.943-40.548-45.943Q-40.732-45.943-40.873-46.084Q-41.013-46.224-41.013-46.408",[3121],[3106,3660,3661],{"transform":3642},[2648,3662],{"d":3663,"fill":3152,"stroke":3152,"className":3664,"style":3204},"M-34.840-46.127Q-34.840-46.623-34.590-47.048Q-34.340-47.474-33.920-47.720Q-33.500-47.966-33-47.966Q-32.461-47.966-32.070-47.841Q-31.680-47.716-31.680-47.302Q-31.680-47.197-31.730-47.105Q-31.781-47.013-31.873-46.962Q-31.965-46.912-32.074-46.912Q-32.180-46.912-32.271-46.962Q-32.363-47.013-32.414-47.105Q-32.465-47.197-32.465-47.302Q-32.465-47.525-32.297-47.630Q-32.519-47.689-32.992-47.689Q-33.289-47.689-33.504-47.550Q-33.719-47.412-33.850-47.181Q-33.980-46.951-34.039-46.681Q-34.098-46.412-34.098-46.127Q-34.098-45.732-33.965-45.382Q-33.832-45.033-33.560-44.816Q-33.289-44.599-32.891-44.599Q-32.516-44.599-32.240-44.816Q-31.965-45.033-31.863-45.392Q-31.848-45.455-31.785-45.455L-31.680-45.455Q-31.644-45.455-31.619-45.427Q-31.594-45.400-31.594-45.361L-31.594-45.337Q-31.726-44.857-32.111-44.589Q-32.496-44.322-33-44.322Q-33.363-44.322-33.697-44.459Q-34.031-44.595-34.291-44.845Q-34.551-45.095-34.695-45.431Q-34.840-45.767-34.840-46.127M-31.105-46.095Q-31.105-46.599-30.850-47.031Q-30.594-47.462-30.158-47.714Q-29.723-47.966-29.223-47.966Q-28.836-47.966-28.494-47.822Q-28.152-47.677-27.891-47.416Q-27.629-47.154-27.486-46.818Q-27.344-46.482-27.344-46.095Q-27.344-45.603-27.607-45.193Q-27.871-44.783-28.301-44.552Q-28.730-44.322-29.223-44.322Q-29.715-44.322-30.148-44.554Q-30.582-44.787-30.844-45.195Q-31.105-45.603-31.105-46.095M-29.223-44.599Q-28.766-44.599-28.514-44.822Q-28.262-45.045-28.174-45.396Q-28.086-45.748-28.086-46.193Q-28.086-46.623-28.180-46.961Q-28.273-47.298-28.527-47.505Q-28.781-47.712-29.223-47.712Q-29.871-47.712-30.115-47.296Q-30.359-46.880-30.359-46.193Q-30.359-45.748-30.271-45.396Q-30.184-45.045-29.932-44.822Q-29.680-44.599-29.223-44.599M-24.930-44.400L-26.785-44.400L-26.785-44.697Q-26.512-44.697-26.344-44.744Q-26.176-44.791-26.176-44.959L-26.176-47.095Q-26.176-47.310-26.238-47.406Q-26.301-47.502-26.420-47.523Q-26.539-47.545-26.785-47.545L-26.785-47.841L-25.594-47.927L-25.594-47.193Q-25.480-47.408-25.287-47.576Q-25.094-47.744-24.855-47.836Q-24.617-47.927-24.363-47.927Q-23.195-47.927-23.195-46.849L-23.195-44.959Q-23.195-44.791-23.025-44.744Q-22.855-44.697-22.586-44.697L-22.586-44.400L-24.441-44.400L-24.441-44.697Q-24.168-44.697-24-44.744Q-23.832-44.791-23.832-44.959L-23.832-46.834Q-23.832-47.216-23.953-47.445Q-24.074-47.673-24.426-47.673Q-24.738-47.673-24.992-47.511Q-25.246-47.349-25.392-47.080Q-25.539-46.810-25.539-46.513L-25.539-44.959Q-25.539-44.791-25.369-44.744Q-25.199-44.697-24.930-44.697",[3121],[3106,3666,3667],{"transform":3642},[2648,3668],{"d":3669,"fill":3152,"stroke":3152,"className":3670,"style":3204},"M-20.568-44.431L-21.791-47.287Q-21.873-47.462-22.017-47.507Q-22.162-47.552-22.431-47.552L-22.431-47.849L-20.720-47.849L-20.720-47.552Q-21.142-47.552-21.142-47.369Q-21.142-47.334-21.127-47.287L-20.181-45.095L-19.341-47.072Q-19.302-47.150-19.302-47.240Q-19.302-47.380-19.408-47.466Q-19.513-47.552-19.654-47.552L-19.654-47.849L-18.302-47.849L-18.302-47.552Q-18.826-47.552-19.041-47.072L-20.166-44.431Q-20.228-44.322-20.334-44.322L-20.400-44.322Q-20.513-44.322-20.568-44.431",[3121],[3106,3672,3673],{"transform":3642},[2648,3674],{"d":3675,"fill":3152,"stroke":3152,"className":3676,"style":3204},"M-18.119-46.154Q-18.119-46.634-17.886-47.050Q-17.654-47.466-17.244-47.716Q-16.834-47.966-16.357-47.966Q-15.627-47.966-15.228-47.525Q-14.830-47.084-14.830-46.353Q-14.830-46.248-14.923-46.224L-17.373-46.224L-17.373-46.154Q-17.373-45.744-17.252-45.388Q-17.130-45.033-16.859-44.816Q-16.587-44.599-16.158-44.599Q-15.794-44.599-15.498-44.828Q-15.201-45.056-15.099-45.408Q-15.091-45.455-15.005-45.470L-14.923-45.470Q-14.830-45.443-14.830-45.361Q-14.830-45.353-14.837-45.322Q-14.900-45.095-15.039-44.912Q-15.177-44.728-15.369-44.595Q-15.560-44.462-15.779-44.392Q-15.998-44.322-16.236-44.322Q-16.607-44.322-16.945-44.459Q-17.283-44.595-17.550-44.847Q-17.818-45.099-17.968-45.439Q-18.119-45.779-18.119-46.154M-17.365-46.462L-15.404-46.462Q-15.404-46.767-15.505-47.058Q-15.607-47.349-15.824-47.531Q-16.041-47.712-16.357-47.712Q-16.658-47.712-16.888-47.525Q-17.119-47.337-17.242-47.046Q-17.365-46.755-17.365-46.462M-12.334-44.400L-14.314-44.400L-14.314-44.697Q-14.044-44.697-13.877-44.742Q-13.709-44.787-13.709-44.959L-13.709-47.095Q-13.709-47.310-13.771-47.406Q-13.834-47.502-13.951-47.523Q-14.068-47.545-14.314-47.545L-14.314-47.841L-13.146-47.927L-13.146-47.142Q-13.068-47.353-12.916-47.539Q-12.763-47.724-12.564-47.826Q-12.365-47.927-12.138-47.927Q-11.892-47.927-11.701-47.783Q-11.509-47.638-11.509-47.408Q-11.509-47.252-11.615-47.142Q-11.720-47.033-11.877-47.033Q-12.033-47.033-12.142-47.142Q-12.252-47.252-12.252-47.408Q-12.252-47.568-12.146-47.673Q-12.470-47.673-12.685-47.445Q-12.900-47.216-12.996-46.877Q-13.091-46.537-13.091-46.232L-13.091-44.959Q-13.091-44.791-12.865-44.744Q-12.638-44.697-12.334-44.697L-12.334-44.400M-11.029-43.791Q-11.029-44.072-10.818-44.283Q-10.607-44.494-10.322-44.584Q-10.478-44.709-10.556-44.898Q-10.634-45.087-10.634-45.287Q-10.634-45.642-10.404-45.935Q-10.771-46.275-10.771-46.744Q-10.771-47.095-10.568-47.365Q-10.365-47.634-10.044-47.781Q-9.724-47.927-9.380-47.927Q-8.861-47.927-8.490-47.646Q-8.127-48.017-7.580-48.017Q-7.400-48.017-7.273-47.890Q-7.146-47.763-7.146-47.584Q-7.146-47.478-7.224-47.400Q-7.302-47.322-7.412-47.322Q-7.521-47.322-7.597-47.398Q-7.673-47.474-7.673-47.584Q-7.673-47.685-7.634-47.736Q-7.627-47.744-7.623-47.750Q-7.619-47.755-7.619-47.759Q-7.994-47.759-8.314-47.505Q-7.994-47.166-7.994-46.744Q-7.994-46.474-8.111-46.257Q-8.228-46.041-8.433-45.882Q-8.638-45.724-8.880-45.642Q-9.123-45.560-9.380-45.560Q-9.599-45.560-9.812-45.619Q-10.025-45.677-10.220-45.798Q-10.314-45.658-10.314-45.478Q-10.314-45.271-10.177-45.119Q-10.041-44.966-9.834-44.966L-9.138-44.966Q-8.650-44.966-8.238-44.882Q-7.826-44.798-7.546-44.541Q-7.267-44.283-7.267-43.791Q-7.267-43.427-7.587-43.195Q-7.908-42.962-8.349-42.861Q-8.791-42.759-9.146-42.759Q-9.502-42.759-9.945-42.861Q-10.388-42.962-10.709-43.195Q-11.029-43.427-11.029-43.791M-10.525-43.791Q-10.525-43.595-10.380-43.447Q-10.236-43.298-10.023-43.209Q-9.810-43.119-9.570-43.072Q-9.330-43.025-9.146-43.025Q-8.904-43.025-8.574-43.103Q-8.244-43.181-8.007-43.355Q-7.771-43.529-7.771-43.791Q-7.771-44.197-8.181-44.306Q-8.591-44.416-9.154-44.416L-9.834-44.416Q-10.103-44.416-10.314-44.238Q-10.525-44.060-10.525-43.791M-9.380-45.826Q-8.658-45.826-8.658-46.744Q-8.658-47.666-9.380-47.666Q-10.107-47.666-10.107-46.744Q-10.107-45.826-9.380-45.826M-6.783-46.154Q-6.783-46.634-6.550-47.050Q-6.318-47.466-5.908-47.716Q-5.498-47.966-5.021-47.966Q-4.291-47.966-3.892-47.525Q-3.494-47.084-3.494-46.353Q-3.494-46.248-3.587-46.224L-6.037-46.224L-6.037-46.154Q-6.037-45.744-5.916-45.388Q-5.794-45.033-5.523-44.816Q-5.252-44.599-4.822-44.599Q-4.459-44.599-4.162-44.828Q-3.865-45.056-3.763-45.408Q-3.755-45.455-3.669-45.470L-3.587-45.470Q-3.494-45.443-3.494-45.361Q-3.494-45.353-3.502-45.322Q-3.564-45.095-3.703-44.912Q-3.841-44.728-4.033-44.595Q-4.224-44.462-4.443-44.392Q-4.662-44.322-4.900-44.322Q-5.271-44.322-5.609-44.459Q-5.947-44.595-6.214-44.847Q-6.482-45.099-6.632-45.439Q-6.783-45.779-6.783-46.154M-6.029-46.462L-4.068-46.462Q-4.068-46.767-4.169-47.058Q-4.271-47.349-4.488-47.531Q-4.705-47.712-5.021-47.712Q-5.322-47.712-5.552-47.525Q-5.783-47.337-5.906-47.046Q-6.029-46.755-6.029-46.462",[3121],[3237,3678,3680,3681,3708,3709,3746],{"className":3679},[3240],"Each probe tests ",[389,3682,3684],{"className":3683},[392],[389,3685,3687],{"className":3686,"ariaHidden":397},[396],[389,3688,3690,3693,3696,3699,3702,3705],{"className":3689},[401],[389,3691],{"className":3692,"style":459},[405],[389,3694,381],{"className":3695},[410,411],[389,3697,469],{"className":3698},[468],[389,3700,875],{"className":3701},[410,411],[389,3703,879],{"className":3704},[410,411],[389,3706,492],{"className":3707},[491]," and discards the infeasible half — ",[389,3710,3712],{"className":3711},[392],[389,3713,3715],{"className":3714,"ariaHidden":397},[396],[389,3716,3718,3721,3724,3727,3733,3736,3742],{"className":3717},[401],[389,3719],{"className":3720,"style":459},[405],[389,3722,464],{"className":3723,"style":463},[410,411],[389,3725,469],{"className":3726},[468],[389,3728,3730],{"className":3729},[473],[389,3731,479],{"className":3732,"style":478},[410,477],[389,3734,469],{"className":3735},[468],[389,3737,3739],{"className":3738},[410,1023],[389,3740,3286],{"className":3741},[410],[389,3743,3745],{"className":3744},[491],"))"," probes",[635,3748,3750],{"id":3749},"worked-examples","Worked examples",[381,3752,3753,3754,3757,3758,2441,3760,3793,3794,2441,3796,3811],{},"In each case the work is the same three steps: name the ",[495,3755,3756],{},"answer parameter"," and\nits ",[495,3759,3286],{},[389,3761,3763],{"className":3762},[392],[389,3764,3766],{"className":3765,"ariaHidden":397},[396],[389,3767,3769,3772,3775,3778,3781,3784,3787,3790],{"className":3768},[401],[389,3770],{"className":3771,"style":459},[405],[389,3773,591],{"className":3774},[468],[389,3776,721],{"className":3777,"style":720},[410,411],[389,3779,725],{"className":3780},[410,411],[389,3782,729],{"className":3783},[674],[389,3785],{"className":3786,"style":484},[483],[389,3788,736],{"className":3789},[410,411],[389,3791,598],{"className":3792},[491],", name the ",[495,3795,497],{},[389,3797,3799],{"className":3798},[392],[389,3800,3802],{"className":3801,"ariaHidden":397},[396],[389,3803,3805,3808],{"className":3804},[401],[389,3806],{"className":3807,"style":1453},[405],[389,3809,381],{"className":3810},[410,411],", and write the\nfeasibility check. The binary search loop never changes.",[989,3813,3815],{"id":3814},"koko-eating-bananas","Koko eating bananas",[381,3817,3818,3819,2272,3863,3880,3881,3897,3898,3940,3941,3956,3957,3972,3973,3988],{},"Koko has piles ",[389,3820,3822],{"className":3821},[392],[389,3823,3825],{"className":3824,"ariaHidden":397},[396],[389,3826,3828,3831,3839,3842,3845,3848,3854,3857,3860],{"className":3827},[401],[389,3829],{"className":3830,"style":459},[405],[389,3832,3834],{"className":3833},[410,1023],[389,3835,3838],{"className":3836},[410,3837],"textit","piles",[389,3840,591],{"className":3841},[468],[389,3843,663],{"className":3844},[410],[389,3846],{"className":3847,"style":484},[483],[389,3849,3851],{"className":3850},[670],[389,3852,675],{"className":3853},[674],[389,3855],{"className":3856,"style":484},[483],[389,3858,412],{"className":3859},[410,411],[389,3861,492],{"className":3862},[491],[389,3864,3866],{"className":3865},[392],[389,3867,3869],{"className":3868,"ariaHidden":397},[396],[389,3870,3872,3875],{"className":3871},[401],[389,3873],{"className":3874,"style":799},[405],[389,3876,3879],{"className":3877,"style":3878},[410,411],"margin-right:0.0813em;","H"," hours; at speed ",[389,3882,3884],{"className":3883},[392],[389,3885,3887],{"className":3886,"ariaHidden":397},[396],[389,3888,3890,3893],{"className":3889},[401],[389,3891],{"className":3892,"style":406},[405],[389,3894,3896],{"className":3895},[410,411],"s"," she clears\n",[389,3899,3901],{"className":3900},[392],[389,3902,3904],{"className":3903,"ariaHidden":397},[396],[389,3905,3907,3910,3914,3920,3923,3926,3929,3933,3936],{"className":3906},[401],[389,3908],{"className":3909,"style":459},[405],[389,3911,3913],{"className":3912},[468],"⌈",[389,3915,3917],{"className":3916},[410,1023],[389,3918,3838],{"className":3919},[410,3837],[389,3921,591],{"className":3922},[468],[389,3924,553],{"className":3925},[410,411],[389,3927,598],{"className":3928},[491],[389,3930,3932],{"className":3931},[410],"\u002F",[389,3934,3896],{"className":3935},[410,411],[389,3937,3939],{"className":3938},[491],"⌉"," hours on pile ",[389,3942,3944],{"className":3943},[392],[389,3945,3947],{"className":3946,"ariaHidden":397},[396],[389,3948,3950,3953],{"className":3949},[401],[389,3951],{"className":3952,"style":1054},[405],[389,3954,553],{"className":3955},[410,411],". Minimize ",[389,3958,3960],{"className":3959},[392],[389,3961,3963],{"className":3962,"ariaHidden":397},[396],[389,3964,3966,3969],{"className":3965},[401],[389,3967],{"className":3968,"style":406},[405],[389,3970,3896],{"className":3971},[410,411]," such that she\nfinishes within ",[389,3974,3976],{"className":3975},[392],[389,3977,3979],{"className":3978,"ariaHidden":397},[396],[389,3980,3982,3985],{"className":3981},[401],[389,3983],{"className":3984,"style":799},[405],[389,3986,3879],{"className":3987,"style":3878},[410,411]," hours.",[997,3990,3991,4103,4283],{},[1000,3992,3993,3996,3997,4012,4013,633],{},[495,3994,3995],{},"Answer parameter:"," the speed ",[389,3998,4000],{"className":3999},[392],[389,4001,4003],{"className":4002,"ariaHidden":397},[396],[389,4004,4006,4009],{"className":4005},[401],[389,4007],{"className":4008,"style":406},[405],[389,4010,3896],{"className":4011},[410,411],", an integer in ",[389,4014,4016],{"className":4015},[392],[389,4017,4019],{"className":4018,"ariaHidden":397},[396],[389,4020,4022,4025,4028,4031,4034,4037,4084,4087,4093,4096,4099],{"className":4021},[401],[389,4023],{"className":4024,"style":459},[405],[389,4026,591],{"className":4027},[468],[389,4029,1718],{"className":4030},[410],[389,4032,729],{"className":4033},[674],[389,4035],{"className":4036,"style":484},[483],[389,4038,4040,4047],{"className":4039},[473],[389,4041,4043],{"className":4042},[473],[389,4044,4046],{"className":4045},[410,477],"max",[389,4048,4050],{"className":4049},[2911],[389,4051,4053,4075],{"className":4052},[2568,2569],[389,4054,4056,4072],{"className":4055},[2573],[389,4057,4060],{"className":4058,"style":4059},[2577],"height:0.3117em;",[389,4061,4063,4066],{"style":4062},"top:-2.55em;margin-right:0.05em;",[389,4064],{"className":4065,"style":2927},[2584],[389,4067,4069],{"className":4068},[2589,2590,2591,2592],[389,4070,553],{"className":4071},[410,411,2592],[389,4073,2713],{"className":4074},[2712],[389,4076,4078],{"className":4077},[2573],[389,4079,4082],{"className":4080,"style":4081},[2577],"height:0.15em;",[389,4083],{},[389,4085],{"className":4086,"style":484},[483],[389,4088,4090],{"className":4089},[410,1023],[389,4091,3838],{"className":4092},[410,3837],[389,4094,591],{"className":4095},[468],[389,4097,553],{"className":4098},[410,411],[389,4100,4102],{"className":4101},[491],"]]",[1000,4104,4105,2441,4108,4252,4253],{},[495,4106,4107],{},"Predicate:",[389,4109,4111],{"className":4110},[392],[389,4112,4114,4141,4237],{"className":4113,"ariaHidden":397},[396],[389,4115,4117,4120,4123,4126,4129,4132,4135,4138],{"className":4116},[401],[389,4118],{"className":4119,"style":459},[405],[389,4121,381],{"className":4122},[410,411],[389,4124,469],{"className":4125},[468],[389,4127,3896],{"className":4128},[410,411],[389,4130,492],{"className":4131},[491],[389,4133],{"className":4134,"style":560},[483],[389,4136,565],{"className":4137},[564],[389,4139],{"className":4140,"style":560},[483],[389,4142,4144,4147,4153,4200,4203,4209,4212,4215,4218,4221,4224,4227,4230,4234],{"className":4143},[401],[389,4145],{"className":4146,"style":575},[405],[389,4148,4150],{"className":4149},[468],[389,4151,469],{"className":4152},[582,583],[389,4154,4156,4163],{"className":4155},[473],[389,4157,4162],{"className":4158,"style":4161},[473,4159,4160],"op-symbol","small-op","position:relative;top:0em;","∑",[389,4164,4166],{"className":4165},[2911],[389,4167,4169,4191],{"className":4168},[2568,2569],[389,4170,4172,4188],{"className":4171},[2573],[389,4173,4176],{"className":4174,"style":4175},[2577],"height:0.162em;",[389,4177,4179,4182],{"style":4178},"top:-2.4003em;margin-left:0em;margin-right:0.05em;",[389,4180],{"className":4181,"style":2927},[2584],[389,4183,4185],{"className":4184},[2589,2590,2591,2592],[389,4186,553],{"className":4187},[410,411,2592],[389,4189,2713],{"className":4190},[2712],[389,4192,4194],{"className":4193},[2573],[389,4195,4198],{"className":4196,"style":4197},[2577],"height:0.2997em;",[389,4199],{},[389,4201,3913],{"className":4202},[468],[389,4204,4206],{"className":4205},[410,1023],[389,4207,3838],{"className":4208},[410,3837],[389,4210,591],{"className":4211},[468],[389,4213,553],{"className":4214},[410,411],[389,4216,598],{"className":4217},[491],[389,4219,3932],{"className":4220},[410],[389,4222,3896],{"className":4223},[410,411],[389,4225,3939],{"className":4226},[491],[389,4228],{"className":4229,"style":560},[483],[389,4231,4233],{"className":4232},[564],"≤",[389,4235],{"className":4236,"style":560},[483],[389,4238,4240,4243,4246],{"className":4239},[401],[389,4241],{"className":4242,"style":575},[405],[389,4244,3879],{"className":4245,"style":3878},[410,411],[389,4247,4249],{"className":4248},[491],[389,4250,492],{"className":4251},[582,583],",\n",[964,4254,4255,4256,3988],{},"can finish in ",[389,4257,4259],{"className":4258},[392],[389,4260,4262,4274],{"className":4261,"ariaHidden":397},[396],[389,4263,4265,4268,4271],{"className":4264},[401],[389,4266],{"className":4267,"style":1735},[405],[389,4269,4233],{"className":4270},[564],[389,4272],{"className":4273,"style":560},[483],[389,4275,4277,4280],{"className":4276},[401],[389,4278],{"className":4279,"style":799},[405],[389,4281,3879],{"className":4282,"style":3878},[410,411],[1000,4284,4285,4288,4289,4304,4305,4344,4345,3005,4360,4363,4364,4379,4380,4382,4383,4385,4386,633],{},[495,4286,4287],{},"Monotonicity:"," a larger ",[389,4290,4292],{"className":4291},[392],[389,4293,4295],{"className":4294,"ariaHidden":397},[396],[389,4296,4298,4301],{"className":4297},[401],[389,4299],{"className":4300,"style":406},[405],[389,4302,3896],{"className":4303},[410,411]," never increases any term ",[389,4306,4308],{"className":4307},[392],[389,4309,4311],{"className":4310,"ariaHidden":397},[396],[389,4312,4314,4317,4320,4326,4329,4332,4335,4338,4341],{"className":4313},[401],[389,4315],{"className":4316,"style":459},[405],[389,4318,3913],{"className":4319},[468],[389,4321,4323],{"className":4322},[410,1023],[389,4324,3838],{"className":4325},[410,3837],[389,4327,591],{"className":4328},[468],[389,4330,553],{"className":4331},[410,411],[389,4333,598],{"className":4334},[491],[389,4336,3932],{"className":4337},[410],[389,4339,3896],{"className":4340},[410,411],[389,4342,3939],{"className":4343},[491],",\nso ",[389,4346,4348],{"className":4347},[392],[389,4349,4351],{"className":4350,"ariaHidden":397},[396],[389,4352,4354,4357],{"className":4353},[401],[389,4355],{"className":4356,"style":1453},[405],[389,4358,381],{"className":4359},[410,411],[626,4361,4362],{},"increasing"," in ",[389,4365,4367],{"className":4366},[392],[389,4368,4370],{"className":4369,"ariaHidden":397},[396],[389,4371,4373,4376],{"className":4372},[401],[389,4374],{"className":4375,"style":406},[405],[389,4377,3896],{"className":4378},[410,411]," (",[525,4381,527],{}," for tiny speeds, ",[525,4384,397],{}," once\nfast enough). Binary search the smallest feasible ",[389,4387,4389],{"className":4388},[392],[389,4390,4392],{"className":4391,"ariaHidden":397},[396],[389,4393,4395,4398],{"className":4394},[401],[389,4396],{"className":4397,"style":406},[405],[389,4399,3896],{"className":4400},[410,411],[381,4402,4403,4404,4428,4429,4502,4503,633],{},"Each check is ",[389,4405,4407],{"className":4406},[392],[389,4408,4410],{"className":4409,"ariaHidden":397},[396],[389,4411,4413,4416,4419,4422,4425],{"className":4412},[401],[389,4414],{"className":4415,"style":459},[405],[389,4417,464],{"className":4418,"style":463},[410,411],[389,4420,469],{"className":4421},[468],[389,4423,412],{"className":4424},[410,411],[389,4426,492],{"className":4427},[491],", the range is ",[389,4430,4432],{"className":4431},[392],[389,4433,4435],{"className":4434,"ariaHidden":397},[396],[389,4436,4438,4441,4484,4487,4493,4496,4499],{"className":4437},[401],[389,4439],{"className":4440,"style":459},[405],[389,4442,4444,4450],{"className":4443},[473],[389,4445,4447],{"className":4446},[473],[389,4448,4046],{"className":4449},[410,477],[389,4451,4453],{"className":4452},[2911],[389,4454,4456,4476],{"className":4455},[2568,2569],[389,4457,4459,4473],{"className":4458},[2573],[389,4460,4462],{"className":4461,"style":4059},[2577],[389,4463,4464,4467],{"style":4062},[389,4465],{"className":4466,"style":2927},[2584],[389,4468,4470],{"className":4469},[2589,2590,2591,2592],[389,4471,553],{"className":4472},[410,411,2592],[389,4474,2713],{"className":4475},[2712],[389,4477,4479],{"className":4478},[2573],[389,4480,4482],{"className":4481,"style":4081},[2577],[389,4483],{},[389,4485],{"className":4486,"style":484},[483],[389,4488,4490],{"className":4489},[410,1023],[389,4491,3838],{"className":4492},[410,3837],[389,4494,591],{"className":4495},[468],[389,4497,553],{"className":4498},[410,411],[389,4500,598],{"className":4501},[491],", so the cost is\n",[389,4504,4506],{"className":4505},[392],[389,4507,4509],{"className":4508,"ariaHidden":397},[396],[389,4510,4512,4515,4518,4521,4524,4527,4533,4536,4579,4582,4588,4591,4594],{"className":4511},[401],[389,4513],{"className":4514,"style":459},[405],[389,4516,464],{"className":4517,"style":463},[410,411],[389,4519,469],{"className":4520},[468],[389,4522,412],{"className":4523},[410,411],[389,4525],{"className":4526,"style":484},[483],[389,4528,4530],{"className":4529},[473],[389,4531,479],{"className":4532,"style":478},[410,477],[389,4534],{"className":4535,"style":484},[483],[389,4537,4539,4545],{"className":4538},[473],[389,4540,4542],{"className":4541},[473],[389,4543,4046],{"className":4544},[410,477],[389,4546,4548],{"className":4547},[2911],[389,4549,4551,4571],{"className":4550},[2568,2569],[389,4552,4554,4568],{"className":4553},[2573],[389,4555,4557],{"className":4556,"style":4059},[2577],[389,4558,4559,4562],{"style":4062},[389,4560],{"className":4561,"style":2927},[2584],[389,4563,4565],{"className":4564},[2589,2590,2591,2592],[389,4566,553],{"className":4567},[410,411,2592],[389,4569,2713],{"className":4570},[2712],[389,4572,4574],{"className":4573},[2573],[389,4575,4577],{"className":4576,"style":4081},[2577],[389,4578],{},[389,4580],{"className":4581,"style":484},[483],[389,4583,4585],{"className":4584},[410,1023],[389,4586,3838],{"className":4587},[410,3837],[389,4589,591],{"className":4590},[468],[389,4592,553],{"className":4593},[410,411],[389,4595,4597],{"className":4596},[491],"])",[3095,4599,4601,4926],{"className":4600},[3098,3099],[2640,4602,4606],{"xmlns":2642,"width":4603,"height":4604,"viewBox":4605},"265.599","99.942","-75 -75 199.199 74.957",[3106,4607,4608,4629,4650,4669,4688,4707,4726,4745,4764,4783,4801,4820,4839,4842,4849,4852,4858,4861,4867,4870,4877,4880,4886,4897,4900],{"stroke":3108,"style":3109},[3106,4609,4610,4617,4623],{"stroke":3112,"fontSize":3445},[3106,4611,4613],{"transform":4612},"translate(23.902 -17.34)",[2648,4614],{"d":4615,"fill":3108,"stroke":3108,"className":4616,"style":3204},"M-80.025-46.922Q-79.810-46.618-79.146-46.618Q-78.716-46.618-78.359-46.819Q-78.002-47.020-78.002-47.419Q-78.002-47.622-78.162-47.745Q-78.322-47.868-78.529-47.907L-78.994-47.993Q-79.310-48.063-79.525-48.270Q-79.740-48.477-79.740-48.786Q-79.740-49.149-79.535-49.421Q-79.330-49.692-79-49.831Q-78.670-49.969-78.314-49.969Q-77.927-49.969-77.617-49.801Q-77.306-49.633-77.306-49.282Q-77.306-49.090-77.412-48.950Q-77.517-48.809-77.705-48.809Q-77.814-48.809-77.896-48.881Q-77.978-48.954-77.978-49.067Q-77.978-49.212-77.880-49.321Q-77.783-49.430-77.642-49.450Q-77.732-49.594-77.923-49.655Q-78.115-49.715-78.330-49.715Q-78.662-49.715-78.935-49.544Q-79.209-49.372-79.209-49.059Q-79.209-48.903-79.097-48.809Q-78.986-48.715-78.810-48.672L-78.353-48.587Q-77.978-48.516-77.726-48.284Q-77.474-48.051-77.474-47.688Q-77.474-47.415-77.619-47.147Q-77.763-46.880-78.002-46.700Q-78.478-46.364-79.162-46.364Q-79.439-46.364-79.720-46.436Q-80.002-46.508-80.193-46.682Q-80.384-46.856-80.384-47.137Q-80.384-47.360-80.255-47.524Q-80.127-47.688-79.908-47.688Q-79.763-47.688-79.675-47.606Q-79.588-47.524-79.588-47.387Q-79.588-47.208-79.718-47.065Q-79.849-46.922-80.025-46.922",[3121],[3106,4618,4619],{"transform":4612},[2648,4620],{"d":4621,"fill":3108,"stroke":3108,"className":4622,"style":3204},"M-70.927-47.419L-76.240-47.419Q-76.318-47.426-76.367-47.475Q-76.415-47.524-76.415-47.602Q-76.415-47.672-76.368-47.723Q-76.322-47.774-76.240-47.786L-70.927-47.786Q-70.853-47.774-70.806-47.723Q-70.759-47.672-70.759-47.602Q-70.759-47.524-70.808-47.475Q-70.857-47.426-70.927-47.419M-70.927-49.106L-76.240-49.106Q-76.318-49.114-76.367-49.163Q-76.415-49.212-76.415-49.290Q-76.415-49.360-76.368-49.411Q-76.322-49.462-76.240-49.473L-70.927-49.473Q-70.853-49.462-70.806-49.411Q-70.759-49.360-70.759-49.290Q-70.759-49.212-70.808-49.163Q-70.857-49.114-70.927-49.106",[3121],[3106,4624,4625],{"transform":4612},[2648,4626],{"d":4627,"fill":3108,"stroke":3108,"className":4628,"style":3204},"M-66.683-46.442L-69.476-46.442L-69.476-46.739Q-68.414-46.739-68.414-47.001L-68.414-51.169Q-68.843-50.954-69.523-50.954L-69.523-51.251Q-68.504-51.251-67.988-51.762L-67.843-51.762Q-67.769-51.743-67.750-51.665L-67.750-47.001Q-67.750-46.739-66.683-46.739",[3121],[3106,4630,4631,4638,4644],{"stroke":3112,"fontSize":3445},[3106,4632,4634],{"transform":4633},"translate(18.548 -5.967)",[2648,4635],{"d":4636,"fill":3108,"stroke":3108,"className":4637,"style":3204},"M-73.048-44.442L-80.244-44.442Q-80.345-44.465-80.345-44.555Q-80.345-44.606-80.314-44.626L-77.244-48.161L-80.314-52.106Q-80.341-52.145-80.345-52.169L-80.345-52.337Q-80.326-52.422-80.244-52.442L-73.048-52.442L-72.322-50.520L-72.603-50.520Q-72.806-51.067-73.246-51.397Q-73.685-51.727-74.234-51.870Q-74.783-52.012-75.302-52.044Q-75.822-52.075-76.545-52.075L-79.345-52.075L-76.572-48.512Q-76.545-48.481-76.545-48.442Q-76.545-48.395-76.572-48.364L-79.552-44.946L-76.490-44.946Q-75.775-44.946-75.240-44.981Q-74.705-45.016-74.173-45.159Q-73.642-45.301-73.218-45.628Q-72.795-45.954-72.603-46.497L-72.322-46.497",[3121],[3106,4639,4640],{"transform":4633},[2648,4641],{"d":4642,"fill":3108,"stroke":3108,"className":4643,"style":3204},"M-64.468-47.419L-69.781-47.419Q-69.859-47.426-69.908-47.475Q-69.956-47.524-69.956-47.602Q-69.956-47.672-69.909-47.723Q-69.863-47.774-69.781-47.786L-64.468-47.786Q-64.394-47.774-64.347-47.723Q-64.300-47.672-64.300-47.602Q-64.300-47.524-64.349-47.475Q-64.398-47.426-64.468-47.419M-64.468-49.106L-69.781-49.106Q-69.859-49.114-69.908-49.163Q-69.956-49.212-69.956-49.290Q-69.956-49.360-69.909-49.411Q-69.863-49.462-69.781-49.473L-64.468-49.473Q-64.394-49.462-64.347-49.411Q-64.300-49.360-64.300-49.290Q-64.300-49.212-64.349-49.163Q-64.398-49.114-64.468-49.106",[3121],[3106,4645,4646],{"transform":4633},[2648,4647],{"d":4648,"fill":3108,"stroke":3108,"className":4649,"style":3204},"M-60.232-46.442L-63.392-46.442L-63.392-46.649Q-63.392-46.676-63.369-46.708L-62.017-48.106Q-61.638-48.493-61.390-48.782Q-61.142-49.071-60.968-49.428Q-60.795-49.786-60.795-50.176Q-60.795-50.524-60.927-50.817Q-61.060-51.110-61.314-51.288Q-61.568-51.465-61.923-51.465Q-62.283-51.465-62.574-51.270Q-62.865-51.075-63.009-50.747L-62.955-50.747Q-62.771-50.747-62.646-50.626Q-62.521-50.505-62.521-50.313Q-62.521-50.133-62.646-50.005Q-62.771-49.876-62.955-49.876Q-63.134-49.876-63.263-50.005Q-63.392-50.133-63.392-50.313Q-63.392-50.715-63.172-51.051Q-62.951-51.387-62.586-51.575Q-62.220-51.762-61.818-51.762Q-61.338-51.762-60.922-51.575Q-60.505-51.387-60.254-51.026Q-60.002-50.665-60.002-50.176Q-60.002-49.817-60.156-49.514Q-60.310-49.212-60.562-48.952Q-60.814-48.692-61.164-48.407Q-61.513-48.122-61.681-47.969L-62.611-47.130L-61.896-47.130Q-60.521-47.130-60.482-47.169Q-60.412-47.247-60.369-47.432Q-60.326-47.618-60.283-47.907L-60.002-47.907L-60.232-46.442M-58.076-46.665Q-58.076-47.090-57.992-47.540Q-57.908-47.989-57.752-48.407Q-57.595-48.825-57.380-49.212Q-57.166-49.598-56.892-49.954L-56.166-50.907L-57.076-50.907Q-58.572-50.907-58.611-50.868Q-58.681-50.786-58.728-50.596Q-58.775-50.407-58.818-50.130L-59.099-50.130L-58.830-51.848L-58.548-51.848L-58.548-51.825Q-58.548-51.680-58.031-51.637Q-57.513-51.594-57.021-51.594L-55.451-51.594L-55.451-51.403Q-55.459-51.364-55.474-51.337L-56.650-49.801Q-56.951-49.383-57.089-48.876Q-57.228-48.368-57.259-47.874Q-57.291-47.380-57.291-46.665Q-57.291-46.559-57.341-46.467Q-57.392-46.376-57.484-46.325Q-57.576-46.274-57.685-46.274Q-57.791-46.274-57.882-46.325Q-57.974-46.376-58.025-46.467Q-58.076-46.559-58.076-46.665",[3121],[3106,4651,4652,4658,4663],{"stroke":3112,"fontSize":3445},[3106,4653,4655],{"transform":4654},"translate(55.2 -17.34)",[2648,4656],{"d":4615,"fill":3108,"stroke":3108,"className":4657,"style":3204},[3121],[3106,4659,4660],{"transform":4654},[2648,4661],{"d":4621,"fill":3108,"stroke":3108,"className":4662,"style":3204},[3121],[3106,4664,4665],{"transform":4654},[2648,4666],{"d":4667,"fill":3108,"stroke":3108,"className":4668,"style":3204},"M-66.691-46.442L-69.851-46.442L-69.851-46.649Q-69.851-46.676-69.828-46.708L-68.476-48.106Q-68.097-48.493-67.849-48.782Q-67.601-49.071-67.427-49.428Q-67.254-49.786-67.254-50.176Q-67.254-50.524-67.386-50.817Q-67.519-51.110-67.773-51.288Q-68.027-51.465-68.382-51.465Q-68.742-51.465-69.033-51.270Q-69.324-51.075-69.468-50.747L-69.414-50.747Q-69.230-50.747-69.105-50.626Q-68.980-50.505-68.980-50.313Q-68.980-50.133-69.105-50.005Q-69.230-49.876-69.414-49.876Q-69.593-49.876-69.722-50.005Q-69.851-50.133-69.851-50.313Q-69.851-50.715-69.631-51.051Q-69.410-51.387-69.045-51.575Q-68.679-51.762-68.277-51.762Q-67.797-51.762-67.381-51.575Q-66.965-51.387-66.713-51.026Q-66.461-50.665-66.461-50.176Q-66.461-49.817-66.615-49.514Q-66.769-49.212-67.021-48.952Q-67.273-48.692-67.623-48.407Q-67.972-48.122-68.140-47.969L-69.070-47.130L-68.355-47.130Q-66.980-47.130-66.941-47.169Q-66.871-47.247-66.828-47.432Q-66.785-47.618-66.742-47.907L-66.461-47.907",[3121],[3106,4670,4671,4677,4682],{"stroke":3112,"fontSize":3445},[3106,4672,4674],{"transform":4673},"translate(49.846 -5.967)",[2648,4675],{"d":4636,"fill":3108,"stroke":3108,"className":4676,"style":3204},[3121],[3106,4678,4679],{"transform":4673},[2648,4680],{"d":4642,"fill":3108,"stroke":3108,"className":4681,"style":3204},[3121],[3106,4683,4684],{"transform":4673},[2648,4685],{"d":4686,"fill":3108,"stroke":3108,"className":4687,"style":3204},"M-60.224-46.442L-63.017-46.442L-63.017-46.739Q-61.955-46.739-61.955-47.001L-61.955-51.169Q-62.384-50.954-63.064-50.954L-63.064-51.251Q-62.045-51.251-61.529-51.762L-61.384-51.762Q-61.310-51.743-61.291-51.665L-61.291-47.001Q-61.291-46.739-60.224-46.739L-60.224-46.442M-58.732-47.321L-58.795-47.321Q-58.654-46.969-58.330-46.758Q-58.005-46.547-57.619-46.547Q-57.025-46.547-56.775-46.981Q-56.525-47.415-56.525-48.051Q-56.525-48.645-56.695-49.092Q-56.865-49.540-57.365-49.540Q-57.662-49.540-57.867-49.460Q-58.072-49.380-58.173-49.288Q-58.275-49.196-58.390-49.063Q-58.505-48.930-58.556-48.915L-58.627-48.915Q-58.713-48.938-58.732-49.016L-58.732-51.665Q-58.701-51.762-58.627-51.762Q-58.611-51.762-58.603-51.760Q-58.595-51.758-58.588-51.755Q-58.002-51.505-57.404-51.505Q-56.822-51.505-56.205-51.762L-56.181-51.762Q-56.138-51.762-56.111-51.737Q-56.084-51.712-56.084-51.672L-56.084-51.594Q-56.084-51.563-56.107-51.540Q-56.404-51.188-56.826-50.991Q-57.248-50.794-57.709-50.794Q-58.056-50.794-58.435-50.899L-58.435-49.403Q-58.216-49.598-57.941-49.696Q-57.666-49.794-57.365-49.794Q-56.908-49.794-56.539-49.546Q-56.170-49.297-55.963-48.893Q-55.755-48.489-55.755-48.044Q-55.755-47.555-56.011-47.147Q-56.267-46.739-56.699-46.506Q-57.130-46.274-57.619-46.274Q-58.013-46.274-58.369-46.465Q-58.724-46.657-58.935-46.991Q-59.146-47.325-59.146-47.739Q-59.146-47.919-59.029-48.032Q-58.912-48.145-58.732-48.145Q-58.615-48.145-58.523-48.092Q-58.431-48.040-58.379-47.948Q-58.326-47.856-58.326-47.739Q-58.326-47.555-58.439-47.438Q-58.552-47.321-58.732-47.321",[3121],[3106,4689,4690,4696,4701],{"stroke":3112,"fontSize":3445},[3106,4691,4693],{"transform":4692},"translate(86.499 -17.34)",[2648,4694],{"d":4615,"fill":3108,"stroke":3108,"className":4695,"style":3204},[3121],[3106,4697,4698],{"transform":4692},[2648,4699],{"d":4621,"fill":3108,"stroke":3108,"className":4700,"style":3204},[3121],[3106,4702,4703],{"transform":4692},[2648,4704],{"d":4705,"fill":3108,"stroke":3108,"className":4706,"style":3204},"M-69.484-47.075Q-69.293-46.801-68.937-46.674Q-68.582-46.547-68.199-46.547Q-67.863-46.547-67.654-46.733Q-67.445-46.919-67.349-47.212Q-67.254-47.505-67.254-47.817Q-67.254-48.141-67.351-48.436Q-67.449-48.731-67.662-48.915Q-67.875-49.098-68.207-49.098L-68.773-49.098Q-68.804-49.098-68.834-49.128Q-68.863-49.157-68.863-49.184L-68.863-49.266Q-68.863-49.301-68.834-49.327Q-68.804-49.352-68.773-49.352L-68.293-49.387Q-68.007-49.387-67.810-49.592Q-67.613-49.797-67.517-50.092Q-67.422-50.387-67.422-50.665Q-67.422-51.044-67.621-51.282Q-67.820-51.520-68.199-51.520Q-68.519-51.520-68.808-51.413Q-69.097-51.305-69.261-51.083Q-69.082-51.083-68.959-50.956Q-68.836-50.829-68.836-50.657Q-68.836-50.485-68.961-50.360Q-69.086-50.235-69.261-50.235Q-69.433-50.235-69.558-50.360Q-69.683-50.485-69.683-50.657Q-69.683-51.024-69.459-51.272Q-69.234-51.520-68.894-51.641Q-68.554-51.762-68.199-51.762Q-67.851-51.762-67.488-51.641Q-67.125-51.520-66.877-51.270Q-66.629-51.020-66.629-50.665Q-66.629-50.180-66.947-49.797Q-67.265-49.415-67.742-49.243Q-67.191-49.133-66.791-48.747Q-66.390-48.360-66.390-47.825Q-66.390-47.368-66.654-47.012Q-66.918-46.657-67.340-46.465Q-67.761-46.274-68.199-46.274Q-68.609-46.274-69.002-46.409Q-69.394-46.544-69.660-46.829Q-69.925-47.114-69.925-47.532Q-69.925-47.727-69.793-47.856Q-69.660-47.985-69.468-47.985Q-69.343-47.985-69.240-47.926Q-69.136-47.868-69.074-47.762Q-69.011-47.657-69.011-47.532Q-69.011-47.337-69.146-47.206Q-69.281-47.075-69.484-47.075",[3121],[3106,4708,4709,4715,4720],{"stroke":3112,"fontSize":3445},[3106,4710,4712],{"transform":4711},"translate(81.144 -5.967)",[2648,4713],{"d":4636,"fill":3108,"stroke":3108,"className":4714,"style":3204},[3121],[3106,4716,4717],{"transform":4711},[2648,4718],{"d":4642,"fill":3108,"stroke":3108,"className":4719,"style":3204},[3121],[3106,4721,4722],{"transform":4711},[2648,4723],{"d":4724,"fill":3108,"stroke":3108,"className":4725,"style":3204},"M-60.224-46.442L-63.017-46.442L-63.017-46.739Q-61.955-46.739-61.955-47.001L-61.955-51.169Q-62.384-50.954-63.064-50.954L-63.064-51.251Q-62.045-51.251-61.529-51.762L-61.384-51.762Q-61.310-51.743-61.291-51.665L-61.291-47.001Q-61.291-46.739-60.224-46.739L-60.224-46.442M-57.451-46.274Q-58.154-46.274-58.554-46.674Q-58.955-47.075-59.099-47.684Q-59.244-48.294-59.244-48.993Q-59.244-49.516-59.173-49.979Q-59.103-50.442-58.910-50.854Q-58.716-51.266-58.359-51.514Q-58.002-51.762-57.451-51.762Q-56.900-51.762-56.543-51.514Q-56.185-51.266-55.994-50.856Q-55.802-50.446-55.732-49.977Q-55.662-49.508-55.662-48.993Q-55.662-48.294-55.804-47.686Q-55.947-47.079-56.347-46.676Q-56.748-46.274-57.451-46.274M-57.451-46.532Q-56.978-46.532-56.746-46.967Q-56.513-47.403-56.459-47.942Q-56.404-48.481-56.404-49.122Q-56.404-50.118-56.588-50.811Q-56.771-51.505-57.451-51.505Q-57.818-51.505-58.039-51.266Q-58.259-51.028-58.355-50.671Q-58.451-50.313-58.476-49.942Q-58.502-49.571-58.502-49.122Q-58.502-48.481-58.447-47.942Q-58.392-47.403-58.160-46.967Q-57.927-46.532-57.451-46.532",[3121],[3106,4727,4728,4734,4739],{"stroke":3112,"fontSize":3445},[3106,4729,4731],{"transform":4730},"translate(117.797 -17.34)",[2648,4732],{"d":4615,"fill":3108,"stroke":3108,"className":4733,"style":3204},[3121],[3106,4735,4736],{"transform":4730},[2648,4737],{"d":4621,"fill":3108,"stroke":3108,"className":4738,"style":3204},[3121],[3106,4740,4741],{"transform":4730},[2648,4742],{"d":4743,"fill":3108,"stroke":3108,"className":4744,"style":3204},"M-67.797-47.755L-70.039-47.755L-70.039-48.051L-67.468-51.708Q-67.429-51.762-67.367-51.762L-67.222-51.762Q-67.172-51.762-67.140-51.731Q-67.109-51.700-67.109-51.649L-67.109-48.051L-66.277-48.051L-66.277-47.755L-67.109-47.755L-67.109-47.001Q-67.109-46.739-66.285-46.739L-66.285-46.442L-68.621-46.442L-68.621-46.739Q-67.797-46.739-67.797-47.001L-67.797-47.755M-67.742-50.856L-69.711-48.051L-67.742-48.051",[3121],[3106,4746,4747,4753,4758],{"stroke":3112,"fontSize":3445},[3106,4748,4750],{"transform":4749},"translate(114.568 -5.967)",[2648,4751],{"d":4636,"fill":3108,"stroke":3108,"className":4752,"style":3204},[3121],[3106,4754,4755],{"transform":4749},[2648,4756],{"d":4642,"fill":3108,"stroke":3108,"className":4757,"style":3204},[3121],[3106,4759,4760],{"transform":4749},[2648,4761],{"d":4762,"fill":3108,"stroke":3108,"className":4763,"style":3204},"M-63.466-47.665Q-63.466-48.161-63.140-48.526Q-62.814-48.891-62.291-49.137L-62.560-49.297Q-62.857-49.481-63.041-49.776Q-63.224-50.071-63.224-50.411Q-63.224-50.805-63.005-51.116Q-62.787-51.426-62.433-51.594Q-62.080-51.762-61.697-51.762Q-61.423-51.762-61.150-51.684Q-60.877-51.606-60.660-51.458Q-60.443-51.309-60.306-51.083Q-60.170-50.856-60.170-50.563Q-60.170-50.157-60.439-49.850Q-60.709-49.544-61.130-49.329L-60.681-49.059Q-60.463-48.922-60.295-48.729Q-60.127-48.536-60.029-48.297Q-59.931-48.059-59.931-47.801Q-59.931-47.462-60.082-47.174Q-60.232-46.887-60.478-46.690Q-60.724-46.493-61.048-46.383Q-61.373-46.274-61.697-46.274Q-62.127-46.274-62.533-46.436Q-62.939-46.598-63.203-46.917Q-63.466-47.235-63.466-47.665M-62.978-47.665Q-62.978-47.180-62.588-46.864Q-62.197-46.547-61.697-46.547Q-61.404-46.547-61.105-46.659Q-60.806-46.770-60.613-46.989Q-60.420-47.208-60.420-47.520Q-60.420-47.751-60.560-47.962Q-60.701-48.172-60.908-48.290L-62.017-48.969Q-62.435-48.766-62.707-48.430Q-62.978-48.094-62.978-47.665M-62.392-50.098L-61.404-49.497Q-61.056-49.680-60.830-49.950Q-60.603-50.219-60.603-50.563Q-60.603-50.782-60.695-50.958Q-60.787-51.133-60.941-51.256Q-61.095-51.380-61.297-51.450Q-61.498-51.520-61.697-51.520Q-62.103-51.520-62.449-51.309Q-62.795-51.098-62.795-50.715Q-62.795-50.532-62.683-50.370Q-62.572-50.208-62.392-50.098",[3121],[3106,4765,4766,4772,4777],{"stroke":3112,"fontSize":3445},[3106,4767,4769],{"transform":4768},"translate(149.095 -17.34)",[2648,4770],{"d":4615,"fill":3108,"stroke":3108,"className":4771,"style":3204},[3121],[3106,4773,4774],{"transform":4768},[2648,4775],{"d":4621,"fill":3108,"stroke":3108,"className":4776,"style":3204},[3121],[3106,4778,4779],{"transform":4768},[2648,4780],{"d":4781,"fill":3108,"stroke":3108,"className":4782,"style":3204},"M-69.437-47.321L-69.500-47.321Q-69.359-46.969-69.035-46.758Q-68.711-46.547-68.324-46.547Q-67.730-46.547-67.480-46.981Q-67.230-47.415-67.230-48.051Q-67.230-48.645-67.400-49.092Q-67.570-49.540-68.070-49.540Q-68.367-49.540-68.572-49.460Q-68.777-49.380-68.879-49.288Q-68.980-49.196-69.095-49.063Q-69.211-48.930-69.261-48.915L-69.332-48.915Q-69.418-48.938-69.437-49.016L-69.437-51.665Q-69.406-51.762-69.332-51.762Q-69.316-51.762-69.308-51.760Q-69.300-51.758-69.293-51.755Q-68.707-51.505-68.109-51.505Q-67.527-51.505-66.910-51.762L-66.886-51.762Q-66.843-51.762-66.816-51.737Q-66.789-51.712-66.789-51.672L-66.789-51.594Q-66.789-51.563-66.812-51.540Q-67.109-51.188-67.531-50.991Q-67.953-50.794-68.414-50.794Q-68.761-50.794-69.140-50.899L-69.140-49.403Q-68.922-49.598-68.646-49.696Q-68.371-49.794-68.070-49.794Q-67.613-49.794-67.244-49.546Q-66.875-49.297-66.668-48.893Q-66.461-48.489-66.461-48.044Q-66.461-47.555-66.716-47.147Q-66.972-46.739-67.404-46.506Q-67.836-46.274-68.324-46.274Q-68.718-46.274-69.074-46.465Q-69.429-46.657-69.640-46.991Q-69.851-47.325-69.851-47.739Q-69.851-47.919-69.734-48.032Q-69.617-48.145-69.437-48.145Q-69.320-48.145-69.228-48.092Q-69.136-48.040-69.084-47.948Q-69.031-47.856-69.031-47.739Q-69.031-47.555-69.144-47.438Q-69.257-47.321-69.437-47.321",[3121],[3106,4784,4785,4791,4796],{"stroke":3112,"fontSize":3445},[3106,4786,4788],{"transform":4787},"translate(145.866 -5.967)",[2648,4789],{"d":4636,"fill":3108,"stroke":3108,"className":4790,"style":3204},[3121],[3106,4792,4793],{"transform":4787},[2648,4794],{"d":4642,"fill":3108,"stroke":3108,"className":4795,"style":3204},[3121],[3106,4797,4798],{"transform":4787},[2648,4799],{"d":4762,"fill":3108,"stroke":3108,"className":4800,"style":3204},[3121],[3106,4802,4803,4809,4814],{"stroke":3112,"fontSize":3445},[3106,4804,4806],{"transform":4805},"translate(180.393 -17.34)",[2648,4807],{"d":4615,"fill":3108,"stroke":3108,"className":4808,"style":3204},[3121],[3106,4810,4811],{"transform":4805},[2648,4812],{"d":4621,"fill":3108,"stroke":3108,"className":4813,"style":3204},[3121],[3106,4815,4816],{"transform":4805},[2648,4817],{"d":4818,"fill":3108,"stroke":3108,"className":4819,"style":3204},"M-68.156-46.274Q-68.828-46.274-69.224-46.698Q-69.621-47.122-69.773-47.741Q-69.925-48.360-69.925-49.028Q-69.925-49.688-69.654-50.321Q-69.382-50.954-68.869-51.358Q-68.355-51.762-67.683-51.762Q-67.394-51.762-67.146-51.663Q-66.898-51.563-66.752-51.362Q-66.605-51.161-66.605-50.856Q-66.605-50.751-66.656-50.659Q-66.707-50.567-66.798-50.516Q-66.890-50.465-66.996-50.465Q-67.164-50.465-67.277-50.579Q-67.390-50.692-67.390-50.856Q-67.390-51.016-67.281-51.133Q-67.172-51.251-67.004-51.251Q-67.203-51.520-67.683-51.520Q-68.101-51.520-68.433-51.243Q-68.765-50.965-68.941-50.547Q-69.140-50.047-69.140-49.145Q-68.976-49.469-68.697-49.669Q-68.418-49.868-68.070-49.868Q-67.586-49.868-67.201-49.622Q-66.816-49.376-66.603-48.967Q-66.390-48.559-66.390-48.075Q-66.390-47.583-66.621-47.171Q-66.851-46.758-67.261-46.516Q-67.672-46.274-68.156-46.274M-68.156-46.547Q-67.730-46.547-67.513-46.768Q-67.297-46.989-67.234-47.315Q-67.172-47.641-67.172-48.075Q-67.172-48.387-67.197-48.637Q-67.222-48.887-67.312-49.112Q-67.402-49.337-67.597-49.473Q-67.793-49.610-68.109-49.610Q-68.437-49.610-68.670-49.401Q-68.902-49.192-69.013-48.874Q-69.125-48.555-69.125-48.243Q-69.121-48.204-69.119-48.171Q-69.117-48.137-69.117-48.083Q-69.117-48.067-69.119-48.059Q-69.121-48.051-69.125-48.044Q-69.125-47.469-68.898-47.008Q-68.672-46.547-68.156-46.547",[3121],[3106,4821,4822,4828,4833],{"stroke":3112,"fontSize":3445},[3106,4823,4825],{"transform":4824},"translate(177.164 -5.967)",[2648,4826],{"d":4636,"fill":3108,"stroke":3108,"className":4827,"style":3204},[3121],[3106,4829,4830],{"transform":4824},[2648,4831],{"d":4642,"fill":3108,"stroke":3108,"className":4832,"style":3204},[3121],[3106,4834,4835],{"transform":4824},[2648,4836],{"d":4837,"fill":3108,"stroke":3108,"className":4838,"style":3204},"M-61.697-46.274Q-62.369-46.274-62.765-46.698Q-63.162-47.122-63.314-47.741Q-63.466-48.360-63.466-49.028Q-63.466-49.688-63.195-50.321Q-62.923-50.954-62.410-51.358Q-61.896-51.762-61.224-51.762Q-60.935-51.762-60.687-51.663Q-60.439-51.563-60.293-51.362Q-60.146-51.161-60.146-50.856Q-60.146-50.751-60.197-50.659Q-60.248-50.567-60.339-50.516Q-60.431-50.465-60.537-50.465Q-60.705-50.465-60.818-50.579Q-60.931-50.692-60.931-50.856Q-60.931-51.016-60.822-51.133Q-60.713-51.251-60.545-51.251Q-60.744-51.520-61.224-51.520Q-61.642-51.520-61.974-51.243Q-62.306-50.965-62.482-50.547Q-62.681-50.047-62.681-49.145Q-62.517-49.469-62.238-49.669Q-61.959-49.868-61.611-49.868Q-61.127-49.868-60.742-49.622Q-60.357-49.376-60.144-48.967Q-59.931-48.559-59.931-48.075Q-59.931-47.583-60.162-47.171Q-60.392-46.758-60.802-46.516Q-61.213-46.274-61.697-46.274M-61.697-46.547Q-61.271-46.547-61.054-46.768Q-60.838-46.989-60.775-47.315Q-60.713-47.641-60.713-48.075Q-60.713-48.387-60.738-48.637Q-60.763-48.887-60.853-49.112Q-60.943-49.337-61.138-49.473Q-61.334-49.610-61.650-49.610Q-61.978-49.610-62.211-49.401Q-62.443-49.192-62.554-48.874Q-62.666-48.555-62.666-48.243Q-62.662-48.204-62.660-48.171Q-62.658-48.137-62.658-48.083Q-62.658-48.067-62.660-48.059Q-62.662-48.051-62.666-48.044Q-62.666-47.469-62.439-47.008Q-62.213-46.547-61.697-46.547",[3121],[2648,4840],{"fill":3112,"d":4841},"M-60.901-26.525h22.762v-22.763h-22.762Z",[3106,4843,4845],{"transform":4844},"translate(27.703 11.61)",[2648,4846],{"d":4847,"fill":3108,"stroke":3108,"className":4848,"style":3122},"M-77.711-46.442L-80.352-46.442Q-80.449-46.442-80.449-46.561Q-80.449-46.622-80.416-46.690Q-80.383-46.758-80.321-46.758Q-79.820-46.758-79.592-46.811Q-79.473-46.855-79.394-47.088L-78.172-52.005Q-78.155-52.093-78.155-52.137Q-78.155-52.203-78.181-52.221Q-78.353-52.274-78.884-52.274Q-78.990-52.274-78.990-52.392Q-78.990-52.454-78.957-52.522Q-78.924-52.590-78.867-52.590L-74.024-52.590Q-73.976-52.590-73.945-52.555Q-73.914-52.520-73.914-52.471L-74.121-50.634Q-74.130-50.590-74.158-50.560Q-74.187-50.529-74.231-50.529L-74.310-50.529Q-74.411-50.529-74.411-50.652Q-74.367-51.201-74.367-51.311Q-74.367-51.759-74.567-51.970Q-74.767-52.181-75.068-52.227Q-75.369-52.274-75.896-52.274L-76.902-52.274Q-77.162-52.274-77.236-52.227Q-77.311-52.181-77.373-51.940L-77.940-49.672L-77.245-49.672Q-76.779-49.672-76.549-49.736Q-76.318-49.799-76.182-50.010Q-76.046-50.221-75.940-50.643Q-75.909-50.727-75.839-50.727L-75.760-50.727Q-75.716-50.727-75.683-50.694Q-75.650-50.661-75.650-50.617Q-75.650-50.599-75.659-50.582L-76.208-48.384Q-76.226-48.305-76.309-48.305L-76.388-48.305Q-76.489-48.305-76.489-48.424Q-76.489-48.472-76.443-48.657Q-76.397-48.841-76.397-48.960Q-76.397-49.219-76.637-49.290Q-76.876-49.360-77.263-49.360L-78.019-49.360L-78.603-47Q-78.603-46.983-78.605-46.967Q-78.608-46.952-78.612-46.930Q-78.612-46.833-78.542-46.811Q-78.291-46.758-77.658-46.758Q-77.610-46.758-77.581-46.725Q-77.553-46.692-77.553-46.649Q-77.553-46.442-77.711-46.442",[3121],[2648,4850],{"fill":3112,"d":4851},"M-29.603-26.525h22.762v-22.763h-22.762Z",[3106,4853,4855],{"transform":4854},"translate(59 11.61)",[2648,4856],{"d":4847,"fill":3108,"stroke":3108,"className":4857,"style":3122},[3121],[2648,4859],{"fill":3112,"d":4860},"M1.695-26.525h22.762v-22.763H1.695Z",[3106,4862,4864],{"transform":4863},"translate(90.3 11.61)",[2648,4865],{"d":4847,"fill":3108,"stroke":3108,"className":4866,"style":3122},[3121],[2648,4868],{"fill":3112,"d":4869},"M64.291-26.525h22.763v-22.763H64.29Z",[3106,4871,4873],{"transform":4872},"translate(153.15 11.61)",[2648,4874],{"d":4875,"fill":3108,"stroke":3108,"className":4876,"style":3122},"M-80.304-46.561Q-80.304-46.622-80.271-46.690Q-80.238-46.758-80.181-46.758Q-79.425-46.758-79.161-46.802Q-78.946-46.851-78.876-47.088L-77.650-52.005Q-77.614-52.146-77.614-52.212Q-77.614-52.274-77.900-52.274L-78.467-52.274Q-79.082-52.274-79.414-52.091Q-79.746-51.909-79.902-51.606Q-80.058-51.302-80.304-50.599Q-80.339-50.529-80.405-50.529L-80.484-50.529Q-80.585-50.529-80.585-50.643Q-80.585-50.674-80.576-50.692L-79.935-52.524Q-79.917-52.590-79.847-52.590L-74.411-52.590Q-74.362-52.590-74.332-52.555Q-74.301-52.520-74.301-52.471L-74.582-50.634Q-74.600-50.529-74.688-50.529L-74.771-50.529Q-74.806-50.529-74.837-50.568Q-74.868-50.608-74.868-50.652Q-74.780-51.355-74.780-51.535Q-74.780-51.860-74.912-52.025Q-75.044-52.190-75.261-52.232Q-75.479-52.274-75.830-52.274L-76.380-52.274Q-76.639-52.274-76.714-52.227Q-76.788-52.181-76.850-51.940L-78.080-47.018L-78.080-46.947Q-78.080-46.842-78.010-46.820Q-77.742-46.758-76.986-46.758Q-76.933-46.758-76.905-46.725Q-76.876-46.692-76.876-46.649Q-76.876-46.442-77.039-46.442L-80.207-46.442Q-80.304-46.442-80.304-46.561",[3121],[2648,4878],{"fill":3112,"d":4879},"M95.59-26.525h22.762v-22.763H95.59Z",[3106,4881,4883],{"transform":4882},"translate(184.449 11.61)",[2648,4884],{"d":4875,"fill":3108,"stroke":3108,"className":4885,"style":3122},[3121],[3106,4887,4888,4891],{"stroke":3152,"style":3153},[2648,4889],{"fill":3112,"d":4890},"M32.992-26.525h22.763v-22.763H32.992Z",[3106,4892,4894],{"transform":4893},"translate(121.851 11.61)",[2648,4895],{"d":4875,"fill":3108,"stroke":3108,"className":4896,"style":3122},[3121],[2648,4898],{"fill":3112,"stroke":3152,"d":4899,"style":3194},"M44.374-17.99v-8.536",[3106,4901,4902,4908,4914,4920],{"fill":3152,"stroke":3112},[3106,4903,4905],{"transform":4904},"translate(113.268 39.796)",[2648,4906],{"d":4615,"fill":3152,"stroke":3152,"className":4907,"style":3204},[3121],[3106,4909,4910],{"transform":4904},[2648,4911],{"d":4912,"fill":3152,"stroke":3152,"className":4913,"style":3235},"M-75.945-49.415Q-75.945-49.433-75.939-49.451L-75.370-50.502L-76.431-51.006Q-76.492-51.036-76.492-51.091Q-76.492-51.129-76.463-51.154Q-76.434-51.179-76.396-51.179L-75.221-50.971L-75.063-52.140Q-75.051-52.219-74.975-52.219Q-74.896-52.219-74.884-52.140L-74.729-50.971L-73.569-51.179L-73.545-51.179Q-73.507-51.179-73.482-51.157Q-73.457-51.135-73.457-51.091Q-73.457-51.041-73.504-51.012L-74.579-50.502L-74.014-49.465Q-74.002-49.424-74.002-49.415Q-74.002-49.377-74.032-49.351Q-74.061-49.325-74.093-49.325Q-74.125-49.325-74.163-49.363L-74.975-50.215L-75.784-49.363Q-75.822-49.325-75.857-49.325Q-75.886-49.325-75.915-49.354Q-75.945-49.383-75.945-49.415",[3121],[3106,4915,4916],{"transform":4904},[2648,4917],{"d":4918,"fill":3152,"stroke":3152,"className":4919,"style":3204},"M-64.232-47.419L-69.545-47.419Q-69.623-47.426-69.672-47.475Q-69.720-47.524-69.720-47.602Q-69.720-47.672-69.673-47.723Q-69.627-47.774-69.545-47.786L-64.232-47.786Q-64.158-47.774-64.111-47.723Q-64.064-47.672-64.064-47.602Q-64.064-47.524-64.113-47.475Q-64.162-47.426-64.232-47.419M-64.232-49.106L-69.545-49.106Q-69.623-49.114-69.672-49.163Q-69.720-49.212-69.720-49.290Q-69.720-49.360-69.673-49.411Q-69.627-49.462-69.545-49.473L-64.232-49.473Q-64.158-49.462-64.111-49.411Q-64.064-49.360-64.064-49.290Q-64.064-49.212-64.113-49.163Q-64.162-49.114-64.232-49.106",[3121],[3106,4921,4922],{"transform":4904},[2648,4923],{"d":4924,"fill":3152,"stroke":3152,"className":4925,"style":3204},"M-58.741-47.755L-60.983-47.755L-60.983-48.051L-58.412-51.708Q-58.373-51.762-58.311-51.762L-58.166-51.762Q-58.116-51.762-58.084-51.731Q-58.053-51.700-58.053-51.649L-58.053-48.051L-57.221-48.051L-57.221-47.755L-58.053-47.755L-58.053-47.001Q-58.053-46.739-57.229-46.739L-57.229-46.442L-59.565-46.442L-59.565-46.739Q-58.741-46.739-58.741-47.001L-58.741-47.755M-58.686-50.856L-60.655-48.051L-58.686-48.051",[3121],[3237,4927,4929,4930,5006,5007,5040,5041,5177,5178,5202,5203],{"className":4928},[3240],"Koko feasibility over speeds for ",[389,4931,4933],{"className":4932},[392],[389,4934,4936,4958],{"className":4935,"ariaHidden":397},[396],[389,4937,4939,4943,4949,4952,4955],{"className":4938},[401],[389,4940],{"className":4941,"style":4942},[405],"height:0.8889em;vertical-align:-0.1944em;",[389,4944,4946],{"className":4945},[410,1023],[389,4947,3838],{"className":4948},[410,3837],[389,4950],{"className":4951,"style":560},[483],[389,4953,565],{"className":4954},[564],[389,4956],{"className":4957,"style":560},[483],[389,4959,4961,4964,4968,4972,4975,4978,4982,4985,4988,4992,4995,4998,5002],{"className":4960},[401],[389,4962],{"className":4963,"style":459},[405],[389,4965,4967],{"className":4966},[468],"⟨",[389,4969,4971],{"className":4970},[410],"3",[389,4973,729],{"className":4974},[674],[389,4976],{"className":4977,"style":484},[483],[389,4979,4981],{"className":4980},[410],"6",[389,4983,729],{"className":4984},[674],[389,4986],{"className":4987,"style":484},[483],[389,4989,4991],{"className":4990},[410],"7",[389,4993,729],{"className":4994},[674],[389,4996],{"className":4997,"style":484},[483],[389,4999,5001],{"className":5000},[410],"11",[389,5003,5005],{"className":5004},[491],"⟩",", ",[389,5008,5010],{"className":5009},[392],[389,5011,5013,5031],{"className":5012,"ariaHidden":397},[396],[389,5014,5016,5019,5022,5025,5028],{"className":5015},[401],[389,5017],{"className":5018,"style":799},[405],[389,5020,3879],{"className":5021,"style":3878},[410,411],[389,5023],{"className":5024,"style":560},[483],[389,5026,565],{"className":5027},[564],[389,5029],{"className":5030,"style":560},[483],[389,5032,5034,5037],{"className":5033},[401],[389,5035],{"className":5036,"style":1714},[405],[389,5038,3445],{"className":5039},[410],". The predicate ",[389,5042,5044],{"className":5043},[392],[389,5045,5047,5074,5162],{"className":5046,"ariaHidden":397},[396],[389,5048,5050,5053,5056,5059,5062,5065,5068,5071],{"className":5049},[401],[389,5051],{"className":5052,"style":459},[405],[389,5054,381],{"className":5055},[410,411],[389,5057,469],{"className":5058},[468],[389,5060,3896],{"className":5061},[410,411],[389,5063,492],{"className":5064},[491],[389,5066],{"className":5067,"style":560},[483],[389,5069,565],{"className":5070},[564],[389,5072],{"className":5073,"style":560},[483],[389,5075,5077,5080,5086,5126,5129,5135,5138,5141,5144,5147,5150,5153,5156,5159],{"className":5076},[401],[389,5078],{"className":5079,"style":575},[405],[389,5081,5083],{"className":5082},[468],[389,5084,469],{"className":5085},[582,583],[389,5087,5089,5092],{"className":5088},[473],[389,5090,4162],{"className":5091,"style":4161},[473,4159,4160],[389,5093,5095],{"className":5094},[2911],[389,5096,5098,5118],{"className":5097},[2568,2569],[389,5099,5101,5115],{"className":5100},[2573],[389,5102,5104],{"className":5103,"style":4175},[2577],[389,5105,5106,5109],{"style":4178},[389,5107],{"className":5108,"style":2927},[2584],[389,5110,5112],{"className":5111},[2589,2590,2591,2592],[389,5113,553],{"className":5114},[410,411,2592],[389,5116,2713],{"className":5117},[2712],[389,5119,5121],{"className":5120},[2573],[389,5122,5124],{"className":5123,"style":4197},[2577],[389,5125],{},[389,5127,3913],{"className":5128},[468],[389,5130,5132],{"className":5131},[410,1023],[389,5133,3838],{"className":5134},[410,3837],[389,5136,591],{"className":5137},[468],[389,5139,553],{"className":5140},[410,411],[389,5142,598],{"className":5143},[491],[389,5145,3932],{"className":5146},[410],[389,5148,3896],{"className":5149},[410,411],[389,5151,3939],{"className":5152},[491],[389,5154],{"className":5155,"style":560},[483],[389,5157,4233],{"className":5158},[564],[389,5160],{"className":5161,"style":560},[483],[389,5163,5165,5168,5171],{"className":5164},[401],[389,5166],{"className":5167,"style":575},[405],[389,5169,3445],{"className":5170},[410],[389,5172,5174],{"className":5173},[491],[389,5175,492],{"className":5176},[582,583]," flips ",[389,5179,5181],{"className":5180},[392],[389,5182,5184],{"className":5183,"ariaHidden":397},[396],[389,5185,5187,5190,5193,5199],{"className":5186},[401],[389,5188],{"className":5189,"style":799},[405],[389,5191,2683],{"className":5192,"style":2682},[410,411],[389,5194,5196],{"className":5195},[410],[389,5197,2394],{"className":5198},[564],[389,5200,2832],{"className":5201,"style":2682},[410,411]," once; binary search returns the boundary ",[389,5204,5206],{"className":5205},[392],[389,5207,5209,5253],{"className":5208,"ariaHidden":397},[396],[389,5210,5212,5215,5244,5247,5250],{"className":5211},[401],[389,5213],{"className":5214,"style":2901},[405],[389,5216,5218,5221],{"className":5217},[410],[389,5219,3896],{"className":5220},[410,411],[389,5222,5224],{"className":5223},[2911],[389,5225,5227],{"className":5226},[2568],[389,5228,5230],{"className":5229},[2573],[389,5231,5233],{"className":5232,"style":2901},[2577],[389,5234,5235,5238],{"style":2923},[389,5236],{"className":5237,"style":2927},[2584],[389,5239,5241],{"className":5240},[2589,2590,2591,2592],[389,5242,2934],{"className":5243},[907,2592],[389,5245],{"className":5246,"style":560},[483],[389,5248,565],{"className":5249},[564],[389,5251],{"className":5252,"style":560},[483],[389,5254,5256,5259],{"className":5255},[401],[389,5257],{"className":5258,"style":1714},[405],[389,5260,5262],{"className":5261},[410],"4",[989,5264,5266],{"id":5265},"capacity-to-ship-split-array-largest-sum","Capacity to ship \u002F split array largest sum",[381,5268,5269,5270,5273,5274,5290,5291,2441,5306,5309,5310,5329,5330,5333],{},"These two problems are the ",[626,5271,5272],{},"same"," problem. Given an array and a count ",[389,5275,5277],{"className":5276},[392],[389,5278,5280],{"className":5279,"ariaHidden":397},[396],[389,5281,5283,5286],{"className":5282},[401],[389,5284],{"className":5285,"style":799},[405],[389,5287,5289],{"className":5288,"style":463},[410,411],"D"," (days \u002F\nparts), partition it into ",[389,5292,5294],{"className":5293},[392],[389,5295,5297],{"className":5296,"ariaHidden":397},[396],[389,5298,5300,5303],{"className":5299},[401],[389,5301],{"className":5302,"style":799},[405],[389,5304,5289],{"className":5305,"style":463},[410,411],[495,5307,5308],{},"contiguous"," groups to minimize the maximum group\nsum. (",[964,5311,5312,5313,5328],{},"Capacity to ship within ",[389,5314,5316],{"className":5315},[392],[389,5317,5319],{"className":5318,"ariaHidden":397},[396],[389,5320,5322,5325],{"className":5321},[401],[389,5323],{"className":5324,"style":799},[405],[389,5326,5289],{"className":5327,"style":463},[410,411]," days"," reads the array as package weights;\n",[964,5331,5332],{},"Split array largest sum"," reads it as integers, with identical structure.)",[997,5335,5336,5558,5650],{},[1000,5337,5338,5340,5341,5358,5359,5557],{},[495,5339,3995],{}," the cap ",[389,5342,5344],{"className":5343},[392],[389,5345,5347],{"className":5346,"ariaHidden":397},[396],[389,5348,5350,5353],{"className":5349},[401],[389,5351],{"className":5352,"style":799},[405],[389,5354,5357],{"className":5355,"style":5356},[410,411],"margin-right:0.0715em;","C"," on a group's sum, in\n",[389,5360,5362],{"className":5361},[392],[389,5363,5365],{"className":5364,"ariaHidden":397},[396],[389,5366,5368,5372,5375,5418,5421,5462,5465,5468,5471,5511,5514,5554],{"className":5367},[401],[389,5369],{"className":5370,"style":5371},[405],"height:1.0497em;vertical-align:-0.2997em;",[389,5373,591],{"className":5374},[468],[389,5376,5378,5384],{"className":5377},[473],[389,5379,5381],{"className":5380},[473],[389,5382,4046],{"className":5383},[410,477],[389,5385,5387],{"className":5386},[2911],[389,5388,5390,5410],{"className":5389},[2568,2569],[389,5391,5393,5407],{"className":5392},[2573],[389,5394,5396],{"className":5395,"style":4059},[2577],[389,5397,5398,5401],{"style":4062},[389,5399],{"className":5400,"style":2927},[2584],[389,5402,5404],{"className":5403},[2589,2590,2591,2592],[389,5405,553],{"className":5406},[410,411,2592],[389,5408,2713],{"className":5409},[2712],[389,5411,5413],{"className":5412},[2573],[389,5414,5416],{"className":5415,"style":4081},[2577],[389,5417],{},[389,5419],{"className":5420,"style":484},[483],[389,5422,5424,5427],{"className":5423},[410],[389,5425,385],{"className":5426},[410,411],[389,5428,5430],{"className":5429},[2911],[389,5431,5433,5454],{"className":5432},[2568,2569],[389,5434,5436,5451],{"className":5435},[2573],[389,5437,5439],{"className":5438,"style":4059},[2577],[389,5440,5442,5445],{"style":5441},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[389,5443],{"className":5444,"style":2927},[2584],[389,5446,5448],{"className":5447},[2589,2590,2591,2592],[389,5449,553],{"className":5450},[410,411,2592],[389,5452,2713],{"className":5453},[2712],[389,5455,5457],{"className":5456},[2573],[389,5458,5460],{"className":5459,"style":4081},[2577],[389,5461],{},[389,5463,729],{"className":5464},[674],[389,5466,2738],{"className":5467},[483],[389,5469],{"className":5470,"style":484},[483],[389,5472,5474,5477],{"className":5473},[473],[389,5475,4162],{"className":5476,"style":4161},[473,4159,4160],[389,5478,5480],{"className":5479},[2911],[389,5481,5483,5503],{"className":5482},[2568,2569],[389,5484,5486,5500],{"className":5485},[2573],[389,5487,5489],{"className":5488,"style":4175},[2577],[389,5490,5491,5494],{"style":4178},[389,5492],{"className":5493,"style":2927},[2584],[389,5495,5497],{"className":5496},[2589,2590,2591,2592],[389,5498,553],{"className":5499},[410,411,2592],[389,5501,2713],{"className":5502},[2712],[389,5504,5506],{"className":5505},[2573],[389,5507,5509],{"className":5508,"style":4197},[2577],[389,5510],{},[389,5512],{"className":5513,"style":484},[483],[389,5515,5517,5520],{"className":5516},[410],[389,5518,385],{"className":5519},[410,411],[389,5521,5523],{"className":5522},[2911],[389,5524,5526,5546],{"className":5525},[2568,2569],[389,5527,5529,5543],{"className":5528},[2573],[389,5530,5532],{"className":5531,"style":4059},[2577],[389,5533,5534,5537],{"style":5441},[389,5535],{"className":5536,"style":2927},[2584],[389,5538,5540],{"className":5539},[2589,2590,2591,2592],[389,5541,553],{"className":5542},[410,411,2592],[389,5544,2713],{"className":5545},[2712],[389,5547,5549],{"className":5548},[2573],[389,5550,5552],{"className":5551,"style":4081},[2577],[389,5553],{},[389,5555,598],{"className":5556},[491],". (You cannot go below the largest single element; you\nnever need to exceed the whole sum.)",[1000,5559,5560,2441,5562,2441,5592],{},[495,5561,4107],{},[389,5563,5565],{"className":5564},[392],[389,5566,5568],{"className":5567,"ariaHidden":397},[396],[389,5569,5571,5574,5577,5580,5583,5586,5589],{"className":5570},[401],[389,5572],{"className":5573,"style":459},[405],[389,5575,381],{"className":5576},[410,411],[389,5578,469],{"className":5579},[468],[389,5581,5357],{"className":5582,"style":5356},[410,411],[389,5584,492],{"className":5585},[491],[389,5587],{"className":5588,"style":560},[483],[389,5590,565],{"className":5591},[564],[964,5593,5594,5595,5622,5623,633],{},"the array can be split into ",[389,5596,5598],{"className":5597},[392],[389,5599,5601,5613],{"className":5600,"ariaHidden":397},[396],[389,5602,5604,5607,5610],{"className":5603},[401],[389,5605],{"className":5606,"style":1735},[405],[389,5608,4233],{"className":5609},[564],[389,5611],{"className":5612,"style":560},[483],[389,5614,5616,5619],{"className":5615},[401],[389,5617],{"className":5618,"style":799},[405],[389,5620,5289],{"className":5621,"style":463},[410,411]," contiguous groups, each with sum ",[389,5624,5626],{"className":5625},[392],[389,5627,5629,5641],{"className":5628,"ariaHidden":397},[396],[389,5630,5632,5635,5638],{"className":5631},[401],[389,5633],{"className":5634,"style":1735},[405],[389,5636,4233],{"className":5637},[564],[389,5639],{"className":5640,"style":560},[483],[389,5642,5644,5647],{"className":5643},[401],[389,5645],{"className":5646,"style":799},[405],[389,5648,5357],{"className":5649,"style":5356},[410,411],[1000,5651,5652,5680,5681,5734,5735,5750,5751,5803,5804,5807,5808,5823,5824,5848,5849,633],{},[495,5653,5654,5655,5679],{},"Feasibility check (greedy, ",[389,5656,5658],{"className":5657},[392],[389,5659,5661],{"className":5660,"ariaHidden":397},[396],[389,5662,5664,5667,5670,5673,5676],{"className":5663},[401],[389,5665],{"className":5666,"style":459},[405],[389,5668,464],{"className":5669,"style":463},[410,411],[389,5671,469],{"className":5672},[468],[389,5674,412],{"className":5675},[410,411],[389,5677,492],{"className":5678},[491],"):"," sweep left to right, accumulating into\nthe current group; whenever adding ",[389,5682,5684],{"className":5683},[392],[389,5685,5687],{"className":5686,"ariaHidden":397},[396],[389,5688,5690,5694],{"className":5689},[401],[389,5691],{"className":5692,"style":5693},[405],"height:0.5806em;vertical-align:-0.15em;",[389,5695,5697,5700],{"className":5696},[410],[389,5698,385],{"className":5699},[410,411],[389,5701,5703],{"className":5702},[2911],[389,5704,5706,5726],{"className":5705},[2568,2569],[389,5707,5709,5723],{"className":5708},[2573],[389,5710,5712],{"className":5711,"style":4059},[2577],[389,5713,5714,5717],{"style":5441},[389,5715],{"className":5716,"style":2927},[2584],[389,5718,5720],{"className":5719},[2589,2590,2591,2592],[389,5721,553],{"className":5722},[410,411,2592],[389,5724,2713],{"className":5725},[2712],[389,5727,5729],{"className":5728},[2573],[389,5730,5732],{"className":5731,"style":4081},[2577],[389,5733],{}," would exceed ",[389,5736,5738],{"className":5737},[392],[389,5739,5741],{"className":5740,"ariaHidden":397},[396],[389,5742,5744,5747],{"className":5743},[401],[389,5745],{"className":5746,"style":799},[405],[389,5748,5357],{"className":5749,"style":5356},[410,411],", close the group and\nstart a new one at ",[389,5752,5754],{"className":5753},[392],[389,5755,5757],{"className":5756,"ariaHidden":397},[396],[389,5758,5760,5763],{"className":5759},[401],[389,5761],{"className":5762,"style":5693},[405],[389,5764,5766,5769],{"className":5765},[410],[389,5767,385],{"className":5768},[410,411],[389,5770,5772],{"className":5771},[2911],[389,5773,5775,5795],{"className":5774},[2568,2569],[389,5776,5778,5792],{"className":5777},[2573],[389,5779,5781],{"className":5780,"style":4059},[2577],[389,5782,5783,5786],{"style":5441},[389,5784],{"className":5785,"style":2927},[2584],[389,5787,5789],{"className":5788},[2589,2590,2591,2592],[389,5790,553],{"className":5791},[410,411,2592],[389,5793,2713],{"className":5794},[2712],[389,5796,5798],{"className":5797},[2573],[389,5799,5801],{"className":5800,"style":4081},[2577],[389,5802],{},". The number of groups this greedy uses is the\n",[626,5805,5806],{},"minimum"," possible for cap ",[389,5809,5811],{"className":5810},[392],[389,5812,5814],{"className":5813,"ariaHidden":397},[396],[389,5815,5817,5820],{"className":5816},[401],[389,5818],{"className":5819,"style":799},[405],[389,5821,5357],{"className":5822,"style":5356},[410,411],", so ",[389,5825,5827],{"className":5826},[392],[389,5828,5830],{"className":5829,"ariaHidden":397},[396],[389,5831,5833,5836,5839,5842,5845],{"className":5832},[401],[389,5834],{"className":5835,"style":459},[405],[389,5837,381],{"className":5838},[410,411],[389,5840,469],{"className":5841},[468],[389,5843,5357],{"className":5844,"style":5356},[410,411],[389,5846,492],{"className":5847},[491]," holds iff that count is ",[389,5850,5852],{"className":5851},[392],[389,5853,5855,5867],{"className":5854,"ariaHidden":397},[396],[389,5856,5858,5861,5864],{"className":5857},[401],[389,5859],{"className":5860,"style":1735},[405],[389,5862,4233],{"className":5863},[564],[389,5865],{"className":5866,"style":560},[483],[389,5868,5870,5873],{"className":5869},[401],[389,5871],{"className":5872,"style":799},[405],[389,5874,5289],{"className":5875,"style":463},[410,411],[758,5877,5878],{"type":760},[381,5879,5880,5883,5884,5899,5900,5903,5904,5919,5920],{},[495,5881,5882],{},"Lemma."," The left-to-right greedy uses the minimum number of groups for a\ngiven cap ",[389,5885,5887],{"className":5886},[392],[389,5888,5890],{"className":5889,"ariaHidden":397},[396],[389,5891,5893,5896],{"className":5892},[401],[389,5894],{"className":5895,"style":799},[405],[389,5897,5357],{"className":5898,"style":5356},[410,411],". ",[626,5901,5902],{},"Proof sketch."," The first group can extend no further than the\ngreedy takes it without exceeding ",[389,5905,5907],{"className":5906},[392],[389,5908,5910],{"className":5909,"ariaHidden":397},[396],[389,5911,5913,5916],{"className":5912},[401],[389,5914],{"className":5915,"style":799},[405],[389,5917,5357],{"className":5918,"style":5356},[410,411],"; an exchange argument pushes any optimal\npartition's first cut rightward to match the greedy's, then induct on the\nsuffix. ",[389,5921,5923],{"className":5922},[392],[389,5924,5926],{"className":5925,"ariaHidden":397},[396],[389,5927,5929,5933],{"className":5928},[401],[389,5930],{"className":5931,"style":5932},[405],"height:0.675em;",[389,5934,5937],{"className":5935},[1018,5936],"qed",[389,5938,5941],{"className":5939},[410,5940],"amsrm","□",[3095,5943,5945,6115],{"className":5944},[3098,3099],[2640,5946,5950],{"xmlns":2642,"width":5947,"height":5948,"viewBox":5949},"196.793","112.215","-75 -75 147.594 84.161",[3106,5951,5952,5955,5962,5965,5972,5975,5982,5985,5992,5995,6002,6005,6041,6073,6112],{"stroke":3108,"style":3109},[2648,5953],{"fill":3112,"d":5954},"M-63.58-26.109h22.761V-48.87H-63.58Z",[3106,5956,5958],{"transform":5957},"translate(-2.312 2.9)",[2648,5959],{"d":5960,"fill":3108,"stroke":3108,"className":5961,"style":3122},"M-50.578-37.732Q-50.578-38.369-50.422-39.015Q-50.266-39.661-49.974-40.267Q-49.682-40.874-49.273-41.423L-48.456-42.531L-49.484-42.531Q-51.128-42.531-51.176-42.487Q-51.282-42.359-51.400-41.656L-51.686-41.656L-51.391-43.572L-51.101-43.572L-51.101-43.546Q-51.101-43.383-50.537-43.335Q-49.972-43.286-49.427-43.286L-47.709-43.286L-47.709-43.080Q-47.709-43.062-47.711-43.053Q-47.713-43.045-47.718-43.036L-49.005-41.287Q-49.256-40.935-49.403-40.509Q-49.550-40.083-49.616-39.619Q-49.682-39.156-49.695-38.745Q-49.708-38.334-49.708-37.732Q-49.708-37.552-49.834-37.422Q-49.959-37.292-50.139-37.292Q-50.258-37.292-50.361-37.349Q-50.464-37.407-50.521-37.510Q-50.578-37.613-50.578-37.732",[3121],[2648,5963],{"fill":3112,"d":5964},"M-36.55-26.109h22.761V-48.87H-36.55Z",[3106,5966,5968],{"transform":5967},"translate(24.718 2.9)",[2648,5969],{"d":5970,"fill":3108,"stroke":3108,"className":5971,"style":3122},"M-48.293-37.490L-51.743-37.490L-51.743-37.723Q-51.743-37.736-51.712-37.767L-50.258-39.344Q-49.792-39.841-49.539-40.146Q-49.286-40.452-49.095-40.863Q-48.904-41.274-48.904-41.713Q-48.904-42.302-49.227-42.735Q-49.550-43.168-50.130-43.168Q-50.394-43.168-50.640-43.058Q-50.886-42.948-51.062-42.761Q-51.238-42.574-51.334-42.324L-51.255-42.324Q-51.053-42.324-50.910-42.188Q-50.767-42.052-50.767-41.836Q-50.767-41.630-50.910-41.491Q-51.053-41.353-51.255-41.353Q-51.457-41.353-51.600-41.496Q-51.743-41.638-51.743-41.836Q-51.743-42.298-51.506-42.671Q-51.268-43.045-50.868-43.264Q-50.469-43.484-50.020-43.484Q-49.497-43.484-49.043-43.269Q-48.588-43.053-48.315-42.654Q-48.043-42.254-48.043-41.713Q-48.043-41.318-48.214-40.964Q-48.386-40.610-48.651-40.331Q-48.917-40.052-49.368-39.667Q-49.818-39.283-49.897-39.208L-50.921-38.246L-50.104-38.246Q-49.453-38.246-49.016-38.257Q-48.579-38.268-48.548-38.290Q-48.478-38.373-48.423-38.613Q-48.368-38.852-48.328-39.120L-48.043-39.120",[3121],[2648,5973],{"fill":3112,"d":5974},"M-9.52-26.109H13.24V-48.87H-9.52Z",[3106,5976,5978],{"transform":5977},"translate(51.748 2.9)",[2648,5979],{"d":5980,"fill":3108,"stroke":3108,"className":5981,"style":3122},"M-51.374-38.496Q-51.233-38.083-50.873-37.831Q-50.513-37.578-50.077-37.578Q-49.625-37.578-49.359-37.831Q-49.093-38.083-48.990-38.468Q-48.887-38.852-48.887-39.309Q-48.887-41.010-49.796-41.010Q-50.117-41.010-50.346-40.916Q-50.574-40.821-50.704-40.702Q-50.833-40.584-50.945-40.445Q-51.057-40.307-51.093-40.298L-51.176-40.298Q-51.220-40.298-51.251-40.329Q-51.282-40.360-51.282-40.408L-51.282-43.405Q-51.282-43.436-51.246-43.460Q-51.211-43.484-51.185-43.484L-51.145-43.484Q-50.513-43.194-49.840-43.194Q-49.168-43.194-48.526-43.484L-48.500-43.484Q-48.469-43.484-48.436-43.462Q-48.403-43.440-48.403-43.405L-48.403-43.304Q-48.403-43.300-48.412-43.282Q-48.421-43.264-48.421-43.260Q-48.737-42.865-49.207-42.643Q-49.678-42.421-50.174-42.421Q-50.583-42.421-50.965-42.531L-50.965-40.812Q-50.508-41.269-49.796-41.269Q-49.286-41.269-48.887-40.988Q-48.487-40.707-48.265-40.252Q-48.043-39.797-48.043-39.292Q-48.043-38.742-48.322-38.283Q-48.601-37.824-49.067-37.558Q-49.533-37.292-50.077-37.292Q-50.517-37.292-50.901-37.519Q-51.286-37.745-51.514-38.125Q-51.743-38.505-51.743-38.949Q-51.743-39.142-51.611-39.274Q-51.479-39.406-51.282-39.406Q-51.150-39.406-51.046-39.347Q-50.943-39.287-50.884-39.184Q-50.825-39.081-50.825-38.949Q-50.825-38.751-50.952-38.619Q-51.079-38.488-51.282-38.488Q-51.343-38.488-51.374-38.496",[3121],[2648,5983],{"fill":3112,"d":5984},"M17.51-26.109H40.27V-48.87H17.51Z",[3106,5986,5988],{"transform":5987},"translate(76.465 2.9)",[2648,5989],{"d":5990,"fill":3108,"stroke":3108,"className":5991,"style":3122},"M-48.293-37.490L-51.325-37.490L-51.325-37.806Q-50.174-37.806-50.174-38.101L-50.174-42.825Q-50.662-42.592-51.383-42.592L-51.383-42.908Q-50.253-42.908-49.691-43.484L-49.546-43.484Q-49.511-43.484-49.478-43.451Q-49.445-43.418-49.445-43.383L-49.445-38.101Q-49.445-37.806-48.293-37.806L-48.293-37.490M-45.270-37.292Q-46.395-37.292-46.808-38.189Q-47.221-39.085-47.221-40.360Q-47.221-41.133-47.072-41.832Q-46.922-42.531-46.487-43.007Q-46.052-43.484-45.270-43.484Q-44.492-43.484-44.057-43.005Q-43.622-42.526-43.472-41.830Q-43.323-41.133-43.323-40.360Q-43.323-39.081-43.736-38.187Q-44.149-37.292-45.270-37.292M-45.270-37.552Q-44.751-37.552-44.501-38.063Q-44.250-38.575-44.193-39.186Q-44.136-39.797-44.136-40.505Q-44.136-41.190-44.193-41.750Q-44.250-42.311-44.503-42.768Q-44.756-43.225-45.270-43.225Q-45.674-43.225-45.911-42.948Q-46.149-42.671-46.256-42.230Q-46.364-41.788-46.388-41.395Q-46.412-41.001-46.412-40.505Q-46.412-39.999-46.388-39.571Q-46.364-39.142-46.256-38.659Q-46.149-38.176-45.909-37.864Q-45.670-37.552-45.270-37.552",[3121],[2648,5993],{"fill":3112,"d":5994},"M44.54-26.109H67.3V-48.87H44.54Z",[3106,5996,5998],{"transform":5997},"translate(105.808 2.9)",[2648,5999],{"d":6000,"fill":3108,"stroke":3108,"className":6001,"style":3122},"M-51.813-38.857Q-51.813-39.415-51.453-39.828Q-51.093-40.241-50.517-40.513L-50.886-40.746Q-51.189-40.948-51.376-41.278Q-51.563-41.608-51.563-41.964Q-51.563-42.618-51.057-43.051Q-50.552-43.484-49.888-43.484Q-49.489-43.484-49.104-43.324Q-48.720-43.163-48.471-42.858Q-48.223-42.553-48.223-42.135Q-48.223-41.304-49.291-40.746L-48.737-40.399Q-48.390-40.171-48.179-39.802Q-47.968-39.432-47.968-39.019Q-47.968-38.641-48.126-38.323Q-48.284-38.004-48.561-37.771Q-48.838-37.538-49.181-37.415Q-49.524-37.292-49.888-37.292Q-50.354-37.292-50.800-37.479Q-51.246-37.666-51.530-38.020Q-51.813-38.373-51.813-38.857M-51.290-38.857Q-51.290-38.312-50.871-37.945Q-50.451-37.578-49.888-37.578Q-49.559-37.578-49.234-37.710Q-48.908-37.842-48.700-38.096Q-48.491-38.351-48.491-38.694Q-48.491-38.958-48.627-39.182Q-48.763-39.406-48.996-39.560L-50.240-40.342Q-50.701-40.105-50.996-39.718Q-51.290-39.331-51.290-38.857M-50.679-41.612L-49.563-40.909Q-49.339-41.032-49.135-41.221Q-48.930-41.410-48.810-41.643Q-48.689-41.876-48.689-42.135Q-48.689-42.443-48.860-42.693Q-49.032-42.944-49.308-43.084Q-49.585-43.225-49.897-43.225Q-50.346-43.225-50.719-42.979Q-51.093-42.733-51.093-42.306Q-51.093-41.902-50.679-41.612",[3121],[2648,6003],{"fill":3112,"stroke":3152,"d":6004,"style":3153},"M-65.003-24.263v-26.453a1 1 0 0 1 1-1h77.667a1 1 0 0 1 1 1v26.453a1 1 0 0 1-1 1h-77.667a1 1 0 0 1-1-1ZM17.51-24.263v-26.453a1 1 0 0 1 1-1h49.214a1 1 0 0 1 1 1v26.453a1 1 0 0 1-1 1H18.51a1 1 0 0 1-1-1Zm51.214-27.453",[3106,6006,6007],{"fill":3152,"stroke":3152},[3106,6008,6010,6017,6023,6029,6035],{"fill":3152,"stroke":3112,"fontFamily":6009,"fontSize":3445},"cmr8",[3106,6011,6013],{"transform":6012},"translate(9.534 40.048)",[2648,6014],{"d":6015,"fill":3152,"stroke":3152,"className":6016,"style":3204},"M-48.636-46.381Q-48.636-46.662-48.425-46.873Q-48.214-47.084-47.929-47.174Q-48.085-47.299-48.163-47.488Q-48.241-47.678-48.241-47.877Q-48.241-48.232-48.011-48.525Q-48.378-48.865-48.378-49.334Q-48.378-49.685-48.175-49.955Q-47.972-50.224-47.651-50.371Q-47.331-50.517-46.987-50.517Q-46.468-50.517-46.097-50.236Q-45.733-50.607-45.187-50.607Q-45.007-50.607-44.880-50.480Q-44.753-50.353-44.753-50.174Q-44.753-50.068-44.831-49.990Q-44.909-49.912-45.019-49.912Q-45.128-49.912-45.204-49.988Q-45.280-50.064-45.280-50.174Q-45.280-50.275-45.241-50.326Q-45.233-50.334-45.229-50.340Q-45.226-50.345-45.226-50.349Q-45.601-50.349-45.921-50.095Q-45.601-49.756-45.601-49.334Q-45.601-49.064-45.718-48.847Q-45.835-48.631-46.040-48.472Q-46.245-48.314-46.487-48.232Q-46.729-48.150-46.987-48.150Q-47.206-48.150-47.419-48.209Q-47.632-48.267-47.827-48.388Q-47.921-48.248-47.921-48.068Q-47.921-47.861-47.784-47.709Q-47.647-47.556-47.440-47.556L-46.745-47.556Q-46.257-47.556-45.845-47.472Q-45.433-47.388-45.153-47.131Q-44.874-46.873-44.874-46.381Q-44.874-46.017-45.194-45.785Q-45.515-45.553-45.956-45.451Q-46.397-45.349-46.753-45.349Q-47.108-45.349-47.552-45.451Q-47.995-45.553-48.315-45.785Q-48.636-46.017-48.636-46.381M-48.132-46.381Q-48.132-46.185-47.987-46.037Q-47.843-45.888-47.630-45.799Q-47.417-45.709-47.177-45.662Q-46.937-45.615-46.753-45.615Q-46.511-45.615-46.181-45.693Q-45.851-45.771-45.614-45.945Q-45.378-46.119-45.378-46.381Q-45.378-46.787-45.788-46.896Q-46.198-47.006-46.761-47.006L-47.440-47.006Q-47.710-47.006-47.921-46.828Q-48.132-46.650-48.132-46.381M-46.987-48.416Q-46.265-48.416-46.265-49.334Q-46.265-50.256-46.987-50.256Q-47.714-50.256-47.714-49.334Q-47.714-48.416-46.987-48.416M-42.382-46.990L-44.362-46.990L-44.362-47.287Q-44.093-47.287-43.925-47.332Q-43.757-47.377-43.757-47.549L-43.757-49.685Q-43.757-49.900-43.819-49.996Q-43.882-50.092-43.999-50.113Q-44.116-50.135-44.362-50.135L-44.362-50.431L-43.194-50.517L-43.194-49.732Q-43.116-49.943-42.964-50.129Q-42.812-50.314-42.612-50.416Q-42.413-50.517-42.187-50.517Q-41.940-50.517-41.749-50.373Q-41.558-50.228-41.558-49.998Q-41.558-49.842-41.663-49.732Q-41.769-49.623-41.925-49.623Q-42.081-49.623-42.190-49.732Q-42.300-49.842-42.300-49.998Q-42.300-50.158-42.194-50.263Q-42.519-50.263-42.733-50.035Q-42.948-49.806-43.044-49.467Q-43.140-49.127-43.140-48.822L-43.140-47.549Q-43.140-47.381-42.913-47.334Q-42.687-47.287-42.382-47.287L-42.382-46.990M-41.077-48.685Q-41.077-49.189-40.821-49.621Q-40.565-50.053-40.130-50.304Q-39.694-50.556-39.194-50.556Q-38.808-50.556-38.466-50.412Q-38.124-50.267-37.862-50.006Q-37.601-49.744-37.458-49.408Q-37.315-49.072-37.315-48.685Q-37.315-48.193-37.579-47.783Q-37.843-47.373-38.272-47.142Q-38.702-46.912-39.194-46.912Q-39.687-46.912-40.120-47.144Q-40.554-47.377-40.815-47.785Q-41.077-48.193-41.077-48.685M-39.194-47.189Q-38.737-47.189-38.485-47.412Q-38.233-47.635-38.145-47.986Q-38.058-48.338-38.058-48.783Q-38.058-49.213-38.151-49.551Q-38.245-49.888-38.499-50.095Q-38.753-50.303-39.194-50.303Q-39.843-50.303-40.087-49.886Q-40.331-49.470-40.331-48.783Q-40.331-48.338-40.243-47.986Q-40.155-47.635-39.903-47.412Q-39.651-47.189-39.194-47.189M-36.147-47.943L-36.147-49.685Q-36.147-49.900-36.210-49.996Q-36.272-50.092-36.392-50.113Q-36.511-50.135-36.757-50.135L-36.757-50.431L-35.511-50.517L-35.511-47.967L-35.511-47.943Q-35.511-47.631-35.456-47.469Q-35.401-47.306-35.251-47.236Q-35.101-47.166-34.780-47.166Q-34.351-47.166-34.077-47.504Q-33.804-47.842-33.804-48.287L-33.804-49.685Q-33.804-49.900-33.866-49.996Q-33.929-50.092-34.048-50.113Q-34.167-50.135-34.413-50.135L-34.413-50.431L-33.167-50.517L-33.167-47.732Q-33.167-47.521-33.104-47.426Q-33.042-47.330-32.923-47.308Q-32.804-47.287-32.558-47.287L-32.558-46.990L-33.780-46.912L-33.780-47.533Q-33.948-47.244-34.229-47.078Q-34.511-46.912-34.831-46.912Q-36.147-46.912-36.147-47.943M-30.229-45.439L-32.085-45.439L-32.085-45.732Q-31.815-45.732-31.647-45.777Q-31.479-45.822-31.479-45.998L-31.479-49.822Q-31.479-50.029-31.636-50.082Q-31.792-50.135-32.085-50.135L-32.085-50.431L-30.862-50.517L-30.862-50.053Q-30.632-50.275-30.317-50.396Q-30.003-50.517-29.663-50.517Q-29.190-50.517-28.786-50.271Q-28.382-50.025-28.149-49.609Q-27.917-49.193-27.917-48.717Q-27.917-48.342-28.065-48.013Q-28.214-47.685-28.483-47.433Q-28.753-47.181-29.097-47.047Q-29.440-46.912-29.800-46.912Q-30.089-46.912-30.360-47.033Q-30.632-47.154-30.839-47.365L-30.839-45.998Q-30.839-45.822-30.671-45.777Q-30.503-45.732-30.229-45.732L-30.229-45.439M-30.839-49.654L-30.839-47.814Q-30.687-47.525-30.425-47.345Q-30.163-47.166-29.854-47.166Q-29.569-47.166-29.347-47.304Q-29.124-47.443-28.972-47.674Q-28.819-47.904-28.741-48.176Q-28.663-48.447-28.663-48.717Q-28.663-49.049-28.788-49.406Q-28.913-49.763-29.161-50Q-29.409-50.236-29.757-50.236Q-30.081-50.236-30.376-50.080Q-30.671-49.924-30.839-49.654",[3121],[3106,6018,6019],{"transform":6012},[2648,6020],{"d":6021,"fill":3152,"stroke":3152,"className":6022,"style":3204},"M-21.189-46.990L-23.982-46.990L-23.982-47.287Q-22.920-47.287-22.920-47.549L-22.920-51.717Q-23.349-51.502-24.029-51.502L-24.029-51.799Q-23.010-51.799-22.494-52.310L-22.349-52.310Q-22.275-52.291-22.256-52.213L-22.256-47.549Q-22.256-47.287-21.189-47.287",[3121],[3106,6024,6025],{"transform":6012},[2648,6026],{"d":6027,"fill":3152,"stroke":3152,"className":6028,"style":3204},"M-51.919-37.498L-51.919-38.720Q-51.919-38.748-51.888-38.779Q-51.856-38.810-51.833-38.810L-51.727-38.810Q-51.657-38.810-51.641-38.748Q-51.579-38.428-51.440-38.187Q-51.302-37.947-51.069-37.806Q-50.837-37.666-50.528-37.666Q-50.290-37.666-50.081-37.726Q-49.872-37.787-49.735-37.935Q-49.598-38.084-49.598-38.330Q-49.598-38.584-49.809-38.750Q-50.020-38.916-50.290-38.970L-50.911-39.084Q-51.317-39.162-51.618-39.418Q-51.919-39.674-51.919-40.049Q-51.919-40.416-51.718-40.638Q-51.516-40.861-51.192-40.959Q-50.868-41.056-50.528-41.056Q-50.063-41.056-49.766-40.849L-49.544-41.033Q-49.520-41.056-49.489-41.056L-49.438-41.056Q-49.407-41.056-49.380-41.029Q-49.352-41.002-49.352-40.970L-49.352-39.986Q-49.352-39.955-49.378-39.926Q-49.403-39.896-49.438-39.896L-49.544-39.896Q-49.579-39.896-49.606-39.924Q-49.634-39.951-49.634-39.986Q-49.634-40.385-49.886-40.605Q-50.138-40.826-50.536-40.826Q-50.891-40.826-51.175-40.703Q-51.458-40.580-51.458-40.275Q-51.458-40.056-51.257-39.924Q-51.055-39.791-50.809-39.748L-50.184-39.635Q-49.755-39.545-49.446-39.248Q-49.138-38.951-49.138-38.537Q-49.138-37.967-49.536-37.689Q-49.934-37.412-50.528-37.412Q-51.079-37.412-51.430-37.748L-51.727-37.435Q-51.751-37.412-51.786-37.412L-51.833-37.412Q-51.856-37.412-51.888-37.443Q-51.919-37.474-51.919-37.498M-47.927-38.443L-47.927-40.185Q-47.927-40.400-47.989-40.496Q-48.052-40.592-48.171-40.613Q-48.290-40.635-48.536-40.635L-48.536-40.931L-47.290-41.017L-47.290-38.467L-47.290-38.443Q-47.290-38.131-47.235-37.969Q-47.180-37.806-47.030-37.736Q-46.880-37.666-46.559-37.666Q-46.130-37.666-45.856-38.004Q-45.583-38.342-45.583-38.787L-45.583-40.185Q-45.583-40.400-45.645-40.496Q-45.708-40.592-45.827-40.613Q-45.946-40.635-46.192-40.635L-46.192-40.931L-44.946-41.017L-44.946-38.232Q-44.946-38.021-44.884-37.926Q-44.821-37.830-44.702-37.808Q-44.583-37.787-44.337-37.787L-44.337-37.490L-45.559-37.412L-45.559-38.033Q-45.727-37.744-46.009-37.578Q-46.290-37.412-46.610-37.412Q-47.927-37.412-47.927-38.443M-41.962-37.490L-43.817-37.490L-43.817-37.787Q-43.544-37.787-43.376-37.834Q-43.208-37.881-43.208-38.049L-43.208-40.185Q-43.208-40.400-43.270-40.496Q-43.333-40.592-43.452-40.613Q-43.571-40.635-43.817-40.635L-43.817-40.931L-42.626-41.017L-42.626-40.283Q-42.513-40.498-42.319-40.666Q-42.126-40.834-41.888-40.926Q-41.649-41.017-41.395-41.017Q-40.434-41.017-40.259-40.306Q-40.075-40.635-39.747-40.826Q-39.419-41.017-39.040-41.017Q-37.864-41.017-37.864-39.939L-37.864-38.049Q-37.864-37.881-37.696-37.834Q-37.528-37.787-37.259-37.787L-37.259-37.490L-39.114-37.490L-39.114-37.787Q-38.841-37.787-38.673-37.832Q-38.505-37.877-38.505-38.049L-38.505-39.924Q-38.505-40.310-38.630-40.537Q-38.755-40.763-39.106-40.763Q-39.411-40.763-39.667-40.601Q-39.923-40.439-40.071-40.170Q-40.220-39.900-40.220-39.603L-40.220-38.049Q-40.220-37.881-40.050-37.834Q-39.880-37.787-39.610-37.787L-39.610-37.490L-41.466-37.490L-41.466-37.787Q-41.192-37.787-41.024-37.834Q-40.856-37.881-40.856-38.049L-40.856-39.924Q-40.856-40.310-40.981-40.537Q-41.106-40.763-41.458-40.763Q-41.763-40.763-42.018-40.601Q-42.274-40.439-42.423-40.170Q-42.571-39.900-42.571-39.603L-42.571-38.049Q-42.571-37.881-42.401-37.834Q-42.231-37.787-41.962-37.787",[3121],[3106,6030,6031],{"transform":6012},[2648,6032],{"d":6033,"fill":3152,"stroke":3152,"className":6034,"style":3204},"M-28.719-38.467L-34.032-38.467Q-34.110-38.474-34.159-38.523Q-34.207-38.572-34.207-38.650Q-34.207-38.720-34.160-38.771Q-34.114-38.822-34.032-38.834L-28.719-38.834Q-28.645-38.822-28.598-38.771Q-28.551-38.720-28.551-38.650Q-28.551-38.572-28.600-38.523Q-28.649-38.474-28.719-38.467M-28.719-40.154L-34.032-40.154Q-34.110-40.162-34.159-40.211Q-34.207-40.260-34.207-40.338Q-34.207-40.408-34.160-40.459Q-34.114-40.510-34.032-40.521L-28.719-40.521Q-28.645-40.510-28.598-40.459Q-28.551-40.408-28.551-40.338Q-28.551-40.260-28.600-40.211Q-28.649-40.162-28.719-40.154",[3121],[3106,6036,6037],{"transform":6012},[2648,6038],{"d":6039,"fill":3152,"stroke":3152,"className":6040,"style":3204},"M-22.114-37.490L-24.907-37.490L-24.907-37.787Q-23.845-37.787-23.845-38.049L-23.845-42.217Q-24.274-42.002-24.954-42.002L-24.954-42.299Q-23.935-42.299-23.419-42.810L-23.274-42.810Q-23.200-42.791-23.181-42.713L-23.181-38.049Q-23.181-37.787-22.114-37.787L-22.114-37.490M-18.981-38.803L-21.224-38.803L-21.224-39.099L-18.653-42.756Q-18.614-42.810-18.552-42.810L-18.407-42.810Q-18.356-42.810-18.325-42.779Q-18.294-42.748-18.294-42.697L-18.294-39.099L-17.462-39.099L-17.462-38.803L-18.294-38.803L-18.294-38.049Q-18.294-37.787-17.470-37.787L-17.470-37.490L-19.806-37.490L-19.806-37.787Q-18.981-37.787-18.981-38.049L-18.981-38.803M-18.927-41.904L-20.895-39.099L-18.927-39.099",[3121],[3106,6042,6043],{"fill":3152,"stroke":3152},[3106,6044,6045,6051,6057,6062,6067],{"fill":3152,"stroke":3112,"fontFamily":6009,"fontSize":3445},[3106,6046,6048],{"transform":6047},"translate(77.82 40.048)",[2648,6049],{"d":6015,"fill":3152,"stroke":3152,"className":6050,"style":3204},[3121],[3106,6052,6053],{"transform":6047},[2648,6054],{"d":6055,"fill":3152,"stroke":3152,"className":6056,"style":3204},"M-21.197-46.990L-24.357-46.990L-24.357-47.197Q-24.357-47.224-24.334-47.256L-22.982-48.654Q-22.603-49.041-22.355-49.330Q-22.107-49.619-21.933-49.976Q-21.760-50.334-21.760-50.724Q-21.760-51.072-21.892-51.365Q-22.025-51.658-22.279-51.836Q-22.533-52.013-22.888-52.013Q-23.248-52.013-23.539-51.818Q-23.830-51.623-23.974-51.295L-23.920-51.295Q-23.736-51.295-23.611-51.174Q-23.486-51.053-23.486-50.861Q-23.486-50.681-23.611-50.553Q-23.736-50.424-23.920-50.424Q-24.099-50.424-24.228-50.553Q-24.357-50.681-24.357-50.861Q-24.357-51.263-24.137-51.599Q-23.916-51.935-23.551-52.123Q-23.185-52.310-22.783-52.310Q-22.303-52.310-21.887-52.123Q-21.471-51.935-21.219-51.574Q-20.967-51.213-20.967-50.724Q-20.967-50.365-21.121-50.062Q-21.275-49.760-21.527-49.500Q-21.779-49.240-22.129-48.955Q-22.478-48.670-22.646-48.517L-23.576-47.678L-22.861-47.678Q-21.486-47.678-21.447-47.717Q-21.377-47.795-21.334-47.980Q-21.291-48.166-21.248-48.455L-20.967-48.455",[3121],[3106,6058,6059],{"transform":6047},[2648,6060],{"d":6027,"fill":3152,"stroke":3152,"className":6061,"style":3204},[3121],[3106,6063,6064],{"transform":6047},[2648,6065],{"d":6033,"fill":3152,"stroke":3152,"className":6066,"style":3204},[3121],[3106,6068,6069],{"transform":6047},[2648,6070],{"d":6071,"fill":3152,"stroke":3152,"className":6072,"style":3204},"M-22.114-37.490L-24.907-37.490L-24.907-37.787Q-23.845-37.787-23.845-38.049L-23.845-42.217Q-24.274-42.002-24.954-42.002L-24.954-42.299Q-23.935-42.299-23.419-42.810L-23.274-42.810Q-23.200-42.791-23.181-42.713L-23.181-38.049Q-23.181-37.787-22.114-37.787L-22.114-37.490M-21.110-38.713Q-21.110-39.209-20.784-39.574Q-20.458-39.939-19.935-40.185L-20.204-40.345Q-20.501-40.529-20.685-40.824Q-20.868-41.119-20.868-41.459Q-20.868-41.853-20.649-42.164Q-20.431-42.474-20.077-42.642Q-19.724-42.810-19.341-42.810Q-19.067-42.810-18.794-42.732Q-18.520-42.654-18.304-42.506Q-18.087-42.357-17.950-42.131Q-17.813-41.904-17.813-41.611Q-17.813-41.205-18.083-40.898Q-18.353-40.592-18.774-40.377L-18.325-40.107Q-18.106-39.970-17.938-39.777Q-17.770-39.584-17.673-39.345Q-17.575-39.107-17.575-38.849Q-17.575-38.510-17.726-38.222Q-17.876-37.935-18.122-37.738Q-18.368-37.541-18.692-37.431Q-19.017-37.322-19.341-37.322Q-19.770-37.322-20.177-37.484Q-20.583-37.646-20.847-37.965Q-21.110-38.283-21.110-38.713M-20.622-38.713Q-20.622-38.228-20.231-37.912Q-19.841-37.595-19.341-37.595Q-19.048-37.595-18.749-37.707Q-18.450-37.818-18.257-38.037Q-18.063-38.256-18.063-38.568Q-18.063-38.799-18.204-39.010Q-18.345-39.220-18.552-39.338L-19.661-40.017Q-20.079-39.814-20.351-39.478Q-20.622-39.142-20.622-38.713M-20.036-41.146L-19.048-40.545Q-18.700-40.728-18.474-40.998Q-18.247-41.267-18.247-41.611Q-18.247-41.830-18.339-42.006Q-18.431-42.181-18.585-42.304Q-18.739-42.428-18.940-42.498Q-19.142-42.568-19.341-42.568Q-19.747-42.568-20.093-42.357Q-20.438-42.146-20.438-41.763Q-20.438-41.580-20.327-41.418Q-20.216-41.256-20.036-41.146",[3121],[3106,6074,6075,6082,6088,6094,6100,6106],{"stroke":3112,"fontSize":3445},[3106,6076,6078],{"transform":6077},"translate(25.726 -26.292)",[2648,6079],{"d":6080,"fill":3108,"stroke":3108,"className":6081,"style":3204},"M-51.919-39.217Q-51.919-39.713-51.669-40.138Q-51.419-40.564-50.999-40.810Q-50.579-41.056-50.079-41.056Q-49.540-41.056-49.149-40.931Q-48.759-40.806-48.759-40.392Q-48.759-40.287-48.809-40.195Q-48.860-40.103-48.952-40.053Q-49.044-40.002-49.153-40.002Q-49.259-40.002-49.350-40.053Q-49.442-40.103-49.493-40.195Q-49.544-40.287-49.544-40.392Q-49.544-40.615-49.376-40.720Q-49.598-40.779-50.071-40.779Q-50.368-40.779-50.583-40.640Q-50.798-40.502-50.929-40.271Q-51.059-40.041-51.118-39.771Q-51.177-39.502-51.177-39.217Q-51.177-38.822-51.044-38.472Q-50.911-38.123-50.639-37.906Q-50.368-37.689-49.970-37.689Q-49.595-37.689-49.319-37.906Q-49.044-38.123-48.942-38.482Q-48.927-38.545-48.864-38.545L-48.759-38.545Q-48.723-38.545-48.698-38.517Q-48.673-38.490-48.673-38.451L-48.673-38.428Q-48.805-37.947-49.190-37.679Q-49.575-37.412-50.079-37.412Q-50.442-37.412-50.776-37.549Q-51.110-37.685-51.370-37.935Q-51.630-38.185-51.774-38.521Q-51.919-38.857-51.919-39.217M-47.501-38.443L-47.501-40.185Q-47.501-40.400-47.563-40.496Q-47.626-40.592-47.745-40.613Q-47.864-40.635-48.110-40.635L-48.110-40.931L-46.864-41.017L-46.864-38.467L-46.864-38.443Q-46.864-38.131-46.809-37.969Q-46.755-37.806-46.604-37.736Q-46.454-37.666-46.134-37.666Q-45.704-37.666-45.430-38.004Q-45.157-38.342-45.157-38.787L-45.157-40.185Q-45.157-40.400-45.220-40.496Q-45.282-40.592-45.401-40.613Q-45.520-40.635-45.766-40.635L-45.766-40.931L-44.520-41.017L-44.520-38.232Q-44.520-38.021-44.458-37.926Q-44.395-37.830-44.276-37.808Q-44.157-37.787-43.911-37.787L-43.911-37.490L-45.134-37.412L-45.134-38.033Q-45.302-37.744-45.583-37.578Q-45.864-37.412-46.184-37.412Q-47.501-37.412-47.501-38.443M-42.841-38.451L-42.841-40.642L-43.544-40.642L-43.544-40.896Q-43.188-40.896-42.946-41.129Q-42.704-41.361-42.593-41.709Q-42.481-42.056-42.481-42.412L-42.200-42.412L-42.200-40.939L-41.024-40.939L-41.024-40.642L-42.200-40.642L-42.200-38.467Q-42.200-38.146-42.081-37.918Q-41.962-37.689-41.680-37.689Q-41.501-37.689-41.384-37.812Q-41.266-37.935-41.214-38.115Q-41.161-38.295-41.161-38.467L-41.161-38.939L-40.880-38.939L-40.880-38.451Q-40.880-38.197-40.985-37.957Q-41.091-37.717-41.288-37.564Q-41.485-37.412-41.743-37.412Q-42.059-37.412-42.311-37.535Q-42.563-37.658-42.702-37.892Q-42.841-38.127-42.841-38.451M-39.680-37.955Q-39.680-38.138-39.544-38.275Q-39.407-38.412-39.216-38.412Q-39.024-38.412-38.891-38.279Q-38.759-38.146-38.759-37.955Q-38.759-37.756-38.891-37.623Q-39.024-37.490-39.216-37.490Q-39.407-37.490-39.544-37.627Q-39.680-37.763-39.680-37.955M-39.680-40.482Q-39.680-40.666-39.544-40.803Q-39.407-40.939-39.216-40.939Q-39.024-40.939-38.891-40.806Q-38.759-40.674-38.759-40.482Q-38.759-40.283-38.891-40.150Q-39.024-40.017-39.216-40.017Q-39.407-40.017-39.544-40.154Q-39.680-40.291-39.680-40.482",[3121],[3106,6083,6084],{"transform":6077},[2648,6085],{"d":6086,"fill":3108,"stroke":3108,"className":6087,"style":3204},"M-30.661-37.490L-33.454-37.490L-33.454-37.787Q-32.392-37.787-32.392-38.049L-32.392-42.217Q-32.821-42.002-33.501-42.002L-33.501-42.299Q-32.482-42.299-31.966-42.810L-31.821-42.810Q-31.747-42.791-31.728-42.713L-31.728-38.049Q-31.728-37.787-30.661-37.787L-30.661-37.490M-27.528-38.803L-29.771-38.803L-29.771-39.099L-27.200-42.756Q-27.161-42.810-27.099-42.810L-26.954-42.810Q-26.903-42.810-26.872-42.779Q-26.841-42.748-26.841-42.697L-26.841-39.099L-26.009-39.099L-26.009-38.803L-26.841-38.803L-26.841-38.049Q-26.841-37.787-26.017-37.787L-26.017-37.490L-28.353-37.490L-28.353-37.787Q-27.528-37.787-27.528-38.049L-27.528-38.803M-27.474-41.904L-29.443-39.099L-27.474-39.099",[3121],[3106,6089,6090],{"transform":6077},[2648,6091],{"d":6092,"fill":3108,"stroke":3108,"className":6093,"style":3204},"M-22.634-39.306L-25.107-39.306Q-25.185-39.318-25.234-39.367Q-25.282-39.416-25.282-39.490Q-25.282-39.564-25.234-39.613Q-25.185-39.662-25.107-39.674L-22.634-39.674L-22.634-42.154Q-22.607-42.322-22.450-42.322Q-22.376-42.322-22.327-42.273Q-22.278-42.224-22.267-42.154L-22.267-39.674L-19.794-39.674Q-19.626-39.642-19.626-39.490Q-19.626-39.338-19.794-39.306L-22.267-39.306L-22.267-36.826Q-22.278-36.756-22.327-36.707Q-22.376-36.658-22.450-36.658Q-22.607-36.658-22.634-36.826",[3121],[3106,6095,6096],{"transform":6077},[2648,6097],{"d":6098,"fill":3108,"stroke":3108,"className":6099,"style":3204},"M-15.550-37.490L-18.343-37.490L-18.343-37.787Q-17.281-37.787-17.281-38.049L-17.281-42.217Q-17.710-42.002-18.390-42.002L-18.390-42.299Q-17.371-42.299-16.855-42.810L-16.710-42.810Q-16.636-42.791-16.617-42.713L-16.617-38.049Q-16.617-37.787-15.550-37.787L-15.550-37.490M-12.777-37.322Q-13.480-37.322-13.880-37.722Q-14.281-38.123-14.425-38.732Q-14.570-39.342-14.570-40.041Q-14.570-40.564-14.499-41.027Q-14.429-41.490-14.236-41.902Q-14.042-42.314-13.685-42.562Q-13.328-42.810-12.777-42.810Q-12.226-42.810-11.869-42.562Q-11.511-42.314-11.320-41.904Q-11.128-41.494-11.058-41.025Q-10.988-40.556-10.988-40.041Q-10.988-39.342-11.130-38.734Q-11.273-38.127-11.673-37.724Q-12.074-37.322-12.777-37.322M-12.777-37.580Q-12.304-37.580-12.072-38.015Q-11.839-38.451-11.785-38.990Q-11.730-39.529-11.730-40.170Q-11.730-41.166-11.914-41.859Q-12.097-42.553-12.777-42.553Q-13.144-42.553-13.365-42.314Q-13.585-42.076-13.681-41.719Q-13.777-41.361-13.802-40.990Q-13.828-40.619-13.828-40.170Q-13.828-39.529-13.773-38.990Q-13.718-38.451-13.486-38.015Q-13.253-37.580-12.777-37.580",[3121],[3106,6101,6102],{"transform":6077},[2648,6103],{"d":6104,"fill":3108,"stroke":3108,"className":6105,"style":3204},"M-9.933-37.162Q-9.933-37.267-9.820-37.330L-5.363-39.490L-9.828-41.658Q-9.933-41.697-9.933-41.818Q-9.933-41.896-9.880-41.949Q-9.828-42.002-9.749-42.002Q-9.730-42.002-9.667-41.986L-4.851-39.658Q-4.757-39.603-4.757-39.490Q-4.757-39.385-4.859-39.322L-9.667-36.994Q-9.730-36.978-9.749-36.978Q-9.828-36.978-9.880-37.031Q-9.933-37.084-9.933-37.162",[3121],[3106,6107,6108],{"transform":6077},[2648,6109],{"d":6110,"fill":3108,"stroke":3108,"className":6111,"style":3204},"M-0.438-37.490L-3.231-37.490L-3.231-37.787Q-2.169-37.787-2.169-38.049L-2.169-42.217Q-2.598-42.002-3.278-42.002L-3.278-42.299Q-2.259-42.299-1.743-42.810L-1.598-42.810Q-1.524-42.791-1.505-42.713L-1.505-38.049Q-1.505-37.787-0.438-37.787L-0.438-37.490M0.566-38.713Q0.566-39.209 0.892-39.574Q1.218-39.939 1.741-40.185L1.472-40.345Q1.175-40.529 0.991-40.824Q0.808-41.119 0.808-41.459Q0.808-41.853 1.027-42.164Q1.245-42.474 1.599-42.642Q1.952-42.810 2.335-42.810Q2.609-42.810 2.882-42.732Q3.155-42.654 3.372-42.506Q3.589-42.357 3.726-42.131Q3.863-41.904 3.863-41.611Q3.863-41.205 3.593-40.898Q3.323-40.592 2.902-40.377L3.351-40.107Q3.570-39.970 3.738-39.777Q3.906-39.584 4.003-39.345Q4.101-39.107 4.101-38.849Q4.101-38.510 3.950-38.222Q3.800-37.935 3.554-37.738Q3.308-37.541 2.984-37.431Q2.659-37.322 2.335-37.322Q1.906-37.322 1.499-37.484Q1.093-37.646 0.829-37.965Q0.566-38.283 0.566-38.713M1.054-38.713Q1.054-38.228 1.445-37.912Q1.835-37.595 2.335-37.595Q2.628-37.595 2.927-37.707Q3.226-37.818 3.419-38.037Q3.613-38.256 3.613-38.568Q3.613-38.799 3.472-39.010Q3.331-39.220 3.124-39.338L2.015-40.017Q1.597-39.814 1.325-39.478Q1.054-39.142 1.054-38.713M1.640-41.146L2.628-40.545Q2.976-40.728 3.202-40.998Q3.429-41.267 3.429-41.611Q3.429-41.830 3.337-42.006Q3.245-42.181 3.091-42.304Q2.937-42.428 2.736-42.498Q2.534-42.568 2.335-42.568Q1.929-42.568 1.583-42.357Q1.238-42.146 1.238-41.763Q1.238-41.580 1.349-41.418Q1.460-41.256 1.640-41.146",[3121],[2648,6113],{"fill":3112,"stroke":3152,"d":6114,"style":3194},"M16.087-58.83v42.68",[3237,6116,6118,6119,6153,6154,1058,6214,6247,6248,6263,6264,6279,6280,5006,6315,6348,6349,5006,6382,6406],{"className":6117},[3240],"Feasibility check for cap ",[389,6120,6122],{"className":6121},[392],[389,6123,6125,6143],{"className":6124,"ariaHidden":397},[396],[389,6126,6128,6131,6134,6137,6140],{"className":6127},[401],[389,6129],{"className":6130,"style":799},[405],[389,6132,5357],{"className":6133,"style":5356},[410,411],[389,6135],{"className":6136,"style":560},[483],[389,6138,565],{"className":6139},[564],[389,6141],{"className":6142,"style":560},[483],[389,6144,6146,6149],{"className":6145},[401],[389,6147],{"className":6148,"style":1714},[405],[389,6150,6152],{"className":6151},[410],"18"," on ",[389,6155,6157],{"className":6156},[392],[389,6158,6160],{"className":6159,"ariaHidden":397},[396],[389,6161,6163,6166,6169,6172,6175,6178,6182,6185,6188,6192,6195,6198,6202,6205,6208,6211],{"className":6162},[401],[389,6164],{"className":6165,"style":459},[405],[389,6167,4967],{"className":6168},[468],[389,6170,4991],{"className":6171},[410],[389,6173,729],{"className":6174},[674],[389,6176],{"className":6177,"style":484},[483],[389,6179,6181],{"className":6180},[410],"2",[389,6183,729],{"className":6184},[674],[389,6186],{"className":6187,"style":484},[483],[389,6189,6191],{"className":6190},[410],"5",[389,6193,729],{"className":6194},[674],[389,6196],{"className":6197,"style":484},[483],[389,6199,6201],{"className":6200},[410],"10",[389,6203,729],{"className":6204},[674],[389,6206],{"className":6207,"style":484},[483],[389,6209,3445],{"className":6210},[410],[389,6212,5005],{"className":6213},[491],[389,6215,6217],{"className":6216},[392],[389,6218,6220,6238],{"className":6219,"ariaHidden":397},[396],[389,6221,6223,6226,6229,6232,6235],{"className":6222},[401],[389,6224],{"className":6225,"style":799},[405],[389,6227,5289],{"className":6228,"style":463},[410,411],[389,6230],{"className":6231,"style":560},[483],[389,6233,565],{"className":6234},[564],[389,6236],{"className":6237,"style":560},[483],[389,6239,6241,6244],{"className":6240},[401],[389,6242],{"className":6243,"style":1714},[405],[389,6245,6181],{"className":6246},[410],": the greedy sweep cuts whenever the next element would push a group past ",[389,6249,6251],{"className":6250},[392],[389,6252,6254],{"className":6253,"ariaHidden":397},[396],[389,6255,6257,6260],{"className":6256},[401],[389,6258],{"className":6259,"style":799},[405],[389,6261,5357],{"className":6262,"style":5356},[410,411],", using ",[389,6265,6267],{"className":6266},[392],[389,6268,6270],{"className":6269,"ariaHidden":397},[396],[389,6271,6273,6276],{"className":6272},[401],[389,6274],{"className":6275,"style":1714},[405],[389,6277,6181],{"className":6278},[410]," groups (sums ",[389,6281,6283],{"className":6282},[392],[389,6284,6286,6306],{"className":6285,"ariaHidden":397},[396],[389,6287,6289,6293,6297,6300,6303],{"className":6288},[401],[389,6290],{"className":6291,"style":6292},[405],"height:0.7804em;vertical-align:-0.136em;",[389,6294,6296],{"className":6295},[410],"14",[389,6298],{"className":6299,"style":560},[483],[389,6301,4233],{"className":6302},[564],[389,6304],{"className":6305,"style":560},[483],[389,6307,6309,6312],{"className":6308},[401],[389,6310],{"className":6311,"style":1714},[405],[389,6313,6152],{"className":6314},[410],[389,6316,6318],{"className":6317},[392],[389,6319,6321,6339],{"className":6320,"ariaHidden":397},[396],[389,6322,6324,6327,6330,6333,6336],{"className":6323},[401],[389,6325],{"className":6326,"style":6292},[405],[389,6328,6152],{"className":6329},[410],[389,6331],{"className":6332,"style":560},[483],[389,6334,4233],{"className":6335},[564],[389,6337],{"className":6338,"style":560},[483],[389,6340,6342,6345],{"className":6341},[401],[389,6343],{"className":6344,"style":1714},[405],[389,6346,6152],{"className":6347},[410],"). Since ",[389,6350,6352],{"className":6351},[392],[389,6353,6355,6373],{"className":6354,"ariaHidden":397},[396],[389,6356,6358,6361,6364,6367,6370],{"className":6357},[401],[389,6359],{"className":6360,"style":6292},[405],[389,6362,6181],{"className":6363},[410],[389,6365],{"className":6366,"style":560},[483],[389,6368,4233],{"className":6369},[564],[389,6371],{"className":6372,"style":560},[483],[389,6374,6376,6379],{"className":6375},[401],[389,6377],{"className":6378,"style":799},[405],[389,6380,5289],{"className":6381,"style":463},[410,411],[389,6383,6385],{"className":6384},[392],[389,6386,6388],{"className":6387,"ariaHidden":397},[396],[389,6389,6391,6394,6397,6400,6403],{"className":6390},[401],[389,6392],{"className":6393,"style":459},[405],[389,6395,381],{"className":6396},[410,411],[389,6398,469],{"className":6399},[468],[389,6401,6152],{"className":6402},[410],[389,6404,492],{"className":6405},[491]," holds",[381,6408,6409,6410,6425,6426,6429,6430,6445,6446,6461,6462,6477,6478,633],{},"A larger ",[389,6411,6413],{"className":6412},[392],[389,6414,6416],{"className":6415,"ariaHidden":397},[396],[389,6417,6419,6422],{"className":6418},[401],[389,6420],{"className":6421,"style":799},[405],[389,6423,5357],{"className":6424,"style":5356},[410,411]," only ever ",[626,6427,6428],{},"merges"," groups, so the group count is non-increasing in\n",[389,6431,6433],{"className":6432},[392],[389,6434,6436],{"className":6435,"ariaHidden":397},[396],[389,6437,6439,6442],{"className":6438},[401],[389,6440],{"className":6441,"style":799},[405],[389,6443,5357],{"className":6444,"style":5356},[410,411],": ",[389,6447,6449],{"className":6448},[392],[389,6450,6452],{"className":6451,"ariaHidden":397},[396],[389,6453,6455,6458],{"className":6454},[401],[389,6456],{"className":6457,"style":1453},[405],[389,6459,381],{"className":6460},[410,411]," is monotone, and we binary search the smallest feasible ",[389,6463,6465],{"className":6464},[392],[389,6466,6468],{"className":6467,"ariaHidden":397},[396],[389,6469,6471,6474],{"className":6470},[401],[389,6472],{"className":6473,"style":799},[405],[389,6475,5357],{"className":6476,"style":5356},[410,411],". Cost:\n",[389,6479,6481],{"className":6480},[392],[389,6482,6484],{"className":6483,"ariaHidden":397},[396],[389,6485,6487,6490,6493,6496,6499,6502,6508,6511,6551,6554,6594],{"className":6486},[401],[389,6488],{"className":6489,"style":5371},[405],[389,6491,464],{"className":6492,"style":463},[410,411],[389,6494,469],{"className":6495},[468],[389,6497,412],{"className":6498},[410,411],[389,6500],{"className":6501,"style":484},[483],[389,6503,6505],{"className":6504},[473],[389,6506,479],{"className":6507,"style":478},[410,477],[389,6509],{"className":6510,"style":484},[483],[389,6512,6514,6517],{"className":6513},[473],[389,6515,4162],{"className":6516,"style":4161},[473,4159,4160],[389,6518,6520],{"className":6519},[2911],[389,6521,6523,6543],{"className":6522},[2568,2569],[389,6524,6526,6540],{"className":6525},[2573],[389,6527,6529],{"className":6528,"style":4175},[2577],[389,6530,6531,6534],{"style":4178},[389,6532],{"className":6533,"style":2927},[2584],[389,6535,6537],{"className":6536},[2589,2590,2591,2592],[389,6538,553],{"className":6539},[410,411,2592],[389,6541,2713],{"className":6542},[2712],[389,6544,6546],{"className":6545},[2573],[389,6547,6549],{"className":6548,"style":4197},[2577],[389,6550],{},[389,6552],{"className":6553,"style":484},[483],[389,6555,6557,6560],{"className":6556},[410],[389,6558,385],{"className":6559},[410,411],[389,6561,6563],{"className":6562},[2911],[389,6564,6566,6586],{"className":6565},[2568,2569],[389,6567,6569,6583],{"className":6568},[2573],[389,6570,6572],{"className":6571,"style":4059},[2577],[389,6573,6574,6577],{"style":5441},[389,6575],{"className":6576,"style":2927},[2584],[389,6578,6580],{"className":6579},[2589,2590,2591,2592],[389,6581,553],{"className":6582},[410,411,2592],[389,6584,2713],{"className":6585},[2712],[389,6587,6589],{"className":6588},[2573],[389,6590,6592],{"className":6591,"style":4081},[2577],[389,6593],{},[389,6595,492],{"className":6596},[491],[989,6598,6600],{"id":6599},"integer-square-root","Integer square root",[381,6602,6603,6604,6640,6641,6714,6715,2441,6718,1058,6733,633],{},"A pure-numeric instance with no array in sight: given ",[389,6605,6607],{"className":6606},[392],[389,6608,6610,6631],{"className":6609,"ariaHidden":397},[396],[389,6611,6613,6617,6622,6625,6628],{"className":6612},[401],[389,6614],{"className":6615,"style":6616},[405],"height:0.8193em;vertical-align:-0.136em;",[389,6618,6621],{"className":6619,"style":6620},[410,411],"margin-right:0.109em;","N",[389,6623],{"className":6624,"style":560},[483],[389,6626,605],{"className":6627},[564],[389,6629],{"className":6630,"style":560},[483],[389,6632,6634,6637],{"className":6633},[401],[389,6635],{"className":6636,"style":1714},[405],[389,6638,663],{"className":6639},[410],", compute\n",[389,6642,6644],{"className":6643},[392],[389,6645,6647],{"className":6646,"ariaHidden":397},[396],[389,6648,6650,6654,6657,6711],{"className":6649},[401],[389,6651],{"className":6652,"style":6653},[405],"height:1.1767em;vertical-align:-0.25em;",[389,6655,1855],{"className":6656},[468],[389,6658,6661],{"className":6659},[410,6660],"sqrt",[389,6662,6664,6702],{"className":6663},[2568,2569],[389,6665,6667,6699],{"className":6666},[2573],[389,6668,6671,6681],{"className":6669,"style":6670},[2577],"height:0.9267em;",[389,6672,6674,6677],{"className":6673,"style":2605},[2624],[389,6675],{"className":6676,"style":2585},[2584],[389,6678,6621],{"className":6679,"style":6680},[410,411],"margin-right:0.109em;padding-left:0.833em;",[389,6682,6684,6687],{"style":6683},"top:-2.8867em;",[389,6685],{"className":6686,"style":2585},[2584],[389,6688,6692],{"className":6689,"style":6691},[6690],"hide-tail","min-width:0.853em;height:1.08em;",[2640,6693,6696],{"xmlns":2642,"width":2643,"height":6694,"viewBox":6695,"preserveAspectRatio":2646},"1.08em","0 0 400000 1080",[2648,6697],{"d":6698},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[389,6700,2713],{"className":6701},[2712],[389,6703,6705],{"className":6704},[2573],[389,6706,6709],{"className":6707,"style":6708},[2577],"height:0.1133em;",[389,6710],{},[389,6712,1863],{"className":6713},[491],", the ",[495,6716,6717],{},"largest",[389,6719,6721],{"className":6720},[392],[389,6722,6724],{"className":6723,"ariaHidden":397},[396],[389,6725,6727,6730],{"className":6726},[401],[389,6728],{"className":6729,"style":406},[405],[389,6731,429],{"className":6732},[410,411],[389,6734,6736],{"className":6735},[392],[389,6737,6739,6785],{"className":6738,"ariaHidden":397},[396],[389,6740,6742,6746,6776,6779,6782],{"className":6741},[401],[389,6743],{"className":6744,"style":6745},[405],"height:0.9501em;vertical-align:-0.136em;",[389,6747,6749,6752],{"className":6748},[410],[389,6750,429],{"className":6751},[410,411],[389,6753,6755],{"className":6754},[2911],[389,6756,6758],{"className":6757},[2568],[389,6759,6761],{"className":6760},[2573],[389,6762,6765],{"className":6763,"style":6764},[2577],"height:0.8141em;",[389,6766,6767,6770],{"style":2923},[389,6768],{"className":6769,"style":2927},[2584],[389,6771,6773],{"className":6772},[2589,2590,2591,2592],[389,6774,6181],{"className":6775},[410,2592],[389,6777],{"className":6778,"style":560},[483],[389,6780,4233],{"className":6781},[564],[389,6783],{"className":6784,"style":560},[483],[389,6786,6788,6791],{"className":6787},[401],[389,6789],{"className":6790,"style":799},[405],[389,6792,6621],{"className":6793,"style":6620},[410,411],[997,6795,6796,6906],{},[1000,6797,6798,2441,6800,6815,6816,6846,6847,853,6862,6905],{},[495,6799,3995],{},[389,6801,6803],{"className":6802},[392],[389,6804,6806],{"className":6805,"ariaHidden":397},[396],[389,6807,6809,6812],{"className":6808},[401],[389,6810],{"className":6811,"style":406},[405],[389,6813,429],{"className":6814},[410,411],", in ",[389,6817,6819],{"className":6818},[392],[389,6820,6822],{"className":6821,"ariaHidden":397},[396],[389,6823,6825,6828,6831,6834,6837,6840,6843],{"className":6824},[401],[389,6826],{"className":6827,"style":459},[405],[389,6829,591],{"className":6830},[468],[389,6832,663],{"className":6833},[410],[389,6835,729],{"className":6836},[674],[389,6838],{"className":6839,"style":484},[483],[389,6841,6621],{"className":6842,"style":6620},[410,411],[389,6844,598],{"className":6845},[491]," (or tighten ",[389,6848,6850],{"className":6849},[392],[389,6851,6853],{"className":6852,"ariaHidden":397},[396],[389,6854,6856,6859],{"className":6855},[401],[389,6857],{"className":6858,"style":918},[405],[389,6860,736],{"className":6861},[410,411],[389,6863,6865],{"className":6864},[392],[389,6866,6868,6896],{"className":6867,"ariaHidden":397},[396],[389,6869,6871,6874,6877,6880,6884,6887,6890,6893],{"className":6870},[401],[389,6872],{"className":6873,"style":459},[405],[389,6875,3913],{"className":6876},[468],[389,6878,6621],{"className":6879,"style":6620},[410,411],[389,6881,6883],{"className":6882},[410],"\u002F2",[389,6885,3939],{"className":6886},[491],[389,6888],{"className":6889,"style":903},[483],[389,6891,2060],{"className":6892},[907],[389,6894],{"className":6895,"style":903},[483],[389,6897,6899,6902],{"className":6898},[401],[389,6900],{"className":6901,"style":1714},[405],[389,6903,1718],{"className":6904},[410],").",[1000,6907,6908,6910,6911,3005,7004,7007,7008,7011,7012,2441,7015,7017,7018,1058,7033,7093,7094,7115,7116,7119],{},[495,6909,4107],{}," here the natural test ",[389,6912,6914],{"className":6913},[392],[389,6915,6917,6944,6992],{"className":6916,"ariaHidden":397},[396],[389,6918,6920,6923,6926,6929,6932,6935,6938,6941],{"className":6919},[401],[389,6921],{"className":6922,"style":459},[405],[389,6924,964],{"className":6925,"style":2507},[410,411],[389,6927,469],{"className":6928},[468],[389,6930,429],{"className":6931},[410,411],[389,6933,492],{"className":6934},[491],[389,6936],{"className":6937,"style":560},[483],[389,6939,565],{"className":6940},[564],[389,6942],{"className":6943,"style":560},[483],[389,6945,6947,6951,6954,6983,6986,6989],{"className":6946},[401],[389,6948],{"className":6949,"style":6950},[405],"height:1.0641em;vertical-align:-0.25em;",[389,6952,469],{"className":6953},[468],[389,6955,6957,6960],{"className":6956},[410],[389,6958,429],{"className":6959},[410,411],[389,6961,6963],{"className":6962},[2911],[389,6964,6966],{"className":6965},[2568],[389,6967,6969],{"className":6968},[2573],[389,6970,6972],{"className":6971,"style":6764},[2577],[389,6973,6974,6977],{"style":2923},[389,6975],{"className":6976,"style":2927},[2584],[389,6978,6980],{"className":6979},[2589,2590,2591,2592],[389,6981,6181],{"className":6982},[410,2592],[389,6984],{"className":6985,"style":560},[483],[389,6987,4233],{"className":6988},[564],[389,6990],{"className":6991,"style":560},[483],[389,6993,6995,6998,7001],{"className":6994},[401],[389,6996],{"className":6997,"style":459},[405],[389,6999,6621],{"className":7000,"style":6620},[410,411],[389,7002,492],{"className":7003},[491],[626,7005,7006],{},"the other\nway",", namely ",[525,7009,7010],{},"true, …, true, false, …",", so we want the ",[495,7013,7014],{},"last",[525,7016,397],{},". Search the\nfirst ",[389,7019,7021],{"className":7020},[392],[389,7022,7024],{"className":7023,"ariaHidden":397},[396],[389,7025,7027,7030],{"className":7026},[401],[389,7028],{"className":7029,"style":406},[405],[389,7031,429],{"className":7032},[410,411],[389,7034,7036],{"className":7035},[392],[389,7037,7039,7084],{"className":7038,"ariaHidden":397},[396],[389,7040,7042,7046,7075,7078,7081],{"className":7041},[401],[389,7043],{"className":7044,"style":7045},[405],"height:0.8532em;vertical-align:-0.0391em;",[389,7047,7049,7052],{"className":7048},[410],[389,7050,429],{"className":7051},[410,411],[389,7053,7055],{"className":7054},[2911],[389,7056,7058],{"className":7057},[2568],[389,7059,7061],{"className":7060},[2573],[389,7062,7064],{"className":7063,"style":6764},[2577],[389,7065,7066,7069],{"style":2923},[389,7067],{"className":7068,"style":2927},[2584],[389,7070,7072],{"className":7071},[2589,2590,2591,2592],[389,7073,6181],{"className":7074},[410,2592],[389,7076],{"className":7077,"style":560},[483],[389,7079,1181],{"className":7080},[564],[389,7082],{"className":7083,"style":560},[483],[389,7085,7087,7090],{"className":7086},[401],[389,7088],{"className":7089,"style":799},[405],[389,7091,6621],{"className":7092,"style":6620},[410,411]," via the standard ",[389,7095,7097],{"className":7096},[392],[389,7098,7100],{"className":7099,"ariaHidden":397},[396],[389,7101,7103,7106],{"className":7102},[401],[389,7104],{"className":7105,"style":1289},[405],[389,7107,7109],{"className":7108},[1018,1019],[389,7110,7112],{"className":7111},[410,1023],[389,7113,1027],{"className":7114},[410]," template and\nsubtract one; or flip the comparison and keep the ",[964,7117,7118],{},"largest feasible"," form.",[381,7121,7122,7123,7147,7148,7181,7182,633,7240],{},"The check is ",[389,7124,7126],{"className":7125},[392],[389,7127,7129],{"className":7128,"ariaHidden":397},[396],[389,7130,7132,7135,7138,7141,7144],{"className":7131},[401],[389,7133],{"className":7134,"style":459},[405],[389,7136,464],{"className":7137,"style":463},[410,411],[389,7139,469],{"className":7140},[468],[389,7142,1718],{"className":7143},[410],[389,7145,492],{"className":7146},[491],", so the integer square root costs ",[389,7149,7151],{"className":7150},[392],[389,7152,7154],{"className":7153,"ariaHidden":397},[396],[389,7155,7157,7160,7163,7166,7172,7175,7178],{"className":7156},[401],[389,7158],{"className":7159,"style":459},[405],[389,7161,464],{"className":7162,"style":463},[410,411],[389,7164,469],{"className":7165},[468],[389,7167,7169],{"className":7168},[473],[389,7170,479],{"className":7171,"style":478},[410,477],[389,7173],{"className":7174,"style":484},[483],[389,7176,6621],{"className":7177,"style":6620},[410,411],[389,7179,492],{"className":7180},[491],", and the same\nshape computes any ",[389,7183,7185],{"className":7184},[392],[389,7186,7188],{"className":7187,"ariaHidden":397},[396],[389,7189,7191,7195,7198,7237],{"className":7190},[401],[389,7192],{"className":7193,"style":7194},[405],"height:1.138em;vertical-align:-0.25em;",[389,7196,1855],{"className":7197},[468],[389,7199,7201,7204],{"className":7200},[410],[389,7202,6621],{"className":7203,"style":6620},[410,411],[389,7205,7207],{"className":7206},[2911],[389,7208,7210],{"className":7209},[2568],[389,7211,7213],{"className":7212},[2573],[389,7214,7217],{"className":7215,"style":7216},[2577],"height:0.888em;",[389,7218,7219,7222],{"style":2923},[389,7220],{"className":7221,"style":2927},[2584],[389,7223,7225],{"className":7224},[2589,2590,2591,2592],[389,7226,7228,7232],{"className":7227},[410,2592],[389,7229,7231],{"className":7230},[410,2592],"1\u002F",[389,7233,7236],{"className":7234,"style":7235},[410,411,2592],"margin-right:0.0315em;","k",[389,7238,1863],{"className":7239},[491],[7241,7242,7243],"sup",{},[385,7244,1718],{"href":7245,"ariaDescribedBy":7246,"dataFootnoteRef":376,"id":7248},"#user-content-fn-erickson-search",[7247],"footnote-label","user-content-fnref-erickson-search",[3095,7250,7252,7453],{"className":7251},[3098,3099],[2640,7253,7257],{"xmlns":2642,"width":7254,"height":7255,"viewBox":7256},"260.220","94.252","-75 -75 195.165 70.689",[3106,7258,7259,7262,7269,7279,7282,7288,7297,7300,7306,7315,7318,7324,7333,7338,7341,7348,7357,7360,7366,7375,7378,7384,7393,7396,7402,7411,7414],{"stroke":3108,"style":3109},[2648,7260],{"fill":3112,"d":7261},"M-65.403-37.906h22.762V-60.67h-22.762Z",[3106,7263,7265],{"transform":7264},"translate(-3.34 3.075)",[2648,7266],{"d":7267,"fill":3108,"stroke":3108,"className":7268,"style":3122},"M-53.508-49.406Q-53.508-49.467-53.475-49.535Q-53.442-49.603-53.385-49.603Q-52.629-49.603-52.365-49.647Q-52.150-49.696-52.080-49.933L-50.854-54.850Q-50.818-54.991-50.818-55.057Q-50.818-55.119-51.104-55.119L-51.671-55.119Q-52.286-55.119-52.618-54.936Q-52.950-54.754-53.106-54.451Q-53.262-54.147-53.508-53.444Q-53.543-53.374-53.609-53.374L-53.688-53.374Q-53.789-53.374-53.789-53.488Q-53.789-53.519-53.780-53.537L-53.139-55.369Q-53.121-55.435-53.051-55.435L-47.615-55.435Q-47.566-55.435-47.536-55.400Q-47.505-55.365-47.505-55.316L-47.786-53.479Q-47.804-53.374-47.892-53.374L-47.975-53.374Q-48.010-53.374-48.041-53.413Q-48.072-53.453-48.072-53.497Q-47.984-54.200-47.984-54.380Q-47.984-54.705-48.116-54.870Q-48.248-55.035-48.465-55.077Q-48.683-55.119-49.034-55.119L-49.584-55.119Q-49.843-55.119-49.918-55.072Q-49.992-55.026-50.054-54.785L-51.284-49.863L-51.284-49.792Q-51.284-49.687-51.214-49.665Q-50.946-49.603-50.190-49.603Q-50.137-49.603-50.109-49.570Q-50.080-49.537-50.080-49.494Q-50.080-49.287-50.243-49.287L-53.411-49.287Q-53.508-49.287-53.508-49.406",[3121],[3106,7270,7272],{"fill":7271,"stroke":7271},"var(--tk-line)",[3106,7273,7275],{"transform":7274},"translate(-2.125 -14.494)",[2648,7276],{"d":7277,"fill":7271,"stroke":7271,"className":7278,"style":3204},"M-51.901-49.119Q-52.604-49.119-53.004-49.519Q-53.405-49.920-53.549-50.529Q-53.694-51.139-53.694-51.838Q-53.694-52.361-53.624-52.824Q-53.553-53.287-53.360-53.699Q-53.167-54.111-52.809-54.359Q-52.452-54.607-51.901-54.607Q-51.350-54.607-50.993-54.359Q-50.635-54.111-50.444-53.701Q-50.252-53.291-50.182-52.822Q-50.112-52.353-50.112-51.838Q-50.112-51.139-50.254-50.531Q-50.397-49.924-50.797-49.521Q-51.198-49.119-51.901-49.119M-51.901-49.377Q-51.428-49.377-51.196-49.812Q-50.963-50.248-50.909-50.787Q-50.854-51.326-50.854-51.967Q-50.854-52.963-51.038-53.656Q-51.221-54.349-51.901-54.349Q-52.268-54.349-52.489-54.111Q-52.709-53.873-52.805-53.516Q-52.901-53.158-52.926-52.787Q-52.952-52.416-52.952-51.967Q-52.952-51.326-52.897-50.787Q-52.842-50.248-52.610-49.812Q-52.377-49.377-51.901-49.377",[3121],[2648,7280],{"fill":3112,"d":7281},"M-42.641-37.906h22.762V-60.67H-42.64Z",[3106,7283,7285],{"transform":7284},"translate(19.422 3.075)",[2648,7286],{"d":7267,"fill":3108,"stroke":3108,"className":7287,"style":3122},[3121],[3106,7289,7290],{"fill":7271,"stroke":7271},[3106,7291,7293],{"transform":7292},"translate(20.637 -14.494)",[2648,7294],{"d":7295,"fill":7271,"stroke":7271,"className":7296,"style":3204},"M-50.428-49.287L-53.221-49.287L-53.221-49.584Q-52.159-49.584-52.159-49.846L-52.159-54.014Q-52.588-53.799-53.268-53.799L-53.268-54.096Q-52.249-54.096-51.733-54.607L-51.588-54.607Q-51.514-54.588-51.495-54.510L-51.495-49.846Q-51.495-49.584-50.428-49.584",[3121],[2648,7298],{"fill":3112,"d":7299},"M-19.879-37.906H2.883V-60.67h-22.762Z",[3106,7301,7303],{"transform":7302},"translate(42.184 3.075)",[2648,7304],{"d":7267,"fill":3108,"stroke":3108,"className":7305,"style":3122},[3121],[3106,7307,7308],{"fill":7271,"stroke":7271},[3106,7309,7311],{"transform":7310},"translate(43.4 -14.494)",[2648,7312],{"d":7313,"fill":7271,"stroke":7271,"className":7314,"style":3204},"M-50.436-49.287L-53.596-49.287L-53.596-49.494Q-53.596-49.521-53.573-49.553L-52.221-50.951Q-51.842-51.338-51.594-51.627Q-51.346-51.916-51.172-52.273Q-50.999-52.631-50.999-53.021Q-50.999-53.369-51.131-53.662Q-51.264-53.955-51.518-54.133Q-51.772-54.310-52.127-54.310Q-52.487-54.310-52.778-54.115Q-53.069-53.920-53.213-53.592L-53.159-53.592Q-52.975-53.592-52.850-53.471Q-52.725-53.349-52.725-53.158Q-52.725-52.978-52.850-52.849Q-52.975-52.721-53.159-52.721Q-53.338-52.721-53.467-52.849Q-53.596-52.978-53.596-53.158Q-53.596-53.560-53.376-53.896Q-53.155-54.232-52.790-54.420Q-52.424-54.607-52.022-54.607Q-51.542-54.607-51.126-54.420Q-50.709-54.232-50.458-53.871Q-50.206-53.510-50.206-53.021Q-50.206-52.662-50.360-52.359Q-50.514-52.057-50.766-51.797Q-51.018-51.537-51.368-51.252Q-51.717-50.967-51.885-50.814L-52.815-49.974L-52.100-49.974Q-50.725-49.974-50.686-50.014Q-50.616-50.092-50.573-50.277Q-50.530-50.463-50.487-50.752L-50.206-50.752",[3121],[2648,7316],{"fill":3112,"d":7317},"M2.883-37.906h22.763V-60.67H2.883Z",[3106,7319,7321],{"transform":7320},"translate(64.946 3.075)",[2648,7322],{"d":7267,"fill":3108,"stroke":3108,"className":7323,"style":3122},[3121],[3106,7325,7326],{"fill":7271,"stroke":7271},[3106,7327,7329],{"transform":7328},"translate(66.162 -14.494)",[2648,7330],{"d":7331,"fill":7271,"stroke":7271,"className":7332,"style":3204},"M-53.229-49.920Q-53.038-49.646-52.682-49.519Q-52.327-49.392-51.944-49.392Q-51.608-49.392-51.399-49.578Q-51.190-49.764-51.094-50.057Q-50.999-50.349-50.999-50.662Q-50.999-50.986-51.096-51.281Q-51.194-51.576-51.407-51.760Q-51.620-51.943-51.952-51.943L-52.518-51.943Q-52.549-51.943-52.579-51.973Q-52.608-52.002-52.608-52.029L-52.608-52.111Q-52.608-52.146-52.579-52.172Q-52.549-52.197-52.518-52.197L-52.038-52.232Q-51.752-52.232-51.555-52.437Q-51.358-52.642-51.262-52.937Q-51.167-53.232-51.167-53.510Q-51.167-53.889-51.366-54.127Q-51.565-54.365-51.944-54.365Q-52.264-54.365-52.553-54.258Q-52.842-54.150-53.006-53.928Q-52.827-53.928-52.704-53.801Q-52.581-53.674-52.581-53.502Q-52.581-53.330-52.706-53.205Q-52.831-53.080-53.006-53.080Q-53.178-53.080-53.303-53.205Q-53.428-53.330-53.428-53.502Q-53.428-53.869-53.204-54.117Q-52.979-54.365-52.639-54.486Q-52.299-54.607-51.944-54.607Q-51.596-54.607-51.233-54.486Q-50.870-54.365-50.622-54.115Q-50.374-53.865-50.374-53.510Q-50.374-53.025-50.692-52.642Q-51.010-52.260-51.487-52.088Q-50.936-51.978-50.536-51.592Q-50.135-51.205-50.135-50.670Q-50.135-50.213-50.399-49.857Q-50.663-49.502-51.084-49.310Q-51.506-49.119-51.944-49.119Q-52.354-49.119-52.747-49.254Q-53.139-49.389-53.405-49.674Q-53.670-49.959-53.670-50.377Q-53.670-50.572-53.538-50.701Q-53.405-50.830-53.213-50.830Q-53.088-50.830-52.985-50.771Q-52.881-50.713-52.819-50.607Q-52.756-50.502-52.756-50.377Q-52.756-50.182-52.891-50.051Q-53.026-49.920-53.229-49.920",[3121],[3106,7334,7335],{"stroke":3152,"style":3153},[2648,7336],{"fill":3112,"d":7337},"M2.883-37.906h22.762V-60.67H2.883Z",[2648,7339],{"fill":3112,"d":7340},"M25.646-37.906h22.762V-60.67H25.646Z",[3106,7342,7344],{"transform":7343},"translate(87.454 3.075)",[2648,7345],{"d":7346,"fill":3108,"stroke":3108,"className":7347,"style":3122},"M-50.915-49.287L-53.556-49.287Q-53.653-49.287-53.653-49.406Q-53.653-49.467-53.620-49.535Q-53.587-49.603-53.525-49.603Q-53.024-49.603-52.796-49.656Q-52.677-49.700-52.598-49.933L-51.376-54.850Q-51.359-54.938-51.359-54.982Q-51.359-55.048-51.385-55.066Q-51.557-55.119-52.088-55.119Q-52.194-55.119-52.194-55.237Q-52.194-55.299-52.161-55.367Q-52.128-55.435-52.071-55.435L-47.228-55.435Q-47.180-55.435-47.149-55.400Q-47.118-55.365-47.118-55.316L-47.325-53.479Q-47.334-53.435-47.362-53.405Q-47.391-53.374-47.435-53.374L-47.514-53.374Q-47.615-53.374-47.615-53.497Q-47.571-54.046-47.571-54.156Q-47.571-54.604-47.771-54.815Q-47.971-55.026-48.272-55.072Q-48.573-55.119-49.100-55.119L-50.106-55.119Q-50.366-55.119-50.440-55.072Q-50.515-55.026-50.577-54.785L-51.144-52.517L-50.449-52.517Q-49.983-52.517-49.753-52.581Q-49.522-52.644-49.386-52.855Q-49.250-53.066-49.144-53.488Q-49.113-53.572-49.043-53.572L-48.964-53.572Q-48.920-53.572-48.887-53.539Q-48.854-53.506-48.854-53.462Q-48.854-53.444-48.863-53.427L-49.412-51.229Q-49.430-51.150-49.513-51.150L-49.592-51.150Q-49.693-51.150-49.693-51.269Q-49.693-51.317-49.647-51.502Q-49.601-51.686-49.601-51.805Q-49.601-52.064-49.841-52.135Q-50.080-52.205-50.467-52.205L-51.223-52.205L-51.807-49.845Q-51.807-49.828-51.809-49.812Q-51.812-49.797-51.816-49.775Q-51.816-49.678-51.746-49.656Q-51.495-49.603-50.862-49.603Q-50.814-49.603-50.785-49.570Q-50.757-49.537-50.757-49.494Q-50.757-49.287-50.915-49.287",[3121],[3106,7349,7350],{"fill":7271,"stroke":7271},[3106,7351,7353],{"transform":7352},"translate(88.924 -14.494)",[2648,7354],{"d":7355,"fill":7271,"stroke":7271,"className":7356,"style":3204},"M-51.542-50.599L-53.784-50.599L-53.784-50.896L-51.213-54.553Q-51.174-54.607-51.112-54.607L-50.967-54.607Q-50.917-54.607-50.885-54.576Q-50.854-54.545-50.854-54.494L-50.854-50.896L-50.022-50.896L-50.022-50.599L-50.854-50.599L-50.854-49.846Q-50.854-49.584-50.030-49.584L-50.030-49.287L-52.366-49.287L-52.366-49.584Q-51.542-49.584-51.542-49.846L-51.542-50.599M-51.487-53.701L-53.456-50.896L-51.487-50.896",[3121],[2648,7358],{"fill":3112,"d":7359},"M48.408-37.906H71.17V-60.67H48.408Z",[3106,7361,7363],{"transform":7362},"translate(110.216 3.075)",[2648,7364],{"d":7346,"fill":3108,"stroke":3108,"className":7365,"style":3122},[3121],[3106,7367,7368],{"fill":7271,"stroke":7271},[3106,7369,7371],{"transform":7370},"translate(111.686 -14.494)",[2648,7372],{"d":7373,"fill":7271,"stroke":7271,"className":7374,"style":3204},"M-53.182-50.166L-53.245-50.166Q-53.104-49.814-52.780-49.603Q-52.456-49.392-52.069-49.392Q-51.475-49.392-51.225-49.826Q-50.975-50.260-50.975-50.896Q-50.975-51.490-51.145-51.937Q-51.315-52.385-51.815-52.385Q-52.112-52.385-52.317-52.305Q-52.522-52.224-52.624-52.133Q-52.725-52.041-52.840-51.908Q-52.956-51.775-53.006-51.760L-53.077-51.760Q-53.163-51.783-53.182-51.861L-53.182-54.510Q-53.151-54.607-53.077-54.607Q-53.061-54.607-53.053-54.605Q-53.045-54.603-53.038-54.599Q-52.452-54.349-51.854-54.349Q-51.272-54.349-50.655-54.607L-50.631-54.607Q-50.588-54.607-50.561-54.582Q-50.534-54.557-50.534-54.517L-50.534-54.439Q-50.534-54.408-50.557-54.385Q-50.854-54.033-51.276-53.836Q-51.698-53.639-52.159-53.639Q-52.506-53.639-52.885-53.744L-52.885-52.248Q-52.667-52.443-52.391-52.541Q-52.116-52.639-51.815-52.639Q-51.358-52.639-50.989-52.391Q-50.620-52.142-50.413-51.738Q-50.206-51.334-50.206-50.889Q-50.206-50.400-50.461-49.992Q-50.717-49.584-51.149-49.351Q-51.581-49.119-52.069-49.119Q-52.463-49.119-52.819-49.310Q-53.174-49.502-53.385-49.836Q-53.596-50.170-53.596-50.584Q-53.596-50.764-53.479-50.877Q-53.362-50.990-53.182-50.990Q-53.065-50.990-52.973-50.937Q-52.881-50.885-52.829-50.793Q-52.776-50.701-52.776-50.584Q-52.776-50.400-52.889-50.283Q-53.002-50.166-53.182-50.166",[3121],[2648,7376],{"fill":3112,"d":7377},"M71.17-37.906h22.763V-60.67H71.17Z",[3106,7379,7381],{"transform":7380},"translate(132.978 3.075)",[2648,7382],{"d":7346,"fill":3108,"stroke":3108,"className":7383,"style":3122},[3121],[3106,7385,7386],{"fill":7271,"stroke":7271},[3106,7387,7389],{"transform":7388},"translate(134.449 -14.494)",[2648,7390],{"d":7391,"fill":7271,"stroke":7271,"className":7392,"style":3204},"M-51.901-49.119Q-52.573-49.119-52.969-49.543Q-53.366-49.967-53.518-50.586Q-53.670-51.205-53.670-51.873Q-53.670-52.533-53.399-53.166Q-53.127-53.799-52.614-54.203Q-52.100-54.607-51.428-54.607Q-51.139-54.607-50.891-54.508Q-50.643-54.408-50.497-54.207Q-50.350-54.006-50.350-53.701Q-50.350-53.596-50.401-53.504Q-50.452-53.412-50.543-53.361Q-50.635-53.310-50.741-53.310Q-50.909-53.310-51.022-53.424Q-51.135-53.537-51.135-53.701Q-51.135-53.861-51.026-53.978Q-50.917-54.096-50.749-54.096Q-50.948-54.365-51.428-54.365Q-51.846-54.365-52.178-54.088Q-52.510-53.810-52.686-53.392Q-52.885-52.892-52.885-51.990Q-52.721-52.314-52.442-52.514Q-52.163-52.713-51.815-52.713Q-51.331-52.713-50.946-52.467Q-50.561-52.221-50.348-51.812Q-50.135-51.404-50.135-50.920Q-50.135-50.428-50.366-50.016Q-50.596-49.603-51.006-49.361Q-51.417-49.119-51.901-49.119M-51.901-49.392Q-51.475-49.392-51.258-49.613Q-51.042-49.834-50.979-50.160Q-50.917-50.486-50.917-50.920Q-50.917-51.232-50.942-51.482Q-50.967-51.732-51.057-51.957Q-51.147-52.182-51.342-52.318Q-51.538-52.455-51.854-52.455Q-52.182-52.455-52.415-52.246Q-52.647-52.037-52.758-51.719Q-52.870-51.400-52.870-51.088Q-52.866-51.049-52.864-51.016Q-52.862-50.982-52.862-50.928Q-52.862-50.912-52.864-50.904Q-52.866-50.896-52.870-50.889Q-52.870-50.314-52.643-49.853Q-52.417-49.392-51.901-49.392",[3121],[2648,7394],{"fill":3112,"d":7395},"M93.933-37.906h22.762V-60.67H93.933Z",[3106,7397,7399],{"transform":7398},"translate(155.74 3.075)",[2648,7400],{"d":7346,"fill":3108,"stroke":3108,"className":7401,"style":3122},[3121],[3106,7403,7404],{"fill":7271,"stroke":7271},[3106,7405,7407],{"transform":7406},"translate(157.21 -14.494)",[2648,7408],{"d":7409,"fill":7271,"stroke":7271,"className":7410,"style":3204},"M-52.526-49.510Q-52.526-49.935-52.442-50.385Q-52.358-50.834-52.202-51.252Q-52.045-51.670-51.831-52.057Q-51.616-52.443-51.342-52.799L-50.616-53.752L-51.526-53.752Q-53.022-53.752-53.061-53.713Q-53.131-53.631-53.178-53.441Q-53.225-53.252-53.268-52.974L-53.549-52.974L-53.280-54.693L-52.999-54.693L-52.999-54.670Q-52.999-54.525-52.481-54.482Q-51.963-54.439-51.471-54.439L-49.901-54.439L-49.901-54.248Q-49.909-54.209-49.924-54.182L-51.100-52.646Q-51.401-52.228-51.540-51.721Q-51.678-51.213-51.709-50.719Q-51.741-50.224-51.741-49.510Q-51.741-49.404-51.792-49.312Q-51.842-49.221-51.934-49.170Q-52.026-49.119-52.135-49.119Q-52.241-49.119-52.333-49.170Q-52.424-49.221-52.475-49.312Q-52.526-49.404-52.526-49.510",[3121],[2648,7412],{"fill":3112,"stroke":3152,"d":7413,"style":3194},"M14.264-23.68v-11.381",[3106,7415,7416,7423,7429,7435,7441,7447],{"fill":3152,"stroke":3112},[3106,7417,7419],{"transform":7418},"translate(32.867 38.373)",[2648,7420],{"d":7421,"fill":3152,"stroke":3152,"className":7422,"style":3204},"M-51.870-49.287L-53.702-49.287L-53.702-49.584Q-53.428-49.584-53.260-49.631Q-53.092-49.678-53.092-49.846L-53.092-54.006Q-53.092-54.221-53.155-54.316Q-53.217-54.412-53.336-54.433Q-53.456-54.455-53.702-54.455L-53.702-54.752L-52.479-54.838L-52.479-49.846Q-52.479-49.678-52.311-49.631Q-52.143-49.584-51.870-49.584L-51.870-49.287M-51.327-50.119Q-51.327-50.603-50.924-50.898Q-50.522-51.193-49.971-51.312Q-49.420-51.432-48.928-51.432L-48.928-51.721Q-48.928-51.947-49.043-52.154Q-49.159-52.361-49.356-52.480Q-49.553-52.599-49.784-52.599Q-50.209-52.599-50.495-52.494Q-50.424-52.467-50.377-52.412Q-50.331-52.357-50.305-52.287Q-50.280-52.217-50.280-52.142Q-50.280-52.037-50.331-51.945Q-50.381-51.853-50.473-51.803Q-50.565-51.752-50.670-51.752Q-50.776-51.752-50.868-51.803Q-50.959-51.853-51.010-51.945Q-51.061-52.037-51.061-52.142Q-51.061-52.560-50.672-52.707Q-50.284-52.853-49.784-52.853Q-49.452-52.853-49.098-52.723Q-48.745-52.592-48.516-52.338Q-48.288-52.084-48.288-51.736L-48.288-49.935Q-48.288-49.803-48.215-49.693Q-48.143-49.584-48.014-49.584Q-47.889-49.584-47.821-49.689Q-47.752-49.795-47.752-49.935L-47.752-50.447L-47.471-50.447L-47.471-49.935Q-47.471-49.732-47.588-49.574Q-47.706-49.416-47.887-49.332Q-48.069-49.248-48.272-49.248Q-48.502-49.248-48.655-49.420Q-48.807-49.592-48.838-49.822Q-48.999-49.541-49.307-49.375Q-49.616-49.209-49.967-49.209Q-50.479-49.209-50.903-49.432Q-51.327-49.654-51.327-50.119M-50.639-50.119Q-50.639-49.834-50.413-49.648Q-50.186-49.463-49.893-49.463Q-49.647-49.463-49.422-49.580Q-49.198-49.697-49.063-49.900Q-48.928-50.103-48.928-50.357L-48.928-51.189Q-49.194-51.189-49.479-51.135Q-49.764-51.080-50.036-50.951Q-50.307-50.822-50.473-50.615Q-50.639-50.408-50.639-50.119M-47.135-49.295L-47.135-50.517Q-47.135-50.545-47.104-50.576Q-47.073-50.607-47.049-50.607L-46.944-50.607Q-46.874-50.607-46.858-50.545Q-46.795-50.224-46.657-49.984Q-46.518-49.744-46.286-49.603Q-46.053-49.463-45.745-49.463Q-45.506-49.463-45.297-49.523Q-45.088-49.584-44.952-49.732Q-44.815-49.881-44.815-50.127Q-44.815-50.381-45.026-50.547Q-45.237-50.713-45.506-50.767L-46.127-50.881Q-46.534-50.959-46.834-51.215Q-47.135-51.471-47.135-51.846Q-47.135-52.213-46.934-52.435Q-46.733-52.658-46.409-52.756Q-46.084-52.853-45.745-52.853Q-45.280-52.853-44.983-52.646L-44.760-52.830Q-44.737-52.853-44.706-52.853L-44.655-52.853Q-44.624-52.853-44.596-52.826Q-44.569-52.799-44.569-52.767L-44.569-51.783Q-44.569-51.752-44.594-51.723Q-44.620-51.693-44.655-51.693L-44.760-51.693Q-44.795-51.693-44.823-51.721Q-44.850-51.748-44.850-51.783Q-44.850-52.182-45.102-52.402Q-45.354-52.623-45.752-52.623Q-46.108-52.623-46.391-52.500Q-46.674-52.377-46.674-52.072Q-46.674-51.853-46.473-51.721Q-46.272-51.588-46.026-51.545L-45.401-51.432Q-44.971-51.342-44.663-51.045Q-44.354-50.748-44.354-50.334Q-44.354-49.764-44.752-49.486Q-45.151-49.209-45.745-49.209Q-46.295-49.209-46.647-49.545L-46.944-49.232Q-46.967-49.209-47.002-49.209L-47.049-49.209Q-47.073-49.209-47.104-49.240Q-47.135-49.271-47.135-49.295M-43.202-50.248L-43.202-52.439L-43.905-52.439L-43.905-52.693Q-43.549-52.693-43.307-52.926Q-43.065-53.158-42.954-53.506Q-42.842-53.853-42.842-54.209L-42.561-54.209L-42.561-52.736L-41.385-52.736L-41.385-52.439L-42.561-52.439L-42.561-50.264Q-42.561-49.943-42.442-49.715Q-42.323-49.486-42.042-49.486Q-41.862-49.486-41.745-49.609Q-41.627-49.732-41.575-49.912Q-41.522-50.092-41.522-50.264L-41.522-50.736L-41.241-50.736L-41.241-50.248Q-41.241-49.994-41.346-49.754Q-41.452-49.514-41.649-49.361Q-41.846-49.209-42.104-49.209Q-42.420-49.209-42.672-49.332Q-42.924-49.455-43.063-49.689Q-43.202-49.924-43.202-50.248",[3121],[3106,7424,7425],{"transform":7418},[2648,7426],{"d":7427,"fill":3152,"stroke":3152,"className":7428,"style":3204},"M-35.614-49.287L-37.599-49.287L-37.599-49.584Q-37.325-49.584-37.157-49.631Q-36.989-49.678-36.989-49.846L-36.989-52.439L-37.630-52.439L-37.630-52.736L-36.989-52.736L-36.989-53.670Q-36.989-53.935-36.872-54.172Q-36.755-54.408-36.562-54.572Q-36.368-54.736-36.120-54.828Q-35.872-54.920-35.606-54.920Q-35.321-54.920-35.097-54.762Q-34.872-54.603-34.872-54.326Q-34.872-54.170-34.978-54.060Q-35.083-53.951-35.247-53.951Q-35.403-53.951-35.513-54.060Q-35.622-54.170-35.622-54.326Q-35.622-54.533-35.462-54.639Q-35.560-54.662-35.653-54.662Q-35.884-54.662-36.056-54.506Q-36.228-54.349-36.314-54.113Q-36.399-53.877-36.399-53.654L-36.399-52.736L-35.431-52.736L-35.431-52.439L-36.376-52.439L-36.376-49.846Q-36.376-49.678-36.149-49.631Q-35.923-49.584-35.614-49.584L-35.614-49.287M-35.087-51.041Q-35.087-51.521-34.855-51.937Q-34.622-52.353-34.212-52.603Q-33.802-52.853-33.325-52.853Q-32.595-52.853-32.196-52.412Q-31.798-51.971-31.798-51.240Q-31.798-51.135-31.892-51.111L-34.341-51.111L-34.341-51.041Q-34.341-50.631-34.220-50.275Q-34.099-49.920-33.827-49.703Q-33.556-49.486-33.126-49.486Q-32.763-49.486-32.466-49.715Q-32.169-49.943-32.067-50.295Q-32.060-50.342-31.974-50.357L-31.892-50.357Q-31.798-50.330-31.798-50.248Q-31.798-50.240-31.806-50.209Q-31.868-49.982-32.007-49.799Q-32.146-49.615-32.337-49.482Q-32.528-49.349-32.747-49.279Q-32.966-49.209-33.204-49.209Q-33.575-49.209-33.913-49.346Q-34.251-49.482-34.519-49.734Q-34.786-49.986-34.937-50.326Q-35.087-50.666-35.087-51.041M-34.333-51.349L-32.372-51.349Q-32.372-51.654-32.474-51.945Q-32.575-52.236-32.792-52.418Q-33.009-52.599-33.325-52.599Q-33.626-52.599-33.856-52.412Q-34.087-52.224-34.210-51.933Q-34.333-51.642-34.333-51.349M-31.212-50.119Q-31.212-50.603-30.810-50.898Q-30.407-51.193-29.856-51.312Q-29.306-51.432-28.814-51.432L-28.814-51.721Q-28.814-51.947-28.929-52.154Q-29.044-52.361-29.241-52.480Q-29.439-52.599-29.669-52.599Q-30.095-52.599-30.380-52.494Q-30.310-52.467-30.263-52.412Q-30.216-52.357-30.190-52.287Q-30.165-52.217-30.165-52.142Q-30.165-52.037-30.216-51.945Q-30.267-51.853-30.358-51.803Q-30.450-51.752-30.556-51.752Q-30.661-51.752-30.753-51.803Q-30.845-51.853-30.896-51.945Q-30.946-52.037-30.946-52.142Q-30.946-52.560-30.558-52.707Q-30.169-52.853-29.669-52.853Q-29.337-52.853-28.983-52.723Q-28.630-52.592-28.401-52.338Q-28.173-52.084-28.173-51.736L-28.173-49.935Q-28.173-49.803-28.101-49.693Q-28.028-49.584-27.899-49.584Q-27.774-49.584-27.706-49.689Q-27.638-49.795-27.638-49.935L-27.638-50.447L-27.356-50.447L-27.356-49.935Q-27.356-49.732-27.474-49.574Q-27.591-49.416-27.773-49.332Q-27.954-49.248-28.157-49.248Q-28.388-49.248-28.540-49.420Q-28.692-49.592-28.724-49.822Q-28.884-49.541-29.192-49.375Q-29.501-49.209-29.853-49.209Q-30.364-49.209-30.788-49.432Q-31.212-49.654-31.212-50.119M-30.524-50.119Q-30.524-49.834-30.298-49.648Q-30.071-49.463-29.778-49.463Q-29.532-49.463-29.308-49.580Q-29.083-49.697-28.948-49.900Q-28.814-50.103-28.814-50.357L-28.814-51.189Q-29.079-51.189-29.364-51.135Q-29.649-51.080-29.921-50.951Q-30.192-50.822-30.358-50.615Q-30.524-50.408-30.524-50.119M-27.021-49.295L-27.021-50.517Q-27.021-50.545-26.989-50.576Q-26.958-50.607-26.935-50.607L-26.829-50.607Q-26.759-50.607-26.743-50.545Q-26.681-50.224-26.542-49.984Q-26.403-49.744-26.171-49.603Q-25.939-49.463-25.630-49.463Q-25.392-49.463-25.183-49.523Q-24.974-49.584-24.837-49.732Q-24.700-49.881-24.700-50.127Q-24.700-50.381-24.911-50.547Q-25.122-50.713-25.392-50.767L-26.013-50.881Q-26.419-50.959-26.720-51.215Q-27.021-51.471-27.021-51.846Q-27.021-52.213-26.819-52.435Q-26.618-52.658-26.294-52.756Q-25.970-52.853-25.630-52.853Q-25.165-52.853-24.868-52.646L-24.646-52.830Q-24.622-52.853-24.591-52.853L-24.540-52.853Q-24.509-52.853-24.481-52.826Q-24.454-52.799-24.454-52.767L-24.454-51.783Q-24.454-51.752-24.480-51.723Q-24.505-51.693-24.540-51.693L-24.646-51.693Q-24.681-51.693-24.708-51.721Q-24.735-51.748-24.735-51.783Q-24.735-52.182-24.987-52.402Q-25.239-52.623-25.638-52.623Q-25.993-52.623-26.276-52.500Q-26.560-52.377-26.560-52.072Q-26.560-51.853-26.358-51.721Q-26.157-51.588-25.911-51.545L-25.286-51.432Q-24.856-51.342-24.548-51.045Q-24.239-50.748-24.239-50.334Q-24.239-49.764-24.638-49.486Q-25.036-49.209-25.630-49.209Q-26.181-49.209-26.532-49.545L-26.829-49.232Q-26.853-49.209-26.888-49.209L-26.935-49.209Q-26.958-49.209-26.989-49.240Q-27.021-49.271-27.021-49.295M-21.853-49.287L-23.630-49.287L-23.630-49.584Q-23.356-49.584-23.189-49.631Q-23.021-49.678-23.021-49.846L-23.021-51.982Q-23.021-52.197-23.077-52.293Q-23.134-52.389-23.247-52.410Q-23.360-52.432-23.606-52.432L-23.606-52.728L-22.407-52.814L-22.407-49.846Q-22.407-49.678-22.261-49.631Q-22.114-49.584-21.853-49.584L-21.853-49.287M-23.294-54.209Q-23.294-54.400-23.159-54.531Q-23.024-54.662-22.829-54.662Q-22.708-54.662-22.605-54.599Q-22.501-54.537-22.439-54.433Q-22.376-54.330-22.376-54.209Q-22.376-54.014-22.507-53.879Q-22.638-53.744-22.829-53.744Q-23.028-53.744-23.161-53.877Q-23.294-54.010-23.294-54.209M-20.439-49.287L-20.720-49.287L-20.720-54.006Q-20.720-54.221-20.782-54.316Q-20.845-54.412-20.962-54.433Q-21.079-54.455-21.325-54.455L-21.325-54.752L-20.103-54.838L-20.103-52.349Q-19.626-52.814-18.927-52.814Q-18.446-52.814-18.038-52.570Q-17.630-52.326-17.394-51.912Q-17.157-51.498-17.157-51.014Q-17.157-50.639-17.306-50.310Q-17.454-49.982-17.724-49.730Q-17.993-49.478-18.337-49.344Q-18.681-49.209-19.040-49.209Q-19.360-49.209-19.659-49.357Q-19.958-49.506-20.165-49.767L-20.439-49.287M-20.079-51.959L-20.079-50.119Q-19.927-49.822-19.667-49.642Q-19.407-49.463-19.095-49.463Q-18.669-49.463-18.401-49.682Q-18.134-49.900-18.019-50.246Q-17.903-50.592-17.903-51.014Q-17.903-51.662-18.151-52.111Q-18.399-52.560-18.997-52.560Q-19.333-52.560-19.622-52.402Q-19.911-52.244-20.079-51.959M-14.720-49.287L-16.552-49.287L-16.552-49.584Q-16.278-49.584-16.110-49.631Q-15.942-49.678-15.942-49.846L-15.942-54.006Q-15.942-54.221-16.005-54.316Q-16.067-54.412-16.187-54.433Q-16.306-54.455-16.552-54.455L-16.552-54.752L-15.329-54.838L-15.329-49.846Q-15.329-49.678-15.161-49.631Q-14.993-49.584-14.720-49.584L-14.720-49.287M-14.274-51.041Q-14.274-51.521-14.042-51.937Q-13.810-52.353-13.399-52.603Q-12.989-52.853-12.513-52.853Q-11.782-52.853-11.384-52.412Q-10.985-51.971-10.985-51.240Q-10.985-51.135-11.079-51.111L-13.528-51.111L-13.528-51.041Q-13.528-50.631-13.407-50.275Q-13.286-49.920-13.015-49.703Q-12.743-49.486-12.314-49.486Q-11.950-49.486-11.653-49.715Q-11.356-49.943-11.255-50.295Q-11.247-50.342-11.161-50.357L-11.079-50.357Q-10.985-50.330-10.985-50.248Q-10.985-50.240-10.993-50.209Q-11.056-49.982-11.194-49.799Q-11.333-49.615-11.524-49.482Q-11.716-49.349-11.935-49.279Q-12.153-49.209-12.392-49.209Q-12.763-49.209-13.101-49.346Q-13.439-49.482-13.706-49.734Q-13.974-49.986-14.124-50.326Q-14.274-50.666-14.274-51.041M-13.521-51.349L-11.560-51.349Q-11.560-51.654-11.661-51.945Q-11.763-52.236-11.980-52.418Q-12.196-52.599-12.513-52.599Q-12.814-52.599-13.044-52.412Q-13.274-52.224-13.398-51.933Q-13.521-51.642-13.521-51.349",[3121],[3106,7430,7431],{"transform":7418},[2648,7432],{"d":7433,"fill":3152,"stroke":3152,"className":7434,"style":3204},"M-7.197-49.576Q-7.030-49.463-6.787-49.463Q-6.537-49.463-6.340-49.689Q-6.143-49.916-6.084-50.174L-5.725-51.615Q-5.647-51.920-5.647-52.080Q-5.647-52.291-5.764-52.426Q-5.881-52.560-6.092-52.560Q-6.346-52.560-6.574-52.414Q-6.803-52.267-6.959-52.037Q-7.115-51.807-7.174-51.560Q-7.186-51.486-7.252-51.486L-7.358-51.486Q-7.389-51.486-7.416-51.521Q-7.444-51.557-7.444-51.584L-7.444-51.615Q-7.365-51.928-7.166-52.201Q-6.967-52.474-6.678-52.644Q-6.389-52.814-6.076-52.814Q-5.780-52.814-5.520-52.670Q-5.260-52.525-5.151-52.264Q-5.002-52.506-4.783-52.660Q-4.565-52.814-4.311-52.814Q-4.112-52.814-3.924-52.748Q-3.737-52.682-3.615-52.543Q-3.494-52.404-3.494-52.209Q-3.494-51.998-3.625-51.842Q-3.756-51.685-3.963-51.685Q-4.096-51.685-4.190-51.769Q-4.283-51.853-4.283-51.990Q-4.283-52.154-4.176-52.283Q-4.069-52.412-3.908-52.447Q-4.084-52.560-4.326-52.560Q-4.494-52.560-4.641-52.451Q-4.787-52.342-4.887-52.178Q-4.987-52.014-5.030-51.846L-5.389-50.408Q-5.459-50.064-5.459-49.943Q-5.459-49.728-5.342-49.596Q-5.225-49.463-5.014-49.463Q-4.635-49.463-4.334-49.769Q-4.033-50.076-3.940-50.463Q-3.912-50.533-3.854-50.533L-3.748-50.533Q-3.709-50.533-3.686-50.504Q-3.662-50.474-3.662-50.439Q-3.662-50.424-3.670-50.408Q-3.748-50.096-3.947-49.822Q-4.147-49.549-4.432-49.379Q-4.717-49.209-5.030-49.209Q-5.330-49.209-5.590-49.353Q-5.850-49.498-5.963-49.760Q-6.108-49.525-6.324-49.367Q-6.541-49.209-6.795-49.209Q-6.994-49.209-7.182-49.275Q-7.369-49.342-7.490-49.480Q-7.612-49.619-7.612-49.814Q-7.612-50.025-7.479-50.180Q-7.346-50.334-7.143-50.334Q-6.998-50.334-6.910-50.252Q-6.822-50.170-6.822-50.029Q-6.822-49.869-6.928-49.740Q-7.033-49.611-7.197-49.576",[3121],[3106,7436,7437],{"transform":7418},[2648,7438],{"d":7439,"fill":3152,"stroke":3152,"className":7440,"style":3235},"M-2.158-52.260Q-2.158-52.278-2.152-52.296L-1.583-53.347L-2.644-53.851Q-2.705-53.881-2.705-53.936Q-2.705-53.974-2.676-53.999Q-2.647-54.024-2.609-54.024L-1.434-53.816L-1.276-54.985Q-1.264-55.064-1.188-55.064Q-1.109-55.064-1.097-54.985L-0.942-53.816L0.218-54.024L0.242-54.024Q0.280-54.024 0.305-54.002Q0.330-53.980 0.330-53.936Q0.330-53.886 0.283-53.857L-0.792-53.347L-0.227-52.310Q-0.215-52.269-0.215-52.260Q-0.215-52.222-0.245-52.196Q-0.274-52.170-0.306-52.170Q-0.338-52.170-0.376-52.208L-1.188-53.060L-1.997-52.208Q-2.035-52.170-2.070-52.170Q-2.099-52.170-2.128-52.199Q-2.158-52.228-2.158-52.260",[3121],[3106,7442,7443],{"transform":7418},[2648,7444],{"d":7445,"fill":3152,"stroke":3152,"className":7446,"style":3204},"M9.555-50.264L4.242-50.264Q4.164-50.271 4.115-50.320Q4.067-50.369 4.067-50.447Q4.067-50.517 4.114-50.568Q4.160-50.619 4.242-50.631L9.555-50.631Q9.629-50.619 9.676-50.568Q9.723-50.517 9.723-50.447Q9.723-50.369 9.674-50.320Q9.625-50.271 9.555-50.264M9.555-51.951L4.242-51.951Q4.164-51.959 4.115-52.008Q4.067-52.057 4.067-52.135Q4.067-52.205 4.114-52.256Q4.160-52.307 4.242-52.318L9.555-52.318Q9.629-52.307 9.676-52.256Q9.723-52.205 9.723-52.135Q9.723-52.057 9.674-52.008Q9.625-51.959 9.555-51.951",[3121],[3106,7448,7449],{"transform":7418},[2648,7450],{"d":7451,"fill":3152,"stroke":3152,"className":7452,"style":3204},"M13.359-49.920Q13.550-49.646 13.906-49.519Q14.261-49.392 14.644-49.392Q14.980-49.392 15.189-49.578Q15.398-49.764 15.494-50.057Q15.589-50.349 15.589-50.662Q15.589-50.986 15.492-51.281Q15.394-51.576 15.181-51.760Q14.968-51.943 14.636-51.943L14.070-51.943Q14.039-51.943 14.009-51.973Q13.980-52.002 13.980-52.029L13.980-52.111Q13.980-52.146 14.009-52.172Q14.039-52.197 14.070-52.197L14.550-52.232Q14.836-52.232 15.033-52.437Q15.230-52.642 15.326-52.937Q15.421-53.232 15.421-53.510Q15.421-53.889 15.222-54.127Q15.023-54.365 14.644-54.365Q14.324-54.365 14.035-54.258Q13.746-54.150 13.582-53.928Q13.761-53.928 13.884-53.801Q14.007-53.674 14.007-53.502Q14.007-53.330 13.882-53.205Q13.757-53.080 13.582-53.080Q13.410-53.080 13.285-53.205Q13.160-53.330 13.160-53.502Q13.160-53.869 13.384-54.117Q13.609-54.365 13.949-54.486Q14.289-54.607 14.644-54.607Q14.992-54.607 15.355-54.486Q15.718-54.365 15.966-54.115Q16.214-53.865 16.214-53.510Q16.214-53.025 15.896-52.642Q15.578-52.260 15.101-52.088Q15.652-51.978 16.052-51.592Q16.453-51.205 16.453-50.670Q16.453-50.213 16.189-49.857Q15.925-49.502 15.504-49.310Q15.082-49.119 14.644-49.119Q14.234-49.119 13.841-49.254Q13.449-49.389 13.183-49.674Q12.918-49.959 12.918-50.377Q12.918-50.572 13.050-50.701Q13.183-50.830 13.375-50.830Q13.500-50.830 13.603-50.771Q13.707-50.713 13.769-50.607Q13.832-50.502 13.832-50.377Q13.832-50.182 13.697-50.051Q13.562-49.920 13.359-49.920",[3121],[3237,7454,7456,7457,7549,7550,7595,7596,7629,7630,4379,7689,492],{"className":7455},[3240],"Reversed monotonicity: ",[389,7458,7460],{"className":7459},[392],[389,7461,7463,7490,7537],{"className":7462,"ariaHidden":397},[396],[389,7464,7466,7469,7472,7475,7478,7481,7484,7487],{"className":7465},[401],[389,7467],{"className":7468,"style":459},[405],[389,7470,964],{"className":7471,"style":2507},[410,411],[389,7473,469],{"className":7474},[468],[389,7476,429],{"className":7477},[410,411],[389,7479,492],{"className":7480},[491],[389,7482],{"className":7483,"style":560},[483],[389,7485,565],{"className":7486},[564],[389,7488],{"className":7489,"style":560},[483],[389,7491,7493,7496,7499,7528,7531,7534],{"className":7492},[401],[389,7494],{"className":7495,"style":6950},[405],[389,7497,469],{"className":7498},[468],[389,7500,7502,7505],{"className":7501},[410],[389,7503,429],{"className":7504},[410,411],[389,7506,7508],{"className":7507},[2911],[389,7509,7511],{"className":7510},[2568],[389,7512,7514],{"className":7513},[2573],[389,7515,7517],{"className":7516,"style":6764},[2577],[389,7518,7519,7522],{"style":2923},[389,7520],{"className":7521,"style":2927},[2584],[389,7523,7525],{"className":7524},[2589,2590,2591,2592],[389,7526,6181],{"className":7527},[410,2592],[389,7529],{"className":7530,"style":560},[483],[389,7532,4233],{"className":7533},[564],[389,7535],{"className":7536,"style":560},[483],[389,7538,7540,7543,7546],{"className":7539},[401],[389,7541],{"className":7542,"style":459},[405],[389,7544,6621],{"className":7545,"style":6620},[410,411],[389,7547,492],{"className":7548},[491]," runs ",[389,7551,7553],{"className":7552},[392],[389,7554,7556],{"className":7555,"ariaHidden":397},[396],[389,7557,7559,7562,7565,7568,7571,7574,7577,7580,7583,7586,7589,7592],{"className":7558},[401],[389,7560],{"className":7561,"style":799},[405],[389,7563,2832],{"className":7564,"style":2682},[410,411],[389,7566],{"className":7567,"style":484},[483],[389,7569,2699],{"className":7570},[670],[389,7572],{"className":7573,"style":484},[483],[389,7575,2832],{"className":7576,"style":2682},[410,411],[389,7578],{"className":7579,"style":484},[483],[389,7581,2683],{"className":7582,"style":2682},[410,411],[389,7584],{"className":7585,"style":484},[483],[389,7587,2699],{"className":7588},[670],[389,7590],{"className":7591,"style":484},[483],[389,7593,2683],{"className":7594,"style":2682},[410,411],", so the answer is the LAST true, not the first. For ",[389,7597,7599],{"className":7598},[392],[389,7600,7602,7620],{"className":7601,"ariaHidden":397},[396],[389,7603,7605,7608,7611,7614,7617],{"className":7604},[401],[389,7606],{"className":7607,"style":799},[405],[389,7609,6621],{"className":7610,"style":6620},[410,411],[389,7612],{"className":7613,"style":560},[483],[389,7615,565],{"className":7616},[564],[389,7618],{"className":7619,"style":560},[483],[389,7621,7623,7626],{"className":7622},[401],[389,7624],{"className":7625,"style":1714},[405],[389,7627,6201],{"className":7628},[410]," the boundary sits at ",[389,7631,7633],{"className":7632},[392],[389,7634,7636,7680],{"className":7635,"ariaHidden":397},[396],[389,7637,7639,7642,7671,7674,7677],{"className":7638},[401],[389,7640],{"className":7641,"style":2901},[405],[389,7643,7645,7648],{"className":7644},[410],[389,7646,429],{"className":7647},[410,411],[389,7649,7651],{"className":7650},[2911],[389,7652,7654],{"className":7653},[2568],[389,7655,7657],{"className":7656},[2573],[389,7658,7660],{"className":7659,"style":2901},[2577],[389,7661,7662,7665],{"style":2923},[389,7663],{"className":7664,"style":2927},[2584],[389,7666,7668],{"className":7667},[2589,2590,2591,2592],[389,7669,2934],{"className":7670},[907,2592],[389,7672],{"className":7673,"style":560},[483],[389,7675,565],{"className":7676},[564],[389,7678],{"className":7679,"style":560},[483],[389,7681,7683,7686],{"className":7682},[401],[389,7684],{"className":7685,"style":1714},[405],[389,7687,4971],{"className":7688},[410],[389,7690,7692],{"className":7691},[392],[389,7693,7695,7714,7733],{"className":7694,"ariaHidden":397},[396],[389,7696,7698,7701,7705,7708,7711],{"className":7697},[401],[389,7699],{"className":7700,"style":6292},[405],[389,7702,7704],{"className":7703},[410],"9",[389,7706],{"className":7707,"style":560},[483],[389,7709,4233],{"className":7710},[564],[389,7712],{"className":7713,"style":560},[483],[389,7715,7717,7721,7724,7727,7730],{"className":7716},[401],[389,7718],{"className":7719,"style":7720},[405],"height:0.6835em;vertical-align:-0.0391em;",[389,7722,6201],{"className":7723},[410],[389,7725],{"className":7726,"style":560},[483],[389,7728,2122],{"className":7729},[564],[389,7731],{"className":7732,"style":560},[483],[389,7734,7736,7739],{"className":7735},[401],[389,7737],{"className":7738,"style":1714},[405],[389,7740,7742],{"className":7741},[410],"16",[635,7744,7746],{"id":7745},"correctness-and-termination","Correctness and termination",[381,7748,7749,7750,7753,7754,7769],{},"Every variant rests on one invariant, stated here for the ",[964,7751,7752],{},"smallest feasible","\nhalf-open template (",[389,7755,7757],{"className":7756},[392],[389,7758,7760],{"className":7759,"ariaHidden":397},[396],[389,7761,7763,7766],{"className":7762},[401],[389,7764],{"className":7765,"style":918},[405],[389,7767,736],{"className":7768},[410,411]," inclusive as an answer):",[758,7771,7772],{"type":760},[381,7773,7774,7776,7777,7795,7796,7811,7812,7842,7843,2441,7864,7866,7867,2441,7897,7899,7900,7941,7942,633],{},[495,7775,765],{}," At the top of each iteration, ",[389,7778,7780],{"className":7779},[392],[389,7781,7783],{"className":7782,"ariaHidden":397},[396],[389,7784,7786,7789,7792],{"className":7785},[401],[389,7787],{"className":7788,"style":918},[405],[389,7790,721],{"className":7791,"style":720},[410,411],[389,7793,725],{"className":7794},[410,411]," is infeasible-or-just-below\nthe boundary and ",[389,7797,7799],{"className":7798},[392],[389,7800,7802],{"className":7801,"ariaHidden":397},[396],[389,7803,7805,7808],{"className":7804},[401],[389,7806],{"className":7807,"style":918},[405],[389,7809,736],{"className":7810},[410,411]," is feasible (or the always-feasible sentinel): every index\n",[389,7813,7815],{"className":7814},[392],[389,7816,7818,7830],{"className":7817,"ariaHidden":397},[396],[389,7819,7821,7824,7827],{"className":7820},[401],[389,7822],{"className":7823,"style":779},[405],[389,7825,2122],{"className":7826},[564],[389,7828],{"className":7829,"style":560},[483],[389,7831,7833,7836,7839],{"className":7832},[401],[389,7834],{"className":7835,"style":918},[405],[389,7837,721],{"className":7838,"style":720},[410,411],[389,7840,725],{"className":7841},[410,411]," has ",[389,7844,7846],{"className":7845},[392],[389,7847,7849],{"className":7848,"ariaHidden":397},[396],[389,7850,7852,7855,7858,7861],{"className":7851},[401],[389,7853],{"className":7854,"style":1453},[405],[389,7856,381],{"className":7857},[410,411],[389,7859],{"className":7860,"style":560},[483],[389,7862,565],{"className":7863},[564],[525,7865,527],{},", and ",[389,7868,7870],{"className":7869},[392],[389,7871,7873],{"className":7872,"ariaHidden":397},[396],[389,7874,7876,7879,7882,7885,7888,7891,7894],{"className":7875},[401],[389,7877],{"className":7878,"style":459},[405],[389,7880,381],{"className":7881},[410,411],[389,7883,469],{"className":7884},[468],[389,7886,736],{"className":7887},[410,411],[389,7889,492],{"className":7890},[491],[389,7892],{"className":7893,"style":560},[483],[389,7895,565],{"className":7896},[564],[525,7898,397],{},". The boundary ",[389,7901,7903],{"className":7902},[392],[389,7904,7906],{"className":7905,"ariaHidden":397},[396],[389,7907,7909,7912],{"className":7908},[401],[389,7910],{"className":7911,"style":2901},[405],[389,7913,7915,7918],{"className":7914},[410],[389,7916,429],{"className":7917},[410,411],[389,7919,7921],{"className":7920},[2911],[389,7922,7924],{"className":7923},[2568],[389,7925,7927],{"className":7926},[2573],[389,7928,7930],{"className":7929,"style":2901},[2577],[389,7931,7932,7935],{"style":2923},[389,7933],{"className":7934,"style":2927},[2584],[389,7936,7938],{"className":7937},[2589,2590,2591,2592],[389,7939,2934],{"className":7940},[907,2592]," always\nlies in ",[389,7943,7945],{"className":7944},[392],[389,7946,7948],{"className":7947,"ariaHidden":397},[396],[389,7949,7951,7954,7957,7960,7963,7966,7969,7972],{"className":7950},[401],[389,7952],{"className":7953,"style":459},[405],[389,7955,591],{"className":7956},[468],[389,7958,721],{"className":7959,"style":720},[410,411],[389,7961,725],{"className":7962},[410,411],[389,7964,729],{"className":7965},[674],[389,7967],{"className":7968,"style":484},[483],[389,7970,736],{"className":7971},[410,411],[389,7973,598],{"className":7974},[491],[381,7976,7977,7980,7981,8072,8073,8131,8132,8168,8169,8196,8197,8199,8200,8236,8237,8252,8253,8168,8268,8196,8295,8297,8298,8355,8356,8374,8375,8393,8394,8430,8431,8535,8536,5899,8616],{},[626,7978,7979],{},"Termination and correctness."," With ",[389,7982,7984],{"className":7983},[392],[389,7985,7987,8008,8029,8051],{"className":7986,"ariaHidden":397},[396],[389,7988,7990,7993,7996,7999,8002,8005],{"className":7989},[401],[389,7991],{"className":7992,"style":918},[405],[389,7994,875],{"className":7995},[410,411],[389,7997,879],{"className":7998},[410,411],[389,8000],{"className":8001,"style":560},[483],[389,8003,565],{"className":8004},[564],[389,8006],{"className":8007,"style":560},[483],[389,8009,8011,8014,8017,8020,8023,8026],{"className":8010},[401],[389,8012],{"className":8013,"style":896},[405],[389,8015,721],{"className":8016,"style":720},[410,411],[389,8018,725],{"className":8019},[410,411],[389,8021],{"className":8022,"style":903},[483],[389,8024,2060],{"className":8025},[907],[389,8027],{"className":8028,"style":903},[483],[389,8030,8032,8035,8039,8042,8045,8048],{"className":8031},[401],[389,8033],{"className":8034,"style":459},[405],[389,8036,8038],{"className":8037},[468],"⌊(",[389,8040,736],{"className":8041},[410,411],[389,8043],{"className":8044,"style":903},[483],[389,8046,908],{"className":8047},[907],[389,8049],{"className":8050,"style":903},[483],[389,8052,8054,8057,8060,8063,8066,8069],{"className":8053},[401],[389,8055],{"className":8056,"style":459},[405],[389,8058,721],{"className":8059,"style":720},[410,411],[389,8061,725],{"className":8062},[410,411],[389,8064,492],{"className":8065},[491],[389,8067,6883],{"className":8068},[410],[389,8070,1863],{"className":8071},[491]," we have\n",[389,8074,8076],{"className":8075},[392],[389,8077,8079,8101,8122],{"className":8078,"ariaHidden":397},[396],[389,8080,8082,8086,8089,8092,8095,8098],{"className":8081},[401],[389,8083],{"className":8084,"style":8085},[405],"height:0.8304em;vertical-align:-0.136em;",[389,8087,721],{"className":8088,"style":720},[410,411],[389,8090,725],{"className":8091},[410,411],[389,8093],{"className":8094,"style":560},[483],[389,8096,4233],{"className":8097},[564],[389,8099],{"className":8100,"style":560},[483],[389,8102,8104,8107,8110,8113,8116,8119],{"className":8103},[401],[389,8105],{"className":8106,"style":2109},[405],[389,8108,875],{"className":8109},[410,411],[389,8111,879],{"className":8112},[410,411],[389,8114],{"className":8115,"style":560},[483],[389,8117,2122],{"className":8118},[564],[389,8120],{"className":8121,"style":560},[483],[389,8123,8125,8128],{"className":8124},[401],[389,8126],{"className":8127,"style":918},[405],[389,8129,736],{"className":8130},[410,411]," whenever ",[389,8133,8135],{"className":8134},[392],[389,8136,8138,8159],{"className":8137,"ariaHidden":397},[396],[389,8139,8141,8144,8147,8150,8153,8156],{"className":8140},[401],[389,8142],{"className":8143,"style":2109},[405],[389,8145,721],{"className":8146,"style":720},[410,411],[389,8148,725],{"className":8149},[410,411],[389,8151],{"className":8152,"style":560},[483],[389,8154,2122],{"className":8155},[564],[389,8157],{"className":8158,"style":560},[483],[389,8160,8162,8165],{"className":8161},[401],[389,8163],{"className":8164,"style":918},[405],[389,8166,736],{"className":8167},[410,411],". If ",[389,8170,8172],{"className":8171},[392],[389,8173,8175],{"className":8174,"ariaHidden":397},[396],[389,8176,8178,8181,8184,8187,8190,8193],{"className":8177},[401],[389,8179],{"className":8180,"style":459},[405],[389,8182,381],{"className":8183},[410,411],[389,8185,469],{"className":8186},[468],[389,8188,875],{"className":8189},[410,411],[389,8191,879],{"className":8192},[410,411],[389,8194,492],{"className":8195},[491]," is ",[525,8198,397],{},", setting ",[389,8201,8203],{"className":8202},[392],[389,8204,8206,8224],{"className":8205,"ariaHidden":397},[396],[389,8207,8209,8212,8215,8218,8221],{"className":8208},[401],[389,8210],{"className":8211,"style":918},[405],[389,8213,736],{"className":8214},[410,411],[389,8216],{"className":8217,"style":560},[483],[389,8219,1669],{"className":8220},[564],[389,8222],{"className":8223,"style":560},[483],[389,8225,8227,8230,8233],{"className":8226},[401],[389,8228],{"className":8229,"style":918},[405],[389,8231,875],{"className":8232},[410,411],[389,8234,879],{"className":8235},[410,411],"\nkeeps ",[389,8238,8240],{"className":8239},[392],[389,8241,8243],{"className":8242,"ariaHidden":397},[396],[389,8244,8246,8249],{"className":8245},[401],[389,8247],{"className":8248,"style":918},[405],[389,8250,736],{"className":8251},[410,411]," feasible and strictly decreases ",[389,8254,8256],{"className":8255},[392],[389,8257,8259],{"className":8258,"ariaHidden":397},[396],[389,8260,8262,8265],{"className":8261},[401],[389,8263],{"className":8264,"style":918},[405],[389,8266,736],{"className":8267},[410,411],[389,8269,8271],{"className":8270},[392],[389,8272,8274],{"className":8273,"ariaHidden":397},[396],[389,8275,8277,8280,8283,8286,8289,8292],{"className":8276},[401],[389,8278],{"className":8279,"style":459},[405],[389,8281,381],{"className":8282},[410,411],[389,8284,469],{"className":8285},[468],[389,8287,875],{"className":8288},[410,411],[389,8290,879],{"className":8291},[410,411],[389,8293,492],{"className":8294},[491],[525,8296,527],{},", setting\n",[389,8299,8301],{"className":8300},[392],[389,8302,8304,8325,8346],{"className":8303,"ariaHidden":397},[396],[389,8305,8307,8310,8313,8316,8319,8322],{"className":8306},[401],[389,8308],{"className":8309,"style":918},[405],[389,8311,721],{"className":8312,"style":720},[410,411],[389,8314,725],{"className":8315},[410,411],[389,8317],{"className":8318,"style":560},[483],[389,8320,1669],{"className":8321},[564],[389,8323],{"className":8324,"style":560},[483],[389,8326,8328,8331,8334,8337,8340,8343],{"className":8327},[401],[389,8329],{"className":8330,"style":896},[405],[389,8332,875],{"className":8333},[410,411],[389,8335,879],{"className":8336},[410,411],[389,8338],{"className":8339,"style":903},[483],[389,8341,2060],{"className":8342},[907],[389,8344],{"className":8345,"style":903},[483],[389,8347,8349,8352],{"className":8348},[401],[389,8350],{"className":8351,"style":1714},[405],[389,8353,1718],{"className":8354},[410]," keeps everything below ",[389,8357,8359],{"className":8358},[392],[389,8360,8362],{"className":8361,"ariaHidden":397},[396],[389,8363,8365,8368,8371],{"className":8364},[401],[389,8366],{"className":8367,"style":918},[405],[389,8369,721],{"className":8370,"style":720},[410,411],[389,8372,725],{"className":8373},[410,411]," infeasible and strictly increases\n",[389,8376,8378],{"className":8377},[392],[389,8379,8381],{"className":8380,"ariaHidden":397},[396],[389,8382,8384,8387,8390],{"className":8383},[401],[389,8385],{"className":8386,"style":918},[405],[389,8388,721],{"className":8389,"style":720},[410,411],[389,8391,725],{"className":8392},[410,411],". Either way ",[389,8395,8397],{"className":8396},[392],[389,8398,8400,8418],{"className":8399,"ariaHidden":397},[396],[389,8401,8403,8406,8409,8412,8415],{"className":8402},[401],[389,8404],{"className":8405,"style":896},[405],[389,8407,736],{"className":8408},[410,411],[389,8410],{"className":8411,"style":903},[483],[389,8413,908],{"className":8414},[907],[389,8416],{"className":8417,"style":903},[483],[389,8419,8421,8424,8427],{"className":8420},[401],[389,8422],{"className":8423,"style":918},[405],[389,8425,721],{"className":8426,"style":720},[410,411],[389,8428,725],{"className":8429},[410,411]," drops by at least one and at most halves, so after\n",[389,8432,8434],{"className":8433},[392],[389,8435,8437,8449,8519],{"className":8436,"ariaHidden":397},[396],[389,8438,8440,8443,8446],{"className":8439},[401],[389,8441],{"className":8442,"style":1735},[405],[389,8444,4233],{"className":8445},[564],[389,8447],{"className":8448,"style":560},[483],[389,8450,8452,8455,8458,8504,8507,8510,8513,8516],{"className":8451},[401],[389,8453],{"className":8454,"style":459},[405],[389,8456,3913],{"className":8457},[468],[389,8459,8461,8467],{"className":8460},[473],[389,8462,8464],{"className":8463},[473],[389,8465,479],{"className":8466,"style":478},[410,477],[389,8468,8470],{"className":8469},[2911],[389,8471,8473,8495],{"className":8472},[2568,2569],[389,8474,8476,8492],{"className":8475},[2573],[389,8477,8480],{"className":8478,"style":8479},[2577],"height:0.207em;",[389,8481,8483,8486],{"style":8482},"top:-2.4559em;margin-right:0.05em;",[389,8484],{"className":8485,"style":2927},[2584],[389,8487,8489],{"className":8488},[2589,2590,2591,2592],[389,8490,6181],{"className":8491},[410,2592],[389,8493,2713],{"className":8494},[2712],[389,8496,8498],{"className":8497},[2573],[389,8499,8502],{"className":8500,"style":8501},[2577],"height:0.2441em;",[389,8503],{},[389,8505,469],{"className":8506},[468],[389,8508,736],{"className":8509},[410,411],[389,8511],{"className":8512,"style":903},[483],[389,8514,908],{"className":8515},[907],[389,8517],{"className":8518,"style":903},[483],[389,8520,8522,8525,8528,8531],{"className":8521},[401],[389,8523],{"className":8524,"style":459},[405],[389,8526,721],{"className":8527,"style":720},[410,411],[389,8529,725],{"className":8530},[410,411],[389,8532,8534],{"className":8533},[491],")⌉"," iterations ",[389,8537,8539],{"className":8538},[392],[389,8540,8542,8563,8581],{"className":8541,"ariaHidden":397},[396],[389,8543,8545,8548,8551,8554,8557,8560],{"className":8544},[401],[389,8546],{"className":8547,"style":918},[405],[389,8549,721],{"className":8550,"style":720},[410,411],[389,8552,725],{"className":8553},[410,411],[389,8555],{"className":8556,"style":560},[483],[389,8558,565],{"className":8559},[564],[389,8561],{"className":8562,"style":560},[483],[389,8564,8566,8569,8572,8575,8578],{"className":8565},[401],[389,8567],{"className":8568,"style":918},[405],[389,8570,736],{"className":8571},[410,411],[389,8573],{"className":8574,"style":560},[483],[389,8576,565],{"className":8577},[564],[389,8579],{"className":8580,"style":560},[483],[389,8582,8584,8587],{"className":8583},[401],[389,8585],{"className":8586,"style":2901},[405],[389,8588,8590,8593],{"className":8589},[410],[389,8591,429],{"className":8592},[410,411],[389,8594,8596],{"className":8595},[2911],[389,8597,8599],{"className":8598},[2568],[389,8600,8602],{"className":8601},[2573],[389,8603,8605],{"className":8604,"style":2901},[2577],[389,8606,8607,8610],{"style":2923},[389,8608],{"className":8609,"style":2927},[2584],[389,8611,8613],{"className":8612},[2589,2590,2591,2592],[389,8614,2934],{"className":8615},[907,2592],[389,8617,8619],{"className":8618},[392],[389,8620,8622],{"className":8621,"ariaHidden":397},[396],[389,8623,8625,8628],{"className":8624},[401],[389,8626],{"className":8627,"style":5932},[405],[389,8629,8631],{"className":8630},[1018,5936],[389,8632,5941],{"className":8633},[410,5940],[758,8635,8637,8643,8958],{"type":8636},"remark",[381,8638,8639,8642],{},[495,8640,8641],{},"Remark (Where off-by-one bugs hide)."," There are two viable templates and mixing them\nis the trap:",[8644,8645,8646,8787],"ol",{},[1000,8647,8648,1058,8654,8669,8670,8706,8707,8764,8765,8783,8784,8786],{},[495,8649,8650,8651],{},"Half-open ",[525,8652,8653],{},"while (lo \u003C hi)",[389,8655,8657],{"className":8656},[392],[389,8658,8660],{"className":8659,"ariaHidden":397},[396],[389,8661,8663,8666],{"className":8662},[401],[389,8664],{"className":8665,"style":918},[405],[389,8667,736],{"className":8668},[410,411]," a valid answer, ",[389,8671,8673],{"className":8672},[392],[389,8674,8676,8694],{"className":8675,"ariaHidden":397},[396],[389,8677,8679,8682,8685,8688,8691],{"className":8678},[401],[389,8680],{"className":8681,"style":918},[405],[389,8683,736],{"className":8684},[410,411],[389,8686],{"className":8687,"style":560},[483],[389,8689,1669],{"className":8690},[564],[389,8692],{"className":8693,"style":560},[483],[389,8695,8697,8700,8703],{"className":8696},[401],[389,8698],{"className":8699,"style":918},[405],[389,8701,875],{"className":8702},[410,411],[389,8704,879],{"className":8705},[410,411]," \u002F\n",[389,8708,8710],{"className":8709},[392],[389,8711,8713,8734,8755],{"className":8712,"ariaHidden":397},[396],[389,8714,8716,8719,8722,8725,8728,8731],{"className":8715},[401],[389,8717],{"className":8718,"style":918},[405],[389,8720,721],{"className":8721,"style":720},[410,411],[389,8723,725],{"className":8724},[410,411],[389,8726],{"className":8727,"style":560},[483],[389,8729,1669],{"className":8730},[564],[389,8732],{"className":8733,"style":560},[483],[389,8735,8737,8740,8743,8746,8749,8752],{"className":8736},[401],[389,8738],{"className":8739,"style":896},[405],[389,8741,875],{"className":8742},[410,411],[389,8744,879],{"className":8745},[410,411],[389,8747],{"className":8748,"style":903},[483],[389,8750,2060],{"className":8751},[907],[389,8753],{"className":8754,"style":903},[483],[389,8756,8758,8761],{"className":8757},[401],[389,8759],{"className":8760,"style":1714},[405],[389,8762,1718],{"className":8763},[410],", return ",[389,8766,8768],{"className":8767},[392],[389,8769,8771],{"className":8770,"ariaHidden":397},[396],[389,8772,8774,8777,8780],{"className":8773},[401],[389,8775],{"className":8776,"style":918},[405],[389,8778,721],{"className":8779,"style":720},[410,411],[389,8781,725],{"className":8782},[410,411],". (Used above. The mid ",[626,8785,2095],{}," floor.)",[1000,8788,8789,1058,8795,5006,8846,8706,8900,8957],{},[495,8790,8791,8792],{},"Closed ",[525,8793,8794],{},"while (lo \u003C= hi)",[389,8796,8798],{"className":8797},[392],[389,8799,8801,8819,8837],{"className":8800,"ariaHidden":397},[396],[389,8802,8804,8807,8810,8813,8816],{"className":8803},[401],[389,8805],{"className":8806,"style":918},[405],[389,8808,736],{"className":8809},[410,411],[389,8811],{"className":8812,"style":560},[483],[389,8814,565],{"className":8815},[564],[389,8817],{"className":8818,"style":560},[483],[389,8820,8822,8825,8828,8831,8834],{"className":8821},[401],[389,8823],{"className":8824,"style":1695},[405],[389,8826,412],{"className":8827},[410,411],[389,8829],{"className":8830,"style":903},[483],[389,8832,908],{"className":8833},[907],[389,8835],{"className":8836,"style":903},[483],[389,8838,8840,8843],{"className":8839},[401],[389,8841],{"className":8842,"style":1714},[405],[389,8844,1718],{"className":8845},[410],[389,8847,8849],{"className":8848},[392],[389,8850,8852,8870,8891],{"className":8851,"ariaHidden":397},[396],[389,8853,8855,8858,8861,8864,8867],{"className":8854},[401],[389,8856],{"className":8857,"style":918},[405],[389,8859,736],{"className":8860},[410,411],[389,8862],{"className":8863,"style":560},[483],[389,8865,1669],{"className":8866},[564],[389,8868],{"className":8869,"style":560},[483],[389,8871,8873,8876,8879,8882,8885,8888],{"className":8872},[401],[389,8874],{"className":8875,"style":896},[405],[389,8877,875],{"className":8878},[410,411],[389,8880,879],{"className":8881},[410,411],[389,8883],{"className":8884,"style":903},[483],[389,8886,908],{"className":8887},[907],[389,8889],{"className":8890,"style":903},[483],[389,8892,8894,8897],{"className":8893},[401],[389,8895],{"className":8896,"style":1714},[405],[389,8898,1718],{"className":8899},[410],[389,8901,8903],{"className":8902},[392],[389,8904,8906,8927,8948],{"className":8905,"ariaHidden":397},[396],[389,8907,8909,8912,8915,8918,8921,8924],{"className":8908},[401],[389,8910],{"className":8911,"style":918},[405],[389,8913,721],{"className":8914,"style":720},[410,411],[389,8916,725],{"className":8917},[410,411],[389,8919],{"className":8920,"style":560},[483],[389,8922,1669],{"className":8923},[564],[389,8925],{"className":8926,"style":560},[483],[389,8928,8930,8933,8936,8939,8942,8945],{"className":8929},[401],[389,8931],{"className":8932,"style":896},[405],[389,8934,875],{"className":8935},[410,411],[389,8937,879],{"className":8938},[410,411],[389,8940],{"className":8941,"style":903},[483],[389,8943,2060],{"className":8944},[907],[389,8946],{"className":8947,"style":903},[483],[389,8949,8951,8954],{"className":8950},[401],[389,8952],{"className":8953,"style":1714},[405],[389,8955,1718],{"className":8956},[410],", tracking the best answer seen.",[381,8959,8960,8961,1058,8963,8999,9000,9039,9040,1058,9042,9096,9097,9115,9116,633,9134],{},"The fatal combinations are: ",[525,8962,1475],{},[389,8964,8966],{"className":8965},[392],[389,8967,8969,8987],{"className":8968,"ariaHidden":397},[396],[389,8970,8972,8975,8978,8981,8984],{"className":8971},[401],[389,8973],{"className":8974,"style":918},[405],[389,8976,736],{"className":8977},[410,411],[389,8979],{"className":8980,"style":560},[483],[389,8982,1669],{"className":8983},[564],[389,8985],{"className":8986,"style":560},[483],[389,8988,8990,8993,8996],{"className":8989},[401],[389,8991],{"className":8992,"style":918},[405],[389,8994,875],{"className":8995},[410,411],[389,8997,879],{"className":8998},[410,411]," (infinite loop,\nsince the interval never shrinks when ",[389,9001,9003],{"className":9002},[392],[389,9004,9006,9027],{"className":9005,"ariaHidden":397},[396],[389,9007,9009,9012,9015,9018,9021,9024],{"className":9008},[401],[389,9010],{"className":9011,"style":918},[405],[389,9013,721],{"className":9014,"style":720},[410,411],[389,9016,725],{"className":9017},[410,411],[389,9019],{"className":9020,"style":560},[483],[389,9022,565],{"className":9023},[564],[389,9025],{"className":9026,"style":560},[483],[389,9028,9030,9033,9036],{"className":9029},[401],[389,9031],{"className":9032,"style":918},[405],[389,9034,875],{"className":9035},[410,411],[389,9037,879],{"className":9038},[410,411],"), and ",[525,9041,1471],{},[389,9043,9045],{"className":9044},[392],[389,9046,9048,9066,9087],{"className":9047,"ariaHidden":397},[396],[389,9049,9051,9054,9057,9060,9063],{"className":9050},[401],[389,9052],{"className":9053,"style":918},[405],[389,9055,736],{"className":9056},[410,411],[389,9058],{"className":9059,"style":560},[483],[389,9061,1669],{"className":9062},[564],[389,9064],{"className":9065,"style":560},[483],[389,9067,9069,9072,9075,9078,9081,9084],{"className":9068},[401],[389,9070],{"className":9071,"style":896},[405],[389,9073,875],{"className":9074},[410,411],[389,9076,879],{"className":9077},[410,411],[389,9079],{"className":9080,"style":903},[483],[389,9082,908],{"className":9083},[907],[389,9085],{"className":9086,"style":903},[483],[389,9088,9090,9093],{"className":9089},[401],[389,9091],{"className":9092,"style":1714},[405],[389,9094,1718],{"className":9095},[410],"\n(skips a candidate, returning one short). Pick one template and never improvise\nthe updates. A defining symptom of the infinite-loop bug is that it only fires\non the two-element interval, where ",[389,9098,9100],{"className":9099},[392],[389,9101,9103],{"className":9102,"ariaHidden":397},[396],[389,9104,9106,9109,9112],{"className":9105},[401],[389,9107],{"className":9108,"style":918},[405],[389,9110,875],{"className":9111},[410,411],[389,9113,879],{"className":9114},[410,411]," floors to ",[389,9117,9119],{"className":9118},[392],[389,9120,9122],{"className":9121,"ariaHidden":397},[396],[389,9123,9125,9128,9131],{"className":9124},[401],[389,9126],{"className":9127,"style":918},[405],[389,9129,721],{"className":9130,"style":720},[410,411],[389,9132,725],{"className":9133},[410,411],[7241,9135,9136],{},[385,9137,6181],{"href":9138,"ariaDescribedBy":9139,"dataFootnoteRef":376,"id":9140},"#user-content-fn-clrs-binsearch",[7247],"user-content-fnref-clrs-binsearch",[635,9142,9144],{"id":9143},"binary-search-on-a-real-interval","Binary search on a real interval",[381,9146,9147,9148,9151,9152,633],{},"When the answer is a real number rather than an integer (minimize a continuous\nradius, a rate, a time), the boundary need not be representable exactly, so we run\n",[495,9149,9150],{},"parametric search",": the same loop on a real interval, stopping after a fixed\nnumber of iterations or once ",[389,9153,9155],{"className":9154},[392],[389,9156,9158,9176,9197],{"className":9157,"ariaHidden":397},[396],[389,9159,9161,9164,9167,9170,9173],{"className":9160},[401],[389,9162],{"className":9163,"style":896},[405],[389,9165,736],{"className":9166},[410,411],[389,9168],{"className":9169,"style":903},[483],[389,9171,908],{"className":9172},[907],[389,9174],{"className":9175,"style":903},[483],[389,9177,9179,9182,9185,9188,9191,9194],{"className":9178},[401],[389,9180],{"className":9181,"style":2109},[405],[389,9183,721],{"className":9184,"style":720},[410,411],[389,9186,725],{"className":9187},[410,411],[389,9189],{"className":9190,"style":560},[483],[389,9192,2122],{"className":9193},[564],[389,9195],{"className":9196,"style":560},[483],[389,9198,9200,9203],{"className":9199},[401],[389,9201],{"className":9202,"style":406},[405],[389,9204,9206],{"className":9205},[410,411],"ε",[1529,9208,9210],{"className":1531,"code":9209,"language":1533,"meta":376,"style":376},"caption: real-valued binary search — first $x$ with $p(x)$ within $\\varepsilon$\n$lo \\gets \\ell;\\ hi \\gets r$\nrepeat $K$ times: \u002F\u002F $K=100$ $\\Rightarrow$ error $\\le(r-\\ell)2^{-100}$\n  $mid \\gets (lo + hi)\u002F2$\n  if $p(mid)$ then $hi \\gets mid$ else $lo \\gets mid$\nreturn $hi$\n",[525,9211,9212,9217,9222,9227,9232,9237],{"__ignoreMap":376},[389,9213,9214],{"class":1538,"line":6},[389,9215,9216],{},"caption: real-valued binary search — first $x$ with $p(x)$ within $\\varepsilon$\n",[389,9218,9219],{"class":1538,"line":18},[389,9220,9221],{},"$lo \\gets \\ell;\\ hi \\gets r$\n",[389,9223,9224],{"class":1538,"line":24},[389,9225,9226],{},"repeat $K$ times: \u002F\u002F $K=100$ $\\Rightarrow$ error $\\le(r-\\ell)2^{-100}$\n",[389,9228,9229],{"class":1538,"line":73},[389,9230,9231],{},"  $mid \\gets (lo + hi)\u002F2$\n",[389,9233,9234],{"class":1538,"line":102},[389,9235,9236],{},"  if $p(mid)$ then $hi \\gets mid$ else $lo \\gets mid$\n",[389,9238,9239],{"class":1538,"line":108},[389,9240,9241],{},"return $hi$\n",[381,9243,9244,9245,9261,9262,9343,9344,2441,9347,9362,9363,9383,9384,9399,9400,9403,9404,9419,9420,9450,9451,9466,9467],{},"Each iteration halves the interval, so ",[389,9246,9248],{"className":9247},[392],[389,9249,9251],{"className":9250,"ariaHidden":397},[396],[389,9252,9254,9257],{"className":9253},[401],[389,9255],{"className":9256,"style":799},[405],[389,9258,9260],{"className":9259,"style":5356},[410,411],"K"," iterations reach absolute error\n",[389,9263,9265],{"className":9264},[392],[389,9266,9268,9290],{"className":9267,"ariaHidden":397},[396],[389,9269,9271,9274,9277,9281,9284,9287],{"className":9270},[401],[389,9272],{"className":9273,"style":459},[405],[389,9275,469],{"className":9276},[468],[389,9278,9280],{"className":9279,"style":463},[410,411],"r",[389,9282],{"className":9283,"style":903},[483],[389,9285,908],{"className":9286},[907],[389,9288],{"className":9289,"style":903},[483],[389,9291,9293,9297,9301,9304,9307],{"className":9292},[401],[389,9294],{"className":9295,"style":9296},[405],"height:1.0913em;vertical-align:-0.25em;",[389,9298,9300],{"className":9299},[410],"ℓ",[389,9302,492],{"className":9303},[491],[389,9305],{"className":9306,"style":484},[483],[389,9308,9310,9313],{"className":9309},[410],[389,9311,6181],{"className":9312},[410],[389,9314,9316],{"className":9315},[2911],[389,9317,9319],{"className":9318},[2568],[389,9320,9322],{"className":9321},[2573],[389,9323,9326],{"className":9324,"style":9325},[2577],"height:0.8413em;",[389,9327,9328,9331],{"style":2923},[389,9329],{"className":9330,"style":2927},[2584],[389,9332,9334],{"className":9333},[2589,2590,2591,2592],[389,9335,9337,9340],{"className":9336},[410,2592],[389,9338,908],{"className":9339},[410,2592],[389,9341,9260],{"className":9342,"style":5356},[410,411,2592],"; a ",[626,9345,9346],{},"fixed",[389,9348,9350],{"className":9349},[392],[389,9351,9353],{"className":9352,"ariaHidden":397},[396],[389,9354,9356,9359],{"className":9355},[401],[389,9357],{"className":9358,"style":799},[405],[389,9360,9260],{"className":9361,"style":5356},[410,411]," buys machine precision. There is no\n",[389,9364,9366],{"className":9365},[392],[389,9367,9369],{"className":9368,"ariaHidden":397},[396],[389,9370,9372,9376,9380],{"className":9371},[401],[389,9373],{"className":9374,"style":9375},[405],"height:0.7278em;vertical-align:-0.0833em;",[389,9377,9379],{"className":9378},[410],"±",[389,9381,1718],{"className":9382},[410]," bookkeeping because we never need the exact integer boundary, only an\n",[389,9385,9387],{"className":9386},[392],[389,9388,9390],{"className":9389,"ariaHidden":397},[396],[389,9391,9393,9396],{"className":9392},[401],[389,9394],{"className":9395,"style":406},[405],[389,9397,9206],{"className":9398},[410,411],"-close one. As always, ",[495,9401,9402],{},"the predicate's monotonicity is the whole\ngame",": if ",[389,9405,9407],{"className":9406},[392],[389,9408,9410],{"className":9409,"ariaHidden":397},[396],[389,9411,9413,9416],{"className":9412},[401],[389,9414],{"className":9415,"style":1453},[405],[389,9417,381],{"className":9418},[410,411]," is monotone over ",[389,9421,9423],{"className":9422},[392],[389,9424,9426],{"className":9425,"ariaHidden":397},[396],[389,9427,9429,9432,9435,9438,9441,9444,9447],{"className":9428},[401],[389,9430],{"className":9431,"style":459},[405],[389,9433,591],{"className":9434},[468],[389,9436,9300],{"className":9437},[410],[389,9439,729],{"className":9440},[674],[389,9442],{"className":9443,"style":484},[483],[389,9445,9280],{"className":9446,"style":463},[410,411],[389,9448,598],{"className":9449},[491]," the loop converges to its boundary;\nif ",[389,9452,9454],{"className":9453},[392],[389,9455,9457],{"className":9456,"ariaHidden":397},[396],[389,9458,9460,9463],{"className":9459},[401],[389,9461],{"className":9462,"style":1453},[405],[389,9464,381],{"className":9465},[410,411]," is not monotone, binary search is simply the wrong tool, since there may be\nseveral transitions and no guarantee which one we land on.",[7241,9468,9469],{},[385,9470,4971],{"href":9471,"ariaDescribedBy":9472,"dataFootnoteRef":376,"id":9473},"#user-content-fn-skiena-binsearch",[7247],"user-content-fnref-skiena-binsearch",[635,9475,9477],{"id":9476},"takeaways","Takeaways",[997,9479,9480,9599,9769,9839,9985,10031],{},[1000,9481,9482,9483,9486,9487,9523,9524,633],{},"Binary search locates the ",[495,9484,9485],{},"boundary of a monotone predicate"," in\n",[389,9488,9490],{"className":9489},[392],[389,9491,9493],{"className":9492,"ariaHidden":397},[396],[389,9494,9496,9499,9502,9505,9511,9514,9520],{"className":9495},[401],[389,9497],{"className":9498,"style":459},[405],[389,9500,464],{"className":9501,"style":463},[410,411],[389,9503,469],{"className":9504},[468],[389,9506,9508],{"className":9507},[473],[389,9509,479],{"className":9510,"style":478},[410,477],[389,9512,469],{"className":9513},[468],[389,9515,9517],{"className":9516},[410,1023],[389,9518,3286],{"className":9519},[410],[389,9521,3745],{"className":9522},[491]," probes; the sorted array is just the special case\n",[389,9525,9527],{"className":9526},[392],[389,9528,9530,9557,9587],{"className":9529,"ariaHidden":397},[396],[389,9531,9533,9536,9539,9542,9545,9548,9551,9554],{"className":9532},[401],[389,9534],{"className":9535,"style":459},[405],[389,9537,381],{"className":9538},[410,411],[389,9540,469],{"className":9541},[468],[389,9543,553],{"className":9544},[410,411],[389,9546,492],{"className":9547},[491],[389,9549],{"className":9550,"style":560},[483],[389,9552,565],{"className":9553},[564],[389,9555],{"className":9556,"style":560},[483],[389,9558,9560,9563,9566,9569,9572,9575,9578,9581,9584],{"className":9559},[401],[389,9561],{"className":9562,"style":459},[405],[389,9564,469],{"className":9565},[468],[389,9567,587],{"className":9568},[410,411],[389,9570,591],{"className":9571},[468],[389,9573,553],{"className":9574},[410,411],[389,9576,598],{"className":9577},[491],[389,9579],{"className":9580,"style":560},[483],[389,9582,605],{"className":9583},[564],[389,9585],{"className":9586,"style":560},[483],[389,9588,9590,9593,9596],{"className":9589},[401],[389,9591],{"className":9592,"style":459},[405],[389,9594,429],{"className":9595},[410,411],[389,9597,492],{"className":9598},[491],[1000,9600,9601,9602,9607,9608,9611,9612,9648,9649,9706,9707,9725,9726,2272,9747,9768],{},"Memorise one template. The ",[495,9603,9604,9605],{},"half-open ",[525,9606,8653],{}," form with a ",[626,9609,9610],{},"floored","\nmid, ",[389,9613,9615],{"className":9614},[392],[389,9616,9618,9636],{"className":9617,"ariaHidden":397},[396],[389,9619,9621,9624,9627,9630,9633],{"className":9620},[401],[389,9622],{"className":9623,"style":918},[405],[389,9625,736],{"className":9626},[410,411],[389,9628],{"className":9629,"style":560},[483],[389,9631,1669],{"className":9632},[564],[389,9634],{"className":9635,"style":560},[483],[389,9637,9639,9642,9645],{"className":9638},[401],[389,9640],{"className":9641,"style":918},[405],[389,9643,875],{"className":9644},[410,411],[389,9646,879],{"className":9647},[410,411]," on feasible and ",[389,9650,9652],{"className":9651},[392],[389,9653,9655,9676,9697],{"className":9654,"ariaHidden":397},[396],[389,9656,9658,9661,9664,9667,9670,9673],{"className":9657},[401],[389,9659],{"className":9660,"style":918},[405],[389,9662,721],{"className":9663,"style":720},[410,411],[389,9665,725],{"className":9666},[410,411],[389,9668],{"className":9669,"style":560},[483],[389,9671,1669],{"className":9672},[564],[389,9674],{"className":9675,"style":560},[483],[389,9677,9679,9682,9685,9688,9691,9694],{"className":9678},[401],[389,9680],{"className":9681,"style":896},[405],[389,9683,875],{"className":9684},[410,411],[389,9686,879],{"className":9687},[410,411],[389,9689],{"className":9690,"style":903},[483],[389,9692,2060],{"className":9693},[907],[389,9695],{"className":9696,"style":903},[483],[389,9698,9700,9703],{"className":9699},[401],[389,9701],{"className":9702,"style":1714},[405],[389,9704,1718],{"className":9705},[410]," on infeasible, returning\n",[389,9708,9710],{"className":9709},[392],[389,9711,9713],{"className":9712,"ariaHidden":397},[396],[389,9714,9716,9719,9722],{"className":9715},[401],[389,9717],{"className":9718,"style":918},[405],[389,9720,721],{"className":9721,"style":720},[410,411],[389,9723,725],{"className":9724},[410,411],", computes ",[389,9727,9729],{"className":9728},[392],[389,9730,9732],{"className":9731,"ariaHidden":397},[396],[389,9733,9735,9738],{"className":9734},[401],[389,9736],{"className":9737,"style":1289},[405],[389,9739,9741],{"className":9740},[1018,1019],[389,9742,9744],{"className":9743},[410,1023],[389,9745,1027],{"className":9746},[410],[389,9748,9750],{"className":9749},[392],[389,9751,9753],{"className":9752,"ariaHidden":397},[396],[389,9754,9756,9759],{"className":9755},[401],[389,9757],{"className":9758,"style":1289},[405],[389,9760,9762],{"className":9761},[1018,1019],[389,9763,9765],{"className":9764},[410,1023],[389,9766,1124],{"className":9767},[410]," without\noff-by-one errors.",[1000,9770,9771,9774,9775,9777,9778,633],{},[495,9772,9773],{},"Binary search on the answer",": when feasibility is ",[495,9776,2432],{}," in a numeric\nparameter, binary search the parameter and call a feasibility check at each\nstep, for total cost ",[389,9779,9781],{"className":9780},[392],[389,9782,9784,9823],{"className":9783,"ariaHidden":397},[396],[389,9785,9787,9790,9793,9796,9802,9805,9811,9814,9817,9820],{"className":9786},[401],[389,9788],{"className":9789,"style":459},[405],[389,9791,3264],{"className":9792},[410],[389,9794,469],{"className":9795},[468],[389,9797,9799],{"className":9798},[473],[389,9800,479],{"className":9801,"style":478},[410,477],[389,9803,469],{"className":9804},[468],[389,9806,9808],{"className":9807},[410,1023],[389,9809,3286],{"className":9810},[410],[389,9812,492],{"className":9813},[491],[389,9815],{"className":9816,"style":903},[483],[389,9818,1859],{"className":9819},[907],[389,9821],{"className":9822,"style":903},[483],[389,9824,9826,9829,9836],{"className":9825},[401],[389,9827],{"className":9828,"style":459},[405],[389,9830,9832],{"className":9831},[410,1023],[389,9833,9835],{"className":9834},[410],"check",[389,9837,492],{"className":9838},[491],[1000,9840,9841,9842,2441,9845,6714,9878,2441,9881,9896,9897,9899,9900,9924,9925,9984],{},"Recipe for each problem: name the ",[495,9843,9844],{},"answer range",[389,9846,9848],{"className":9847},[392],[389,9849,9851],{"className":9850,"ariaHidden":397},[396],[389,9852,9854,9857,9860,9863,9866,9869,9872,9875],{"className":9853},[401],[389,9855],{"className":9856,"style":459},[405],[389,9858,591],{"className":9859},[468],[389,9861,721],{"className":9862,"style":720},[410,411],[389,9864,725],{"className":9865},[410,411],[389,9867,729],{"className":9868},[674],[389,9870],{"className":9871,"style":484},[483],[389,9873,736],{"className":9874},[410,411],[389,9876,598],{"className":9877},[491],[495,9879,9880],{},"monotone\npredicate",[389,9882,9884],{"className":9883},[392],[389,9885,9887],{"className":9886,"ariaHidden":397},[396],[389,9888,9890,9893],{"className":9889},[401],[389,9891],{"className":9892,"style":1453},[405],[389,9894,381],{"className":9895},[410,411],", and an efficient ",[495,9898,9835],{},". Koko (speed; sum of ceilings),\nship\u002Fsplit (max-group cap; greedy partition in ",[389,9901,9903],{"className":9902},[392],[389,9904,9906],{"className":9905,"ariaHidden":397},[396],[389,9907,9909,9912,9915,9918,9921],{"className":9908},[401],[389,9910],{"className":9911,"style":459},[405],[389,9913,464],{"className":9914,"style":463},[410,411],[389,9916,469],{"className":9917},[468],[389,9919,412],{"className":9920},[410,411],[389,9922,492],{"className":9923},[491],"), integer square root\n(",[389,9926,9928],{"className":9927},[392],[389,9929,9931,9975],{"className":9930,"ariaHidden":397},[396],[389,9932,9934,9937,9966,9969,9972],{"className":9933},[401],[389,9935],{"className":9936,"style":6745},[405],[389,9938,9940,9943],{"className":9939},[410],[389,9941,429],{"className":9942},[410,411],[389,9944,9946],{"className":9945},[2911],[389,9947,9949],{"className":9948},[2568],[389,9950,9952],{"className":9951},[2573],[389,9953,9955],{"className":9954,"style":6764},[2577],[389,9956,9957,9960],{"style":2923},[389,9958],{"className":9959,"style":2927},[2584],[389,9961,9963],{"className":9962},[2589,2590,2591,2592],[389,9964,6181],{"className":9965},[410,2592],[389,9967],{"className":9968,"style":560},[483],[389,9970,4233],{"className":9971},[564],[389,9973],{"className":9974,"style":560},[483],[389,9976,9978,9981],{"className":9977},[401],[389,9979],{"className":9980,"style":799},[405],[389,9982,6621],{"className":9983,"style":6620},[410,411],") all fit this mold.",[1000,9986,9987,9988,9991,9992,10010,10011,10026,10027,10030],{},"The ",[495,9989,9990],{},"correctness invariant"," keeps ",[389,9993,9995],{"className":9994},[392],[389,9996,9998],{"className":9997,"ariaHidden":397},[396],[389,9999,10001,10004,10007],{"className":10000},[401],[389,10002],{"className":10003,"style":918},[405],[389,10005,721],{"className":10006,"style":720},[410,411],[389,10008,725],{"className":10009},[410,411]," infeasible and ",[389,10012,10014],{"className":10013},[392],[389,10015,10017],{"className":10016,"ariaHidden":397},[396],[389,10018,10020,10023],{"className":10019},[401],[389,10021],{"className":10022,"style":918},[405],[389,10024,736],{"className":10025},[410,411]," feasible; floored\nmid plus asymmetric updates guarantee ",[495,10028,10029],{},"termination",". Mixing the closed and\nhalf-open templates is where the classic bugs live.",[1000,10032,10033,10034,10036,10037,10052,10053,10068],{},"For a real-valued answer, run ",[495,10035,9150],{},": a fixed iteration count or\n",[389,10038,10040],{"className":10039},[392],[389,10041,10043],{"className":10042,"ariaHidden":397},[396],[389,10044,10046,10049],{"className":10045},[401],[389,10047],{"className":10048,"style":406},[405],[389,10050,9206],{"className":10051},[410,411]," tolerance. Monotonicity of ",[389,10054,10056],{"className":10055},[392],[389,10057,10059],{"className":10058,"ariaHidden":397},[396],[389,10060,10062,10065],{"className":10061},[401],[389,10063],{"className":10064,"style":1453},[405],[389,10066,381],{"className":10067},[410,411]," is the only precondition that\nmatters.",[10070,10071,10074,10079],"section",{"className":10072,"dataFootnotes":376},[10073],"footnotes",[635,10075,10078],{"className":10076,"id":7247},[10077],"sr-only","Footnotes",[8644,10080,10081,10095,10141],{},[1000,10082,10084,10087,10088],{"id":10083},"user-content-fn-erickson-search",[495,10085,10086],{},"Erickson",", Ch. — Recursion \u002F Searching: binary search as boundary-finding, including pure-numeric instances such as integer roots. ",[385,10089,10094],{"href":10090,"ariaLabel":10091,"className":10092,"dataFootnoteBackref":376},"#user-content-fnref-erickson-search","Back to reference 1",[10093],"data-footnote-backref","↩",[1000,10096,10098,10101,10102,10135,10136],{"id":10097},"user-content-fn-clrs-binsearch",[495,10099,10100],{},"CLRS",", Ch. 2 — Binary search (Exercise 2.3-5): the ",[389,10103,10105],{"className":10104},[392],[389,10106,10108],{"className":10107,"ariaHidden":397},[396],[389,10109,10111,10114,10117,10120,10126,10129,10132],{"className":10110},[401],[389,10112],{"className":10113,"style":459},[405],[389,10115,464],{"className":10116,"style":463},[410,411],[389,10118,469],{"className":10119},[468],[389,10121,10123],{"className":10122},[473],[389,10124,479],{"className":10125,"style":478},[410,477],[389,10127],{"className":10128,"style":484},[483],[389,10130,412],{"className":10131},[410,411],[389,10133,492],{"className":10134},[491]," sorted-array search and its boundary (insertion-point) variants. ",[385,10137,10094],{"href":10138,"ariaLabel":10139,"className":10140,"dataFootnoteBackref":376},"#user-content-fnref-clrs-binsearch","Back to reference 2",[10093],[1000,10142,10144,10147,10148,10150,10151],{"id":10143},"user-content-fn-skiena-binsearch",[495,10145,10146],{},"Skiena",", §4.x — Binary Search and Related: searching a monotone predicate over a numeric range (",[964,10149,632],{},") and parametric search on a real interval. ",[385,10152,10094],{"href":10153,"ariaLabel":10154,"className":10155,"dataFootnoteBackref":376},"#user-content-fnref-skiena-binsearch","Back to reference 3",[10093],[10157,10158,10159],"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":10161},[10162,10165,10166,10171,10172,10173,10174],{"id":637,"depth":18,"text":638,"children":10163},[10164],{"id":991,"depth":24,"text":992},{"id":2300,"depth":18,"text":2301},{"id":3749,"depth":18,"text":3750,"children":10167},[10168,10169,10170],{"id":3814,"depth":24,"text":3815},{"id":5265,"depth":24,"text":5266},{"id":6599,"depth":24,"text":6600},{"id":7745,"depth":18,"text":7746},{"id":9143,"depth":18,"text":9144},{"id":9476,"depth":18,"text":9477},{"id":7247,"depth":18,"text":10078},"We have seen binary search as the canonical divide-and-conquer search: a sorted\narray of n keys, a target x, and a halving loop that finds x (or proves it\nabsent) in O(logn) comparisons. That framing is correct but narrow. The\narray was never the point. What binary search needs is a\nmonotone predicate: a boolean test p(x) that is false up to some boundary\nand true from there on. Sorted membership is just one instance, where\np(i)=(A[i]≥x). Once we see binary search as locating the\nboundary of a monotone predicate, we can search ranges that no array ever\nmaterialises, the technique known as binary search on the answer.","md",{"moduleNumber":102,"lessonNumber":24,"order":10178},503,true,[10181,10185,10188,10191,10195],{"title":10182,"slug":10183,"difficulty":10184},"Binary Search","binary-search","Easy",{"title":10186,"slug":3814,"difficulty":10187},"Koko Eating Bananas","Medium",{"title":10189,"slug":10190,"difficulty":10187},"Capacity To Ship Packages Within D Days","capacity-to-ship-packages-within-d-days",{"title":10192,"slug":10193,"difficulty":10194},"Split Array Largest Sum","split-array-largest-sum","Hard",{"title":10196,"slug":10197,"difficulty":10194},"Median of Two Sorted Arrays","median-of-two-sorted-arrays","---\ntitle: Binary Search on the Answer\nmodule: Sequences & Strings\nmoduleNumber: 5\nlessonNumber: 3\norder: 503\nsummary: >-\n  Binary search is not really about arrays — it is about locating the boundary\n  of a **monotone predicate** $p(x)$ in $O(\\log(\\text{range}))$ probes. We first\n  pin down the half-open `while (lo \u003C hi)` template for $\\textsc{lower\\_bound}$\n  and $\\textsc{upper\\_bound}$, then generalize to \"binary search on the answer\":\n  whenever feasibility is monotone in a numeric parameter, we binary search the\n  parameter itself, calling a feasibility check at each step.\ntopics: [Searching]\nsources:\n  - book: CLRS\n    ref: \"Ch. 2 — Binary search (Exercise 2.3-5)\"\n  - book: Skiena\n    ref: \"§4.x — Binary Search and Related\"\n  - book: Erickson\n    ref: \"Ch. — Recursion \u002F Searching\"\npractice:\n  - title: 'Binary Search'\n    slug: binary-search\n    difficulty: Easy\n  - title: 'Koko Eating Bananas'\n    slug: koko-eating-bananas\n    difficulty: Medium\n  - title: 'Capacity To Ship Packages Within D Days'\n    slug: capacity-to-ship-packages-within-d-days\n    difficulty: Medium\n  - title: 'Split Array Largest Sum'\n    slug: split-array-largest-sum\n    difficulty: Hard\n  - title: 'Median of Two Sorted Arrays'\n    slug: median-of-two-sorted-arrays\n    difficulty: Hard\n---\n\nWe have seen binary search as the canonical [divide-and-conquer](\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort) search: a sorted\narray of $n$ keys, a target $x$, and a halving loop that finds $x$ (or proves it\nabsent) in $O(\\log n)$ comparisons. That framing is correct but narrow. The\narray was never the point. What binary search needs is a\n**monotone predicate**: a boolean test $p(x)$ that is `false` up to some boundary\nand `true` from there on. Sorted membership is just one instance, where\n$p(i) = \\bigl(A[i] \\ge x\\bigr)$. Once we see binary search as _locating the\nboundary of a monotone predicate_, we can search ranges that no array ever\nmaterialises, the technique known as **binary search on the answer**.\n\n## Recap: binary search on a sorted array\n\nFix a sorted array $A[0 \\mathinner{\\ldotp\\ldotp} n)$ and a target $x$. The loop maintains an\ninterval $[lo, hi]$ guaranteed to contain $x$ if it is present at all.\n\n> **Invariant.** At the top of each iteration, if $x \\in A$ then its index lies in\n> $[lo, hi]$. Each step compares $x$ to $A[mid]$ and discards the half that\n> cannot contain it, so the invariant is preserved while $hi - lo$ at least\n> halves.\n\nBecause the interval length drops geometrically, the loop runs $O(\\log n)$ times.\nThe plain \"does $x$ occur?\" version is easy; the subtle and far more useful\nversions are the **boundary** queries.\n\n### lower_bound and upper_bound\n\nTwo queries answer almost every practical question about a sorted array:\n\n- $\\textsc{lower\\_bound}(x)$ is the **first** index $i$ with $A[i] \\ge x$.\n- $\\textsc{upper\\_bound}(x)$ is the **first** index $i$ with $A[i] > x$.\n\nTheir difference $\\textsc{upper\\_bound}(x) - \\textsc{lower\\_bound}(x)$ is the count\nof elements equal to $x$; $\\textsc{lower\\_bound}$ itself is the insertion point\nthat keeps $A$ sorted. Both are boundary searches over the monotone predicate\n$p(i) = \\bigl(A[i] \\ge x\\bigr)$ (respectively $A[i] > x$): a sorted array makes\n$p$ go `false, …, false, true, …, true` exactly once.\n\nThe reliable template is **half-open** and uses `lo \u003C hi`, never `lo \u003C= hi`. We\nsearch for the smallest index in $[0, n]$ at which the predicate holds, treating\nindex $n$ as a virtual \"past the end\" sentinel that is always feasible.\n\n```algorithm\ncaption: $\\textsc{lower\\_bound}(A, x)$ — first index $i$ with $A[i] \\ge x$\n$lo \\gets 0$\n$hi \\gets n$ \u002F\u002F half-open: hi is past-the-end\nwhile $lo \u003C hi$ do\n  $mid \\gets lo + \\lfloor (hi - lo)\u002F2 \\rfloor$ \u002F\u002F floor, and overflow-safe\n  if $A[mid] \\ge x$ then\n    $hi \\gets mid$ \u002F\u002F mid may be the answer\n  else\n    $lo \\gets mid + 1$ \u002F\u002F mid infeasible\nreturn $lo$ \u002F\u002F $lo = hi$: boundary\n```\n\nTwo details make this correct, and getting either wrong is the classic off-by-one\nbug:\n\n- **The interval is half-open, $[lo, hi)$ as a search space but $hi$ inclusive as\n  an answer.** We initialize $hi \\gets n$, not $n-1$, because the answer can be\n  \"no element is $\\ge x$,\" i.e. index $n$. The loop's exit $lo = hi$ then names a\n  valid boundary in $[0, n]$.\n- **The mid uses $\\lfloor \\cdot \\rfloor$ and the two branches are asymmetric.**\n  When $p(mid)$ holds we set $hi \\gets mid$ (not $mid - 1$), because $mid$ is\n  itself a candidate boundary. When $p(mid)$ fails we set $lo \\gets mid + 1$,\n  because $mid$ is now known-infeasible and _must_ be excluded. With a floored\n  mid, $mid \u003C hi$ always, so $hi \\gets mid$ strictly shrinks the interval and the\n  loop cannot spin forever. For $\\textsc{upper\\_bound}$, change the test to\n  $A[mid] > x$; nothing else moves.\n\n> **Intuition.** Think of $lo$ as \"the frontier of proven-infeasible\" and $hi$ as\n> \"the frontier of proven-feasible (or the sentinel).\" The two markers march\n> toward each other; when they meet, they pinch the boundary between the last\n> `false` and the first `true`.\n\n## The generalization: searching a monotone predicate\n\nNothing in the loop above inspected the array except through $p$. Abstract it\naway. Let $p : \\{lo, \\dots, hi\\} \\to \\{\\texttt{false}, \\texttt{true}\\}$ be\n**monotone**:\n\n> **Definition (monotone predicate).** $p$ is monotone if $p(x) \\Rightarrow p(y)$\n> for all $y \\ge x$. Equivalently its truth pattern is\n> $$\\underbrace{F\\,F\\,\\cdots\\,F}_{\\text{below boundary}}\\ \\underbrace{T\\,T\\,\\cdots\\,T}_{\\ge \\text{boundary}},$$\n> with a single transition. The **boundary** is the smallest $x^\\star$ with\n> $p(x^\\star)$ true.\n\nIf $p$ is monotone _and computable_, we can find $x^\\star$ by binary search over\nthe numeric range $[lo, hi]$, with no array at all. This is **binary search on\nthe answer**: we are searching the space of candidate answers, and the only thing\nthat makes it work is that **feasibility is monotone** in the answer.\n\n$$\n% caption: A monotone predicate flips false→true exactly once; binary search finds that\n%          boundary\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum size=8mm, inner sep=0, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node[cell] (c0) at (0,0) {$F$};\n  \\node[cell] (c1) at (0.8,0) {$F$};\n  \\node[cell] (c2) at (1.6,0) {$F$};\n  \\node[cell] (c3) at (2.4,0) {$F$};\n  \\node[cell, draw=acc, very thick] (c4) at (3.2,0) {$T$};\n  \\node[cell] (c5) at (4.0,0) {$T$};\n  \\node[cell] (c6) at (4.8,0) {$T$};\n  \\node[cell] (c7) at (5.6,0) {$T$};\n  \\draw[acc, thick] (3.2,0.9) -- (3.2,0.5);\n  \\node[text=acc, font=\\footnotesize, align=center] at (3.2,1.25)\n    {smallest feasible answer $x^\\star$};\n\\end{tikzpicture}\n$$\n\nThe cost is uniform across every application:\n\n$$\n\\Theta\\bigl(\\log(\\text{range}) \\cdot \\text{cost of one } p\\text{-check}\\bigr).\n$$\n\nWe pay $\\log(hi - lo)$ probes, and each probe runs the feasibility check once.\nReplacing the array access $A[mid] \\ge x$ by an arbitrary monotone test is the\nentire idea.\n\n$$\n% caption: Each probe tests $p(mid)$ and discards the infeasible half —\n%          $O(\\log(\\text{range}))$ probes\n\\begin{tikzpicture}[\n  >=stealth, font=\\small]\n  \\definecolor{acc}{HTML}{2348F2}\n  % row 1\n  \\draw[thick] (0,0) -- (8,0);\n  \\node[below, font=\\footnotesize] at (0,-0.1) {$lo$};\n  \\node[below, font=\\footnotesize] at (8,-0.1) {$hi$};\n  \\node[above, text=acc, font=\\footnotesize] at (4,0.1) {$mid$};\n  \\draw[acc, thick] (4,0.18) -- (4,-0.18);\n  \\draw[->, red!75!black, thick] (4.2,0.45) -- node[above, font=\\footnotesize, text=red!75!black]{$p(mid)$ true: drop right} (7.8,0.45);\n  % row 2\n  \\draw[thick] (0,-1.8) -- (4,-1.8);\n  \\node[below, font=\\footnotesize] at (0,-1.9) {$lo$};\n  \\node[below, font=\\footnotesize] at (4,-1.9) {$hi$};\n  \\node[above, text=acc, font=\\footnotesize] at (2,-1.7) {$mid$};\n  \\draw[acc, thick] (2,-1.62) -- (2,-1.98);\n  \\draw[->, red!75!black, thick] (1.8,-1.35) -- node[above, font=\\footnotesize, text=red!75!black]{$p(mid)$ false: drop left} (0.2,-1.35);\n  % row 3\n  \\draw[thick] (2,-3.0) -- (4,-3.0);\n  \\node[below, font=\\footnotesize] at (2,-3.1) {$lo$};\n  \\node[below, font=\\footnotesize] at (4,-3.1) {$hi$};\n  \\node[right, font=\\footnotesize, text=acc] at (4.2,-3.0) {$\\cdots$ converge};\n\\end{tikzpicture}\n$$\n\n## Worked examples\n\nIn each case the work is the same three steps: name the **answer parameter** and\nits **range** $[lo, hi]$, name the **monotone predicate** $p$, and write the\nfeasibility check. The binary search loop never changes.\n\n### Koko eating bananas\n\nKoko has piles $\\textit{piles}[0 \\mathinner{\\ldotp\\ldotp} n)$ and $H$ hours; at speed $s$ she clears\n$\\lceil \\textit{piles}[i] \u002F s \\rceil$ hours on pile $i$. Minimize $s$ such that she\nfinishes within $H$ hours.\n\n- **Answer parameter:** the speed $s$, an integer in $[1, \\max_i \\textit{piles}[i]]$.\n- **Predicate:** $p(s) = \\bigl(\\sum_i \\lceil \\textit{piles}[i]\u002Fs \\rceil \\le H\\bigr)$,\n  \"can finish in $\\le H$ hours.\"\n- **Monotonicity:** a larger $s$ never increases any term $\\lceil \\textit{piles}[i]\u002Fs \\rceil$,\n  so $p$ is monotone _increasing_ in $s$ (`false` for tiny speeds, `true` once\n  fast enough). Binary search the smallest feasible $s$.\n\nEach check is $O(n)$, the range is $\\max_i \\textit{piles}[i]$, so the cost is\n$O(n \\log \\max_i \\textit{piles}[i])$.\n\n$$\n% caption: Koko feasibility over speeds for $\\textit{piles}=\\langle 3,6,7,11\\rangle$,\n%          $H=8$. The predicate\n%          $p(s)=\\bigl(\\sum_i\\lceil \\textit{piles}[i]\u002Fs\\rceil\\le 8\\bigr)$ flips $F{\\to}T$\n%          once; binary search returns the boundary $s^\\star=4$\n\\begin{tikzpicture}[>=stealth, font=\\small]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\foreach \\s\u002F\\h in {1\u002F27,2\u002F15,3\u002F10,4\u002F8,5\u002F8,6\u002F6} {\n    \\node[font=\\footnotesize] at (\\s*1.1,0.7) {$s{=}\\s$};\n    \\node[font=\\footnotesize] at (\\s*1.1,0.28) {$\\sum{=}\\h$};\n  }\n  \\foreach \\s\u002F\\b in {1\u002FF,2\u002FF,3\u002FF} {\n    \\node[draw, minimum size=8mm, inner sep=0] at (\\s*1.1,-0.3) {$\\b$};\n  }\n  \\foreach \\s\u002F\\b in {5\u002FT,6\u002FT} {\n    \\node[draw, minimum size=8mm, inner sep=0] at (\\s*1.1,-0.3) {$\\b$};\n  }\n  \\node[draw=acc, very thick, minimum size=8mm, inner sep=0] at (4.4,-0.3) {$T$};\n  \\draw[acc, thick] (4.4,-1.0) -- (4.4,-0.7);\n  \\node[text=acc, font=\\footnotesize] at (4.4,-1.3) {$s^\\star=4$};\n\\end{tikzpicture}\n$$\n\n### Capacity to ship \u002F split array largest sum\n\nThese two problems are the _same_ problem. Given an array and a count $D$ (days \u002F\nparts), partition it into $D$ **contiguous** groups to minimize the maximum group\nsum. (\"Capacity to ship within $D$ days\" reads the array as package weights;\n\"Split array largest sum\" reads it as integers, with identical structure.)\n\n- **Answer parameter:** the cap $C$ on a group's sum, in\n  $[\\max_i a_i,\\ \\sum_i a_i]$. (You cannot go below the largest single element; you\n  never need to exceed the whole sum.)\n- **Predicate:** $p(C) = $ \"the array can be split into $\\le D$ contiguous groups,\n  each with sum $\\le C$.\"\n- **Feasibility check (greedy, $O(n)$):** sweep left to right, accumulating into\n  the current group; whenever adding $a_i$ would exceed $C$, close the group and\n  start a new one at $a_i$. The number of groups this greedy uses is the\n  _minimum_ possible for cap $C$, so $p(C)$ holds iff that count is $\\le D$.\n\n> **Lemma.** The left-to-right greedy uses the minimum number of groups for a\n> given cap $C$. _Proof sketch._ The first group can extend no further than the\n> greedy takes it without exceeding $C$; an exchange argument pushes any optimal\n> partition's first cut rightward to match the greedy's, then induct on the\n> suffix. $\\qed$\n\n$$\n% caption: Feasibility check for cap $C=18$ on $\\langle 7,2,5,10,8\\rangle$ with $D=2$: the\n%          greedy sweep cuts whenever the next element would push a group past $C$, using\n%          $2$ groups (sums $14\\le18$, $18\\le18$). Since $2\\le D$, $p(18)$ holds\n\\begin{tikzpicture}[>=stealth, font=\\small]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\foreach \\i\u002F\\v in {0\u002F7,1\u002F2,2\u002F5,3\u002F10,4\u002F8} {\n    \\node[draw, minimum size=8mm, inner sep=1pt] (a\\i) at (\\i*0.95,0) {$\\v$};\n  }\n  \\draw[acc, very thick, rounded corners=1pt] (-0.45,-0.5) rectangle (2.35,0.5);\n  \\draw[acc, very thick, rounded corners=1pt] (2.45,-0.5) rectangle (4.25,0.5);\n  \\node[font=\\footnotesize, acc, align=center] at (0.95,-1.15) {group 1\\\\$\\text{sum}=14$};\n  \\node[font=\\footnotesize, acc, align=center] at (3.35,-1.15) {group 2\\\\$\\text{sum}=18$};\n  \\node[font=\\footnotesize] at (1.9,1.0) {cut: $14{+}10{>}18$};\n  \\draw[acc, thick] (2.4,0.75) -- (2.4,-0.75);\n\\end{tikzpicture}\n$$\n\nA larger $C$ only ever _merges_ groups, so the group count is non-increasing in\n$C$: $p$ is monotone, and we binary search the smallest feasible $C$. Cost:\n$O(n \\log \\sum_i a_i)$.\n\n### Integer square root\n\nA pure-numeric instance with no array in sight: given $N \\ge 0$, compute\n$\\lfloor \\sqrt N \\rfloor$, the **largest** $x$ with $x^2 \\le N$.\n\n- **Answer parameter:** $x$, in $[0, N]$ (or tighten $hi$ to $\\lceil N\u002F2 \\rceil + 1$).\n- **Predicate:** here the natural test $q(x) = (x^2 \\le N)$ is monotone _the other\n  way_, namely `true, …, true, false, …`, so we want the **last** `true`. Search the\n  first $x$ with $x^2 > N$ via the standard $\\textsc{lower\\_bound}$ template and\n  subtract one; or flip the comparison and keep the \"largest feasible\" form.\n\nThe check is $O(1)$, so the integer square root costs $O(\\log N)$, and the same\nshape computes any $\\lfloor N^{1\u002Fk} \\rfloor$.[^erickson-search]\n\n$$\n% caption: Reversed monotonicity: $q(x)=(x^2\\le N)$ runs $T\\cdots T\\,F\\cdots F$, so the\n%          answer is the LAST true, not the first. For $N=10$ the boundary sits at\n%          $x^\\star=3$ ($9\\le10\u003C16$)\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum size=8mm, inner sep=0, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\foreach \\x\u002F\\b in {0\u002FT,1\u002FT,2\u002FT,3\u002FT} {\n    \\node[cell] (c\\x) at (\\x*0.8,0) {$\\b$};\n    \\node[font=\\footnotesize, black!55] at (\\x*0.8,0.6) {$\\x$};\n  }\n  \\node[cell, draw=acc, very thick] at (2.4,0) {};\n  \\foreach \\x\u002F\\b in {4\u002FF,5\u002FF,6\u002FF,7\u002FF} {\n    \\node[cell] at (\\x*0.8,0) {$\\b$};\n    \\node[font=\\footnotesize, black!55] at (\\x*0.8,0.6) {$\\x$};\n  }\n  \\draw[acc, thick] (2.4,-0.9) -- (2.4,-0.5);\n  \\node[text=acc, font=\\footnotesize, align=center] at (2.4,-1.25)\n    {last feasible $x^\\star=3$};\n\\end{tikzpicture}\n$$\n\n## Correctness and termination\n\nEvery variant rests on one invariant, stated here for the \"smallest feasible\"\nhalf-open template ($hi$ inclusive as an answer):\n\n> **Invariant.** At the top of each iteration, $lo$ is infeasible-or-just-below\n> the boundary and $hi$ is feasible (or the always-feasible sentinel): every index\n> $\u003C lo$ has $p = $ `false`, and $p(hi) = $ `true`. The boundary $x^\\star$ always\n> lies in $[lo, hi]$.\n\n_Termination and correctness._ With $mid = lo + \\lfloor (hi-lo)\u002F2 \\rfloor$ we have\n$lo \\le mid \u003C hi$ whenever $lo \u003C hi$. If $p(mid)$ is `true`, setting $hi \\gets mid$\nkeeps $hi$ feasible and strictly decreases $hi$. If $p(mid)$ is `false`, setting\n$lo \\gets mid + 1$ keeps everything below $lo$ infeasible and strictly increases\n$lo$. Either way $hi - lo$ drops by at least one and at most halves, so after\n$\\le \\lceil \\log_2(hi - lo) \\rceil$ iterations $lo = hi = x^\\star$. $\\qed$\n\n> **Remark (Where off-by-one bugs hide).** There are two viable templates and mixing them\n> is the trap:\n>\n> 1. **Half-open `while (lo \u003C hi)`** with $hi$ a valid answer, $hi \\gets mid$ \u002F\n>    $lo \\gets mid + 1$, return $lo$. (Used above. The mid _must_ floor.)\n> 2. **Closed `while (lo \u003C= hi)`** with $hi = n - 1$, $hi \\gets mid - 1$ \u002F\n>    $lo \\gets mid + 1$, tracking the best answer seen.\n>\n> The fatal combinations are: `lo \u003C= hi` with $hi \\gets mid$ (infinite loop,\n> since the interval never shrinks when $lo = mid$), and `lo \u003C hi` with $hi \\gets mid - 1$\n> (skips a candidate, returning one short). Pick one template and never improvise\n> the updates. A defining symptom of the infinite-loop bug is that it only fires\n> on the two-element interval, where $mid$ floors to $lo$.[^clrs-binsearch]\n\n## Binary search on a real interval\n\nWhen the answer is a real number rather than an integer (minimize a continuous\nradius, a rate, a time), the boundary need not be representable exactly, so we run\n**parametric search**: the same loop on a real interval, stopping after a fixed\nnumber of iterations or once $hi - lo \u003C \\varepsilon$.\n\n```algorithm\ncaption: real-valued binary search — first $x$ with $p(x)$ within $\\varepsilon$\n$lo \\gets \\ell;\\ hi \\gets r$\nrepeat $K$ times: \u002F\u002F $K=100$ $\\Rightarrow$ error $\\le(r-\\ell)2^{-100}$\n  $mid \\gets (lo + hi)\u002F2$\n  if $p(mid)$ then $hi \\gets mid$ else $lo \\gets mid$\nreturn $hi$\n```\n\nEach iteration halves the interval, so $K$ iterations reach absolute error\n$(r-\\ell)\\,2^{-K}$; a _fixed_ $K$ buys machine precision. There is no\n$\\pm 1$ bookkeeping because we never need the exact integer boundary, only an\n$\\varepsilon$-close one. As always, **the predicate's monotonicity is the whole\ngame**: if $p$ is monotone over $[\\ell, r]$ the loop converges to its boundary;\nif $p$ is not monotone, binary search is simply the wrong tool, since there may be\nseveral transitions and no guarantee which one we land on.[^skiena-binsearch]\n\n## Takeaways\n\n- Binary search locates the **boundary of a monotone predicate** in\n  $O(\\log(\\text{range}))$ probes; the sorted array is just the special case\n  $p(i) = (A[i] \\ge x)$.\n- Memorise one template. The **half-open `while (lo \u003C hi)`** form with a _floored_\n  mid, $hi \\gets mid$ on feasible and $lo \\gets mid + 1$ on infeasible, returning\n  $lo$, computes $\\textsc{lower\\_bound}$ and $\\textsc{upper\\_bound}$ without\n  off-by-one errors.\n- **Binary search on the answer**: when feasibility is **monotone** in a numeric\n  parameter, binary search the parameter and call a feasibility check at each\n  step, for total cost $\\Theta(\\log(\\text{range}) \\cdot \\text{check})$.\n- Recipe for each problem: name the **answer range** $[lo, hi]$, the **monotone\n  predicate** $p$, and an efficient **check**. Koko (speed; sum of ceilings),\n  ship\u002Fsplit (max-group cap; greedy partition in $O(n)$), integer square root\n  ($x^2 \\le N$) all fit this mold.\n- The **correctness invariant** keeps $lo$ infeasible and $hi$ feasible; floored\n  mid plus asymmetric updates guarantee **termination**. Mixing the closed and\n  half-open templates is where the classic bugs live.\n- For a real-valued answer, run **parametric search**: a fixed iteration count or\n  $\\varepsilon$ tolerance. Monotonicity of $p$ is the only precondition that\n  matters.\n\n[^clrs-binsearch]: **CLRS**, Ch. 2 — Binary search (Exercise 2.3-5): the $O(\\log n)$ sorted-array search and its boundary (insertion-point) variants.\n[^skiena-binsearch]: **Skiena**, §4.x — Binary Search and Related: searching a monotone predicate over a numeric range (\"binary search on the answer\") and parametric search on a real interval.\n[^erickson-search]: **Erickson**, Ch. — Recursion \u002F Searching: binary search as boundary-finding, including pure-numeric instances such as integer roots.\n",{"text":10200,"minutes":10201,"time":10202,"words":10203},"8 min read",7.89,473400,1578,{"title":136,"description":10175},[10206,10208,10210],{"book":10100,"ref":10207},"Ch. 2 — Binary search (Exercise 2.3-5)",{"book":10146,"ref":10209},"§4.x — Binary Search and Related",{"book":10086,"ref":10211},"Ch. — Recursion \u002F Searching","available","01.algorithms\u002F05.sequences\u002F03.binary-search-on-the-answer",[139],"y9m9yqS0eo89F-J6NDI3VlsjFlffvmkwv6gkHi2Vwds",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":10217,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":10218,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":10219,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":10220,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":10221,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":10222,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":10223,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":10224,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":10225,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":10226,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":10227,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":10228,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":10229,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":10230,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":10231,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":10232,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":10233,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":10234,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":10203,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":10235,"\u002Falgorithms\u002Fsequences\u002Ftries":10236,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":10237,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":10238,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":10239,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":10240,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":10241,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":10242,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":10243,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":10244,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":10245,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":10246,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":10247,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":10248,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":10249,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":10250,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":10251,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":10252,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":10253,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":10254,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":10255,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":10256,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":10257,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":10258,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":10259,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":10260,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":10261,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":10262,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":10233,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":10263,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":10264,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":10265,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":10266,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":10248,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":10267,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":10268,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":10229,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":10269,"\u002Falgorithms":10270,"\u002Ftheory-of-computation":10271,"\u002Fcomputer-architecture":10271,"\u002Fphysical-computing":10271,"\u002Fdatabases":10271,"\u002Fdeep-learning":10271},1763,2107,1738,2628,1723,2048,1697,1044,1542,1565,1679,1586,1388,1465,1971,1455,1533,1483,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":10273,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":10274,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":10275,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":10276,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":10277,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":10278,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":10279,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":10280,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":10281,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":10282,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":10283,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":10284,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":10285,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":10286,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":10287,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":10288,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":10289,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":10290,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":10291,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":10292,"\u002Falgorithms\u002Fsequences\u002Ftries":10293,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":10294,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":10295,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":10296,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":10297,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":10298,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":10299,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":10300,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":10301,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":10302,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":10303,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":10304,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":10305,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":10306,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":10307,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":10308,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":10309,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":10310,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":10311,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":10312,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":10313,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":10314,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":10315,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":10316,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":10317,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":10318,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":10319,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":10320,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":10321,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":10322,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":10323,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":10324,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":10325,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":10326,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":10327,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":10328,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":10329,"\u002Falgorithms":10330,"\u002Ftheory-of-computation":10333,"\u002Fcomputer-architecture":10336,"\u002Fphysical-computing":10339,"\u002Fdatabases":10342,"\u002Fdeep-learning":10345},{"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":10331,"title":10332,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":10334,"title":10335,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":10337,"title":10338,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":10340,"title":10341,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":10343,"title":10344,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":10346,"title":10347,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560523313]