From ad15b5f3049af25d5cf6738bd2bf5b02a7bff566 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Mon, 6 Jan 2020 19:49:42 -0500 Subject: [PATCH 001/108] improve merge sort example --- src/runtimes/04-merge-sort.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/runtimes/04-merge-sort.js b/src/runtimes/04-merge-sort.js index 0279161f..efb9c7dc 100644 --- a/src/runtimes/04-merge-sort.js +++ b/src/runtimes/04-merge-sort.js @@ -5,22 +5,20 @@ const assert = require('assert'); * Merge two arrays in asc order * @example * merge([2,5,9], [1,6,7]) => [1, 2, 5, 6, 7, 9] - * @param {array} array1 - * @param {array} array2 + * @param {array} a + * @param {array} b * @returns {array} merged arrays in asc order */ -function merge(array1 = [], array2 = []) { +function merge(a = [], b = []) { const merged = []; - let array1Index = 0; - let array2Index = 0; + let ai = 0; + let bi = 0; // merge elements on a and b in asc order. Run-time O(a + b) - while (array1Index < array1.length || array2Index < array2.length) { - if (array1Index >= array1.length || array1[array1Index] > array2[array2Index]) { - merged.push(array2[array2Index]); - array2Index += 1; + for (let ai = 0, bi = 0; ai < a.length || bi < b.length;) { + if(ai >= a.length || a[ai] > b[bi]) { + merged.push(b[bi++]); } else { - merged.push(array1[array1Index]); - array1Index += 1; + merged.push(a[ai++]); } } return merged; @@ -46,7 +44,7 @@ function sort(array = []) { return array[0] > array[1] ? [array[1], array[0]] : array; } // slit and merge - const mid = size / 2; + const mid = parseInt(size / 2, 10); return merge(sort(array.slice(0, mid)), sort(array.slice(mid))); } // end::sort[] @@ -59,3 +57,4 @@ assert.deepStrictEqual(sort(), []); assert.deepStrictEqual(merge([2, 5, 9], [1, 6, 7]), [1, 2, 5, 6, 7, 9]); assert.deepStrictEqual(merge(), []); +assert.deepStrictEqual(merge([3, 5, 7], [2, 4]), [2, 3, 4, 5, 7]); From cccadf8d31a2ec84fe1a9787a875adeac9568a20 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Thu, 6 Aug 2020 14:49:46 -0400 Subject: [PATCH 002/108] chore: remove uxa --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 660f62dc..52316614 100644 --- a/README.md +++ b/README.md @@ -513,4 +513,4 @@ Reach out to me at one of the following places! [](LICENSE) - +<!--  --> From 3901188e613f85bf99e4a7b520a496f7c4e404c8 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Wed, 19 Aug 2020 17:48:50 -0400 Subject: [PATCH 003/108] chore(sorting): clean up variables --- src/runtimes/04-merge-sort.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/runtimes/04-merge-sort.js b/src/runtimes/04-merge-sort.js index efb9c7dc..fe7c87a9 100644 --- a/src/runtimes/04-merge-sort.js +++ b/src/runtimes/04-merge-sort.js @@ -11,11 +11,9 @@ const assert = require('assert'); */ function merge(a = [], b = []) { const merged = []; - let ai = 0; - let bi = 0; // merge elements on a and b in asc order. Run-time O(a + b) for (let ai = 0, bi = 0; ai < a.length || bi < b.length;) { - if(ai >= a.length || a[ai] > b[bi]) { + if (ai >= a.length || a[ai] > b[bi]) { merged.push(b[bi++]); } else { merged.push(a[ai++]); From 2fab838cc1654b66453994fc438d57d9e201fd6f Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Thu, 20 Aug 2020 15:05:01 -0400 Subject: [PATCH 004/108] add config test --- jest.config.js | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 jest.config.js diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..c2d4001e --- /dev/null +++ b/jest.config.js @@ -0,0 +1,4 @@ +module.exports = { + name: 'dsa.js', + testPathIgnorePatterns: ['/node_modules/', '/dist/', 'lab/', 'benchmarks/', 'coverage/'], +}; From 4d75825179b76194932e41f460ff8195b3a37db5 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Thu, 20 Aug 2020 15:16:40 -0400 Subject: [PATCH 005/108] chore(jest): fix commands --- jest.config.js | 2 +- package.json | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/jest.config.js b/jest.config.js index c2d4001e..59b40aec 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,4 @@ module.exports = { name: 'dsa.js', - testPathIgnorePatterns: ['/node_modules/', '/dist/', 'lab/', 'benchmarks/', 'coverage/'], + testPathIgnorePatterns: ['/node_modules/', '/dist/', '/lab/', '/benchmarks/', '/coverage/'], }; diff --git a/package.json b/package.json index 24c3fdd2..1258285d 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,10 @@ "src/**/*.js" ], "scripts": { - "test": "jest src/", - "watch": "jest src/ --watch --coverage", - "coverage": "jest src/ --coverage && open coverage/lcov-report/index.html", + "test": "jest", + "watch": "jest --watch --coverage", + "coverage": "jest --coverage && open coverage/lcov-report/index.html", + "coverage:win": "jest --coverage && cmd.exe /C start coverage/lcov-report/index.html", "lint": "npx eslint --fix --format codeframe src/", "ci": "npx eslint src/ && jest src/ --coverage", "semantic-release": "semantic-release", From b5a00dded45a1f4eeab3bbbdd68ccbcbf02419d3 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Thu, 20 Aug 2020 15:17:11 -0400 Subject: [PATCH 006/108] feat(book:array): add solutions for interview questions --- .vscode/settings.json | 14 -------- book/D-interview-questions-solutions.asc | 31 ++++++++++++++++ book/ch02-git-basics-chapter.asc | 35 ------------------- book/content/part02/array.asc | 27 ++++++-------- book/content/preface.asc | 2 +- book/interview-questions/rotate-array-left.js | 34 ++++++++++++++++++ .../rotate-array-left.spec.js | 19 ++++++++++ lab/exercises/01-arrays/rotate-array-left.js | 15 -------- notes.md | 4 +++ 9 files changed, 99 insertions(+), 82 deletions(-) create mode 100644 book/D-interview-questions-solutions.asc delete mode 100644 book/ch02-git-basics-chapter.asc create mode 100644 book/interview-questions/rotate-array-left.js create mode 100644 book/interview-questions/rotate-array-left.spec.js delete mode 100644 lab/exercises/01-arrays/rotate-array-left.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 035ef5b2..1405e3d2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,3 @@ { - "workbench.colorCustomizations": { - "activityBar.background": "#fbed80", - "activityBar.foreground": "#15202b", - "activityBar.inactiveForeground": "#15202b99", - "activityBarBadge.background": "#06b9a5", - "activityBarBadge.foreground": "#15202b", - "titleBar.activeBackground": "#f9e64f", - "titleBar.inactiveBackground": "#f9e64f99", - "titleBar.activeForeground": "#15202b", - "titleBar.inactiveForeground": "#15202b99", - "statusBar.background": "#f9e64f", - "statusBarItem.hoverBackground": "#f7df1e", - "statusBar.foreground": "#15202b" - }, "peacock.color": "#f9e64f" } diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc new file mode 100644 index 00000000..d855a2c3 --- /dev/null +++ b/book/D-interview-questions-solutions.asc @@ -0,0 +1,31 @@ +[appendix] +[[d-interview-questions-solutions]] +== Interview Questions Solutions +(((Interview Questions Solutions))) + +=== Solutions for Array Questions +(((Interview Questions Solutions, Arrays))) + +==== Rotate Left +include::content/part02/array.asc[tag=array-q-rotate-left] + +We are asked to rotate an array multiple times (`k`). + +One brute force solution, would be removing the first element and appending it to the end `k` times: + +include::interview-questions/rotate-array-left.js[tag=bruteForce] + +However, what would happen if the array is huge (millions of elements)? +How efficient will be if `k` number is large (thousands)? + +When k is bigger than the array, it will loop back over and over again. We can avoid extra computation by calculating the final place using modulus. + +Here's the final solution: + +include::interview-questions/rotate-array-left.js[tag=description] +include::interview-questions/rotate-array-left.js[tag=solution] + +It runs on `O(n^2)` while the brute force solution was doing `O(n^2 * k)`. + +==== Sum +include::content/part02/array.asc[tag=array-sum] diff --git a/book/ch02-git-basics-chapter.asc b/book/ch02-git-basics-chapter.asc deleted file mode 100644 index cb91537b..00000000 --- a/book/ch02-git-basics-chapter.asc +++ /dev/null @@ -1,35 +0,0 @@ -[[ch02-git-basics-chapter]] -== Git Basics - -If you can read only one chapter to get going with Git, this is it. -This chapter covers every basic command you need to do the vast majority of the things you'll eventually spend your time doing with Git. -By the end of the chapter, you should be able to configure and initialize a repository, begin and stop tracking files, and stage and commit changes. -We'll also show you how to set up Git to ignore certain files and file patterns, how to undo mistakes quickly and easily, how to browse the history of your project and view changes between commits, and how to push and pull from remote repositories. - -[[links]] -=== Links - -.Links to DSA -- Chapter: <<part01-algorithms-analysis#part01-algorithms-analysis>> -- Section: <<part01-algorithms-analysis#constant-example>> - -// In <<ch01-getting-started#_first_time>> we used it to specify our name, email address and editor preference before we even got started using Git. - -[source,console] ----- -$ git commit ----- - -Doing so launches your editor of choice. -(This is set by your shell's `EDITOR` environment variable -- usually vim or emacs, although you can configure it with whatever you want using the `git config --global core.editor` command as you saw in - -// <<ch01-getting-started#ch01-getting-started>>).(((editor, changing default)))(((git commands, config))) - - - - - -=== Summary - -At this point, you can do all the basic local Git operations -- creating or cloning a repository, making changes, staging and committing those changes, and viewing the history of all the changes the repository has been through. -Next, we'll cover Git's killer feature: its branching model. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 34cadf6a..09ce419d 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -17,7 +17,8 @@ TIP: Strings are a collection of Unicode characters and most of the array concep .Fixed vs. Dynamic Size Arrays **** -Some programming languages have fixed size arrays like Java and C++. Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in C++ and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. +Some programming languages have fixed size arrays like Java and C++. +Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in C++ and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. **** Arrays look like this: @@ -275,30 +276,21 @@ To sum up, the time complexity of an array is: |=== //end::table -==== Array Exercises +==== Interview Questions +(((Interview Questions, Arrays))) +// tag::array-q-rotate-left[] 1) Implement an efficient algorithm that rotate an array `a` an `k` number of times. [source, javascript] ---- -/** - * Rotate an array left by k number of times. - * - * @example - * rotateLeft([1,2,3], 1); // [2,3,1] - * rotateLeft([1,2,3,4,5], 4); // [5,1,2,3,4] - * - * rotateLeft(Array(1e6).fill(1), 1e4); // <scale testing> - * - * @param a - The array - * @param k - The number of times the array is rotated - */ -function rotateLeft(a, k) { - // write you code and test with examples +include::../../interview-questions/rotate-array-left.js[tag=description] + // write you code here } ---- +// end::array-q-rotate-left[] - +// tag::array-sum[] 2) Implement an algorithm that takes two arrays of numbers and return a new array with the sum. [source, javascript] @@ -318,3 +310,4 @@ function sum(a, b) { // write you code and test with examples } ---- +// end::array-sum[] diff --git a/book/content/preface.asc b/book/content/preface.asc index bb780633..c9823d8b 100644 --- a/book/content/preface.asc +++ b/book/content/preface.asc @@ -82,4 +82,4 @@ Measurement is the first step that leads to control and eventually to improvemen Your feedback is very welcome and valuable. Let us know what your thoughts about this book — what you like or ideas to make it better. -To send us feedback, e-mail us at hello+dsajs@adrianmejia.com, send a tweet to https://twitter.com/iAmAdrianMejia[@iAmAdrianMejia], or using the hash tags `#dsaJS`, `#javascript` and `#algorithms`. +To send us feedback, e-mail us at hello+dsajs@adrianmejia.com, send a tweet to https://twitter.com/iAmAdrianMejia[@iAmAdrianMejia], or using the hash tag `#dsaJS`. diff --git a/book/interview-questions/rotate-array-left.js b/book/interview-questions/rotate-array-left.js new file mode 100644 index 00000000..236cfc73 --- /dev/null +++ b/book/interview-questions/rotate-array-left.js @@ -0,0 +1,34 @@ +// tag::description[] +/** + * Rotate an array left by k number of times. + * + * @example + * rotateLeft([1,2,3], 1); // [2,3,1] + * rotateLeft([1,2,3,4,5], 4); // [5,1,2,3,4] + * + * rotateLeft(Array(1e6).fill(1), 1e4); // <scale testing> + * + * @param a - The array + * @param k - The number of times the array is rotated + */ +function rotateLeft(a, k) { +// end::description[] +// tag::solution[] + const moves = k % a.length; + for (let i = 0; i < moves; i++) { + a.push(a.shift()); + } + return a; +} +// end::solution[] + +// tag::bruteForce[] +function rotateLeftBruteForce(a, k) { + for (let i = 0; i < k; i++) { + a.push(a.shift()); + } + return a; +} +// end::bruteForce[] + +module.exports = { rotateLeft, rotateLeftBruteForce }; diff --git a/book/interview-questions/rotate-array-left.spec.js b/book/interview-questions/rotate-array-left.spec.js new file mode 100644 index 00000000..762b96a1 --- /dev/null +++ b/book/interview-questions/rotate-array-left.spec.js @@ -0,0 +1,19 @@ +const { rotateLeft, rotateLeftBruteForce } = require('./rotate-array-left'); + +describe('Rotate Left', () => { + describe('when data is small', () => { + it('should work with 1', () => { + expect(rotateLeft([1, 2, 3], 1)).toEqual([2, 3, 1]); + }); + + it('should work with 4', () => { + expect(rotateLeft([1, 2, 3, 4, 5], 4)).toEqual([5, 1, 2, 3, 4]); + }); + }); + + describe('when data is large', () => { + it('', () => { + + }); + }); +}); diff --git a/lab/exercises/01-arrays/rotate-array-left.js b/lab/exercises/01-arrays/rotate-array-left.js deleted file mode 100644 index 88640b89..00000000 --- a/lab/exercises/01-arrays/rotate-array-left.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Rotate an array left by k number of times. - * - * @example - * rotateLeft([1,2,3], 1); // [2,3,1] - * rotateLeft([1,2,3,4,5], 4); // [5,1,2,3,4] - * - * rotateLeft(Array(1e6).fill(1), 1e4); // <scale testing> - * - * @param a - The array - * @param k - The number of times the array is rotated - */ -function rotateLeft(a, k) { - // write you code and test with examples -} diff --git a/notes.md b/notes.md index 21f8845e..c868f237 100644 --- a/notes.md +++ b/notes.md @@ -117,3 +117,7 @@ alert('foo'); console.log('bar'); /* eslint-enable no-alert */ ``` + +# Asciidoctor Manual + +https://asciidoctor.org/docs/user-manual/ From 996f7aa1097234f5f89bb6c96f84e8f622d082de Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Thu, 20 Aug 2020 15:20:01 -0400 Subject: [PATCH 007/108] chore(vscode): set colors --- .vscode/settings.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1405e3d2..c4dcc94b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,20 @@ { - "peacock.color": "#f9e64f" + "peacock.color": "#f9e64f", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#fbed80", + "activityBar.activeBorder": "#06b9a5", + "activityBar.background": "#fbed80", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#06b9a5", + "activityBarBadge.foreground": "#15202b", + "statusBar.background": "#f9e64f", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#f7df1e", + "titleBar.activeBackground": "#f9e64f", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#f9e64f99", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.remoteColor": "#f9e64f" } From ca119f2b2fe5e4392a0b13278b5a6ba9e907952c Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Thu, 20 Aug 2020 15:23:30 -0400 Subject: [PATCH 008/108] feat(book): add appendix D with interview question solutions --- book/D-interview-questions-solutions.asc | 6 ++++++ book/readme.asc | 2 ++ 2 files changed, 8 insertions(+) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index d855a2c3..7c625434 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -13,7 +13,10 @@ We are asked to rotate an array multiple times (`k`). One brute force solution, would be removing the first element and appending it to the end `k` times: +[source, javascript] +---- include::interview-questions/rotate-array-left.js[tag=bruteForce] +---- However, what would happen if the array is huge (millions of elements)? How efficient will be if `k` number is large (thousands)? @@ -22,8 +25,11 @@ When k is bigger than the array, it will loop back over and over again. We can a Here's the final solution: +[source, javascript] +---- include::interview-questions/rotate-array-left.js[tag=description] include::interview-questions/rotate-array-left.js[tag=solution] +---- It runs on `O(n^2)` while the brute force solution was doing `O(n^2 * k)`. diff --git a/book/readme.asc b/book/readme.asc index 2e291afe..48f92fbe 100644 --- a/book/readme.asc +++ b/book/readme.asc @@ -60,6 +60,8 @@ include::B-self-balancing-binary-search-trees.asc[] include::C-AVL-tree.asc[] +include::D-interview-questions-solutions.asc[] + include::index.asc[] // ifndef::ebook-format[include::index.asc[]] From 57960e2c4f483e779e8344e07406ce7d67d4d9b8 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Fri, 21 Aug 2020 14:19:30 -0400 Subject: [PATCH 009/108] fix(book): multiple broken links and bump epub version fixes #60 --- book/A-time-complexity-cheatsheet.asc | 3 +-- book/B-self-balancing-binary-search-trees.asc | 6 ++---- book/C-AVL-tree.asc | 5 ++--- book/config | 2 +- book/content/part02/array-vs-list-vs-queue-vs-stack.asc | 2 +- book/content/part03/map.asc | 2 +- .../part03/time-complexity-graph-data-structures.asc | 2 +- book/content/preface.asc | 2 +- book/index.asc | 3 +-- book/part02-linear-data-structures.asc | 2 +- 10 files changed, 12 insertions(+), 17 deletions(-) diff --git a/book/A-time-complexity-cheatsheet.asc b/book/A-time-complexity-cheatsheet.asc index 64400aaa..b4089138 100644 --- a/book/A-time-complexity-cheatsheet.asc +++ b/book/A-time-complexity-cheatsheet.asc @@ -1,6 +1,5 @@ [appendix] -[[a-time-complexity-cheatsheet]] -== Cheatsheet +== Cheatsheet [[a-time-complexity-cheatsheet]] This section summerize what we are going to cover in the rest of this book. diff --git a/book/B-self-balancing-binary-search-trees.asc b/book/B-self-balancing-binary-search-trees.asc index 249f510c..182bdaa4 100644 --- a/book/B-self-balancing-binary-search-trees.asc +++ b/book/B-self-balancing-binary-search-trees.asc @@ -1,6 +1,5 @@ [appendix] -[[b-self-balancing-binary-search-trees]] -== Self-balancing Binary Search Trees +== Self-balancing Binary Search Trees [[b-self-balancing-binary-search-trees]] Binary Search Trees (BST) are an excellent data structure to find elements very fast _O(log n)_. However, when the BST branches have different branch sizes, then the performance suffers. @@ -28,8 +27,7 @@ As you might notice, we balanced the tree in the example by doing a rotation. To be more specific we rotated node `1` to the left to balance the tree. Let's examine all the possible rotation we can do to balance a tree. -[[tree-rotations]] -=== Tree Rotations +=== Tree Rotations [[tree-rotations]] (((Tree Rotations))) We can do single rotations left and right and also we can do double rotations. Let's go one by one. diff --git a/book/C-AVL-tree.asc b/book/C-AVL-tree.asc index 07bae068..1a8afe83 100644 --- a/book/C-AVL-tree.asc +++ b/book/C-AVL-tree.asc @@ -1,6 +1,5 @@ [appendix] -[[c-avl-tree]] -== AVL Tree +== AVL Tree [[c-avl-tree]] (((AVL Tree))) (((Tree, AVL))) AVL Tree is named after their inventors (**A**delson-**V**elsky and **L**andis). @@ -60,4 +59,4 @@ include::../src/data-structures/trees/avl-tree.js[tag=balance] The first thing we do is to see if one subtree is longer than the other. If so, then we check the children balance to determine if need a single or double rotation and in which direction. -You can review <<b-self-balancing-binary-search-trees#tree-rotations>> in case you want a refresher. +You can review <<tree-rotations>> in case you want a refresher. diff --git a/book/config b/book/config index f657e9bf..8d7eb9c3 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit f657e9bf4325d4987a30cfc47ad2bbc4bda6b23c +Subproject commit 8d7eb9c34523a92b63164abadf38036ca3088389 diff --git a/book/content/part02/array-vs-list-vs-queue-vs-stack.asc b/book/content/part02/array-vs-list-vs-queue-vs-stack.asc index bc289ed8..b464f17d 100644 --- a/book/content/part02/array-vs-list-vs-queue-vs-stack.asc +++ b/book/content/part02/array-vs-list-vs-queue-vs-stack.asc @@ -31,7 +31,7 @@ In this part of the book, we explored the most used linear data structures such |=== .2+.^s| Data Structure 2+^s| Searching By 3+^s| Inserting at the 3+^s| Deleting from .2+.^s| Space ^|_Index/Key_ ^|_Value_ ^|_beginning_ ^|_middle_ ^|_end_ ^|_beginning_ ^|_middle_ ^|_end_ -| <<part02-linear-data-structures#array>> ^|O(1) ^|O(n) ^|O(n) ^|O(n) ^|O(1) ^|O(n) ^|O(n) ^|O(1) ^|O(n) +| <<array-chap>> ^|O(1) ^|O(n) ^|O(n) ^|O(n) ^|O(1) ^|O(n) ^|O(n) ^|O(1) ^|O(n) | <<part02-linear-data-structures#singly-linked-list>> ^|O(n) ^|O(n) ^|O(1) ^|O(n) ^|*O(n)* ^|O(1) ^|O(n) ^|*O(n)* ^|O(n) | <<part02-linear-data-structures#doubly-linked-list>> ^|O(n) ^|O(n) ^|O(1) ^|O(n) ^|*O(1)* ^|O(1) ^|O(n) ^|*O(1)* ^|O(n) | <<part02-linear-data-structures#stack>> ^|- ^|- ^|- ^|- ^|O(1) ^|- ^|- ^|O(1) ^|O(n) diff --git a/book/content/part03/map.asc b/book/content/part03/map.asc index 11106d4f..d5448619 100644 --- a/book/content/part03/map.asc +++ b/book/content/part03/map.asc @@ -24,7 +24,7 @@ In short, you set `key`/`value` pair and then you can get the `value` using the The attractive part of Maps is that they are very performant usually *O(1)* or *O(log n)* depending on the implementation. We can implement the maps using two different underlying data structures: * *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. -* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree#>>). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. +* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>>). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. <<< include::hashmap.asc[] diff --git a/book/content/part03/time-complexity-graph-data-structures.asc b/book/content/part03/time-complexity-graph-data-structures.asc index a62d68c4..ed85c1a6 100644 --- a/book/content/part03/time-complexity-graph-data-structures.asc +++ b/book/content/part03/time-complexity-graph-data-structures.asc @@ -14,7 +14,7 @@ In this section, we learned about Graphs applications, properties and how we can .2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity ^|_Index/Key_ ^|_Value_ | <<part03-graph-data-structures#bst, BST (unbalanced)>> ^|- ^|O(n) ^|O(n) ^|O(n) ^|O(n) -| <<b-self-balancing-binary-search-trees#, BST (balanced)>> ^|- ^|O(log n) ^|O(log n) ^|O(log n) ^|O(n) +| <<b-self-balancing-binary-search-trees, BST (balanced)>> ^|- ^|O(log n) ^|O(log n) ^|O(log n) ^|O(n) | Hash Map (naïve) ^|O(n) ^|O(n) ^|O(n) ^|O(n) ^|O(n) | <<part03-graph-data-structures#hashmap, HashMap>> (optimized) ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) | <<part03-graph-data-structures#treemap, TreeMap>> (Red-Black Tree) ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) diff --git a/book/content/preface.asc b/book/content/preface.asc index c9823d8b..afcc20c6 100644 --- a/book/content/preface.asc +++ b/book/content/preface.asc @@ -3,7 +3,7 @@ === What is in this book? -_{doctitle}_ is a book that can be read from cover to cover, where each section builds on top of the previous one. Also, it can be used as a reference manual where developers can refresh specific topics before an interview or look for ideas to solve a problem optimally. (Check out the <<a-time-complexity-cheatsheet#,Time Complexity Cheatsheet>> and <<index#, topical index>>) +_{doctitle}_ is a book that can be read from cover to cover, where each section builds on top of the previous one. Also, it can be used as a reference manual where developers can refresh specific topics before an interview or look for ideas to solve a problem optimally. (Check out the <<a-time-complexity-cheatsheet,Time Complexity Cheatsheet>> and <<index, topical index>>) This publication is designed to be concise, intending to serve software developers looking to get a firm conceptual understanding of data structures in a quick yet in-depth fashion. After reading this book, the reader should have a fundamental knowledge of algorithms, including when and where to apply it, what are the trade-offs of using one data structure over the other. The reader will then be able to make intelligent decisions about algorithms and data structures in their projects. diff --git a/book/index.asc b/book/index.asc index 4312be40..d07d9fba 100644 --- a/book/index.asc +++ b/book/index.asc @@ -1,5 +1,4 @@ [index] -[[index]] -== Index +== Index [[index]] ifndef::backend-pdf[Topical index only available on the PDF version.] diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index ca76e78a..c357fb1d 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -6,7 +6,7 @@ Data Structures comes in many flavors. There’s no one to rule them all. You ha Even though in your day-to-day, you might not need to re-implementing them, knowing how they work internally would help you know when to use one over the other or even tweak them to create a new one. We are going to explore the most common data structures' time and space complexity. .In this part we are going to learn about the following linear data structures: -- <<part02-linear-data-structures#array>> +- <<array-chap>> - <<part02-linear-data-structures#linked-list>> - <<part02-linear-data-structures#stack>> - <<part02-linear-data-structures#queue>> From 5935b95ea761402b296e5a4fbd6e3643714bcaf9 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Fri, 21 Aug 2020 15:58:03 -0400 Subject: [PATCH 010/108] feat(book/array): add max subarray questions and solution --- book/D-interview-questions-solutions.asc | 40 ++++++++------ book/content/part02/array.asc | 33 +++--------- book/interview-questions/max-subarray.data.js | 1 + book/interview-questions/max-subarray.js | 54 +++++++++++++++++++ book/interview-questions/max-subarray.spec.js | 16 ++++++ .../rotate-array-left.spec.js | 19 ------- .../exercises/01-arrays}/rotate-array-left.js | 0 .../01-arrays/rotate-array-left.spec.js | 23 ++++++++ package.json | 4 +- 9 files changed, 129 insertions(+), 61 deletions(-) create mode 100644 book/interview-questions/max-subarray.data.js create mode 100644 book/interview-questions/max-subarray.js create mode 100644 book/interview-questions/max-subarray.spec.js delete mode 100644 book/interview-questions/rotate-array-left.spec.js rename {book/interview-questions => lab/exercises/01-arrays}/rotate-array-left.js (100%) create mode 100644 lab/exercises/01-arrays/rotate-array-left.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 7c625434..422701b6 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -6,32 +6,42 @@ === Solutions for Array Questions (((Interview Questions Solutions, Arrays))) -==== Rotate Left -include::content/part02/array.asc[tag=array-q-rotate-left] +==== Max Subarray [[array-q-max-subarray]] +include::content/part02/array.asc[tag=array-q-max-subarray] -We are asked to rotate an array multiple times (`k`). +The first step, is making sure we understand the problem well. Let's do a basic examples: -One brute force solution, would be removing the first element and appending it to the end `k` times: +---- +A = [-5, 6, 9, -8] +B = [-1, 6, -3, 8] +---- + +What's the subarrays with the maximum sum? For A, it will be `[6, 9]` and for B it will be `[6, -3, 8]`. + +One intution could be to generate all possible subarrays, add them up and then pick the max number. [source, javascript] ---- -include::interview-questions/rotate-array-left.js[tag=bruteForce] +include::interview-questions/max-subarray.js[tag=maxSubArrayBrute1] ---- -However, what would happen if the array is huge (millions of elements)? -How efficient will be if `k` number is large (thousands)? - -When k is bigger than the array, it will loop back over and over again. We can avoid extra computation by calculating the final place using modulus. +This is a simple to understand however not very efficient. The runtime is `O(n^3)`. -Here's the final solution: +If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way we don't have to revisit previous numebers again. [source, javascript] ---- -include::interview-questions/rotate-array-left.js[tag=description] -include::interview-questions/rotate-array-left.js[tag=solution] +include::interview-questions/max-subarray.js[tag=maxSubArrayBrute2] ---- -It runs on `O(n^2)` while the brute force solution was doing `O(n^2 * k)`. +The runtime is much better: `O(n)`. Can we still do better? + +We can use a greedy approach, where do one pass through the array. We only add the numbers if their sum is larger than just taking the current element. + +[source, javascript] +---- +include::interview-questions/max-subarray.js[tag=description] +include::interview-questions/max-subarray.js[tag=solution] +---- -==== Sum -include::content/part02/array.asc[tag=array-sum] +The runtime is `O(n)`! and a space complexity of `O(1)`. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 09ce419d..c2f83e78 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -4,7 +4,7 @@ ifndef::imagesdir[] endif::[] [[array]] -=== Array +=== Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) Arrays are one of the most used data structures. You probably have used it a lot but are you aware of the runtimes of `splice`, `shift`, `indexOf` and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. @@ -279,35 +279,18 @@ To sum up, the time complexity of an array is: ==== Interview Questions (((Interview Questions, Arrays))) -// tag::array-q-rotate-left[] -1) Implement an efficient algorithm that rotate an array `a` an `k` number of times. +===== Max Subarray +// tag::array-q-max-subarray[] +Given an array of integers, find the maximum sum of consecutive elements (subarray). +// end::array-q-max-subarray[] [source, javascript] ---- -include::../../interview-questions/rotate-array-left.js[tag=description] +include::../../interview-questions/max-subarray.js[tag=description] // write you code here } ---- -// end::array-q-rotate-left[] -// tag::array-sum[] -2) Implement an algorithm that takes two arrays of numbers and return a new array with the sum. +_Solution: <<array-q-max-subarray>>_ -[source, javascript] ----- -/** - * Return the sum of two arrays as a new array. - * - * @example - * sum([1,2,3], [1,1,1]); // [2,3,4] - * sum([1], [9,9,9]); // [1,0,0,0] - * - * @param {number[]} a - Array of numbers. - * @param {number[]} b - Array of numbers. - * @returns {number[]} the sum array. - */ -function sum(a, b) { - // write you code and test with examples -} ----- -// end::array-sum[] +// https://leetcode.com/problemset/algorithms/?topicSlugs=array diff --git a/book/interview-questions/max-subarray.data.js b/book/interview-questions/max-subarray.data.js new file mode 100644 index 00000000..3fce5f6a --- /dev/null +++ b/book/interview-questions/max-subarray.data.js @@ -0,0 +1 @@ +module.exports = [-57,9,-72,-72,-62,45,-97,24,-39,35,-82,-4,-63,1,-93,42,44,1,-75,-25,-87,-16,9,-59,20,5,-95,-41,4,-30,47,46,78,52,74,93,-3,53,17,34,-34,34,-69,-21,-87,-86,-79,56,-9,-55,-69,3,5,16,21,-75,-79,2,-39,25,72,84,-52,27,36,98,20,-90,52,-85,44,94,25,51,-27,37,41,-6,-30,-68,15,-23,11,-79,93,-68,-78,90,11,-41,-8,-17,-56,17,86,56,15,7,66,-56,-2,-13,-62,-77,-62,-12,37,55,81,-93,86,-27,-39,-3,-30,-46,6,-8,-79,-83,50,-10,-24,70,-93,-38,27,-2,45,-7,42,-57,79,56,-57,93,-56,79,48,-98,62,11,-48,-77,84,21,-47,-10,-87,-49,-17,40,40,35,10,23,97,-63,-79,19,6,39,62,-38,-27,81,-68,-7,60,79,-28,-1,-33,23,22,-48,-79,51,18,-66,-98,-98,50,41,13,-63,-59,10,-49,-38,-70,56,77,68,95,-73,26,-73,20,-14,83,91,61,-50,-9,-40,1,11,-88,-80,21,89,97,-29,8,10,-15,48,97,35,86,-96,-9,64,48,-37,90,-26,-10,-13,36,-27,-45,-3,-1,45,34,77,-66,22,73,54,11,70,-97,-81,-43,-13,44,-69,-78,30,-66,-11,-29,58,52,-61,-68,-81,25,44,-32,57,-81,66,2,52,43,35,-26,16,-33,61,-37,-54,80,-3,32,24,27,30,-69,38,-81,2,-4,47,17,5,42,-58,-51,-90,98,-33,76,-22,95,-4,89,-31,-87,-44,-69,-48,1,87,48,-90,-12,-24,39,18,-86,35,96,-14,-41,13,90,-98,32,-83,-89,7,-17,63,84,-21,-40,51,24,-51,83,31,0,-38,-5,-74,-29,59,1,87,-22,-9,-1,-49,76,57,41,44,35,-27,60,23,56,-80,-14,41,-2,22,-31,99,47,-48,7,-75,13,-97,-50,61,61,27,48,-84,94,-76,-56,70,57,84,-9,-7,-66,-49,-84,89,-29,-22,7,45,-99,75,21,24,-95,-71,48,17,-92,74,-22,45,1,-97,61,-5,-74,81,-57,83,42,33,-47,75,61,-55,41,-68,22,-51,53,-1,-99,-25,-76,-95,3,48,-1,-13,23,53,-68,-76,33,92,-4,35,50,38,18,-8,-52,47,-33,-91,91,85,-60,14,-89,93,89,-89,-55,89,92,47,38,-9,-66,-39,-79,-58,-39,53,-65,56,-11,61,-29,83,-46,19,31,-3,27,-1,-18,67,-87,-8,37,79,-20,58,68,-28,-18,-17,39,-8,43,59,33,81,13,44,37,-98,6,85,84,59,4,-8,-44,-69,91,15,74,80,83,-12,59,-37,-54,5,34,27,87,-50,-81,8,-90,52,-11,-1,-4,-97,0,78,87,-39,37,-32,30,70,-1,21,-38,-50,-22,-55,15,-85,8,60,19,-81,-35,-17,-31,-40,90,-45,-88,-44,53,-15,-41,-70,-37,-77,-33,77,-9,96,24,66,-6,85,92,72,-70,7,86,14,-32,-18,33,9,64,78,68,32,-90,57,87,62,-58,-77,68,-19,-54,-65,-42,13,-68,58,-44,25,43,-52,-26,73,55,-63,-13,-77,18,96,31,-40,51,-1,91,60,-44,55,22,-26,78,-10,32,-99,2,66,13,33,25,68,-65,-32,-84,-14,-82,70,22,5,69,-59,-22,-23,0,-70,53,-32,89,85,-77,-11,-40,77,55,68,77,-43,34,-33,66,-41,-88,-98,27,-72,-13,21,74,85,-74,21,-74,-19,97,2,10,50,46,-1,13,69,87,72,23,20,40,1,76,-49,67,43,10,79,21,-86,83,84,34,34,69,37,-45,72,-82,-70,-26,27,56,97,-97,-31,66,67,-82,-11,-13,57,66,-37,85,11,82,-5,-33,3,-15,-50,-13,95,60,-66,9,-84,-94,26,-78,-44,-70,77,-47,-90,-53,95,76,-36,-38,-60,98,-72,-21,83,15,-38,-45,81,41,16,-69,-94,11,91,-84,-79,83,-79,23,-95,-24,30,58,6,39,-95,1,-8,-54,62,31,-56,67,86,-96,-18,-75,-42,-36,66,73,-29,48,-39,-61,63,-42,98,60,81,-97,-64,11,61,18,-73,42,-80,18,87,58,-51,-69,2,-88,-66,84,-63,-32,-75,79,-82,-28,27,-21,11,-33,13,9,-73,-6,-11,-61,81,-73,57,-92,45,53,25,33,11,50,40,90,62,51,74,75,-81,75,54,-86,-53,-42,-8,34,1,-95,-79,27,-24,-14,42,-66,12,-24,-58,-66,-71,43,66,17,-29,-16,7,-90,-65,-42,84,-70,-90,15,-57,-67,49,11,67,-50,-7,64,53,68,-50,-5,78,38,71,96,71,76,40,15,-7,87,98,76,96,-90,-66,57,-61,-57,-51,-41,-47,97,69,-80,-53,-61,83,76,83,-90,-29,62,47,-81,58,18,95,-2,-67,-12,-38,-92,-35,-65,-83,-25,91,-44,-5,-83,-9,47,-86,-40,43,-63,-1,3,-87,-18,12,-39,-79,-41,-21,79,53,-26,-46,63,39,16,70,80,50,87,-45,19,-80,26,35,10,-27,26,46,92,62,-55,-5,52,4,-93,-87,1,-58,-9,-20,95,42,34,58,-19,-73,5,-39,53,-31,-8,-28,-12,95,84,97,-55,10,44,-62,-51,65,32,-99,-54,16,89,47,57,-42,-96,52,99,14,-13,-43,40,69,-6,-6,-62,85,42,26,80,26,0,-74,-87,-79,-60,-38,63,71,-61,85,-13,-71,9,-78,-14,13,50,-38,-73,-85,18,44,83,-88,-85,-79,73,56,23,31,-40,-99,33,-51,97,72,-13,60,20,26,46,84,31,-45,-94,93,67,55,-45,71,69,49,15,52,37,29,50,-13,-38,-50,-82,-2,-73,27,47,-75,-24,-66,84,96,36,7,80,-56,62,62,-63,6,17,-32,-46,-13,93,45,-84,30,-26,42,-82,13,92,-88,-89,-81,16,34,-57,91,45,-95,87,-42,11,44,2,-50,6,15,33,-76,83,86,-13,76,32,-21,-16,82,-78,-22,-28,90,-34,-40,-91,81,93,-71,73,15,-90,37,73,-3,-41,-48,47,64,66,-43,64,49,-57,-72,3,51,7,63,11,28,-82,82,18,-17,-58,3,-58,-87,8,-85,27,17,28,-23,-85,86,28,38,28,-5,94,-31,-79,-86,-3,0,65,80,-60,-24,8,-43,-65,-97,40,-23,-18,81,-11,90,72,92,-16,0,-30,-25,-36,97,-87,68,-31,83,-63,-33,97,10,66,39,-10,-93,91,74,-37,-74,53,79,-21,-64,37,67,-74,9,60,9,86,-70,84,-73,-96,73,94,-50,57,-69,16,31,18,-18,-53,-92,-35,-62,59,5,-60,12,-16,19,47,-78,-14,49,7,-77,-64,-7,-71,96,19,-67,69,-10,-18,3,-2,97,-89,-84,-44,-43,99,-2,-6,58,-97,11,-29,-14,-70,94,-16,-8,44,91,15,79,-39,20,75,57,52,21,-53,-89,-98,44,84,-88,36,-82,-31,36,15,39,-29,17,-50,41,79,-21,13,-36,71,-66,-68,-37,89,-8,82,41,-74,12,-38,-50,-1,-37,70,-39,-48,7,-22,20,-57,69,-41,13,-14,-14,-68,-58,64,21,5,12,54,13,51,43,-94,11,-16,-92,99,22,-43,-2,62,-72,58,-86,11,-87,33,53,81,68,-57,-56,-46,-49,-14,95,71,67,-16,2,-19,-87,-78,-37,0,-18,-30,-1,-95,4,96,66,31,32,79,-81,44,-11,48,3,-66,90,46,-12,-81,-91,-40,66,76,20,-54,-43,9,-33,19,-91,49,88,7,30,-8,-19,-4,99,-87,-48,-82,33,40,65,-64,73,33,59,-62,28,67,-26,-29,43,71,16,99,-20,83,18,-11,9,-16,72,-61,52,-47,34,29,-58,85,23,75,2,-34,87,-48,75,46,-33,3,-9,40,73,-66,-12,-10,-89,68,-50,5,-66,58,88,82,96,18,-64,7,-53,-23,-31,69,-71,47,-88,-83,98,86,39,-35,-34,-70,82,-60,-36,-30,6,-26,-85,55,55,-75,-10,44,84,-37,-38,-80,69,-15,-27,-85,-69,-21,61,-57,-5,59,-71,-66,-98,-5,-59,60,11,4,-93,93,54,98,48,9,99,-85,-70,83,-23,-32,79,-77,52,-47,-63,60,8,97,-97,-97,33,-92,-87,11,-21,-47,-29,66,33,-45,59,-36,-47,-16,50,-48,-2,79,-64,51,-75,-85,73,76,-56,-90,13,51,83,-8,30,17,-23,20,-72,55,49,-24,-1,-17,7,-42,23,59,42,-27,87,-83,-47,99,68,-46,91,18,-93,-88,28,20,40,-12,-88,-30,-95,-12,66,-90,-79,16,-38,19,75,68,76,-2,27,-5,71,-9,12,-99,-32,-43,-46,-41,74,-40,-53,-21,79,86,67,68,-66,48,-67,99,57,-47,15,-81,71,-33,86,25,65,-10,96,36,58,-15,13,-74,41,66,-39,-7,-97,7,71,59,-6,15,27,4,-36,59,3,-79,89,95,-83,37,-38,79,-38,-96,-53,-41,39,-95,43,-71,-93,-38,71,-33,54,74,50,2,10,-79,-82,-86,24,-19,49,-95,1,38,99,-6,-24,-62,-26,14,-58,20,49,57,1,-7,63,-16,31,34,50,-15,-15,-23,86,94,-2,-96,-92,98,-39,34,-97,62,-28,78,-67,24,93,6,-61,-65,-97,87,68,-20,-43,31,63,87,-57,-10,-51,27,67,-87,-1,-35,-84,-17,-60,-23,-83,-57,-84,-34,-79,-52,89,-86,31,-95,-75,10,69,70,90,-97,1,53,67,43,-56,-84,-52,87,-72,46,-71,-79,-71,-32,-26,-77,10,-34,-12,8,-10,-46,-2,-79,-41,0,8,-95,-30,-2,83,47,-72,50,-9,-29,43,15,-65,70,-39,-37,67,-34,31,-59,-12,-82,6,75,25,96,-70,-99,93,-35,0,1,-54,69,75,-71,16,-96,56,83,-49,-1,-2,-14,-31,35,48,-86,-98,-21,-46,-34,-3,37,-58,98,10,-52,98,3,-11,-2,81,11,-33,56,16,60,36,-28,43,87,47,-81,-50,93,53,97,-93,31,-46,-40,97,27,73,-84,25,-17,-60,1,63,5,98,44,-84,-57,-23,8,79,90,57,22,54,4,17,-96,-3,-29,-99,3,78,-69,40,52,57,13,67,-40,73,83,60,36,-12,35,-43,-20,54,10,88,33,0,45,-67,-46,-51,49,-43,23,96,-65,-74,52,-35,42,4,99,-67,-28,-41,-94,-45,-81,18,43,53,74,99,-15,-39,87,-82,61,9,-73,91,58,76,-74,-19,49,-63,-17,1,1,-97,-94,-23,-65,-46,35,-83,8,53,34,-72,-16,-15,-95,68,45,91,62,-17,1,89,-48,-64,42,-46,-7,-9,-10,52,69,67,54,74,-55,65,-72,79,58,12,10,-31,17,70,53,21,38,-24,-11,-23,35,89,-34,86,-98,-92,-60,-6,-24,6,-53,-55,-26,77,-81,18,20,-77,-26,-22,11,60,47,-72,30,-23,25,-55,52,-85,22,-12,80,87,-49,59,72,-32,-47,-52,73,-24,-8,-76,-69,-13,18,50,9,92,-95,96,52,51,-98,-40,-71,26,4,57,17,-74,-78,-25,90,-50,-66,39,17,-37,86,-33,39,-45,-9,69,41,-91,-4,-73,77,0,-77,7,-48,-76,66,-43,50,-30,90,-56,-27,-87,-5,-37,-38,28,-98,55,91,64,-78,7,-81,12,-47,36,-2,48,62,-25,-75,84,81,-47,-91,24,-14,35,94,-23,78,-56,-34,-49,-17,27,78,-16,-18,46,-75,-20,-70,-80,92,-18,55,-10,-93,17,41,-68,1,0,-39,-14,-76,47,-79,94,-76,76,-62,-11,-73,20,92,81,80,-49,28,-95,30,34,-99,22,-83,55,88,99,-28,7,-69,50,-93]; diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js new file mode 100644 index 00000000..3684740a --- /dev/null +++ b/book/interview-questions/max-subarray.js @@ -0,0 +1,54 @@ +// tag::description[] +/** + * Find the maximun sum of contiguous elements in an array. + * @examples + * maxSubArray([1, -3, 10, -5]); // => 10 + * maxSubArray([-3,4,-1,2,1,-5]); // => 6 + * @param {number[]} a - Array + */ +function maxSubArray(a) { +// end::description[] +// tag::solution[] + let max = -Infinity; + let local = 0; + + a.forEach((n) => { + local = Math.max(n, local + n); + max = Math.max(max, local); + }); + + return max; +} +// end::solution[] + +// tag::maxSubArrayBrute1[] +function maxSubArrayBrute1(nums) { + let max = -Infinity; + + for (let i = 0; i < nums.length; i++) { // O(n^3) + for (let j = i + 1; j <= nums.length; j++) { // O(n^2) + const sum = nums.slice(i, j).reduce((a, n) => n + a, 0); // O(n) + max = Math.max(max, sum); // O(1) + } + } + + return max; +} +// end::maxSubArrayBrute1[] + +// tag::maxSubArrayBrute2[] +function maxSubArrayBrute2(nums) { + let max = -Infinity; + + for (let i = 0; i < nums.length; i++) { // O(n) * O(n) + let local = 0; + for (let j = i; j < nums.length; j++) { // O(n) + local += nums[j]; + max = Math.max(max, local); + } + } + return max; +} +// end::maxSubArrayBrute2[] + +module.exports = { maxSubArrayBrute1, maxSubArrayBrute2, maxSubArray }; diff --git a/book/interview-questions/max-subarray.spec.js b/book/interview-questions/max-subarray.spec.js new file mode 100644 index 00000000..e8a43048 --- /dev/null +++ b/book/interview-questions/max-subarray.spec.js @@ -0,0 +1,16 @@ +const { maxSubArray, maxSubArrayBrute1, maxSubArrayBrute2 } = require('./max-subarray'); +const largeArray = require('./max-subarray.data'); + +describe('Max Subarray Sum', () => { + [maxSubArray, maxSubArrayBrute1, maxSubArrayBrute2].forEach((fn) => { + describe(`with ${fn.name}`, () => { + it('should work with small arrays', () => { + expect(fn([-2, 1, -3, 4, -1, 2, 1, -5, 4])).toEqual(6); + }); + + it('should work with large arrays', () => { + expect(fn(largeArray)).toEqual(4853); + }); + }); + }); +}); diff --git a/book/interview-questions/rotate-array-left.spec.js b/book/interview-questions/rotate-array-left.spec.js deleted file mode 100644 index 762b96a1..00000000 --- a/book/interview-questions/rotate-array-left.spec.js +++ /dev/null @@ -1,19 +0,0 @@ -const { rotateLeft, rotateLeftBruteForce } = require('./rotate-array-left'); - -describe('Rotate Left', () => { - describe('when data is small', () => { - it('should work with 1', () => { - expect(rotateLeft([1, 2, 3], 1)).toEqual([2, 3, 1]); - }); - - it('should work with 4', () => { - expect(rotateLeft([1, 2, 3, 4, 5], 4)).toEqual([5, 1, 2, 3, 4]); - }); - }); - - describe('when data is large', () => { - it('', () => { - - }); - }); -}); diff --git a/book/interview-questions/rotate-array-left.js b/lab/exercises/01-arrays/rotate-array-left.js similarity index 100% rename from book/interview-questions/rotate-array-left.js rename to lab/exercises/01-arrays/rotate-array-left.js diff --git a/lab/exercises/01-arrays/rotate-array-left.spec.js b/lab/exercises/01-arrays/rotate-array-left.spec.js new file mode 100644 index 00000000..990e1454 --- /dev/null +++ b/lab/exercises/01-arrays/rotate-array-left.spec.js @@ -0,0 +1,23 @@ +const { rotateLeft, rotateLeftBruteForce } = require('./rotate-array-left'); + +const largeArray = Array(1e6).fill(1).map((t) => t * Math.random()); + +[rotateLeft, rotateLeftBruteForce].forEach((fn) => { + xdescribe(`Rotate Left ${fn.name}`, () => { + describe('when data is small', () => { + it('should work with 1', () => { + expect(fn([1, 2, 3], 1)).toEqual([2, 3, 1]); + }); + + it('should work with 4', () => { + expect(fn([1, 2, 3, 4, 5], 4)).toEqual([5, 1, 2, 3, 4]); + }); + }); + + xdescribe('when data is large', () => { + it('should work at scale', () => { + expect(fn(largeArray, 75863)).toEqual(largeArray); + }); + }); + }); +}); diff --git a/package.json b/package.json index 1258285d..26f202ee 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "src/**/*.js" ], "scripts": { - "test": "jest", - "watch": "jest --watch --coverage", + "test": "jest --verbose", + "watch": "jest --watch --verbose --coverage", "coverage": "jest --coverage && open coverage/lcov-report/index.html", "coverage:win": "jest --coverage && cmd.exe /C start coverage/lcov-report/index.html", "lint": "npx eslint --fix --format codeframe src/", From 6ab8bc4449323b059888edf84d66c76c9e812f4e Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Fri, 21 Aug 2020 16:52:22 -0400 Subject: [PATCH 011/108] feat(book/array): add stock questions and solution --- book/D-interview-questions-solutions.asc | 63 ++++++++++++++++--- book/content/part02/array.asc | 18 +++++- book/interview-questions/buy-sell-stock.js | 36 +++++++++++ .../buy-sell-stock.spec.js | 19 ++++++ 4 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 book/interview-questions/buy-sell-stock.js create mode 100644 book/interview-questions/buy-sell-stock.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 422701b6..7c0c2ad5 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -6,28 +6,30 @@ === Solutions for Array Questions (((Interview Questions Solutions, Arrays))) -==== Max Subarray [[array-q-max-subarray]] +:leveloffset: -1 + +[#array-q-max-subarray] include::content/part02/array.asc[tag=array-q-max-subarray] -The first step, is making sure we understand the problem well. Let's do a basic examples: +The first step is making sure we understand the problem well. Let's do basic examples: ---- A = [-5, 6, 9, -8] B = [-1, 6, -3, 8] ---- -What's the subarrays with the maximum sum? For A, it will be `[6, 9]` and for B it will be `[6, -3, 8]`. +What's the subarray with the maximum sum? For A, it will be `[6, 9]` and for B, it will be `[6, -3, 8]`. -One intution could be to generate all possible subarrays, add them up and then pick the max number. +We could generate all possible subarrays, add them up, and then pick the max number. [source, javascript] ---- include::interview-questions/max-subarray.js[tag=maxSubArrayBrute1] ---- -This is a simple to understand however not very efficient. The runtime is `O(n^3)`. +This code is simple to understand; however, not very efficient. The runtime is `O(n^3)`. -If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way we don't have to revisit previous numebers again. +If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. [source, javascript] ---- @@ -44,4 +46,51 @@ include::interview-questions/max-subarray.js[tag=description] include::interview-questions/max-subarray.js[tag=solution] ---- -The runtime is `O(n)`! and a space complexity of `O(1)`. +The runtime is `O(n)` and a space complexity of `O(1)`. + + + + +[#array-q-buy-sell-stock] +include::content/part02/array.asc[tag=array-q-buy-sell-stock] + +There are multiple examples that we can simulate: bear markets (when prices are going down), bullish markets (when prices are going up), and zig-zag markets (when prices are going up and down). + +[source, javascript] +---- +// zig-zag market +maxProfit([5, 10, 5, 10]); // => 5 +// bullish market +maxProfit([1, 2, 3]); // => 2 +// bearish market +maxProfit([3, 2, 1]); // => 0 +---- + +During the bearish markets, the profit will always be 0. Since if you buy, we are only going to lose. + +We can do a brute force solution doing all combinations: + +[source, javascript] +---- +include::interview-questions/buy-sell-stock.js[tag=maxProfitBrute1] +---- + +The runtime for this solution is `O(n^2)`. + +A better solution is to eliminate the 2nd for loop and only do one pass. + +Algorithm: + +- Do one pass through all the prices + - Keep track of the minimum price seen so far. + - calculate `profit = currentPrice - minPriceSoFar` + - Keep track of the maximun profit seen so far. +- Return maxProfit. + +[source, javascript] +---- +include::interview-questions/buy-sell-stock.js[tag=description] +include::interview-questions/buy-sell-stock.js[tag=solution] +---- + +The runtime is `O(n)` and a space complexity of `O(1)`. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index c2f83e78..86cea9d5 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -279,8 +279,9 @@ To sum up, the time complexity of an array is: ==== Interview Questions (((Interview Questions, Arrays))) -===== Max Subarray // tag::array-q-max-subarray[] +===== Max Subarray + Given an array of integers, find the maximum sum of consecutive elements (subarray). // end::array-q-max-subarray[] @@ -293,4 +294,19 @@ include::../../interview-questions/max-subarray.js[tag=description] _Solution: <<array-q-max-subarray>>_ +// tag::array-q-buy-sell-stock[] +===== Best Time to Buy and Sell an Stock + +You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximun profit you can obtain? (Note: you have to buy first and then sell) +// end::array-q-buy-sell-stock[] + +[source, javascript] +---- +include::../../interview-questions/buy-sell-stock.js[tag=description] + // write you code here +} +---- + +_Solution: <<array-q-buy-sell-stock>>_ + // https://leetcode.com/problemset/algorithms/?topicSlugs=array diff --git a/book/interview-questions/buy-sell-stock.js b/book/interview-questions/buy-sell-stock.js new file mode 100644 index 00000000..47422ff0 --- /dev/null +++ b/book/interview-questions/buy-sell-stock.js @@ -0,0 +1,36 @@ +// tag::description[] +/** + * Find the max profit from buying and selling a stock given their daily prices. + * @examples + * maxProfit([5, 10, 5, 10]); // => 5 + * maxProfit([1, 2, 3]); // => 2 + * maxProfit([3, 2, 1]); // => 0 + * @param {number[]} prices - Array with daily stock prices + */ +function maxProfit(prices) { +// end::description[] +// tag::solution[] + let max = 0; + let local = Infinity; + for (let i = 0; i < prices.length; i++) { + local = Math.min(local, prices[i]); + max = Math.max(max, prices[i] - local); + } + return max; +} +// end::solution[] + +// tag::maxProfitBrute1[] +function maxProfitBrute1(prices) { + let max = 0; + for (let i = 0; i < prices.length; i++) { + for (let j = i + 1; j < prices.length; j++) { + max = Math.max(max, prices[j] - prices[i]); + } + } + return max; +} +// end::maxProfitBrute1[] + + +module.exports = { maxProfitBrute1, maxProfit }; diff --git a/book/interview-questions/buy-sell-stock.spec.js b/book/interview-questions/buy-sell-stock.spec.js new file mode 100644 index 00000000..bce80375 --- /dev/null +++ b/book/interview-questions/buy-sell-stock.spec.js @@ -0,0 +1,19 @@ +const { maxProfitBrute1, maxProfit } = require('./buy-sell-stock'); + +describe('Best Time to Buy and Sell Stocks', () => { + [maxProfitBrute1, maxProfit].forEach((fn) => { + describe(`with ${fn.name}`, () => { + it('should work with bullish markets', () => { + expect(fn([1, 2, 3])).toEqual(2); + }); + + it('should work with bearish markets', () => { + expect(fn([3, 2, 1])).toEqual(0); + }); + + it('should work with zig-zag markets', () => { + expect(fn([5, 10, 5, 10, 5, 10, 5, 10])).toEqual(5); + }); + }); + }); +}); From dbdef2141ac1449c649cc76790d7990374e78808 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Sat, 22 Aug 2020 09:01:46 -0400 Subject: [PATCH 012/108] fix(book): workaround for c++ issue in asciidoc See:https://github.com/asciidoctor/asciidoctor/issues/1208 --- book/content/part02/array.asc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 86cea9d5..4b2c2c7e 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -17,8 +17,8 @@ TIP: Strings are a collection of Unicode characters and most of the array concep .Fixed vs. Dynamic Size Arrays **** -Some programming languages have fixed size arrays like Java and C++. -Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in C++ and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. +Some programming languages have fixed size arrays like Java and {cpp}. +Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. **** Arrays look like this: From e5739297bed36921f2db86fbf79ba04b655cca79 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Sat, 22 Aug 2020 13:09:57 +0000 Subject: [PATCH 013/108] :bookmark: chore(release): 1.11.0 # [1.11.0](https://github.com/amejiarosario/dsa.js/compare/1.10.0...1.11.0) (2020-08-22) ### Bug Fixes * **book:** multiple broken links and bump epub version ([57960e2](https://github.com/amejiarosario/dsa.js/commit/57960e2c4f483e779e8344e07406ce7d67d4d9b8)), closes [#60](https://github.com/amejiarosario/dsa.js/issues/60) * **book:** workaround for c++ issue in asciidoc ([dbdef21](https://github.com/amejiarosario/dsa.js/commit/dbdef2141ac1449c649cc76790d7990374e78808)) ### Features * **book:** add appendix D with interview question solutions ([ca119f2](https://github.com/amejiarosario/dsa.js/commit/ca119f2b2fe5e4392a0b13278b5a6ba9e907952c)) * **book:array:** add solutions for interview questions ([b5a00dd](https://github.com/amejiarosario/dsa.js/commit/b5a00dded45a1f4eeab3bbbdd68ccbcbf02419d3)) * **book/array:** add max subarray questions and solution ([5935b95](https://github.com/amejiarosario/dsa.js/commit/5935b95ea761402b296e5a4fbd6e3643714bcaf9)) * **book/array:** add stock questions and solution ([6ab8bc4](https://github.com/amejiarosario/dsa.js/commit/6ab8bc4449323b059888edf84d66c76c9e812f4e)) --- CHANGELOG.md | 16 ++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52803a7c..f68e54e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# [1.11.0](https://github.com/amejiarosario/dsa.js/compare/1.10.0...1.11.0) (2020-08-22) + + +### Bug Fixes + +* **book:** multiple broken links and bump epub version ([57960e2](https://github.com/amejiarosario/dsa.js/commit/57960e2c4f483e779e8344e07406ce7d67d4d9b8)), closes [#60](https://github.com/amejiarosario/dsa.js/issues/60) +* **book:** workaround for c++ issue in asciidoc ([dbdef21](https://github.com/amejiarosario/dsa.js/commit/dbdef2141ac1449c649cc76790d7990374e78808)) + + +### Features + +* **book:** add appendix D with interview question solutions ([ca119f2](https://github.com/amejiarosario/dsa.js/commit/ca119f2b2fe5e4392a0b13278b5a6ba9e907952c)) +* **book:array:** add solutions for interview questions ([b5a00dd](https://github.com/amejiarosario/dsa.js/commit/b5a00dded45a1f4eeab3bbbdd68ccbcbf02419d3)) +* **book/array:** add max subarray questions and solution ([5935b95](https://github.com/amejiarosario/dsa.js/commit/5935b95ea761402b296e5a4fbd6e3643714bcaf9)) +* **book/array:** add stock questions and solution ([6ab8bc4](https://github.com/amejiarosario/dsa.js/commit/6ab8bc4449323b059888edf84d66c76c9e812f4e)) + # [1.10.0](https://github.com/amejiarosario/dsa.js/compare/1.9.0...1.10.0) (2020-07-28) diff --git a/package-lock.json b/package-lock.json index 78ca6f10..c148c0af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.10.0", + "version": "1.11.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 26f202ee..777f62aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.10.0", + "version": "1.11.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From f12551102948753b13ee6ee7ad2857e85153ceab Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Mon, 24 Aug 2020 11:23:42 -0400 Subject: [PATCH 014/108] chore(build): dockerfile --- .vscode/settings.json | 14 -------------- book/config | 2 +- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 035ef5b2..1405e3d2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,3 @@ { - "workbench.colorCustomizations": { - "activityBar.background": "#fbed80", - "activityBar.foreground": "#15202b", - "activityBar.inactiveForeground": "#15202b99", - "activityBarBadge.background": "#06b9a5", - "activityBarBadge.foreground": "#15202b", - "titleBar.activeBackground": "#f9e64f", - "titleBar.inactiveBackground": "#f9e64f99", - "titleBar.activeForeground": "#15202b", - "titleBar.inactiveForeground": "#15202b99", - "statusBar.background": "#f9e64f", - "statusBarItem.hoverBackground": "#f7df1e", - "statusBar.foreground": "#15202b" - }, "peacock.color": "#f9e64f" } diff --git a/book/config b/book/config index f657e9bf..4389b4ad 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit f657e9bf4325d4987a30cfc47ad2bbc4bda6b23c +Subproject commit 4389b4adf8c37cba0b40c3d5679da81e0b9838a6 From 738d6f3423a26451766ace84dcfe2e5d12e4dae1 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 24 Aug 2020 14:56:27 -0400 Subject: [PATCH 015/108] chore(build): add Dockerfile --- Dockerfile | 1 - book/config | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index bb7dbd1b..84cdc3eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,6 @@ RUN bundle -v RUN apt-get update && apt-get install -y \ graphviz \ - cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev ttf-lyx \ graphicsmagick-imagemagick-compat graphicsmagick-libmagick-dev-compat RUN cd book/config && bundle install diff --git a/book/config b/book/config index 4389b4ad..1216accf 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit 4389b4adf8c37cba0b40c3d5679da81e0b9838a6 +Subproject commit 1216accfbd750b835ba92c196aa20ddd3414c515 From 69f284d913ba5e1f67100e9a8a7764b47c482248 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 24 Aug 2020 15:05:22 -0400 Subject: [PATCH 016/108] chore(build): use jest config --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 777f62aa..641276ff 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,10 @@ "scripts": { "test": "jest --verbose", "watch": "jest --watch --verbose --coverage", + "ci": "npx eslint src/ && jest --coverage", "coverage": "jest --coverage && open coverage/lcov-report/index.html", "coverage:win": "jest --coverage && cmd.exe /C start coverage/lcov-report/index.html", "lint": "npx eslint --fix --format codeframe src/", - "ci": "npx eslint src/ && jest src/ --coverage", "semantic-release": "semantic-release", "release:check": "semantic-release --dry-run" }, From db10bf733de9fb5baabb5264bc06606420cc464f Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 24 Aug 2020 15:10:18 -0400 Subject: [PATCH 017/108] chore(build): update ruby version --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f7c264fa..551c07d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,7 +52,7 @@ jobs: # a collection of steps docs: docker: - - image: circleci/ruby:2.5.3-stretch-node + - image: circleci/ruby:2.7.1-buster-node environment: NOKOGIRI_USE_SYSTEM_LIBRARIES: true steps: From d3faa71b774a111ad0853c4b0fe52a17209a0175 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 24 Aug 2020 15:12:44 -0400 Subject: [PATCH 018/108] chore(build): remove deprecated dep --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 551c07d9..b2fcb55b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -84,7 +84,7 @@ jobs: # a collection of steps - run: name: Bundle Install.pre - needed for mathematical -> 'asciidoctor-mathematical' gem - command: sudo apt-get -qq -y install cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev ttf-lyx + command: sudo apt-get -qq -y install cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev - run: name: Bundle Install.pre - install GraphicsMagick for 'prawn-gmagick' gem From ca4bf45369ef772f4861e7619d3ea74ddc41cde4 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 26 Aug 2020 16:32:13 -0400 Subject: [PATCH 019/108] feat(book/exercises): interview q&a for linked lists and stacks (#69) * --wip-- [skip ci] * feat(book/linkedlist): add question solution * solution to linkedList problem 2 * LL-2 solution * stack problem and solution * fix italic issue with fira code * stack-2: q & a * gramar fixes --- book/D-interview-questions-solutions.asc | 206 +++++++++++++++++- book/config | 2 +- book/content/part02/array.asc | 34 +-- book/content/part02/linked-list.asc | 93 +++++--- book/content/part02/stack.asc | 54 ++++- .../interview-questions/daily-temperatures.js | 48 ++++ .../daily-temperatures.spec.js | 21 ++ .../linkedlist-same-data.js | 83 +++++++ .../linkedlist-same-data.spec.js | 41 ++++ book/interview-questions/max-subarray.js | 1 + book/interview-questions/merge-lists.js | 37 ++++ book/interview-questions/merge-lists.spec.js | 44 ++++ book/interview-questions/valid-parentheses.js | 27 +++ .../valid-parentheses.spec.js | 23 ++ 14 files changed, 658 insertions(+), 56 deletions(-) create mode 100644 book/interview-questions/daily-temperatures.js create mode 100644 book/interview-questions/daily-temperatures.spec.js create mode 100644 book/interview-questions/linkedlist-same-data.js create mode 100644 book/interview-questions/linkedlist-same-data.spec.js create mode 100644 book/interview-questions/merge-lists.js create mode 100644 book/interview-questions/merge-lists.spec.js create mode 100644 book/interview-questions/valid-parentheses.js create mode 100644 book/interview-questions/valid-parentheses.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 7c0c2ad5..5fe1acf1 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -1,3 +1,4 @@ +<<< [appendix] [[d-interview-questions-solutions]] == Interview Questions Solutions @@ -29,7 +30,7 @@ include::interview-questions/max-subarray.js[tag=maxSubArrayBrute1] This code is simple to understand; however, not very efficient. The runtime is `O(n^3)`. -If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. +Notice we're adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. [source, javascript] ---- @@ -46,7 +47,7 @@ include::interview-questions/max-subarray.js[tag=description] include::interview-questions/max-subarray.js[tag=solution] ---- -The runtime is `O(n)` and a space complexity of `O(1)`. +The runtime is `O(n)` and space complexity of `O(1)`. @@ -93,4 +94,203 @@ include::interview-questions/buy-sell-stock.js[tag=description] include::interview-questions/buy-sell-stock.js[tag=solution] ---- -The runtime is `O(n)` and a space complexity of `O(1)`. +The runtime is `O(n)` and space complexity of `O(1)`. + + + +:leveloffset: +1 + +=== Solutions for Linked List Questions +(((Interview Questions Solutions, Linked Lists))) + +:leveloffset: -1 + + + + +[#linkedlist-q-merge-lists] +include::content/part02/linked-list.asc[tag=linkedlist-q-merge-lists] + +We need to visit each node in both lists and merge them in ascending order. Note: We don't need to copy the values nor create new nodes. + +Another case to take into consideration is that lists might have different lengths. So, if one list runs out, we have to keep taking elements from the remaining list. + +*Algorithm*: + +- Have a pointer for each list +- While there's a pointer that is not null, visite them + - Compare each list node's value and take the smaller one. + - Advance the pointer of the taken node to the next one. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/merge-lists.js[tag=description] +include::interview-questions/merge-lists.js[tag=solution] +---- + +Notice that we used a "dummy" node or "sentinel node" to have some starting point for the final list. + +*Complexity Analysis*: + +- Time: `O(m+n)`. Visiting each node from the list 1 and list 2 has a time complexity `O(m + n)`. `m` and `n` represent each list's length. +- Space: `O(1)`. We reuse the same nodes and only change their `next` pointers. We only create one additional node, "the sentinel node." + + +[#linkedlist-q-linkedlist-same-data] +include::content/part02/linked-list.asc[tag=linkedlist-q-linkedlist-same-data] + +We are given two linked lists that contain string data. We want to know if the concatenated strings from each list are the same. + +The tricky part is that the same data can be distributed differently on the linked lists: + +---- +L1: he -> ll -> o +L2: h -> e -> llo +---- + +One naive approach could be to go through each list's node and concatenate the strings. Then, we can check if they are equal. + +[source, javascript] +---- +include::interview-questions/linkedlist-same-data.js[tag=hasSameDataBrute1] +---- + +Notice that the problem mentions that lists could be huge (millions of nodes). If the first character on each list is different, we are unnecessarily computing millions of nodes, when a straightforward check will do the job. + +A better way to solve this problem is iterating over each character on both lists, and when we found mistmatch, we return `false` immediately. If they are the same, we still have to visit all of them. + +*Algorithm*: + +- Set a pointer to iterate over each node in the lists. +- For each node, have an index (starting at zero) and compare if both lists have the same data. + - When the index reaches the last character on the current node, we move to the next node. + - If we found that a character from one list doesn't match the other, we return `false`. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/linkedlist-same-data.js[tag=description] +include::interview-questions/linkedlist-same-data.js[tag=solution] +---- + +The function `findNextPointerIndex` is a helper to navigate each character on a linked list. +Notice, that we increase the index (`i + 1`) on each iteration. +If the index overflows, it moves to the next node and reset the index to zero. + + + +*Complexity Analysis*: + +- Time: `O(n)`. We go over all the characters on each list +- Space: `O(1)`. Only using pointers and no auxiliary data structures. + + + +:leveloffset: +1 + +=== Solutions for Stack Questions +(((Interview Questions Solutions, Stack))) + +:leveloffset: -1 + +[#stack-q-valid-parentheses] +include::content/part02/stack.asc[tag=stack-q-valid-parentheses] + +.We need to validate that brackets are properly opened and closed, following these rules: +- An opened bracket must be close by the same type. +- Open brackets mush be closed in the correct order. + +This is a parsing problem, and usually, stacks are good candidates for them. + +*Algorithm*: + +- Create a mapping for each opening bracket, to its closing counterpart. +- Iterate through the string + - When we found an opening bracket, insert the corresponding closing bracket into the stack. + - When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. +- Check the stack is empty. If there's a leftover, it means that something didn't close properly. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/valid-parentheses.js[tag=description] +include::interview-questions/valid-parentheses.js[tag=solution] +---- + +*Complexity Analysis*: + +- Time: `O(n)`. We iterate over each character of the string. +- Space: `O(n)`. We use an auxiliary stack. + + + +[#stack-q-daily-temperatures] +include::content/part02/stack.asc[tag=stack-q-daily-temperatures] + +The first solution that might come to mind it's using two for loops. For each element, we have visit each temperature ahead to find a bigger one. + +[source, javascript] +---- +include::interview-questions/daily-temperatures.js[tag=dailyTemperaturesBrute1] +---- + +This solution is an `O(n^2)`. Can we do better? We can! + +Here's an idea: start backward, so we know when there's a warmer temperature beforehand. The last element is always 0 (because there are no more temperatures ahead of it). We can place each element's index that we visit on a stack. If the current weather is bigger than the stack top, we remove it until a bigger one remains or the stack is empty. If the stack has a value, we calculate the number of days ahead. Otherwise, it is 0. + +*Algorithm*: + +- Traverse the daily temperatures backward + - Push each temperature to a stack. + - While the current temperature is larger than the one at the top of the stack, pop it. + - If the stack is empty, then there's no warmer weather ahead, so it's 0. + - If the stack has an element, calculate the index delta. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/daily-temperatures.js[tag=description] +include::interview-questions/daily-temperatures.js[tag=solution] +---- + +The stack contains the indexes rather than the temperatures themselves. + +*Complexity Analysis*: + +- Time: `O(n)`. We visit each element on the array once. +- Space: `O(1)`. The worst-case scenario is ascending order without duplicates. The stack will hold at most 70 items (100 - 30). If we didn't have the range restriction, then space complexity would be `O(n)`. + + + +// [#linkedlist-q-FILENAME] +// include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] + +// RESTATE REQUIREMENTS AND DESCRIPTIONS + +// *Algorithm*: + +// - STEP 1 +// - STEP 2 +// - STEP 2.1 +// - STEP 2.2 + +// *Implementation*: + +// [source, javascript] +// ---- +// include::interview-questions/FILENAME.js[tag=description] +// include::interview-questions/FILENAME.js[tag=solution] +// ---- + +// IMPLEMENTATION NOTES + +// *Complexity Analysis*: + +// - Time: `O(?)`. WHY? +// - Space: `O(?)`. WHY? + diff --git a/book/config b/book/config index 1216accf..b4dd20d3 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit 1216accfbd750b835ba92c196aa20ddd3414c515 +Subproject commit b4dd20d3f92beb4dd48445464e1734819a9cd40a diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 4b2c2c7e..e03863e5 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -7,18 +7,18 @@ endif::[] === Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) -Arrays are one of the most used data structures. You probably have used it a lot but are you aware of the runtimes of `splice`, `shift`, `indexOf` and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. +Arrays are one of the most used data structures. You probably have used it a lot, but are you aware of the runtimes of `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics An array is a collection of things (strings, characters, numbers, objects, etc.). They can be many or zero. -TIP: Strings are a collection of Unicode characters and most of the array concepts apply to them. +TIP: Strings are a collection of Unicode characters, and most of the array concepts apply to them. .Fixed vs. Dynamic Size Arrays **** -Some programming languages have fixed size arrays like Java and {cpp}. -Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. +Some programming languages have fixed-size arrays like Java and {cpp}. +Fixed-size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. Those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. **** Arrays look like this: @@ -26,11 +26,11 @@ Arrays look like this: .Array representation: each value is accessed through an index. image::image16.png[image,width=388,height=110] -Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look into the different operations that we can do with arrays. +Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look at the different operations that we can do with arrays. ==== Insertion -Arrays are built-in into most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: +Arrays are built-in in most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: .Inserting elements into an array [source, javascript] @@ -45,7 +45,7 @@ array2[100] = 2; array2 // [empty × 3, 1, empty × 96, 2] ---- -Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers but the length is 101 and there are 99 empty spaces. +Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers, but the length is 101, and there are 99 empty spaces. [source, javascript] ---- @@ -54,7 +54,7 @@ console.log(array2); // [empty × 3, 1, empty × 96, 2] ---- -The runtime for inserting elements using index is always is constant: _O(1)_. +The runtime for inserting elements using an index is always is constant: _O(1)_. ===== Inserting at the beginning of the array @@ -72,7 +72,7 @@ As you can see, `2` was at index 0, now was pushed to index 1, and everything el .JavaScript built-in `array.unshift` **** -The `unshift()` method adds one or more elements to the beginning of an array and returns the new length of the array. +The `unshift()` method adds one or more elements to the beginning of an array and returns the array's new length. Runtime: O(n). **** @@ -90,11 +90,11 @@ array.splice(1, 0, 111); // ↪️ [] <1> ---- <1> at position `1`, delete `0` elements and insert `111`. -The Big O for this operation would be *O(n)* since in worst case it would move most of the elements to the right. +The Big O for this operation would be *O(n)* since, in the worst case, it would move most of the elements to the right. .JavaScript built-in `array.splice` **** -The `splice()` method changes the contents of an array by removing existing elements or adding new elements. Splice returns an array containing the deleted elements. +The `splice()` method changes an array's contents by removing existing elements or adding new elements. Splice returns an array containing the deleted items. Runtime: O(n). **** @@ -116,7 +116,7 @@ Adding to the tail of the array doesn’t change other indexes. E.g., element 2 .JavaScript built-in `array.push` **** -The `push()` method adds one or more elements to the end of an array and returns the new length of the array. +The `push()` method adds one or more elements to the end of an array and returns the array's new length. Runtime: O(1). **** @@ -124,7 +124,7 @@ Runtime: O(1). [[array-search-by-value]] ==== Searching by value and index -Searching by index is very easy using the `[]` operator: +Searching by the index is very easy using the `[]` operator: .Search by index [source, javascript] @@ -185,7 +185,7 @@ We would have to loop through the whole array (worst case) or until we find it: ==== Deletion -There are three possible scenarios for deletion (similar to insertion): removing at the beginning, middle or end. +There are three possible deletion scenarios (similar to insertion): removing at the beginning, middle, or end. ===== Deleting element from the beginning @@ -224,7 +224,7 @@ array.splice(2, 1); // ↪️[2] <1> ---- <1> delete 1 element at position 2 -Deleting from the middle might cause most of the elements of the array to move up one position to fill in for the eliminated item. Thus, runtime: O(n). +Deleting from the middle might cause most of the array elements to move up one position to fill in for the eliminated item. Thus, runtime: O(n). ===== Deleting element from the end @@ -282,7 +282,7 @@ To sum up, the time complexity of an array is: // tag::array-q-max-subarray[] ===== Max Subarray -Given an array of integers, find the maximum sum of consecutive elements (subarray). +*AR-1*) _Given an array of integers, find the maximum sum of consecutive elements (subarray)._ // end::array-q-max-subarray[] [source, javascript] @@ -297,7 +297,7 @@ _Solution: <<array-q-max-subarray>>_ // tag::array-q-buy-sell-stock[] ===== Best Time to Buy and Sell an Stock -You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximun profit you can obtain? (Note: you have to buy first and then sell) +*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 6e3f3f98..7790c3e4 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -23,7 +23,7 @@ Each element or node is *connected* to the next one by a reference. When a node .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. image::image19.png[image,width=498,height=97] -Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. [[doubly-linked-list]] ==== Doubly Linked List @@ -47,9 +47,9 @@ include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] ==== Linked List vs. Array -Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. +Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. When it is getting full, it has to create a bigger array (usually 2x) and copy all the elements. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor large chunks of memory have to be booked beforehand like arrays. Linked List is more on a "grow as you go" basis. +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. It has to create a larger array (usually 2x) and copy all the elements when it is getting full. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor are large chunks of memory booked beforehand like arrays. Linked List is more on a "grow as you go" basis. Another difference is that adding/deleting at the beginning on an array takes O(n); however, the linked list is a constant operation O(1) as we will implement later. @@ -70,7 +70,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=constructor] } ---- -In our constructor, we keep a reference of the `first` and also `last` node for performance reasons. +In our constructor, we reference the `first` and `last` node for performance reasons. ==== Searching by value @@ -84,7 +84,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByValue If we find the element, we will return the index otherwise `undefined`. The runtime for locating an item by value is _O(n)_. -For finding elements by value or position we are using the following helper function: +For finding elements by value or position, we are using the following helper function: .Find elements using a callback [source, javascript] @@ -92,8 +92,8 @@ For finding elements by value or position we are using the following helper func include::{codedir}/data-structures/linked-lists/linked-list.js[tag=find, indent=0] ---- <1> We initialize two variables `current` to the first node and `position` to keep track of the index. -<2> While `current` node is not null we keep going. -<3> On each loop we move to the next node and increment the index. +<2> While the `current` node is not null, we keep going. +<3> On each loop, we move to the next node and increment the index. <4> We invoke the callback passing the current position and node. If the callback returns something, then we stop and return that value. <5> Return whatever result we got from the callback. E.g., we can return the index or the node itself or any other calculation. @@ -101,7 +101,7 @@ We are going to use this `find` method again to implement searching by index. ==== Searching by index -Searching by index is very similar, we iterate through the list until we find the element that matches the position. +Searching by an index is very similar, we iterate through the list until we find the element that matches the position. .Linked List's searching by index (position) [source, javascript] @@ -109,22 +109,22 @@ Searching by index is very similar, we iterate through the list until we find th include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByIndex, indent=0] ---- -If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar. If you want to take a look at the whole implementation, https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[click here]. +If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar; you want to take a look at the https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[full implementation]. ==== Insertion -Similar to the array, with a linked list you can add elements at the beginning, end or anywhere in the middle of the list. So, let's implement each case. +In a linked list, you can add elements at the beginning, end, or anywhere in the middle of the list. So, let's implement each case. [[linked-list-inserting-beginning]] ===== Inserting elements at the beginning of the list -We are going to use the `Node` class to create a new element and stick it at the beginning of the list as shown below. +We will use the `Node` class to create a new element and stick it at the beginning of the list, as shown below. .Insert at the beginning by linking the new node with the current first node. image::image23.png[image,width=498,height=217] -To insert at the beginning, we create a new node with the next reference to the current first node. Then we make first the new node. In code, it would look something like this: +To insert at the beginning, we create a new node with the next reference to the current first node. Then we first make the new node. In code, it would look something like this: .Add item to the beginning of a Linked List [source, javascript] @@ -137,7 +137,7 @@ As you can see, we create a new node and make it the first one. ===== Inserting element at the end of the list -Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item in the list. Otherwise, you would have to iterate through the whole list. +Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item. Otherwise, you would have to iterate through the whole list. .Add element to the end of the linked list image::image24.png[image,width=498,height=208] @@ -148,12 +148,12 @@ image::image24.png[image,width=498,height=208] include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addLast, indent=0] ---- -If there’s no element in the list yet, the first and last node would be the same. If there’s something, then, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. +If there’s no element in the list yet, the first and last node would be the same. If there’s something, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. ===== Inserting element at the middle of the list -For inserting an element at the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. +For inserting an element in the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. .There are 4 references to update: . New node's `next`. @@ -168,7 +168,7 @@ Let’s do an example with the following doubly linked list: art <-> dog <-> cat ---- -We want to insert the `new` node in the 2^nd^ position. For that we first create the "new" node and update the references around it. +We want to insert the `new` node in the 2^nd^ position. For that, we first create the "new" node and update the references around it. .Inserting node in the middle of a doubly linked list. image::image25.png[image,width=528,height=358] @@ -181,11 +181,11 @@ Take a look into the implementation of https://github.com/amejiarosario/dsa.js/b include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addMiddle, indent=0] ---- <1> If the new item goes to position 0, then we reuse the `addFirst` method, and we are done! -<2> However, if we are adding to the last position, then we reuse the `addLast` method, and done! -<3> Adding `newNode` to the middle: First, create the `new` node only if the position exists. Take a look at <<Searching by index>> to see `get` implementation. +<2> However, if we add to the last position, we reuse the `addLast` method and done! +<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <<Searching by index>> to see `get` implementation. <4> Set newNode `previous` reference. <5> Set newNode `next` link. -<6> No other node in the list is pointing to `newNode`, so we have to make the prior element point to `newNode`. +<6> No other node in the list points to `newNode`, so we have to make the prior element point to `newNode`. <7> Make the next element point to `newNode`. Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and make them point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `get` method. @@ -219,7 +219,7 @@ Removing the last element from the list would require to iterate from the head u image::image27.png[image,width=528,height=221] -For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat”. Since nothing is pointing to “cat”, it is out of the list and eventually is deleted from memory by the garbage collector. +For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat.” Since nothing is pointing to “cat” it is out of the list and eventually is deleted from memory by the garbage collector. .Linked List's remove from the end of the list [source, javascript] @@ -228,7 +228,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeLast, i ---- -The code is very similar to `removeFirst`, but instead of first we update `last` reference, and instead of nullifying `previous` we nullify its `next` reference. +The code is very similar to `removeFirst`, but instead of first, we update `last` reference, and instead of nullifying `previous`, we nullify its `next` reference. ===== Deleting element from the middle @@ -238,7 +238,7 @@ To remove a node from the middle, we make the surrounding nodes to bypass the on image::image28.png[image,width=528,height=259] -In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art”, totally bypassing “dog”. +In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art,” totally bypassing “dog.” Let’s implement it: @@ -252,7 +252,7 @@ Notice that we are using the `get` method to get the node at the current positio ==== Linked List Complexity vs. Array Complexity -So far, we have seen two liner data structures with different use cases. Here’s a summary: +So far, we have seen two-liner data structures with different use cases. Here’s a summary: (((Tables, Linear DS, Array/Lists complexities))) // tag::table[] @@ -268,9 +268,9 @@ So far, we have seen two liner data structures with different use cases. Here’ (((Linear))) (((Runtime, Linear))) -If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly linked list is *O(1)*. +If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly-linked list is *O(1)*. -Comparing an array with a doubly linked list, both have different use cases: +Comparing an array with a doubly-linked list, both have different use cases: Use arrays when: @@ -282,10 +282,45 @@ Use a doubly linked list when: * You want to access elements in a *sequential* manner only like <<part02-linear-data-structures#stack>> or <<part02-linear-data-structures#queue>>. * You want to insert elements at the start and end of the list. The linked list has O(1) while array has O(n). -* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go”. +* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” -For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we are going use that. +For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. -==== Linked List Exercises +==== Interview Questions +(((Interview Questions, Arrays))) -1) Merge two sorted lists into one (and keep them sorted) + + + +// tag::linkedlist-q-merge-lists[] +===== Merge Linked Lists into One + +*LL-1*) _Merge two sorted lists into one (and keep them sorted)_ +// end::linkedlist-q-merge-lists[] + +[source, javascript] +---- +include::../../interview-questions/merge-lists.js[tag=description] + // write you code here +} +---- + +_Solution: <<linkedlist-q-merge-lists>>_ + + + + +// tag::linkedlist-q-linkedlist-same-data[] +===== Check if two strings lists are the same + +*LL-2*) _Given two linked lists with strings, check if are the same_ +// end::linkedlist-q-linkedlist-same-data[] + +[source, javascript] +---- +include::../../interview-questions/linkedlist-same-data.js[tag=description] + // write you code here +} +---- + +_Solution: <<linkedlist-q-linkedlist-same-data>>_ diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index 81ced6f2..02643814 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -11,7 +11,7 @@ endif::[] (((LIFO))) The stack is a data structure that restricts the way you add and remove data. It only allows you to insert and retrieve in a *Last-In-First-Out* (LIFO) fashion. -An analogy is to think that the stack is a rod and the data are discs. You can only take out the last one you put in. +An analogy is to think that the stack is a rod, and the data are discs. You can only take out the last one you put in. .Stack data structure is like a stack of disks: the last element in is the first element out image::image29.png[image,width=240,height=238] @@ -20,7 +20,7 @@ image::image29.png[image,width=240,height=238] As you can see in the image above, If you insert the disks in the order `5`, `4`, `3`, `2`, `1`, then you can remove them in `1`, `2`, `3`, `4`, `5`. -The stack inserts items to the end of the collection and also removes from the end. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. +The stack inserts items to the end of the collection and also removes it from the rear. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. .Stack's constructor [source, javascript] @@ -30,7 +30,7 @@ include::{codedir}/data-structures/stacks/stack.js[tag=constructor] } ---- -As you can see in the stack constructor, we are using a linked list as the underlying data structure. +As you can see in the stack constructor, we use a linked list as the underlying data structure. Let's now develop the insert and remove operations in a stack. @@ -48,7 +48,7 @@ We are returning `this`, in case we want to chain multiple add commands. ==== Deletion -Deleting is straightforward as well. +Deleting is straightforward, as well. .Stack's remove [source, javascript] @@ -56,7 +56,7 @@ Deleting is straightforward as well. include::{codedir}/data-structures/stacks/stack.js[tag=remove, indent=0] ---- -This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the full implementation https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[here]. +This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[full implementation]. ==== Implementation Usage @@ -68,7 +68,7 @@ We can use our stack implementation as follows: include::{codedir}/data-structures/stacks/stack.js[tag=snippet, indent=0] ---- -As you can see if we add new items they will be the first to go out to honor LIFO. +As you can see, if we add new items, they will be the first to go out to honor LIFO. ==== Stack Complexity @@ -85,3 +85,45 @@ Implementing the stack with an array and linked list would lead to the same time // end::table[] It's not very common to search for values on a stack (other Data Structures are better suited for this). Stacks are especially useful for implementing <<part03-graph-data-structures#dfs-tree, Depth-First Search>>. + + +==== Interview Questions +(((Interview Questions, Arrays))) + + + + + +// tag::stack-q-valid-parentheses[] +===== Validate Parentheses / Braces / Brackets + +*ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ +// end::stack-q-valid-parentheses[] + +[source, javascript] +---- +include::../../interview-questions/valid-parentheses.js[tag=description] + // write you code here +} +---- + +_Solution: <<stack-q-valid-parentheses>>_ + + + + + +// tag::stack-q-daily-temperatures[] +===== Daily Temperaturs + +*ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ +// end::stack-q-daily-temperatures[] + +[source, javascript] +---- +include::../../interview-questions/daily-temperatures.js[tag=description] + // write you code here +} +---- + +_Solution: <<stack-q-daily-temperatures>>_ diff --git a/book/interview-questions/daily-temperatures.js b/book/interview-questions/daily-temperatures.js new file mode 100644 index 00000000..5a4b4613 --- /dev/null +++ b/book/interview-questions/daily-temperatures.js @@ -0,0 +1,48 @@ +// tag::description[] +/** + * Given an array with daily temperatures (30 °C to 100 °C), + * return an array with the days count until a warmer temperature + * for each elem from the input. + * + * @examples + * dailyTemperatures([30, 28, 50, 40, 30]); // [2, 1, 0, 0, 0] + * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] + * + * @param {number[]} t - Daily temperatures + */ +function dailyTemperatures(t) { + // end::description[] + // tag::solution[] + const last = (arr) => arr[arr.length - 1]; + const stack = []; + const ans = []; + + for (let i = t.length - 1; i >= 0; i--) { + while (stack.length && t[i] >= t[last(stack)]) stack.pop(); + ans[i] = stack.length ? last(stack) - i : 0; + stack.push(i); + } + + return ans; +} +// end::solution[] + +// tag::dailyTemperaturesBrute1[] +function dailyTemperaturesBrute1(t) { + const ans = []; + + for (let i = 0; i < t.length; i++) { + ans[i] = 0; + for (let j = i + 1; j < t.length; j++) { + if (t[j] > t[i]) { + ans[i] = j - i; + break; + } + } + } + + return ans; +} +// end::dailyTemperaturesBrute1[] + +module.exports = { dailyTemperatures, dailyTemperaturesBrute1 }; diff --git a/book/interview-questions/daily-temperatures.spec.js b/book/interview-questions/daily-temperatures.spec.js new file mode 100644 index 00000000..3ff950d7 --- /dev/null +++ b/book/interview-questions/daily-temperatures.spec.js @@ -0,0 +1,21 @@ +const { dailyTemperatures } = require('./daily-temperatures'); + +describe('Stack: Daily Temperatures', () => { + it('should work', () => { + expect(dailyTemperatures([30, 28, 50, 40, 30])).toEqual([2, 1, 0, 0, 0]); + }); + + it('should work', () => { + expect(dailyTemperatures([73, 74, 75, 71, 69, 72, 76, 73])).toEqual([1, 1, 4, 2, 1, 1, 0, 0]); + }); + + it('should work', () => { + expect(dailyTemperatures([89, 62, 70, 58, 47, 47, 46, 76, 100, 70])).toEqual([8, 1, 5, 4, 3, 2, 1, 1, 0, 0]); + }); + + it('should work with large data', () => { + const input = [64, 40, 49, 73, 72, 35, 68, 83, 35, 73, 84, 88, 96, 43, 74, 63, 41, 95, 48, 46, 89, 72, 34, 85, 72, 59, 87, 49, 30, 32, 47, 34, 74, 58, 31, 75, 73, 88, 64, 92, 83, 64, 100, 99, 81, 41, 48, 83, 96, 92, 82, 32, 35, 68, 68, 92, 73, 92, 52, 33, 44, 38, 47, 88, 71, 50, 57, 95, 33, 65, 94, 44, 47, 79, 41, 74, 50, 67, 97, 31, 68, 50, 37, 70, 77, 55, 48, 30, 77, 100, 31, 100, 69, 60, 47, 95, 68, 47, 33, 64]; + const output = [3, 1, 1, 4, 3, 1, 1, 3, 1, 1, 1, 1, 30, 1, 3, 2, 1, 25, 2, 1, 19, 2, 1, 3, 2, 1, 11, 5, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 1, 3, 2, 1, 0, 46, 3, 1, 1, 1, 30, 18, 5, 1, 1, 2, 1, 12, 1, 10, 5, 1, 2, 1, 1, 4, 3, 1, 1, 11, 1, 1, 8, 1, 1, 5, 1, 3, 1, 1, 11, 1, 3, 2, 1, 1, 5, 3, 2, 1, 1, 0, 1, 0, 3, 2, 1, 0, 0, 2, 1, 0]; + expect(dailyTemperatures(input)).toEqual(output); + }); +}); diff --git a/book/interview-questions/linkedlist-same-data.js b/book/interview-questions/linkedlist-same-data.js new file mode 100644 index 00000000..fd303d36 --- /dev/null +++ b/book/interview-questions/linkedlist-same-data.js @@ -0,0 +1,83 @@ +// const ListNode = require('../../src/data-structures/linked-lists/node'); + +// tag::description[] +/** + * Check if two lists has the same string data. + * Note: each lists can be huge, they have up to 10 million nodes. + * + * @examples + * hasSameData(['he', 'll', 'o'], ['hel', 'lo']); // true + * hasSameData(['hel', 'lo'], ['hi']); // false + * + * @param {ListNode} l1 - The root node of list 1 + * @param {ListNode} l2 - The root node of list 2 + */ +function hasSameData(l1, l2) { + // end::description[] + // tag::solution[] + let p1 = l1; + let p2 = l2; + let i1 = -1; + let i2 = -1; + + const findNextPointerIndex = (p, i) => { + let node = p; + let index = i; + while (node && index >= node.value.length) { + node = node.next; + index = 0; + } + return [node, index]; + }; + + while (p1 && p2) { + [p1, i1] = findNextPointerIndex(p1, i1 + 1); + [p2, i2] = findNextPointerIndex(p2, i2 + 1); + if ((p1 && p2 && p1.value[i1] !== p2.value[i2]) + || ((!p1 || !p2) && p1 !== p2)) return false; + } + return true; +} +// end::solution[] + +// tag::hasSameDataBrute1[] +function hasSameDataBrute1(l1, l2) { + function toString(node) { + const str = []; + for (let curr = node; curr; curr = curr.next) { + str.push(curr.value); + } + return str.join(''); + } + + // console.log({s1: toString(l1), s2: toString(l2) }); + return toString(l1) === toString(l2); +} +// end::hasSameDataBrute1[] + +function hasSameData1(l1, l2) { + let p1 = l1; + let p2 = l2; + + let i1 = 0; + let i2 = 0; + + while (p1 || p2) { + if (!p1 || !p2 || p1.value[i1] !== p2.value[i2]) return false; + + if (i1 < p1.value.length - 1) i1++; + else { + p1 = p1.next; + i1 = 0; + } + + if (i2 < p2.value.length - 1) i2++; + else { + p2 = p2.next; + i2 = 0; + } + } + return true; +} + +module.exports = { hasSameData, hasSameDataBrute1, hasSameData1 }; diff --git a/book/interview-questions/linkedlist-same-data.spec.js b/book/interview-questions/linkedlist-same-data.spec.js new file mode 100644 index 00000000..c0d26830 --- /dev/null +++ b/book/interview-questions/linkedlist-same-data.spec.js @@ -0,0 +1,41 @@ +const { hasSameData } = require('./linkedlist-same-data'); +const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); + +describe('Linked List: has same data', () => { + it('should work with same data and shape', () => { + const l1 = new LinkedList(['hi']).first; + const l2 = new LinkedList(['hi']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + it('should work with different data', () => { + const l1 = new LinkedList(['ab']).first; + const l2 = new LinkedList(['a']).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); + + it('should work with same data and but different shape', () => { + const l1 = new LinkedList(['h', 'e', 'l', 'l', 'o']).first; + const l2 = new LinkedList(['hello']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + it('should work with different data', () => { + const l1 = new LinkedList(['he', 'll', 'o']).first; + const l2 = new LinkedList(['ho', 'la']).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); + + it('should handle empty', () => { + const l1 = new LinkedList(['hi']).first; + const l2 = new LinkedList(['', 'h', '', 'i']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + xit('should work with large data', () => { + const size = 1e6; // 1e7 takes 4sec. + const l1 = new LinkedList(Array(size).fill('x')).first; + const l2 = new LinkedList(Array(size).fill('z')).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); +}); diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js index 3684740a..0245702f 100644 --- a/book/interview-questions/max-subarray.js +++ b/book/interview-questions/max-subarray.js @@ -4,6 +4,7 @@ * @examples * maxSubArray([1, -3, 10, -5]); // => 10 * maxSubArray([-3,4,-1,2,1,-5]); // => 6 + * * @param {number[]} a - Array */ function maxSubArray(a) { diff --git a/book/interview-questions/merge-lists.js b/book/interview-questions/merge-lists.js new file mode 100644 index 00000000..ad26c326 --- /dev/null +++ b/book/interview-questions/merge-lists.js @@ -0,0 +1,37 @@ +const ListNode = require('../../src/data-structures/linked-lists/node'); +// tag::description[] +/** + * Given two sorted linked lists merge them while keeping the asc order. + * @examples + * mergeTwoLists([2,4,6], [1,3]); // => [1,2,3,4,6] + * mergeTwoLists([2,4,6], []); // => [2,4,6] + * mergeTwoLists([], [1,3]); // => [1,3] + * + * @param {ListNode} l1 - The root node of list 1 + * @param {ListNode} l2 - The root node of list 2 + */ +function mergeTwoLists(l1, l2) { + // end::description[] + // tag::solution[] + const sentinel = new ListNode(); + let p0 = sentinel; + let p1 = l1; + let p2 = l2; + + while (p1 || p2) { + if (!p1 || (p2 && p1.value > p2.value)) { + p0.next = p2; + p2 = p2.next; + } else { + p0.next = p1; + p1 = p1.next; + } + p0 = p0.next; + } + + return sentinel.next; +} +// end::solution[] + + +module.exports = { mergeTwoLists }; diff --git a/book/interview-questions/merge-lists.spec.js b/book/interview-questions/merge-lists.spec.js new file mode 100644 index 00000000..4b06e8ee --- /dev/null +++ b/book/interview-questions/merge-lists.spec.js @@ -0,0 +1,44 @@ +const { mergeTwoLists } = require('./merge-lists'); +const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); + +describe('Linked List: Merge Lists', () => { + function asString(root) { + const values = []; + for (let curr = root; curr; curr = curr.next) { + values.push(curr.value); + } + return values.join(' -> '); + } + + it('should merge in asc order', () => { + const l1 = new LinkedList([2, 3, 4]).first; + const l2 = new LinkedList([1, 2]).first; + const actual = mergeTwoLists(l1, l2); + const expected = '1 -> 2 -> 2 -> 3 -> 4'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty list 1', () => { + const l1 = new LinkedList().first; + const l2 = new LinkedList([1, 2]).first; + const actual = mergeTwoLists(l1, l2); + const expected = '1 -> 2'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty list 1', () => { + const l1 = new LinkedList([2, 3, 4]).first; + const l2 = new LinkedList().first; + const actual = mergeTwoLists(l1, l2); + const expected = '2 -> 3 -> 4'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty lists', () => { + const l1 = new LinkedList().first; + const l2 = new LinkedList().first; + const actual = mergeTwoLists(l1, l2); + const expected = ''; + expect(asString(actual)).toEqual(expected); + }); +}); diff --git a/book/interview-questions/valid-parentheses.js b/book/interview-questions/valid-parentheses.js new file mode 100644 index 00000000..a822a214 --- /dev/null +++ b/book/interview-questions/valid-parentheses.js @@ -0,0 +1,27 @@ +// tag::description[] +/** + * Validate if the parentheses are opened and closed in the right order. + * + * @example + * isParenthesesValid('(){}[]'); // true + * isParenthesesValid('([{}])'); // true + * isParenthesesValid('([{)}]'); // false + * + * @param {string} string - The string + */ +function isParenthesesValid(string) { + // end::description[] + // tag::solution[] + const map = new Map([['(', ')'], ['{', '}'], ['[', ']']]); + const stack = []; + + for (const c of string) { + if (map.has(c)) stack.push(map.get(c)); + else if (c !== stack.pop()) return false; + } + + return stack.length === 0; +} +// end::solution[] + +module.exports = { isParenthesesValid }; diff --git a/book/interview-questions/valid-parentheses.spec.js b/book/interview-questions/valid-parentheses.spec.js new file mode 100644 index 00000000..fcb392f3 --- /dev/null +++ b/book/interview-questions/valid-parentheses.spec.js @@ -0,0 +1,23 @@ +const { isParenthesesValid } = require('./valid-parentheses'); + +describe('Stack: Valid Parentheses', () => { + it('should be valid', () => { + expect(isParenthesesValid('()')).toEqual(true); + }); + + it('should be valid with different kinds', () => { + expect(isParenthesesValid('()[]{}')).toEqual(true); + }); + + it('should be valid with different nested kinds', () => { + expect(isParenthesesValid('([{}])')).toEqual(true); + }); + + it('should not be valid if incomplete', () => { + expect(isParenthesesValid('()(')).toEqual(false); + }); + + it('should not be valid if invalid character is present', () => { + expect(isParenthesesValid('()-')).toEqual(false); + }); +}); From 06bd3f6a8542b111e4c9e3b5d41050094b153112 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 26 Aug 2020 16:38:28 -0400 Subject: [PATCH 020/108] Revert "(book/exercises): interview q&a for linked lists and stacks (#69)" (#70) This reverts commit ca4bf45369ef772f4861e7619d3ea74ddc41cde4. --- book/D-interview-questions-solutions.asc | 206 +----------------- book/config | 2 +- book/content/part02/array.asc | 34 +-- book/content/part02/linked-list.asc | 93 +++----- book/content/part02/stack.asc | 54 +---- .../interview-questions/daily-temperatures.js | 48 ---- .../daily-temperatures.spec.js | 21 -- .../linkedlist-same-data.js | 83 ------- .../linkedlist-same-data.spec.js | 41 ---- book/interview-questions/max-subarray.js | 1 - book/interview-questions/merge-lists.js | 37 ---- book/interview-questions/merge-lists.spec.js | 44 ---- book/interview-questions/valid-parentheses.js | 27 --- .../valid-parentheses.spec.js | 23 -- 14 files changed, 56 insertions(+), 658 deletions(-) delete mode 100644 book/interview-questions/daily-temperatures.js delete mode 100644 book/interview-questions/daily-temperatures.spec.js delete mode 100644 book/interview-questions/linkedlist-same-data.js delete mode 100644 book/interview-questions/linkedlist-same-data.spec.js delete mode 100644 book/interview-questions/merge-lists.js delete mode 100644 book/interview-questions/merge-lists.spec.js delete mode 100644 book/interview-questions/valid-parentheses.js delete mode 100644 book/interview-questions/valid-parentheses.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 5fe1acf1..7c0c2ad5 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -1,4 +1,3 @@ -<<< [appendix] [[d-interview-questions-solutions]] == Interview Questions Solutions @@ -30,7 +29,7 @@ include::interview-questions/max-subarray.js[tag=maxSubArrayBrute1] This code is simple to understand; however, not very efficient. The runtime is `O(n^3)`. -Notice we're adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. +If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. [source, javascript] ---- @@ -47,7 +46,7 @@ include::interview-questions/max-subarray.js[tag=description] include::interview-questions/max-subarray.js[tag=solution] ---- -The runtime is `O(n)` and space complexity of `O(1)`. +The runtime is `O(n)` and a space complexity of `O(1)`. @@ -94,203 +93,4 @@ include::interview-questions/buy-sell-stock.js[tag=description] include::interview-questions/buy-sell-stock.js[tag=solution] ---- -The runtime is `O(n)` and space complexity of `O(1)`. - - - -:leveloffset: +1 - -=== Solutions for Linked List Questions -(((Interview Questions Solutions, Linked Lists))) - -:leveloffset: -1 - - - - -[#linkedlist-q-merge-lists] -include::content/part02/linked-list.asc[tag=linkedlist-q-merge-lists] - -We need to visit each node in both lists and merge them in ascending order. Note: We don't need to copy the values nor create new nodes. - -Another case to take into consideration is that lists might have different lengths. So, if one list runs out, we have to keep taking elements from the remaining list. - -*Algorithm*: - -- Have a pointer for each list -- While there's a pointer that is not null, visite them - - Compare each list node's value and take the smaller one. - - Advance the pointer of the taken node to the next one. - -*Implementation*: - -[source, javascript] ----- -include::interview-questions/merge-lists.js[tag=description] -include::interview-questions/merge-lists.js[tag=solution] ----- - -Notice that we used a "dummy" node or "sentinel node" to have some starting point for the final list. - -*Complexity Analysis*: - -- Time: `O(m+n)`. Visiting each node from the list 1 and list 2 has a time complexity `O(m + n)`. `m` and `n` represent each list's length. -- Space: `O(1)`. We reuse the same nodes and only change their `next` pointers. We only create one additional node, "the sentinel node." - - -[#linkedlist-q-linkedlist-same-data] -include::content/part02/linked-list.asc[tag=linkedlist-q-linkedlist-same-data] - -We are given two linked lists that contain string data. We want to know if the concatenated strings from each list are the same. - -The tricky part is that the same data can be distributed differently on the linked lists: - ----- -L1: he -> ll -> o -L2: h -> e -> llo ----- - -One naive approach could be to go through each list's node and concatenate the strings. Then, we can check if they are equal. - -[source, javascript] ----- -include::interview-questions/linkedlist-same-data.js[tag=hasSameDataBrute1] ----- - -Notice that the problem mentions that lists could be huge (millions of nodes). If the first character on each list is different, we are unnecessarily computing millions of nodes, when a straightforward check will do the job. - -A better way to solve this problem is iterating over each character on both lists, and when we found mistmatch, we return `false` immediately. If they are the same, we still have to visit all of them. - -*Algorithm*: - -- Set a pointer to iterate over each node in the lists. -- For each node, have an index (starting at zero) and compare if both lists have the same data. - - When the index reaches the last character on the current node, we move to the next node. - - If we found that a character from one list doesn't match the other, we return `false`. - -*Implementation*: - -[source, javascript] ----- -include::interview-questions/linkedlist-same-data.js[tag=description] -include::interview-questions/linkedlist-same-data.js[tag=solution] ----- - -The function `findNextPointerIndex` is a helper to navigate each character on a linked list. -Notice, that we increase the index (`i + 1`) on each iteration. -If the index overflows, it moves to the next node and reset the index to zero. - - - -*Complexity Analysis*: - -- Time: `O(n)`. We go over all the characters on each list -- Space: `O(1)`. Only using pointers and no auxiliary data structures. - - - -:leveloffset: +1 - -=== Solutions for Stack Questions -(((Interview Questions Solutions, Stack))) - -:leveloffset: -1 - -[#stack-q-valid-parentheses] -include::content/part02/stack.asc[tag=stack-q-valid-parentheses] - -.We need to validate that brackets are properly opened and closed, following these rules: -- An opened bracket must be close by the same type. -- Open brackets mush be closed in the correct order. - -This is a parsing problem, and usually, stacks are good candidates for them. - -*Algorithm*: - -- Create a mapping for each opening bracket, to its closing counterpart. -- Iterate through the string - - When we found an opening bracket, insert the corresponding closing bracket into the stack. - - When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. -- Check the stack is empty. If there's a leftover, it means that something didn't close properly. - -*Implementation*: - -[source, javascript] ----- -include::interview-questions/valid-parentheses.js[tag=description] -include::interview-questions/valid-parentheses.js[tag=solution] ----- - -*Complexity Analysis*: - -- Time: `O(n)`. We iterate over each character of the string. -- Space: `O(n)`. We use an auxiliary stack. - - - -[#stack-q-daily-temperatures] -include::content/part02/stack.asc[tag=stack-q-daily-temperatures] - -The first solution that might come to mind it's using two for loops. For each element, we have visit each temperature ahead to find a bigger one. - -[source, javascript] ----- -include::interview-questions/daily-temperatures.js[tag=dailyTemperaturesBrute1] ----- - -This solution is an `O(n^2)`. Can we do better? We can! - -Here's an idea: start backward, so we know when there's a warmer temperature beforehand. The last element is always 0 (because there are no more temperatures ahead of it). We can place each element's index that we visit on a stack. If the current weather is bigger than the stack top, we remove it until a bigger one remains or the stack is empty. If the stack has a value, we calculate the number of days ahead. Otherwise, it is 0. - -*Algorithm*: - -- Traverse the daily temperatures backward - - Push each temperature to a stack. - - While the current temperature is larger than the one at the top of the stack, pop it. - - If the stack is empty, then there's no warmer weather ahead, so it's 0. - - If the stack has an element, calculate the index delta. - -*Implementation*: - -[source, javascript] ----- -include::interview-questions/daily-temperatures.js[tag=description] -include::interview-questions/daily-temperatures.js[tag=solution] ----- - -The stack contains the indexes rather than the temperatures themselves. - -*Complexity Analysis*: - -- Time: `O(n)`. We visit each element on the array once. -- Space: `O(1)`. The worst-case scenario is ascending order without duplicates. The stack will hold at most 70 items (100 - 30). If we didn't have the range restriction, then space complexity would be `O(n)`. - - - -// [#linkedlist-q-FILENAME] -// include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] - -// RESTATE REQUIREMENTS AND DESCRIPTIONS - -// *Algorithm*: - -// - STEP 1 -// - STEP 2 -// - STEP 2.1 -// - STEP 2.2 - -// *Implementation*: - -// [source, javascript] -// ---- -// include::interview-questions/FILENAME.js[tag=description] -// include::interview-questions/FILENAME.js[tag=solution] -// ---- - -// IMPLEMENTATION NOTES - -// *Complexity Analysis*: - -// - Time: `O(?)`. WHY? -// - Space: `O(?)`. WHY? - +The runtime is `O(n)` and a space complexity of `O(1)`. diff --git a/book/config b/book/config index b4dd20d3..1216accf 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit b4dd20d3f92beb4dd48445464e1734819a9cd40a +Subproject commit 1216accfbd750b835ba92c196aa20ddd3414c515 diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index e03863e5..4b2c2c7e 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -7,18 +7,18 @@ endif::[] === Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) -Arrays are one of the most used data structures. You probably have used it a lot, but are you aware of the runtimes of `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. +Arrays are one of the most used data structures. You probably have used it a lot but are you aware of the runtimes of `splice`, `shift`, `indexOf` and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics An array is a collection of things (strings, characters, numbers, objects, etc.). They can be many or zero. -TIP: Strings are a collection of Unicode characters, and most of the array concepts apply to them. +TIP: Strings are a collection of Unicode characters and most of the array concepts apply to them. .Fixed vs. Dynamic Size Arrays **** -Some programming languages have fixed-size arrays like Java and {cpp}. -Fixed-size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. Those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. +Some programming languages have fixed size arrays like Java and {cpp}. +Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. **** Arrays look like this: @@ -26,11 +26,11 @@ Arrays look like this: .Array representation: each value is accessed through an index. image::image16.png[image,width=388,height=110] -Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look at the different operations that we can do with arrays. +Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look into the different operations that we can do with arrays. ==== Insertion -Arrays are built-in in most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: +Arrays are built-in into most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: .Inserting elements into an array [source, javascript] @@ -45,7 +45,7 @@ array2[100] = 2; array2 // [empty × 3, 1, empty × 96, 2] ---- -Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers, but the length is 101, and there are 99 empty spaces. +Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers but the length is 101 and there are 99 empty spaces. [source, javascript] ---- @@ -54,7 +54,7 @@ console.log(array2); // [empty × 3, 1, empty × 96, 2] ---- -The runtime for inserting elements using an index is always is constant: _O(1)_. +The runtime for inserting elements using index is always is constant: _O(1)_. ===== Inserting at the beginning of the array @@ -72,7 +72,7 @@ As you can see, `2` was at index 0, now was pushed to index 1, and everything el .JavaScript built-in `array.unshift` **** -The `unshift()` method adds one or more elements to the beginning of an array and returns the array's new length. +The `unshift()` method adds one or more elements to the beginning of an array and returns the new length of the array. Runtime: O(n). **** @@ -90,11 +90,11 @@ array.splice(1, 0, 111); // ↪️ [] <1> ---- <1> at position `1`, delete `0` elements and insert `111`. -The Big O for this operation would be *O(n)* since, in the worst case, it would move most of the elements to the right. +The Big O for this operation would be *O(n)* since in worst case it would move most of the elements to the right. .JavaScript built-in `array.splice` **** -The `splice()` method changes an array's contents by removing existing elements or adding new elements. Splice returns an array containing the deleted items. +The `splice()` method changes the contents of an array by removing existing elements or adding new elements. Splice returns an array containing the deleted elements. Runtime: O(n). **** @@ -116,7 +116,7 @@ Adding to the tail of the array doesn’t change other indexes. E.g., element 2 .JavaScript built-in `array.push` **** -The `push()` method adds one or more elements to the end of an array and returns the array's new length. +The `push()` method adds one or more elements to the end of an array and returns the new length of the array. Runtime: O(1). **** @@ -124,7 +124,7 @@ Runtime: O(1). [[array-search-by-value]] ==== Searching by value and index -Searching by the index is very easy using the `[]` operator: +Searching by index is very easy using the `[]` operator: .Search by index [source, javascript] @@ -185,7 +185,7 @@ We would have to loop through the whole array (worst case) or until we find it: ==== Deletion -There are three possible deletion scenarios (similar to insertion): removing at the beginning, middle, or end. +There are three possible scenarios for deletion (similar to insertion): removing at the beginning, middle or end. ===== Deleting element from the beginning @@ -224,7 +224,7 @@ array.splice(2, 1); // ↪️[2] <1> ---- <1> delete 1 element at position 2 -Deleting from the middle might cause most of the array elements to move up one position to fill in for the eliminated item. Thus, runtime: O(n). +Deleting from the middle might cause most of the elements of the array to move up one position to fill in for the eliminated item. Thus, runtime: O(n). ===== Deleting element from the end @@ -282,7 +282,7 @@ To sum up, the time complexity of an array is: // tag::array-q-max-subarray[] ===== Max Subarray -*AR-1*) _Given an array of integers, find the maximum sum of consecutive elements (subarray)._ +Given an array of integers, find the maximum sum of consecutive elements (subarray). // end::array-q-max-subarray[] [source, javascript] @@ -297,7 +297,7 @@ _Solution: <<array-q-max-subarray>>_ // tag::array-q-buy-sell-stock[] ===== Best Time to Buy and Sell an Stock -*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ +You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximun profit you can obtain? (Note: you have to buy first and then sell) // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 7790c3e4..6e3f3f98 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -23,7 +23,7 @@ Each element or node is *connected* to the next one by a reference. When a node .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. image::image19.png[image,width=498,height=97] -Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. [[doubly-linked-list]] ==== Doubly Linked List @@ -47,9 +47,9 @@ include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] ==== Linked List vs. Array -Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. +Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. It has to create a larger array (usually 2x) and copy all the elements when it is getting full. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor are large chunks of memory booked beforehand like arrays. Linked List is more on a "grow as you go" basis. +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. When it is getting full, it has to create a bigger array (usually 2x) and copy all the elements. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor large chunks of memory have to be booked beforehand like arrays. Linked List is more on a "grow as you go" basis. Another difference is that adding/deleting at the beginning on an array takes O(n); however, the linked list is a constant operation O(1) as we will implement later. @@ -70,7 +70,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=constructor] } ---- -In our constructor, we reference the `first` and `last` node for performance reasons. +In our constructor, we keep a reference of the `first` and also `last` node for performance reasons. ==== Searching by value @@ -84,7 +84,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByValue If we find the element, we will return the index otherwise `undefined`. The runtime for locating an item by value is _O(n)_. -For finding elements by value or position, we are using the following helper function: +For finding elements by value or position we are using the following helper function: .Find elements using a callback [source, javascript] @@ -92,8 +92,8 @@ For finding elements by value or position, we are using the following helper fun include::{codedir}/data-structures/linked-lists/linked-list.js[tag=find, indent=0] ---- <1> We initialize two variables `current` to the first node and `position` to keep track of the index. -<2> While the `current` node is not null, we keep going. -<3> On each loop, we move to the next node and increment the index. +<2> While `current` node is not null we keep going. +<3> On each loop we move to the next node and increment the index. <4> We invoke the callback passing the current position and node. If the callback returns something, then we stop and return that value. <5> Return whatever result we got from the callback. E.g., we can return the index or the node itself or any other calculation. @@ -101,7 +101,7 @@ We are going to use this `find` method again to implement searching by index. ==== Searching by index -Searching by an index is very similar, we iterate through the list until we find the element that matches the position. +Searching by index is very similar, we iterate through the list until we find the element that matches the position. .Linked List's searching by index (position) [source, javascript] @@ -109,22 +109,22 @@ Searching by an index is very similar, we iterate through the list until we find include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByIndex, indent=0] ---- -If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar; you want to take a look at the https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[full implementation]. +If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar. If you want to take a look at the whole implementation, https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[click here]. ==== Insertion -In a linked list, you can add elements at the beginning, end, or anywhere in the middle of the list. So, let's implement each case. +Similar to the array, with a linked list you can add elements at the beginning, end or anywhere in the middle of the list. So, let's implement each case. [[linked-list-inserting-beginning]] ===== Inserting elements at the beginning of the list -We will use the `Node` class to create a new element and stick it at the beginning of the list, as shown below. +We are going to use the `Node` class to create a new element and stick it at the beginning of the list as shown below. .Insert at the beginning by linking the new node with the current first node. image::image23.png[image,width=498,height=217] -To insert at the beginning, we create a new node with the next reference to the current first node. Then we first make the new node. In code, it would look something like this: +To insert at the beginning, we create a new node with the next reference to the current first node. Then we make first the new node. In code, it would look something like this: .Add item to the beginning of a Linked List [source, javascript] @@ -137,7 +137,7 @@ As you can see, we create a new node and make it the first one. ===== Inserting element at the end of the list -Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item. Otherwise, you would have to iterate through the whole list. +Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item in the list. Otherwise, you would have to iterate through the whole list. .Add element to the end of the linked list image::image24.png[image,width=498,height=208] @@ -148,12 +148,12 @@ image::image24.png[image,width=498,height=208] include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addLast, indent=0] ---- -If there’s no element in the list yet, the first and last node would be the same. If there’s something, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. +If there’s no element in the list yet, the first and last node would be the same. If there’s something, then, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. ===== Inserting element at the middle of the list -For inserting an element in the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. +For inserting an element at the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. .There are 4 references to update: . New node's `next`. @@ -168,7 +168,7 @@ Let’s do an example with the following doubly linked list: art <-> dog <-> cat ---- -We want to insert the `new` node in the 2^nd^ position. For that, we first create the "new" node and update the references around it. +We want to insert the `new` node in the 2^nd^ position. For that we first create the "new" node and update the references around it. .Inserting node in the middle of a doubly linked list. image::image25.png[image,width=528,height=358] @@ -181,11 +181,11 @@ Take a look into the implementation of https://github.com/amejiarosario/dsa.js/b include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addMiddle, indent=0] ---- <1> If the new item goes to position 0, then we reuse the `addFirst` method, and we are done! -<2> However, if we add to the last position, we reuse the `addLast` method and done! -<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <<Searching by index>> to see `get` implementation. +<2> However, if we are adding to the last position, then we reuse the `addLast` method, and done! +<3> Adding `newNode` to the middle: First, create the `new` node only if the position exists. Take a look at <<Searching by index>> to see `get` implementation. <4> Set newNode `previous` reference. <5> Set newNode `next` link. -<6> No other node in the list points to `newNode`, so we have to make the prior element point to `newNode`. +<6> No other node in the list is pointing to `newNode`, so we have to make the prior element point to `newNode`. <7> Make the next element point to `newNode`. Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and make them point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `get` method. @@ -219,7 +219,7 @@ Removing the last element from the list would require to iterate from the head u image::image27.png[image,width=528,height=221] -For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat.” Since nothing is pointing to “cat” it is out of the list and eventually is deleted from memory by the garbage collector. +For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat”. Since nothing is pointing to “cat”, it is out of the list and eventually is deleted from memory by the garbage collector. .Linked List's remove from the end of the list [source, javascript] @@ -228,7 +228,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeLast, i ---- -The code is very similar to `removeFirst`, but instead of first, we update `last` reference, and instead of nullifying `previous`, we nullify its `next` reference. +The code is very similar to `removeFirst`, but instead of first we update `last` reference, and instead of nullifying `previous` we nullify its `next` reference. ===== Deleting element from the middle @@ -238,7 +238,7 @@ To remove a node from the middle, we make the surrounding nodes to bypass the on image::image28.png[image,width=528,height=259] -In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art,” totally bypassing “dog.” +In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art”, totally bypassing “dog”. Let’s implement it: @@ -252,7 +252,7 @@ Notice that we are using the `get` method to get the node at the current positio ==== Linked List Complexity vs. Array Complexity -So far, we have seen two-liner data structures with different use cases. Here’s a summary: +So far, we have seen two liner data structures with different use cases. Here’s a summary: (((Tables, Linear DS, Array/Lists complexities))) // tag::table[] @@ -268,9 +268,9 @@ So far, we have seen two-liner data structures with different use cases. Here’ (((Linear))) (((Runtime, Linear))) -If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly-linked list is *O(1)*. +If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly linked list is *O(1)*. -Comparing an array with a doubly-linked list, both have different use cases: +Comparing an array with a doubly linked list, both have different use cases: Use arrays when: @@ -282,45 +282,10 @@ Use a doubly linked list when: * You want to access elements in a *sequential* manner only like <<part02-linear-data-structures#stack>> or <<part02-linear-data-structures#queue>>. * You want to insert elements at the start and end of the list. The linked list has O(1) while array has O(n). -* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” +* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go”. -For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. +For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we are going use that. -==== Interview Questions -(((Interview Questions, Arrays))) +==== Linked List Exercises - - - -// tag::linkedlist-q-merge-lists[] -===== Merge Linked Lists into One - -*LL-1*) _Merge two sorted lists into one (and keep them sorted)_ -// end::linkedlist-q-merge-lists[] - -[source, javascript] ----- -include::../../interview-questions/merge-lists.js[tag=description] - // write you code here -} ----- - -_Solution: <<linkedlist-q-merge-lists>>_ - - - - -// tag::linkedlist-q-linkedlist-same-data[] -===== Check if two strings lists are the same - -*LL-2*) _Given two linked lists with strings, check if are the same_ -// end::linkedlist-q-linkedlist-same-data[] - -[source, javascript] ----- -include::../../interview-questions/linkedlist-same-data.js[tag=description] - // write you code here -} ----- - -_Solution: <<linkedlist-q-linkedlist-same-data>>_ +1) Merge two sorted lists into one (and keep them sorted) diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index 02643814..81ced6f2 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -11,7 +11,7 @@ endif::[] (((LIFO))) The stack is a data structure that restricts the way you add and remove data. It only allows you to insert and retrieve in a *Last-In-First-Out* (LIFO) fashion. -An analogy is to think that the stack is a rod, and the data are discs. You can only take out the last one you put in. +An analogy is to think that the stack is a rod and the data are discs. You can only take out the last one you put in. .Stack data structure is like a stack of disks: the last element in is the first element out image::image29.png[image,width=240,height=238] @@ -20,7 +20,7 @@ image::image29.png[image,width=240,height=238] As you can see in the image above, If you insert the disks in the order `5`, `4`, `3`, `2`, `1`, then you can remove them in `1`, `2`, `3`, `4`, `5`. -The stack inserts items to the end of the collection and also removes it from the rear. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. +The stack inserts items to the end of the collection and also removes from the end. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. .Stack's constructor [source, javascript] @@ -30,7 +30,7 @@ include::{codedir}/data-structures/stacks/stack.js[tag=constructor] } ---- -As you can see in the stack constructor, we use a linked list as the underlying data structure. +As you can see in the stack constructor, we are using a linked list as the underlying data structure. Let's now develop the insert and remove operations in a stack. @@ -48,7 +48,7 @@ We are returning `this`, in case we want to chain multiple add commands. ==== Deletion -Deleting is straightforward, as well. +Deleting is straightforward as well. .Stack's remove [source, javascript] @@ -56,7 +56,7 @@ Deleting is straightforward, as well. include::{codedir}/data-structures/stacks/stack.js[tag=remove, indent=0] ---- -This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[full implementation]. +This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the full implementation https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[here]. ==== Implementation Usage @@ -68,7 +68,7 @@ We can use our stack implementation as follows: include::{codedir}/data-structures/stacks/stack.js[tag=snippet, indent=0] ---- -As you can see, if we add new items, they will be the first to go out to honor LIFO. +As you can see if we add new items they will be the first to go out to honor LIFO. ==== Stack Complexity @@ -85,45 +85,3 @@ Implementing the stack with an array and linked list would lead to the same time // end::table[] It's not very common to search for values on a stack (other Data Structures are better suited for this). Stacks are especially useful for implementing <<part03-graph-data-structures#dfs-tree, Depth-First Search>>. - - -==== Interview Questions -(((Interview Questions, Arrays))) - - - - - -// tag::stack-q-valid-parentheses[] -===== Validate Parentheses / Braces / Brackets - -*ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ -// end::stack-q-valid-parentheses[] - -[source, javascript] ----- -include::../../interview-questions/valid-parentheses.js[tag=description] - // write you code here -} ----- - -_Solution: <<stack-q-valid-parentheses>>_ - - - - - -// tag::stack-q-daily-temperatures[] -===== Daily Temperaturs - -*ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ -// end::stack-q-daily-temperatures[] - -[source, javascript] ----- -include::../../interview-questions/daily-temperatures.js[tag=description] - // write you code here -} ----- - -_Solution: <<stack-q-daily-temperatures>>_ diff --git a/book/interview-questions/daily-temperatures.js b/book/interview-questions/daily-temperatures.js deleted file mode 100644 index 5a4b4613..00000000 --- a/book/interview-questions/daily-temperatures.js +++ /dev/null @@ -1,48 +0,0 @@ -// tag::description[] -/** - * Given an array with daily temperatures (30 °C to 100 °C), - * return an array with the days count until a warmer temperature - * for each elem from the input. - * - * @examples - * dailyTemperatures([30, 28, 50, 40, 30]); // [2, 1, 0, 0, 0] - * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] - * - * @param {number[]} t - Daily temperatures - */ -function dailyTemperatures(t) { - // end::description[] - // tag::solution[] - const last = (arr) => arr[arr.length - 1]; - const stack = []; - const ans = []; - - for (let i = t.length - 1; i >= 0; i--) { - while (stack.length && t[i] >= t[last(stack)]) stack.pop(); - ans[i] = stack.length ? last(stack) - i : 0; - stack.push(i); - } - - return ans; -} -// end::solution[] - -// tag::dailyTemperaturesBrute1[] -function dailyTemperaturesBrute1(t) { - const ans = []; - - for (let i = 0; i < t.length; i++) { - ans[i] = 0; - for (let j = i + 1; j < t.length; j++) { - if (t[j] > t[i]) { - ans[i] = j - i; - break; - } - } - } - - return ans; -} -// end::dailyTemperaturesBrute1[] - -module.exports = { dailyTemperatures, dailyTemperaturesBrute1 }; diff --git a/book/interview-questions/daily-temperatures.spec.js b/book/interview-questions/daily-temperatures.spec.js deleted file mode 100644 index 3ff950d7..00000000 --- a/book/interview-questions/daily-temperatures.spec.js +++ /dev/null @@ -1,21 +0,0 @@ -const { dailyTemperatures } = require('./daily-temperatures'); - -describe('Stack: Daily Temperatures', () => { - it('should work', () => { - expect(dailyTemperatures([30, 28, 50, 40, 30])).toEqual([2, 1, 0, 0, 0]); - }); - - it('should work', () => { - expect(dailyTemperatures([73, 74, 75, 71, 69, 72, 76, 73])).toEqual([1, 1, 4, 2, 1, 1, 0, 0]); - }); - - it('should work', () => { - expect(dailyTemperatures([89, 62, 70, 58, 47, 47, 46, 76, 100, 70])).toEqual([8, 1, 5, 4, 3, 2, 1, 1, 0, 0]); - }); - - it('should work with large data', () => { - const input = [64, 40, 49, 73, 72, 35, 68, 83, 35, 73, 84, 88, 96, 43, 74, 63, 41, 95, 48, 46, 89, 72, 34, 85, 72, 59, 87, 49, 30, 32, 47, 34, 74, 58, 31, 75, 73, 88, 64, 92, 83, 64, 100, 99, 81, 41, 48, 83, 96, 92, 82, 32, 35, 68, 68, 92, 73, 92, 52, 33, 44, 38, 47, 88, 71, 50, 57, 95, 33, 65, 94, 44, 47, 79, 41, 74, 50, 67, 97, 31, 68, 50, 37, 70, 77, 55, 48, 30, 77, 100, 31, 100, 69, 60, 47, 95, 68, 47, 33, 64]; - const output = [3, 1, 1, 4, 3, 1, 1, 3, 1, 1, 1, 1, 30, 1, 3, 2, 1, 25, 2, 1, 19, 2, 1, 3, 2, 1, 11, 5, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 1, 3, 2, 1, 0, 46, 3, 1, 1, 1, 30, 18, 5, 1, 1, 2, 1, 12, 1, 10, 5, 1, 2, 1, 1, 4, 3, 1, 1, 11, 1, 1, 8, 1, 1, 5, 1, 3, 1, 1, 11, 1, 3, 2, 1, 1, 5, 3, 2, 1, 1, 0, 1, 0, 3, 2, 1, 0, 0, 2, 1, 0]; - expect(dailyTemperatures(input)).toEqual(output); - }); -}); diff --git a/book/interview-questions/linkedlist-same-data.js b/book/interview-questions/linkedlist-same-data.js deleted file mode 100644 index fd303d36..00000000 --- a/book/interview-questions/linkedlist-same-data.js +++ /dev/null @@ -1,83 +0,0 @@ -// const ListNode = require('../../src/data-structures/linked-lists/node'); - -// tag::description[] -/** - * Check if two lists has the same string data. - * Note: each lists can be huge, they have up to 10 million nodes. - * - * @examples - * hasSameData(['he', 'll', 'o'], ['hel', 'lo']); // true - * hasSameData(['hel', 'lo'], ['hi']); // false - * - * @param {ListNode} l1 - The root node of list 1 - * @param {ListNode} l2 - The root node of list 2 - */ -function hasSameData(l1, l2) { - // end::description[] - // tag::solution[] - let p1 = l1; - let p2 = l2; - let i1 = -1; - let i2 = -1; - - const findNextPointerIndex = (p, i) => { - let node = p; - let index = i; - while (node && index >= node.value.length) { - node = node.next; - index = 0; - } - return [node, index]; - }; - - while (p1 && p2) { - [p1, i1] = findNextPointerIndex(p1, i1 + 1); - [p2, i2] = findNextPointerIndex(p2, i2 + 1); - if ((p1 && p2 && p1.value[i1] !== p2.value[i2]) - || ((!p1 || !p2) && p1 !== p2)) return false; - } - return true; -} -// end::solution[] - -// tag::hasSameDataBrute1[] -function hasSameDataBrute1(l1, l2) { - function toString(node) { - const str = []; - for (let curr = node; curr; curr = curr.next) { - str.push(curr.value); - } - return str.join(''); - } - - // console.log({s1: toString(l1), s2: toString(l2) }); - return toString(l1) === toString(l2); -} -// end::hasSameDataBrute1[] - -function hasSameData1(l1, l2) { - let p1 = l1; - let p2 = l2; - - let i1 = 0; - let i2 = 0; - - while (p1 || p2) { - if (!p1 || !p2 || p1.value[i1] !== p2.value[i2]) return false; - - if (i1 < p1.value.length - 1) i1++; - else { - p1 = p1.next; - i1 = 0; - } - - if (i2 < p2.value.length - 1) i2++; - else { - p2 = p2.next; - i2 = 0; - } - } - return true; -} - -module.exports = { hasSameData, hasSameDataBrute1, hasSameData1 }; diff --git a/book/interview-questions/linkedlist-same-data.spec.js b/book/interview-questions/linkedlist-same-data.spec.js deleted file mode 100644 index c0d26830..00000000 --- a/book/interview-questions/linkedlist-same-data.spec.js +++ /dev/null @@ -1,41 +0,0 @@ -const { hasSameData } = require('./linkedlist-same-data'); -const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); - -describe('Linked List: has same data', () => { - it('should work with same data and shape', () => { - const l1 = new LinkedList(['hi']).first; - const l2 = new LinkedList(['hi']).first; - expect(hasSameData(l1, l2)).toEqual(true); - }); - - it('should work with different data', () => { - const l1 = new LinkedList(['ab']).first; - const l2 = new LinkedList(['a']).first; - expect(hasSameData(l1, l2)).toEqual(false); - }); - - it('should work with same data and but different shape', () => { - const l1 = new LinkedList(['h', 'e', 'l', 'l', 'o']).first; - const l2 = new LinkedList(['hello']).first; - expect(hasSameData(l1, l2)).toEqual(true); - }); - - it('should work with different data', () => { - const l1 = new LinkedList(['he', 'll', 'o']).first; - const l2 = new LinkedList(['ho', 'la']).first; - expect(hasSameData(l1, l2)).toEqual(false); - }); - - it('should handle empty', () => { - const l1 = new LinkedList(['hi']).first; - const l2 = new LinkedList(['', 'h', '', 'i']).first; - expect(hasSameData(l1, l2)).toEqual(true); - }); - - xit('should work with large data', () => { - const size = 1e6; // 1e7 takes 4sec. - const l1 = new LinkedList(Array(size).fill('x')).first; - const l2 = new LinkedList(Array(size).fill('z')).first; - expect(hasSameData(l1, l2)).toEqual(false); - }); -}); diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js index 0245702f..3684740a 100644 --- a/book/interview-questions/max-subarray.js +++ b/book/interview-questions/max-subarray.js @@ -4,7 +4,6 @@ * @examples * maxSubArray([1, -3, 10, -5]); // => 10 * maxSubArray([-3,4,-1,2,1,-5]); // => 6 - * * @param {number[]} a - Array */ function maxSubArray(a) { diff --git a/book/interview-questions/merge-lists.js b/book/interview-questions/merge-lists.js deleted file mode 100644 index ad26c326..00000000 --- a/book/interview-questions/merge-lists.js +++ /dev/null @@ -1,37 +0,0 @@ -const ListNode = require('../../src/data-structures/linked-lists/node'); -// tag::description[] -/** - * Given two sorted linked lists merge them while keeping the asc order. - * @examples - * mergeTwoLists([2,4,6], [1,3]); // => [1,2,3,4,6] - * mergeTwoLists([2,4,6], []); // => [2,4,6] - * mergeTwoLists([], [1,3]); // => [1,3] - * - * @param {ListNode} l1 - The root node of list 1 - * @param {ListNode} l2 - The root node of list 2 - */ -function mergeTwoLists(l1, l2) { - // end::description[] - // tag::solution[] - const sentinel = new ListNode(); - let p0 = sentinel; - let p1 = l1; - let p2 = l2; - - while (p1 || p2) { - if (!p1 || (p2 && p1.value > p2.value)) { - p0.next = p2; - p2 = p2.next; - } else { - p0.next = p1; - p1 = p1.next; - } - p0 = p0.next; - } - - return sentinel.next; -} -// end::solution[] - - -module.exports = { mergeTwoLists }; diff --git a/book/interview-questions/merge-lists.spec.js b/book/interview-questions/merge-lists.spec.js deleted file mode 100644 index 4b06e8ee..00000000 --- a/book/interview-questions/merge-lists.spec.js +++ /dev/null @@ -1,44 +0,0 @@ -const { mergeTwoLists } = require('./merge-lists'); -const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); - -describe('Linked List: Merge Lists', () => { - function asString(root) { - const values = []; - for (let curr = root; curr; curr = curr.next) { - values.push(curr.value); - } - return values.join(' -> '); - } - - it('should merge in asc order', () => { - const l1 = new LinkedList([2, 3, 4]).first; - const l2 = new LinkedList([1, 2]).first; - const actual = mergeTwoLists(l1, l2); - const expected = '1 -> 2 -> 2 -> 3 -> 4'; - expect(asString(actual)).toEqual(expected); - }); - - it('should handle empty list 1', () => { - const l1 = new LinkedList().first; - const l2 = new LinkedList([1, 2]).first; - const actual = mergeTwoLists(l1, l2); - const expected = '1 -> 2'; - expect(asString(actual)).toEqual(expected); - }); - - it('should handle empty list 1', () => { - const l1 = new LinkedList([2, 3, 4]).first; - const l2 = new LinkedList().first; - const actual = mergeTwoLists(l1, l2); - const expected = '2 -> 3 -> 4'; - expect(asString(actual)).toEqual(expected); - }); - - it('should handle empty lists', () => { - const l1 = new LinkedList().first; - const l2 = new LinkedList().first; - const actual = mergeTwoLists(l1, l2); - const expected = ''; - expect(asString(actual)).toEqual(expected); - }); -}); diff --git a/book/interview-questions/valid-parentheses.js b/book/interview-questions/valid-parentheses.js deleted file mode 100644 index a822a214..00000000 --- a/book/interview-questions/valid-parentheses.js +++ /dev/null @@ -1,27 +0,0 @@ -// tag::description[] -/** - * Validate if the parentheses are opened and closed in the right order. - * - * @example - * isParenthesesValid('(){}[]'); // true - * isParenthesesValid('([{}])'); // true - * isParenthesesValid('([{)}]'); // false - * - * @param {string} string - The string - */ -function isParenthesesValid(string) { - // end::description[] - // tag::solution[] - const map = new Map([['(', ')'], ['{', '}'], ['[', ']']]); - const stack = []; - - for (const c of string) { - if (map.has(c)) stack.push(map.get(c)); - else if (c !== stack.pop()) return false; - } - - return stack.length === 0; -} -// end::solution[] - -module.exports = { isParenthesesValid }; diff --git a/book/interview-questions/valid-parentheses.spec.js b/book/interview-questions/valid-parentheses.spec.js deleted file mode 100644 index fcb392f3..00000000 --- a/book/interview-questions/valid-parentheses.spec.js +++ /dev/null @@ -1,23 +0,0 @@ -const { isParenthesesValid } = require('./valid-parentheses'); - -describe('Stack: Valid Parentheses', () => { - it('should be valid', () => { - expect(isParenthesesValid('()')).toEqual(true); - }); - - it('should be valid with different kinds', () => { - expect(isParenthesesValid('()[]{}')).toEqual(true); - }); - - it('should be valid with different nested kinds', () => { - expect(isParenthesesValid('([{}])')).toEqual(true); - }); - - it('should not be valid if incomplete', () => { - expect(isParenthesesValid('()(')).toEqual(false); - }); - - it('should not be valid if invalid character is present', () => { - expect(isParenthesesValid('()-')).toEqual(false); - }); -}); From 4cdfbf559a58102d85d9e88ee661d8279a3f41e4 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Wed, 26 Aug 2020 20:39:55 +0000 Subject: [PATCH 021/108] :bookmark: chore(release): 1.12.0 # [1.12.0](https://github.com/amejiarosario/dsa.js/compare/1.11.0...1.12.0) (2020-08-26) ### Features * **book/exercises:** interview q&a for linked lists and stacks ([#69](https://github.com/amejiarosario/dsa.js/issues/69)) ([ca4bf45](https://github.com/amejiarosario/dsa.js/commit/ca4bf45369ef772f4861e7619d3ea74ddc41cde4)) ### Reverts * Revert "(book/exercises): interview q&a for linked lists and stacks (#69)" (#70) ([06bd3f6](https://github.com/amejiarosario/dsa.js/commit/06bd3f6a8542b111e4c9e3b5d41050094b153112)), closes [#69](https://github.com/amejiarosario/dsa.js/issues/69) [#70](https://github.com/amejiarosario/dsa.js/issues/70) --- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f68e54e6..ab284907 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [1.12.0](https://github.com/amejiarosario/dsa.js/compare/1.11.0...1.12.0) (2020-08-26) + + +### Features + +* **book/exercises:** interview q&a for linked lists and stacks ([#69](https://github.com/amejiarosario/dsa.js/issues/69)) ([ca4bf45](https://github.com/amejiarosario/dsa.js/commit/ca4bf45369ef772f4861e7619d3ea74ddc41cde4)) + + +### Reverts + +* Revert "(book/exercises): interview q&a for linked lists and stacks (#69)" (#70) ([06bd3f6](https://github.com/amejiarosario/dsa.js/commit/06bd3f6a8542b111e4c9e3b5d41050094b153112)), closes [#69](https://github.com/amejiarosario/dsa.js/issues/69) [#70](https://github.com/amejiarosario/dsa.js/issues/70) + # [1.11.0](https://github.com/amejiarosario/dsa.js/compare/1.10.0...1.11.0) (2020-08-22) diff --git a/package-lock.json b/package-lock.json index c148c0af..44eaa54e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.11.0", + "version": "1.12.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 641276ff..045692ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.11.0", + "version": "1.12.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 3bb86fd544f543906b5723aab1f26d5a75f13950 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 26 Aug 2020 16:38:55 -0400 Subject: [PATCH 022/108] feat(book/exercises): interview q&a for linked lists and stacks --- book/D-interview-questions-solutions.asc | 206 +++++++++++++++++- book/config | 2 +- book/content/part02/array.asc | 34 +-- book/content/part02/linked-list.asc | 93 +++++--- book/content/part02/stack.asc | 54 ++++- .../interview-questions/daily-temperatures.js | 48 ++++ .../daily-temperatures.spec.js | 21 ++ .../linkedlist-same-data.js | 83 +++++++ .../linkedlist-same-data.spec.js | 41 ++++ book/interview-questions/max-subarray.js | 1 + book/interview-questions/merge-lists.js | 37 ++++ book/interview-questions/merge-lists.spec.js | 44 ++++ book/interview-questions/valid-parentheses.js | 27 +++ .../valid-parentheses.spec.js | 23 ++ 14 files changed, 658 insertions(+), 56 deletions(-) create mode 100644 book/interview-questions/daily-temperatures.js create mode 100644 book/interview-questions/daily-temperatures.spec.js create mode 100644 book/interview-questions/linkedlist-same-data.js create mode 100644 book/interview-questions/linkedlist-same-data.spec.js create mode 100644 book/interview-questions/merge-lists.js create mode 100644 book/interview-questions/merge-lists.spec.js create mode 100644 book/interview-questions/valid-parentheses.js create mode 100644 book/interview-questions/valid-parentheses.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 7c0c2ad5..5fe1acf1 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -1,3 +1,4 @@ +<<< [appendix] [[d-interview-questions-solutions]] == Interview Questions Solutions @@ -29,7 +30,7 @@ include::interview-questions/max-subarray.js[tag=maxSubArrayBrute1] This code is simple to understand; however, not very efficient. The runtime is `O(n^3)`. -If you noticed we adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. +Notice we're adding up the numbers from `i` to `j` on each cycle. But, we can optimize this. We can keep a local variable and add the new number to it. That way, we don't have to revisit previous numbers. [source, javascript] ---- @@ -46,7 +47,7 @@ include::interview-questions/max-subarray.js[tag=description] include::interview-questions/max-subarray.js[tag=solution] ---- -The runtime is `O(n)` and a space complexity of `O(1)`. +The runtime is `O(n)` and space complexity of `O(1)`. @@ -93,4 +94,203 @@ include::interview-questions/buy-sell-stock.js[tag=description] include::interview-questions/buy-sell-stock.js[tag=solution] ---- -The runtime is `O(n)` and a space complexity of `O(1)`. +The runtime is `O(n)` and space complexity of `O(1)`. + + + +:leveloffset: +1 + +=== Solutions for Linked List Questions +(((Interview Questions Solutions, Linked Lists))) + +:leveloffset: -1 + + + + +[#linkedlist-q-merge-lists] +include::content/part02/linked-list.asc[tag=linkedlist-q-merge-lists] + +We need to visit each node in both lists and merge them in ascending order. Note: We don't need to copy the values nor create new nodes. + +Another case to take into consideration is that lists might have different lengths. So, if one list runs out, we have to keep taking elements from the remaining list. + +*Algorithm*: + +- Have a pointer for each list +- While there's a pointer that is not null, visite them + - Compare each list node's value and take the smaller one. + - Advance the pointer of the taken node to the next one. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/merge-lists.js[tag=description] +include::interview-questions/merge-lists.js[tag=solution] +---- + +Notice that we used a "dummy" node or "sentinel node" to have some starting point for the final list. + +*Complexity Analysis*: + +- Time: `O(m+n)`. Visiting each node from the list 1 and list 2 has a time complexity `O(m + n)`. `m` and `n` represent each list's length. +- Space: `O(1)`. We reuse the same nodes and only change their `next` pointers. We only create one additional node, "the sentinel node." + + +[#linkedlist-q-linkedlist-same-data] +include::content/part02/linked-list.asc[tag=linkedlist-q-linkedlist-same-data] + +We are given two linked lists that contain string data. We want to know if the concatenated strings from each list are the same. + +The tricky part is that the same data can be distributed differently on the linked lists: + +---- +L1: he -> ll -> o +L2: h -> e -> llo +---- + +One naive approach could be to go through each list's node and concatenate the strings. Then, we can check if they are equal. + +[source, javascript] +---- +include::interview-questions/linkedlist-same-data.js[tag=hasSameDataBrute1] +---- + +Notice that the problem mentions that lists could be huge (millions of nodes). If the first character on each list is different, we are unnecessarily computing millions of nodes, when a straightforward check will do the job. + +A better way to solve this problem is iterating over each character on both lists, and when we found mistmatch, we return `false` immediately. If they are the same, we still have to visit all of them. + +*Algorithm*: + +- Set a pointer to iterate over each node in the lists. +- For each node, have an index (starting at zero) and compare if both lists have the same data. + - When the index reaches the last character on the current node, we move to the next node. + - If we found that a character from one list doesn't match the other, we return `false`. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/linkedlist-same-data.js[tag=description] +include::interview-questions/linkedlist-same-data.js[tag=solution] +---- + +The function `findNextPointerIndex` is a helper to navigate each character on a linked list. +Notice, that we increase the index (`i + 1`) on each iteration. +If the index overflows, it moves to the next node and reset the index to zero. + + + +*Complexity Analysis*: + +- Time: `O(n)`. We go over all the characters on each list +- Space: `O(1)`. Only using pointers and no auxiliary data structures. + + + +:leveloffset: +1 + +=== Solutions for Stack Questions +(((Interview Questions Solutions, Stack))) + +:leveloffset: -1 + +[#stack-q-valid-parentheses] +include::content/part02/stack.asc[tag=stack-q-valid-parentheses] + +.We need to validate that brackets are properly opened and closed, following these rules: +- An opened bracket must be close by the same type. +- Open brackets mush be closed in the correct order. + +This is a parsing problem, and usually, stacks are good candidates for them. + +*Algorithm*: + +- Create a mapping for each opening bracket, to its closing counterpart. +- Iterate through the string + - When we found an opening bracket, insert the corresponding closing bracket into the stack. + - When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. +- Check the stack is empty. If there's a leftover, it means that something didn't close properly. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/valid-parentheses.js[tag=description] +include::interview-questions/valid-parentheses.js[tag=solution] +---- + +*Complexity Analysis*: + +- Time: `O(n)`. We iterate over each character of the string. +- Space: `O(n)`. We use an auxiliary stack. + + + +[#stack-q-daily-temperatures] +include::content/part02/stack.asc[tag=stack-q-daily-temperatures] + +The first solution that might come to mind it's using two for loops. For each element, we have visit each temperature ahead to find a bigger one. + +[source, javascript] +---- +include::interview-questions/daily-temperatures.js[tag=dailyTemperaturesBrute1] +---- + +This solution is an `O(n^2)`. Can we do better? We can! + +Here's an idea: start backward, so we know when there's a warmer temperature beforehand. The last element is always 0 (because there are no more temperatures ahead of it). We can place each element's index that we visit on a stack. If the current weather is bigger than the stack top, we remove it until a bigger one remains or the stack is empty. If the stack has a value, we calculate the number of days ahead. Otherwise, it is 0. + +*Algorithm*: + +- Traverse the daily temperatures backward + - Push each temperature to a stack. + - While the current temperature is larger than the one at the top of the stack, pop it. + - If the stack is empty, then there's no warmer weather ahead, so it's 0. + - If the stack has an element, calculate the index delta. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/daily-temperatures.js[tag=description] +include::interview-questions/daily-temperatures.js[tag=solution] +---- + +The stack contains the indexes rather than the temperatures themselves. + +*Complexity Analysis*: + +- Time: `O(n)`. We visit each element on the array once. +- Space: `O(1)`. The worst-case scenario is ascending order without duplicates. The stack will hold at most 70 items (100 - 30). If we didn't have the range restriction, then space complexity would be `O(n)`. + + + +// [#linkedlist-q-FILENAME] +// include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] + +// RESTATE REQUIREMENTS AND DESCRIPTIONS + +// *Algorithm*: + +// - STEP 1 +// - STEP 2 +// - STEP 2.1 +// - STEP 2.2 + +// *Implementation*: + +// [source, javascript] +// ---- +// include::interview-questions/FILENAME.js[tag=description] +// include::interview-questions/FILENAME.js[tag=solution] +// ---- + +// IMPLEMENTATION NOTES + +// *Complexity Analysis*: + +// - Time: `O(?)`. WHY? +// - Space: `O(?)`. WHY? + diff --git a/book/config b/book/config index 1216accf..b4dd20d3 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit 1216accfbd750b835ba92c196aa20ddd3414c515 +Subproject commit b4dd20d3f92beb4dd48445464e1734819a9cd40a diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 4b2c2c7e..e03863e5 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -7,18 +7,18 @@ endif::[] === Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) -Arrays are one of the most used data structures. You probably have used it a lot but are you aware of the runtimes of `splice`, `shift`, `indexOf` and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. +Arrays are one of the most used data structures. You probably have used it a lot, but are you aware of the runtimes of `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics An array is a collection of things (strings, characters, numbers, objects, etc.). They can be many or zero. -TIP: Strings are a collection of Unicode characters and most of the array concepts apply to them. +TIP: Strings are a collection of Unicode characters, and most of the array concepts apply to them. .Fixed vs. Dynamic Size Arrays **** -Some programming languages have fixed size arrays like Java and {cpp}. -Fixed size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. For that, those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. +Some programming languages have fixed-size arrays like Java and {cpp}. +Fixed-size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. Those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. **** Arrays look like this: @@ -26,11 +26,11 @@ Arrays look like this: .Array representation: each value is accessed through an index. image::image16.png[image,width=388,height=110] -Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look into the different operations that we can do with arrays. +Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look at the different operations that we can do with arrays. ==== Insertion -Arrays are built-in into most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: +Arrays are built-in in most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: .Inserting elements into an array [source, javascript] @@ -45,7 +45,7 @@ array2[100] = 2; array2 // [empty × 3, 1, empty × 96, 2] ---- -Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers but the length is 101 and there are 99 empty spaces. +Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers, but the length is 101, and there are 99 empty spaces. [source, javascript] ---- @@ -54,7 +54,7 @@ console.log(array2); // [empty × 3, 1, empty × 96, 2] ---- -The runtime for inserting elements using index is always is constant: _O(1)_. +The runtime for inserting elements using an index is always is constant: _O(1)_. ===== Inserting at the beginning of the array @@ -72,7 +72,7 @@ As you can see, `2` was at index 0, now was pushed to index 1, and everything el .JavaScript built-in `array.unshift` **** -The `unshift()` method adds one or more elements to the beginning of an array and returns the new length of the array. +The `unshift()` method adds one or more elements to the beginning of an array and returns the array's new length. Runtime: O(n). **** @@ -90,11 +90,11 @@ array.splice(1, 0, 111); // ↪️ [] <1> ---- <1> at position `1`, delete `0` elements and insert `111`. -The Big O for this operation would be *O(n)* since in worst case it would move most of the elements to the right. +The Big O for this operation would be *O(n)* since, in the worst case, it would move most of the elements to the right. .JavaScript built-in `array.splice` **** -The `splice()` method changes the contents of an array by removing existing elements or adding new elements. Splice returns an array containing the deleted elements. +The `splice()` method changes an array's contents by removing existing elements or adding new elements. Splice returns an array containing the deleted items. Runtime: O(n). **** @@ -116,7 +116,7 @@ Adding to the tail of the array doesn’t change other indexes. E.g., element 2 .JavaScript built-in `array.push` **** -The `push()` method adds one or more elements to the end of an array and returns the new length of the array. +The `push()` method adds one or more elements to the end of an array and returns the array's new length. Runtime: O(1). **** @@ -124,7 +124,7 @@ Runtime: O(1). [[array-search-by-value]] ==== Searching by value and index -Searching by index is very easy using the `[]` operator: +Searching by the index is very easy using the `[]` operator: .Search by index [source, javascript] @@ -185,7 +185,7 @@ We would have to loop through the whole array (worst case) or until we find it: ==== Deletion -There are three possible scenarios for deletion (similar to insertion): removing at the beginning, middle or end. +There are three possible deletion scenarios (similar to insertion): removing at the beginning, middle, or end. ===== Deleting element from the beginning @@ -224,7 +224,7 @@ array.splice(2, 1); // ↪️[2] <1> ---- <1> delete 1 element at position 2 -Deleting from the middle might cause most of the elements of the array to move up one position to fill in for the eliminated item. Thus, runtime: O(n). +Deleting from the middle might cause most of the array elements to move up one position to fill in for the eliminated item. Thus, runtime: O(n). ===== Deleting element from the end @@ -282,7 +282,7 @@ To sum up, the time complexity of an array is: // tag::array-q-max-subarray[] ===== Max Subarray -Given an array of integers, find the maximum sum of consecutive elements (subarray). +*AR-1*) _Given an array of integers, find the maximum sum of consecutive elements (subarray)._ // end::array-q-max-subarray[] [source, javascript] @@ -297,7 +297,7 @@ _Solution: <<array-q-max-subarray>>_ // tag::array-q-buy-sell-stock[] ===== Best Time to Buy and Sell an Stock -You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximun profit you can obtain? (Note: you have to buy first and then sell) +*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 6e3f3f98..7790c3e4 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -23,7 +23,7 @@ Each element or node is *connected* to the next one by a reference. When a node .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. image::image19.png[image,width=498,height=97] -Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. [[doubly-linked-list]] ==== Doubly Linked List @@ -47,9 +47,9 @@ include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] ==== Linked List vs. Array -Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. +Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. When it is getting full, it has to create a bigger array (usually 2x) and copy all the elements. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor large chunks of memory have to be booked beforehand like arrays. Linked List is more on a "grow as you go" basis. +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. It has to create a larger array (usually 2x) and copy all the elements when it is getting full. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor are large chunks of memory booked beforehand like arrays. Linked List is more on a "grow as you go" basis. Another difference is that adding/deleting at the beginning on an array takes O(n); however, the linked list is a constant operation O(1) as we will implement later. @@ -70,7 +70,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=constructor] } ---- -In our constructor, we keep a reference of the `first` and also `last` node for performance reasons. +In our constructor, we reference the `first` and `last` node for performance reasons. ==== Searching by value @@ -84,7 +84,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByValue If we find the element, we will return the index otherwise `undefined`. The runtime for locating an item by value is _O(n)_. -For finding elements by value or position we are using the following helper function: +For finding elements by value or position, we are using the following helper function: .Find elements using a callback [source, javascript] @@ -92,8 +92,8 @@ For finding elements by value or position we are using the following helper func include::{codedir}/data-structures/linked-lists/linked-list.js[tag=find, indent=0] ---- <1> We initialize two variables `current` to the first node and `position` to keep track of the index. -<2> While `current` node is not null we keep going. -<3> On each loop we move to the next node and increment the index. +<2> While the `current` node is not null, we keep going. +<3> On each loop, we move to the next node and increment the index. <4> We invoke the callback passing the current position and node. If the callback returns something, then we stop and return that value. <5> Return whatever result we got from the callback. E.g., we can return the index or the node itself or any other calculation. @@ -101,7 +101,7 @@ We are going to use this `find` method again to implement searching by index. ==== Searching by index -Searching by index is very similar, we iterate through the list until we find the element that matches the position. +Searching by an index is very similar, we iterate through the list until we find the element that matches the position. .Linked List's searching by index (position) [source, javascript] @@ -109,22 +109,22 @@ Searching by index is very similar, we iterate through the list until we find th include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByIndex, indent=0] ---- -If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar. If you want to take a look at the whole implementation, https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[click here]. +If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar; you want to take a look at the https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[full implementation]. ==== Insertion -Similar to the array, with a linked list you can add elements at the beginning, end or anywhere in the middle of the list. So, let's implement each case. +In a linked list, you can add elements at the beginning, end, or anywhere in the middle of the list. So, let's implement each case. [[linked-list-inserting-beginning]] ===== Inserting elements at the beginning of the list -We are going to use the `Node` class to create a new element and stick it at the beginning of the list as shown below. +We will use the `Node` class to create a new element and stick it at the beginning of the list, as shown below. .Insert at the beginning by linking the new node with the current first node. image::image23.png[image,width=498,height=217] -To insert at the beginning, we create a new node with the next reference to the current first node. Then we make first the new node. In code, it would look something like this: +To insert at the beginning, we create a new node with the next reference to the current first node. Then we first make the new node. In code, it would look something like this: .Add item to the beginning of a Linked List [source, javascript] @@ -137,7 +137,7 @@ As you can see, we create a new node and make it the first one. ===== Inserting element at the end of the list -Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item in the list. Otherwise, you would have to iterate through the whole list. +Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item. Otherwise, you would have to iterate through the whole list. .Add element to the end of the linked list image::image24.png[image,width=498,height=208] @@ -148,12 +148,12 @@ image::image24.png[image,width=498,height=208] include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addLast, indent=0] ---- -If there’s no element in the list yet, the first and last node would be the same. If there’s something, then, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. +If there’s no element in the list yet, the first and last node would be the same. If there’s something, we go to the `last` item and add the reference `next` to the new node. That’s it! We got a constant time for inserting at the beginning and the end of the list: *O(1)*. ===== Inserting element at the middle of the list -For inserting an element at the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. +For inserting an element in the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. .There are 4 references to update: . New node's `next`. @@ -168,7 +168,7 @@ Let’s do an example with the following doubly linked list: art <-> dog <-> cat ---- -We want to insert the `new` node in the 2^nd^ position. For that we first create the "new" node and update the references around it. +We want to insert the `new` node in the 2^nd^ position. For that, we first create the "new" node and update the references around it. .Inserting node in the middle of a doubly linked list. image::image25.png[image,width=528,height=358] @@ -181,11 +181,11 @@ Take a look into the implementation of https://github.com/amejiarosario/dsa.js/b include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addMiddle, indent=0] ---- <1> If the new item goes to position 0, then we reuse the `addFirst` method, and we are done! -<2> However, if we are adding to the last position, then we reuse the `addLast` method, and done! -<3> Adding `newNode` to the middle: First, create the `new` node only if the position exists. Take a look at <<Searching by index>> to see `get` implementation. +<2> However, if we add to the last position, we reuse the `addLast` method and done! +<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <<Searching by index>> to see `get` implementation. <4> Set newNode `previous` reference. <5> Set newNode `next` link. -<6> No other node in the list is pointing to `newNode`, so we have to make the prior element point to `newNode`. +<6> No other node in the list points to `newNode`, so we have to make the prior element point to `newNode`. <7> Make the next element point to `newNode`. Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and make them point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `get` method. @@ -219,7 +219,7 @@ Removing the last element from the list would require to iterate from the head u image::image27.png[image,width=528,height=221] -For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat”. Since nothing is pointing to “cat”, it is out of the list and eventually is deleted from memory by the garbage collector. +For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat.” Since nothing is pointing to “cat” it is out of the list and eventually is deleted from memory by the garbage collector. .Linked List's remove from the end of the list [source, javascript] @@ -228,7 +228,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeLast, i ---- -The code is very similar to `removeFirst`, but instead of first we update `last` reference, and instead of nullifying `previous` we nullify its `next` reference. +The code is very similar to `removeFirst`, but instead of first, we update `last` reference, and instead of nullifying `previous`, we nullify its `next` reference. ===== Deleting element from the middle @@ -238,7 +238,7 @@ To remove a node from the middle, we make the surrounding nodes to bypass the on image::image28.png[image,width=528,height=259] -In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art”, totally bypassing “dog”. +In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art,” totally bypassing “dog.” Let’s implement it: @@ -252,7 +252,7 @@ Notice that we are using the `get` method to get the node at the current positio ==== Linked List Complexity vs. Array Complexity -So far, we have seen two liner data structures with different use cases. Here’s a summary: +So far, we have seen two-liner data structures with different use cases. Here’s a summary: (((Tables, Linear DS, Array/Lists complexities))) // tag::table[] @@ -268,9 +268,9 @@ So far, we have seen two liner data structures with different use cases. Here’ (((Linear))) (((Runtime, Linear))) -If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly linked list is *O(1)*. +If you compare the singly linked list vs. doubly linked list, you will notice that the main difference is inserting elements to and deleting elements from the end. For a singly linked list, it's *O(n)*, while a doubly-linked list is *O(1)*. -Comparing an array with a doubly linked list, both have different use cases: +Comparing an array with a doubly-linked list, both have different use cases: Use arrays when: @@ -282,10 +282,45 @@ Use a doubly linked list when: * You want to access elements in a *sequential* manner only like <<part02-linear-data-structures#stack>> or <<part02-linear-data-structures#queue>>. * You want to insert elements at the start and end of the list. The linked list has O(1) while array has O(n). -* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go”. +* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” -For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we are going use that. +For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. -==== Linked List Exercises +==== Interview Questions +(((Interview Questions, Arrays))) -1) Merge two sorted lists into one (and keep them sorted) + + + +// tag::linkedlist-q-merge-lists[] +===== Merge Linked Lists into One + +*LL-1*) _Merge two sorted lists into one (and keep them sorted)_ +// end::linkedlist-q-merge-lists[] + +[source, javascript] +---- +include::../../interview-questions/merge-lists.js[tag=description] + // write you code here +} +---- + +_Solution: <<linkedlist-q-merge-lists>>_ + + + + +// tag::linkedlist-q-linkedlist-same-data[] +===== Check if two strings lists are the same + +*LL-2*) _Given two linked lists with strings, check if are the same_ +// end::linkedlist-q-linkedlist-same-data[] + +[source, javascript] +---- +include::../../interview-questions/linkedlist-same-data.js[tag=description] + // write you code here +} +---- + +_Solution: <<linkedlist-q-linkedlist-same-data>>_ diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index 81ced6f2..02643814 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -11,7 +11,7 @@ endif::[] (((LIFO))) The stack is a data structure that restricts the way you add and remove data. It only allows you to insert and retrieve in a *Last-In-First-Out* (LIFO) fashion. -An analogy is to think that the stack is a rod and the data are discs. You can only take out the last one you put in. +An analogy is to think that the stack is a rod, and the data are discs. You can only take out the last one you put in. .Stack data structure is like a stack of disks: the last element in is the first element out image::image29.png[image,width=240,height=238] @@ -20,7 +20,7 @@ image::image29.png[image,width=240,height=238] As you can see in the image above, If you insert the disks in the order `5`, `4`, `3`, `2`, `1`, then you can remove them in `1`, `2`, `3`, `4`, `5`. -The stack inserts items to the end of the collection and also removes from the end. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. +The stack inserts items to the end of the collection and also removes it from the rear. Both an array and linked list would do it in constant time. However, since we don’t need the Array’s random access, a linked list makes more sense. .Stack's constructor [source, javascript] @@ -30,7 +30,7 @@ include::{codedir}/data-structures/stacks/stack.js[tag=constructor] } ---- -As you can see in the stack constructor, we are using a linked list as the underlying data structure. +As you can see in the stack constructor, we use a linked list as the underlying data structure. Let's now develop the insert and remove operations in a stack. @@ -48,7 +48,7 @@ We are returning `this`, in case we want to chain multiple add commands. ==== Deletion -Deleting is straightforward as well. +Deleting is straightforward, as well. .Stack's remove [source, javascript] @@ -56,7 +56,7 @@ Deleting is straightforward as well. include::{codedir}/data-structures/stacks/stack.js[tag=remove, indent=0] ---- -This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the full implementation https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[here]. +This time we used the linked list’s `removeLast` method. That’s all we need for a stack implementation. Check out the https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/stacks/stack.js#L6[full implementation]. ==== Implementation Usage @@ -68,7 +68,7 @@ We can use our stack implementation as follows: include::{codedir}/data-structures/stacks/stack.js[tag=snippet, indent=0] ---- -As you can see if we add new items they will be the first to go out to honor LIFO. +As you can see, if we add new items, they will be the first to go out to honor LIFO. ==== Stack Complexity @@ -85,3 +85,45 @@ Implementing the stack with an array and linked list would lead to the same time // end::table[] It's not very common to search for values on a stack (other Data Structures are better suited for this). Stacks are especially useful for implementing <<part03-graph-data-structures#dfs-tree, Depth-First Search>>. + + +==== Interview Questions +(((Interview Questions, Arrays))) + + + + + +// tag::stack-q-valid-parentheses[] +===== Validate Parentheses / Braces / Brackets + +*ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ +// end::stack-q-valid-parentheses[] + +[source, javascript] +---- +include::../../interview-questions/valid-parentheses.js[tag=description] + // write you code here +} +---- + +_Solution: <<stack-q-valid-parentheses>>_ + + + + + +// tag::stack-q-daily-temperatures[] +===== Daily Temperaturs + +*ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ +// end::stack-q-daily-temperatures[] + +[source, javascript] +---- +include::../../interview-questions/daily-temperatures.js[tag=description] + // write you code here +} +---- + +_Solution: <<stack-q-daily-temperatures>>_ diff --git a/book/interview-questions/daily-temperatures.js b/book/interview-questions/daily-temperatures.js new file mode 100644 index 00000000..5a4b4613 --- /dev/null +++ b/book/interview-questions/daily-temperatures.js @@ -0,0 +1,48 @@ +// tag::description[] +/** + * Given an array with daily temperatures (30 °C to 100 °C), + * return an array with the days count until a warmer temperature + * for each elem from the input. + * + * @examples + * dailyTemperatures([30, 28, 50, 40, 30]); // [2, 1, 0, 0, 0] + * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] + * + * @param {number[]} t - Daily temperatures + */ +function dailyTemperatures(t) { + // end::description[] + // tag::solution[] + const last = (arr) => arr[arr.length - 1]; + const stack = []; + const ans = []; + + for (let i = t.length - 1; i >= 0; i--) { + while (stack.length && t[i] >= t[last(stack)]) stack.pop(); + ans[i] = stack.length ? last(stack) - i : 0; + stack.push(i); + } + + return ans; +} +// end::solution[] + +// tag::dailyTemperaturesBrute1[] +function dailyTemperaturesBrute1(t) { + const ans = []; + + for (let i = 0; i < t.length; i++) { + ans[i] = 0; + for (let j = i + 1; j < t.length; j++) { + if (t[j] > t[i]) { + ans[i] = j - i; + break; + } + } + } + + return ans; +} +// end::dailyTemperaturesBrute1[] + +module.exports = { dailyTemperatures, dailyTemperaturesBrute1 }; diff --git a/book/interview-questions/daily-temperatures.spec.js b/book/interview-questions/daily-temperatures.spec.js new file mode 100644 index 00000000..3ff950d7 --- /dev/null +++ b/book/interview-questions/daily-temperatures.spec.js @@ -0,0 +1,21 @@ +const { dailyTemperatures } = require('./daily-temperatures'); + +describe('Stack: Daily Temperatures', () => { + it('should work', () => { + expect(dailyTemperatures([30, 28, 50, 40, 30])).toEqual([2, 1, 0, 0, 0]); + }); + + it('should work', () => { + expect(dailyTemperatures([73, 74, 75, 71, 69, 72, 76, 73])).toEqual([1, 1, 4, 2, 1, 1, 0, 0]); + }); + + it('should work', () => { + expect(dailyTemperatures([89, 62, 70, 58, 47, 47, 46, 76, 100, 70])).toEqual([8, 1, 5, 4, 3, 2, 1, 1, 0, 0]); + }); + + it('should work with large data', () => { + const input = [64, 40, 49, 73, 72, 35, 68, 83, 35, 73, 84, 88, 96, 43, 74, 63, 41, 95, 48, 46, 89, 72, 34, 85, 72, 59, 87, 49, 30, 32, 47, 34, 74, 58, 31, 75, 73, 88, 64, 92, 83, 64, 100, 99, 81, 41, 48, 83, 96, 92, 82, 32, 35, 68, 68, 92, 73, 92, 52, 33, 44, 38, 47, 88, 71, 50, 57, 95, 33, 65, 94, 44, 47, 79, 41, 74, 50, 67, 97, 31, 68, 50, 37, 70, 77, 55, 48, 30, 77, 100, 31, 100, 69, 60, 47, 95, 68, 47, 33, 64]; + const output = [3, 1, 1, 4, 3, 1, 1, 3, 1, 1, 1, 1, 30, 1, 3, 2, 1, 25, 2, 1, 19, 2, 1, 3, 2, 1, 11, 5, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 1, 3, 2, 1, 0, 46, 3, 1, 1, 1, 30, 18, 5, 1, 1, 2, 1, 12, 1, 10, 5, 1, 2, 1, 1, 4, 3, 1, 1, 11, 1, 1, 8, 1, 1, 5, 1, 3, 1, 1, 11, 1, 3, 2, 1, 1, 5, 3, 2, 1, 1, 0, 1, 0, 3, 2, 1, 0, 0, 2, 1, 0]; + expect(dailyTemperatures(input)).toEqual(output); + }); +}); diff --git a/book/interview-questions/linkedlist-same-data.js b/book/interview-questions/linkedlist-same-data.js new file mode 100644 index 00000000..fd303d36 --- /dev/null +++ b/book/interview-questions/linkedlist-same-data.js @@ -0,0 +1,83 @@ +// const ListNode = require('../../src/data-structures/linked-lists/node'); + +// tag::description[] +/** + * Check if two lists has the same string data. + * Note: each lists can be huge, they have up to 10 million nodes. + * + * @examples + * hasSameData(['he', 'll', 'o'], ['hel', 'lo']); // true + * hasSameData(['hel', 'lo'], ['hi']); // false + * + * @param {ListNode} l1 - The root node of list 1 + * @param {ListNode} l2 - The root node of list 2 + */ +function hasSameData(l1, l2) { + // end::description[] + // tag::solution[] + let p1 = l1; + let p2 = l2; + let i1 = -1; + let i2 = -1; + + const findNextPointerIndex = (p, i) => { + let node = p; + let index = i; + while (node && index >= node.value.length) { + node = node.next; + index = 0; + } + return [node, index]; + }; + + while (p1 && p2) { + [p1, i1] = findNextPointerIndex(p1, i1 + 1); + [p2, i2] = findNextPointerIndex(p2, i2 + 1); + if ((p1 && p2 && p1.value[i1] !== p2.value[i2]) + || ((!p1 || !p2) && p1 !== p2)) return false; + } + return true; +} +// end::solution[] + +// tag::hasSameDataBrute1[] +function hasSameDataBrute1(l1, l2) { + function toString(node) { + const str = []; + for (let curr = node; curr; curr = curr.next) { + str.push(curr.value); + } + return str.join(''); + } + + // console.log({s1: toString(l1), s2: toString(l2) }); + return toString(l1) === toString(l2); +} +// end::hasSameDataBrute1[] + +function hasSameData1(l1, l2) { + let p1 = l1; + let p2 = l2; + + let i1 = 0; + let i2 = 0; + + while (p1 || p2) { + if (!p1 || !p2 || p1.value[i1] !== p2.value[i2]) return false; + + if (i1 < p1.value.length - 1) i1++; + else { + p1 = p1.next; + i1 = 0; + } + + if (i2 < p2.value.length - 1) i2++; + else { + p2 = p2.next; + i2 = 0; + } + } + return true; +} + +module.exports = { hasSameData, hasSameDataBrute1, hasSameData1 }; diff --git a/book/interview-questions/linkedlist-same-data.spec.js b/book/interview-questions/linkedlist-same-data.spec.js new file mode 100644 index 00000000..c0d26830 --- /dev/null +++ b/book/interview-questions/linkedlist-same-data.spec.js @@ -0,0 +1,41 @@ +const { hasSameData } = require('./linkedlist-same-data'); +const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); + +describe('Linked List: has same data', () => { + it('should work with same data and shape', () => { + const l1 = new LinkedList(['hi']).first; + const l2 = new LinkedList(['hi']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + it('should work with different data', () => { + const l1 = new LinkedList(['ab']).first; + const l2 = new LinkedList(['a']).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); + + it('should work with same data and but different shape', () => { + const l1 = new LinkedList(['h', 'e', 'l', 'l', 'o']).first; + const l2 = new LinkedList(['hello']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + it('should work with different data', () => { + const l1 = new LinkedList(['he', 'll', 'o']).first; + const l2 = new LinkedList(['ho', 'la']).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); + + it('should handle empty', () => { + const l1 = new LinkedList(['hi']).first; + const l2 = new LinkedList(['', 'h', '', 'i']).first; + expect(hasSameData(l1, l2)).toEqual(true); + }); + + xit('should work with large data', () => { + const size = 1e6; // 1e7 takes 4sec. + const l1 = new LinkedList(Array(size).fill('x')).first; + const l2 = new LinkedList(Array(size).fill('z')).first; + expect(hasSameData(l1, l2)).toEqual(false); + }); +}); diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js index 3684740a..0245702f 100644 --- a/book/interview-questions/max-subarray.js +++ b/book/interview-questions/max-subarray.js @@ -4,6 +4,7 @@ * @examples * maxSubArray([1, -3, 10, -5]); // => 10 * maxSubArray([-3,4,-1,2,1,-5]); // => 6 + * * @param {number[]} a - Array */ function maxSubArray(a) { diff --git a/book/interview-questions/merge-lists.js b/book/interview-questions/merge-lists.js new file mode 100644 index 00000000..ad26c326 --- /dev/null +++ b/book/interview-questions/merge-lists.js @@ -0,0 +1,37 @@ +const ListNode = require('../../src/data-structures/linked-lists/node'); +// tag::description[] +/** + * Given two sorted linked lists merge them while keeping the asc order. + * @examples + * mergeTwoLists([2,4,6], [1,3]); // => [1,2,3,4,6] + * mergeTwoLists([2,4,6], []); // => [2,4,6] + * mergeTwoLists([], [1,3]); // => [1,3] + * + * @param {ListNode} l1 - The root node of list 1 + * @param {ListNode} l2 - The root node of list 2 + */ +function mergeTwoLists(l1, l2) { + // end::description[] + // tag::solution[] + const sentinel = new ListNode(); + let p0 = sentinel; + let p1 = l1; + let p2 = l2; + + while (p1 || p2) { + if (!p1 || (p2 && p1.value > p2.value)) { + p0.next = p2; + p2 = p2.next; + } else { + p0.next = p1; + p1 = p1.next; + } + p0 = p0.next; + } + + return sentinel.next; +} +// end::solution[] + + +module.exports = { mergeTwoLists }; diff --git a/book/interview-questions/merge-lists.spec.js b/book/interview-questions/merge-lists.spec.js new file mode 100644 index 00000000..4b06e8ee --- /dev/null +++ b/book/interview-questions/merge-lists.spec.js @@ -0,0 +1,44 @@ +const { mergeTwoLists } = require('./merge-lists'); +const LinkedList = require('../../src/data-structures/linked-lists/linked-list'); + +describe('Linked List: Merge Lists', () => { + function asString(root) { + const values = []; + for (let curr = root; curr; curr = curr.next) { + values.push(curr.value); + } + return values.join(' -> '); + } + + it('should merge in asc order', () => { + const l1 = new LinkedList([2, 3, 4]).first; + const l2 = new LinkedList([1, 2]).first; + const actual = mergeTwoLists(l1, l2); + const expected = '1 -> 2 -> 2 -> 3 -> 4'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty list 1', () => { + const l1 = new LinkedList().first; + const l2 = new LinkedList([1, 2]).first; + const actual = mergeTwoLists(l1, l2); + const expected = '1 -> 2'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty list 1', () => { + const l1 = new LinkedList([2, 3, 4]).first; + const l2 = new LinkedList().first; + const actual = mergeTwoLists(l1, l2); + const expected = '2 -> 3 -> 4'; + expect(asString(actual)).toEqual(expected); + }); + + it('should handle empty lists', () => { + const l1 = new LinkedList().first; + const l2 = new LinkedList().first; + const actual = mergeTwoLists(l1, l2); + const expected = ''; + expect(asString(actual)).toEqual(expected); + }); +}); diff --git a/book/interview-questions/valid-parentheses.js b/book/interview-questions/valid-parentheses.js new file mode 100644 index 00000000..a822a214 --- /dev/null +++ b/book/interview-questions/valid-parentheses.js @@ -0,0 +1,27 @@ +// tag::description[] +/** + * Validate if the parentheses are opened and closed in the right order. + * + * @example + * isParenthesesValid('(){}[]'); // true + * isParenthesesValid('([{}])'); // true + * isParenthesesValid('([{)}]'); // false + * + * @param {string} string - The string + */ +function isParenthesesValid(string) { + // end::description[] + // tag::solution[] + const map = new Map([['(', ')'], ['{', '}'], ['[', ']']]); + const stack = []; + + for (const c of string) { + if (map.has(c)) stack.push(map.get(c)); + else if (c !== stack.pop()) return false; + } + + return stack.length === 0; +} +// end::solution[] + +module.exports = { isParenthesesValid }; diff --git a/book/interview-questions/valid-parentheses.spec.js b/book/interview-questions/valid-parentheses.spec.js new file mode 100644 index 00000000..fcb392f3 --- /dev/null +++ b/book/interview-questions/valid-parentheses.spec.js @@ -0,0 +1,23 @@ +const { isParenthesesValid } = require('./valid-parentheses'); + +describe('Stack: Valid Parentheses', () => { + it('should be valid', () => { + expect(isParenthesesValid('()')).toEqual(true); + }); + + it('should be valid with different kinds', () => { + expect(isParenthesesValid('()[]{}')).toEqual(true); + }); + + it('should be valid with different nested kinds', () => { + expect(isParenthesesValid('([{}])')).toEqual(true); + }); + + it('should not be valid if incomplete', () => { + expect(isParenthesesValid('()(')).toEqual(false); + }); + + it('should not be valid if invalid character is present', () => { + expect(isParenthesesValid('()-')).toEqual(false); + }); +}); From 263c9dce234bdf59f4254470c19a7aed0324ad2b Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Wed, 26 Aug 2020 20:43:57 +0000 Subject: [PATCH 023/108] :bookmark: chore(release): 1.13.0 # [1.13.0](https://github.com/amejiarosario/dsa.js/compare/1.12.0...1.13.0) (2020-08-26) ### Features * **book/exercises:** interview q&a for linked lists and stacks ([3bb86fd](https://github.com/amejiarosario/dsa.js/commit/3bb86fd544f543906b5723aab1f26d5a75f13950)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab284907..ee461a8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.13.0](https://github.com/amejiarosario/dsa.js/compare/1.12.0...1.13.0) (2020-08-26) + + +### Features + +* **book/exercises:** interview q&a for linked lists and stacks ([3bb86fd](https://github.com/amejiarosario/dsa.js/commit/3bb86fd544f543906b5723aab1f26d5a75f13950)) + # [1.12.0](https://github.com/amejiarosario/dsa.js/compare/1.11.0...1.12.0) (2020-08-26) diff --git a/package-lock.json b/package-lock.json index 44eaa54e..66f93610 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.12.0", + "version": "1.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 045692ee..5e0b002b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.12.0", + "version": "1.13.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 04aa9db26659058c09debe985f94845933a2089d Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 28 Aug 2020 15:40:19 -0400 Subject: [PATCH 024/108] feat(queue): add front, back and peek methods --- src/data-structures/queues/queue.js | 54 ++++++++++++++++-------- src/data-structures/queues/queue.spec.js | 24 +++++++++++ 2 files changed, 61 insertions(+), 17 deletions(-) diff --git a/src/data-structures/queues/queue.js b/src/data-structures/queues/queue.js index 9b4e4bd9..b62c57ae 100644 --- a/src/data-structures/queues/queue.js +++ b/src/data-structures/queues/queue.js @@ -1,18 +1,31 @@ const LinkedList = require('../linked-lists/linked-list'); +/* Usage Example: +// tag::snippet[] +const queue = new Queue(); + +queue.enqueue('a'); +queue.enqueue('b'); +queue.dequeue(); //↪️ a +queue.enqueue('c'); +queue.dequeue(); //↪️ b +queue.dequeue(); //↪️ c +// end::snippet[] +// */ + // tag::constructor[] /** * Data structure where we add and remove elements in a first-in, first-out (FIFO) fashion */ class Queue { - constructor() { - this.items = new LinkedList(); + constructor(iterable = []) { + this.items = new LinkedList(iterable); } // end::constructor[] // tag::enqueue[] /** - * Add element to the queue + * Add element to the back of the queue. * Runtime: O(1) * @param {any} item * @returns {queue} instance to allow chaining. @@ -25,7 +38,7 @@ class Queue { // tag::dequeue[] /** - * Remove element from the queue + * Remove element from the front of the queue. * Runtime: O(1) * @returns {any} removed value. */ @@ -47,23 +60,30 @@ class Queue { isEmpty() { return !this.items.size; } + + /** + * Return the most recent value or null if empty. + */ + back() { + if (this.isEmpty()) return null; + return this.items.last.value; + } + + /** + * Return oldest value from the queue or null if empty. + * (Peek at the next value to be dequeue) + */ + front() { + if (this.isEmpty()) return null; + return this.items.first.value; + } } // Aliases +Queue.prototype.peek = Queue.prototype.front; Queue.prototype.add = Queue.prototype.enqueue; +Queue.prototype.push = Queue.prototype.enqueue; Queue.prototype.remove = Queue.prototype.dequeue; +Queue.prototype.pop = Queue.prototype.dequeue; module.exports = Queue; - -/* Usage Example: -// tag::snippet[] -const queue = new Queue(); - -queue.enqueue('a'); -queue.enqueue('b'); -queue.dequeue(); //↪️ a -queue.enqueue('c'); -queue.dequeue(); //↪️ b -queue.dequeue(); //↪️ c -// end::snippet[] -// */ diff --git a/src/data-structures/queues/queue.spec.js b/src/data-structures/queues/queue.spec.js index e6c6d050..289e0e39 100644 --- a/src/data-structures/queues/queue.spec.js +++ b/src/data-structures/queues/queue.spec.js @@ -46,4 +46,28 @@ describe('Queue', () => { expect(queue.isEmpty()).toBe(false); }); }); + + describe('#back', () => { + it('should return null if empty', () => { + expect(queue.back()).toEqual(null); + }); + + it('should return newest element', () => { + queue.enqueue('oldest'); + queue.enqueue('newest'); + expect(queue.back()).toEqual('newest'); + }); + }); + + describe('#front', () => { + it('should return null if empty', () => { + expect(queue.front()).toEqual(null); + }); + + it('should return oldest element', () => { + queue.enqueue('oldest'); + queue.enqueue('newest'); + expect(queue.front()).toEqual('oldest'); + }); + }); }); From 9a887660bd21e7dbda0d3e87af704b4e41874093 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 28 Aug 2020 15:41:16 -0400 Subject: [PATCH 025/108] feat(book/queue): add solution for queue question --- book/D-interview-questions-solutions.asc | 70 +++++++++++++++ book/content/part02/linked-list.asc | 5 +- book/content/part02/queue.asc | 38 ++++++++ book/content/part02/stack.asc | 6 +- book/interview-questions/design-snake-game.js | 86 +++++++++++++++++++ .../design-snake-game.spec.js | 31 +++++++ 6 files changed, 227 insertions(+), 9 deletions(-) create mode 100644 book/interview-questions/design-snake-game.js create mode 100644 book/interview-questions/design-snake-game.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 5fe1acf1..13a7ee85 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -267,6 +267,76 @@ The stack contains the indexes rather than the temperatures themselves. +:leveloffset: +1 + +=== Solutions for Queue Questions +(((Interview Questions Solutions, Queue))) + +:leveloffset: -1 + + +[#queue-q-design-snake-game] +include::content/part02/queue.asc[tag=queue-q-design-snake-game] + +This game is perfect to practice working with Queues. There are at least two opportunities to use a Queue. One for the food location and another for the snake body part movements. One very move, we insert a new position into the snake and dequeue the last position to indicate the snake moved. Everytime the snake eats food, it grows one more unit, the food gets dequeue and we place the location of next food (if any). + +*Algorithm*: + +- Based on the snake head current position, calculate the next position based on the given move `direction`. +- If the new position is outside the boundaries, game over(return -1) +- If the new position has food, remove that eaten food from its queue and go to the next. +- If the new position doesn't have food, remove the tail of the snake since it moved. +- If the snake new position hits itself, game over (return -1). To make this check we have to options: + - Queue: we can visit all the elements on snake queue (body) and check if new position collide. That's `O(n)` + - Set: we can maintain a `set` that has all the snake locations so the check is `O(1)`. +- Move the snake head to new location (enqueue) +- Return the score (snake's length - 1); + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/design-snake-game.js[tag=description] +include::interview-questions/design-snake-game.js[tag=solution] +---- + +As you can see we opted for using a set to trade speed for memory. + +*Complexity Analysis*: + +- Time: `O(1)`. Insert/Remove from Queue is constant time. Check body collisions is `O(1)` as well when using a set. If you traversed the snake queue, it would be `O(n)`, where `n` is the max length of the snake which is the size of the screen (height x width). +- Space: `O(n + m)`. `m` is the number of food items and `n` is the maximun size of the snake which is (height x width). + + +[#queue-q-FILENAME] +include::content/part02/queue.asc[tag=queue-q-FILENAME] + +RESTATE REQUIREMENTS AND DESCRIPTIONS + +*Algorithm*: + +- STEP 1 +- STEP 2 + - STEP 2.1 + - STEP 2.2 + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/FILENAME.js[tag=description] +include::interview-questions/FILENAME.js[tag=solution] +---- + +IMPLEMENTATION NOTES + +*Complexity Analysis*: + +- Time: `O(?)`. WHY? +- Space: `O(?)`. WHY? + + + // [#linkedlist-q-FILENAME] // include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 7790c3e4..71b68c82 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -287,10 +287,7 @@ Use a doubly linked list when: For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. ==== Interview Questions -(((Interview Questions, Arrays))) - - - +(((Interview Questions, Linked Lists))) // tag::linkedlist-q-merge-lists[] ===== Merge Linked Lists into One diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index aab404a7..46793934 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -81,3 +81,41 @@ As an experiment, we can see in the following table that if we had implemented t |=== // end::table[] indexterm:[Runtime, Linear] + + +==== Interview Questions +(((Interview Questions, Queue))) + +// tag::queue-q-design-snake-game[] +===== Design Snake Game + +*QU-1*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for game over._ +// end::queue-q-design-snake-game[] + +_Question seen at: Amazon, Bloomberg, Apple_ + +[source, javascript] +---- +include::../../interview-questions/design-snake-game.js[tag=description] +---- + +_Solution: <<queue-q-design-snake-game>>_ + + + + + +// // tag::queue-q-name-2[] +// ===== NAME2 + +// *QU-2*) _DESCRIPTION_ +// // end::queue-q-name-2[] + +// [source, javascript] +// ---- +// include::../../interview-questions/name-2.js[tag=description] +// // write you code here +// } +// ---- + +// _Solution: <<queue-q-name-2>>_ diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index 02643814..ae00254b 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -88,11 +88,7 @@ It's not very common to search for values on a stack (other Data Structures are ==== Interview Questions -(((Interview Questions, Arrays))) - - - - +(((Interview Questions, Stack))) // tag::stack-q-valid-parentheses[] ===== Validate Parentheses / Braces / Brackets diff --git a/book/interview-questions/design-snake-game.js b/book/interview-questions/design-snake-game.js new file mode 100644 index 00000000..6d9d7cf3 --- /dev/null +++ b/book/interview-questions/design-snake-game.js @@ -0,0 +1,86 @@ +const { Queue } = require('../../src/index'); + +// tag::description[] +/** + * The snake game stars with a snake of length 1 at postion 0,0. + * Only one food position is shown at a time. Once it's eaten the next one shows up. + * The snake can move in four directions up, down, left and right. + * If the snake go out of the boundaries (width x height) the game is over. + * If the snake hit itself the game is over. + * When the game is over, the `move` method returns -1 otherwise, return the current score. + * + * @example + * const snakeGame = new SnakeGame(3, 2, [[1, 2], [0, 1]]); + * snakeGame.move('R'); // 0 + * snakeGame.move('D'); // 0 + * snakeGame.move('R'); // 0 + * snakeGame.move('U'); // 1 (ate the food1) + * snakeGame.move('L'); // 2 (ate the food2) + * snakeGame.move('U'); // -1 (hit the upper wall) + */ +class SnakeGame { +// end::description[] +// tag::solution[] + + // end::solution[] + // tag::description[] + /** + * Initialize game with grid's dimension and food order. + * @param {number} width - The screen width (grid's columns) + * @param {number} height - Screen height (grid's rows) + * @param {number[]} food - Food locations. + */ + constructor(width, height, food) { + // end::description[] + // tag::solution[] + this.width = width; + this.height = height; + this.food = new Queue(food); + this.snake = new Queue([[0, 0]]); + this.tail = new Set([[0, 0]]); + this.dirs = { + U: [-1, 0], D: [1, 0], R: [0, 1], L: [0, -1], + }; + // end::solution[] + // tag::description[] + } + // end::description[] + + // tag::description[] + /** + * Move snake 1 position into the given direction. + * It returns the score or game over (-1) if the snake go out of bound or hit itself. + * @param {string} direction - 'U' = Up, 'L' = Left, 'R' = Right, 'D' = Down. + * @returns {number} - The current score (snake.length - 1). + */ + move(direction) { + // end::description[] + // tag::solution[] + let [r, c] = this.snake.back(); // head of the snake + [r, c] = [r + this.dirs[direction][0], c + this.dirs[direction][1]]; + + // check wall collision + if (r < 0 || c < 0 || r >= this.height || c >= this.width) return -1; + + const [fr, fc] = this.food.front() || []; // peek + if (r === fr && c === fc) { + this.food.dequeue(); // remove eaten food. + } else { + this.snake.dequeue(); // remove snake's if not food was eaten + this.tail.delete(this.tail.keys().next().value); + } + + // check collision with snake's tail + if (this.tail.has(`${r},${c}`)) return -1; // O(1) + + this.snake.enqueue([r, c]); // add new position + this.tail.add(`${r},${c}`); + + return this.snake.size - 1; // return score (length of the snake - 1) + // end::solution[] + // tag::description[] + } +} +// end::description[] + +module.exports = { SnakeGame }; diff --git a/book/interview-questions/design-snake-game.spec.js b/book/interview-questions/design-snake-game.spec.js new file mode 100644 index 00000000..acfcbd1f --- /dev/null +++ b/book/interview-questions/design-snake-game.spec.js @@ -0,0 +1,31 @@ +const { SnakeGame } = require('./design-snake-game'); + +describe('Queue: Design Snake Game', () => { + it('should game over when hits wall', () => { + const snakeGame = new SnakeGame(4, 2, [[1, 2], [0, 1]]); + expect(snakeGame.move('R')).toEqual(0); // 0 + expect(snakeGame.move('D')).toEqual(0); // 0 + expect(snakeGame.move('R')).toEqual(1); // 1 (ate food1) + expect(snakeGame.move('U')).toEqual(1); // 1 + expect(snakeGame.move('L')).toEqual(2); // 2 (ate food2) + expect(snakeGame.move('U')).toEqual(-1); // -1 (hit wall) + }); + + it('should circle around without eating itself', () => { + const snakeGame = new SnakeGame(2, 2, [[0, 1], [1, 1], [1, 0]]); + expect(snakeGame.move('R')).toEqual(1); + expect(snakeGame.move('D')).toEqual(2); + expect(snakeGame.move('L')).toEqual(3); + expect(snakeGame.move('U')).toEqual(3); + expect(snakeGame.move('R')).toEqual(3); + }); + + it('should game over when hit itself', () => { + const snakeGame = new SnakeGame(3, 2, [[0, 1], [0, 2], [1, 2], [1, 1]]); + expect(snakeGame.move('R')).toEqual(1); + expect(snakeGame.move('R')).toEqual(2); + expect(snakeGame.move('D')).toEqual(3); + expect(snakeGame.move('L')).toEqual(4); + expect(snakeGame.move('U')).toEqual(-1); + }); +}); From 77d459642ca61f729e698c892928665e76532701 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 29 Aug 2020 17:21:21 -0400 Subject: [PATCH 026/108] feat(book/queue): add recent counter questions and solution --- book/D-interview-questions-solutions.asc | 57 ++++++++--------- book/content/part02/queue.asc | 41 ++++++------ book/interview-questions/recent-counter.js | 64 +++++++++++++++++++ .../recent-counter.spec.js | 21 ++++++ 4 files changed, 133 insertions(+), 50 deletions(-) create mode 100644 book/interview-questions/recent-counter.js create mode 100644 book/interview-questions/recent-counter.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 13a7ee85..dd2d8a54 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -275,65 +275,64 @@ The stack contains the indexes rather than the temperatures themselves. :leveloffset: -1 -[#queue-q-design-snake-game] -include::content/part02/queue.asc[tag=queue-q-design-snake-game] +[#queue-q-recent-counter] +include::content/part02/queue.asc[tag=queue-q-recent-counter] -This game is perfect to practice working with Queues. There are at least two opportunities to use a Queue. One for the food location and another for the snake body part movements. One very move, we insert a new position into the snake and dequeue the last position to indicate the snake moved. Everytime the snake eats food, it grows one more unit, the food gets dequeue and we place the location of next food (if any). +We are ask to keep track of the request only within a given time window. A queue is a perfect application for this. We can add any new request to Queue. Also, we need to check if the oldest element is outside the window. If so we remove it from the queue. *Algorithm*: -- Based on the snake head current position, calculate the next position based on the given move `direction`. -- If the new position is outside the boundaries, game over(return -1) -- If the new position has food, remove that eaten food from its queue and go to the next. -- If the new position doesn't have food, remove the tail of the snake since it moved. -- If the snake new position hits itself, game over (return -1). To make this check we have to options: - - Queue: we can visit all the elements on snake queue (body) and check if new position collide. That's `O(n)` - - Set: we can maintain a `set` that has all the snake locations so the check is `O(1)`. -- Move the snake head to new location (enqueue) -- Return the score (snake's length - 1); +- Enqueue new requests +- Take a `peek` at the oldest request on the queue. +- While current timestamp - oldest timestamp, dequeue the oldest. +- Return the length of the queue. *Implementation*: [source, javascript] ---- -include::interview-questions/design-snake-game.js[tag=description] -include::interview-questions/design-snake-game.js[tag=solution] +include::interview-questions/recent-counter.js[tag=description,solution] ---- -As you can see we opted for using a set to trade speed for memory. +IMPLEMENTATION NOTES *Complexity Analysis*: -- Time: `O(1)`. Insert/Remove from Queue is constant time. Check body collisions is `O(1)` as well when using a set. If you traversed the snake queue, it would be `O(n)`, where `n` is the max length of the snake which is the size of the screen (height x width). -- Space: `O(n + m)`. `m` is the number of food items and `n` is the maximun size of the snake which is (height x width). +- Time: `O(?)`. WHY? +- Space: `O(?)`. WHY? -[#queue-q-FILENAME] -include::content/part02/queue.asc[tag=queue-q-FILENAME] +[#queue-q-design-snake-game] +include::content/part02/queue.asc[tag=queue-q-design-snake-game] -RESTATE REQUIREMENTS AND DESCRIPTIONS +This game is perfect to practice working with Queues. There are at least two opportunities to use a Queue. One for the food location and another for the snake body part movements. One very move, we insert a new position into the snake and dequeue the last position to indicate the snake moved. Everytime the snake eats food, it grows one more unit, the food gets dequeue and we place the location of next food (if any). *Algorithm*: -- STEP 1 -- STEP 2 - - STEP 2.1 - - STEP 2.2 +- Based on the snake head current position, calculate the next position based on the given move `direction`. +- If the new position is outside the boundaries, game over(return -1) +- If the new position has food, remove that eaten food from its queue and go to the next. +- If the new position doesn't have food, remove the tail of the snake since it moved. +- If the snake new position hits itself, game over (return -1). To make this check we have to options: + - Queue: we can visit all the elements on snake queue (body) and check if new position collide. That's `O(n)` + - Set: we can maintain a `set` that has all the snake locations so the check is `O(1)`. +- Move the snake head to new location (enqueue) +- Return the score (snake's length - 1); *Implementation*: [source, javascript] ---- -include::interview-questions/FILENAME.js[tag=description] -include::interview-questions/FILENAME.js[tag=solution] +include::interview-questions/design-snake-game.js[tag=description,solution] ---- -IMPLEMENTATION NOTES +As you can see we opted for using a set to trade speed for memory. *Complexity Analysis*: -- Time: `O(?)`. WHY? -- Space: `O(?)`. WHY? +- Time: `O(1)`. Insert/Remove from Queue is constant time. Check body collisions is `O(1)` as well when using a set. If you traversed the snake queue, it would be `O(n)`, where `n` is the max length of the snake which is the size of the screen (height x width). +- Space: `O(n + m)`. `m` is the number of food items and `n` is the maximun size of the snake which is (height x width). + diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 46793934..3dd78caf 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -83,39 +83,38 @@ As an experiment, we can see in the following table that if we had implemented t indexterm:[Runtime, Linear] -==== Interview Questions +==== Practice Questions (((Interview Questions, Queue))) -// tag::queue-q-design-snake-game[] -===== Design Snake Game -*QU-1*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for game over._ -// end::queue-q-design-snake-game[] +// tag::queue-q-recent-counter[] +===== Recent Counter -_Question seen at: Amazon, Bloomberg, Apple_ +*QU-1*) _Design a class that counts the most recent requests within a time window._ +// end::queue-q-recent-counter[] +_Seen in interviews at: Google, Bloomberg, Yandex_ [source, javascript] ---- -include::../../interview-questions/design-snake-game.js[tag=description] +include::../../interview-questions/recent-counter.js[tag=description] + // write you code here +} ---- -_Solution: <<queue-q-design-snake-game>>_ - - +_Solution: <<queue-q-recent-counter>>_ +// tag::queue-q-design-snake-game[] +===== Design Snake Game -// // tag::queue-q-name-2[] -// ===== NAME2 +*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for game over._ +// end::queue-q-design-snake-game[] -// *QU-2*) _DESCRIPTION_ -// // end::queue-q-name-2[] +_Seen in interviews at: Amazon, Bloomberg, Apple_ -// [source, javascript] -// ---- -// include::../../interview-questions/name-2.js[tag=description] -// // write you code here -// } -// ---- +[source, javascript] +---- +include::../../interview-questions/design-snake-game.js[tag=description] +---- -// _Solution: <<queue-q-name-2>>_ +_Solution: <<queue-q-design-snake-game>>_ diff --git a/book/interview-questions/recent-counter.js b/book/interview-questions/recent-counter.js new file mode 100644 index 00000000..49c685e9 --- /dev/null +++ b/book/interview-questions/recent-counter.js @@ -0,0 +1,64 @@ +const { Queue } = require('../../src/index'); + +// tag::description[] +/** + * Counts the most recent requests within a time window. + * Each request has its timestamp. + * If the time window is 2 seconds, + * any requests that happened more than 2 seconds before the most recent request + * should not count. + * + * @example - The time window is 10 ms. + * const counter = new RecentCounter(10); + * counter.request(1000); // 1 (first request, it counts) + * counter.request(3000); // 1 (last requests was 2000 ms ago, > 10ms, so doesn't count) + * counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't count) + * counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) + * + * @example - The time window is 3 sec. (3000 ms) + * const counter = new RecentCounter(3000); + * counter.request(100); // 1 + * counter.request(1000); // 2 + * counter.request(3000); // 3 + * counter.request(3100); // 4 + * counter.request(3101); // 4 (request at time 100 is out of the 3000 window). + * + */ +class RecentCounter { + // end::description[] + // tag::solution[] + queue = new Queue(); + // end::solution[] + // tag::description[] + /** + * @param {number} maxWindow - Max. time window (in ms) for counting requests + * Defaults to 1 second (1000 ms) + */ + constructor(maxWindow = 1000) { + // end::description[] + // tag::solution[] + this.window = maxWindow; + // end::solution[] + // tag::description[] + } + + /** + * Add new request and calculate the current count within the window. + * @param {number} timestamp - The current timestamp (increasing order) + * @return {number} - The number of requests within the time window. + */ + request(timestamp) { + // end::description[] + // tag::solution[] + this.queue.enqueue(timestamp); + while (timestamp - this.queue.peek() > this.window) + this.queue.dequeue(); + + return this.queue.size; + // end::solution[] + // tag::description[] + } +} +// end::description[] + +module.exports = { RecentCounter }; diff --git a/book/interview-questions/recent-counter.spec.js b/book/interview-questions/recent-counter.spec.js new file mode 100644 index 00000000..5ed65746 --- /dev/null +++ b/book/interview-questions/recent-counter.spec.js @@ -0,0 +1,21 @@ +const { RecentCounter } = require('./recent-counter'); + +describe('Queue: Recent Counter', () => { + it('should count requests within the window', () => { + const counter = new RecentCounter(3000); + expect(counter.request(100)).toEqual(1); // 1 + expect(counter.request(1000)).toEqual(2); // 2 + expect(counter.request(3000)).toEqual(3); // 3 + expect(counter.request(3100)).toEqual(4); // 4 + expect(counter.request(3101)).toEqual(4); // 4 (request at time 100 is out of the 3000 window). + }); + + it('should NOT count requests out of the window', () => { + const counter = new RecentCounter(10); + expect(counter.request(100)).toEqual(1); + expect(counter.request(1000)).toEqual(1); + expect(counter.request(3000)).toEqual(1); + expect(counter.request(3100)).toEqual(1); + expect(counter.request(3101)).toEqual(2); + }); +}); From 1f01bafdb55dcd82f6b88bdf1252c5aabb39277a Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 29 Aug 2020 17:39:59 -0400 Subject: [PATCH 027/108] feat(book/questions): add where the interview questions have been seen --- book/D-interview-questions-solutions.asc | 9 +++------ book/content/part02/array.asc | 6 +++++- book/content/part02/linked-list.asc | 6 +++++- book/content/part02/queue.asc | 17 +++++++++++++++-- book/content/part02/stack.asc | 6 +++++- book/interview-questions/recent-counter.js | 9 +-------- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index dd2d8a54..c0ddb13f 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -90,8 +90,7 @@ Algorithm: [source, javascript] ---- -include::interview-questions/buy-sell-stock.js[tag=description] -include::interview-questions/buy-sell-stock.js[tag=solution] +include::interview-questions/buy-sell-stock.js[tag=description,solution] ---- The runtime is `O(n)` and space complexity of `O(1)`. @@ -126,8 +125,7 @@ Another case to take into consideration is that lists might have different lengt [source, javascript] ---- -include::interview-questions/merge-lists.js[tag=description] -include::interview-questions/merge-lists.js[tag=solution] +include::interview-questions/merge-lists.js[tag=description,solution] ---- Notice that we used a "dummy" node or "sentinel node" to have some starting point for the final list. @@ -172,8 +170,7 @@ A better way to solve this problem is iterating over each character on both list [source, javascript] ---- -include::interview-questions/linkedlist-same-data.js[tag=description] -include::interview-questions/linkedlist-same-data.js[tag=solution] +include::interview-questions/linkedlist-same-data.js[tag=description,solution] ---- The function `findNextPointerIndex` is a helper to navigate each character on a linked list. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index e03863e5..fbaff07b 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -276,13 +276,15 @@ To sum up, the time complexity of an array is: |=== //end::table -==== Interview Questions +==== Practice Questions (((Interview Questions, Arrays))) // tag::array-q-max-subarray[] ===== Max Subarray *AR-1*) _Given an array of integers, find the maximum sum of consecutive elements (subarray)._ + +_Seen in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ // end::array-q-max-subarray[] [source, javascript] @@ -298,6 +300,8 @@ _Solution: <<array-q-max-subarray>>_ ===== Best Time to Buy and Sell an Stock *AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ + +_Seen in interviews at: Amazon, Facebook, Bloomberg_ // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 71b68c82..329db496 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -286,13 +286,15 @@ Use a doubly linked list when: For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. -==== Interview Questions +==== Practice Questions (((Interview Questions, Linked Lists))) // tag::linkedlist-q-merge-lists[] ===== Merge Linked Lists into One *LL-1*) _Merge two sorted lists into one (and keep them sorted)_ + +_Seen in interviews at: Amazon, Adobe, Microsoft, Google_ // end::linkedlist-q-merge-lists[] [source, javascript] @@ -311,6 +313,8 @@ _Solution: <<linkedlist-q-merge-lists>>_ ===== Check if two strings lists are the same *LL-2*) _Given two linked lists with strings, check if are the same_ + +_Seen in interviews at: Facebook_ // end::linkedlist-q-linkedlist-same-data[] [source, javascript] diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 3dd78caf..90e88288 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -91,8 +91,21 @@ indexterm:[Runtime, Linear] ===== Recent Counter *QU-1*) _Design a class that counts the most recent requests within a time window._ -// end::queue-q-recent-counter[] + +Example: + +[source, javascript] +---- +const counter = new RecentCounter(10); // The time window is 10 ms. +counter.request(1000); // 1 (first request, it always counts) +counter.request(3000); // 1 (last requests was 2000 ms ago, > 10ms, so doesn't count) +counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't count) +counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) +---- + _Seen in interviews at: Google, Bloomberg, Yandex_ +// end::queue-q-recent-counter[] + [source, javascript] ---- @@ -108,9 +121,9 @@ _Solution: <<queue-q-recent-counter>>_ ===== Design Snake Game *QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for game over._ -// end::queue-q-design-snake-game[] _Seen in interviews at: Amazon, Bloomberg, Apple_ +// end::queue-q-design-snake-game[] [source, javascript] ---- diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index ae00254b..f0a1a381 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -87,13 +87,15 @@ Implementing the stack with an array and linked list would lead to the same time It's not very common to search for values on a stack (other Data Structures are better suited for this). Stacks are especially useful for implementing <<part03-graph-data-structures#dfs-tree, Depth-First Search>>. -==== Interview Questions +==== Practice Questions (((Interview Questions, Stack))) // tag::stack-q-valid-parentheses[] ===== Validate Parentheses / Braces / Brackets *ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ + +_Seen in interviews at: Amazon, Bloomberg, Facebook, Citadel_ // end::stack-q-valid-parentheses[] [source, javascript] @@ -113,6 +115,8 @@ _Solution: <<stack-q-valid-parentheses>>_ ===== Daily Temperaturs *ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ + +_Seen in interviews at: Amazon, Adobe, Cisco_ // end::stack-q-daily-temperatures[] [source, javascript] diff --git a/book/interview-questions/recent-counter.js b/book/interview-questions/recent-counter.js index 49c685e9..052e27f6 100644 --- a/book/interview-questions/recent-counter.js +++ b/book/interview-questions/recent-counter.js @@ -8,20 +8,13 @@ const { Queue } = require('../../src/index'); * any requests that happened more than 2 seconds before the most recent request * should not count. * - * @example - The time window is 10 ms. - * const counter = new RecentCounter(10); - * counter.request(1000); // 1 (first request, it counts) - * counter.request(3000); // 1 (last requests was 2000 ms ago, > 10ms, so doesn't count) - * counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't count) - * counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) - * * @example - The time window is 3 sec. (3000 ms) * const counter = new RecentCounter(3000); * counter.request(100); // 1 * counter.request(1000); // 2 * counter.request(3000); // 3 * counter.request(3100); // 4 - * counter.request(3101); // 4 (request at time 100 is out of the 3000 window). + * counter.request(3101); // 4 * */ class RecentCounter { From 29b8dc8535ec4a582b6c6247d0d19f560a65cf57 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 31 Aug 2020 18:39:26 -0400 Subject: [PATCH 028/108] chore(book): improve grammar --- book/D-interview-questions-solutions.asc | 47 ++++++++++++------------ book/config | 2 +- book/content/part02/queue.asc | 10 ++--- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index c0ddb13f..e093ab4c 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -47,7 +47,7 @@ include::interview-questions/max-subarray.js[tag=description] include::interview-questions/max-subarray.js[tag=solution] ---- -The runtime is `O(n)` and space complexity of `O(1)`. +The runtime is `O(n)` and the space complexity of `O(1)`. @@ -93,7 +93,7 @@ Algorithm: include::interview-questions/buy-sell-stock.js[tag=description,solution] ---- -The runtime is `O(n)` and space complexity of `O(1)`. +The runtime is `O(n)` and the space complexity of `O(1)`. @@ -157,7 +157,7 @@ include::interview-questions/linkedlist-same-data.js[tag=hasSameDataBrute1] Notice that the problem mentions that lists could be huge (millions of nodes). If the first character on each list is different, we are unnecessarily computing millions of nodes, when a straightforward check will do the job. -A better way to solve this problem is iterating over each character on both lists, and when we found mistmatch, we return `false` immediately. If they are the same, we still have to visit all of them. +A better way to solve this problem is iterating over each character on both lists, and when we found a mismatch, we return `false` immediately. If they are the same, we still have to visit all of them. *Algorithm*: @@ -174,7 +174,7 @@ include::interview-questions/linkedlist-same-data.js[tag=description,solution] ---- The function `findNextPointerIndex` is a helper to navigate each character on a linked list. -Notice, that we increase the index (`i + 1`) on each iteration. +Notice that we increase the index (`i + 1`) on each iteration. If the index overflows, it moves to the next node and reset the index to zero. @@ -204,7 +204,7 @@ This is a parsing problem, and usually, stacks are good candidates for them. *Algorithm*: -- Create a mapping for each opening bracket, to its closing counterpart. +- Create a mapping for each opening bracket to its closing counterpart. - Iterate through the string - When we found an opening bracket, insert the corresponding closing bracket into the stack. - When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. @@ -275,13 +275,13 @@ The stack contains the indexes rather than the temperatures themselves. [#queue-q-recent-counter] include::content/part02/queue.asc[tag=queue-q-recent-counter] -We are ask to keep track of the request only within a given time window. A queue is a perfect application for this. We can add any new request to Queue. Also, we need to check if the oldest element is outside the window. If so we remove it from the queue. +We are asked to keep track of the request's count only within a given time window. A queue is a perfect application for this. We can add any new request to the Queue. Also, we need to check if the oldest element is outside the time window. If so, we remove it from the queue. *Algorithm*: -- Enqueue new requests -- Take a `peek` at the oldest request on the queue. -- While current timestamp - oldest timestamp, dequeue the oldest. +- Enqueue new requests. +- Take a `peek` at the oldest request in the queue. +- While `current timestamp - oldest timestamp`, dequeue the oldest. - Return the length of the queue. *Implementation*: @@ -291,29 +291,29 @@ We are ask to keep track of the request only within a given time window. A queue include::interview-questions/recent-counter.js[tag=description,solution] ---- -IMPLEMENTATION NOTES +Notice that we enqueue every request, and then we check all the ones that have "expire" and remove them from the queue. *Complexity Analysis*: -- Time: `O(?)`. WHY? -- Space: `O(?)`. WHY? +- Time: `O(n)`, where `n` is the number of requests. One Enqueue/Dequeue operation is O(1). However, we might run into a worst-case where all requests have to be dequeued. +- Space: `O(W)`, where `W` is the time window. We can have at most W requests in the queue since they are in increasing order without duplicates. [#queue-q-design-snake-game] include::content/part02/queue.asc[tag=queue-q-design-snake-game] -This game is perfect to practice working with Queues. There are at least two opportunities to use a Queue. One for the food location and another for the snake body part movements. One very move, we insert a new position into the snake and dequeue the last position to indicate the snake moved. Everytime the snake eats food, it grows one more unit, the food gets dequeue and we place the location of next food (if any). +This game is perfect to practice working with Queues. There are at least two opportunities to use a Queue. You can enqueue the food location, and also you can keep the snake's body parts on a Queue. We insert a new position into the snake's queue on every move and dequeue the last location to indicate the snake moved. Every time the snake eats food, it grows one more unit. The food gets dequeue, and we place the next food location (if any). *Algorithm*: -- Based on the snake head current position, calculate the next position based on the given move `direction`. -- If the new position is outside the boundaries, game over(return -1) -- If the new position has food, remove that eaten food from its queue and go to the next. +- Based on the snake's head current position, calculate the next location based on the given move `direction`. +- If the new position is outside the boundaries, it's game over (return -1). +- If the new location has food, remove that eaten food from its queue and place the next food on the map (if any). - If the new position doesn't have food, remove the tail of the snake since it moved. -- If the snake new position hits itself, game over (return -1). To make this check we have to options: - - Queue: we can visit all the elements on snake queue (body) and check if new position collide. That's `O(n)` - - Set: we can maintain a `set` that has all the snake locations so the check is `O(1)`. -- Move the snake head to new location (enqueue) +- If the snake new position hits itself, game over (return -1). To make this check, we have 2 options: + - Queue: we can visit all the elements on the snake's queue (body) and check if a new position collides. That's `O(n)` + - Set: we can maintain a `set` with all the snake locations, so the check is `O(1)`. +- Move the snake's head to a new location (enqueue) - Return the score (snake's length - 1); *Implementation*: @@ -323,12 +323,12 @@ This game is perfect to practice working with Queues. There are at least two opp include::interview-questions/design-snake-game.js[tag=description,solution] ---- -As you can see we opted for using a set to trade speed for memory. +As you can see, we opted for using a set to trade speed for memory. *Complexity Analysis*: -- Time: `O(1)`. Insert/Remove from Queue is constant time. Check body collisions is `O(1)` as well when using a set. If you traversed the snake queue, it would be `O(n)`, where `n` is the max length of the snake which is the size of the screen (height x width). -- Space: `O(n + m)`. `m` is the number of food items and `n` is the maximun size of the snake which is (height x width). +- Time: `O(1)`. Insert/Remove from Queue is constant time. Check for body collisions is `O(1)` when using a set. If instead of a set, you traversed the snake's queue to find a collision, it would be `O(n)`. Here`n` is the snake's max length, which is the size of the screen (height x width). +- Space: `O(n + m)`. `m` is the number of food items, and `n` is the snake's maximum size (height x width). @@ -359,4 +359,3 @@ As you can see we opted for using a set to trade speed for memory. // - Time: `O(?)`. WHY? // - Space: `O(?)`. WHY? - diff --git a/book/config b/book/config index b4dd20d3..d3399d43 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit b4dd20d3f92beb4dd48445464e1734819a9cd40a +Subproject commit d3399d43719dce212a8e3842465d07ed5c561542 diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 90e88288..36dabaf0 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -14,11 +14,11 @@ A queue is a linear data structure where the data flows in a *First-In-First-Out .Queue data structure is like a line of people: the First-in, is the First-out image::image30.png[image,width=528,height=171] -A queue is like a line of people at the bank; the person that arrived first is the first to go out as well. +A queue is like a line of people at the bank; the person who arrived first is the first to go out. Similar to the stack, we only have two operations (insert and remove). In a Queue, we add elements to the back of the list and remove it from the front. -We could use an array or a linked list to implement a Queue. However, it is recommended only to use a linked list. Why? An array has a linear runtime _O(n)_ to remove an element from the start while a linked list has constant time _O(1)_. +We could use an array or a linked list to implement a Queue. However, it is recommended only to use a linked list. Why? An array has a linear runtime _O(n)_ to remove an element from the start, while a linked list has constant time _O(1)_. .Queue's constructor [source, javascript] @@ -56,7 +56,7 @@ As discussed, this operation has a constant runtime. ==== Implementation usage -We can use our Queue class like follows: +We can use our Queue class as follows: .Queue usage example [source, javascript] @@ -64,7 +64,7 @@ We can use our Queue class like follows: include::{codedir}/data-structures/queues/queue.js[tag=snippet, indent=0] ---- -You can see that the items are dequeued in the same order they were added, FIFO (first-in, first out). +You can see that the items are dequeued in the same order they were added, FIFO (first-in, first-out). ==== Queue Complexity @@ -120,7 +120,7 @@ _Solution: <<queue-q-recent-counter>>_ // tag::queue-q-design-snake-game[] ===== Design Snake Game -*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for game over._ +*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for a game over._ _Seen in interviews at: Amazon, Bloomberg, Apple_ // end::queue-q-design-snake-game[] From c1a8f8ec53f6c4c1302001dba6d913c81156fd98 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 31 Aug 2020 19:47:31 -0400 Subject: [PATCH 029/108] feat(book/questions): add examples --- book/content/part02/array.asc | 19 +++++++++++++++++++ book/content/part02/linked-list.asc | 17 ++++++++++++++++- book/content/part02/queue.asc | 15 ++++++++++++++- book/content/part02/stack.asc | 19 +++++++++++++++++++ .../interview-questions/daily-temperatures.js | 4 ++-- book/interview-questions/design-snake-game.js | 6 +++--- book/interview-questions/max-subarray.js | 5 +++-- book/interview-questions/max-subarray.spec.js | 4 ++++ 8 files changed, 80 insertions(+), 9 deletions(-) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index fbaff07b..cec213fc 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -284,6 +284,15 @@ To sum up, the time complexity of an array is: *AR-1*) _Given an array of integers, find the maximum sum of consecutive elements (subarray)._ +Examples: + +[source, javascript] +---- +maxSubArray([1, -3, 10, -5]); // 10 (taking only 10) +maxSubArray([-3, 4,-1, 2, 1, -5]); // 6 (sum [4,-1, 2, 1]) +maxSubArray([-2, 1, -3, 4, -1, 3, 1]); // 7 (sum [4,-1, 3, 1]) +---- + _Seen in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ // end::array-q-max-subarray[] @@ -301,6 +310,16 @@ _Solution: <<array-q-max-subarray>>_ *AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ +Examples: + +[source, javascript] +---- +maxProfit([1, 2, 3]) // 2 (buying at 1 and selling at 3) +maxProfit([3, 2, 1]) // 2 (no buys) +maxProfit([5, 10, 5, 10]) // 5 (buying at 5 and selling at 10) + +---- + _Seen in interviews at: Amazon, Facebook, Bloomberg_ // end::array-q-buy-sell-stock[] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 329db496..409bab6e 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -294,6 +294,13 @@ For the next two linear data structures <<part02-linear-data-structures#stack>> *LL-1*) _Merge two sorted lists into one (and keep them sorted)_ +Examples: + +---- +mergeTwoLists(2->3->4, 1->2); // 1->2->2->3->4 +mergeTwoLists(2->3->4,null); // 2->3->4 +---- + _Seen in interviews at: Amazon, Adobe, Microsoft, Google_ // end::linkedlist-q-merge-lists[] @@ -312,7 +319,15 @@ _Solution: <<linkedlist-q-merge-lists>>_ // tag::linkedlist-q-linkedlist-same-data[] ===== Check if two strings lists are the same -*LL-2*) _Given two linked lists with strings, check if are the same_ +*LL-2*) _Given two linked lists with strings, check if the data is equivalent._ + +Examples: + +---- +hasSameData(he->ll->o, hel->lo); // true +hasSameData(hello, hel->lo); // true +hasSameData(he->ll->o, h->i); // false +---- _Seen in interviews at: Facebook_ // end::linkedlist-q-linkedlist-same-data[] diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 36dabaf0..9930b9f1 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -120,7 +120,20 @@ _Solution: <<queue-q-recent-counter>>_ // tag::queue-q-design-snake-game[] ===== Design Snake Game -*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself return `-1` for a game over._ +*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself the game is over and return `-1`._ + +Example: + +[source, javascript] +---- +const snakeGame = new SnakeGame(4, 2, [[1, 2], [0, 1]]); +expect(snakeGame.move('R')).toEqual(0); // 0 +expect(snakeGame.move('D')).toEqual(0); // 0 +expect(snakeGame.move('R')).toEqual(1); // 1 (ate food1) +expect(snakeGame.move('U')).toEqual(1); // 1 +expect(snakeGame.move('L')).toEqual(2); // 2 (ate food2) +expect(snakeGame.move('U')).toEqual(-1); // -1 (hit wall) +---- _Seen in interviews at: Amazon, Bloomberg, Apple_ // end::queue-q-design-snake-game[] diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index f0a1a381..b46b5e3b 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -95,6 +95,17 @@ It's not very common to search for values on a stack (other Data Structures are *ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ +Examples: + +[source, javascript] +---- +isParenthesesValid('(){}[]'); // true +isParenthesesValid('('); // false (closing parentheses is missing) +isParenthesesValid('([{}])'); // true +isParenthesesValid('[{]}'); // false (brakets are not closed in the right order) +isParenthesesValid('([{)}]'); // false (closing is out of order) +---- + _Seen in interviews at: Amazon, Bloomberg, Facebook, Citadel_ // end::stack-q-valid-parentheses[] @@ -116,6 +127,14 @@ _Solution: <<stack-q-valid-parentheses>>_ *ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ +Examples: + +[source, javascript] +---- +dailyTemperatures([30, 28, 50, 40, 30]); // [2 (to 50), 1 (to 28), 0, 0, 0] +dailyTemperatures([73, 69, 72, 76, 73, 100]); // [3, 1, 1, 0, 1, 100] +---- + _Seen in interviews at: Amazon, Adobe, Cisco_ // end::stack-q-daily-temperatures[] diff --git a/book/interview-questions/daily-temperatures.js b/book/interview-questions/daily-temperatures.js index 5a4b4613..c46cf702 100644 --- a/book/interview-questions/daily-temperatures.js +++ b/book/interview-questions/daily-temperatures.js @@ -5,8 +5,8 @@ * for each elem from the input. * * @examples - * dailyTemperatures([30, 28, 50, 40, 30]); // [2, 1, 0, 0, 0] - * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] + * dailyTemperatures([30, 28, 50, 40, 30]); // [2, 1, 0, 0, 0] + * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] * * @param {number[]} t - Daily temperatures */ diff --git a/book/interview-questions/design-snake-game.js b/book/interview-questions/design-snake-game.js index 6d9d7cf3..9a327e4f 100644 --- a/book/interview-questions/design-snake-game.js +++ b/book/interview-questions/design-snake-game.js @@ -14,9 +14,9 @@ const { Queue } = require('../../src/index'); * snakeGame.move('R'); // 0 * snakeGame.move('D'); // 0 * snakeGame.move('R'); // 0 - * snakeGame.move('U'); // 1 (ate the food1) - * snakeGame.move('L'); // 2 (ate the food2) - * snakeGame.move('U'); // -1 (hit the upper wall) + * snakeGame.move('U'); // 1 + * snakeGame.move('L'); // 2 + * snakeGame.move('U'); // -1 */ class SnakeGame { // end::description[] diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js index 0245702f..a1217635 100644 --- a/book/interview-questions/max-subarray.js +++ b/book/interview-questions/max-subarray.js @@ -1,9 +1,10 @@ // tag::description[] /** * Find the maximun sum of contiguous elements in an array. + * * @examples - * maxSubArray([1, -3, 10, -5]); // => 10 - * maxSubArray([-3,4,-1,2,1,-5]); // => 6 + * maxSubArray([1, -3, 10, -5]); // => 10 + * maxSubArray([-3,4,-1,2,1,-5]); // => 6 * * @param {number[]} a - Array */ diff --git a/book/interview-questions/max-subarray.spec.js b/book/interview-questions/max-subarray.spec.js index e8a43048..2d6a8e23 100644 --- a/book/interview-questions/max-subarray.spec.js +++ b/book/interview-questions/max-subarray.spec.js @@ -8,6 +8,10 @@ describe('Max Subarray Sum', () => { expect(fn([-2, 1, -3, 4, -1, 2, 1, -5, 4])).toEqual(6); }); + it('should work with small arrays', () => { + expect(fn([1, -3, 10, -5])).toEqual(10); + }); + it('should work with large arrays', () => { expect(fn(largeArray)).toEqual(4853); }); From e2f4af01eb307232d508fd10f425ae7338bd8294 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Mon, 31 Aug 2020 23:53:33 +0000 Subject: [PATCH 030/108] :bookmark: chore(release): 1.14.0 # [1.14.0](https://github.com/amejiarosario/dsa.js/compare/1.13.0...1.14.0) (2020-08-31) ### Features * **book/questions:** add examples ([c1a8f8e](https://github.com/amejiarosario/dsa.js/commit/c1a8f8ec53f6c4c1302001dba6d913c81156fd98)) * **book/questions:** add where the interview questions have been seen ([1f01baf](https://github.com/amejiarosario/dsa.js/commit/1f01bafdb55dcd82f6b88bdf1252c5aabb39277a)) * **book/queue:** add recent counter questions and solution ([77d4596](https://github.com/amejiarosario/dsa.js/commit/77d459642ca61f729e698c892928665e76532701)) * **book/queue:** add solution for queue question ([9a88766](https://github.com/amejiarosario/dsa.js/commit/9a887660bd21e7dbda0d3e87af704b4e41874093)) * **queue:** add front, back and peek methods ([04aa9db](https://github.com/amejiarosario/dsa.js/commit/04aa9db26659058c09debe985f94845933a2089d)) --- CHANGELOG.md | 11 +++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee461a8c..66d2c6a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# [1.14.0](https://github.com/amejiarosario/dsa.js/compare/1.13.0...1.14.0) (2020-08-31) + + +### Features + +* **book/questions:** add examples ([c1a8f8e](https://github.com/amejiarosario/dsa.js/commit/c1a8f8ec53f6c4c1302001dba6d913c81156fd98)) +* **book/questions:** add where the interview questions have been seen ([1f01baf](https://github.com/amejiarosario/dsa.js/commit/1f01bafdb55dcd82f6b88bdf1252c5aabb39277a)) +* **book/queue:** add recent counter questions and solution ([77d4596](https://github.com/amejiarosario/dsa.js/commit/77d459642ca61f729e698c892928665e76532701)) +* **book/queue:** add solution for queue question ([9a88766](https://github.com/amejiarosario/dsa.js/commit/9a887660bd21e7dbda0d3e87af704b4e41874093)) +* **queue:** add front, back and peek methods ([04aa9db](https://github.com/amejiarosario/dsa.js/commit/04aa9db26659058c09debe985f94845933a2089d)) + # [1.13.0](https://github.com/amejiarosario/dsa.js/compare/1.12.0...1.13.0) (2020-08-26) diff --git a/package-lock.json b/package-lock.json index 66f93610..ad15ca99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.13.0", + "version": "1.14.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5e0b002b..2c7642ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.13.0", + "version": "1.14.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 464417e37ccde00d56d8ebb9c0d0ddc9e510e368 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 1 Sep 2020 15:30:33 -0400 Subject: [PATCH 031/108] fix(book/solutions): fix missing solutions --- book/D-interview-questions-solutions.asc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index e093ab4c..e0070e76 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -90,7 +90,7 @@ Algorithm: [source, javascript] ---- -include::interview-questions/buy-sell-stock.js[tag=description,solution] +include::interview-questions/buy-sell-stock.js[tags=description;solution] ---- The runtime is `O(n)` and the space complexity of `O(1)`. @@ -125,7 +125,7 @@ Another case to take into consideration is that lists might have different lengt [source, javascript] ---- -include::interview-questions/merge-lists.js[tag=description,solution] +include::interview-questions/merge-lists.js[tags=description;solution] ---- Notice that we used a "dummy" node or "sentinel node" to have some starting point for the final list. @@ -170,7 +170,7 @@ A better way to solve this problem is iterating over each character on both list [source, javascript] ---- -include::interview-questions/linkedlist-same-data.js[tag=description,solution] +include::interview-questions/linkedlist-same-data.js[tags=description;solution] ---- The function `findNextPointerIndex` is a helper to navigate each character on a linked list. @@ -288,7 +288,7 @@ We are asked to keep track of the request's count only within a given time windo [source, javascript] ---- -include::interview-questions/recent-counter.js[tag=description,solution] +include::interview-questions/recent-counter.js[tags=description;solution] ---- Notice that we enqueue every request, and then we check all the ones that have "expire" and remove them from the queue. @@ -320,7 +320,7 @@ This game is perfect to practice working with Queues. There are at least two opp [source, javascript] ---- -include::interview-questions/design-snake-game.js[tag=description,solution] +include::interview-questions/design-snake-game.js[tags=description;solution] ---- As you can see, we opted for using a set to trade speed for memory. From 068dd9cc66e5a3050cc44d4cd3a05eb15f8c00d1 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 1 Sep 2020 16:44:28 -0400 Subject: [PATCH 032/108] feat(book/bt): add binary tree diameter problem --- book/D-interview-questions-solutions.asc | 78 +++++++++++++ book/config | 2 +- book/content/part03/tree-intro.asc | 103 ++++++++++++++++++ book/images/tree-diameter-example-1.png | Bin 0 -> 10970 bytes book/images/tree-diameter-example-2.png | Bin 0 -> 22793 bytes .../diameter-of-binary-tree.js | 31 ++++++ .../diameter-of-binary-tree.spec.js | 21 ++++ 7 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 book/images/tree-diameter-example-1.png create mode 100644 book/images/tree-diameter-example-2.png create mode 100644 book/interview-questions/diameter-of-binary-tree.js create mode 100644 book/interview-questions/diameter-of-binary-tree.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index e0070e76..2ddd4549 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -332,6 +332,84 @@ As you can see, we opted for using a set to trade speed for memory. +:leveloffset: +1 + +=== Solutions for Binary Tree Questions +(((Interview Questions Solutions, Binary Tree))) + +:leveloffset: -1 + +[#binary-tree-q-diameter-of-binary-tree] +include::content/part03/tree-intro.asc[tag=binary-tree-q-diameter-of-binary-tree] + +We are asked to find the longest path on binary tree that might or might not pass through the root node. + +We can calculate the height (distance from root to farthest leaf) of a binary tree using this recursive function: + +[source, javascript] +---- +function getHeight(node) { + if (!node) return 0; + const leftHeight = getHeight(node.left); + const rightHeight = getHeight(node.right); + return 1 + Math.max(leftHeight, rightHeight); +} +---- + +That will give use the height from furthest leaf to root. However, the problem says that it might or might not go through the root. +In that case, we can keep track of the maximun distance (`leftHeight + rightHeight`) seen so far. + +*Algorithm*: + +- Initialize diameter to `0` +- Recursively find the height of the tree from root. +- Keep track of the maximun diameter length seen so far (left + right). +- Return the diameter. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/diameter-of-binary-tree.js[tags=description;solution] +---- + +We are using `Math.max` to keep track of the longest diameter seen. + +*Complexity Analysis*: + +- Time: `O(n)`, where `n` is each one of the nodes on the tree. We visite each one once. +- Space: `O(n)`. We use `O(1)` variables, but because we are using the `height` recursive function we are using the implicit call stack, thus `O(n)`. + + + + +[#binary-tree-q-diameter-of-binary-tree2] +include::content/part03/tree-intro.asc[tag=binary-tree-q-diameter-of-binary-tree] + +RESTATE REQUIREMENTS AND DESCRIPTIONS + +*Algorithm*: + +- STEP 1 +- STEP 2 + - STEP 2.1 + - STEP 2.2 + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/diameter-of-binary-tree.js[tag=description] +include::interview-questions/diameter-of-binary-tree.js[tag=solution] +---- + +IMPLEMENTATION NOTES + +*Complexity Analysis*: + +- Time: `O(?)`. WHY? +- Space: `O(?)`. WHY? + // [#linkedlist-q-FILENAME] // include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] diff --git a/book/config b/book/config index d3399d43..2134d494 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit d3399d43719dce212a8e3842465d07ed5c561542 +Subproject commit 2134d494d3c1834f04871f315983a3c5ee571e82 diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index f95fb889..e361ee5e 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -109,3 +109,106 @@ image::image35.png[image,width=258,height=169] Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good a finding any element in *O(log n)*. Heaps are often used to implement priority queues while BST is used when you need every value sorted. **** indexterm:[Runtime, Logarithmic] + + +==== Practice Questions +(((Interview Questions, Binary Tree))) + + +// tag::binary-tree-q-diameter-of-binary-tree[] +===== Binary Tree Diameter + +*BT-1*) _Find the diameter of a binary tree. The diameter of a tree is defined as the longest possible path from two nodes (it doesn't need to include the root). The lenth of diameter is calculated by couting the number of edges on the path._ + +// end::binary-tree-q-diameter-of-binary-tree[] + +_Seen in interviews at: Facebook, Amazon, Google_ + +Example 1: + +[graphviz, tree-diameter-example-1, png] +.... +graph G { + 1 -- 2 [color=red] + 1 -- 3 [color=red] + + 2 -- 4 + 2 -- 5 [color=red] +} +.... + +[source, javascript] +---- +diameterOfBinaryTree(toBinaryTree([1,2,3,4,5])); // 3 (the path 3-1-2-5 or 3-1-2-4) +---- + +Example 2: + +[graphviz, tree-diameter-example-2, png] +.... +graph G { + 1 + 2 + 3 + 4 + 5 + 6 + "null" [color=white, fontcolor = white] + "null." [color=white, fontcolor = white] + 7 + 8 + "null.." [color=white, fontcolor = white] + "null..." [color=white, fontcolor = white] + 9 + + 1 -- 2 + 1 -- 3 + + 3 -- 4 [color=red] + 3 -- 5 [color=red] + + 4 -- 6 [color=red] + 4 -- "null." [color=white] + + 5 -- "null" [color=white] + 5 -- 7 [color=red] + + 6 -- 8 [color=red] + 6 -- "null.." [color=white] + + 7 -- "null..." [color=white] + 7 -- 9 [color=red] +} +.... + +[source, javascript] +---- +diameterOfBinaryTree(toBinaryTree([1,2,3,null,null,4,5,6,null,null,7,8,null,null,9])); // 6 (the path 8-6-4-3-5-7-9) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/diameter-of-binary-tree.js[tags=description;placeholder] +---- + + +_Solution: <<binary-tree-q-diameter-of-binary-tree>>_ + + + +// tag::binary-tree-q-FILENAME[] +===== Recent Counter + +*BT-2*) _._ + +Example: + +[source, javascript] +---- + +---- + +_Seen in interviews at: X_ +// end::binary-tree-q-FILENAME[] diff --git a/book/images/tree-diameter-example-1.png b/book/images/tree-diameter-example-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9043ce9c08a40e5fe3f8a1b82dbd4526d7a285 GIT binary patch literal 10970 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 literal 0 HcmV?d00001 diff --git a/book/images/tree-diameter-example-2.png b/book/images/tree-diameter-example-2.png new file mode 100644 index 0000000000000000000000000000000000000000..3c78583dcf442f0ff82cabdae35f6ee8719f1dc7 GIT binary patch literal 22793 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 J$NXcy`WJ^jx0C<? literal 0 HcmV?d00001 diff --git a/book/interview-questions/diameter-of-binary-tree.js b/book/interview-questions/diameter-of-binary-tree.js new file mode 100644 index 00000000..520fff44 --- /dev/null +++ b/book/interview-questions/diameter-of-binary-tree.js @@ -0,0 +1,31 @@ +// tag::description[] +/** + * Find the length of the binary tree diameter. + * + * @param {BinaryTreeNode | null} root - Binary Tree's root. + * @returns {number} tree's diameter (longest possible path on the tree) + */ +function diameterOfBinaryTree(root) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + let diameter = 0; + + const height = (node) => { + if (!node) return 0; + const left = height(node.left); + const right = height(node.right); + diameter = Math.max(diameter, left + right); + return 1 + Math.max(left, right); + }; + + height(root); + return diameter; + // end::solution[] + // tag::description[] +} +// end::description[] + +module.exports = { diameterOfBinaryTree }; diff --git a/book/interview-questions/diameter-of-binary-tree.spec.js b/book/interview-questions/diameter-of-binary-tree.spec.js new file mode 100644 index 00000000..2d19358f --- /dev/null +++ b/book/interview-questions/diameter-of-binary-tree.spec.js @@ -0,0 +1,21 @@ +const { diameterOfBinaryTree } = require('./diameter-of-binary-tree'); +const { BinaryTreeNode } = require('../../src/index'); + +describe('Binary Tree: Diameter', () => { + function toBinaryTree(array, index = 0) { + if (index >= array.length) return null; + const node = new BinaryTreeNode(array[index]); + node.left = toBinaryTree(array, index * 2 + 1); + node.right = toBinaryTree(array, index * 2 + 2); + return node; + } + + it('should find the diameter', () => { + expect(diameterOfBinaryTree(toBinaryTree([1, 2, 3, 4, 5]))).toEqual(3); + }); + + it('should find the diameter when does not pass through the root node', () => { + const tree = [1, 2, 3, null, null, 4, 5, 6, null, null, 7, 8, null, null, 9]; + expect(diameterOfBinaryTree(toBinaryTree(tree))).toEqual(6); + }); +}); From 28346a448e7f1be640751098b4a954ac04dd0aad Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 2 Sep 2020 12:01:37 -0400 Subject: [PATCH 033/108] feat(book/binary-tree): add right side view exercise and solution --- book/D-interview-questions-solutions.asc | 57 +++--- book/content/part02/array.asc | 4 +- book/content/part02/linked-list.asc | 4 +- book/content/part02/queue.asc | 4 +- book/content/part02/stack.asc | 4 +- book/content/part03/tree-intro.asc | 176 +++++++++++------- .../binary-tree-right-side-view.js | 59 ++++++ .../binary-tree-right-side-view.spec.js | 24 +++ .../diameter-of-binary-tree.spec.js | 15 +- 9 files changed, 236 insertions(+), 111 deletions(-) create mode 100644 book/interview-questions/binary-tree-right-side-view.js create mode 100644 book/interview-questions/binary-tree-right-side-view.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 2ddd4549..ec1a86e0 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -275,7 +275,7 @@ The stack contains the indexes rather than the temperatures themselves. [#queue-q-recent-counter] include::content/part02/queue.asc[tag=queue-q-recent-counter] -We are asked to keep track of the request's count only within a given time window. A queue is a perfect application for this. We can add any new request to the Queue. Also, we need to check if the oldest element is outside the time window. If so, we remove it from the queue. +We are asked to keep track of the request's count only within a given time window. A queue is a perfect application for this. We can add any new request to the Queue. Also, we need to check if the oldest element is outside the time window. If so, we remove it from the queue. *Algorithm*: @@ -327,7 +327,7 @@ As you can see, we opted for using a set to trade speed for memory. *Complexity Analysis*: -- Time: `O(1)`. Insert/Remove from Queue is constant time. Check for body collisions is `O(1)` when using a set. If instead of a set, you traversed the snake's queue to find a collision, it would be `O(n)`. Here`n` is the snake's max length, which is the size of the screen (height x width). +- Time: `O(1)`. Insert/Remove from Queue is constant time. Check for body collisions is `O(1)` when using a set. If instead of a set, you traversed the snake's queue to find a collision, it would be `O(n)`. Here`n` is the snake's max length, which is the screen size (height x width). - Space: `O(n + m)`. `m` is the number of food items, and `n` is the snake's maximum size (height x width). @@ -342,7 +342,7 @@ As you can see, we opted for using a set to trade speed for memory. [#binary-tree-q-diameter-of-binary-tree] include::content/part03/tree-intro.asc[tag=binary-tree-q-diameter-of-binary-tree] -We are asked to find the longest path on binary tree that might or might not pass through the root node. +We are asked to find the longest path on a binary tree that might or might not pass through the root node. We can calculate the height (distance from root to farthest leaf) of a binary tree using this recursive function: @@ -356,14 +356,14 @@ function getHeight(node) { } ---- -That will give use the height from furthest leaf to root. However, the problem says that it might or might not go through the root. -In that case, we can keep track of the maximun distance (`leftHeight + rightHeight`) seen so far. +That function will give us the height from the furthest leaf to the root. However, the problem says that it might or might not go through the root. +In that case, we can keep track of the maximum distance (`leftHeight + rightHeight`) seen so far. *Algorithm*: - Initialize diameter to `0` -- Recursively find the height of the tree from root. -- Keep track of the maximun diameter length seen so far (left + right). +- Recursively find the height of the tree from the root. +- Keep track of the maximum diameter length seen so far (left + right). - Return the diameter. *Implementation*: @@ -377,38 +377,53 @@ We are using `Math.max` to keep track of the longest diameter seen. *Complexity Analysis*: -- Time: `O(n)`, where `n` is each one of the nodes on the tree. We visite each one once. -- Space: `O(n)`. We use `O(1)` variables, but because we are using the `height` recursive function we are using the implicit call stack, thus `O(n)`. +- Time: `O(n)`, where `n` is each of the tree nodes. We visite each one once. +- Space: `O(n)`. We use `O(1)` variables, but because we are using the `height` recursive function, we use the implicit call stack, thus `O(n)`. -[#binary-tree-q-diameter-of-binary-tree2] -include::content/part03/tree-intro.asc[tag=binary-tree-q-diameter-of-binary-tree] +[#binary-tree-q-binary-tree-right-side-view] +include::content/part03/tree-intro.asc[tag=binary-tree-q-binary-tree-right-side-view] + +The first thing that might come to mind when you have to visit a tree, level by level, is BFS. +We can visit the tree using a Queue and keep track when a level ends, and the new one starts. -RESTATE REQUIREMENTS AND DESCRIPTIONS +Since during BFS, we dequeue one node and enqueue their two children (left and right), we might have two levels (current and next one). For this problem, we need to know what the last node on the current level is. + +.There are several ways to solve this problem using BFS. Here are some ideas: +- *1 Queue + Sentinel node*: we can use a special character in the `Queue` like `'*'` or `null` to indicate the level's change. So, we would start something like this `const queue = new Queue([root, '*']);`. +- *2 Queues*: using a "special" character might be seen as hacky, so you can also opt to keep two queues: one for the current level and another for the next level. +- *1 Queue + size tracking*: we track the Queue's `size` before the children are enqueued. That way, we know where the current level ends. We are going to implement this one. *Algorithm*: -- STEP 1 -- STEP 2 - - STEP 2.1 - - STEP 2.2 +- Enqueue root +- While the queue has an element + - Check the current size of the queue + - Dequeue only `size` times, and for each dequeued node, enqueue their children. + - Check if the node is the last one in its level and add it to the answer. *Implementation*: [source, javascript] ---- -include::interview-questions/diameter-of-binary-tree.js[tag=description] -include::interview-questions/diameter-of-binary-tree.js[tag=solution] +include::interview-questions/binary-tree-right-side-view.js[tags=description;solution] +---- + +This problem is also possible to be solved using DFS. The trick is to start with the right child and add it to the solution when it is the first one on its level. + +[source, javascript] +---- +include::interview-questions/binary-tree-right-side-view.js[tag=dfs] ---- -IMPLEMENTATION NOTES +The complexity of any of the BFS methods or DFS is similar. *Complexity Analysis*: -- Time: `O(?)`. WHY? -- Space: `O(?)`. WHY? +- Time: `O(n)`. We visit every node, once. +- Space: `O(n)`. For BFS, the worst-case space is given by the maximum *width*. That is when the binary tree is complete so that the last level would have `(n-1)/2` nodes, thus `O(n)`. For the DFS, the space complexity will be given by the tree's maximum *height*. In the worst-case, the binary tree is skewed to the right so that we will have an implicit call stack of size `n`. // [#linkedlist-q-FILENAME] diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index cec213fc..2e5aea39 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -293,7 +293,7 @@ maxSubArray([-3, 4,-1, 2, 1, -5]); // 6 (sum [4,-1, 2, 1]) maxSubArray([-2, 1, -3, 4, -1, 3, 1]); // 7 (sum [4,-1, 3, 1]) ---- -_Seen in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ +// _Seen in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ // end::array-q-max-subarray[] [source, javascript] @@ -320,7 +320,7 @@ maxProfit([5, 10, 5, 10]) // 5 (buying at 5 and selling at 10) ---- -_Seen in interviews at: Amazon, Facebook, Bloomberg_ +// _Seen in interviews at: Amazon, Facebook, Bloomberg_ // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 409bab6e..eb008fec 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -301,7 +301,7 @@ mergeTwoLists(2->3->4, 1->2); // 1->2->2->3->4 mergeTwoLists(2->3->4,null); // 2->3->4 ---- -_Seen in interviews at: Amazon, Adobe, Microsoft, Google_ +// _Seen in interviews at: Amazon, Adobe, Microsoft, Google_ // end::linkedlist-q-merge-lists[] [source, javascript] @@ -329,7 +329,7 @@ hasSameData(hello, hel->lo); // true hasSameData(he->ll->o, h->i); // false ---- -_Seen in interviews at: Facebook_ +// _Seen in interviews at: Facebook_ // end::linkedlist-q-linkedlist-same-data[] [source, javascript] diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 9930b9f1..9b760e1f 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -103,7 +103,7 @@ counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't co counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) ---- -_Seen in interviews at: Google, Bloomberg, Yandex_ +// _Seen in interviews at: Google, Bloomberg, Yandex_ // end::queue-q-recent-counter[] @@ -135,7 +135,7 @@ expect(snakeGame.move('L')).toEqual(2); // 2 (ate food2) expect(snakeGame.move('U')).toEqual(-1); // -1 (hit wall) ---- -_Seen in interviews at: Amazon, Bloomberg, Apple_ +// _Seen in interviews at: Amazon, Bloomberg, Apple_ // end::queue-q-design-snake-game[] [source, javascript] diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index b46b5e3b..90b3a859 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -106,7 +106,7 @@ isParenthesesValid('[{]}'); // false (brakets are not closed in the right order) isParenthesesValid('([{)}]'); // false (closing is out of order) ---- -_Seen in interviews at: Amazon, Bloomberg, Facebook, Citadel_ +// _Seen in interviews at: Amazon, Bloomberg, Facebook, Citadel_ // end::stack-q-valid-parentheses[] [source, javascript] @@ -135,7 +135,7 @@ dailyTemperatures([30, 28, 50, 40, 30]); // [2 (to 50), 1 (to 28), 0, 0, 0] dailyTemperatures([73, 69, 72, 76, 73, 100]); // [3, 1, 1, 0, 1, 100] ---- -_Seen in interviews at: Amazon, Adobe, Cisco_ +// _Seen in interviews at: Amazon, Adobe, Cisco_ // end::stack-q-daily-temperatures[] [source, javascript] diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index e361ee5e..69c68ef3 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -12,7 +12,7 @@ A tree is a non-linear data structure where a node can have zero or more connect .Tree Data Structure: root node and descendants. image::image31.jpg[image,width=404,height=240] -As you can see in the picture above, this data structure resembles an inverted tree hence the name. It starts with a *root* node and *branch* off with its descendants, and finally *leaves*. +As you can see in the picture above, this data structure resembles an inverted tree, hence the name. It starts with a *root* node and *branch* off with its descendants, and finally *leaves*. ==== Implementing a Tree @@ -54,17 +54,17 @@ image::image31.jpg[image] ==== Types of Binary Trees -There are different kinds of trees depending on the restrictions. E.g. The trees that have two children or less are called *binary tree*, while trees with at most three children are called *Ternary Tree*. Since binary trees are most common we are going to cover them here and others in another chapter. +There are different kinds of trees, depending on the restrictions. E.g. The trees with two children or less are called *binary tree*, while trees with at most three children are called *Ternary Tree*. Since binary trees are the most common, we will cover them here and others in another chapter. ===== Binary Tree (((Binary Tree))) (((Data Structures, Non-Linear, Binary Tree))) -The binary restricts the nodes to have at most two children. Trees, in general, can have 3, 4, 23 or more, but not binary trees. +The binary restricts the nodes to have at most two children. Trees can have 0, 1, 2, 7, or more, but not binary trees. .Binary tree has at most 2 children while non-binary trees can have more. image::image32.png[image,width=321,height=193] -Binary trees are one of the most used kinds of tree, and they are used to build other data structures. +Binary trees are one of the most used kinds of trees, and they are used to build other data structures. .Binary Tree Applications - <<part03-graph-data-structures#map>> @@ -90,7 +90,7 @@ image::image33.png[image,width=348,height=189] (((Max-Heap))) (((Min-Heap))) (((Data Structures, Non-Linear, Binary Heap))) -The heap (max-heap) is a type of binary tree where the parent's value is higher than the value of both children. Opposed to the BST, the left child doesn’t have to be smaller than the right child. +The heap (max-heap) is a type of binary tree where the parent's value is higher than both children's value. Opposed to the BST, the left child doesn’t have to be smaller than the right child. .Heap vs BST image::image34.png[image,width=325,height=176] @@ -118,72 +118,86 @@ indexterm:[Runtime, Logarithmic] // tag::binary-tree-q-diameter-of-binary-tree[] ===== Binary Tree Diameter -*BT-1*) _Find the diameter of a binary tree. The diameter of a tree is defined as the longest possible path from two nodes (it doesn't need to include the root). The lenth of diameter is calculated by couting the number of edges on the path._ +*BT-1*) _Find the diameter of a binary tree. A tree's diameter is the longest possible path from two nodes (it doesn't need to include the root). The length of a diameter is calculated by counting the number of edges on the path._ // end::binary-tree-q-diameter-of-binary-tree[] -_Seen in interviews at: Facebook, Amazon, Google_ - -Example 1: - -[graphviz, tree-diameter-example-1, png] -.... -graph G { - 1 -- 2 [color=red] - 1 -- 3 [color=red] - - 2 -- 4 - 2 -- 5 [color=red] -} -.... - -[source, javascript] ----- -diameterOfBinaryTree(toBinaryTree([1,2,3,4,5])); // 3 (the path 3-1-2-5 or 3-1-2-4) ----- - -Example 2: - -[graphviz, tree-diameter-example-2, png] -.... -graph G { - 1 - 2 - 3 - 4 - 5 - 6 - "null" [color=white, fontcolor = white] - "null." [color=white, fontcolor = white] - 7 - 8 - "null.." [color=white, fontcolor = white] - "null..." [color=white, fontcolor = white] - 9 - - 1 -- 2 - 1 -- 3 - - 3 -- 4 [color=red] - 3 -- 5 [color=red] - - 4 -- 6 [color=red] - 4 -- "null." [color=white] - - 5 -- "null" [color=white] - 5 -- 7 [color=red] - - 6 -- 8 [color=red] - 6 -- "null.." [color=white] - - 7 -- "null..." [color=white] - 7 -- 9 [color=red] -} -.... +// _Seen in interviews at: Facebook, Amazon, Google_ + +// Example 1: +// [graphviz, tree-diameter-example-1, png] +// .... +// graph G { +// 1 -- 2 [color=red] +// 1 -- 3 [color=red] + +// 2 -- 4 +// 2 -- 5 [color=red] +// } +// .... + +// Example 2: +// [graphviz, tree-diameter-example-2, png] +// .... +// graph G { +// 1 +// 2 +// 3 +// 4 +// 5 +// 6 +// "null" [color=white, fontcolor = white] +// "null." [color=white, fontcolor = white] +// 7 +// 8 +// "null.." [color=white, fontcolor = white] +// "null..." [color=white, fontcolor = white] +// 9 + +// 1 -- 2 +// 1 -- 3 + +// 3 -- 4 [color=red] +// 3 -- 5 [color=red] + +// 4 -- 6 [color=red] +// 4 -- "null." [color=white] + +// 5 -- "null" [color=white] +// 5 -- 7 [color=red] + +// 6 -- 8 [color=red] +// 6 -- "null.." [color=white] + +// 7 -- "null..." [color=white] +// 7 -- 9 [color=red] +// } +// .... + +Examples: [source, javascript] ---- -diameterOfBinaryTree(toBinaryTree([1,2,3,null,null,4,5,6,null,null,7,8,null,null,9])); // 6 (the path 8-6-4-3-5-7-9) +/* 1 + / \ + 2 3 + / \ + 4 5 */ +diameterOfBinaryTree(toBinaryTree([1,2,3,4,5])); // 3 +// For len 3, the path could be 3-1-2-5 or 3-1-2-4 + +/* 1 + / \ + 2 3 + / \ + 4 5 + / \ + 6 7 + / \ + 8 9 */ +const array = [1,2,3,null,null,4,5,6,null,null,7,8,null,null,9]; +const tree = BinaryTreeNode.from(array); +diameterOfBinaryTree(tree); // 6 (path: 8-6-4-3-5-7-9) ---- Starter code: @@ -198,17 +212,37 @@ _Solution: <<binary-tree-q-diameter-of-binary-tree>>_ -// tag::binary-tree-q-FILENAME[] -===== Recent Counter -*BT-2*) _._ +// tag::binary-tree-q-binary-tree-right-side-view[] +===== Binary Tree from right side view -Example: +*BT-2*) _Imagine that you are viewing the tree from the right side. What nodes would you see?_ + +// end::binary-tree-q-binary-tree-right-side-view[] + +// _Seen in interviews at: Facebook, Amazon, ByteDance (TikTok)._ + +Examples: [source, javascript] ---- +/* + 1 <- 1 (only node on level) + / \ +2 3 <- 3 (3 is the rightmost) + \ + 4 <- 4 (only node on level) */ +rightSideView(BinaryTreeNode.from([1, 2, 3, null, 4])); // [1, 3, 4] + +rightSideView(BinaryTreeNode.from([])); // [] +rightSideView(BinaryTreeNode.from([1, 2, 3, null, 5, null, 4, 6])); // [1, 3, 4, 6] +---- +Starter code: + +[source, javascript] +---- +include::../../interview-questions/binary-tree-right-side-view.js[tags=description;placeholder] ---- -_Seen in interviews at: X_ -// end::binary-tree-q-FILENAME[] +_Solution: <<binary-tree-q-binary-tree-right-side-view>>_ diff --git a/book/interview-questions/binary-tree-right-side-view.js b/book/interview-questions/binary-tree-right-side-view.js new file mode 100644 index 00000000..52b8c3e2 --- /dev/null +++ b/book/interview-questions/binary-tree-right-side-view.js @@ -0,0 +1,59 @@ +const { Queue } = require('../../src/index'); + +// tag::description[] +/** + * Find the rightmost nodes by level. + * + * @example + * 1 <- 1 + * / \ + * 2 3 <- 3 + * \ + * 4 <- 4 + * + * @param {BinaryTreeNode} root - The root of the binary tree. + * @returns {number[]} - array with the rightmost nodes values. + */ +function rightSideView(root) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + if (!root) return []; + const queue = new Queue([root]); + const ans = []; + + while (queue.size) { + const { size } = queue; + for (let i = 0; i < size; i++) { + const node = queue.dequeue(); + if (i === size - 1) ans.push(node.value); + if (node.left) queue.enqueue(node.left); + if (node.right) queue.enqueue(node.right); + } + } + + return ans; + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::dfs[] +function rightSideViewDfs(root) { + const ans = []; + + const dfs = (node, level = 0) => { + if (!node) return; + if (level === ans.length) ans.push(node.value); + dfs(node.right, level + 1); // right side first! + dfs(node.left, level + 1); + }; + + dfs(root); + return ans; +} +// end::dfs[] + +module.exports = { rightSideView, rightSideViewDfs }; diff --git a/book/interview-questions/binary-tree-right-side-view.spec.js b/book/interview-questions/binary-tree-right-side-view.spec.js new file mode 100644 index 00000000..59b0417f --- /dev/null +++ b/book/interview-questions/binary-tree-right-side-view.spec.js @@ -0,0 +1,24 @@ +const { rightSideView, rightSideViewDfs } = require('./binary-tree-right-side-view'); +const { BinaryTreeNode } = require('../../src/index'); + +[rightSideView, rightSideViewDfs].forEach((fn) => { + describe(`Binary Tree: ${fn.name}`, () => { + it('should work with null', () => { + const actual = null; + const expected = []; + expect(fn(actual)).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = BinaryTreeNode.from([1, 2, 3, null, 4]); + const expected = [1, 3, 4]; + expect(fn(actual)).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = BinaryTreeNode.from([1, 2, 3, null, 5, null, 4, 6]); + const expected = [1, 3, 4, 6]; + expect(fn(actual)).toEqual(expected); + }); + }); +}); diff --git a/book/interview-questions/diameter-of-binary-tree.spec.js b/book/interview-questions/diameter-of-binary-tree.spec.js index 2d19358f..2bdba6d9 100644 --- a/book/interview-questions/diameter-of-binary-tree.spec.js +++ b/book/interview-questions/diameter-of-binary-tree.spec.js @@ -2,20 +2,13 @@ const { diameterOfBinaryTree } = require('./diameter-of-binary-tree'); const { BinaryTreeNode } = require('../../src/index'); describe('Binary Tree: Diameter', () => { - function toBinaryTree(array, index = 0) { - if (index >= array.length) return null; - const node = new BinaryTreeNode(array[index]); - node.left = toBinaryTree(array, index * 2 + 1); - node.right = toBinaryTree(array, index * 2 + 2); - return node; - } - it('should find the diameter', () => { - expect(diameterOfBinaryTree(toBinaryTree([1, 2, 3, 4, 5]))).toEqual(3); + const actual = BinaryTreeNode.from([1, 2, 3, 4, 5]); + expect(diameterOfBinaryTree(actual)).toEqual(3); }); it('should find the diameter when does not pass through the root node', () => { - const tree = [1, 2, 3, null, null, 4, 5, 6, null, null, 7, 8, null, null, 9]; - expect(diameterOfBinaryTree(toBinaryTree(tree))).toEqual(6); + const arr = [1, 2, 3, null, null, 4, 5, 6, null, null, 7, 8, null, null, 9]; + expect(diameterOfBinaryTree(BinaryTreeNode.from(arr))).toEqual(6); }); }); From bcb4c28089a96248ab9d623c25e1719e030caedc Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 2 Sep 2020 13:24:54 -0400 Subject: [PATCH 034/108] feat(BinaryTreeNode): add BinaryTreeNode.from --- package.json | 2 +- src/data-structures/trees/binary-tree-node.js | 15 ++ .../trees/binary-tree-node.spec.js | 229 +++++++++++------- 3 files changed, 157 insertions(+), 89 deletions(-) diff --git a/package.json b/package.json index 2c7642ab..db16380f 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ ], "scripts": { "test": "jest --verbose", - "watch": "jest --watch --verbose --coverage", + "watch": "jest --watch --coverage", "ci": "npx eslint src/ && jest --coverage", "coverage": "jest --coverage && open coverage/lcov-report/index.html", "coverage:win": "jest --coverage && cmd.exe /C start coverage/lcov-report/index.html", diff --git a/src/data-structures/trees/binary-tree-node.js b/src/data-structures/trees/binary-tree-node.js index 5008dcee..69ae1cbf 100644 --- a/src/data-structures/trees/binary-tree-node.js +++ b/src/data-structures/trees/binary-tree-node.js @@ -172,6 +172,21 @@ class BinaryTreeNode { this.meta.data = value; return this; } + + /** + * Convert Binary tree from an iterable (e.g. array) + * @param {array|string} iterable - The iterable + */ + static from(iterable = []) { + const toBinaryTree = (array, index = 0) => { + if (index >= array.length) return null; + const node = new BinaryTreeNode(array[index]); + node.setLeftAndUpdateParent(toBinaryTree(array, index * 2 + 1)); + node.setRightAndUpdateParent(toBinaryTree(array, index * 2 + 2)); + return node; + }; + return toBinaryTree(Array.from(iterable)); + } } BinaryTreeNode.RIGHT = RIGHT; diff --git a/src/data-structures/trees/binary-tree-node.spec.js b/src/data-structures/trees/binary-tree-node.spec.js index 3cb1f2d6..d24cb5bc 100644 --- a/src/data-structures/trees/binary-tree-node.spec.js +++ b/src/data-structures/trees/binary-tree-node.spec.js @@ -1,114 +1,167 @@ const { BinaryTreeNode } = require('../../index'); +const { LEFT, RIGHT } = BinaryTreeNode; + describe('Binary Tree Node', () => { let treeNode; - beforeEach(() => { - treeNode = new BinaryTreeNode('hola'); - }); - - it('should start with null parent', () => { - expect(treeNode.parent).toBe(null); - }); - - it('should start with empty metadata', () => { - expect(treeNode.meta).toEqual({}); - }); - - it('should hold a value', () => { - expect(treeNode.value).toBe('hola'); - }); - - it('should have a height 0', () => { - expect(treeNode.height).toBe(0); - }); - - it('should set/get left node', () => { - expect(treeNode.left).toBe(null); - const newNode = new BinaryTreeNode(1); - treeNode.setLeftAndUpdateParent(newNode); - expect(treeNode.left.value).toBe(1); - - expect(newNode.parent).toBe(treeNode); - expect(treeNode.height).toBe(1); - expect(treeNode.balanceFactor).toBe(1); - }); - - it('should set/get right node', () => { - expect(treeNode.right).toBe(null); - const newNode = new BinaryTreeNode(1); - treeNode.setRightAndUpdateParent(newNode); - - expect(treeNode.right.value).toBe(1); - expect(newNode.parent).toBe(treeNode); - expect(treeNode.height).toBe(1); - expect(treeNode.balanceFactor).toBe(-1); - }); - - describe('Family operations', () => { - let g; - let p; - let u; - let c; - let s; - + describe('with instance', () => { beforeEach(() => { - g = new BinaryTreeNode('grandparent'); - p = new BinaryTreeNode('parent'); - u = new BinaryTreeNode('uncle'); - c = new BinaryTreeNode('child'); - s = new BinaryTreeNode('sibling'); - - g.setRightAndUpdateParent(p); - g.setLeftAndUpdateParent(u); - p.setRightAndUpdateParent(c); - p.setLeftAndUpdateParent(s); + treeNode = new BinaryTreeNode('hola'); }); - it('should set heights', () => { - expect(g.height).toBe(2); - expect(g.balanceFactor).toBe(-1); - - expect(p.height).toBe(1); - expect(p.balanceFactor).toBe(0); + it('should start with null parent', () => { + expect(treeNode.parent).toBe(null); + }); - expect(u.height).toBe(0); - expect(u.balanceFactor).toBe(0); + it('should start with empty metadata', () => { + expect(treeNode.meta).toEqual({}); }); - it('should get the sibling', () => { - expect(c.sibling).toBe(s); - expect(p.sibling).toBe(u); + it('should hold a value', () => { + expect(treeNode.value).toBe('hola'); }); - it('should set leaf correctly', () => { - expect(c.isLeaf).toBe(true); - expect(u.isLeaf).toBe(true); - expect(p.isLeaf).toBe(false); - expect(g.isLeaf).toBe(false); + it('should have a height 0', () => { + expect(treeNode.height).toBe(0); }); - it('should get null if no sibling', () => { - expect(g.sibling).toBe(null); + it('should set/get left node', () => { + expect(treeNode.left).toBe(null); + const newNode = new BinaryTreeNode(1); + treeNode.setLeftAndUpdateParent(newNode); + expect(treeNode.left.value).toBe(1); + + expect(newNode.parent).toBe(treeNode); + expect(treeNode.height).toBe(1); + expect(treeNode.balanceFactor).toBe(1); }); - it('should get the uncle', () => { - expect(c.uncle).toBe(u); + it('should set/get right node', () => { + expect(treeNode.right).toBe(null); + const newNode = new BinaryTreeNode(1); + treeNode.setRightAndUpdateParent(newNode); + + expect(treeNode.right.value).toBe(1); + expect(newNode.parent).toBe(treeNode); + expect(treeNode.height).toBe(1); + expect(treeNode.balanceFactor).toBe(-1); }); - it('should get null if no uncle', () => { - expect(g.uncle).toBe(null); - expect(p.uncle).toBe(null); + describe('Family operations', () => { + let g; + let p; + let u; + let c; + let s; + + beforeEach(() => { + g = new BinaryTreeNode('grandparent'); + p = new BinaryTreeNode('parent'); + u = new BinaryTreeNode('uncle'); + c = new BinaryTreeNode('child'); + s = new BinaryTreeNode('sibling'); + + g.setRightAndUpdateParent(p); + g.setLeftAndUpdateParent(u); + p.setRightAndUpdateParent(c); + p.setLeftAndUpdateParent(s); + }); + + it('should set heights', () => { + expect(g.height).toBe(2); + expect(g.balanceFactor).toBe(-1); + + expect(p.height).toBe(1); + expect(p.balanceFactor).toBe(0); + + expect(u.height).toBe(0); + expect(u.balanceFactor).toBe(0); + }); + + it('should get the sibling', () => { + expect(c.sibling).toBe(s); + expect(p.sibling).toBe(u); + }); + + it('should set leaf correctly', () => { + expect(c.isLeaf).toBe(true); + expect(u.isLeaf).toBe(true); + expect(p.isLeaf).toBe(false); + expect(g.isLeaf).toBe(false); + }); + + it('should get null if no sibling', () => { + expect(g.sibling).toBe(null); + }); + + it('should get the uncle', () => { + expect(c.uncle).toBe(u); + }); + + it('should get null if no uncle', () => { + expect(g.uncle).toBe(null); + expect(p.uncle).toBe(null); + }); + + it('true if is parent left child', () => { + expect(s.isParentLeftChild).toBe(true); + expect(s.isParentRightChild).toBe(false); + }); + + it('true if is parent left child', () => { + expect(c.isParentLeftChild).toBe(false); + expect(c.isParentRightChild).toBe(true); + }); }); + }); - it('true if is parent left child', () => { - expect(s.isParentLeftChild).toBe(true); - expect(s.isParentRightChild).toBe(false); + describe('with static methods', () => { + it('should work with null', () => { + const tree = BinaryTreeNode.from(); + expect(tree).toEqual(null); }); - it('true if is parent left child', () => { - expect(c.isParentLeftChild).toBe(false); - expect(c.isParentRightChild).toBe(true); + it('should build from array', () => { + /* + 0 + / \ + 1 2 + / \ \ + 3 5 4 + */ + const tree = BinaryTreeNode.from([0, 1, 2, 3, 5, null, 4]); + expect(tree.toValues()).toEqual({ + value: 0, + left: 1, + right: 2, + parent: null, + parentSide: null, + }); + + expect(tree.left.toValues()).toEqual({ + value: 1, + left: 3, + right: 5, + parent: 0, + parentSide: LEFT, + }); + + expect(tree.right.toValues()).toEqual({ + value: 2, + left: null, + right: 4, + parent: 0, + parentSide: RIGHT, + }); + + expect(tree.right.right.toValues()).toEqual({ + value: 4, + left: null, + right: null, + parent: 2, + parentSide: RIGHT, + }); }); }); }); From 86201fb215132e5542d1c1e73528270853244091 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 2 Sep 2020 13:35:17 -0400 Subject: [PATCH 035/108] chore(book/exercises): bst exercises after traversals --- book/D-interview-questions-solutions.asc | 44 +++--- .../part03/binary-search-tree-traversal.asc | 138 ++++++++++++++++++ book/content/part03/tree-intro.asc | 137 ----------------- 3 files changed, 161 insertions(+), 158 deletions(-) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index ec1a86e0..6adf64c0 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -83,9 +83,9 @@ A better solution is to eliminate the 2nd for loop and only do one pass. Algorithm: - Do one pass through all the prices - - Keep track of the minimum price seen so far. - - calculate `profit = currentPrice - minPriceSoFar` - - Keep track of the maximun profit seen so far. + ** Keep track of the minimum price seen so far. + ** calculate `profit = currentPrice - minPriceSoFar` + ** Keep track of the maximun profit seen so far. - Return maxProfit. [source, javascript] @@ -118,8 +118,8 @@ Another case to take into consideration is that lists might have different lengt - Have a pointer for each list - While there's a pointer that is not null, visite them - - Compare each list node's value and take the smaller one. - - Advance the pointer of the taken node to the next one. + ** Compare each list node's value and take the smaller one. + ** Advance the pointer of the taken node to the next one. *Implementation*: @@ -163,8 +163,8 @@ A better way to solve this problem is iterating over each character on both list - Set a pointer to iterate over each node in the lists. - For each node, have an index (starting at zero) and compare if both lists have the same data. - - When the index reaches the last character on the current node, we move to the next node. - - If we found that a character from one list doesn't match the other, we return `false`. + ** When the index reaches the last character on the current node, we move to the next node. + ** If we found that a character from one list doesn't match the other, we return `false`. *Implementation*: @@ -206,8 +206,8 @@ This is a parsing problem, and usually, stacks are good candidates for them. - Create a mapping for each opening bracket to its closing counterpart. - Iterate through the string - - When we found an opening bracket, insert the corresponding closing bracket into the stack. - - When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. + ** When we found an opening bracket, insert the corresponding closing bracket into the stack. + ** When we found a closing bracket, pop from the stack and make sure it corresponds to the current character. - Check the stack is empty. If there's a leftover, it means that something didn't close properly. *Implementation*: @@ -242,10 +242,10 @@ Here's an idea: start backward, so we know when there's a warmer temperature bef *Algorithm*: - Traverse the daily temperatures backward - - Push each temperature to a stack. - - While the current temperature is larger than the one at the top of the stack, pop it. - - If the stack is empty, then there's no warmer weather ahead, so it's 0. - - If the stack has an element, calculate the index delta. + ** Push each temperature to a stack. + ** While the current temperature is larger than the one at the top of the stack, pop it. + ** If the stack is empty, then there's no warmer weather ahead, so it's 0. + ** If the stack has an element, calculate the index delta. *Implementation*: @@ -311,8 +311,8 @@ This game is perfect to practice working with Queues. There are at least two opp - If the new location has food, remove that eaten food from its queue and place the next food on the map (if any). - If the new position doesn't have food, remove the tail of the snake since it moved. - If the snake new position hits itself, game over (return -1). To make this check, we have 2 options: - - Queue: we can visit all the elements on the snake's queue (body) and check if a new position collides. That's `O(n)` - - Set: we can maintain a `set` with all the snake locations, so the check is `O(1)`. + ** Queue: we can visit all the elements on the snake's queue (body) and check if a new position collides. That's `O(n)` + ** Set: we can maintain a `set` with all the snake locations, so the check is `O(1)`. - Move the snake's head to a new location (enqueue) - Return the score (snake's length - 1); @@ -340,7 +340,7 @@ As you can see, we opted for using a set to trade speed for memory. :leveloffset: -1 [#binary-tree-q-diameter-of-binary-tree] -include::content/part03/tree-intro.asc[tag=binary-tree-q-diameter-of-binary-tree] +include::content/part03/binary-search-tree-traversal.asc[tag=binary-tree-q-diameter-of-binary-tree] We are asked to find the longest path on a binary tree that might or might not pass through the root node. @@ -384,7 +384,7 @@ We are using `Math.max` to keep track of the longest diameter seen. [#binary-tree-q-binary-tree-right-side-view] -include::content/part03/tree-intro.asc[tag=binary-tree-q-binary-tree-right-side-view] +include::content/part03/binary-search-tree-traversal.asc[tag=binary-tree-q-binary-tree-right-side-view] The first thing that might come to mind when you have to visit a tree, level by level, is BFS. We can visit the tree using a Queue and keep track when a level ends, and the new one starts. @@ -394,15 +394,17 @@ Since during BFS, we dequeue one node and enqueue their two children (left and r .There are several ways to solve this problem using BFS. Here are some ideas: - *1 Queue + Sentinel node*: we can use a special character in the `Queue` like `'*'` or `null` to indicate the level's change. So, we would start something like this `const queue = new Queue([root, '*']);`. - *2 Queues*: using a "special" character might be seen as hacky, so you can also opt to keep two queues: one for the current level and another for the next level. -- *1 Queue + size tracking*: we track the Queue's `size` before the children are enqueued. That way, we know where the current level ends. We are going to implement this one. +- *1 Queue + size tracking*: we track the Queue's `size` before the children are enqueued. That way, we know where the current level ends. + +We are going to implement BFS with "1 Queue + size tracking", since it's arguably the most elegant. *Algorithm*: - Enqueue root - While the queue has an element - - Check the current size of the queue - - Dequeue only `size` times, and for each dequeued node, enqueue their children. - - Check if the node is the last one in its level and add it to the answer. + ** Check the current size of the queue + ** Dequeue only `size` times, and for each dequeued node, enqueue their children. + ** Check if the node is the last one in its level and add it to the answer. *Implementation*: diff --git a/book/content/part03/binary-search-tree-traversal.asc b/book/content/part03/binary-search-tree-traversal.asc index 974c6fbc..7b40f9bd 100644 --- a/book/content/part03/binary-search-tree-traversal.asc +++ b/book/content/part03/binary-search-tree-traversal.asc @@ -92,3 +92,141 @@ If we have the following tree: ---- Post-order traverval will return `3, 4, 5, 15, 40, 30, 10`. + + +==== Practice Questions +(((Interview Questions, Binary Tree))) + + +// tag::binary-tree-q-diameter-of-binary-tree[] +===== Binary Tree Diameter + +*BT-1*) _Find the diameter of a binary tree. A tree's diameter is the longest possible path from two nodes (it doesn't need to include the root). The length of a diameter is calculated by counting the number of edges on the path._ + +// end::binary-tree-q-diameter-of-binary-tree[] + +// _Seen in interviews at: Facebook, Amazon, Google_ + +// Example 1: +// [graphviz, tree-diameter-example-1, png] +// .... +// graph G { +// 1 -- 2 [color=red] +// 1 -- 3 [color=red] + +// 2 -- 4 +// 2 -- 5 [color=red] +// } +// .... + +// Example 2: +// [graphviz, tree-diameter-example-2, png] +// .... +// graph G { +// 1 +// 2 +// 3 +// 4 +// 5 +// 6 +// "null" [color=white, fontcolor = white] +// "null." [color=white, fontcolor = white] +// 7 +// 8 +// "null.." [color=white, fontcolor = white] +// "null..." [color=white, fontcolor = white] +// 9 + +// 1 -- 2 +// 1 -- 3 + +// 3 -- 4 [color=red] +// 3 -- 5 [color=red] + +// 4 -- 6 [color=red] +// 4 -- "null." [color=white] + +// 5 -- "null" [color=white] +// 5 -- 7 [color=red] + +// 6 -- 8 [color=red] +// 6 -- "null.." [color=white] + +// 7 -- "null..." [color=white] +// 7 -- 9 [color=red] +// } +// .... + +Examples: + +[source, javascript] +---- +/* 1 + / \ + 2 3 + / \ + 4 5 */ +diameterOfBinaryTree(toBinaryTree([1,2,3,4,5])); // 3 +// For len 3, the path could be 3-1-2-5 or 3-1-2-4 + +/* 1 + / \ + 2 3 + / \ + 4 5 + / \ + 6 7 + / \ + 8 9 */ +const array = [1,2,3,null,null,4,5,6,null,null,7,8,null,null,9]; +const tree = BinaryTreeNode.from(array); +diameterOfBinaryTree(tree); // 6 (path: 8-6-4-3-5-7-9) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/diameter-of-binary-tree.js[tags=description;placeholder] +---- + + +_Solution: <<binary-tree-q-diameter-of-binary-tree>>_ + + + + +// tag::binary-tree-q-binary-tree-right-side-view[] +===== Binary Tree from right side view + +*BT-2*) _Imagine that you are viewing the tree from the right side. What nodes would you see?_ + +// end::binary-tree-q-binary-tree-right-side-view[] + +// _Seen in interviews at: Facebook, Amazon, ByteDance (TikTok)._ + +Examples: + +[source, javascript] +---- +/* + 1 <- 1 (only node on level) + / \ +2 3 <- 3 (3 is the rightmost) + \ + 4 <- 4 (only node on level) */ +rightSideView(BinaryTreeNode.from([1, 2, 3, null, 4])); // [1, 3, 4] + +rightSideView(BinaryTreeNode.from([])); // [] +rightSideView(BinaryTreeNode.from([1, 2, 3, null, 5, null, 4, 6])); // [1, 3, 4, 6] +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/binary-tree-right-side-view.js[tags=description;placeholder] +---- + +_Solution: <<binary-tree-q-binary-tree-right-side-view>>_ + diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index 69c68ef3..bd92a6c7 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -109,140 +109,3 @@ image::image35.png[image,width=258,height=169] Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good a finding any element in *O(log n)*. Heaps are often used to implement priority queues while BST is used when you need every value sorted. **** indexterm:[Runtime, Logarithmic] - - -==== Practice Questions -(((Interview Questions, Binary Tree))) - - -// tag::binary-tree-q-diameter-of-binary-tree[] -===== Binary Tree Diameter - -*BT-1*) _Find the diameter of a binary tree. A tree's diameter is the longest possible path from two nodes (it doesn't need to include the root). The length of a diameter is calculated by counting the number of edges on the path._ - -// end::binary-tree-q-diameter-of-binary-tree[] - -// _Seen in interviews at: Facebook, Amazon, Google_ - -// Example 1: -// [graphviz, tree-diameter-example-1, png] -// .... -// graph G { -// 1 -- 2 [color=red] -// 1 -- 3 [color=red] - -// 2 -- 4 -// 2 -- 5 [color=red] -// } -// .... - -// Example 2: -// [graphviz, tree-diameter-example-2, png] -// .... -// graph G { -// 1 -// 2 -// 3 -// 4 -// 5 -// 6 -// "null" [color=white, fontcolor = white] -// "null." [color=white, fontcolor = white] -// 7 -// 8 -// "null.." [color=white, fontcolor = white] -// "null..." [color=white, fontcolor = white] -// 9 - -// 1 -- 2 -// 1 -- 3 - -// 3 -- 4 [color=red] -// 3 -- 5 [color=red] - -// 4 -- 6 [color=red] -// 4 -- "null." [color=white] - -// 5 -- "null" [color=white] -// 5 -- 7 [color=red] - -// 6 -- 8 [color=red] -// 6 -- "null.." [color=white] - -// 7 -- "null..." [color=white] -// 7 -- 9 [color=red] -// } -// .... - -Examples: - -[source, javascript] ----- -/* 1 - / \ - 2 3 - / \ - 4 5 */ -diameterOfBinaryTree(toBinaryTree([1,2,3,4,5])); // 3 -// For len 3, the path could be 3-1-2-5 or 3-1-2-4 - -/* 1 - / \ - 2 3 - / \ - 4 5 - / \ - 6 7 - / \ - 8 9 */ -const array = [1,2,3,null,null,4,5,6,null,null,7,8,null,null,9]; -const tree = BinaryTreeNode.from(array); -diameterOfBinaryTree(tree); // 6 (path: 8-6-4-3-5-7-9) ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/diameter-of-binary-tree.js[tags=description;placeholder] ----- - - -_Solution: <<binary-tree-q-diameter-of-binary-tree>>_ - - - - -// tag::binary-tree-q-binary-tree-right-side-view[] -===== Binary Tree from right side view - -*BT-2*) _Imagine that you are viewing the tree from the right side. What nodes would you see?_ - -// end::binary-tree-q-binary-tree-right-side-view[] - -// _Seen in interviews at: Facebook, Amazon, ByteDance (TikTok)._ - -Examples: - -[source, javascript] ----- -/* - 1 <- 1 (only node on level) - / \ -2 3 <- 3 (3 is the rightmost) - \ - 4 <- 4 (only node on level) */ -rightSideView(BinaryTreeNode.from([1, 2, 3, null, 4])); // [1, 3, 4] - -rightSideView(BinaryTreeNode.from([])); // [] -rightSideView(BinaryTreeNode.from([1, 2, 3, null, 5, null, 4, 6])); // [1, 3, 4, 6] ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/binary-tree-right-side-view.js[tags=description;placeholder] ----- - -_Solution: <<binary-tree-q-binary-tree-right-side-view>>_ From 1bfe5229c02a16d96b7b00d4baf3081a88929bd7 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Wed, 2 Sep 2020 17:54:34 +0000 Subject: [PATCH 036/108] :bookmark: chore(release): 1.15.0 # [1.15.0](https://github.com/amejiarosario/dsa.js/compare/1.14.0...1.15.0) (2020-09-02) ### Bug Fixes * **book/solutions:** fix missing solutions ([464417e](https://github.com/amejiarosario/dsa.js/commit/464417e37ccde00d56d8ebb9c0d0ddc9e510e368)) ### Features * **BinaryTreeNode:** add BinaryTreeNode.from ([bcb4c28](https://github.com/amejiarosario/dsa.js/commit/bcb4c28089a96248ab9d623c25e1719e030caedc)) * **book/binary-tree:** add right side view exercise and solution ([28346a4](https://github.com/amejiarosario/dsa.js/commit/28346a448e7f1be640751098b4a954ac04dd0aad)) * **book/bt:** add binary tree diameter problem ([068dd9c](https://github.com/amejiarosario/dsa.js/commit/068dd9cc66e5a3050cc44d4cd3a05eb15f8c00d1)) --- CHANGELOG.md | 14 ++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66d2c6a6..20a05bd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [1.15.0](https://github.com/amejiarosario/dsa.js/compare/1.14.0...1.15.0) (2020-09-02) + + +### Bug Fixes + +* **book/solutions:** fix missing solutions ([464417e](https://github.com/amejiarosario/dsa.js/commit/464417e37ccde00d56d8ebb9c0d0ddc9e510e368)) + + +### Features + +* **BinaryTreeNode:** add BinaryTreeNode.from ([bcb4c28](https://github.com/amejiarosario/dsa.js/commit/bcb4c28089a96248ab9d623c25e1719e030caedc)) +* **book/binary-tree:** add right side view exercise and solution ([28346a4](https://github.com/amejiarosario/dsa.js/commit/28346a448e7f1be640751098b4a954ac04dd0aad)) +* **book/bt:** add binary tree diameter problem ([068dd9c](https://github.com/amejiarosario/dsa.js/commit/068dd9cc66e5a3050cc44d4cd3a05eb15f8c00d1)) + # [1.14.0](https://github.com/amejiarosario/dsa.js/compare/1.13.0...1.14.0) (2020-08-31) diff --git a/package-lock.json b/package-lock.json index ad15ca99..7ff12299 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.14.0", + "version": "1.15.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index db16380f..1abab67a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.14.0", + "version": "1.15.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From d18186b61c260e3ae2cc1267cadd16c8cb453e00 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Thu, 3 Sep 2020 14:53:55 -0400 Subject: [PATCH 037/108] feat(book/hashmap): add exercises and solutions --- book/D-interview-questions-solutions.asc | 171 +++++++++++++++++- book/content/part03/hashmap.asc | 120 +++++++++--- ...-substring-without-repeating-characters.js | 14 ++ ...tring-without-repeating-characters.spec.js | 5 + .../subarray-sum-equals-k.js | 58 ++++++ .../subarray-sum-equals-k.spec.js | 24 +++ book/interview-questions/two-sum.js | 34 ++++ book/interview-questions/two-sum.spec.js | 28 +++ 8 files changed, 421 insertions(+), 33 deletions(-) create mode 100644 book/interview-questions/longest-substring-without-repeating-characters.js create mode 100644 book/interview-questions/longest-substring-without-repeating-characters.spec.js create mode 100644 book/interview-questions/subarray-sum-equals-k.js create mode 100644 book/interview-questions/subarray-sum-equals-k.spec.js create mode 100644 book/interview-questions/two-sum.js create mode 100644 book/interview-questions/two-sum.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 6adf64c0..71e65e48 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -196,11 +196,11 @@ If the index overflows, it moves to the next node and reset the index to zero. [#stack-q-valid-parentheses] include::content/part02/stack.asc[tag=stack-q-valid-parentheses] -.We need to validate that brackets are properly opened and closed, following these rules: +.We need to validate that brackets are correctly opened and closed, following these rules: - An opened bracket must be close by the same type. - Open brackets mush be closed in the correct order. -This is a parsing problem, and usually, stacks are good candidates for them. +We are facing a parsing problem, and usually, stacks are good candidates for them. *Algorithm*: @@ -391,8 +391,8 @@ We can visit the tree using a Queue and keep track when a level ends, and the ne Since during BFS, we dequeue one node and enqueue their two children (left and right), we might have two levels (current and next one). For this problem, we need to know what the last node on the current level is. -.There are several ways to solve this problem using BFS. Here are some ideas: -- *1 Queue + Sentinel node*: we can use a special character in the `Queue` like `'*'` or `null` to indicate the level's change. So, we would start something like this `const queue = new Queue([root, '*']);`. +.There are several ways to solve this problem by using BFS. Here are some ideas: +- *1 Queue + Sentinel node*: we can use a special character in the `Queue` like `'*'` or `null` to indicate a level change. So, we would start something like this `const queue = new Queue([root, '*']);`. - *2 Queues*: using a "special" character might be seen as hacky, so you can also opt to keep two queues: one for the current level and another for the next level. - *1 Queue + size tracking*: we track the Queue's `size` before the children are enqueued. That way, we know where the current level ends. @@ -428,8 +428,164 @@ The complexity of any of the BFS methods or DFS is similar. - Space: `O(n)`. For BFS, the worst-case space is given by the maximum *width*. That is when the binary tree is complete so that the last level would have `(n-1)/2` nodes, thus `O(n)`. For the DFS, the space complexity will be given by the tree's maximum *height*. In the worst-case, the binary tree is skewed to the right so that we will have an implicit call stack of size `n`. -// [#linkedlist-q-FILENAME] -// include::content/part02/linked-list.asc[tag=linkedlist-q-FILENAME] + +:leveloffset: +1 + +=== Solutions for Hash Map Questions +(((Interview Questions Solutions, Hash Map))) + +:leveloffset: -1 + +[#hashmap-q-two-sum] +include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] + +This simple problem can have many solutions; let's explore some. + +_Brute force_ + +One brute force approach could be doing two for loops. We sum two different numbers and check if they add up to the target. If yes, we return, and if not, we keep increasing the indices until we check every possible pair. + +[source, javascript] +---- +include::interview-questions/two-sum.js[tags=twoSumBrute] +---- + +This approach's time complexity is `O(n^2)`, because we visit every number twice in the worst-case. While the space complexity is `O(1)`. + +Can we trade space for time? Yes! + +_Map_ + +Based on `nums[i] + nums[j] === target` we can say that `num[j] === target - nums[i]`. We can do one pass and check if we have seen any number equal to `target - nums[i]`. A map is perfect for this job. We could have a HashMap that maps `num` to `index`. Let's see the algorithms to make it work. + + +*Algorithm*: + +* Visit every number once +** Calculate the complement `target - nums[i]`. +** If the complement exists, return its index and the current index. +** If not, save the complement and the index number. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/two-sum.js[tags=description;solution] +---- + +*Complexity Analysis*: + +- Time: `O(n)`. We visit every number once. +- Space: `O(n)`. In the worst-case scenario, we don't find the target, and we ended up with a map with all the numbers from the array. + + +[#hashmap-q-subarray-sum-equals-k] +include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] + +This problem has multiple ways to solve it. Let's explore some. + +_Brute force_ + +The most straightforward one is to convert the requirements into code: +generate all possible subarrays, add them up, and check how many are equal to k. + +[source, javascript] +---- +include::interview-questions/subarray-sum-equals-k.js[tags=subarraySumBrute1] +---- + +This solution's time complexity is `O(n^3)` because of the 3 nested loops. + +How can we do better? Notice that the last for loop, compute the sum repeatedly just to add one more. +Let's fix that! + +_Cummulative Sum_ + +For this solution, instead of computing the sum from `i` to `j` all the time. We can calculate a cumulative sum. Every time we see a new number, we add it to the aggregate. + +Since we want all possible subarray, We can increase `i` and get sum for each: + +[source, javascript] +---- +array = [1, 2, 3, 0, 1, 4, 0, 5]; + +// cummulative sum from left to right with i = 0 +sum = [1, 3, 6, 6, 7, 11, 11, 16]; +// cummulative sum from left to right with i = 1 +sum = [2, 5, 5, 6, 10, 10, 15]; +// cummulative sum from left to right with i = 2 +sum = [3, 3, 4, 8, 8, 13]; +// ... and so on ... +// cummulative sum from left to right with i = 7 +sum = [5]; +---- + +Here's the code: + +[source, javascript] +---- +include::interview-questions/subarray-sum-equals-k.js[tags=subarraySumBrute1] +---- + +The time complexity for this solution is better, `O(n^2)`. Can we still do better? + +_Map_ + +Let's get the intution from our previous cummulative sum: + +[source, javascript] +---- +subarraySum([1, 2, 3, 0, 1, 4, 0, 5], 5); // k = 5 + +// cummulative sum from left to right is +sum = [1, 3, 6, 6, 7, 11, 11, 16]; +// ^ ^ +---- + +Notice that when the array has a 0, the cumulative sum has a repeated number. If you subtract those numbers, it will give you zero. In the same way, If you take two other ranges and subtract them (`sum[j] - sum[i]`), it will give you the sum of that range `sum(num[i]...num[j])`. + +For instance, if we take the index `2` and `0` (with values 6 and 1) and susbtract them we get `6-1=5`. To verify we can add the array values from index 0 to 2, `sum([1, 2, 3]) === 5`. + +With that intuition, we can use a Map to keep track of the aggregated sum and the number of times that sum. + +*Algorithm*: + +* Start sum at 0 +* Visit every number on the array +** Compute the cumulative sum +** Check if `sum - k` exits; if so, it means that there's a subarray that adds up to k. +** Save the sum and the number of times that it has occurred. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/subarray-sum-equals-k.js[tags=description;solution] +---- + +You might wonder, what the map is initialized with `[0, 1]`. Consider this test case: + +[source, javascript] +---- +subarraySum([1], 1); // k = 1 +---- + +The sum is 1, however `sum - k` is `0`. If it doesn't exist on the map, we will get the wrong answer since that number adds up to `k`. We need to add an initial case on the map: `map.set(0, 1)`. If `nums[i] - k = 0`, then that means that `nums[i] = k` and should be part of the solution. + +*Complexity Analysis*: + +- Time: `O(n)`. We visit every number once. +- Space: `O(n)`. The map size will be the same as the original array. + +// :leveloffset: +1 + +// === Solutions for TOPIC Questions +// (((Interview Questions Solutions, TOPIC))) + +// :leveloffset: -1 + +// [#TOPIC-q-FILENAME] +// include::content/part03/TOPIC_FILE.asc[tag=TOPIC-q-FILENAME] // RESTATE REQUIREMENTS AND DESCRIPTIONS @@ -444,8 +600,7 @@ The complexity of any of the BFS methods or DFS is similar. // [source, javascript] // ---- -// include::interview-questions/FILENAME.js[tag=description] -// include::interview-questions/FILENAME.js[tag=solution] +// include::interview-questions/FILENAME.js[tags=description;solution] // ---- // IMPLEMENTATION NOTES diff --git a/book/content/part03/hashmap.asc b/book/content/part03/hashmap.asc index 8bf36ede..ec8d8ea4 100644 --- a/book/content/part03/hashmap.asc +++ b/book/content/part03/hashmap.asc @@ -12,7 +12,7 @@ A HashMap is a Map implementation. HashMaps are composed of two things: 1) a _hash function_ and 2) a bucket _array_ to store values. -Before going into the implementation details let’s give an overview of how it works. Let’s say we want to keep a tally of things and animals: +Before going into the implementation details, let’s give an overview of how it works. Let’s say we want to keep a tally of things and animals: .HashMap example [source, javascript] @@ -31,11 +31,11 @@ image::image41.png[image,width=528,height=299] 1. We use a *hash function* to transform the keys (e.g., dog, cat, rat, …) into an array index. This _array_ is called *bucket*. 2. The bucket holds the values or list of values in case of collisions. -In the illustration, we have a bucket size of 10. In bucket 0, we have a collision. Both `cat` and `art` keys map to the same bucket even thought their hash codes are different. +In the illustration, we have a bucket size of 10. In bucket 0, we have a collision. Both `cat` and `art` keys map to the same bucket even though their hash codes are different. In a HashMap, a *collision* is when different keys lead to the same index. They are nasty for performance since it can reduce the search time from *O(1)* to *O(n)*. -Having a big bucket size can avoid a collision but also can waste too much memory. We are going to build an _optimized_ HashMap that re-sizes itself when it is getting full. This auto-resizing avoids collisions and don't need to allocate too much memory upfront. Let’s start with the *hash function*. +Having a big bucket size can avoid a collision but also can waste too much memory. We are going to build an _optimized_ HashMap that resizes itself when it is getting full. This auto-resizing avoids collisions and don't need to allocate too much memory upfront. Let’s start with the *hash function*. ===== Designing an optimized hash function @@ -43,7 +43,7 @@ To minimize collisions, we need to create an excellent hash function. IMPORTANT: A *perfect* hash function is one that assigns a unique array index for every different key. -It’s no practical and memory-wise wasteful to have a perfect hash function, so we are going to shoot for a cost-effective hash function instead. +It’s no practical and memory-wise wasteful to have a perfect hash function, so we will shoot for a cost-effective hash function instead. .To recap: - A hash function converts keys into array indices. @@ -51,11 +51,11 @@ It’s no practical and memory-wise wasteful to have a perfect hash function, so 1. *Hash Code*: maps any key into an integer (unbonded) 2. *Compression function*: maps an arbitrary integer to integer in the range of [0… BUCKET_SIZE -1]. -Before doing a great hash function, let's see what a lousy hash function looks like. 😉 +Before doing an excellent hash function, let's see what a lousy hash function looks like. 😉 ====== Analysing collisions on bad hash code functions -The goal of a hash code function is to convert any value given into a positive integer — a common way to accomplish with summing each string’s Unicode value. +A hash code function's goal is to convert any value given into a positive integer — a common way to accomplish with summing each string’s Unicode value. .Naïve hashing function implementation [source, javascript] @@ -72,7 +72,7 @@ The `charCodeAt()` method returns an integer between `0` and `65535` representin The `codePointAt()` method returns a non-negative integer that is the Unicode code point value. **** -With this function we have the can convert some keys to numbers as follows: +With this function, we have the can convert some keys to numbers as follows: .Hashing examples [source, javascript] @@ -82,7 +82,7 @@ include::{codedir}/data-structures/maps/hash-maps/hashing.js[tag=naiveHashCodeEx Notice that `rat` and `art` have the same hash code! These are collisions that we need to solve. -Collisions happened because we are adding the letter's Unicode and are not taking the order into account nor the type. We can do better by offsetting the character value based on their position in the string. We can also add the object type, so number `10` produce different output than string `'10'`. +Collisions happened because we add the letter's Unicode and are not taking the order into account or the type. We can do better by offsetting the character value based on their position in the string. We can also add the object type, so number `10` produce different output than the string `'10'`. .Hashing function implementation that offset character value based on the position [source, javascript] @@ -109,7 +109,7 @@ BigInt has no virtual limits (until you run out of physical memory). It uses the ---- **** -As you can imagine, summing 20bits per letter leads to a humongous number! That's the case even for three letters words. We are using `BigInt`, so it doesn’t overflow. +As you can imagine, summing 20bits per letter leads to a massive number! That's the case even for three-letter words. We are using `BigInt`, so it doesn’t overflow. .Verifying there's not hashing code duplicates [source, javascript] @@ -117,9 +117,9 @@ As you can imagine, summing 20bits per letter leads to a humongous number! That' include::{codedir}/data-structures/maps/hash-maps/hashing.js[tag=hashCodeOffsetExample, indent=0] ---- -We don’t have duplicates anymore! If the keys have different content or type, they have a different hash code. However, we need to represent these unbounded integers to finite buckets in an array. We do that using *compression function*. This function can be as simple as `% BUCKET_SIZE`. +We don’t have duplicates anymore! If the keys have different content or type, they have distinct hash codes. However, we need to represent these unbounded integers to finite buckets in an array. We do that using *compression function*. This function can be as simple as `% BUCKET_SIZE`. -However, there’s an issue with the last implementation. It doesn’t matter how enormous (and different) is the hash code number if we at the end use the modulus to get an array index. The part of the hash code that truly matters is the last bits. +However, there’s an issue with the last implementation. It doesn’t matter how enormous (and different) is the hash code number if we, in the end, use the modulus to get an array index. The part of the hash code that truly matters is the last bits. .Look at this example with a bucket size of 4. [source, javascript] @@ -131,9 +131,9 @@ However, there’s an issue with the last implementation. It doesn’t matter ho 50 % 4 //↪️ 2 ---- -All the hash codes are different and still we get many collisions! [big]#😱# +All the hash codes are different, and still, we get many collisions! [big]#😱# -Based on numbers properties, using a prime number as the modulus produce fewer collisions. +Based on numbers properties, using a prime number as the modulus produces fewer collisions. .Let’s see what happens if the bucket size is a prime number: [source, javascript] @@ -149,7 +149,7 @@ Now it’s more evenly distributed!! [big]#😎👍# .So, to sum up: * Bucket size should always be a *prime number*, so data is distributed more evenly and minimized collisions. -* Hash code doesn’t have to be too big. At the end what matters is the few last digits. +* Hash code doesn’t have to be too big. In the end, what matters is the few last digits. Let’s design a better HashMap with what we learned. @@ -171,9 +171,9 @@ Take a look at the following function: include::{codedir}/data-structures/maps/hash-maps/hash-map.js[tag=hashFunction, indent=0] ---- -Is somewhat similar to what we did before, in the sense that we use each letter’s Unicode is used to compute the hash. The difference is: +It is somewhat similar to what we did before, in the sense that we use each letter’s Unicode to compute the hash. The difference is: -1. We are using the XOR bitwise operation (`^`) to produce an *avalanche effect*, where a small change in two strings produces completely different hash codes. E.g. +1. We are using the XOR bitwise operation (`^`) to produce an *avalanche effect*, where a small change in two strings makes completely different hash codes. E.g. .Hash Code example using FVN1a [source, javascript] @@ -182,9 +182,9 @@ hashCode('cat') //↪️ 4201630708 hashCode('cats') //↪️ 3304940933 ---- -A one letter change produce a very different output. +A one-letter change produces a very different output. -We are using the FVN-1a prime number (`16777619`) and the offset (`2166136261`) to reduce collisions even further. If you are curious where these numbers come from check out this http://bit.ly/fvn-1a[link]. +We are using the FVN-1a prime number (`16777619`) and the offset (`2166136261`) to reduce collisions even further if you are curious where these numbers come from, check out this http://bit.ly/fvn-1a[link]. FVN-1a hash function is a good trade-off between speed and collision prevention. @@ -208,7 +208,7 @@ include::{codedir}/data-structures/maps/hash-maps/hash-map.js[tag=getLoadFactor, } ---- -Notice that we are also keeping track of collisions (for benchmarking purposes) and a load factor. *The load factor* measures how full the hash map is. We don’t want to be fuller than 75%. If the HashMap is getting too full, then we are going to fix it doing a *rehash* (more on that later). +Notice that we are also keeping track of collisions (for benchmarking purposes) and a load factor. *The load factor* measures how full the hash map is. We don’t want to be fuller than 75%. If the HashMap is getting too full, we will fix it doing a *rehash* (more on that later). ====== Inserting elements in a HashMap @@ -225,9 +225,9 @@ include::{codedir}/data-structures/maps/hash-maps/hash-map.js[tag=set, indent=0] <1> Key doesn’t exist yet, so we create the new key/value pair. <2> Key already exists, then we will replace the value. <3> Key doesn’t exist, but the bucket already has other data, this is a collision! We push the new element to the bucket. -<4> To keep insertion order, we keep track of the order of the keys using `keysTrackerArray` and `keysTrackerIndex`. +<4> To keep insertion order, we keep track of the keys' order using `keysTrackerArray` and `keysTrackerIndex`. -Notice, that we are using a function called `getEntry` to check if the key already exists. It gets the index of the bucket corresponding to the key and then checks if the entry with the given key exists. We are going to implement this function in a bit. +Notice that we are using a function called `getEntry` to check if the key already exists. It gets the bucket's index corresponding to the access and then checks if the entry with the given key exists. We are going to implement this function in a bit. ====== Getting values out of a HashMap @@ -243,7 +243,7 @@ include::{codedir}/data-structures/maps/hash-maps/hash-map.js[tag=getEntry, inde <3> Use Linked list's <<part02-linear-data-structures#array-search-by-value>> method to find value on the bucket. <4> Return `bucket` and `entry` if found. -With the help of the `getEntry` method, we can do the `HashMap.get` and `HashMap.has` methods: +With the `getEntry` method, we can do the `HashMap.get` and `HashMap.has` methods: .HashMap's get method [source, javascript] @@ -277,7 +277,7 @@ method. ===== Rehashing a HashMap -Rehashing is a technique to minimize collisions when a hash map is getting full. It doubles the size of the map and recomputes all the hash codes and insert data in the new buckets. +Rehashing is a technique to minimize collisions when a hash map is getting full. It doubles the map's size and recomputes all the hash codes, and inserts data in the new buckets. When we increase the map size, we try to find the next prime. We explained that keeping the bucket size a prime number is beneficial for minimizing collisions. @@ -292,7 +292,7 @@ https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac571 ===== HashMap time complexity -Hash Map it’s very optimal for searching values by key in constant time *O(1)*. However, searching by value is not any better than an array since we have to visit every value *O(n)*. +Hash Map is optimal for searching values by key in constant time *O(1)*. However, searching by value is not any better than an array since we have to visit every value *O(n)*. (((Tables, Non-Linear DS, HashMap complexities))) // tag::table[] @@ -307,4 +307,74 @@ Hash Map it’s very optimal for searching values by key in constant time *O(1)* // end::table[] indexterm:[Runtime, Linear] -As you can notice we have amortized times since, in the unfortunate case of a rehash, it will take O(n) while it resizes. After that, it will be *O(1)*. +As you can notice, we have amortized times since it will take O(n) while it resizes in the unfortunate case of a rehash. After that, it will be *O(1)*. + + +==== Practice Questions +(((Interview Questions, Hash Map))) + + + +// tag::hashmap-q-two-sum[] +===== Fit 2 movies in a flight + +*HM-1*) _You are working in an entertainment recommendation system for an airline. Given a flight duration (target) and an array of movies length, you need to recommend two movies that fit exactly the length of the flight. Return an array with the indices of the two numbers that add up to the target. No duplicates are allowed. If it's not possible to return empty `[]`._ + +// end::hashmap-q-two-sum[] + +// _Seen in interviews at: Amazon, Google, Apple._ + +Examples: + +[source, javascript] +---- +twoSum([113, 248, 80, 200, 91, 201, 68], 316); // [1, 6] (248 + 68 = 316) +twoSum([150, 100, 200], 300); // [2, 3] (100 + 200 = 300) +twoSum([150, 100, 200], 150); // [] (No two numbers add up to 150) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/two-sum.js[tags=description;placeholder] +---- + + +_Solution: <<hashmap-q-two-sum>>_ + + + + + +// tag::hashmap-q-subarray-sum-equals-k[] +===== Subarray Sum that Equals K + +*HM-2*) _Given an array of integers, find all the possible subarrays to add up to k. Return the count._ + +// end::hashmap-q-subarray-sum-equals-k[] + +// _Seen in interviews at: Facebook, Google, Amazon_ + +Examples: + +[source, javascript] +---- +subarraySum([1], 1); // 1 (1 equals to 1 :) +subarraySum([1, 1, 1], 1); // 3 ([1], [1], [1] equals 1) +subarraySum([1, -1, 1], 0); // 2 (sum([1, -1]), sum([-1, 1]) equals 0) +subaraySum([1, 2, 3, 0, 1, 4, 0, 5], 5) // 8 +// All of these 8 sub arrays add up to 5: +// [2, 30], [2,3,0], [0,1,4], [0,1,4,0], [1,4], [1,4,0], [0,5], [5] +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/subarray-sum-equals-k.js[tags=description;placeholder] +---- + + +_Solution: <<hashmap-q-subarray-sum-equals-k>>_ + diff --git a/book/interview-questions/longest-substring-without-repeating-characters.js b/book/interview-questions/longest-substring-without-repeating-characters.js new file mode 100644 index 00000000..3da6aac9 --- /dev/null +++ b/book/interview-questions/longest-substring-without-repeating-characters.js @@ -0,0 +1,14 @@ +// https://leetcode.com/problems/longest-substring-without-repeating-characters/submissions/ + +function lengthOfLongestSubstring(s: string): number { + let max = 0; + const set = new Set(); + + for (let i = 0, j = 0; j < s.length; j++) { + while (set.has(s[j])) set.delete(s[i++]); + set.add(s[j]); + max = Math.max(max, set.size); + } + + return max; +}; diff --git a/book/interview-questions/longest-substring-without-repeating-characters.spec.js b/book/interview-questions/longest-substring-without-repeating-characters.spec.js new file mode 100644 index 00000000..c56ff203 --- /dev/null +++ b/book/interview-questions/longest-substring-without-repeating-characters.spec.js @@ -0,0 +1,5 @@ +describe('', () => { + it('', () => { + + }); +}); diff --git a/book/interview-questions/subarray-sum-equals-k.js b/book/interview-questions/subarray-sum-equals-k.js new file mode 100644 index 00000000..42db8545 --- /dev/null +++ b/book/interview-questions/subarray-sum-equals-k.js @@ -0,0 +1,58 @@ +// tag::description[] +function subarraySum(nums, k) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + let ans = 0; + let sum = 0; + const map = new Map([[0, 1]]); + + for (let i = 0; i < nums.length; i++) { + sum += nums[i]; + if (map.has(sum - k)) ans += map.get(sum - k); + map.set(sum, 1 + (map.get(sum) || 0)); + } + + return ans; + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::subarraySumBrute1[] +function subarraySumBrute1(nums, k) { + let ans = 0; + + for (let i = 0; i < nums.length; i++) { + for (let j = i; j < nums.length; j++) { + let sum = 0; + for (let n = i; n <= j; n++) { + sum += nums[n]; + } + if (sum === k) ans++; + } + } + + return ans; +} +// end::subarraySumBrute1[] + +// tag::subarraySumBrute2[] +function subarraySumBrute2(nums, k) { + let ans = 0; + + for (let i = 0; i < nums.length; i++) { + let sum = 0; + for (let j = i; j < nums.length; j++) { + sum += nums[j]; + if (sum === k) ans++; + } + } + + return ans; +} +// end::subarraySumBrute2[] + +module.exports = { subarraySum, subarraySumBrute1, subarraySumBrute2 }; diff --git a/book/interview-questions/subarray-sum-equals-k.spec.js b/book/interview-questions/subarray-sum-equals-k.spec.js new file mode 100644 index 00000000..c3670295 --- /dev/null +++ b/book/interview-questions/subarray-sum-equals-k.spec.js @@ -0,0 +1,24 @@ +const { subarraySum, subarraySumBrute1, subarraySumBrute2 } = require('./subarray-sum-equals-k'); +// const { } = require('../../src/index'); + +[subarraySum, subarraySumBrute1, subarraySumBrute2].forEach((fn) => { + describe(`HashMap: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = []; + const expected = 0; + expect(fn(actual, 0)).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [1, -1, 1]; + const expected = 3; + expect(fn(actual, 1)).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = [1, 2, 3, 0, 1, 4, 0, 5]; + const expected = 8; + expect(fn(actual, 5)).toEqual(expected); + }); + }); +}); diff --git a/book/interview-questions/two-sum.js b/book/interview-questions/two-sum.js new file mode 100644 index 00000000..985585ec --- /dev/null +++ b/book/interview-questions/two-sum.js @@ -0,0 +1,34 @@ +// tag::description[] +function twoSum(nums, target) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const map = new Map(); + + for (let i = 0; i < nums.length; i++) { + const complement = target - nums[i]; + if (map.has(nums[i])) return [map.get(nums[i]), i]; + map.set(complement, i); + } + + return []; + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::twoSumBrute[] +function twoSumBrute(nums, target) { + for (let i = 0; i < nums.length; i++) { + for (let j = i + 1; j < nums.length; j++) { + if (nums[i] + nums[j] === target) return [i, j]; + } + } + + return []; +} +// end::twoSumBrute[] + +module.exports = { twoSum, twoSumBrute }; diff --git a/book/interview-questions/two-sum.spec.js b/book/interview-questions/two-sum.spec.js new file mode 100644 index 00000000..7507ac18 --- /dev/null +++ b/book/interview-questions/two-sum.spec.js @@ -0,0 +1,28 @@ +const { twoSum } = require('./two-sum'); +// const { } = require('../../src/index'); + +describe('HashMap: Two Sum', () => { + it('should work with null/empty', () => { + const actual = []; + const expected = []; + expect(twoSum(actual, 0)).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [150, 100, 200]; + const expected = [1, 2]; + expect(twoSum(actual, 300)).toEqual(expected); + }); + + it('should work with small invalid case', () => { + const actual = [150, 100, 200]; + const expected = []; + expect(twoSum(actual, 150)).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = [113, 248, 80, 200, 91, 201, 68]; + const expected = [1, 6]; + expect(twoSum(actual, 316)).toEqual(expected); + }); +}); From 641b3388faa84f3757d2a6d20d9de26e3c9571cf Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Thu, 3 Sep 2020 19:22:39 +0000 Subject: [PATCH 038/108] :bookmark: chore(release): 1.16.0 # [1.16.0](https://github.com/amejiarosario/dsa.js/compare/1.15.0...1.16.0) (2020-09-03) ### Features * **book/hashmap:** add exercises and solutions ([d18186b](https://github.com/amejiarosario/dsa.js/commit/d18186b61c260e3ae2cc1267cadd16c8cb453e00)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20a05bd0..ce0a3855 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.16.0](https://github.com/amejiarosario/dsa.js/compare/1.15.0...1.16.0) (2020-09-03) + + +### Features + +* **book/hashmap:** add exercises and solutions ([d18186b](https://github.com/amejiarosario/dsa.js/commit/d18186b61c260e3ae2cc1267cadd16c8cb453e00)) + # [1.15.0](https://github.com/amejiarosario/dsa.js/compare/1.14.0...1.15.0) (2020-09-02) diff --git a/package-lock.json b/package-lock.json index 7ff12299..b3cde99f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.15.0", + "version": "1.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1abab67a..3b49557f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.15.0", + "version": "1.16.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From f40dc6314a14e1750146a19163b3b70c30f09d70 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 4 Sep 2020 09:13:16 -0400 Subject: [PATCH 039/108] feat(book/set): add questions and solutions --- book/D-interview-questions-solutions.asc | 88 +++++++++++---- book/content/part03/set.asc | 101 +++++++++++++++--- ...-substring-without-repeating-characters.js | 17 ++- ...tring-without-repeating-characters.spec.js | 23 +++- book/interview-questions/most-common-word.js | 51 +++++++++ .../most-common-word.spec.js | 41 +++++++ 6 files changed, 282 insertions(+), 39 deletions(-) create mode 100644 book/interview-questions/most-common-word.js create mode 100644 book/interview-questions/most-common-word.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 71e65e48..180a6222 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -577,35 +577,81 @@ The sum is 1, however `sum - k` is `0`. If it doesn't exist on the map, we will - Time: `O(n)`. We visit every number once. - Space: `O(n)`. The map size will be the same as the original array. -// :leveloffset: +1 -// === Solutions for TOPIC Questions -// (((Interview Questions Solutions, TOPIC))) -// :leveloffset: -1 +:leveloffset: +1 + +=== Solutions for Set Questions +(((Interview Questions Solutions, Set))) + +:leveloffset: -1 + + +[#set-q-most-common-word] +include::content/part03/set.asc[tag=set-q-most-common-word] + +This problem requires multiple steps. We can use a `Set` for quickly looking up banned words. For getting the count of each word, we used a `Map`. + +*Algorithm*: + +- Convert text to lowercase. +- Remove any special characters `!?',;.`. +- Convert the paragraph into words array. +- Count how many times words occur. +- Exclude banned words from counts. +- Return the word (or first one) that is the most repeated. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/most-common-word.js[tags=description;solution] +---- + +Here are heavily relying on Regular Expressions: + +- `\W+` would match all non-words. +- `\s+` catches all whitespace. + +The line that is mapping words to count seems very busy. Here's another version of the same code a little bit more explicit: + +[source, javascript] +---- +include::interview-questions/most-common-word.js[tags=explicit] +---- + +*Complexity Analysis*: + +- Time: `O(m + n)`, where `n` is paragraph length and `m` is the number of banned words. If we were NOT using a `Set` for prohibited words, then the runtime would have been `O(mn)`. +- Space: `O(m + n)`. The extra space complexity is given by the size of the `Map` and `Set`. + -// [#TOPIC-q-FILENAME] -// include::content/part03/TOPIC_FILE.asc[tag=TOPIC-q-FILENAME] -// RESTATE REQUIREMENTS AND DESCRIPTIONS -// *Algorithm*: -// - STEP 1 -// - STEP 2 -// - STEP 2.1 -// - STEP 2.2 +[#set-q-longest-substring-without-repeating-characters] +include::content/part03/set.asc[tag=set-q-longest-substring-without-repeating-characters] -// *Implementation*: +One of the most efficient ways to find repeating characters is using a `Map` or `Set`. Use a `Map` when you need to keep track of the count/index (e.g., string -> count) and use a `Set` when you only need to know if there are repeated characters or not. -// [source, javascript] -// ---- -// include::interview-questions/FILENAME.js[tags=description;solution] -// ---- +*Algorithm*: + +* Visit each letter. +** Insert the letter on a Set. +** Keep track of the maximum size of the Set in `max`. +** If the letter has been seen before, delete until there's no duplicate. +* Return max. -// IMPLEMENTATION NOTES +*Implementation*: -// *Complexity Analysis*: +[source, javascript] +---- +include::interview-questions/longest-substring-without-repeating-characters.js[tags=description;solution] +---- + +We could also have used a Map and keep track of the indexes, but that's not necessary. In this case, the `Set` is all we need. + +*Complexity Analysis*: -// - Time: `O(?)`. WHY? -// - Space: `O(?)`. WHY? +- Time: `O(n)`. We visit each letter once. +- Space: `O(W)`, where `W` is the max length of non-repeating characters. The maximum size of the Set gives the space complexity. In the worst-case scenario, all letters are unique (`W = n`), so our space complexity would be `O(n)`. In the avg. case where there are one or more duplicates, it uses less space than `n`, because `W < n`. diff --git a/book/content/part03/set.asc b/book/content/part03/set.asc index 4f02fa61..7b64690e 100644 --- a/book/content/part03/set.asc +++ b/book/content/part03/set.asc @@ -7,9 +7,9 @@ endif::[] === Set (((Set))) (((Data Structures, Non-Linear, Set))) -A set is a data structure where duplicated entries are not allowed. Set is like an array with unique values. +A set is a data structure where duplicated entries are not allowed. A Set is like an array with only unique values. -NOTE: JavaScript has already a built-in Set data structure. +NOTE: JavaScript already has a built-in Set data structure. Take a look at the following example: @@ -38,15 +38,15 @@ TIP: A hint... it should perform all operations in *O(1)** or at most *O(log n)* If we use a `map`, we can accomplish this. However, maps use a key/value pair. If we only use the keys, we can avoid duplicates. Since in a `map` you can only have one key at a time. -As you might remember from the <<part03-graph-data-structures#map>> chapter, there are two ways of implementing a `map` and both can be used to create a `set`. Let's explore the difference between the two implementations are. +As you might remember from the <<part03-graph-data-structures#map>> chapter, there are two ways of implementing a `map`, and both can be used to create a `set`. Let's explore the difference between the two implementations are. ==== HashSet vs TreeSet -We can implement a `map` using a *balanced BST* and using a *hash function*. If we use them to implement a `Set`, then we would have a `HashSet` and `TreeSet` respectively. +We can implement a `map` using a *balanced BST* or a *hash function*. If we use them to implement a `Set`, we would have a `HashSet` and `TreeSet`. * `TreeSet`, would return the values sorted in ascending order. * `HashSet`, would return the values in insertion order. -* Operations on a `HashSet` would take on average O(1) and in the worst case (rehash is due), it would take O(n). +* Operations on a `HashSet` would take on average O(1), and in the worst case (rehash is due), it would take O(n). * Operation on a `TreeSet` is always O(log n). Let’s implement both! @@ -65,7 +65,7 @@ include::{codedir}/data-structures/sets/tree-set.js[tag=constructor] ---- <1> Converts an array or any iterable data structure to a set. -A common use case for Sets is to remove duplicated values from an array. We can do that by passing them in the constructor as follows: +An everyday use case for Sets is to remove duplicated values from an array. We can do that bypassing them in the constructor as follows: .Removing duplicates from an Array using a Set [source, javascript] @@ -115,7 +115,7 @@ Voilà! That’s it! ===== Converting TreeSet to Array -A common use case for a Set is to convert it to an array or use in an iterator (for loops, forEach, …). Let’s provide the method for that: +Another use case for a Set is to convert it to an array or use an iterator (for loops, forEach, …). Let’s provide the method for that: .TreeSet's iterator [source, javascript] @@ -151,7 +151,7 @@ No more duplicates in our array! Check out our https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/sets/tree-set.js#L12[GitHub repo for the full TreeSet implementation]. -Let’s now, implement a `HashSet`. +Let’s now implement a `HashSet`. [[hashset]] ==== HashSet @@ -172,7 +172,7 @@ This constructor is useful for converting an array to set and initializing the ` ===== Inserting values to a HashSet -To insert items in a HashSet we use the `set` method of the `HashMap`: +To insert items in a HashSet, we use the `set` method of the `HashMap`: .HashSet's `add` method [source, javascript] @@ -181,7 +181,7 @@ include::{codedir}/data-structures/sets/hash-set.js[tag=add, indent=0] } ---- -`HashMap` stores key/value pairs, but for this, we only need the key, and we ignore the value. +`HashMap` stores key/value pairs, but we only need the keys for Set, so we ignore the value. ===== Finding values in a HashSet @@ -198,7 +198,7 @@ true, and if it’s empty, it will be false. ===== Deleting values from a HashSet -For deleting a value from a hashSet we use the HashMap’s delete method: +For deleting a value from a hashSet, we use the HashMap’s delete method: .HashSet's `delete` method [source, javascript] @@ -210,7 +210,7 @@ This method has an average runtime of *O(1)*. ==== HashSet vs HashMap Time Complexity -We can say that `HashMap` in on average more performant O(1) vs. O(log n). However, if a +We can say that `HashMap` in on average, more performant O(1) vs. O(log n). However, if a rehash happens, it will take *O(n)* instead of *O(1)*. A `TreeSet` is always *O(log n)*. (((Tables, Non-Linear DS, HashSet/TreeSet complexities))) @@ -236,3 +236,80 @@ difference besides runtime is that: .TreeSet vs HashSet * HashSet keeps data in insertion order * TreeSet keeps data sorted in ascending order. + + +==== Practice Questions +(((Interview Questions, Set))) + +// tag::set-q-most-common-word[] +===== Most common word + +*ST-1*) _Given a text and a list of banned words. +Find the most common word that is not on the banned list. +You might need to sanitize the text and strip out punctuation `?!,'.`_ +// end::set-q-most-common-word[] + +// _Seen in interviews at: Amazon._ + +Examples: + +[source, javascript] +---- +mostCommonWord( + `How much wood, would a Woodchuck chuck, + if a woodchuck could chuck?`, + ['a'], +); // woodchuck or chuck (both show up twice) + +mostCommonWord( +`It's a blue ball and its shade... Very BLUE!`, +['and']); // blue (it show up twice, "it" and "its" once) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/most-common-word.js[tags=description;placeholder] +---- + + +_Solution: <<set-q-most-common-word>>_ + + + + + + + + + + + +// tag::set-q-longest-substring-without-repeating-characters[] +===== Longest Without Repeating + +*ST-2*) _Find the length of the longest substring without repeating characters._ + +// end::set-q-longest-substring-without-repeating-characters[] + +// _Seen in interviews at: Amazon, Facebook, Bloomberg._ + +Examples: + +[source, javascript] +---- +lenLongestSubstring('aaaaa'); // 1 ('a') +lenLongestSubstring('abccdefg'); // 5 ('cdefg') +lenLongestSubstring('abc'); // 3 ('abc') +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/longest-substring-without-repeating-characters.js[tags=description;placeholder] +---- + + +_Solution: <<set-q-longest-substring-without-repeating-characters>>_ diff --git a/book/interview-questions/longest-substring-without-repeating-characters.js b/book/interview-questions/longest-substring-without-repeating-characters.js index 3da6aac9..5dd0cd38 100644 --- a/book/interview-questions/longest-substring-without-repeating-characters.js +++ b/book/interview-questions/longest-substring-without-repeating-characters.js @@ -1,6 +1,10 @@ -// https://leetcode.com/problems/longest-substring-without-repeating-characters/submissions/ - -function lengthOfLongestSubstring(s: string): number { +// tag::description[] +function lenLongestSubstring(s) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] let max = 0; const set = new Set(); @@ -11,4 +15,9 @@ function lengthOfLongestSubstring(s: string): number { } return max; -}; + // end::solution[] + // tag::description[] +} +// end::description[] + +module.exports = { lenLongestSubstring }; diff --git a/book/interview-questions/longest-substring-without-repeating-characters.spec.js b/book/interview-questions/longest-substring-without-repeating-characters.spec.js index c56ff203..7011e0d4 100644 --- a/book/interview-questions/longest-substring-without-repeating-characters.spec.js +++ b/book/interview-questions/longest-substring-without-repeating-characters.spec.js @@ -1,5 +1,24 @@ -describe('', () => { - it('', () => { +const { lenLongestSubstring } = require('./longest-substring-without-repeating-characters'); +// const { } = require('../../src/index'); +[lenLongestSubstring].forEach((fn) => { + describe(`Set: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = ''; + const expected = 0; + expect(fn(actual)).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = 'abc'; + const expected = 3; + expect(fn(actual)).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = 'abccdefg'; + const expected = 5; + expect(fn(actual)).toEqual(expected); + }); }); }); diff --git a/book/interview-questions/most-common-word.js b/book/interview-questions/most-common-word.js new file mode 100644 index 00000000..c74abac1 --- /dev/null +++ b/book/interview-questions/most-common-word.js @@ -0,0 +1,51 @@ +// tag::description[] +/** + * Find the most common word that is not banned. + * + * @param {string} paragraph - The text to sanitize and search on. + * @param {string[]} banned - List of banned words (lowercase) + */ +function mostCommonWord(paragraph, banned) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const words = paragraph.toLowerCase().replace(/\W+/g, ' ').split(/\s+/); + const b = new Set(banned); + const map = words.reduce((m, w) => (b.has(w) ? m : m.set(w, 1 + (m.get(w) || 0))), new Map()); + const max = Math.max(...map.values()); + for (const [w, c] of map.entries()) if (c === max) return w; + return ''; + // end::solution[] + // tag::description[] +} +// end::description[] + + +// tag::explicit[] +function mostCommonWordExplicit(paragraph, banned) { + const words = paragraph + .toLowerCase() + .replace(/\W+/g, ' ') + .split(/\s+/); + const exclude = new Set(banned); + + const wordsCount = words.reduce((map, word) => { + if (exclude.has(word)) return map; + const count = map.get(word) || 0; + return map.set(word, 1 + count); + }, new Map()); + + const max = Math.max(...wordsCount.values()); + + for (const [word, count] of wordsCount.entries()) { + if (count === max) { + return word; + } + } + return ''; +} +// end::explicit[] + +module.exports = { mostCommonWord, mostCommonWordExplicit }; diff --git a/book/interview-questions/most-common-word.spec.js b/book/interview-questions/most-common-word.spec.js new file mode 100644 index 00000000..a0a501de --- /dev/null +++ b/book/interview-questions/most-common-word.spec.js @@ -0,0 +1,41 @@ +const { mostCommonWord, mostCommonWordExplicit } = require('./most-common-word'); +// const { } = require('../../src/index'); + +[mostCommonWord, mostCommonWordExplicit].forEach((fn) => { + describe(`Set: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = ''; + const expected = ''; + expect(fn(actual, [])).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = 'a'; + const expected = ''; + expect(fn(actual, ['a'])).toEqual(expected); + }); + + it('should work with small case 2', () => { + const actual = 'a'; + const expected = 'a'; + expect(fn(actual, ['b'])).toEqual(expected); + }); + + it('should work with other case', () => { + expect(fn( + `How much wood, would a Woodchuck chuck, + if a woodchuck could chuck?`, + ['a'], + )).toEqual({ + asymmetricMatch: (actual) => ['woodchuck', 'chuck'].includes(actual), + }); + }); + + it('should work with \' case', () => { + expect(fn( + 'It\'s a blue ball and its shade... Very BLUE!', + ['and'], + )).toEqual('blue'); + }); + }); +}); From 75aa67a1adad6f2dbb1e51742527962221065134 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 4 Sep 2020 10:02:45 -0400 Subject: [PATCH 040/108] chore(book/questions): improve function documentation --- book/interview-questions/binary-tree-right-side-view.js | 2 +- book/interview-questions/buy-sell-stock.js | 1 + book/interview-questions/daily-temperatures.js | 1 + book/interview-questions/linkedlist-same-data.js | 5 +++-- .../longest-substring-without-repeating-characters.js | 6 ++++++ book/interview-questions/max-subarray.js | 1 + book/interview-questions/merge-lists.js | 1 + book/interview-questions/most-common-word.js | 3 ++- book/interview-questions/recent-counter.js | 4 ++-- book/interview-questions/subarray-sum-equals-k.js | 7 +++++++ book/interview-questions/two-sum.js | 8 ++++++++ book/interview-questions/valid-parentheses.js | 3 ++- 12 files changed, 35 insertions(+), 7 deletions(-) diff --git a/book/interview-questions/binary-tree-right-side-view.js b/book/interview-questions/binary-tree-right-side-view.js index 52b8c3e2..2e489077 100644 --- a/book/interview-questions/binary-tree-right-side-view.js +++ b/book/interview-questions/binary-tree-right-side-view.js @@ -4,7 +4,7 @@ const { Queue } = require('../../src/index'); /** * Find the rightmost nodes by level. * - * @example + * @example rightSideView(bt([1,2,3,4])); // [1, 3, 4] * 1 <- 1 * / \ * 2 3 <- 3 diff --git a/book/interview-questions/buy-sell-stock.js b/book/interview-questions/buy-sell-stock.js index 47422ff0..b12c11d4 100644 --- a/book/interview-questions/buy-sell-stock.js +++ b/book/interview-questions/buy-sell-stock.js @@ -6,6 +6,7 @@ * maxProfit([1, 2, 3]); // => 2 * maxProfit([3, 2, 1]); // => 0 * @param {number[]} prices - Array with daily stock prices + * @returns {number} - Max profit */ function maxProfit(prices) { // end::description[] diff --git a/book/interview-questions/daily-temperatures.js b/book/interview-questions/daily-temperatures.js index c46cf702..82f01cf5 100644 --- a/book/interview-questions/daily-temperatures.js +++ b/book/interview-questions/daily-temperatures.js @@ -9,6 +9,7 @@ * dailyTemperatures([73, 69, 72, 76, 73]); // [3, 1, 1, 0, 0] * * @param {number[]} t - Daily temperatures + * @returns {number[]} - Array with count of days to warmer temp. */ function dailyTemperatures(t) { // end::description[] diff --git a/book/interview-questions/linkedlist-same-data.js b/book/interview-questions/linkedlist-same-data.js index fd303d36..ca99badc 100644 --- a/book/interview-questions/linkedlist-same-data.js +++ b/book/interview-questions/linkedlist-same-data.js @@ -9,8 +9,9 @@ * hasSameData(['he', 'll', 'o'], ['hel', 'lo']); // true * hasSameData(['hel', 'lo'], ['hi']); // false * - * @param {ListNode} l1 - The root node of list 1 - * @param {ListNode} l2 - The root node of list 2 + * @param {ListNode} l1 - The root node of list 1. + * @param {ListNode} l2 - The root node of list 2. + * @returns {boolean} - true if has same data, false otherwise. */ function hasSameData(l1, l2) { // end::description[] diff --git a/book/interview-questions/longest-substring-without-repeating-characters.js b/book/interview-questions/longest-substring-without-repeating-characters.js index 5dd0cd38..3c3606a6 100644 --- a/book/interview-questions/longest-substring-without-repeating-characters.js +++ b/book/interview-questions/longest-substring-without-repeating-characters.js @@ -1,4 +1,10 @@ // tag::description[] +/** + * Find the length of the longest substring without duplicates. + * @example lenLongestSubstring('abccxyz'); // => 4 (cxyz) + * @param {string} s - The string. + * @returns {number} - The length of the longest unique substring. + */ function lenLongestSubstring(s) { // end::description[] // tag::placeholder[] diff --git a/book/interview-questions/max-subarray.js b/book/interview-questions/max-subarray.js index a1217635..6fb62d5d 100644 --- a/book/interview-questions/max-subarray.js +++ b/book/interview-questions/max-subarray.js @@ -7,6 +7,7 @@ * maxSubArray([-3,4,-1,2,1,-5]); // => 6 * * @param {number[]} a - Array + * @returns {number} - max sum */ function maxSubArray(a) { // end::description[] diff --git a/book/interview-questions/merge-lists.js b/book/interview-questions/merge-lists.js index ad26c326..b50f7f33 100644 --- a/book/interview-questions/merge-lists.js +++ b/book/interview-questions/merge-lists.js @@ -9,6 +9,7 @@ const ListNode = require('../../src/data-structures/linked-lists/node'); * * @param {ListNode} l1 - The root node of list 1 * @param {ListNode} l2 - The root node of list 2 + * @returns {ListNode} - The root of the merged list. */ function mergeTwoLists(l1, l2) { // end::description[] diff --git a/book/interview-questions/most-common-word.js b/book/interview-questions/most-common-word.js index c74abac1..b2c3f58f 100644 --- a/book/interview-questions/most-common-word.js +++ b/book/interview-questions/most-common-word.js @@ -1,9 +1,10 @@ // tag::description[] /** * Find the most common word that is not banned. - * + * @example mostCommonWord("It's blue and it's round", ['and']) // it * @param {string} paragraph - The text to sanitize and search on. * @param {string[]} banned - List of banned words (lowercase) + * @returns {string} - The first word that is the most repeated. */ function mostCommonWord(paragraph, banned) { // end::description[] diff --git a/book/interview-questions/recent-counter.js b/book/interview-questions/recent-counter.js index 052e27f6..79eada7c 100644 --- a/book/interview-questions/recent-counter.js +++ b/book/interview-questions/recent-counter.js @@ -5,8 +5,8 @@ const { Queue } = require('../../src/index'); * Counts the most recent requests within a time window. * Each request has its timestamp. * If the time window is 2 seconds, - * any requests that happened more than 2 seconds before the most recent request - * should not count. + * any requests that happened more than 2 seconds before the most + * recent request should not count. * * @example - The time window is 3 sec. (3000 ms) * const counter = new RecentCounter(3000); diff --git a/book/interview-questions/subarray-sum-equals-k.js b/book/interview-questions/subarray-sum-equals-k.js index 42db8545..61aa74f0 100644 --- a/book/interview-questions/subarray-sum-equals-k.js +++ b/book/interview-questions/subarray-sum-equals-k.js @@ -1,4 +1,11 @@ // tag::description[] +/** + * Find the number of subarrays that add up to k. + * @example subarraySum([1, -1, 1], 0); // 3 ([1,-1,1], [1], [1]) + * @param {number[]} nums - Array of integers. + * @param {number} k - The target sum. + * @returns {number} - The number of solutions. + */ function subarraySum(nums, k) { // end::description[] // tag::placeholder[] diff --git a/book/interview-questions/two-sum.js b/book/interview-questions/two-sum.js index 985585ec..37d75204 100644 --- a/book/interview-questions/two-sum.js +++ b/book/interview-questions/two-sum.js @@ -1,4 +1,12 @@ // tag::description[] +/** + * Find two numbers that add up to the target value. + * Return empty array if not found. + * @example twoSum([19, 7, 3], 10) // => [1, 2] + * @param {number[]} nums - Array of integers + * @param {number} target - The target sum. + * @returns {[number, number]} - Array with index 1 and index 2 + */ function twoSum(nums, target) { // end::description[] // tag::placeholder[] diff --git a/book/interview-questions/valid-parentheses.js b/book/interview-questions/valid-parentheses.js index a822a214..2e097cc0 100644 --- a/book/interview-questions/valid-parentheses.js +++ b/book/interview-questions/valid-parentheses.js @@ -2,12 +2,13 @@ /** * Validate if the parentheses are opened and closed in the right order. * - * @example + * @examples * isParenthesesValid('(){}[]'); // true * isParenthesesValid('([{}])'); // true * isParenthesesValid('([{)}]'); // false * * @param {string} string - The string + * @returns {boolean} - True if valid, false otherwise. */ function isParenthesesValid(string) { // end::description[] From 8a92ba0d1c97be70e7a72608a0fab0ae4b8b5d60 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Fri, 4 Sep 2020 14:23:01 +0000 Subject: [PATCH 041/108] :bookmark: chore(release): 1.17.0 # [1.17.0](https://github.com/amejiarosario/dsa.js/compare/1.16.0...1.17.0) (2020-09-04) ### Features * **book/set:** add questions and solutions ([f40dc63](https://github.com/amejiarosario/dsa.js/commit/f40dc6314a14e1750146a19163b3b70c30f09d70)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce0a3855..4bd0eb14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.17.0](https://github.com/amejiarosario/dsa.js/compare/1.16.0...1.17.0) (2020-09-04) + + +### Features + +* **book/set:** add questions and solutions ([f40dc63](https://github.com/amejiarosario/dsa.js/commit/f40dc6314a14e1750146a19163b3b70c30f09d70)) + # [1.16.0](https://github.com/amejiarosario/dsa.js/compare/1.15.0...1.16.0) (2020-09-03) diff --git a/package-lock.json b/package-lock.json index b3cde99f..7d5d9509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.16.0", + "version": "1.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3b49557f..feaa51db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.16.0", + "version": "1.17.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 6a83cf8a5d454b26e3048aa4ca73e44eafca0ed3 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 5 Sep 2020 08:47:59 -0400 Subject: [PATCH 042/108] feat(book/graph): add schedule exercise and solution --- book/D-interview-questions-solutions.asc | 191 ++++++++++++++++++ book/content/part03/graph-search.asc | 143 ++++++++++++- book/images/course-schedule-examples.png | Bin 0 -> 22504 bytes .../critical-connections-sol-examples.png | Bin 0 -> 35639 bytes book/images/critical-path-examples.png | Bin 0 -> 40870 bytes book/interview-questions/course-schedule.js | 61 ++++++ .../course-schedule.spec.js | 54 +++++ .../critical-connections-in-a-network.js | 76 +++++++ .../critical-connections-in-a-network.spec.js | 37 ++++ .../interview-questions/network-delay-time.js | 28 +++ .../network-delay-time.spec.js | 5 + 11 files changed, 587 insertions(+), 8 deletions(-) create mode 100644 book/images/course-schedule-examples.png create mode 100644 book/images/critical-connections-sol-examples.png create mode 100644 book/images/critical-path-examples.png create mode 100644 book/interview-questions/course-schedule.js create mode 100644 book/interview-questions/course-schedule.spec.js create mode 100644 book/interview-questions/critical-connections-in-a-network.js create mode 100644 book/interview-questions/critical-connections-in-a-network.spec.js create mode 100644 book/interview-questions/network-delay-time.js create mode 100644 book/interview-questions/network-delay-time.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 180a6222..d7228268 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -655,3 +655,194 @@ We could also have used a Map and keep track of the indexes, but that's not nece - Time: `O(n)`. We visit each letter once. - Space: `O(W)`, where `W` is the max length of non-repeating characters. The maximum size of the Set gives the space complexity. In the worst-case scenario, all letters are unique (`W = n`), so our space complexity would be `O(n)`. In the avg. case where there are one or more duplicates, it uses less space than `n`, because `W < n`. + + + + + + + +:leveloffset: +1 + +=== Solutions for Graph Questions +(((Interview Questions Solutions, Graph))) + +:leveloffset: -1 + + +[#graph-q-course-schedule] +include::content/part03/graph-search.asc[tag=graph-q-course-schedule] + +Basically, we have to detect if the graph has a cycle or not. +There are multiple ways to detect cycles on a graph using BFS and DFS. + +One of the most straightforward ways to do it is using DFS one each course (node) and traverse their prerequisites (neighbors). If we start in a node, and then we see that node again, we found a cycle! (maybe) + +A critical part of solving this exercise is coming up with good test cases. Let's examine these two: + +[graphviz, course-schedule-examples, png] +.... +digraph G { + subgraph cluster_1 { + a0 -> a1 -> a2 + a0 -> a2 [color=gray] + label = "Example A" + } + + subgraph cluster_2 { + b0 -> b1 -> b2 -> b3 + b3 -> b1 [color=red] + label = "Example B"; + } +} +.... + +Let's say we are using a regular DFS, where we visit the nodes and keep track of visited nodes. If we test the example A, we can get to the course 2 (a2) in two ways. So, we can't blindly assume that "seen" nodes are because of a cycle. To solve this issue, we can keep track of the parent. + +For example B, if we start in course 0 (b0), we can find a cycle. However, the cycle does not involve course 0 (parent). When we visit course 1 (b1) and mark it as the parent, we will see that reach to course 1 (b1) again. Then, we found a cycle! + +[source, javascript] +---- +include::interview-questions/course-schedule.js[tags=brute1] +---- + +We built the graph on the fly as an adjacency list (Map + Arrays). +Then we visited each node, checking if there it has cycles. If none has cyles, then we return true. + +The cycle check uses DFS. We keep track of seen nodes and also who the parent is. If we get to the parent more than once, we have a cycle like examples A and B. + +What's the time complexity? + +We visite every node/vertex: `O(|V|)` and then for every node, we visite all it's edges, so we have `O(|V|*|E|)`. + +Can we do better? + +There's no need to visit nodes more than once. Instead of having a local `seen` variable for each node, we can move it outside the loop. However, it won't be a boolean anymore (seen or not seen). We could see nodes more than once, without being in a cycle (example A). One idea is to have 3 states: `unvisited` (0), `visiting` (1) and `visited` (2). Let's devise the algorithm: + +*Algorithm*: + +* Build a graph as an adjacency list (map + arrays). +* Fill in every prerequisite as an edge on the graph. +* Visit every node and if there's a cycle, return false. +** When we start visiting a node, we mark it as 1 (visiting) +** Visit all its adjacent nodes +** Mark current node as 2 (visited) when we finish visiting neighbors. +** If we see a node in visiting state more than once, it's a cycle! +** If we see a node in a visited state, skip it. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/course-schedule.js[tags=description;solution] +---- + +In the first line, we initialize the map with the course index and an empty array. +This time the `seen` array is outside the recursion. + +*Complexity Analysis*: + +- Time: `O(|V| + |E|)`. We go through each node and edge only once. +- Space: `O(|V| + |E|)`. The size of the adjacency list. + + + + +// +[#graph-q-critical-connections-in-a-network] +include::content/part03/graph-search.asc[tag=graph-q-critical-connections-in-a-network] + +On idea to find if a path is critical is to remove it. If we visit the graph and see that some nodes are not reachable, then, oops, It was critical! + +We can code precisely that. We can remove one link at a time and check if all other nodes are reachable. It's not very efficient, but it's a start. + +[source, javascript] +---- +include::interview-questions/critical-connections-in-a-network.js[tags=criticalConnectionsBrute1] +---- + +We are using a function `areAllNodesReachable`, which implements a BFS for visiting the graph, but DFS would have worked too. The runtime is `O(|E| + |V|)`, where `E` is the number of edges and `V` the number of nodes/servers. In `criticalConnectionsBrute1`, We are looping through all `connections` (`E`) to remove one connection at a time and then checking if all servers are still reachable with `areAllNodesReachable`. + +The time complexity is `O(|E|^2 * |V|)`. Can we do it on one pass? Sure we can! + +*Tarjan's Strongly Connected Components Algorithms* + +A connection is critical only if it's not part of the cycle. + +In other words, a critical path is like a bridge that connects islands; if you remove it you won't cross from one island to the other. + +Connections that are part of the cycle (blue) have redundancy. If you eliminate one, you can still reach other nodes. Check out the examples below. + +[graphviz, critical-connections-sol-examples, png] +.... +graph G { + subgraph cluster_0 { + a0 -- a1 [color=blue] + a1 -- a2 [color=blue] + a2 -- a0 [color=blue] + a1 -- a3 [color=blue] + a3 -- a2 [color=blue] + label = "Example A"; + } + + subgraph cluster_3 { + b0 -- b1 [color=blue] + b1 -- b2 [color=blue] + b2 -- b0 [color=blue] + b1 -- b3 [color=red] + b3 -- b2 [color=transparent] // removed + label = "Example B"; + } + + subgraph cluster_1 { + c0 -- c1 -- c2 -- c3 [color=red] + label = "Example C"; + } +} +.... + +The red connections are critical; if we remove any, some servers won't be reachable. + +We can solve this problem in one pass using DFS. But for that, we keep track of the nodes that are part of a loop (strongly connected components). To do that, we use the time of visit (or depth in the recursion) each node. + +For example C, if we start on `c0`, it belongs to group 0, then we move c1, c2, and c3, increasing the depth counter. Each one will be on its own group since there's no loop. + +For example B, we can start at `b0`, and then we move to `b1` and `b2`. However, `b2` circles back to `b0`, which is on group 0. We can update the group of `b1` and `b2` to be 0 since they are all connected in a loop. + +For an *undirected graph*, If we found a node on our dfs, that we have previously visited, we found a loop! We can mark all of them with the lowest group number. We know we have a critical path when it's a connection that links two different groups. For example A, they all will belong to group 0, since they are all in a loop. For Example B, we will have `b0`, `b1`, and `b2` on the same group while `b3` will be on a different group. + +*Algorithm*: + +* Build the graph as an adjacency list (map + array) +* Run dfs on any node. E.g. `0`. +** Keep track of the nodes that you have seen using `group` array. But instead of marking them as seen or not. Let's mark it with the `depth`. +** Visit all the adjacent nodes that are NOT the parent. +** If we see a node that we have visited yet, do a dfs on it and increase the depth. +** If the adjacent node has a lower grouping number, update the current node with it. +** If the adjacent node has a higher grouping number, then we found a critical path. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/critical-connections-in-a-network.js[tags=description;solution] +---- + +This algorithm only works with DFS. + +*Complexity Analysis*: + +- Time: `O(|E| + |V|)`. We visit each node and edge only once. +- Space: `O(|E| + |V|)`. The graph has all the edges and nodes. Additionally, we use the `group` variable with a size of `|V|`. + + + + + + + +// + + + + diff --git a/book/content/part03/graph-search.asc b/book/content/part03/graph-search.asc index 48bf5308..08356768 100644 --- a/book/content/part03/graph-search.asc +++ b/book/content/part03/graph-search.asc @@ -7,9 +7,9 @@ endif::[] Graph search allows you to visit search elements. -WARNING: Graph search is very similar to <<Tree Search & Traversal>>. So, if you read that sections some of the concepts here will be familiar to you. +WARNING: Graph search is very similar to <<Tree Search & Traversal>>. So, if you read that section, some of the concepts here will be familiar to you. -There are two ways to navigate the graph, one is using Depth-First Search (DFS) and the other one is Breadth-First Search (BFS). Let's see the difference using the following graph. +There are two ways to navigate the graph, one is using Depth-First Search (DFS), and the other one is Breadth-First Search (BFS). Let's see the difference using the following graph. image::directed-graph.png[directed graph] @@ -44,10 +44,10 @@ image::directed-graph.png[directed graph] ==== Depth-First Search for Graphs -With Depth-First Search (DFS) we go deep before going wide. +With Depth-First Search (DFS), we go deep before going wide. Let's say that we use DFS on the graph shown above, starting with node `0`. -A DFS, will probably visit 5, then visit `1` and continue going down `3` and `2`. As you can see, we need to keep track of visited nodes, since in graphs we can have cycles like `1-3-2`. +A DFS will probably visit 5, then visit `1` and continue going down `3` and `2`. As you can see, we need to keep track of visited nodes, since in graphs, we can have cycles like `1-3-2`. Finally, we back up to the remaining node `0` children: node `4`. So, DFS would visit the graph: `[0, 5, 1, 3, 2, 4]`. @@ -56,13 +56,13 @@ So, DFS would visit the graph: `[0, 5, 1, 3, 2, 4]`. ==== Breadth-First Search for Graphs -With Breadth-First Search (BFS) we go wide before going deep. +With Breadth-First Search (BFS), we go wide before going deep. // TODO: BFS traversal Let's say that we use BFS on the graph shown above, starting with the same node `0`. -A BFS, will visit 5 as well, then visit `1` and will not go down to it's children. +A BFS will visit 5 as well, then visit `1` and not go down to its children. It will first finish all the children of node `0`, so it will visit node `4`. -After all the children of node `0` are visited it continue with all the children of node `5`, `1` and `4`. +After all the children of node `0` are visited, it will continue with all the children of node `5`, `1`, and `4`. In summary, BFS would visit the graph: `[0, 5, 1, 4, 3, 2]` @@ -86,4 +86,131 @@ You might wonder what the difference between search algorithms in a tree and a g The difference between searching a tree and a graph is that the tree always has a starting point (root node). However, in a graph, you can start searching anywhere. There's no root. -NOTE: Every tree is a graph, but not every graph is a tree. +NOTE: Every tree is a graph, but not every graph is a tree. Only acyclic directed graphs (DAG) are trees. + + +==== Practice Questions +(((Interview Questions, graph))) + + + + +// tag::graph-q-course-schedule[] +===== Course Schedule + +*gr-1*) _Check if it's possible to take a number of courses while satisfying their prerequisites._ + +// end::graph-q-course-schedule[] + +// _Seen in interviews at: Amazon, Facebook, Bytedance (TikTok)._ + + +*Starter code*: + +[source, javascript] +---- +include::../../interview-questions/course-schedule.js[tags=description;placeholder] +---- + + +*Examples*: + +[source, javascript] +---- +canFinish(2, [[1, 0]]); // true +// 2 courses: 0 and 1. One prerequisite: 0 -> 1 +// To take course 1 you need to take course 0. +// Course 0 has no prerequisite, so you can take 0 and then 1. + +canFinish(2, [[1, 0], [0, 1]]); // false +// 2 courses: 0 and 1. Two prerequisites: 0 -> 1 and 1 -> 0. +// To take course 1, you need to take course 0. +// To Course 0, you need course 1, so you can't any take them! + +canFinish(3, [[2, 0], [1, 0], [2, 1]]); // true +// 3 courses: 0, 1, 2. Three prerequisites: 0 -> 2 and 0 -> 1 -> 2 +// To take course 2 you need course 0, course 0 has no prerequisite. +// So you can take course 0 first, then course 1, and finally course 2. + +canFinish(4, [[1, 0], [2, 1], [3, 2], [1, 3]]); // false +// 4 courses: 0, 1, 2, 3. Prerequisites: 0 -> 1 -> 2 -> 3 and 3 -> 1. +// You can take course 0 first since it has no prerequisite. +// For taking course 1, you need course 3. However, for taking course 3 +// you need 2 and 1. You can't finish then! +---- + + +_Solution: <<graph-q-course-schedule>>_ + + + + + + + +// tag::graph-q-critical-connections-in-a-network[] +===== Critical Network Paths + +*gr-2*) _Given `n` servers and the connections between them, return the critical paths._ + +// end::graph-q-critical-connections-in-a-network[] + +// _Seen in interviews at: Amazon, Google._ + +Examples: + +[graphviz, critical-path-examples, png] +.... +graph G { + subgraph cluster_1 { + a0 -- a1 -- a2 [color=firebrick1] + label = "Example A"; + } + + subgraph cluster_0 { + b0 -- b1 [color=blue] + b1 -- b2 [color=blue] + b2 -- b0 [color=blue] + b1 -- b3 [color=blue] + b3 -- b2 [color=blue] + label = "Example B"; + b0, b1, b2, b3 [color=midnightblue] + } + + subgraph cluster_3 { + c0 -- c1 [color=blue] + c1 -- c2 [color=blue] + c2 -- c0 [color=blue] + c1 -- c3 [color=firebrick1] + c3 -- c2 [color=transparent] // removed + label = "Example C"; + c0, c1, c2 [color=midnightblue] + // c3 [color=red] + } +} +.... + +[source, javascript] +---- +// Example A +criticalConnections(3, [[0, 1], [1, 2]]);// [[0, 1], [1, 2]] +// if you remove any link, there will be stranded servers. + +// Example B +criticalConnections(4, [[0, 1], [1, 2], [2, 0], [1, 3], [3, 2]]);// [] +// you can remove any connection and all servers will be reachable. + +// Example C +criticalConnections(4, [[0, 1], [1, 2], [2, 0], [1, 3]]); // [[1, 3]] +// if you remove [1, 3], then server 3 won't be reachable. +// If you remove any other link. It will be fine. +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/critical-connections-in-a-network.js[tags=description;placeholder] +---- + +_Solution: <<graph-q-critical-connections-in-a-network>>_ diff --git a/book/images/course-schedule-examples.png b/book/images/course-schedule-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..348fe3de7a232c03bd2ebc49c263b43e2b5accfb GIT binary patch literal 22504 zcmb5W2_ThiyEeQGNv6#6Oh~2_nP-s@QfVZaDq~Tm5S5TANs>&-P+}!S#v)T@i4a1F zWXzD^KRn<5zWsiC|9k)YU+??8Zx5@r?)$pV>pYM1IF9oUF)`MorQ)O_5D2t~^mWV# z1QKEV^Nf-dKVjR`asmHGVSQLnhp@TzpX9QP7y^Nxa7ahf-1Es)qL;?e+SMgdfm`&H ze;JRHuvL-^zRG-geDe62D)H}u$KG}wf5GojRrnx#DU?<6r{r;6H{G1$SzM>KF~<gm zGLoC>6!O2&3W$mtT_0X(8r>dxNZ~N${7M*iv)9vLujL<~;`hzd91@8kp(GDfwMiul z&{(B5aipg-)*x!~E0EMs+#Dol<{}Sd`v3VulLtzF$CCWZ{WsMPrf8^DcM~ss$vM50 zGC;9y+Ykqhj&Y0EM8p;AcmA6jLECq#sH(=^qe@lU$*VHHa_j0?vzNE`*RNl{GwmcF zO8e)HWCTxd@29Fh$9rDzi>K9vU;g#AVE#wb2LblG+$>7WGx4;fRXfDwDal2XyZPy# z1Xu@YxRNpvCnhIjyoC=OV56=Odwq4xSlFCdZ{=L6r>0;uB}e0Jj_CPs&yzbQxar1l zu@Ciy9k%uH7*=<+x6dulULaIrb!_`(_V2HLzq>@|;K2qPS-Rk$)TU?8gb5nguKmfk zZ!y{bf>K84O34A;t5@d>E`K2q7#J8PzvSu(bnPU(i&hYbHHe9cQB_f?+&safV`L@6 zuBN6|v9Y>`z`u7dF)fWuNRRyPul{$}h4dn-2c(J5($h`F9*}LPBM>5Zltoy>LL$cf z7h3MQSM~I85L&ysx;i^=MN^-t`7t``F;d5%qME%kcqiYv68DL^Xrcc8{>zsxy*g8@ z<*q|m_<hfPXk~tkK)8DK>b`yZ?wz6U3166-yRV*d=hiI(LB#lpnEKpwzcL}fLc;ja zq4@n58Dr`@KY#YPdbKy-KGIxVS7L3pmTzvpv7te2bL}cc(D_T3N*vl!i(CfE{nnNE z`2(t~EKZ)xu^<Mvj0v6a@at@@uU{F7Il@juk!ZZMwA9kj@Kf<eNlD4)7blbz6il+r zu}X?pe~gTd-dK=!a&$B_GCKR(W(R?P|9)nI>+;Odxi{R$7n1I|KTl5|ZBA6)T>Vlp z?yl4xUmZFf*{Dj-zV*tii?7?~aQ*)M`$|a<<Ki+hGHQohPn|ktBYV=v=kKGv7mO2? zcBu=<$*~afoO%mCe*B0lu=HEGZ73qt(s0GD`N<B#qkZ<q&d$z<4<EjAMV4UovomX- zeY5Y{^4_Ety;H6TuEgB$t_t4X-WO^k%C7%Dhc_A<N4$Hd9BW{7<j8N|i16_6HKE8_ zE*Yx;T<U0J+={PST;t;6VtSjy(sci1u^b~K<J$UqbkgL{pKl5Zb~76o8HEc<uC&Q- zCp>%h%(s*7lYWcQ(A3o0-`^GfZ#YK9UTstC4$W!o{<1tf{O;Ltk(flqs}zUsnTunI z>Yp1WC~eBi$$f5V$(@gmilTRN`t|&|$O?mSL7cSZL%#Dw3qruXdo(KydU|^H_G8W0 zqTF(7Bl#L5Rc@>@6Do&Xm6AFX3+i$vszaFOgg$@%tfZtQbnxDI%5EFko|&N!2-8tM z`<AD)gzn<2_AMs_lK03zik>!VYipbR`T51~ip{4wf=%)J^n@7~U30iust>L?*qE5K z{%A^QNmBnkI{LY_m7a^Mccm!l#-E;Fy+z7=L#_%uJUrXBZ96;V?pIw@SU7#9`s2qt zwZk68I!BJUbmyI)i^L`%sE<5V$$It5&n44;ZFYOS;l@;c%ZT11Ly@o=@8y~Ewzi|e z8<iPHlFB`2t*85n=Y;f+m^sx7%c%*SO*RpWh=@>Mo6&Z4ok6twuZ*&7lQw5fw_jhn z^X~fZ@+D74$El`-1HW;|7RF6wS2o8hva&9Id3Bae>P+U#mpV^5=#gtm*!RlFL~R<1 z#1y=FGwxopcK6}Khik=J5z*16aYC%DtSY>@g@s)W4cU#kx3mOgjTgTanMt23U2bjc z`VhQxe#KW+wM?p(nu=;;<L~dbG`)%?ao_PIjum<wcv0gg%agekf`Wn%N=!8GR^*cq z+B-TD9zX8u>nmTIYZN{5)P3WahK2?%HI!vfXjoXfSr+a-GIBeiuC@F4tCW<Ku*9!l zPZ0uc-_~7<@o;y)ckiAUvjO&ci8rvKV$<iWySw`n1vkMxdtNlI4EWB|nhYl-P}o1) zPXDF9LasHCKn&+roLiXan2StLPq*})t-+4^O|<Vid$vD*pMBTo&jJ<q^@UHKJZUI$ zb@AutA3uHwGvZ*<Q?`aaD=SkK71i6=tFE3@JM5<LWZE*7^6HOI3}H2AKh|!{CvA53 z_WF;PoxF4@J3hYWt=n)3_vZI7X#yd`I8kf1#Wdb8Hk$YC)iFAPRcEGY!?{d;@_`<l zSi7dj1wKpDDcZqG3JOn@uSe7lZ=;|PbeY8-tgWqmEA?VxV>@AKDNRr5JWw9~eeh*U z$`DS%^gzYH*RPKg61W%{wbIR&rh4X6=8=`uTn8&{8y}u6^DfBB$|4f??%j(7=HFL* zRrL1U2A!9gS^I0-#u7gJ{GK$uNastJl>9eTPWjV`JNO<f5n>Iqtngd^uv7hsidXx` zj|a01wl}17x`qY{$@C{3DG8w2m3ykdz)x6R-Ew0w1hKv+rvB&8pYK0>_%$_!BQ7Z^ z87FnN<opMUky{Kx2i<qyeeE^>qj?~V5P;(#WO?FB`R0a?u)fWi$)0@s7||nkGVI7q z<>lqqe}B{U<6>j`QX_k%G$rMHe~E{&u`!|&yO89!IuXuw;9D;x3k%C!W9>bTj+GPG z!o={?r%wHO-gJ{REm}rMb^o>y9cvkOZaPtMaf7O*y|S?fg$~KumVB)<b8Qj}lX2|M zTV3_8seO6(dzzE6V6>T;+5Th+Ez5e!K&n$FVI+){&(sN9<zC01nM;=GcYTcLv17-C z8FwowJs!Wis=O{N^tQb7IFq2z)+;1}bWVNs(81N=L|Re-^8Z+PL;v5Z@&Dw9t)CVh z8AF~u-+KMPfn^N2)iM@VW380<DlIMT#f!@}Ha51lw$|2K?vK_Z{GPHI(I;r|*VWg1 ztuE}2Ym^id6WhHzD<@}t+%IQ8XA?3@PfvW4UB1Q3AskX3CFb3?C^fe|ij!J6Mm&_> zJ~cJ9=ftaL85v_EBb2wbn3$O46Mp^p!OG6=fNybfa=Li&BECx`hJ%LUw${bVmzk(; z|N8X{xgXg8TbG*p9Xp9sf|JS?qJ!P~_U+ro#>PIoPkBW}qN_)yVk%1)GzOSXA3xp| z!XzqnuC#7=mV%CZd~A%3mG#Hu<lnaatrPCgx=LeXSzc#_auY3{#KpzM$HzxUGw|?~ zc`yD%Bz;O$zCQcCrY?d$Dw1@5&h0_AY?jt}gExcoD}Vp|LUku2ynXkswz_&N)l=(f zrOY5<pFe-z&d!dR%J$Dx4{pOk!HoV*;l1~ikJxG^$gGFwSCAa-WaIa9V$m|kyo<yH znW<WyC<Zx}O-xVw{rJRT!?)v!>1kqBsl$VAVaEE6^}j|&Mzl0EscC7^lEyP*SW(<3 zf3!Z15>j4;+n-l=tb@Fw7u%ZX)vNJCpt>(FPcm_G;-qtOaUJeVo<W`2%9%4m+DeJj z6BET(MjM*{-d{Xmb<X@CPmM@S{k5s?p^1sC7cc&z2)=!*;NiLSeQ3ySvMXonTX2{^ z+@ZyV^R_Vz(SABCZK_NxyYcs0!-L%@Q>TlZw`#Mjimn9WR#+GZHL1z&@9OHco)fzH zH@zlQf66UbnwswQ_}PiAdihdf>d&*uU05X~i`m&(Q&Ur%s~tOb;Cgko-<Fh-&P+aN z?XxnMUQtm&B+jn?T>@meOP3+4FU<H_)WX%(70EN}Xa@6ucWw*Gd?4%3_VAalUOiRu zdR<W9VQ2UJvAuco%ai%9kXJ?<VrOPtIXIOKUI@rYi>0z!U%q@fLCHfr)}YLH<u$gu zZAk29QPC0tDw0Q;m5E8)U1FSUK2YkCK;hlHcjxBjE`NE2z+m7BYd1`gmlO~Xke8QN zRZSeXFroOd?d)B))0Zw?vbO&2Qn4;?RY^#_U>ZF$GXu0Gaq5kJ)4;sgwolYQ=_TZ& z_1|3k^>uJ?u=wiO_dzLXX_wW7iGv3Z(okIZULAr0;BXRoG{8ixuh5C>6h+9k*i!z} z+^7wwPxnSXy=Qu<Q(T%n%xQCDU4_>L@u#rd(A>;>z?nO!N=!mRLQ>M>%9XkKc_1e3 znzvZChmxlOg&G<fO!n$aWRC2Tl{FKIK@o|38glkh=N@T`mhF=yNM0^370&%iZ)pBZ z;lSfE3JMAY^s23i`T6;YiD!L$l*OfPX{D5vt*<Ulni55}Zx%<7|G52OsJpv+VT!J! zlRh?Xn%>L)o!7jbm)8o)sOwB@eEdlh6QIV-7cauN+uGYt<ymR!>eeLrZ-j(Wi^p<u zaz1|Yq_3^*W~gRr<vwY`-_Fb<=k7B1PIP3{M(|92{~j2Wi?AXg9E{-ZS>d0X&8^tb zYCP=V-~jlAq~0d0PwDw%+u(gpxq9ko>vw2fo*jxY*}IE1?5LTUh|%L}8(9wzkN&<s zoI;^kgHcgt78VjhiAt7`%f+y;Fw+ncf{ayVfMyUyf0+-PWYDbu>vJP`k5Q6Ze`{-$ zamL@jf3NdyRtm^ny3h8$`naW~rJ0%RwJ8hpmuKHybJ|#2VG=RKvcJsCq@<?CrS=yM z`0Y_A;aL0J(J|>8TVAe47{rBURtLy9_r3kQ^gGRg-oCYoTI=xP#yCsA;)@;6v$L~5 zefk8Lyn{&u`IWz-MpW)+)Yi8h2MDcyl9<>gi-c9=Hhl2Hg$w)k<zo?0uRU9ysx~z> zsh$yxsV5M|k2`b9+SH--G2MT6U*_00LThK|8^G_`;o8Z`$w+_?oM^#lho;AJs%HYd zFLeq?>wN1W5RmCJE&c-Vl`PaLavKBDXljzoF~mD{qW-OLj|i18MWapN;^Z{J2ao^Q zcJp9bILE$&8*TXVuU}VDr~qaOxt*EX=O`1HB<U#$ggKJTbM5$goEU00Df8pUuRWDQ z?{sG^KxO&_{;eFhOhu5fsiQZy)@c3m<@cO_N0G(>X-Zto*=f^%L3>n5|9tMdd=4%y zvIV745)u+3k+|phOED>_gAEncwY5Q;16(A8<-dQ)2)t^(-7DfF!=g#Pfd({`w6wH8 z^ZZWQZmsswqetU}5YYqzH8pj>iLJZ86+%0aiFRx8+XEfJ`i2H;+4vVHa^(*k&@0!8 zc5zSyF3=99Q@uWY#>eN~T6Raqk=~vj#6{WC-Z~^m?V_D`_KE$_HO58)ON{W%&(C|Q z@CJV%zJ5*WnSPLGPU}%O#ZF$sv^HLKzdoO%$ZCFmelFiiL&Cyd<mR$bk^?bqEPk<6 zPSO^ML2>Nt?q=uYTm_)NbLY;n7styyXTKww(%Kx#A~l<lf1?CLZ!j~@3+f@uzQ`@d zv3GWI!Y<J6*pXtE<@0As(=Y7E|GG6JJ-ylwAINg%BzEuKJv20gtcqd`q+VZNUsY8_ z2sjiYQa|tz4c51J*K@P7>U(;6s;Y)+!q_GzCU83kcM-_r4gU;Qk-674xlz=V@-syz zsd!o2*euMqsJryNjjp#@U0!DA;u<LNX#Dc!gr7)PmT6q6l`7xM?Wj<w-8I&GPf_gH zeo`qmDJe45Xl?A^`%*D2z634~RHS3aJcd8gl3vh=!y1Qk%7r%BG4bf<26$Cb3fBA> z85tQK4x-_@M2L-z9cxZJUGA&cc5{LC5!*d}Pu1Q?^^HdlAKvLom9_49Z5xLE@BXgC zcj?HtS)I!Zup+K3FO!p#zdT)JtTxrF=QT4}MZ8d3=-i*3mWG@zMwk!WR{e#)r^tmb zvNkL<R8WcjGYa&{QqNhmW^57`8txLAs3uC)VNF<J<XJ#uqeF)Tlvs~N8KfV6C^0m@ zq8G{g`Ch*RgVi|`J;|Rn%}MI&%E~_V_qVFqxbf5XH*?EZe>TMK!3U#{(WwoTm60CT zT1%uo543Xg=1ou+BEE__-|K8%*VWa5Z+N2Q(a_tQFzzZt@?)EBr>>)otm5w77f~9H zW*Dp9Sl!<?<jWnc&&<epKPoEf$rF{!T@tAus;C~ZF`KdxNeIBdN1iAUFMZBNWufJg zr$6^JeLIpqTHwvK`Ig2wX`%V|``I6{y)hBO+v{xRUY&hM$E)%d%{3oi(*664sY2d6 zvDWi5GY+5`0Ew|0A#~e!;ubZ_s_*1E_Pl=bg!`t(AOIS$H!~He5k7;%hsj7u1OItl zxpJlRlC}nSfY-#XpJMWa0N_QyXhXwKpi;UW{~#0XV%%|a7H7_>JMU(V^%lJP^Q$)` zBxL-R?erc%H3~TvE`rAC(>^FNw{PDbu8rJDOKVHC(2L-%^4HSV)zvjOe-IOc+}>X3 z)Qg&oF2yxMGbg~yl;>p}OY-|LHtB~_XARQLj0_FSSAK9w#f25<Me9F!{FsxTJ~=(T z#zyw~bYIWcub~AUOM#n=Ts1enOn)*imgRfcwI*vGI&^4sbTm3TnoatgO@7a-SFeC; zii?ZKuU%O7-AF$ihYtq}W&i0>TUXaLuokahzrK5yQYkSaRj7&ZLwC2ntnD97S}H11 z!V^^=)_hO32y^kKh6eOGYqzP{upczEv}L7RuRA;Wn(gv)a&lr{gJ!ZU^{g7b!l&Zt ziY@s5-8#iY!Mge`zym0-+Nvs&1a++)YG2V3?%uV_7JZol#UigvQzI5A-E0En-d~e* zC26c31rGuZMST8w)z;QtE$%~`irRAP7CA3kS(&|iIb>}pW9r|arsw5>SnF(SOX-*Z z6XC07DZx6wvIblh8XEfe@nftlE+blBC&lE<*|Y0wYa8po{ZF4fSzJ=WxPIb~YF=Yl zZtibDfg8TQo%Y{jFD<ANJ?;SN_e>#mkq}VY0YcD@pDXuWK}y3NgC}cu*dK4$_4TVb zW5~kdBJwc@%^jSE@Nn9g`UT)KH#hJo$OyU*tsXplIOnNCv@lFr`1MfW;nR7uqenaX z`XrdC(0AdAnd`&sk`*`2P%@BK=LE8_#Ue3Y=%~}}TEF)6%zBnKG#Ge{XF5=vooh#n z-R!%uGUltsx0HN0#f2s+Q{()30fI&koxp7^Vo_1<%a_a{I^EUVCMq0Wc4G}_XlSBj zlMT*axS*Y4($LsQyi3)d)Mi0c_21~LsnNZCEC{^Kw{K5thZh$^3G^P?7ix~1n?IZT z7LT&MpEG=h=MF#TosXe8d3h$IMj!Qs?*|2GJ2^=X{e7yje@7GZX}l26F6ZJ-T3C!v zOjIRsk?Zb1>IgC?&LF+4FR;I=Dg`xYtn9D=eNCGo5$z|a$(v-`|9rd)z?_mIP+F|n zs&%18-gQtzJof8hWjZ=KFoVC!<M_x^Njdivp8F%ffB-<q4JjX>6vutFJ~ni8aTx$) z^MB5)nWs%wBNA(X*h`sv>(6FrXvj`;P*-=Gco+XV2Q70iz{ECE67hb0a%JUrB_&GB z&9v=@_nSD@G26VEcKnCeR7#|CagI8ddeeH3xHu{(P>k5uH(1V`oMTDfoubO`QiT2j zEtDx;P?(pOY?g(lcKq?}g+2Hfhw#7G@8}4gJbhXy>}^{C&4ju`a<})sZN=N8?#rQ0 zYWB-MOG>_Iec8bwGdH(3)q3Y`t@E<+_ymK`LO~iM4v)K|QuI6DMN<NZYo+9sm-A8& z(}(MIRBvrWMuxq;eei9!vuDqu_$wHan$prTC*<evyXGT?r9U7iSH;#x&(f+vJl`3t zBO@;l3MS{(tB=jwbdKJ%KFSFq2N7jmWDvNZyWhYOP2J+;7mKj)dK-iEb}WWrna2K| z;f$x<+=x1YRi_+*mXP~hACad@aPBI6|6WTrUd409>Lm~EujtLz%jy?p>LE092rh0O zo{RfAyCSeP6Ykz<>$)QNAKy9{LL0Wbj_>{Z_o>gHQ#6a*6pJ_*g7~4I+%B((G6FIW z`&(1XqeIrpO{}+(Wqu*x%gh;W=ior;bDzFu;=|wkkectUttM=2Y`A;;FAq=R!-uRY z2WY|Q_^!<D>QiJ$<-f690VLm7=Cd?XA0rzN&JER^j4bHUqetgI+!2_&>gKjrPOe4@ z#PvML&8{zB_Qe}cl{zr0@czzkQJWke*HD{V@fDB#`QwL(dew&yLW+v<$>TB^JHu!R zGQP_*b8}a09%zZj0!$5*dV%{sD#3bK_&zWP8ocvkiCQW6DwF|D;_kah0{X(@Vq)XI zQH`Sw{!i8Y)uuIv^alLwP>IIdZ^zWzXr-74Mn~yC1CGAH699&*x5#B^&Z%arWCwfq zBPl8<u#b7pJaY*P|1eZ~UHu%o15iKV?0ZQk2~p0ME?f}mir9Z=8#Qa`^;5e;bU61~ z-%3jp+7K8zIKZ0l?%iLX$iwOFV0v~06U3N9(F~q3&Q`c~?b?Np_XJ|zZ49G~OP(uz z6cy!~<`UL~Q(tA}u9%sV!^6v~=FrOTYb_%uhu-voLHhFB4g#y>sm>c!Ddysd2V8gs zW(V;lTxhWJd(P6Ci9L`!T{y@ZgicaN&}(U$$C>x9Qok<NWpr%J{^G?$`YLbRifSkb z?21=x#&S}`m>ZB}XSsQis?W=?=ZR)1Ak30{=RzJnJU$i_#wsZ&&f7OWZ+-Rp_1|li zIT;yj3=B7~(ujzN%rrk|MwgnH5qrOW<Yc}b1N%<31uvqT0(WsY!qM8=8ad82qN=V= zpPwFQc6h4jw=7@<u-k||)os}utL~ththL|YRFjsMPY9=Riq;nviCM|@U#H$=$KS29 zk?l)1cSF+9&>*B92+={G3FX7Hb*$$3ix<jhf=9-%XNZ?UJ~G*(G_MFIp{Rm_F(mFD z9vMan2i+C6-iv#cy9A27r^jpP{cW8ZD;pbfzTOAcD6hb$gaGu(p!pbi=y(^>i=#pQ zpx^lYt&EA19EUz9CtNE<hMi_azzKR3xzy->Sy?Ul^HZXm2eJjC_0f{!^{vcDG+O^) zB<~Fn8C5~s5tK(yocIFdg^FBVeQR8XsAaT8e?Z~-Gu|d771ua=B}v`?+_7Vy=P9dG zb;D5iFI~JiF)~t(3g=jekjXSnbIrU@P*N?_B-S%fk}E1I9!XLgy;2Omeb=sC2<!f_ zOE;GKuP3Ub>LKIcK*}dHSrbwC)!fHTrn0BMhj@qNfCiD1TkOg?4P26yoBO4$&CSCD zkO!1A0uZ$XxE-6hpA(Qi*f`_5yF2y{Efp&Z3!3y<PZi$CrL~oLC<l-$o)d|tkRKMt z+fWlbo*QxPv!l7DC={(vLy-m;laxyUf(6t+@#@T>BS%{5>lvtS<HH^0dz+dhWn}2< z0g=)}LUy1?cXaeZPkStP`Igps016zT$l4bGM46eM=%w+i@595og3<WYqM{-&;P*K8 zP5t^6vcYsrPqO+r@I5YKeyl~^cexd>FJG?XazMp%(`Af##3NavQs9;NMW=rEo;{7& zicg<Z+`j8LI=&1KZvtt<Ds@HyeYV5~6-7{65??QnmN5wS+3&i%kq1!m)YU5hVJs~N zo{kdz*1f52Yh`qh5U^entS{zWYOLMPojZq<0%FD8eF1!&-aYocSYmWILdu?tdu<y2 zP0Z@trOF>`kZW0?hR~<FZEa_V_Ve1}&toYjcOR}dgVNhCB0>@W_S2B-pWg#5WAkku zrl(IQL`Ms-hPBE4{Wm!&dD7es2(kRe-zaJ2>(`f%-=LRR59y0BpDXj0laK%kyQh`% z>8Yx+q$Dl19#v`}D<xAeh~+5LYEX>AA|iza1u52l(nfy#xO4k9y0G}ikNq~+mk{aN zjjuKM^^Y9UYvT|68XDd*hMy(W+q65pNls4YI^aAwd_s)*sp3^T@JC<@`}@~{8qKnp z`MxBYYEqNatRwUyIpuzK98oVI61||Z%?(8Mz9mil^(EIb`1b8}GzdWyv<8NTI=0Pf z;Rn;qvV7GlmY#QVXPK`KY;Jr(XZY@SIl3^fW5-zVcO$Qh$A&s6A2_h}8}x%q3k#pn zSJwKtR33B0#r^$Ku_5Q&r$7-jJKmNC3V?=7o~DH`@+dwYj6}|xH}2?^EdAFPfn51i zy*qvKX(+UZYqpLaqEha1*R4BuQ11{QjB*x;pc%k=HQ!~>F+SejkXOx`lHzB#NL|+8 z55>@=KzQYxF1maFq&=7lZ1M^|2*nbg1q$=z?{A$K3%h~V(1w5$1s}wx?#Io>mO=Ns zT17?08EijdRefXm0u(W5heArJI|F07H`bkBlO+CcFTijAzbh-n@7|4#jWH>-4438g zOaWS<WL!krL1<4l6{S6W`c#9zwXXl!xAGgxwha%)$H#G5&oeTvbI1#`GKOq5Z%Iil zcKJ7M+!+4;{cgngx|NhX(k3r2FD{pj?K;pas^v@7Y(j_*U_uEb8;F{J{=9nm(!42R zi%im(|FbJ6Gjrz8A1MS?L&K>GzcTM~Yx#Zq4jUP*xA<@5yA6Mou2?gpt(ePWNwAQh zqoPvsTU!POt3W@rXn6n0-U}c5-d#T;5`*Y__3W9>Hfkgn(1jnW|ICdx;;%>7kASEW zBCESZ9inpzoE9>01h=BB|Aw!}3-3EATWg7TcC>H3>^?oZnJB~znh@+;1j-mN#j!n- zuOJH_vPQ!AcQzI%9~^7-zY?-D=hSYcQQxudg)9UjcPrk}C0-cY=5a4PJoij-YI?ey z)7SkhT|t-bcOz*$H%>%vCv92YSHybV+s7vf`5G|<ok^#5PCbvY7eQ5U<L@8**XXGV zhY(x$d1q%o$Z02X&*>gKDDIOZ5+W%mm|9x8_O;;h&y{EW`>=P1_4V(Dhl9HoReI=O zspANcb+**g&B|&JcS+2PBtsXACKYQ^0jk)H4b|wHyL;wPNAYV&CCHx}e|lZ!3W{$; z{5#=m^sVB&U?H|YwB~ztwT{HSia1CeG#s+z{rxuRhYp}4L=tT{5NJYfljUidt0%}9 z()H>r7dN*GD5u!)slMVE9YIvwtv;c-Rxo5c9XCDI?cPEs?Y8F)$<l>bdmy;2C0kyY zJ8WQpjUa*|lqfXlEx+NTt9#pQfU|B+5oyd@#`CrRrXO$Qm&PVW2uQZF9Kjz}#^bwp zwRLxUHa?UDI|RLD{M2!hg_?&^QC3b)W!5!Rost!C04w*n4opL9=szs9^pu2*g8!%( zOOi@fdb)0k$?8I)k$CLK+FEQ?dvh}#U*sc^y(%hw@84Swl;6laeVp|{O&1E<+VU)9 z!FuZ0^G(ni<sG{N`mf!>a)7Kp_ER9?VA|q@axd1Tv9ZzZZwWcOXtY5(I4}`W(LIX_ z0o%mFeu47L&ds%iSE0nthcG!xDkUWaaHi-r_w0L|Nml35bWX<!g&V62hz7UbL~g63 zYE&IW44~qLpQCBX5{1gwrxlcy(>|}$ht+@-ixDwGzXA~n3OJ~<Du3!QC`3RCCuZjX zmRA=XMj-ouLcaB?DK#|}j5H|F_6c`?|4o!^_g_n&0<apioX^Y|i3D4ss^<)$CY22A zPJ+7s#;qMpRMgaHiGbx%+LwM64W!yyYJLpoI&tPqUu$df;EIiG@o(o#NB<#|1D!{= z<Zc|>D+ot4I6#NMIiQwN7d6^y^f(SU_d))cUFha{Q1fSX@iH<xGwtfiic{ZP>|yt( zPgBsh(f@tRw?6{6NvM=sLzI9v92s6-#eri>6Uu1a0ra&Ggg`_>3~{OZm6n%pz_Sv` zr!IxadwDV_H7pVgaujO9@B~p=EG#D_g``GxSRLfB)Vd>Ga0j>$+oN_bH8%unma--~ zthF}`nPVsk$!!kUifDiLt5@?23;pIs4taRUg`V^N*x6}5TfXC9vdTsW$lvcDoYBF9 zb&@*s*5u^L9xp}^JzS@xm`Qf`y;v5OfbMvF-ZEB;pPukWPXdYjoy2lpUf$rWC$JRi zx|q^W5+u&|8Eq-P_WR`J4-!Xi{HtUiohk(pi9mR=85=E`&te%X5o_?y<wEZX^mY`4 z<aaKbOOkq*E?*`gpumfHPsHE3L-GDgY}%SSgu3G=P6UUdGq@ic3yKKY!pYe=!dFgk z;GIIynr`TkkFol~XRobJYV-5xzqx<66%M75dZv}ywKZSfNZ4Oo-{p`HkQZ8ialIfk zSYIGoU|kQ^Fuz`$OgP~3{rmTylat#>tAK`4^-h@I+q2E=nayD3O{%8@88!0g6FI~0 z9A{)$SXcmW_yW2pP#??*@R^9mme{xOGN1K*0M4<j=)UyRWC?kj0G1r*a|Q+mo}LP_ zn~iO4djUVu1QBE|wm*v&(i0q8TNz8LbNrH>Egqs1xaK=EsA*2B@fLP3Y&pxoz3d~` zh2Ua9`7_y_5M-!>T?>hhZfjBBEJY3xiJ2H4zToKSJJ}_P09}c<5H%HvN%?DLu&7`n zVYmWPl2D1$@j&)PGkgygr%(F>=!RO}kBb8qz50f<vO@ndfND;T<j?fP9pv#&asP0@ z-^1RN6c>AWdUC7zvY*W-zk<w+MFS?=;}>EgCTw%$;2Y5PIoa7IZo?F9H<LdiT^tPO ztg*`vp(R`Y){J}%?hlyv=ffRar5Y#1WbGy`fuEUbwkLy1=*g2OzP`RuH!W$CU%#G% z@8D-%1jh{`ve>7-zAdAVUcc<d8Ssucl<=$seUH1VBba6WHRHD<A%M?+jUlU3$DLm+ z&$f{j1yMz`)}L~r=3rVIJOCLm4OMJzaCr=S3er;|i`q9onHU{SUp`j%{ju5&dosfE z|K^=v9g+S-MnLyJh-?H+=vZ*Bx*<i=7NP|z7#y^EBDy#Au#OISWNmMmPm$RPfz8C9 zQD4u!hJ%7Pl8uE$*PTBb)%7(5fGyS9A}?Uvf>5dNSoc;ksl^g7j4yE$J6691p(<~Z z;oKXX?e6Nrg?5&5=LmN9^!ysA@COh>p3|vKr83Lf0$jdon?Pfi?$f<Iw|#H?rw0!n z9FCK^G2e86y|^+0O$8DrgwEt-e%oBMfV!bkmk9vymicx~pw~B6C#4~2KK?ge8#hmU z^G0~9Ue5HtNJ<*Obpjr5BGEOhHdpr{=wTmQ0yZ2VUI?a&gZW61DNZg3q8S_}%}-Sm zW^9{7g<|TlkUO~*Tz_`%c5!h@{jkE<ZS4LCsTx6y1|v@5q?YG4N?irF@73_mfOmBp zZxvu!<u%JP=cjkL-(6>O1za$G1*ePm>cT~Qf`VYQ7{q6EzKV)o$ZI;m^Zu2-$4&M1 z>!3TXz>i}1NJevZF>V<Nje&)w0FFBN<A4dz6a?zl+0{H226tUp_y@OiJm(Y(H+Ly4 zB_12?5_|T{FD-52o&Z4ZeVRJDXXerSrHPEBEeVB4Z2RzGcxk}Dwkqv)sqadAZ?6xe z18|-ZVPQvCyh;iRVhu%x3vKs0N7avD8F;|;Vu#QYWjoCV$^9$y&g<+$w`ZI2yls!; zHDlvugfSTz8CLwzGO33m{11RTC|dXfnlEhOuW&iFq+H-FkqefY`TsXf|3Yna^*?d+ zX&;*h4=5%YXYeVw4&o%h5@1ENNRW3jD{UpPf~g!Cv5`+GgL(&iyIWK=W2vTh*|+@W zO%m~;EK&4;NH(|z<!e(``91Ksi53!cpv2#y<+70If`$gKP~xLUna%xFr6&TR%&B|L z3Cqj>X-(0F0EK?V+$-ToELvtP&NUB@bvTu9Xi+bP1O>e<k3sW9{k1afIFSR*@LYx8 zjq~S+pj~QfYoC<pLR`!wIhdK6V&_IjMi9hXB4=r-in_Y`lM5!Sqz})+Cj!xU8hbk6 zzqyXTz|GAK)1lYOoGtg$(&97IfPNrrj=wsi2w;rb4r@wUL9ONC!(ry)pFN2JK$^UY zSDxkNxlVNxA)bL=#9Gv(&>w}Wh8R-3@R0_8f;Dk{=EF{O%v*jhXO_1<Walq)FD@(~ zreWDMeyUPGHV<{=k>QW_^uy9;OFG-z15<@iWD*j#RPqxiP8>K;gbf4@92*xWx@*^N zxwy@=nHArEnpx8~SwCnv_iq_$aC@?{bKh&i(5Qd@EC==*mfEIi+iUVkEfww)?fCe3 z!yo9t0eE1(Jch=IfuSv!llukZ3Ka}mW58A*RDl?ApuubSp@X-P^@0xsei_v6^Z7k+ z0Us}<@&)$L)U3jSAT%L+_5b)`w|#psbO>&QD^`PDG7X_OEm~9{WpU~h6z$nwmx_NA zIDp*ID_nAL7>9;3Ix6S8>?)stOp^1!h-k6)y@pyU?(bk#P-}HH-`8I0IvcECf2r5} z6UD0!616i#V2w~je89hpmz<m&2L}gQxnjTd)#?6s5RPIEcw}wv!U_ldqM$%dMh0eH zW~$p&R+P8j7Z%E=m~;bgfa*PYa!YT(eG1j2I668)cqnukn1-JC;k~9>(g54_aUE*e zcyJYX@$m7rj9%F%D=WKi9}^>ERBSlVy!IU$(99rTfD?d1vD)rRXF<OF<AlN|^!1&A zRR!M!hT+T^;1*DZFJ4SqA8yRIwKdvK$9`jWTbsXat_d5l9!XMX+Jg}A=g%KNLC9nX zH*ikSzfnux6&J_1jQuZ02i{zp%(Akw8`XCi5N~KDLG4)+Ega>!S}qw_6W>B9^8eOT z@?ndA`jdU^1?=p!v@0tspqr46eCK}{+1dR-pUh5kM_>4olM_pb&g$wa0)mF(LuF+p ze4q6;-kzRs-@eVWc!{$5b9_9YPCxH*oT&wSa$6;cw@tU~v}@LrG~oxqyy7*!@&;jJ z{CNKaGLUDNz!a&Ob{9+$nS@SO+&vE5ipdZ#D<c=z-ycm}y9^bSNS&No+ela?Nq_xH zZuvH_dWj*k`E5xFDFLT@$Gw!StQ{+NL}c!$X=-ZTY(ML*rx$R~ywS$0hAO~?R)x8Z zoY(^moShv83<mZO@EHv{88N&)^QztY>Xp@j7FmwvA6$7JdrC})f<*4p5(Z)31>8t2 z4XgPMmfQCa{qIQ?pFf5Z6XtYu$&EB`#~t#{lZE2lckVXT)ZDIA?nOIrNSKkiS1$`Z z*3xuhyLDQd#uD)rkMio1Z~Ju|o12@-)$--!<vH2et%`DsK30xiAt7WNGGB9_^41X{ zb8{PPl-3+L8TV4a`l^SAq_lLc*Ph*q0PDAYN41L%UMa@rWxt6HqaH865ok`u$fRk( zJ}%_pjL$~PVwUyh?OS&LFOb`W8Nq%BifczxMnnvj@odjx=2oG6D82p0`K3d&486&k zL1N5Q0+CMmXhb0A(UI*(%{fAKT(6K?&-z4MzDPnwCgUkXAL7lyMdxt0JJUQnCWcAC z8qNYy-{D-fo95z@;^Jm*wi!X%UwqhZld{v$^UyXlR(%ZD2#+Jyw>`1<)}j#JMyh%E zFm=g`?fYZl=kDq{{`t4#6|o2Y&JHb4Z>q_09Mj$sdXTBsY5<Wla&l-b?e}QGArf!M ztK^<3&eq#aaB|WRB%vU4>><5!wW_x$Irmt8CpS^xcY)ivbjuSbL<a)d+xMN30#~G2 z(|*B5cF?tQX&@++YNr2sKodp2-OWVhwg`sP`?I;Ar{PRZcdsYX$n)RO&uCWVt_wE3 zA;viLO|{kQ=S6d7c2&;4VzSOGn#(N?&55*|6LrWG=He{I+@|!Og9RB%4Ci>|sP1uX zzxL~=t+{8aqBRcp>o;$z=ZQJ654X27{t;kFftL~6Fe-SJfnl(Hm&Q1`dpZOa5(1P? zw}gnk&Q4)^%1-+Z3b`@RCKy#1U7W*Z-XyD%u1LPfbQp4wXT-*r&Q8d77cJ7=rm*eI zR5h3oFiNwLwaBO7R;8kp)W}xg+$G=lTnNes^dga%kRa(M5O!8|Q3B(?88|qp9QMyl z=87fMP=qrkKr4q*rL9fY6@eZl-E8-iwm7(-nrGr~pYmFib8{;Y#twd`HB;vfekvSU zyYIk(U|o9VjO1j(3&ypfq2$+$XWrcjaWiidBlh(6!trxKvJhe}j)g6?z#n^Z(kc|@ zylj#25%RV5Dwm4$*4)Q%AHs|m;g5i<RXdDXjmv*1ILGIvdiJ4bI6u+MvZr#iF*%!R z&tI_=Q){yBo%*0XAlp>+J~neLKEoL<5AEY6_osNWd*Pa9jK}|&l7<>7LY;=6Wru`G z58G}rF;@?d&p*pMIVCgA^E~%1|2iPYC(@=tjD7gfx+sVtvi5>(Jp0CggJ4-=W;*4b z;{l;muEP|C=e&a{LX8BY0i+nIhmq)ztI+~luz#`2<6QcEFMr?6tm*uDMkA(Pw7I~p zGTsGE!?R%IR$F;>e`>&!X=}TSjw>Mm_mF-#p!P#wbT;%thy7pCwdZ*{UPfJVbVMD| z?SF0eVe|?p5nk&AWi}c1!I49sc(OvDhtOKd^AwksJ~7Vta7C!${pb}87vM7XF6pG* ztke*bKjY@+rdh_do0$p|1~bc%Z3<CxX$q1$r}79Yel&RlP8M<yIrVRlb7bGX0xBTW zT%3FM1c}NW!O`Va($lA-?gz#w?`nJUn(_+b4lEBioUgsTaHK#3I|rY`g9p#9c+H?B zqIN4NDZTed4b8J_;sjG@qi%pBDHX>>PahEDBFo{sp{U?NwYDr|%p0qzU5zAdVs3s* ze~+|u3sQei&q?uE_y-w7Y+PJ&AGDK`-gM4Tx`k42Bg-L`X&QwV48}Q7P0!ZhFNKBL z+|u&*j~^fH@`GtO0)LTDd(BtAI?FG;lZNX~3R`R|JyFskZxCb#EKST*x}co@M#;wC z(-EZQQ#<2!6pI9a2pfB400~kTJjAub$m^ACJyh@Q@_~bdnW;z!vhgpovUaPgt^;W3 zpL29_LJ<qucrUM*c96u!$8{)>Gt@}?X%A{Q+|syq6S1keH_u@$ZVL}o7NVyF2Z`$R zIzJ!FCcbA6PRtXUECuL{3;tm@8*OBTrT;Ncb84rP5cGv*u8Ju5^J=qYrwUke?X}jy z;Dpa#QLPl$N3xbzNN)zf0cHaw6uJe#)AQWiok?BH!EmTtcL#dDj7HsZFi!}mDWGwi z&eZGneVl^wgvyG|_1`<gHA>#S+vAMXXe1@6a|L!R=qu3b+tpsnF%SXZ#>)o0vGj23 zc}`i6{i6N!sj?>Qk+K<M6GK8;+AxfgB^f87V>CA#yD1|q&+6=osjs%4#d*cuVV=n3 z?y<BK6S4lu5o88PF-H>QX_F``AMC#L_S)&I)f9x~p<uoef48mc_`GB4yq+#x6X|Bh zXkMuUytdh@9Fky#8)TTRYNUQ}`fTOc@R%tH&OYD`oGyur2h+{qugQA54Fr+*fH5l5 zAwb~|Loj!x(Pusf;!qAVf+wdfRTl#*mC}K`j|N!Kw0F$TXA+R%2pZ<*%t2LA{txtp z4OH_4w4=|`A=)4yI(ExgP-$vfNE`=xS_AM64G*u8Bi*-eaERoUW$ovQ+SdJBBVt?R z!CdaK5S{l!uFMr@`03phwFIM4(Sn1w_nkI(>vk+$Qx4Ng(b3gqkjZgxU>1}Av@+Ky z4M>DtgNK8*3OFZ<ngN33Kj5YH7d6-E?46)(=YmgD1a0X<q=7Sw07}`P=j3Ubxnd1K z`tO-*`Z+k5+<B^{xnG|#L?@#Ib7FZncDx92xOh=u^aeaqXpTZA{33a%#h6`}q)1+= z2T+9467pP!v}|}bpa4E7fdEO%z$KftHBFPp_~H^j(~hX6z12F&xjXOBl3kysA6~!V zP}f%{1*aFB!Pl^eG!(-CsQ)-_Iwst4oRRn;wC>rnhlwd>nyn$J2TqJTbUa^+5AT?W z06+213tDlaj^IRJb6x)wdf4h=$v?qJf-iCc<TM>gZ}N+Zj-d-aBUOYF1FE91khSOc z65#gsoxHxkkNqbzzOu5i(C`LA0I0+@^f;Th!`M!u>(G1Y^5xXS%3D_bjKak^(s$Q` ze%K}ReyF=~%+V}szq0aQnA#vt;eczU0LkBKvIB}mOMePt<muDMO7GsjMgJtrPD6FO z9m*v$Rc~)E7Z;b8$~g!x@czR21`d#wk58I01d41Kx&RDDymdE<5d7r`o&6ubzj6^g z2yWmmG5xc24K{)$0O+Nqq`em?3ez4yW)a_3Tx|88oTg07@V|BUziFFrx5=vp;y!FE z_m8>1cJ#_7?DAmd@v)KYd$$If0Gp?a=GT3Cn$Zk#?6WhBvlRIC1SIVLo&vb!*xS=U zWpO&_3AY?WuliLd7GasKmr2&)R?Oc0?k#G84U;f9J<ZF+G!J^r{VYHAt6N$_XhJ`{ ze-H5wI{s8oK1iKbk7vw$PFD#U1_o58rd=KE$)9}n>XPW`D;`fcc8L0hhNG{VKRPeC zG7hEz-1onABjc-p{REmGlc=$9wEpz;G{^u@<jZfTX`HP)K3)4(a?H*p@^OJNO5A@K z6#!}NdbK|ut#<RHy+JyH;k>G=m^}K}qfBSrF>=lLa106m@N6rwYX{4l<Z|uaNM6;s zg@rTuc1AE+V>>Vr<+FX#%?iCDJaLfX1Ta~MH(+!C_?$9?oO*w0qFyA0Fr()(eK^4< zOexezB<5E)@k2)kH1;hy2Ro^gUa=1%7urK5?}c#?ZF?~fgZ`3%$JAwl?U$niCB;q( zMMW{)FMB$TxAd1pSz80>wm5$s9UXfIqBJ@5h0XN!_5J+R5}N)jE{2DN2`LGFp3wWH za*28Quge3iNtXXOU0`c}YUmCe=r90)UobZ}$L(loX(jC`{ao?YtD15qX)~E8Q9Luc z8y>ZZ-@jczcy4aoK(MBMnApJ>@&;E6@&kTKs046fGAQmobZGUg@>PZ8=M<%0WOrY! zWl8ndp?bmty(RG5*=4Wz2Rwn*;w%Q4a8QtbWzAnCUeNP*w71b5?#Rg8{#*j{1b9L1 zGRx|OEt89bgMlZ4(epouS#GNrl@lJ5UcNjtvV+2HckrpZ|E^m>)&{G$|KF9X6ZxTR z{Sy_xrl#pYWD=s_-+T0E8J#&Ty9}s9b72(~-{vQZ=qSy`mR#0L5*4|{<oW+qZ!+Y; z9LJw8mi~z{=L4a2y?Ql`+<^(bW%9CDH87namf^T;mAxyK`DPx}UUayD_cuS5j_1dT ziT!;V=LI}1`}d!z@(wj<fhik^2$P{{4)bLgbYsI13<4Ui4J2$FD){?8x3`zL4w0Uc z^24|wXZV()@rFh)S@tY-&9xt{3h1F!p9FXuebL^0B&mTArRo)EK%l(gSn|+ZJUlYe zviM568B5qPJGg%@cfCZj?yl6|+xr*FBV&lLxHy&MU#vWG8>S<)8~INS_B9iRpC3<8 z+`e-wP8X?S3Fde7i69^HOG~+vI9ZS*k#eVeZ+#dV$CW>LP-ntffc=371Aghm!y?&a zo`w4=%d?JMwCALiiC;hE2z8%V`P$2{FlvEs*n9ZoN_tg;@7w`z5A~NzGAL8SQJIY9 z@u}Er*WAg|(=$C!a0u311I-5)REo8M1S<$-!^itW>TM7}V8ws+<Y$Z-*@GITCUnCz zB~HRm!!Bb5Q|k54S-zYa1&O2oVJ^Ym)^^cV_NP&ffwHpVq9yV3moIS-9^Aw53Jd6} z|4N7Q8(%|sz#%LFzy++HNzQNI_ttIc_ki9PI~R?jL<XR`t)WPx1bLt#TRS`KhVdgA z0U@E`GSLg2od!i${mb)V%tq~n4E2WQzm%b_F6~45d2Sg0eQazA`c&%Z*=E3XP<r7d zCu23s5=jXEr5e?-ZaDS$)Wo%e)d$C4DhY0dH8=<JmzZs}KkGdM8wr{?l)A=v1QiVH z=tjpu*ycUTak+HqYin!3);Hj09QL0YvsU}pDc5OV&gVus?#esa3FM?EmXXfv2AbVx zJf3ljpORa^OeltPJm5nDOVivzUE){>cWzK%pmL86X2RKSZ#@?PtWpH8YG_*t`;8mx z=$R!XUQm?$x@Uziw#`Jk53C*j+|`AOD4>_;d?~$`BcA$eC;6u))13!3Dc|J_a3$if zVUzyvVTKz1)4x49F4OJYsn^h0cjD3(bVT{a<OqoQWV*@3(d6D{N-Wsfh|aDqQUYdu zM*i*dvpQDGYpMG94ITAspM#%WdJYT+5-_G7T1P=~vEp2M?~VBkKELIZ<m5r{h>x5f zm_qS#PRfZ(?ry$<9alP1(a_Q|HtWevr{{P2LrPYxv%R)9VfDrT_YA}IoQ~f}T{J8& zQ&Wx<L7G2xV59y`HvVaAWFa-|5^3l!iT`$F;pm?J=DNh3UR91GluQX|c!2v(*<Qtn zBxXB7%e{orj)w;W(m_E%Bm@YzT7@f^%itD|@P<^irM&jL{W%wCtt|B44=J!I(gts( z0T1_p2s+|*c|lP@jJx#03|?dXhK7;ub*H$xI-hPrS<+pa-W9%2O}0KusVv%j33s{w ztC5AeO_IWSb$#K0)^<ak&?aPy+S=_L@|^^<BrS=`MZPOnQpqN$9LM|}T(;kG{$e=u zy=|-fNp8KuyJbwyLw<+!i>U$urKlxBF9(6}wU;FPj;2niR$e#i7AYwys^FJz-;5oF z%SI3o7>w#Ife*vElD3zF^0tQfuP@ipjKF#XT`V+AVKyT@-4^4D01IdGtVr63zEK<B zn(K-TacW5jkQSlSRKVW<-~lrPoo!j>B{ubpYDxYW&i440`=+93pP;<fZ^uifwbwD; zgk}cUws+sYzj&^|T{=C*Eq!upXfr+i<f&7PJdJweUw+*))D(GhN@VuB{H^~Z@SN^{ zsJIk>A?kbgR4^8ddRJOj7DA^du<D{57e_`Qq}Z<gPsbcgA8hnCkB(N>jVB#CO`alU zO-69Id^t(M&H8ipF^sct$vc`9y;e+wlk8s=8tO^yg^p`d(%b+15vxfTyaZi`5O4Sm zwhJsHD$*oK;Z=$A<_g!Rp9BZ%L7fKYjmI+RyDMb3^7V3r{wk9=T_}OkYkvB-#l<xr zKZ2M~6<Q4jksc5bfb4@8W+Do{YM5+WJ)x{kyg><DAw)==1s>&V@Cd=6e^{82bQl9e zz2G7-PY=lxDlkS}+s^(qWM0oqY-~vGR=W$m2|iB@CqYl)<K%3xCc<$OxJiB&HlWN* zG2jq@dMF(r)<OCXag#k?2)pL&Oo3JT%pw<*eRJ_OsX6q*8fXDo=Gh@3^#=xgL2MBJ zh%tu1Iu9KJGzp{#)Na%(;<eRtCRvNQ{G7eb92~L)O!bOAp1N?@k=g#g9fR<J$?d-% zgILtL(7RI4WaUUR^Y!PTc9cznc{|1cNH;4gB~A6y+h4wXxuq(;bxnEs@)I%}JRgmX zmjN%KZD7KF_hoD1G6dl>QcKt*2mr9F5zWQ1no|%8Fb*+1I2h2xmqHE<%^33F{{2Aj zf|KEw#zq@8FYaERlx8-{PTp4V=v6v12m-Voy}in6YEK(S?J!wqXD1>oJmaZC2*C27 z5Ir({o|u@3ITO_RhzPnwW0)^7+ha|9)G~J9z=0Fy=AE6L58~qBqYl#%q`Lhbm3ngW z9lA+AKEA~y&)a02pPRkBDr>ikTJk;r9g?%p5e`o~OsP{5aA#3TNtPxiGtjI-;NX!P zpF2DEA2>jL`#nlVwEnZ)T$tpWtYl!MMM1%}1P2ELPK4EPf>`yI3O8jkcd&<%8DJ40 znrWcfdasxm!O}mxXux^FiRb})MQ2OPkq>vMKGSdOT|tt7E4UtV7oOW7<#yvys$lCk zx;wN&3N#+PtHBEw`}+IAa7x9EYY^(1w(aMf9p1o0W$wvfpfE3Qy!;C(NnaWD!EjP@ z@isR+eMTmz#yabE_v_aIacpgx1k9#a(a9$m`5t&(&a2{2_c2mbfrdc9vuTtqBv@s) z->&12k~ICCc2EvK+SBa_WlCD_p+1xDaaJp0fcMlMa(n=lO|5sJ&;9Gavk&nx;ydy_ zV41qQ9_kZ!+#YNbT4YFQmoC5%Ou#3qpurFS>%lZ35n8(VxM;Hb{+qP7-j|EZ7ks73 zN*bJ)=((Pd*klJUZ;Z^6|N6G6UpHfz&XcTJK43zAoRkSAOO1xqf!P<ZnQe4G_=Xx- zWIV)4{L~4)c0pE@VKtXrTtuHIo7_-E>tYzM6)?GT>n`b8F;SMT`-#1NaZ=+j_3~e) z!Bw)Y1<}FTZflEXC!T#rQChmuQ*=%h&$+Rp-b;30km0Q_hhb7g(E#twe}1%2IM;If z?{6RqOV|HUVo6Se1%a*p8;jLZv&!Y!YUi{z9*pf5=Jhy29D|CncBZf>sMCCAWo+5Y zoM!7+a4Q|nGC#xDD`iO`DQVTry`~~gvGq})ErD3?z37hM+rF`(QE%;|kgT}PpZ^l| zs|&&|-vS!rs@l>NijPuw+6P(Dy$)p-wGXD-(hGd#ji(=wgwh5oI?BI8Iw&Y$xq3vF zL*Ib(@IwM8?N!SLGAsbMe1c@G0jza*iZi$lXdK$H{GA$<=+<+Hu3~mRGb1Bd@5o%m z<~B7ot8tU9-*EHaw4#eQyyoUs<*V`f4fC_-f&1+97Tc)@6KMmtd(!A{tnJIoC);Ol zJ(<pirJTVGUJh1ANU!q1072_`)<5^P6H5de8l1+*=@^+vLdYLV)ikJaZoNOC$&QSW z#~H;;rKv?~LDb4Qp6jt4_pu!+9UQ(Es)amiG(RVAer2n>nHEj2f~k0P8C#R}IXSRo z|HFz@wzRlZ1#T;o>u)2uHbt=XC2@3Yz00hP2NtnoSk>IbBp~wzrfM*C2l10Ypt>!{ z8m7L!aFp3sSTrbGJkL*+>bVT~pFkE6Ab85a)?4sw0+^uJPFNG!36<7F?@4VzlFgN! z7O%+_6c)Oe|5Vz`QyyPN#$H_&JV0zV&_=lP?sqV8xdDyfTm=P}{6ZI<)K+wD5rm8( zBV`pBqf0gM{z7C7sXU^7)3&j)@@CoVAU2#;8a&ViJsfD2=_^k#=jG|S(6#EnNuB+o z>PJ&q!9VYD?18x}zHf2B5auec`R7VGIaYtK&3ryl+5GCnHCJ+6z9axWh`+Pm_dv20 zr3uZ>YVZ>V{Cf8YEt6vVpP)Cu94aWh6$bdg_YjYr2;x!Juo0Hor!AmXx)t(pqWU3c z*%M8(%rm}Cjl6Lal9454U=Sk@7Q%I^U=*5bzeAMoaAvdmo~AUt!S20zS4ERMOv84v zVYxlwGB3c>phn~Z0DXRHN6T_RH1YHfRC~KFi6|2V<^fpP%^bS*>z$6GM*@A8Dxaz* zAI*4^yLCh(@iZYUJG?tAwd>nR^DZ)36w=(|4!P#w36(@^=0j7H6UbU<z%I_t<zDk5 zNiA$)HUFr%djI149|`*6GC=pOe4F~l-3xUNTQ^U2QzI%SW{bhG(ZtN>Aq;HIb+a-u z&ZWF?*#8)<1_p?b;)xcJ$oZ7q#X@vQSy-&TNYOKqy?p7qCe*sMz#{(xrfh6<6eK$E z(Z2r?Q}(H;3F7dH_KEW2$G^Tf!L%-#O^21@`LA5@mUt4Al)bl?m&b;F23STVLgm(@ zb1FkDB$`ogK}glrQ5qWka&YE_I~e*d$Q{QVzrS|A+#Js$$q4$GcWqEkY8fbUNy1}Z z2$lW)sv;skz%W`UFjC!yL5`N18dl{r6EP5an1TNAK01(`V(TUDv4cDOR;E7YqMxez zU;>((fnn(T_bbC6!||LQUvRy5XH0?((v9O~ci|aa+1WqQw}bP7p9#+a14$+uPeUD< ziA-e5`TycS|BO*SV6?ki9&}D-W_Nrn1bLVg;9cwM=-4MJx}EQL8IoKo_kZTH9FGJo zTFCxqL-`z@b#hB5l^?;Yi&-dujhTf7C|x(!mfg;r;Wm|>ycZl?3(gRI-zwNw_}QnR zTj=O5Xd<4eW--OO`{;8WJw2EH5;;{>p4+EX$MK9auuT|(#Josut_wb<jiHQBVPWTr z0^|YkNw63;H#Bf!_N8s8ln-SX1sxu;%*;&SOO&n8Y^+vf%v>WvTXv#>0Zi>J;~^mO zKhILe>ImXm@USloKD`B1)0uU&ENAyE@jR{_6CwW>A648w^69bMB%mcmK6dQfdE!M8 zsflCMPUH}IkDun^vEFdSfP7B<U`p!Z@*8^zRzpHW<j%Oo#&&#nkdBTH5Rm1&YfUeY z#I9;Ql6N|VyTal3_Eu^mu5Df4`oEi?$tY;}l~`HuMM)UA#N15h$T}C^qIy>+6|kFP z`*t)%Cv1ga@B)zus<NxAFt`IY)#Jyz;Ayx+!-3iH3-J5k>1tSdbKW94ZUvb8iky18 ze2$hO<<IeMO<@erLKphRC4@8v;pxNBg6~&=N(|QG(M|XUNV5wVUB?;F4P(vGyKsT? z!i8a&0AUMz5F5Mr?UXdCw7c&Au`bi)T7O`s8r>|o{#(GPz>T{y^2J%%t36tA#^QT> zudq&PNqLk=`QLJU@K!9^(Ufwxdx9PD*&7<t7?Ut($EMg*_nBW<olJdh^uXNw-Y56R z55Ke*+gvSPiY!|w@4d`6Hmq2_@OQ0fcIvv{-{Hn)MW3f*FyOnO696p_2$y9p%YF}i zL`?nu_3!Yo!u$beSBJEm5xx9iCUAd#{yf;YW$uV3yU55$<b7ZNV6Bv8*gK9tFs@L$ ztpzezJa&uaT>bo<>^%iH3o|opM1X7NWMFwNIysHbdb;bh)IBsvhlLjKMn7AT7VkS| zZtmDyNbA%Dgo+33!QKo8Kg9$Ol~bIM>AfdIwD@ErdrX`qJ8jFpG%&D<2d!mNDQ$mG zF$LHP{4l%XdrJ;YGz0^8%xi&~#^5mEGz>>^v9XFY*l6xVV+?U8;(>2&ZnN%uS1-7L zxXe9Qre)E(gI?ZBFZavooUYhCCj?(As;E2x<Ic$V{l||&pzMNEPVxzumYR|=l!{9* zeE$D*a`r(@*Kr(2K?Qkeh|=Q8$rV?IITZxN0m1^IAr%jY4=0;?#BpTAGbUpqkB1z} zLx6B4a2?pV#0)H>m=4m@KxZx`B=k@M0uc{QX=1PSfB&?<cHG#(_xFAJyx*_)2Q!=d z^~empyKJ8b1cGZc4rxDOCrZ-vYcwW>3aiDYig1UrP9hA`Ytd{tL(rf6l!h^J1yQkq zNh~#Re3lt;_b7>2cmyONO5b3rFwG!qBDTU%bh&UGV5V1jHaQ|9!b%H5qnx!pwl!Z- z8{E7_f4IKBUY8(^?(^X<znEb;&#W^yN;bY-drRxqq*OM&e^OY8U)?yNNKQWbF#Z0& zpIbOEJY3#BIyRON6r}yD2BbqGk)T{|hi5NDzMSlKeAS=cL0WOXWi%Z}be}o;E?|t? z=<FBVjBvWD&4;`|PfyRpL}IfJ-WHMioyK?Hiu=)!qhasDSHNkNxfua9RInR~kGTP} zbW~p!fpcHI=JHAROMD-YkxO~ezCou!={?9MvUtYEg>1k4rbv*Ll|`V^6@GuCF_MPA zi~fhp!`4qc6B5GMu&uQ<AbmWcV@LWX=igpzXqYrLoKm!AN<Y1F-`)Pop3|bXQ1`(K zdj19Hdn!WqsZ>#`r)X#NWbzeVnJAU?9hZv}&ueb;<nLT!>Wc(ap0-2g4lDf*zP@^O zVAiugJj@+yr8{;Uk5TIrJEUHD8V(&+HVk#~ezOaU-SB>;t~y#e9Cc4wMI?yh%r|$w zYpUFL&z4)7dnu`@goG+8D@*qGWTO!pDK-X!qp0}7BCROtPRPNW9P$c$A~H61Yueg= ziuK~sQqE!eab(oG2Ul(XCeFR~!;I<QG3H3+oTaR0^AHU6-yo*tm;Fep)^oDj4qX|( zQ)6wAA;)7?P*+>TjT-)Li&4wmj5Q(&yx3TwZpy%dRFZS%Is?s5?f>%f<$Twvy1r4! zeI&E$u#UYKZJGv8GY`81+$yI@egJ-B23AxAKJE1JZ@l?uL11HWGo|pyGMSZb$~&+9 zP#mc~#B>%e(JNp|oMUOGM@dtYEBUz1n|DP=7YuGFYGK5bH#s)&k(uHEXe^#%NfX6V znwmg*8mR!b@Aw!=>&&nyNxszEX<K-BA5D;eLNDD<(I-A;RLmz^y1V^JHHyU#i6O9m zpf3k~|C7@io|VJ;x`wJM*hbQyuGL|ns?}ky&D(`znlQ$64geA0j?TUV@!T(wt;o0b zrnY>e`ZDX;?{iA&>5-9C5?J6Wb$$<?KK(Yhna*}tBUgE{siQKsajII}SlP-0b1e33 z?%qoan$DbwMEoNaMplzZ>#p59ca}bxy)GATJ}{d={De8}ZlC*n&Xay|r*4Ax-q!0^ z+&vUuRhqt0vSfw#`QF|yKs@<RdOD$5--8=ulcnjw54%4a-0$h(kwzOzuq8m=Fg;uW z{h}fxE4Q_%Sp#ZyeQho6zu*9QA>q~6tzEZhS&5mpos`gv`4IUz`vBZFv;|%iHBd?@ z=1`s}=GbR)VJFnFN@W6R534gi9@_E?s*PIxW_6gS(8|8FS1tx-Atp=siy8-U@7JV_ zoNP7PyZJ>$prRILc>^0}F0&7*T#RYe@5u15^VryMxyRV-X4=!S24sb6Bj-EWR_?ET z@yHtM>$>FU7iMN=GV=U*Wad^<22m%D-+1kHVHA@fex2|LB=|tCTCgPfu$f6iz%3Jv zMZWcazWKS#FpObqVPnJ1SnBoY16)^RIkDHHtIM37!_zEtn{d%i`W;@X9N?RFomrr= kGj}xcKGgny-aNCMJGUvhBk1b}TKAfSzP(NQRiHfYA9YOWlK=n! literal 0 HcmV?d00001 diff --git a/book/images/critical-connections-sol-examples.png b/book/images/critical-connections-sol-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3e568f4303b57b49aa362e4ce237f7d4c9066d GIT binary patch literal 35639 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%0A&dKTN8k>e~c%nTU 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 IhRzZH2Wo5Jk^lez literal 0 HcmV?d00001 diff --git a/book/images/critical-path-examples.png b/book/images/critical-path-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..63b0e330e430fa49e294f765cded36b4cbff8158 GIT binary patch literal 40870 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�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 N@O1TaS?83{1OUm0Kpp@9 literal 0 HcmV?d00001 diff --git a/book/interview-questions/course-schedule.js b/book/interview-questions/course-schedule.js new file mode 100644 index 00000000..c3e8b354 --- /dev/null +++ b/book/interview-questions/course-schedule.js @@ -0,0 +1,61 @@ +// tag::description[] +/** + * Check if you can finish all courses with their prerequisites. + * @param {number} n - The number of courses + * @param {[number, number][]} prerequisites - Array of courses pairs. + * E.g. [[200, 101]], to take course 202 you need course 101 first. + * @returns {boolean} - True = can finish all courses, False otherwise + */ +function canFinish(n, prerequisites) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const graph = new Map(Array(n).fill().map((_, i) => ([i, []]))); + prerequisites.forEach(([u, v]) => graph.get(v).push(u)); + + const seen = []; + const hasCycle = (node) => { + if (seen[node] === 1) return true; // if visiting, it's a cycle! + if (seen[node] === 2) return false; // if visited, skip it. + + seen[node] = 1; // mark as visiting. + for (const adj of graph.get(node)) if (hasCycle(adj)) return true; + seen[node] = 2; // mark as visited. + return false; + }; + + for (let i = 0; i < n; i++) if (hasCycle(i)) return false; + return true; + // end::solution[] + // tag::description[] +} +// end::description[] + + +// tag::brute1[] +function canFinishBrute1(n, prerequisites) { + const graph = new Map(); // inialize adjacency list as map of arrays + for (let i = 0; i < n; i++) graph.set(i, []); // build nodes + prerequisites.forEach(([u, v]) => graph.get(v).push(u)); // edges + + const hasCycles = (node, parent = node, seen = []) => { + for (const next of graph.get(node)) { + if (next === parent) return true; + if (seen[next]) continue; + seen[next] = true; + if (hasCycles(next, parent, seen)) return true; + } + return false; + }; + + for (let i = 0; i < n; i++) { + if (hasCycles(i)) return false; + } + + return true; +} +// end::brute1[] + +module.exports = { canFinish, canFinishBrute1 }; diff --git a/book/interview-questions/course-schedule.spec.js b/book/interview-questions/course-schedule.spec.js new file mode 100644 index 00000000..61bb9a5f --- /dev/null +++ b/book/interview-questions/course-schedule.spec.js @@ -0,0 +1,54 @@ +const { canFinish, canFinishBrute1 } = require('./course-schedule'); +// const { } = require('../../src/index'); + +[canFinish, canFinishBrute1].forEach((fn) => { + describe(`TOPIC: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = []; + const expected = true; + expect(fn(0, actual)).toEqual(expected); + }); + + it('should work basic case', () => { + const actual = [[1, 0]]; + const courses = 2; + const expected = true; + expect(fn(courses, actual)).toEqual(expected); + }); + + it('should detect cycle', () => { + const actual = [[0, 1], [1, 0]]; + const courses = 2; + const expected = false; + expect(fn(courses, actual)).toEqual(expected); + }); + + it('multiple links to a node without cycle', () => { + const actual = [[2, 1], [1, 0], [2, 0]]; + const courses = 3; + const expected = true; + expect(fn(courses, actual)).toEqual(expected); + }); + + it('multiple links to a node without cycle (different order)', () => { + const actual = [[2, 0], [1, 0], [2, 1]]; + const courses = 3; + const expected = true; + expect(fn(courses, actual)).toEqual(expected); + }); + + it('indirect cycle', () => { + const actual = [[1, 0], [2, 1], [0, 2]]; + const courses = 3; + const expected = false; + expect(fn(courses, actual)).toEqual(expected); + }); + + it('indirect cycle with nodes without indegrees', () => { + const actual = [[1, 0], [2, 1], [3, 2], [1, 3]]; + const courses = 4; + const expected = false; + expect(fn(courses, actual)).toEqual(expected); + }); + }); +}); diff --git a/book/interview-questions/critical-connections-in-a-network.js b/book/interview-questions/critical-connections-in-a-network.js new file mode 100644 index 00000000..bd7bfe37 --- /dev/null +++ b/book/interview-questions/critical-connections-in-a-network.js @@ -0,0 +1,76 @@ +const { Queue } = require('../../src/index'); + +// tag::description[] +function criticalConnections(n, connections) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const critical = []; + const graph = new Map(Array(n).fill(0).map((_, i) => [i, []])); + connections.forEach(([u, v]) => { + graph.get(u).push(v); + graph.get(v).push(u); + }); + + const dfs = (node, parent = null, depth = 0, group = []) => { + group[node] = depth; + for (const adj of (graph.get(node) || [])) { + if (adj === parent) continue; // skip parent node + if (group[adj] === undefined) dfs(adj, node, depth + 1, group); + group[node] = Math.min(group[node], group[adj]); // update group. + if (group[adj] >= depth + 1) critical.push([node, adj]); + } + }; + + dfs(0); + return critical; + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::criticalConnectionsBrute1[] +function areAllNodesReachable(n, graph) { + const seen = Array(n).fill(false); + const queue = new Queue([0]); + + while (queue.size) { + const node = queue.dequeue(); + if (seen[node]) continue; + seen[node] = true; + + for (const adj of (graph.get(node) || [])) { + queue.enqueue(adj); + } + } + + return !seen.some((s) => !s); +} + +function criticalConnectionsBrute1(n, connections) { + const critical = []; + const graph = new Map(Array(n).fill(0).map((_, i) => [i, []])); + connections.forEach(([u, v]) => { + graph.get(u).push(v); + graph.get(v).push(u); + }); + + for (const [u, v] of connections) { + // remove edge + graph.set(u, (graph.get(u) || []).filter((e) => e !== v)); + graph.set(v, (graph.get(v) || []).filter((e) => e !== u)); + + if (!areAllNodesReachable(n, graph)) critical.push([u, v]); + + // add it back + graph.get(u).push(v); + graph.get(v).push(u); + } + + return critical; +} +// end::criticalConnectionsBrute1[] + +module.exports = { criticalConnections, criticalConnectionsBrute1 }; diff --git a/book/interview-questions/critical-connections-in-a-network.spec.js b/book/interview-questions/critical-connections-in-a-network.spec.js new file mode 100644 index 00000000..003374d7 --- /dev/null +++ b/book/interview-questions/critical-connections-in-a-network.spec.js @@ -0,0 +1,37 @@ +const { criticalConnections, criticalConnectionsBrute1 } = require('./critical-connections-in-a-network'); +// const { } = require('../../src/index'); + +[criticalConnections, criticalConnectionsBrute1].forEach((fn) => { + describe(`Graph: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = fn(0, []); + const expected = []; + expect(actual).toEqual(expected); + }); + + it('should work with critical path', () => { + const actual = fn(4, [[0, 1], [1, 2], [2, 0], [1, 3]]); + const expected = [[1, 3]]; + expect(actual).toEqual(expected); + }); + + it('should work without critical path', () => { + const actual = fn(4, [[0, 1], [1, 2], [2, 0], [1, 3], [3, 2]]); + const expected = []; + expect(actual).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = fn(3, [[0, 1], [1, 2]]); + const expected = [[0, 1], [1, 2]]; + expect(actual).toEqual(expect.arrayContaining(expected)); + }); + + + it('should work with 2 SCC', () => { + const actual = fn(6, [[0, 1], [1, 2], [2, 0], [1, 3], [3, 4], [4, 5], [5, 3]]); + const expected = [[1, 3]]; + expect(actual).toEqual(expected); + }); + }); +}); diff --git a/book/interview-questions/network-delay-time.js b/book/interview-questions/network-delay-time.js new file mode 100644 index 00000000..99f8c108 --- /dev/null +++ b/book/interview-questions/network-delay-time.js @@ -0,0 +1,28 @@ +// https://leetcode.com/problems/network-delay-time/solution/ +function networkDelayTime(times: number[][], N: number, K: number): number { + const graph = new Map<number, [number, number][]>(Array(N).fill(0).map((_, i) => [i + 1, []])); + times.forEach(([u, v, w]) => graph.get(u)?.push([v, w])); + + const queue = new Queue([[K, 0]]); + const seen = Array(N + 1).fill(Infinity); + + while (queue.size()) { + const [node, dist] = queue.dequeue(); + seen[node] = Math.min(seen[node], dist); + + for (const [adj, w] of graph.get(node) || []) { + if (seen[adj] > dist + w) queue.enqueue([adj, dist + w]); + } + } + + const max = Math.max(...seen.slice(1)); + return max === Infinity ? -1 : max; +}; + +/* +[[2,1,1],[2,3,1],[3,4,1]] +4 +2 + + +*/ diff --git a/book/interview-questions/network-delay-time.spec.js b/book/interview-questions/network-delay-time.spec.js new file mode 100644 index 00000000..c56ff203 --- /dev/null +++ b/book/interview-questions/network-delay-time.spec.js @@ -0,0 +1,5 @@ +describe('', () => { + it('', () => { + + }); +}); From f248e4276fa32cbf3b93140f77f0010c596a4d71 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Mon, 7 Sep 2020 20:41:50 +0000 Subject: [PATCH 043/108] :bookmark: chore(release): 1.18.0 # [1.18.0](https://github.com/amejiarosario/dsa.js/compare/1.17.0...1.18.0) (2020-09-07) ### Features * **book/graph:** add schedule exercise and solution ([6a83cf8](https://github.com/amejiarosario/dsa.js/commit/6a83cf8a5d454b26e3048aa4ca73e44eafca0ed3)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bd0eb14..e48741f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.18.0](https://github.com/amejiarosario/dsa.js/compare/1.17.0...1.18.0) (2020-09-07) + + +### Features + +* **book/graph:** add schedule exercise and solution ([6a83cf8](https://github.com/amejiarosario/dsa.js/commit/6a83cf8a5d454b26e3048aa4ca73e44eafca0ed3)) + # [1.17.0](https://github.com/amejiarosario/dsa.js/compare/1.16.0...1.17.0) (2020-09-04) diff --git a/package-lock.json b/package-lock.json index 7d5d9509..bf7a41de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.17.0", + "version": "1.18.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index feaa51db..5e130a84 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.17.0", + "version": "1.18.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 3a2a24ffae2af5e5e348c237195f7a39717ae617 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 8 Sep 2020 11:49:22 -0400 Subject: [PATCH 044/108] feat(book/pq): add exercise with pq and dijkstra --- .../interview-questions/network-delay-time.js | 67 +++++++++++++------ .../network-delay-time.spec.js | 47 ++++++++++++- 2 files changed, 93 insertions(+), 21 deletions(-) diff --git a/book/interview-questions/network-delay-time.js b/book/interview-questions/network-delay-time.js index 99f8c108..97a00c32 100644 --- a/book/interview-questions/network-delay-time.js +++ b/book/interview-questions/network-delay-time.js @@ -1,28 +1,57 @@ -// https://leetcode.com/problems/network-delay-time/solution/ -function networkDelayTime(times: number[][], N: number, K: number): number { - const graph = new Map<number, [number, number][]>(Array(N).fill(0).map((_, i) => [i + 1, []])); - times.forEach(([u, v, w]) => graph.get(u)?.push([v, w])); +const { PriorityQueue, Queue } = require('../../src/index'); - const queue = new Queue([[K, 0]]); - const seen = Array(N + 1).fill(Infinity); +// tag::description[] +function networkDelayTime(times, N, K) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const graph = new Map(Array(N).fill(0).map((_, i) => [i + 1, []])); + times.forEach(([u, v, w]) => graph.get(u).push([v, w])); - while (queue.size()) { - const [node, dist] = queue.dequeue(); - seen[node] = Math.min(seen[node], dist); + const q = new PriorityQueue([[0, K]]); + const dist = new Map(); - for (const [adj, w] of graph.get(node) || []) { - if (seen[adj] > dist + w) queue.enqueue([adj, dist + w]); + while (q.size) { + const [d, n] = q.dequeue(); + + if (dist.has(n)) continue; + dist.set(n, d); + + for (const [adj, w] of graph.get(n)) { + if (!dist.has(adj)) q.enqueue([d + w, adj]); } } - const max = Math.max(...seen.slice(1)); - return max === Infinity ? -1 : max; -}; + return dist.size === N ? Math.max(...dist.values()) : -1; + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::networkDelayTimeQueue[] +function networkDelayTimeQueue(times, N, K) { + const graph = new Map(Array(N).fill(0).map((_, i) => [i + 1, []])); + times.forEach(([u, v, w]) => graph.get(u).push([v, w])); + + const q = new Queue([[0, K]]); + const dist = new Map(); -/* -[[2,1,1],[2,3,1],[3,4,1]] -4 -2 + while (q.size) { + const [d, n] = q.dequeue(); + + dist.set(n, dist.has(n) ? Math.min(dist.get(n), d) : d); + + for (const [adj, w] of graph.get(n)) { + if (!dist.has(adj) || dist.get(adj) > d + w) { + q.enqueue([d + w, adj]); + } + } + } + return dist.size === N ? Math.max(...dist.values()) : -1; +} +// end::networkDelayTimeQueue[] -*/ +module.exports = { networkDelayTime, networkDelayTimeQueue }; diff --git a/book/interview-questions/network-delay-time.spec.js b/book/interview-questions/network-delay-time.spec.js index c56ff203..24563b4e 100644 --- a/book/interview-questions/network-delay-time.spec.js +++ b/book/interview-questions/network-delay-time.spec.js @@ -1,5 +1,48 @@ -describe('', () => { - it('', () => { +const { networkDelayTime, networkDelayTimeQueue } = require('./network-delay-time'); +[networkDelayTime, networkDelayTimeQueue].forEach((fn) => { + describe(`Graph/PriorityQueue: ${fn.name}`, () => { + it('should work with simple case', () => { + const times = [[2, 1, 1], [2, 3, 1], [3, 4, 1]]; + const n = 4; + const k = 2; + expect(fn(times, n, k)).toEqual(2); + }); + + fit('should work with loops', () => { + const times = [[1, 2, 0], [1, 5, 10], [1, 4, 1], [2, 3, 100], [4, 5, 1], [5, 6, 1], [6, 7, 1], [7, 3, 1], [7, 5, 1]]; + const n = 7; + const k = 1; + expect(fn(times, n, k)).toEqual(5); + }); + + fit('should work with loops and dead starts', () => { + const times = [[1, 2, 0], [1, 5, 10], [1, 4, 1], [2, 3, 100], [4, 5, 1], [5, 6, 1], [6, 7, 1], [7, 3, 1], [7, 5, 1]]; + const n = 7; + const k = 3; + expect(fn(times, n, k)).toEqual(-1); + }); + + it('should work', () => { + const times = [[2, 1, 15], [2, 3, 85], [1, 3, 0], [1, 2, 91], [3, 2, 78], [3, 1, 36]]; + const n = 3; + const k = 2; + expect(fn(times, n, k)).toEqual(15); + }); + + it('should work with highly connected networks', () => { + const times = [[14, 1, 8], [11, 2, 25], [14, 15, 37], [3, 7, 70], [11, 7, 60], [13, 11, 87], [15, 10, 67], [13, 10, 58], [5, 4, 56], [9, 3, 26], [5, 11, 51], [11, 4, 92], [7, 6, 8], [7, 10, 95], [14, 9, 0], [4, 13, 1], [7, 9, 89], [3, 14, 24], [11, 15, 30], [13, 2, 91], [15, 8, 60], [1, 4, 96], [8, 2, 71], [6, 8, 38], [14, 13, 46], [2, 12, 48], [10, 11, 92], [8, 12, 28], [8, 7, 12], [9, 13, 82], [8, 6, 27], [3, 2, 65], [4, 10, 62], [11, 13, 55], [1, 2, 52], [8, 3, 98], [7, 12, 85], [6, 12, 97], [9, 4, 90], [2, 4, 23], [9, 11, 20], [1, 14, 61], [8, 9, 77], [6, 5, 80], [14, 11, 33], [9, 8, 54], [13, 1, 42], [13, 8, 13], [10, 14, 40], [9, 7, 18], [14, 3, 50], [14, 6, 83], [14, 8, 14], [2, 1, 86], [9, 5, 54], [11, 5, 29], [9, 12, 43], [9, 2, 74], [14, 4, 87], [12, 7, 98], [7, 14, 13], [4, 12, 33], [5, 2, 60], [15, 11, 33], [8, 4, 99], [9, 6, 98], [4, 6, 57], [6, 11, 5], [9, 15, 37], [1, 3, 30], [9, 10, 60], [13, 12, 73], [13, 14, 56], [1, 11, 13], [14, 2, 8], [4, 15, 60], [11, 3, 90], [2, 5, 86], [11, 1, 1], [13, 4, 2], [15, 7, 91], [15, 4, 51], [11, 6, 70], [2, 7, 51], [11, 9, 37], [4, 2, 92], [10, 4, 4], [7, 2, 30], [13, 9, 79], [8, 15, 41], [11, 8, 18], [15, 2, 4], [12, 14, 88], [12, 6, 9], [12, 9, 44], [1, 6, 87], [15, 14, 42], [4, 9, 41], [7, 15, 90], [4, 1, 84], [7, 11, 9], [3, 11, 75], [5, 9, 2], [2, 11, 96], [12, 5, 89], [6, 15, 25], [5, 13, 7], [15, 5, 32], [13, 5, 84], [7, 5, 9], [15, 3, 14], [12, 13, 4], [5, 3, 73], [6, 9, 85], [6, 10, 29], [1, 8, 24], [12, 3, 85], [4, 3, 60], [1, 13, 6], [1, 5, 58], [2, 3, 29], [14, 5, 67], [13, 15, 70], [5, 14, 94], [15, 1, 95], [3, 1, 17], [10, 2, 6], [11, 10, 44], [9, 14, 62], [4, 11, 32], [15, 13, 48], [2, 10, 77], [3, 13, 90], [5, 7, 68], [10, 6, 78], [3, 6, 95], [10, 12, 68], [13, 6, 73], [10, 1, 8], [10, 7, 18], [10, 5, 64], [5, 1, 55], [13, 7, 90], [1, 9, 67], [3, 12, 76], [14, 10, 22], [12, 8, 83], [4, 7, 76], [8, 13, 25], [5, 6, 57], [13, 3, 90], [6, 2, 96], [11, 14, 61], [12, 1, 94], [12, 15, 12], [4, 8, 88], [4, 14, 27], [7, 4, 25], [3, 9, 57], [2, 15, 90], [1, 12, 85], [12, 11, 44], [5, 10, 13], [5, 12, 96], [14, 7, 24], [14, 12, 98], [10, 9, 36], [15, 6, 17], [8, 10, 11], [2, 13, 5], [10, 3, 78], [6, 13, 11], [5, 15, 34], [12, 10, 12], [9, 1, 68], [10, 13, 1], [7, 13, 86], [1, 7, 62], [2, 14, 53], [8, 14, 75], [2, 6, 49], [10, 15, 83], [7, 8, 88], [6, 1, 87], [8, 1, 38], [8, 11, 73], [3, 15, 1], [3, 8, 93], [2, 8, 26], [4, 5, 26], [3, 4, 58], [7, 1, 55], [7, 3, 84], [5, 8, 97], [12, 4, 42], [6, 3, 71], [6, 7, 48], [15, 12, 3], [1, 15, 30], [10, 8, 11], [2, 9, 49], [6, 14, 95], [3, 10, 68], [6, 4, 14], [11, 12, 29], [1, 10, 93], [8, 5, 55], [12, 2, 86], [3, 5, 26], [15, 9, 12]]; + const n = 15; + const k = 11; + expect(fn(times, n, k)).toEqual(38); + }); + + it('should work with highly connected networks', () => { + const times = [[15, 8, 1], [7, 10, 41], [7, 9, 34], [9, 4, 31], [12, 13, 50], [14, 3, 52], [4, 11, 99], [4, 7, 86], [10, 13, 57], [9, 6, 10], [1, 7, 51], [7, 15, 38], [1, 9, 11], [12, 7, 94], [9, 13, 34], [11, 7, 79], [7, 6, 28], [5, 3, 34], [2, 6, 97], [14, 1, 97], [6, 10, 90], [12, 10, 37], [13, 3, 73], [11, 14, 7], [15, 1, 39], [6, 5, 90], [13, 6, 43], [6, 9, 32], [4, 6, 45], [11, 10, 2], [2, 13, 4], [14, 15, 29], [1, 14, 88], [14, 6, 19], [6, 2, 29], [3, 14, 72], [1, 15, 4], [11, 5, 2], [6, 7, 56], [8, 7, 88], [13, 14, 70], [14, 12, 58], [14, 2, 86], [11, 3, 57], [5, 2, 56], [3, 10, 26], [2, 11, 21], [14, 5, 54], [5, 12, 40], [14, 4, 81], [15, 2, 99], [5, 7, 57], [13, 12, 5], [4, 9, 60], [12, 15, 48], [6, 14, 1], [9, 7, 44], [13, 7, 69], [5, 13, 42], [4, 1, 7], [11, 9, 76], [8, 1, 76], [5, 14, 29], [2, 3, 69], [7, 3, 23], [12, 14, 28], [11, 4, 85], [10, 1, 10], [15, 12, 36], [1, 11, 69], [15, 10, 96], [11, 13, 69], [7, 12, 49], [1, 2, 95], [6, 4, 46], [8, 12, 94], [12, 4, 93], [13, 5, 31], [12, 2, 60], [6, 1, 87], [4, 14, 20], [5, 11, 89], [4, 15, 88], [4, 10, 21], [1, 6, 5], [10, 8, 26], [8, 2, 51], [3, 15, 23], [7, 2, 12], [11, 1, 47], [2, 1, 75], [3, 8, 63], [8, 10, 19], [6, 8, 18], [4, 2, 55], [14, 11, 80], [10, 3, 73], [3, 5, 22], [12, 3, 61], [1, 13, 33], [9, 3, 98], [9, 12, 69], [15, 9, 6], [7, 13, 76], [11, 12, 22], [11, 15, 51], [13, 15, 46], [5, 10, 58], [1, 10, 26], [13, 4, 85], [7, 14, 58], [5, 8, 46], [11, 6, 32], [10, 9, 41], [9, 14, 35], [14, 13, 60], [3, 9, 97], [2, 5, 39], [7, 11, 19], [1, 12, 27], [7, 5, 13], [8, 4, 34], [9, 15, 25], [5, 1, 93], [15, 13, 97], [14, 9, 35], [8, 6, 67], [9, 5, 39], [13, 11, 35], [7, 4, 21], [12, 9, 64], [14, 8, 8], [10, 12, 94], [8, 9, 76], [8, 5, 71], [2, 9, 64], [10, 14, 59], [1, 4, 74], [7, 1, 69], [15, 5, 55], [6, 15, 80], [13, 8, 84], [8, 13, 63], [8, 3, 91], [10, 4, 87], [1, 5, 39], [8, 11, 0], [1, 3, 79], [4, 5, 82], [4, 12, 87], [3, 11, 29], [7, 8, 92], [10, 7, 77], [6, 12, 42], [13, 2, 40], [9, 10, 13], [4, 13, 65], [2, 4, 34], [3, 13, 44], [2, 14, 69], [3, 4, 42], [5, 15, 98], [14, 7, 6], [15, 3, 94], [10, 2, 37], [15, 11, 7], [9, 2, 15], [13, 9, 66], [4, 8, 83], [8, 15, 23], [13, 1, 50], [6, 13, 57], [2, 10, 37], [10, 6, 38], [2, 7, 45], [9, 8, 8], [3, 12, 28], [3, 2, 83], [2, 12, 75], [1, 8, 91], [4, 3, 70], [12, 6, 48], [3, 1, 13], [5, 6, 42], [6, 11, 96], [3, 6, 22], [15, 6, 34], [11, 8, 43], [15, 7, 40], [9, 11, 57], [11, 2, 11], [2, 8, 22], [9, 1, 73], [2, 15, 40], [12, 11, 10], [15, 4, 78], [12, 8, 75], [10, 15, 37], [13, 10, 44], [8, 14, 33], [3, 7, 82], [5, 4, 46], [12, 5, 79], [15, 14, 43], [10, 5, 65], [5, 9, 34], [12, 1, 54], [6, 3, 16], [14, 10, 83], [10, 11, 67]]; + const n = 15; + const k = 8; + expect(fn(times, n, k)).toEqual(34); + }); }); }); + From 827177f6023f639db0c2cc267dceb0a27746038a Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 8 Sep 2020 11:52:26 -0400 Subject: [PATCH 045/108] feat(heap): add error handling for heaps BREAKING CHANGE: size is now an attribute rather than a method. Similar to the built-in Map.size and Set.size --- src/data-structures/heaps/heap.js | 20 ++++++----- src/data-structures/heaps/heap.spec.js | 34 ++++++++++++------- src/data-structures/heaps/median-heap.js | 12 +++---- src/data-structures/heaps/median-heap.spec.js | 4 +-- 4 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/data-structures/heaps/heap.js b/src/data-structures/heaps/heap.js index 459985dc..54863c39 100644 --- a/src/data-structures/heaps/heap.js +++ b/src/data-structures/heaps/heap.js @@ -8,7 +8,11 @@ class Heap { constructor(comparator = (a, b) => a - b) { this.array = []; - this.comparator = (i1, i2) => comparator(this.array[i1], this.array[i2]); + this.comparator = (i1, i2) => { + const value = comparator(this.array[i1], this.array[i2]); + if (Number.isNaN(value)) { throw new Error(`Comparator should evaluate to a number. Got ${value} when comparing ${this.array[i1]} with ${this.array[i2]}`); } + return value; + }; } /** @@ -34,8 +38,8 @@ class Heap { * @runtime O(log n) */ remove(index = 0) { - if (!this.size()) return null; - this.swap(index, this.size() - 1); // swap with last + if (!this.size) return null; + this.swap(index, this.size - 1); // swap with last const value = this.array.pop(); // remove element this.bubbleDown(index); return value; @@ -45,7 +49,7 @@ class Heap { * Returns the number of elements in this collection. * @runtime O(1) */ - size() { + get size() { return this.array.length; } @@ -54,7 +58,7 @@ class Heap { * @runtime O(log n) */ bubbleUp() { - let index = this.size() - 1; + let index = this.size - 1; const parent = (i) => Math.ceil(i / 2 - 1); while (parent(index) >= 0 && this.comparator(parent(index), index) > 0) { this.swap(parent(index), index); @@ -70,10 +74,10 @@ class Heap { let curr = index; const left = (i) => 2 * i + 1; const right = (i) => 2 * i + 2; - const getTopChild = (i) => (right(i) < this.size() + const getTopChild = (i) => (right(i) < this.size && this.comparator(left(i), right(i)) > 0 ? right(i) : left(i)); - while (left(curr) < this.size() && this.comparator(curr, getTopChild(curr)) > 0) { + while (left(curr) < this.size && this.comparator(curr, getTopChild(curr)) > 0) { const next = getTopChild(curr); this.swap(curr, next); curr = next; @@ -81,7 +85,7 @@ class Heap { } /** - * "Private": Swap elements on the heap + * Swap elements on the heap * @runtime O(1) * @param {number} i1 index 1 * @param {number} i2 index 2 diff --git a/src/data-structures/heaps/heap.spec.js b/src/data-structures/heaps/heap.spec.js index 855bc6cf..f1d6bb09 100644 --- a/src/data-structures/heaps/heap.spec.js +++ b/src/data-structures/heaps/heap.spec.js @@ -3,12 +3,16 @@ const PriorityQueue = require('./priority-queue'); const MaxHeap = require('./max-heap'); const MinHeap = require('./min-heap'); -[[Heap], [PriorityQueue], [MinHeap]].forEach(([DS, arg]) => { - describe('Min-Heap (Priority Queue)', () => { +[ + [Heap], + [PriorityQueue, [], (a, b) => a - b], + [MinHeap], +].forEach(([DS, ...arg]) => { + describe('Min-Heap and Priority Queue', () => { let heap; beforeEach(() => { - heap = new DS(arg); + heap = new DS(...arg); }); describe('#contructor', () => { @@ -21,7 +25,7 @@ const MinHeap = require('./min-heap'); it('should add an element', () => { expect(heap.add(1)).toBe(undefined); expect(heap.array).toEqual([1]); - expect(heap.size()).toBe(1); + expect(heap.size).toBe(1); }); it('should keep things in order', () => { @@ -31,7 +35,7 @@ const MinHeap = require('./min-heap'); expect(heap.array[0]).toEqual(2); heap.add(1); expect(heap.array[0]).toEqual(1); - expect(heap.size()).toEqual(3); + expect(heap.size).toEqual(3); }); }); @@ -40,7 +44,7 @@ const MinHeap = require('./min-heap'); heap.add(1); heap.add(0); expect(heap.remove()).toBe(0); - expect(heap.size()).toBe(1); + expect(heap.size).toBe(1); expect(heap.array).toEqual([1]); }); @@ -70,19 +74,23 @@ const MinHeap = require('./min-heap'); expect(heap.remove()).toEqual(1); expect(heap.remove()).toEqual(2); expect(heap.remove()).toEqual(3); - expect(heap.size()).toBe(0); + expect(heap.size).toBe(0); }); }); }); }); }); -[[Heap, (a, b) => b - a], [PriorityQueue, (a, b) => b - a], [MaxHeap]].forEach(([DS, arg]) => { +[ + [Heap, (a, b) => b - a], + [PriorityQueue, [], (a, b) => b - a], + [MaxHeap], +].forEach(([DS, ...arg]) => { describe('Max-Heap (Priority Queue)', () => { let heap; beforeEach(() => { - heap = new DS(arg); + heap = new DS(...arg); }); describe('#contructor', () => { @@ -95,7 +103,7 @@ const MinHeap = require('./min-heap'); it('should add an element', () => { expect(heap.add(1)).toBe(undefined); expect(heap.array).toEqual([1]); - expect(heap.size()).toBe(1); + expect(heap.size).toBe(1); }); it('should keep things in order', () => { @@ -105,7 +113,7 @@ const MinHeap = require('./min-heap'); expect(heap.array[0]).toEqual(2); heap.add(3); expect(heap.array[0]).toEqual(3); - expect(heap.size()).toEqual(3); + expect(heap.size).toEqual(3); }); }); @@ -114,7 +122,7 @@ const MinHeap = require('./min-heap'); heap.add(1); heap.add(0); expect(heap.remove()).toBe(1); - expect(heap.size()).toBe(1); + expect(heap.size).toBe(1); expect(heap.array).toEqual([0]); }); @@ -156,7 +164,7 @@ const MinHeap = require('./min-heap'); expect(heap.remove()).toEqual(2); expect(heap.remove()).toEqual(1); expect(heap.remove()).toEqual(0); - expect(heap.size()).toBe(0); + expect(heap.size).toBe(0); }); }); }); diff --git a/src/data-structures/heaps/median-heap.js b/src/data-structures/heaps/median-heap.js index 75c29b79..e8295963 100644 --- a/src/data-structures/heaps/median-heap.js +++ b/src/data-structures/heaps/median-heap.js @@ -30,9 +30,9 @@ class MedianHeap { } // rebalance if the sizes of the heaps differ by more than one element - if (Math.abs(this.min.size() - this.max.size()) > 1) { + if (Math.abs(this.min.size - this.max.size) > 1) { // extract the min/max from the heap with more elements and insert it into the other heap. - if (this.min.size() > this.max.size()) { + if (this.min.size > this.max.size) { this.max.add(this.min.remove()); } else { this.min.add(this.max.remove()); @@ -47,12 +47,12 @@ class MedianHeap { findMedian() { let median; - if (this.max.size() === this.min.size()) { + if (this.max.size === this.min.size) { // When both heaps contain the same number of elements, // the total number of elements is even. // The median is the mean of the two middle elements. median = (this.max.peek() + this.min.peek()) / 2; - } else if (this.max.size() > this.min.size()) { + } else if (this.max.size > this.min.size) { // when the max-heap contains one more element than the min-heap, // the median is in the top of the max-heap. median = this.max.peek(); @@ -67,8 +67,8 @@ class MedianHeap { /** * Return size of the heap. */ - size() { - return this.min.size() + this.max.size(); + get size() { + return this.min.size + this.max.size; } } diff --git a/src/data-structures/heaps/median-heap.spec.js b/src/data-structures/heaps/median-heap.spec.js index 283df75d..5f6de956 100644 --- a/src/data-structures/heaps/median-heap.spec.js +++ b/src/data-structures/heaps/median-heap.spec.js @@ -10,13 +10,13 @@ describe('Median Heap', () => { describe('#add', () => { it('should work', () => { expect(medianHeap.add(1)).toEqual(undefined); - expect(medianHeap.size()).toEqual(1); + expect(medianHeap.size).toEqual(1); }); it('should work', () => { expect(medianHeap.add(1)).toEqual(undefined); expect(medianHeap.add(1)).toEqual(undefined); - expect(medianHeap.size()).toEqual(2); + expect(medianHeap.size).toEqual(2); }); }); From edf8808970d57aaf397958d2cab1a6cc2e029d26 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 8 Sep 2020 11:53:11 -0400 Subject: [PATCH 046/108] feat(pq): improves docs and usability of priority queues --- src/data-structures/heaps/priority-queue.js | 25 ++++++- .../heaps/priority-queue.spec.js | 75 +++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 src/data-structures/heaps/priority-queue.spec.js diff --git a/src/data-structures/heaps/priority-queue.js b/src/data-structures/heaps/priority-queue.js index 622af6a9..b81772e8 100644 --- a/src/data-structures/heaps/priority-queue.js +++ b/src/data-structures/heaps/priority-queue.js @@ -1,5 +1,28 @@ const Heap = require('./heap'); -class PriorityQueue extends Heap { } +class PriorityQueue extends Heap { + constructor(iterable = [], comparator = (a, b) => a[0] - b[0]) { + super(comparator); + Array.from(iterable).forEach((el) => this.add(el)); + } + + /** + * Add data to the Queue with Priority + * @param {[number, any]|any} value - Pair with [priority, value] + * any object as value is also possible if a custom comparator is passed in. + * @returns {void} + */ + enqueue(value) { + super.add(value); + } + + /** + * Remove from the queue the element with the highest priority. + * @returns {[number, any]|any} + */ + dequeue() { + return super.remove(); + } +} module.exports = PriorityQueue; diff --git a/src/data-structures/heaps/priority-queue.spec.js b/src/data-structures/heaps/priority-queue.spec.js new file mode 100644 index 00000000..860480da --- /dev/null +++ b/src/data-structures/heaps/priority-queue.spec.js @@ -0,0 +1,75 @@ +const { PriorityQueue } = require('../..'); + +describe('Priorty Queue (as MinHeap default)', () => { + const num = 1; + const obj = { a: 1, b: 2 }; + let pq; + + describe('with default contructor', () => { + beforeEach(() => { + pq = new PriorityQueue(); + }); + + describe('.enqueue', () => { + it('should enqueue [priority, element]', () => { + pq.enqueue([Infinity, 2]); + pq.enqueue([0, 1]); + pq.enqueue([100, { a: 1, b: 2 }]); + expect(pq.size).toEqual(3); + expect(pq.peek()).toEqual([0, 1]); + }); + }); + + describe('.dequeue', () => { + it('should enqueue and dequeue elements on priority order', () => { + pq.enqueue([100, obj]); + pq.enqueue([Infinity, 2]); + pq.enqueue([0, num]); + + expect(pq.dequeue()).toEqual([0, num]); + expect(pq.size).toEqual(2); + expect(pq.dequeue()).toEqual([100, obj]); + expect(pq.dequeue()).toEqual([Infinity, 2]); + expect(pq.size).toEqual(0); + }); + + it('should handle case when priorty was forgotten', () => { + expect(() => pq.enqueue({ a: 100 })).not.toThrow(); + expect(() => pq.enqueue({ b: 200 })).toThrow(); + }); + }); + }); + + describe('with default values', () => { + it('should add values on creation', () => { + pq = new PriorityQueue([[100, obj], [Infinity, 2], [0, num]]); + expect(pq.size).toEqual(3); + expect(pq.peek()).toEqual([0, num]); + expect(pq.dequeue()).toEqual([0, num]); + expect(pq.size).toEqual(2); + }); + }); + + describe('with custom comparator', () => { + const alice = { name: 'Alice', grade: 80, assistance: 1 }; + const bob = { name: 'Bob', grade: 93, assistance: 0.7 }; + const ana = { name: 'Ana', grade: 98, assistance: 0.8 }; + + it('should become MaxPriortyQueue and compare objects', () => { + pq = new PriorityQueue([], (a, b) => b.grade * b.assistance - a.grade * a.assistance); + pq.enqueue(alice); + pq.enqueue(ana); + pq.enqueue(bob); + expect(pq.size).toEqual(3); + expect(pq.dequeue()).toEqual(alice); + expect(pq.dequeue()).toEqual(ana); + expect(pq.dequeue()).toEqual(bob); + }); + + it('should handle errors', () => { + pq = new PriorityQueue([], (a, b) => b.grade - a.grade); + expect(() => pq.enqueue(alice)).not.toThrow(); + expect(() => pq.enqueue({ name: 'Oops', error: 98 })).toThrow(); + }); + }); +}); From 65e302bd1c54f3b1f297fc24d9aabf9a5e942173 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Tue, 8 Sep 2020 16:04:22 +0000 Subject: [PATCH 047/108] :bookmark: chore(release): 2.0.0 # [2.0.0](https://github.com/amejiarosario/dsa.js/compare/1.18.0...2.0.0) (2020-09-08) ### Features * **book/pq:** add exercise with pq and dijkstra ([3a2a24f](https://github.com/amejiarosario/dsa.js/commit/3a2a24ffae2af5e5e348c237195f7a39717ae617)) * **heap:** add error handling for heaps ([827177f](https://github.com/amejiarosario/dsa.js/commit/827177f6023f639db0c2cc267dceb0a27746038a)) * **pq:** improves docs and usability of priority queues ([edf8808](https://github.com/amejiarosario/dsa.js/commit/edf8808970d57aaf397958d2cab1a6cc2e029d26)) ### BREAKING CHANGES * **heap:** size is now an attribute rather than a method. Similar to the built-in Map.size and Set.size --- CHANGELOG.md | 14 ++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e48741f9..36af93c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [2.0.0](https://github.com/amejiarosario/dsa.js/compare/1.18.0...2.0.0) (2020-09-08) + + +### Features + +* **book/pq:** add exercise with pq and dijkstra ([3a2a24f](https://github.com/amejiarosario/dsa.js/commit/3a2a24ffae2af5e5e348c237195f7a39717ae617)) +* **heap:** add error handling for heaps ([827177f](https://github.com/amejiarosario/dsa.js/commit/827177f6023f639db0c2cc267dceb0a27746038a)) +* **pq:** improves docs and usability of priority queues ([edf8808](https://github.com/amejiarosario/dsa.js/commit/edf8808970d57aaf397958d2cab1a6cc2e029d26)) + + +### BREAKING CHANGES + +* **heap:** size is now an attribute rather than a method. Similar to the built-in Map.size and Set.size + # [1.18.0](https://github.com/amejiarosario/dsa.js/compare/1.17.0...1.18.0) (2020-09-07) diff --git a/package-lock.json b/package-lock.json index bf7a41de..5b36d0f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.18.0", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5e130a84..bba73b72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "1.18.0", + "version": "2.0.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From fdb8bd8af644ddeaa07ce62773e9be96fd6b2404 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 11 Sep 2020 07:39:03 -0400 Subject: [PATCH 048/108] feat(book/sorting): add questions and solutions --- book/D-interview-questions-solutions.asc | 95 ++++++++++++++++++ book/content/part04/sorting-algorithms.asc | 75 ++++++++++++++ book/images/course-schedule-examples.png | Bin 22504 -> 26285 bytes .../critical-connections-sol-examples.png | Bin 35639 -> 37090 bytes book/images/critical-path-examples.png | Bin 40870 -> 42278 bytes book/images/intervals-overlap-cases-owned.png | Bin 0 -> 14624 bytes book/images/intervals-overlap-cases.jpg | Bin 0 -> 203740 bytes book/images/intervals-overlap-cases.svg | 1 + book/images/merge-intervals-cases.png | Bin 0 -> 28966 bytes book/interview-questions/merge-intervals.js | 32 ++++++ .../merge-intervals.spec.js | 30 ++++++ book/interview-questions/sort-colors.js | 49 +++++++++ book/interview-questions/sort-colors.spec.js | 55 ++++++++++ 13 files changed, 337 insertions(+) create mode 100644 book/images/intervals-overlap-cases-owned.png create mode 100644 book/images/intervals-overlap-cases.jpg create mode 100644 book/images/intervals-overlap-cases.svg create mode 100644 book/images/merge-intervals-cases.png create mode 100644 book/interview-questions/merge-intervals.js create mode 100644 book/interview-questions/merge-intervals.spec.js create mode 100644 book/interview-questions/sort-colors.js create mode 100644 book/interview-questions/sort-colors.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index d7228268..9e96a89f 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -843,6 +843,101 @@ This algorithm only works with DFS. // +:leveloffset: +1 + +=== Solutions for Sorting Questions +(((Interview Questions Solutions, sorting))) + +:leveloffset: -1 + + +[#sorting-q-merge-intervals] +include::content/part04/sorting-algorithms.asc[tag=sorting-q-merge-intervals] + +The first thing we need to understand is all the different possibilities for overlaps: + +// image::merge-intervals-cases.png[merge intervals cases] // blurry +// image::intervals-overlap-cases.jpg[merge intervals cases] // too big +// image::intervals-overlap-cases.svg[merge intervals cases] // errors +// my own image +image::intervals-overlap-cases-owned.png[merge intervals cases] +One way to solve this problem, is sorting by start time. That will eliminate half of the cases! +Since A will always start before B, only 3 cases apply: +- No overlap: `[[1, 3], [4, 6]]`. +- Overlap at the end: `[[1, 3], [2, 4]]`. +- Eclipse: `[[1, 9], [3, 7]]`. + +*Algorithm*: + +* Sort intervals by start time +* If the `curr`ent interval's start time is _equal_ or less than the `last` interval's end time, then we have an overlap. +** Overlaps has two cases: 1) `curr`'s end is larger 2) `last`'s end is larger. For both cases `Math.max` works. +* If there's no overlap, we add the interval to the solution. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/merge-intervals.js[tags=description;solution] +---- + +For the first interval, it will be added straight to the solution array. For all others, we will do the comparison. + +*Complexity Analysis*: + +- Time: `O(n log n)`. Standard libraries has a sorting time of `O(n log n)`, then we visit each interval in `O(n)`. +- Space: `O(n)`. In the worst-case is when there's no overlapping intervals. The size of the solution array would be `n`. + + + + + + + +// + +[#sorting-q-sort-colors] +include::content/part04/sorting-algorithms.asc[tag=sorting-q-sort-colors] + +We are asked to sort an array with 3 possible values. If we use the standard sorting method `Array.sort`, that will be `O(n log n)`. However, we are asked to solve in linear time and constant space complexity. + +The concept on quicksort can help here. We can choose 1 as a pivot and move everything less than 1 to the left and everything bigger than 1 to the right. + +*Algorithm*: + +* Initialize 3 pointers: `left = 0`, `right = len - 1` and `current = 0`. +* While the `current` pointer is less than `right` +** If `current` element is less than pivot 1, swap it to the left and increase the `left` and `current` pointer. +*** We can safely increase the current pointer +** If `current` element is bigger than pivot 1, swap it to the right and decrease `right` pointer. +*** Here, we don't increase the `current` pointer because the number that we swapped with could be another 2 and we might need to keep swapping while decreasing `right`. + +*Implementation*: + +[source, javascript] +---- +include::interview-questions/sort-colors.js[tags=description;solution] +---- + +We are using the destructive assigment to swap the elements. Here's another version a little bit more compact. + +[source, javascript] +---- +include::interview-questions/sort-colors.js[tags=compact] +---- + +*Complexity Analysis*: + +- Time: `O(n)`. We only visit each number once. +- Space: `O(1)`. Operations are in-place. Only O(1) space variables were used. + + + + + + + +// diff --git a/book/content/part04/sorting-algorithms.asc b/book/content/part04/sorting-algorithms.asc index 67ea34a4..5a6054c7 100644 --- a/book/content/part04/sorting-algorithms.asc +++ b/book/content/part04/sorting-algorithms.asc @@ -139,3 +139,78 @@ We explored many algorithms some of them simple and other more performant. Also, // | Tim sort | O(n log n) | O(log n) | Yes | No | No | Yes |=== // end::table[] + + + + + + + + + +==== Practice Questions +(((Interview Questions, sorting))) + + + + + +// tag::sorting-q-merge-intervals[] +===== Merge Intervals + +*so-1*) _Given an array of intervals `[start, end]`, merge all overlapping intervals._ + +// end::sorting-q-merge-intervals[] + +// _Seen in interviews at: X._ + +*Starter code*: + +[source, javascript] +---- +include::../../interview-questions/merge-intervals.js[tags=description;placeholder] +---- + +*Examples*: + +[source, javascript] +---- +merge([[0, 2], [2, 4]]); // [[0, 4]] (0-2 overlaps with 2-4) +merge([[2, 2], [3, 4]]); // [[2, 2], [3, 4]] (no overlap) +merge([[1, 10], [3, 4]]); // [[1, 10]] (1-10 covers the other) +---- + + +_Solution: <<sorting-q-merge-intervals>>_ + + + + + + +// tag::sorting-q-sort-colors[] +===== Sort Colors (The Dutch flag problem) + +*so-2*) _Given an array with 3 possible values (0, 1, 2), sort them in linear time and in-place. Hint: similar to quicksort, where the pivot is 1._ + +// end::sorting-q-sort-colors[] + +// _Seen in interviews at: Amazon, Microsoft, Facebook._ + +*Starter code*: + +[source, javascript] +---- +include::../../interview-questions/sort-colors.js[tags=description;placeholder] +---- + +*Examples*: + +[source, javascript] +---- +sortColors([0, 2, 1]); // [0, 1, 2] +sortColors([2, 0, 2, 1, 0, 1, 0]); // [0, 0, 0, 1, 1, 2, 2] +sortColors([1, 1, 1]); // [1, 1, 1] +---- + +_Solution: <<sorting-q-sort-colors>>_ diff --git a/book/images/course-schedule-examples.png b/book/images/course-schedule-examples.png index 348fe3de7a232c03bd2ebc49c263b43e2b5accfb..4dfa688ef35cdde42e0fa73c961fbf579c77166b 100644 GIT binary patch literal 26285 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 N>9Uo^sYaWE{{|(EUbO%K literal 22504 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 diff --git a/book/images/critical-connections-sol-examples.png b/book/images/critical-connections-sol-examples.png index eb3e568f4303b57b49aa362e4ce237f7d4c9066d..bbf2c22bdbde6c695962c625508d32420b701b7b 100644 GIT binary patch literal 37090 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�iBNrvO$-{$q;aM<BcGIs(P=xM@oaAH=l-eg@x< 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 E0LA#_YybcN literal 35639 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%0A&dKTN8k>e~c%nTU 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 IhRzZH2Wo5Jk^lez diff --git a/book/images/critical-path-examples.png b/book/images/critical-path-examples.png index 63b0e330e430fa49e294f765cded36b4cbff8158..7ba6906978a42758beab4e4f6ab0a05ed013cb92 100644 GIT binary patch literal 42278 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 literal 40870 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�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 N@O1TaS?83{1OUm0Kpp@9 diff --git a/book/images/intervals-overlap-cases-owned.png b/book/images/intervals-overlap-cases-owned.png new file mode 100644 index 0000000000000000000000000000000000000000..cb259a2fdaec4bda406caefd4ebd0eff9eebe235 GIT binary patch literal 14624 zcmbumcT^K^-|nj-ND)W?2^~TarAqH0y$Y6}^di0Y4uL2Hi1glz6hVa$>77Uqy(qm2 zp&9|{gnHuhy!-5Tuf3kN_Sxr;+?kn7%e`jq`FyYIn)lCj)yYX2NN?S`MXsr#^77WL z+g|w3Q(_|glEU;;B>s!UL&M1X)-5vXzn|N;vUBP13vYYBR9CuHIl{D!pSf$V_)PKE zt*QjFOH0CAw<PN{RTTdTxV@97=fXK1vWa5SOt;m}$~Ti7iw)1SdV{{#mA|2@OO*Qf zoc8HJq6CLIUyih4lp)yhuJaoZAjkaMThMcj-uIU4Z^Q{6pY(Ie5v<YFG&b+T<b+Rt zb|~@jj5t(9X2@}nRP#GZA7jtkK2J}+UYs1>wKF(9C6N7Ry8INibTNeteZ5EyP$CAy z{@n-zXv4lzC=t_Jj=Y;m4fn9w(Q{;jB_^%ENc8*XDKVH+f{$>8lh_xg-xO{)9bLZf zttk1!r<$M0(&Cis#!0D3UB8Kp4F(VfFu`aW;Z^0HwlH?`IFZ#Irzf4L!i&LXiyyLF zi-OKLuHl;d_~Q~3#@ewq{qBocsEaqS+Aeg|IyZ_(_<srqDCrW0tSw^vXC!C<#w*qQ zCi@1W`2eN!I}s2MnwP8Y&iM0ce+p)05+i4yW7KbrK}YElgUcfKk|a1fO`bv%t4{#! zb*m1!E)9v4(^{zBcL3oxkJg6&0g`6Qe)aJPO0OH@;5~CV$x7fk$o|->wfz>L<P{mH zF{{^|w#sf%^a#U-)EelC3d8SK>SOGm-EK(M`+v=J8Ls<2A0x>!9B`n$9l1}ku}OmO z!B|Ok2U?G+vB94v{4hW=nbwE5)JhtaK<C^$fA^re#32~|cj~{o`hRx%|KU_F{VO`Q z<Dj<tUOc6xr2{9|l5vi$?y$rqy4u8PRMhgjqh9SZ7~Jf;RI*UdqS#u#b~%3t2kfZ# zTg2sI0Beav=sP`bG8{rZF}N~R2h3ffmrDSKC7LROxnYU9DV%HNiZjtY%!HP#uvj9B zPTZD_j-aF2{RH+oB*@5mosDL!iIvR3EMY4#l$kR=c95bswK1`UnA`9%EvmFHU9mU$ zSDy5x|1UJq4d6uoU7AjSeatNf^PT=X$pKS`qF>2x_7U19$uuG3*v`iL_c_+I9o&5l z00InEoTO~leFMC{F3V4s&^&84Pq6i@wlDS0-vSSU75{{NoqxE)(y3TL0Je`wumggW z*YH>1Vl;1ORs3|Kz<DqE%V`hzhLk`9#_C&ziLVAO!thF6KlI*W-A#6yMLk(n{e|m* zvD0^fj-%0%+3m4*zN@_Nesg`ya`i}Gfx<Rzhu4P%4o2k+7EiHsPv@-}v;9z%*4xh( zA3h^N41K`0-iWZrgbWP0Ph3LF<2aU-By@UIgO5oPlWWVmo+a_$^xj0G~Jtm<k^ zfrw<^ZL;db-;&PLASN)&d;_Bf*Z?lcj}}dmH@^1~qFHH11loGCelU8gVmLqyYGBIn zeW}Drp^AX&4JI~A^9N9l2Zh!9z8G9qYh*E#)1RzPF`R6c5JT#$abX+7pTmD&)1x5S zTnnF3FE=QPuC*BG2}JC?%pr2^?~nX40C^()H5DDEjapT*-gA^GP@_ZcxLHCK?+>vX zRgot<+zu=mH}tRqBS+4g=E>0;w@DeV?q!TGz??iKzKNLoZ34P)I{gJC!BpiUU}Nyi zW?wtt2afX0^>{O`QDNq$Pi^6m(9kK`-U0$3_Wv5aM6Msp8^#j41ob8Du_yY|?0>Vw z;UDfnzhWg0AA_^;*`Y1e9^Gkwoj-Kw7$>6tvm#BM@7tGjL0?UU4J+HqqQg^BCKwh$ z<BT%0&zlnrTo(x9N}sMZP`Q@Qo-QXoexGip`A9??N>+ub+{hXCIWQ7{+j4Ro$FR+X zq}O@@n?LkT9ea}xZ<a)&2jUa50%$h?aVV*%(o4cPUI*p}*v6yH0supU*V592u*DeW z)m*6pc_*t?cR+1SZMz%uTISrw=|1d&Prl_46Xogt40@ZDsa42JN#5rU!R1!j=JNoa zg$JIX<t8|e7y~xlV!vZW&v0tNWgQBXsrfd_fr~%%b6NI_X>_QQE#Ha{pSc#2MvAC+ znJXDhA00lZH7@R5^-YW~NbF;?Ze^C)HR_W-UQ`W;U$r)#3?O-+qJI(TCg+;roJKA2 z2x(XlQnDN|IR;r0<iHgk=1gri*W(1Ag!vq@;0$F`&xX$ZS)&^bSNC?7TpEp8e(YLK zJeE^9e%>7s@n+d@gClm|x|z7=sfwM1wfVimI-`jYU<W5}<5X#^Qs=(kcGR<pZuuQ! zUF<T6u0^EOL(nH|vmmHci|<*hh1afl5;@TQ!U+E3SV>F9OHqQhNeZ`U%*fH>{>6RO zfOom`-V&pvfutVqLT6KEt3@#7vpWh_sQ@{Q5TDHuFPYIsUE|%MBHwXld1J&pdvlj! z&2a$z4yy;LSh;|petO;psWCQLp0!8<QhPEzxg#WPeS{&+zL1RCi2C*b26FI@KdCq; zY%&b4y4*~PBYfuE6171+AvI;+#NQSPoJ6_td5K7Q^RM}DqUHd9M)NL(iErlq#1-(y z_6+xa26ogpm8A!m{#3tjbha<SvoXf}5EZ`L4&gvEf4ftpDmc&O)7PA4anKBB*(e2H zort#eV~cR?^`AYb5skt{QAurIqc*N-Ysuxa>sGw9Lci|{XZPu-O!&<PWb2Rg39!FA zJ)YsozE~X2_~4}97G}5wO-tMrwDN^RFZYDPj@Z{&yrLUl${#HE;v$f8G<#13V!%Sz zzk`O|KmTU>v0~oy$+~->b>LwUJG-Hhy&{6m^oKeFg_t|}EdP|S((UR&$*2AcYDdz` zM4eF?p^=acf$kstMfMiAWEYp~20$IT>U$a&zpu3bu3r%*zzeDgR0jKwK=*(~kYw}c z?Rx418REV<$c?Qa*o+~0H~)2m>>5N7b3Lo&|7LPu1Yu3Up&_AHH8jun-AE*M)r9v( z_=1~!<=VgehMbi-O5RIx=?(7c8}vHUo4&YnY}vSp@zE-4;ePtSO5PtbC3T4r@?Q46 zJtV6%e1W?Cfq}BPLRrif_(RnnGW5ezqQeh$(Myo>_(=1E76&(|@vPX<Ui{ql^U|h4 z$7zs3gM2e1HsIR4Z$Z`jVmJ^qsJmn=1nO9QJSRz0El@($S>EPSV}7i5a@=K+fue?= z%?Df#fL<70AF}PbE-Z(Vqd<ng3cPOUiaVb~w0hOB5C@#it(d>blF10W*xW3=6Vqy8 z%owg<t*r(+JTD{;B$Q&qDp5Hvs2}dUQa=k`D+@=d>!Py~Wx%87Q(AWZq+r+@Q=lQI znzP_;wn$;lG-dEAW5E5AQBw##Eb-kchx&bE^z<5(ThqcQ<)(%6|MtNRP(q)HjNRx| zOk-^mUkQncy(R*~YAwf<%x_pi?@cfs>}g$wTPbO96A7#p^j)yE?UO;Wm2`=>(NcIS z>ldT(!nacYsZFrD6ZpJ*W$6Ulal$h4U<A{T9bFOH6vo3^f=;gLbs;pip%nG@)ZblP zei_*skI53mNK8s75`zP6R{0M8m$8riH-6-Mr$>vri$5YGHTPP9(amnxs8!NU{rO>J zx#|KR9&FSf>Y{rh4$9NqR|xjvBB8nZl3>og8F?=WVn)T834}GX3~8r)@7tC`3s>T^ zP2Es>7_^7=_l@;ei(8JCkBQe~9XG?ihOe-D`+(OobDw7+DXNc^=R%o_!z(%n?^A-t z&)p;{!|3PPBcozEMv#FphEwJH@nni;^x3{*<hT&7EP|}f65s(<XG%>;fh{ky_wiYF zsJU7^&|pCQdR`Lsr!H!hxtBS-_6aqt0(n3qdOw9%F;iFSp{r;3bLIL__@lUF_hHqb zWuge+h9Abs0~o*a)#FJcSrmL@P*L)Jrv<j%VTDa)aYuM3qT+p=v#n+W`^*Da7{4c$ z7^I}Cfc&*-ncv+GM$!$0>v|#}rY#8x@d^7&yU%1<8V$PF*^Baz7*-|z(2Ycg-joJ| zQ10f+x}zdRey2585w}yNcznDo`>Jld+}7*rc!*A8zAlbvS|~q^P0T4bGivY(u7hoq z|77Vj5on65WGj<xJ0`enzGQA~xnf{J9jKbl;a;%)bjO5#EqJ(g(DJjfB~rxd!PV-^ z;!j?^KTcrYfTdqe&3n#L^HZTRC00Tdq{h2$0R5wya$7-mQQBzZrRdV|jd?{;R*A&6 z9iqoACAL}TAu2n1CT}RRF9c#j%nvmRY@QAE9>n-I#GzFkH<4_jnUKZh>Bi(zO)4r3 zix#7T^&3|Q21iVhTMYo@r9QuI>}sx9Lx+28tGT3mm3A^}<S1SX3176(BX}7<EedTR zWY81z-p(Q3>kR$mntm9-l5}kGW7I<P5k><$Umrj0h|;h7t)(RM+cRBu5N^u<Ks4c% z0UbDDS?d8Jnw+KgDO&YYL1pV4)#>MNFWm=ameqEfeoTsWDEnMD9MxoTbHTjdP>vTZ z={#1SNC!sem3RXLN~~2t58hK3idj`v`Z9ne!X%M>A3228DHG%Q?+e@8jt{d@W%IjI zA7vK29BH582oZEJiZY(6te-TeuB>-uNm6KXTDO>Nq~D1tzDlX4rT!(jy<fZUU8{R< z7*m7vwX3=nN5^23=k63-BDisxBlL`V*zLTfbbWB9pKiePpyGO9-)v`Iy68|OYGeP& zPPr4k=jwLci?3g<aKVT!Wl74?+PH}+cPIK}eb}_=x6Qf{>tX-fNq>-q$DJHM!r!Ra z=wBR#rCA6(5_HZjSyZ8<ZF28<P)EhqygK7p`Bvvn{;?4)oR7!iG;aOH4<Gpn?!4}d ziUS)9TC>Y3`yMThm=4*B)Cl_ub8pkTKZ$p$A~b2&t6$#~y>9<)@N(dhBLl~svHBc) zO<ULRV&$<^MM94qFF-(&FA#Y}Q9q?@I6*&#y8we}fKTlwK^V7UYlqFTUhO;k$@N+V z(_=j6;_TT*=O&8SMO1lThE-pA_G$L63_SK8^{PM3etX)OY{AE&!}Hm0Rt_(OMm~qL z#hlHkp5q~_bL;z*1G_PE$Z%tSz>I#&5B}b;E7C=QX143|!jKC#ZogUS4eXR6DEA{Y z>nM)2Q<aBI>tRKXoU?UN3-M+eJfZj^%}`ol-Fuv;kBtlw{d*yPC#RKSPEhtj>A|Qw z>>rg;L;s0NEPN_1W+Mh(7-?rIqb8l7Zf%-Jk=!>LleSmvUtFI3y#A=_?FnsrjLTJ9 zUNY*#_5jH-BN+59rAqQgz$^%O^lIQJQ8v^B9a+-$cIw{Pg#LxqFOC*M*WT&c&mY!V zi_~4fAYN15w@ndq@Q?f-f~Od+*Dt>-DEP_?QR}E+pDIs9uvr_ZJ(3lE*D%i9Hq;`? zy%ooYFMAgAGLQ1kA2kdc394vfGCrDB$E&YD%ME~j7a%e^U*~95_5#uqQzVONKf!Q^ z?SZ}S`DsJ=D1-Ra0n<ZzwQ_cHB%9+LYUtsvN36pQN#b^iA|^_h1Ij<gK_P5P=54Rk zS3bX?HP7uN7K!pGgo~{@n^whK3M0kGT|WAX<m0(lbX0p*;i-7^;|qD|>AWKWWH_3Y zH)d9O>pF?rahWP7!aROmkfY`JA;v<n2Fs=Sbal!L*rqTT-Qvnr3;p)quw|g?Ot|`Z zTK#C?)6SkBV${1C!S<`bWnGqwByi&FJy-7W>MqBT(H?j0V=T5wTv+}3&WdbS!>aDF z9MOfGm*T^4(K9q@Jc~$*LQP`INk!|+z7z6TX**Bp<}|5^IDmHO{KS*%v5Ej<P>NYu z)9`5YkeN3)3F39y6f?5=QqdW@UK4KDkxrII9Lc9P&#*jMyB{-ir<!`NY|WQ?f-5ee zX)G=AiejKdqI1<Du!a8MxELjzt_|PF3Aam1@otLWz&$z~R2QG<6^y6%XI+uZJ`{kz z@XkIR!Z>%T`n>x^0`$U2P?4U`QbclEaM43$VPrqrzcCi9QAjI@B;B*&g3%`4&H9=H zZx5Iv$vU!XYRq1SyckyYqW~CLQrYAqZP1$>wQB?Vi-QcCCfl;*2y;I3iArN%?dw1r zQ2yCjT7_irWvP|#jH?fj-q|QIW}K)<{sJv-&Z4_)@wp+|p^~`>x9U*gHa|n-YOMWO z5PL@7eSZD99>>3!A)zT?c&vHJ((F&2eXzch=2-shpgvmmlExh^9rPh5IOs6_o9M&X zZ*?#G5b9&@b{3FZr@v?_&B#+X^ywP@T;4L{H&CGUH$X<Tz}=9xCSyPC(O5RGxHElI z@<klIna|CK8dlt}vSiCm*U%nY$mLq+qp1@bc7>1!2w$|SKg;4u(V$@Iqp}_3=N7Y2 zg9f9Kvhdwaiw+(IbNdHv7kxVi!*s7j>K~_7#5BV^s?qfs<<BeWOA;^k?%MAxz7cDF zC*{q1*?RMfCVKS#(;+?XH5<{#V5$Q@N0(D7dXZ}UV6eawnE4dQD%lY?HLf=*#u7xz zzPl;|62i+D0qFgVGY$I@TOID*RHMZ9S3#k_3gKjA9qm;^B>mq6q+4V{6007TC#Kw9 zG1XZ@w%t>zeshVo2`fx25c2G3|5vR*0_G$q#nIPbCv#5xDSmk%!vIRcBA(D=ai=r? zcRh9Y;u`*;*n?RBq?<diykJflngbCP78lwA5(^oc!G$K8_8^T0Qg8|5S-c4m(J>2d zY$bRN7R%Kd^;cC<p4QSAXvYg(^r`_ldGA7RZXXy43n=jG{NKw!I(G=JtlxW{D@WFZ zLGLOOZ+Cx)XuX!Zq$rUv@8mwS?}sJE-#0}oB%CS+VL)f15xIbgByYSXm+bs#4c~hI zr<SGX?!gEBuC|@&@Ey5a-rT;F>4Gln5nF(g21}M?%%$=T-QU`HZ*R#3(ryvR+$Unu zi?0ju{dIuuHd?D2-oucb8bSOv`zSFgGYXOc1O<GdB={pr;DJ%0=6W%zpojeiFC&l} z#55ZH8&4Bs$kzX>t|Y&aM0hA^EM-Z8Q8G8LWm({-f7y{Zun@>y`2f$OyeD0{62vA9 z;$c4x`{KjCCggHdrY2lAc!sVxQ>x0w%Jk9+gJ5~Fjxofe$Z*J48kjIqRLpN{3DVqS zoHuYg+@Vh?r<QQdxpMuEby5a^v@tF>c9!j*@UNwP8NmEcrtJS4&J9OK2nc|H$3j8m zFKA;^gj~s2td5c>?ZTe#v9}RNvBG*{x0zw9nV>b(7D*GPMRP^Tg1MEjqX*VW$Y1)f z3nhRbP&b|{4#_4fRnAaglD~9*JHPRSZ)q`<oKn}RvG%aImtai&4ip!KvCr~1e!lop za(!Pj95b%PU(Xftl+P>6B@`e_-ic>H?>;SFPcjAzMOGXUOV^l(JgD|M3gNkH@I>dD zh}G)b*_6FhpDk>2G<T1*Q-;4V@?@$p_mE$ulQYmjw4l4+Y|gj*w-=yZ3_(X=wWu$) zRFZ+g!gud>8=o9CHj0S@87Nfc1dew~Ye&aVn)ENGM3>{!@la8t-!kynwO;5dU;QvZ zW8OZIPlIf(uVi1VS;nJ|<yC&F`)OO)mT6Y);hcnE;bMI0V|E-wd%5S0Ou`?xR)BM{ z=Bp`dv7J$d<o$73DAP_^%+$4V1I>XvyOIEb)5C^bQ7K$Km)oBwY~T!NXUC$L&ixGi zD6X}f^QPG64x3_2s*Pi+rt5diY9@L;0VLSSI%vhZ)`D2Mi-^KnW7P8}TEwaW`dIU6 zpJad4(~olB;R|;ORbrOUF6@EyjD8m<b*wSjqq5kfBj@am{B&-(h5&ahj>TAzwgI^K zo?$=hJ4DlJjh#xs+rGuR?&j9Yd36NBCT-JcPR!NfMW6chn-Z5}qw|KmCoE$=$#%U? z$W*ZPKa*$JY-lgfXzh4zj*+VYaQKi*mwY&zO&WY?J3e5dEP72{I}@dRxokfGU*Pka z7*YY5s!Vl@3MU>Tml%{nu|S>s1`29Zp4;CQ?xq12ed*%?0-v;^TD?p!^F{P?;UB_1 zs<fp%--%JSbGFB#?}+BI(KM-+hg8p$)h=+v&Bv#0JLi)svEtZ^T5bpHMh7rC<&-<r zg(ZwRy^DcAs2%2lVZWIg>Q)3jyU0j#>CiUwQp~JbHI2(SaLQh05ou}Vj0rKC_wL{+ zx0!U$*mDljyKwtt;;RoZhwKQY9Ml8M0zS6Wiz07~D~33e&n?ujOl%>X_z{^;K;-jK z+7Cl4o*``P5#WhDqaGMAcJK)znY1&)kfPI8#VwK#4rlFN758zbEeFX6Z0|^bE@$?Q zm9jkD`c4v(7B+aB`MH@y1eh5O29pr{HiVoRg09B^qaE*Tam3Y2`^yD=L^CgZ*G;ax zRgO2VI|Fg4t8_6Jw;Y*nqO>Ld_+iQW1Z32wt0DsS)+h#4`7sWyCRXTTgwX}rCJH=} z_mT?SaN<?e&CXQ;jq}^yHcLKc{YlUjvI>*M&K!|6Aq2p+Kfg3D4rEUIJ?3N{R3cw| zr9Fen6+*CC&5Z=bLemU3F3q)!F{2sRBaYGvT&^wq(&LD=3@KFD)*Z{u_nW7{6K<^J zz?|<Gr2X{OTrw;HP5!X3VqG&>;;9-1(Cglg*+aX7Ox5}Aspwc*uch?yUtiEXo$~DE z({CWXYG+KMWb+SlmkyeftA?yqD7{^66g1Buiwvmd4%PDrCBBzHFQI_$xK~Qj^2Ypc zYTPS+k`_f}ZOlgGEz3fmNE+MIg8l1EG5W$djO62sWcv{(`<`<?*J1Xx4C;aO`U^G! zMRSEz>P?QIpD)yoY~j&qQ#!q-WP!)J%-1rDtzoj_nTOm(_7#JC@Uu}P95bwl{qUQz zr2lUj9?(@Fo4FdNfVQz)vR-qMt4aN8i5wXm*418|Dk-Sn?h*%;B<U9{LRp9CTAN_~ zd{7^D_N{iR1`nmzGGaz-Z8+Qlvd$w8^`$}MnVR?lD{3uc-!!3aMYfu3pQ%Vfp9ukF zw0V<xiXK)Tree29kFv8UFha9<4gJdl_{Iq)do@zbH^)K#%AsC({>AuZlzynEa%RM1 z?>^Ola<}%|t&!gaO_#s8D-Rw~O#}wHn9Z{l!t8hr=48rjNn(h5w$Y@)4(_h{q6twa zslby(ftI&Zf*h~MAO_zBPzk@?gV2QfOLVi-tzJuR&Je;R$(#oJp}_D-H4zFw#$?Ei zqeek}MRmyilblBC(SKZ)ClLu#<w&Vn&E1SwVE2amSVY<^i1k~Wbi^c5Z)K?Q+!M8= zwoRlS&bO6~m&NK$PD(DtE8V`w+xI9QJ&av0)a9(j4?*v(`Tl9iE$X%Bx0thCy1xzk zUMOdDc(FCi1>7^aJ-nAX==zzsVZJo3(k*x=JZ5QL4_^;WMQ0>e!nV?b`2M&}dV1h- z=?`SADaQWM@2(DYY}i2(GfFv#@~Th$MBGm+hx3O~cfV{aU-7J**WAf{X=tmvBglnv zyH+NhkkaOn%~cc|2E$0EV6bk-d<dmKA6P#eDwt$!_g10;4C+6OlHD@74dy^=WEOV$ zA<p~>`c@Qjl~+DL(w%{dVSRT}bK{)3^d#vJNY56@wn2wf4KI--CK1kc27awkJvkar zOYqF;9SQ9nv&8XleGczqqxPxVUNmbY%Rfm{+WjvGBkpIWe!TYI0E|+nBylfjm{R<I z0GL;Q_mzDa8>I|rn&rdU5Y2x9m{8KRs1lm)iKmhPrFhKfhkcJ%eBPVMtq5UNJc4mH z=qzBPIBr`gaKes&=hS$@*o=*LUSA!=!_S0V@v8A->rT1@R_*`hcm5w*Z~w~{^y1bR z_r9f^A(gKpZ>&@_<mv3eNGK(WU^_134+-#~Di3d<QCsu>cP&ptSMnbISWS_5Sr04~ z^&i^J7m0=c3BizK?5ymp=Y0Xr=VSrUQ#;Jz)c{s9A1568Duf#U|9ETBQ5vp?7Xh6i zv;~W}{Vqx12_?nSH|`jVJ7Cxm-Zh0o?5<iU6=GDc=YNedR?>Rb;K>fj*`&X~mMTVv z2P#T0p6-YP!5V0o%qu-{Q=YnER1e)(*hbStd=uO6H;pcLEy3%Cw^v&I5)rHuCs;b> z`oyIM#h>gg6q!~0RsoH4zb~`ZKSd~X|7--n3c$H3UT!yEo*Cmv$g>EhF|<v^_m~z1 zv3}1m89;&i69jk_Ke~?qH1HSmWViT4SG((yz42@{npywBGSieqiGMw_wr3J!bPg^O z)oRdl1H=oNHUsTI+tv!iO!s#?!9_SP07dwp>1M$&-p=bg=P~8;jy}5yC30|+HCs-> zTGCGH>gW~0?y9Gzk6Cf<n9I&-mgoRFiQm36{x;@ob<}k;^{lx)Jx+!{5<@B?AOGx9 z8YyqhdfxMM%TM>5$|Yt&(P1DX2@=y(*0+Ar7#5qmz83~1NLb-JV}#65asLIz5eo!_ zjCFb!Q;e~0Z3wQhEQ}dcRgo)0g6F756azLlezhlf2)LSD>;RM%chCQu7Dr^sT=;Pn zyKgoui1Py&3FYmwq|nBsnoU&eT*()ml<_~gHyo1DBaaL$(W~~ev&Qu_&rkXF9vT3a zNG_UDNKdY3DMy2;y>hAIq2<QCk)=uE0_-hMdLmjEal+eIsntwAyU0`t`;W6@2jqTG zIdTmt^Y53=8r=Ej8xs=1rHCs)l3KpH%@yeQ(12<{a^k!mVeLJKe9hmIJVp_myDmHL z{jyhe_ZCDZoPRC(!<V#lYSPoO@I(m)h(Eb~hqfev0OBEO)1RX$%0Jix|3AAY&VMC) zPsdI5cW+T~7agJT5ev$q+x16>wYwRBku*7#m>`jlOqwQYkNlEH6dM!cfy3(WQ#4(> zt<12ZN^W;OS;m=5_-YACtjWTMT(fRO;4nMw`MYu(WvMmDV~u4p<Eg^*x^maL>G*Qj z9QE3#<@(pJ<8sE^CFc|#I|~(FC$s1=DyU<9#$@F$@XtuHF?iu;By7uS-65m_A?iqm z%DJv|gxdbLxo;~Fs1IE~t2}XK9>--V9|oWe-5v9SNnEq1FD=H8R?Dy7*K2Q}mz|ke zIs>14bWN=feKnX^t38!D<eb-+y?2Lw#X=byp$<4*YCwb-3}#o&ajqyh85`-fH+>Ow zEE~QfJF)Xm#kUZC9|roQWkP%j{zS<1iVpKfW=rmx1t;98x{htvF$Rhl>6k~gx&hX- z>Ro%XaP@G9>si|@Ne-g@=GfPqDQ&SQ|Acvv4|~to4V=!e@q<mj?)z}-FZx;Ngk;pU zB}18q!;Hr+OBK|c>r_owV^`LTd@ucKTUE>BG%*}S)$euzg|Z1#hrVw|tj#*NFL*bb z8Dz{AeJE@NqQ6GpIuBZyJWt+zx|S&yDtrnpat%^EU9SF>aDleHnI=|MFpqqK#C4Be zM{Pm;NuS*mh_xy9;_XyYTvsSub(ih858-&47>PxLV;{+9Hq)Q%KdaG;zl|7Urc@;Z zZ55@OE#7}Td?gP;c-?o55s#a%3Q3t(yofOP5p)H++z{8Ucxt_<*|N5iVJo-cwBW@D z9p*8S{43Pez|g-^uC$b-TOh0}1S@Vr`X2O_tZ_LjY|7@K+4Eo-E~w)7H0%B3z3fSO z`WWT7<;i-y`W&Reg5tMPo-iNV@u@(ZAnFrb*xefQ#&jJRO<<;-Ova#mQ`aGc=50=D z`}G{w+Z4XMMZO=vSS3IbF9!_^W)&M5Iy6dsq?V4yPgA*vA!YK>Vg<)asiL7qb6l&l zgE^AD3hmC54bk6$d+ymS+}bDzY;K*s`KKhYU<o71_IhKj#X07G%5`Pb&%BRcAi86? zynL|5xGD9m-p(uye5F41BoGe%`C+#0`EPa<yz^l;qSg)8F^vefi%~zRF?_EiWV@`s z*_^T@=nueI4@;Xo4H#^5{wU&H!8B;0=7)XOiwd(dP)>eJW3{j9b2>EmT&?_3rTtLw z-1Rx!oWAaAvGO=jx8Z@xRmx65(QEWN1dXFE#t`!ARvcD<{8<Y}gA@v%WsJ-0w{VGY z=j@KCpj9*N5t8?k5+LG*Z<8Jz;Nu*mdW6i4k`XmFN;e@(e7g6>nN1~>_;8~p7u9f6 z8xXx7HcdJ%)AypeV#u>8(ZxX?SZd}&n-M+5WjXw1Ua{uQV8j5#(sn6Y!tK_phJMuB z-&YBzuMV0?aB;zXkaWm~l7Z4zwxNps8pJF<jTh690d`k7Z~1Ji5yZM;XrV4j8Dnhz zU>qWw@EfEi5~|KTk>z;`j4wXIh!@$vKd2vcyf1Tayp?Ktc+l7{g~I=^*ho_zon*D1 zCSC9THkX{GlaPnDKZyvFLbLCMr_=YwN)ER*0WnUmFzI9TM&H=uD>oFBj?xwN|1H=h zRsI$1Xi(L!Ppf-z`qHCL<)E01+H(EHWGKsQ1h;%B7w-rQ>a!uUAEVi`g1UCway}s9 z*-qCnMW9@6JId=eKuE;<*+S5K73OQaHh}!XPszwP&Z2g%=Iz>k&Ee%g^OxznF=Eh; zFM6w|V{JKOc9i3RX$Rd(H(IhUBudMhgrE5**?)3J47H!#+MRq{5qfo>|Dc>z?;JJS z0%s}eum8|7nmDa!Gk)=(MY_fak736DSEMUL3Tn^m&0BQrBrZ?lt(WZ&7uPfu2N+-d zafO@481WD^k0ci?<!QZ{nc0XE8fiwZQ*L6p(0QorSN9y<?|=`dtnEzDol^A!jm&tx z$ktYT8i<t(y=vldsERIV+0vQpq5W~>9$sexQqt_33VRHC&d@eNB|Orvx|({G^{Baj zqvnP&Z(lu)$&G!u*x0BsLYLf3o-lFvic;0okoctS+wjX^5KKq7H$kU2v5MMj)9N5} zM-K0s8VdU<v4DODJH78C#D~9nBdVwm%#gT_jS)rW-PiaPW`zB2W*`4=py)Tvt3(`# zHY911o#B%Y@9lb4HI%1)P(MJk$OB8Pva2vxU?Mp?2ZL?UW1IL~o0Pp|Wm=3NK6QqE zLl^1%F_y$y3EG?fzi{9G=inB6SmQ?XkI{7t;ATAvkPK2YLt~e__MW)l?|v1udXNh- zxckY0(sf{Kg5}}AE#H3fzh}ca{Tz+gB{%<5D;q6@QA9)r&m-^62jlY?3EW79sJ>i0 z=O%jER`4BAURk$_T@kjTf@}71q3ga(qY!%3=XMgj3~A6iz>ahcWz}mOU9FK(2&Loh zyzb~={G0OmyR}UP>{0}~9CBvFcd)DvUGk`d=S1N9J*|q$%d_y(Y2D=PTX69TYuN)` z;;g%|2@51jQsANO{bIJ?*4<4qH<OWXp}T7tif0Cw9oGs(7lb;G1d6=tfv^a1N3!fG zMft?`3Tux>bO)s2$tDtBQwZPf#q!Ndr_;rl68Va)1aJ|zC>oM=>I3i|UMCv-FM)6W z;$3hL+@H=rmPD1PV|>&g>^U}ZN;Nc7&0py`Nmy&MXpT@@I3zAg3Tp3I*JxInXGrD@ zpac8+@G6DOOYdUq!^Z9yPmYSk(j7z>%5Kq25A@YtoNb-a;X^dtn0LXdrULB0s81NI zBsS5bnPqQBK(M47MtgKgtUCGPs03??`%L8nOBv$)2M}I-679WIlt7|F)Rx!>?f)d` z`42{!8E<sCoWA`t4!LH6HPrf&dqq8Hh@PM=Hbg}!N^17EeCgwaGrG-6i<cb>^c=|O z2XiLuoX<8KOi~ZTVmOb6$E{@)8{@}FWvdVPwnJZDiJKTl#+3)=rpkKB%A4!v97G$N zj}N$?bJ)Uxw!QP?wWaZ#8IdIj!(;8Bi}+y8K^<vszw8u4#yQK;yh+2Qk|wotcoiDC zrT;Kf=b_Z&2QYyL;ZYvdquW|1`pL8}u^2K_y&q0I+Q+6!fOwA-9_D}4=`z%JhO z_6br^L{k1aiiRqW?qIX+R1=UTsTejIvL^H>w%xNPtu9weZo_%jB-@{0<&MBFKl29R zQ7z)l>FCg<G3gJsG-6jpEEz#xh&L^BL*&GZFUlDt!W}4N;OB-D=WB+l*pw?W2VZ6u zHmaiRG**pz9%e-F_g_e$yW^;<N+**bl3@@9cWAY&Tkdvs&X=5saway@eA$;f^*Cg| zmYM8dQrx&~e7aD1h)?a+Yn4rO@AOG_dn)w-3x_c%=Yy&|U~RyyGQZyTRsBRGymB`y zNg?Xf4br<U;;sF!J#x9+`e8b`wcOp_)dAvBe{LJazR^IEq()6BXm0JXBSW8bC`=>w zu0(n%i;Tcb$Rmzw6>Z`ROA|<`S>>+5m`jt^6_$R^Wgz(=!y5N}7r^6CmmH%XES<)U z!)!X~9_DPa92<t-8@}Q%oU{)K+X{Q3h;8z(i)Bw9&5Cge_0Xg)pk!Y&VI$}=T=R<X z0qEK_g=GMZ#kAqw3wR^|ACSuuO@LO@bE5t*$vC((_b<-v7@86$aq<4<`cY@IbK!s} zPC@dz;ogg7tzCNnM`jzpYURR{K{5WK@JH#0vq6pg`IqrWd(xf9D^AU3oZf`}7|UNL zq9tkm<ST}0h|7ADkF>lZ@1xUA)Mk+E#%7F@saHkysvEsYp(lWoesz0U1pbop@<H7Z zeiEB#V6|T@$X)$*i`L^zzVaK_Ar+c9vB#@{{@T=0H8#ZwwC!Ge9A^88t+x831y`-S zLUsSd>9F`Z*LucrL*#Etnw~p;z$Wwhaoq9KS10d7^VMu-2UTARNb_!8PGxVY(XV7? zHLF|7$BMD9c}=EL3v!R1(J?R1=@k$6Z`pa~#{0LEPe=&#oiN)32Y-mv*Y>3-RCT;8 z@*Ffc(UZ~3ooP30mQSANPPN`&r`T4lb$#JAF0DqScbEn+9<nXLaHqbijrZk2M(f8c zjMvIbF9QcXr4(v3Li690X**$ria-oJ@K{;;axNcQuYTS`tJ&zmpxf+n?CyxOb0gi7 zv#N9eu0|YDyP-m<hi)keDx<i`d*SmU;coS}At@h#v2HN^K|hlR5NE)wa&3F~XMCY8 z3$uD>yY{Dy<%0a!`Nyj?m`_W#n^d~QZlur-^@}7~;ZbH7T7RQe$R-&uI8nR(LAjZ# zs7k;=o^`mh`Tf>2s`)t1O&f|A^PH&IQ!yWPp>&1#aEGBG0wdOOg6T68K0+IBghun> zRC{a<necNJw5?T+1ceqc2rng9XCP|rtODp>=$n7Gz97;NX6cj>JdFO3;Nm{5A%7V0 zL<Sic-q~v8X+sG7?3x?@<@Hi~y`{{@kcr6GD#)kNPqU<4Co=EFmkv)F=5V>vZ=-_% zNnbv+edzbxzA1cN|3fZkZ1;}wbV>zk$8er>ZiDZPxX)>E0IG*IQm;|8GZzx|9WoC2 zgSbrIFzyxCSmaXK>@?is5>=1@huHAc@BNxm$J&VL9hHp}#x+Q~$%R=yxmYD=G${Le ze*8F>-aw)EpId6wMiteGAwD<f24$_4ZmMj$!Myxo&ZzcueQv5bgYUI<FpOt;wL=eX zCk7f&^=qyA>vx&Cc=KJWJo)v8(Wu`S4%emS^Q9Cb@{ZPXpWRr81vP&>l^A>qzi~+a zE3%>WBn|=^en~by2sICocR1^LF*#Yt5rbBC_ZgVqHAJ4FLp!#Av~vQt)!0B|zgQfj z627<b?iAnPu3$ba6Wi-|CY~+gW7UJ1x^5<Nxz~PyKmT!?61vGKM4HNvUK+Kn$Z(ga zGpQ_pHpGi;8dC*TI|F%MrFXS=|3}KyKjv)Y)Z*jod=8uTxB>pggfYT#%8c<(U+=e5 zN$T6wp}m#2ai62u1^Dh>nE$l<+(wqn3W-g32%-~QuG|ky5wiRZTljZ06Cc7)kIhT$ zBfQ8rUiEy3cOyOVKSHLRL%%k8KaUE2fM20Lb`t7GdTsW`bLV#SsLskC-7~_%Vn%EK zHg;HIRBT$}VEFK=h=c6HU#An+JI~`&j)#G)cc>JJA$Py{yTw<-x_CiO2_Madt>vyX z{@d#Whg;HBrU~PX=bD%Jq}%@=h)V3YdvgQmh7w873;jgV0EMOQzeHp4fv5K?6JOx= z-vb8dAe5-CuYn{54vu7C8wh<x;&RYk>aNKI>VKu)yEgu1fhLlyGT|-PH3m|tzoEZ> zw<hR3HoT^#Ky0G;$ha?FG?ddQ^ke)Eqi^B@_|O$>J@=8V!nzSH-I(vCGZke-op=6X ztX9>gtHl4QOEYud`wrr!aF4e(RgH>|2v?pEdj~=A%9c>rLi?+z8w!o<Mk*K?{dcWq z$NM1AHvSG53S+-=n6A%Gf2}M|ntjdp7%cizjYLF%FcBa8$^b?;5uc>GMQ|<Z19UrI zdjK?VK7m^rNx12ln_YuZblvANu30}|BE7^-O(7Lq^|8;#>=CuW#CkJKYKg`EzcNGi zZ<k&_y3dQ0eaeD6p7Z|$6@bwCm*%^;+$;}3JLtSAlO!1pRL#Oe)E}K?%adeflpCk7 zJ<y);>l$*LC94uW;cqT>)IFNvnWF}IaZg?Ii<0Fc!6Yqv`=QE%pB?6PF6NrNeqXZ` zhCs3US(PjzZhYL}g1GV>G3(|CG&5&`ztuKo{eiXX*S?{uIUl&qbfug?X~IdM$yg|# zk)z*}NC95FFS7FX46fUH-xR_g+{~;AUT(i_+9DlM%=l`CN3YOJq!Dq}0>KUMy*BT< zV#6ohgh~^xCGwYo#Acw(rwtZenbnN2`SU<^g_szths5`YLG^`Swo@KCW=>!7HoM=a z!4MfuiM|Zw*S~HrO~J$vZ#ISdaNb1Lq2AO%^$+JkDZ{B=Oo$7^c`jFr=#NQ3l}7kv z7mtQND)TzMPH^X3rr44(=_XJQ`^hnswSOnw+wbjG?(8Tzr@VZmn#>n{)NtmoGt`gj z*OQ(1uhb43D;#sn`?%a@e-%4oD241~qa8lj^5&fY{q)0fw;sstVoylb67iMJBPiaY z*V%4*^Ll~Y?k3@v;bf!iAC1DdqZK!lkb#i;svCUhc2l49Yz)e19nC+)&iO#)P$zyi zOyBiY{901rFQW_gqH2#*(Ghqp@`C-o+Dz<E9g{vTR~c5%XY($JLFtI|kC(4q4NQ+* z(~krCqp9~r!yaLu3sBYQ-;`8fjoUL`RstO@PGyc8zSyP%wx1%N;cVsFU3#*Fyn*>B zU&P>1NIws<!gtQv?%Z{`-^I!J!*QpRz;6C7KCPtLJ^u@9{~2RX+*h}lJMh3NX}%$9 z<BP2+50^^#FYHtY@k>alFX}|V>lkp<-?Zsb>CwJojzh%=uKs<A0Ikpqd(*91FXPb0 z?;gcxmxXt#t+@PCb(Qem8Wf1Aq(nVC=lnwAN=3?i@ZQo#hIX^K$u$h5%|VL{KRI(9 zI2xZr&7<8uX*RdP&Yg_go5su<e)$08pd!bqh$r?R#R4?StkNt;f+4MPqNm@rKXIJS zDD86m`dT)Br|8|bD0norGiCT<vp_4J)i$*5fPW$HhKD8h$De?G?RUP{X0i;1>(p<< zJ%H&x7I&?Hvp`-Qn8n5?;xC3Bp&%S{F8_X1V;#js_$mbCXj>sur!8PtS;}8%^iRr> z3f}HL@%EoPloy9P_oz$0r6@|l7&;F13lk_LH*ieK4C_JN?p=)Zd>GdQgJeG~cJ=oz zuWk=e{s|_#>5pceVvv8;O_hSPMRji44bGt(VxK>%x864raw9a!W%A+v<EcGm_%SpJ z(noSUGgXv;{!q;weirFoEaCLnmf<FV_RAa*<GrL$q%7<WNwMy;T3F{teFqs8Cv{!9 z{`2cF7(~|v<uIurp4p&36n?iVx;w$v&6yXjTTA~oiRNJ7Szv}Nq;Y#0A#sTz8{O<v z5P+Mk;}gP+1*+eAdf4wMC`wLEoq5*~S2yKJY)_BpB^vlJLNSGmYgRT3#PR8MIbaLI z;pOosI}+%i!|?@i5Q37ZrLf4PMaSrrB0B_k!W@_@=NcX|p5%AoKs)uU+~tBD3|f?` z&6l7*b*sq0R$Xc;wL5(@dgfrgTeZxQ@y-{JuR(80nWR9baXJ}y_u#GfNsqL^ko>o! zf+@zS04a4!Y1QtVt6xx6SIos<M<njg&oveSzMH_Vmr(apqTWo>&Yob{7UHv5-27gm z!35lp&jh#LJqV$_-4s8fLBH_~bQoQ5#rA~k<uXx`0S=-fNLt&aJTvXfyJueEdI0bo zk#0u@){is3+_0(`63#ZG?tPPjaZ{py;M!HVk>OJWtRdNE5@n2d82WtxnwpF<V=cKp z3p@qHe{>B<2OPgzMTH4*RQkjd(U&x?yXODY;~=o#7pXt+s0rc*>}#*;(^tb!x9wdN z?z6ZJnDF4EGD3jU&aOuFJB1P#dFcJonP&I`@MH&707e!UM%$fg;9nAuy|;a+!0VQP zW3H`N`0V1N@ts__zDL~Fjvjiij8UXa4_|F8sviXvnKGG*jv}hqu~vfM*2y&2hrDl5 z>Lbe>+-tFqIj9b*9%7NK*{83A+tN7j7{JCdoGFkZ^D!bu(0T%&E+GJ~>C8MmdgEU~ oKeHoo1IdE6>k!jZ+z{E;SyE&D8cgsnG~Uuw)m5ofdK32l0C1$4F8}}l literal 0 HcmV?d00001 diff --git a/book/images/intervals-overlap-cases.jpg b/book/images/intervals-overlap-cases.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d25c41b1f53bb20631a30ffc603516e3fd4bed87 GIT binary patch literal 203740 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�`Gwb$tQun4pY8Pq` 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 literal 0 HcmV?d00001 diff --git a/book/images/intervals-overlap-cases.svg b/book/images/intervals-overlap-cases.svg new file mode 100644 index 00000000..b0f003d8 --- /dev/null +++ b/book/images/intervals-overlap-cases.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="417px" height="310px" version="1.1"><defs/><g transform="translate(0.5,0.5)"><rect x="25" y="127" width="80" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,128.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g><rect x="35" y="145" width="60" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,146.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><rect x="25" y="74" width="80" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,75.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g><rect x="75" y="90" width="50" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(95.5,91.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><rect x="25" y="28" width="80" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,29.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g><rect x="110" y="28" width="50" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(130.5,29.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><g transform="translate(167.5,30.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="182" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'a' and 'b' do not overlap</div></div></foreignObject><text x="91" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'a' and 'b' do not overlap</text></switch></g><g transform="translate(167.5,76.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="233" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'a' & 'b' overlap, 'b' ends after 'a'</div></div></foreignObject><text x="117" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'a' &amp; 'b' overlap, 'b' ends after 'a'</text></switch></g><g transform="translate(167.5,125.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="191" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'a' completely overlaps 'b'</div></div></foreignObject><text x="96" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'a' completely overlaps 'b'</text></switch></g><g transform="translate(1.5,28.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">1)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">1)</text></switch></g><g transform="translate(1.5,76.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">2)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">2)</text></switch></g><g transform="translate(1.5,129.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">3)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">3)</text></switch></g><path d="M 25 8 L 75 8 Q 85 8 95 8 L 138.63 8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 143.88 8 L 136.88 11.5 L 138.63 8 L 136.88 4.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(70.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">time</div></div></foreignObject><text x="14" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">time</text></switch></g><rect x="56" y="180" width="80" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(91.5,181.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g><rect x="26" y="196" width="60" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(51.5,197.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><g transform="translate(167.5,178.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="233" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'a' & 'b' overlap, 'a' ends after 'b'</div></div></foreignObject><text x="117" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'a' &amp; 'b' overlap, 'a' ends after 'b'</text></switch></g><g transform="translate(1.5,182.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">4)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">4)</text></switch></g><rect x="26" y="250" width="60" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(51.5,251.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><g transform="translate(167.5,230.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="191" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'b' completely overlaps 'a'</div></div></foreignObject><text x="96" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'b' completely overlaps 'a'</text></switch></g><g transform="translate(1.5,234.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">5)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">5)</text></switch></g><rect x="41" y="233" width="30" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(51.5,234.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g><rect x="25" y="287" width="60" height="20" fill="#fff2cc" stroke="#000000" pointer-events="none"/><g transform="translate(50.5,288.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">b</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">b</text></switch></g><g transform="translate(168.5,287.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="182" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">=> 'a' and 'b' do not overlap</div></div></foreignObject><text x="91" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">=&gt; 'a' and 'b' do not overlap</text></switch></g><g transform="translate(2.5,291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="13" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">6)</div></div></foreignObject><text x="7" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica" font-weight="bold">6)</text></switch></g><rect x="90" y="287" width="30" height="20" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(100.5,288.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="8" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 10px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">a</div></div></foreignObject><text x="4" y="16" fill="#000000" text-anchor="middle" font-size="15px" font-family="Helvetica">a</text></switch></g></g></svg> \ No newline at end of file diff --git a/book/images/merge-intervals-cases.png b/book/images/merge-intervals-cases.png new file mode 100644 index 0000000000000000000000000000000000000000..574438a9f7a35709b47ef8424a533075f2ba1e3a GIT binary patch literal 28966 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 literal 0 HcmV?d00001 diff --git a/book/interview-questions/merge-intervals.js b/book/interview-questions/merge-intervals.js new file mode 100644 index 00000000..10192cbb --- /dev/null +++ b/book/interview-questions/merge-intervals.js @@ -0,0 +1,32 @@ +// const { } = require('../../src/index'); + +// tag::description[] +/** + * Merge overlapping intervals. + * @param {[numer, number][]} intervals - Array with pairs [start, end] + * @returns {[numer, number][]} - Array of merged pairs [start, end] + */ +function merge(intervals) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + const ans = []; + + intervals.sort((a, b) => a[0] - b[0]); // sort by start time + + for (let i = 0; i < intervals.length; i++) { + const last = ans[ans.length - 1]; + const curr = intervals[i]; + if (last && last[1] >= curr[0]) { // check for overlaps + last[1] = Math.max(last[1], curr[1]); + } else ans.push(curr); + } + return ans; + // end::solution[] + // tag::description[] +} +// end::description[] + +module.exports = { merge }; diff --git a/book/interview-questions/merge-intervals.spec.js b/book/interview-questions/merge-intervals.spec.js new file mode 100644 index 00000000..da875e4d --- /dev/null +++ b/book/interview-questions/merge-intervals.spec.js @@ -0,0 +1,30 @@ +const { merge } = require('./merge-intervals'); +// const { } = require('../../src/index'); + +[merge].forEach((fn) => { + describe(`TOPIC: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = fn([]); + const expected = []; + expect(actual).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = fn([[1, 3]]); + const expected = [[1, 3]]; + expect(actual).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = fn([[0, 1], [1, 3], [3, 5], [6, 6]]); + const expected = [[0, 5], [6, 6]]; + expect(actual).toEqual(expected); + }); + + it('should work with other case', () => { + const actual = fn([[10, 99], [20, 50], [9, 11], [98, 100]]); + const expected = [[9, 100]]; + expect(actual).toEqual(expected); + }); + }); +}); diff --git a/book/interview-questions/sort-colors.js b/book/interview-questions/sort-colors.js new file mode 100644 index 00000000..daee44cb --- /dev/null +++ b/book/interview-questions/sort-colors.js @@ -0,0 +1,49 @@ +// const { } = require('../../src/index'); + +// tag::description[] +/** + * Sort array of 0's, 1's and 2's in linear time and in-place. + * @param {numbers[]} nums - Array of number (0, 1, or 2). + * @returns {void} Don't return anything, modify the input array. + */ +function sortColors(nums) { + // end::description[] + // tag::placeholder[] + // write your code here... + // end::placeholder[] + // tag::solution[] + let left = 0; + let right = nums.length - 1; + let curr = 0; + + while (curr <= right) { + if (nums[curr] < 1) { + [nums[curr], nums[left]] = [nums[left], nums[curr]]; // swap + left++; + curr++; + } else if (nums[curr] > 1) { + [nums[curr], nums[right]] = [nums[right], nums[curr]]; // swap + right--; + } else { + curr++; + } + } + // end::solution[] + // tag::description[] +} +// end::description[] + +// tag::compact[] +function sortColorsCompact(nums) { + let i = 0, lo = 0, hi = nums.length - 1; + const swap = (k, j) => [nums[k], nums[j]] = [nums[j], nums[k]]; + + while (i <= hi) { + if (nums[i] < 1) swap(i++, lo++); + else if (nums[i] > 1) swap(i, hi--); + else i++; + } +} +// end::compact[] + +module.exports = { sortColors, sortColorsCompact }; diff --git a/book/interview-questions/sort-colors.spec.js b/book/interview-questions/sort-colors.spec.js new file mode 100644 index 00000000..da394c2a --- /dev/null +++ b/book/interview-questions/sort-colors.spec.js @@ -0,0 +1,55 @@ +const { sortColors, sortColorsCompact } = require('./sort-colors'); +// const { } = require('../../src/index'); + +[sortColors, sortColorsCompact].forEach((fn) => { + describe(`Sorting: ${fn.name}`, () => { + it('should work with null/empty', () => { + const actual = []; + fn(actual); + const expected = []; + expect(actual).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [0, 2, 1]; + fn(actual); + const expected = [0, 1, 2]; + expect(actual).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [2, 1, 2]; + fn(actual); + const expected = [1, 2, 2]; + expect(actual).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [1, 0, 2]; + fn(actual); + const expected = [0, 1, 2]; + expect(actual).toEqual(expected); + }); + + it('should work with small case', () => { + const actual = [2, 0, 1]; + fn(actual); + const expected = [0, 1, 2]; + expect(actual).toEqual(expected); + }); + + it('all numbers the same', () => { + const actual = Array(3).fill(1); + fn(actual); + const expected = [1, 1, 1]; + expect(actual).toEqual(expected); + }); + + it('larger cases', () => { + const actual = [2, 0, 2, 1, 0, 1, 0]; + fn(actual); + const expected = [0, 0, 0, 1, 1, 2, 2]; + expect(actual).toEqual(expected); + }); + }); +}); From cba73a10f86e70682fc5866f617932acbf7f304e Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 11 Sep 2020 16:17:59 -0400 Subject: [PATCH 049/108] update kindlegen --- book/config | 2 +- book/images/Find-the-largest-sum.png | Bin 16292 -> 17918 bytes .../Recursive-Fibonacci-call-tree-with-dp.png | Bin 17827 -> 20798 bytes book/images/Words-Permutations.png | Bin 47291 -> 45376 bytes book/images/recursive-fibonacci-call-tree.png | Bin 52743 -> 49993 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/book/config b/book/config index 2134d494..c95ecf80 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit 2134d494d3c1834f04871f315983a3c5ee571e82 +Subproject commit c95ecf80705c3c41e570c095574fa4c4affee732 diff --git a/book/images/Find-the-largest-sum.png b/book/images/Find-the-largest-sum.png index aaf93568dae70b0b3bf0e5c90ddc6f896a0e153d..a2e2719089c4b0aa36390fbf219ece7cf89b7a46 100644 GIT binary patch literal 17918 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 I`{2d@0*ys<&j0`b literal 16292 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 LD!eHbH}v~o`?myP diff --git a/book/images/Recursive-Fibonacci-call-tree-with-dp.png b/book/images/Recursive-Fibonacci-call-tree-with-dp.png index 06beb2e6f87af7fdfd16e8f7637db0b6b22710ee..82901be256408dfe3580ecb4751bddf2fcbd46de 100644 GIT binary patch literal 20798 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 literal 17827 zcmeIacT`jF+UFf0Kmdi%d+$w(^cs5ay@MbGL}^NggkF^<RiyVWq97=}D!nM6^xh;O zz0US`%ADVv=gc#+=B#<&wdVN?vI0Asojd!!zSrk-5u>ZEau=5h7X$*`RZ~^e2flWK zKxi!xEa1DO7WH`G3!0a{iae-hm}UzEf`QZ&<qUn%_N=fcNtM#>C6=+MC7-9q7qK!k z@KAzj>^wj?=z?{SK|2aDv6ko-6=mgR!Gb{|WkWJ|LL4F%Y}V*S2n2FRuO6KUtn}t2 z*k`xza^d!HCm3;B88EW-?Yg<L(rwP7ar|zo(xYpHI*h|s46{Cw0p8`z&_j+}Rwa*- zkJN?5FsQOZagpfb%&O8*TqtHe4(V<wsKm-?B*(}m_`Fym@T^WE=%S(7_n=_EDfqhi z;^uOHia_?N-Kl6Kl{<aEKUcPm%eX4Te>F+vEITc&q{6VgQ)O$s*eH$1Y*%F#Mf0%U zRRQztVyAZM1+C=d@N3EQv)#8NlhqcDVjG<ic$J51UrH;dfkW1P&b(h*yUd*5W*d09 z*C>-80(vdxA-_b8jH2^bovN|25PtH*RQhDvKJcD-1BYx%?inXTC=`2dG_<h3*7AdX zwfQ^sy_vUBUVcYoDn^CM&kegG?~>Mx#gcOwa=hSk2wdBqs{GMKBk@#qZ~oIOO#E-{ z#oDhWD(w4SR2Y<MS6F}YAGdd4vFVm%f)J`bmF*ZvVW0Z$);5G~zNKHR?tvM&9K&w- zYki0`QfMHYTJ%ZT<L~d^@Yh&>GJh@ZrEEtr)#zp;GfIr3sD|dE2WHY;>>`kz1kP$) zNaUN4_cvyh7n76BioV?E39`3WUeYd;99AEFJvJks#*y&~9h+Wk<RY|X1nDlBnvFvk zNMLJbP44+MW^dU{DnuU7!l`h#a)U28Rb71M&|gd{Y<lm_3jCa^H2L;xV}v{e(#1v? z&d{B|6j@`_);gReTnRjvuB@?RG~I@1E6FEHk60)22TtCaH@46>j^Qln^m8hAGw??L zh<*R~yYc?_#*zK<Mm_=>u{_DAo9zz+F1AXAtL6P#U?TQ>p(s2#lPc4WmD^-ijco#% zvvx<p7WNk5M_=LNN^o<}sr|Ow)&S@i2hDi$@PN~wTLSjI?iw?-HnLie&N2syHe_{h zrKQ~$VfXH{-B@RwifNG+VuqyA3s--7r2k|~bRlrU*}Uc6t<SulN{X^YquYYDf|w?j z{V`<pYP=#=BKWGwyfsjqyQ9F;L%ZAocm<=^l0L@#bEa*<pFXGa*{G-T&3007LKcEf zUl$nb(n@-3j&a3Sn7?yrI8q;Ys**rwROF@m@JpJ}qi;1ve!teW20SCVUnYGmy}mqk zvTx$Gcu&CxE~821GSbh(^jCowJ4ch$3>U56pXiM+DA61vkU}Bn>+Hgul@d(nfyKM+ zI#a)eL(HbA`N{<+K8q(MDQh@Kx+VB{%EaJ#!uwRG?aA^Vx-dc~A_`#@_+0b5P|}Uk z+~A5b6V;)6G9CI!&N#1px@1HBqrqOkhIe`g300GdM4tR8oA+J0JA#MyZt}(Rm4T{o zXJ9SUAGl=sRCqqfpqgNAH>9GogJQLSg3)fT7jB2>;Bd789)(Y5%W<*2GuuBtcv&Vb z)`Dz8fW;(JG4g_5*817b*XKc$D0I%2Nj$!fdBIl)DhroFu1lX|jdJ9|u*#h$O3Im( zV$X8Ed&sR*Ts`I~r$S?k#~AQIYL%t)S~yyG*hR|CJ7xV45GL_5WHd8qaTp-F>8-J9 z5yGKgcqQfM*}b2fxb2i1WIU2Be&5QR<5L+^i6kB3%EN|gJY>^z?X&Y?Dr)ZS3i|qY ze#z2eBguNNAUb8uwDO+G)#bAN`A?6i6}U`ls&WH<et3GW=T_)8|8cA3bUt8Ti50@{ z0iUU7edT{<eX~|zTy5@(uN^!xD{<8p;_%jK<ZA=?Gdks2@W<N_VsR?Uw{^DNG-xYx zC0ehz%mwO;)7t{i>m@u_qq%@LvH7Y@uu{tJ@a(6OBxA0q8=cN#-*f7X0CIAQG}sKL zQ&7d|m2}|5Ew!qOh<>bV3CXe4*&{sAspC)<=jbq)pD7kIlY#q?yDlQvJ;t&DPPh?q zAp3(AjpB;}Y|&KK{|Mgdbe)%+{H)Tv&Nd{}n7Zj`b1aO0p*6@t4#dyri|W9xHaUxr z4cZu{wVC}n*TOv>#!;WBm5%R~Y}XZ8{>HxV&=Nexw+jMeX9zz^qc!^=L%{40*0dCO z(}2<cT|?M;Jp66vv-Epb)5h4LFuKPyy{st7qC9<O<@iNalAW*B2CKjFN_29E2N*Or zMsl4}653Du<qfY-8rzKSQVHpr4*8wV`H;4rPnp<YvOUaZaPZm~9zyZVQ*Q=A(|W<G zesb-J=+#da-I=V{3q11#(Se(LKPmLZrO?<~Ku4qvu$I;mc}(A!fAke74cID9CwYEM z%A^PCAITWGkzIv#q5m3S&n?q>CE`&B3ip@Wp@&RW7_C^?1Rf|Y7B=06IYQmDEP7r? znOJKAuXRS1I^pbC(1VX@)#80D?SDAH{z0C(|64~G_RKmCK^RWxK5H|w?t0G+v9d%A z#{Kf{25Cq7IR^Q_8x8I_Hc}%sm!$*$`GIsr3?&b$!Xv-eeNb}0)>MHTyeIF5*`LI$ z(w)F)O7WDG0-X_M!mv90+9IjNd2z4lc7^(kEu3+x10sif#(GZQ5}BTsc|X#){jRN2 zZ(KMFTPG$S+2Ckc-f?d?Z7`-c8YVAl$;l+=$xt6e4t6AdM%#pm)QG?(^?jjNsC-wM zdm1bTwW*Rx($}@~C7o8ckOm*V!$Y#eozN*5A^ha++t`}KyPzt0G}Tu-Uw)1kYXm-r zdxaov+sWG3w<gOCwvWHrIK5)$(R&aa^7R{i|C<~I@dr4hzi`@fZ?BwknA?k(pj98x zJ`U}I7UK^)gnA&+Ccid|PoY(KS&P8+VviT${2<gLJY^^@bl2mkJBC>JXHq)#LZMnE z+b0kLd&v&IXG6}R3rh)>oA?1!Fu2o#K!B_pwo~qb$P0GHG8Rs0&Hcs|BJbc(TITue z&%3&W*n+)5)tWO|xwK;9nNfsnWDE?|-ya$3>-&qVjpX?$Ky{LNbvdy8x+w}EGc>P< zWig6WTv<QHNy($}g5l=dlioA>a!AJ26gDl~<AIkgZt)DG4u%G!)>==pY8;q$lSeB@ z>$usj`rAUg^oKJ9m`hGOS(OPQ&dT}OgfQa?!Tc{ZnWqbqcbzN;Yy>+N^NG#R;K&oh zQ3ryerC=BGc9*nu9xCHnwh)0E$k%WJ?t9bUL3WzE^#gAX-><~G|C%;n%!2+hRSMP1 zvC<Q3JzuBB<P|$C6py9tInbo*#X;93smoN3Az~#FN2wI|AKnoqhLOCGjs69eQ&d2+ zicqudJ}j42aK==zb0#7y=MO@D%i01lBCUx12Z}Y)so24bZ62XW`H38CT;n`?#Fc<W zg1IBUuOn6aAT`?}|8|!<#Br4^G$|CMJaL0fGj*4c*Y+~(HJ=s+{O!PA3N;vl_A;O( z^i3!z(tbh~g3co@;D(%d&WWTWeAxRWClAegONdI-oC(j!_zZNqH4*i$Y4xP6)~bb! zt9)Z$LCq;5ysw0VZ40+kV1z?jUQB+GQj0{Gx4d4^c{p2~^PL+=lMi}9N1d;`Nq!eI zr#%Qan&C$&rp=gnGo4JJSX5;AHNhZRXQn9l<Im={cG`TWI!>nLEd4;%84)f>x*{|b zirL7a9>Ioi_^LS3yOfnZEnHm}uDaLyeN-alR*)K!Jn)`Pseld7=#+7rC|(iD#E%{l zhJA-3Zy-!FB{_x{=JWFh<x=%vfacig(P+Mcuyg4L6NOR!L;GQ=aH+$GD?(omYU0}u zB6i&-E!;l!wD!6qL-u4lfyFOKW%9+hjrONBM^_$!oX{OA^mEO7P)$$(t>R$>etM(Y zh$3`(@gzq&K#U5Li=GCx<R7!9Qq{ErJ0peHy#|SGF|2bPtH<71ojlq5KBGi@BG*7q z!`+7p3Yq2rN=NEXf<=*ylplw68TG{NDlw3}#Nrqp{0l%yTKS+S_8cFA(^+GIJ#H_( zAYn@oK?kvR6SHTh_KjbH-C=>5n^WP@zYLkiid)V-3_6cVKxcv+jPb5olzpt5kt>e4 zWEqB%DR#sO7v1T6+b&PmF#zuzHqIC8k|zmewWY^YgzgqToX&<1m#OOY@k&LC8t>eG z=B{<`_W@tk`$KkJV`A~~Mq%vNb@WM59tJQl<CF23Ure2{1*LiJhbImkAG(#$3LigT zF39-!GMNM_r>gc|J^w*55+Ywkl5)hUhDI3v(xH-s%NTgiyVV8Ma{udx{_kIc{sJ8R zdWTF?j>MzgnYY_t_}UDk2<VMVb#jf#`K*s<zt!59EFf+_T`Wb>PXaY9$@m7aN3DHM zjZ3&X|MhzrmaEYDg^xHpJ6EWuas|G;XJ!6yAeog|BRwmZOs+1Z)&_C?ZuX6R)a(Z@ zcKY0)lg#F4J7gP{P40F^t%2uHNiTsT8;g6b9~lL*G=MQS+}f_cvI{};h}pF{0x?jd z3Iye|?;ch5KBuniqYH>1QHmp5b2=oJ1s3RX9<8~%;YljDNrh3Rak+HBiTk|-nTs-) z$+9Gu>AL(*Ve<p|2;827i1=E|PyVR^846MO<#R1QZ`+rsnt)AB<=O7E-m~pVH6W+x z_{Ybu#`&s%8JS{!vWxj07Wo4)?;OT$Rbj|kgVd2a2zQzP_@OhAEz^Ca_wKvL-$lrJ zf#0jV?=;MDr|{xr?+dm+QwRqqj5ihr#tl4MifRVVDyw%rtM{k>YJXCee>lXA_4WX$ zd}~ymQx(UN^S$uPeKJ-MQ9`G2d-ZE%K&98-M)4aLG#tH53aAw(f&8+nK2@Sct);+t zJ)t9uskT>R(VpZFnX9pq?EU0_yzPH;b<PB}n`Q}xhKmXP7(L$k_RZ|A;}r1RINbRY z?&azJHzC92`cX@Hpk|$^RPrEkBLvGHT7U3VI^CT~u^0ow)ppS3$+`6L$yx{o_R}bQ z+9p>W+3SW9BMvw6e#c!UXfWeuEGf6|l}){a+I0su{j{dzsY9dV5S3OlL`$RQ;`(&K zhu}eGe9S?p`~JMNwBsPf6VA)yol@t!vMFZER~u^irP%m1{SSM)7w~@3m6ktfU>H3t zEP3an^_lm2{gs=9)}wE0x5JYA@Nvf-;8yqu5;b63MTeGUV{W9^mq2gwC7sWS)$}Fz zFlVYOP>xpsRUvK(_0G3ilk>whjq*b!3kqh;rI!6xgGt=qd70B(Ne{U8&(o|qGk<Q5 z6~;cruK)s(%iioeF5o(Fnhm>02##MgAZ~A5?=(LALbehCN-YFJG;RZIA5txJH>q<f zb289zw#ohTOU{cBY`Rfu5m)}|O~NlN&vuMo^IC{V+jWLVI~(wZ=%qXq)SsAn>-4R* z^}?m%VC?;&=4**mYFv(GP4vQb2oT1M>z1#MCUi)Tam#0V*iE?vdF_5ZIaAgpNV0u0 z?>Cnrj?S4p2`um_YPXM!^3amtWHX$J&B6qk<*5dKHG}OWfl$=!quTN`UW@uRq!mrL zP5b>3slqHF=g#U)4ZcrBs^UE}xspCFxJj<S41r^vX9p`Y`wXW38J70%@Tx@?fooa; zluR<EuWk3cy=tG#HGgc7vhR)ewLV>!{FhlO4D0R#tvw)7pHa7X?~SjPwx6=;<j@?n ztiCS?KFDU$Uh9K-&cJ5hTS92~<tRb+W>Z5!0%}!bDX!H@)EeMz*&aykxY5wyqT*dM z(iJ^$*x)=N^g(R9#b<xEHxbD9I~zFx_pE}2j>bjZ=8xtA_CK8#5P>tqblrMN=vvb; z?lt@D5Bp)_q9+gKNLx%0ao{<$Kk~T6)Lw-<40eVRDlo_Uyb^g_0q^NgdvXcvi`zg+ zU7?vNxOLby%B_<l)fzCS-M=yPs*m{0W2N_e{<sZkLSxojfw=yLIBwf(VWZ|$5;2JN zr(5`>$cGGg>o`OLRKyPV^AjCHtNLr((+WCSJ;w@^vdOPfm+s-T{{W$*_g#z?s{E4P z!A^ZyWib_siAT~f+g=Pr_$!K)KnSey$=qZZfeif9vSb%4iC4nj_r^*>X63V=mo}rb zZB!zz8B~(qRsJ{U8{!ucx4(RA32AJ<R+$~N{wzO@-z4Psh&V^m!se}|#Fed^fI=Ma z`!)>PU--PM2^<_nVrUsd81rDR`B`ir-Q>~Mgg9mR7H}h$!od$DKo1|_H@_faRR_yx zpVAY1LuP=uJu#=VO5iUQUMzs7Zw-Yf4pwsCD5NP;#C=9X0~uDCCPkqCJw2I5$bEUS z_Pr;L+)JY2P$*Y7S`m#w)?ViF_T$yz7guy57uD6=_dwI)>NJk871j27R2YthR{Ft6 z{@izI?Ik@GBLx{(>BM07MF7X<?7PbSu@oJdfib?(aXKmA#K$=(eqAV(9Y=wm+c2Il z3`$O6oSzNha3n`Ml3nk9o~S-A`pAGpL6FauIx)YYKwTL=3qk4MZUt08!0nTnHn{D4 z$jwx2l-m^MNDz45iO0tQ#_yV;hw>7nxU_&edQh|wg^Do3P|%M0p{(~^KHmFIcdC)p z?XmGrj5x&D88It$pmj#j5ebl;G}$5WPXZo|k&nMh#$<ECLkQXw4-Yz9@-MykZ0T8F zM9W~eVKjo=%XRb7M+AT!r2`%WG*7lh!@BN7>fH1h=t%cC1MRuus`(CooN7_f`7CBT zal?JIcqlk_zMYh-?y&od?O*fM@}Kh*4(a(nrYTXvx^*m+$Xg8L{m)Sx!OE~76)FUu zqHV24!31<tVs=#nuk{Qp4YX1fCZH-h*<yMtbbcQWq_Y}a#_>=-P&zECC3H+&_&6Ut zi+U4ycbuoMFELOBM!C^wO;x)0Z`jC;Wf}%Qmykh}ZLt%rJHKA-whs(Q#q+-bp*hc4 z7bYi<e^K+t8ln#MO?C~D7w>28g(~&0Z$6c~AMKt(hAzbW%%#P(oS_|hsFuQ}bmqA& zC87+43s!K#YuQA#Ogss^)i#ab)1<_~LLuvQFC93kCIXg-3Zvw&3@M1S(0d{16zY|{ zu6k-G_iI-9GHp?#IJ|*EumDbYJ@&Y}>^nSL;W*uN$ngUrinaVmHF^?rASYD{PABy~ z2Hh1pF^p#GmeS;hhIH0&&@2T0dLBwfbFK$=Z%pdd3ydcQ?<$843E8$N;9pUan7z>d z-jg{2&VKE|5Dn+ZE9J+DH<dYd;;3Hah&?a2O~ReP-nDm>fI&F;`A?HI((egtL)sB5 zV6=!5X@Y6oqm=|%#~r;dgJ>g~7_N>GVieFTIQXBWBp_6IL|~zLp>v#SV%lS(-RUbq zK*3^N_Vb`pY6DO(A;*311MuBCjnXmOaU!#_`p%Iiom`nJN@cjO*ymENv#9W>l35lj zIk6n7VikxAM5-{RpoG=Pm~ANYK6~-WUE~&~{DM96OP~b?=Rkpf0+sfX4DVU&*YRW2 zQkS?8%Pzw9J%|{m7TsNClhQRdx~XJ!g6F$3rd<g{9$K(Src^$<nlP9JpB1xAA#N!l zO@o%t`B0lX9ojfz$aS+b{p)n3MnEa3xc}qB{Z5O_(~N@st$c+jmvL>c+Q>Y+)xK;$ zh~Mg$UgxwGE6R`+yqSfv#(Dp^pyx{<jPHo>r`<#jd6f@8F2o!I`KazH22LRaKFqXa z$N-&4K#n3_2qO%};~2U-oW&-Y{~V9tqj@2rSl@B-jOZgWDkr%)1rt|%RoutIgP?oZ zeV+vaZ5Tv;X9nfkJLOA{v1;#w7v<N&tMNhaHCOKx!GrUGj%zJYv8+onu%Oi5;}`Y$ zw?1p9!<B}9oOkcl7C}*Tg;1y>8ybYjWH>MgDKh>!Ah|02M*)dJ7k=y!8NmV8XqN#_ zU|Qu%o%mR`UQ)pe3*S3#RbOvYO|11OHkcRFrxa|RGz_1bBD0|CtUOD}N4j7}wQ&4n z%5a3Dj@;6!0&CKxS{`!jy|P+fZD1!e5RXuhLa>$-fD9ISf>?bLbYb8Q=6E8Z*Fazj zeS4JpLs}k<5S+lTKKe8bNOHsDCZ4Adpaz!e<dB;%1I|WF!)9RazYg^8x<(;9S?$bC z{#aW7-eA;ozX63?zyuL--`=ThGnVw;)s^)5xw`UpM8*K99G0_zy1xoozqvIJWUo+N zTu#H;t+5H=X|{`3dyNYh;aKQTm%DKy+(2~xn~X*+-jAo6JnWCB?Gp|@z{d)%G=rB* zfq+fZpn&({bF1f?`a72?u6Ir&bi->vpWf&>m9YL@Y7xUGWp3*--F&gu#DmmIlUh## zugy`$cLAqQ$iyr$(j}g4mjN)W0@&TkfsCP+kdzcixF5}+$TD^fX4lCv1R|OUJ-k>W zm8*vo6~msRJM>D_gkqe9_{oo^d>~Ntb~gDRyF6PTq>QjL1lr5zFdY^sD`uGzVKgiR zKxw*-E>r3g)0Pv{RtYrX`UVNmrRr7L8z2H5m+2KgJy`A$*q`7vZy24l-^xYYh@bcS z?#6AJV}|O2Qk|AMBbtGZw`KWkgL9!XM-c)5K@8<{&+x?b3G%<cd(_utQfqBBk}GQi zX1eq0cZVn{lDawg`a<H-*Q#dVIV#?26T91+>#Rt1OR_ADP2l7M-f_HG<_%p`nddgC z*#sIkp4_wVA6tBKTaalhoo|(LUqt>K&BsXJ+bYfd+JL*ZhdvYk3DU_2wtDjbGvQVv zji+4pY!Tztz;4biP|Fpnk>@)P7`5HrT>g~fNf8jRh63I6(!O}gF5ZW2!Pi37OHP6s z*|$=hM@Q`;7#{{R&I0V_SA>k>$-w5plMN>|Y9ES$jZUl7d9V3u!Eb|BYu0tHH7MZj z5<g}96f^9XMkUuaP~^J+@uvzL=h-7(oV+*JV)E?g53`P^_SYB3TsEzNoJOs1Jo_Ss zK%l1{Yc2<5T>+&^jtZBlim`ES)(Ki^f5W6<xl~>Y<7%rG<2B$quzsPe(N#9jJ=tH# zeZKVGb>_iGXr8BGg`rvq*(Pm%Y6+u$lSE3^h$c0;cBY_`EUF#DAAp!8q|y)kfYn>^ z_TiTjcFhc^z~c&5ewTVpWfzHnlidrTo3AA-Gi#hvZcyr}fTonKW;;of5A^DBjk5t} zSYBYwDBN-e)=(;8b)CPv0NG|F8XS_WrM|Dipp-n@<WcCq@?2CA(mAOk$Zbaz1R$r6 zS!8U^>e7PBQ0ss_;i>wE8Ykp+abYMt-}Ou<L!h7AL>lzF`_EY_b_s+<kBHD*P&l7C zg>10YC9Ua}=;PU<;Nwc0H}{9>Z&28n^kBRv3$4}ur$6_+X5ai|_ph;NyvN5o0<?U` zsy_Z|#aV$J(%KSl1AuPE*fPT|@iddoNAqsak36|B(|_Pi=bWfd0F_m_y7%Gn-+<FZ zdYbve*UT#T*OLZ1&YovW9}iatQnb&N{(Dk7-EBgiiwq7sJ5RmXwakqoOj!e<m$RqG zBoNx(J!b?O9A8JIPc56T;G4yNW>0zZv0Bnq=?DOtef38G1?pGc+`3OU7dx#1O&QVw z?@L&9$@-rX5S?LU_mA~wL|`&UDpTwOyw-3mHi_5jc<oF26hI*iGX)=xuSMmPznlIa zBh#m+Tgm?CYw0t1!_70F0(@GpN)Z?AJ7l>7%IZl&FAH+m=dKlR{!XF#9pxDZz-CD{ zA-qZv8mk3LabkRD++9{g$PZ{>@QdR@m4x+xuLNA2W{nj<8O{NJ7ow3sCw(T+dk#ec z!L%HkK5*1uDT$PazLol^Tr<JL=L^^S6aR+f<kB5YC{=FN_~bQHF1B#c#Zzr8I|;;% z)T=-+z{N_Jl9(RpMFa+)wk&W~?Sj$ScA@njyf(08VlQR?lAi?ig?iMrx*Q^mzajdQ zRSEUP89+#&&ZyUI_sC^y4&<9g;Z=)eU%v@#@jZB;9YxBPrE_K+0<foj?3;GFSQ=-N z59Wu=RYYUi?EIM(#?@2{m&<W{f>Lp(Sbxb;AI*H%KfNRegS+I{o@Qlsm^)XJJ>8p~ zYBto7IcG_@BwXDASc>bf@Thz+TBkC%E)Dxu1iAHM;LVEcO;@AlqlfYTgr7d+p+gct zrsVf5-R~0c$D=X8$^E%OyeWs`lLYH%6jXLUUTpgEC*pw>zcBkuw14-wRdE*pbA<61 zNdRQ1u7>5-{u^ps&`bFd!4HtJ!$(zBnVYkfD#|{GS^80b`(^w#^cG|&*%|6Bw@%}_ zeK-Td1<e)y5A^n8p!Fuz2i(xH3L|hlgg}qI7X^9e6?X2zTD{Rw;5|(cGdQF`6t#_Q zW;okv@YkqBuyX@ae1!)FW4s56=#*-|)-NJiNuyPu9poFmxaeBAz41{>5}N!Cofh1& zQy#AhI}Ov^76m>Yy1V$;5qnXRgTCO55)FrgUiueT=rcKDDPPoLxCfh$vX+OIuo1qN z0*$oCvf}fA)wSMJ_;`gHU;BcbFNJ>S)_<I#o}xA7=_wcC1Y$dq`I2wRN7&_0v535b z@uN#3kBHu{J7H^UuiJ&kU_w-PPN-5}zO>dJzYm{>cBeStk$je;OMS)U;Pq7E_KvNi zoI+0GzL~Q#BdiN+;GP8+gg-oRyh!aUyZ(*qpU4x}pUG2lF<f&$LL)v0`@q0X6OK#4 z46)_NRIXEEt&*67ID~d6us5K_Kzqe`19Ylg*OT{<Q#?avLh_$7z{-AQcH`I)WG5mp z3gTVW6%iyBRREVF@dG*$&1jgN3CRn$*7L~6nThmDARlUHnw~x}x%MYQ)0%~fF+{H2 zWNJxk9LH8K#fMa;DX~MNBMWRhLhp4B`x*WYRqV|F6sl}T!mT|4y`~oj?aVEkA#b!{ zBP5h`vyUDz__Z)C6C)=Ri~k!EN6b=QfF_jkLyT<^19Gh47ER@uf+F7ZjqQfU1ZdVZ z!!=J1359)d;-cV&*oui<hcPgO<E-CxZx+BDWiA+;?jaUxzxP@>OijZf|1+-aicHW& z9T|E4(%-<-Wz@gIPBFWF`YsEg3~PoXX%Tr&{i5hdbe%;RppgDK5n2o9wIZOG$yQM4 zyuo(F<4;0yfqcSqI!dCWAF0a>G47>)G*^~Hk;y^ilw$Ss2k0|}#~M7E*x0?bxOo`$ zTlPg7hF9ALu|lJD6k`>&$SQs+OtMnMFeuuB(Xk0A_>sIYwSl6jJCp@~hfX)R{+pxu zSq&3EDjDGv=K@Z2@^t6*9$9O?Cd!Lv@+YF()s6EHZ0yC_+fV2jY2Sb|&8S@dIZv(O z(elyiA4?O413nf|?!8bB`HYPn*kt|SoNxyvMkNH#%j@t)Upyk<6W&gpE=OFR?Clod zTr$iOyhyb_YlXQ22_*WtHKl&n_dC{3Wr=0kbyH~VX))O$Btv|LK$&6m=0Q&&b~xDX zTQ$bkn;bXVx+r-9aII+eQW-&l08MlVSXD#Aekn{4`rTIV%Al1`_COC{LNd(}fq1Fp zB9dhd?z!ERouM4QZz5mH`I4FTGl@}xajRv9qf@{gM0LOM)XA8jtG1AnVNux%8C@53 z<uPI{)r6$?9CG&X7&<*eL`qAR#}=-SqtV17O(LgCl&=tkwM0K=peuH+tF{_U#9`Y| ztw*%Uos0UfWc2^L^vDp$hJw`O$Pu#uoTlpH@C)D6QdiW})<o$P&~Oau1JK3P=>noQ z_-qOL8DOA9909wp@dwYfWoE?9RfXxB2ir+1bW2|5=2;c`#klkU-!?X@cR0Ai`!Tc( z5_&iL;(tftW2F#7{J&)J4PO42#rG$RPvrj{i%;}Fw)hA``Hxcu)iadogN_JmOCr>= z^b_I<!@pSvXuWftNxsJ1U1qpK&+%KQoGMZyexhXKzs0KbnREE&x5Ssf$PQYHBkN6| z9|^`b_Rla&`IO=^+feR*GUN0?^lc81RxOTy&VAo#u%FX8vTS@}Wo@1#V6R+Y=C=_< z+#9kg+0HikC5`uObrXLV!~T7(pBYrK9{}C&O^G*vkFTBs!j<!(!D2uPyUvR<E6?wf zhGWNrnfHU7Z!f;J9bWRsw1ab9NOPTICekCHGBjI$@XQKi4g5b(Qa}k>>xp&x#Gx z7QHAh%~`&(RoW)_o65I^kWG5DsQ5y;mxqT!K&aD~TmkR5$X5xl?0*pX_>VrPuqW(W zHxM5JGUq{}(~l;PR-XX|?IhYnm#<Zn3t{W0J>)j4JAAEYo$2`G4$Q^<j_P_NDL;dm z5J<_^yR(^~8BGqBOom@#-(S@K6+)5z&mk1WuhZW?pM5p~+UD2lSN?zae7^B?oBMYb z9Damhw8{QE0Mx&ZQD<!`>x(pNowszI?Y8IS>x>~t9LaFkpFci?BrM+~&=J@<Ya)Sk zL&eVB(EQI3%5)43OdV`TiZy&=+6tJ*0;OHJ#6#>Pf7SPvg5gX<${xO=PyqJ#Hljyq zg={@IC&-d(cYZ?p<x!62tHV&Ft!Y`d_I=`={ro&Yq-|CC9h+3zU^~I6MY;EWon5M- zNC+v=9?-u%MckIEzvNi@GSb{$hr6Z-6KDYmz1{pnp<@?1{SoUy<I4#88i7Z?>^qTZ z^0(jwdqE?9Mzf2pKnH<Fny$)I@!%{dG)Q@h-aVK4iVe9J33>>PG{j~GqkT<XMeI^p zn>!9un4^gzNh$fDYMKqz1HxNe==7I2g}=qUN{#<i+}o+FZT*a-TNf?6iq1L(nAcg( z?b%9#3u>{W^|lH2pQNe%Kfu$QKn4biI?OshptJYV|N8hFATMgX%&^Hjz6-|vTCCbq z#lRADakNwjh|94Lcpsuz-u@X#G0m#fevJDKqzt&T_&=`>mz76+{g)zN+4A<EvebD) z51C+loN>@N=3?l3iUr8CMEMc_*CP&I-TwwA<!N3Vi&~rX`%{EkrTcq?Qtjxq;~dZz z`d@SR^#8lNN0xt&aJz?v|Fgo~6q%|%dpC@5fsPkKPcYzlb~+?l(SAJDOz08+=<Puk zpD;f!JfmQTOh3nZ<qVV5z`wF11(4MI!%TZMGLM|!ND7yXXH)RbYo)&EH3J0EIPQzk znEO2Xb{EK?K}~E38Yb5IpA(d6RMejX)bt>fZ4sc}%S+I~el0LFCR%*SHGx<KHIsS! z3AUt77MAX$G!W5$FxYB?)^f^is~C_=(?<lMNGMx|X!}+#2`nL6(4Jgp6x8yR>Mk2^ zQUn+GRs2AB$RG0F5?^)&s5pm|i0)NEMiDop&!F%KvIGfn64G;s^5aNZAIwbAzr<=k zLeJlSL#Up_q$EV*i+&1#3-?^IK&3}p{%5Eq8Y-d_S$+#-Ot=YJ6Z6p>5hX=SgG1-E z$AzK%24F^ro;#lM<NuGSl-O@;k8&tLH&Tv1^dG5I^eP_hkf^3AGcdK04%jhWV;s8Y zi%5cR8a%QOXz5e{AA&?^S{syoL+F+2&#Hvw>GGe&sAya#zp{>h5u-96{72#*DD$Nk ziv+->HlqK;r8X_1t+CV96koxLdxZZ-b?*-{rR?w#U|LFOQDMuBqV~Tzz^)M91y-a6 zMRJ}e(}fko=s&P3dMD(R<YN45-m$QDbRkm?(mMnEcYb?XV~&I&LfWfs5P7D_UjdDP zMuUsxT9!S4M4YE1>?WYQxeSS7nDOt0)w2U{`_Zr-)y=c01h>@3XAtaR^m!3gk>Ids zqiqoq6*1m9ffiG(__|u=Xd(&F9+Wa^YBex!ro`l?x3WshhyJ)&xV^TCXm812V5heB zTO<8SZHvGR>E>XNmPbDd^Px^tePh8+xy71ja8>(27QFk(9cW=kOqZeq(b7NsY_r#m z(VR9->2{~>hC9TPD1el4Ip3%5#6p!v)N6rEE;{A3ED&+ELhpwGb=^)f14(1ZE8J}9 zAeOZh1@Q=K5hh?pZTx~|yXT0(3;~aI+l5Ea@N99fdfVCbN;`4CZn04#cyeuR$w5<& z#IuS=DET5uA}lR)*KdoftcnixG%8&x-#^#SgCrk0rcF6B%+|>(o%x1)M5R{2;z>}+ zlg(%*(<d#$EX#nI^yP&j$%Fa3MTaE#<ILUD?hFnrop}sYmi&@=6mQ=Oi%&_t7(}CH zosbt{Q&-L8>4V8-m~|DQt>1k@j81|fhSvD*(YHhV908J{vm)RCx|oYk!-iT3?@tXO zt)Ap9z&<jG;#N^RvrEgrw3Pce`FrClk9?+Akj6-v=6wqY_MBPw9emkDLk)mSxA;`e zhy2wOdj+>}%~I(*<I-L`^k+O>>69<zIz;4rxaTt?(vKi|x^&)(C_!r3;6Re{xun&# zbQ|O8BNQLvJWdkoDNZ)dtY`}rxm50swE>E<oVOd4(*8m!bI6gm?;5?rm#HpI0pqQT zeeaF@^clHLpn$yksq_u7@A_aWSqRcb{!oe7<R_AYD6r4&>5mO3<MKWN*iKi`(+%d? za)aw70)*~FiPo>jsz0?g@6&TrQbjCvxFIerlsY`8{%8YQOhl?}&8tB0b>BQt!dGPb z6~P~P_>xX4reA+;BQfUom+Wmycdf)PPQ?yokgd6#=Q;*wV&xHpkqW1qgXtBmcUO@* z2~(=*ldjrkU~mISmFh%zoFrfLVHuD4(48G-e4oFBzu$OmMp<L|Az4&D-~E1OL}+Cj zx3qjB8PkkFY-rwMKW|I~Nmf<83kmGiV6+|yGSnWyN~RAVS5H_}c{LcXw;B~$m<}9P z%&%AlRjA?E%W<gCHKqalR`$nn<|}z}(QXdhVW!J{b)KSlp;Wph@~kFCWj*B+F)x(| zj1P+{A?Rb>yaKU;^?jL=(Gf?$7@hS4#`7c-a7gr0358PdM~@?-69Xc=frRdwubwPu z;-bAA>hf>SiHY#GWQw2X@>mGOE)GPHjk6@0ss{gP<s)9VVpJyF<Idw`Nb`%hE$#+> zkUpHhS;gHeo~iBq=P`{6EF!!Z4%c0WnLUA6n(FJ|ObwnQ1hi|Ku7g`3_G-JTFukNt zUa(#Tr613v@~F*b{rAHf71RUZ02kYv#RG2=<97%@QWW-&&F-gv`2BF3@FPuOe{HLT zzq1PuOQAoQuaCpC;pFn+6X2mexMSz{fh&Lm_sR=8!e8P7FPsW$8+;xg;Sl;*j;n`5 zoviH!DE+BO@dikx(I>Bf(Xch>`d?+$b!Y^jtFHb6nh2!koW4m*@kc=C;E?wG*M><? zEU7`=+dgq#UM-_?{fGphB&q}uUx_AgvXS4%G;U2*qfa(i5I^cN)k+}fy*nf}DtkXZ zq!8??c<+4Wb>w*vpT=h+W7X5!M4Fawyrv?L=s?;(XB865{bT+Q6z<Y}PgE;QNY9kr z?MKrauD?wGEt1ro-ACL6z612aKl&M@qR6=`G&h%THA8_R?`7YfrI5(M08FbbS278d zw3EO&Wt4sOE&~AVYPH@UV}a4RtQTI#+eSa_@M$HAy!Ypa(4!tL>X&NMzQ6=NBkV@C z*3v7DCPX*7kC~aouqFj}Zm&jeCjmWoh2v4Ndg^!>Ho;dwp8Pf$D|s@fOF046m~cd1 zEZpoZJOzjk1v{1U7U0D>4>D_FER6)c0457bSTqb8#PDCK+IvfTuBvKDcV5>vui{=3 zCQu2h1J^h^0zf)sS^hj)EB5KOn|G)>bK{@B(}L>yk=?T_0}$&#Y6YOoP#uU2yk}oA zvGT?i`#pi!_~_dUk6P<b%_RpO>Nw#j_Q2w|N>G3mmjD*$h~)U`_LN3|-^M90?zYn! zbm?gZzn2d<fiyXxbiQ0yF@r_n;3Ys9%t~YXKnjdCR?h>ojH`V9EIogBR!P|OCe&k9 z_}danP#ZG5OjbR-5N_kDQHtAi9<yZjyd;^`sSV)##){%b8&)emk+4~x5nDWuGy5}} z6?}Ni{+@{~hpJKw0~>!;(0+M;-7f*fE_2h(0ug=kWAra{_6=>4GZIc-G&uqIeczz? zjUg!Z;2T9=2yoJqMaL5ky?H)+vup1q5`_X)Df_=v1LIBZsr(ScjUMLmnvP*8Y@MJP zfP6gQqSspH#a=s6K(Hv#c*&7Jzyd2I9d?D@6m7tyu42@obuRKH1X*{M#}Q+T2tYGj z!#M)vv(&8%tR<b^SPE_g6K>~AP6IKjACY&d1%roBk`|3m9vZ9x(|-<Btl_fxYV>%B zPF(azx!;m%!>RFRE#*!457`g-NTz!;3|BFl2k>*^uNMt}0kREq6$KReF;w9ttCw}( zqt5v?yUQ`vT__`DlLlyo5%L2hu5O$6vjVZ?0f(hc7sO4vYFPlx;iU;>K@bJ(&xEdU z#Dzlr<bZHrcxz6=DSN(3EHcn8=n71{PG4opr~G=gidO7=$)=T$eNLm~ogMz*z#*f% ztKAjg{#hc!8tHe%)8W(dR=_~zT#)1qtP#fBKx?Ly8f9{>(8`#_^pHRI_N-6VB_q@# zG4l$C3j!PdNroQ`TAeF$rboB-q!EHcPsIQxZzlm0MPr2V3Hcp5#ECGD0NU!nism0P zfK&~i0W)Gbu-SVr>nG(+J30CdAz(HPqIi<1`4_N;>dcpfd{bqCwYhOlLPicln6kBl z>0Z4vO*H%ciom`!u_|Bsdopk-9R=KJK4*!nsiuzr4zDnY99g29t6?aJ82iYW{}_dx zL2la*$`6BK5`&9!0VG>vSe{%h0a{dSolr9~MKK}nSvKVjtQmI|d_#wC03)zpE+}^B zhBG^I^E{qI1z(fEV~yjPMwAOw<rD~&)bW+9?Y8s{9vb@{t{%+AdCSYV%}eF9r#NNq zTUj~`Wf_enhRn%KNJGvPc$1j&^(KFTrDAUR+}*xbWuot8WAPnEiLmH>tFbcpty2cB z4gj*r#c?fS=t+aahuxN3%Bz9(%jSjOql8o%mvb?<$>#8P@G+)g(9P$fn6*bPa-;yq z{SLXmNl;egAYD$zW7@90@`nJMy$XoNxagzR7NXvRrwG2;9YDG+|Lf==*RFW{Cb>7r zI03LX9;z7I{Q~}UT>_A>%cQEwdq7G!Ku{5JQjH%zb40Pj6Wo9P5H|u0gr|_c%czf^ z#6rRIeZMCQ4T1RsQgDdWteB>%?YvN=;ooNqSKN6fN_93Ipe4Y>F?UurRx8;ALh&8U zArfdL_a0d{b#ER(Pr99fmjz~zx*YPw<s=SGpF`!(&J^m;Q{<rV=#tUx3j(t%!uVsV zR19=bnduuQJSE^A5pTf#iAfziRc(>3P(Ml|KekPf%;}n}^$RCLl>`Y3JshG4u1bqO z(TiKEMybi&hlmYTcd~0PmYbZ1&C@3WhR@UD#v6-~>ZpNr9V|Im9jl=>duB}M11Wl3 zc=Ap_c+fD%MMObNs)R2pPaeb%D+opUs&JI1=I)2#SpL>yiTc@gD~)fgS9C(qF`F!* z4v6;Q9FQmKux+So-r<lP{#X&jleJc=z;pjL?-iH<MdHu>N3SBgpTL~i(@B#h?&&^L z69u|$e!T>a^=iU9-B9Z}`l{P#4^qg$s*bK)Ua``eY#f0i|IDp(%yZe8d{WaPCk7A* zQ}6fx0&vGLO*%N!p^=5_33#Zes{Rf6j@X|2CdmRJVXYt$pT#PPe*w)@fpN#K{+!ql zs=8Cj;U5OfC+CLzWfak_S|X8%jq&5CKSpA$6-Y`>va}=aic-)4k`nQNtC*Q!cY2fp zbDVeP_lL|huJ1P*E>Vz}mra{Y5gAMG0eb#tv*ubT={&q~nai8xUmt&WG?;$jiClFN zv96QDgA_tioto?tghktN(`Z52dNRA(TSCAY!rK9ryhhcmw=y`7kW8kI>ny$PDq>~g zVuE+;Dt|x&3t5dX)BzdE;DA+YugDH2n#PI!fr%%L4gu4)eu%I&48^R-qeaZEb%Ckn zg&~rTwE7?m;@egaljw$h*Hqvbe$~58Q^=9=$QigV%uJ%s!v8{u$?@5152GR_U9EJB zR0-$a*sDD64{hL~YbXO2gDx?iEf!c$&Do5bqd<EeTnLOTs{b*v7}`v?PI3U6yl$9u ze)Wz6Oi_XkG_GQ?UpLJk2qJ9Rl|Om+dpcnu<Z;ojYzZ405w|ytgu{c_bsF-u@?A9< zqYSsW_!{DX<)1N+mrfx~65p4+)y8v$)0cEKQm~|>DhD%mpz0t?b@-kv<CK2IOniq< zA|Epb3$BBybpoUM`P>^V(n`o_404<d>_&<uz71D6+>o<7T5RH3v_k-u5hm8B0fd@u z2Kzc_L_nbxl98%9!3$;Eau_d6zoY|??di;|tI5jfu@|LsEs<N&0Hzqf7xW+6(4w}5 zg$hWdUuntJ;iz|nV%{(2=*(SoNXV4UU)#DN2A}q*<2znZSZCmyUY||X1{V*+Pm^BC zKoH~K`hCxcJ>U*O==Z$cr9$EuEVnf=1rJ6YZo4ZL8wj!=^)p<ZV{-#r>|`i%#C93Y z=L_Oy1M#(J)l-XAm5j;skok+LRu{u3VCKakNMw5-f>_?r(F_H>unnSbS%xtzmOjF* zvT8|V{w|jkh0|;ycScN)ct8d=1f5a-G2qzf-p)oY)%Z0o{2)|+1Q#bkOE0;cJDS{Y zNoV(EoCdUNgvYA+B?g8<rVwBznCw&AF462!mXN#YZw9!Aqo;s4P#>{6b2r7)5*Zfn z|JIrRGU?b|hqh#B%d}(!`WYP>vP6GA>~iRQvie?+>^ef0jI}eDm<-Gv5Wf76qmFyi zPo%xCDZh07L7n-(c72AL!J6sz;e;eN;iWGhhuQ{VWqn7(z=9t#tW1&CEBHK{R^^cd zipiH<^C^$=g404Hljz?XWxtffLxjGa^p>lW!MLOc#zvYHn`O1|`7eChE?+DA`kB%@ zlEG%`ohR6?fdG;d7KkQFv40Ij>2VTT=C`Bj7d{cPTWWM;-AqmBlJ8qc!cz<N7)bDb zk36a!=!nM((L9Dzvpp2|=}Yrkopiq_HO>uF9g}D&I7WDnh3_x`UhhE?Dkw$ntk6&& z+|icY@fQqD;{59IGZf7~ioNh1^93|Ux#?#+Fn_9vOZ@5Y?e7SH$;Sx^*?<onkM0O0 zf`DN(o<Il~nW0K@`*Qz_jz4b3=iDMZdH;IunvXz_b1fF{RLanrAH(AboPsz*Y8MfH z3v1^9vxmX*r}`*8k{L|V-xz?N$KhNJJe7m=P*HVwRB1M#DCW;jLB4(4wC>7xw0_&Y z613{9B&{WLI>I+i#!$^lQ~mkDV%R7LS!P^vpcO}AAmHV)<gOnok?R9GZ-ge{%VeF9 bTkN;-*@YrsG9`fjx&l&D(pIdIw+;Po;Qnoq diff --git a/book/images/Words-Permutations.png b/book/images/Words-Permutations.png index 3636ab00f06a6f5112cf9d072bd55ab82949e5ea..e9b1817665ce3f401df301c876b016fd3222c1cf 100644 GIT binary patch literal 45376 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%0Dk^=cSkuQ^(wJ`1 zaolZd)2XScG5V5nHbe5v#jC@%e^(aA`hFBSiaY$IHo)P*nfl7zYY}48QC#`%-DWHX zFF(K4%tULJp`q<~MOBq-Vq)U%0|z$a3yM}&{4Za=#M-U%t)#HDw3Js+cxG7cIoO)T z!G7cC*17q4ks-Zcp-~wv)4<h^v5+8xtN^uSU)_w%f)xY0O)F34x=M9)biQ01HE7+M zyN4{)b3f!zrAREOx|Wt7Qu5FKey-!kIsE<oc?AR%aLAOEmDTZ2mbN}GLlw4zot=IB z@86pxB~s^OMzK*iV1*?m)h#VMu3ft}8zPg{n(*@FHk_UxC$5;}Fyo8kQ&WDWrN^wS zt;a5;Sy^#;xE#Ks+FxrTboA&^Y;^}uLfq=YP*!$!ws%&RZ9@AM)JiOz``?CrJYj9; z&z)OC;o#s<=qwvgFXb{?BS&}4@6++sT?o4<F<bUS_W3PFw<==2hAJvfAY^v$*|QE% zWp-IrLu1?Q(~T6bU%&4D^{d6`c#+=SsVOH?VK;8vcsnq#5}Dapkoj}QMKKx{VQODW z+NzYZ3G`dHHVzgApPp-fq1_QRwYoe#Mz<k2NI3~<|JTFv?VJ2(RhL*7i;fh`>_%ea zMY46;guGv1(;;hPBT&F>Supwc@4dLVPac&_LAB(~hlbMq`0?X&+WAAlyCm+bd@aQj z_4KT9ahcWjdL+h7L*gH`{_WehPg{pj!Z(YFi6ISCRaW-+M5hPUnh2yaZSognrpYcS z2*43}92?u7KEFtJe91fFz<Jqt_3n3v%4_hip6%kd+$$49S><afOiWD1dxH*{jC{|x zv$MMzK6yN49o3fZ$xp|rC=#DPH~HO^r1Q#Z=S^Q<9Q>Q8Og&+W?3GLNllJp}FQ@C~ zZ~FN0;|NQ*c3Q1imwR<comY3o8YDEMujv=YXJ>809Z}A^;{(`bPo3I$_{b3)#+dZV zg8cm2e9PAEu`xOhjyN~=W*wDPfV?$@lj>YTLS)^=T}F3FFAVNk>f>1T#=>9^0&-02 zO>jg$xK^}mt6Nz(n1r+4{JT(ob#%5aDKj&(bD?~dEkvJ+d)r2UGk$*l!t;UhRR>Y> zbk`$@g(TK~{c26Ukuz}vA0MCHWdCV_vtm3Wb=+m?>A~%-U%xVT6g&II#c=>*Q5qT= zIt_iL?I>|kL>}w;{rlVKvSS+3yPjS!>Z)K}cXv0%`Sa%s3k&ls1g7yN9KaLY+eorN zy3EeYv-)}^_VMFvvkxr%x_K$J17k|hxBVY*{rlHJTtZ@kv3_}l9aZ(hg$um<_nUuy zQC(HF)|ZM-!QNiT=11WgBsVN&o;ag#rT1ngfo_CzO`O+CAnLyy_cmidA7-g*{D5`) zrvQs;>%}&>mX^u<&BD4gUj1{h&e>&qp#1dx<>!DHn>*{DArMX22?T30<~wj8EFz-C zsK|3!^3I(*h0DlmJ=hK}FE1K4Nd~-yAD`+jMbb&eZaI1KBtbJ8seTz52iLA$+x_Ry z_ZOE|Y#u&*NWEo?P0Qe5qUC)hZd8b#=z#+f$~G6Zv>4W}U32u<G1Q>2hY#y$)7!S; zRIa0>sqkL2ZhW+4?AhzryXr$Z6oDQ@t=ha>4ZYZmjg6zETm<?*#8A=Eg}z!4kqXX< zsOV^x5cL=Oy8GMtw3Z)fdIA9o2|l_Rw<?WNW-plDv`t@*Y`BC{eNTz|hZ_s;J$hLs z%f?vL=jX^rc71iUm(0vWb%H(aC28z;of`Cc`gFIvyu8uhpACSQ@<v9xQAT!$DP3PV z_(zj3f|r-~1eTrxpljWeCr=JO5nC~^va<RU^5D#yE(vk*-6*y|L_qmH+Z6U7qg~C{ zMKe>0(3zQ;$&gOY%{}t`bj&UD=I510g1e=q*-^8rqeU#ozh1N@V4J)_vk%c5E?#Wc zj{Ee5di`3Zq$aZvYn+Or#MRM&HFeGoMZ5SSUUYUpmW|JD^y`}I6ffifTx((=ofuvE z^XHVQsi}pY%dWoMo#NuLsyu!7r+cac`jR3IdOc^Rr$-p_8~GwO0b3z4-_qh6$u?W@ z`w@C#_X%X4Za@j756X5AcXxH*)x11m`I9H}&2J!GF-tn}-rB-;2PL}ibG%$zk>kFH z2QS__Z|Je($d!*Zfai?`wq2r9SFWIj8eP8Z+_enU898n#%#xzTH|lZn<c8VK!O@k~ z!;gYvPFK%8$y7nObq)%gpf=Y)k<`%C414@oZ%pLSA-alKvpyLa83OU6giNz9HQaX< z8H>%gO;t{ky>?9$xP<n=fdjy{6)i3K%`4K0L-!jlAw^m_UBsS!j5{8>wB(NSnW6vD z*4#XB=Mgi~F`$N55ZFB3YS@R2Q-ybtWA*K@>XV~IABtZ%?XA;YaC6@9d1zWaRco5j zw0RX(()GyN+qJ!}fn`Dy1$lXXT6{@EOu$I?q+KK{1Vpb_?#Z@)|NbAAcrs>FL>dX5 z>(|BmKgETPkK6hA`*U)0C#s0hwG2)F(7JK>5e-7w&e{2w6u+#lJYPgrYbz6?W_)JG zX7=TupFjQfsysAmxW8B2V?lUjv1_&W(Um7YK|z}l`2pxOD%;yj^i2mX&?}^8WW)^5 zm<lqpaIaub(Z-R3sFu9WF4<pE^VD&X$$ftJGJQ~*-zx#PmDY3=GB7Yu6gHPjadWTl z>FLoawBwAdSe&1Cp8x*j{{3wvSd9cLK7FF=?CgwvRzkr!+dDE6^7{2rGzu<PHLR^( z80zTUJ{==!+*cR!uV-`{m3Te*QR+c=!Pa<n>H`PTcw$zDoFsW8lm&Xu^F;t7W7)lx zlX_>i2h|e%6A`f^a+o!=y(McIVS7&9<ct#2IsDSZL~icAd+i(CEiCx3jLJ#W)YK@% z;s)*$Ck1@yXlX@CF1-RI5VP&{la2R|jAU9`T1v^{`+c~^L<n_JT|=Wv<?zU_U;eY5 zZgi^)t>xLk&hASS^=-w@2N?NvNEV4L*eUSdUx)uzMuv65Iu;fhN`Xc(fldC;47Pij zx~wt1k8o)yO&;Rr^owFF=G)%XklJFwy>DM1!n@Gn*QNrrg(r9!xC901(alC3xw3_8 z&z`M}jJFV1lWd}6PLga08epLHii(PUw{E?9$2;pc{^7%ikeFwUO-=VBnb8boBk1_` z3h9q8jjxkl8kdt-RMe!E4)v2Y4*#&UYS3(m-t6sLWo(sQ!hDzhJ6resoSgUx27vQ@ zh`Xl1K_|(?<YY&YiMo?X8urWGi_=2^XkZA4L$8{c+RSqH>{*}SU>d<XdUp0LOiWB= za$JcW=r!c{855p8yE(gFmn+N&oCQHXqPCsEK-=pt7TDAt$a;OVpwo3T;MVIp#nHm^ zr^|s@WaCc&S2JwdfbJG&@5A0Djnq7Ym$vTLPb|-&UV3a~HVq!zP0dOB+ewlf2POf% z6M#*ml?Hs5&Csq!mw*LBn{#{t59_(S5D$1ZRr_0dG&9M?+4&@(VdM*a;4=%SKS!Ew zxGzt)>f~KL8^bY+@2Bt{A0HPze$6ta#R7}f=SwH;?eD*VtQ{DoxXjD3_Y@L(?k|^w zdzw}q3R5xy_F-j>aXob$jMXa{5I8)~Qc`ZK^oHNRZ?`aIu66EQB`PU0jNaPgPJ`+I zz)ehDR9f2Fw^+q&z(+jA!;#ioDpAyByjun@TUI@&t{BRG(%SmqbJa&xF1*&yyjE8T zf|=~=@9%$BSjdd>b#>CTz#m&jFek`@V@u1+6Y~Rcrf6W@15SST&e>nCCoo_Tp}f~y z>fkz*j>1b_bIR*xw#vToC4?C}G9?Z{50Jf*lF|uT*|ngOb~9`u5$3aw$^<2XS<r~0 zs;Y`N&~^i=KGF}vjvbY#M{Cxs5gycJI_%i5imJ0T)qKW1z@!Pu+-`ZnnTA#LeInHx zRTY(La1RrUW96nziKqTO;nLFFmY_VLQUk+7jbdd$k!X@|O#6%1wtfGu@e&N#hZ9{k z8-G(EfrvZy)AaWC+V#KRiKmoFYau`$Xt1Wrf3wi_aU;|Uk?+Z2dBF%6oZ<({du8S1 zdiwk8T$B<+A|5{E+P&L*Oi=ZSy`-?etZ`GH4KjE)xTEUE1jQVa+D%h`S~hcd&T&3G zWT-|bUP2$Hw4OAX?d^_3%%;dB;J8vUGBR3S40#zGL>3XG**F-fbJUzaZ2?>EUAq?> z8&X&({#e?BCHYL8g03zLa7I;i^~9S!p+@K#nT4;amk1Z_b$RgMK{p^{_RE*DSFiHg zCisNU{6eB5#q7ZO%%4&W;dRV%dV0HLWo0EltP{x44q9CrIDUP$!(}TA%N<aV3D|vX zsbm!1Dq^Al90W5B<!yN`z}X7ad-80#xxQL_zohhJse5Qa3gr2qoYvIU^@36&xqZ{7 zO}itM8_R*HSVd{%0=Cpv(;cUwqM|C38~F<o37j1o{7pcbQ-h7Z7S6>f2u>22;?92< zZqc&Vxrp<OAyP;im6dg<EB@#`gaf}$Hif;tz0S)^8woxRw{br4oynBO+1VLDueexJ zux@vFLm_upXXlgX@$ItjH<2ehfzoASYPyw`HK?yXG$A{i9?h!Ww&PZ9g4k0Tp705_ z7Z=X*G5}XdBE?}<x(5f}U{~2PF62_K&VTX(?p5vM5thTLfBg9I=LAK%GPxT@l)h^~ zKvog*3|QEz{S_^`qh2X~6Ru#78A}TbQbGUxu|Ph{)b5HJWKH(uM!~v`f)yQ)hX4Ys zpXjS6kA;>}M_1Q`?4h)~xI!?qPf7~!LRCcqpmJhTQYHFp)Uz+#xk2IYegSsYfkN>; zbA0*1n4P5myU0T%0r~j&xCb<uY}l~jdXGPo-Ef=GQrGG-hjxbU$yWWQ6fBO``SS@t zP@pk?C@qnG9gR{#!k)bge)k0Y@l-76C+^+5=iTMGNGl{HRCs-Y3uSm=>bLLN1O;RC z9t0${yosTxV}6;N8x|Q!1<GUnh7D(%RgPp|pD-D2FQ5Zdh<*M^yz72=IEc!v+qNN@ zWK=O%qr6XqdM&L3IA|;LkaC?FZg4@@Z!XM|sZjpn#U=p1wLTPhD70bTzP{^*M@G!= zDaa}%pG1CJHB?ZbTv-@8v`gBZd7s*2Z-k|e4l}#glKs(@xjtr5D`v5m!a}sV8H|93 zgqBcOr$^sBw<XZYJM{PpGoi+2M%qak`OBu3Oo&aS7r>V?IrHuK5mM@a&?d&bR#~x} z$pNm3-w>k~*ux7K0$;q~`||bcSCy%ek&&M6?h}F1oQcg(Yo0_MOwtI9ieg3)<`8$E z6U3qz+uDX=u~6rMH|Ms53&+2D#Ryhnz>M{2WnOU^vghl+Zx6KPm{R=%KffXk`=t`q z_8vS)i(aGDb-GvTfoMYG)$xx~W8Jx*q^oh7COTZYDnEX_JC?1qFR{hq?74HbB3)uU z3pj)z<!@oJPAjTV3z?&M=4zlpBimQLvTy*s?Ncqj#w^3*!E92DSO#%QS{C``5lJ6{ zg)UvH=<H;Vk4GeCcS~_M-TgZ`nPXf{Y4tsCBj}yBmzOs`0nu4j{l}?TH)Od32S~_m z#){C>Ah%J7f8vJ-en4FTeYO_x4D8drhD)d{H^alXxAbq9Ro$|8Ch^_7w{NSm%2)1? z?ir05AS8*Sx=@bL<Ty_jKr#0KrRczg=9qx!XcoOv*BxL0tN+*NRimNIdi{43qkx{0 z$jgHd?%!Wa0n)Nh;{J^N;*2$zGb*Hmxw*d3iMI!`#@V+0<^sAxB7N~f_Qnkf(736h zar7n*ARzSbRvMjfcRvcbB@|sI*S>vJqobq$I7QVcZ*1CG!+A9z_^D%VGkzd$x;VqM zk&kOLE*22hHa(sH(v>TFKr%HnG`#uvk<yf=tgMW5prkq97w5ihTcF=qwp9L5YZls5 z=Y`72(UV!NeaLz>0UVyUK{@OJNsBl_Vl8Gi&0R(;Jcx{xOK3d76JGi4+fMZGIFSQV z^0K#gKC5}+v=R9Q`LMRkV=>!n)f0e;u;bzT&eVbZ-nwJQhIsWiE>Vg8fGwGZ<y-2Q zQ3_Jc62nO&kfaiM@BaOpcxVuCK`Q+R`1lH!_4M^ois<GR7xx@JN|>QRH2BGnZ95+5 zmt3RW7P!8$vJxp|6i15geXJA{+Tb|^D0qrbNQOZs!6cXoLwewVFZy9EzKqD9n(q$F zDk<VHI9VXf>&dfPw~GR4#{*B0#U&kKyj;LvHg@xM=%5r_T_uNyhv^v^6_$UW)=^X2 za+m$sojr<ocXM*CnV+Ahpa7mj+y4|I)bvC4W3J>A;c;WCBH&Y?OYqk<F1&2LUo$R7 z9ldeb!O=12$|rWh7>(V#y)z{(O%9z{>m@^e#%e4n*cpW5GtYUyd)MRwkNtMaG$_4; z4K*3-EPeCtot%;q_5V6nPA;ySW8+G!@helY<X3pk^-x)Td$|Gm40xd~AyoQ~arG_E z!-uzdEKK<%C-3Vr-bMi+=#AC|NPTWgQZ>*G!M#$~hKX|JNANg#rn7tzdZ#^4pQc4F z1t--rI=Thuxj1>N>~{tn4^1>RRhjxF<9(sWd;heg0d&>lln8k&I4Sp+?EZ7ccH!{h z!{d#L9L9KP93GOZo~y;)K~OP++`&Wdf!wnhg>-IiZk$aypgr4o-3p4937W#WnRZ)a zfPNRHn)kqYgzL`BV`yn<!7l=(>x($g*X8od+o(Jo*r1WBHHYpo$9YJbBwA#FC~<o( zXevQrdlZ|(M+NTSkc#@t`kYJCCLI#>rcG6Mb{r72{K~&z@_l1XZSA9J-<Mrpt8AZ+ zPSOCzje~6iIURy!c%+fmQV3=lYzvZ-@#V`KP%=S8BK9ZP*f|r!5%E!vA&ppdzTUYw zI~E`tUx6$+F`WC!q_-x}sd}h4c(Pg3%eDEz<Hx}yaqQi@ckXBS8EAfo)V&(jsz5mi z2#^$d6Ffv$&p6MqV{9n*0R~z1w&lxTFDI|;iB-fl5ULiyBSU*Lz{r23Y(!?3-#seX zz+*xiL5h;z|5-u;VfdzgH&cOjIttd}WImr+1zzLGk?o*_#;2!GhO!?^Ie9B^9z>!b zc57;+oe9jVAE-y94yvcxX<?|PI1p7NciUY*ho)t}=JW2}+Mu>lH?e=oRgP<Yun_RN z{i(7OyS-y#SYMZxn!iQa%SGdO9hmYK03!hzXi_S0>T`@L*9NnQ+!_0<L<QPj>C`D7 zltS?GINI}D0+&8uqXf;HxK-n%*<!?OpU?l4iU$JGD|6ooX!1;m-flpqUgc1!9}Yai znU>(FF3zo0jlZ3E4<0-TK^AQgDCizg)}U8i2TxO*-;WxjxIKS1t);ER<q+0oD+fnt zcel~&<(YQUUjYxzZ3%UH`X5pOn2JZACj2yFqw?v~L`4n(9n=Fz9-z)kD#lu<aL{Pj z-!6GUC_cV2w+CHBj?-@qQ0l#1t1DuAPuFnYt~I&t>RQ#@ymcY;^8a}Ow*N-}$RdHD z3GK!)0zv3{LXq0s+hX`s0IGQ9Y?oIkh*fk$)CkXNw0pAadLD5Cu0Rloi=#Vq=nzti zdezmNT6{a8i*4SwZyzA5hDKW;gkSPwfcpd<=OTx_p6d+)JwplQQP$LrK0Hw)m9YQM zo^b)tf%vSbudg32`ARRl5`fn)dH3;S9XMd$!NIG7b>lxAKN<ge8-XzSB_&+74rc~h zAXo!5%}vakc!p6G<Yi>mKu(uE<*_eWJI#E&k>}{*a4vX~I@J8LpbYRV>M!M0@2c|1 zA=EyXy19_!3js7zKp%wkIzrSUlaxU^91kXsPz1pCHOnv*n+qC+6)J8WS{ERe3YV*X z`*2=}G)!_R3ybpUv46=IzbEI~h%W!dSHWX;N(V?CU}R(@WF}U@dE~oDFss-Wkb!f{ zvt7UA_XyoU>L7^|wH5tccVC~}^7uv}(+6$gqAq`bo_f7FT0(?;(glNb@BN(|cS}c= zR{nj2cG^j795h3OR*1JZ#X_%fFQI(q=B|S}R&V|((2Zxcv$yvF1>F@Nl?RcUz!pHd z06GqW=Mbk3hJcAE5+sq}eRK~Esce+yGy|e;GVAT@n;@VGNrPF!fg7;bzn<MKxZMDV zC@(M1b*Q+w)NPhLk<GQ$3F0z<=5L?i*eX4kqk8i4<-JW!O}pu-u{N9B+!iSp(eeN< z%R$a*Xb7a-(0f5yd6VnxXb7nuGsEA+y;hEb&}Z#%`TSI75M`B0u`Nee<E|pGJ9JRj zAyBUW86?_zGR~>RNs~8?p#FL>tMTenbzT<hQ%S8u1j8UIfc>jFI!c@My>tmRyq!n& z1T<*R)n%6{potHk?6Ve)&z;*rG;k=)N9TWr<1HqBdw-?#{!39Dcj&_%E`~4xAiv~^ z%7<%%Vgal5qs)U9hm7$00Rf67`{rg#?m}UeP0|3I+yYT=s>0{qwWjH@&xsxSz+KJB zXX;6l_8+Q+Bxh%+qpYHm1IGn0L*GE0SHD=>mPB>l?5mAjyCj`bE-c~z5%MU+)5q<z z>7%u=Y60ltx>3gLoSfuWSC(11r|Y7Zu$Sb(G&hIecio<C->0yilG3FA{Uf7bV+bWt z$K0+Zs9*=WdS0bHeAoy2qz6X;UluiR8xa8~Mbs(|kEyN5OcOX+G6InWj#Dl;hJ(`! zt{%hrx(97KUk5r4e2hm_R9-<2+qQi>`jY_gqyV}kvOZrGX4`fo4h7hLYVhpQsn2rP zhjZ%3QKa*~<&3!;Plp1E=e7U!b_WPCLTNA`zN8cr+w~wnFMWBoe6<$Tg8fAANl=B3 zzigVHpC$<tAq^lBz+`YeKGtj9%7u#;_kel?RpO1l3L1tFbc?5mKK+lakB5}dJwlvu z_wYcU1<Qa0;;TUAs9%(n^6;r3edOqHp3}0BnZb(K{d}|av4kTffKhsZAy5*k@a80q z2F=7J(mp}IfZ?UsY=r1dgyB7Xx3=Kr%fqAZ<k1(Qfn{;31<gx>l-U#>m#2Q6@`$tH z@A;cIGxB?@^U6bdc;f!|6d)}e5{~asH@XJ~0s`1wZ;#z;Kd1682gL|Gw2or1IhhXV z`?gr;^>rmKV+u}A!k$YLiok~j$K(cpc_>mM+tRf7P|Hysg%=*7?mTlD>m*DLB^^5r zT131uUdKi0y?ZX86u=-Um#Wdi8&NK;!uvYMJPTdM47hoCOu%W2UmIrbbQ?Q{|Lg_4 zw|4N<{Mz*L`G1C+PtuDt#9YCn8bv`tj4OYCy_>*ya|#G#%2-BZs-pY=GT**)=VnL< zt%in%-9&G#=$VulN46X^yJ$-Q!oa3NzA_SR-6|`|vUldEPef#7U&MI>8SH-;C>G#< zB3{7WVdJ!lK0J3<wmESh01K(bO8Tor3Us)vqCY8Ws9BK-tz`;P@CEfjh(UB@<fYTn zEPa=mO-Xgu;eRfj&ePvr=?lGFugToh)ECa9N>I?~7A|gKKYE+Aq`RyaEl*3lA`YK8 z^a-Fb`^I~!)zez6S!_*%1D8AKJ|Xl0npy@|08s2)Tmqo8Q$YB>ITT~4so7js8BL#~ z6AYZgNX#<WIA3s{i7oZ7TbI=n8oSY;k~d%QQD@5s;|D7bALe5hxP*nLo-8USX@F%c z&yXDvhHy{#ADllKJOP##@4!5F=woT-o{H7z!LHN145IV9z3H1Ig`;<xi-I;fR5rJk z!+m@Wo{pf#_t7G0)eFi(b#|x)1axqPQFC%~5+j`2V{soG&^3jcM`i{SLQN+7Kj?+L z!MYIgYB#iWx0zudkmrnt3}`4|{vzxk0qa1yg$5?EadDxbkc_dLq`Yk5kfuTLCw{Nl z5e_%J7&y*<S=nijo>V|$=W1BC?R>ovK9oa;va~sZ4x#?NdH>!|hhG6WdQ4(k4Xlub zrRCOLyR1Y#6s3Y7rqeJBQV0kLP>eo^D?h?a1G5(ey2aIsda+gqcd;V9Eiip#Xt#5E zd~LB1fx;T?A@E4`Yj?b#JeLocyKmDWJE+%RA1j?T0uA7`G8sqQF2Jha1-z&N<(rIN z-vM82vNSh=BYC~M?~%#{w~_qT=;>LVB8SVlGedV!Q$Lru*rF}$Lvd76Rh1{Q)zDCT zX6tVBML&Q3e43cJ9&IaR9Q<xMBO{}d*l_yXI%@M<AR-vq**_w~T!alREj9JV(@$wF z7L?ux4a;8F3ca5GdeI829xPM`1?dwd4RZyvscKehu0g4*&?D745MQRjIY23J-h9(M zbL`w0Gj^A&J>QZEUq{g9kaD_{hVo%-><4r_ZD12?nN6)0XGY#PHili$)qQy~h%pB? zwA_79uHRf^1d?7gq4CF&uULTSq{KwQI_9DFf<xg-+{m>l4a>)ur!;3!j$bw8NJi@k zTmh;v*>~p2B`6@5TuWEV;v`^KlfrJ70JW63&mRs73Nj_%gcHC<FH{r>_uWi?jBTf5 z91L_qz;<SW%<OY>{aSYq8J4}L$R>|*F}Zc<+sn)Em?>t^CkPMOe${>S=n?<^{i&6% zzLgb-%1Wf^#`HcI*Kz@6Uv0^1CgcpB5{<|W)wGsZbK)P0I3T6GLZ1n2REO-W>%{KJ zXX&yyQqaXr@yew3&f;?5`}>tfM$jGk1qANKO1a!Ur>*^J;reNP#V-~jDypiNKwBB% zrH4^Q(oqr44eap~4%z1BaE82J^eI;;+P<V}UO>|obhr6?O{bBdAa<OQmGxc5#Zp(1 z*%eq4jVan{gP4k(&m5a(80su_EB$FY+?Ml$=@CpFGk@P5YHeQ~J=E>k|K1o7d+)w| zjzgWEi`JChClwXNc3Q%B!HSbOI|*SE>w(TtZ2pmqFQtg9rWN+!jzWU*&Ye4lQF_Vx zd^=U7oMb|t8eML8*{%Z&n;1DbK7k;QQckk?l-=O*=F;I;hzqyTTr|qAmy?U$XY69# zzKD3rL7ooI(8;+uJ=zfyf_`PBqhz+MLG5DEwGoy`;f@iRZHpk)uFVWz7#*|81W^?Q zah>(J=TS{whJ%uI%cB7fMUP9TnpEDueS2q((UvV+_=SWfd_Ef6TpqD`&?Xj&M*|Hr zjFt#VE2FkGVNqWZmM#>OT~hYF>q~%yHPc!$Hpb99(0!?YB78^a)}ivHZ9squgmPe$ zy0yGGJ1LqG0c9BNliB+yA8<lzQ@YY^0PeD3&;VUn<P2TA(0PdQF30gL6vUH3xn<WI zk!5MT0`VJmf1EOav`J9)><u`L(6;ym1Ypsx_tE0>$CA!38gvp85=hrJI&dM^tg@kD zBb<ABhOH$#7#LuQ75*+fA`{xOmD!Yt?<OW(P&9}`k93W7b<Z!viQQd4+S^-2n{ow0 zFA(J5v?~K6<Ex9qKRbbPwD``IN|$-nGgpHP{_<>Px?lJ1<-<FHI|-Y>B_+j5yjFSU z%|^z?_G8C&ScTNiw`v3nkvsxho>`Z(+0Qp&q~dPdwoTBah8l^dU|s^kYmRv{4>(T~ zU`KFZzoM(eB8wi1G`Ry#f`}f3aSIT{er0L?+We{>^gsw1002+HF5`s$xtDX2T1XL1 z0VP0+KftkR?VTMu#ZLQ)WVUsW!Z;hFsLc;*7zB?_f6-(XvCt}&cxG*7C3xlIE~}2> z9WaG}#wKLWi4zoMi=$E$6`*N|QO6-}VrE7G3k4D7E|L}6xgRbkm>`#f{1BFK4%W@6 zLwIMy4SaNAFyZ=CqoUBYVI3$J|Fag-N>7565SF}ZpmMjR6a7e7RMc(IWPs)-uxCJJ zcYnI_yzbJ<*r^bEJ6^|_W0em8G${(N{JjQY=&CTw(Z6r@9Fz<wiZG=BgHoM%Dx5H0 zXcvHJQst62YNcvrC=chNMeXZr9u9EP*M}j50Ee45*OF(#PG60jr1qCh*U4E+oYH3x zU%Goa<f!<SD_5q*x;WtEQ&Lk?0OJi8Ud*l%Xm3eLNrT^V_n}!swW7(_)gSYr=S-xX zXgBhXibkyq`}Y0&ONfY6HVZC?tQ+f}2-ShQZo9u%B}$3g1T<dy>(`IluL0Xqdc)}y z1k3LIz1-Z{;Dn<ZE*-uGGmxlhU9fAtZob71gbZ`*V+R0peh6CaWw1b-85^G+JHi)n z2jBe4uBS?&Z?PwUqs?uswAE-C4R;|=k(U_42d@wzDxvL`nwe?FbjaXm^l<+3{js_k z{dXr_klL-Bj{Oz~0XhuFwWY%%+ViGAWj*~GcUgx_%Pm^?D7`~=9(gVoozGfQ22w<% z?d#*`bMV-uqj@+cH=GCkR0oH3s4;=+-J3U8X9n1(JPQ%1{k^?S&zL_XrFVox_ZIvZ zX)pNp=*Sh&I0MlgrEu|ufzlTntTG?2YK^w%qvi}rU~yYZ!OPEIgHv)B70VQU1Y-Qf zMs*q6BVoU?Zl{Fv+<pF6B<Xz5qVGpHZnro!+QEuEQHR>jfyTlJw&<wiUea)a@SJ%P zd}FfTe$nj871QZIErg{zAKvo#_jw$xry8k(o=bBI1-5P3@s0bPU8n!}!?m(ULSiR$ zmLCh?PQdOy1!~Ta)^-DZ4d7J?3K!Zaq3_pIQOR+I<;_KbqD6GjKL4P>7hx3qs5VdS z`FnUO8zgS+G;M>@7L*Lbox^)(OS@oDAsj%kbpZC`unl&Jef@g)mACn+5D&P|DJsxy zb}p1ydVaV7e-{`XI@o!LP8WH|&?a&c9gw4AE{=Reeu;?osM2I%aWN5uVOuD4`n?St zp04xJBE66K>yJ2Gy9OqlCFJ?JdLBPv`M_f`&=pDh4@rwOFr>*Yoxj_DGv}MR=5p2Q zbe30(<=<JCU?E7|j$*??rgasywf-^p-(4l+0ccnr3g~a@{&?B~E+trtE3ri%N3IMH zlv=h5kX8^JU$R=PEZRlz-oS5bewar;j*fooVFUP1&O7V!{lB2(KtHYpK_9ZRCHKlF zN^e(3P7ZXejfbobN@!nvk&$uI!Qt@z`}aZ95ofNn$3or(O+EO(;H!6S@Ibds2!@`X z$_&UC;GA4z9)}Bm0$$z9#MC<Y3cpiUAkq}sGsGs@K`%~d%}3axzHaoF9sW_Y9j`mL zH2JCB;}6jF#xSKXgVo~T8=p?B&w#}PB?B%+q=D{-Ffn{-X|Z2?<hIk<!J!J7vN8D# z2Mvex>xP$(1<ywVl#{lR#usW@k@K%#zsTyN;XH3^$Y*)_$iosi%H2j4S@wk~5!i?n zNIGS6bMsmE+m2a7x4})%dVfv<YmZY0HMsZdqeW-Gd!p5vDr-!*%I5o7dBT+1<|g_s z9{Y7llhFQ112mN0fH65xfyJWgc(}R!@LwX|gwLgF9Y!xF3I+a^ZI|>butqcBTZG%r z#H)W{)sGaagF^HTZZDQ$DX$fGpvVg_D+S%XYX&y=3c8&TW}%ztv~vA7GaU|7s=+qD zCG9==g`&n)ehSG8i?IDZ0(qO8mv;#?f>ri0Y3V1YAB%^r>3&}HB0c>QaZLw>hT4Xk z=KB-;0Dj75>O06iQ3)GUghL550`PEV0L><Fw_AR$IW8m=7AxWS{ABZsu!rB^lnGZ( zN{7%=`D(`j?QBeX2+v>Ot6!Z2QJKRjcT12$bvJ!>q@ib#fmk@mXe>{ZI`5?e+UZvd zUOtS7s6_$$Y~%s<s{~pxK^jsp4IJR-|M}JsIyph8KulM&N$EG(uFIF;0@7U+-7Zgr z@;6eWe|pXqbG-fK@U_6!kcXaH2N}l=F!CD&Zx-uqr!Qx4ViKrqu6Hv*niPU4tFJH< zf&~3RVRql_c>{xwpprfa7`$#9Oqri8zAJd`ibXBD&uc47Hy*-G3swCa5^|JAYP!p= z;=A-sqU(dt#_V+jc?qA{wx#iEy1CZ!6@M}U!22_6O#nQF+G+j?38vwTD02|`!EYqM zD|33ZwT=2SY*&XLrB{{#asw0n^3+ai(X;di&hJ4A_f<%cF)(0<QrrIe(H!!b5MUG) zi+g5<P#qZdJ7Azt6~$rEZEc->vdU<E3Q`xW4ZeRmPG`0H3Vj_EZITAR1n<1>!Hchq zK0cP1es%fEm1>Yv5N<*|AHEgx`c()8W<P~DRLW}-(h-fTjYHGKS6{Ze;zp!`Pse8U zg6?XbJGUWFUL#9kax5kNk->$b7jS1lRH3Y6My}mpX*onC4c8=$S~umn;@ysMj({^f z0y@<nj2Y=ZiDepO@7$IK?vCZXNe7xN^8e@T22=bvHntJ==RbXFf|uVifVJsEivXd_ zLcerZ*BP)n|G7s$x$v6#2;G9?gB3FXmEgQX@p;VHJ;~sr$ox$75?p)tZUBRcgfn%_ zhkpCX(7N~U0q7@cwx6khubs$Ag#F}v#P2V=CRUBANUt;L`HdH;sWQZ3uA%}%DZIEF z(a<VbUb%fE8l{KK55cdE5;4i9mgdyr@Iwzd10~-*z*rRa5Q0;Y)rc^K37|RjODw8m z-*!B5yD;<?9V~p@gqbF)D{vj#*B7DmP43TNF&jHp=DVA1kEkdkm~=UiQjp)XDEF|1 zuYN;&RJO8U`5!@A4ZmLJQ=8ZjwPZQsaXx(bUQEnpObx*@wnto?85{X!Ddfv`X6D<_ ze>ug(n6~dz`ziI9ameD=oQ!$CE_i>;1q87FaLxwm<$}P5fhuW2m?l4Qeer=RNn~%o z!Poab&_~kJ(1dIN3NX5IrS;i2QEJYSfau<sz~ie++lefS{%Hc$y1=6Nup_(|`nGR( zrD}cuZ9|M2L_FBPUk1g`PnMG~Ks`M&9|qreSVQ9@<4$H~{l^vuqF-jJ-@Qmo5`eK) z6+Y|s=M0<z+63Q3-cTR*(-*{87ia!v$3vF=enPjf_CS`;&csPidEBJmE*n_7Q`~im zmuw3#h{?N$2VZZwKf4<U0gn!3fp9{ff@a%EQs4K6#fG(Oz(~R3hd&E2bzm2y#pkcY z-TS-XH#43ZDWA0Y&?E5^yLRouQ^RV~sy1nRW-ht$D#q__6I(dgNcR9a-EQ<ON-#lX z8&_Y=7Gj4|YmD{~RKXnl?2Wls&Jds6IS^B)PlNEj9HZv1LT%2bJX}%;=GXLnlu(qk zha`d9;cCOdBJcm3?U8{uF0w*}dz+2$IaIRlS=26k==IuSyrgvqROX+NeGHq5Oiyud zQ%cepogS@yu&U+)`s9D(Az;G`Z-Dh5DUt{(ahN>QREGL-ci@TJmVr-kitrN5ZwWa1 z6udU9US!S;#;zIQav|fY^@O{HjTKBRHQ4_qKCB4RI<#jp-XMQaW~0!W2W>9KND#yV z!tORKgmJ6ZOO|Ovn6v_A1YbHDCOEySV0C!)>J|J{KB_#H_Rl^r`y%TpB$zuu*8<Nr zt-FSde5fq3y3wOoYBZ*!2-d6xZ^_HB32}}Od@fjLWNy9@DOp@xyaL@PKcxlNNT|>) z@FFxo=)f-SLC+<)mKxr?L86fb%QU~mzx!jU4Rly>l!|L(ogwi1OtNj`%y<UwA7nDR zL`aOu&02Th6+LUxbu!|?10%E{gPo;P(1uLzFT+v3myp|lh?xAUMwY;ddfg((8opE# z?tzi84DELrtrq#y(xz6UhZuukx+$7<$tr2@@?xZ3Zxn3rSop_D5}rAHjFzG-h<V&Y zh=CnNmuGBhx(-d)i->(AJn$vsfYyR{%yFBw3HLam#8T`!&4+<9k!4X%*HU)$&xgyF zXD(X(DBK#vc(7NBTUPfZrYfLkq7O>2q~$!C5T9ML8yWy2pTMv3rN2R^c&7jJjQb=d z?d9U)>i+q&#zjdlW2scI?$0p_L7uKU0Sbsbs5B@taFFO#*-Xu5u2BGW2ol4M*=YEh z5grp<2>1q@_^rdI6#q_7*Fu#ICZUfOlxW<kCzbZaYovnLt#D!fDS#iw(47e8wQ^AP zkYY>#$+enKNggD|>RY$CfV|026R|0C%f4s4Os)SJ{7N7u%RmIh$XB_G)iFa5B0}-; z<HzR~7OuUJiA6eXr7J%uSSQ&scIJIEj@dX4mg%1_sQ_~oA7iCTh6g+K1C^5wH&B)I ztL>)mMm7pSMrS;z>xUu@hge8)@jbP7a3(-g1IzhT+s|+OHv3i=p`4r?0vRXZw;;*H zJwTJrlm@|0&OVlnjNjy*vG}k&yDzpLg^HeuDF8$}{$?$RQ*%M74MJ?_nuCQFZdzA8 z@mje-oOqzm$<aX%UhAUdm#2ef8Y!R51(eBg)>t9l{DG*uVc{h6ltfvXU{hNMk_xz+ zOuznf!HGi|XV|$j5XM0x2=PRf0a&?(<=sK)>ofNGO&1^z#nZ4Cr+?hzl!JYYqSPRC zWqENAc(Ad1)aF~ml>D9?b0fMI5(?7P?F-Lp$~NB^h;@Msrt0wVH{3|zG`N5?`=$0K zZqLolC2lc$2qYN5Glr9s^u9!9X)myyWMiLS4PIxX5mNe_^np<Qgp4XEf_EOF#NQ5( zn5?O+Tmytxcw>?$e~`<M3K>Ec5@H=lA9XFQnhX`_(%>!$1d7t@I*)KA?Z2B_HQJCd zJ8Dkrr|5KGC^~)*^1FRsT@UP6{xE!ycMWL8b?n%(PpJ8>>-Y1XU=#xczsxtujW|UR z#HgVS)WWlv<39hFGB=yPX(x0uxg?GF!osLAb!s6gr}{BJ_{@aBb6~WN6F%#IrwVuv za~WhK2Bcn7!qZa8OeS%<;^}3->wJ20Y@(LQ@F{ozP^Q~4f-(*|pXf}|($YkMe`V8g z2ZXE}`vCeb=nqw>qmsOTGfyWps#|;P+p{fj{M(hd9>{lfSVbZCxp7yz@r}P}aJ1o( zD;)FmyLVS^601a<EAX7X(-%C5=^^tku(wWNAxvv-Z@vCAOc7PL{z?kU37I3t3xeOM zw&ceT6FCd`bJuatUBtQt1p`Nse%G#GP(4OfejAA%3tF1lbnZ`D);MtiB2-DihUs^1 zWrt)biYS5z&2`L}y3%HtzfIBn5$+s;Bj`Q{mmXK*H}3$N-T&tWKoy0;2X~=~Lx$4E z-*0(y#{7tn2;HP`kv>=0iG)UCQw5y~R%EbZ@DKb?vSwyH5TsNmv$mT&2RsDa^abzQ z2k{oY|IOG~w&!Q!?t-LQ!an@)RYs<OwXNx?Z3Y}CG*DOW-J{33Ij99!C#Z#9SlX(- z=UWo*Li8zrCl*v8h>ZV?aSXEWDMf0>{6=S|H2-1VUU<5@MN+A}F>i`qT0`T^?Vady zYA{JhMx-7e_hLuSQbk;ykl=gpNYl}ld<>gl^^LB-T0)8D5&x7`@6I5~f}!X921q@k z1{g<%__q@%0iH6YT*AN=7qft;A;HE<0v`uq_J@tJu@6q9>HObcYz$}n042Z<U9C7O zORbop-AAV4AcNBS%QhN$3*u##(1sm7+3Jjb!1d|(4H(lQgKk$oKCWy@JHHjF0Cf8V z8zblJufaj;K>3?EzyI=yx=Gi@qT=GtT!|;@yfwfgH#lgEVC}4k)uoc9K6UDpOu6Us zI2PAeh|;(6vk?abB*<uw0tSm2U*wGGf?U0g14O1@nT1T&6Bd<4BrZzW=LGSDSzMM? zqC)1_{xUoJs)NAwc=g+8s2JdKXWMm74z>hhmOd2eM^90KsDb&d>8h+(0hDLVKwVSU z(#LHIF2}&<67LO>h-g_wjbLeoldm6>D$zeN&;~|>c3hR(+z>0Lfig?`b!SXBM!z2f z+-8B3(DLt^^_(?JuUA(ViNP6Gov}wwcWO<D{gaLPLhG~U-xbUW0Wb9Lo!DIgQJmO+ zP__wY1kzVHgIVYlh-{<a_~PPdvO$~4%RtMa{rX6GyZfF9<qaw-D%fMcC?wKb-H0t> zKcNu*p7F*=up86^8=Gz<W~J8rc*GRzbQ(T1!VzVIIO8`g+Z8Ikz?<*D$y1NQ3lV{^ zwo-`0o936ifBM{Tb8B6c<!9J5flTm7e!Dw`QLs#s#y{)xCeE4~n9xlj<Pe7sq&(Iy z{H!#TuyZv=Rx%#G<}4Ty@H){00I3`9uzK)iXD?n10%KwX2a%TB8Pz+`?SO7^*M$k= zU}o1T5C-<AFCd4|@7UpwX8O@U%8Ft_qqh*bY$EX#&}uajsi0kV1?8y}wd87mq8oS8 z9gpx_d(ajWfM47V1011?|GC((NdUEdQv82c+oUE7dDCWAz06FzsASf!zvQw`<OoMA z&B4eojE<+815|U;^MofGg_|`ra#i2$&E=0w|D30<xm#1_^43dTerqW0ymy*WMvW}3 z4A#4|eKTtt-P!-zFzd$e$BR!Kz03;xqlbz=Ie(0&m~$y<URZE_ep#K@Y|V0u*jaQ8 zc``9M5#8(Z7#_&R4=RFeB1R~zI`vWZGj7%QKjw~!pWZWLJ@Q2Mx4zDW3uGdHb!n0g zM-67jTbL`8;|Ui!7-G_ozl_hx2{YfxaOZ;2(MP*$cf(@6E=eQxU?m+jwUO@qE&sj7 z=Ahat5LtJ@Lttpx=iM*aRIOgDOkR57I`vh{G8n-&K|HEK=S?nzfDyX~eW~iZXHi1C zwghC}ITJrcKXtxK-X1<bg@j5Zm5>+f%Qs4zfU%*uj7tJY9{>VEho6zmLxMxg;}1{x zZAQ(OBX*|EO4Q(b&ju7TDzvM_Cq@iwx=+p+uip}|PL{g#luG;*1;1>$c`*IXo!?UZ z<AL+-z%Y{$ctCCalypm+NOI)Wb#zir|8?6ALuk^)`Lnzkq_CpJ%+mA#3;yHvjqNKd zE7Y{KBV3pJWzNqV{uywkI-jXmNemYQAKCaXyj%~ca|<I;%`aUaXO62dROevQ3MCmc z26-*=Y$Ri}<(X?T@g=CcayZpI;e;VF2r9^y@=iGCAsml5X&A!DP0VzdhSFR<dK)(u zph=G8nMPi^9U40Jaz#?s#lwI>*_N1@$?Vbt<;ww!gHS9%?f&@f;9xq=dh7EJSE(Vd z)VLvi;!VPj5?n8!U%Z~Q*f@l^enVAd=xlM-A?FPPA7h8KmRdEPA~;gAvdF6?-(SEO z7|xZmGL^r{md{(=Zo%+`TQA(bp@>3Uj#u}7_v@PEU@7D)yebVQM3|T&)uvlI$S((u zo<lq^HybI(G5J?9)J+`|qAWM2u6x=Vwc`08Gbtx$EApvCr`M_n$|(_iuR~r2dalmP zv#Hk^F3z1WJY&os$7Hn2GfY-!!{F`GKoetQ8775ia3^44#4yyV0|@~40Fe7s$mJ=( z7-TL4cPT_YRE$^WeV}&Yh}<TBj8pS69D%cO3oILQP!@?E19c6pJXM-@Miq?3kN*4q zEho0S{onW3V4wz03OP)f63_z0nizq=`#LFNI9ygp=qia#@+c;C1p5KBzxniu3`t;G z*B^F$;@iO$GV~a5Zr-*Z-`BK7I4AkvPhe=SzRws%9jbW^NR_SVjfu-^d11O50`R@4 zs5g1?<U#V*Mw+jAaMux&Qp9j~toU{(R_&XW4;#`io`-AqZVJ$))@7c^h-CPC&fU}H z?RpA5c;n#w9C<>dIB43%?bBF}hriPee{ZCjDERW}tSTF05HX$6gdUq=Mng}!C1Ru{ z=#xxiVnpKT<ohGz6BEX|76ryMT?aMq6zTc~>O{y2ogXZCFCX^q7r}2p7p_yq;A24G zR^QyPIU8K768AQ!cK;d*+!FAR|3Z^R13Tw>6c$W0QG8Bv`%zGXx<}9i8D8RLuy6+7 zO^tv=g{#Bg5cTX@8tz_c5{;cWaLk8u<>7*avaRo@fj(q)ML3y=-2!p}G2y_sSW9jY zpp%}Xz<9RmyJ3gmo|4PTLg!Tkccf|Xnr)63BsSZ5v@B9f3y?&%QCxzrA-2iBr)tAm zZ|H5MhLg}Bwo_dCo@XvOf+gUgcmrEOQZo^hUSb@o>GS6kB&R&nPHTX=heH@DqZ@hf zq5`h?NSvL=)Gasg+xG#mJ4e=>fS)hP+Vbkv-I!Q#o&6T}DM(gG%(W_OFeu(LVeizx z^?x5&SEuk7yjwU1Nw-4LSnEx*OZ=WyTec53H#dERa?8QiW#EqnI46~CY%(jeM80H} z^p%{v-7~?VDRln)oKNPRb0t-wn!NoKNP=exL;n7;#CCEojGEeLqh))0dqG<n<XpQV zJyQ0sT3LO0WsAWdIDg1=Gr)N^1Sv2XgdiQ#jy0{nd-Celt1$zx_<`GcdC~dkZIqA3 zp|iZtz2iNT_BGabMVG|w@gu+u1f7$J^AXs3){<!r;tqnRYY9!{bxhpZBVb9&N8cI+ z=R0vIBi-^wycH<Qgo+Jc7BZfoeXl$~V{yBuX2`FS%Y0<RcBZW*#3xK&*yKxxFN7M# z$^JIKYGQj6sfZJk00c`?bfe=j(`hURhlAt+x+Ato3x{7P$7BP$>mVmk)XiFxo|f~5 zwE(Tf=RN_ROiS8+h!*L1A(yK447vs$zYzL9reI2-QX`Ryls9P(4%vQa{L~Tmeif}U z>Nxt@laYJv8JfL6m=W^=F<XGqvqPeXAXE*39450mNa~*<gpjo-@&`-@xLBq=-V*vF zV2C&U&GOY1R*>SvzfL+slxG1C!@6y9dAD+E_2{a!(qE|as$<~sf7~W+4EgYN|5J6> z1Hw6CGJvK5fF(PLK87aV?$4L~C`1Y(7)ByPTz>S#Skygn{ktjLm-TqNf)-zRNoD{! zNv^{pmL<WI!bQM+(ka8oOBfnhd$?c@N0W<u)a~#)I)dSjbl$J?uA4lTGm7RUWT`>( z5o_P{pL5oSyM(<W>DMx1XjpkuIHHuEOt}zJTT4r8H>QC=!EXqyuSU~Kwp3h7sv4d# zs7`fgjmgzha5kbj9KOgCZa$&{Y(;<b`*&S{11dZYH62|&{9WpXhF#ljBZO2r`~NiP zV90hWSSr-~T40edkhD2EG_tq9J|FD$U~u%-EebrVp|LhcC;cGZ#Uh8jz;n{bj_j>u zq6j?+$;E_ZgXfh5qWjAHfaCxsrD@6Z6v7db1U2r(!8sfB5c|P^m_GrP1QZIv1jLBC z*5^d>R1p1I(U=cP4zlr4n-&%#o>b6#wZ|;~@NIC1yB6LD2&H-TV*!+(AMgN`pj!(j zGmFF}4uo<RPlCH2$gKZO%*U!dIT{E7XE)L{U^N*jB8JA-3xCqu;8`LBGJq4cf0g#T z)R-6Yc#>=+ox-9bW3)j^XU>c@6trhVX}oXQo?{^=w+`$&=JSKG;d>wlfQr)fntE#Z zOl;SFqyoud3fR`6zCzBsxM^>gQl87*F-3vMq4yqW)~o$CZkKc)fk12otI_uXaz7PL zhdr#BOBg8gjfglGuqeuaeiAW6IzgPqs)q1=LIA*K10gV2SCl)(l36nZEL{0Ln27%^ zl%XGj85<m0j4Yt}Ku29+lH=s5q|0(+w;!Oxol|>oMUtkbFNUUYT2UWHaxmkUqV+<1 z!0(T58FGtYP1lU*@%p|A-0`4(?i`WKaJ1PtT07so&`4b$P#u3tI%#KTXD2b8gF?x( z#`HeaLvl=U8_=DgpfJo3#d$7l1Y7+54n3&PtHRORi#C#wvxtqB6gT(=Dxu`BRaC4W z^)T%S-e0TNu_Fz42azkXpkjS+S8<aLT;RGRapDNgQkQ-?TB4D1L_<trV66!}CbImD zWNsUsYIUnCJh_sO+r&ggd*6iZA)_!Tv@fg&?8Gt9RRtX2=A^O*g9$JiZtilQq$N8} zJ`W5GB=^%zxC=xE;a!H8TYiUb4mXRXZNG41XXxAIf&CH6k`8Bt_`tpcHr|6d7>R}q zHsc~WjNp)IF|q|nGiK@?u*a$fI5Yn_UmSFIp}n(rfY=g!PCU&$`LIknGd_L|+%qlG z0}e&qcH-n?;(9keN5%+1V1i@A1rel~WATpR1QsUbi7r1A?h8PzhO9(r7|6)U=i?yN z@H1{EU>CM>Ns$y2nkeP>E&4eYusPtQNx5rcEJ|i5s8BESuAzm6<=->2iz&}nV~Wot zM^TxDlUo|p)x9CLW8jJt18vB2DEA8H=BYDB0n<?e$s7gdr_n6RK#nCs)z6>n;o2s$ z9EdV(5QM!A0o6VjD4-B_%s$Fahgzopmz_9PpphCO%Sw*?{{5RUiP9@`rV2BBPaqSJ zdrPd_Um3$BM`ng9d+c<N7Kn-0p<odc3w{R?E^uGZ7mIuYnM0iGfkeoa9AJSV7-CG4 z4t5t{yy-ii0!)@*tHBgNH}O1zCctnt=I}E*=)U0zQG)=OWN=jihMqQo2*A}bWLggW zIYztIM!svAxIw7>?Cc7lKB<gG`tl|=r@F40TVoSUhVDMNG>(D-S1Mea*zd9Q7`9os zqo2Zpj}MJhsQ>w!JyNy!2+x1%FwPM^iDgwF%Yyqb@ZE4^68aft5YX?lcRoEdVa5`9 zdU}pePF90dY3~T_K)uG*MsQ}3e%<Wj<3M<Nd%?vK>xi3@^Q`f((0P~I7pRZd2jc@U zpo}?#ya@RP4cPQyV$A+#g=3jvi191n2|wkeriJ8(3)aO#-<*#8U5U9*_o~r{b(7}Q z_ZkE4ZLrg>LA3vGejX7^K>-SZ+)suP2{OwDD<Fmj=m2|B9Nj`GLvM}aBE4>$Ba5%n zm|`auq(ZnUk+9)Hy=~Lds9{uqt0a)Q|J|@du2{5e&9rIxymgArx`_#d5a@5>{`h`L zUm#NKK!X=OX3fU09|cl?d4bH6!K3q?yP>6Jhr4vw)scH9(Xe~>5q=E(gdN7HAemM} zfswmKL-rA8DHvED{VM!$srA!4V+@5Dy)1e4e-9w(>*?uL3``>3A!A{}5d;%TMu){T zWk9u1VHH~7XDDQ}w6x#7hK7dVF^$)!4yiREm(ZXJkl|r+iI$a><g)bs=heOu4i)9s z8Xu%@K<0(llw`T_xYea(m9*o<lD7umJBLX0|FP*Z$BmG%gd;ycd;VNuj5QS0k}z6e zVx%V5A3__;c+&19_i}$@`KlqBh~)y@V~Ep>f-vwMM;I{y(&amA1f8^QwAzVyr-ugN zZBQ!-cq8Xy0@u260v%A$)6<h#Q$i|}fp|hHD%||~(P3rj29^{wbis9Z++0C+2nes_ z*k>zU#iuDLO6_%Kx%Ry^8{rMvMGz7wB8*)3+O!z+o-VF6v5%a2XO>H53vuS5Dp9Y$ zDe83z5>I}@)M-Ta$m?HVxwCcn!9HTtgbgld{TGoY(q!rihELMQ{%?AD<943zSeMR9 z_}T;!E(sg?gB!A#!^=e;jQ(}h6JR1Yn~jfqqko142U;o%uA=C8KYaVNNQhs)R?qXs ztGgrLaYnv7i%S5pci6!Yg>~$qRG3sEGa$9K8_;CNy2df|Jx_gc8>B{twr_P0kruvR zD$5_UI{#U}>!3%LB~4k*G1n%Sm*1?$=iTvvg9%R<8SrRX^AMCHu`-Bb=o-9!5aF4@ zDiM?%b50cJY2@nbvZGN`*Z^TsQ4%olEyC#JD;xj0v9@m_FR%<nIhRU5JkW%f$65$C zun~+wZf7MoGvYP@W^udSgbs$2mt499q3E)%S@JyiYtmss4;=0)=Ky58^Kk-)r3V*+ zQFuc}CijH_eVi}&Q9-UwgJish0(uJU-FpdH3zeQ+0f!06V`TjK%^M|TJtGM0-IMeB znbq`Qr2+a=^d&@jcql=N5N{cb+MknJ9h{u}Fj4}K%YQZi=T{fkd^QPu`2Q+<)36-( zHhTC*6jGUzN=Za0MFUMVYbJ9kDN-ttBn?87G)Xinl1eI-CQ1WMJC!EQl!yi?(WInz zo%VkI@BhpD;oZk`JjXt4a^KhW`<=r&*IFlNvjFV6K7XDI(GD^n5bHIl9-*TLlTo7o z^pYFHaA6om*-qFHF;xNilRB*n`4z;=+k59NDC<7tSJBC>q&K+(6&x-*S@xg;0w%HR z<jFYWuUqVyq#_rQog)kp(ZUxMO6y?4N+z2qKDv8)1d)0WgGs%Wl$7LfgEwxxwzigm zG(*Xm{F81A@5{B$HM1J&zW7zquR=PTIk=z!aT8-O@_qv;A9F7Fk|8W-YB-bgDvC8C zNFvse;DwxFfpdKVPp1?>mTX*1-<K24@9up^sQ@hEK2kE?8j1u6C2OPMnrWy#0YWMA zuxf(P-iViLv>Q1uzy(e8Sb-nP{*SO*WMWV#q>(qmCOMv&&+YdCV@hG-!yMQ`h(G>> z$tIPyDr<u30$IT+|GyBJ-X7p}pyvr7lIIB`s;CWhYl?=#YV<zfBVIOU(2Lc9efgQ+ zzGEr}qDdEha=0GG?B7U(w&R#v5?Rgpx7SVaU&{$wGGTR+{W0EPA<?GqilF;V>X1Ap z)KHL+$0E>#{;yv#uZ>NKe<1iP-yO^`oTiKaB&_s3wl!oTRo?IO&)G6xRz$k!qmn_F z=NmVU(%kW9we-2Z`gH`NVNiJ7Wt>Tg1y^?Ov16%Gx8ClbRr_|{Z^OaPOimwwxFj;c zU*W1NuIFdl8^0Xq*PBcP$r=U>6g7WtPl#hokn{cA<_q6$LeWF^96;jm`EW27af_qP zpiG4E5FCrH!I=^4h*vc=da`z^;<gx|O4+n|VCn+c!3<1PpdJ0g2fBs7R8Q}_m21^q zkpER$WT1CwD3I(b_U|XN8aQPj*W;9&cyZ0Ien(i_<SkRDcSFI0oeq<iF=mFuN7ZF! zdfXAFI`ma}WgS@YHw+!mnql@Wtq-Wm@xYu8@ygXz9?uY=N#KqqOcdq<aR1PGL6_#> zHa00b6MeHEez{t=ehkGf4GC})SwQNhUXYYV_Z8j4Leye<bsFye3ea8DHS9<VC%C*3 zITW!K9V9YZoot5r4Q-)f41?3p_vn%)n3;{Y2p~@HKWjbD`NceVWLdr#Xdw_1{0WS@ z$hre1I7aB(7DO#u5I1ExbnzTuEIJ*-Wc`c*s3X1}>Am>$PjT_GsekR{duX|T=1<AY zpSinRt+U_g3hJ<PtB>*dNu_Urnw;zgi0$s8z)!A6K)+xaRGBHUz*C$gKA;e@v$GSL zgnA2Qj62?6L;VK%f6$W*!>UaY=1Hjf=y_Ty>BVFgO-mp6jKHI*Nj?a8rQhBP$y~$e zAEM)P;6xMS5q%R7PCho??I!wGJdz?4<0k7eaC)_c+`%xz|3k!j<Vbk-t*gadML=ot zLVW%;yX>phTUye)WD00I`hRjrKsj?gAfSvswT(?RK6R-D(t6SL#e!$Y2aOPI&@Eha z><}om=kQS>c!H$*B-U+#oiZl=;UTIqVN8gC@JaE)6cvXK1wRqeX3d#5a>LU>c$sF; zkvs<xj5oz?JLG5tj`8=rlmJ`5wAKMm^<M`z-qC%!CAb3KAM>*eQr;V93fI|cPFg;- zeaCgcbOty1c;n*(L{3F}{vEoDuUW6wdYT3xy;Af9hJlz*x&iXrNHTB|cKh>dJ)E>+ z4km#ze+lC3C`*lHH#C5~#zeL4M+Fc1Sy5fxVuXB=kR1ID%YOdV?xS|VK$Dd)Lu8Y_ zJHJ>$D?Q!al`~eU;2>w^1xVO5Cj9LSQKH7?Yk>X0K%r_ddP0Ru)s(EvNP`Q`QZcZX z)TnKmF?-s|@#zHB{C26S&4WBn%%XO6Sx(0T`&H;~3G4u8P7FL2WVd^NT!n9o76Cs8 z;)YwU1aUZMsFZ3DD`hs~A@2aXRSN9X=lXS)&BiadU_6r2I^h}bIX-yo;q!t5K6LX( zp4N1o&6H-2;46EU^5l8Z#CkWtEr_o#p-=|t!S9KRMoid76x^`&P=@LimA^lVqTJJ$ zw~$vf<cd_+ldGK>fMRW}2YZ}WVT=ciLmept?KhxljwMT!)Q5zZZR-Ioy$thba!*J; zR>%i<R9nl`FaAU!I2CQ#US9K18{vPbB)SmX7z{M!)Ctwq?UjA3*SC^OYXDW{FbE}P zpzpw<E6AY{=ykm~3R4^xI4StRgb39-My+BZzV(VYTvYH=Jpy2nOZp6N!>tXsjs1a3 zq1PfcVR!clYKYLrWLDi)5;r3QW0K8*Lh}k_8}W;SN8{J6T%^<fLo#JFcFzX%>Z?KH zLC22Mr^JG0GP6BMMpicRcf{N>RzV+EygA%kZ%mQ_^l_8eM`>OhGyJ3S?Tl}UZvz_w z=MZ(>>G5-MVVr2^QRVMKD!O_5HWNg1@$2>)>`L4}n=yJWpM}^ko}MVGSfQ$hB?P80 zac*V{;+CSqfzykaNNlkjhFIt}ilFtoP9|NLwP<T?)x_tr&vs}60+y8IjvNJ)0x%xZ zHyuTtAMpO{eN|(`;>)4r^y3;x?&QU%7QpL+$P5xw()um75-0~D81b@P`F<XdE<@XV zPgDvZFuPmsFbdec_8M|=!`8Nk5WK?~2<XbgO$w15;9Z4nJ$Y)MMF0P|01F5v0_FnR zXn>{0yz@v07>bAE$G)*j&G*9HV<tYZfo6`$g3C{2gTP@w-^0d2Zdn{6$c|N|TUPR* zc%OhQkuLMa$M@hj-G%n0f6W1}STGsDkwnQ&a&^>cewN|~fFXc+PE%0SKWKySz`+T# z2zFs+W;R&YINwPkeTJ+l%6M$aG!qUcl3!&dz}^UUnE9t;USzcw#F&n9d>EPGiG_tc zJc)54nWf;Xyi2@{V#j7loC?OM91A>gEv&Npg-a(uQm7Xi1sa|KP8EZEiJ(}FKWV=S z)dnIxDqLu$EO*F&!21d14LRMi!keFM+-xJhHe5)+H@c#-MiJ10QC^8h--5ysP(p~s z4#ks^;A>X+oRFCiQaN-*-c#o;UMvT)mAfar3z^siBoMA`=Bz{yRLdHfcUv<~sv;HW zC$O_;M@2!AecAJ~3tkgV&rQ{PgW&dd4V>N&`QshMB;A4Osl)g>VOC6c&O-B!js!Ta z37o&QwdA6i*T$p?jzxJW`dy&qtuAl#@mr;C|_rT@LfEbusfH^Lx^L~+M#ZUzNG zXupv%?8}!gwJYno0O`I&C5C#p?}4fjLqNrFmLzV2jAWT#_>S{JckkXMQ>^&7Fji1C z;69HbhbO#s8|-AN!DjNr2lxaAsrhoPF{aVcQAm>c@F?&(&<Fn8l;Ruq-QFPIJGNsC z4Je)H%YS~Ix+{0-mZ(gfFNQbpCCGN@NKBu58+-(y!@#7>4KxFx0J#Prns_Y}-@8Tz z6Bg^EW+2;6QeT1po}hL__`M#8mN*cZGtyEKE@{sLvo9`3V~Lc2_o9Xg8>+U&92`ZN zn-|P^mv=Gn&$mVQ(b%AMDJopPG+!Xy4cJ+l%P+eZzkgJ6K}z>NI&UG(N#REVssifH zy+%fhK*j<s8@a#e<x54`TYAio4dM-@PoQBgL0a<%{h|wEd5OfKQndC0V95d409nUc zs=fF1^~f)i-X0!e$q!F;o!!nQ=O_jm4!Xwh5aml(@aDCnWB>s0Q+K1&uX6=Vns2<j zo*xb1GkzRz6tToPH}q_CJzzQT?;arHV6LP#elfv*3;qg3DTJPr1~)49prik^$={|; zUmZmD6*yO9Vj3SeVu1UC><-X$mmi<JLEhJWm?DzQ|MqPU@I28T#>a6le?OL#`fr8Z z1rvg2XS-%2=(HMzJ`nTUy|!Ld?5&4dta$F?DL}*MDKn0y)u9PNf+I%>rrB4IT%K2k z`AiX%E7aYfwR;I|tEI+m2h<v%R5U8A_qbnB(DCS?%Rzwr!;bc|9-JZjb=*M=tMJMx zg5JvrC)68(0jw@Dk<t^m#%(P(OHFA;e#oz_y{+vdLO&T0(CncqQaaF5BcGei+a278 z`^Z$QJxEDMl;zEvRgib_6yP)Hh5ve`day~{DmKBeBOgk)2dcj0U_k9By)uB^<{GX` z%R*XaV2~IlWfRdl?>Jy7)OgAmQh<WhV7Gw*;l&M%p=o?&-|@tUrt_bak>5ZEbH5Rx zoU`(q@q~*4dEw%n8q7VZ#=HG2156KMq&4Vk&j#ZM#oD*?N-V(SSMGnCrG0n%Vj{l5 z2T#%LF`oy}7<BmnswQgO{<uS6ikfdVw1~h=Rdsa(_UZ<G70#7Qho$jfqdHVXII&xh zJC7bZcFlAx%nR|m^BV0`%pzv&Fc-p%aVK@c4f<TAC>qcV{PX(tHG>p$gMcGHiP;7L z%l6B^$=$3ZllKN6J%+gPvM|D5WC{x+&)M5k^-c)*yLU(9Kkvy62hWr6gO(SUw&5#z zO;vu6?A7@^!ANtRa)6~l?uPBkKoM|4Y@Qb&L?8$t2qA%b0KATE3r||#`=dkwk)7<h zP-(xK$X<4P@G8eOAh9IRbPB+vWv@v67+Dj*vrA8Im<gYLJve))voOck))F_w*&RlL z_zSi`q8S#VTsH?+0_bSWrMJ!(fYypN@pL$9<=lhH>>maO`~VgH)n_{I7PrBpr)UY+ zs@WOl)usjk8nqHKGxrNmq#vfhrTjRT4^XMg_m|8QI0}Ec9lRM{<)5hPf~N!-_~OnJ z3XU^Qo-zn%+FApPb0yL{aqWmp2bR}ypfX0SlBK&rk;cfRIb0gn<C$kWFfjBY$~Y(v z=7wHwJAr<|eGsP{w?w;ATo&^Rs%ywQX6VIFHk>-AHE5K5>)!{83yoopf&xyvQfwg_ z2y`QUC}lu0qZbo~JZt*;wlHoM*+4efX?rz|B@fx))qrK<1A7V<@K7HvJk32HV^E-; zF9ieTW}~Vh+ymC>xP$ox+J%)%rih<Pb4_wlCBqb>Mv>C%^fkbF0a6h828Qt~tA9@- zbWm?hCQqwY=ChNhd0rky451<2<1h?|c{z&*2jo1jA3ZkMkb-IeR*>%=cUoCnOFSMz zL?u>!SjcfH{Hfy3PJWb8`KKl7-(fJt%6EAJ+kdD%MWrJqQbA!Lh3(-#C!QJ~2&gg7 zNQbE#kqSukZou|g0Re7ue2DA=>CE7TAmhJ+nDGMV%WpdN8m9L!i~%*k6eb9cpZukB zA86fJ{Hp6L$xH{|T~fNfckLKZ8(e#C++T&6-{<2$bFD)DKvcqj!_?qLD+W%ph}}nu zU;G|=FLr>%9D4dzHpn?A?$=ZwaOQ%Lo&aPD&nFiyE7m~m2afu1)wUWFjPfT?GdPuM z4$6CCI<<T4=}|Qc+fC)nR{+ikVmwMli_?F21dzFipGE~P9B4U|Zbn4hz{NHW{cuqx z9X9=8NXS_Ipc}k?+Z8YnP`0a~$c$_k7LRIaZf-UM@QSlE0fD{6&Gy;<BJMC;k<8Wq z*s&Y2ti$Q62o?A!Cr=r$sp@fabECs+J9Foj_}ue&zi)fQcY*GVQA1F4bjQccMK^|( zSY8roobXNZ@CRAtETIMRPH!K@b4HMVp^dKdfIme6=y?&mT_(D`wY6e0uY%}+TPX&+ zPy_{R1pva9(p>T~N^=0@{OHS*mSpme*{l6><89Ra;b`Ijn`E?BXS<o&ss6?tmYW`F zpt6QEc1{WTi-5wRTcgR1jC3*&th^jCP$kL=Mylc>-lhzU$ya-1u6$Hq5<UC36*Jts zX8V>xhnU-%Qf7Sv(>?+q@vE;u@;-j*ls6=<f&v0ppDb@wY%_G9KaumQ?@!8ir#aY; z((>$_pu^xhjZFeN3>2tja1R$wGz`?DLOcf=c34Q0u*{tn$Wv#bz$SJhQcj-c($eb! z9`LVOCVl4J6?E_@9qCZxtXtKjXJ#@*zW>Z4+6y?G66RT`@qVLovgZ+(XJKW9J)kO( zs0Mu}5p-cBXqE1CQMSDj!G#(D0!cusP$BrgNso_=;Px+jG&t5!61@YZBx+z*R1Fw# zBO(|GNJ=gT$`AOb1d|B}^|@%63}wMWonBe&ow03RA@zQ3%HzlV^EKpOqu__##}@J? z!<*~%L77bpM$orl$|#5cG5c!K3Ff?Kt6aM%h7s46a8Mb0i$kX$a0#QBLeUMj7VVF~ zT};*a;Ev4?eSJRoG=S&TMnDmuEngsn5JUVsa>%v^#cwe}^8`H&Fax#&XfCZ06@pD9 zK`-E<=-Enyuf|=dyA%yY3My7m!eh}JW7Mjj`1VnDeN58FZNAWBU@mntI-0xzF{Bn3 z@%b@BmWLPu45N~#DK{jM<U`*VvEB%?+q#PRkP`ti#XJetJ<I?qbi$lIh1^9eP4E>g z>pao^n}TD3rny%Gm@4KfG(!i1^DkHx{!S@#bNyArCCFCPPphaf8O^F^g>ew{3^cw+ z*-IO~V0(VB2GdKwwc{jg1HBv?@VSWYPs&qmU!xm-2M!;mFMmro-Bjd300IEG=$DV4 z@g9oP_hV!k_yb=cUttWJ%?)&ui1PqLm{N3A;UT6?XjqAO2WY~?-idoIdX=Kb2a@RT zA(WQ9oS}8-<$NZ;3osMtUl?kJht!)<&53`A>~FR_`F6m*W5)uK<S|zMYhXP*EWYyC z@w6<wHp1~xkCXjSt}+fbrAgW{fr=Q3m38ITht&`H7=jwpI4tD0*oCM5P{WlO<6X?5 zY1r|%esWp__VqfliH1W{#M|-N7=fT2#C;A6sTayz)=9sc+<7p*)yYn7c#FH;l4-dV z0R$UyI6xUCiZkf#LQ5Y-%51#zdf@U5IT@olASOCatvxNRp-T$SYs`z01h$5Ya4*sw z=yV-7BB34?*o%0b#639R`_%=ckw}C%#{SuN#Za-Mag`y{^SKK-#YD<aoWniCHHcc# zri!+KopK_r)bWEF*K)^g-3OT0aIn-ujvC9ZZz)`GuE;!tYHR=ikfh@W3=j{WtOudL zCcAl>A><F&5Fr9AQ_Gd|ny{G0tNUI!GtF+A9)=&vMpZukg4xzmJm5$QrR&5h`b>l9 zK;_jyM?Me2&-*x^S7H$Tz!KC8BnSKqxEuIO-Gt1T<ejwN?qbI!Z_6D*HCJZM0VtyV z>e5PCPz%Y}2}WqIGM8zt0K_~yPTz7#p7q=2W@*FTz*nqb?!lJw8VFH9%^U2hyr`mp z1_9ZGKDqIw&&v&#RC9a@Ynd~{=JB}kG>LL7g>UNuZ1l%el2YHr!FOQMT-|%fr0?5j zYP(Q+fO|kD7Vi^%UaiL5570Vf`XI!F)dkc`lRkqg++!}obEoSDXCv*9jvJ*Qch;w^ z4o{9gzXsK#2_PkV_HN@{W@dr_Q<1mLmiTJnBlNTTvw+k<g$D*HpzmAm$dA5pV}W*< z*er}yz>G`q4cY3qBjn>8vKu9FCRwoKj+hv*#VrN;K*mKVxXF@CP0g$B%&EuYTV`O- z;ElTuUCQ-0TK#djr?8S%OgU%<>MtVJNdx^z47`c)gaC_m1SST$smCEc19t}wVJ8f3 zXy9<9L4HhDU4N@gwz!3e42;0?zmT#1$Tbe7rOtw}ebO7ZYzaKRE}sXt9LEksOxkBx z?T~eUMDB}>DLVsy0hfZyb{vyl6OAo!A6NxauBwiXztpj<QX`X}^>lU1{)5aB9xvty zEr8_o1p3>(sdIn$U8PNj*q{Q2724_4SFc|$z!Va_k%VT#$pPLSc1&pK$pbh%M5%8! zF@*q*U=ALv5i(z3WZsLQm!It@x8jk?G$!)27P#g)tlEJ37zw86ovub1BeJ>-v;1>l zW<kUP5Cy;|;8+|}_!*<{mCg;Ca)@2#sdN=kBnc&HZZThH**ubz0{KG9vfkSMgC-9o zQHR4DV$)a97G?>csk~w-Eaa)O<|W}EFex^H&AoPIjQuU3k<^G+R#u+4<q^MEVBhok z$91Xa&?wMPJb{;iT?VsBlLJGOs?%1IX6kYJ;Wl`h2$DsB$7vFYK(|%IyM8VR{DPY| zBcm)s-3Blu=KZlhpl1kx%LM9WydWcgS-7?ryeq*Z53kaEjZ6othcZ(8WZpKOk2i{p zheP?d7BJgN&bJFZuZecIEL`nDmZ!K@=pxMw0y=Qo0Nvo#1mV_j;@IHf#jpGIz6hQf z5R4Jzyj8^W#|!``C>bu`<C312MF59xPJ{jiBU+<FDL!cTiT!yRS>Y``*rf&7AM&k) z^I^`y9vrl$18e~dMes!;5iaS>qV&|(>dS&^3f*MwUT1l{@|SpLWIKjuhBqmr0cRgH zvA}6{&WuFX^u#`Xe8Y0(ZBC1g6{*-Ah4<88=d=j*ZZV40bhr@a3VJNA+aGQ^=#!5U zkK~y^8DaevO$Pv&@L~W<h`?$;Biqe0e?U4-)L^uGc6xm=BVzCqLkK{yL1nE-WGB!Y zs8pni2Z0ZKZ$!@6O*_861m6&o`2dh1@MP*Wz^lT2xQeV3ti1%xML(f`?n`*r^k60? zh<haZs8JPF=`ui))E|e1C_QJ7Xqn-MJiH|NNCwIHQJhk@L_q^U^y>BN%QtNNZ1CRg zBW@jJsB&;Axc@%>0pN4E5$wX`j(DkHtp>9?jdY<1M&Vv>3H^}@C_(s7ZBgC@pcs>X zO{)vH@?`HBj2F&f*aAZdi<tmKX<R<^BS1evx!L+!n2Q)oAiG3lVP_xd-jLc)?K&{t zu-st>%z#noXF7|3|3uSYqE}&~Uit%=V)t!MYi?;_fsI5kPuIX^z`B%7#|Gagy=T+e zc;_Sf401z8Pj?MyT%^v~|B<wv+Fz2?3iAfeL%LF#sc-ZT9Eh9t&nx@^LWt5@8d1yw z<p}v*s_jnn)JR|KMbj<Vz692|&(if$vP~^5*ReT)rtPSQXzpEC(DNi-P|EtcZIsM~ zjsGcZ5&Tmd&oBSG2?TJV%mrOrFOF+uJcrRkwZl)#%7P*9GPd_i8?r-Ma!zIBOJ>7% zWhaiaAMrvVpRo-cNlf)mK#u?iK~!QiUdC#*-0sOTr9&-_>Yq3;`@^Lr_i>yT%Tex> zR#$Y9c;JRE{wOvT7e?evF8YPSl59y(M=@x70hqmMP~{T8b4&in5`Z&pRyidLP_w~p zg_gfSPouOZ2q%G=Zrfi=hEE~U(E*q~AQ3+(b{%0tWeX&+Nyr-S6ImJf0)iXiUYP2v zY-r{N=7}oZQat?_ls5{$x|hz|Kgw!!Je0P<!q$Vv2QhmdeH#Lko!r&&sel{1gJQK9 z;1{IBs)#%pf51?H2SreLc%my#Y4A+fH<n|rqs#F$>EJSECM&^kjIr%3aQvE*gFy!% zO%u*_j&Mc5oq)yGUE?0<){|O0<Gscjj{rx&PnwVO5|#1|MIWS-m`}Uo+EWFMPDL&6 zkB5Q}xwXKq$Q|>&4`_#~0}cTVKnsndN0VEc2jNs^v<Sz>(hJW5DC+IajB9Afn}xC# z5(9M<-$_ZmU(W~Zpf(0|Ro{NCtW%xrN@m`JK9*?nz`%33vYS8hTXni8{xCfs>cB9; zit5)o##4xDl7KZ(Yt8Uc4i~swO4aJW`XqfgpiBVI2gw<7_%jaYXIXR(4&{t8^Upg} zb&C_bv;?fBBJavx)NPl#(7*pyM1&?5rapaoYcphLjMZ2wBXXf`(**j6`HZbLZ4yyq z#op{o8QqBq(Wi$m7-m}wK&0?>KmU6jI2(Yy0I{b^`#}Q(P2lrmmq6n5@%LW`R6u*T z^&N~0W?y-i?|dj>8t-tenAlBJ9NQiypXyCE!oWEg8P}p6<C0UeuR!pp+1><#K7uLM zr2-2M!k=Dch=nsy)ZsNKqv6hE&oX#_z_#HbO;RpFX_8q3XC6)3XcToGBrk0k<2N_d zJKg<1@&KnOx5B~!>tj(dnEOCz9b8paWnPZUr-9`I7uqo4j+@qzkb*o<&x>_s{g)kJ zf2@_1yu+wXH&SAORR08S?+IW7ZBlnMRk6J6AM}K|su|*SdwHbZ<}@`o2jiCOA34&R ztmmVmgcCzw9|vE=_|U!cRac>348{($sO;>4DMgEcT32x!JR%Kk?Y9ce<>u7_*<q4a zoGUTbPfSYsdX|5(#SyU+1@t<^-huBIw0)kW4Ks@a7?PKdf<tWV5obdOEWXvj6jB51 zf;w<F)KPX~tDI9_v&&6RTQ}Fy#zSa$nnbl7und!CX+%`M;-)@_syM(2DCis0WakU1 zSZylVg5@S)Sh>Mo)%T|`=~Kx9W1p-2dO+kbM8g!ezF*J-94b}WZ?hRd!)NVEsOEYG znLc7nZK0c+jUjR%?lX;z=iM1)jmoM-(8OKHthV}Bfv|)D880*Deo=XT_^IeZk=ns^ ze5>G8yy}8-MO9S^I8S1ji`y8Y1H@w6*z?hZW>yvUpZUM^5KaevzZ=>j+kQxWv2Q6# zByX5=pn|^;@UIO7m_mJ-vfH;4jtw~GeSA_ZZI48VusM?`W!JqMyKyodHzP<=DuE;U zLz_=$w^QYhWQpamO`jwDeFECjVhS2j?Ex{sN2q?2k&|P4@o}s|PuLuiqXKlWhw<6a zR7|?^cv&XIJ+ksCeWNz5$<IqTLA$`T>m~f@W!|YfOFh}MfoM;JOyj@w{$DS%2y7>q z+_XM&F?7JJ8U#I>3Zu;V_6Zh?fGKQ#0>UsY8w1jQ9A!w`EhY@W!NWV+!wVh-g;!+_ zegPF(+tfrC>g=xj`>Vpel(8BG8LXU(P;F%WWTTD-O#~Q1AILig(8rio5cm{GIiK*I zF<bL{!@nE<6_Pt*HK4`(jxiogllK|2o!WrP4jq?f+|%%kikcd4(AOf*e`)&~n^#d; zIR~@=sAsalgOrRc#_m-#`jOQ~%pyQ5=pEP#b6%=;s7{8CZt!g37t>InzKuzRkic8a z)BqJQGD^YZ1V9h4S*&ruk6(`4MO~r0<oG;X(D}&bB))3P29cDTw%&kN;0r4!C8TY{ z+*KP#CD!Hn`T8mo!4nAyt$h~|k}^EB_x-<YerYLB^>4uD85|Yndo}6+`!Xa|yX`Ld zrdlmny>^LDoy}5iPR@C8`mI%m`r((!%8-cMv>gOQj0%6ldZv0wVz$@{p26$3qu;;p z!s;XRWf;dNHh&eKQO6_*o@8Xs<9<xb%-gN+P1wQ2{oI+^emDr^Y5_v-cT%!Lq9h}| zH}3|-zqB9;q>(K$tI8vj{COswX{{D|0zf1A!FJ5d-kj}2pg&=J(bwqB#?IEI6{r8| zvt0##RNJb-A?N}x!RVD$bm>Ir%pY|)(rRN*6MkkluuLJ3--dsr@!?IuKf{m=VH30g z`qRkZ7bZ#Cx&y|h_+`+kZlXe2;;*I*(VY(#9sR<_1FS-Gfh$x=Yil@I$5`mGVadvs z8t5O?7&oENS^}x|<2R_X%-4ap5kZm%rd=8OhDt0{H&lTB(~_u=8;rzFQCr{0=>3;V zfH&8|3rhl?zc;r|uY@B1NWN3n*e`tI3e1$1S$^fLO^y9*|K&vJc!U1)UUxi)B`a2t zsir`8XMGF+uv>TUYU5Py#)4f99i2u#>GjBT%D~s2K=HId1K=QJTB*i5@!H`^u=JF9 zTbS6gPQZgic5V9INc)RHYtuJ2?!b9yjf-);z=XBZFmTX-*I`n&;oiN9a1hflHjdVH zwz0AC{Z@9xAVmm7)f4EOZK6>)wwSK$!Gv}`qrRo(QA3BsqSFu)&YS<d=*a)L0Da<z zc$&&{&{Hqr=kNR|DZ#CicXDj<ZbRe_j1#)-o?{^)s=)|XX+<RVKuhdpj%+nIl(IUL zUW#$^b)5U>XehjmJ45`Pot&14hH4R5@&nX>C1BQU1z^NxRC(9>_hp$S-V&vi<9aqi zC1S^n3=OrQo@*PtBvQ9Iz2^1nHH@|>SuQ+2#AViKe)Q4T5g(ts{Cb-G?a%5MOHpi+ zx|MB%0t#7By~lSN4p0{U8{oG{+ks?yI%m|4FkU{Met50Cyiq$Dt#L5A;YXBm+Ggub z&<KMOq;FvjM-bqwTc{H4AR*@T{|aEc?pN%Ehk=7Ic@M%R4+39Ss;1)28zDfJYo(+@ z(5S?<zB?U1{QdiC5CR1}e)Cvhrk~elwrcvElyu$;e%EU?@y``S=ISAC(~*Ibh?L=Y z5id%qwU`OnG#MW`qJgCiC`g<}EY>VruxPOT_P|qET!40QWa>ANC?*Ekdl<OtSUI!? z6|lyk5rfn$tB-yDuZz0&Kov7gfMC<%#8@a-d*7k0;OqRr!Oy;=Yo*wQslj~jVoQh1 za9)~q-)!f%<4>ftuU{^}(rU1SbdZx8lB0yizGZ;6zJ!<e-N*FoTYTKIBih=LH*eN% z7OicjT#jMSS}b*eL#Vxld{UG3(bb6TYvttb0-03$r_gEzS|<*WTHP<_R8^Nn_FC{h z*uT;6sB9_6v8c#MEwEYI<Wtv0G+vRmIa$|~EsXF>agSUjt7Wa(A@u}foYv%!D+lBK z(@Y>Av{H#!P}$Y!9%1KLik^?bz(QY{_CY*HQ=C`E6;L;6#wjg*XvztP3R1$TTYp`{ zj*1>iJ@7aM3mO1c0LJ46ubx(%z!vqc`Daz6Kx#NySbER$zt_N67<ZG{!Tmc>U;?lr z_7UC-SY{U#w9IyG<}AjCK<(F(W6KY@Ms1%$b))ELT;fO~+ND-;e09R;z{bXA<$>># z+RGu3{5U>=_eWF|@YT-I{s$-yQAf`kwb69Agz*tJMQBgCfW6xG+*PDi$I!vj;+U8I zzxx>RKqVsg&8)_cq>(e)8cY{p#I*=^V1OPNViVG731K7_gNt6wohd_SJ)KP-dGxuh zo=91<U?!M<`Tey)k`iKSF)!b%j7@$;gTnUm4vs2;Y>ZRLy$tM*3l0~0H=~1LTtQ_I z*Os{qvdkqVK9b};*Rk*p*YG6&ixO<O@9202Z|kL^UjhCtGty@6BmZlr{Yhrl#b30T z7V}pV028ZndjV?GKn6ciaLpQ}Q^&ONc*ryjh9+Q*?}Cs8&;l(ygh9`22HPr`hd<|H zD4~KQN-l<wN4~=N4?dVWf63RV)T~mE{i{^cn))1xx)NHAh^ULW@&{KOtIfd;h3E;U zI2fEdb!roh77+q|j&0L&&IAo1@RN@y7a}!~F>h$4v5*0WW(68?&|vChmbr?n=e=D4 zW;Um9WB<WJz#Lo@3L9OwJ8uK|v6^#_EPTj_uEQ(m$e|v<`x2RhSdfQ|FO`1yqw`V} zWbbnTv8kz~G6h_p?+8Ozio5Q^v;)iOY{w#+2A&GKt|V;~-sA@?9|fwGZ~O@>Jkrv{ zP*CDK(3&Mc6`%sEMYh1JhQ~DhnX=(#Cue6Y7LYbP@u=br3NDL1ZePrcy-WeJdU<(q z=H$m_`tRQ;>FB@k@4Zce8s}h=tmKuGZ0V}71S6%xU3q6tG&p^?6jrTTHS2z>+z{+B z=S*DGGFBFo<{7f)HMO#8?<z6g%<0bYV48=!%3XN^CzWYeQr0vxJKtJNfG>Ezo-?Sv zCg>)aP@LV)OSrU6B8z}Zo@+4xh6)^kf6%d2fW}FoABEL=)GdvDR-ojcK!L9!8oE@8 zB^=y?;qmcizGDS0JHY#uNwtIy8Q=K?l!Pg#tu3FFA&Vj$qW-Ya&{&Es4yUC&U)Cz* z&dD;+0r_XQfkDK}R9H_nyiwf736gaMzDWhZ4xfaCgg3-nLnH99uTKM+)AVd7%CqrU z+vmMN(srX@PAZ2<-1AF6%_Ch$)G!W0k&vp}j<@v>Bt{q74kjN~1Q`!=ZU2|eVh(w~ zp;54ZZ4e0&UqeW#{O-RYctmwI$4w+qbHnD9nhjDX%M83aOV9*rfZ3H)Zn){wJ8)-b z)h3_#4y2!Hm#^XMZ0{YdXO~V+HpP!}^Brxt67n&p2Gcb)$SvAGrZ){l;&Lu+K*yEy z?7)*4DJ#)*VBju_;F0XG>%QKRYFS+dU~@j>2dbk(2}ZGX9DIT5kgc1hDV$F~rzFGg zjV3z?@I;i9>o)~y>74h%*KCkH(T|s4tpT9a<kkxC21VZ3pq_4=x`tyf;|lAQA@EBq zSDdsk1s&`J_)~4J_9)kVpu1a%&gvI<qFFsK*G9U8V@g{#!gaRQY8_uj)K0g811Z1^ zL_}YSUHWli_LUdEzC^Z-p-RfyUQ>BfA=ejR`44E;FIot^c*A}8B3T4N@%D)`FvTb@ zTlr^qRki3)54bi?bMIm4+(V$*jh_HRK7{tHTEPk9MRAYfu3n}sV5pqHtU#t`8XuSG ziel&bedz>y1fhE343x(_i;404Y}d8y6p=iM%q_0MqM||o5`a#Xd}!_nREre=VQ~#+ zu40pOqZ|fW6ful79G$kA>xszPos?QoZ|MeJzlNjZGeu|3$k;{FF{!r8eM^zwvs*iT z{>_Xb=FTnBbsZlsjVqgZKMAyyHESL>)BRiKumqM17S8<1Gw#Vbi5mUS_W6qzHCn<r zRfrMMdde^?(tm0FukCAh?ksH0m78oMhiCgU5nP%X`lPQ^=ezXqh;ThwEUa3!2(l9t z*vD~aDN_;u4D(q-=MK<08^6dcR$>7q{JzMJ$gL+Afb9`^#~0M!E?gIq#4w2K<k+8> zfbkBM=T<dvXJuT0GZe6_4*;^%u&xhb6EQz4&K<B7Xw_}a)2MNgpp+t=L#6ISNL0r$ z{SjFx0|66QZe(5eEt?s<l;U7Lg;rF-?%*mR+oH+KsZOy+#suthK~o({8=wP-=NI0H zY}g?7%r9Y6UuR+Ao1R4Wx1xp#i96E|zw6(DL5~Lq=DwIN0h!gC;=AgWqxRN9LdI~z z?5cK6JsL+tx<~}2wrr%1Pw0eX;!e^cJY22|uM3^sjiTZ01pY!tM~6s(H%bHs19v#f zCZ+YH`eZ#VsG+@n8#b^2FP@h_b{R8W5@MY^>4{TizOTuzx?_ci0TW19h)h|IFA^n& zU;esAJq_$pNMexkO;SSQ15V|3+`Bgpif_FP)%iOYWGake@;G}}<hsY-qRgzNS{pIq zWCHaFEZ^#YEb~sUTAqPCpXdO~$fj|}v}J{ok#XsB(@^{pNCEe1-8|>`IX3MRph-g* zehssi)9s|50c;Jzj7qzj&C$@o8_FZYJ?I%x8{yE4@HJNs8onOOv1wOBY)Z)A<Oa|K zVOonJ;SATCzIR7J*%3f;PYDSF%VR0p=dC~*et_s6j9GjT$PbdTdeBuTtL<hHz<@#s z%S9A3&I<|(&JV3zhk+>7z};wYRs&l-Q9olf^ybrp<guMs+{};f<4}AVb#(r1!@8`k z5{s&zO1OMJa6Zw{C#GY-ICV?VWRTEFW06q()UY<yjMC3-7b=%8Usk$Y{Eqgly$)O+ z$D^iy{}J1L!t110c#qt+&hf8}{4cA%pNk&a@$>GbH|O7c?@E67(4#s`+#MzaQrLtE zcd-hPxl17IYE(PqOth(m^XDIDgsH4Kj?U0Hf0GU9VJGoiv^U;)3PMmCdP&J=t}$_` zV8LpC5pPC-kGODBBcUN3(y^zYBszeQ;sAPVNN}*($ab8Z=qLqOgS4arsJl->wj?zv zyRS2MpOMtVI*S%0ufsEcrdKk)^z~H$ZnL(JumdArYxiywXl;|R2OATLbo|s1IQzht zwFRCm{>G(Ca}Qdt1NK*qr7wdsNsk{NM#sJoQw)OQBT*!wNi)Mm8;xE+mWzhoY?X|? z30|2s<T{HkyFu@PM}Khq(qilyf#jzZLu;P5anDm5Z;y<O2%U<QP>roi!?A`&?-lNv zjzU1W6F=5Y@F=)Ay5Hm94uK}DWLX(MM@LVB(U6?uABe>n0DrA9SF=XNL%Y!=WP$@v zKZ^+&N%5ObFMj1dbR6EYd9YljZ-?E-<~YcU;`^n0#O0b!SUonHmQ_$F=%|T&Jmg*X zT>0z0h7N4K#Mf_h_Afgf@<wD3%OI@5U{1y~Y4fH{mEE5r_I(2Kbe#AG0QXLyY+T8+ z&0O2vaARWGOszqW04S-W2S;pmk5#u!|GZOn=7N>(d!AJ-SZ)_J%LL_=_%D@xU|&SM z6EsR{+zKSLdu(~uxUt-$`1rD3Gk%2@cHQYqXEn>o2}eKCdSoc#6Jo-<3t|BBHVX*E zsLmK;l}xvUR+MhDiJO|C0g8*S(CGPg*gn>(L~=|=9Bj%DF-|=NGO<oahk$)b%j*}H zeu4`z&HeiYdMY#o;mPukwZ6WtsyYFv)Z9jL;y%c9!9$<j9h1k~40i#kt#&HVO|Tl7 zj^)li3hIO`Q0Al;O~sDM6-}HR9JSrw*uFfNlsX3Gg)AAEMl1JljzcRy2F7(disJ0o z2BH8^?fHIiSVen-{1lM|z*9#jw*9_z!XS@!Df3{eqb#5f*n*}HS5B(|Q;xi=v`0%c zlqy3ArTrD2IQXV8!x@g-b)Y!uK}3W@2ey!AqC2fCv<e6{c1o;^VzP!MG_Ls^ES#{a zD?B6`+8k+a>GxMYlq2z=6%!A@dslH_B&K%k4-H9t^ymuY&F`%=;`Bk6k#urqUhRVC zbL`KL71(&1)M2AhG=1RcoH=uJn)n*yM#;yD`Z3z$31$0{5d-MLC4LzzTrYQW!}y-Y z!(<3K>H_SscS>E-dI!3p6UR=A@>xC2f(Q9x8t|k%b!KnO`Bl~0AAmE3FR%(k$pzpH zlBKA$bTeFC+p;!AdCQeV^aucPu|U7)d#?vYeXr<}>O|*Y!Dr~zso;hdT!gJG5)9j3 z`&_4SIIjU$7b~lUNpDPSW-dBQG*e+&{!8^r_J`s<>p1)l7=SMXZO4P{`8xY$zCMYf zI>O-T;LRbAiSWJkjRM{YO!Pan#V`X<@7*pXkj?$%(IboD5SwmxFc4IL4uf{;8DP59 zG||>y&8+U=#eg@!KLHM4vPa9p2RrgN*{_XUtmV(M4;r~B-BWkA2u2il7hMLj*^42Z z?+WG*)u@sJK_k5)?geZLhho91ivCOk5%kQUBAp8Dw1CAq;XWX7-mcwSB@~~V3~44z zXmWCLYWF^agNE3dciZ7FWz@TYbMZc-2z^*z0G#{?07DVh%N_y6o}hm)1LY_K;ZW3m zS<+IoMGZwATd`ZM2!$OjEsTjh92M4YNGp17$S0;EMiL7c2(3E+5<w9Wo!;FC*T-{9 zt6@Ya6dZn`v_Nt<*OY6xvLIQ;pfGIG>Ejec0mD4w1DHuI;YLd^NLz~Vw8fLQv@^&* zECN*%`iLxxQ@5`tieje+xeA}U=X$Vr!%;1;Gtbw^d;dpkQYshs4ePHD1H+3pU*UME z?Ampu_S~}{v{V{;I%SaeEOypJDqBk)MZbLe_A*eQ_M|OUbS7F15t&f+DWw|cdjyzC znm!(aq$L(PUq`o7NCy?JG8Vg$i3v!fK+<>Py9wgEeF4iIW4voo%u+J_3)$JdfgoaA zn?;gb${Vas275GhN>97=c)-6x-B@HK2iZse(lv2JGCPfLB#QdpxPcv0o9tN!Jv}^V z-);+T(7&(ECCoTg9cU|N4Z{Gz7Oe7?1@YG#oM<3?9s#BYOq04mq1`Sk+i<@_iLAom zSxXB8@pA5j^|#-39`HGbPf-pKTpUq?iVHN{?zKV5YTA;2#NZVR#|Xt!&!l92oCl2w za6PPT57`Eqze>f8fLi?lo`I5j`eP)|7`z=sNblOc0}=X(80h;KcP6~!Mc0p6DM(hq zs#8Ksf8zQtgk%B5!cmbEuL;t{ENvNWaVIue%%_{3Fj=m((M^Ge^L%m_A}b4EGBKaF z%fV+e-`F-wRbUkia(IXlfWDii*tAs*<b96-RX$K8inuTnUd2>d+r92R_@v|`NsL_3 zkxYHHOSEBU4CDrh(fj?q7B~bDK^~p#Ro#T8G6C=5ZH;w|%y^=n0c#cv6-<fZS6~OS z-hP?4KD2=7Lf}InWi{%gE{Q&c1pheN;8H%XJ;w{nSv7Ry0O#@WS9DzJSp|G+wVd3$ zjhniIzaYyov{SF^RtW~}ChtXP^H!o2E<w>m9d(RZQ0H<^&IkDL*F?E7C20dzCBkJ! za1YAt<S3soVR*||r1%U}VB#1Eb}HCGI=velG?E%gWsQiZq`uf6cm!#NNH7I9^k#cr z@B59XF{-?ZTCw3yjS#RsvgStsgm@{o=KNJK^suwBAwV#t1kW7zT+Pnz=_6Z#Eat3? zrrsO*7YJoSCk5(U>eN%IojZ^99%h4m?fv9r?eB(%A|=y?TG9n++)UP|v;YwQBuDv% zVR<<R=J!v(I)CMVn{;RknGYhJt6aE{ReNqg7Z@29AAE?q-9kKW6fqN1oihj~-ZwE- z4%aphHFP$h14~{u#KZ=h*jp`jvCOUFjj$@gNacM^T1Fg#F=2Pu5py`_OcY*12=v6{ zQhYaX0d4XFjQSFjBC-#n)s_4+6U?xA@(B2H6GI8~E_0*2*d@-JursLD0@UDz$Jhlk z3eIm2PL5%%1uMoP4sN#7#WX<1?IW@QPP{C*<h}2nZ*vvPxry_F-Z2g3z6+9-QhB-+ zIm09P1Jwfm(<4BTn*t-^9?4-)qSp<It}#c)geTwIk{*j2^9C9N@&P`M$9Oo+WY&mN zer*tMfM(o-q*19K01f^+mQW7|mPPKY%ZOIBb-bDwfP&66cju`yb;mH6EGLCETq-`n zQ=|m)6N`=fFn^!hmTmL(?53}%U+02|T#j3OwzpOw=2MG5z7LE>>m*#Z`Sb2rf&;mO z^z~RWuhF~RVG|NQ`X2khrz@kK`h^McLCZxHDsV!OhP+`u#R?aJ2rt`p@NN{Kn+i{w zx8EKpTf@4xVR}>wyiqTNa&q39nQSg3mIM(-9kIEG`1O-^m9N1f03ocRl(m`DErpD< zY11UVO-$JUo4W%>hl$Bs?q9pNAu?<qke)$^E61Qg9II82=GxOIC5Z&Q3LdnXdq^W7 zl|m#%{0w{;mR040w3infmf}Acu7;&Eb)O)|h+*#(&h-uRPpyy??Lxq?;4WCMgU!tN z4P=2xqz-T*3{>B#;r3aWY`N0b&HyvQA0vKc(NN-Zp?sS7;LdJQ&az2(<3@7agW%jV zp#H~Ic?KAogg(QXCrrX}3C-MKL`inbL`g}}KVyb2094*<oy`Id(OCVp)s;NG3<_T% zd)~bb*!V0geC}DhO!D739lFWIh#0ix6Zck0{V5Mh6pPLRd8B+qroC3}*&;ZCuu;5@ z3R4cS2xOQGTs2OsW+ipW_J<B<k0k7zo{z0hC8)K?6q%TmB-ZfVd$5E{88@=Hdi7_Y z{ToXcZh3J94J@GmWKWO|6d$BN+NA>px8eIYb4$?2(1z{LAAJpc&oK4AO<a2L$x-59 z6XhRMYn)I|@YUev;*K6_jihAbfbi<f$M!$LXT-eFyW>_BYERnf0q&?6rp>YL&Zr*o zqUYb#J&Ie&xS}g#SV5%q?;jL-;bH}*7m-gY%8j3$y~<f&>4h{-bXipID`alGr=dMS z>nm7_^9d8pQUp|S$N@-0bYas`X*Jj=gU2kjd*kK5Gj+fCuJ+v+7No)I5UdIlNcaKS zDk8ssrxnFGTGbug*c<@Po8gX>3HT3T@e1yzTJHv?D}{wSDG(t0{f2ahR*aD|JwhwQ z@on9wC$R(p-%RE7>Bs&{eYMc>;qW{Q^I|`|JuUTfSJzbxW_gJA1-oky2j>BUCV>mS zAc?sD<LW}|hgBRo70sY%Z$tIC_u#=M?#17bRXtz^u%dI>{0fNLKrL~{ry(gA1Y?YG zy$7VG0fSIr>(*Q5w<Re0Lf4F;1i}@`ic0V{Xb}-BpBxuDy3u*~c&a2wfi%kl?aYF( z{k&j$)Wz%Yct^*bScJ@t)K>brGL%+OLB>O#rL_Ct%bO@GyAPND{JtcIMua3xHg^x- zJ)O|CF#n%hv8Yzb9G0f%c%@zVS9(8AV*@^*#HyW2L`?VylQ<<66^}(refNF)#wL;0 z<9k%J9K}OAHqBBqKr|_$GmH$hF2zm0FvkU@2$oeXM%_T0Uh%e9pS3GM{3OQ{&`p)p zp9dZZLN^BL?`90raHagw%F*gfMjGBu28R0?AedyJ4bJU>>%~)42G}RGCJ1tp>?7MA z7|{a3JakmG;?LmQR!n1qFa7<mX+`6gFJH<)k>X;^yV8-Q2D_vTLIZ|6<YQu6)?rU2 z5uPzhJdALU?@-<XJi7t~L^z1u!4)SqZ{4cj8}?31S2y0lS`e+VHKJQGN<I3^;f<4q zGI}fa3Ly|4!6p}gZ1f+{2F+g;>THk_vQ9|oDdsaVu^eSEuW3FEE6K0#^Q7k#VMTf+ z(5hA(`>%XI(N>59v4QtnI9SO0fG!Dr>BNt20rKS;pcsKTpN^*@j)e(d1_$4eM5hUd zfp#cq3z<QOxLHQVpf~KOEbQYetE!gCsI8iB=GXee*8{}dqc0p6lk^172ptO4s$DPv zx!CEt0>G0R@;FS(K`o;#YhbW9g)CMrH4$4aEIc3MlT0{{AqNoy3|>u&sm;>Ql-yA6 zP_6mO<I_<zJs26f!&Jcg-Yiocq*ao~UY`0UjknYkxnL5!kh%j?YUI4QZrxnk+q!CU zOwf=v!2Y*S7Q9ee(1T+Dd$lLv3W1!Ac5=4R=SYZOFhYP8{cI#ERF}+0;UI*IT@F$Q zib!AlwUB>(fJPC>+aq}+1@tIjRn66{Ohq@lE1^MP!-n0x8y>Di|3nMEVXqyFnqY~~ z!@;{MLczzOhLd312G4MAtOuf9mC|3QTU_|UP!izB47<&YyR~GTV#fo(D4kX*p(6u& z&=|EA{_O*(|69j*?s$N3CRSz<wB+5+;|7@)i}@~fFQ%w)IxF|(ePf|uflZsV!mg}A z0jso0((nk>#x(u|)`QF@+1m-+kCn%*6M{$2+3@L;c$6cKW#bqm%|(N&4A}^n!!YM~ z@8p^cm5`FswX*`MsNGm$<stE?rxv!ap19+J5XInziIejfuKlcCM)w9FYXq*fU}dm# z=9+@-z*1?u2r0)P<i5Xu<4dlji@LNc1vuiYeLudT%tEyJtzGQRm^0=5`CsNRjtv&l zEaGf~mxIgI2?m4XxrU13{!Ot{vfS_y1Gvn4*$@bgKd!=R7%Krz5gLjOt^6#JCXLeq z_tIDG?S@q4#_5wyk1B2%iXb+ISZ<mHbRST1*sRi%z#Uf~Z(7)m=uOTqw7|0Lu>0hl z-D@S%Y_FjoLAb;<(1x%o4C*%Q{9r;mk#f**XdLYbW?&o}qP9a^>b-OQa(C3Q3lMg2 zny{8i?9$>pZ^Eg`bBBuP(28QFRV}tygGnAjnwmE%u3^bu8ECuKpH6(l7lIbF>cHOl z|52HCfgQn<zXay<kAk<xfHCeTE;`ngsSXH_R5M^exCfUqgO!ExLW@|qBNpPo{bH~G z0uu~zAz(P{o;1Q<-)C<xnXwqD1x3SAqxS-CBoQRmFp@Jv?2_>$)G#0L^t1hhxUma{ z+u!R+i|;N36Vx5G-4ij79$n{*lA<CgQg|YZiKitrBxDViN8wrfM|Yo=;D+p@-K(NR zHRa$w=E*!T{knjaW4Cx<#Y=geO<Pki2?bILCCg%&8%F(|g*)k#U?Qt_kr%Aq_^bKz zQI?qa)fMe#Y%{Og1>3{mP0v>>TUP70bm?i^sMyKR`+ysK=<91uHjKf()-&!ZANS?8 zFN_MkQM~@13k-NTB__GBb|CqE6|X;#h=WOSS6xLQ76Z+90boH-Xvs!Y#!>F<-!FuN zh?aKYDt8`q7v$B6Xk=@5R&T17`w&V=Bj%H~x%Pe6NCOK>kx=0}h?)HdFAV*I5DWfQ z@58+eI>g{diGg{_5Ia%`q8$)AdVF}o=-4H6!uQepMe+`o6b-FJ0<^8Pc(7MCErEMQ zAi7R8t(kS@NLA%(mL;SFzzV&*(aTIxH{eV|%^hZEMCRvx2VxR9*#DIEmBcuVGk!4h z^Yg<38e!$1Ugv#>54ZGgUaWoqluiCJDag}qppcF^v*2!ea5+%t`q@sDZW=oNnQe#m z8)yO%>JhNGz8&jRaBi^JEB*(_9j(tHS5@R3|E6aLlS+XMGVLzki31M2th<WuRVcy^ zxB*qYLzt^98t{iZ&Q)ZIi&<|}BcQ1Ii04Y=N@99RTjI#hUi*n3zs(92Cang?o1S-Q zaM8RufRLCp%eEMNFLQw23Lpb*vV}<n%<~(kTv6>1K($Baa$SnL3-#P&FNh5bc`thc zu}J_Z!(7cW>Bq;0i3~x8)>s1lKyikZfvjj>>9g2gccU@+vtm|R_n`+l2{8avnRBi8 z&Woop59+mp6(vc|Pqwy0PVVBU2@sxOQMWMcrk+gHn_h3WS*XCNnFa{+=;ep#_)pCV z4Sn|;`koCu9BBQ|uAi{Yj*6Rr<G}x5(k@${J9?cTg$1o|MAh5;;Ue&Xx8>ZRYFI8> zy7&_OL2sga?CtHHw;~EW1D$f|YxBlFLd7Kq53~mz+DiGxdUKow9rL-$s*4Jmz?Y<b zLS%Y0x*#b&KK{(ky+4@CxGpyAa;!%UO_Y3)Zl6r0#pDn0JkFQAI(9HSADIYQHoYT& zE%QqBIpqD*w*?WQ$zBcn+`c+leXhMcR<?KgMj*_xz`(--s@Z@8oXUql37IYQDfp$y z{qy=kk?^?&fObfF9(o8ATpZh%yE%TVd2a2BT9A4Vu()6ZvH<B24DhzGH!SWiKYTZQ zFBym8U;-{VR5_!0K|V5>x!E@T$a2hE%xQekAAJ=yDYzW?eDj_1qfg&fMvR02?i%nW zlt)Ee#o)?$1eC7g9=YC3Z3Oy@59p-5w1tu)HBO(_l2b3`iaoC{D+W^yXeHtY57*nQ zUo_ly?`LT5EX0i>6sRDJFuA|HLU^u{`bRdSblYf{l9^zXLUIceF)n;84(^tPspwHK zQ)7YBaMqRhk35R&{eL@s2|q>t&A@wKnTX+WsUe(BzThNtE&<3(p>zeW9(sp_%aZ~x z*c^6O!T`k?18h$iub_$%>7C**-XgI(EG6J=rsXbG&m($`+^iGbFo;AoaC7XV@Am|G zldl_`MwQxcEqQh))NoAc+&RW6Ln*EcqZ?u5X};6QOw7c^ZtI|B)^4XiznUu7*|ka8 z>}kpZ&9z`r-;ldY#_vA8qF0_NE3}h0_YN^WR2t@p4TT;%JM}rV&i&xk)K6!pqxNim zbZm~<VY^TBIOF2FnjY=#ZOpdW<h?ZYmT`WqSAQrwj}(K`<(K_~XI%Tx&30nk=sjyz z3YYe~jjpaS!IgCiTWX%JxN)7K7GNE<C*aMipFy@~I@MG(7ucx>s+}_MPGn1+e*UfC zV0%7~*!hj#!TWFMF|!s`VAE78=d$&T`;S;AhTLZPmpyH^TqG=9R1wUXuTtKgBeH2@ zbVuNq4Vz!wYp(j%e>YD5_m;Ix%CZiba$1{sclu`451)Vh#7oa9_oVye?PXWSQVVLX z{b6H#8Tsmc&zn`z>A;<nI~-4UzU}n!o;$kf&hGDfO;)q*9OtdyEZ^1j+40+ZtG&)o z8n5<;@`s8ZdCTuPIq@MhNU-ZfMWbbOz^P49HP2QoKceucGlTiQbFN{aXOCc4zEf9T z!acP!I{v>_I&MGq<YdqEbDPj7F5^ZfU$iss@zry${P=0eZ6VhRW=H3ovP}`TWvr{^ zSG7Ff_lz}b$h+lt&rWmxohz@D&YNS>XD=Qdz^^x|J(!VJ=sbTsA-echVvk%CGy6AB ziRxFAtLnH{Iwl^owe{@`Jg7L@o_p=u=KeqzMpZ`l&`<qN2LJSVk(kbf&L@t~NUj{W z%@CV<5uP*o^wXcaXFLShd<JI;n(i7824_V;#lpU0Gn@TwP)T8Xi2qw0dsY5_|Gvgl zB5nPDzpkX>H*f5J|9<^?tHS}8h2L7z=Ku@K>6^`lNtYtHR{8gy!>tL!FItEJ&60J< zI!H~yPSH_#0|pj=-;B$v7cYGf;<){?T;sOqdaUIod)pUUa_fy&p08%9^V<EjD<<3V zv{n3`C|@4-3msgB&7oXv?}}9#ejsOx<G#}BzIeBBpY_qS2pv?IYw*W};RSWp6W|7d zj`6p*MI9hj@f2Hc;G4n@&=4@#qspw~#k9GU7Bm(^H_XAucP3cQblrZD;j_OTAD^=0 zA1W^i`tS2tRkJkypU+c<&%@7t;mi$=(NgEgZ8utPgsw14PdDE=jaY8ZXu-@*r1IRz z1~Z1)x^>l;UxWV3#TbK(@9h+EXIC=D+N@H;L)WdjmflqyIsF~HD3CM`j?d86TSf~Y zhW^X(`iX~4OiX@m3md-7@_6}=Yy%OWk%?jb8iy3m>8Qql`B|ZpB~6|4RUeL8-HAA^ z{kCUI2~*IRx}4kP9D^vsmX3dv4ZdGCNMT=o&UN_5uco69o|_gTO~bmY3+AoQKr7Xm z$@cd4uDhoP02EppX#TtmQs6@(pzH-mDy^;@DV^*a4%VzOS880cr93dyNyzQPudwY- z&H_50;x1oGSt(F+Z1>j>aoLWRR)3$$mJ4V6_KcREkKCrVY|a!cQ{=Fyl;9`^$+qH( zd<K(}lRb=6u|PJfVww*CaJ3WggrCWGRbF@`uj>fBm-01SLZ{bE>6_=_YYKwD<lO{B zip^}~{|VZ;3Fjf}&86fmG3|GSf3LMHL47csQ#ie-Mqz3*bOh<JU;r_KC8EMa%mjuP zCVpM1Zqu8P1emIoBfQHEKF(^~=H|Fv=&kYf=Z=q#@$KPR(^RHx7%Q{Bsl?EAxb};7 z*JYD?QBfeM9Fdkh0nigR7=+(eXFvk8f>6qxGr#oUq4^ik0W8bG!(;Vx^TW@MkJs_- zk^kwPK%YBv84mEA)5;|VIJ^6MN+KK+w?wxcHG9V2k_s$}kb{|>K<NRAn!$1zc$-x9 zM-*8Af{$bOC&{Y{Ci^!*$$K@)_Vjg2xyB{zkD`ASH;BiKDH+^InEX5|OTbh_E=%(9 zc~hMiZ&&EqJP|+2KG1ktlF$iSyanqW+UQ9;2!L(TAqO^}W61{*0xhAzOhgq;3fbUd z5EE&>`b$?zh~uu&Dt==etQDqg#{HqpZ@sQd4%at5dgCKGy#LsX%;)iE<<mOB`68D9 zRI%VLr4JV3%Fp3AGwcC&8W}PEhb#gpUcF=Y&tU^Cx%*CE0&B}X+7_mJ)c*TeI6cn% z`&j5r9^Lnhuf+|D7qy)I&_xp11hmm>V!|=0$HY%^;s}Zg@_++U1Y5M%{VV;%Lwvc) zwM681Kl)T|B`>?RgFbTok{6A(A_7)k<x(mJ?5>wP)i0ds^!W4cb4-Dw)p?yR2a`f9 zpoR^2417t|+;)O?#~?jya&#PePR31WBgVI(KSiNCOWtXu2xv65F-bjQceJn%_P4F? ze7&rZ)#wsZM+g3Kl))L=tu?&Au*|MC*WA%Y`Qd17k96a6L5?5iLqjJ&CRR%>%vio< z3-((_j@Ck7)D)x4On^<(6QlMI<KX5(Cw!chF{cQX!V%C0e%kTMzve1Btf7&?R{+&K z=aMC_7-BvuuSoLafKZv+c~9OsWQVLQKILnunTnS!Q2mK|=&%ZtS+TeD%y1!GV6CxQ zBiU`{5110LK1Hc+4s#ok%PAoR{MW3G8z(j0Vu6M5sCB48ZRe5EuszO+de%tnDh7pF z23h7@OTYbEXz9T+B^a$xm}1Z)VqyDmWtHPj!+iGTmafASznYebGLIcBZD1B;pCdpy z_k-}3RfUs|jyoL{r;U{5-ZJYAG1ol0{55vG_|G1<{rv1h>LSK%k@+9GrXNn8{zvoM zz4pY3|K$x9OYTJj5Q_c(N;P#w(f|H_C6>kF-0-shFITNmo8$bye^)87Fwy&84!a)a zAzo(vBlJc7Rh;zS!lqugZcUY6zc@Tx^iPmd!s>Wdel}iNA^Qbgd)>;V(?>2U#Y}$Y zX-xfWUd52I=8%~yzD|lWY{$OdWn)(-&lhCbxry3l9XhRfl=uF@_JNupPCJ0Tia+JX zxYAtnYK5;010jpL!v3~%SZ6aH?W4=T)JCnIUuQ8XVTswtv2PyRGMTH>_y63rO?h{( zeelNrNv}!<tKOUazn_}x|MSt<F=Rd26#w`2IDY=#+1;f3^dpm^IRpP_sOqXbQ8Kyq F{{SOpsm1^R literal 47291 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 diff --git a/book/images/recursive-fibonacci-call-tree.png b/book/images/recursive-fibonacci-call-tree.png index 9e18a2ab7e050308393102aa9cc8922d5c0a7baf..380ffa1343f49c6ccaf76a5cb6aae788d963169b 100644 GIT binary patch literal 49993 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 literal 52743 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%0D>_fl~BK*^srFQ$r<i5omj^sS#(E0|Va!mWwY7 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%0Dq?o%c)^!oBrA2&6E*^ zc+idiwnafgQg1w}M4uMQXQrwrHddFjN^4iE{d|G!A{C0mN@M^^d^up<*aPcxeR}V) zSG#zFN(Q4o368A`5weE89*(84&izVNUQ0aBxYf0ZFfycrgCkq|JQhs`beugQv@}Ml zC_>g7@-d$G?vX(6oz7mNa8#I%BH`WBjhU2&^rq(a;E5^b@~WNJ&E=&>{pziNtYg^G z_g8~AzoqYw?~+=A(>}%)ieJZmXXJ#XI6MF<6~ZLT>~K<Hp=o<Rx%(;Cg%&a1<g05^ zRs(N{);FWT=pniODS88TfY`u`cbu<7@uA;+po69-?0=;w#CuZ5{lqH`o+7dF;N(_n z<O2DLm%Ka+YuU{OUc?mx-_>q{F<dp97^Mis0lV&`+aaFzd#2w<v%lf7!)|B$R7kK| zRFr)E+Vf(@ei0KN=-6PnEI+|QL!{{@d2jhK{|tYINQEbLB!c@QUlMNP)f=&|ev%QL zU&RqxqPQ$#tKQJ$3fT=rKVTW0Zsp>1+pF`#K|=LVyo+9%6EDZ0F0B+j@zLkJh(#sh zlDD`eTI0xrmz5ttgQy%7Hv*a8=0u33OQ80t(0&$Vy;JWT{`ym<K~t}un6s!wey7mC zvb4FOTrR*eDL)0V!t>jpLsq-%gf<03sq$$(Sl(u<ps;?MlWN(Y(2@M<aQnMB#*X9t z(^tRo)DUY}fCTqsr$i{wYA%&a;bBunzfMr5&fF=Yj#(nHCSDi@^L>?|?kg+(R=cA7 z6R#FxrRIy2o(S$x4x7CX+qH|$#MLr3$y1Xe(S|>}-X$t)e20LmBEfgyt&?<d=n0+! zh|+67Z0>!+m6l?m%=+8=>j~h@?vi-cS^g~KlOGwS%?t+4JP=?-F>6ihFl9)gW0QRL zrl8ytlK@CcXM3`02Hup$?BHYu6GU>jccEfc|BUrR$JVx~@6h6}LH0b0>B$nM*sG34 zr;p1Y1_w9U!IH;7wtYJiQQq>@B<ecdqk25&MUlfv8hbbQmg})(3{YVrv`*+0?A|ID zxg3dR_D9$gqmWrr^fShl9R@enur#gJ3ZkU$4DeGJjccryNgl5Qaz2X(h$zYA@9-UH zpNk&lKMbC;59;YAy+uj3F@63r(N2DhD8YRA)wCW`7ysc8wVJ7SVg8eKbvs37bhJ%% zpcw5K)tqlWfI1E8%3=Mby0+xx;_agPvsUb0;?p(O6zV5^Ph?-LD`qmYS;i0T={UVz z6hf!m&13hd6eh`(F;6z2LeIsXjmWc<G@j(|+kJu}(V0krLvuyQZN9K(7!^|@CuP1S zmQQ?%sUQesQNdUg1k=O4*~B_kFQlzwb!cjsrVPlivPMZA<9i1AX=|IW$HFfHmk9VL zCO!OLA-1U~DrsMj@ei7j^&QcO&x#u#G?duxH7&T>Pf*NNE_h7R@=WQ9vn~TPI~K9Q z(XjY~bC(KCSB@mJ=`xq%Lw!>|(G+uWVlH#02I7arnLGVFm}dz+>M|*Lk&J`9o5XlO zlpH1SIszMR6b>hw?rX{|dkKAM>(HOy!E&0ux+eF=)fTL%7wj+97FrHe;XHLnK@8u~ zC$cJwDWy;dxK6sbmpr#EJ@g_@GI%lM2?zf|H5@yHnUZ4%R`38EGtHB>S``Z24byT= zIUiKM66LeE*Ww>JnF?O5wiqD5nwy}gzuMK8{4_&1ANR&_cv!(}hc3o`)jffJhS=Bd zP~mj#?L9xrHR(4dI366~4(G;Cp0iqgfy9c0v1nYgh0enT_Wjev8ssnXceQ7*@Yw3I z?8H@!L`|UQ7vpInm~u_2xqE?>{{S$|9MbaO_ZV=qy3?wZGP$f%&i1C&QZ3>wsSipX zP;YkC<JpSr-)0S_Gg$sU{9rY0z_vlgN8m@$_@+1%YEV=8G;kR<Ca{<#76o-b22(@z z-Mr6r&>6Am(;ap9_tYio-yRIagW>!hFqV53*!^v}#3+0HU~Nd@x`9TqS|XFEFE)hL zzf0+)fL{p@)q%^<E^FArEQ{1mWc`DO*X^%In_%?ufTv@=OSo<4im44^FVj&IUd*He z;Qgx2k6_V{38Rm$FBesN_<1;-uMA@@7jQ(M_&iCAP|BC7X})S-oD$_|=k%-KIU5e8 zDCU?dYDhX{0=$Rslx(c=U6i9K@5{7hlwRz9Uyc9mBRBPW-MmJHZd3!vM}bSiOM4gB zVi|fFMI4qNea^VnYP<Zq-FKqOJXlU8)Gx`Y@kbx0S_!5;C@qGm=O2o{4l{tsULe8L zEEPwpe$L>WmPOZED|mkv>xcm3cY&s22~>k^OlpDntOS8m-X&2P7P(T*`Yx!muS-Wu zg<{cYv59G1>u3l}nVPD4(D|>3tOn73za}grBC?sukj2RH19emtPFcTYw@*Zy4PE@G z_k8AV!6?muQ@T=|U4)S%*V%!w86DuQfYGpK<vQ~841<$<1CT-w4c%%c^@Okza(+3L z+2~9P&MhqzN<GT(Hjn<AS$w$Q9v9(}x~4+d;;6BDTMhzgqN<0`G?YZ0-n&DiHrp?| zHFq(|27Gh+9NboIMv~LgUfs>PJM;c_muZAJQm!U*&CPJno|Tpz|J$<hSHlONUTslJ z9~Y<RKP20?rDwf)(Khfuuu0E+_Hsw*p!6VK!4l)waig$RKJgkxjJW$I*A-WYmHnyJ zrwIlJHluin%^+B&0BrPVrD9c9=c)}pAQ?i7w)va|+8X)w((sYxsFu1$-~N16*Pl1E z(k+H)S~$N{^U~aD&|>Px??Jo$YxqH88T+kTnSC$^aH~6h%L-$aBG{ZxC1FM85-4<~ zQfT)>maC9;IaR<yG@)X%Qhgm?JN-rU+2Tq%@{qdIykio|No|UaDmfnz{&ke=O4VlC zZrvRF!>bZ~m8xJVR*Nugh$Q}c;D7w38f|}U7$+8Og8JrVs?9sZtQpj0=u_A-u1Fc4 zkvhefn}aFq<v(Qx4dJqcel}G8mTK-UG$_;dybfF-N^}>#_vU>TfwIAU!RR~*Q}VUu z<hDDupx>*Lul)_tK!0g1tNpW8OoD-5SnP}u!!NwJUo^uj=X@lj5v7qRBNtF+f0r|5 zC$9es(c@F3gWbE&Rbz)gQd>WF*u^|eORk#suMjmg>NPM~wJP$2i*{&>X!S$39`eOn z>NVvs|8N7<RlOcO-3r$&kv6}9`Krz_FgQ!EN>GALHAPMZtGMMH*~_;EEl&u#01MT^ zjEgUvC~{-w!rt0dxkMz1m&bsZEJAFhPbxeBKhOs&qO8emm#0p@X{O?vm)<yD;>g9U zEN@3+@f)gc=7z0u(irkPmcF9y&$ra`#G>i~1*#)T8e$DKHYwz;=$g`S9q_W%F;2_5 z#TDGqpI8?wEsWF#p$&iWNHih;f<Yf6@%w<i!ND^%@H1Q?Z>25yeK6f;ya94dMOON0 zM(H2NjHp*|!oOy?O!{I42|WBi6B|4m=uKNi)@e=Ye+aGT`JBWnt}aH#PAhJZMUG8* zZ0;}RduyknAzs=o(G#eM(DuC8_vQKN&^o+C=9b#XGOu#mQaC}pYyd1Q*`PpB9mlP= zfx-7U57xrZ9hDd~dUvYgx^{&=r$Ejttf4-sz&rkY$+Gg=<mhD)r}6z{4q;tl(r1I$ zS4%al*Y?Bs=9Jj`gjM|37{8xYISpS}DXZ-E*f^DGhgZ&~zeh~p`_zqs<a#OE_(94+ zlmg@FqW6&rj@)c_HTlJR6>YCJ5_G)%=Zy4Lcd}IsVaP^du#rTo0z6Z%jic;m1PB%x zWvW>2L)d!QdF(X3)1L$l(v@K-lc2n>C=^q->!=G>38>1q{a6~VviWqVc$0+d!Ipl~ zJtp$I#z&(W)#INE%m+r3DtKtY(2?VKn>2l_ul2sIo9Dqjhl7JY;|bP$sITeApAkw^ z33Am+#v~@)Hubyfh4nQBUXBm&3;bJwu)f`@F^H@*(eM=ul|E*JCTiuej7bDK1J%Ug zIOut=2kOJcH$(=<yQw<(PHD^tLfh_$20FvlK8F$ybf)<oho-vkbS6{2hAl*)7ltN> zi}S7j?3O4e?ah_LA`%Y&f$fy)1H*uR6`HRL?-s(q_&|S}OCT4<gh3v<Xd}WY+x`F; zExmiSzPupVn{~bIwbjC0W)kcd43k8<XW1$=ORFzF1!5C3QWd<<+iRxH)OEz^k&2cL zR_urCgwvFJX9q_#v4_Sq*)Ywk4*NzyGl8_@yb$AcC^R$;aUKGr_cR=oKN$+v{vbu? zhkPoo1o?QzEX<eF2sjKVL?~bK&4EW*+yLGmDvWr4=$(2Wf!T4c2l;C<UEj`F_E@#2 za<8b#p<<4TizS<LQ*qIQ{V?L~q1ujMQ^R0JMjAv#(U7+h;ZW>Z$n;qE6yNTJ!8G%$ zM6tDq*};9VuGrobN|orM?2sw?V0-j?pbe8DeAGK@nHZBNTw}w83vf}yy}1Gr^I1S+ zojMF-7;NFj8K74zB2Ua2=zU3#38e{l<`B#MET!1S-(ran_~FUqZUDYs;Ud(_CFSph zzpr8C_;^OYP1_lh+DUHj5zBvc%)92Rc)g{J=ZwgLo*3%`HOKZ;5dB7Ecwu_eyD@S8 z!cN||X0thejZ%c@d#_<Q0x{c6^6uU-+Nk%pUtLcq+NqRGtY<}3kE?AoVYi={QQ<}; zpb*ONJml?HC))5F*>(P~rCUZ6F^1b^-rRfHTjzh>4Q-D(&{V~MU=(lPOFY2C2}7|Q z@%GhuG}lYopGRoGmj#PHVLFpugN{D&7HH4~C9Q3M>S;goVixXo1Mu~Y+gv#&MApc3 zY|5*%@VOOn;|P39bLgWBDU8!-2j)*;3vd0uKV*b(@{v!`%1nOY%`XCy%Y^k-oR~2b zBrqtTuoCRGYr=ALG^0!H{<+{k*ZIg`v4%+H9d%`13yk-6aV{?q?!5;X*ki4%4D67s zS;bubT&FwWY7{%Og*dwZ+%M|{6I}VEx~PCJ6G(ql#(&`%gJ9E;JGMDmF(`nMc{K=D z;1UzR=}mww8F*j~{_l@6AB>cFe5Bz!hdKa<;mA4~b%3M*HboPnQgc|Bma!tB5mG^N zFNM}|-YAqL{&U@bE*C*U{Jf)%v_!qF;rp_BoB$7^od!l;+9J#9iFF`9P5=j{x~qc< zA0AfTdklO2{lKl5GS9)S^U8WHHLs){BWj!Ae^S<sULCKF?`reGY1CQIDN-VEPqwlF z?`3tX3TNuX!QT%a{RVF28>Ir%k7M<_0rsIWXDj_a0Pau|H};lSJAdK<g1wMzY;VtZ z@iAU&hW`7pAvgjol!4!PYz}KO&jg$+=0JUu8Qbb3wPf5W*r>e#3F$E)+@U9)PA!M7 z!-4a!9~zj9pF^vqhdw_!LI&uIny{LAkbm3Zn%uYf{y4E3$ldsq)ZqvuMhySmKxFga zrZFQII#uQ|z@96*F_d{o1+9Rnkhubq>~*C%90AG&09j&JSiS+X=ARZaK=k%5Qp~R+ zJv*46#UcQpnxrb6XB^Ohdrk{31rQ#`pbcgIuXp2I|9Z;T;oh<ws#AE7gfNT6<|a(; zT!4Y3yYrnXaqoI&#uEa6;2Ki<zYm!XdC1C7I)Jch1(aqZ4UX?!0HH=z^Y*6X7L*;q zCh2f5Cshe#(*{%7{LdSDKzc*pOey3f2e_&EICJAQ1j~20Z04ql6q|r{Yy<$7ek^<o z`qOP8y*@Swc)EMv$Gv&~vHQ6b*rQRVJr@U=C6*q{`@)dqGl&_#9{74q+WnC%9*Ij@ z{%%b)Y|t8Vvfqb3zZCy8Wr)Cge>R#Aa4U30juztrXT#zq0PyJh(FmBd8JO7JX8$#6 z$TWc?I~ea^1zB9f68LIkfNHE4i2up@nH#O_pXKi{>0Z`YjQ+>&@3NI0q^jvwQueRA z6G84SdaDmCzHA>h<jop~m4i`Jp3rqcjJ$xP6AMyG^Rx0xL;r420vKq}_2Fcw&IC*c z2+YduMisbaK^!IaoBplh03v<FuMo>7us@Q#6;1s9_x%Dz3L!sop<Q6=G(Z{{r&`y< zfKv<|0M&VFvq9Il4_xO-5WoO{!;+Q%I0;=!?t>VF|BM`wO2`x=HrstFz<V)e^j07Q z<ge3IB_6AXy(Ywb1Ah0|(?Ncg46(1c|DKv+0lXrY>MF-Axo{E0mBj%Mq?YCzi~KEQ zIoUx8q;5qcK)zseJ==;On<<7s8~%A?k)M*S>IK+S7itBH2{qQUa*&K1U@$={HM}nN zkKY6ki6nrJ?B&}nRcj7?-TTjV|2IcDLJ$$@M;(tKap>U%VE#1CN<@(g>m};V_$y9- ztpG@lX`9CVJeSiANFI*1Wl?^mSIzr>Kf6DfLF1G^hlFwjz>umn-<`aA2I3U3o<YCR z-UM_fKJFGs2rMwIo7}%k`uF{1Ar^bM>Mlr18-Tnx03v@s0J&slrBIj9^B>gZf*>Ag z@YWFcw5;ZODc8R*M~Cze8R^fEnZg&$6lNA%dS6Z~uzxu0gPey!oN+Kvm}U4NF8Tk? z$p(m22mnHWJ^U2(iC6%q=>dF(=RwVY)PYo}aZ<txnJ?1*nJ?~;b<lv7{r`V=S~1N< zAUy<z5QwK2B3lWB-0KKpV!Zs89CyIjjR!ZKowi<k{37^w69FUwCk)N+V8UhB6EEO7 z&j-hRVsqgjH*Wm2>OKv{haJ?+WjX9n<bR++a4mmzsC5W-gsldMM^TJtt!on?LEs=^ zK(i|)uW<|Tg(N>MxR~KfdVl~YF)I82y%^Fn`hvYC!I3&R#&X;dHYt_b2?Io{Z))kT zs}bCJ0Qph$NOBAH=lxjW=%K-{(>E6C1gcHp1TWjC@gagD`Rc;7cRJOU)RTH{Uv&Y& z1@M~u`>t7UvH!kSH55#y3E9i01E0zH_bU9-Ja4u~YHb(U#<Cp3{yklk%wbfsu>Uow zk}ZST5$gkNHhndiA7sGjUIR;<Xuv$++8|W_WM7A9Gx{ZB4=_+5!5SJD-7}MaH*2&3 zoV+9bMpyk-PM9%3WDI_34GuqQlMb~9w49zom0Sq3W*Ogrm+)VGVJ!emk1lPvgW^VA z;r5^4xaU8{Re_|PG<l{ZLc}Fz0^b7=R+k9mK9g7THh+d4q?IJ1z}rejePb|O_~BCd zi)*$AobfOL3~yM`SfI`TK<+Su$e%cX{1DXxC@8RBTqj~CxLE(YiQ}Q6<IFpt8a7=3 zUmG8P(-15xUdEeCV!nd)wE;vY2hd-L$o{^90Olnn7__L~IOh-zYvMmM1%X@@g^2fy z<tYnP0#*?z!12%e_v3a1Lmn6P0we?H1OD8|cQd7Ja5U7BuYFOE$pdDq^}ptdxLvG9 zv%jVp(1+Q;tm=<y{^=8tXy#f0vYE{Xe$P8+ZC48%GLu!D$@BIA6cg}Sivy~`{;6+9 zCPn#)p(W-F5N^jm-y|RSFz<bLN-N-v{(GjtTG7>?0HS5b1Al<jeE~RyC5QI6^M73k zh(K`QYk~;fp{pHE%&Q7$7mN_{O(|di)suX4dr48T8p#g{aLoe|25caon&4GU&Of(> z3}ExmkdX_wF9dLL_~{J*z5Gt^3k6hN599H}|6f>?w>&hEZT|-?^XC`GM1x5XH{YUB z1;hp*pDZRJlos`)3odMuNLWqMm*AN2Wqh+nIz2h1TIi;3G1epOyStu<bFQLudNrCU zq4{?FdDvKqdXQ0M%=Mcjy7Fd7WPQk&b;ijY%+EliO9{jOY43$NFp6BSVzjgrhNkY+ zUw79oh8Dh+-ne>ji^=r5xJ9|A;&D!Dj`3h@EJeJBrZDZqOG@K>S6}+AEB5D&q{_Y- z%b&3z;)*GQpABt)G;Kx!AP+f2QrCAM9+zC(U@{F5D{SYc7Vo}KqXffpd0QP_WkT6N zLt~}Ew)>({!O3tPw{fl`!1XH$Gm#ri#j7@BbA-h&)jM>d@|w>(=AQ==g_c$)_JFDp z0!dWehSl6zR{jd_Xhx<dea^@iS`rWS4bLN=G!Y#U-6Nt9&x)HJijvYwf03+oo-J-s z;pG8nQNpu0@2jhGtrq=ZS~6wd(@Fi?$6M;_jvm+DkYQ;at|<}Y+z1IxJznSb!9R^) zfS5<<vxZFw0<DWzRnNUEL>$`SqtFa1d^YDwwWW%e@=(^72)_5CQqg0QSTV!;BCg2f z`th#>FpJ-hqo^jp!gL5w_$Y28ZBMuzhWxlK^YVQ3$W-<hfimN|usTX0`{;pS0jpZ{ z;#itqtYsrh7$k`Uibv!XR^E#|&Pm+qcPNkM(<8J(13Jl35%+(VtUl`G(WqjuNbP{p zklOCFa6Du+C2RF#=?p&Afh$-BX^Qm=({Z{L+q8k0gvZ@CuRsDH_Q;L^1sb9OrdnK! z-(ql%Os~!<p=vOn0w8711%8?E@zcO7gNEx3id1VFUtH*3jS*~rEF+P8!vp@Sr|J(| zII~uiJG9zk(&b91)L#!YN&lXK9mtf0#Qc775{YpIV&dDmsi+`v&7^TpcW7z%svL(l zoX^?{X%QXpBcv+ikz=Z15?Qf2P5CHK;+;=Zd!cp&z%R$i#!1j9U2tz;W-oRAE>0+? z(Q*(q>4UQ9CbA7SAC`8xwZ@_{4G)=j!k;$6(5Kh@Qmp;$@0J=15^?v3PZi^ORsLfI zhX9jsO0LRg-xhg!DV1o7dOu(vN&+EOo-0+xx#GD2Y||(x<Y&wAN5cu;SM`8=CpBJQ zg4@$f$uR)g4SVDJZe3T@SU!^(MAK4$V-g&V@Z?YXcd)5c|N7WbA^L0~p{a||$RBY_ zZ)NAgcLv%4?>ip(sPIrZf0ibWjCZuNh_ScP?S)WcLL{aCPCrW+piQ+bOFbzTN62i9 z!p$Y8Mjav-%5)o~71%;?+o#USs7iZdDBj-QJpN}Q!VVJw(MAiOGF-Yg`Btfsb9K}O zKh0M=@DAE@y$sy2YEXG5w&PQfBY25BZI;<LYyPfLOn(F_Sg{z^zWVW@d0s5-Gi^0v z*UZ&1g;Celg)m?a5WD2r?q!Ve=`{VBud+nRFqyM`6t9h<LIiG0hwP=l8XY$Msv+wu z^AE)%vPa+Jt61kb5{da*8(BHFb=uW9)e%C0Awb6F)w~#m&f9T`iRZDs%>ey_OsFl) zKA1ikKAZzd`X*(>((0dST^$)_8IzFI^99>Ge_Jn~vz2nM^YbpEVl+`+SA=3owJ*T} z4|P2{w%2-ze2yngcnP^e`SHB(6U}8D7g2EhcMOA``KTafOxe$QwU8QZ42w(hjBMq9 zjkc{Z`?F*svqy}VGRH(Qm|~5=*E@O}1P<bcRFvk-xGIn>SosPp{g(ydf4*(F+K>B4 z!0JpQq-%U;o~gVuGp_C(YR!(Q6s(Ado)eqt5PBF;GIh5n_;+tdmdN4}gLNv!5PEUa zL)rYR^SAVEVDFQsHc`^yP;lLXm%%@-zu5jfF82y4ty1j>c$zG@BXoaz`-z~NWOuT* zr*yBH5l)$(NMOq8F>L4Aj(WlY583YN{>YyO?+X%H_J_wxL_j^__LqK64G?NI_H_EU z>soBF5&VZ|lt!8El|9UjYnOVuN-8ZxHb;JJ51YbINhy%$UJ|t2f6{Mv9OT`OWWjzS zlvwa*ZRZ~;V(8zM8+AkMpgWoq>LVAJ|B*~YL?Vw!NoX4<sGBqswaMcLb({U7lRnl? zd`IE@w)yhS`;f3ThVnC5ql>-mZj+)%Cbz!}BR)BpJyFB0wvWHKZ=pvbdAqnTn2UMb ziuMqH+!V72lJTqr;D?shy}K@ki?QGRO7VDCfM_Y0m?I6PQQXgr)AmZ^aG_TtKa2#4 zq3zEvKp~aoDF*8nUQ&iFYO-^8Dp@l_ze2Bl5ko1We!)<NsclIY)6c?!VMgRwR8oEs z67Gi)c^CK9n-MPfC$LO5-;8-Z?l$HO-b^$9=@tOT2kVo+I{-Jtd4F?lBQ+gO7^6a~ zTXb!o?kI6{cC1mr+@!u1M7r{o&mW!Z+0-RL3>M2pd`%xcg`jKj66Zn9><Y`G9LHZP z3m=hr|E}R|iqV4G)Yu3vOH6N$&ruz>xUM%crAHV3^a{F26h=+w?y2E*eN_&{6crP1 zC>|ebNw;FI7$C^O|E}>7pZUxnMOcj9y;ua=rOI9!a{NZBMlJP#4bsP}pgn*DtlTYY z?91;ne0-jYsQ}KOi&6sTN{=5Ob_QQ96yFxt?qsw8riBK{$wx{-Pz0$C&@h@Rm3RP{ z1O18gxun`Thp;r~m5_QbUH40b1k|cg^DTEZYr0G`XYR}sO9slrTe}*SAh*ruEniPP zzxgB3%44?eA8Z#$zq@)a?Ue$kSsxD<=Fj^X)Sv8AhL_?O)ZMBn+o+i3^wioOy5+v9 zDlBB&gHX2qyYjLWC*#ic>BFVRYuu-igC4uE>AjSGZ@?9d7#s%Jd2%(=rbL|2>U2pu z8xy|pf)MM0Z{6!5v>DNmw_7;z9QU^EwnPmy{gomMC{*l2QG}dwHM2JS+j%jS1?sB{ zCwKch7pK@CCrYSKQePScHuhgbpuUr%@rbuzL&vV<l|{4((7wO1WWahn%^f&yD#7N` zP@FIixHxKmkPRsh{sOhsRfJFCPQrcuV-g{P(;t+uD0+g@R<@KNc09^pEp^J9RGS7_ zh#4!`_=cXY>;aeXV@K=t1`!sb$iF@a{vqBDH}Ahd%sGnb0=5f3Qd$C>&BB;!jud&8 z{poolNre|~fi8gkQXSbxG0N!|=cMt$dV?}ua4p#3xZvyBi6&&?Grd`(%U%%#Yh&h2 zaSXw#zQem*5HFD<iK3K`sNtyw)2Ra>X-%M*<t!eAey+&7j%#~$w5$g<FFyc#mglq- z`(*|;*8(tmty_biIKxIrFk#TSpQ%=NL+8YWX7PmWNs#05tZjzVh-`+_<-FngXZ}p? zg(HEZOm^DKL+XWy2H{`n{F6G4;~M|x<r=kZxt~zW`C08`#~%5B8;{oq$fttOd9sa7 zlK)=sW0GYRU-OQbB)RCdc=CE89!>xj-ZIxil8WZ@Z2(9d3>zi@wYk}&B1_f5IrSW6 z;6X!y)Vyl@=u4dGi+X-MrrNaHHtusNjW_%N_Qyqt;YyI}JE-0rKV^I!?Q#GyVkrvW zf4t<E=mB-Tt>>Os%L_or)8Y$hQTZ>1df^1iF5RSuE?#$7rezwZBU~qgyahW=(GOv{ z!a(%tScZW{%u^xvl{}F=5CE`K>Pa2F`fzc(I^UOH!!2<y`p2ZM8~*dTg1nu0)|VaJ z3oP3frpnVnLuAF`wE+4t2z>M)o3N9!8v;+<<GfkkE`Foh>#tU{11PA(&PzTyu>k`( zg-qw_KTYT7`jHt*qwDp1I)ynCf3o#6s&xkXJ*w2Jwu`FwQDnNGgj8A2YSxT<2YB6# zX0lD&Rsi0YuFbN%px5;}et@mnG{C5$xI)@4InX70k-AXvR|+2F_1bMrcfXb_pe(o4 z-QcW8zp1r(n?Iq$bkP+Usu!Jepd`whou*Tbt^KCJx6{%$d(Gmn1{3j<&Z5aao;J(r zg3oDO>uH^S!<|at6;~%D;a4pxU;r0s_$li!<1KV}9l1n>7XhGW5<8BmH~`;YqcoYO z(5NfeZaz$x<9_@_L%IUh<QDv71XL6m`S+{h_!d%_A=`E!TlzKaWuWDN_f7ICZEz-} z>~N2c#b(e7m4qRIT=V~jVrOTd8-@2`Wq;^E#&etI>3WZc`a^5_TRp@{`}2b7uy5K3 zm#x|sOaeR>H$YO(?$ie(EDHsNmM$wHs-AnGl<eDHXFm7Z_<UT_j^FC<DyB~~W}&P( z;{pN7ffA)$vF{opYNb{xy!6K^twU~5SGT8T?hmYeGb1Xv<_;*MIb6hS?>Z1K8Kl-^ z2+81N#<{%@OrgD&<c&T?E^}FcvR(r44fPU47)1O&1eKn$41?RS88@Ex7d<ziOn{@2 z8UsOLl`&(=Lm0nj`?FdpT-G}z{XpE`kJ5*BE`KDnLuew8hI;dzO4M*%xa@($c0oXE z9Wd|Ji(HSqj@*un;_vBRP*$<;#|Hfj81DNX{^vuHwSx8fOBa6oJXO(+(wr<>`FkeS zh&uL``};#L{OV-8Sd8i@<-^j$x<xr^4oy85lO&95>*nhXMOU9S|1*F|G!f7jRW_!j zBBsitcZV(31xLpzX@D%4+<oE#Z>xPBpVZ5-hcY8z{#bEJBaA4s@~I=f{Xog`Cnd-i z>n<zm!!NXsxb+fz=VzS%;#N)b<+5&Z5a*=O@|x*?0J;AxHpn=UB04R}2s^}#e{tfV zU=?dY=$UHy?~IgGS(K>9xhoEPKD{L}4(1ypt-Jq9`4v!YBguNHW03UvH=kwvD)`Ur zJZ0u>H2jcl{DujKI?wo<de#h!$s>2>gZ~;_5us|;9`4;DvQAJbuC!Mlec9D3MA|vd zTp^SHZGJj25f69|4~-{s4iu5lNaGB77<sKE?e}UOndQwleN6!>PUlte#ZQZ*i*{<? z-|6GWU<srRv0o?RuW6qoUr4PC=ScQykEcL?5=P?W87vTn7|{+!$+#+Ue5hr8RGg1= zbU}-iZ?U68MVm?zeEz=GFdg=1djbwNEU^jQ`!XLH*(_oacW{vucK9?eJD7;Gv7DjX z8Pw@ySE=eIdu!XM(Ig7WzDp$P3pFTdtvYZ1w)zG~-{6Zp#GCo>ai^%DAsmSr7(E6M z?HfS7%6L(8b|?Of*3mVq!IOf>T0Q^aBI=(8fE4ud$)Zz-r)-76e*P(1?_0SA$7Uis z9|&r6-~%B_+gpSM4>sYg&c-^aw`m#fC$i`5eElw;#QL(@j?=8+;HRte$%b?-RoeK0 zoWJeGER*$-j$~$tb7XqhOtVDFRIpJ{F8sY=0nZH%+&++V(-G=)POl!J@ldp)%mCX! zah<?Mt@;_Qz`$>k=X}a0|NdA8iF`elAaNf)eK^J#8a3}RECB3Cm*SyF$*(AtPUquV zZgXnmxK2urvw{&}%c0cX88!#Htb#f3aReY<^96_|U%dpJOk@<7ng6Iyf!+*$s@P%E zr<Oo<2&@*zdf+Qbe~9xdb@32*sOc{m9!MiX57IxS6l71XUXPKB-?e%RKM=fevA-w) zdAj40-}Q|mI0ZP5E-&UjC@IY|PF^LBofUMGoI*_TL%!$Z=HiWieHik|D{#v<sdR#= zf9D333yl{jRnc?uGAN(Zj8iE>FQjSqExY1-I9qYrNzVcwMKR0f@gnbL8YP6*3DA1k z#<?c~p|1uhCw2YmWY!)ZlyW{=q+J`#ZCVOoPg`@V)aoYB+Uv*9WX3OHQrXq-xm+cJ z-_k0UgDc|3gl72FoPxpnUj>)|%4i+O(5SAX<gNLg35~L5KF!*^de&~922e-m4MEN5 z=47O2vO2P3*O6(sznFdE$hcw@zf)fv?a=>F>RAg`>pd=;o#MtvZ5{8uTU!U06SVr^ zMT_o3JXHY`BlN+)FCIQSo^t||cdw$d+7Iu)TRH-mgfNkPfB41l#{O5#Se(I_+w-$d zUMU8Q=%Z+()Nd96H9$m&7TJ*mvIYS7=z7V^CZ+97F3ih}x^0bAm}lJR6OBDjb=G{; zgQLiPk%jWd%;O_SqrSWxt}Nbq;IPXgeL`X?773M{?PLDzuXpy7%=$E5WF@mPaEyfJ zTmROXoV@P4m%<$9fiyXxueXJx1}5bP3Wv>Ahng~X)l;IFMU^<$LqYv_)%!K;MSLBD z8d}%q!-$8LKKdE1YbutV=d{$Nl1(+eo%mr^-xWv@rzro7Vgp3nND)te_-pK8G!M@_ zBHA>v%FT>`BvadXe4p9{?D}Q+Oh3TUUUxE+lh|+exSt{{w4MIKJ@Wv)0N}yC{5n+6 z00Pe1C9(0(809dBJE7(9Mq)lYT84x=jeLpd>7~8pTR<ah$8{I5XE>;r9>XXJmQqhD zdn>8=n*14F_jaoScZk4cT2IRZHK2|67HZ{>!~8t-yq9o9mLy}Vohcq^9&Y}t0*W07 zwtZ5{*U9XX;M2NTMf@?krwt)#o<T#Ili!RS%1|cU|MuW?RV&Ro$6UR>6ao7quVs8; zKP#4cJz{w6PBBukZeNMmk%D9V5^75f@z<tLeZoD(AgJb_vbKc?*c1D)7~zy;q^$WM zxMOGp5mQtiHd9R5zout_srm(!s@A9LNjVe86zO~+92TkzuH#yKpD1DBuPj|5h_7&* zr6E;&M6#y3bIlm;Mcni2y;tD_M~ys;`%HiK6fX#TR*)jHUW_@6eTbvvo9d{@Ca=8e zV?a=v;$?;dM-v>F!9BTAp&|xVwk!@ESlg<$KlgWfVwznS;E95XKZFNMt<|VQ!Gz0F zNf7UTr3DB5pyH(|0)J8Xr%k}TNvX`2jWq^sD-|Wo%w`&X2#=5d#p^murbM$1=TjuI zkCG6U%Z<fi943(?>iOe?Q%v<lXmQ8Z>HV2n447DWNYBV&`jX#@&euJj#ep<|9B4y# z4c--_yYun~$9dbC^1r(k*p)kj=HV2W&B8%%JASyO*ezqI>?WbupGmfH_EsU-v~4*b z&!tg3vzI#b%=B<yDYF=5m6MSoDO8(xD=&W-t;{c1tllkyNPEL?sI#9I%Dh~t=q496 z#@=_kUcZ0bFaP`POhm}s#VBtnO@E!#?>XbP3)-A+P*`C*O_Be$$Eg%1SD6GA+>@F2 z6d=grWRSmE5VdO_Slq0d9CL~ZT}?O^LgGFzr#N=vdH9ANDmu$24cjBKNjOOAx5iD4 z6*apO(}!WEO6b=@XzBmFr${nZaN;nc5c=v`?c!6QE05`olLRi5OM3sXx&4|`L6G2! zFLZUFIy9y0J-b_e+dWtRK!ZI%HdV8zXI#H7$3*@1a43_7u<Pwwve}(yRWD6*2Wo9o z0?Bl`y}u#1KR+CPvFcPgrb+r|0#lyMvSzF5{}xQ?iG7?ABX-Duin_%<kTT2?mFNYk zSM8J-+&RG@T8tVRG?!5z%hx4TMZ2;XI8j}Z*WOXqFC+z&{Gt4<8e)zBwgEe>6*-NN zvv}cj<WksQL&RJ$b;HXn?CGmuh7Yi5&0N)l|2^PGgY!ATB%EHV6qP^=hCTm`A%xjB z2wSdUSHeBhvnb-w<)=t(MRM(Vwj=y76;(C(Ea%;VKxQzI<9X%&SWj$zd2d-_LTNfV zj^$0@x8-eTqV_Ot*36)fs2TZ-`!XsIj;>Viaqsb^Z&1&gfxtlW>Z`A;{z2Yi4l$;b zk9)S&e;t$-n#1)enX3mSDNustEFWla3@-h-ZV%>IboB7d?-*mIu@e5R_R?a|qCVD7 zES1`lBUmk2UNNnE!D6GJ^Nd@C$B`W7xB?2QmtB{QPXyn6Fc;K&L=7r4Ob24!(V)KH zw#|=vaJGhRFWqVuC&_<=NPge`;;HZ5x@2xn?;yLY_IIHe4Bj;?!g?WS3fMtre}vSJ zT>Dleyur^z-ci<%$TjbG)0bSCjmfbRckw*6;Uc<PB8(ESVm;RLr^hyX*c3?!W5Z`E zb~RuZb+Lly6=$?F9Ys`$@o>LPe`IzvT1CW9fu%rF(v>lv+DkDb!wltG&PG9M3nC4z z$TkB)+w61;w;S2-rp=<~gztlgy(*p|qu*e91PR4@95LTh-9nBByp|4ldA3mWJ*wBp zx{y4AB)kS_JfoXMJ|_BI+2d6T|I?cx2XX#>B7BGu4b2G(#Ke1GAJFg{gX`Yv0wxEF zPW&?x1vE?`ngy5r&n`}$rO&B5YM%>(;_%_1W7%%di5{1{$-G&!7e!tt#*#^pQEic) zK?i@{gGG9kPgIfQo7wdK&&Vl~BD?pOB0oZaL)ZkTGSukPu_$G*%uYajLiIdNMc=0a zF^|%Uib;bRW(t}7D{?UU!%(8$uvR5Cv2N}HJ|=!zOqDjs!}xEhDGQonxB@W(eya82 zf6nCtMR+k;6Ww{0YuWy;nSpYS4>IIP7}?g~R^ZQE{GT#U7BM(LRY4#7D*wO#(T;WH Yr8BcFzjC?92nGJhN-9c}i5d9*KL_kY%m4rY From 57b6eb9f1091132f9c32e4b62c50c0b96eac729c Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Fri, 11 Sep 2020 20:43:11 +0000 Subject: [PATCH 050/108] :bookmark: chore(release): 2.1.0 # [2.1.0](https://github.com/amejiarosario/dsa.js/compare/2.0.0...2.1.0) (2020-09-11) ### Features * **book/sorting:** add questions and solutions ([fdb8bd8](https://github.com/amejiarosario/dsa.js/commit/fdb8bd8af644ddeaa07ce62773e9be96fd6b2404)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36af93c4..88082ee9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.1.0](https://github.com/amejiarosario/dsa.js/compare/2.0.0...2.1.0) (2020-09-11) + + +### Features + +* **book/sorting:** add questions and solutions ([fdb8bd8](https://github.com/amejiarosario/dsa.js/commit/fdb8bd8af644ddeaa07ce62773e9be96fd6b2404)) + # [2.0.0](https://github.com/amejiarosario/dsa.js/compare/1.18.0...2.0.0) (2020-09-08) diff --git a/package-lock.json b/package-lock.json index 5b36d0f9..ecc2df64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bba73b72..786dda6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.0.0", + "version": "2.1.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From b95670899189cb5b24aedc8483107829794f6d9f Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 11 Sep 2020 19:58:34 -0400 Subject: [PATCH 051/108] chore(book): improves grammar --- book/D-interview-questions-solutions.asc | 30 ++++++++++------------ book/content/part04/sorting-algorithms.asc | 16 ++++++------ 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 9e96a89f..e93409f5 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -803,13 +803,13 @@ graph G { The red connections are critical; if we remove any, some servers won't be reachable. -We can solve this problem in one pass using DFS. But for that, we keep track of the nodes that are part of a loop (strongly connected components). To do that, we use the time of visit (or depth in the recursion) each node. +We can solve this problem in one pass using DFS. But for that, we keep track of the nodes that are part of a loop (strongly connected components). We use the time of visit (or depth in the recursion) each node. For example C, if we start on `c0`, it belongs to group 0, then we move c1, c2, and c3, increasing the depth counter. Each one will be on its own group since there's no loop. For example B, we can start at `b0`, and then we move to `b1` and `b2`. However, `b2` circles back to `b0`, which is on group 0. We can update the group of `b1` and `b2` to be 0 since they are all connected in a loop. -For an *undirected graph*, If we found a node on our dfs, that we have previously visited, we found a loop! We can mark all of them with the lowest group number. We know we have a critical path when it's a connection that links two different groups. For example A, they all will belong to group 0, since they are all in a loop. For Example B, we will have `b0`, `b1`, and `b2` on the same group while `b3` will be on a different group. +For an *undirected graph*, If we found a node on our DFS, that we have previously visited, we found a loop! We can mark all of them with the lowest group number. We know we have a critical path when it's a connection that links two different groups. For example A, they all will belong to group 0, since they are all in a loop. For Example B, we will have `b0`, `b1`, and `b2` on the same group while `b3` will be on a different group. *Algorithm*: @@ -817,7 +817,7 @@ For an *undirected graph*, If we found a node on our dfs, that we have previousl * Run dfs on any node. E.g. `0`. ** Keep track of the nodes that you have seen using `group` array. But instead of marking them as seen or not. Let's mark it with the `depth`. ** Visit all the adjacent nodes that are NOT the parent. -** If we see a node that we have visited yet, do a dfs on it and increase the depth. +** If we see a node that we have visited yet, do a DFS on it and increase the depth. ** If the adjacent node has a lower grouping number, update the current node with it. ** If the adjacent node has a higher grouping number, then we found a critical path. @@ -863,18 +863,16 @@ The first thing we need to understand is all the different possibilities for ove // my own image image::intervals-overlap-cases-owned.png[merge intervals cases] -One way to solve this problem, is sorting by start time. That will eliminate half of the cases! - -Since A will always start before B, only 3 cases apply: -- No overlap: `[[1, 3], [4, 6]]`. -- Overlap at the end: `[[1, 3], [2, 4]]`. -- Eclipse: `[[1, 9], [3, 7]]`. +One way to solve this problem is sorting by start time. That will eliminate half of the cases! A will always start before B. Only 3 cases apply: +- No overlap: E.g.,`[[1, 3], [4, 6]]`. +- Overlap at the end: E.g., `[[1, 3], [2, 4]]`. +- Eclipse: E.g.,`[[1, 9], [3, 7]]`. *Algorithm*: * Sort intervals by start time * If the `curr`ent interval's start time is _equal_ or less than the `last` interval's end time, then we have an overlap. -** Overlaps has two cases: 1) `curr`'s end is larger 2) `last`'s end is larger. For both cases `Math.max` works. +** Overlaps has two cases: 1) `curr`'s end is larger 2) `last`'s end is larger. For both cases, `Math.max` works. * If there's no overlap, we add the interval to the solution. *Implementation*: @@ -884,12 +882,12 @@ Since A will always start before B, only 3 cases apply: include::interview-questions/merge-intervals.js[tags=description;solution] ---- -For the first interval, it will be added straight to the solution array. For all others, we will do the comparison. +For the first interval, it will be added straight to the solution array. For all others, we will make a comparison. *Complexity Analysis*: -- Time: `O(n log n)`. Standard libraries has a sorting time of `O(n log n)`, then we visit each interval in `O(n)`. -- Space: `O(n)`. In the worst-case is when there's no overlapping intervals. The size of the solution array would be `n`. +- Time: `O(n log n)`. Standard libraries have a sorting time of `O(n log n)`, then we visit each interval in `O(n)`. +- Space: `O(n)`. In the worst-case is when there are no overlapping intervals. The size of the solution array would be `n`. @@ -902,9 +900,9 @@ For the first interval, it will be added straight to the solution array. For all [#sorting-q-sort-colors] include::content/part04/sorting-algorithms.asc[tag=sorting-q-sort-colors] -We are asked to sort an array with 3 possible values. If we use the standard sorting method `Array.sort`, that will be `O(n log n)`. However, we are asked to solve in linear time and constant space complexity. +We are asked to sort an array with 3 possible values. If we use the standard sorting method `Array.sort`, that will be `O(n log n)`. However, there's a requirement to solve it in linear time and constant space complexity. -The concept on quicksort can help here. We can choose 1 as a pivot and move everything less than 1 to the left and everything bigger than 1 to the right. +The concept of quicksort can help here. We can choose `1` as a pivot and move everything less than 1 to the left and everything more significant than 1 to the right. *Algorithm*: @@ -922,7 +920,7 @@ The concept on quicksort can help here. We can choose 1 as a pivot and move ever include::interview-questions/sort-colors.js[tags=description;solution] ---- -We are using the destructive assigment to swap the elements. Here's another version a little bit more compact. +We are using the destructive assignment to swap the elements. Here's another version a little bit more compact. [source, javascript] ---- diff --git a/book/content/part04/sorting-algorithms.asc b/book/content/part04/sorting-algorithms.asc index 5a6054c7..4f2b8c0c 100644 --- a/book/content/part04/sorting-algorithms.asc +++ b/book/content/part04/sorting-algorithms.asc @@ -5,8 +5,8 @@ endif::[] === Sorting Algorithms -Sorting is one of the most common solutions when we want to extract some insights about a collection of data. -We can sort to get the maximum or minimum value and many algorithmic problems involves sorting data first. +Sorting is one of the most common solutions when we want to extract some insights about data. +We can sort to get the maximum or minimum value, and many algorithmic problems can benefit from sorting. .We are going to explore three basic sorting algorithms _O(n^2^)_ which have low overhead: - <<part04-algorithmic-toolbox#bubble-sort>> @@ -21,15 +21,15 @@ Before we dive into the most well-known sorting algorithms, let's discuss the so ==== Sorting Properties -Sorting implementations with the same time complexity might manipulate the data differently. We want to understand these differences so we can be aware of the side-effects it will have on data or extra resources they will require. For instance, some solutions will need auxiliary memory to store temporary data while sorting while others can do it in place. +Sorting implementations with the same time complexity might manipulate the data differently. We want to understand these differences to be aware of the side effects it will have on data or extra resources they will require. For instance, some solutions will need auxiliary memory to store temporary data while sorting, while others can do it in place. -Sorting properties are stable, adaptive, online and in-place. Let's go one by one. +Sorting properties are stable, adaptive, online, and in-place. Let's go one by one. ===== Stable (((Sorting, stable))) An ((stable sorting)) algorithms keep the relative order of items with the same comparison criteria. -This especially useful when you want to sort on multiple phases. +This incredibly useful when you want to sort on multiple phases. .Let's say you have the following data: [source, javascript] @@ -82,7 +82,7 @@ Both results are sorted by `age`; however, having a stable sorting is better if ===== In-place (((Sorting, in-place))) An ((in-place sorting)) algorithm would have a _space complexity_ of O(1). In other words, it does not use any other auxiliary memory because it moves the items in the collection itself. -No requiring extra memory for sorting is especially useful for memory constraint environments like robotics, smart devices, or embedded systems in appliances. +No extra memory for sorting is especially useful for large amounts of data or in memory constraint environments like robotics, smart devices, or embedded systems in appliances. ===== Online (((Sorting, online))) @@ -111,7 +111,7 @@ include::quick-sort.asc[] <<< ==== Summary -We explored many algorithms some of them simple and other more performant. Also, we cover the properties of sorting algorithms such as stable, in-place, online and adaptive. +We explored the most common sorting algorithms, some of which are simple and others more performant. Also, we cover the properties of sorting algorithms such as stable, in-place, online, and adaptive. (((Tables, Algorithms, Sorting Complexities))) (((Tables, Algorithms, Sorting Summary))) @@ -162,7 +162,7 @@ We explored many algorithms some of them simple and other more performant. Also, // end::sorting-q-merge-intervals[] -// _Seen in interviews at: X._ +// _Seen in interviews at: Facebook, Amazon, Bloomberg._ *Starter code*: From 69fa96b187ea061056273cdea7c5e26cf46e656f Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 21 Sep 2020 20:53:16 -0400 Subject: [PATCH 052/108] chore: new exercise --- jest-all.config.js | 4 ++++ lab/exercises/10-mixed/document-distance.js | 23 +++++++++++++++++++ .../10-mixed/document-distance.spec.js | 20 ++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 jest-all.config.js create mode 100644 lab/exercises/10-mixed/document-distance.js create mode 100644 lab/exercises/10-mixed/document-distance.spec.js diff --git a/jest-all.config.js b/jest-all.config.js new file mode 100644 index 00000000..d7ad87ae --- /dev/null +++ b/jest-all.config.js @@ -0,0 +1,4 @@ +module.exports = { + name: 'dsa.js', + // testPathIgnorePatterns: ['/node_modules/', '/dist/', '/lab/', '/benchmarks/', '/coverage/'], +}; diff --git a/lab/exercises/10-mixed/document-distance.js b/lab/exercises/10-mixed/document-distance.js new file mode 100644 index 00000000..4c0ca542 --- /dev/null +++ b/lab/exercises/10-mixed/document-distance.js @@ -0,0 +1,23 @@ + +// npx jest lab/exercises/10-mixed/document-distance.spec.js --watch -c 'jest-all.config.js' + +/** + * Find the distance between two documents. + * + * Convert files into vectors of words where the value is the frequency. + * Calculate the angle of the two vectors: cos α = v1 · v2 / |v1| * |v2| + * @param {string} file1 - String of words separated by whitespace + * @param {string} file2 - String of words separated by whitespace + */ +function documentDistance(file1, file2) { + // 0. slip words + // 1. calculate freq of each word per file + const byCounter = (map, w) => map.set(w, 1 + (map.get(w) || 0)); + const f1 = file1.split(' ').reduce(byCounter, new Map()); + const f2 = file2.split(' ').reduce(byCounter, new Map()); + // 2. multiply each occurence and divide it + const dotProd = (m1, m2) => [...new Set([...m1.keys(), ...m2.keys()])].reduce((sum, w) => sum + (m1.get(w) || 0) * (m2.get(w) || 0), 0); + return Math.acos(dotProd(f1, f2) / Math.sqrt(dotProd(f1, f1) * dotProd(f2, f2))); +} + +module.exports = { documentDistance }; diff --git a/lab/exercises/10-mixed/document-distance.spec.js b/lab/exercises/10-mixed/document-distance.spec.js new file mode 100644 index 00000000..67adfb70 --- /dev/null +++ b/lab/exercises/10-mixed/document-distance.spec.js @@ -0,0 +1,20 @@ +const { documentDistance } = require('./document-distance'); + +describe('documentDistance', () => { + it('should work with different files', () => { + const file1 = 'This is a cat.'; + const file2 = 'This is a dog.'; + expect(documentDistance(file1, file2)).toBeCloseTo(0.722); + }); + + it('should work with different files', () => { + const file1 = 'This is a cat.'; + const file2 = 'Occaecat irure enim sint cupidatat id cillum cupidatat ipsum officia ea reprehenderit eiusmod voluptate. Est in laboris esse anim tempor sit in labore eiusmod consectetur aliqua. Quis nulla sunt incididunt magna velit in reprehenderit officia ut esse. Duis proident aute sint laborum consectetur eu reprehenderit amet et esse esse deserunt.'; + expect(documentDistance(file1, file2)).toBeCloseTo(1.57); + }); + + it('should work with equal files', () => { + const file1 = 'This is a cat.'; + expect(documentDistance(file1, file1)).toEqual(0); + }); +}); From 2e778268c4c6a2e509cc33b1c473b26788af2e9c Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sun, 27 Sep 2020 13:52:19 -0400 Subject: [PATCH 053/108] chore: placeholder for exercises --- book/content/part04/divide-and-conquer.asc | 90 +++++++++++++++++++--- 1 file changed, 81 insertions(+), 9 deletions(-) diff --git a/book/content/part04/divide-and-conquer.asc b/book/content/part04/divide-and-conquer.asc index a3820b72..76bb376d 100644 --- a/book/content/part04/divide-and-conquer.asc +++ b/book/content/part04/divide-and-conquer.asc @@ -66,15 +66,15 @@ graph G { "fib(2)**" -- { "fib(1)****", "fib(0)**" } // red colors - "fib(0)*" [color="#FF5252"]; - "fib(0)**" [color="#FF5252"]; - "fib(1)*" [color="#FF5252"]; - "fib(1)**" [color="#FF5252"]; - "fib(1)***" [color="#FF5252"]; - "fib(1)****" [color="#FF5252"]; - "fib(2)*" [color="#FF5252"]; - "fib(2)**" [color="#FF5252"]; - "fib(3)*" [color="#FF5252"]; + "fib(0)*" [color="#FF5252" label="fib(0)"]; + "fib(0)**" [color="#FF5252" label="fib(0)"]; + "fib(1)*" [color="#FF5252" label="fib(1)"]; + "fib(1)**" [color="#FF5252" label="fib(1)"]; + "fib(1)***" [color="#FF5252" label="fib(1)"]; + "fib(1)****" [color="#FF5252" label="fib(1)"]; + "fib(2)*" [color="#FF5252" label="fib(2)"]; + "fib(2)**" [color="#FF5252" label="fib(2)"]; + "fib(3)*" [color="#FF5252" label="fib(3)"]; } .... @@ -94,3 +94,75 @@ Those who cannot remember the past are condemned to repeat it. For these cases when subproblems repeat themselves, we can optimize them using <<Dynamic Programming, dynamic programming>>. Let's do that in the next section. + + + + + +// But before doing dynamic programming. Let's do this divide and conquer exercises. + +// ==== Practice Questions +// (((Interview Questions, Divide and Conquer))) + + + + + +// // https://leetcode.com/problems/merge-k-sorted-lists/ + +// // tag::divide-and-conquer-q-FILENAME[] +// ===== TITLE + +// *DC-1*) _._ + +// // end::divide-and-conquer-q-FILENAME[] + +// // _Seen in interviews at: X._ + +// *Starter code*: + +// [source, javascript] +// ---- +// include::../../interview-questions/FILENAME.js[tags=description;placeholder] +// ---- + +// *Examples*: + +// [source, javascript] +// ---- +// FN([]); // 3 (EXPLANATION) +// ---- + + +// _Solution: <<divide-and-conquer-q-FILENAME>>_ + + + + +// // https://leetcode.com/problems/search-a-2d-matrix-ii/ + +// // tag::divide-and-conquer-q-FILENAME[] +// ===== TITLE + +// *DC-2*) _._ + +// // end::divide-and-conquer-q-FILENAME[] + +// // _Seen in interviews at: X._ + +// *Starter code*: + +// [source, javascript] +// ---- +// include::../../interview-questions/FILENAME.js[tags=description;placeholder] +// ---- + +// *Examples*: + +// [source, javascript] +// ---- +// FN([]); // 3 (EXPLANATION) +// ---- + + +// _Solution: <<divide-and-conquer-q-FILENAME>>_ From 68c73d4c3bb5fb1ec637d81b42a2f8dbfc4f0008 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 29 Sep 2020 16:07:28 -0400 Subject: [PATCH 054/108] feat(book/big-o): add new chapter on how to determine big o from code. --- book/content/part01/algorithms-analysis.asc | 77 +++--- book/content/part01/big-o-examples.asc | 78 ++++--- book/content/part01/how-to-big-o.asc | 221 ++++++++++++++++++ book/images/big-o-recursive-example.png | Bin 0 -> 44967 bytes book/images/big-o-running-time-complexity.png | Bin 0 -> 79243 bytes book/images/fib(4) example.png | Bin 0 -> 20627 bytes book/images/recursive-fibonacci-call-tree.png | Bin 49993 -> 41935 bytes book/part01-algorithms-analysis.asc | 6 +- 8 files changed, 309 insertions(+), 73 deletions(-) create mode 100644 book/content/part01/how-to-big-o.asc create mode 100644 book/images/big-o-recursive-example.png create mode 100644 book/images/big-o-running-time-complexity.png create mode 100644 book/images/fib(4) example.png diff --git a/book/content/part01/algorithms-analysis.asc b/book/content/part01/algorithms-analysis.asc index 52f57c03..d06b0a4f 100644 --- a/book/content/part01/algorithms-analysis.asc +++ b/book/content/part01/algorithms-analysis.asc @@ -8,7 +8,7 @@ endif::[] You are probably reading this book because you want to write better and faster code. How can you do that? Can you time how long it takes to run a program? Of course, you can! [big]#⏱# -However, if you run the same program on a smartwatch, cellphone or desktop computer, it will take different times. +However, if you run the same program on a computer, cellphone, or even a smartwatch, it will take different times. image::image3.png[image,width=528,height=137] @@ -17,8 +17,8 @@ That's what *time complexity* is for! But, why stop with the running time? We could also compare the memory "used" by different algorithms, and we call that *space complexity*. -.In this chapter you will learn: -- What’s the best way to measure the performance of your code regardless of what hardware you use. +.In this chapter, you will learn: +- What’s the best way to measure your code's performance regardless of what hardware you use. - Learn how to use Big O notation to compare algorithms. - How to use algorithms analysis to improve your programs speed. @@ -43,15 +43,22 @@ function makePizza(dough, toppings = ['cheese']) { } ---- -If you play a game, you are devising strategies (or algorithms) to help you win. Likewise, algorithms in computers are a set of instructions used to solve a problem. +If you play a game, you'll devise strategies (or algorithms) to win. Likewise, algorithms in computers are a set of instructions used to solve a problem. -TIP: Algorithms are instructions on how to perform a task. +TIP: Algorithms are the steps on how to perform a task. ==== Comparing Algorithms (((Comparing Algorithms))) Not all algorithms are created equal. There are “good” and “bad” algorithms. The good ones are fast; the bad ones are slow. Slow algorithms cost more money to run. Inefficient algorithms could make some calculations impossible in our lifespan! -To give you a clearer picture of how different algorithms perform as the input size grows, take a look at the following problems and how their relative execution time changes as the input size increases. +Let's say you want to compute the shortest path from Boston to San Francisco. Slow algorithms can take hours or crash before finishing. On the other hand, a "good" algorithm might compute in a few seconds. + +Usually, algorithms time grows as the size of the input increases. For instance, calculating the shortest distance from your house to the local supermarket will take less time than other destination thousands of miles away. + +Another example is sorting an array. A good sorting algorithm is <<part04-algorithmic-toolbox#merge-sort>>, and an inefficient algorithm for large inputs is <<part04-algorithmic-toolbox#selection-sort>>. +Organizing 1 million elements with merge sort could take 20 seconds, for instance, while selection sort takes 12 days, ouch! The fantastic thing is that both programs solve the same problem with comparable data and hardware; yet, there's a big difference in time! Bad algorithms would perform poorly, even on a supercomputer. + +To give you a clearer picture of how different algorithms perform as the input size grows, look at the following problems and how their relative execution time changes as the input size increases. (((Tables, Intro, Algorithms input size vs Time))) .Relationship between algorithm input size and time taken to complete @@ -65,32 +72,28 @@ To give you a clearer picture of how different algorithms perform as the input s |Finding string permutations |4 sec. |> vigintillion years |> centillion years |∞ |∞ |============================================================================================= -Most algorithms are affected by the size of the input (`n`). Let's say you need to arrange numbers in ascending order. Sorting ten items will naturally take less time than sorting out 2 million. But, how much longer? As the input size grow, some algorithms take proportionally more time, we classify them as <<part01-algorithms-analysis#linear, linear>> runtime [or `O(n)`]. Others might take power two longer; we call them <<part01-algorithms-analysis#quadratic, quadratic>> running time [or `O(n^2^)`]. - -From another perspective, if you keep the input size the same and run different algorithms implementations, you would notice the difference between an efficient algorithm and a slow one. For example, a good sorting algorithm is <<part04-algorithmic-toolbox#merge-sort>>, and an inefficient algorithm for large inputs is <<part04-algorithmic-toolbox#selection-sort>>. -Organizing 1 million elements with merge sort takes 20 seconds while selection sort takes 12 days, ouch! -The amazing thing is that both programs are solving the same problem with equal data and hardware; and yet, there's a big difference in time! +As you can see in the table, most algorithms on the table are affected by the input size. But not all and not at the same rate. Finding out if a number is odd will take the same if it is 1 or 1 million. We say then that the growth rate is constant. Others grow very fast. Finding all the permutations on a string of length 10 takes a few seconds, while if the string has a size of 100, it won't even finish! -After completing this book, you are going to _think algorithmically_. -You will be able to scale your programs while you are designing them. -Find bottlenecks of existing software and have an <<part04-algorithmic-toolbox#algorithms-toolbox>> to optimize algorithms and make them faster without having to pay more for cloud computing (e.g., AWS EC2 instances). [big]#💸# +After completing this book, you are going to _think algorithmically_. You will be able to tell the growth rate of your programs and scale them. You'll find bottlenecks of existing software and have an <<part04-algorithmic-toolbox#algorithms-toolbox>>. <<< ==== Increasing your code performance -The first step to improve your code performance is to measure it. As somebody said: +The first step to improve your code performance is to learn how to measure it. As somebody said: (((quotes))) [quote, H. J. Harrington] Measurement is the first step that leads to control and eventually to improvement. If you can’t measure something, you can’t understand it. If you can’t understand it, you can’t control it. If you can’t control it, you can’t improve it. -In this section, we are going to learn the basics of measuring our current code performance and compare it with other algorithms. +This section will learn the basics of measuring our current code performance and compare it with other algorithms. ===== Calculating Time Complexity (((Time complexity))) -Time complexity, in computer science, is a function that describes the number of operations a program will execute given the size of the input `n`. +In computer science, time complexity describes the number of operations a program will execute given the size of the input `n`. -How do you get a function that gives you the number of operations that will be executed? Well, we count line by line and mind code inside loops. Let's do an example to explain this point. For instance, we have a function to find the minimum value on an array called `getMin`. +How do you get a function that gives you the rough number of operations that the CPU will execute? + +One idea is to analyze your code line by line and mind code inside loops. Let's do an example to explain this point. For instance, we have a function to find the minimum value on an array called `getMin`. .Translating lines of code to an approximate number of operations image::image4.png[Operations per line] @@ -101,17 +104,17 @@ _3n + 3_ `n` = input size. -That means that if you have an array of 3 elements e.g. `getMin([3, 2, 9])`, then it will execute around _3(3)+3 = 12_ operations. Of course, this is not for every case. For instance, Line 12 is only executed if the condition on line 11 is met. As you might learn in the next section, we want to get the big picture and get rid of smaller terms to compare algorithms easier. +That means that if you have an array of 3 elements, e.g. `getMin([3, 2, 9])`, then it will execute around _3(3)+3 = 12_ operations. Of course, this is not for every case. For instance, Line 12 is only executed if the condition on line 11 is met. As you might learn in the next section, we want to get the big picture and get rid of smaller terms to compare algorithms easier. ==== Space Complexity (((Space Complexity))) Space complexity is similar to time complexity. However, instead of the count of operations executed, it will account for the amount of memory used additionally to the input. -For calculating the *space complexity* we keep track of the “variables” and memory used. In the `getMin` example, we just create a single variable called `min`. So, the space complexity is 1. On other algorithms, If we have to use an auxiliary array, then the space complexity would be `n`. +For calculating the *space complexity*, we keep track of the “variables” and memory used. In the `getMin` example, we create a variable called `min`, which only holds one value at a time. So, the space complexity is `1`. On other algorithms, If we have to use an auxiliary array that holds the same number of elements as the input, then the space complexity would be `n`. ===== Simplifying Complexity with Asymptotic Analysis (((Asymptotic Analysis))) -When we are comparing algorithms, we don't want to have complex expressions. What would you prefer comparing two algorithms like "3n^2^ + 7n" vs. "1000 n + 2000" or compare them as "n^2^ vs. n"? Well, that when the asymptotic analysis comes to the rescue. +When we compare algorithms, we about the growth rate when the input gets huge (towards infinity). Then you have a function like `20*n^3 + 100`. If `n` is one million. The term `+ 100` makes a tiny contribution to the result (less than 0.000001%). Here is when the asymptotic analysis comes to the rescue. TIP: Asymptotic analysis describes the behavior of functions as their inputs approach to infinity. @@ -127,37 +130,41 @@ In the previous example, we analyzed `getMin` with an array of size 3; what happ |1M |3(1M)+3 |3,000,003 |=========================== -As the input size `n` grows bigger and bigger then the expression _3n + 3_ is closer and closer to _3n_. Dropping terms might look like a stretch at first, but you will see that what matters the most is the higher order terms of the function rather than lesser terms and constants. +As the input size `n` grows bigger and bigger, then the expression _3n + 3_ is closer and closer to _3n_. Dropping terms might look like a stretch at first, but you will see that what matters the most is the higher-order terms of the function rather than lesser terms and constants. ===== What is Big O Notation? (((Big O))) -There’s a notation called *Big O*, where `O` refers to the *order of the function*. +There’s a notation called *Big O*, where `O` refers to the *order of a function* in the worst-case scenario. -TIP: Big O = Big Order of a function. +TIP: Big O = Big Order (rate of growth) of a function. If you have a program that has a runtime of: _7n^3^ + 3n^2^ + 5_ -You can express it in Big O notation as _O(n^3^)_. The other terms (_3n^2^ + 5_) will become less and less significant as the input grows bigger. +You can express it in Big O notation as _O(n^3^)_. The other terms (_3n^2^ + 5_) will become less significant as the input grows bigger. -Big O notation, only cares about the “biggest” terms in the time/space complexity. So, it combines what we learn about time and space complexity, asymptotic analysis and adds a worst-case scenario. +Big O notation only cares about the “biggest” terms in the time/space complexity. It combines what we learn about time and space complexity, asymptotic analysis, and adds a worst-case scenario. .All algorithms have three scenarios: -* Best-case scenario: the most favorable input arrangement where the program will take the least amount of operations to complete. E.g., an array that's already sorted is beneficial for some sorting algorithms. +* Best-case scenario: the most favorable input arrangement where the program will take the least amount of operations to complete. E.g., a sorted array is beneficial for some sorting algorithms. * Average-case scenario: this is the most common case. E.g., array items in random order for a sorting algorithm. * Worst-case scenario: the inputs are arranged in such a way that causes the program to take the longest to complete. E.g., array items in reversed order for some sorting algorithm will take the longest to run. To sum up: -TIP: Big O only cares about the highest order of the run time function and the worst-case scenario. +TIP: Big O only cares about the run time function's highest order on the worst-case scenario. WARNING: Don't drop terms that are multiplying other terms. _O(n log n)_ is not equivalent to _O(n)_. However, _O(n + log n)_ is. -There are many common notations like polynomial, _O(n^2^)_ as we saw in the `getMin` example; constant _O(1)_ and many more that we are going to explore in the next chapter. +There are many common notations like polynomial, _O(n^2^)_ as we saw in the `getMin` example, constant _O(1)_, and many more that we are going to explore in the next chapter. + +Again, -Again, time complexity is not a direct measure of how long a program takes to execute, but rather how many operations it performs given the input size. Nevertheless, there’s a relationship between time complexity and clock time as we can see in the following table. -(((Tables, Intro, Input size vs clock time by Big O))) +TIP: the time complexity is not a direct measure of how long a program takes to execute, but rather how many operations it performs given the input size. + +Nevertheless, there’s a relationship between time complexity and clock time, as shown in the following table. +(((Tables, Intro, Input size vs. clock time by Big O))) // tag::table[] .How long an algorithm takes to run based on their time complexity and input size @@ -172,14 +179,14 @@ Again, time complexity is not a direct measure of how long a program takes to ex |=============================================================== // end::table[] -This is just an illustration since in different hardware the times will be slightly different. -NOTE: These times are under the assumption of running on 1 GHz CPU and it can execute on average one instruction in 1 nanosecond (usually takes more time). Also, keep in mind that each line might be translated into dozens of CPU instructions depending on the programming language. Regardless, bad algorithms would perform poorly even on a supercomputer. + +NOTE: This is just an illustration since, in different hardware, the times will be distinct. These times are under the assumption of running on 1 GHz CPU, and it can execute on average one instruction in 1 nanosecond (usually takes more time). Also, keep in mind that each line might be translated into dozens of CPU instructions depending on the programming language. ==== Summary -In this chapter, we learned how you could measure your algorithm performance using time complexity. Rather than timing how long your program takes to run you can approximate the number of operations it will perform based on the input size. +In this chapter, we learned how you could measure your algorithm performance using time complexity. Rather than timing how long your program takes to run, you can approximate the number of operations it will perform based on the input size. We learned about time and space complexity and how they can be translated to Big O notation. Big O refers to the *order* of the function. -In the next section, we are going to provide examples of each of the most common time complexities! +In the next section, we will go deeper into how to analyze time complexity and provide examples! diff --git a/book/content/part01/big-o-examples.asc b/book/content/part01/big-o-examples.asc index 3b56e1a0..73bfe968 100644 --- a/book/content/part01/big-o-examples.asc +++ b/book/content/part01/big-o-examples.asc @@ -5,7 +5,7 @@ endif::[] === Big O examples -There are many kinds of algorithms. Most of them fall into one of the eight time complexities that we are going to explore in this chapter. +There are many kinds of algorithms. Most of them fall into one of the eight-time complexities that we will explore in this chapter. .Eight Running Time Complexities You Should Know - Constant time: _O(1)_ @@ -22,9 +22,10 @@ We are going to provide examples for each one of them. Before we dive in, here’s a plot with all of them. .CPU operations vs. Algorithm runtime as the input size grows -image::image5.png[CPU time needed vs. Algorithm runtime as the input size increases] +// image::image5.png[CPU time needed vs. Algorithm runtime as the input size increases] +image::big-o-running-time-complexity.png[CPU time needed vs. Algorithm runtime as the input size increases] -The above chart shows how the running time of an algorithm is related to the amount of work the CPU has to perform. As you can see O(1) and O(log n) are very scalable. However, O(n^2^) and worst can make your computer run for years [big]#😵# on large datasets. We are going to give some examples so you can identify each one. +The above chart shows how the algorithm's running time is related to the work the CPU has to perform. As you can see, O(1) and O(log n) is very scalable. However, O(n^2^) and worst can convert your CPU into a furnace 🔥 for massive inputs. [[constant]] ==== Constant @@ -53,13 +54,13 @@ As you can see in both examples (array and linked list), if the input is a colle ==== Logarithmic (((Logarithmic))) (((Runtime, Logarithmic))) -Represented in Big O notation as *O(log n)*, when an algorithm has this running time it means that as the size of the input grows the number of operations grows very slowly. Logarithmic algorithms are very scalable. One example is the *binary search*. +Represented in Big O notation as *O(log n)*, when an algorithm has this running time, it means that as the input size grows, the number of operations grows very slowly. Logarithmic algorithms are very scalable. One example is the *binary search*. indexterm:[Runtime, Logarithmic] [[logarithmic-example]] ===== Searching on a sorted array -The binary search only works for sorted lists. It starts searching for an element on the middle of the array and then it moves to the right or left depending if the value you are looking for is bigger or smaller. +The binary search only works for sorted lists. It starts searching for an element in the middle of the array, and then it moves to the right or left depending on if the value you are looking for is bigger or smaller. // image:image7.png[image,width=528,height=437] @@ -68,15 +69,15 @@ The binary search only works for sorted lists. It starts searching for an elemen include::{codedir}/runtimes/02-binary-search.js[tag=binarySearchRecursive] ---- -This binary search implementation is a recursive algorithm, which means that the function `binarySearchRecursive` calls itself multiple times until the solution is found. The binary search splits the array in half every time. +This binary search implementation is a recursive algorithm, which means that the function `binarySearchRecursive` calls itself multiple times until the program finds a solution. The binary search splits the array in half every time. -Finding the runtime of recursive algorithms is not very obvious sometimes. It requires some tools like recursion trees or the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Theorem]. The `binarySearch` divides the input in half each time. As a rule of thumb, when you have an algorithm that divides the data in half on each call you are most likely in front of a logarithmic runtime: _O(log n)_. +Finding the runtime of recursive algorithms is not very obvious sometimes. It requires some tools like recursion trees or the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Theorem]. The `binarySearch` divides the input in half each time. As a rule of thumb, when you have an algorithm that divides the data in half on each call, you are most likely in front of a logarithmic runtime: _O(log n)_. [[linear]] ==== Linear (((Linear))) (((Runtime, Linear))) -Linear algorithms are one of the most common runtimes. It’s represented as *O(n)*. Usually, an algorithm has a linear running time when it iterates over all the elements in the input. +Linear algorithms are one of the most common runtimes. Their Big O representation is *O(n)*. Usually, an algorithm has a linear running time when it visits every input element a fixed number of times. [[linear-example]] ===== Finding duplicates in an array using a map @@ -91,19 +92,19 @@ include::{codedir}/runtimes/03-has-duplicates.js[tag=hasDuplicates] ---- .`hasDuplicates` has multiple scenarios: -* *Best-case scenario*: first two elements are duplicates. It only has to visit two elements. +* *Best-case scenario*: the first two elements are duplicates. It only has to visit two elements and return. * *Worst-case scenario*: no duplicates or duplicates are the last two. In either case, it has to visit every item in the array. -* *Average-case scenario*: duplicates are somewhere in the middle of the collection. Only half of the array will be visited. +* *Average-case scenario*: duplicates are somewhere in the middle of the collection. As we learned before, the big O cares about the worst-case scenario, where we would have to visit every element on the array. So, we have an *O(n)* runtime. -Space complexity is also *O(n)* since we are using an auxiliary data structure. We have a map that in the worst case (no duplicates) it will hold every word. +Space complexity is also *O(n)* since we are using an auxiliary data structure. We have a map that, in the worst case (no duplicates), it will hold every word. [[linearithmic]] ==== Linearithmic (((Linearithmic))) (((Runtime, Linearithmic))) -An algorithm with a linearithmic runtime is represented as _O(n log n)_. This one is important because it is the best runtime for sorting! Let’s see the merge-sort. +You can represent linearithmic algorithms as _O(n log n)_. This one is important because it is the best runtime for sorting! Let’s see the merge-sort. [[linearithmic-example]] ===== Sorting elements in an array @@ -117,7 +118,7 @@ The ((Merge Sort)), like its name indicates, has two functions merge and sort. L ---- include::{codedir}/algorithms/sorting/merge-sort.js[tag=splitSort] ---- -<1> If the array only has two elements we can sort them manually. +<1> If the array only has two elements, we can sort them manually. <2> We divide the array into two halves. <3> Merge the two parts recursively with the `merge` function explained below @@ -134,15 +135,15 @@ The merge function combines two sorted arrays in ascending order. Let’s say th .Mergesort visualization. Shows the split, sort and merge steps image::image11.png[Mergesort visualization,width=500,height=600] -How do we obtain the running time of the merge sort algorithm? The mergesort divides the array in half each time in the split phase, _log n_, and the merge function join each splits, _n_. The total work is *O(n log n)*. There are more formal ways to reach this runtime, like using the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Method] and https://www.cs.cornell.edu/courses/cs3110/2012sp/lectures/lec20-master/lec20.html[recursion trees]. +How do we obtain the running time of the merge sort algorithm? The merge-sort divides the array in half each time in the split phase, _log n_, and the merge function join each splits, _n_. The total work is *O(n log n)*. There are more formal ways to reach this runtime, like using the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Method] and https://www.cs.cornell.edu/courses/cs3110/2012sp/lectures/lec20-master/lec20.html[recursion trees]. [[quadratic]] ==== Quadratic (((Quadratic))) (((Runtime, Quadratic))) -Running times that are quadratic, O(n^2^), are the ones to watch out for. They usually don’t scale well when they have a large amount of data to process. +Quadratic running times, O(n^2^), are the ones to watch out for. They usually don’t scale well when they have a large amount of data to process. -Usually they have double-nested loops, where each one visits all or most elements in the input. One example of this is a naïve implementation to find duplicate words on an array. +Usually, they have double-nested loops, where each one visits all or most elements in the input. One example of this is a naïve implementation to find duplicate words on an array. [[quadratic-example]] ===== Finding duplicates in an array (naïve approach) @@ -165,34 +166,37 @@ Let’s say you want to find a duplicated middle name in a phone directory book ==== Cubic (((Cubic))) (((Runtime, Cubic))) -Cubic *O(n^3^)* and higher polynomial functions usually involve many nested loops. An example of a cubic algorithm is a multi-variable equation solver (using brute force): +Cubic *O(n^3^)* and higher polynomial functions usually involve many nested loops. An example of a cubic algorithm is a multi-variable equation solver (using brute force) or finding three elements on an array that add up to a given number. [[cubic-example]] -===== Solving a multi-variable equation +===== 3 Sum -Let’s say we want to find the solution for this multi-variable equation: +Let's say you want to find 3 items in an array that add up to a target number. One brute force solution would be to visit every possible combination of 3 elements and add them up to see if they are equal to target. -_3x + 9y + 8z = 79_ - -A naïve approach to solve this will be the following program: - -//image:image13.png[image,width=528,height=448] - -.Naïve implementation of multi-variable equation solver [source, javascript] ---- -include::{codedir}/runtimes/06-multi-variable-equation-solver.js[tag=findXYZ] +function threeSum(nums, target = 0) { + const ans = []; + + for(let i = 0; i < nums.length -2; i++) + for(let j = i + 1; j < nums.length - 1; j++) + for(let k = j + 1; k < nums.length; k++) + if (nums[i] + nums[j] + nums[k] === target) + ans.push([nums[i], nums[j], nums[k]]); + + return ans; +} ---- -WARNING: This is just an example, there are better ways to solve multi-variable equations. +As you can see, three nested loops usually translate to O(n^3^). If we had four nested loops (4sum), it would be O(n^4^) and so on. A runtime in the form of _O(n^c^)_, where _c > 1_, we refer to this as a *polynomial runtime*. -As you can see three nested loops usually translates to O(n^3^). If you have a four variable equation and four nested loops it would be O(n^4^) and so on. When we have a runtime in the form of _O(n^c^)_, where _c > 1_, we refer to this as a *polynomial runtime*. +NOTE: You can improve the runtime of 3sum from _O(n^3^)_ to _O(n^2^)_, if we sort items first and then use one loop and two pointers to find the solutions. [[exponential]] ==== Exponential (((Exponential))) (((Runtime, Exponential))) -Exponential runtimes, O(2^n^), means that every time the input grows by one the number of operations doubles. Exponential programs are only usable for a tiny number of elements (<100) otherwise it might not finish in your lifetime. [big]#💀# +Exponential runtimes, _O(2^n^)_, means that every time the input grows by one, the number of operations doubles. Exponential programs are only usable for a tiny number of elements (<100); otherwise, it might not finish in your lifetime. [big]#💀# Let’s do an example. @@ -209,21 +213,21 @@ Finding all distinct subsets of a given set can be implemented as follows: include::{codedir}/runtimes/07-sub-sets.js[tag=snippet] ---- <1> Base case is empty element. -<2> For each element from the input append it to the results array. +<2> For each element from the input, append it to the results array. <3> The new results array will be what it was before + the duplicated with the appended element. //.The way this algorithm generates all subsets is: //1. The base case is an empty element (line 13). E.g. [''] -//2. For each element from the input append it to the results array (line 16) +//2. For each element from the input, append it to the results array (line 16) //3. The new results array will be what it was before + the duplicated with the appended element (line 17) -Every time the input grows by one the resulting array doubles. That’s why it has an *O(2^n^)*. +Every time the input grows by one, the resulting array doubles. That’s why it has an *O(2^n^)*. [[factorial]] ==== Factorial (((Factorial))) (((Runtime, Factorial))) -Factorial runtime, O(n!), is not scalable at all. Even with input sizes of ~10 elements, it will take a couple of seconds to compute. It’s that slow! [big]*🍯🐝* +The factorial runtime, `O(n!)`, is not scalable at all. Even with input sizes of ~10 elements, it will take a couple of seconds to compute. It’s that slow! [big]*🍯🐝* .Factorial **** @@ -240,7 +244,7 @@ A factorial is the multiplication of all the numbers less than itself down to 1. ===== Getting all permutations of a word (((Permutations))) (((Words permutations))) -One classic example of an _O(n!)_ algorithm is finding all the different words that can be formed with a given set of letters. +One classic example of an _O(n!)_ algorithm is finding all the different words formed with a given set of letters. .Word's permutations // image:image15.png[image,width=528,height=377] @@ -251,7 +255,7 @@ include::{codedir}/runtimes/08-permutations.js[tag=snippet] As you can see in the `getPermutations` function, the resulting array is the factorial of the word length. -Factorial starts very slow, and quickly becomes uncontrollable. A word size of just 11 characters would take a couple of hours in most computers! +Factorial starts very slow and quickly becomes unmanageable. A word size of just 11 characters would take a couple of hours in most computers! [big]*🤯* ==== Summary @@ -265,7 +269,7 @@ We went through 8 of the most common time complexities and provided examples for |=== |Big O Notation |Name -|Example(s) +| example (s) |O(1) |<<part01-algorithms-analysis#constant>> diff --git a/book/content/part01/how-to-big-o.asc b/book/content/part01/how-to-big-o.asc new file mode 100644 index 00000000..3067704f --- /dev/null +++ b/book/content/part01/how-to-big-o.asc @@ -0,0 +1,221 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +=== How to determine time complexity from code? + +In general, you can determine the time complexity by analyzing the program's statements. +However, you have to be mindful how are the statements arranged. Suppose they are inside a loop or have function calls or even recursion. All these factors affect the runtime of your code. Let's see how to deal with these cases. + +*Sequential Statements* + +If we have statements with basic operations like conditionals, assignments, reading a variable. +We can assume they take constant time. + +---- +statement 1; +statement 2; +... +statement n; +---- + +If we calculate the total time complexity, it would be something like this: + +---- +total = time(statement 1) + time(statement 2) + ... time (statement n) +---- + +Let's use `T(n)` as the total time in function of the input size `n`, and `t` as the time complexity taken by a statement or group of statements. + +---- +T(n) = t(statement 1) + t(statement 2) + ... + t(statement n); +---- + +If each statement executes a basic operation, we can say it takes constant time `O(1)`. As long as you have a fixed number of operations, it will be constant time, even if we have 1 or 100 of these statements. + +WARNING: be careful with function calls. You will have to go to the implementation and check their run time. More on that later. + +*Conditional Statements* + +Very rarely, you have a code without any conditional statement. +How do you calculate the time complexity? Remember that we care about the worst-case with Big O so that we will take the maximum possible runtime. + +---- +if (isValid) { + statement 1; + statement 2; +} else { + statement 3; +} +---- + +Since, we are after the worst-case we take the whichever is larger of the two possibilities: + +---- +T(n) = Math.max([t(statement 1) + t(statement 2)], [time(statement 3)]) +---- + +*Loop Statements* + +Another prevalent scenario is loops like for-loops or while-loops. +For any loop, we find out the runtime of the block inside them and multiply it by the number of times the program will repeat the loop. + +---- +for (let i = 0; i < array.length; i++) { + statement 1; + statement 2; +} +---- + +For this example, the loop is executed `array.length`, assuming `n` is length of the array we get the following: + +---- +T(n) = n * [ t(statement 1) + t(statement 2) ] +---- + +All loops that grow proportionally to the input size have a linear time complexity `O(n)`. If you loop through only half of the array, that's still `O(n)`. Remember that we drop the constants so `1/2 n => O(n)`. + +However, if a constant number bounds the loop, let's say 4 (or even 400). Then, the runtime is constant `O(4) -> O(1)`. See the following example. + +---- +for (let i = 0; i < 4; i++) { + statement 1; + statement 2; +} +---- + +That code is `O(1)` because it no longer depends on the input size. + +*Nested loops statements* + +Sometimes you might need to visit all the elements on a 2D array (grid/table). For such cases, you might find yourself with two nested loops. + +---- +for (let i = 0; i < n; i++) { + statement 1; + + for (let j = 0; j < m; j++) { + statement 2; + statement 3; + } +} +---- + +For this case you would have something like this: + +---- +T(n) = n * [t(statement 1) + m * t(statement 2...3)] +---- + +Assuming the statements from 1 to 3 are `O(1)`, we would have a runtime of `O(n * m)`. +If instead of `m`, you had to iterate on `n` again, then it would be `O(n^2)`. Another typical case is having a function inside a loop. Let's see how to deal with that next. + +*Function call statements* + +When you calculate your programs' time complexity and invoke a function, you need to be aware of its runtime. If you created the function, that might be a simple inspection of the implementation. However, if you are using a library function, you might infer it from the language/library documentation. + +Let's say you have the following program: + +---- +for (let i = 0; i < n; i++) { + fn1(); + for (let j = 0; j < n; j++) { + fn2(); + for (let k = 0; k < n; k++) { + fn3(); + } + } +} +---- + +.Depending on the runtime of fn1, fn2, and fn3, you would have different runtimes. +- If they all are constant `O(1)`, then the final runtime would be `O(n^3)`. +- However, if only `fn1` and `fn2` are constant and `fn3` has a runtime of `O(n^2)`, this program will have a runtime of `O(n^5)`. Another way to look at it is, if `fn3` has two nested and you replace the invocation with the actual implementation, you would have five nested loops. + +In general, you will have something like this: + +---- +T(n) = n * [ t(fn1()) + n * [ t(fn2()) + n * [ t(fn3()) ] ] ] +---- + +*Recursive Functions Statements* + +Analyzing the runtime of recursive functions might get a little tricky. There are different ways to do it. One intuitive way is to explore the recursion tree. + +Let's say that we have the following program: + +---- +function fn(n) { + if (n < 0) return 0; + if (n < 2) return n; + + return fn(n - 1) + fn(n - 2); +} +---- + +You can represent each function invocation as a bubble (or node). + +.Let's do some examples: +- When you n = 2, you have 3 function calls. First `fn(2)` which in turn calls `fn(1)` and `fn(0)`. +- For `n = 3`, you have 5 function calls. First `fn(3)`, which in turn calls `fn(2)` and `fn(1)` and so on. +- For `n = 4`, you have 9 function calls. First `fn(4)`, which in turn calls `fn(3)` and `fn(2)` and so on. + +Since it's a binary tree, we can sense that every time `n` increases by one, we would have to perform at most the double of operations. + +Here's the graphical representation of the 3 examples: + +[graphviz, big-o-recursive-example, 'png'] +---- +graph G { + subgraph cluster_2 { + label = "fn(2)" + "fn(2)-" -- { "fn(1)-", "fn(0)-" } + + "fn(0)-" [label="fn(0)"]; + "fn(1)-" [label="fn(1)", color=red]; + "fn(2)-" [label="fn(2)", color=red]; + } + + subgraph cluster_1 { + label = "fn(3)" + "fn(3)1" -- { "fn(2)1", "fn(1)1" } + "fn(2)1" -- { "fn(1)3", "fn(0)1" } + + "fn(0)1" [label="fn(0)"]; + "fn(1)3" [label="fn(1)", color=red]; + "fn(1)1" [label="fn(1)"]; + "fn(2)1" [label="fn(2)", color=red]; + "fn(3)1" [label="fn(3)", color=red]; + } + + subgraph cluster_0 { + label = "fn(4)" + "fn(4)" -- { "fn(3)*", "fn(2)" } + "fn(2)" -- { "fn(1)*", "fn(0)" } + "fn(3)*" -- { "fn(2)**", "fn(1)**" } + "fn(2)**" -- { "fn(1)****", "fn(0)**" } + + "fn(0)**" [label="fn(0)"]; + "fn(1)*" [label="fn(1)"]; + "fn(1)**" [label="fn(1)"]; + "fn(1)****" [label="fn(1)", color=red]; + "fn(2)**" [label="fn(2)", color=red]; + "fn(3)*" [label="fn(3)", color=red]; + "fn(4)" [label="fn(4)", color=red]; + } +} +---- + +If you take a look at the generated tree calls, the leftmost nodes go down in descending order: `fn(4)`, `fn(3)`, `fn(2)`, `fn(1)`, which means that the height of the tree (or the number of levels) on the tree will be `n`. + +The total number of calls, in a complete binary tree, is `2^n - 1`. As you can see in `fn(4)`, the tree is not complete. The last level will only have two nodes, `fn(1)` and `fn(0)`, while a complete tree would have 8 nodes. But still, we can say the runtime would be exponential `O(2^n)`. It won't get any worst because `2^n` is the upper bound. + +==== Summary + +.In this chapter, we learned how to calculate the time complexity of our code when we have the following elements: +- Basic operations like assignments, bit, and math operators. +- Loops and nested loops +- Function invocations and recursions. + +In the next section, we are going to the most common time complexities and real code examples. diff --git a/book/images/big-o-recursive-example.png b/book/images/big-o-recursive-example.png new file mode 100644 index 0000000000000000000000000000000000000000..67395f3c94048535cd4316ac65235f793368b384 GIT binary patch literal 44967 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 OedYKK>zc#&v3~=SUA>(E literal 0 HcmV?d00001 diff --git a/book/images/big-o-running-time-complexity.png b/book/images/big-o-running-time-complexity.png new file mode 100644 index 0000000000000000000000000000000000000000..c08878fcb995596792ae0ba5eee8f8573af1c029 GIT binary patch literal 79243 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 Cpx*)j literal 0 HcmV?d00001 diff --git a/book/images/fib(4) example.png b/book/images/fib(4) example.png new file mode 100644 index 0000000000000000000000000000000000000000..c30df27f3401898411aa066e6bf916b004ad325c GIT binary patch literal 20627 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 literal 0 HcmV?d00001 diff --git a/book/images/recursive-fibonacci-call-tree.png b/book/images/recursive-fibonacci-call-tree.png index 380ffa1343f49c6ccaf76a5cb6aae788d963169b..f6e028c3cf7c9cad1748ee3072c82a4c6eec3982 100644 GIT binary patch literal 41935 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 literal 49993 zcmbTecQ}{t|2O`k>`g{yMoTg(DP;?(NM<E76eWag3L#mQk;-f+CA27H6d8pwOJ+qV zBeJ<4r#|1~`}^L<@jLF{@9y)*`*Rep*L9uOc|M<y^}Heu>S?nu@-tE>6qda@nujQq z6`~Xh)hl{h{7uv4<R$!v)@Gl!CS{5IFRl3ARSIPdWv`~1k=M=Puij?YjQf;F1^86k z<IM~Wb=Gj~F*w}8*`c%7wO;;x$05zF8b{6D>J{GC(IlFevTsY2Rn^(Upr&f1dYqd> z?Xc1IP;0Azz|pgp9v{hC!B)Fam{aI;eKqUUgfh$7KR5pf(%d(aq~Rcc3>N4Qtx}{~ z{{QkaQlgsVkI`c@^>Feh%OWC#RTY0T5f~pIFDfI$=I!mhK~nO9rkL8{!>d!2{TV3@ zjg99oT%c}hZce{*hek<BX<%rG>1J}cW8~Tpe8ftFBS$V}n?4qkljGR9aifl|uDYY6 zWd4&U24-f{HGL79Vgo;arl0=uTvkCLtgvurU0t1(ogK~Dvu8JK*w9p#y(XhIy)@gF zT&n-O_wV1fKXKsT;kg(dPA?%Lp(+-qYG}x1Z*QOf(dyJG<`pYe;M+Cy_1P2^6%QI2 zg*<p5+0@iTp~MI)QB!t%kFN|34aKMI(bHpfJA2l(|ASD+OAn^%>gspz-l^Kztv&M0 zk>=>pqZ5P8OwrNN17BY$Xo@XvPS9DSw!Ab(4mrnO(W<DZtfZk4-M*biERJ5u_ixCf zM~{a8e%LkA)Lt(mBU3dw)XK4Xb;P@OIw4_UeSd#_Y54fDy!8Bvu`)UltBHX|tl0f0 z%$gH|3G8BGVpksfPW|o~?Wq|3`&Y})Z};aHXV@GZ9GHa^SK$&G8XDNQSz^VgSFGS* zXAe5t|3OVM-li?rI%$g?<3%=+4_hTPJz|!Z`kVN=b+jsr)8c-9erf6H=X)x`YzLd} zySTYI<_^g*GBLRhHf@}qnGuzhWj|9q$zxxi5=FzrqiSkuI^d;wfO{W3R=N0kZmz79 zWr<*-^sx(3Q7j!_zsfmx?8wT>q8IuVfBg7ytGU0w+FqTLk>F(b@%{!K8ynkG=dVWw zPG}xrIk$hkm{>;Z)ug0w4sortGhHPIO-!^-oY;_&nJMQz{!PnNm6GN^_qVOcd+YDc z;>eMbIaWGW!Jzy1H*P=G7L=dACB2VBe&g~|Pw2j}ku%9LXK-?II&N<-hHDO7oLN6R zIket=TVX>})0>Pvk+BI0v<eCe50Aa#X=!PpXJX<~<Ttol#;J}i`^@v#XL<LLPN5qL zXDTbB1UQ6*qC_<=(hFtlop5xtX?|d=qoYH<dUk4r4IgqXF_B3qDyz|!K@>M}WT)S> zte~J^+P!;W)6-rBuU={F-Me?d%mW+1bH~{q%&fw@!-MJAGAv&Q6!=c%G~|Wz%P&9A zS<^%JSM5uXDtmhJ(`dUxs_2d#e80ZD;8ip!zOmbTOGZY<!9#~G2rKz?*Tip9*A{bp zx_sCM?mT$#K-S@d;HfXqSvosArx)i&ZcHlkV{eCFzN}fFq9k{sVNDK~sLz3a>vQOd zLw#jgFrDlCw5#7lqqch0N%n2qwvB!{^V+(*^gN%U`vz&t5-E3y46U%a5OxlZMyAv4 z`81Y(V>EiV6ho~mE;0z+D~r>S;FEV;g{xxc<__I{`ZK*yL{?t6eJDBfMSuG1ZAZJy z%w9MPl}z_CrT1+!d;9in?u!@NwF#TYS}g<RYZeT`SC%d>xV)18?5bP4&Ru-=Og>sf zMcVx)t&F@pH`ePdelp6gHi1DXEKAO6d3}=;WGthFc6oMV56N!dp75pM&Ye3u+`iH0 z=jR`^u!xQm*Dn9?ft5nmN@Z!Dt2O6X#U<`dj`As*VrB80OuM_g*Ss33yS^3G=!(Dp z)bC?;sVX8boWEYk$&v2#?iVU7P6_;6;3{tN=tw9YU{X?2Q+53sNA(K@vbRu{jteXM zg^L8vb8Iqs80$n;=sP8CZf@S)+k4@AZ6Y2ugPxvVf&bigN_ShHZPL!O>jD-gTaQGU znwf=<yj~JEF)_)XbN>30hL@Lj|IHl+o{>>ep~=boFWrA$U=i5f-TOAu&G*34Q?D_b zr>DR02y8!<b#*KvnLmZxyx4X8h*e)@6gG}D9@)3;zprgHv~qO3gd3~*9T^dE9@X}g zQ0S8<Tb;W~qK>|BUKlc)`u(+{qwuWj^r-a-C#Txqsq#)d>-28Y8yXt6`}_F#oM_CT zp`_*Kb4p7~w-vbBMvaTf>^k@RO@C@&bY0#4qREz{ZX&5!3_aIL)tUXWxG*Q@KkHt| z!%o@ZF}UjUGbhtNWdVU3{7i-M*RG|drH!WAZnh}m%gM=+XMDFXH|5$_$x<};`_+jr z&r$9k2JIFI9P53XB=3|UXwmrRuHG$1V`F2%oo=`FD%U&eE^lgjO6>LP5!bG*y38l1 z?reMa?%m!*%K$Z3S2-J7Ti4+>Il*0?%-S)+Z?P3zes>h|23UG|?J#+0Hr7!-y~#AE z8xNRotNs3{xxm?<>ov8sGDxG4lPf#Ff^IaUT6hH=t0q1yVD6VfVR5AcdQi`|Zy~X< z?1eE0nwoOSuIHe1W7Q5C8eZMZlSs$H!ZI*0K%pFY;ml%dYl~*lhYdJA{G^_pi_5TY z=KJ^WF0QU+FFl63`}@P>Y%8s5u5HY(QaJs2rLV6q>PE|S2^Ov|Ql>;TRoOo_K0fs4 zr+eg#WIcT7Cv7;=S)6D8o*x$z=;r38e&WOcQ=l}*Lez47rch3vJUP&oCvIeH{C)e~ z^mNge=SEm5<Zn=E8XjA!;CAUKX%8Qo_sx*UjZ5np8HouAS&8+dwy?0Er>Cb-ItpC- zLYaQhu?b&3aASMV$2<GNFI~D28cL(Cu0Faj)ul3JzHi^YH*epnN%7SF@>o1OoRJ~+ zt-rt4|5V1^kpEmsVPRpzr%&05sduubdt=rlBqX5!(oxWJt?(Qu4`hlr@kGX@q_B#M zX9fzra%#;9kBCsavHi4#*R##1PoLJ2;JkhJZb?tJSIYVGRFrNMA~%s6SsSgFH#ntv z&MPZBn@K2>cGs?5IHF>^b_uYFC~J}y`~1{QYS+EHcQ2wxtXaGEdtp_|=9l#~HCKE) z9c*!){>OE`eEAaB#IC5ta^%PnG{c~X2nJ>rmh{X_!y&e59v&Xqty_J6FJcc-Q9eIE zy{YvfB{ngUj?&QDnmE^{d4OTLsZnJucKa<Y`ls7Au?q-9Vm)^3+O;ApB`5yIjicEk zO0K<cm>y5WU%k45hK9y{pg}F?@cGyGtn)(H7j`Wdb!v*)(WBy<Hy`*tv|3mtfSDry zA%7J&x6(Ng$~7F82M=`rK1)p%sf-a}TfcriMYXHMpM#gzw9og-)vG<fe@C~qnYH^f zFfeS`yqOfk1@n~4mzkM`cNbI&i;cU@jN6g=)K(D^o>H}3ODRDC3$tnxoIT~COl|^y zKHS>X_Vgqd#R_epz-vrw%a$#pU(a<>QKE&FE_HWXQA+W1>1g?Aa8~GSNn0IQHN`lJ zii(c+Z9evLReO88&c1zDznY?&;>@H0ak#j<1D())xVbYJRbJ)X<mNoH%ZB&#tgElA zb@Po{nn2wsZ*0udt6b-(yXv;g=jt$&&Ez{cdFlrau-wy6<&moRbWcAnHFfEuyuhn- zBU<L>g3r%%NxynrR3v!)`gNSS3N)jIk9iC8^WDFGMO|I5U!!!+$43zu&jpA7vf$1` zzx%l4Mb&n5k&e9u7ZUdRwaS$%S60?G<lEH-9^1C~^ImEOic#gnCR7*q;kGeLrgx8y zzQE@#l-K^Psd#?+OT*m*0?Z=HMgLuQbSmGzrCGObo!KkTM-2uRx&{Uuz!{}jMh<Rn z<Lr^bv;C|sk1b<R)mjHRUq6=Iw229@Ciun;0Zp;Ej;i&Jjyr@Ralek!eK9Jsr`lvg zLPFm0geVx{zD~5}d<|5VS-+m{;>C*x4<5|ADwwGir4H!k+)-e#o~bh;Icd%EuJMV^ z&fe79+e=z2`Vji9+Ag%XbqA80Hs}f%tSFNwczdD<EfQzdc7A#+R!0JTJlDp?M)vHF z{ZbZ1Ni-n?+@t%Kk=eoh`<Z9|{)()=y51K3@SxGRF6pI>XtC%>%8KWHU*78QL6x8s z9nC13`sJ1%+1}PxT2)1dV)15us^5j08r^hpdA^8<h=H!xDxCpyr>Cc<bA#B6#r|FJ zeKwVO_VxNHZyGbT<vfSYR`K#O3GH>^m9cm;H}X1$RY-9S;0(Yu0WR+UfQ#kMUAx3L zY@qMy>B)We>@6NnNVG%}{!?CE&EP*fp=M>Z=IPU?A<>#m8*rikL;?rDypX{?ragKT zm7?U^doMLW-Pkz3A#d=2i3txtZS>lG30Ciu<#%`v^Pxe8MDJ-jvHYtBkBS!lexYY! zc?<M6I@6z;36L2c69aU0>%qf^Z-CCMPM#zk$GpIW$}(Wa?$$2_^(OP>R$%bxepZ&% z<Y04nbo50{vGc$w_H{|;(Hzq=tK*F%-(q1K@9g6(C@i!_5iAH;P@J9kDek^4W8L}X zvT1P`px6bcRZ!8L9>)zOv#QAZPwdT`QtnR`#Nu?iL480UF7wMX0wDljmR@8LDBx0z z6a07MP6kFsZ{9?3#Q`CU1WZ$vm6dso6i><eO}osGRf$A7Uac4&K6UEzQwFrkq#dqe zC~1*dSsU<>(rl}u)vLrE-3ktiqN`Q!IeBs;5DWHSP(i^C(%tz~0(P(4pG4WU>lN*b z#L9{=HrLsSlU}~Qee*MaP&!K|etyccDx*fJp%;qD+Q?+HjKmZY(4q}8wM3PagiuEJ zR7DH*{QAXm=FAz1b?ekkO?iQGF9M0sGV=uiA2#_`Ub@8irn0hkxcv$Gk?Qf|5-2q{ zZ{3nR`B4JL@TOr-_#oYXbBW8Vx6)$6?C>6!kdl&e+?^5|8x#~oSxHOVi`K;+`4;f+ z;-g2KPn|y9Sa{YU>BfyrPz3e}O}A<zpsjD;j!Udv+cVgljpL|_698Ip`SRuN;o-~a z8eujKX=)v(VzU<it?$sEiHSG3TRHcEgI?a=3;jR**REZQ_Nb1l6cZOG9N^(YDN3_x z=N37+^Ko$;_^7nUkJ&(5Pn<ZBwkMJYUkq|V8r7vsmncSwQCF^TcDxQ0VH4i1>g+5{ z@YvkcNNpwA(dgiyWqIdDEcT}=-%4y-%gOWazF&@yyZQZXcW8SZsFEOk?2^Y&i<-gM zWX?H5a8le+`!Dp%ch%Ku78b(e<KqWGkx@_q!l`k>tC_zMZ0~txY#LI4CPC8-y>K zn3!nDIkwBp%&fGojv0g^@zI{uyF8_U@h=14rYx-auP;x=7P>5~#E*8f!+n5VD_U@) z`|Tsu_4V5QA8yInyrCcNEIvB0L-YM%cA3U~gema|3!{<vpv+RRwW96@QA&@VDGvSm z>YOba4jwYQBCElZ%73(~_vg<Dsui?pK&1t4-x(D>1|{5Yn{LPFUKZNLlNvC)5g#St zE|_8ePXJhq$5BJ4`B8U080*_J)fITA$w@L`amE24Lh5k7=D-Hc_dKo3m0=$Mm^A<n zPG}`MjjYeaiFEPmx4>9(Zr^mK=jQr?*_6rEoUI7`NouE!>0^sfR9Pb<BbVMc4DP=> z4iD(K$zv<tR0$Lw8yh?E_2sh$*YIR6>1A@-@9pcGsh_Gm&~%?G$Gq_4H%9t{N}Kng zK}7Ow=2T=fcv7)^n_KEz0{36vLgVc0JUTU{oo(_cB-(hrySsa?Q>!#N{_FK_F0V@Y zPcvM{N`jn9r^osTDJuK)iOcZreh$S$#Yx*w^Ir%K-nlt4YtiKZsp3?q+`+hDv>c!g zhPJjgdZGKBt9W?IYibx5W+#Ia6BEhxuE-&$)A2XBe8a1AXP!E>vNkq0zJCxz3Bu-p zs1PQu9o>y@RId_s<XNu7$@fv-y}Z1-Gh>v?zg1u5;N+zC_Xp@<Ajf1HtxWFRZ}V?I zelUWERrk3|f#=!}KqW|$wWgLn_A&(Itrz`{NAXHG)B;ip+rE6MsH)P&ZaJ{}9uZ;W z6%?F1RIw{a35(>F$q$+jtiNkFGdo*eU$0Moj-MO>gRQ;&{dD-lCm<lMsK^hMWR>Ef z;4LoQs&zMaa{c-7z5-<>BwC~C`0~k>UjfoApy2!lH$>{l&0XhMX=!QIs~lsWpK7Px zym@n7iqcVRlmp8r%z(?($Y>>Wi-%@;)V_a*%YJ`-m5zh${*ZRxv13ByZ?I(ww})g! zyI3pYa<~$1-n<M>nUR~zUKJw}cI(!yhB*Ex?>|4vT3dOsO=P!iTZL_9SiZci4m4li z>d=sFD)ZE_nGwq_wdU~v`d?UdG^_pl<hAarGS-EWj*u1M{d}>nf=z{7x9j4(H{a^j z3_{tB-rG0Vc6Fuhy3bYppJfvTZzh`|U}@pp{7B#upvDbcK{51~(%M=kS69~)pYBGH z2Y+E1J7laATf3G9+zV<|=;OySoq<dK=-dqYDZ5GE0)pxu8Ii#$yBp+0w7TRAsHsG@ zf{K8{V^0+)E-x=HxWk2V{`~nJF5N-oqgRq9pP@C}J{yClZVM3!l8MGE&tD<Y&EIzH z*kM(6fyU+Bxhfp|P&}FeS4AGIowzYjBbKudTgvQ-Jxj^__&!|9NnDB=2=^$2uQh1@ zjEsx~6g*r8PFZrg`}PF~2d|JeF9<3vRpp8G89jBR1-L6Wa48_Yk6qqzS;dIj4|Qnx z*RS;3w?ok9cI@2AAauVS0z=rVSG#y*EH0DgjGsPoGkTAvW>dJAk5BKDdgY2FIosSb zUCLSa?~|Y3C?gXFsS3P+Lr}2p<YCRn(Vz0LDEz^Yl=k1)&O-KEvb@vi(Bs$nLG+r& z#@s-A6`@SL-9LYB#3E`%IFLo;FTfruc==Kctx#E6nQz;P*oHXzAQUg)+UTLy#}!RY zM%d#~3<{eha5&$QLz8D)RbE<3K|KIBiD-x$SlT2bgGQ=Eq$5ZdS3l*4JI4IG9!Y(D zecWSu;L;*J8=C{wNh?r6*MSDnkkC+TRA+LQjh4?ce-ddS<JId4l*d9ai-?FUGpa}n zQhCi@x^E<n1=mBChyUO51a-VR$Cjxbqh(_w2B;PSf(1EeG1yE>3nw=H{{0A?SapNA zz`nJ!Z2x}c;QVB(<v?R59f~$KG(AtOminGOGz2d~jL7w$^CX|oxcsnKg6`d0FDN8r zZEG7$$a(QpCzm2;F*OuAsiV)CAqi>d>R!S|<KL}U1&x98pttwVAN8p*=;ziyKi(lS z(!D?14sk}T^z`&RXkbuwXJ2C4?b{O2s4iYwUZIdHw{AtDyL97{b_C4tfGk)_{V^OW z@$i=yY;tmP(|}22Z>EjiiVhFgq2RBG92F3tj7G?eijXcIC+Pm`Gq<JxBsbBRp#G6^ zSJt~+?tFfH{~mhyiG2@vauw=9T4tuWyTldo2u*4fs|_1Bib_dc#sf>KS}yC8d&J^O zD=Joi7lncw%r7h)R!v?LrxSwW)eFUBx+hG86tOj91fd%!y{oUU0y`&oAJ~(|w(>HE zB4=|R+P^h{oe*}Qa*+kP^6!u<@(2hp;iAJe#cu9!r3PkH*Us?47m$*V?ugE!diXFp znkEa)a`|n(1M<iXP<<YJA9%q`H95}VQ@(R&QN;Tj3QV|BwPgnWU<DMU(b3UTfK4c` z$I&@6jk8VEt1^7-t*y`F(GmePJTj6CMK8E)`DWcrfF&8Y)~%6}Vg{Y7Y`Sk48m&o< zf}*~(xIkolDB60pV!g?zB94+ZH8o(`VMRr|L4?)B;vicvqp{LZAh4*asZjyCK=;0o zk|I1YIr%-M56Z2JhsPdlF1?#O&SSg1TW~noclFw}5a?*u?fG`oKW>~^oGipo5M+do zj2=WqLEQu?f{qNbMN3J;O*FK$Tm<+YR?g76K#DMb%*T(1%!_@var|`l?o~T<i1U!4 zVce}-o9A->N&=e_==A*bQ6S5Tjt)Txs=4|37hpB4TD8jJWD(9w?^S)}^C%#G{{Gfh zR--l7vwqHYEiHyY3hV>$Jkk7so9I<TEt@6QuNOyM{`vE#*Jw8tmcYXM6zVJ=KYxZs z7%Q}hV0<oMZbPx}IrtjQW!a)W;^go&xqSceV;M4|;sP&la&qD^r$K(6OS7}Lr-c~B z$H%8?X(<9Jk60?uC{P>H@7|@QcufpI#R56mASI;<3<_l__Qs7!h<oppneC4sC!*h@ zBhM}XMEgt*(r9aIPyGHWAQm?ex^vT}O=Hcbme!x{9+;l^q@RcLtXG)M4^Haxclhx9 z?9gL!AJAMWl*-D={Ju666i-0`0RfGpM+Km`P$&lu9Kh}je`|9sA%U8LM>00hDE{r+ zw>2<>cJAB>SwRB}4$6*8VxmBsJAdnz(D3lE?D2Q(N!PD4{E<07aAtW0a?M|PvIGPK zpi`)yIwge%<MVfz0d%ST*R6A%_n)L%Lia_H72mRjGcGO;1+oe-7p77ukYF!xUnz=$ z-3?|QZf@)GZ`C_||4MoO?ubBVYCXK&aW{AYz&N2igj#eK`!+N;hoS?4S6DkZgki&} z9zFW%!<OBC(+52TEeqXfKv>C&hOr9Cf-gXg;DqSg(ReFlS<f!V84zX_QDz1cdQ(+J zNQsN5XJtdWM$f>&hH1YkEET><Y|R=9Dt9pGW3F{Y!|T96BH#nYnlGtQf@%|G`iQkN zIr$d*%*x4$iC8<Ux2#n1nFz|raN%9&|J<_riR}!wne3J=<sl4QvL1s*5Sy41qLPJ3 zzvk2f=?R!0(*_At)zDZ0URQ;q388bMW=L*upS86p^n4m(O08U}D#2-uCXSOI1nkf- zrbDsG<GZJKt2|-zQ9@kZ2b&l`B;Vo#tkERgixOW#3IWC>Z5f-pqOy_}kQdamci%l> z&gy0Ptoil-r6pv<CMhYI3wreM@Do}%hkQyt+u$czJ2`D~e`<<{xAWB3m)s5?ZmQuK z<hp&=B~p6BR)wb9u2t@0Vh>bsqWR=(Rzmb(va_=bxp+|wSQ0Xlvpda73XHNC6umxR zzv<tvMqIi}sgjbDZ7MFZJoX3`cicTcKMyT{;oP}%gqT2jokpt@u%n`);Dp>%_U8w9 zDJQB%jLIV4*Owj|s;WT^jad<d7H24~=ZVb26%pBQ>sBs+sOdlTDvi)+p%sMQy}OQQ z^O2CJPqz`R;MeD8xzC?#nVBUuH0peSa)7-$P2pO%KL{rhCnMKm$OJBc$-oJ>#ynf? z;jgcFf%kA!;)+`wOh1cV;U&-cfgzZI24vqn??3jZItn;|JNdR84~Hreg6|_f283YT zVFu8H%h|IU-rj}yKGxkzN`yDVnIo>l4%k*$7#a76iesI=BR#19gruY5fT*p+CP}w7 z;3_8+$KwY!ri+V95Gr(UUmsM;PAO@+&)}Fhcb=ss00117+;B&+ujzo<L^7(KEDVFX zTf2C%MZ%+^_CW0pjW(9K$SQOR6!fxy0&8DYOcjJfRy1sPDM#vMujQMbWPC3K^HOL_ zLG>z2f;i)6o|}HztEYDnL}>iapD{dzOb|IVKT}fK$nv4Yj*gF)(~0=4ahE8AiecOG z@Nn*vClwJ~>yHa;<SeGOAPU{L><14RVT!($c|CuDbY*ZKPVg69U0qr0@|ET<-5JRK zf>sax=~*n$1&RqF+IXU}kk0U<IhL<kaViPJ!e8be*cD;HK{!lxD|D$#IBpg7^=vRz zAk4|4$SBVah!gu4I@sU8e{soyaS)sddf2o{TtZ?c>ZrQ5qwJwWhq}LgTM7OJB}#4d zz2<#`WxZtvosNl^X*U%;7_nEm6!n6|<8)*ln>J|f*&`|`dGP(_9siXDU_AZ#DG)@l zD!L{u3x5boQt$ZpT8P`cU{hBi&%>2~tV0LU#wqtk<e}iV{s6K%${$iyVgRmeKq#fw z$cS=AKrdxEcI+6yt-2HslTd_3H@34jDvMsq?rQ3BPKc#MYy-l{^Za!rz3-s-o2_VD z6P57zFF`l0`23k4#EBPIo0yz@2|8OZz;q=<THv20m!BWkPK<Pkz_&E7H)0|lG(o3O zy-{%X4(w?1av@ZrxDXu`<wvN%`_EnT{tt->3BB*)#NXA_r~@fNs9=CwKxvLFUYh@- zPr3!nxvXX{;6>9M^Yg*M6=!3(SFI}j^vTeKF~_2q5jRxy=ff^HU!|p|u6<e$k33@} zR8CIr{?$~q$68W6nSjbCx=NIwa*Ma-4b7Sb%umY^?hIPNEU=v!^*+DWy7haWxv?<~ zzWeEkMruHdn+bcKaj)D6rBVR2KK8-=`+EbYd*}+IZ(P5=QApM*XxsYr+DA-G)*UPH zD>OofOioFWj@P~O5uk6+Y|GIzd*8o*?<C)e({N{~<<V7itm4rzz)f8iX6ECT;I2CT zb=SpVM*08Y{X=b&XXa>czit5ydg!>Hj|Yn3703g%(Q@ARhinVe(o`K00Jycq?ov}@ zqrn64q+iY1iNiA<{!-d|_Uxt73BGV)@VKAj73#xy_ybW7Eniza0I=OGEuAn_fO46T zW0sdu>5qc)5v-!U6;S0-Gu;c2o%@lIkrQKmRWg1ZSk=$qGW=^bCF6D1az-?@w;%R_ zNog8L^(@!6iuEM${T&o>k1fi@$xv-|!FV=IxnfZ}3(wwrimUt!jGKLja@*S4I)83( z*38r0{aV0i8J)+L?ecrin<wdMYMwa`D4C?}|FT2olQ+@`ICMFc{@b^22OEg<e{}n{ zQT9&}kQ7oFo<4h)>MON#=jyz?JU(T=>9aA&k68b+99x`<E-Y<Fr_6frfNUXLRC6cE zT>yE{{DIXq{Bn1~TN}BH%&RZ7JUUvNvK2o|$;!KKbxfod)eAMTwAgowteOwuTLaGk z!U*FQ*SZ}0CF%bC`_tbOEf1QTU&bCLCM7m)1vGIi5G%Ba-=ST+(9F0une2Wcy9ghj zBmycgum0091tF@NoD3umER!8z#BY$6u7nHn*Is6r=6@KJkJq7u%+Ai{d+?7R6sgLG ztf~kc(&r6@r4+T<+Ro0nZxQzq#=M%^*tj{dWL?J6vZiM71w=XxO`(;|nV+9O|5y_C z`Tw1tsXX<><go?IxpPyz%768-B$eRF-$n;h`eCFtG#oTCF=?ruHrmx+pIQ|}wc^{$ z+?UERc9dA%JHRxdV8-a;Gv)nF&3PRedzc^>JqbDZh)6n(PB0-gux#nb;JlE-UT*{@ zrl{g?db+!by=9G4Nuk);edn)#4XCyKOeb?-U?5UGR&T;NQ2W(YRVhJ(uNhwtTsnqB z31L>I=upd&9rXQzf&#_%){2iGISE^+uZPuV<V(!ej>0GARSzHAuFfi%ZGk{d9PW-H zZ!Rz^sK7qIy*<38&i(FKjh}TBNlacx8n4gk|6zt&9{%6W&>-TgNb!h670}Ysk}v7U zfoUu8-&Ha@n0;gc`0~Hp(6UWla)=;NO3{eEDQ|DKz)mYZy?;Z!?aXQq4-beJ83hG= zN1va91D-cLw{%}R#tscaxXQ>$EPVw#he4n5kt2-wN%)jj4i0p<x#JEFeb8#)E^Ffa zIqi06%-A!~{$#ygs`BPnGT5-dMbp1tbb-jO0IX@Zt>^jbU}snDukrk!nd)KgBM;IE zGmZ-;>a(2*OEUOa<XOab?-oQw*T#{K+8U2ql6dXfJCFU2FaMo~pM!(FsQc<wS!(<C zF=3YxXb&A45@^a?P%4-oA{hKr+&nzJU?#vL!FTT1MRAUU9Z*!iJU{(CMF9+fGWhH9 z=!DIGySTUjOM9r1I|3Ky&l;{B8aMk;U;p^U*372qf4k;WYikv3xzK0>4UhzA@KE}h z(|j)N!&*l5gU6~&`R_}Vehcv*?)zkiEl3DV5U<~on&YFVW*PT|=koU&WqcN_mEjT* zVdLdZ?En3^)^-N2{qE@dEd}eq7%gr<Li_mf<G010UwD?3gMBieuqgFk=_t_OQBtn> z|APIGf2x3mMQM0(#u9dVvB7^#TfWUlo_b}vT6{w*#;SPt2(L2=L}Y-3(h6gawpNY9 z7bR^Jw4wI*rVSfZaVL;5$IVk-Dkr3FezSgdIcYcX8Jw67Y626l^t;n_C@WUrX_O#{ zr3A_$l2&@I%b$+2!)GGvlw|Y&(c*pV-z@y!ChnQ(8jE4Tt%q`xks+Wg;iIE2NWf`2 z+qP7Zeiw@Fl!=ubXwK#>S@?UD7)3zBUO8<o-}7!>y&C-HjV3dntm<!D!%w%@pu4Gu ztr5$pbV5nPX3EZc_o{>her9H7WN!7B_)a-viL4>3J>LBsPIysqu`5WLLe$L7i3xWQ z!5-vj_z({1sJi#r7o3wgTPQa*o`SsPL&CK&A}SXzU8;F4or8x3S@u0q8j%td=%5aC zjJ@DR9$V)-SUV&T0m-Or%Tp|<CGY2e*`N3FH%dP4MVUu}uJZBg#o4<YmI$ewhN8*> zGtpvwpW(07e0)~JZFy}kJ+jkwT1=U>G&at(vMr$;n3|Z_peRj$yQ*)dn$@zr`=d}` zO5eO$iSER$ShH`Vq+~Dhdu^z?ObRZ(apXw>S;5^|3bf#v^f+#3XAQ@n90Hv;LvOaN z{Qdhk@G<wq!_L5y;Z@_<d#?WyN|t0b-x9fHqH=M%kBxv3QBl$SJx^JT0RbQ>O{Lb? zR#%gg26<voqAJTElU+n42HJR2wV1V!654qskX>wS?3yozndy%7Rc;VlAUTXe8S4X( zPMn)=I!;3lQ=B=`GNq+i4GavRVZ=AM@;`-XVD<6#-l&YH@(L(>xw*Ne5Uhx)fpFIe zi15&?)NsZ#H=J%tTXrm}s{r=a@I=Z5%zHtSA{j7<ZX^-~S+b7$BjxANkS*?h6xJIG zMrib>v_}@j{I8c5cY!_EQL8_`OjMe0{}D-5&CK|aYcaKbz2ZRvkR%BTB14zI@5P~t zzQI9cyiBZ+dXVX8yAp&lN@S{OWB^DyW*L<d>f#2qWCa9K!QEc$sea=O0863KO;+$L z2{-bZ`}LxyuWtp8a=Liq>*>E=&d8nqyp335Xu~(K3fFMLtkAB_O8j;r1i9H=(D62T z?m9Wj^P?I!cYAY^OcFM%fw?&XbY;hiyf~IUcK3lGq%9zDEz7D%y@Gs=;p%K)-Q&l@ z8sb*2kJlYTG{gGuaJyNd+ggwo2#k(zmOuVCTvCozt3q%R+dh9LJ62trvkw0usU>Cq z*)<3`LUaMAICALV!BTydg%BVI9wr{CQW7Sd_-P0)hgcXuDW&MsM4t8g^IieJpcPFP zc~FxCPq?^NpeIcXw{xj1Oc*{nvi=HUN@yash<1=;g|JoS+gDMsxc-uv9|FWxgDFQO zYa$V(+csw-T38OikLQd!y&I2fJ??>;+(Xuf|J{H;H`4ikG~g#I+S>_?BPSA;`U-Gz zh=y=V^uG7^W5=x~X+@|(5kOn;A?Sr7lj;9)V#pT=*+NEuCiwr|u)lKkT&FjknwlCh zV3C3$*}Ba~pQjZSnS+EAKZ8V1;ju%DDo2^`fp1TovdsVD#)KiJq@<8&R>{($FUb~? z1R|OaJ3l`o!pU_v6xa|OR@e3y2R$h%DIw7ZoK<9(2~9uMmV16zx`F}fxdyPi{fC<o zC`=^Gi3;SDsj~G-YHG|gr`GbOrd3OGT}!#{KMxW4rMcO7;6&5PW%=U@sI8=+N`N35 ze+4X=F&uDPKx`Pou}a#=i{M!k0Xh~m5d4)~5f02noKac-Uv>@-74VhdKWv3Q5{6S| zH8cJ_H!qJvk-s^UgbbiCz{n1R&PYNK@Vm+(qYj*S2C@>0^FdrG^tn=isJ!FVoCAY{ zj6zY#Im^2Bl^clI!MR-t8G~p#+nqbY;Wrdb%pju!yR-^h+O?;g=Kp^xVI{Hr$>~Hz zCh^Ocp1&^by}HgCr5il1xM3`X2*yOR1?WeX`~pN_#0AfzGOL3P4tO<9EW?N!Oi&L& zPF==&_b?0YU{{$RUGebYLyME}`<c<{D!zOXAZ|@_^IJsMdJrZcmNw#a9@iGXW4Do% z7!Cmu_aH?AdJ^gH_TH-`si9Yx!GHVE#`5y=?(g4;?zY=!f*vUjVUmG>>Io36VQBcI z^Q=<9JRi6aJu|Z=pzOy_pCB#=5m13(E1qdE06(z<p-Z>=Dm!{Ecb>_&RaN96kN){n zftHgOu;7Elcwbc20UaGxd<u~`LAIgC!db0oY2kVP{5eqX*1Gra8%z9s3lDTjLeg|| z+XCImWpdCMnMpAO)gjD>BJDt~5EO%%e_QwsmP3#5DG*5ZdP=QFlpdMaTZ$g)k1dKD zo;c`}oI!bcMy2~(1vm+zB!#hVotUH~BbEc}zMO}vjkbgA(cWG;Kkr8(FW}y|?BJ_c zuXc>H7gLCaQv4F@4L&N2#91g5c7(1h9Yl^mojERY`~MNh2*O(I-@o7L`0<tE;^P0w z@B?&`P%DJuZSwL4hYxQ&y3HKh<NrO7ag960qS&VgzEs~@&!15^Gi<P|^KExx1>hr4 zC@6~%(8}Mvqld~4%QpmuE@);t!tGG;0sJ!lnHZs%Z$PdTmL`&&E53dIE{gmjI0FnK zD&lXHR#s|xN`3kKdC`fOk5$NRqT>W3^F-Xq?8HEsCMmKH4StbpKx(p_1e0uRE;MJG z+SVn>O)gRu<2zA6^1tBB#sY1@N5S``KYh9i&kA6a25XdtpTQ+lnnmis9I<;S8X6j8 zTmpeHbnc+**H=U9>*{XFIQS_Z(iU(Lib!pZ3t}a|yI#it-e=+?@BooJ4227bj6*}d z-99K)_@EWI+=~cr!k)1{emn#Rm?TROseJ6Q_t<@-OE?YIs2R)Q=f#<Rt+RRb|IEpO z*GhiV?BuQxzDvu_jyzK`L%Y?!?!+n)JuuiH97Y@1ed^kxKBoaa2*AYVUz)UG8%HW2 z?Bu7r!~h)~8;gtg65Gkpt4xHZL$H&}K$@*ls(}k_-d^H{nNtSkn12tIXh!Q+q|r#E zgNURkd}MSZUEF|cIjvFe{k*aJ)kw+mKmm@e){!Ip#HF@ixs-Jsg?W#=`?hQG@!;=l zWWNvSG=-2rSlneJ$xvWbD5D|7heu`*#2>EsihH)~@)~Hp+toER2wPPPrY)<j-G^V) zTuzb&4Mx$PK6Q#HjP64%ET|-H#l8ygpF^XyG^sx#YlUB?MVH%uOOabxSh)L&jgR5Y zhJBh%b+ECmAORM*^ib2X3Wj4cCIcu_y-F;DRue}MN%2y0CxE~tkOdi*@IHKO)GCtb zlQ&d2)A<I7&Fah<Heh`)^p$jUPlDJR_q|81f{KcYo`K;!v>)N!UeHbd!J6djkh_qd z5IFYIT@9)~Y%UU0NeApw*A~yvDh0`bz*dH`+JGfOwu@0Hf?pI3IKy5{MMVTR0B5TL zlQ%^EFn=8&1PzZ{k)K0;3)-l3c|`@0wI_yJ*#P=pHN<7b5f9R_mz;86f8?;N0mk!- zl~-}kI0c1U=tB~7h5JO}H83fVRnNrlaP*YBi)F0SmE!3`-6LKg{IOiW88;~GuA&<` zs-tuy%7I+0oSmcJM)D$y%R-tP9xE1yMG(ctfD1Y*@i86(ege#tU!Y;??&+Zt5)w+! z#J@gs=}`v}v4+V)S_|xf=@gBnOZ`0&;mP3+0wiE;vp7G)xBXPosZ6y1zBL&yf1ojd zB8ftTLQ~Q_bm$7Ml!{D<I8q~RO$z1yBv~pl;s7Ti4<u+g01_3R9EWJY8Zj|y;>-Pu zL6FChMru5N9(+`!0IWfSiM5E~7~qdcP(4#j(KPK}y?S*I=pTVZM7}~^7ig28G~NuY z4RUe@*z4ezq`%_P6NM8GQA{028|^3*Qx?_)*%r8n!nj3nl7*fujkp`(AJ_sALLk1b zBe`LqP-wQ6_)blElKcK%6Hf*(0BPmy>-b>zF$zWU6Bw4E)txH9LQ6yAnyDt{xD6RY zGKSOxK%))^AP$-+ZjG{hYq^2W+X~1dFfZgp5*5P%Jjh3fL~CmrZGu`(B77)qum{<N zgf_cNaPpChTOq*{*@ILWR)800;Vts|aR~_*q3ClG^SMe~%*Reh(VdtWr%s(BY@8UE z2%Aum8Y{nsfDZH>IO4>VL4zfm0|zMx0Iy*TyfGY78FcOl82{EFKfvX88sc=;5Lc2# zQ%8rMaCd?-@IXk-0Sl%_AP}1dyAIukm~X?MpD|(IR%na(hmbiXTLUGs4LH#!`A8-g zUI{Umk+~z4;4-E`Pzj72kQSnWs0C+^95N6tKy{xt;4l)gka58>$&eJ9T<EFHGHh-@ zEX>>?7tR;BFv$y_7sotiIl&MyNUS&mrG2`(<>dG~IYpvlkeC!QqywGBuNoQw|8L#7 zvlh^m1ftv8+k4QK$oCOD(?}mCudMIiQ%K0IMx%zNK*oaz?4ie(>KuebLmXA}W5-BD za2{GTepPWDry_;Jz;J4`M}wqNagKvw7m@59$)<Gl2Zs-ckO<3Yw;CC>BD^;yrV6S9 zb6mKH=?$^P*SeZU+Q<SC=NX`w3Sb_hK8dSC$YLT(EN=$+LlfPE7@u&lN?~q%{`?sg zap!VGZD)2?R_y6*1sJO!8L;P#YnbQ}Ar=7cT$~+}A*2r-6JiOwB4_n#EK=Of-Cs_O z0t8f`0E_}4i^1n1+X1>B*$({N2&|A~1!6$3VM|d>kaKWbekybz<5<mIWRC+k_W{T* zS9WIR5IoPO6RQzt+qTW<dE!U#De_yyN}Hf1B@oUpa1{X-1)jh7QDYm^HRzUakO5H$ zqS2ukok#O4L!bm(7Fi4h@|_d>aNo#?9Wm_zJxN;C#YGlqb@?m5{pV<skvnKe7qGqi zAh?m=CeL+(5wifx&lQ;$R1TDXHT*U}qp15f)YCI420PCE79@=f8W0daF@LzoUfK-2 zL9XS;j~`^F046Xy(rXxBSia~@L<@#pgE7r;c<0@a_OT&am%md6!&9*5*@*c<G#5ft z5ke+5D@lRjz&a-EKX8CUSeO-5i5Nq$pgG}Vk(7A`uh;lD22chvxkS8B><3i<RveYL zUwtFO`Ga6}iXu=3?nHu;m;pq6@u8VNpsP8-#?8%5lzCzngF#xOUYk8Xwffx9S~15U z07a71!a3?C<`$yl5T_X+kfvug26mINCkg}(BoIjWlSj&of?<<(tzfA&C<9-xBOxuZ z0nYDGR7BUa9MG8%K~2kQXF^8>bR}B?Nfl8!IS$xxB!NPXTvh^cKjDwVCFMnhEASXf zKnBbbFu~vnHwVXg955@?6~Z(C{s__J;^HDJ+~|ZD3dD?+m_>?0T!EytvBHU%kIS&{ z2j}Kfa27-~PLwB-gP)&Fc_7vVb_lF=5lF)o%mza&Wc28t@-RR{+}7kM^m;N6Ndj)Z zBgJ%<mX>%fCIgV1Bpgsqi9w9LB^$Wthg`Kazy+Bj=n`PWqj4OE8M|yh!<L8CjSr>+ zb*;A4($qYVMC1a1DvZZaVQ@~47@Sa95Y5EhkkDUpE^1}Fg$U-9+Mb^lz`x5nwMg+0 z6k&r%FWH4K?Jkx0&n*kf+G1plxc=3C2J8h=V33zcjAwJ+rlZ+3j|wIVyB{cmB)p7_ zt~JCZD=ltcm*E&6uj=YL`RF0D*X+~T#c{W^jEvd9?E6%gE(KlTY{;NV%V9ln(zvUO z0xpb!w3TFsAvZ%FId<)`d=oWD2AGk(CK)DhVEiPY1cBcq--;6i^(`$YhZVO6z^#T= z9B9*&k56p%lL`2{D8OsFP~X-zSVd9Yb7!{L%<#!<agxBqLN)^OM7l+OLJZn&7zw`h zzKL)Xc#V~>^lgB6cM!^JdAT|z=;cdActs>NMZV+T)H060TWv$q2Aw;H?l*{rX9?@v zQPpF0nUY3*o&2@vzea{_gVai0U5mg|aapsxR@o*&=hY_PH{{N?lqjX8i@r!46T=n< zd9DD!i~927j4k9AqC<iA4o>tRTG)gEB<w?y-o=mvc7P~~BgTXBEhiqUOK_@TbQ&Xe zp=1#I{d;Q!laL?+LDf)GOJ}v9k$19@i@nZp++k@!c^;SK3jx4`!TbE7h?OsNbsG-v zV|pNSL+^9Oo=M-ll+Lb^3R>ErJUQgnCw=A9ky0X|JS@?&sztor$-p6y6P^A0H8DLy zGDN@%pqeDc2wQ@T)P3JgSPG~snG3hKzlg&Poq`k7zUZ27H^sE-tON*<H>ROc_1hhr z%-B)Fa{Rba>eqt@G2^%RN{WxqXzAm}mYl_V2_};=`3`6N9y|zK^7vKFg`usN4ZFRm zuO*o9CiU8YYt1?+Z`#2oJnz4KkEO^!L;9?}HC56L(<K^xR)9THy&+E#8Ib@1fb>m? zd3(Lk(@Eci8i2``^N@b9lQ1V(j$>%T4;%p2wq~w214I+`3SJoFv!%ehzd=PPL71~i zgP4a;Ab~e*P!b&ho+EG*e{lPua^;u*D+{2B3_5B1V7O(CjT|V?Kirjl<Y5es6f2ye zM%e7d@bKVP4AM2*^&B?v8hSK1)#KnGpHj@Lvg=1vb9UEj2ufXnOCrAKgiQ?>m#F5O zFC4mZ=Xh5u9|w0Z!`>(*rvzEgyZ5cdD%m-=GUwNg+TGP$r}9NMOSV1nZ|t$X8%`f_ zo-2M)KN3^l@sQ(paet?eib%{{xOsok(AnSpH>VtEC=nq`hfU}rHC0V`VpA4<+{EL@ zg@@N2@KWl?ps{jf+~!;tb9nEsjzSUvC;4D>9Wcnb7GEUGNJ%4zhEP0=fufv0FuH#M zl`wI;#kP|lS3(vEj)>TMQs_3!E*6%kkDb%NKp0Wd5Q|&0X;b#oRtc;eVCNl%_pp#K znHD2y{D6>Jbbd0+5A=BOmFH=@rQ}tiSJ>4hFJGWuBgt40AXMNH*%kEknPsQTamyRq z3@j4;?bqoC2`lv~bQSCf(0F)==EPV2fi@0V1-c{8=LZC=f%-@~88R3G{M}@x6_Y`$ zCW6`RE=5F;=~Q+>!OH^!Corj-3F#yE=~F3x`O}|`tovmoCCiCXjgk)XW{wydsLBP< za9rFd0!p^u-o<UJizzzlD9JATAx!^k$$J4O$ENPdn-7JZ8!xOEuF;|B>Uzm|`OOb` zxCSWeyDPd=N~Wm?I&Uc)G~R-+OBrHvL<=I74@*Y$M>4F=wO)@*!on@p28@HbOap@! z+R_T3<gAP|-;K7+IL&uF4w8BOjEqt~0;th{<S>H)n_f?}-;`5Vo!-Eyuu%2HhQO}{ zWoK}dN5gy#4Hx?zn?s_<J%0Wy3j5KrIpC_^zP`<XTl3B76~1TcV7QjSDkC7#3>*t_ zsp-M&$JeG;u<!BuJG>f7`3hiU(9R41bdvo>f{-|4{xobq=VHUyM8tpw5X}L$p|WKT zre!H7N}SiI)u8D8;S^<>9E<NBW0~51^o~{0Man~MaSDrBhhjALGQ|98d6f9LTs_Tr zlLgz<aP`&Ox}^2+?e>yI<!``z1Bp6eIEje2V4Wl<h~YeXep_G%G8vhcwuZO?&}jx* z9tjWxfP8Ez=v%|IGSynqkgPieJGv)Mc9+uxZ2j4>dY~oh#qs+`hla1NFOA=%dR$_u zaIlGLc7lqQ^_vE_Zr9(H(3HtUA(`aCI~Hzk=YL3n3Wj;BD8%>C1V}r_`x;2#*4R^7 z%hPi^VQQd&Bw>#j@muI2Wb_G=1-+240Z(4il-Et=_X0+aO_Z1JJ#3@)_Ji_E>Qc17 zJE+9O5I>xW%}Lk{5aQ+k&@t+;+qL9mMi?hhKuL@h9##dGlFZV3^=ThQr*-*W!wtok z4no2PY*fVTyMO$+h<qV~kcGDar+WBj_Q>;R`-3vIy<2^TT2z-7RUccF?yAgtaA&<f zeDa__{WI*eOiZi%7UVmYrc|KYu8887FGoazK-|y$8t)-OFp$?H0CrnDJF_DFj0rKV zUnUWIF)jzZod+)pHI&56Kqt6Qc5L@H)S`76<{KS(?WcF~&RQ$m3g6vE+gukntX=DO z0=~?6rRcF^og21!$%>R1t3d&?C8iM|AkkZ)TG*nl!l&g>d>TV!cOq^>{)KN5ij9W! z!z0#;s~Z_aHNSK7t|%*;zq_83s--2USShVkZtMbA<V@~G+p5yuUfGG3&3;OrQg>yJ zJ;;?S(A<fSB~Av3hme)T7H_<#FOps{dkQQEQx)Z~XkeV>ooEz;5ohu({<LIjlTr7m zb@%Y$MOo$J^bId$MyT#*ZQ1Hw(NKNWuUT3^z-rp%S;{W4FK;{%y~#4p=7GPt9%8}$ z1&4UKivWS-)f^Bt`7rv0OOHZzWD+`ZcmpoqPOh?wZ*FGHSpU@N^XVGRFUOZ8<mBcn z1BZATGU>X%y)peF=6DAI1OPN*0}-hX7K9B9UG=cF=Wxvk=2c-}u_4!5gYeyApGi(d zsqvkRj6oV<L48#-E{#1E-s9<d6_1on4LJ0*qJ_T~H?gwL2i&%gQpW*JQu5u7s*Q*z z6!rNJ+<8r_ZJBX?E5WG4(e21+GREuA6C##g9Dx#S^zn&9>B#F9=SId;Vi>rlg$3ge z8?EXdsy!+m#zv<V^}w8s%25ihH9_^#R97c{8$SBsB?Zkw-TnLD;P|q`PlH%yjR0qs z$@!{gQ?o>ADrIHAw&o<cpj$$ggU|ChBfTHb_f!-qoS1blDNnz|6``4=a7Gw)Cm8QE zDEso|RrwjCBgp!Y)gT57V%)D^zkaaUQhzVKsAQ<znhoJo0ozV9)+Lp#r{mO<{9Zx5 zILmaRjornSieH{nQF2_Ej2z)?lE5j>*EXk?{R6Sr93hX8Z-T8G2AMYl-=-d>StG8% z+g5m0|Ksy#G=f5#{^n-KO!m^e)<5?0O`yuv_1VMUCeboL>#2}|T%JEhsY};5^Z?L+ z1fP-GuR#9F=x6^ui4gYqxKy@NpWlRu?A$@g)HeOi^I~eR9&J(a`KlP0Ix`LQ8Hf06 z;Y=fHD3FWkPh8~PkJ7fjn1&}W6(C=Mz@`;a#O^xZ{DqZQwmj<Ndir`H;jyw#=dT)W zt18ycP5CF{YUCMV4?J*ZizRmwcj@gtDZERE+#RTHp3kIX!K+tHLY%5(#l)0^M#p>4 zs&sTrNB4ePxP7Qoe0-{F_sO&F5BWBIG9n=hGS)(3$B@jxw-|-4bmM(Iq(qp*Yeljw z&0Fk&<hE-HF75-RzDMp)^;K9DQ34j?N8)>bRGKmvQXwM9rWGR`1tdj=p|=TgmLlWa z4F?&8r2=8L0hbHUcH>V-^o3a6Uq214eje(KFSeoSYP#f?ba!3X_ttmxqf`C6-W)YM zD3(DDp2Gn0M=WJ{<f{|~;}1S_G$ytNVsmDBHZ)Lq_GvsZI^ZIkYsX|cJO65gB5%2Q z?@4!$84Iz9h|&`OA_dKEr#U2Uk*Y1l8$F1te#Cf81>60^=cgNaq|NCe*&_MGuv$-W zGK5|1_Jn(PmB>tV4+JNp$I|YagFk0ItlsmN_<fuBsjh8!|1?ZG<X(tagZQU}`wmHM z45VOZAi53${`hHyhS7&R`}}qc7r6R0GL4V%^<A9~4nDtj-%5c>Pe|luhYwpfWf`<R zb4sjn_K}pp-X!x-*k5lku@=f0e9@LeENR})YRpD?#P++c>Yj7<#scZ-rL&Xsq8E;I z(GZ~)UUfO#KwOA=SY|#BIMf9yxNYVoeusZ;Kk?AT#`e5%_VnUD!@JOud~BK9UUC<B zMlI<beR^>4=N>T*LM2X}B4}y$RB;#vY2X`N!~_wb+5T{LQoCf2J|EpXFw|mPQmnFS ztt|WWAN_zo038D-B;&z5G55~_?-b*#u?;<0MJOp5P$0<=6i}Fy`;PcTot1T|_5D4Y z%~UIPepi$H?%|?Edxq~&uQ{0sA}RyiXU7+R3iJ2gIYg9d&<jkFbKA7LCv&NXugNi| zqNbicp#Nd>9{dZDd_XivxkXP-WSt?ei~^4TJJQAG<TT_aq%RiNjYEB>uk}fOe(vcn z+lRYei$Fg<(eiLLyecXRY!BrAAQJTW#%%nOoAa_LEcKb=Thr$|{gY#ca&BkKF%WNs zxBz4thTrXGUG~7xVF^w$jz~m*)H-~DsbWA;QR|<3S;t;&hfhTU={PMJCU#wPIvcQL z$I1fd4SuuL4!Zo3ye-|*gphadT*PsE$<rcnKq+L@lBCU0hQ526?@7$8!y6XRJjOn6 z`EluCFs_tXB4maV!!^LD*XDLAuVKB+o?*_(VEe>g4#^2O6?ZrWLzvg!r>AF+6MqUJ zf`=G0ky2Jpk*iFKiDAn=`a;?Xkg_m3F+Tn++;%g(UCZ`z9-O}xm`&R;&I#L3<?j9a z)rhI+cFFKWwgY3dlbq&mdw3q%ho7v&OK+?%%dLykQJ$>we^Ix;a-H7s;cm4V;lyhj z#l?e-A6wiy-IlACQ)N6c=?5*_-o~aJ!pZvwCXZ?;xj6ax;Ek1LGdcbB2yN7TetNP3 zwsv}K-&M8({~L02bd`(Qk>B<T<s1ubecS&*Zo8X=t$u3FRDm5b_VhzY)NR_hG46{T z_p#{9a>%9BKrASA_wZ<kC_VLgj{6v$TxA>HIgpf>C$~vT%BXE;4Z9|4U5)1tX4_2d ztqIAJQyTg=cf@VBESY~c0+%NjAo}C$FYWE|+2ww-6B`BaJ+(D8k_(-HEFYlS=`NMv zdC~>}5Z#~f<%|evM|u)DpCaxr=xb)E$WNX;u|0JE8j=f_K^`W=18dycUc}^8UtL{W zpSYA)eH7`E3TQ#sbtJ9~xpMm}eZeQ7iEpi(4kpw7t0{lqD|B5ex%Y7BumyQZ&fV<n zTIAkVVX{zolZou#Px_2IpGsQ3(#?+Cr^|QN!>;bj(UL0vFzi5C#F{<7z2hhpHf{X= zj?WfG_Ao#>bLr8&^tP8C2SeU5d*;}T4G^Oqy(FxbT=Uyk^!CSHuGG2Df9$KRX~))T z{1&w~08wbm8#nLWxnrEutWKr@N#X}$A0?=_*M@lW&n&OM?nP9df?$K!uW4*i;-^~f zO2M=tyh-vJ3NnTZrAh;*0%ve(Ol5#%Vps95;FYOaYWuc15N`&%ix&|2@07_&dpEQb z6GRxlDCM>EqoR<p8o*C7{fLrN<T-!tSp7J@FT}C=0ZDB!?o{507n%4OE75GWNv~<m z`8a69!eaG?zGU3Y^SNKl0xiU!ZO$Eh8W)-4u*!#{x4_iZel=BRZR9R={M0G)msgVV z2{ztx=iZ-VCEs^gaCcud_xJN#!x;gaBMSYp7a;=@MIp}sZxSi`vvdr^4`NrKlb9>G zB&h)gkEM(cqvdQn(>eca>T7}P3jCrLgj0*T63CAzyNFYn&lcZ3aKi@Ngb)$}KoP8k z47kZ&@Ii^Pl|8Md7FiH^IFe+r3q60`3tP!PALo{b?ML?+;v9-V?mhFq-m7&|N(Ndr zc?}3YO?=As>QwmUZ?F7b8=Ui(_9*a-Kf-(T$oNjYwr^bJ?<T}eqhNwopLTn;rDn`_ zLq02Y5W+BGn3_iZl5uCiG6KCWCO%WC_v=gTWG-^eceq*|TXUk&xJujF_~27l;$0c+ zGnExynC*kJMU8jmkpX4AJcSTC-K7P>qrrx2Zd%pxRV*!ZEtP%!Dg;k)ZdcbIh`uGy z#fKoSSp#E%y5g;K{9S&3Sjck+`LACX>w4s5+Wq5zs+39H7z1SuW-*|2B|7cI{pT3o z`>^Y%Oe*vqU*EYGB}+dhrSzc@RG|oo#_Mw9Kp-WjnkYR_bvU}I=d-cnG4n_KR*p4+ zU5t2zPcVvUp>xr_VP8jY+&g)F2@)W%_-@DcB@!v&+Qy9$BjM8h#y5~+Xh7kns6r%a zgg;28Ghj*62EFi%^atA|ubn~ik~j-+8u|YI{u+t-Xi8C7Cf0Xkw<)Z99FEZYhWC0g zs6dozm<wG#shAWbQ=T|8lv1MY;h5W&22qjV`2*9(cu(NLx4+gm=Hu-VZxSOU7`b?P z!|)ZE$%3Xlhki`XKY+=C`8NURKMO~f{*v1V?<cyGkI&1Fm;*Jj*H#uaKH0=ZT1m0A zb0f9a-~Dn`w8$A!kOe?DtofCs9^W^I+ehtE2RC5n<y}8z`<e|rc!Qw{Pg>BOzcm?$ zwKkDUMY@xT(f}VEm5f4WqaoPJ!RIh|9k6h2(Gu?3@(?^MU0D7YPtjdk%64pd$Pl4< z0nMG7;xqL-3e|=PJD9$Lq?2V)tf(dFXsgzq8&bFbtzasJf+0`q+d(r2Ml!;O4r}41 zh_KZ$!_u~^|9O$OQmr8_kwU@9fSby8Z@S89L7KJFkq>oSbJlp|Q4jTCdXM7g9GtN+ zUr<Fe&V#))Ft8>km|&6Xj7&2wQrxysNKgaG%SV7H5qNJ{P`#O)oQxq>GFAxJ7B6#| z`24!o`6B!$|6g-3t;jSagrIM88by0~0s~5H>J6(g3J6tIe?Zpa&&Jk2WCjX*F46l~ zf`?LV@NgU68uPnq-N-@nI)$cBjU0+sUTpZYy!{TQ<yQ26|4tP&KXq%CIrUJqNX9!w zdWvIH*7=SO^H9N8QrAM*GxpQcGFq<vX851sQ6#qh^M<V21=Vd<rIe<eV{?ysc3fY2 z=2u)O$`$1HNMgJ_KY!YE?cd$TS{{Q<Y8NlDc+a&B%>*vZiICUV;aDfkq)Z*FPlZ;@ z66AKojbVB>jgXLP^;MTzjdoHWdlgJVuH1ubN*$!ztdV+Fe{-bR(3+rDjheycgmjP+ zy9dThUSsM58#*~r0B_#B`EhR)w%eU!9U`0p0&^eiI1mzogEH1~>4>iQE73;1CPq6T zL`)el2~|2N|L{?U6U}FPr}jWCLLZCIUT+%rNnkmjCZQR@%wp_TlJxS}tMB8zq3T1{ z?fqKugX#5!_Y(HRp;3_$^p8Vph*EXe<WbNY&CrR9#}``1mmHm9PZbs`91RE2FhKX3 zor0`FGQp$-Qk3ndL8TurqylY{`~cwMovvEE6co`BcvaITyJ77@CJK!{s3Gk9mD;iO zu7qY8MCs*IkoV?NNeUHtTirC?Nd(6RBi|-uwz0FblX&2GG1S;+Uv6(DON=R#^tjU! zB}4VmkugPeD#=gJj!Ng{sovPmxXTYNzSW5n;c&sLCktveXs<pjqm9mceZ=7S&dw5l z0VwsCM3Sf0*`0~e(Ya%C5S2CW@-3xJtrhDeBy!;mZl%;UHC?-<5|{#OGyFjEwg@UK zDCqX+BQ}@iJTY?90@=&n*0uuFs10PW4KLxjZYCwI)QPbhf^K~Ag2A6tSS0eYqa@_( zhTw<JA>^9$;>FaibJfz4k~Y{k)_7q}!chH;0ncWe;i<0BU4d)ku3oKxVp~p4P5sSt zznytKvSR!7^<${KhVEo$RuIV31(aKeNxxIDB^Y;Z-&is8=W^8Q3NwoobGD=HIbYdy z_u1B!ozF|+3r(?y1YcKHrsiB_sI{{OI^2~gp<M}7Rv555g^62C2F*O1+VD~kiI_U{ z^0yM45$e&F7ndLX^Jh-0j~1B?Y%s%{0ru_RFZHJj4d??N@l?yy)~#C)chWgSp9)+e zddJ^(xq$p>uS%_Gqv@y^7qkTj^m>kM7xjx%YBl0o&*H^qpFV!H(T)~0csI6pwWe65 zpwQ}F0p`d9{r$X|H!!gB?tbfs1!n2@+ToaGqg3tF*Eb#T?$o|j+xYS0m7R);lEc$> z^cg*7AscQ4uW%U=?$Xg$h2=hSt9v{0uOE9%9&g#U&2L0fg2+;M2O6=q3*XK*vI=(l zQvAk3UF3|!x&r1l<HefMU~ddO756OaMKT74NLKztQx*p;oA5)R-7Nz{E1o|ujT85K zCPj6B=-Hf_x3}s+c3Jlgqm?E6<J(<(HQ|3*Vf`4D>gTeYc3PD9t;R_t6SS+`=BEyM ze%7G3zWm6ntnC8L<>HUWvM)iIZ-+#Oq=Q*uXKHM0DbBNn0Bf4Ng7c_F?5InRP1bR| z4A!YVf9;KJC$BW57bQM8R*yKBH9){HdX@3Jv1+;^uQDWkF8}J1ahDLe?bzyEhz?N1 zE1_b!@!nCSRS<*{uC1#xs+my^l}zZvtWgrIp>hH(`7g`eoo@<@)s<dLW0p(FeX?Sm z-YUgpHYh-vSJxd-o-P6Q$6Kv7IJ8%ttFEUjSxOm6C~--bl`}d7)#*)|TCfY=KJ>9V z>4C0sjsr4_(3*SEc*+m(=M3wmtn~Az($^2wOG)50F7#9x00(cDv=9lLxpPSGI%0K5 z##v!6PUD>s@opdV??`^1#$6F(kND<@E#HqlTcj<EK1lz)ZZ!lGt46W3qY6k92Oip( z>nt=nDw^vmelYW51BbC9iEbk+1aCb0$WzI7UyQi30jnO2y!}Ys_OgnUN+7G3cVmhA zc<dEwsl(-A6)y`mOg80*4FV;Ah)Yg(4E}(oNnSmM88H&85LKtYyA$92wvu+BOJsV| zwEORAeD|5lR9{}KP;jO=J6{W;KMp^bOrpWk6~)8}tG3-9EiD_I!X%YI<+W?nKQ(l- z)g&huDd2$&gf|^E;mLJdd+;8stnI~*`XdOu|1Y}UJFe%p4FmpF8cInTG$f)lBqF6W zHKjc@kd%;0X;K=BhSd`7y(EP8pp?*1y3wN2LR&-XJuc6EzwhT=|J=`WfA0EreXs8| z&ht2r<2WHMA_8C7VCgL`bR2@_KrMX372wdM`ms)oWfV83#<p#8t4myHoIU6d>jXz? z{E3R9lwF)m+~(ntd<M=Ox$OYETVZW+`2PNNC{BiCZZCGP7zLGr=%-P&B#uZ92=DmV zsQiJHzT&6ay4Cu|h7AmSw-y^4`mWtq#o;Xe&-g<)RS^>m#1EJY1QnN*zUmo+D-O`~ z1?Yz$X<sLXdmM}eW)arWsqWwy?z;PIQ$^8x@df`{<zqiA`nqKLLimNL^r;XL6FngK z9z-XA+AF}ejihK{YI7+V=L1;4{%owqC(f=Bvtc=TiaLyoMpIK+J>41wqDG!-zZ=xs zT?l;!C=I1AuduQfW!_a`hdKyB0pQF2ON&xK@kLHjQ~P`4T4D~T@|mMnzd;>HPqTiz zu&<^{acmp|Fg%YW4-a~aXPmNIrmo{_6GH;{q!2K|(P&D*m20OZaX@GVft(a2=-S&J z#6NoE`9jTg_b!i}$4>8XQ_UU!Zr;Pw{Z#z?8t-PdpRc2C-=>C{0}LEc3{qVvyOI|N zH4brP1E>XFauBvyi$Lp3H)ZU*Y4{_S8^5cgb@*g79BQ=IwtBMPze>S|wy7g}ZOUem zAwo(6>xKmNP(`PK^`;ym7z&zb&D*!k(3I9;22<cwM1Vw;;uTf~ROEio(tsS=(!n7s z(t+!N%XBsKpwAV!)McBETdS$jfu0hGt$zZ`6Lk+ZSwST*bB>_~MjW1@m_^NZyPF1u z)LN3CNFAF#Rhg2Kz_-ik{_7`Vt9R~<B!C?yoOgBjrneza)<w^L|G0->cDTNYdK?Ld z$XmHvxT;P7?ImP?&{&GV1N;(mcpJZjEcZW8BXq5kc2UibiY^bmj+E><_SAlDasg5* z8p6ghzKbxQ6#7uHBle8Mgmd&mfvB6A7B2Zolo)_Cu17JNc!U8S4Pw#0N>FVB&DE^D zYrgk3AC0Mx=ofbt`S3bjYGkC^#&43xCWNKj?veSPl(a2_MwXUq5E~M{269SlfCDZ1 z!Tc5nW8o%&LKUeT;9Tnie2y|pMG#Av@AdCzd&aogYD0K*67xBKUlV@w_8wNQ@BaJ> z`CX^hBxeb^84bEl4QLXwAK)6Cxm)2%YLmi4ixM?4m6Y?Gpdb+r%FD~keXEj2Amo^P zOiR5hR7y&UKR#7IJnn1Wn`;~#d06K5ZU3$6o>Tf+EPVs32&2eoU_D7p!Sz*yp&sr5 z6vg!)FqgH{+WxiiB{)B@gJYoOz=9$<f<ZK3-n05uh(uOT&ie6dKcEHAjtZ3Ayqj&m zZ`@pq#}CHCcd4b$3cH=;7l)rFB9M9{J*~)}5Sh?H7L3A#DRII@kV0&d;KpE!tIOfz zql}j06-;DR1V52Fc=}JT-@-p9d3bvE5L1hjQ>F&gs)r^g|5>+A@y}v)=sI8FAjjgb zH+6}dGzx8m-3AhSEwRx6V7$+<t5ockhBE>mLRBZ#l|84{5W|HJ@aC?&FumP*n04jT zqix5|FwKn88ogBABh3YS$^Gt(o{Q|L3G?!L-nbcG=F(3WBW50eQUzi4nLRv4h4N{K zceVqGA;Ee88-y6$lZ6QvkzkgwOC;SWIB7?9<%+L^;;HTYA)gERt7Nh@V?FP(t-sO~ zYqNYdGt>7-cr-`E3kC~Q%m26l5B#r(g+UJDcMPyT7<VBR74qNSB@pjPRGgXktV;;D z2e2O@;-FS=6>i_e*cG=1m#kE(!`e*~w7Zp6y!tf?t>I&=`1{wWyspj`suQ+e<I^2^ zOZH<Q?-YJAqvFyk!3_sUkCe0V3e}MD;D|NM@LE4^3}P4(Sz91~gxW($)Wp(~+-1cn zrsK*0#~gFgR|&x5dnkfu(j)6gOUH+AtFL8j)75BCp^nyCh>#Nt?`=p@7*csxxp;kU z#^@#75Mw|hBBB>UFULu)_sq$P@XGL4194cr?$)p=_q+oBaZPV8zkPFJaAoB|f&dT$ z2ZvVW;fc^kgWsm;fBCJ@Zc_O6+tzKYe(Y-`Uq@Pqpu~;yaXj3wL#zge`acJ)YTvuJ z?oqE_NM@<DbMy;X-#tA2emk^KDp1y-Bu3mc0bQiKHic;mvcbcFYI%8?kf#8|fWJx# z4UqNay_e%6sfIM}9spD?hzkWytrMN!-tKztm(;76nzk@?d;9h!ItNF_Cud&8E^)-0 ztq~NYJad}t{PEfMvC{hWmtQ=6GO+$&M;7%q*BGSRsD%?r7WRL(VHOLquK@`Ztf^F( zbZXtugb*35D8%#1K%_zIODQN|h6@DYAp<bVl;IE3KJsnW*+KaHvDWrg7RBD?T+bXc zxaB{{$jDV5edbyCDouUq_m9uh-v886TOaT^L3BY#Y;bUgi!|;Y1|4M{GD4!W1kD&q zmi0)a15hc&NLq6Yg_O9}kjTSZFo0CYQ9nmcGTfHI1TXSX6u43VV_=jlWN9bJK>>pW zK@N)#53HCV#_jAyrYpo!Uq96uNMHU+$%fyd=YCbZ)R(o(v!j!V^j_=3u0*jfYiWJG zhH?5HE;3?l&u={6z;|HkTEeKg7aMJv`xqx_hJd;s&I=-_X6Bai2k})*T%7RGiQhV` zWAA*PD1gj~Sa;$8Q86-N$6OKrPb7HlfWg4kBW@yyGm&r!$6mP2C?Yy$C(p~%w4U8x znxWXCX6)-#W}6Rn*UhfVOUKUb%1Wo`CQf+o7r0WmFFS=w%JJpcar4_VYGHl=@QCp< z!YUl%5ceEemdpj3{-muw1jb<k$f60*2E2|KL*Z<LmX8j`9=AUCC}7!ubU}RJVK7BF zAz%`wXJ!)HRop6s3sF%~(N~tx^p|ZAhD(;PyR&Vo4kF2F$&nL%%+4{%)0|f*r0bbV znXvje*3o|rWRew&G&;Qk?(;>6>&9;t)JMm@s^a9Dj@5X1wBw}B`}YgJEat^092#QV zqPHo&y*GXBTl;6FgUa9_0c~<Y;{-4Suo3!!d{F#zjq`wfbCSP0+F7`kSXFJ@2ud73 zm=iGLQbU0s`e0;#H2y+7SU#T1OEO5XZ$jM(QQ;TB9T~5rVDbuQew>fgOiWBq&i7g; zT$N!pzH_(H^dIlyogj=bxlqb`3XaBh-regsv1n$()#Uxj&265S`C3rt56aD?6>qEi zcV4Vdo|%cAEso(V9I`10Ir^k;Xx{(+eO_|gfwMqVT7V_=iXY{_o4*c1SzEf|FPN-v zdb!fA4QM?a><-X3vY%{f>+B4v@vE|h4#vU3VKXit@aACt4XGCaaln}Y>~{-vG`s=K z%_tPq^1*9h0)YkhC^bUHmIAYTrwjo5=0f4^54%Db7=#lRIYOE2<&uI^64nzRB+W(d zYP{@x5xb53(4nPo^&2*G_QNiVdu%i{=d77&N3NXAt!`mE>9-ceo=u7Q?l-RHu*yKw z!;gUm0R<rU1>w_=h=Q&G8VVU3#4W@#77RC369EN*ZI(*#^m&>q;ASJhp$EehUnm8G zfmbyjY9WF6?_U7@5t0jJ*_x23F)iJ>!>GB1%D~X(!;6uTLg~>^Rk<3l3#-=$Je+a! zJ$-hKm3foT>}dJU%X?jN%<l+EJ@WpiVfe8r=M1!IU=k62GjR{hEgi@+xK?+9$l#E@ z)**kMgj6*>BST=vj@3}q5XuplEEI6Gn8GCy5z_!FBY+-^*|d0cxTPHYQBaEhl}|Q? zckV7X-6C>&M5Clny0B=V(2vMy7wP~?UmbeNWr&k3yc-!^FDrwuN~lhtiXKPwq$QID zWR6(1O@Grd$}`c~F(jBShFU4aQi{I5a`DpVAIwbmf~kwg5~4aPF_8dGMCIuWQdZ?n z%DM&_odrLbXsa-lfcR*&6&dtt5uid=8IYBg)%I=#Tpj4FAfMDfJtU}V49)-x0F64- zdv_tZ2312qci%wRP2Inh@a=eI<o7kwy}mTKqKFmHO%n-aqeB=CybTE*HRD0sd$emn z`JB*JJeTH++TLl0=C;8D?%6ZxNM4x$q!X#A{lh+Rovc`DCYhUHpkkX4aMt3_v*IYm z|D<X~iztU23QZ=0Rbpgw;oBSi#S&x<p-6RKynU-PGPGUQ7{Z7((Df42<>+V*$n=%c zemA~KMHt9|O^ms^f@_UP8IU0izt6hSa(vyE=P<w^eJ~)63f#Qf3&SKN;eX9VwG<Q} zHNo8kdR7hO+k`NLj1DqBmEnh>+yoB1B9G2Hh<@rI3<xI%hCou3_}u@Qyw6IzKCF)H zTF5yiVGdjKl~A$JJ*E$xIJSIj%MM~iK6o5j0a7Xj08WU)a8A;~qvMnDXsSQR%0bv5 zy8;?JI#9Ylh56rH!THsXFAK}bgqD;RL3ibz7x34`J0a7&ipvbv*;;cgo6`x1y2T%a zTxc<f?+83U!4u!o0!OWs7h6>A($mx7H?$t;xzV-YjSjbE1;$MupVA?M4peGE@*xtK zb^QDiZf2^%qzH7oyW|2rD*nXs4VO0BNSJQiw{6Qn8b0s~WOW(agWh8}2j4&sg4rf} z1M~&7_Sx*Fp?Zisfen@lDZqH(0;q&*3x=D)EZ110*Mpo7f&!7gh(sroXS~kBeE<j7 z7cgc8xt{^leYAOC;^WkpB+&3GT+DF!e@Rv*@>(e0R-=;0E-R*NbOcpbU|}H$4NqV{ zDu+yS#-|_ASZMggE(6PGQjP-E{R`F&R+JF~;%s3ebRlY7qKbt~9l++3IeGy*ye4X$ zt5DF-d=w@{Ci-<V_z9S361?C_2DeR|yqO-}EMQkX=>q@;YYKEqWIemx)mJu3KpKw# zpO_Q-PS$ZLhZt_hXc}IfZcAVNE>S)Vch7O+Obb>8ZhT}x4B<$!*wH(J7WpyZw%p#P z4Ia=c!mP(f%kc8_1f7=w^))WpsI{q@qd~sB&{2BA8X4sn%vd0llRK@;h4Il8$pWw^ z;S>^!$@xiJxXj@Wq=}E8(ce07iBNJeYfwXLi|-ptCy$E9XWary5<*5blrxCL4DGb= zD9X%9)zJIM`fH#h#K^Fe$=m=`-{NM5Oa&KV8Y0&?*dMi|MDget2o1b%FF49Y=-McD z5XTV0CIzB_S&t&`IM4@S0CIkMP-U=^=<)qQNWd2saQuR^OAS1AMCGdp2mi%_u#{%P zP2IGV6e?^2qWgt@5Tpr0@4=i2uftdL-Hs;^#Ui*0(3#YNt3uXRF)A5BI8lj>!QVaq z#aD`afg#Dgdk_6Dy19X}KwILLXtEZ3Q*q-G2nQzD<YWuPME`Xc#pz>V4wF|bD>@YS zQdAaBk})->p%n;R6v=@>Xgdglpsz*}ty+V#Y+yYy{%RaJ_y&Kq_*fx`I2g%G4#M0K zJsiY|nHV8v^1TyE!zXBXMO-n~uMfnfjN3Ti7kf@0dD7N~U(54TO%kn7P8$-LB95A3 zoL{LiU0q#7eTylx9@aZZW?uDR{JwM7QERq^*#yDB5XA(8j)L{WNKWoSFeR@el!big zay5Vt(mD%aqs{O`27T>V37dMHl11<w`zt1hv?L3EK;>yx1L}5!L+LisMvI@~loi`z zj|FDH0$%PFEIMKzk3agphd;>oDl#4L0&8KpNZ@8!-jWpZZl>UVy8KymCqiX-FhG0> z)iDnKEkZNwhZ=l9jl?=Wh75(gDZCy6G24G9>m1e*q+xVW32ku`c2&RAzWSB~j$x8b z5oRAIYZod)$P8EWao(aq+OmTb)PVs860=&OJOy!?M8jmY7GpAqt1pc2NW-6&FAaQT z+LllHTnF!GBMQt!6ACjvf=X=1!@NRBXA!6+Nl_7t1}AI~%e9+~U*Mt_5EH{mRCFmS z`WvvYLQjx22#(B#{mz?7B^V3#Z>I^)1y#(}6eB`uqSZrjhLB;AJ;+}CPDW+KKs*}} z3`_ueNkdQrLXsYq7%Q<}pd&<L)asW|f*A&(<F5qPY+yZ3o(4aVF^F;$xK%$cGKiMc zKwiMmZ!-3yN68`VePTO~@$LURzD90FDDB8^fGx_v$F`sm6?9We_vxHEjFelm^|!u! z`SKXJy4a{1!H*E2kpvN$aGsQCQ!Ca2dmdmh(xw8U9!a~`>;!UykuQGyb&hM-YRo+D zE28csDKluU1S90$2OtFRD2y=F?1{s=Okg9ZbEmw}=O$zNYMf(0i`76-EQIC6ogEf= zI>Qe&WblR}1vr=?I#@&W!8k#1wNU*%7Ph3<Vk()f%RPZ{>*57v$-`XX>_fbh@oB|T zYt`|&o=v5ttdX(x^KW7SO6;=G?&p7)(@n-5AkV^9M-(L^Jz%XVFV?LhYe5FFW(ck{ z0-AtRN<Jon=3thvs4KTw4RWB&BMVpoDqYgu4R=)vFqOYEHi+yQJce3W%nj?UQo%~q zPc)rl_kz(aDXFou3%Z#N@L@|w*CUjG4CN|T<EP(&tlQ?{RN?|!3egf8=Ne(xD3SS& z%EN_8lylfTlZZ**CvFi5#UQ>Azd)SEp!B^22ZNyQf62_80vz$GTWaty;)G6ewqfU0 zWXI?qgn<|FnuevvU#2!p;9+cp9kYN!ce*mkK5?rNsV|8E;0y_l0T=F6k#bxUeK-|} zJS~XjkR3S^f{3vTT%lmJKs>3D8LXETq{c+ke#2>wbOPEUqH+4GrxsKe2}V_#NM}K{ z``fqROEx?CTDu5=l%S+&Mn$AW0N!Aei32p68)K?%eEpg*wI{&!Api{`K1CFT@EvYy z5z802MZ!(JtR*Fzmplw1fg8DnF(rKn97tY@RxCj*d2I*+jf7ExRmVw8yd%I=IR>(R z^kro+f!Da!Xu%%LKl+RX*(~<mZ4wOCV$p8Euj>_B%Y$nOE-g>EWXg+NH+(ye0Lbe@ zLg-0<J;(sDW0FxQC*MD#c0*uT7!zoON-y|(1Gnd_-%^hAR{)F+sDk`K5F|Zdz#qet zjPNAKaVQ>#LAtmM;VB7#h)x-u4Y!i*B8!0ix%aFHLJ&HTVX$3JlM~?!>>B<*<3<r? zE#**)-+(yCx`Kr(F`C3FH#4CUN&&b-AUy1t6c7yYmYn1*b8G&eu_I{R!7O>TKu@zX z{$Ii4a7_p+6@=f6WFr@y2*%7albIjQ2GI?9JG#V#0X$DZvV<grOE#Y|;x=n4w2CD( zP+QF}E}j4_35w>l)enOhNPmWZ&@U0pXMJE{cs)__dL4wp1O+#dsUc59{eo3CoiPm0 zF@dn1*iR$>AxA7eH@hsBmORc_LZd<`&o0Ye{CCgE6IC_N`|Y}kYf#@IxeF0KJ`~|4 zQ-pJzI0@hw3V>>r^cnjf?z+xkgb!B=sjPuv0{BVXZNK9+e8g05Tn@YkeK!!k2M%gy zG>pR+)EkaedVZU2vvh0~nB=v}iXww6F-grUd=xh~%E!Q~kt}){jCyHw$%V};4=AX1 zW5}wY!2skTDM9f4EQ8;A3tSvjH~4Av^|d7Yw%DVld2ye_(2}peq~ew@b}SU*yeTe< zQQ^C$Vl`%%@q5~~hJYy}hH4=J4vUM6UHu{%>#;gfZhM8WwyA5N2+}L85t31ZuZRLB z>YVyWswu=51Z8g|r^n#9feRE)E27h{HYcfweM@RCms|GoE#4HPLHS7IY{Y)^?!u#; zAKJbq8CqE>>fWfzR#J3AVT=k3o*;5a1W5dXyO7<ZHg$`l;8(~|E?ZHSN{_8+X&-Rk zQ$03nI_9wVGnY<a>rXKbep^LHk%{jcZ^qE2XHA=0a2GbXy3W677;0<#${)nN7sFZ3 zH4O19FkS1=9%>pn$a3#E_BwGMgQXq5Ji?r*1s9WjuEHz#WMp>bT5xP1*OnTvTpn0& zXFnY@xo}}wOY=+No5Pn4@5s0NGSbj2@7_mu_%LfsLd0=vYlZ`txFgEkZuK_nX?l5k zp8$|XB778KaGUz$jQxV;2<Tk-;>BO;{DvSDK_=?Z^<0wJxnT#U;@TseCH$*)-fEFR zv!$uWakpv|!chDO<64To*TlaoEUecjPVU+&j|&%CTdOG@QVP3nW?1aC?j0SY0i~qa zadPqb#dFKKHc6dL78b5cN}~H<&yULs{)s0VZVHfN88WUP_@|5H%{T_ZZIfq|FP=-! zn3P?-;H~2B=E)~sHXa{0QOL|q(TUHtaOFO%sd32Aa?Q&+s<r%6VRDk|AVD5HR8Y7w zRnyWCY6=pK#L>sIvtDPkW=AEC%DcPUm>3;8B=LCa>xt#LF3aVbTgB-^0~2fSe7_>S zHSpP2%2HPZH<ivk>bLP!&_KPOU<S_!p$e%+61OB0IK}hlx@iXQ@H03P99-R9wlq7u zj+MWe-;uIRF(~Y5GX3#M;tm51jdlH_bUp2`*ge%v#=mwMnKk$v#upboaIeZ*)9Jc( zdEZ)9Z}0NMN1s5?NOxF=N<}4OMXOy002S%tiE!(0Yb2O4Bc&tUAmjs4+nE80Dgw48 zJ#onb=H^xgj*GlqWp>5l5cm&N6eO7q@7}5X3v?mag;@--(gxaekeJg)Yw72ii2n<B z5qS&ByqYSb2SZeAc_?4|z0z)ckB<4}Ds`pu;ELFXf+hui_tA+((+`0Hzb!{cr&Pao z^ss!iXZO4m6kzs7;qk)4(zY?3#-@Jv3*NH2zPopO{@HxS4Xc`&k(p=8G)--3`tx(i zZ9?OJok8NIR)c9pifYKNn=W6_Tn${jtMYAO7&;yKYGjmm);0{=rRqJ~srUF>lQlC< zV5fT0@W|wESIx$z-BB9zNr$#rtN&FYN=%#H;mL`LJ$+|8ZpHHZIyzqFOr5MsnxUVX z-VRzl@%TxZ8=t0MmlI{`q;qeI>Bz5^&WB%`cFNhE2=`-v`|*OFn2%zN#yow24o~vA zqkUl#6U{$9&!74v1#T4&@o7L>oVyg)afnvT@5$L6Co{4?ZRlUEZp7|9#;Ln6!yvJt z*kN+2BY)#cg@}s&x~j&5-ZQ(`c`wDi>d0PK)q3~tWbD~E(`{S`<%!S>rm)DK39bs< z8eB*7MaNH1a%$h%AV)(O5BmXj@HI&5CCKtuAzC3hBXOJsgmPR%bKtkUPrX8ji_21U zTtlIcmDS}R(hk*Q-E_?Jd6zGB%&%eRq;70nI=+9$wa&NrKWFsU`R%{_Sn0~u*^2GR z7=c(5syoTJ(93DH#iN(vdpQ`^(mVAGG^$%~(iO9K>U)>+#Gz*WTDz_>C=nOxUsdI& z^?&u8I&q8wwZ?cwciHqRb1&i5`r0loif&SV-Brz1ovE~bp=Y||{ft8xagOp|{XMrZ z_S34bj%n$3T&NkPs=#vfAM1+wkl1pgnkIfaI>n)PODP>)_g`0~2MNV@KA7YIC&4dy z<eys#ym9eUo5YO`^s3kQAAM%MUE4U1+NzWSz2T`j$2_NP6DR@`5gQ6N#HIZ4skg)} z2lmc{_zzA>Kt1uZSVc=q8X?2*;aE6v{)m%0%?1+9VR=D{-}Caz2{!MGipo8d)I$_3 zUvI*O9!S!4KdW&|%j?9pGexoT`GC_op?yp?6k4v%?FuoDez_qKfF1F-KYuP_>-$Wq zl$0f)<Vl^ae6kaTIEX&%)i<c^kLqYe@n_%(G>Pg&lPFl1DyVu6#8k@?YRl4>M|V1Y z7~lvfk!dO5sp=CAKry76V_l7?Pfpac+eeSm*j(OmSi4drd8*KNFzFVR<#Wm^`su`U zwTStMFHI5)NgbL;SjH<#yg5RzeIefX(EiP<M2K|X9~1*C8n6vQ1%DLH@TzM77!d~; zyCGX*GYgynje;lv0Rg1w_9lKW)4O-?fZ{~9eAyA3|1%<dVC^98*{g{cfB66Uv7mD5 z(2*8Md)|BX)A@B*G~Hn{ztmp9qg!b-V__m(w1Hu*`jaI7+b3)#v)#}1w6r}II<IP& zHKr`~jahx&y6VBE@}fLDZOp;Qix9fk{M!UX3LdiV_e)d=lDquoRU}$N%#7AO?zsNo z;mv1D)}=F3HFd8UA3htBzH&YCb(L$(O2UEa6qP0WeNyNTK)X0M)PGeppv&^I)yi*) zst5P>(Oz9U)M!l09da3dX~e7!O$>veYbOpT@V7BC4*s&AA77se&}tpAxP%Ei5GcTO zexHIY-6v;uu(DBGmN)p=M}&K}ojqQ2Cz8=E;j&aw+}b^iO#N%~@7^tU8hszqX*}A( zv{JHrx4-QxPrmK9CK72-i0;>4cf05|TaUxcc$M73hYnggmQ{3XW9D|*XhHNgJyhLz zr~2dLC7Rwc>6SwN^Ika&T=Q8CZwFuKA4&My{Q@PKkk-OVgTfD2r;?}qj@k*YjCCSA z_hf6Uln0q>d?dGFtsKg@XZ}pt9o%u@CBx-{yvb%?NPh4FB*h)>EaWHsZ(u9Q!1uu( znm34mxF8syLDc|=T1^Ky860+}oy^mkF_6;yqp@?<7Uq+SSIZ+L54KN@8uy&J7hQMf z$>l$uX#w%#T)&laa;m?)SmKu4MY+1>%Qe$On|9y7yZXM&i?NZ^Es1BD`F9q6@r(+} zj%qhrW_4YbJ3qT=|IKIqCId`Mh7Fr6q0)VETP?!iH$5V?<w4`t*DE82;0Db3y8U3> zzkfn7eYd72imdl~yCNd4>@b`kSB?NEKwJ#Ze8~UXAp#w}8B4OzvbvVQWyfF8NuB+N zm0+-c6V<Wzc6O6Jr#`Bf%>68PNjqa&$xpL`zut3gW66bbrw^@E-@kj>-g?B@s23GL z-E-j5(*7!G^iRKY<9Zv#WYeKTavNp5qjaBmIQKEzCB-@zu%)uOy82fwf3>nvQv>s+ zeD<gne{R$^1OQri>&H`*{R`td-Fgdt-0l)9savXh`573$s@%>zGFT8AZSE-Y&_{ZF zcJvcRoXj1+?M9X`+b1<rSOg%DLF&6Os3pT;1i}KTXP}l!3>-lkSJ_(^&SM%5vdhZl zg9BPN{PT-vdL|6@zjdzOAsQy+UQ<&pZCq>p`ado}m5oA=S$bq%0rZ1B*96(Xoli6~ zo@oB%bFI!-_|umcawYc<Cd~cg$E~Hjs&2#ih3V=3kLhV!&tJ)TgEgn2J0#DrvfT9Q zB#b^xh4kHxmZwr82UjKp`hL7!uO}pQ`ObrUl^;EWAH@6oR{HxV?cenEzcp?L>O|~4 zNPvL;qKFfb*=Br#Ne#i3@u9vT-9}(o)FMz}W4+1GU)CjHZHcRMUj!G&x#624!XjU1 zr+WRSdw)-SDWA3EyWP=cd2Hy&L8JB$F}+ErjcT<~KC_S2j-4O3pBm8JVT!@uNqonz z{Ih4UJ32Bl+Nn{i#Akx?Pf_67^BbjEHtaj>&i_4oX;9bd^-7W-Je220PrZBhq}|T^ zdf1f;AFnWoF{`^uL}rs4HjqBA1d@R18|g9{eR1Pw7~|Li{@2jeeFeaR2B~?9inp|R z+S+QL`}8d7YW#K>vC7>@-Y;_{r{B+8@)*y8)#t>Ql>Fz%Gv7wfDJRnh6Tcr^p?c`h z`szWKhGyvI)U+#a?|G$^Jf9f+5sIK?NdO(oDph+tdULGjWTUITX1gwEXH-A1svdcd zK25pz1aso!HXQ3$s~ovkR;Cp$A+cje4GQdVSqUVCWqAJ&-&_@o{un5;6NfM~X$f+C zyT0+ws;B3NME|VW^d_XkD08sV_|V0D=gk;af2p|lJ~QXYAF=h^uXz{_xb@B1kN%l| z$R*)#<2T6c@8smGs=T1bmg=S+IpNY*;Y0J-K2QBwx@@V(TG*E=42WCh%KjG7TM!M& zjjmFqUYcU+?R(P^EitS4di>*_W3!IdiK3=cjVaXelC}hVBjL+21n2?vsaoKt5WgWP z=t!p(aFJPM1ruL7eOiSm&E&`Hr^A6F*TYv`UP<sv?CzSk*2~?zKW=T!qvFBUY_qqc zlg!qf?S4HpT~bOt`1`vdTdL9W@{)ktC#i$0LWE;9RxK^<@$)x-dU)QBGiNDU+xT^o zWY2AW4q8u7qeyvcb^#%Jv&#ExZ%xdw=LfqY10*#9=#eBHS~e@4(6fVMD+>z?1eEHq znc!aik>WhcK7Q$Y_q}G0G&TN?TlbjGeyo*Nbi4S?=h$l89*OypJg<aW@7#E`A?YPQ z?;0_4gT&)!qk@FrCd&IBx^lj1@Xn2EuIwCCXF8`6oaE(#d{{H4xUPysVI@w5q$FMb zI<44{<uge=KdD|RHJxj$m9*9M|0b-|l7A+<?wTrr`XM@Vfer8ReGXmEZs;oVABa&f zYHLyNFf^c^U!3x?G0dDuaa9hD7@WOUA%7##SGL~zS7^S)Y|58!H5R}JH)$~zOv!pg zDg<4g<CFInx%YHmuhhslo#oB*9j33(Gp9{)MYas`ud6wF)zb2y{YI57X?ab4H$qsb z78ZPaZrlc<Pz{4pV%37`VDv?6ccTJ}y`Y{FE9Pv23`TEJpONo=%MeU@rZp!kMfqoo zFf%7>b1j$jRNNac?|G8rYRh_Up0!z`lJf0M%9+6nryVHWrIRmr3I>h4oBRskbHUVE z_{#CK?RFFHwK9B%ayAhH6Cpih&%moBek{NH|B+laiCtIS0*r)6s?cCp5y!vYVAY3L zuu~(q#RSb6zovcTxyy;y{0F_7h2FP)^<jZSLhSPQ_v&685%IBA|ECCYD$Qt_|7OD5 z5a!wMtHXJBbgGy}xvmKAb)+B%UHt%2+gs*nVw?Ma$uxNxGlw6EiHIn}H4e1kRREl% z99k&xE9YuWdmb&ZqYir&?K$CDwHkm*d#<te&mqq&QPX+BnZ`Q{qo#~{`Um|2I^XU- z_qo!NxzOrBvbB6&!k7-UoWV?&q2**Y8lCuPqOsuUNSz=%*~)+S?)Vx1Fq*B`4Gn7l zsSOSnKUyDWBr^9xX#4g@s6!FeqluYW13;@<$bjB~nX}P0d;vY3L4$aNggj=<6S(u6 zrlzpLfq`B18_Ga6*&``=oM-~jOU;gA2HKK2?6+*gC5z17zzzE?ddJv&lLY*2hO^Ne zw-)}>HPtE2@mpabYd7-9#}_@e=eV#Wo#VBzr``++<WVr)-gk7^K`GgNW;|<Z#b06h z*xC9u^;6S>-v3-T_?h&!DXfT=X@2N%4MYHDkl23&t#-g0l2kh_Eygpb>7%2C5WsF* zAfIOujAsn$Cq7!@g=uR(5QVegyfDfvAKkrY<2|WsMF|HuE?&PrwP2W2dN(P&Xm*Ul zz&>W=*SUIL-VMLUhwccu&z}`7_iawFJv*R*1~%ejd`ehxZNW_85!`iV$^ptO3Mkb- z^<9|itmIm^t_EEOv{sz#?M)wqEurFc7H60kBxN%`APEuCW4NUC4k+LfsE$E!rZeIL zu;}r#XZCQ4@)Uh4bK%=VK!B(0?O%Z`3c2mZGoPM}s8^`}y!idt*+sW{MkWpqmW_KQ z{OUL0TCwdcw6Ul3ly2OuHfWOxp(~LRcp3Z*F`09Xz4ub}av;-MXghl!!td^sgF^%Q zkz3x#Yj_l;m61<`6Ck2zj3Wff2PStGb@9SW<5qS%B;ah$L%snJEzH!JeP@rI{dPF` za%IP#>8wZYdu+o82X^hVW3=^K&iQA$As_U9U4<P3ExAh{O)M5-qIP{7eI57A!+e~f zEy`wv$*ZX*(7(92wthcyOm?V9yngtA@=~Zn-Hw)iYBE<7i6b_s?21?-RKy~gw2&oT zjVS)`Y9h-Y(kYnR3>Nn{<0k<+`u^~Q`3d&+D+H&lxyGUdBO!K)FwrNIRUbKM+o+<< zPNr(7-(4UPgkWs9tRS+o8~gW_%;$d^{<Mr*|8#x-Typ%I!ez_lSC?NT`7K{V$xYej zoe#J0BQXhd8wDgnI8udtXW*3pw{20JE?QM{4<1EvA>SdWC}4QQhDmLC@0X_g<0Vy6 zrYqb3H%rwa7DwV=3gu>HiT<+GO``5BY`T=4A1>neG}@$+n;S&Zr3-fx{=9pJOH=p; z|8$sd^~y7kUKf4Kv6X5CcG?}Op$wKhA}4NShhD!XU9_t32aoof2>rDB4QZz{J@;}- zsa3SHM@Sbfg-hQ0$7h^6CUncMoyOiFR_Wh=F8rB%F2*4I`rW&qQ{^^=Ug9kMZ?5dw zbAPD4(pzB`oSGu1Zdvs11v!Blg(lMX{vk*hODF>F*H@w%L&6((z+)#2@T?sPBMmy) z8(+3%W?(VyK%e&?2CquW%F+O8+b#b3HS(SwJS}_(^~p-qRgYn&2!#(de_AY2-<ei* zz|TGpY-ipzUi;u6yiP;2_T}`7m-BLL|JOsMk(=z#?~e8D%!{?5bLvU2HrN8X^>eVS zP|!+!c7c0~MDao!4kv?GPeG2+%3z~s;T7&NwYDA&15cGm`%v!~`O}qgUv9Ohr^Y_2 zpb|Mhwck!3Mmxed1({i5e#w6M;+7zkcq4aru>I%cg|Q)ZTh*O5JLf+025Af~c~#fZ zPE57^&f(+by-v@A_VX`Lu!of_aW*AzHMqwHuejLRiSeEpv?WiSx~~Jbw1wMIUGEB% zF2Kj<3<AZ+P`hyo+61ZO@?gFTVLT!tWMA>Y@*#$zq>V*+`L4@Le_NY@jf5EyY^^u| zT<2!=w(h-$<yMlohWu8`$e`hi)CTJtZ?^T$=Gv;qvrT>4d-~nlK9twNF?>JPd@QuQ z9Jm@KS5BmHc2aQ}27)o4R!&-v8WQ#hFYlUS3-QK<lvYYgO8b;pYx??cQ%f6X%Qhxo zQ(gL#u~vDfRqEXmvDu?*_WhlYGqx&*?`=wrmgi<aQ-yOJEsX*~s;<sN`3i!KSPz;* zY^H?5qp!%b7yL$5?9n>l-odO=tfz6bQTy+ocwSYCKGUE%zu8l`k(XBtWgIi7s$sA) zR>R=n>vAL#<1GRLN(=(3kfaggTRjLYvF_?tvUb1H*diK6mu6M9vwQCw;T0xEMv?FL z^6M6CYJYroTYe%{k@Sgo%4+=Jl3pm^0l@=*z~z3aEm4s^H?5Tr3(^uB%8PancsMz? zQ$lwbW=8#QCY+rgQZ|FKH*?uZV3qtC&<!3730&}84qxof=UAt-a5q7`dvA}AF6`k2 zWr~XwKGQY#GV?gF-FoDCIP_%O`zzkFYrHj^7`H59Yt#bjr@++Y3JOOw6tWj^M1vC% zb1ge5-6T)a{v9tiOjg(BR<r=q%Q323x7Z|6wFYiJ*+wEK(FzK<02mw_Oj1|u>>_We z{`l0cvt8b*^h})jvH}yn`Q5ulJfbyEvIZrKeLKra-A6ojf-T5SC<2eBW7C_<^BtD1 zKiymV_H9A?ve2|a61QBU>s}cd^YI}%N_u8n)|IIoK|`OvZ<kRaox#nuWmSa!uJ$Lb zyB^qo?pydB<>3}A8v0P=byM1v9JOqK6rhw6TL|2s$tHRFV;fKZL03J(?3tgRkNSP- zhsq>SEl}t(J*!X)fI2owc0PCatKsNi+GF<ga+}Jxt=`kLV*h1HLO>xYfLB!X^t+XS zaPi*ROcQa<S3$zjTA&4LUtH$WzgvD5in4acy>Rn9W_Tj`B6y*csMiw7U(4I+f0Pt= zemD@U>?3gcT_Jt_uceKHW#-xkJj;?5<EObesU7zoJ0tpbA+P#o^V6ECXC~r(t!b`R zb>adBIfm+OpGtCxnFTK|Z%e-U9(X&a0LIq+)Bg|-GI$SCQ|H)pXJOv{l55d6N_1%r z^Wts8ob2Ap$B*4Qccm>Au6eh@2JxkW>%v0Y{T14cwv}UtOk&atju5M}(x`$=iR9g0 zAEA+<NJSQ=KY3N$q|0fP7!zw8z4$z%);KqKTXDfVwHV!P8~dm2-NsLe=LBl;@G!!G zG+oAzW5eRdeHzQB>{`=z4fbtT6`36!i4To93>FW}c(2pPJp;KIQ2*ejvI|2;7zB2~ zW5VEfVA2Mun7BCbikOhuYu$0Uq@|tq&1^>?>z>Ay*I$<;ls>;af0A~~<F|9+YcvB{ z;Yb1!hUWif`aUjBSicd0n!#_JV}B{kXFon_zr17G;4`!Kqs^+HnVTB0S{`3oPG{xQ z5pUFW6K%_rbr1i^#~j!5*lNedjT{#*^<%UJN8hiJW9ztjN<Q&p)=6focm3JRjTZP; zR1s>1OXG<7PC!{hobV{4{GJ8(KiYvxadl;Ru1XkYU*PUNJW<C;?q#UzYH>Dd^YMT% z4a1t64-EIDo1VK}i>JT0FZw6<shcYnpDd!5vX;c|uWXY#t1(pNqB5TK&DXE?MTk+; z_8Kua3%&yvUxJW6b1+e9wA>8|7}OS|Ho_o4(X+<&POP5A->X}_E|-IR0OS;tQ}Syn zT%0L#@~2IdS5HpcZ?<o4YcKJ>|Ft}vQ(VwXou*^#<AW&RU_#VsC)(Bo+iww42URd= z|0Rp@EHFAbVY>d5vKh4}QFv}2f@3J;N>3=8aflNsQ4p&#Q9)sqg#r`{1#y8;J|qER zfc|9UTZwuz)F2`-&bKL-kdw0{Bw32xK4>a#B_>+?o>fx1l5JX;2$@%QkDrO=oA_-n zbrm#ynAbP^6(I8s#h+lL)S`n2&O0@bA7W&$PFL}UaWNG+r&#MYE?7r)mz@r_E4Fx~ zjsCfz+<P5~c539u{j0CFBh<EL>L%@kBfKy`yPa580%#9(WB14{SqWH6?LaF}dChlL zXUDAtdc4#hb+j!k?75jQw)lA?+m;{h0fE7u(>elCS`~>;OXWW|N5yOHNwBK4?D1IZ z!n!5nP*~9Xl(t2w^(lDUpc}-~+VMiml1FczI7JuRHF2V6#Z4}q_~YG`;x8W_=a6Sz ztXnwmyC!<2re-EYO2+)tm|URwP??4J%k~`QrNz8~*wOB?XQVm$K&MxH?m&iChWF^q zbAxY#_}oNM_7D023JyucB#6HRxA1J2@DKOIKyw8@1M?Dt(8>O7Oxwc-zcEgZ`!N-r zPkPdsv&!(&Q_*e0p(2o)HvQg7FL3*MSXzLF^TVzkUfXdq_IQtpqv=J)(4rrz%4~!z zg%@GVIDA8jTj10i))Vh|Us&Fl?tQ*t_lmKIz`=RNP~*JxDie-4x5|(p21(!Ntdo<s zZ5%=J0b4B9^Pr#Y$$YPcMxmro1V2%^-O+D)DvZkbxP<-`&s3XDAKvFNZm><?A^Z3P z&_`L<Z)Xsw`LuuW<fFN3$^tKkTXm1Vx)#XV_-9e{(CoHSiH&*ae<6v4VjU-^Nlt%S zT3Q|07+UUccRM1=NZGc#&AD@6NqW=OcPnY?If^G6e*d72J6Sn2sDJa>*}F<RvkY=n zQNyi6^3UvA!DV;WYa^T$a6-NWJw>8%p-C?<XLez_dA8@Rnn-<&{iDV=>?fv93Vdsp z?%KO&caZ0pxWK;i`?~hp+|=w5$}=?-)u>Zy5nvM7bi?s@TSGJb@-%-u%g=k~)A<}S zgb=C$mYdvj1FGntd-v|i8P3ZW9`Nv&x!~`&!ZTmBvZu>kW+ft!cR^wm>jn*)tXQ$u zx0lYR9~S9_pI_hCLr`ThKNTJT7){t@$l3EfTe6FG$CUHJupYfsBSBQ*cG5fRExXH> zuJ0$yn|M36am#AYsl%MKv@;LhG*WTy%y*VG)#TkzSz12u@R(9vU{*wEW0#QW1HHRL zkDDoeE7v1s-zbHG4??lIMC&%X%6IBotN4jizfPPOrtQpRo~Yw`VwND_vfQNoZb?^% zHdBYD)Sc$wQp?0#qKvH9?SPwwmDHsd_YP<DdiFCDeh1;iSkXLqdiFXIRzo4Em6$9p z!Wbui@08i%jG+Zrz(%29>iM4sHt%FHd!q5_v{%#CRU9#QZVOX(>t$Ru*FHjb>fI_? zx8&Wrbu82D6<7PdC>4WaRo#}MsDG<#NAAH*a>?8i^$}NYD8yv3HY`Z+mrR2ymAjge zg>K*3UEhn}wgxj*7gkZLgmBAIsQl4^{cj^D^~fNtjNS9II)?y7kzEdZE}cY^t-897 zv?Z7BC9b?O%-p^8PLyhJ$H2*4;oWW&>XzOh-GfwO;yHT-C7LHr?-DXMuU=YsV)E(b zwPv|45xD5+EgDHaFQxwR36wOd&IkGh&r9C^ICr+T)_-N0%c0|X07d4^i~TFi&1O@* z-F(0=(22~Vpu*~a(>kwpTstYfersobGME2;Af`!3x1xpR0g#ysppzI4-I`s6PLkfv zu#fwf16>8W`Q5!tYwGKQEjH`kr?Bv6x?kazx+x@{pFce`^5^@2DphD%neXYMV%k!- zln3TtzW5hPJWH$yopEzCW}}XiF5E5JqtLhc<xNXV3O|3}uzp{QfQ6WPS)1s4{$g%e zfgS6X?Mqro=XSOo=6bVmenWlSicY-V^7(%hyQgJ6zBzd{+pb(54d^J7o>>0<h|UEd z7`g??S1vD}K~G&$+?(Qf67dH2-^8agg((oj{R2@gR9pi(Hv?%VUK6WMR(4femQPP< z^9u%bOx-h$s6|bw{r=F-d|&OmEYmkE?2$|H@yX?ta}A<4<>&9$h|LMTPW|m&M$wJO z_NLF37uRo^h+~xzj;_AW!R~_ETKI+<{b!Y`hp6&QsEUfJ(>0;sbj`{Zd*?T@!Drc~ zMA>SJdtZ9xsO6sDZZ|ejRsB)xS5&(}2allxhw6x5D@G}R_CqN7hS=_vcu2@t|Lcoc zi>*g&Y)kGKS!ggkyeQ7GPyI%w37b>hZeD?5nV#pjDih`Iir9whK*a3{hJ;4{{L<3E zkz11oyx8XbR@P4Z%5;g1F7)lYGV*9$KzwLmK=#vb6?5U!SEM)=7OFFK+V77J9+G%| zm3i=paozrv*`}zel`kss9Xn(;Zcy0d`D1U1;mP}O7>$w0I{3*jQ_o}d*7eXX!PtrL z&kkJtt_ZK<fg`uYh<T;&!eA_MT!rz?+7Nq>7dO?_=!$P&z1ntI!}gUy%{9%jDZA0g z#R-9ythH|q9NsATC{Y<-<~^V`jy{`LEQ$w?L{Bz0rf5}759KJkw`UKX`!cjy^`g1? zj58g*Vejm--pp?&Ok_kj4t+WLlmf2Bz4O#7i?Ji^&MwQQ5jo$gEOhz<pPoxIFRQ<i zwex8Bsiu#QX!m>GJS813%i(-6=72HBbx1)VrYEdhG0W$ypf%_0>wdiHpl|3}bfQK( z-r8rqm%|Dx7hg-&H^_M^j(3lBj#T`v=P_D+lJT@OhqB(8m3IkJN{S&YQZY?YJr~xk zYiDk+4PgAI!h2GlTCWEKRXl%=*>`4LguCx$-k=Q;Jkr^Br#^^}#_sps-`OIkqeM0P zxvMC!RJvkW_K$$%)18#)x`h?rH``XmyHa*;X>C=kx*Rp$;eNd#bqlv>vAd|du2hP` zA{4$vX9|h(8Zci;1LPmp-)}t9)XVE27N3YISfr(;iM|*-)~EyK&Er#c$L5^+MvX;y z*K$MCThncuw?*QHMf|Uy86OL=Ka1}kE{@)H;GVbG{ryUQcV0#Ay*8^Vc;N^4!^`sS zUO#)2M3%q*u$eiFmq-vb^?!RW$GI(kqn&GWqFPnU-5NnbJ?YFlLOI{cY!u=jytia@ zy1$}pAGuKYL-bFl4ZGg#PaU1l4<5K?z1cN2<**CA7G`FFA!lvh@6&~dlU$=gAt9tk z66ERm?X@Q|l^L#}`q57q4#?U`zO#ysj@wB<IR~4|=NHBPT}#=A-lXlt4jr!r1CD)M ztrYwo12_|@rcza<6zK1_r1G<UME#_o&PCVh?ZquDJZecDSDqT5dBq}f&uvt-z{0rs zD2sCVhwid=zAs%exzQsZ?>rryH!u<&uH)p^dOI{bX83mQOyOPYw;pyb%VS2dOA=zM zBKfo8KZdVK_VE~1IQPJCvA#|}X$*h2WomKE$U$<@pUqz_tp+4l(wu=bwS@)#Jaosc zZ9!*rjYT+MRCEP>9KWKD<B1l2lZ3npk-^XO5z~wND(vBadFV)YmjlJ8^MTRtbCJzo z!VL0q1`mpb_cWhAEwyR9!*oaJo)0cc#_squmkwOocm4>+ae1HklNpVBcCbsOytuVh zDlzMVeeUKq8wqB-pEVxKs-iNIVOF?FzOS;<ZEM_^RMN+f?flbSGLE~SJxr$W>oCnT z?X`NhG8(($xOZ^w%M14K(h~h@sAtPBjEt!qVc{@4l9<lD*VHumyv?GD)2ZMX<ke(( zkp^qT+@Z?P&lgSUNcA~i=j8Q&{?`kSiuAZ6Z7c;;t{y|CGi=GXy*2cDDm8#AcTo`9 zN;wziTb|3?ZZZ>(&KJvND0RE$SkJ+jtiP49&DyKZQ;6nPZG{g!HfIh#ew3;>5N+!J zq2Tlv6~hbz{Y~`r?|W@TMHfHsaZYCM_u9`Oxx>W;MYZ;m_v17k?{yodxP8}n8<1(K zxI-*GWbrkJh_BkA*0;SWG#sU67cV8A?tQa<sH!VRs{9`_M{x$`3~Jy0dMUf~LJ9ZI zJ;BGsc3fi=8)`Oun-k43XrFY@tv9~5S&x=Gf(}693)1@noEakdASC0X=PQB%qt(1_ z5Me{6{?NX86Nn~XK(r+{Dd_nVt?K+K;Fr1z>27jyd17|TYy-0+S3qLj#UBnQuEmH) zcuxg!#l)yZ(@HzF{F)Guuj=WUVHy2ooM`+m;+nD&?XUh<IjIjXo?|rmvoyTCE0~il z<97X_1O?sk(Q-M*j?wOW0iq+P==wLmJh^R~{_!7Ec8;84!pZll?6gN8y??arP(i&} zS#~R&v8w<4HhPbG!0a=0-46cNuR?pq(93_Ydcmf`L8_gr<YXs3J$<hGd(I$k=@`Ft z`_LJs{L($g_YZ8co_zYK&lHoyKP&Vglg1ArFOlP-hTR3p9!bQZi)q19C`X562VoT* zS2(@_xO4__n;5KuV;lmA0>t1O(2X63mLXH&n@UoY7Gq|iO;&)H5qtNX`<TJp{Zns; zAG_F&$~rPCJ+)v?&omHNtfBGdSMXHi;5RXunSOFk`{>w*CF=(oC$>~1H78|h?bX({ zh<a{yV6nT{K|fllYw^w<m60-+z@Pou!k>Ce_g18pUEJHQ{F*l?jyC$b^#(-x1$7Ar z+Ov3*xop$aTBOc0G^s@l*S9$taIM<CCx>!7o>5Rp1uZq3<~?(Duz+HZzRxtuOBI)! zX8hV*$hL4pEh0O|vVKYZtk|IZkY5LbQkC{Oft7DMxe<?_X8Qh`Nq^g&z^UTq-r?uG zW!25ZBMb3y8Y9=j)6FY4$)|FRR#c4KIA3-#s!GkIU*Z`=s(q+z!ReG$Sw#iSS4f|g z`GtiVFwMcmCJZA8S8|{IJPLIe(GCBsa%L3xj|%{?5@7^FbbwAv)#&Hd_w#2YIO$sv zNI-vgh;KdrJ=<MgUKvb3*KTUL0Gy3})210QM}>rhoTCMgA0KB*mys#;a8;u-<`fic ziHTD6Qx_9+cv!UWren|jo^8Btath}<_x^~9)A(&=H8M9gqFHrDTH0GzyS1%QPp@aY zkl`6?Ble24_ie(3Jp0-!(gsIPG$@6BeBF>7pmbI&lK;R}iDzePu31;;sb{qD8J6v< zVBq7+F){vq+FpH6kc0inT=P5DnUo6W;%DIon(rM&q7|KXc26+U&JO8nr;Stj2h)B% zdv2ZcjPSn035@)He!1Jgdi?YuRO^B2^46V^Pv<>fD~Qv4Q?Rrg4(@zj^z+WNjY3dz z^-dA3XLT?2QfQKU{VKel$jBO0c0SPYI(H_IN$&}5>XL8n#tsMJs_E$+evcoI+&4F8 zH*=is{P5ImqJKoQCgWG)@#b_rVP`bmBFalF;8)OK5WtN>N+7KS%YwcSc7=eUiBKBp z8=5sRq0<lyTa^n;whp-@LIA3gqPH2MSfb?B)FkRY0G`*IKLWA*>YoKbgs}ck=T9DI zjM5V6di83Iaq&~_Wu+@W_w(>{UpReUcf99zQcO$+Q`WXX&WuMhoysjkcaA#kG~VEl zWa?kq`MgB`*uWR1;Nw3!%Y~DqcJJAtC%%w)L?>fTOmWUXj449Ctul*`Z)8&|-Ib?L zjqauyjQmV1m&<K$dYdu#_!nP7OlFySe!g(aj)h344{tVXzxZYI%dU*{^kg9RL{kH8 zk+Sqz$6TkTH|-poi<7XF&QAqUcQfUih+9QuR>*T4<K@*l9~qf(rfaMtu)dZWs_fA4 za8+bCP%R8B1RHtm9#rTIXxc2HYswT8mELsb2ft`=z_KR?#|Slx|MGB0wi0c!Me*?3 zq_nMl1L;i1xTRV;`dlJP1OdT0gA@5xTt<fIk2G|24x#!OrL_%3svz`m5oTuu9fh;X zbgVsx29^k<GK+d5`5fHPenWghWQVX~&S{M}l(TPYN?2G!x3l=LFnb0~NV(jncE{XR z6fK1`N`+ssQrc5z$Mc1spIiw~OMAeU>SQG{?AmnIMK34&%%flO2{CHpr+yrem5%Lc z{p8cvy0ug&Ki{n;HG!|9P@8V&kt0#fpFG_DEY>ed#|5%p$ZT~8&+SWs8xJHDL>q>x z^;Zk&`VFwj9UXbNx_N7Tq8)^2``t&`K}^}~L!qW%A<ZM`Ar0-8mZqCsg+e6B&o>4E zR^&jmjf{*~dO*K%ud8v#2k2A~7XcBj1h33~kT~$-=kHK?yxOgTW+LdesD$gP$Yb0( zZR}Tis{={i5t7ir?S!COU7E0m!}G7c=q`E_!AebN^Q_cJKBP-2t0+*s;DBF+0xj|4 z;HBR~Mq(_1L-a0*VW1m>&rF*Bvt9eqkqB4@u|h&gdW(lEehx0dR4%M1)OMmchl}qE z^j2^<tLkd>B5FimbZef6qyy#$BLDsP6{J#oZlSXuuwf!8A$@8yGETpYRc0U!vw`EN z0Fi~LZ{P^q|6Y@`aQ%s$q!SZVP+wuhzuoj^C!HP&jzlRUky=NFajM7jSgDK|dOlwq z?}@-=b%#ljV$tnE#tRos*mDd2H-MLjAzX;68*<Tg8#aVOh1ryFpX(ch8{4#FNSkKZ z0z@B>`8#EYmAm+wf_AVok`GI?To=E`nY-C~4<&dw&kXAmb>oW{DnCi}9i#ZuFDa1u zhL`C(V=y%|Mh-2>RPc0j;=ID~_f15DUj@bGA`-U67a%<h-fpK*QE(3f5~hVV0#R|) ze}9)6^Ph}Q)Q_H{FQ70ZJ+e#gq<IjH0|`r@===(!ng3SK$VRLMNtEO8XNjy16b2lf z0v@*oNpDS}d4l1eGN9jqe;3dDwVT$TaO}A>XGPewSSY7#cA1Jq4}U5a<>lie4j@2n zUndCueJ>Mtx$Q5bNDn8!rAc}SL+pQ1F;IY^;^g2Xg*lRqm)v>rcR|cx5wCX{?~yNu zx$8VuH|d*Oa>sTT_^EIe<{%RG?_DK^|4o{F-%qpcn-vuJkqM~7Zo(O&MaPfgBc#b2 z41-8VTp;hS6L|j)<=0nKgmw@<FODmN0;WE2-3hZMzn}oCj1h)dC3jx_9f$Rr8>=NR z5&|gR<RMsVjy(Ppe<)h;ivj5J-iM;lf76}Mh(&P%{%7E7ttXnkHGHy0KL;8ffJ{kp zEuu|AsMq-4AOfBrh`A*KYY4dcfnYEJFfR>9kgHIm1L+Ei@Ae8Gs0Eeq|7Im|Ek<KP z8k!TIU}A)i>2MW#mF+<D1YtHVo<tg{zi;@y)>b(j#s|NN4zeF+bc2+1Uf3o5Q+eqC zC?KRI`Tsc?_n&Wj*#HS!4QP7Aqzj_G!6T9SuwUZ`2RIzA5PWbbxb^R%%6G-ECG~TR zNY~a!j~@fmqyuxh<j%>NgDXoHNQQ}3h(6vCU5zm8#%P-Bl|m&K(9mT9ljVG6Q3e&X zrRk&<RVW;><tgC7{5Rc+k*|U_gaIWc?O}<hKK<tA8b}1;^`q?VEekMK@ZTM1w#`{P zbRE=D>R3Ibs|N8~_&E@lPJS8jqFIIaUbJJ`{NIn)Vbonx+{~mEBRbI`g}mUAD)P5= zEo7(n<$X909z6KpMu@%<$XWvG77t>j!GOn`vO65h0SgkvBd#gfn~8he{<}QP%;mPL z9wEA9_@7KbcH&A&rAP4+63hUDoR?S!|DCgWlxIN=DC*Fn>Y)mWXc2IAtY;I_brPS6 zSkuPsw!8k{oMpIph{-reaRWlz3|2OPL~O|02Q*LF_mq1P?I-bDhP`mZzl$mJg;FRl z9Lb4w>{h7cP>a5EK<1QYT5Gc3$};I@is%}BVZ{C&_=Yc%0#`ZzuS<g0U!wtCv;1I_ zjjCRKBp*{`F?d3f_2Kl-f;Q;EhYbSrmdZ;$#3>&gfU!uwL*C8;2}vyyRAP(w-y+3o zat>l8z3GBj&8jZT({HA0gW8PnL0}j33Vp=?J3eUe=r>U26VowRHZX#Y?<$mKu}--! zLb^v0Gfl?)_3M^@$DF&zX|-e!j24c8q&yGnc^S&BD`-K4qa*~il4F1bS{$TYg|3lB zmv7M@!+MRh_CxMPS`Z@0J$|~;CCL&9{{%P@TX9CCx_$HCW!=H?EJ))V<n0YjO)o%= z+E2M<4%>wy&&d<SItJR8*#CZ#6F=zy(%1a=$IT>RL0iV7IEPy1Zvx*U{s9QBVfRw@ z?~R$~<XNPgV+mhZ=n%<*1BFW5!_|y5`-F5V7y?L`|G}Xe+x+jLW0GL>c(ZB-HQ*0J z5vpSDhUU&oRml`#k+wf&r*u9+qeq>e53I5JUF1_&#)r5jU=V)={xYc5)dyQ{b%QdK z$fpTG4-&bg%g*}iZr)=OW}hiG(EJ_Ta*4U+Qc8mN$DU0Oi&Avy>66u%H7~RLJvP?6 z{bTWy-N+ojaGP3Ci00!*MK!uhr%tuSB<Rq>xxbC-YGr%AW=&{?JPhCVALt(rq;JsC zsmlpwI_~~Qwr^C6hkmPC8cvb<<=^9y=-25sH}i5#{3!M5)6lJ*!#_<pX*UH28&@Sq zF!v2JAP#%}oH9H1{@YjT=Ot7t^Yq8gE#BBlR-Tz%+!1XJ3vSl+G%xE7s&7T99<|`^ z(4b*wZ7<M1njl-M>*M2C_we!iOP@Z|#Kg=Ln?!IMnYF)e&ib&vpj=Kdt(A7KmltxJ z(wOM)XE)39HM~=Ea^1}vt!33`YnLJFTv|d!^k4U=BX|sD@6J4W1o@gj{aXL$`#107 ze9yvP@4R;HjI&FMZwnpWC%*%-2HICIJ}%B+7WP>YW-l$Ap31h<Nogrg6^0r)D`Vv8 zo5Qj_uNj>^vVNzy*d}{jNVd~1-A>*l&P%fPr<pQka<V$%fT9sQ?IuadQYVRROjDm~ z%YVJ^vF>>iD<mCj;mEdLn_l<YwNh$_AD<NOY=7eAP2JODwAs%1P8@?}<>9%u?y{NR zz+rmNL93Le_GGWq;klc<;_D6_QdCxU(KA}Q8>M=Bc7jq~4)EhjB;UxgJvo8*oKs^B z$~H1mEO!rM4D<M@7f}?!T+HskGz5_Rc<Tn52(IXROseXJDTX{}kptDVH(m?4Wm4d9 zrZu4Kg1ol=I_E(~)^$oX>IQ7ZzQvA*3K%~XoE!@-dfk{ZlsaIdM?q3NKi~4<0blR> zzkl%1Zd!rH#_Eo|Csvh*txQKhWb72)#?;;6va8TS=St&`&+X@i>zPNN+S;lpX~ynU z?0nFEE>wT+Im%3Z$IvfpbW`U;fxa;&ATv)++itQIZ+B!=t$i_4f~?rT{DOV5`dUV< z{hP`C5_fvnF;+GX+WRsz_YY*{rTlEUQW^(1hvu320vnrK@o#A-y$H`VHKY0Ot$~c) z9XbYV&hxvRrv!`ddwEgG`%rh6(Y$--nsvl`$Br4f1R0g)n8$lsi0Hy*c7B1Jfu~*z zvM95$`QKy}5#A=KmyAH6<J+^djeDO-q-KYfKCmj+pt4e<b2pxzqX!hVbW~%f4eGR% zomSMN9W;x-GLp(<>5C>O+u7Wf_Pb9`Ptz>VN^q;!k{jfduONf66t~FcpS^1>%hbB_ zOFgm*j77U;8S_VjlAVqYz0*&QO<;a<UYGWQg2FW86dt|r9QDuMtRhw_s`kOx_b=Dy ziio88eCbmfE$x8x!&Q)e>)&s%&wGt>lvZxaK{T^b{?WeL^N;)DK(&gu<6c%ywJNAZ zat@`#(me3?dzO3gSo!W_4qXs-8)ZASD*rUvSj8hP>`>;l-g9JIU$@8U6ZC%%h=maW zhQ=nEUq8~`)&?x5&yCqHcL#)<D^t^MeHE!sK?jRs-Z+C@sYcXFO7IwNpOSQBkNAD8 zdFa#LMR_$fYB-v1Rg3#@shYg}1*722ss)+Vw!bej9whRYHM=54bo0XQ^B!y7G@58@ zOH)3}>E5yXS4_@?GhAec$BJxEzoGYWQP$I2?6i?e`|yhY0+%=$SmOw7;LW4Y{P&*8 zuK%;Le8bU9W`377cvq2p?N$%GF7*AGJFTy3n`T18BTZd)k*dO*s=t2n`j^G1Xxe;B zP1~nx5vfBT{-H4-54)Q-v_|>*^=!Xoyg{??S5=GC@prF+c|YsOZ7+F}VPf152aapj z^?^aEl|K^9*@^qt{jcVc7)1H?lXl<P<ST!YE?da|AAMbUIF#+%p208%8D(T?L1mfx z*_y~2LX>r^4WdXIrH%9|j4dKt*|Uc+ic)y9gnn5{zFx+p$R6*I3_^H??|SC@zQ2CQ z@%hW)a6B{f%>CT=b)MIGo#*Fo+!dOWw-0M!g-Jhz2G2%|hrU+)KEY9_#62aRkbdGh zK%(TjTjMY=olhE?e|nlUsrC?#H1HH*X=sM%B<<i{L(WkHTNfBlW#s0Dt2Xlu4v8dd zDlp2FaK!jH+OuZ<Y|S*q-LT#L=qKUz)skKNgq5Ltc`RR|A?I+6s|k0lDaGUu?PUMD z3?WZ2rwAUz+YGy+>5B71K`qBN(Or+g^;p_K#2ED<y(cpbBXks{PJ%9DIP+#Nd|9xK zB+~`tRycNJ^CcN&UlXI;H33<}Q5*>_jN`|))<id9&mW%yobzM&wG4o!CrfJ%L;@J} zxcY>Frx{>1N9qW`K`>@n?7E>ssm4OMl-Ui-G)Sg8?1M^>wv&C3EIYfLSAAXxcAT2Z zx>r*hOXLxI7?Vd}TGKj57pc^!HTA2v?>5oTxV*jFqL`0Tv|+laa+l|EJi(3_y*kP( z*R*C9TU3M-?Tvv*&IKqw<62uyAn;KYVw{wrv1j7#U5q!5g~U8Tn0p5gB6r3jR15c@ z;*J9zVmt&yJV;3JPH+L)4obOejBoLAajgP-@5q95<e(ni?6DXq!w@KGjFodBrakSL zatv+4_tJ$H*4Pi&fmN%w<jn5l$6L@A)~d_;X*oHEU_u{(5hhe>IbzMy2GYB@#m?lF z)H8e-L3L^>J}ZlvlaEv{mTcQLqjzxxV`#A&;SS6-E+&F@)1MInBWj2VUE9_+EVj%c zd;vs@=b(Ej4`O82CRhVr18W&{fhAs^kH7);R2A}cDGHatA4~!u4%ieMLMe-A+j@#E zcAQR3vAnK90J<i5lVXgmx>beG4^fB$q2Y8%Bb`O90X~Ngjk&7}>cq5@kgsWCnQ!o# zWuQE#{F<nQAKzGscBvz0FLJT|^e$qvZr|+JmU}x|Cf*z7LQFwBvJ9Y)rBd?@RHbEr z>=&9Vo<8-oyLUtc+8%echHvp&+jOl?0B8o><G8wo#12CxiD15xU#c*h4?`G|+Sm6} zs(r&jMJ)?P7?5?IJ}LSBRXy|HG<c2|7MN!aYD!>*c+Ha1FU5H(&oLlG3YjPYlhs3k zl~rCH=i1^3piOLBFK(nSmHSv_zgYXCo?U{hXfI3S$qZD`Y!M-?;bz*>_{!W!2h@IG zoe>Y79GAY<iXcK-m{(c=<bsGbCpVjcKR5?Q3;?8VGd2L}fIRsam{DvRPlGUA6kPG) zB@@R(Kob21IDN!~1);p5WL}+moCFq4iXYS;z)+yVo-Yl~12Z|=$Gr@7ZnD-HBG+s# z&Lsg>&Csa@T{FC6n6)%q;NERGSRk<vToN1jxldxJknzu-v{)?kSl+90Mn`EnNv@Qf z++4)d1+-&>jeqQb7A0VnTa0fYzEp#$7Nl*7z*y*FLSE<8_*~e^P!JMi4nW=Gs1=mn z&?YomXui;ui3ZXIA(UaR4(wYype4~=;i?6zB{dp@k!OGG`94WrTfYL0Eeod^%~t(D zX!WCL>pKp&)z#PYpg6;?U8&6uE2+bu%FqGR#%q5en~y??hJLk*hs3!lTe&<*d$}~o zK1CZMPCRYvFip;fS^)GUF(;$uNrRPA3W%i^AHn})o0NtL3NNrn)c@DdpW6Y3GUh3; z{t1bKJ(Su@S>V;CvPT#E?d0JaAm0L4J7WM@f+b{SU`(BUhYA02f8yLZrLD(B#oEmv zP?{ez&d~?)Vf5091Hd*ABROWx+>MSFL?PBGCBIGu+E~CND=oy`P84#lw@2+)1P?Ba z%A(7s-y9A9|CFPQ+|V=sD;BL80-sk6nDi|qGm^8i?m?3aaUcYHytb{5<PLMr-mL<O zxZ?d6Kf;8rFR6OI1U<c&cm3*Br4_dU<=~+_mpPO2+b6fHr~tWb>jL^H<Q_UzoX+UC zw>6A(utMB3AW9Iqu(!9jVTBXI960LGYiVo$q47-ahgWQe(b(GbO8h@lVj%<l7B@DD z<z4!pz^4c{1Z1G6v~@rm013+WdlS02nZDHdF;OC=>%-x!6%?}MEN%L~pFMHHkWm~F zoATs8^qFm#H#^g^vIJ?kY@2dRqi%RXc}Sur7WJtqL$#iN`ZP1AIgWV4rUo*3P>_h> zObr9{PkR9x9**+s_g%$?4(;i-$W6~`eqm((*o-CpbG}gc{T~LvDj|MRVB3SX{hXbe zno7)t@f2VkB<7cvSSPky*?8{{F;IV9F?{qWN>kI2T25j=E9xAy2U}Sh#3Dg<kv%mG zz$7?C#X<~N`oI<PiUXAxnD+1>)(1YCOO352c44Ww#z>fCb)oN@^a2=rjE6vK(fMC! znsFg?X_Yru;6zrxK4A`6PX@L8xEY+-qCYeH%-P`Hcgqs&n_&n<z}59D`?p0`>qr={ zhz#=!icw9)xYh6PpDt;l0~e_Va0nSQ9={fU7D6YGU>}$UN|y>d2XE-s(Rq_oTuL^x z=`@C)pFe%T>nz&)0&hnWFBE!5jzi9pI$}cxgUEM*z<|KrZN^w+A{1CiQ<xE@)KH^g zr+N%xOvGmqHWD!cAsY09NES5suc@jm1#$+ZK&*{;OOO3-ZDAu+$-;OWVhJ`rK90<E z!;X<E?d=A}%|J%&MOwCSUMckdb-7v`=h=qy95uv=7n5DEyY$RISE=Y8Vi1J`ZI)-h z?gWoogg0gO_ErHMjc~9)>)ZS;QwXp*@53|Ghu(LB$%o<Yxy)Ohawgi5$21Ou6sq*d zzV^g4Id{TsaCU;=vCdf!Q50xH5Zg-7n#QpWkUNj`4q;DpJd#y<aqT*26Gqwj;lyq8 zVdaBvqmiPtvA5w`!^s?-G>5d?C!v)BhPvQyp|rA<&C*|9pMx}F$SSCi;#S-W32!I= za;5yKq86%GkrVRmZg}rf037n=&!1yaNQfx#Ou#$j%``$Dh?%V|9>QH*KJCvgeXb_E zpD$DI^Z<&l;JxTwVRY>ktvK{|$2vM3TSQ?)%kOz7t@*d@<{1u-=fxvS*`o5dEFbDj z2w{F111?_X=4ze~%G-fv0Y#K<=*F@$c!Cv@w_s9>ANg89oa!{G9BRefSZDpy^K5T- z-OIC;+TK`<u3w+zhUF!nFdN1vmdIa2ySc?CLX=if3x0E4U`K3;z=%h6<zKnJ(F*Rn zJ+HRE)H?v~THxu~bn)7x_->J|T%l@T^l$dDyA_z`8v>b!W2hqu1+Gr#Gbi<H{C7jU z?D?&#fR{zcsd#^SS7<Pvr@LNkk<AOfEIU0=NzNHQKC<#WtJ8{rY(3kB|EM4PF=FE- zX0XOL)!#e+`56ZgPw2YH>XQBD22v4p*%HN~P~x$NT+O2Us=UBuKo}}kDLLA|Txk`q z;m&6YjmEE6CT?`>C2dZ@ci3V7O@sGK-3}~{$1JIobB()J?%KVV<tvDoN!$&hBM9GW zi4tU19(Yrnl8kyvF?BC&PvAWh=FSmMv3f+i{M9%33&hV>=_xZlK|Cc3_jC9*iJ*mS zUzuZiC-6mq-}vWeo{<vf-ledJ@?#WvOPjbjrP#r`hZ6g8^s?&DN<BOt<9o-r;U-J} z3CO4Hy+fHy-xv2XB}d<iqQk=K>=AyZ>N^_~fv4fBb%V%-wMM)+v-%+RfS*^fQ!lH* z^-msc?Nn!w7cKB7u5i#JVK&owYUrsxD~@=UfE>-9UWO^Q-VL;|m4A^ScfU*6DQsK~ zM*0ad;Si5(mOvBRcT`ec0$|!MOTTL{36T0>-w7U@r~9v@isPtag4;@!BNZ)CZtj!T zY16^0$@QZ{O(IKkqW7gSU%tG{B_bDf^l*fW?lCBKO6j&G9{M$XocDg6Zo=64^JqmI zo)}SHDJjyo9?(Jg`(LO3SR1N0jb^u+;EIOt^pYZ!yi(Hn!6|Q-wz2!Xf)!6=<AgQ0 z_mG(vfv<?-8wIHO%gzC`K}KkcnZ7|C`2z|35a-z!3}x7l*^51OG*m%oNS(d&5h8(5 z6vW|6J^4=-BwTw=TqKie?hTL>JiW5?_ahLz(ayK|J=8$nvQ%<jB)%eoM>^)}1Qsu4 zfhpXh@9Wq9fOmUHw=eCHR`|;ckSp!m81ttVf!Pq0apAv2l?f8$nU9t3a7K=@Pq@c} zW47-3b|dWQ&-2oQd-qr${wyM6_NJ^VaSMS^E`bN^@MN;vt^_IV+Y+%!^ncs2KN@x< zf+h<H{o)L*gE-99Wg<cI?OVo-V{fVW;M)2lpNuDLM+XxluvQ?&zP{!~nQ0wq4o;N0 zmn2}FUs`ZXJIhBx2#dNCqP^;gtg|W&LwJn<5<zyKd|7mBXB>4d<WAWKr^Ubjc8>HQ zz=OK6PWl&s28SvBGLJC!N7ne*nA{cV$)!<rpf(KUQcg5BDoIYW-ZzG+s;jq@oDv^A zVQP2kar3djkV{`|IV|o2svjR7nfw6E2M#)yT@9JURp_3(Y!z<)AsuvehA(|S(Qmq9 z%ilMJ<x6aDyb%+jS(8mkIum>^qNcepQ4odVskJaMa`-ii77(bj_j6-W>tjCVpjF%o zs`gb@F0Ft6l2U&u>*w5|gYoslrY7Bs4^oUC8U)Ok?GT03O!r+}Qskt!uyI~$&eMZ; zMw&!g+nKKfbae|X9x`Eaesp4gP@IRGkAlc}QbGx3HdFE+on!fw7(IPPw0Xlq=TaKo z2?CwJ<9?*1RFAxkjBvejrNC4un>;W;8Lm#J7tnkjHQaXo^T2_gkg>@Up{Lne?3PI6 zgO_&3MkFgvvhBz8bSNuQGD3R6CL_-r<0De|MFJkZJd9CX{@z3172Q=NUtag|9qPr) z@TCCU^J-V}b^-~V-By0lUix!)u^?t|f(-8wKWT%ZzlmBIJYO4vrWZFu+@F6gKyNh3 z9N`%pVl20|MRWEkci5LX1b7se^hm2LERb#zRT4R3a!RZI{p6iTYc5%=!^(x~C|^uK zZc;1)cNqx1o2RTxH*luY-~2w8ekz>(;rqlf-e7iix|jKYzuhmAaO#wf*(nAq#NEaG z5k+KTvZvI6Y+JmcbMVP;66@JBq0GU-0FN6&F=H1=^~PbB4%O(u-PJE9_o%0*i^oDW zHT3GFzouqDl5eEAt}ZpD+cyCH;-qP~wGnzqw61Q6VQYIeJIi84!_cc>a7Y=?^iPoK zHSnM2uFpR-s$?fl1GhoT$YS_Kzx&vS5jnuiU-AGKk+jDSy}g^Tr{<)DX2nw_&#D(i z8v}-=6HfGP1h*MhPfh2%;q6{oz9B6JgJqnOUMfVa36COMgqwyMU>?&r1}~~vH4ZMW z_Rr7xxoXBTTr(nUcJ9Pk&#+SFE+B=L<inUOj2!X{+%vDB%nV!ZU*XXg7x=$FM~=%z r{m(!6*!H1nJ9Dwz|Ar#%+T<4Rj;$N2l1ioCDEP53wKl0V_Kf&%uD32s diff --git a/book/part01-algorithms-analysis.asc b/book/part01-algorithms-analysis.asc index e4eba82d..9a4399e0 100644 --- a/book/part01-algorithms-analysis.asc +++ b/book/part01-algorithms-analysis.asc @@ -1,8 +1,12 @@ [[part01-algorithms-analysis]] == Algorithms Analysis -In this part, we are going to cover the basics of algorithms analysis. Also, we will discuss the most common runtimes of algorithms and provide a code example for each one. +In this part, we are going to cover the basics of algorithms analysis. We will also discuss the most common runtimes of algorithms and provide a code example for each one. include::content/part01/algorithms-analysis.asc[] +<<< +include::content/part01/how-to-big-o.asc[] + +<<< include::content/part01/big-o-examples.asc[] From 29f374a5c5536a5813f81daa91c56e408687c311 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Tue, 29 Sep 2020 20:22:01 +0000 Subject: [PATCH 055/108] :bookmark: chore(release): 2.2.0 # [2.2.0](https://github.com/amejiarosario/dsa.js/compare/2.1.0...2.2.0) (2020-09-29) ### Features * **book/big-o:** add new chapter on how to determine big o from code. ([68c73d4](https://github.com/amejiarosario/dsa.js/commit/68c73d4c3bb5fb1ec637d81b42a2f8dbfc4f0008)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88082ee9..2d276386 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.2.0](https://github.com/amejiarosario/dsa.js/compare/2.1.0...2.2.0) (2020-09-29) + + +### Features + +* **book/big-o:** add new chapter on how to determine big o from code. ([68c73d4](https://github.com/amejiarosario/dsa.js/commit/68c73d4c3bb5fb1ec637d81b42a2f8dbfc4f0008)) + # [2.1.0](https://github.com/amejiarosario/dsa.js/compare/2.0.0...2.1.0) (2020-09-11) diff --git a/package-lock.json b/package-lock.json index ecc2df64..9505dcc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.1.0", + "version": "2.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 786dda6c..990a4328 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.1.0", + "version": "2.2.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 1392938b9a7b354087c5108b65a31a255412eb10 Mon Sep 17 00:00:00 2001 From: dahalnischal <72251500+dahalnischal@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:12:47 +0545 Subject: [PATCH 056/108] Update introduction.asc --- book/content/introduction.asc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/book/content/introduction.asc b/book/content/introduction.asc index cec2cb11..9a1326e8 100644 --- a/book/content/introduction.asc +++ b/book/content/introduction.asc @@ -1,13 +1,13 @@ [preface] == Introduction -You are about to become a better programmer and grasp the fundamentals of Algorithms and Data Structures. +You are about to become a better programmer and graps the fundamentals of Algorithms and Data Structures. Let's take a moment to explain how are we going to do that. This book is divided in 4 main parts.... In *Chapter 1*, we're going to cover Version Control Systems (VCSs) and Git basics -- no technical stuff, just what Git is, why it came about in a land full of VCSs, what sets it apart, and why so many people are using it. -Then, we'll explain how to download Git and set it up for the first time if you don't already have it on your system. +Then, we'll explain how to download Git and set it up for the first time if you don't have already on your system. In *Chapter 2*, we will go over basic Git usage -- how to use Git in the 80% of cases you'll encounter most often. After reading this chapter, you should be able to clone a repository, see what has happened in the history of the project, modify files, and contribute changes. From 4505eb64a63b282ca9685b3b2cabb657149d9fe7 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 2 Oct 2020 16:13:00 -0400 Subject: [PATCH 057/108] fix(book): add introduction --- book/content/introduction.asc | 58 ++++++----------------------------- book/readme.asc | 2 +- 2 files changed, 11 insertions(+), 49 deletions(-) diff --git a/book/content/introduction.asc b/book/content/introduction.asc index 9a1326e8..e59de6d1 100644 --- a/book/content/introduction.asc +++ b/book/content/introduction.asc @@ -1,59 +1,21 @@ [preface] == Introduction -You are about to become a better programmer and graps the fundamentals of Algorithms and Data Structures. -Let's take a moment to explain how are we going to do that. +You are about to become a better programmer and grasp the fundamentals of Algorithms and Data Structures. +Let's take a moment to explain how we are going to do that. -This book is divided in 4 main parts.... +This book is divided into 4 main parts: -In *Chapter 1*, we're going to cover Version Control Systems (VCSs) and Git basics -- no technical stuff, just what Git is, why it came about in a land full of VCSs, what sets it apart, and why so many people are using it. -Then, we'll explain how to download Git and set it up for the first time if you don't have already on your system. +In *Part 1*, we will cover the framework to compare and analyze algorithms: Big O notation. When you have multiple solutions to a problem, this framework comes handy to know which solution will scale better. -In *Chapter 2*, we will go over basic Git usage -- how to use Git in the 80% of cases you'll encounter most often. -After reading this chapter, you should be able to clone a repository, see what has happened in the history of the project, modify files, and contribute changes. -If the book spontaneously combusts at this point, you should already be pretty useful wielding Git in the time it takes you to go pick up another copy. +In *Part 2*, we will go over linear data structures and trade-offs about using one over another. +After reading this part, you will know how to trade space for speed using Maps, when to use a linked list over an array, or what problems can be solved using a stack over a queue. -*Chapter 3* is about the branching model in Git, often described as Git's killer feature. -Here you'll learn what truly sets Git apart from the pack. -When you're done, you may feel the need to spend a quiet moment pondering how you lived before Git branching was part of your life. +*Part 3* is about graphs and trees and its algorithms. +Here you'll learn how to translate real-world problems into graphs and different algorithms to solve them. -*Chapter 4* will cover Git on the server. -This chapter is for those of you who want to set up Git inside your organization or on your own personal server for collaboration. -We will also explore various hosted options if you prefer to let someone else handle that for you. +*Part 4* will cover tools and techniques to solve algorithmic problems. This section is for those who want to get better at recognizing patterns and improving problem-solving skills. We cover sorting algorithms and standard practices like dynamic programming, greedy algorithms, divide and conquer, and more. -*Chapter 5* will go over in full detail various distributed workflows and how to accomplish them with Git. -When you are done with this chapter, you should be able to work expertly with multiple remote repositories, use Git over email and deftly juggle numerous remote branches and contributed patches. - -*Chapter 6* covers the GitHub hosting service and tooling in depth. -We cover signing up for and managing an account, creating and using Git repositories, common workflows to contribute to projects and to accept contributions to yours, GitHub's programmatic interface and lots of little tips to make your life easier in general. - -*Chapter 7* is about advanced Git commands. -Here you will learn about topics like mastering the scary 'reset' command, using binary search to identify bugs, editing history, revision selection in detail, and a lot more. -This chapter will round out your knowledge of Git so that you are truly a master. - -*Chapter 8* is about configuring your custom Git environment. -This includes setting up hook scripts to enforce or encourage customized policies and using environment configuration settings so you can work the way you want to. -We will also cover building your own set of scripts to enforce a custom committing policy. - -*Chapter 9* deals with Git and other VCSs. -This includes using Git in a Subversion (SVN) world and converting projects from other VCSs to Git. -A lot of organizations still use SVN and are not about to change, but by this point you'll have learned the incredible power of Git -- and this chapter shows you how to cope if you still have to use a SVN server. -We also cover how to import projects from several different systems in case you do convince everyone to make the plunge. - -*Chapter 10* delves into the murky yet beautiful depths of Git internals. -Now that you know all about Git and can wield it with power and grace, you can move on to discuss how Git stores its objects, -what the object model is, details of packfiles, server protocols, and more. -Throughout the book, we will refer to sections of this chapter in case you feel like diving deep at that point; but if you are like us and want to dive into the technical details, you may want to read Chapter 10 first. -We leave that up to you. - -In *Appendix A*, we look at a number of examples of using Git in various specific environments. -We cover a number of different GUIs and IDE programming environments that you may want to use Git in and what is available for you. -If you're interested in an overview of using Git in your shell, your IDE, or your text editor, take a look here. - -In *Appendix B*, we explore scripting and extending Git through tools like libgit2 and JGit. -If you're interested in writing complex and fast custom tools and need low-level Git access, this is where you can see what that landscape looks like. - -Finally, in *Appendix C*, we go through all the major Git commands one at a time and review where in the book we covered them and what we did with them. -If you want to know where in the book we used any specific Git command you can look that up here. +Finally, in *Appendix A*, we summarize all the topics covered in this book in a cheatsheet. *Appendix B and C* covers self-balancing binary search tree algorithms. *Appendix D* cover the solutions to the problems presented at the end of each chapter. Let's get started. diff --git a/book/readme.asc b/book/readme.asc index 48f92fbe..89c67ba3 100644 --- a/book/readme.asc +++ b/book/readme.asc @@ -44,7 +44,7 @@ include::content/dedication.asc[] include::content/preface.asc[] -// include::content/introduction.asc[] +include::content/introduction.asc[] include::part01-algorithms-analysis.asc[] From b047c23ae6ea76cf44c0fa5db01e54e9ed2f7a99 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Fri, 2 Oct 2020 20:17:27 +0000 Subject: [PATCH 058/108] :bookmark: chore(release): 2.2.1 ## [2.2.1](https://github.com/amejiarosario/dsa.js/compare/2.2.0...2.2.1) (2020-10-02) ### Bug Fixes * **book:** add introduction ([4505eb6](https://github.com/amejiarosario/dsa.js/commit/4505eb64a63b282ca9685b3b2cabb657149d9fe7)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d276386..c7be071e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.2.1](https://github.com/amejiarosario/dsa.js/compare/2.2.0...2.2.1) (2020-10-02) + + +### Bug Fixes + +* **book:** add introduction ([4505eb6](https://github.com/amejiarosario/dsa.js/commit/4505eb64a63b282ca9685b3b2cabb657149d9fe7)) + # [2.2.0](https://github.com/amejiarosario/dsa.js/compare/2.1.0...2.2.0) (2020-09-29) diff --git a/package-lock.json b/package-lock.json index 9505dcc3..eb408cf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 990a4328..caf7c267 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.2.0", + "version": "2.2.1", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 249de5d4769549e9f05562bb6dad50d4e0384524 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 3 Oct 2020 18:15:10 -0400 Subject: [PATCH 059/108] feat(treeMap): get last entry (highest value) --- .../maps/tree-maps/tree-map.js | 21 +++++++++ .../maps/tree-maps/tree-map.spec.js | 43 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/data-structures/maps/tree-maps/tree-map.spec.js diff --git a/src/data-structures/maps/tree-maps/tree-map.js b/src/data-structures/maps/tree-maps/tree-map.js index eed8bc78..10957aed 100644 --- a/src/data-structures/maps/tree-maps/tree-map.js +++ b/src/data-structures/maps/tree-maps/tree-map.js @@ -18,6 +18,11 @@ const Tree = require('../../trees/red-black-tree'); // fast insertion * allocate memory beforehand (e.g. HashMap’s initial capacity) * nor you have to rehash when is getting full. * + * Implementations in other languages: + * Java: https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/util/TreeMap.html + * C++: https://en.cppreference.com/w/cpp/container/map + * Python: none + * */ class TreeMap { // tag::constructor[] @@ -92,6 +97,22 @@ class TreeMap { } // end::delete[] + /** + * Get the last key/value pair (node with largest key) + */ + lastEntry() { + const node = this.tree.getRightmost(); + return node ? [node.value, node.data()] : []; + } + + /** + * Get the first key/value pair (node with smallest key) + */ + firstEntry() { + const node = this.tree.getLeftmost(); + return node ? [node.value, node.data()] : []; + } + // tag::iterators[] /** * Default iterator for this map diff --git a/src/data-structures/maps/tree-maps/tree-map.spec.js b/src/data-structures/maps/tree-maps/tree-map.spec.js new file mode 100644 index 00000000..8661207a --- /dev/null +++ b/src/data-structures/maps/tree-maps/tree-map.spec.js @@ -0,0 +1,43 @@ +// some parts tested on src/data-structures/maps/map.spec.js + +const TreeMap = require('./tree-map'); + +describe('TreeMap: keep values sorted', () => { + let map; + + beforeEach(() => { + map = new TreeMap(); + }); + + describe('when map is empty', () => { + describe('.lastEntry and .firstEntry', () => { + it('should get last/first entry', () => { + expect(map.lastEntry()).toEqual([]); + expect(map.firstEntry()).toEqual([]); + }); + }); + }); + + describe('when map has entries', () => { + beforeEach(() => { + map.set(20, { title: '3sum', passed: true }); + map.set(30, { title: '3sum', passed: false }); + map.set(10, { title: '2sum', passed: true }); + map.set(5, { title: '4sum', passed: false }); + }); + + describe('.lastEntry and .firstEntry', () => { + it('should get last/first entry', () => { + expect(map.lastEntry()).toEqual([ + 30, + { title: '3sum', passed: false }, + ]); + + expect(map.firstEntry()).toEqual([ + 5, + { title: '4sum', passed: false }, + ]); + }); + }); + }); +}); From 1b2d61211fa31175ef973e6c45fa0163b627c36c Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Sat, 3 Oct 2020 23:55:46 +0000 Subject: [PATCH 060/108] :bookmark: chore(release): 2.3.0 # [2.3.0](https://github.com/amejiarosario/dsa.js/compare/2.2.1...2.3.0) (2020-10-03) ### Features * **treeMap:** get last entry (highest value) ([249de5d](https://github.com/amejiarosario/dsa.js/commit/249de5d4769549e9f05562bb6dad50d4e0384524)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7be071e..c98336a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.3.0](https://github.com/amejiarosario/dsa.js/compare/2.2.1...2.3.0) (2020-10-03) + + +### Features + +* **treeMap:** get last entry (highest value) ([249de5d](https://github.com/amejiarosario/dsa.js/commit/249de5d4769549e9f05562bb6dad50d4e0384524)) + ## [2.2.1](https://github.com/amejiarosario/dsa.js/compare/2.2.0...2.2.1) (2020-10-02) diff --git a/package-lock.json b/package-lock.json index eb408cf2..7ea7ed10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.2.1", + "version": "2.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index caf7c267..9cf19af3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.2.1", + "version": "2.3.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 1287f293c6b86a7ae225c8170801e3420ce13fd6 Mon Sep 17 00:00:00 2001 From: PokhrelAnish <72329285+PokhrelAnish@users.noreply.github.com> Date: Sun, 4 Oct 2020 11:02:17 +0545 Subject: [PATCH 061/108] Update CONTRIBUTING.md --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f0989d2..605887c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,14 +1,14 @@ # Contributing -We encourage any form of contribution, whether that be issues, comments, or pull requests. If you are going to be submitting a PR, there are a few things we would appreciate that you do to keep the codebase clean: +We encourage any form of contribution, whether that will be issues, comments, or pull requests. If you are willing to submit a PR, there are a few things we would appreciate that you do to keep the codebase clean: * **Write tests.** We try as close to 100% code coverage as possible on this repo so any new code that gets written should have accompanying tests. * **Follow the linter.** We use our [ESLint configuration with Airbnb JavaScript Styleguide](https://github.com/airbnb/javascript), and we run `npm run lint` in our Travis builds. * **Ask questions if you aren't sure.** If you have any questions while implementing a fix or feature, feel free to create an issue and ask us. We're happy to help! -## <a name="submit"></a> Submission Guidelines +## <a name="Submit"></a> Submission Guidelines -### <a name="submit-issue"></a> Submitting an Issue +### <a name="Submit-issue"></a> Submitting an Issue Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. @@ -188,7 +188,7 @@ Examples of breaking changes include: We use these three sections in changelog: new features, bug fixes, breaking changes. -List of all subjects (first lines in commit message) since last release: +List of all subjects (First lines in commit message) since last release: ```sh git log <last tag> HEAD --pretty=format:%s From 9175b628caec24d07b683463a836430add88cddf Mon Sep 17 00:00:00 2001 From: PokhrelAnish <72329285+PokhrelAnish@users.noreply.github.com> Date: Sun, 4 Oct 2020 11:03:30 +0545 Subject: [PATCH 062/108] Update CONTRIBUTING.md this might help you and yours every viewer. From f5169b540e62245f73c710d7643d61553c724cfb Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sun, 4 Oct 2020 15:48:57 -0400 Subject: [PATCH 063/108] chore: add examples to contributing --- CONTRIBUTING.md | 36 +++++++----------------------------- notes.md | 2 +- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 605887c4..1a0c18a6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -121,14 +121,17 @@ to read on GitHub as well as in various git tools. The footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any. + +Examples: + ``` -docs(changelog): update changelog to beta.5 -``` +feat(heap): add error handling for heaps +BREAKING CHANGE: size is now an attribute rather than a method. Similar to the built-in Map.size and Set.size ``` -fix(release): need to depend on latest rxjs and zone.js -The version in our package.json gets copied to the one we publish, and users need the latest of these. +``` +fix(book/solutions): fix missing solutions ``` ### Revert @@ -184,31 +187,6 @@ Examples of breaking changes include: * changing the side effects of using a particular API -## Generating Changelog - -We use these three sections in changelog: new features, bug fixes, breaking changes. - -List of all subjects (First lines in commit message) since last release: - -```sh -git log <last tag> HEAD --pretty=format:%s - -# example -git log 1.1.0..HEAD --pretty=format:%s -``` - -New features in this release - -```sh -git log <last release> HEAD --grep feat - -# examples -git log 1.2.0..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "BREAKING CHANGE:" -git log 1.2.0..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "^feat\S*:" -git log 1.2.0..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "^fix\S*:" -``` - - <!-- Examples --> <!-- https://github.com/nodejs/node/blob/v12.0.0/COLLABORATOR_GUIDE.md --> <!-- https://github.com/nodejs/node/blob/v12.0.0/doc/guides/writing-and-running-benchmarks.md --> diff --git a/notes.md b/notes.md index c868f237..1321acf3 100644 --- a/notes.md +++ b/notes.md @@ -10,7 +10,7 @@ and the meaning the the following: - Minor: Features (new functionality, adding new topics) - Patch: Fixes (bug fixes, typos, etc.) -# Generating Changelog +# Generating Changelog (manually) [deprecated] We use these three sections in changelog: new features, bug fixes, breaking changes. From 8135449234ab52c0a586b4c854c07a77d1367ec0 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sun, 4 Oct 2020 15:56:48 -0400 Subject: [PATCH 064/108] chore: improves docs grammar --- CONTRIBUTING.md | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1a0c18a6..43e79136 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ We encourage any form of contribution, whether that will be issues, comments, or pull requests. If you are willing to submit a PR, there are a few things we would appreciate that you do to keep the codebase clean: -* **Write tests.** We try as close to 100% code coverage as possible on this repo so any new code that gets written should have accompanying tests. +* **Write tests (if applicable).** We try as close to 100% code coverage as possible on this repo, so any new code that gets written should have accompanying tests. * **Follow the linter.** We use our [ESLint configuration with Airbnb JavaScript Styleguide](https://github.com/airbnb/javascript), and we run `npm run lint` in our Travis builds. * **Ask questions if you aren't sure.** If you have any questions while implementing a fix or feature, feel free to create an issue and ask us. We're happy to help! @@ -10,15 +10,15 @@ We encourage any form of contribution, whether that will be issues, comments, or ### <a name="Submit-issue"></a> Submitting an Issue -Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. +Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists, and the discussion might inform you of workarounds readily available. ### <a name="submit-pr"></a> Submitting a Pull Request (PR) -Before you submit your Pull Request (PR) consider the following guidelines: +Before you submit your Pull Request (PR), consider the following guidelines: 1. Search [GitHub](https://github.com/amejiarosario/dsa.js/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate effort. -1. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. - Discussing the design up front helps to ensure that we're ready to accept your work. +1. Be sure that an issue describes the problem you're fixing or documents the design for the feature you'd like to add. + Discussing the design upfront helps to ensure that we're ready to accept your work. 1. Fork the `amejiarosario/dsa.js` repo. 1. Make your changes in a new git branch: @@ -29,14 +29,13 @@ Before you submit your Pull Request (PR) consider the following guidelines: 1. Create your patch, **including appropriate test cases**. 1. Run the full test suite, and ensure that all tests pass. 1. Commit your changes using a descriptive commit message that follows our - [commit message conventions](#commit). Adherence to these conventions - is necessary because release notes are automatically generated from these messages. + [commit message conventions](#commit). Adherence to these conventions is necessary because release notes are automatically generated from these messages. ```shell git commit -a ``` - Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. + Note: the optional commit `-a` command-line option will automatically "add" and "rm" edited files. 1. Push your branch to GitHub: @@ -88,8 +87,8 @@ from the main (upstream) repository: ## <a name="commit"></a> Commit Message Guidelines -We have some guidelines how our git commit messages can be formatted. This leads to **more -readable messages** that are easy to follow when looking through the **project history**. But also, +We have some guidelines on how our git commit messages can be formatted. These rules lead to more +readable messages that are easy to follow when looking through the project history. But also, we use the git commit messages to **generate the change log**. ### Commit Message Format @@ -104,22 +103,21 @@ format that includes a **type**, a **scope** and a **subject**: <footer> ``` -Example of a commit with header, body and footer: +Example of a commit with header, body, and footer: ``` fix(linked-list): insert in the middle bug -When inserting an item on the middle of a linked list one reference was not being updated properly. +One reference was not updated when inserting an item in the middle of a linked list. Fixes: #8 ``` -The **header** is mandatory and the **scope** of the header is optional. +The **header** is mandatory, and the **scope** of the header is optional. -Any line of the commit message cannot be longer 100 characters! This allows the message to be easier -to read on GitHub as well as in various git tools. +Any line of the commit message cannot be longer than 100 characters! This length allows the message to be easier to read on GitHub as well as in various git tools. -The footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any. +The footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/), if any. Examples: @@ -135,7 +133,7 @@ fix(book/solutions): fix missing solutions ``` ### Revert -If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted. +If the commit reverts a previous commit, it should begin with `revert: `, followed by the reverted commit's header. The body should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted. ### Type Must be one of the following: @@ -145,23 +143,22 @@ Must be one of the following: * **chore**: Changes to our CI configuration files and scripts (example scopes: Circle, BrowserStack, SauceLabs) ### Scope -The scope should be the name of the npm package affected (as perceived by the person reading the changelog generated from commit messages. - -The following is an example of supported scopes: +The scope should be the main directory name. The following is an example of recommended scopes: * **list** * **map** * **tree** * **graph** * **sorting** +* **book** * etc. ### Subject The subject contains a succinct description of the change: -* use the imperative, present tense: "change" not "changed" nor "changes" -* don't capitalize the first letter -* no dot (.) at the end +* Use the imperative, present tense: "change" not "changed" nor "changes". +* Don't capitalize the first letter. +* Don't dot (.) at the end. ### Body Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". @@ -175,7 +172,7 @@ reference GitHub issues that this commit **Closes**. Closes #234 ``` -**Breaking Changes** should start with the word `BREAKING CHANGE:` on the footer with a space or two newlines. The rest of the commit message is then used for this. +**Breaking Changes** should start with the word `BREAKING CHANGE:` on the footer with space or two newlines. The rest of the commit message is then used for this. Examples of breaking changes include: From 04836cd0cec3afb196d11704a45933e325816c20 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 2 Oct 2020 15:40:26 -0400 Subject: [PATCH 065/108] fix(book/array): improve examples and grammar --- book/content/part01/algorithms-analysis.asc | 7 +- book/content/part01/how-to-big-o.asc | 1 + book/content/part02/array.asc | 217 ++++++++++-------- book/images/big-o-recursive-example.png | Bin 44967 -> 45616 bytes book/images/recursive-fibonacci-call-tree.png | Bin 41935 -> 44647 bytes book/images/time-complexity-examples.png | Bin 0 -> 169748 bytes book/part02-linear-data-structures.asc | 9 +- 7 files changed, 127 insertions(+), 107 deletions(-) create mode 100644 book/images/time-complexity-examples.png diff --git a/book/content/part01/algorithms-analysis.asc b/book/content/part01/algorithms-analysis.asc index d06b0a4f..dc7b6893 100644 --- a/book/content/part01/algorithms-analysis.asc +++ b/book/content/part01/algorithms-analysis.asc @@ -28,15 +28,14 @@ Before going deeper into space and time complexity, let's cover the basics real Algorithms (as you might know) are steps of how to do some tasks. When you cook, you follow a recipe (or an algorithm) to prepare a dish. Let's say you want to make a pizza. -.Example of an algorithm +.Example of an algorithm to make pizza [source, javascript] ---- -import { punchDown, rollOut, applyToppings, Oven } from '../pizza-utils'; +import { rollOut, applyToppings, Oven } from '../pizza-utils'; function makePizza(dough, toppings = ['cheese']) { const oven = new Oven(450); - const punchedDough = punchDown(dough); - const rolledDough = rollOut(punchedDough); + const rolledDough = rollOut(dough); const rawPizza = applyToppings(rolledDough, toppings); const pizzaPromise = oven.bake(rawPizza, { minutes: 20 }); return pizzaPromise; diff --git a/book/content/part01/how-to-big-o.asc b/book/content/part01/how-to-big-o.asc index 3067704f..951cee6b 100644 --- a/book/content/part01/how-to-big-o.asc +++ b/book/content/part01/how-to-big-o.asc @@ -111,6 +111,7 @@ T(n) = n * [t(statement 1) + m * t(statement 2...3)] Assuming the statements from 1 to 3 are `O(1)`, we would have a runtime of `O(n * m)`. If instead of `m`, you had to iterate on `n` again, then it would be `O(n^2)`. Another typical case is having a function inside a loop. Let's see how to deal with that next. +[[big-o-function-statement]] *Function call statements* When you calculate your programs' time complexity and invoke a function, you need to be aware of its runtime. If you created the function, that might be a simple inspection of the implementation. However, if you are using a library function, you might infer it from the language/library documentation. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 2e5aea39..a5b9e567 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -7,79 +7,97 @@ endif::[] === Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) -Arrays are one of the most used data structures. You probably have used it a lot, but are you aware of the runtimes of `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. +Arrays are one of the most used data structures. You probably have used it a lot already. But, are you aware of the runtimes of `push`, `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics An array is a collection of things (strings, characters, numbers, objects, etc.). They can be many or zero. -TIP: Strings are a collection of Unicode characters, and most of the array concepts apply to them. - -.Fixed vs. Dynamic Size Arrays -**** -Some programming languages have fixed-size arrays like Java and {cpp}. -Fixed-size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. Those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. -**** +TIP: Strings are a collection of characters. Most of the array methods apply to strings as well. Arrays look like this: -.Array representation: each value is accessed through an index. +.Array representation: You can access each value in constant time through its index. image::image16.png[image,width=388,height=110] -Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look at the different operations that we can do with arrays. +===== Read and Update -==== Insertion +Arrays are a contiguous collection of elements that can be accessed randomly using an index. This access by index operation takes `O(1)` time. Let’s take a look at the different functions that we can do with arrays. -Arrays are built-in in most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: - -.Inserting elements into an array +.Reading elements from an array and string [source, javascript] ---- -// (1) Add elements at the creation time: const array = [2, 5, 1, 9, 6, 7]; - -// (2) initialize an empty array and add values later -const array2 = []; -array2[3] = 1; -array2[100] = 2; -array2 // [empty × 3, 1, empty × 96, 2] +const string = "hello"; +console.log(array[2]); // 1 +console.log(string[1]); // "e" ---- -Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers, but the length is 101, and there are 99 empty spaces. +As you can see, you can access the string's characters using the same operator as arrays. + +You can update arrays in the same way, using the `[]` operator. However, you can't modify strings. They are immutable! +.Reading elements from an array and string [source, javascript] ---- -console.log(array2.length); // 101 -console.log(array2); // [empty × 3, 1, empty × 96, 2] +const array = [2, 5, 1, 9, 6, 7]; +const string = "hello"; +array[2] = 117; +console.log(array[2]); // 117 +string[1] = "z"; // doesn't change the string. +console.log(string[1]); // "e" ---- +WARNING: When you try to modify and string, you won't get an error or anything. It just gets ignored! Your only option is to create a new string with the adjusted value. + +===== Insertion -The runtime for inserting elements using an index is always is constant: _O(1)_. +Insertions on an array have different times complexities. +O(1): constant time (on average) to append a value at the end of the array. +O(n): linear time to insert a value at the beginning or middle. -===== Inserting at the beginning of the array +====== Inserting at the beginning of the array -What if you want to insert a new element at the beginning of the array? You would have to push every item to the right. +What if you want to insert a new element at the beginning of the array? You would have to push every item to the right. We can use the following method: + +.Syntax +[source, javascript] +---- +const newArrLength = arr.unshift(element1[, ...[, elementN]]); +---- + +Here's an example: .Insert to head [source, javascript] ---- -const array = [2, 5, 1, 9, 6, 7]; +const array = [2, 5, 1]; array.unshift(0); // ↪️ 8 -// array: [0, 2, 5, 1, 9, 6, 7] +console.log(array); // [ 0, 2, 5, 1 ] +array.unshift(-2, -1); // ↪️ 6 +console.log(array); // [ -2, -1, 0, 2, 5, 1 ] ---- -As you can see, `2` was at index 0, now was pushed to index 1, and everything else is on a different index. `unshift` takes *O(n)* since it affects all the elements in the array. +As you can see, `2` was at index 0, now was pushed to index 1, and everything else is on a different index. `unshift` takes *O(n)* since it affects **all** the elements of the array. .JavaScript built-in `array.unshift` **** -The `unshift()` method adds one or more elements to the beginning of an array and returns the array's new length. +The `unshift()` method adds one or more elements to the beginning of an array and returns its new length. -Runtime: O(n). +Runtime: `O(n)`. **** -===== Inserting at the middle of the array +====== Inserting at the middle of the array + +Inserting a new element in the middle involves moving part of the array but not all of the items. We can use `splice` for that: -Inserting a new element in the middle involves moving part of the array but not all of the items. +.Syntax +[source, javascript] +---- +const arrDeletedItems = arr.splice(start[, deleteCount[, item1[, item2[, ...]]]]); +---- + +Based on the parameters it takes, you can see that we can add and delete items. Here's an example of inserting in the middle. .Inserting element in the middle [source, javascript] @@ -94,12 +112,20 @@ The Big O for this operation would be *O(n)* since, in the worst case, it would .JavaScript built-in `array.splice` **** -The `splice()` method changes an array's contents by removing existing elements or adding new elements. Splice returns an array containing the deleted items. +The `splice()` method changes an array's contents by removing existing elements or adding new items. Splice returns an array containing the deleted items. Runtime: O(n). **** -===== Inserting at the end of the array +====== Inserting at the end of the array + +For inserting items at the end of the array, we can use: push. + +.Syntax +[source, javascript] +---- +const newArrLength = arr.push([element1[, ...[, elementN]]]); +---- We can push new values to the end of the array like this: @@ -116,15 +142,15 @@ Adding to the tail of the array doesn’t change other indexes. E.g., element 2 .JavaScript built-in `array.push` **** -The `push()` method adds one or more elements to the end of an array and returns the array's new length. +The `push()` method adds one or more elements to the end of an array and returns its new length. Runtime: O(1). **** [[array-search-by-value]] -==== Searching by value and index +===== Searching by value and index -Searching by the index is very easy using the `[]` operator: +As we saw before, searching by the index is very easy using the `[]` operator: .Search by index [source, javascript] @@ -133,75 +159,56 @@ const array = [2, 5, 1, 9, 6, 7]; array[4]; // ↪️ 6 ---- -Searching by index takes constant time - *O(1)* - to retrieve values out of the array. If we want to get fancier, we can create a function: +Searching by index takes constant time - *O(1)* - to retrieve values out of the array. -// image:image17.png[image,width=528,height=293] +Searching by value can be done using `indexOf`. -.Search by index +.Syntax [source, javascript] ---- -/** - * Search for array's element by index - * - * @example Given array = [2, 5, 1, 9, 6, 7, -1]; - * searchByIndex(array, 3); //↪️ 9 - * searchByIndex(array, 6); //↪️ -1 - * searchByIndex(array, 13); //↪️ undefined - * @param {array} array - * @param {number} index - * @returns {any} value or undefined if not found - */ -function searchByIndex(array, index) { - return array[index]; -} +const index = arr.indexOf(searchElement[, fromIndex]); ---- -Finding out if a value is in the array or not is a different story. - -// image:image18.png[image,width=528,height=338] +If the value is there, we will get the index, otherwise `-1`. .Search by value [source, javascript] ---- -/** - * Search for array's element by value - * - * @example Given array = [2, 5, 1, 9, 6, 7]; - * searchByValue(array, 9); //↪️ 3 - * searchByValue(array, 13); //↪️ -1 - * @param {array} array - * @param {any} value - */ -function searchByValue(array, value) { - for (let index = 0; index < array.length; index++) { - const element = array[index]; - if (element === value) return index; - } - return -1; -} +const array = [2, 5, 1, 9, 6, 7]; +console.log(array.indexOf(9)); // ↪️ 3 +console.log(array.indexOf(90)); // ↪️ -1 ---- -We would have to loop through the whole array (worst case) or until we find it: *O(n)*. +Internally, `indexOf` has to loop through the whole array (worst case) or until we find the first occurrence. Time complexity is *O(n)*. -==== Deletion +===== Deletion There are three possible deletion scenarios (similar to insertion): removing at the beginning, middle, or end. -===== Deleting element from the beginning +====== Deleting element from the beginning + +Deleting from the beginning can be done using the `splice` function and the `shift`. For simplicity, we will use the latter. -Deleting from the beginning can be done using the `splice` function and also the `shift`. For simplicity, we will use the latter. +.Syntax +[source, javascript] +---- +const removedElement = arr.shift(); +let arrDeletedItems = arr.splice(start[, deleteCount[, item1[, item2[, ...]]]]); +---- .Deleting from the beginning of the array. [source, javascript] ---- const array = [2, 111, 5, 1, 9, 6, 7]; // Deleting from the beginning of the array. -array.shift(); // ↪️2 -array.shift(); // ↪️111 -// array: [5, 1, 9, 6, 7] +array.shift(); // ↪️ 2 +array.shift(); // ↪️ 111 +console.log(array); // [5, 1, 9, 6, 7] +array.splice(0, 1); // ↪️ [ 5 ] +console.log(array); // [ 1, 9, 6, 7 ] ---- -As expected, this will change every index, so this takes *O(n)*. +As expected, this will change every index on the array, so this takes linear time: *O(n)*. .JavaScript built-in array.shift **** @@ -210,25 +217,35 @@ The `shift()` method shift all elements to the left. In turn, it removes the fir Runtime: O(n). **** -===== Deleting element from the middle +====== Deleting element from the middle We can use the `splice` method for deleting an item from the middle of an array. +You can delete multiple items at once: + .Deleting from the middle [source, javascript] ---- const array = [0, 1, 2, 3, 4]; // Deleting from the middle -array.splice(2, 1); // ↪️[2] <1> -// array: [0, 1, 3, 4] +array.splice(2, 3); // ↪️ [ 2, 3, 4 ] <1> +console.log(array); // [0, 1] ---- -<1> delete 1 element at position 2 +<1> delete 3 elements starting on position 2 Deleting from the middle might cause most of the array elements to move up one position to fill in for the eliminated item. Thus, runtime: O(n). -===== Deleting element from the end +====== Deleting element from the end + +Removing the last element is very straightforward using pop: -Removing the last element is very straightforward: +.Syntax +[source, javascript] +---- +const removedItem = arr.pop(); +---- + +Here's an example: .Deleting last element from the array [source, javascript] @@ -238,7 +255,7 @@ array.pop(); // ↪️111 // array: [2, 5, 1, 9] ---- -No other element has been shifted, so it’s an _O(1)_ runtime. +No other element was touched, so it’s an _O(1)_ runtime. .JavaScript built-in `array.pop` **** @@ -247,7 +264,7 @@ The `pop()` method removes the last element from an array and returns that eleme Runtime: O(1). **** -==== Array Complexity +===== Array Complexity To sum up, the time complexity of an array is: (((Tables, Linear DS, Array Complexities))) @@ -268,11 +285,14 @@ To sum up, the time complexity of an array is: .Array Operations time complexity |=== | Operation | Time Complexity | Usage -| push ^| O(1) | Insert element to the right side. -| pop ^| O(1) | Remove the rightmost element. -| unshift ^| O(n) | Insert element to the left side. -| shift ^| O(n) | Remove leftmost element. -| splice ^| O(n) | Insert and remove from anywhere. +| `push` ^| O(1) | Insert element on the right side. +| `pop` ^| O(1) | Remove the rightmost element. +| `[]` ^| O(1) | Search for element by index. +| `indexOf` ^| O(n) | Search for element by value. +| `unshift` ^| O(n) | Insert element on the left side. +| `shift` ^| O(n) | Remove leftmost element. +| `splice` ^| O(n) | Insert and remove from anywhere. +| `slice` ^| O(n) | Returns shallow copy of the array. |=== //end::table @@ -306,9 +326,9 @@ include::../../interview-questions/max-subarray.js[tag=description] _Solution: <<array-q-max-subarray>>_ // tag::array-q-buy-sell-stock[] -===== Best Time to Buy and Sell an Stock +===== Best Time to Buy and Sell a Stock -*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ +*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You have only one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ Examples: @@ -317,7 +337,6 @@ Examples: maxProfit([1, 2, 3]) // 2 (buying at 1 and selling at 3) maxProfit([3, 2, 1]) // 2 (no buys) maxProfit([5, 10, 5, 10]) // 5 (buying at 5 and selling at 10) - ---- // _Seen in interviews at: Amazon, Facebook, Bloomberg_ diff --git a/book/images/big-o-recursive-example.png b/book/images/big-o-recursive-example.png index 67395f3c94048535cd4316ac65235f793368b384..77aae59890e1caa77f9d92f49c09fa684160b484 100644 GIT binary patch literal 45616 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 literal 44967 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 OedYKK>zc#&v3~=SUA>(E diff --git a/book/images/recursive-fibonacci-call-tree.png b/book/images/recursive-fibonacci-call-tree.png index f6e028c3cf7c9cad1748ee3072c82a4c6eec3982..ff7b31f355b82a370dd5096579903c178e298e53 100644 GIT binary patch literal 44647 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	?a+`oH`!Xw{JwygigfdaX~~^`FQbDK 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 Xk#^I0FRL61e#y(INWYRYyz_qno7M?x literal 41935 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 diff --git a/book/images/time-complexity-examples.png b/book/images/time-complexity-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba63230f6e51383254695db160cf6be8e286f56 GIT binary patch literal 169748 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 z%0D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 z%0D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 UFOl_s8Uqk`y85}Sb4q9e04{)cvj6}9 literal 0 HcmV?d00001 diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index c357fb1d..6b3ddae2 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -1,9 +1,11 @@ [[part02-linear-data-structures]] == Linear Data Structures -Data Structures comes in many flavors. There’s no one to rule them all. You have to know the tradeoffs so you can choose the right one for the job. +Data Structures come in many flavors. There's no one to rule them all. You have to know the tradeoffs so you can choose the right one for the job. -Even though in your day-to-day, you might not need to re-implementing them, knowing how they work internally would help you know when to use one over the other or even tweak them to create a new one. We are going to explore the most common data structures' time and space complexity. +In your day-to-day work, you might not need to re-implement basic data structures. However, knowing how they work internally can help you understand their time complexity better (Remember the chapter <<big-o-function-statement, How to determine Big-O from code?>>). + +When you are aware of the data structures implementations, you spot when to use one over the other or even extend them to create a new one. We are going to explore the most common data structures' time and space complexity. .In this part we are going to learn about the following linear data structures: - <<array-chap>> @@ -22,6 +24,7 @@ If you want to have a general overview of each one, take a look at the following +++ endif::[] +<<< include::content/part02/array.asc[] <<< @@ -35,5 +38,3 @@ include::content/part02/queue.asc[] <<< include::content/part02/array-vs-list-vs-queue-vs-stack.asc[] - - From 8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 17 Oct 2020 16:33:20 -0400 Subject: [PATCH 066/108] feat(book/array): add array patterns for solving problems --- book/content/part02/array.asc | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index a5b9e567..500f437a 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -296,6 +296,68 @@ To sum up, the time complexity of an array is: |=== //end::table +==== Array Patterns for Solving Interview Questions + +Many programming problems involves manipulating arrays. Here are some patterns that can help you improve your problem solving skills. + +===== Two Pointers Pattern + +Usually we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes handy. Let's do examples. + +*AR-A*) _Given a sorted array of integers, find two numbers that add up to target t and return their values._ + +.Examples +[source, javascript] +---- +twoSum([ -5, -3, 1, 10 ], 7); // [-3, 10] // (10 - 3 = 7) +twoSum([ -5, -3, -1, 1, 2 ], 30); // [] // no 2 numbers add up to 30 +twoSum([ -3, -2, -1, 1, 1, 3, 4], -4); // [-3, -1] // (-3 -1 = -4) +---- + +**Solutions:** + +One naive solution would be use two pointers in a nested loop: + +.Solution 1: Brute force +[source, javascript] +---- +function twoSum(arr, target) { + for (let i = 0; i < arr.length - 1; i++) + for (let j = i + 1; j < arr.length; j++) + if (arr[i] + arr[j] === target) return [arr[i], arr[j]]; + return []; +} +---- + +The runtime of this solution would be `O(n^2)`. Because of the nested loops. Can we do better? We are not using the fact that the array is SORTED! + +We can use two pointers but this time we will traverse the array only once. One starting from the left side and the other from the right side. + +Depending on if the the sum is bigger or smaller than target, we move right or left pointer. If the sum is equal to target we return the values at the current left or right pointer. + +.Solution 1: Two Pointers +[source, javascript] +---- +function twoSum(arr, target) { + let left = 0, right = arr.length -1; + while (left < right) { + const sum = arr[left] + arr[right]; + if (sum === target) return [arr[left], arr[right]]; + else if (sum > target) right--; + else left++; + } + return []; +} +---- + +These two pointers have a runtime of `O(n)`. + +REMEMBER: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. + +===== Sliding Windows Pattern + +TBD + ==== Practice Questions (((Interview Questions, Arrays))) From 8fa2746f5c917b0f5a88289d854166210925f9c7 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 19 Oct 2020 09:44:29 -0400 Subject: [PATCH 067/108] feat(book/array): sliding window pattern --- .gitignore | 1 + book/content/part02/array.asc | 130 +++++++++++++++++++++++-- book/images/max-sum-backtracking.png | Bin 0 -> 28439 bytes book/images/max-sum-sliding-window.png | Bin 0 -> 5905 bytes 4 files changed, 123 insertions(+), 8 deletions(-) create mode 100644 book/images/max-sum-backtracking.png create mode 100644 book/images/max-sum-sliding-window.png diff --git a/.gitignore b/.gitignore index 363ed4fe..9675ebf8 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,7 @@ local.properties ###################### # Windows image file caches Thumbs.db +*Zone.Identifier # Folder config file Desktop.ini diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 500f437a..8461f453 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -298,13 +298,13 @@ To sum up, the time complexity of an array is: ==== Array Patterns for Solving Interview Questions -Many programming problems involves manipulating arrays. Here are some patterns that can help you improve your problem solving skills. +Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. ===== Two Pointers Pattern -Usually we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes handy. Let's do examples. +Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. -*AR-A*) _Given a sorted array of integers, find two numbers that add up to target t and return their values._ +*AR-A*) _Given a sorted `array` of integers, find two numbers that add up to a `target` and return their values._ .Examples [source, javascript] @@ -316,7 +316,7 @@ twoSum([ -3, -2, -1, 1, 1, 3, 4], -4); // [-3, -1] // (-3 -1 = -4) **Solutions:** -One naive solution would be use two pointers in a nested loop: +One naive solution would be to use two pointers in a nested loop: .Solution 1: Brute force [source, javascript] @@ -331,9 +331,9 @@ function twoSum(arr, target) { The runtime of this solution would be `O(n^2)`. Because of the nested loops. Can we do better? We are not using the fact that the array is SORTED! -We can use two pointers but this time we will traverse the array only once. One starting from the left side and the other from the right side. +We can use two pointers: one pointer starting from the left side and the other from the right side. -Depending on if the the sum is bigger or smaller than target, we move right or left pointer. If the sum is equal to target we return the values at the current left or right pointer. +Depending on whether the sum is bigger or smaller than the target, we move right or left. If the sum is equal to the target, we return the current left and right pointer's values. .Solution 1: Two Pointers [source, javascript] @@ -352,11 +352,125 @@ function twoSum(arr, target) { These two pointers have a runtime of `O(n)`. -REMEMBER: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. +WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. ===== Sliding Windows Pattern -TBD +The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! + +*AR-B*) _Find the max sum of an array of integers, only taking `k` items from the right and left side sequentially._ +_*Constraints*: `k` won't exceed the number of elements `n`: `1 <= k <= n`._ + +.Examples +[source, javascript] +---- +maxSum([1,2,3], 3); // 6 // (1 + 2 + 3 = 6) +maxSum([1,1,1,1,200,1], 3); // 202 // (1 + 200 + 1 = 202) +maxSum([3, 10, 12, 4, 7, 2, 100, 1], 3); // 104 // (3 + 1 + 100 = 104) +maxSum([1,200,1], 1); // 6 // (1 + 2 + 3 = 6) +---- + +Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k=3` as an example. + +There are multiple ways to solve this problem. Before applying the sliding window, let's consider this other algorithm: + +*Backtracking algorithm* + +- We have two initial choices: going left with `3` or right with `1`. +- We can take the first element from the left side `3`; from there, we can keep going left with `10` or right `1`. +- If we go right with `1` on the right side, next, we have two options from the right side `100` or `10`. +- If we go with `100`, then we compute the sum `3 + 1 + 100 = 104`. +- Repeat with other combinations and keep track of the max sum. + +How many combinations can we form? 2^k, since in the worst-case k is n, then we have a runtime of `2^n`! + +// image::max-sum-backtracking.png[max sum with backtracking] + +We can also visualize all the options as follows. If you add up the numbers from the top to bottom, you get the result for all combinations: + +[graphviz, max-sum-sliding-window-red, png] +.... +graph G { + 0 -- 3 + 0 -- 1 + + 3 -- 10 + 3 -- a1 + + 10 -- 12 + 10 -- b1 + + a1 -- a10 + a1 -- 100 + + 1 -- a3 + 1 -- a100 + + a3 -- b10 + a3 -- b100 + + a100 -- b3 + a100 -- 2 + + 1, a1, b1 [label = 1 color = red] + 10, a10, b10 [label = 10 color = red] + 3, a3, b3 [label = 3 color = red] + 100, a100, b100 [label = 100 color = red] + + 12 -- res1 [color = gray] + b1 -- res2 [color = gray] + a10 -- res3 [color = gray] + 100 -- res4 [color = gray] + b10 -- res5 [color = gray] + b100 -- res6 [color = gray] + b3 -- res7 [color = gray] + 2 -- res8 [color = gray] + + res1 [label = "Sum: 25", shape=plaintext, fontcolor=gray] + res2 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res3 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res4 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res5 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res6 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res7 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res8 [label = "Sum: 103", shape=plaintext, fontcolor=gray] +} +.... + + +Notice that many elements on the middle branches (in red color) have the same numbers but in a different order, so the sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. + +*Sliding window algorithm* + +Another approach is using sliding windows. Since the sum always has `k` elements, we can compute the cumulative sum for k first elements from the left. Then, we slide the "window" to the right and remove one from the left until we cover all the right items. In the end, we would have all the possible combinations without duplicated work. + +Check out the following illustration: + +image::max-sum-sliding-window.png[sliding window for arrays] + +Here's the implementation: + +[source, javascript] +---- +function maxSum(arr, k) { + let left = k - 1; + let right = arr.length -1; + let sum = 0; + for (let i = 0; i < k; i++) sum += arr[i]; + let max = sum; + + for (let i = 0; i < k; i++) { + sum += arr[right--] - arr[left--]; + max = Math.max(max, sum); + } + + return max; +}; +---- + +The difference between the two pointers pattern and the sliding windows, it's that we move both pointers at the same time to keep the length of the window the same. + +The runtime for this code is: `O(k)`. We move the window k times. Since `k <= n`, the final runtime is `O(n)`. ==== Practice Questions (((Interview Questions, Arrays))) diff --git a/book/images/max-sum-backtracking.png b/book/images/max-sum-backtracking.png new file mode 100644 index 0000000000000000000000000000000000000000..3712a651b8e4917a61266b9dda6511c579d93420 GIT binary patch literal 28439 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 U9d`pZyhA*EpmM+9o=MRE0$p#$cmMzZ literal 0 HcmV?d00001 diff --git a/book/images/max-sum-sliding-window.png b/book/images/max-sum-sliding-window.png new file mode 100644 index 0000000000000000000000000000000000000000..67e32d2feb579ba574936056aef303aac7ce1abb GIT binary patch literal 5905 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 U4|JOsl)3>RBa3VJD=tz00mF&ZZ~y=R literal 0 HcmV?d00001 From 273a9dc65410fb0027c04d42ba0ffccfefca606e Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Mon, 19 Oct 2020 15:04:23 +0000 Subject: [PATCH 068/108] :bookmark: chore(release): 2.4.0 # [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) ### Bug Fixes * **book/array:** improve examples and grammar ([04836cd](https://github.com/amejiarosario/dsa.js/commit/04836cd0cec3afb196d11704a45933e325816c20)) ### Features * **book/array:** add array patterns for solving problems ([8c7b7be](https://github.com/amejiarosario/dsa.js/commit/8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e)) * **book/array:** sliding window pattern ([8fa2746](https://github.com/amejiarosario/dsa.js/commit/8fa2746f5c917b0f5a88289d854166210925f9c7)) --- CHANGELOG.md | 13 +++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c98336a7..3bf043c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) + + +### Bug Fixes + +* **book/array:** improve examples and grammar ([04836cd](https://github.com/amejiarosario/dsa.js/commit/04836cd0cec3afb196d11704a45933e325816c20)) + + +### Features + +* **book/array:** add array patterns for solving problems ([8c7b7be](https://github.com/amejiarosario/dsa.js/commit/8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e)) +* **book/array:** sliding window pattern ([8fa2746](https://github.com/amejiarosario/dsa.js/commit/8fa2746f5c917b0f5a88289d854166210925f9c7)) + # [2.3.0](https://github.com/amejiarosario/dsa.js/compare/2.2.1...2.3.0) (2020-10-03) diff --git a/package-lock.json b/package-lock.json index 7ea7ed10..c89355e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9cf19af3..b13293e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.3.0", + "version": "2.4.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 4ba6fe0de1461f2cb75e775f08c855b6d8d93cb5 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 19 Oct 2020 11:18:24 -0400 Subject: [PATCH 069/108] chore(book/array): improve exercises --- book/config | 2 +- book/content/part02/array.asc | 54 +++++++++++++++++---- book/images/max-sum-sliding-window-red.png | Bin 0 -> 41546 bytes 3 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 book/images/max-sum-sliding-window-red.png diff --git a/book/config b/book/config index c95ecf80..95b431fb 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit c95ecf80705c3c41e570c095574fa4c4affee732 +Subproject commit 95b431fb37af4b23a7ce17c183da7313f1d1acb4 diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 8461f453..8050c390 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -300,12 +300,29 @@ To sum up, the time complexity of an array is: Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. +(((Patterns, Two Pointers))) + ===== Two Pointers Pattern Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. *AR-A*) _Given a sorted `array` of integers, find two numbers that add up to a `target` and return their values._ +.Function Signature +[source, javascript] +---- +/** + * Find two numbers that add up target. + * @param arr - The array of integers + * @param target - The target + * @returns {number[]} - array with the values that add up to target. + */ +function twoSum(arr, target) { + // give it a try on your own ... +} +---- + + .Examples [source, javascript] ---- @@ -335,7 +352,7 @@ We can use two pointers: one pointer starting from the left side and the other f Depending on whether the sum is bigger or smaller than the target, we move right or left. If the sum is equal to the target, we return the current left and right pointer's values. -.Solution 1: Two Pointers +.Solution 2: Two Pointers [source, javascript] ---- function twoSum(arr, target) { @@ -354,12 +371,30 @@ These two pointers have a runtime of `O(n)`. WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. -===== Sliding Windows Pattern +(((Patterns, Sliding Window Pointers))) + +===== Sliding Window Pattern The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! *AR-B*) _Find the max sum of an array of integers, only taking `k` items from the right and left side sequentially._ -_*Constraints*: `k` won't exceed the number of elements `n`: `1 <= k <= n`._ +**Constraints**: `k` won't exceed the number of elements in the array: `1 <= k <= n`. + +.Function Signature +[source, javascript] +---- +/** + * Find the max sum of an array of integers, + * only taking `k` items from the right and left side. + * + * @param {number[]} arr - The array of integers + * @param {number} k - The number of elements to sum up. + * @returns {number} + */ +function maxSum(arr, k) { + // Give it a try +}; +---- .Examples [source, javascript] @@ -370,23 +405,23 @@ maxSum([3, 10, 12, 4, 7, 2, 100, 1], 3); // 104 // (3 + 1 + 100 = 104) maxSum([1,200,1], 1); // 6 // (1 + 2 + 3 = 6) ---- -Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k=3` as an example. - There are multiple ways to solve this problem. Before applying the sliding window, let's consider this other algorithm: *Backtracking algorithm* +Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k = 3` as an example. + - We have two initial choices: going left with `3` or right with `1`. - We can take the first element from the left side `3`; from there, we can keep going left with `10` or right `1`. - If we go right with `1` on the right side, next, we have two options from the right side `100` or `10`. - If we go with `100`, then we compute the sum `3 + 1 + 100 = 104`. - Repeat with other combinations and keep track of the max sum. -How many combinations can we form? 2^k, since in the worst-case k is n, then we have a runtime of `2^n`! +How many combinations can we form? `2^k`, since in the worst-case `k` is equal to `n`, then we have a runtime of `O(2^n)`! // image::max-sum-backtracking.png[max sum with backtracking] -We can also visualize all the options as follows. If you add up the numbers from the top to bottom, you get the result for all combinations: +We can also visualize all the options as follows. If you add up the numbers from top to bottom, you get the result for all combinations: [graphviz, max-sum-sliding-window-red, png] .... @@ -438,7 +473,7 @@ graph G { .... -Notice that many elements on the middle branches (in red color) have the same numbers but in a different order, so the sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. +Notice that many middle branches (in red color) have the same numbers, but in a different order, so their sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. *Sliding window algorithm* @@ -450,6 +485,7 @@ image::max-sum-sliding-window.png[sliding window for arrays] Here's the implementation: +.Solution: using sliding window pointers [source, javascript] ---- function maxSum(arr, k) { @@ -470,7 +506,7 @@ function maxSum(arr, k) { The difference between the two pointers pattern and the sliding windows, it's that we move both pointers at the same time to keep the length of the window the same. -The runtime for this code is: `O(k)`. We move the window k times. Since `k <= n`, the final runtime is `O(n)`. +The runtime for this code is: `k`. As we move the window k times. Since `k <= n`, the final runtime is `O(n)`. ==== Practice Questions (((Interview Questions, Arrays))) diff --git a/book/images/max-sum-sliding-window-red.png b/book/images/max-sum-sliding-window-red.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbc1cb10e5aaf9ffd964754db418193834f99b1 GIT binary patch literal 41546 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%0DL~ za-M9C4s!EcS}V@aIk^5a(2ZmivsgY-VEH-o(jwc#WoL7nS9$UKf~~DOPodTE`SI0m zN}u)@bUV9G2}#}@s~S(c!MIrNHE?U=5}(rY+x1(gt>1kK-1~W@#O<Hu$)$@N91eLF zN4bAX7LI<}zv}tD=hig1fKuI*w&5b;0_V?n4HTYxJT?33y5iSYbXz+qFQxE)v!fgs z)~*Zb%FuP_jg!b@n_r!#4QZ0hQ#&KMs#0Q?oEOg$E8|uqnnvZs79b~9J=0%cS+O+G z<2*dq8T@X}_6_UKT}tcgnvR9*diZxOmZdg#%H!n8X_p^E4<w2os&t1|8Gios#6hCy zPW{dMckbNzWh8bXN3RWV{S0)%zN4M9g2SR8)_)tBb3z^VY;MjrI3&cv%uI28ef|5) z%%kdIjiv0l-mb1N<BQ#0T`i-dDPKA|7KW;J9EwoFKNlY*>j|Xb^;o#OU%{O9bNt4d z=^g5(v&;kHzcUSU($JwheB_7)gs9%_6Fhk`)uP}9q1w*(xE@vpYY31}`u_d9rZ{WI z;9vqsX(A#b&ogwhzoS=MVms{P;_524p3{5X@?43>z|60#mz{EJ-_EUiUU$^xdw7Fl zQ(bWIgttQIly{I*ujDx6zEh%RPor~8MNLen<;jm^8Ma8u=ov&ldQ7!@@oHJ5gJXf) zw}7B;#>*XFrfB`l+WsW5hW1dVxH{V|yojYec~kLj{J^gI+$WCp^$u^{m#acBPg?Zy zIAIz8b~=`B%_UqtxGMj5sE655Bg?)A_uLGHjv0D{W?#-z+wNVi>T&w1LYr@(_loCI zdG6H5&)$>{7^&av@GdyM$|xNB$l~}n7Z*;YmT7C(;~MM-7ZzBU6+%K-+wRvYz4_|7 z)R-#(oPr7lfz5C-<P=#D$Fs1uK7Z-bCFRuC7wr~!17VzZ93AT?7x=;y#~~CQ_~*~k zyU91RWv%1m<9|-|jf^}Ougp8xahxh7@71dWMb1Qw3RJ1Kn7%45PDfpb9RE@*>-N(x z^)tUuX21K=+xyhTU1HDsD&XP%=;HIf01lPvyU8~}Qj~ImY<dwgQ%aw41i7!mJ;y__ zs+Jh}$Gfla^6!YLta5%=H#Q$2%O1;0;dw&nyjD2f*3GBIX`WsXVY+bS@#HVT!2@lS zV+oQZGaYf(#~qXHGcz|+eeJ$Bi~pmYuC0CKu{kSgx8{+@hm>R<y}aTSrYO67x2(0o z(_5YGsrL#g;o_BS-5foY3Hy@Pv&A-Mtct51_GYZ4#`1>5+k$z14oQFSQJQ~e#kFrT zJIq*XZn8R+UdeJMV}5RMq<(DPHba}zPd@2|HXq+ZWjr<Wy_G@cHcC>aA}0;34_}XE zt$Xm{>iL`jvO(EzcF~7wcT)$;AM)>#%ipz7ekzTMq<@{!hm$v=*4~M8?~YI8E#jo7 zH6rI9af;m^nAH_z92p^5pLMg@{hi!XXS27=gNo~m5@t02{+wU5oT<Njl2w4u>t~Xp zI~K^K`8$^qoU?AR>OD#}%u$>t*+khv%|Frm6)#h_|H_~MaciBH_;&lmGXqBa;K;l) z9Lz?vcj6hzjH6W~`l9_F)!ogiZIq_Zu&Q$GVd@3?$?hUvqhy8Vo0<Lp{X`fFAKiB1 zc|HGgQ7ppG)pdiC=FKsb%Wq3cN{TMi4hlYH7OlVH{kV%PpM0VGBJr@sj1*6}PLwa0 zHas}vb%D~eBC;MzvsJk_DCd^%!cB)pNT%{`Hmt<s=9nAaHW&~eRNdh@j~`PqG-<is zslhTW?PkM8e4o+h8Qfnpy$#Q@RfG!fEyO4$g;OYRTo6m*0Q;gPmSkteKh?w67s`2y zOPtmD9%^Um5Jr)AGH-loRZN^FzqP-Cy-@qZMVN#?OoCoAUaiF}a`f-dzmH`gnI1c@ z<s~i68k*XAR%X8(J2me2^Npw57RsZECwi#J*(ov?i5vZa1z6fDs#0uVqLfRHA9NOH zRo!jFg|$q?T0XqaNSH*s1x%uNY-LnNglYPhASr)e;q}{G*&P`+q78RGiPC=e7S>=R z<-_}Gas`Z!MXOSM>%HwZe}H+nqYERc+v?WEV^4k0x7g^w@QKUH@z81V&<%Zlpk?DW z@43F4G<N-B?rmE;&%8uQ(Y;uJ3>a@~rIwBLe1d*voyhqZN>6gEkpY|m?_iRq<=A)c z+r&o(oTpW*F8D+~lTQ-eD;(HZP^h*mFVKvBp}hFtSLXvEwkKI}@7q6-<9<<J!0n~? z!+w;LKQttsg>5>QUinj$bO=wJgj>5Hz!1?iHvIVkZBdEyp54C1O~QkMDdx&F+?2b& z%{kHe%SK(4J(ot+DDOsU<_oP(auRP$-ob5iXWsK118I!+aea6tEW=1kBtKwf@GfDz zhOLzmaFIct27%LT!hdgW`9E&~JNwf9Poi}XKatnxYV**+9(E%Fd|PnA<}W5e_m-o@ zOgmXq>7jCR>)G-xa4Jc{iuU;&RC+0C_Wt1~?=#O1)aU-^uSH+5FDhke@1ooF3G2v4 ztmB&dJNB@xpS&pyy2LwIy=iv)!hA^6CNW$c!eR!xx{vQlvYm@)5&7;tkL7#{-@&?5 z81#s5eQ@UI@?E%#=LsW|7M4!BU6~1zMdbg!8+EP-?0kexjC7BZJr*D}R@Qon+1PpN zsI&EY!5}aA%bo!cC0Zq=_3Wv~`0Q(WvhR!a9!>3@N(=e#ANp#e=OyjwMiuh4Zj_9l ziZljqVM%OBtNV7WQ0t6V8r6)n8_9;jU-sT;xsXAJxZruMhsqB|$p+O^%<b$3H@S+v z5Psul^6zI33jDPhqoOS5SB|M$U@`OB85e+!e01oIv>>DQfjxsGq*VAR6;?1$aOc?+ z^A~yo4lX=nA^cA$-QUG~Q@;07X^rGGVYqznd`t6ANQ0^qM$H<EjU{&_VYluHD!n@- z(boQjOcBbygEanA*<9qRXWVS|67K|NRAnf%D3RtpN=B-_X3}yQh9Zn-IP;%pcu0At zD3>rPF^Qd|S?OYfM@?f99g`)WN0srCfxAi8OebD4LIrU_;uebyRR6yDQ@REVd-L@( z5u0;<l5EltAj5C$y{>Ra#Cv7%2yDzWOp%jQ3Cmr<aq6l;```GJXG;YE%hmPm56(Pg z9@PG?J3(0ZY7=#CuY1LXzt$64U17Y#^K5iVZ9`(cEIT#4pRbK_36WHEM};85#7SJQ zvuF1G@SMF152>HbgrSd{DL6OjwCaPELCODoc>bF={Pnq~B_eNE-1$U)<Ra;5V6@y) zSC2-l)RZW~jvEZV@q^&b3mF%51WWM_|1OamUbaO+OhA=ks_(tqA^*7?HXB%fvHjP> zSr)8ODN5K91R=@IP2*oPxd18?tp;1K?+R(~<<5%1pQ(jT0*^Dl<q8B!P%*#MOixqi z;b9GRbm1BIG&quaO|WL$y?XTyTc$Qj$3)45i>{wi5Ce9HZXT1#)WPb%SYGsjWs&~= z`t&S#)89WZCF0~);@AHdfB0EA`9Prlb9Z+P`XQ0^-?TH@kulH(R<*UZ0z`iW32MRQ zbpI2S)Y^Q>pFW*8&btV+esJbs)v#@Fa4;`JAd7P&a9*D$?E5<Q@7vb`#^CQP-}Nh^ z$477V^!I<Ms|yIIN*o;<Q(J!vx~rL`<vHM?OTYmVWB$6T&>O1I+ef=(bs__NQ*%d0 z-ABf?f;%sl-M#29J5;%JP^~wD`xeK{jKA2zS01|&5E=0MD-%1;SXKUq$`cr!@G%5p zCq>S~#LD^w>bsYu&i2Gm;>0lJWX+hE7-UK>H+gv~Cx;_TF38PIym2i39gd8fc6qZj z3M5W<XJ<12UpSHF`0~2D@v(gp?rVBde|{&Kn3}eCbaYHycet-*bVTXF85uBNG;;JJ z&123>IHHt74mfLeBUYhzlDNOsnVBpADpIj%ZXl@tbP{)2oQfvCQe1q>4MhBE$;aZh zYH@Fai{5b0wE3>ogprRZx{cI$;bG#Nh%63*6JDULW!Z=dw2GjSC4BhkQT`{NzGF&m zy((Z`Y;`cAmgk|exs#Kgk&zKx>!(ZUcHau3FvO89-E${cgpsO;g;8(umO(@~M6(UD z(dQo-Pk?HBCw?9Werli|IQ=tTONT{NVl*Qo<Jiu#9xJW!BTMmR)h011#6Y_Lo7ho5 zSGUT(%eEeCzjF}7(GsBBNkPALGttGwo`sRSVu60<%zO>4<F{JYp_!~AEw&JLh26li z<9Evw3gWDxSUq~U(t=BSdwVk46k9ftm7??5`P4%0QVb<xOE`A3?~?rk0|Oz26Mi^R zLlFca1$WlKs*wek3p{kE1z$AYwre;fHZwdtjMY3ZF$)Ok_u1K7oyW^+{@$U4EyNNv zjy%@#@ObyO-&^V#Yp4R$29Q}+H*OE(o~ex}q;_1Yj9pP@J7wp|oF2-2s@W<8VFtA- zo4K-+I4kV9-J)Q=LwqZRcldK?hqSr9ee-7Z!x7<Ass;KNGIg|woJ0NehY2B%)p{5G z$;nCN*VdPr?ECjDCHcL1GgOwB$DtHZJ*>dm(?f1L>)0<JSH!QjxX014>VJK%MaY^C zT6fRX)dd(VEed*-x_>HTpDMqm-qX`l;;~Wo@#Dv~zCO39S?&m>%&e>#sU`He9z9<l zJEwVIPp4Wq&>NQM?`$k1*H4d=bbB#9ZH;_sVR7+0Nc-5QTi|I94h|#p%WXY983Z4F zY`$RFh&8vkm{+O#rgkpscQB*)<D2S-=Xe+bp(1mRiILH4Rqu3pu+XjN+I$mmhZ6Vo z6<3ehCI2Ee`QFLfcD?h<Z#jACwzD`}&6>Wu93~&vHZ~$2=C^A5l-cq7S=cX`-E&F1 z5o!KYKVMrEl)URQ6l83JTF9m9u~jgS%0wpvQ334pd4|>HdGg5ujsqa4=7}c{jW5D@ zeIJ=aDbLc-@XXOGZ`JWvo16dP<YnGXd<83mO^0d!{)ih#tHJtI$E%i%*G<>{jAjKu zo^3EKcr!vRIAJ)(%FNDA6FW@p4NYwS5)u-=A6)@%M|)njudnY8`E43_6^f@_J9nDh zy}MR3jJF97B4R{aTO<Vq1>#?RNy!W4WV;*Ud&8a>{y|NBA*0<#toz8}!@OaNW;brg zhL^5=2Py=G_)WdFBTPf?jJA$fdpo{-(H3C1gC*t2zMQGE@blZb<@G;jJ50m5XX<JF zi{1$RFOS!;yP<Y0x(y;K&leW%z@<JlG~~NIyn6}q>{D4y2x`ZLg_Fw4BoS(pHF*yo zK0JYXQj71QMaLz=`{$etkaPnYg;Kp6F?M`B%`hkGu4KHAuP@<m)6>(hOS3s2)*JV| z^SBB#1IRveRg5@}5zf3=P2(>sf)8*K|69&FIu>RceWxp|T;s&x1@?^<amk+T;jQeG z@9o>S)atZK@)fr=je}8tTo>upXR8To<xr>zi(oEv`~bMraVe>6NLI-rL6%zk;T>Lk z<I=zzx4qIeGfca7@3ye9QGaC2i$WE3bGo)NA~S;ZYKO(ss$1D)+bF#2zS+U=w?Byd zWD+XAvGi`k?cD68Or1OE=dYVc=RM(CSX$zbs3mp|pX>P|KJy<Zgrt;U1%MZ_lt#W} z9a8P>V{}wn?b!9D=Wd#QChH2z&&pWmGq`z2{}me=yZg+iww?NH5YjgMH;E?VSaeFU zN2;%bb$-{E(efT~)}}vpG3q?e$C~0TZ{N;4Otvw-w`O<_|1ft2C3Z!u%43(rWMC<q z#r#{r(g||p+SdC!oQLwG;y-@*@`&$Y07AX)(j1n5-7*)G@^l-~HCBZscOp)#c0KJV zI!7rc^H@2VBXoM*>S+Inzu5f!qBp`bGz-u6jch$-M`JfK!hA~U)~)O-@7y!-Yrb7v zF|}3Sz(Cw#Zv)It!sCy@L*;KZMhhi;3+~yiPzgcHAO*T;XZ^v~7_c-k8P(?BhAi^N ztwGzC;)A29wlK(&4rXgiUY(sUV%y!7?O$r<_a?ZAZS+ymxkc0SToH9Qjw#F(l%5pJ zaook{Y!`Lu=ly@b+vYp`4+mvU7_m`(8mUoQj5#>Hw$buhf~xM@&zz2*vu@1;4gvSd z2g9-g%ww<%Pc!LUdYP5Q7yq{r$lY&YgclBjINMjfIMdt=Z(bB~xEEm*GED90$UgHL z&xD%K`sPj6)7NqY&cQUEsn-Y{FQdoWP&@8l`06y`hyFF|DMM^2apKO2$;rtj*#(7H z&zAN`zJ6i-iCoF$_YZ)wB2`*Zq-vpy1`19AJlILx{kbcS*+P9zxFYgC`t4gXU%s3= zI_sfJY{`(I8r9yvH!C}vKU&2CSqFhHh6MNR@pmqTbu}h=D>y70n-J0=R7nN-`Ondi z#l~7a<#^zf@TllMTSxApo2$?oLDvL0JC5j-bi3lWSLahxQ=gQ?=h0&Kk?pm{5{7Y{ zup7aHWOgxQbfe4_frVP#7$5>T+Ve=Fc2Q9kT3fN=1R968>ZfDBz?eQy<RfLO`<DCm zN;Z3#-^$7g+OjSq-a35rICsf@BPI@>ivT}97Vn{hYKSv9_@b6OvPZHCC0QBm;PmWl zH8hVmc1t+ky=&m+=C*=Uc&XO!B0M4%V4CggPQb(wF%`ohVS=zHa`L3(kpCJ~|MCk8 z+J86_$Ky`DQw6&dw}S<?D}IUu3b%tWgBWvMP_X$&!4aC&j|REf!mf}@>8nmjO$}YA zkwo%@Afn*jkNgp)NjtE_eqcrc+i;cJENk6_y?%IKdptrpdzk2=TMg~fH-A~edB0a^ zjMQ8osUdz({S=0lByvrd#>{}v&*vMrOj}+fYbSo$a4ls8{`<$&GxLAHL=utx|MMS4 l9{=))W!?PuQAFSUVe59@YC9lN9YTCTNlsNZ>&&%#{|981MAQHP literal 0 HcmV?d00001 From f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Thu, 22 Oct 2020 12:22:03 -0400 Subject: [PATCH 070/108] feat(book/hashmap): add code examples and patterns --- book/D-interview-questions-solutions.asc | 6 +- book/content/part02/array.asc | 15 +- book/content/part02/hash-map.asc | 680 ++++++++++++++++++ book/content/part03/map.asc | 71 -- book/content/part03/set.asc | 3 +- book/content/part03/treemap.asc | 59 +- .../old-hashmap.asc} | 72 +- book/images/sliding-window-map.png | Bin 0 -> 18904 bytes .../most-common-words-ii.js | 47 ++ .../most-common-words-ii.spec.js | 26 + book/part02-linear-data-structures.asc | 4 + book/part03-graph-data-structures.asc | 8 +- book/part04-algorithmic-toolbox.asc | 1 - book/readme.asc | 2 +- src/data-structures/custom/lru-cache.js | 60 +- src/data-structures/custom/lru-cache.spec.js | 12 + 16 files changed, 865 insertions(+), 201 deletions(-) create mode 100644 book/content/part02/hash-map.asc delete mode 100644 book/content/part03/map.asc rename book/{content/part03/hashmap.asc => deprecated/old-hashmap.asc} (87%) create mode 100644 book/images/sliding-window-map.png create mode 100644 book/interview-questions/most-common-words-ii.js create mode 100644 book/interview-questions/most-common-words-ii.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index e93409f5..1e37568f 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -437,7 +437,8 @@ The complexity of any of the BFS methods or DFS is similar. :leveloffset: -1 [#hashmap-q-two-sum] -include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] +include::content/part02/hash-map.asc[tag=hashmap-q-two-sum] +// include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] This simple problem can have many solutions; let's explore some. @@ -480,7 +481,8 @@ include::interview-questions/two-sum.js[tags=description;solution] [#hashmap-q-subarray-sum-equals-k] -include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] +include::content/part02/hash-map.asc[tag=hashmap-q-subarray-sum-equals-k] +// include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] This problem has multiple ways to solve it. Let's explore some. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 8050c390..86acc40a 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -3,10 +3,11 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] +(((Array))) (((Data Structures, Linear, Array))) [[array]] -=== Array [[array-chap]] -(((Array))) -(((Data Structures, Linear, Array))) +[[array-chap]] +=== Array + Arrays are one of the most used data structures. You probably have used it a lot already. But, are you aware of the runtimes of `push`, `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics @@ -300,9 +301,7 @@ To sum up, the time complexity of an array is: Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. -(((Patterns, Two Pointers))) - -===== Two Pointers Pattern +===== Two Pointers Pattern (((Patterns, Two Pointers))) Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. @@ -371,9 +370,7 @@ These two pointers have a runtime of `O(n)`. WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. -(((Patterns, Sliding Window Pointers))) - -===== Sliding Window Pattern +===== Sliding Window Pattern (((Patterns, Sliding Window))) [[sliding-window-array]] The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc new file mode 100644 index 00000000..378c62bb --- /dev/null +++ b/book/content/part02/hash-map.asc @@ -0,0 +1,680 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +(((Map))) (((HashMap))) (((HashTable))) (((Data Structures, Linear, HashMap))) +[[hashmap-chap]] +=== Hash Map + +A Map is a data structure where a `key` is mapped to a `value`. It's used for a fast lookup of values based on the given key. Only one key can map to a value (no duplicates). + +NOTE: Map has many terms depending on the programming language. Here are some other names: Hash Map, Hash Table, Associative Array, Unordered Map, Dictionary. + +==== Map Application + +Maps are one of the most popular data structures because of their fast lookup time. + +.Holding key/value pairs have many applications like: +- *Caching*: keys are URLs, and values are website content. +- *Indexing*: keys are words, and values are the list of documents where they are found. +- *Spell checking*: keys are English words. +- *Networks*: the key is an IP address/port number, while the value is the corresponding application. + +There are many other use cases. We will explore some techniques that we can use to speed up your code with it. But first, let's get the fundamentals out of the way. + +==== Map vs Array + +A map shares some similarities with an array. In an array, the key/index is always a number, while the value in a Map can be anything! + +Both an Array and Map are very fast for getting values by key in constant time O(1) on average. + +A Map uses an array internally. It translates the key into an array's index using a hash function. That's why it is also called "Hash Map" or "Hash Table". + +==== Map vs Objects + +JavaScript has two ways to use Maps: one uses objects (`{}`), and the other is using the built-in `Map`. + +.Using Objects as a HashMap. +[source, javascript] +---- +const objMap = {}; +// mapping values to keys +objMap['str'] = 'foo'; // string as key +objMap[1] = 'bar'; // number as key +objMap[{}] = 'test1'; // object as key (not recommended) +const obj1 = {}; +objMap[obj1] = 'test2'; // object as key (not recommended) + +// searching values by key +console.log(objMap[1]); //↪️ bar +console.log(objMap['str']); //↪️ foo +console.log(objMap[{}]); //↪️ test2 👀 +console.log(objMap[obj1]); //↪️ test2 👀 + +console.log(objMap); // {1: "bar", str: "foo", [object Object]: "test"} +---- + +Notice that the `objMap[{}]` and `objMap[obj1]` return the same value! They both were converted to `[object Object]` as a key. + +Let's now use the built-in Map + +.JavaScript Built-in Map Usage +[source, javascript] +---- +const myMap = new Map(); +// mapping values to keys +myMap.set('str', 'foo'); // string as key +myMap.set(1, 'bar'); // number as key +myMap.set({}, 'test1'); // object as key +const obj1 = {}; +myMap.set(obj1, 'test2'); + +// searching values by key +console.log(myMap.get(1)); //↪️ bar +console.log(myMap.get('str')); //↪️ foo +console.log(myMap.get({})); //↪️ undefined 👀 +console.log(myMap.get(obj1)); //↪️ test2 + +console.log(myMap); +// Map(4) {"str" => "foo", 1 => "bar", {…} => "test1", {…} => "test2"} +---- + +As you can see, `Map` handled other objects as a key much better. + +Objects are one of the oldest data structures in JavaScript. Maps were introduced as part of the ES2015 enhancements to solve the shortcomings of using Object as a Hashmap. Having two methods can be confusing. We are going to make it clear when to use one or the other. + +.Map vs. Object main differences: +- *Object*'s keys should be strings, numbers, or symbols. *Map*'s keys can be anything! Strings, numbers, symbols, arrays, objects, and even other maps! +- *Objects* are not guaranteed to be in insertion order. *Maps* guarantee insertion order. +- When using *Objects* as HashMaps, they might be polluted with other keys defined at the prototype chain. You need to use `hasOwnProperty` or `Object.keys` to avoid these issues. *Maps* doesn't get polluted by the prototype chain. +- *Maps* has been optimized for cases of frequent additions and removals. *Objects* are not optimized. + +When do you use an Object over a Map then? When you need to use JSON since it doesn't support Maps yet. + +You can convert from Map to Object and vice-versa: + +```js +const objMap = Object.fromEntries(myMap.entries()); // map -> obj +const map = new Map(objMap.entries()); // obj -> map +``` + +For completeness, here are some of the most basic operations side-by-side. + +.Object vs Map Side-by-Side +[source, javascript] +---- +// +// Initialization +// +const obj1 = {}; // Empty +const obj2 = { adrian: 33, nathalie: 32 }; // w/values + +const map1 = new Map(); // Empty +const map2 = new Map([['adrian', 33], ['nathalie', 32]]); // w/values + +// +// Access +// +assert.equal(obj1.adrian, undefined); +assert.equal(obj2['adrian'], 33); // also "obj2.adrian" + +assert.equal(map1.get('adrian'), undefined); +assert.equal(map2.get('adrian'), 33); + +// +// Check if the key exists +// +assert.equal(obj1.adrian !== undefined, false); +assert.equal(obj2['adrian'] !== undefined, true); + +assert.equal(map1.has('adrian'), false); +assert.equal(map2.has('adrian'), true); + +// +// Adding new elements +// +obj2['Abi'] = 2; +obj2['Dudu'] = 2; + +map2.set('Abi', 2).set('Dudu', 2); + +// +// Deleting +// +delete obj2.Dudu; + +map2.delete('Dudu'); + +// +// Iterating key/value pairs with for loops +// +for (var k in obj2){ + console.log(`key: ${k}, value: ${obj2[k]}`); +} + +for (const [k, v] of map2){ + console.log(`key: ${k}, value: ${v}`); +} + +// +// Iterating key/value pairs with +// +Object.keys(obj2) + .forEach(k => console.log(`key: ${k}, value: ${obj2[k]}`)); + +map2 + .forEach((v, k) => console.log(`key: ${k}, value: ${v}`)); + +// +// Getting the size +// +assert.equal(Object.keys(obj2).length, 3); +assert.equal(map2.size, 3); + +// +// Representation +// +console.log(obj2); +// { adrian: 33, nathalie: 32, Abi: 2 } +console.log(map2); +// Map { 'adrian' => 33, 'nathalie' => 32, 'Abi' => 2 } +---- + +From this point on, we will use built-in Maps (and not objects). + +==== Key by Reference vs. by Value + +There's a catch when you use objects/arrays/classes as keys on a `Map`. JavaScript will match the key only if it has the same reference in memory. + +Look at the following example: + +.Array as a Map's key +[source, javascript] +---- +const map = new Map(); + +map.set([1, 2, 3], 'value'); +console.log(map.get([1, 2, 3])); // undefined 👀 +---- + +Trying to access a Map's value using a complex type is a common gotcha. If you want array as a key to work, you need to hold on to a reference, like the following example. + +.Array reference as a Map's key +[source, javascript] +---- +const map = new Map(); +const arr = [1, 2, 3]; + +map.set(arr, 'value'); +console.log(map.get(arr)); // 'value' +---- + +The same applies to any key that is not a number, string, or symbol. + +===== Map Inner Workings + +.There are two popular ways to implement Maps, key/value pair data structures: +- Array + Hash Function: Hash Map +- Balanced Binary Search Tree: TreeMap. + +In this chapter, we will focus on the Hash Map implementation, which is the one that JavaScript has built-in. In the next parts, we will cover TreeMap. + +A map uses an array to store the values and a hash function that translate the key into an array index behind the scenes. + +Let's say we have the following key/value pairs. + +[source, javascript] +---- +const map = new Map(); + +map.set('cat', 2); +map.set('dog', 1); +map.set('rat', 7); +map.set('art', 8); +---- + +.There are multiple algorithms for hashing keys. One of them is using modulo division: +1. Convert the key into a number (a.k.a hash code or pre-hashing). +2. Convert the number from step 1 into an array index using modulo. (`hashCode % arrayLength`). + +.Internal HashMap representation +image::image41.png[image,width=528,height=299] + +No hash function is perfect, so it's going to map two different keys to the same value for some cases. That's what we called a *collision*. When that happens, we chain the results on the same bucket. If we have too many collisions, it could degrade the lookup time from `O(1)` to `O(n)`. + +The Map doubles the size of its internal array to minimize collisions when it reaches a certain threshold. This restructuring is called a *rehash*. This *rehash* operation takes `O(n)`, since we have to visit every old key/value pair and remap it to the new internal array. Rehash doesn't happen very often, so statistically speaking, Maps can insert/read/search in constant time `O(1)`. + +NOTE: collisions and rehashes are handled automatically. But it's still good to know the trade-offs. We will go into more detail when we compare it with TreeMaps. + + +===== HashMap time complexity + +Hash Map is optimal for searching values by key in constant time *O(1)*. However, searching by value is not any better than an array since we have to visit every value *O(n)*. + +(((Tables, Non-Linear DS, HashMap complexities))) + +// tag::table[] +.Time complexity for a Hash Map +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| Hash Map ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time. +// end::table[] + +indexterm:[Runtime, Linear] +As you can notice, we have amortized times since it will take O(n) while it resizes in the unfortunate case of a rehash. After that, it will be *O(1)*. + + +==== HashMap Patterns for Solving Interview Questions + +HashMaps are one of the most versatile data structures. You can speed up many programs by using them correctly. In this section, we are going to explore some common patterns. + +===== Smart Caching (((Patterns, Caching))) +One everyday use case for key/value data structures is caching. If you are working on a trendy website, you can save scale better if you cache the results instead of hitting the database and other expensive services every time. That way, you can server many more users requesting the same data. + +A common issue with cache you want to expire data you don't often use to make room for hot data. This next exercise is going to help you do that. + +*HM-A*) _Design a Least Recently Used (LRU) cache. This cache has a limit on the number of items it can store. Once the limit it's reached, it will discard the least recently used item. Design a class that takes a limit value, and the methods put and get, to insert and get data._ + +.Signature +[source, javascript] +---- +/** + * Least Recently Used (LRU) cache. + * Key/Value storage with fixed max number of items. + * Least recently used items are discarded once the limit is reached. + * Reading and updating the values mark the items as recently used. + */ +class LRUCache { + /** + * @param {number} capacity - The max number of items on the cache + */ + constructor(capacity) { + + } + + /** + * Get the value associated with the key. Mark keys as recently used. + * @param {number} key + * @returns {number} value or if not found -1 + */ + get(key: number): number { + + } + + /** + * Upsert key/value pair. Updates mark keys are recently used. + * @param {number} key + * @param {number} value + * @returns {void} + */ + put(key, value) { + + } +} +---- + +.Examples: +[source, javascript] +---- +const c = new LRUCache(2); // capacity: 2 +c.put(2, 1); // Cache is [2:1] +c.put(1, 1); // Cache is [2:1, 1:1] +c.put(2, 3); // Cache is [1:1, 2:3] +c.put(4, 1); // Removed 1. Cache is [2:3, 4:1] +c.get(1); // Returns -1 (key 1 not found) +c.get(2); // Returns 3. Cache is [4:1, 2:3] +c.put(5, 5); // Removed key 4. Cache is [2:3, 5:5] +c.get(4); // Returns -1 (key 4 not found) +---- + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solution* + +The LRU cache behavior is almost identical to the Map. + +.The differences are: +- LRU cache has a limited size, while Map grows until you run out of memory. +- LRU cache removes the least used items once the limit is reached. + +We can extend the Map functionality. Also, the Map implementation on JavaScript already keeps the items by insertion order. So, every time we read or update a value, we can remove it from where it was and add it back. That way, the oldest (least used) it's the first element on the Map. + +.Solution: extending Map +[source, javascript] +---- +class LRUCache extends Map { + constructor(capacity) { + super(); + this.capacity = capacity; + } + + get(key) { + if (!super.has(key)) return -1; + const value = super.get(key); + this.put(key, value); // re-insert at the top (most recent). + return value; + } + + put(key, value) { + if (super.has(key)) super.delete(key); + super.set(key, value); + if (super.size > this.capacity) { + const oldestKey = super.keys().next().value; + super.delete(oldestKey); + } + } +} +---- + +Notice that we call `put` within `get`. This is to rotate the keys to the top (most recent place). + +.Complexity Analysis +- Time Complexity: `O(1)`. All operations read, write, update, and delete takes `O(1)`. +- Space complexity: `O(k)`. In this case, k, is the capacity of the cache. Even if n has 1 million items, we would only hold to the k most recent ones. + + + +===== Trading Speed for Space (((Patterns, Space for Speed))) + +Maps have a `O(1)` runtime for lookups and `O(n)` space complexity. It can improve the speed of programs in exchange for using a little bit more of memory. Let's do an example. + +Let's say you are working on a webcrawler, and for each site, you want to find out the most common words used. How would you do it? + +*HM-B*) _Given a text, return the most common words in descending order. You should sanitize the input by removing punctuation `!?',;.` and converting all letters to lowercase. Return the most common words in descending order._ + +.Signature +[source, javascript] +---- +/** + * Given text and banned words, + * return the most common words in descending order. + * @param {string} text - The text to parse. + * @param {number} n - The number of results. + * @return {string[]} + */ +function mostCommonWords(text, n = 1) { + // you code goes here +} +---- + +.Examples: +[source, javascript] +---- +mostCommonWords( + 'The map, maps keys to values; Keys can be anything.', + 1); // ['keys'] +mostCommonWords( + 'Look at it! What is it? It does look like my code from 1 year ago', + 2); // ['it', 'look'] +mostCommonWords( + 'a; a,b, a\'s c A!; b,B, c.', + 4); // ['a', 'b', 'c', 's'] +---- + + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solutions* + +.This is a problem that has multiple steps: +1. Split the text into lowercased words and remove whitespaces and punctuation. +2. Count the frequency of words. +3. Sort words by frequency and return the top n words. + +.Possible implementations for each of the steps: +1. We can use regex (regular expressions) and split on non-words `\W+`. The runtime of this will be `O(n)`. +2. Let's discuss this later. +3. We have an array of the word -> frequency pairs. We can sort by the frequency using the built-in sort function and return the subarray with the top n results. The time complexity would be `O(n log n)`. + +For step 2, we can do it in multiple ways. A brute force solution is using 2 for loops to count the number of times each word appear: + +.Solution 1: Brute Force +[source, javascript] +---- +include::../../interview-questions/most-common-words-ii.js[tags=brute] +---- + +Notice that we null out the counted words. That's to avoid counting the phrase more than once. + +.Complexity Analysis: +- Time complexity: `O(n^2)`. We have three steps and each one has its time complexity: O(n) + O(n^2) + O(n log n). Remember that with Big O notation, we only care about the term with the highest order: `n^2`. +- Space complexity: `O(n)`. We use multiple O(n) auxiliary spaces for these variables: `words`, `entries`, and the solution is also n space. + + +Another alternative is to use a Map to count. + +.Solution 2: Map counter +[source, javascript] +---- +include::../../interview-questions/most-common-words-ii.js[tags=map] +---- + +With this solution, we iterate over the words only once. We first get the current count and add one. If the word didn't exist, we would default to a count of 0. Steps 1 and 3 are almost identical to solution #1. + +.Complexity Analysis +- Time Complexity: `O(n log n)`. We have 3 steps: O(n) + O(n) + O(n log n). The most significant term is `n log n`. +- Space complexity: `O(n)`. We used the same O(n) auxiliary space as solution #1 for `words`, `entries`, and the solution. Additionally, we added one more O(n) space for the Map. + + +===== Sliding Window (((Patterns, Sliding Window))) + +We saw <<sliding-window-array, sliding windows with arrays>> before. We are now going to use them with strings. The idea is very similar, we still use the two pointers, and the solution is the "window" between the pointers. We can increase or decrease the window as long as it keeps the constraints of the problem. Let's do an example for better understanding. + + +*HM-C*) _Return the length of the longest substring without repeating characters._ + +.Signature +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + // your code goes here! +}; +---- + +.Examples +[source, javascript] +---- +longestSubstring('abcdaefg'); // 4 ('abcd' or 'aefg') +longestSubstring('abbaa'); // 2 ('ab') +longestSubstring('abbadvdf') // 4 ('badv') +---- + + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solutions* + +We are going to solve this problem by using a sliding window approach. We have two pointers called `lo` and `hi`. They start both at zero, and we increase the window as long as they don't have duplicates. If we found a duplicate, we reopen a new window past the duplicated value. + +Take a look at this illustration doing an example for the string `abbadvdf`: + +image:sliding-window-map.png[sliding window for abbadvdf] + +As you can see, we calculate the length of the string on each iteration and keep track of the maximum value. + +What would this look like in code? Let's try a couple of solutions. Let's go first with the brute force and then improve. + +We can have two pointers, `lo` and `hi` to define a window. We can can use two for-loops for that. Later, within `lo` to `hi` we want to know if there's a duplicate value. We can use two other for-loops to check for duplicates (4 nested for-loop)! To top it off, we are using labeled breaks to skip updating the max if there's a duplicate. + +WARNING: The following code can hurt your eyes. Don't try this in production; for better solutions, keep reading. + +.Solution 1: Super Brute Force +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + let max = 0; + + for (let lo = 0; lo < s.length; lo++) { + repeatedFound: + for (let hi = lo; hi < s.length; hi++) { + // check if it's unique withing [lo,hi] range + for (let i = lo; i < hi; i++) { + for (let j = lo + 1; j <= hi; j++) { + if (i !== j && s[i] === s[j]) break repeatedFound; + } + } + // all are unique between [lo,hi] range + max = Math.max(max, hi - lo + 1); + } + } + + return max; +}; +---- + +This function gets the job done. But how efficient is it? + +.Complexity Analysis +- Time Complexity: `O(n^4)`. In the worst-case, when the string has all unique characters, we have n^4! +- Space complexity: `O(1)`. The only variable we are using is integers. + +Solution 1 has a horrible runtime, but the space complexity is constant. Can we trade space for a better speed performance? Absolutely! + +Instead of having two loops for finding duplicates, we can do one pass and use a Map to detect duplicates. + +.Solution 2: Brute force with Map +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + let max = 0; + + for (let lo = 0; lo < s.length; lo++) { + repeatedFound: + for (let hi = lo; hi < s.length; hi++) { + // check if it's unique withing [lo,hi] range + const map = new Map(); + for (let i = lo; i <= hi; i++) { + if (map.has(s[i])) break repeatedFound; + map.set(s[i], true); + } + // all are unique between [lo,hi] range + max = Math.max(max, hi - lo + 1); + } + } + + return max; +} +---- + +We are using the Map to detect duplicates, where the characters are the keys. + +.Complexity Analysis +- Time Complexity: `O(n^3)`. We have three nested loops that, in the worst-case, each will visit `n` items. +- Space complexity: `O(n)`. We have a map that might grow as big as size `n`. + +One optimization that we can do the solution 2 is to store the index where we last saw a character. We can map each character to its index. That way, when we find a duplicate, we can update the `lo` pointer with it, shrinking the window. + +.Solution 3: Optimized Sliding Window +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + const map = new Map(); + let max = 0; + + for (let hi = 0, lo = 0; hi < s.length; hi++) { + if (map.has(s[hi])) lo = Math.max(lo, map.get(s[hi]) + 1); + map.set(s[hi], hi); + max = Math.max(max, hi - lo + 1); + } + + return max; +}; +---- + +This solution has the least amount of code, and it's also the most efficient! + +Something that might look unnecessary is the `Math.max` when updating the `lo` pointer. You can remove it and try running it with the string "abba", what would happen? + +.Complexity Analysis +- Time Complexity: `O(n)`. We do one pass and visit each character once. +- Space complexity: `O(n)`. We store everything one the Map so that the max size would be `n`. + +<<< +==== Practice Questions (((Interview Questions, Hash Map))) + +// tag::hashmap-q-two-sum[] +===== Fit two movies in a flight + +*HM-1*) _You are working in an entertainment recommendation system for an airline. Given a flight duration (target) and an array of movies length, you need to recommend two movies that fit exactly the length of the flight. Return an array with the indices of the two numbers that add up to the target. No duplicates are allowed. If it's not possible to return empty `[]`._ + +// end::hashmap-q-two-sum[] + +// _Seen in interviews at: Amazon, Google, Apple._ + +Examples: + +[source, javascript] +---- +twoSum([113, 248, 80, 200, 91, 201, 68], 316); // [1, 6] (248 + 68 = 316) +twoSum([150, 100, 200], 300); // [2, 3] (100 + 200 = 300) +twoSum([150, 100, 200], 150); // [] (No two numbers add up to 150) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/two-sum.js[tags=description;placeholder] +---- + + +_Solution: <<hashmap-q-two-sum>>_ + + +// tag::hashmap-q-subarray-sum-equals-k[] +===== Subarray Sum that Equals K + +*HM-2*) _Given an array of integers, find all the possible subarrays to add up to k. Return the count._ + +// end::hashmap-q-subarray-sum-equals-k[] + +// _Seen in interviews at: Facebook, Google, Amazon_ + +Examples: + +[source, javascript] +---- +subarraySum([1], 1); // 1 (1 equals to 1 :) +subarraySum([1, 1, 1], 1); // 3 ([1], [1], [1] equals 1) +subarraySum([1, -1, 1], 0); // 2 (sum([1, -1]), sum([-1, 1]) equals 0) +subaraySum([1, 2, 3, 0, 1, 4, 0, 5], 5) // 8 +// All of these 8 sub arrays add up to 5: +// [2, 30], [2,3,0], [0,1,4], [0,1,4,0], [1,4], [1,4,0], [0,5], [5] +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/subarray-sum-equals-k.js[tags=description;placeholder] +---- + + +_Solution: <<hashmap-q-subarray-sum-equals-k>>_ diff --git a/book/content/part03/map.asc b/book/content/part03/map.asc deleted file mode 100644 index d5448619..00000000 --- a/book/content/part03/map.asc +++ /dev/null @@ -1,71 +0,0 @@ -ifndef::imagesdir[] -:imagesdir: ../../images -:codedir: ../../../src -endif::[] - -[[map]] -=== Map -(((Map))) -(((Data Structures, Non-Linear, Map))) -A map is a data structure to store pairs of data: *key* and *value*. In an array, you can only store values. The array’s key is always the position index. However, in a *Map* the key can be whatever you want. - -IMPORTANT: Map is a data structure that _maps_ *keys* to *values*. - -Many languages have maps already built-in. JavaScript/Node has `Map`: - -.JavaScript Built-in Map Usage -[source, javascript] ----- -include::{codedir}/data-structures/maps/map.js[tag=snippet, indent=0] ----- - -In short, you set `key`/`value` pair and then you can get the `value` using the `key`. - -The attractive part of Maps is that they are very performant usually *O(1)* or *O(log n)* depending on the implementation. We can implement the maps using two different underlying data structures: - -* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. -* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>>). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. - -<<< -include::hashmap.asc[] - -<<< -include::treemap.asc[] - -<<< -==== HashMap vs TreeMap - -.A map can be implemented using hash functions or binary search tree: -- *HashMap*: it’s a map implementation using an *array* and *hash function*. The job of the hash function is to convert the key into an index that contains the matching data. Optimized HashMap can have an average runtime of *O(1)*. -- *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (red-black tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. - - -.When to use a TreeMap vs. HashMap? -* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. -* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. -* `HashMap`’s keys are in insertion order (or random depending in the implementation). `TreeMap`’s keys are always sorted. -* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. -* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. - -===== TreeMap Time complexity vs HashMap - -As we discussed so far, there is a trade-off between the implementations. -(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) - -// also on: book/content/part03/time-complexity-graph-data-structures.asc -// tag::table[] -.Time complexity for different Maps implementations -|=== -.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity -^|_Index/Key_ ^|_Value_ -| Hash Map (naïve) ^|O(n) ^|O(n) ^|O(n) ^|O(n) ^|O(n) -| Hash Map (optimized) ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) -| Tree Map (Red-Black Tree) ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) -|=== -{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. -// end::table[] - -(((Linear))) -(((Runtime, Linear))) -(((Logarithmic))) -(((Runtime, Logarithmic))) diff --git a/book/content/part03/set.asc b/book/content/part03/set.asc index 7b64690e..b1e72b07 100644 --- a/book/content/part03/set.asc +++ b/book/content/part03/set.asc @@ -3,10 +3,9 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] +(((Set))) (((Data Structures, Non-Linear, Set))) [[set]] === Set -(((Set))) -(((Data Structures, Non-Linear, Set))) A set is a data structure where duplicated entries are not allowed. A Set is like an array with only unique values. NOTE: JavaScript already has a built-in Set data structure. diff --git a/book/content/part03/treemap.asc b/book/content/part03/treemap.asc index 4200ac19..511b263e 100644 --- a/book/content/part03/treemap.asc +++ b/book/content/part03/treemap.asc @@ -3,14 +3,20 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[treemap]] -==== TreeMap -(((TreeMap))) -(((Data Structures, Non-Linear, TreeMap))) -A TreeMap is a Map implementation using Binary Search Trees. -(((Binary Search Tree))) -(((BST))) +(((TreeMap))) (((Data Structures, Non-Linear, TreeMap))) (((Binary Search Tree))) (((BST))) +[[treemap-chap]] +=== TreeMap +A Map is an abstract data structure to store pairs of data: *key* and *value*. It also has a fast key lookup of `O(1)` for <<hashmap-chap>> or `O(log n)` for <<treemap-chap>>. + +We can implement a Map using two different underlying data structures: + +* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. +* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>> or Red-Black Tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. + +We already covered <<hashmap-chap>>, so this chapter we are going to focus on TreeMap. + +A TreeMap is a Map implementation using a Balanced Binary Search Trees. Implementing a Map with a tree, TreeMap, has a couple of advantages over a HashMap: * Keys are always sorted. @@ -36,7 +42,7 @@ class TreeMap { } ---- -===== Inserting values into a TreeMap +==== Inserting values into a TreeMap For inserting a value on a TreeMap, we first need to inialize the tree: @@ -58,7 +64,7 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=set, indent=0] Adding values is very easy (once we have the underlying tree implementation). -===== Getting values out of a TreeMap +==== Getting values out of a TreeMap When We search by key in a tree map, it takes *O(log n)*. This is the implementation: @@ -82,7 +88,7 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=iterators, ind Generators are useful for producing values that can you can iterate in a `for...of` loop. Generators use the `function*` syntax which expects to have a `yield` with a value. **** -===== Deleting values from a TreeMap +==== Deleting values from a TreeMap Removing elements from TreeMap is simple. @@ -95,3 +101,36 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=delete, indent The BST implementation does all the heavy lifting. That’s it! To see the full file in context, click here: https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/maps/tree-maps/tree-map.js#L22[here] + + +<<< +==== HashMap vs TreeMap + +.A map can be implemented using hash functions or binary search tree: +- *HashMap*: it’s a map implementation using an *array* and *hash function*. The job of the hash function is to convert the key into an index that contains the matching data. Optimized HashMap can have an average runtime of *O(1)*. +- *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (red-black tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. + + +.When to use a TreeMap vs. HashMap? +* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. +* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. +* `HashMap`’s keys are in insertion order (or random depending in the implementation). `TreeMap`’s keys are always sorted. +* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. +* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. + +==== TreeMap Time complexity vs HashMap + +As we discussed so far, there is a trade-off between the implementations. +(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) (((Linear))) (((Runtime, Linear))) (((Logarithmic))) (((Runtime, Logarithmic))) + +// also on: book/content/part03/time-complexity-graph-data-structures.asc +// tag::table[] +.Time complexity for different Maps implementations +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| <<hashmap-chap, Hash Map>> ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +| <<treemap-chap, Tree Map (Red-Black Tree)>> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. +// end::table[] diff --git a/book/content/part03/hashmap.asc b/book/deprecated/old-hashmap.asc similarity index 87% rename from book/content/part03/hashmap.asc rename to book/deprecated/old-hashmap.asc index ec8d8ea4..ded40a63 100644 --- a/book/content/part03/hashmap.asc +++ b/book/deprecated/old-hashmap.asc @@ -3,7 +3,7 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[hashmap]] +[[hashmap-advanced]] ==== HashMap (((HashMap))) (((HashTable))) @@ -308,73 +308,3 @@ Hash Map is optimal for searching values by key in constant time *O(1)*. However indexterm:[Runtime, Linear] As you can notice, we have amortized times since it will take O(n) while it resizes in the unfortunate case of a rehash. After that, it will be *O(1)*. - - -==== Practice Questions -(((Interview Questions, Hash Map))) - - - -// tag::hashmap-q-two-sum[] -===== Fit 2 movies in a flight - -*HM-1*) _You are working in an entertainment recommendation system for an airline. Given a flight duration (target) and an array of movies length, you need to recommend two movies that fit exactly the length of the flight. Return an array with the indices of the two numbers that add up to the target. No duplicates are allowed. If it's not possible to return empty `[]`._ - -// end::hashmap-q-two-sum[] - -// _Seen in interviews at: Amazon, Google, Apple._ - -Examples: - -[source, javascript] ----- -twoSum([113, 248, 80, 200, 91, 201, 68], 316); // [1, 6] (248 + 68 = 316) -twoSum([150, 100, 200], 300); // [2, 3] (100 + 200 = 300) -twoSum([150, 100, 200], 150); // [] (No two numbers add up to 150) ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/two-sum.js[tags=description;placeholder] ----- - - -_Solution: <<hashmap-q-two-sum>>_ - - - - - -// tag::hashmap-q-subarray-sum-equals-k[] -===== Subarray Sum that Equals K - -*HM-2*) _Given an array of integers, find all the possible subarrays to add up to k. Return the count._ - -// end::hashmap-q-subarray-sum-equals-k[] - -// _Seen in interviews at: Facebook, Google, Amazon_ - -Examples: - -[source, javascript] ----- -subarraySum([1], 1); // 1 (1 equals to 1 :) -subarraySum([1, 1, 1], 1); // 3 ([1], [1], [1] equals 1) -subarraySum([1, -1, 1], 0); // 2 (sum([1, -1]), sum([-1, 1]) equals 0) -subaraySum([1, 2, 3, 0, 1, 4, 0, 5], 5) // 8 -// All of these 8 sub arrays add up to 5: -// [2, 30], [2,3,0], [0,1,4], [0,1,4,0], [1,4], [1,4,0], [0,5], [5] ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/subarray-sum-equals-k.js[tags=description;placeholder] ----- - - -_Solution: <<hashmap-q-subarray-sum-equals-k>>_ - diff --git a/book/images/sliding-window-map.png b/book/images/sliding-window-map.png new file mode 100644 index 0000000000000000000000000000000000000000..d5cd7371e7bb64d896477568b5d933c55a1ae7d3 GIT binary patch literal 18904 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 literal 0 HcmV?d00001 diff --git a/book/interview-questions/most-common-words-ii.js b/book/interview-questions/most-common-words-ii.js new file mode 100644 index 00000000..3b118ea1 --- /dev/null +++ b/book/interview-questions/most-common-words-ii.js @@ -0,0 +1,47 @@ +/** + * Given text and banned words, + * return the most common words in descending order. + * @param {string} text - The text to parse. + * @param {number} n - The number of results. + * @return {string[]} + */ +// tag::map[] +function mostCommonWords(text, n = 1) { + const words = text.toLowerCase().split(/\W+/); + + const map = words + .reduce((m, w) => m.set(w, 1 + (m.get(w) || 0)), new Map()); + + return Array.from(map.entries()) + .sort((a, b) => b[1] - a[1]) + .slice(0, n) + .map((w) => w[0]); +} +// end::map[] + +// tag::brute[] +function mostCommonWordsBrute(text, n = 1) { + const words = text.toLowerCase().split(/\W+/); + const entries = []; // array of [word, count] pairs + + for (let i = 0; i < words.length; i++) { + if (!words[i]) continue; + let count = 1; + for (let j = i + 1; j < words.length; j++) { + if (words[i] === words[j]) { + count++; + words[j] = null; // removed letter once it's counted. + } + } + entries.push([words[i], count]); + } + + return entries + .sort((a, b) => b[1] - a[1]) + .slice(0, n) + .map((w) => w[0]); +} +// end::brute[] + + +module.exports = { mostCommonWords, mostCommonWordsBrute }; diff --git a/book/interview-questions/most-common-words-ii.spec.js b/book/interview-questions/most-common-words-ii.spec.js new file mode 100644 index 00000000..cc0499e0 --- /dev/null +++ b/book/interview-questions/most-common-words-ii.spec.js @@ -0,0 +1,26 @@ +const { mostCommonWords, mostCommonWordsBrute } = require('./most-common-words-ii'); + +[mostCommonWordsBrute, mostCommonWords].forEach((fn) => { + describe(`Most Common words: ${fn.name}`, () => { + it('should work', () => { + expect(fn( + 'The map, maps keys to values; Keys can be anything.', + 1, + )).toEqual(['keys']); + }); + + it('should work', () => { + expect(fn( + 'Look at it! What is it? It does look like my code from 1 year ago', + 2, + )).toEqual(['it', 'look']); + }); + + it('should work', () => { + expect(fn( + 'a; a,b, a\'s c a!; b,b, c.', + 4, + )).toEqual(['a', 'b', 'c', 's']); + }); + }); +}); diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index 6b3ddae2..48ab9ffc 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -9,6 +9,7 @@ When you are aware of the data structures implementations, you spot when to use .In this part we are going to learn about the following linear data structures: - <<array-chap>> +- <<hashmap-chap>> - <<part02-linear-data-structures#linked-list>> - <<part02-linear-data-structures#stack>> - <<part02-linear-data-structures#queue>> @@ -27,6 +28,9 @@ endif::[] <<< include::content/part02/array.asc[] +<<< +include::content/part02/hash-map.asc[] + <<< include::content/part02/linked-list.asc[] diff --git a/book/part03-graph-data-structures.asc b/book/part03-graph-data-structures.asc index baebfd0e..74b01bc6 100644 --- a/book/part03-graph-data-structures.asc +++ b/book/part03-graph-data-structures.asc @@ -21,8 +21,11 @@ include::content/part03/tree-search-traversal.asc[] <<< include::content/part03/binary-search-tree-traversal.asc[] -<<< -include::content/part03/map.asc[] +// <<< +// include::content/part03/map.asc[] + +<< +include::content/part03/treemap.asc[] <<< include::content/part03/set.asc[] @@ -35,4 +38,3 @@ include::content/part03/graph-search.asc[] <<< include::content/part03/time-complexity-graph-data-structures.asc[] - diff --git a/book/part04-algorithmic-toolbox.asc b/book/part04-algorithmic-toolbox.asc index 81e4f476..f1dc3efa 100644 --- a/book/part04-algorithmic-toolbox.asc +++ b/book/part04-algorithmic-toolbox.asc @@ -36,4 +36,3 @@ include::content/part04/backtracking.asc[] <<< include::content/part04/algorithmic-toolbox.asc[] - diff --git a/book/readme.asc b/book/readme.asc index 89c67ba3..97660eb8 100644 --- a/book/readme.asc +++ b/book/readme.asc @@ -11,7 +11,7 @@ Adrian Mejia :revdate: {docdate} :docinfo: :toc: -:toclevels: 2 +:toclevels: 4 :pagenums: :front-cover-image: image:cover.png[width=1050,height=1600] :icons: font diff --git a/src/data-structures/custom/lru-cache.js b/src/data-structures/custom/lru-cache.js index 2907f8e6..2891375f 100644 --- a/src/data-structures/custom/lru-cache.js +++ b/src/data-structures/custom/lru-cache.js @@ -1,47 +1,45 @@ /** * Least Recently Used (LRU) cache. - * (ordered) Map: O(1) - * @param {number} capacity - Number of items to hold. + * Key/Value storage with fixed max number of items. + * Least recently used items are discarded once the limit is reached. + * Reading and updating the values mark the items as recently used. + * @author Adrian Mejia <adrianmejia.com> */ -class LRUCache { +class LRUCache extends Map { + /** + * @param {number} capacity - The max number of items on the cache + */ constructor(capacity) { - this.map = new Map(); + super(); this.capacity = capacity; } + /** + * Get value associated with the key. Mark keys as recently used. + * @param {number} key + * @returns {number} value or if not found -1 + */ get(key) { - const value = this.map.get(key); - if (value) { - this.moveToTop(key); - return value; - } - return -1; + if (!super.has(key)) return -1; + const value = super.get(key); + this.put(key, value); // re-insert at the top (most recent). + return value; } + /** + * Upsert key/value pair. Updates mark keys are recently used. + * @param {number} key + * @param {number} value + * @returns {void} + */ put(key, value) { - this.map.set(key, value); - this.rotate(key); - } - - rotate(key) { - this.moveToTop(key); - while (this.map.size > this.capacity) { - const it = this.map.keys(); // keys are in insertion order. - this.map.delete(it.next().value); - } - } - - moveToTop(key) { - if (this.map.has(key)) { - const value = this.map.get(key); - this.map.delete(key); - this.map.set(key, value); + if (super.has(key)) super.delete(key); + super.set(key, value); + if (super.size > this.capacity) { + const oldestKey = super.keys().next().value; + super.delete(oldestKey); } } - - get size() { - return this.map.size; - } } module.exports = LRUCache; diff --git a/src/data-structures/custom/lru-cache.spec.js b/src/data-structures/custom/lru-cache.spec.js index 73368627..68b846ca 100644 --- a/src/data-structures/custom/lru-cache.spec.js +++ b/src/data-structures/custom/lru-cache.spec.js @@ -75,6 +75,18 @@ describe('LRU Cache', () => { }); }); + it('should work with updates', () => { + // ["LRUCache","put","put","put","put","get","get"] + // [[2],[2,1],[1,1],[2,3],[4,1],[1],[2]] + c = new LRUCache(2); + c.put(2, 1); + c.put(1, 1); + c.put(2, 3); + c.put(4, 1); + c.get(1); + c.get(2); + }); + it('should work with size 10', () => { c = new LRUCache(10); From 0d7a14bb27ee3c5fe98412340b5029d42a7f1077 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Thu, 22 Oct 2020 18:32:38 +0000 Subject: [PATCH 071/108] :bookmark: chore(release): 2.5.0 # [2.5.0](https://github.com/amejiarosario/dsa.js/compare/2.4.0...2.5.0) (2020-10-22) ### Features * **book/hashmap:** add code examples and patterns ([f7b8d59](https://github.com/amejiarosario/dsa.js/commit/f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bf043c1..f0658f95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.5.0](https://github.com/amejiarosario/dsa.js/compare/2.4.0...2.5.0) (2020-10-22) + + +### Features + +* **book/hashmap:** add code examples and patterns ([f7b8d59](https://github.com/amejiarosario/dsa.js/commit/f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd)) + # [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) diff --git a/package-lock.json b/package-lock.json index c89355e3..210a076a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.4.0", + "version": "2.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b13293e8..4384319f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.4.0", + "version": "2.5.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 7659ac626e86a1685403dedc546d1a64a891d24e Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 23 Oct 2020 09:03:48 -0400 Subject: [PATCH 072/108] chore(docs): improve comments here and there --- book/content/part02/hash-map.asc | 2 +- book/content/part02/linked-list.asc | 5 ++- .../linked-lists/linked-list.js | 38 +++++++++---------- src/data-structures/linked-lists/node.js | 2 +- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index 378c62bb..dc8a3a8a 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -11,7 +11,7 @@ A Map is a data structure where a `key` is mapped to a `value`. It's used for a NOTE: Map has many terms depending on the programming language. Here are some other names: Hash Map, Hash Table, Associative Array, Unordered Map, Dictionary. -==== Map Application +==== Map Applications Maps are one of the most popular data structures because of their fast lookup time. diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index eb008fec..3ef0f837 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -3,11 +3,12 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[linked-list]] -=== Linked List (((Linked List))) (((List))) (((Data Structures, Linear, Linked List))) +[[linked-list]] +=== Linked List + A list (or Linked List) is a linear data structure where each node is "linked" to the next. .Linked Lists can be: diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 68d35821..30846c72 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -16,13 +16,6 @@ class LinkedList { } // end::constructor[] - /** - * Alias for size - */ - get length() { - return this.size; - } - // tag::addFirst[] /** * Adds element to the begining of the list. Similar to Array.unshift @@ -92,25 +85,22 @@ class LinkedList { } // Adding element in the middle const current = this.get(position); - if (current) { - const newNode = new Node(value); // <3> - newNode.previous = current.previous; // <4> - newNode.next = current; // <5> - - current.previous.next = newNode; // <6> - current.previous = newNode; // <7> - this.size += 1; - return newNode; - } + if (!current) return undefined; // out of bound index - return undefined; // out of bound index + const newNode = new Node(value); // <3> + newNode.previous = current.previous; // <4> + newNode.next = current; // <5> + current.previous.next = newNode; // <6> + current.previous = newNode; // <7> + this.size += 1; + return newNode; } // end::addMiddle[] // tag::searchByValue[] /** * Search by value. It finds first occurrence of - * the element matching the value. + * the position of element matching the value. * Runtime: O(n) * @example: assuming a linked list with: a -> b -> c * linkedList.indexOf('b') // ↪️ 1 @@ -136,7 +126,8 @@ class LinkedList { * linkedList.get(1) // ↪️ 'b' * linkedList.get(40) // ↪️ undefined * @param {Number} index position of the element - * @returns {Node} element at the specified position in this list. + * @returns {Node|undefined} element at the specified position in + * this list or undefined if was not found. */ get(index = 0) { return this.find((current, position) => { @@ -302,6 +293,13 @@ class LinkedList { const parts = [...this]; // see [Symbol.iterator]() return parts.map((n) => util.inspect(n.node.value)).join(' -> '); } + + /** + * Alias for size + */ + get length() { + return this.size; + } } // Aliases diff --git a/src/data-structures/linked-lists/node.js b/src/data-structures/linked-lists/node.js index 1547a953..9b518cca 100644 --- a/src/data-structures/linked-lists/node.js +++ b/src/data-structures/linked-lists/node.js @@ -6,7 +6,7 @@ class Node { constructor(value) { this.value = value; this.next = null; - this.previous = null; + this.previous = null; // for doubly linked list } } // end::snippet[] From fcf3db6ade12a7ed88a5b7756945a8b090ac63b9 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 23 Oct 2020 09:06:22 -0400 Subject: [PATCH 073/108] fix(linkedlist): rename indexOf to getIndex to make it clearer --- src/data-structures/linked-lists/linked-list.js | 11 +++++++---- src/data-structures/linked-lists/linked-list.spec.js | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 30846c72..9a1b5925 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -101,14 +101,17 @@ class LinkedList { /** * Search by value. It finds first occurrence of * the position of element matching the value. + * Similar to Array.indexOf. + * * Runtime: O(n) + * * @example: assuming a linked list with: a -> b -> c - * linkedList.indexOf('b') // ↪️ 1 - * linkedList.indexOf('z') // ↪️ undefined + * linkedList.getIndexByValue('b') // ↪️ 1 + * linkedList.getIndexByValue('z') // ↪️ undefined * @param {any} value * @returns {number} return index or undefined */ - indexOf(value) { + getIndexByValue(value) { return this.find((current, position) => { if (current.value === value) { return position; @@ -142,7 +145,7 @@ class LinkedList { // tag::find[] /** * Iterate through the list until callback returns a truthy value - * @example see #get and #indexOf + * @example see #get and #getIndexByValue * @param {Function} callback evaluates current node and index. * If any value other than undefined it's returned it will stop the search. * @returns {any} callbacks's return value or undefined diff --git a/src/data-structures/linked-lists/linked-list.spec.js b/src/data-structures/linked-lists/linked-list.spec.js index 9026db8e..09ba8feb 100644 --- a/src/data-structures/linked-lists/linked-list.spec.js +++ b/src/data-structures/linked-lists/linked-list.spec.js @@ -122,14 +122,14 @@ describe('LinkedList Test', () => { }); }); - describe('#indexOf', () => { + describe('#getIndexByValue', () => { it('should find element index', () => { - expect(linkedList.indexOf(0)).toBe(0); - expect(linkedList.indexOf('found')).toBe(1); + expect(linkedList.getIndexByValue(0)).toBe(0); + expect(linkedList.getIndexByValue('found')).toBe(1); }); it('should return undefined', () => { - expect(linkedList.indexOf('hola')).toBe(undefined); + expect(linkedList.getIndexByValue('hola')).toBe(undefined); }); }); From ba110e26b2103265bb78809618c7e29c185acd70 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 23 Oct 2020 14:10:18 -0400 Subject: [PATCH 074/108] fix(linkedlist): refactored methods and improve book images and explanations --- book/content/part02/linked-list.asc | 168 +++++++------- book/images/dll-add-first.png | Bin 0 -> 56052 bytes book/images/dll-add-last.png | Bin 0 -> 58568 bytes book/images/dll-insert-middle.png | Bin 0 -> 48604 bytes book/images/dll-remove-first.png | Bin 0 -> 16311 bytes book/images/dll-remove-last.png | Bin 0 -> 15981 bytes book/images/dll-remove-middle.png | Bin 0 -> 14650 bytes book/images/dll.png | Bin 0 -> 10233 bytes .../linked-lists/linked-list.js | 207 +++++++++--------- .../linked-lists/linked-list.spec.js | 14 +- src/data-structures/linked-lists/node.js | 2 +- 11 files changed, 191 insertions(+), 200 deletions(-) create mode 100644 book/images/dll-add-first.png create mode 100644 book/images/dll-add-last.png create mode 100644 book/images/dll-insert-middle.png create mode 100644 book/images/dll-remove-first.png create mode 100644 book/images/dll-remove-last.png create mode 100644 book/images/dll-remove-middle.png create mode 100644 book/images/dll.png diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 3ef0f837..bba5d906 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -9,58 +9,61 @@ endif::[] [[linked-list]] === Linked List -A list (or Linked List) is a linear data structure where each node is "linked" to the next. +A list (or Linked List) is a linear data structure where each object has a pointer to the next one. .Linked Lists can be: -- Singly: every item has a pointer to the next node -- Doubly: every node has a reference to the next and previous node -- Circular: the last element points to the first one. +- *Singly*: every item has a pointer to the next. +- *Doubly*: every item has a reference to the next and the previous. +- *Circular*: the last element points to the first one, forming an infinite loop. + +JavaScript doesn't have a built-in List. However, it's straightforward to create. + +[[node-class]] +.Linked List Node Implementation +[source, javascript] +---- +include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] +---- + +Let's go one by one! [[singly-linked-list]] ==== Singly Linked List -Each element or node is *connected* to the next one by a reference. When a node only has one connection, it's called a *singly linked list*: +In a singly linked list, each element or node is *connected* to the next one by a reference. + +Usually, a Linked List is referenced by the first element called *head* (or *root* node). Let's say that we have a list of strings with the following values: `"art" -> "dog" -> "cat"`. It would look something like the following image. .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. image::image19.png[image,width=498,height=97] -Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +If you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. [[doubly-linked-list]] ==== Doubly Linked List -When each node has a connection to the `next` item and also the `previous` one, then we have a *doubly linked list*. +Doubly Linked List has two references to the `next` and `previous` node. .Doubly Linked List: each node has a reference to the next and previous element. -image::image20.png[image,width=528,height=74] - -With a doubly list, you can not only move forward but also backward. If you keep the reference to the last element (`cat`) you can step back and reach the middle part. +image::dll.png[] -If we implement the code for the `Node` elements, it would be something like this: +With a doubly-linked list, you can move not only forward but also backward. If you keep a pointer to the `last` element (`cat`), you can step back recursively. -// image:image21.png[image,width=528,height=285] - -.Linked List Node Implementation -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] ----- +Finding an item on the linked list takes O(n) time. Because in the worst-case, you will have to iterate over the whole list. ==== Linked List vs. Array -Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. - -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. It has to create a larger array (usually 2x) and copy all the elements when it is getting full. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor are large chunks of memory booked beforehand like arrays. Linked List is more on a "grow as you go" basis. +Arrays give you instant access to data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. -Another difference is that adding/deleting at the beginning on an array takes O(n); however, the linked list is a constant operation O(1) as we will implement later. +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. If the array fillup, it has to create a larger array (usually 2x) and copy all the elements when it is getting full. That takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other in RAM, nor are large chunks of memory is booked beforehand like arrays. Linked List is more on a "grow as you go" basis. *Linked list wins on memory usage over an array.* -A drawback of a linked list is that if you want to insert/delete an element at the end of the list, you would have to navigate the whole collection to find the last one: O(n). However, this can be solved by keeping track of the last element in the list. We are going to implement that! +Another difference is that adding/deleting at the beginning of an array takes `O(n)`; however, the linked list is a constant operation `O(1)` as we will implement later. *Linked List has better runtime than an array for inserting items at the beginning.* ==== Implementing a Linked List We are going to implement a doubly linked list. First, let's start with the constructor. -// image:image22.png[image,width=528,height=251] +The only must-have field on the constructor is the `first` or head reference. If you want to insert it to the back of the list in constant time, then `last` pointer is needed. Everything else is complimentary. .Linked List's constructor [source, javascript] @@ -71,69 +74,49 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=constructor] } ---- -In our constructor, we reference the `first` and `last` node for performance reasons. +The iterable parameter is a nice to have. That will allow you to convert an array of items into a linked list. E.g. `const list = new LinkedList([1, 2, 3]);` -==== Searching by value +==== Searching by value or index -There’s no other way to find an element by value than iterating through the entire list. - -.Linked List's searching by values -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByValue, indent=0] ----- +There’s no other way to find an element by value than iterating through the list. So, the runtime is `O(n)`. -If we find the element, we will return the index otherwise `undefined`. The runtime for locating an item by value is _O(n)_. +There are two prominent use cases for search: find an element by value, or find them by their index/position. -For finding elements by value or position, we are using the following helper function: +We can use a for-loop to keep track of the index and the current node simultaneously. Whichever fulfill first, we return that one. -.Find elements using a callback +[[linkedlist.findBy]] +.Linked List's searching by values or index [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=find, indent=0] ---- -<1> We initialize two variables `current` to the first node and `position` to keep track of the index. +<1> We initialize two variables `current` to the first node and `position` to 0 to keep track of the ordinal number. <2> While the `current` node is not null, we keep going. <3> On each loop, we move to the next node and increment the index. -<4> We invoke the callback passing the current position and node. If the callback returns something, then we stop and return that value. -<5> Return whatever result we got from the callback. E.g., we can return the index or the node itself or any other calculation. - -We are going to use this `find` method again to implement searching by index. - -==== Searching by index - -Searching by an index is very similar, we iterate through the list until we find the element that matches the position. - -.Linked List's searching by index (position) -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByIndex, indent=0] ----- - -If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar; you want to take a look at the https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[full implementation]. +<4> We check if the index is the one provided or if the node has the expected value. +<5> Returns the index and the current node if found. ==== Insertion -In a linked list, you can add elements at the beginning, end, or anywhere in the middle of the list. So, let's implement each case. +You can add elements at the beginning, end, or anywhere in the middle of the list in a linked list. So, let's implement each case. [[linked-list-inserting-beginning]] ===== Inserting elements at the beginning of the list -We will use the `Node` class to create a new element and stick it at the beginning of the list, as shown below. +We will use the <<node-class, Node class>> to create a new element and stick it at the beginning of the list, as shown below. .Insert at the beginning by linking the new node with the current first node. -image::image23.png[image,width=498,height=217] +image::dll-add-first.png[] -To insert at the beginning, we create a new node with the next reference to the current first node. Then we first make the new node. In code, it would look something like this: +To insert at the beginning, we create a new node with the next reference to the current first node. Then we update the pointer `first` to the new node. In code, it would look something like this: .Add item to the beginning of a Linked List [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addFirst, indent=0] ---- - -As you can see, we create a new node and make it the first one. +<1> It might be confusing seen `this.first.previous`. It means that we are updating the `previous` pointer of the `art` node to point to `new`. ===== Inserting element at the end of the list @@ -141,7 +124,7 @@ As you can see, we create a new node and make it the first one. Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item. Otherwise, you would have to iterate through the whole list. .Add element to the end of the linked list -image::image24.png[image,width=498,height=208] +image::dll-add-last.png[] .Linked List's add to the end of the list implementation [source, javascript] @@ -154,9 +137,9 @@ If there’s no element in the list yet, the first and last node would be the sa ===== Inserting element at the middle of the list -For inserting an element in the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. +For inserting an element in the middle of the list, you would need to specify the position (index) in the list. Then, you create the new node and update the references around it. -.There are 4 references to update: +.There are four references to update: . New node's `next`. . New node's `previous`. . New node's previous `next`. @@ -169,12 +152,13 @@ Let’s do an example with the following doubly linked list: art <-> dog <-> cat ---- -We want to insert the `new` node in the 2^nd^ position. For that, we first create the "new" node and update the references around it. +We want to insert the `new` node in the 2^nd^ position (index 1). For that, we first create the "new" node and update the references around it. -.Inserting node in the middle of a doubly linked list. -image::image25.png[image,width=528,height=358] +[[dll-insert-middle-img]] +.Inserting node in the middle. +image::dll-insert-middle.png[] -Take a look into the implementation of https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/linked-lists/linked-list.js#L83[LinkedList.add]: +Take a look into the implementation of `LinkedList.add`: .Linked List's add to the middle of the list [source, javascript] @@ -183,41 +167,44 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addMiddle, in ---- <1> If the new item goes to position 0, then we reuse the `addFirst` method, and we are done! <2> However, if we add to the last position, we reuse the `addLast` method and done! -<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <<Searching by index>> to see `get` implementation. +<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <<linkedlist.findBy>> to see `findBy` implementation again. <4> Set newNode `previous` reference. <5> Set newNode `next` link. -<6> No other node in the list points to `newNode`, so we have to make the prior element point to `newNode`. -<7> Make the next element point to `newNode`. +<6> So far, no other node in the list points to `newNode`, so we the `art` node's next point to `new` (refer to the <<dll-insert-middle-img, illustration>>). +<7> Make `dog` node's previous point to `new`. -Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and make them point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `get` method. +Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `findBy` method. ==== Deletion -Deleting is an interesting one. We don’t delete an element; we remove all references to that node. Let’s go case by case to explore what happens. +Deleting is an interesting one. We don’t delete an element; we remove all references to that node. The garbage collector will remove it when no one points to it. Let’s go case by case to explore what happens. ===== Deleting element from the head Deleting the first element (or head) is a matter of removing all references to it. .Deleting an element from the head of the list -image::image26.png[image,width=528,height=74] +image::dll-remove-first.png[] -For instance, to remove the head (“art”) node, we change the variable `first` to point to the second node “dog”. We also remove the variable `previous` from the "dog" node, so it doesn't point to the “art” node. The garbage collector will get rid of the “art” node when it sees nothing is using it anymore. +For instance, to remove the head (“art”) node, we change the variable `first` to point to the second node, “dog”. We also remove the variable `previous` from the "dog" node, so it doesn't reference the “art” node anymore. The garbage collector will get rid of the “art” node when it sees nothing is using it anymore. .Linked List's remove from the beginning of the list [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeFirst, indent=0] ---- +.Check for edge cases: +- List is already empty. +- Removing the last node. -As you can see, when we want to remove the first node, we make the 2nd element the first one. +As you can see, when we want to remove the first node, we make the 2nd element (`head.next`) the first one. ===== Deleting element from the tail -Removing the last element from the list would require to iterate from the head until we find the last one, that’s O(n). But, if we have a reference to the last element, which we do, we can do it in _O(1)_ instead! +Removing the last element from the list would require iterate from the head until we find the last one, that’s `O(n)`. But, since we referenced the last element, we can do it in _O(1)_ instead! -.Removing last element from the list using the last reference. -image::image27.png[image,width=528,height=221] +.Removing the last element from the list. +image::dll-remove-last.png[] For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat.” Since nothing is pointing to “cat” it is out of the list and eventually is deleted from memory by the garbage collector. @@ -233,11 +220,10 @@ The code is very similar to `removeFirst`, but instead of first, we update `last ===== Deleting element from the middle -To remove a node from the middle, we make the surrounding nodes to bypass the one we want to delete. +To remove a node from the middle, we make the surrounding nodes bypass the one we want to delete. .Remove the middle node -image::image28.png[image,width=528,height=259] - +image::dll-remove-middle.png[] In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art,” totally bypassing “dog.” @@ -251,11 +237,10 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeByPosit Notice that we are using the `get` method to get the node at the current position. That method loops through the list until it found the node at the specified location. This iteration has a runtime of _O(n)_. -==== Linked List Complexity vs. Array Complexity - -So far, we have seen two-liner data structures with different use cases. Here’s a summary: (((Tables, Linear DS, Array/Lists complexities))) +==== Linked List Complexity vs. Array Complexity + // tag::table[] .Big O cheat sheet for Linked List and Array |=== @@ -273,17 +258,14 @@ If you compare the singly linked list vs. doubly linked list, you will notice th Comparing an array with a doubly-linked list, both have different use cases: -Use arrays when: - -* You want to access *random* elements by numeric key or index in constant time O(1). -* You need two-dimensional and multi-dimensional arrays. - -Use a doubly linked list when: - -* You want to access elements in a *sequential* manner only like <<part02-linear-data-structures#stack>> or <<part02-linear-data-structures#queue>>. +.Use arrays when: +- You want to access *random* elements by numeric key or index in constant time O(1). +- You need two-dimensional and multi-dimensional arrays. -* You want to insert elements at the start and end of the list. The linked list has O(1) while array has O(n). -* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” +.Use a doubly linked list when: +- You want to access elements in a *sequential* manner only like <<part02-linear-data-structures#stack>> or <<part02-linear-data-structures#queue>>. +- You want to insert elements at the start and end of the list. The linked list has O(1) while the array has O(n). +- You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. diff --git a/book/images/dll-add-first.png b/book/images/dll-add-first.png new file mode 100644 index 0000000000000000000000000000000000000000..476565822e3f084fa11d204cd26be85ae24ae3b8 GIT binary patch literal 56052 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 literal 0 HcmV?d00001 diff --git a/book/images/dll-add-last.png b/book/images/dll-add-last.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9b4db1adb9fc7a0494d935304583e999f46562 GIT binary patch literal 58568 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 V`n6_@*n5;oOEVi&{AKsp{{jfd_-z0H literal 0 HcmV?d00001 diff --git a/book/images/dll-insert-middle.png b/book/images/dll-insert-middle.png new file mode 100644 index 0000000000000000000000000000000000000000..aa6efa6e8ba3bd85d86e5e8d9752024d41b860ff GIT binary patch literal 48604 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 Z%HUW2C2m$A?*5q>RTVWKRXnr|`!5j6U+4e; literal 0 HcmV?d00001 diff --git a/book/images/dll-remove-first.png b/book/images/dll-remove-first.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1187bc4b6c2ddbd95c192c1fe65828006fdcd2 GIT binary patch literal 16311 zcmeIZcTkg27dIFzfTAKGMXI8R(vc?Jf}r%?AsBiW2%P{*5l}!yLhsTc^bUzgl@6iz zA|><=Atc!c-*>**-T8KQ|M+Hhc4jlfWXSV8_nvd^@BGd=_ns$QT~*=cb;j!;5a{OH zH*%UF&=oKUL?TU23j8uN+xs2(y7vB!fg1=!L38m(0!mC~0DdHK(^Pl~Li90XfPb!7 zzfgGr0+mHmoWHvY0?8`Bm3yJ>MY1(x|JB6WoAa#32!_t)nE1{+;p+De6n_8BJJrp% zZ{G7g5*H*Z{S*FH=VQzhu9$)wUloy8e|J28rjyGh^zfn1{T7QrWu1E><6nb>%w9#+ zU3p0TRrzK2Z3FnXuU{;bX6g@3DpE(93>!Rmwr3j}^z6a@r~=2D`V-R`-;(XBxg&5t zuF*tK=o%nmpeB?P_yQ?D@FM}f9)H^f1O=tb{iX-L0;#V7S_2m!{(tjgNRFt4DEva7 z*rSIwFIPV)3@NaA3!5<9eS5+@p5{;B3}6See$GveEL~AelTNzDDx*0D3s_HWKvy?6 zUrm$sI(^UD*yHE-kkYJrtQIUJk%pgU!kuXb1O!|H1zKr{tAZVvXE(o8+3NhJADtc_ z*Ozz-twi8h$7@OuLH^8UNhaDGerro<ooU1tN|~?Q<8Jo<eXzund6oxw(ET^PqPyAL zEC=QKRLv-15+(coUW&LUpGoJf@{{w<5Ae6u9fx@&z)CULqq~Cnf7k`U^GY7Z&cZ{U zezUm@h+jy992kYD+C2PQW;gUaAi(rRh4D^&?atb%SG|B#GEtJX#(uT$3J8>f@F`-3 z6iKODXV;gBrYN4iL_hP{)IXb!Luww_JHrkxyNgW2j{p8~knI0SldGDIw(cKkRJ$U8 z!ta*w#dqB~cq5B%T}5NuR_)-z+p~2Kn)Z;ma<NY=2doEW3alpY=b~kgJw<TC!#F9x z>JxrkOx*mVQ!Yeg6K2+T+Z0-4U!;-?h%4OQ-hQAMJL0uJKZdR_*e(CTRDRjDcs^Ty zQbO*Mtbp(HXbTzYGjg|TN+*NTCPP`b#*Fxw>!9b71<c&^<_qMO5N1M>vv;RHlih7# zxMSpB#9`FbaStAcG4KD`?~m!W<;d*sY4V&);arO)BbH5E_O0s5F1B}9i|&vj2C?yY zJqQnN-Z`zRSz!am!?dnB*AeN5dc}Bo(tfmF1`QNIG`_5_!x=8K$@mC2ko!C)p4xwk z{(F*dQFIenvE#oPuWYB(w}R%?EXkI;V!xhQ`<CA!)h%m;I@IW9&5ipP_opS?v|tAn z937Fnc<B9juA3;?2~Huxn9oT-Hk=K1Up|><eDU2O4EmiBD>&7bX$3|WK9`A-gC83( z2hzKl%^^ABGECL>a=xkdo;PYtu9@8efsUrC%oSwdQMPg;U#ec5zWlRa-pXra=g-?k zp7i?4i*G|6erQ>2XUBf%JF@aA7T@ECAkciGkad5KknFQ0vL_lL)Y7z{2P`Y)`RU9Z zZzI*qC7qh8tZd&^gs1Ig-~#T$ww1trb8?Hl_nm;j-1H0FBtanP$F<e{zZoTB)0?CE zOu_sDoGa<=Tb(tZhQ^|p|E%W7o0mLj5pupI7+2*(;JUcqCXcCEDQqOdssB<elNI+g zxY0{cTGr@V1%tVxM9S{fg3W+7<T>2azJHbhGLj7}hFFqUR^93^!Uay*b0}z=m4w?P zX+Ia}Ju0|i4Tk`@Syz3oqCtv1kj2tqlavN0no`Anynko$j0Av17%P8B8tzY;@$JT< zU;x|l0JiI~IVo;z3U`-|sGV>4?$mP=y`bUP;>-9kc)N^jqt_n}5UBEdSE*%j5G5d0 z$ZklE&IEMh&#O->z4tHNAe0Hl%hC0al9HuZTutQG_FmPwwIL)V=Wz^=|4NWTs$pqy z6(NBHWR}e?7rwU+sp-1+u)X#*$ZdD`8;5VhFr?_F4|1S&5yX@-m?rJbl_KNI2Zr<A zs%`sl%zHw7>4R0;R<vJOE3+O-a9iDvUW&9liAosipr~+`3Gv-At-q$<qk-RyLrT?r zF?Fyv2ZNu;3V}dH!?~%azrTZ{UA&a9T^Hmd<~IZgv#ruC?XTg7=EP_^TjQ}^o0{k< z2K%7hkVo`NL$I^({@kp7=6<3Hvp(6VS*mUJjM$d4`2>@^gDmxdwOUFd@o2M`WA+AI zGQNZ9w@r1*o0C@#g>UA^&a6p6fk)I!(;s-&!jL?IR#CTe;D$=_O!lu7FJefdG4xe* z&{4?30`x#dY?*BBX=~CO=3ffdlz*qHoqAU@Mtx`u6s1I~b$-~ldvu*$m`j@0{6M~= zr+pIobb$h(=jY+V(-&dqe?jz-z9uoe;7pnQ;FZD!O$`BzyuP!e*5JAM1_v(VXBn>% z0~nv%yy)hEyGifEwR;yqfs@sjCq>-XX%OcyB@xf+zx$yQ_Fe$E??`YobTXJ9`ol}; zbnQWO4#k59-Lqp!mq4K5etjmo+*Jye>{+p(_xF7dPLukjfKU^-eAm8Z5qRWFyr<z# z(u;+|2{+8{z#xEXo<4mh_#?jzb7q5u5BSajbzm4e>!O=V03QlwqR$k0MtE+3Kmwzo z%jDoShO*Wf#V?3m7Z7OR$(O2kw!i5m<bkkbnBVWer-Ye^;RN!I(gDSe$;*WdS+BS; zZwKys>`Z^V`Z#w;ky&bA+yApztfX_3NYgooXSU?=w4E(L$#1yX?033Y$x@!5zU+8b z>bVoq68G|l7AtHe;he78kww|l;$6=Nm~VxEl^PJIR4a$djz7R~)X<NJ!h|a<i?0Ik zdzwi;GlE96ZmX$A6?X!xFK!!L)A#lDxPQPxi4u9i2@tXd-;L;>(K7os60%RrH(^V? z^BK4uwbf6b(CB`t7*6bw6hd9QZL?tm0rjP8kMF-=c6(?Mem98nr(@0@`aWR6WS`kP zkiPX-C8&Vrq-G4yA6b`u3z@CF!E!|%LBMkx00zuRxdvX-S3pYtKqk!eB}*o?w{vO+ zfSv2TJE9KP18~l00?aoK=64t%o_bZF00IJ;AsOrgwmQFgqrYZOF3&dXAnc27ZUJ<m zz{JF+7RLup#d!vR!IO=)T87sy=6SDjMIi0$oPLGClF^;CjhncV(rKqqDxc~1)afFN zAWB|}fAH#+yH1;w@4B`>#cLhqqEriUdjJcgoPHm^%e|+rx$Oo9{Qv1q7THu)z`$$c z<C)Q)ajbV`60eFWSXaAk6uV88CyM}{utA0VB@t!^#~Ynw<4eZlh>`{GQe`}NSY+Mp zCYDcE3Lv+#hv(+fwv$sbe{uoYXu1eFcwR!^R!3PF8=3mlg+j0wbIkK)BI%Rhg}R_b zAfrQ6jA*yX#mv>RNbUb90MgXJM;v}19%cP|zKI;19zIeK5iam(=W<1l>*#+T3);PE z_@=lZo;}RKPJF{qM^J2MI^ovlRN=peEPm75XpHCxYAn05Q<$@x<=1fKxQcI#s|G)9 zC|3u>3aonI_d%4Z`R(+!c&Tg&RGc-^*E%RZy8!Zg+I7_S(Qvqc)trfE_SDIABIy|p zz%qy%u$Jf@Y17O>r|FjubOZ%cFrB-D-a3MV+$()NVH&hRt~2m#fdUG;SQgM&^zK!O zFaNYT0<^iMXFyBC9w`1)xU!%iKFN8~_TLg1{H8ZcHS9K^{NJ0tP={8_q1$y7us0_S z67;#iv`^xHn3?N>3I25S>9jE?PV{ZFNFF><q-xKL0O&v>eD`YJlwAR2kq&10QrWE@ zKWcP<6uK~2pa-WPiLQkRAnji<C$ea%STPXNt=gsJLcnyEYv4eUvY~=_{WA$Jh;|zw z{+8nDrJ_2(u2k)RVP<fHK0_VA`3IbW`JZF#blUE`=+W#p7%PaV^Iq+Pn$4MB=={9< zHWIW^P|x+Kz!<=h@)e#V-8OALYnG{Sbt^r(E?`*U2MZMMO<n_-^S!m%&utQ=urxby z&nmwlUZ5t~J@J}5`<DsNF%!(ObWP3&!bPwhxB*Ow2IA+SjhIu$w}SZiKB&d%T4O={ z8m*f(UF$#15u6JY1C{>~{Q2pn$}9iGDWpb%c=OA-9?5~+ENpCa0Fca8qA%?FD-p1( zW5%fK=&O$CTp9xgAqmmywWSNi{sZ(<I$+kR{QrlB*L?}h*#v;NmG`VGIDQ3+E3R3A zS^tyg2oQqB@_%l4vnRjl)3b^zxgNohQ4tImLjQ6N<_A>(g2*w%oP02_61V^ND+KuU za~^<;D}qYA*2Nbf&jYHSJixD&wd;~Qf5(&SGv-HJD@%5FP`FqrDCq*luj_ImO8<8N z2dFe1B@3Wu>-FiSQpLd~j+{GfyuzBaH0Xq=8*C~Hp;0SDq<OVoPm00qivJ|)l`_EK zj9M3n*9O%4@#bR2dwwMP3b8tZ_y6(D1?bWvf%*)Q^?wcT0b@Wdl}sP;jl59rv+*+M z`EWjTWwVZhO;V56ZOu?eIamN*0R;FBwbM%jKSv9=9_5J7q=pC%ddgo+StPqa@ti_m z<sZ3BH9t^Wz8Sca>^S|81V%sYUQNIHU*pEY7wImR<2e?Xkr$y0j4bHQ7H<i!(7n)N z8Gu7&0)Y0{w=0JKLow;hzv%--bxmk#boe;S1s+|3%NIai7Ny^r`seA9R7eo?Yo1m3 zlr-7#YAjzzmdlRA?Fwxj<#?k$2@|6}pMUi6Kdf5?m_kDP&@24OYZr=0?KW+GYgmUv zNxWpmJ*%<46rk3vl|Q}oT=hb&AFoa?{kn8vL9;D#Fi2n5Qb#!qw9+~7^}<{80O|`2 z9Wm_lSv%c>0`w-|(M|_52DlJnbYZM?6JRR+*!AV2EXEa#dB@P6R_;(j#VXuy(^#h` z1Hcp2Z~Z<-fD+jKNX%4<b##;gs*t8I&)oS(SB43|_(MfGT#pjZ+qdSw<?fUI^6V4c z)&UIlybw^k)JfNnmPQHOp{V3SaUrD*2T+b9KL4M|qF4@4NbCOq+CVFShSD*^1rg$I z#}2He7chfd%^r`sPz*s2WLqjFc@Y<BcH_{pm+*GVO$fXo;+k8xL9Ttb!Op*UT;22^ zVz30(Y(O)!LrM8bgi#n*91W-1DBvJX$ww>|O_1%LkMSmwo{xa6?ZRGgI%(6z9KdY? ztvCP)94}ZS{VrfA8>5j6j$^*ds0rxzs~&*!097Ve4nPf`qFGg}%hj!fDXi(V3b}H| z;mbuNApIy{xF~IV@r~SQ7Nrigl&+Te>>hxP>vd^q?ti(sB@gf<(36p(h`SR0QYoD; z69D8u646@*3^e~Ch1>NAE9%OOKl%AT;MgP9wD@>W&5^08B+=2q?sqMrH}eY%xk*wk z$WBpk1k*Rs-UOK0hSRz))ntEB4ycI}pu3$~Zp0`Gnv=}{9mBru6v=}VbsNs#^pm5@ zgM-3}Goyx{o}QCPcl%2cT0pP@xCu1Cmn!A;SlWAS!?xIQP9lDGZ`X*Xl4*g$aqE2d zePU{=s=cj|$Fc+$81zzu*6nP%&N8k70YvdY-4jkW?09)0ndrJKVc%#7u?e~Q??Fe1 z>(fZ%#`sai|K=o@^0M<H{xI#20z||CFjr-wR|)PSHLY?5_7D!+asHw&B&m@D$DtLw zmQN|(jlNVCi?CGy9fiHH?FpAX>k+!C(-y4%;)yP#epW{?&1do8qB7S_xcpp&3MqWX zS`+U{m^3=za<fqYlr>eBjKC-qR=JqnLy;7<UhHqMYW=VZiU%wnv0QXA<F0psY|_#E zYwr##umQxy7VJsDX*1as0T9n^owR`S!RYLfh;-sCP@=qO00g7r1J@0yYxUSAZeFtA zy2y@O|HN=3BEn4tJ*{5!AW|f?45C;i;WB&U#4gz=(2CgH{?`#skp6rH_<X2QCz3Jy z58p-lst^V~$n!VAl=vQchx_w`ENw=C*yRefSX-M$W$~+M{~|X7<=vqdC!S^n#G=xQ zTQ8Eg%7D4qD_hDy_8TS^k{4*JUF2Y~{iHNCF`H{8T6Vt-n!!a*{R^bt-Q1!uWQ{sp z9?tUuV<W--N*{p;pOMx2wsm+|`&IOy1$}MmA{QiBP$4vQw2EuxaH0akPdK9yK|Km2 zNrzM7k2=r^o6?0;iJL=DE=mabxYX)O;Q<H0Y?N%$iIne|FxIp$fLu}7%?Kdq5=%V+ z*_u{bWs)195k?cA$)O=A^#TP;?re5$)}-YIoVUO<Fo*8)%zwSYZq3eI18@lC;^iXQ zvp)*xid=Z=e&q>}?0?!OhFk%K_{62o$~1gWEug<BZKG(E)H)8cmi>=-d2d!GW^!5m zV>hN#QGg<1d1|bIbb@P;`w=`I@u?6F(vCRElqH^W!X1(Jwzd+HzyMHhsBolJO`E<U zqYW8%aYT5&Tx5~{eL&lx7&6LiPD&VTu*AqPQFS;b{jy`SbeTSnulC-h%Aib?lFd)9 zoWbmul>K}Pyn!V5rrpc}&L+R*(!pfwPPQ9ppp3En(4w-vJt$^>`D)tE#+HhasIw|) z%OP7wP)UR2^7Dm@&4yeVV#w9BG5#;A+4~_;wA^=JgS2M+Jkjlu*V1P$QdrW4NIq+m zCtPNkE|8ujvh<2AV3)zq61l$8AWMvq{gzH+&>j+{E8X<?(%nKPl9WffG7&FawTl}) zVtXmgqXK%4$O6|fuQl%5x<8PJtx%RQbXHSitqmqOIrJfsnE5tA;4K6cz9$!Ad4=zO z;%32@pD{oI;zd;pb$4GT>K$Ez*2nu)(gElX&hrn~Ib0+bn66p$31fg;<kI3YFOjBe zy`GD!diwQdWtvHg6%ZA3;wR4n2(9)*go*16Yub$4FBL!12SOeHti>kUE;ew^xNH>L zp7gO`V^u+6NXP&N2(Zt$dno%vp+s^ckDc*vriAZt<VGM69LNwrL)e9H(3R;St>9o@ zAg4yVi^L?hQt&6z&+^Fg-O6p|HKG|ygAE!xHNI1T*aqx2%PN6-H>I74#jQik-5;#R z>^k;y3jOL_aMi6x^ql9%uiZ-d6FVqY`5&$yY}Ygiy5O63TG9}{V86w^AluWSSZK#~ z3g+0z<1cY%N9$gLF5?9K5ANfuM|+Y}%*?WhpJ0PhhI{%>+E+n8#b$6j7h-Xg4GU-2 zL9wn9vQo)8xw$l;UdOWeWwe_A1K948+D{64eol~KjJddR0I=64Bq*M6m0ty|Nghc1 z%;oHAkb5BAs{XC9wA~Q+`*(jK{#hcCk<qI<>U#m{Zul{U)E*~dK&A)_w$BY4dvGc{ zP{-VDlw^)Qdf=DAp{$~k{m3x>GilqfkdFGV1bV)ogL{AE>>~<S5XqOLmWzAK&d-1# z419j%WygtxDTZ-pW!bvg*&*`n_4GU^OW(bkd^V6K3gz#CXHveM&iu~q6yjwJc2+yC z{os8P?HC;yxf~t-`}4L#(q%j>A64SKEwe;JgN6C{`c{-2@t>wD!J52oY1}Ct@1MR7 zk$5|ulaq5W_V~CN62cW%u_`G@RkErqA~#(#D)V`a&=t!K1fns!zl-Pj3iyeQiMS?2 z$l#_sD^r@j$5ia3CEJ~dRiRkCiZ&st;~-*gCpC34;J6I@=l~UIk1IVp3d1Q|o?tdM z`U#{ytI{&ZL@$rRb7@ra7V6yDv3lJS>aZdcf<PcDEe}>+r@d;}q=Abj;(Pt~(xR;N zhC(a21%(0*E>G-?^@`of8AJLwPs-HVHk+s72@{(he9~#sk687>I-1U-W+s+QWp)U; z{U&cd5wQ9)t1w|4%QVu`tsWQanT_YiWz^xM@S7N@KtuoR=AI{NpMwIqstIOe=}v7C zi(2WoEK94SmAmFTy;xw?C|^b?PoKbdYEj*fbX!y=Brjc`L@?EiOk3|w$`YyqfI6Ky zOZGUSq-SbWdSc@)uK4|~QOA(h9DcTZ3Ng%wOIJTPX`Pc>-Z`!2Wja{(?BJEOli@q= z4o9!9Y_+V9W!0*k6Z8l-gIm;O<C>29dvVglX+5I&oT*E;FagfhJ+id39cSu!@_Ti_ z3KyI$4i}^B*k4)DSIve~f)_3LTK_<%*@N$<Nne|8v_*fUY1RLb8&6P|vhpye$f;`m z^EbO&$eFdt<#%Gr<Mwb1Kc}aXFJ>BD9_5A8bcX*)py@GOP`Yv{W@4-`DCIV1e4E=^ zms66MqjK>h)lLP4j{Ruga++hWl=ir_Evk}tQe)dUrJroG5~FY(;l%1@UhIar=UhZS zS6M&~JfVK5vzlV7l#*-YtRZY}=aeO-*6Rs{q-ZZi(ITN`V)bB*&lk36uT>GCuvdT6 zitL>IoT2k&2gO7+XN7upu64`w>JlNY<V#=h6WV5rvi=BE@hPs+u#8d^>N(<fYpYsK z-|)u#Equ2Swqq}p_44<F2YUM?M$@yqlWYb8d8bqStf@>=ccQNe3WROxM38h6PqLj? z*gEdzqMQX%#KpclE+tJ6`G2P2%Gml)bcOiVdyh!pRFQ6y9gq;~pgX9khIxDN`O0A3 z>TT4bv)5LkR$=%H;9vp^CF~(sj4Dtkspm&v<s0*wV<Vf$AS|ybx;CIu9<?{G)^8*Y z@KDt~>0^y$l)X2h?X1Sc<`Yake{}A3qsJcO`G`6AEebj}bD-)9dC!~{-3<EzgZyGa zb+>IC7oMQ3oPPPuFV|R4$-q<I+{~Tw+=<7XW50D{_JZcRqK|N34_sB6B}8h@x=lFf zV8TP}7@Xufpo3GN_4p4g$N*R@UcllO_&U{>)@zXazoVW}eJR}5=+)c^mQ-zB>LNh6 z)E<#l#EfJb-cw~=k`v)FIID2%SY5((;H}OKmBAEHs~VbSB|oRKh@h9;$HL+3KgdlN zv5vjRFZQOF+`~xgs#4Krk&2(bDaE1Xw8<?w&tC`9zUVtH4#IZuC!@YPH=Le8*xwsD zOzrt<aDxhmRbiF|L_R)ioUJg02*QF`as#|?2X~Nd-$2?f{rZRl_x)~%NS0BuH{Sh2 zAYIhGVz}qh=rKZ~S0;<-@dr*YEJyUE56>{ng7Hx=Uf(C}bcyA4^4+P;Ub(j=#(JK= zX*V$Xy2jwfa|q}_-9v<vl=D96Q<pYAQX2mLYL+=%l#$2ETvj|qlVf*|_f+@`H9y37 zJEYz4J*%Jb;Fo3}DO3%TAmYaPd`|-3_8<U!ATE7a?@Q;mO%u)5Q<Bb#?F+AqNu80b z&L$oXz_1-VxZT`?9gTBe!75UZw(6ym%riT$D&1+a&-sLgu)=8Yc{>_Q<R;rx^Eb~~ zyoZoNZO@@xoAFCmM2;Q9@JyEpD4$KX{TKc&)OXlA?Db%p+MCf3BiT4d)Y(HH@vTZV z{X`&0Ea}fSGIw8dH0WmI{O0mLH6O%K=$(dW%WN{BLbNU|S(H5$#`NVn^#orQOvzK% z9@j2ep^m+r;rVTz!+(_hSH9GqBW>FTQ^{M)wL5J52h{yqjsAkmmc?ztW!cp;>$r5& zq;lA>h*6Wy6~;YcS=pXnfR60RA|XbnH)_e9vGZjS`8eO}&b#QK^5_TS>!w+l7b)cz z?k5FNzpWPr`Kqf_{K7B0mi^A<5C${tTb0&bFl$oSoVbh6_Ceddznz{dU=F~(`bAQw zsd|K@i5J8uhtk8A{1N6v7;H)83F*dt8CIKn0=$UQWj)QYap?+9P(Oe9mhK$cQN;J1 z)28TVZ$a`X)VC6A&NP>&+T!{pjl=`m6H1qlj5tZvE*ad2^Riy|(o$`}^3E?iXqU`8 z+o<J@j<QDgXK>G)>O8-Ejx$xcgfT_66;5kk%htD+?&(iOrocJ-AN~AL@sFr<_+leE z=su`aWkP=H(3Uv&Q|ri8-GO;7{*)<UG;CQ9{WIY&Gj;~*{rUW}j(X*pj7@9k%^B>D z&0ak{YIV=0*fPDLp<y3pJdL{DtbFBj+hKW^x+^bq2#|!o0p=;ghQ-p}0`(^+C4gD< zWDDc8c@$^3SDR5%IDa5CB{WjLSf;I8EE9~+=OBF+t5<2LB1kEXa1doT%}w~QB*&Vm zr$(bc(*MJxIR(QaSdkX-)gSt8XAoFCszI^)s_aXiVr-3RNmyJM_N)qiEAoTijq%So z`o$CRGe<da;G%!GNw||7=N1ioMIR{xq#vKny;p6gcC*PZ>q=N=Jaa)km8jl?y)@2< z=02k0YJF?#XRIt9QBth)`guiodv!)(-_tlRmCPMg_cv9dvfU%Xt{BZHQ%-tqJMRa( zZSrwC#9IpEPhDLed6#S#U$MV9H+p(FNPFwb=bUH_(}rna=ob-%1%eC_AC!%kpL7i` zEmhS=3_C;=+H{-1_*(6$v-{h0{#M;Nm?5r&zsh!KFrh`YxWq~vcWa&$CV!-Y1hR5$ zWDM@R<;9s}&))MmJ4P*Ul{mJ<<zq%vz~Lj&<;6W4=H<z2{6gXliJHOugRAVsMjEs@ zc3qq5&CzjABp&7l^UPdl_t`9J&*s)!`Hk=kNuF@*Ak=#OF+8rilVNZeXkh1~=3XmG zlWFotmaT^TiFul+A<5P5@DB@icP<Zf)$MeL*NqA4^N?Z$#UvWnvq^<Qyi^vC!pFE2 zJD1i?o}H)A9O$;_hxfy_jND3K#=YFtEP7Vv_xfMH2C+uoEmRue)=`sutlGG^=aMb5 zBmEw?-T0QXhyx((zxuPr%-vJqDa4$i@nEzq9rxgrkQ=qQh;Lg!nNhaQLq^U_LHy$a zfe87AZV`saG<VkmkwTFOQ&F0jBN1=}M@|b|h3O!$;F<SaDJkdH>wuJAohbz8ZJT9S zDPx;`#q^H1`{~mPyKyM%_#JMl*T1UZy)KgOX#!vu+B}9zk%IU!w#zZKik0KVn#O_= zAN+e#q6@=byR|PP9=4r4Rtz=jWvQ8tC(0sjk1b&)X0JQ@Z519AcJKMLIgUjZvaPjI zmoMBLnL?P~p6J4vi9{59)HkropF3DDToBZcMwP8)?S+o9cFLZJsWBU)LnBh^)#Cfh z{9w=EHKHB+$76I0O75ty&q#Q3D0C3(Lt(QM9c>=##hKwW!vq4d4#V%VUu(QeP0Mz1 zMz-78_B!dZSOs!oRc~iQJGn({aw%J1r64s1Ctm}w8Zf_3Eo4$dBfl!SyJAFX&`iu9 zbwJvP$72a~QuWZFjeLogAF8vQDGpGF^7T0yH$5(Hy-PN7#@K6RDLy5Q?K)Ytml&4! z%D7(Luz@obbxdyp%?30Wl+4**<CYd(P2+2b6L&5|y~$lBwaCZ1_wucuKbxGdHiEGg z$(Ok*{V0&ds;P|~#oKf-aAvu@mheZJC(0MuQKNR$2x#@*jyrmmX=z*BWyu#p^Z;4D z%YQ-5o5Rv}%_KR`#K^@4!gs3g<h|N<hr7O2vw^<cQK7Rm182B2O3rA<o4`y~rted? zCRuLG|K(3a#J9ZbPv8blw0jb5l?8j7BGJpCpR=2mL<(X*9QGn*T;}vc@}4~bBYxlK zGGDBUST6iLCVcF&ImbTFRn0=n5IbeccgOAsR%)mba;Ib?_WZ=db#_i!TexjQBRGD~ zkWT5dp6GaFwE0m<7sohv+mgAVK_iKpHHv<(rgC^rBX=i8l{P4n(*JxfLWe6giHV25 z=HVJ7LI;$o_WTC3>Cw>C&~bA@VV29w+f&5sv6-fMm$IQ(QaSO3$mu|QE2hGYts}M- zV%w)nRibrcGRpwWqj8s0;xfJoYcFh=b@zl2Hv>ljdUzo&S9C0+yNzkN6Diui=eF51 za+2@iKL^lHMU@|RInwts(xU+kRLy$r6dsHnDa}bGqUd4^>sobopIzfs^;;6*hi4T# zbTP2W0tJ9~_pxq-=4pJyZSK+5KZfVLyhonH7~D@SaX45OD8c&68k?$KpK2ys=!tej z##D_Ukkr6>yoES;Hm(O&jSme9p}+W8H-wz<PVqld)%+Z_*wj>9Ct2+<`Ge0hdYN-} z1mkh^BUZ&AJr>c&qhV6m(G7w5KDft#e5R$MU6;n4%S}6FS`^R&QTZ_S4#3Z5mSd37 zP+Pa&eyL?<<~x@od%6sRJk#*U+w|z@#f`F*Eh92|zi9TJqH`mzkM-+2=nHXsuN0ab zFmkouGcVJ5vMy3Fy_n<Ipa%0KlxKbB6=RgX3IW~aytzkQ_PH^Q^j)3)p3_D<se91w z8}N`R(6NWqy#MdzYDGbT!en#S5{!*Un-C&!WSydP{CkdI-ubvS@;fDx`{V!-5i1_y z*kKR$ovPxut89_ck340;N0J3d;J4^e-zW#TlZ<u2<PkK*xA8(;ZT3tY8-taC)d$Bl zjfiz$heSyd#JN%8-4kWL$00k1u%UeB?h^iv{m~Wu+1Yvo!ZIdQ$7i9<4b#4L)PFUS zW-rex{GNq?<XxV#C^@#zK6-QcV-{`YolJIzzw{%$SOs-*5)xx&a80X2EHxstUyH`c zjv7?~NQe%vWmF8C!>9bSrkvVg>iQU@et4tapaZRD6Ygixme`Vv_riGybm=B{gWcF$ z!hBEwd=_6VHVPv$G+xyGe}h)_yGm<+mv6LhxtENqm(;Qw@nqLY`_AciZ*|aS)t1)| zrIK2D&3%%c89+Y1gG)~x%lA@wRg9!ilD4Yb606^`nkEa0-ToXK)_jma-?z#()}Yok z>0d!GX<Xex#R3UlojKN(xx0H=A6cm@1+N+5Se{MYPgPCe4D{AQ53@2(ka2sfY`~NO z6><R{r?QI0dJcCUZ^iV{>gjiBuB6{b=sGHGmHF8|z?pHB*fvGmLZ`MWDRm#H26mlG z+F9U^->$mypa}o=9K3NZPQdX8NIerM88gLN72{$^)5YZye1zcim(^uETm##x4lA?b z;p#J|G=ZbkZeOxwL7?L9GG;SdMfr<Oi2ql5?|>aV9yHqaY(MtAWm|=*f(RWW7&oj{ zu2MjQF`wgxviS+G2zx7I1h4hk^178(Mv=3~+@WkvRALUliK18&&Qr7E@doyiv093U zgBwpSa1ijgcZA0)Uc!@)SZhB&IvjhIvPx!*PhtyuDdnBdUx);5mY5vSxJQGtCM^|_ z8O!_DFO|wCb1b)BXQ^lR$Wj^{xRH;J0+JBn2i6};!wO?!yqAIY%=dU@e<HTg_3Fi` zN`c(k)4gdo+x@@!P<KD}7n1Qv9}$v)N%{61YUuYrJ85tG3BUPsS6O|G7>RvlSBims zVB2~hM6Vrp&Xl%lL;krBI>G5&t|~i?-*IRE6zW4*luJye`#lifW&2_#D9M_L%3j<M z%k>zt?T;JXuiLqiTO+&gAmRN^>cs;??0EI}2>K3J;K)71)!nm~fND4<PO0QdgAKcu z!!d_V4!``5zuyjRzjLrij|*tPRIV!7d!IM7V60`K!uVP9{%h}S!T^MdkHsnN{U|8( zZTT3+UjoX1@FmQu%DX@IPXzT8ayB$+wC~6%Jf@dip}ZqbC!{=am11Lg@f6CKlKf_h zO!Ox&o{5@=6Tzr!DtN<Xq|~<?Ue78k?fOI|StbVD^yP&!vD@@JBb6I|X|K@RA@5|b z5QZ#emBIF}qMKLwvOOEE^v>GYkoTKiN7u)7Va8iCP4<ZTpKveAu%&>#_yOWj91k|W zYF=Npf(ogQn4RUp*Vdn}7AU7k$MMS=Dvho5+O`}!ekOg4&dL(%mW+<fE?oL-Ox5)= zepcFd<>fbWo18u=)Vx!Ste5{I_5AX8W4%=<;`KECqMAHEabNGJDQqc<VosZHlg_RL z^C0+{9_q!x#?FkZ7~ZGhex>DhgU{C+amPGD>imtT3&d}svV^sd9ZueO7$&p^-}Qa& z<Tod)$?kYvnly!(DDq4P(>_Ot7GXmT0hZeOyDR52HV5O!|IzFF=}GJ<#<=rOC7KBq zidT=g88=~OP%%W*5aldR0o&zK<xod-$CfqvTvtEz#uA)S_RaYI#tlk4r04Yhhm)~n z`M>`$LqTea<T@ZCdqHQRG1sN<=R||YLgJ!{KF)R7R<HjYVkt0obd5aOg}I*1=AXCv z=f+2%?mkaP?6do8OiY-Qx(a#Pa}j;CtVfP(szzt^+Q!1+<nK~Z!r!Wup}AWI<Y+DB zl%VTkc*4%;QJo@o9-FeG7?W#%Wy<B~;P5+TKbs`rgLX2<eso=O>2BR@#D$Ohd#6b2 z*`rxu!b}^JkUYAb!H=H~S@aiMU7_ah%L8+@k-C|Zr1-#G4{a8pH(6u;%IARlY$)mE zh!cS#e>Y25tHAV@OsCFb6HRRUtC3embbTBe&j0G6DQ8a<ltSrTjEgrbG<i#2CP<qq zEGyTZjxS+d{QJTF>Fs5H3%&||MEQ?2fI|Ss2d*QDPFfvzl2eO=Fm~?lO4_-=u~rWM zja990ISTTcC)JLhowDrHWgW+>rQMHouJWSM6uN>DJLrnl(etG)uK3g>r><NH-tl7y z8m@clH>KkLGQfqM!ek{t=2HCNpZNXn`w^dKf|^v1ljMRe=sP+NKvqiN8vJjms+A6Y zF>9Fu-H3V1DI?Z5Qx%0td-3FIe3qB7<mz-xasa44t$d7I?=U?*&E4lN5gdqi)Fykp z2m3sqy<c`82{sOioVO}YbC#44mr9w%j<+3dRUA;RQ2k<-5J{Mm@v;%dpOBHEQ(ug@ z_1?>2Z`)!isT0R9ay#GtEzqwR<>;M`-<FN9bEZpo@Ll`R2+1xV`bl1C?`S{8FZ<QW zYpSHLA%MA?-+v{1;w1bTLRO+AQSfCl+ga<U)orGCe&a`<cK&ed74VKqjg=)^Ev0;4 z86K+<nC~Psz4N8ZIqWyKG!n(m4#bcNQ2dTw!#*wDRW$KKEsE|SY16>F?sQ@E%ZHu6 z=PeiTn*Oqp;G}LWcMR6Q&PH5I_Z<&Y7`^3+ktwlW>fRI5MnT8NFTbgj;L8%DBR}{D zbAOihP&nR+_qfBS9gE^Wg1z!{m^VoyH}%JV`*yXt8*(Bk{xrpgHDEt>72Og5<H7ek zH^rNY^fls|fZofhg=0o^Fr;AcS0PyEV2=u}JqILsWhsk-RXH4O=KE9I_R*0`C)2Ck zP6J%Q{FTWFWJ2LH?^mXYeah*YbFd`<Oho~P^cz`gWHj6l+I|SyXj@wT(QGoXtJCf< zud&iIrFf9$?YF(uMdFt=7l&oMroDeXq2E|pI4+Z|r=NgTXY?T`ew2Tm&Z5J6|I(JB z4rigp;im*vm-BR?+F&)U&!KgKuOH`Ja&Hq3OP#gP_`I8qk*jL82x{O^-ClC>`6Zl2 z{!aB~^eX!6VNeED+m8$eeLd4E<HC;ih}SMvLOz#T@mb#=-Qm2(jYS&MNSiViTZCUv zP`ee0AwdVT2Yb&ym>Z!C4b?fGnLHjy8nXNQq7O(>JGK(8!%e(t=F&;{QeK|E)JkM! zRn?;B>k+<|VJSEF)exbqoXs8cd8hmIOeM)ztHO7$OFMBp=}obXE3JX0rEI)@D&u<9 z_a`!K_x$QQ<R^S?EZX0kRN*yDu|YIY4-%K>|E!c)`PrRYVonI#zWKB%jiu!<8ZKP3 z9Qoz$d?}=E2}HXjp0!>(nt$!#Z~DZ(VeEmBiaUDKP63b4FZ5i|J6e|$%}a{UYkEpG zHUrVpew6dT%;0=8fM+U&$v27kld#`9GAub;N2@nT`KaIrd!R<XoRARE<E%eo!vQ%P z{Id}I>GFoP-r3l#?GS3bnM{H-(bIyYho7)}^I8}6P4@?0*9MC`=M_vvYS=XoPq?_= zrE8IcZTQgWv5#>`<Z#8t%GH~0xsWHAyod};QKkCZ4_X^x`EU4*6S@dI4MRDmjxBkP zPU3^;NXmi@m_u=3cD&u4ARk>mU7^gTHtnA$umzm05nayQ$x!h%yZj>dFJFItTd8*W z!uK&QFEQMzX+$SHcHsu}(gW+nuEWzRZYw6I+J$<4bkXk|L2k!unXzwx`4nm#H)tD6 ze`ZQaqsqmnK3Q@^n-qP_c5R3)eAFxA+{3CjQ5e{M<5==>O+&oLVaVJxr`Nl;cv`JU zc~)O35lGSEI4a9-xh^*GS+Qd1XwH7fiY8U{UlkAZnb`J5!41EhVE)LpsexE|`$Lb3 zadeYK#V8>aQR$|2z!oK{?DR&g@>jos(q`P}C2p{c&%LQnl4ADtN-*}@PY_n^vAre% zr>XU94SORcimTSLQI4&ygCnLzwVL(VS++Es*X~hC(gyEt&<SDnT+x0xb}}I}y8j{k zI3k5fcesIr^<<Z@;#`ZX0ZS#%Lg)H_>K<0@m~`ddC?1xUtrTw}64(@dt3?CSL=Y(b z>-9EHGUs~==y`leVZ&MWQ-|;Yi+jb&C-d;SXdRKE^<aMC*zMF*VOma4v>y7f^UXTr znwp99#<_iB2>+h+gYyK&KL60(q*eS4AUVjFgg0z^ETaq$N$wVF@D3-1JasWrP9E-v zkmz-4tSJofO;NU7P_okx<}C|g_xs?}HZoM~?0t`|sG}TB72G=19~*SsR$vGz1xtxC zig;LFK6Rv&{(3?Y7At6a?o2dydW+FNt8~@LV%T)<NA^>&ovJ5F!5&GU3{35B(ax0& zawV%C&Ce2OL-;A#7~VL~j-7L3{BUf2KgDWnN@8jo%f9b&=sxoy@=wD*@ehP0&Egv{ zxE((|{~M7+V8fH#^16!yD{i~&d>kCi*Hp6!v@CSA?fET5Hx^{rDupD(exsudMEEV` zd(Y7)ChUf+e80*#GgY07p$GTGC8SDubM4@t(nBpckM(l({Ev{PCP6@aJQk9pOgy~{ zF;&((39YkzV<I;5qh8cexrd&lYu9EhGt$#OJO-yrZYrVTsi!w7QQEvNU!;Fyz<gcp z3M)OEuN10n{@KeP%Zxm_GRNl*YJrelldvc9l6F7`T{(JBdQq@Vb2v8Q_NTTcEG-Q4 zKtUcoFmX2LeB!X>6h5DgzF|dwgU~`O69O-g>#~1@KYOIm_AYo*)@zP!IgLMRHRGA+ z&N+Ur_xCs43eq%q!G$MUps|GgVYuUnFVAe^)!niba#x7t$PR~wiGlc4+Qe9(x4z=t zhMCNf_1W(bsm)pmQ=BU-fmU!&=qJzLCy7LPj=mAh#5@OXg56L6n^~PybNCbeAjaE# zbXjh<+;`wz-h@Lh>Bf|pQ|Dy{{d@-I9jr53=c})4wCX$*CI)-dL958PS)GG2LCeRa zIG1dpJ3*UX%G$r>+<PE;5=&ic7sU!|;~f|odt-Qi3XVTOMo+wDk?@zmiy33P`<7Dy z4qo8>7)K<`n`PFW`_R?PImb2o(?8QsA=jvGBp}b@{q}@}I{FPe4sPmn{9PCDD_d__ z=7K;Z^(uCBl*NnBXJ3P^6#p`yRC%ISxdciL;YVvYQgiO3CqSjvuUPAOXd4eVXJbcy zhi*+(+_u_KrkS6(m%)t;NaOZZdU7dt`BMBECC!USR`%WpIdrdqeH<$LC!||b*4ze= zQYrU6$a-%S+NH?U?ib4riN*xAp0W8anQtZ>TLBoQeM`lSC;ZX4*4Tmd!i+X9#aMK# zejd3toWd-#zncx^uQVyNRy)W8vC|0V%V8*kFUGTIef2m$c3$cD>l3|7723heWfE~4 zIeYR!aZiRi!*{RA+CL|0m9h90H_*;KUH&z@VO4^V*e;y+A-0-)!<Z_sHR2h4M=rXp zEdLJ7G`GaGm-`7jbmF^7h|q|QZQDi_D<oj1*7nupuzdv8@)MsDVXl`yyf&X3PAqZ1 zu4soaekZ~0vj=*gk5y*_$*7dHE0hO@+tfzha4!nIlhGZ7J5v!cZ0|hPXWTSOd(=8O zwtNz>LdVUZQLq?4otHXMy6ofUY(ob$cnVXMk{d7z$%w?7GBkZ}a)Q|^IoENDyavY= z8!%W!P;D)e?clSd^uvvIHlNEP%H`Kwk&xJ*kIi#s1}{Hy8g^a_al_z0A(L7CFtdmA zsEMR5?L+r)TlpLY5@CLz1Cl08G423p0`P+5bPU3^5xg)Vn29njbEb7&QRxU8P5?>H zVv}-MG$Qh#*m*IcAPj1g^PB5;+|#xK6~VU7p+QhD&|vvK<t9)H9ZUpDUy3isY`kpv zoC?A!zMYd6b>@g%<1WQi$)@TxlAAtmQ6MbmALf1{3Pvh_$p&t{G~feteT@BC`)lFz z4(P%uY1zk=8RGhSrM=rIDl2RTC^j(j7%dD@{4iGdaIsFiI-cu{fOA%I_FukvEpQZQ zMAWyAL8CF7vE8=Ng7bmw^n~qwK2>Flnm;@@8hnahKt1&)ho+Kd8ci-8q%=PJ?oaFn zzxmYXCtDmhW}DMcq!1+=$0|)|f*zi~XZ#a|37XjRojWeZsCdr8SsM>NQU5xE2wy8z zT@04VVE`<D6c3SuvET3|bm`O8_kdN!jtAGYry+*pa+6KA_l|6oZ?N#6)wkZsiuT7D zZ9HuYJ4<eaisSqA2!b~)GnBH)&2Hi6L(Y$_iTf#s3u%P1N^5k^mC{+j3>)){r(Qnq z9JJSlEZDuoVcx<jd==mb+%>cG3hDisEMO@KFaBNgo|+2~NvZd<{DVuWhjO6OK%}*- zP~$6)H4fdyVHk*nq|fW!q2Tpvrq{hglsy8{59Gjc#9fq3tUr-EfZxmZ<<S-X5OOpB z)o$Vs&}dQ@eIRvf_!+irurZpv_sMauMbHO*Wt9k|fX}bz)?r9KHmUQY!!?vlijC^v zQuge8wg8mylJHF0Ebz$Uki0Z>w4kKBZ7;mhE{E0xv#n^YkVNcyuU+;<_sBcH(xoM| zvdsEj7G!~<5>>UnvES*Lrus=WO|f`w_qnG}e};38mFF6ken`=8{q*euMJeJ7E6Hf* za(K8OX6;WQ+O|qQw|w3bPxs1DOJjqE<aLE)8vcu39C>GEO?P{xfZyFTQ#|2n;@GO1 zR19HvK=!9rocxd-i-a3jL-y!!(vXnB^Fc%b)4`=5D*g0<A_6iZRaVUu8%yigxnmBu zKOBo3{;oSDl$5CKzI0;}<Ymye20C~}25NwYm?m$x$;q)ao0}%w##KOzyuv{B@l5Rl z{Bl1^Q2IPVk7IJm%-Q*pzFH0oNzu2|?QQ7Nujh2X4vXt2w&Al#VfC!JH{9dTU?N-0 zYf8ON>+2)JqIIX!h}oM}U?S3Kj5j@HrruHjKRZ+M76rd502n$N^DRI+QFpyLph9e> z2?rmJkU0Y0O=L2~tq*S!)+PIkY_1O?w~T0h`2anqMP=mgJe;O~kcxh>zTYz*k;DFa zmzqSGJHkHP$nbB(;>6(I@Z(;O3?Vu4gW0rGjFc1>%@Z6R8_h@?9SO>zg>CG}qya#$ z9^TBP+mrruD_356;8Ooh8-Bhyk{=dIU~s+Tdx4p8*{?qJ%uY!vSL7mf%j8NQ`F-f4 zUif1ju%|b)GlO5URio=1FlLvtt&FhjUr_;GPM8sA0zIA>B@i0flnb?kpx=|kj#mpA zM;?5Pn@J+29!OyIZ~J#mx4g1~xSz<T;w$P{uz{p%^gGQB;2|jz16su;9_O&nz)eJ0 z)-=Qic_N-$)`4<L`fwy$#qkk`b>Q<@_}21Jl+#S3Amv3&ICh+a&+Uw=Fafr4BL$U4 zS*ae2<pSB|4q3}&1k7~`uHqf^_cM)_t)GtsSXDw-WIZXx%A$Zu{mILC)Hzmcxz|f? zk}|Z4mZWD650;I&V1~mt9+E!(&;H#WVf$9Fw^RGUywB6bE48<PN(}C&^RrA?N(P>` z=>}`76wqo3lyANBvlfq8D9MfX!x`B=luUJlT{8%@vYe#)<zCr@l5H@oX?rXCoC2pt z<}Zxz7dxLjYX+4*2K05;ouF(lcmpcVFK7Fr^9__|HA(e6rqeh2#;p~+S+D@87!XuH zQR1wb{2k~q(Bhq_eE5+hy(;13mFFCBx<E7j|H6G$;4QfPw~f1tb#iVDb<dJXYaCRJ z1Aw-<y1h`A@N9fD8IgxXxZ<P{Uqh|r#zU59QpnPs#P#ouY8x@Y9{^!~ya5`Tfn8$u s|Go|fupIE=0B{R@{{M^r6C)7BxS<jlp5D@?3lqJ4tty9jY4-7d16j5XN&o-= literal 0 HcmV?d00001 diff --git a/book/images/dll-remove-last.png b/book/images/dll-remove-last.png new file mode 100644 index 0000000000000000000000000000000000000000..c636e65d4a2a49cb5fa4476ddb1212bf2ff2b2c5 GIT binary patch literal 15981 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 literal 0 HcmV?d00001 diff --git a/book/images/dll-remove-middle.png b/book/images/dll-remove-middle.png new file mode 100644 index 0000000000000000000000000000000000000000..5edd552a91e6f5645e366714129345c63bf1a70e GIT binary patch literal 14650 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 literal 0 HcmV?d00001 diff --git a/book/images/dll.png b/book/images/dll.png new file mode 100644 index 0000000000000000000000000000000000000000..69761acada6df1d2fb41a227116e6aec074253e1 GIT binary patch literal 10233 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 T;P}fwYU^to-zmRs|Lng27m9Hg literal 0 HcmV?d00001 diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 9a1b5925..3b0ed6fc 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -27,9 +27,9 @@ class LinkedList { newNode.next = this.first; - if (this.first) { - this.first.previous = newNode; - } else { + if (this.first) { // check if first node exists (list not empty) + this.first.previous = newNode; // <1> + } else { // if list is empty, first & last will point to newNode. this.last = newNode; } @@ -52,11 +52,11 @@ class LinkedList { addLast(value) { const newNode = new Node(value); - if (this.first) { + if (this.first) { // check if first node exists (list not empty) newNode.previous = this.last; this.last.next = newNode; this.last = newNode; - } else { + } else { // if list is empty, first & last will point to newNode. this.first = newNode; this.last = newNode; } @@ -71,20 +71,18 @@ class LinkedList { /** * Insert new element at the given position (index) * + * Runtime: O(n) + * * @param {any} value new node's value * @param {Number} position position to insert element - * @returns {Node} new node or 'undefined' if the index is out of bound. + * @returns {Node|undefined} new node or 'undefined' if the index is out of bound. */ - add(value, position = 0) { - if (position === 0) { // <1> - return this.addFirst(value); - } + addAt(value, position = 0) { + if (position === 0) return this.addFirst(value); // <1> + if (position === this.size) return this.addLast(value); // <2> - if (position === this.size) { // <2> - return this.addLast(value); - } // Adding element in the middle - const current = this.get(position); + const current = this.findBy({ index: position }).node; if (!current) return undefined; // out of bound index const newNode = new Node(value); // <3> @@ -99,6 +97,7 @@ class LinkedList { // tag::searchByValue[] /** + * @deprecated use findBy * Search by value. It finds first occurrence of * the position of element matching the value. * Similar to Array.indexOf. @@ -112,17 +111,13 @@ class LinkedList { * @returns {number} return index or undefined */ getIndexByValue(value) { - return this.find((current, position) => { - if (current.value === value) { - return position; - } - return undefined; - }); + return this.findBy({ value }).index; } // end::searchByValue[] // tag::searchByIndex[] /** + * @deprecated use findBy directly * Search by index * Runtime: O(n) * @example: assuming a linked list with: a -> b -> c @@ -133,34 +128,33 @@ class LinkedList { * this list or undefined if was not found. */ get(index = 0) { - return this.find((current, position) => { - if (position === index) { - return current; - } - return undefined; - }); + return this.findBy({ index }).node; } // end::searchByIndex[] // tag::find[] /** - * Iterate through the list until callback returns a truthy value - * @example see #get and #getIndexByValue - * @param {Function} callback evaluates current node and index. - * If any value other than undefined it's returned it will stop the search. - * @returns {any} callbacks's return value or undefined + * Find by index or by value, whichever happens first. + * Runtime: O(n) + * @example + * this.findBy({ index: 10 }).node; // node at index 10. + * this.findBy({ value: 10 }).node; // node with value 10. + * this.findBy({ value: 10 }).index; // node's index with value 10. + * + * @param {Object} params - The search params + * @param {number} params.index - The index/position to search for. + * @param {any} params.value - The value to search for. + * @returns {{node: any, index: number}} */ - find(callback) { + findBy({ value, index = Infinity } = {}) { for (let current = this.first, position = 0; // <1> - current; // <2> + current && position <= index; // <2> position += 1, current = current.next) { // <3> - const result = callback(current, position); // <4> - - if (result !== undefined) { - return result; // <5> + if (position === index || value === current.value) { // <4> + return { node: current, index: position }; // <5> } } - return undefined; // not found + return {}; // not found } // end::find[] @@ -168,99 +162,66 @@ class LinkedList { // tag::removeFirst[] /** * Removes element from the start of the list (head/root). - * Similar to Array.shift + * Similar to Array.shift(). * Runtime: O(1) * @returns {any} the first element's value which was removed. */ removeFirst() { + if (!this.first) return null; // Check if list is already empty. const head = this.first; - if (head) { - this.first = head.next; - if (this.first) { - this.first.previous = null; - } else { - this.last = null; - } - this.size -= 1; + this.first = head.next; // move first pointer to the next element. + if (this.first) { + this.first.previous = null; + } else { // if list has size zero, then we need to null out last. + this.last = null; } - return head && head.value; + this.size -= 1; + return head.value; } // end::removeFirst[] // tag::removeLast[] /** - * Removes element to the end of the list. Similar to Array.pop - * Using the `last.previous` we can reduce the runtime from O(n) to O(1) + * Removes element to the end of the list. + * Similar to Array.pop(). * Runtime: O(1) - * @returns {value} the last element's value which was removed + * @returns {any} the last element's value which was removed */ removeLast() { + if (!this.last) return null; // Check if list is already empty. const tail = this.last; - if (tail) { - this.last = tail.previous; - if (this.last) { - this.last.next = null; - } else { - this.first = null; - } - this.size -= 1; + this.last = tail.previous; + if (this.last) { + this.last.next = null; + } else { // if list has size zero, then we need to null out first. + this.first = null; } - return tail && tail.value; + this.size -= 1; + return tail.value; } // end::removeLast[] // tag::removeByPosition[] /** - * Removes the element at the specified position in this list. + * Removes the element at the given position (index) in this list. * Runtime: O(n) * @param {any} position * @returns {any} the element's value at the specified position that was removed. */ removeByPosition(position = 0) { - const current = this.get(position); - - if (position === 0) { - this.removeFirst(); - } else if (position === this.size - 1) { - this.removeLast(); - } else if (current) { - current.previous.next = current.next; - current.next.previous = current.previous; - this.size -= 1; - } - + if (position === 0) return this.removeFirst(); + if (position === this.size - 1) return this.removeLast(); + const current = this.findBy({ index: position }).node; + if (!current) return null; + current.previous.next = current.next; + current.next.previous = current.previous; + this.size -= 1; return current && current.value; } // end::removeByPosition[] - /** - * Removes the first occurrence of the specified elementt - * from this list, if it is present. - * Runtime: O(n) - * @param {any} callbackOrIndex callback or position index to remove - */ - remove(callbackOrIndex) { - if (typeof callbackOrIndex !== 'function') { - return this.removeByPosition(parseInt(callbackOrIndex, 10) || 0); - } - - // find desired position to remove using #find - const position = this.find((node, index) => { - if (callbackOrIndex(node, index)) { - return index; - } - return undefined; - }); - - if (position !== undefined) { // zero-based position. - return this.removeByPosition(position); - } - - return false; - } - /** * Remove element by Node * O(1) @@ -303,6 +264,54 @@ class LinkedList { get length() { return this.size; } + + /** + * @deprecated use findBy + * Iterate through the list until callback returns a truthy value + * @example see #get and #getIndexByValue + * @param {Function} callback evaluates current node and index. + * If any value other than undefined it's returned it will stop the search. + * @returns {any} callbacks's return value or undefined + */ + find(callback) { + for (let current = this.first, position = 0; // <1> + current; // <2> + position += 1, current = current.next) { // <3> + const result = callback(current, position); // <4> + + if (result !== undefined) { + return result; // <5> + } + } + return undefined; // not found + } + + /** + * @deprecated use removeByNode or removeByPosition + * Removes the first occurrence of the specified elementt + * from this list, if it is present. + * Runtime: O(n) + * @param {any} callbackOrIndex callback or position index to remove + */ + remove(callbackOrIndex) { + if (typeof callbackOrIndex !== 'function') { + return this.removeByPosition(parseInt(callbackOrIndex, 10) || 0); + } + + // find desired position to remove using #find + const position = this.find((node, index) => { + if (callbackOrIndex(node, index)) { + return index; + } + return undefined; + }); + + if (position !== undefined) { // zero-based position. + return this.removeByPosition(position); + } + + return false; + } } // Aliases diff --git a/src/data-structures/linked-lists/linked-list.spec.js b/src/data-structures/linked-lists/linked-list.spec.js index 09ba8feb..4bc30182 100644 --- a/src/data-structures/linked-lists/linked-list.spec.js +++ b/src/data-structures/linked-lists/linked-list.spec.js @@ -155,8 +155,8 @@ describe('LinkedList Test', () => { }); it('should return undefined if not found', () => { - expect(linkedList.remove(2)).toBe(undefined); - expect(linkedList.remove(-2)).toBe(undefined); + expect(linkedList.remove(2)).toBe(null); + expect(linkedList.remove(-2)).toBe(null); }); it('should update size, last and first', () => { @@ -164,7 +164,7 @@ describe('LinkedList Test', () => { expect(linkedList.size).toBe(1); expect(linkedList.remove(0)).toBe('found'); expect(linkedList.size).toBe(0); - expect(linkedList.remove(0)).toBe(undefined); + expect(linkedList.remove(0)).toBe(null); expect(linkedList.size).toBe(0); expect(linkedList.first).toBe(null); expect(linkedList.last).toBe(null); @@ -173,7 +173,7 @@ describe('LinkedList Test', () => { describe('#addAt', () => { it('should insert at the beginning', () => { - const newNode = linkedList.add('first', 0); + const newNode = linkedList.addAt('first', 0); expect(newNode.value).toBe('first'); expect(newNode.next.value).toBe(0); expect(linkedList.size).toBe(3); @@ -181,7 +181,7 @@ describe('LinkedList Test', () => { }); it('should insert at the middle', () => { - const newNode = linkedList.add('middle', 1); + const newNode = linkedList.addAt('middle', 1); expect(newNode.value).toBe('middle'); // checking the 4 surrounding links were updated expect(newNode.next.value).toBe('found'); @@ -194,7 +194,7 @@ describe('LinkedList Test', () => { }); it('should insert at the end', () => { - const newNode = linkedList.add('end', 2); + const newNode = linkedList.addAt('end', 2); expect(newNode.value).toBe('end'); expect(newNode.next).toBe(null); expect(newNode.previous.value).toBe('found'); @@ -203,7 +203,7 @@ describe('LinkedList Test', () => { }); it('should not insert out of bound', () => { - const newNode = linkedList.add('out-of-bound', 3); + const newNode = linkedList.addAt('out-of-bound', 3); expect(newNode).toBe(undefined); expect(linkedList.last.value).toBe('found'); expect(linkedList.size).toBe(2); diff --git a/src/data-structures/linked-lists/node.js b/src/data-structures/linked-lists/node.js index 9b518cca..ea09b473 100644 --- a/src/data-structures/linked-lists/node.js +++ b/src/data-structures/linked-lists/node.js @@ -3,7 +3,7 @@ * Node with reference to next and previous element */ class Node { - constructor(value) { + constructor(value = null) { this.value = value; this.next = null; this.previous = null; // for doubly linked list From 0e125232de8dbfeb4cae8d19ba62bc3e3c9ed52f Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Fri, 23 Oct 2020 18:17:19 +0000 Subject: [PATCH 075/108] :bookmark: chore(release): 2.5.1 ## [2.5.1](https://github.com/amejiarosario/dsa.js/compare/2.5.0...2.5.1) (2020-10-23) ### Bug Fixes * **linkedlist:** refactored methods and improve book images and ([ba110e2](https://github.com/amejiarosario/dsa.js/commit/ba110e26b2103265bb78809618c7e29c185acd70)) * **linkedlist:** rename indexOf to getIndex to make it clearer ([fcf3db6](https://github.com/amejiarosario/dsa.js/commit/fcf3db6ade12a7ed88a5b7756945a8b090ac63b9)) --- CHANGELOG.md | 8 ++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0658f95..84973f04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [2.5.1](https://github.com/amejiarosario/dsa.js/compare/2.5.0...2.5.1) (2020-10-23) + + +### Bug Fixes + +* **linkedlist:** refactored methods and improve book images and ([ba110e2](https://github.com/amejiarosario/dsa.js/commit/ba110e26b2103265bb78809618c7e29c185acd70)) +* **linkedlist:** rename indexOf to getIndex to make it clearer ([fcf3db6](https://github.com/amejiarosario/dsa.js/commit/fcf3db6ade12a7ed88a5b7756945a8b090ac63b9)) + # [2.5.0](https://github.com/amejiarosario/dsa.js/compare/2.4.0...2.5.0) (2020-10-22) diff --git a/package-lock.json b/package-lock.json index 210a076a..22be9edd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.5.0", + "version": "2.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4384319f..27934c5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.5.0", + "version": "2.5.1", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 0f13f907141d0ad9bb439d131aca6d1d882421ee Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sun, 25 Oct 2020 13:49:46 -0400 Subject: [PATCH 076/108] feat(book): add chapter numbers --- book/readme.asc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/book/readme.asc b/book/readme.asc index 97660eb8..8c3416d0 100644 --- a/book/readme.asc +++ b/book/readme.asc @@ -12,6 +12,8 @@ Adrian Mejia :docinfo: :toc: :toclevels: 4 +:sectnums: +:chapter-label: :pagenums: :front-cover-image: image:cover.png[width=1050,height=1600] :icons: font From 8cd126d71a31473fefdbf0f0a9780cd7b128bcd6 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 27 Oct 2020 14:33:45 -0400 Subject: [PATCH 077/108] feat(book/linkedlist): linked lists techniques and common patterns --- .eslintrc.js | 19 +- book/content/part02/linked-list.asc | 303 +++++++- book/images/Find-the-largest-sum.png | Bin 17918 -> 17500 bytes .../Recursive-Fibonacci-call-tree-with-dp.png | Bin 20798 -> 22002 bytes book/images/Words-Permutations.png | Bin 45376 -> 49677 bytes book/images/cll-fast-slow-pointers.png | Bin 0 -> 139915 bytes book/images/cll.png | Bin 0 -> 72189 bytes book/images/course-schedule-examples.png | Bin 26285 -> 22504 bytes .../critical-connections-sol-examples.png | Bin 37090 -> 35639 bytes book/images/critical-path-examples.png | Bin 42278 -> 40870 bytes book/images/mll-3-levels.png | Bin 0 -> 31078 bytes book/images/sll-fast-slow-pointers.png | Bin 0 -> 24109 bytes book/images/sllx4.png | Bin 0 -> 5409 bytes .../daily-temperatures.spec.js | 1 + .../linkedlist-find-cycle-start.js | 39 ++ .../linkedlist-find-cycle-start.spec.js | 25 + .../linkedlist-flatten-multilevel.js | 45 ++ .../linkedlist-flatten-multilevel.spec.js | 79 +++ .../linkedlist-is-palindrome.js | 39 ++ .../linkedlist-is-palindrome.spec.js | 19 + book/interview-questions/max-subarray.data.js | 3 +- .../network-delay-time.spec.js | 6 +- book/interview-questions/recent-counter.js | 5 +- book/interview-questions/sort-colors.js | 4 +- package-lock.json | 647 +++++++++--------- package.json | 9 +- .../linked-lists/linked-list.js | 24 +- .../linked-lists/linked-list.spec.js | 19 + src/data-structures/linked-lists/node.js | 8 +- src/index.js | 2 + 30 files changed, 945 insertions(+), 351 deletions(-) create mode 100644 book/images/cll-fast-slow-pointers.png create mode 100644 book/images/cll.png create mode 100644 book/images/mll-3-levels.png create mode 100644 book/images/sll-fast-slow-pointers.png create mode 100644 book/images/sllx4.png create mode 100644 book/interview-questions/linkedlist-find-cycle-start.js create mode 100644 book/interview-questions/linkedlist-find-cycle-start.spec.js create mode 100644 book/interview-questions/linkedlist-flatten-multilevel.js create mode 100644 book/interview-questions/linkedlist-flatten-multilevel.spec.js create mode 100644 book/interview-questions/linkedlist-is-palindrome.js create mode 100644 book/interview-questions/linkedlist-is-palindrome.spec.js diff --git a/.eslintrc.js b/.eslintrc.js index ee4a630a..404d8807 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,24 +1,35 @@ module.exports = { extends: 'airbnb-base', env: { - jest: true + jest: true, }, + plugins: ['jest'], globals: { BigInt: true, }, + + // check package.json for files to include + // files: ['src/**/*.js', 'book/interview-questions/*.js'], + rules: { // https://github.com/airbnb/javascript/issues/1089 // https://stackoverflow.com/a/35637900/684957 // allow to add properties to arguments - 'no-param-reassign': [2, { 'props': false }], + 'no-param-reassign': [2, { props: false }], // https://eslint.org/docs/rules/no-plusplus // allows unary operators ++ and -- in the afterthought (final expression) of a for loop. - 'no-plusplus': [0, { 'allowForLoopAfterthoughts': true }], + 'no-plusplus': [0, { allowForLoopAfterthoughts: true }], 'no-continue': [0], // Allow for..of 'no-restricted-syntax': [0, 'ForOfStatement'], - } + + // jest plugin + // 'jest/no-disabled-tests': 'warn', + 'jest/no-focused-tests': 'error', + 'jest/no-identical-title': 'warn', + 'jest/valid-expect': 'warn', + }, }; diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index bba5d906..59ddac6c 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -35,10 +35,18 @@ In a singly linked list, each element or node is *connected* to the next one by Usually, a Linked List is referenced by the first element called *head* (or *root* node). Let's say that we have a list of strings with the following values: `"art" -> "dog" -> "cat"`. It would look something like the following image. .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. -image::image19.png[image,width=498,height=97] +image::sllx4.png[] If you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +==== Circular Linked Lists + +Circular linked lists happen when the last node points to any node on the list, creating a loop. In the following illustration, you can see two circular linked lists. + +image:cll.png[Circular linked lists examples] + +One circular linked list happens when the last element points to the first element. Another kind of circular linked list is when the last node points to any node in the middle. There are some efficient algorithms to detect when the list has a loop or not. More on that later in this chapter. + [[doubly-linked-list]] ==== Doubly Linked List @@ -51,19 +59,14 @@ With a doubly-linked list, you can move not only forward but also backward. If y Finding an item on the linked list takes O(n) time. Because in the worst-case, you will have to iterate over the whole list. -==== Linked List vs. Array - -Arrays give you instant access to data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. - -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. If the array fillup, it has to create a larger array (usually 2x) and copy all the elements when it is getting full. That takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other in RAM, nor are large chunks of memory is booked beforehand like arrays. Linked List is more on a "grow as you go" basis. *Linked list wins on memory usage over an array.* - -Another difference is that adding/deleting at the beginning of an array takes `O(n)`; however, the linked list is a constant operation `O(1)` as we will implement later. *Linked List has better runtime than an array for inserting items at the beginning.* ==== Implementing a Linked List We are going to implement a doubly linked list. First, let's start with the constructor. -The only must-have field on the constructor is the `first` or head reference. If you want to insert it to the back of the list in constant time, then `last` pointer is needed. Everything else is complimentary. +TIP: if you want to implement a singly linked list instead, it's the same in most parts, but without the setting the `previous` pointers. + +The only must-have field on the constructor is the `first` or head reference. If you want to insert data to the back of the list in constant time, then the `last` pointer is needed. Everything else is complimentary. .Linked List's constructor [source, javascript] @@ -201,7 +204,7 @@ As you can see, when we want to remove the first node, we make the 2nd element ( ===== Deleting element from the tail -Removing the last element from the list would require iterate from the head until we find the last one, that’s `O(n)`. But, since we referenced the last element, we can do it in _O(1)_ instead! +Removing the last element from the list would require iterate from the head until we find the last one: `O(n)`. But, since we referenced the last element, we can do it in _O(1)_ instead! .Removing the last element from the list. image::dll-remove-last.png[] @@ -216,7 +219,7 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeLast, i ---- -The code is very similar to `removeFirst`, but instead of first, we update `last` reference, and instead of nullifying `previous`, we nullify its `next` reference. +The code is very similar to `removeFirst`, but instead of first, we update `last` reference, and instead of nullifying `previous`, we null out the `next` pointer. ===== Deleting element from the middle @@ -239,7 +242,13 @@ Notice that we are using the `get` method to get the node at the current positio (((Tables, Linear DS, Array/Lists complexities))) -==== Linked List Complexity vs. Array Complexity +==== Linked List vs. Array + +Arrays give you instant access to data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. + +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. If the array fillup, it has to create a larger array (usually 2x) and copy all the elements when it is getting full. That takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other in RAM, nor are large chunks of memory is booked beforehand like arrays. Linked List is more on a "grow as you go" basis. *Linked list wins on memory usage over an array.* + +Another difference is that adding/deleting at the beginning of an array takes `O(n)`; however, the linked list is a constant operation `O(1)` as we will implement later. *Linked List has better runtime than an array for inserting items at the beginning.* // tag::table[] .Big O cheat sheet for Linked List and Array @@ -269,6 +278,276 @@ Comparing an array with a doubly-linked list, both have different use cases: For the next two linear data structures <<part02-linear-data-structures#stack>> and <<part02-linear-data-structures#queue>>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. +==== Linked List patterns for Interview Questions + +Most linked list problems are solved using 1 to 3 pointers. Sometimes we move them in tandem or individually. + +.Examples of problems that can be solved using multiple pointers: +- Detecting if the linked list is circular (has a loop). +- Finding the middle node of a linked list in 1-pass without any auxiliary data structure. +- Reversing the linked list in 1-pass without any auxiliary data structure. e.g. `1->2->3` to `3->2->1`. + +Let's do some examples! + +===== Fast/Slow Pointers + +One standard algorithm to detect loops in a linked list is fast/slow runner pointers (a.k.a The Tortoise 🐢 and the Hare🐇 or Floyd’s Algorithm). The slow pointer moves one node per iteration, while the fast pointer moves two nodes every time. You can see an example code below: + +.Fast/Slow pointers +[source, javascript] +---- +let fast = head, slow = head; +while (fast && fast.next) { + slow = slow.next; // slow moves 1 by 1. + fast = fast.next.next; // slow moves 2 by 2. +} +---- + +If the list has a loop, then at some point, both pointers will point to the same node. Take a look at the following image; take notice that both points to `node I` on the 8th iteration. + +image:cll-fast-slow-pointers.png[fast/slow pointer in a circular linked list] + +.You can detect the intersection point (`node D` on the example) by using this algorithm: +- When `fast` and `slow` are the same, then create a (3rd) new pointer from the start. +- Keep moving the 3rd pointer and the `slow` simultaneously one by one. +- Where slow and 3rd pointer meets, that's the beginning of the loop or intersection (e.g., `node D`). + +Fast/slow pointer has essential properties, even if the list doesn't have a loop! + +If you don't have a loop, then fast and slow will never meet. However, by the time the `fast` pointer reaches the end, the `slow` pointer would be precisely in the middle! + +image:sll-fast-slow-pointers.png[fast/slow pointer in a singly linked list] + +This technique is useful for getting the middle element of a singly list in one pass without using any auxiliary data structure (like array or map). + + +*LL-A*) _Find out if a linked list has a cycle and, if so, return the intersection node (where the cycle begins)._ + +.Signature +[source, javascript] +---- +/** + * Find the node where the cycle begins or null. + * @param {Node} head + * @returns {Node|null} + */ +function findCycleStart(head) { + +}; +---- + +.Examples +[source, javascript] +---- +findCycleStart(1 -> 2 -> 3); // null // no loops +findCycleStart(1 -> 2 -> 3 -> *1); // 1 // node 3 loops back to 1 +findCycleStart(1 -> 2 -> 3 -> *2); // 2 // node 3 loops back to 2 +---- + +*Solution* + +One solution is to find a loop using a HashMap (`Map`) or HashSet (`Set`) to track the visited nodes. If we found a node that is already on `Set`, then that's where the loop starts. + +.Solution 1: Map/Set for detecting loop +[source, javascript] +---- +include::../../interview-questions/linkedlist-find-cycle-start.js[tag=brute] +---- + +.Complexity Analysis +- Time Complexity: `O(n)`. We might visit all nodes on the list (e.g., no loops). +- Space complexity: `O(n)`. In the worst-case (no loop), we store all the nodes on the Set. + +Can we improve anything here? We can solve this problem without using any auxiliary data structure using the fast/slow pointer. + +.Solution 2: Fast/Slow pointer +[source, javascript] +---- +include::../../interview-questions/linkedlist-find-cycle-start.js[tag=fn] +---- + + +.Complexity Analysis +- Time Complexity: `O(n)`. In the worst case (no loop), we visit every node. +- Space complexity: `O(1)`. We didn't use any auxiliary data structure. + + +===== Multiple Pointers + + +*LL-B*) _Determine if a singly linked list is a palindrome. A palindrome is a sequence that reads the same backward as forward._ + +.Signature +[source, javascript] +---- +/** +include::{codedir}/data-structures/linked-lists/node.js[tag=singly, indent=2] + */ + +/** + * Determine if a list is a palindrome + * @param {Node} head + * @returns {boolean} + */ +function isPalindrome(head) { + // you code goes here! +} +---- + +.Examples +[source, javascript] +---- +const toList = (arr) => new LinkedList(arr).first; +isPalindrome(toList([1, 2, 3])); // false +isPalindrome(toList([1, 2, 3, 2, 1])); // true +isPalindrome(toList([1, 1, 2, 1])); // false +isPalindrome(toList([1, 2, 2, 1])); // true +---- + +*Solution* + +To solve this problem, we have to check if the first and last node has the same value. Then we check if the second node and second last are the same, and so on. If we found any that's not equal; then it's not a palindrome. We can use two pointers, one at the start and the other at the end, and move them until they meet in the middle. + +The issue is that with a singly linked list, we can't move backward! We could either convert it into a doubly-linked list (with the last pointer) or copy the nodes into an array. Let's do the latter as a first approach. + +.Solution 1: List to array +[source, javascript] +---- +include::../../interview-questions/linkedlist-is-palindrome.js[tag=fn2] +---- +<1> Copy each one of the nodes' value into an array. +<2> Given two indices (`lo` and `hi`), one with the lowest index (0) and the other with the highest index (length - 1). Move both of them towards the center. If any values are not the same, then it's not a palindrome. + +What's the time complexity? + +.Complexity Analysis +- Time Complexity: `O(n)`. We do two passes, one on the for-loop and the other in the array. +- Space complexity: `O(n)`. We are using auxiliary storage with the array O(n). + +That's not bad, but can we do it without using any auxiliary data structure, O(1) space? + +.Here's another algorithm to solve this problem in O(1) space: +- Find the middle node of the list (using fast/slow pointers). +- Reverse the list from the middle to the end. +- Have two new pointers, one at the beginning of the list and the other at the head of the reversed list. +- If all nodes have the same value, then we have a palindrome. Otherwise, we don't. + +.Solution 2: Reverse half of the list +[source, javascript] +---- +include::../../interview-questions/linkedlist-is-palindrome.js[tag=fn] +---- + +This solution is a little longer, but it's more space-efficient since it doesn't use any auxiliary data structure to hold the nodes. + +.Complexity Analysis +- Time Complexity: `O(n)`. We visit every node once. +- Space complexity: `O(1)`. We didn't use any auxiliary data structure. We changed data in-place. + + +===== Multi-level Linked Lists + +It's good to know that linked lists might have other connections besides the `next` and `previous` pointers. They might also reference different lists forming a multi-leveled linked list. + +image:mll-3-levels.png[multi-level linked list] + +Let's explore the following example: + +*LL-C*) _Flatten a multi-level to a single level. You will be operating a doubly-linked list that, besides the pointers `next` and `previous`, also has a `child` pointer. Return the head of the flattened list._ + +.Signature +[source, javascript] +---- +/** + * Flatten a multi-level list + * @param {Node} head + * @return {Node} + */ +function flatten(head) { + +} +---- + +.Examples +[source, javascript] +---- +class Node { + value = null; + next = null; + prev = null; + child = null; + constructor(value) { this.value = value; } +} + +const ll = (nums) => Array.from(new LinkedList(nums, Node)); +const l1 = ll([1, 2, 3, 4, 5, 6]); +const l2 = ll([10, 12, 14, 16]); +const l3 = ll([21, 23]); +const l4 = ll([36, 37]); +l1[2].child = l2; +l2[1].child = l3; +l2[2].child = l4; +const head = l1[0]; + +// Head: +// +// 1--- 2--- 3--- 4--- 5--- 6 +// | +// 10---12---14---16 +// | | +// | 36---37 +// | +// 21--23 + +flatten(head); // 1->2->10->12->21->23->14->36->37->16->3->4->5->6 +---- + +Our job is to flatten a multi-level LinkedList. So far, we know how to navigate a list using the `next` pointer. If we found another list on the `child` pointer, we can flatten it out by moving the child's chain to the `next` pointer. However, if we are not careful, we will lose whatever nodes were on `next`. One idea is to store that in an array and bring them back at a later time. + +.Algorithm summary: +* Starting from the `head`, visit all nodes using the `next` pointer. + ** If any node has a `child` pointer, move it to the `next`. + ** Save `next` on the array (stack) for later use. + ** When we don't have more nodes on `next`, pop from the array (stack). + +.Solution 1: Array/Stack approach +[source, javascript] +---- +include::../../interview-questions/linkedlist-flatten-multilevel.js[tag=fn2] +---- + +.Complexity Analysis +- Time Complexity: `O(n)`. We visit every node only once. +- Space complexity: `O(n)`. The stack array might hold almost all nodes. + + +This approach works well. However, we can do better in terms of space complexity. Instead of holding the data on an auxiliary array, we can append it to the end of the child's list. + +.Algorithm summary: +* Starting from the `head`, visit all nodes using the `next` pointer. + ** If node `curr` has a `child`. + *** Follow the child's chain to the end. + *** Then connect the child's tail to `curr.next`. By doing this, we merged the child's chain with the main thread. + *** Move the child's chain to `curr.next`. + +.Solution 2: In-place approach +[source, javascript] +---- +include::../../interview-questions/linkedlist-flatten-multilevel.js[tag=fn] +---- + +.Complexity Analysis +- Time Complexity: `O(n)`. In the worst-case, we will visit most nodes twice `2n` -> `O(n)`. +- Space complexity: `O(1)`. No auxiliary structure was used to hold the lists. + + +// ===== Intersections of linked lists + +// WIP +// // https://leetcode.com/problems/intersection-of-two-linked-lists/ + + +<<< ==== Practice Questions (((Interview Questions, Linked Lists))) diff --git a/book/images/Find-the-largest-sum.png b/book/images/Find-the-largest-sum.png index a2e2719089c4b0aa36390fbf219ece7cf89b7a46..2131f9973c58ee8c7c683265781b62a6f27b16ca 100644 GIT binary patch literal 17500 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 literal 17918 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 I`{2d@0*ys<&j0`b diff --git a/book/images/Recursive-Fibonacci-call-tree-with-dp.png b/book/images/Recursive-Fibonacci-call-tree-with-dp.png index 82901be256408dfe3580ecb4751bddf2fcbd46de..98e89c5f24421f415c732970514ef5715a503948 100644 GIT binary patch literal 22002 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�^R2G)F6mCbQJ`mRYG_THS-$V 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 Z`?BOea(aIf4sj)^9oJHMrfhNj{{Rc6eYXGr literal 20798 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 diff --git a/book/images/Words-Permutations.png b/book/images/Words-Permutations.png index e9b1817665ce3f401df301c876b016fd3222c1cf..9b08853d7f9488755987f3407718cc199848258f 100644 GIT binary patch literal 49677 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%0A$cMm}D9saEusWSX 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 V5k9R{!aRb(i|YFUxygrl<sWv?-4Xx* literal 45376 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%0Dk^=cSkuQ^(wJ`1 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 F{{SOpsm1^R diff --git a/book/images/cll-fast-slow-pointers.png b/book/images/cll-fast-slow-pointers.png new file mode 100644 index 0000000000000000000000000000000000000000..3644d0668f1ce269320bb8a2a5e76c7e1262e3c9 GIT binary patch literal 139915 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 Dgv^AW literal 0 HcmV?d00001 diff --git a/book/images/cll.png b/book/images/cll.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7eb96419f5e9f940d1f391fafa0c1d6bc59c92 GIT binary patch literal 72189 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 literal 0 HcmV?d00001 diff --git a/book/images/course-schedule-examples.png b/book/images/course-schedule-examples.png index 4dfa688ef35cdde42e0fa73c961fbf579c77166b..348fe3de7a232c03bd2ebc49c263b43e2b5accfb 100644 GIT binary patch literal 22504 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 literal 26285 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 N>9Uo^sYaWE{{|(EUbO%K diff --git a/book/images/critical-connections-sol-examples.png b/book/images/critical-connections-sol-examples.png index bbf2c22bdbde6c695962c625508d32420b701b7b..eb3e568f4303b57b49aa362e4ce237f7d4c9066d 100644 GIT binary patch literal 35639 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%0A&dKTN8k>e~c%nTU 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 IhRzZH2Wo5Jk^lez literal 37090 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�iBNrvO$-{$q;aM<BcGIs(P=xM@oaAH=l-eg@x< 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 E0LA#_YybcN diff --git a/book/images/critical-path-examples.png b/book/images/critical-path-examples.png index 7ba6906978a42758beab4e4f6ab0a05ed013cb92..63b0e330e430fa49e294f765cded36b4cbff8158 100644 GIT binary patch literal 40870 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�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 N@O1TaS?83{1OUm0Kpp@9 literal 42278 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 diff --git a/book/images/mll-3-levels.png b/book/images/mll-3-levels.png new file mode 100644 index 0000000000000000000000000000000000000000..6951c6be48a49819a4a497994292f612481ccb3a GIT binary patch literal 31078 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 literal 0 HcmV?d00001 diff --git a/book/images/sll-fast-slow-pointers.png b/book/images/sll-fast-slow-pointers.png new file mode 100644 index 0000000000000000000000000000000000000000..235500669911dde9ac834fe5dc30409cc2d7f5b3 GIT binary patch literal 24109 zcmdpdcQ~BU^Y2QCAW9Ow21&FiiQWYfB)YYtMnqqIbyg515}gRE_r>bH20;+L_vqc~ zi^bkI-{0@|Joo;2@1OS%&sp#DzUR!DnKNhRGc#W_)nAhm(-VV0AW{`&MQsr1b_xiD z_xkP~;7R|O0wpjIIVrz$1%XH&{`<oNC8y8=5Aj^JU(16^1{k-1fAFnds=Wk(%A-iG z%m_dr<8~Frm%5&Kd-EhI#uk2PoM~*2QEbnuh|2HOUvhkMpB_I7%+S9k(PeW|9sXcn z9hhd`tht7>wK1iZme(NnUajheP!;EMTPNrVWZ=L0Ky)kNF{jESqUdObdeimTKfHpj z6CV9ian+N%(v?<&CO)Orm<@XmE6YX8AI0x>E@WCaUS!Rh1B8J<tJBK2|Ba7s;j8}} z<sRP!HV6WJQl=2Y`}ZT}k<+bzBiqZr`2R-5z@J3_#xVQ<V8b8~1<@^zf8(PE{~u1E zOAGqA^>J23avDBDCd_=)Dl-P-+&j+uhFJDz)DiB&8L<R#ZvGf^_N?0~OSP6<VoASo zp7ANZ6M<wL^>{WBRa9FJHowNMPYkZn5`Z4D0X*Uw(_HlO%-@r$7$p;Bu2JX@g-$LR z`;lH4Ap=Se#I24Pi%N@X>*F>?hF(tucIQUEo`*rnHh$b2eJ)<_;IddQo)1?y-2jB} zyFbh!3XjvU@LqEh#$xtpo!V!uA97VnqViIg6x%6CjTIF>!6WE#lbpC{bGc^NA%Po7 z?4KLSIM)07K9Iu$(bC`I&<rt|#)hL7%UcRaFW!#*gml1%|GcVM{zIiJ*B2JqnO`fl z=iys$`*Gylq1Q!wpZ(#VPC)tZDE-Cn{Y;W%SBvWRqRnbgUvEMV^ClHaJ2+UqG3+Y~ zmF7d#{wd|VFY_iYGGd$`H6Z@6!F+@z%~(9oF)goAcFl(%B$#JzTa0Pox#~GS=)DuZ zddBDauBO2C686Rlc&eSU9cSj^kMtLld1LD>=TWU?Zyd8tjt?lGRsHPKycN=dITB19 zt>eGH4Z1jNU?Jb49hy^RifiC{U)a&%2EUi+4`rU-Vo6VKEFKI!s@&SByUE(2b0-1G z-3@ri`O;RXbiP7l$2L#ae}u&OtL3vJhST8U$AuMZ@&z)3>l<znSRQH<Gi7ShB;!Um zdp)xO^vMsY?(c)9CI>4c&fWPE_7$WV+myqHDhK$WPd|y`<Do@LB?g<+@?S<Z!NLcV zj;4+b3scd~vs9sl+Ade;!7Q^68PaL16kg)K(<`9{K8ulMo^8lrLI&F+H3ES{1Tf%n z!IICS4u+IgXxtN$piKJr1Ndu*Y6tyfONIN;0rD^MQx;C-*H`Xj@=_nqpPk4o;-nj? z{w{@^@|Clo{tfQme7=PrBq@N|GE(k~1>oyc{{~0C&|=3H=0c`@27Mf}Xy&!nMp>Rp z$*rVi)*QyDRU1>CVfg$?S;UTC;pudTIc&+7?4%4~`X?8ITB2@zsEP@<X<0pQfqL%; zJXGf7y_0jtA&)iO_E+Olo|ZP%QJWR>F7|To>jJaQU!4^bR-X*k2x2OaCL9_4*((8k z4rN`YM-B1P=R1UiyS_w6Q85V%&$Sa5%@tGGG@4F6<2+)vu-XxXp!kQkIHCoDNYi<B zhba52o6rzU?&pOah!J{G=^L$?))59ecUdJ}xt8>;EiPQ!%*J!;b}Rgmy~Xq14CD%W zAM8PH^Tbl?99xv&Z=ti3XV8LVLrW;V@N<-S1p=)B0($&g4y-0@<mffYOF)#&VW4r| z@x;I7aO0Y}(c!|)FF<g6h>Oot=BmBJhQ;cK{mGpoTieauP(G~YLX7~?$dlsw-07Bs z75;l-8bWck>DTU!YrTfh)!#AH1YjvbdRw24aE1c+TOd_>fKedfO|+qFy6H<|o)gCY zL`(}5Q(7-;zH&1|QgW)WQJ|H5rR2*hpI?_*leF$>JCH_?QAz8je@!ppjb6dzNi%2d z;}5UBsf~;zn{|F4I)6Iac*!j3e|h1)K({fSa_D+hiV@wb^<O+ePYg{&A2H8Zou!d4 zn6KD&z49(5qm)Aaql7NtVOV_t{fX`G#mf>yb|ho41wb^K|Ju*cYe}`JxcKC@m2N`z zTX&`f3rtB%Vu&B!JzeM4r7VUkRgd_FhKAzG%F&tGSyXlPc-q`m4$99DW$bz;EYj#u zgR67MdSmQk)#$fVyI4`9W6y;??peg<7@vIq%7%VKSD>TF#Cqw6JiZJ1r2S%BJqj=E ziSXOjo3EvY9X*=hF1wV4lN!V>JH+?#QFto-Hb%y|^m<d)KYl#A^CE6zcG@b%_<%TH z5dO!rHQ8pNmNaxFZja-d!1zScP{2Nb)q`B>_!EnWq=cmQKIBL1N`vHXEJ33F7!1no zRM<W}F=44=mp8L~*(uWE(&XQ|qv4h?bbp>5>VFKEobZ0O=J)-r>9S+ugHr(~f84BB z-}Pe5I%3-scH%Qv=acQfI3oUr6rfzojMK(=KEJp*dzf2EZ?+(uzLeBts!P@-Up0*W z#B4_4xDw)D^9Zaqsfph2g+Kb7hAvbMCPTcWmnrf>c;Hs|;p6Hk%bAgh_PKh-g5-<p zanm=3TYRf!YX^TBJ&N@r3Xh^>-P{XC+0TCj+DLf!BX#nxCePc1mRHV>UM0>hCw(2& zlN@KQus~B||BR<+J|G8i66uP)8CwWqfX)tZ?3J7PE;4)mO-D_`t-2AlGh-@Wp|Drg ztP54d_6-F3V;PXCXSzWqqQbwrBbn_6n{SMISLiFm?B<?H!d?jf=`Y1_r;HBN3}?Tl z$!(|0S&V~Q5v!E4_)4!mN3j(S<%ExJh7X6dan<=BcAM_j(ig)AS-iSm@6M2v@=l?( zyAvdp!2K{PH6~XoDk?oN*kXKq{6?*#kxE85{w&FOP~XsMJ9?(*yV2U<(zB1?1+Zkd zUPSdIS<82AE(dFygAKdJZak23MFrBy_U2t)r(%`&2QJ>nE=|tq(kH(bXM4^bp3ST) zoLvoiOc6LT*+@!wct^A$-Fv)P1b*q{bq2tEx5dUqSb}qunr>|*#SK(#506jG3~%$d zyY&2dv-|D2)s(AG+8b<xJW3ORB5%G{xPgC74x&$SEEu|&B)=9umZ;1qL)tof>Q~Et zp1@vHWi2!3nZL!;N@XZ{fpps1_rM!TZ=GIn(17~2)6dfDEGTrl8-r7+?8I-og>mYK z@El%B<N6i+S8xu(g?OM(Ioyb!ND{BSpU6&LRW2uYcQ@~dZA<@vZ+(l;M{im^`pbzP z7VRAz>dl^S^Y5WH7AT7ZJ~7{z1e#<EHkmcipU|5?zA5F0JOy;Q{3d`z=KVt+j+wB5 z`!_?1^XZXxb&Y1#&d)VFOfdH)1p6pONW_~YQ{R`tz;8X~>anMc^O*Cz?!9Tzv^@-S z;$ZXD$<QHNu=@2)i|<Mz)=i||RsOjI0`MRbf89}sl<Nk!3kQy!CmD%OJL-mD<`9w= z4!z-D=pTG{`1(a#pxmJW5|L~cO72*h$PjfIQJ`hAQdD92S&cUTPJ#pefEXPol)A`! zm0QW-_wpQ(D=Ig)Q=&oga=nXm%=vz|I%%ycO7EKVri3Up$$}U`Eayziv>fvD&IUBR zsAA{r9L<cmZ8deY)n|WpK3y)Rcj|Ms3r;^RI%t!&xYi=qnBVYM-^2$!)?(Xmvdtve zyG?7drg3a?#<Xa~;0`_DA8AXtdHOBsFaOA2hrRq6`wj+%tM00Meq3O&*WYMuj;)N} z`<$U`ARf)O5&gXGg^i=Og-V9Tdz6hIw@5=gFD~OuF_IdA;dCOMyf-U_DGre-^c%KQ zJ2m+>QF}IXaYqvUOGZL|F|vQOT(_2~rA}*0sC2839G&>G2A=#uyb;!%8grL&PQq^A z%5SXi&2upD+*vd^uZ5Qm3(PFa?qE>vZ|xVQG-?wxo=3g&9~=?ldA2h(R_27t1H6&g z$0hB^-aNy49nzy6JtM0(mVD(8_c(T)R?Ki&O*avz?&BA0&56@hm*Qs|qPXVfx{G(% z^u>mGbpwQ3B)Vd|Hz3Fj;*sdDLj}vBF?t<IYZ3OnkY>rYvG9}_(Ybrqnbcj>Xqfl+ zvV4I9ar~AE4Q9{p)Cc^Ye&t#kpT;U{#4EX|!HO8+Oi31ANG(%w69XUAnYs$<^nYJH zUVZbt7(s$`&Paei(chv><r%|U3kAZU2W-v(I&ZqZ(g!6UFVnA{F5t$LA#U=dx!Q&L z>$YPB#D?W3#Mn578^rZ)lH=5GEn*5J6%j#D%|P75l*^w5=$xh6JhnLd4Ud>NX=zD} zNP}Bov&A|a!botoko!D!-LS#_zL7=cRJW7oOKQK81X<%wo!Y+?U1fEl>cb!8%?rD8 zgm#HirG?T3RLlgGyVE3|vb;-_fi9FC+(GCImX{VH&71VGU6xrx$dy6Te7AjLKYkJ- zJkWzD&H<ymXXU$pEa(_kgRKjSSltT_qjAm4GQW^;?dI`FCVT0<g8Mb-O%qA;<$JS> zb(1EJQ`WC%JZ2b5TOIaN^PvMxHaENK(wN^%N_O@#X5C7TwJKmi`{A6vV)&o83h-jM zja#dq$jSo|CgGo*yuaCqQw)R(P$(4o@R8`Q2p5S?Zqd^%G}d4Crq%q^QA>IIE)isY zJSj2044E!#Zs9u2GW9u`2)^;9vHmBWsKbDz0IW~}>>7=1zYU57SU=i7eQ#j?*<<04 zLiqf3)qx>mHZfTTPmgwLOKS<!{C;-nMOO3UmJ$j5(2a1H#KocJiwcB&XA{+Tep}55 z`ti|oM=9q&Er*-3)4zxw+M8mSCC6tz@P<as(v5P=lq+<j>a%B`zAZis`n3ST%zV4B znrbocwohlOg^)oj*G3m?`YfC01*8nh*4s>Ff4G>IZ$R@NrZ8;KuO|0#6*^fGC#V!S z+~I=RD#OcWiv8Ka7gf=3#8oEmXW7o6AWzw$wtOdYX0E=co~^fE9gEo6+Fl)-&xMQu zpA=>b8&lnsFrYsOk%JzcJ)jXAr=9H7I~H=g&-anM^p=??E8*~9cD;Pz-OoI1-fwYz zA+2{~X+9n|zgJNMqmUKIF8$*#K@%|Bz-#wWl8JZEd!I&@R(Wj<)Ht8IiI}ZF_Bli* zLK`v19yK+F8$A!*3oXBaC#&=msiU{{EBg82-CagttFM;4!mCQ%C~nG^5|+!<B21Ha z$>D#ho~TC8TC#B^s6(1bLe#I-iZWUD-*ST`L`K~{Tkpix5i&5@5i*cnlJo|1K^N*a zl^9H2C7|2X8{3wedE8A5Ccu$TiKzNKoR+jqUFGS$GpctN@MPpnr^ev$#j8!xJs;eu z&sjCOU;l#7g3mP;d|>w*EG06yxQ|rz=rnn~V-I-uuzBfSbI5%}-1$d}v&pg0feE zdkY+j(!@LI4JG&fE<KeT8T!CpRA@g?>|C>ZR0*AK9H>^9b)T+5VWHR}Li?4{T7%J; z+h_c(*EBvhgN~&2!v}Q-hZ%cMmT5&soyYs$z8oRVj~Ml>gKjOdN{Oobk0zZR@IKj3 zp{Lx4j22)@lwCYOhWi`(C8+U3xsAB3Bk2UYTI+u%eKrSY3O4bE7uGKY2LnI>;unEB zYG9*~)K-5EH+Jnld%N}(z0~*)TCd_BS~@@E2Q{-ZDITxwYG8KAh=jqbNv&~3Qb|%{ z5;(b)sy)1@#@z1dR9MOI#PGrv!GJo0b75Npv{;zMzWmxJa=J|+!u_vYoW1Y98w1$b zjOt<6JJ(q*yR8?9YFJu?l=oOy)OMLGU$Uc#NVNiC)O2g9&o3YKN;7Mr$C5@*ARMX> zFq3^k(2038cZ$j~I(QR&+|JIye13YH%Rf6;85g0lcXznyLq8ICk(Z9~*^Q-3JkJ!Q z6%me~;H8ewiM$V98g&c%T&sHv^hh1h)mPHZ$r`Kl!CHiaf0yY>+UfI}rI;{+1&7;# zTO|tl7_82a?(H^I9Z#|>HC(M_EHdeRLUy;8*>QZePwjRupWPHDPc22PjjX9@GLjKm zF>gXpncdv46j@r$-mN}UzQXH1SLDeo?%S?3;gt}u6^ANEjjDrnXO=|CX8R;-rugC5 zH-N9?rJq^v3@7XjUnQOVlNXRyRkp?X-fw+-Fz1S?@S)1ry965!iLpR*KVKSN6vL>p zc~@&{to-aKEfFiNCtTQTIo^LHF=$X+-8g>I8kfp}LN@o%8!+tt{=)8_a}nlGs?ytP z-#~Vs6vcZ=b{{0?^2C8G-}NG^?-~&}JHu;t-4#ocCX1UNJZ@-M{oX81#f4HrAZz{A zuTxqsatq(rgA7a!9UEudPr+j21<q7_{_uQ{(H$dm*6`eY9;JwywKpXd;01JE<#D{n zF}*eFHR|+S3?c0ryEpCpTglzS;Pjo~ZZu?zQQ81I5^(@2ly)xelt?y2E$bJ#rEOP` zm2OYN>ZX;dJ*G9%FX|)cv}|bjTYf!_L|D`6d)8&qN2utZjt-X>bv9I4Yjz{a?8LW( zmn99b(i#}#eN(@}8SW-?o3Y<oH}FIigE>Y2(CsPh@j+*Wb?_<AlPw8(81(5<>!_Qp zwfbR*sK|*=6RNVm<+{<)P-N^d4yo{59oAg8W?Y+-qH$7-v|~9I#{)UXPyO5~kk3KT z6B~rRifH#0y=Sbio9*?8&*_d&FO_yRZFJH5lG*Z-jpnAV+O+&qD)o8I8u7RdeM&yV znh|*O4NZ+7rqAU4=9#=)VyakEw-RLFu>C`|uuxjr%Ijp5%iBh<C!X1_-)UZ+ye8GI z@m_f2Bx%MoKIPe?Ga7D&8<|gMs~qFpQl%_un$~>Lk`!WuS(#N!OX2kNY4Ki&tb>Gp zqb{o&*_FjWA-0!HiYi&eivt~!IyVSm?w7Mcn<+ZnLWBao(5GB=oUp=Px|Eve9qc_3 zS#dtt)z&5TE``=ck<uXk>sbI9B>cjtjfkY*pYi@U{O#4vWLtfF=jyG_rS-Hs^C3*q z%?A#&xmfSXr8L&sQ@3IK=r1ezQ-li`y3!f(F2}dVWheK1(2|z3BlX52nYN$DCpD_v z`4vTW?W(%EsO==+BlJ;eWtQlbp6_JnY)rieu4i3j=V0a|ij<=`&n1U9rSkVShq~~` z?<Ijbnc*r)wOjNj9dvAnC=BNv;q8tNn(9p*<UQ2*gxZoizT3hRB)ejF0(VM>bj^v( zKCN22b0OJ%k7id`nwd2(=#hi!QzwZwR;>#I<u=|M!Kq*=WA-u97;vs)>7+ZK?ax9Q zg9wT1Z{Eg>(KDA<<Vd&gd`-V@W<y)7b)H6+zu`|dv*P_>y}_6Ek;KZ)a5lzV#N4|% z;@Eb9<BYlbdx)N$owx-P%6?*D!Gf1#26ej1WhXsshB7%|G?bj_(uEkTWJ*trc>jui z*I@rNRsc5G^ICuGyF^>(=U936`$E3Yf7=J?5?5(BMMw5O?&osv&I|F{V0YrK+cwws zy)tG&i%#k**x`Y~;(n1MNlDKBY!ne^UL+BRJJdlN>aB^t(M$03t@BD=&n%#{PG%ry zXZY`HdrP>DwqqvP6iRN<cQUHKPUw$3v-CgAuy2gQV!+?%ZTfll++jGG+1j15i1g>P zBxyRu3daXzqWYm2{S9Qy#5!1{aaOX}ea;#oV^vr!Qazn1x=;q0Ih!4v@a-vST8$I2 zIC`MK&D-_B2&Nh<6h9%nIZgq|mVu<^OJGe{Fw*25LcUstEcFS6uh=<-6vcX5CkwWw z-X3Wh5ZxJwGP%;SgF>smf2S^uE1oy?tI5i0mtB~%t=gX=+2<<4R!N8JmF#V99;7Ey zN<@9$pf7r;Q>#sXMha4{i6u$l8|#tl&<RRV4DJlL^%ID+u_20<$qe*!B>#LRzx1LH zf7k6~&Y>E)eZu&<Yh&1krPlp=EpNBUJCa@%9WxT%Jhv8b&1W-Oc8+@oML+f=$@M!j zZ5d2Wt&Z0R&*+^<O@u3Fl)&FAdV9HdBrM$DcbnKr!sqs{=H_d5uWH{Ne|cI|_)*_p zVkxsK8JAeas|iHw3Rhhuj#UY7^e!X3<|*apyWjuNT`>{0m&`=aAJ0U}59*kkpc8YH znhV%auWSOd8JT_8+kWwl#M=Duhz%LpzFIr;rSdS^vLjH#Fgkaq$=unJVak?pIQ=2x zp<o+V0S*tDu;u;q*ZmFsncrlD#}nI3K9Jm&>Rhyeu`>AnThS)4*{E<9<-(oqCDMUD zV#gE|hDh(Vaj*g<*{Lt4PDbY7&sL}Ii15suyqtH*txzAM2)zEbEkl6<nPh?>M&Yb8 z<~dvARNJ?1J`vAO&!ft?bU0?t8!q%joxjsCHmk}(LQ|z&ex2D*+w}W13wS%Ft8Gg- z=qNE(XhqDTu&Xc8(&|$TJ|-15r=#|5NhGL9uq{>v@=|q%IKSi&g=m#P(MSaa2-f`$ zCy6OxqxUUgIQlV$(jFm2fvLE9ul=)g5}Jd$Ek{DULbs+|nV7ccG&w>Y_}(@=qA!L% zeWGcp;PaAjYf+?bj~WE(j4vS0m(L4KCGnsiSod~1)i1+yJGKxdKR4mqMMCsRyJc_k zW%ms&^kjU-t*)Im3!dj~G*CIYk;p7wOKsf>-uGx8+>RjAP8gM@9w)9=Kki{)uy2hh zrZuz0L><Xn)lRM_KX)yjhxaYcA|q92{Wm``N%;<`r$CQxZ!MXZ8otIjLT^%tOcGpk znCw%m2c;Tk&swLU45ql?=CZ9@jpt3Pd+hJ-s+2wwxBU^yBh!}orSK_1k^KJmcq-Y- z+(-_O0jIHxDgd+pQusI*<-n)9P);YsXZ*_8bjR}^<V8?-sSE_<hS|FCMlG<@s>cDU zEc{ez*XOir{N^--8$gSvl;*d}KU>>49)^ArsS&!w;)zrVo$Og4OJ7CE@7dSE21Z^k zYABdum}af8k?7-AcXTF6Rr~t4FM^k8k_{iKj4S>=@W-`HlD90NFDCgKCuCeYUyqo~ zohEOX`pfJsxL-2cK8C^E&of1u*eqLM9v;){lQ;bfQU~GHRj{eL8P%PUFaz|2MXH{x zS%`7d$-IdFzOSU?aDB~g)0+EIeP1!kE|ke`!P1^7zj#ZrQP`(c+P%1wyGZHXbv!-V zqpWWr#W^4XmGn_eZM@&ACeMM?Wp=#wNy*{H`tL7>oumE1BxI?iWSOK3rQC5c9xOqm zmyZozxT>hGDQ|r0)k?T2!{!XJ={dC2Z>D6E)#SK>)d`d#OR#Zuzk6`zE860ahWa#> z;!k`(YJR49UvS|J*e-umnLh++CM&@>VBZkj5jWc<5z-2F0K9d&VX;2)ru1i_iGTCt z9G5Gh@m<A5$l{{3zv^E66yX<XtiP3A8aA9sV#4}$l<;h9@WWkw^CFt3v&GfTqkINO zGKOAjra3|t4GlAU5Psjz8noBKjAX-A+4P8e@7caXMWlOWPn<2Pq-MYYj!QlJE>1(M z-nbVqt6jKQ=upW1_=^yuh?uEhU944|3uOtE`+Wm(tl`fmHec@q+h~lx57zX@nl@h8 zec60F<h9SweEu~a3p09ZZ&Ln{`G{#@=CP+tpRTh<H!?7<@kzD9<DTxPpbXd(_u)r0 z#K+|i(&Y;srdtyE7Q7u|_3%<8ykd;8`##sP>jTXUyR!b6(uoNJGh?Q4ksgviec!L( ztx6M_**^Az2tpKg>@iwy>&zj)xTa#p;rb_`{bf9Xo-ufZ;EOGTsC&~=70gvMPDXYB zwTdK;wj0`6kt1~#EghXdVa^q3((Cvu%*`qmWeC=&y@aLM>{~_`B2-8b52Vrp6&eYB zA|%~|6s&?epmD0*c}jY9!ep^9C;){+dQjS5Pq<%0E=1{M_oYSr2Mkd<Zw9>WD+_z+ zi;(+^w`EZ9wCg2d51;XV5uBH8Xau8pZ`as29wdS25lVO6L86T~x(IrQCuxft(KZ=w zs98W6$>1ht(_(b6D9&}fHh1NbuNxR9*)kH`|F@jZ7k+-Dt*@-yoqnd(?AY(;hk2d| z=nC|UVJ>w?zEVPA?87d#8X~v2(Ga!#8M~aZarF~OCewx=qhwxWnK%gLWTZN-)(!qN zSEdgsADi57`Ma@CT@3v`;+(CjU4~bxsyzoOCWR~z8umzXwKFj;8P;GDiBYl?G9vHF zsX>}=@zoziwUajHKtxA-@}8T9lU_W6tlgU_GY{%~SJ!}~@_4g1rFdzs10MLRX9@yQ zJ_vaD`(Z!A0M~UHkFA==SB)!7c{yXEQY$u6PB%C3N;UH+@?-@3ce1&B00iQ^10-xX zc06)I`nBmQ!cMOC;s%V;T++|hzGWW_=B~tUTW+aB)_g7d1n+?4o>PbgND-0eTUh)a z!7Lo>Fq{@TbvbW-s5??!Yd*0_-+IJ!duD(H^huuG>6Ta7@xcK6D}mPhGrvpG38UW` zb-Y6lOn!538D>6`blu)KkrWYyMq#APL2@>1!21+rbOv0ptY6ny=gKK+y;8QQN#wom zdOWi}d;|g!NBksOeJS>l(<w{pm*3$d>I!aCdOZdcDb5lSLp+cwO~6CiJXnVfU4_2P zSOz(Sw03v?gLB4GRhxJ&09Tug@ItHMSnu1QjOe>5KLvsz`MC}6;O)3|XC&M66zZk$ zvl)9kAXOj_P}1?s$-t=mAUwX*?d|8Hh0dSlUw};Ri()_=y7=nvX~#Tgk1V$jR6?G8 zPlt8bPVVVjb;1g^D0nzJWJPE+G_F0O`l1~{a$Z2zy(2^1<)!P+MumiZ5;25abeD6V znsUip$4pRvOa4M%#PMD4q%M%84_5q(AHv#nYcp%>PYe%a>1X}%Z*`tLr!{Ft2~C+Q z1N-P(R!+~kK%lIDFTUg%yThA4$XM@^OZ9$52*P*O4EB5NHR4Ri?4`B)FOs_e))v>! zm~#6F>Gd<nxV^^HMDVIkAxrZ|>lcBV*LWaG5<pS3#NHMJ{$i{@5&_cDy^~93sNjkn zP21OZ%^oh93(ma*WUhNRMJ}>kfqLU@nmMQA(tAiTYxUAnEF(f+O7L{*qcSfjL-XG& z?o8?^iqAZEIc1l)YeS4_%w-3hhDbw6<I`cT-&V>X&p;U`Kr)ljCe4WAYlU3<_^%It zR_>7}7MGeAG3&Qpi**=o0O1A!ppQW?k~_~e$R3!86%GaHbX$7%kx*9#o){v}1UhW- zK*NA?iDxu?dE2f~L?R7+KL0`Q6QD~7I&BhA7&EY|wxzDI5Q93GPe)W_p1~$!oO5*T z<wP95Q0*mr5T$%D9&N<|anxzG(Ds|8kb)ApO*IY;?`-FRUNo)Ir5AO+(>9rfk5p8{ zyS;q?Xh)>RrPyz?f_$y2U%f7?m$*7tjp-gn+AST2E-^p8{8}=2K6g+q9>0x^GCePs zE<YqfXiIj=xSm>FHq(GWNt#ReE))(0<(zM9eEv?7Pj&1t*N{qzOf?swtE&wsEqzPm zKkyX=Y)hXmTryu?eMw9!Gx`kCcuE^z6Kd)?wTK3HPen~$PvImUG9@mBdx&)BwdY0p zGxcr5=r(--o&i~Wm!FISM-NOszoyC!khiK^W|A>!KQZwh%rL^JNDaf;*6bt{R1MFk z7@xt&+?F2Eh~R;KQvs}cS;rmSH}v{(_u5xJw8x@crr;dj{j_6-cs}UmqU+My_pb-# zD#4Xi#{P$=*8{S*g9qRWEweAkFVty7PA?hw8rp#T1NFa&T9y2GBQCY`#1XYEI}>n> z6>+LLx6W<3JYuW7G9+4fNNPCXgkirw>*W(Q!-cuS8_5c?)TI^H(eflN=(dmZTRcz* zP?d5|tB#E#tuk~ZC)~UyQ&8#~03+IDlqK1@3C@>)84-;iqJyh9h^Ks31Ift%`ou~M z!EYab7GDBYusZ*7w^Wzm)l~dJd5_b~QH=d2<F4<kDSXf>17IDpoT$Di`FZs`h1nX$ zWxS{2DlFr==1zfy#3w-IH{=YnDFCKu0mtSi1u3-zmK3>%a#Erbxkh(H&s5|Oc>zB5 zDam&}SV$C+2lT<ecUhfoDNr)kD4Q2cky1)bqV>~V7QfUyj0si4VL#U>X12degQ;t4 zzNL}qz&37AJqB*Df2a2oqXlv5QdeW4vR0@X#xL-0${LT(<~@F=T-NG;+lmJa6h-+S ze&CDXfecvD*t#S%4=ZyI$?KQ|(0LaD`s53ofS&>u4<&-K?jqzQ6o^v)eMbot{X`Q^ zhp4wdCFVs8sQ?>S3<m0ayk6*UK89xL-y#0bYw_IoenuBK*I0LD#h2oB6Z9Uiy$rsK z_-e(+d|($ZN+W^3>6!N{vVZt*iwwhi&p~n~Ho}^FJ_RUM8Q64a0hCRo>R?(l{W32C zMZd#>_-~s3)en7A76|>nEGW`4lS}ix*uj0|H1<F4!Px?{{M4ini-CCfo*3{DdiZ0t zaOU;bn5T41Y`GDDX#*{P`AL)k9b(l^-lTXrH_UqLUzG$96XQuJsy<|53zL*kq!7Nv z@nB;(-?S=Z{d-F(zl>E&sx;;vP$V^+p^zh#ARl^nIqK(^Ur1zO)qVCqk)qX8CD*T^ zTkk4KgCrMVBTv6En1@j_u>r*7-xrG!L&JB(Z@N>lWV1n0vR1Tnw`F}M$X}*kbu0=h zekF^U1Bju8h5gqp1@cl1{XI0ysx1Z!TMZ$LY0pr==TyU2S1hbXb&xUIR~=RhU-M0D zG3&4!W2&n?&P_ECLNXg)Bk1ooIQ6H>h_BtGVk7n4EP~Y#QZg{y7Fs$5jZh!-w+q4@ z3kjuH74{C_VD93e(>KqOZWzcIZOSIjblgKc{1Y&B*oJBh201CdWkQ}&HO%?~1`DGk zV`8h%RKRzB{Z}z3(r0PAtvmgckG^u(FVXbJ(bUYMLp6;Ex-7~V6WM}=AEqPrGH9w` z%g{slWD+BmhIMUOInqwS1#Iidc3S)w94Q?<EngIRn%3G+9+-tLdURF3vmm~TMhwKY zPOsvgnbGhjS)uD!=i;#y7w_Pe7j8aolX%!lOlt>8gxif@!{4i8jkGhL&&JW?XdN2+ z*SNjNG}q(tL<8|`g&abF=gXhSVluN8@Kxjhg2&1jO(nZ(_N3msdu^M~y6<CH5E94| zbPL0xU-{xs56T}VQ%&<Ec8$Ai{K~J|2&4$A`}mDEML+wm_ziM2qnpn<QGPT(eKnoZ zT)RHvmNU@U_CCp`uFI2_5WgDPzG{e(HSX&7=$T{dRRoJ-V`JmB0CLglU}GFzS=~I( z?0rPQ&zN%5f}6dUKg>E3L>A+j^<QL0LjjqpM{HE{I~?;*lmukl37{t@2ES}8<4QF3 ztYHxwp9<^knsmp?LIetsTE%i#BSnqJ^kVb==`tqeyHK1@YlEHtBKpZ}dhU#!({<va z;gaYOi}#Tz+#0>L<m=Ik(aBa3l{O8~37`bljtvLa&iv2Xhl-)f<PwUX+U|?p7Z-m2 zgtnM6?Xi@s0>^%0(@^e1q@py(OBzDs$72+FLE>vxhw94>NY<1nC7mB6{<cmVN0pmd z*-E&$<_I=FX0lycMkY33{s;W9u$(M~$0nN;TQ5WJ3W(j}U=#K5ZeCQrE28WcJ4W<; zN^Axl{3q?<`dxIO?uw{9gGQBpJZ$)(@cTdx2PBd{wLJ6%pKM>1oOxwKtn7x-5Nj+m z6WgI&=x-ZX*e?<$HsmG+-iz$u@W7$y`@$0A)-I%zPUb2c#;HPX!{jFM`!{FVB8<0% ze^ae~%)}h89k<7Q&AfTGedr6_bG&9=ZkVyfElY2FyKG_B`WQ+Uvk9k`Pz;G8i#ge( z_(CY5s17L2?{Cx~VtG<_;af%uavWVw<~_pH70sK3p*cB%Zn5k9yN5yYc_H;X0pmUJ z&RDNk#(GAwUrA)9ub$y<`e@!RZICbc#rO{sorQ%kcwS13qKRN(9|5T^XDB>wNDn59 zS;|&;EDi8pH^oeg!uG0wLqj_AsHKm86O&T8p?<vKd$oMg4+jnP2-o4ke(>ozD2KP_ z-bzs4cCe0Yq>!mO>s*LC{ZS>2L?6;S8^Dbtgqz(B&^|Ws-nm<%(c>$K{=uwFaRZo~ zg6G_;O~1r+bnDp`so`Zm!*J&tSNS=#$W<e^2Q2JfBtTTA!bd0IgafB$`1%<vEF<0t zKl?qU10`7z56`H>dhwljdQtwSrukNaEn%~U_w~$jqVG&1KG0-QR!~BzT*k|sDDeXo zG+=F4{H-1_IGF~5bjbC@FoFH2kH?h-nK@pME}0rM_e_dPJC2nUTOab;Qe4g7@rSGd zi|+zPkMaMYBV+Eqn3jO;nE$>4g#5gY{u1rAQ*UB^TIZimf1enU#K%cYw2>~{?GM*5 z=c$g#R7!FvVKrqUMnv-6YS{9UF6tt^@(WevSr3LB#{DJs0Suh2a;{HmK|p%sO=C3| z>_9pR9RnPLHo&?9OaIdWKra7S@Nen+k`i8p9Q^5n=^|W>*98@RCaj8wmA|%H`5iVX zG8G;VY*Nqxs^0lBRM{Q4ImG{6q7*~_In(V~3ZKbh#IpZuuK!#oocCd2C%|P<_U~JK zTA<tzxC~<c%S3UCvXg>7<RMX`z_VyyeD%i$*rM6JA!Cfe@gUrWlL@yMlX|wI)_pIG zT|yD?keC&0WAup;SeaAE#JF!euHh_sQ7}HFnRM?AQiPepd7XW_o*%E=MOE7I5~=S= zzE_LFjU==9k6^Dd{7u*19iv>@d=clvvK8T5I;1`MWHCE~N!Fq%lEa_sv_gN^6>8l9 zIlug?$R>QX$>DxAyND)1aH{z*NbYvX&MgV=b4=y)rCJJhLkx_zen?%CV=#@TOzaI@ zpVjMEL?o0{<+LRg4NT@Xqwd&T@4bPA#R~u$es2A)bs(A9IN_}Pa&X>(y*uLTYPGY% zU&X9~ww#RVZ9l~ePtRj#+}TE=dbO;v2}|RGkDKpiUHmr5VC8d&(FZVz_xBvfqrg0d zBfnLa{bLq}cajs)zAD=k;>&I!Lf)xtW+e)%t1}zWOWB)L7P%Ox${t0}>JJYGFrf;t zY3LP8%OZup?zG0v6xOn9NNj5*omN1IY~w#veAvudp+5zvs{X=q!EWcd$>Aq`y0*Lo znb}?9-K$ws&iBwppQ&%NLx)$j+^?5a8{t|B2^F~G-IqR|qtE$0)xUz#&9_$ZOXbJ* z2sHfeX@kH7D&raiqj~AlD%r?iznT>kyG-C;Of6VkFJ`X>jq^iyD2B_u{+8}nB;k(8 z0XBs_b_@IXV3!lQ;Lp4<@HwLwZZMt|EOI!ZapE`MVqcVcKA!yBltC2G5T%GoC&!b( z^>c<rN4JGnuOrw923*Q(%ll+bJu91C#N65*1P{<GNUbfl+{hRCZ8SKGxEgJh5aubx z?=<5U)Q-(Z!{`fGh4zy@Fr>B8)vZ;M%7EE34Gk+;F+WpS+^2c!=HE#-dNt6bgC##7 zSDz0Zi2;-vHrA6;!X0(aQ_YQa(oJn1Y88(t(z9R@3q72vGfOad9AYPc4AgayJ|IT; zA1Uj!mL+X@`5+pK$GALOc5YB-iBae?eh25gmFlsmcT7H_S7pQdp4&N#7nx;TfcPR! z)2clDOEXua)FxSvO0YG*_Urz@?nO3Uo-{3s@H>5f;TGn5zVx*5+_2mJa5CzG<@B_} zaHe<+sjzyz=p}rg=To}x<weVVwLiS-d=Lwbb~pNAHYYZ%UblitP5B&CqU(2+2_&a; zrkMH3U6$swvAU7%YKMTL!UrkruS1pn0d?Xc1kP%hYiL;ZaqfC!->SyqhjAKBXAKGC zd^edfw`BX=-iJUDrTFP@^6L9JA^zegQ<4!21aF%$wu+tQm>Ydljq9pd#uDXFWlNP! z3i0x@i<ZG|lS2_6VPImK4YK?FPbS80qf(3@fvzIRitg-Q_;$Z2%6>=B?p^HwF3kFQ zC@_70XkYNU>y0Ivt1mQS&uZG#yLmZyWa_(N(BSEUY}3V$>!>2j&JXbXnm0D^CaZ** zL(!6|a6wf&&nYLsclA@xUy)E;7HO?4+WIU@zCdbxQme#OzM|u@MR9Sc=B7tB#(LB@ znY`Q4$AKjwp+ZP(%$UyZdkh5AyniDxVYaFD$BmZEe~sCnY!&I}c;*8=`9`OQZArM< zF5TMoT@=3QKJ<rGsvS5aEi|_Kq$gqg`l7>s68%b{Hth-KbMRp}9(R@QH_`an#IhmU zsBzwm=`=~zD)MjW46I^ORXLj&WsR+_gN5y4$4oCs@aw5s<_i~d4b-v}KE8L}q8QdR zn7qj3^;T7>8F$4rX_Kce7w!f(sRLC>BTHbZsCf*jopI}cWe(A|eK%t@H5=1X?DfVs zfgGSI;ln_`aQhGv(^BHCtL42<B|<)bEsS&Bvlm;7oGqsO=gD^NQxJuyY31s4*j8Jp zB6)}8LzU0M=UH7g0mw2cSKlVTH|^c?!d>%4uiSC}8+Wv?Xa}yrepXNNtl#lGpsJH3 zWd`dqSIt9up#UtXKC4P05xT!TZGQbVQHI(;0BUPJRn>|`#2O!jn+tk$Zc`-PkmEWU zk`X><!F%(em8YE%H5m5vBc3-2PpZnOnAj8`-^lLoX%w56QHG9aTd){q7VQG|Xom!m zg?gR0aPef;Yfl)StKAm&GszUd@z$v)qk56~#--Sm+>3gB>6$Z-nj=g}m3+Nje@hCa zVwBl6{ftk4o0m6)x^$TG9>Vr#;&PK1aLdh6Rx0G=hflk{wY|>+jz7EE%D)DA12&Z( zx%7<@QP1-+RN0By8Tmya!S9il?%z0l3&>q2Y$OkAs~imPe0cE+*ztZtFj(9ec5{AZ zTk0Vs%drDVlYBo(<7A>y@+QB??1bZ{YrQiGn<cIsisnu);{xt>wQ@<t5u})TvaG*O z1RR_sG*_b=GBLs$i;#B@D`-H1ZQKTmNq311xtFypSd_204?2_GGYI?@d8XJ}0aWOZ zackX33s$?xUOeUcm7V4M@224X$C}xj{zlTXSTwVJXO6gX$&xOana(Cfj|s5aod<Iz zuU)0yJaHOfeIeAjNnzt_4Ibo}mnJa?u5N8;MrZp-senBtq+Do<D|V(7U4Zb6vn`k} zP>6-=Tp!8nd+1+M((gTt7p#VIf{=~vAk9QOX}{Cvy@Kd6#cI!+urWy}-l0h(iwUq6 zv*!Z*T^~Tw!>5K<oyBJ?w12%gE(gk0<P)StJ5$_0U9kg(=*;hue>7wu&cqz|@%{19 zG`U}6j(k2zOi-};X)kU?xcW(JiZ^5E6A|353ND+Pu(0KC)3;Riees#_EM33{Hc0_i zbUoVIxRl|~eH8?FAx8f;YS?DzL$`BTvf^@-?^vGmKcahMKNDabnNLmGTg6NKuR-I1 zd_)F^tkeQCJa?XXdS<=!L%xa5Y1(!>Y(A^7!um0iu*J$#tx3K*WF*{s$z$<+7%$xr zH(5Jf_aM0l2ows%M1G7}LxP&03c&QLp7fUEuzq&%tHhhh>dB_YRXyE2g~!dnsn!jR z>?zB8Z?*7fFd|z_cbf3QD}olve5P;3d!#A-_ya~jP|jIs^j-3FYDdpujI&{-m#)Us zwz@Nhfm*Kw2paBpliha<WV{Z=UJs62Pcp8gVLNp0=OwIiX9AH$xE%pf7f=$T2YF1o zd`6q8{EH{GZ?z6|I|XUL3s^BG$CjiD={NDEydt+aKIy;dEmM?G@E&4)&`K6ll4sfa zV(ezdy)|o#+RRy~$>%Bpje!*Mj$eP+0v4XU&z2j>?c=SI?5^ptrz$zkAVR)yK~RLd z+T#i+73}NX*rdxhb=^fQmL+3b#xZVv4Q}v)Ka`fC$1@)QH!$qUX*&)%DHgtSKra_N z^xmcD=~rrFt<K8IS~k<__i&Z|X~ug%B*Vz6y<Jd|ulgauZ&$LkDtV2k*y38EwHJvX zNh$QTd=oI#9OY2T-}=*^1;cFRdun%s>BZQ61)%Fk?j^Dwu`D7)$zeq~?qQFe$rxP{ zbBMK{>fBt4;J(9jr+psR_m;?cobzDxN6n=TFFpt5k$j$R8U#`Vh2b^_eicY{!13t> z@FNPz^oA;_8p@Y1hFJsa%s(spYFY4`B>3%{%Q74ss<7Zb`}ZkkI&9Olu9D~5&(;X9 z-DoZF&Wa~^-@y3AY?<?JWy{!#LC2>_*!}FE|AS6wZvl{r6)fzLx@u-G^LP6vt^&z% zNW*>?hKi-88ruIflRXI}yZ;Lh?2iBM1EA%M0POzxfBQLn3OxLOX((%xN%>vW*m_-% z5a)tL1C4e6V8Aa;7YL0T$n9mozyhdJI{?aak^uDW0|6u`KI{HG^S^$#k@KTTT#shM zX7sDE|7mzDQ|0|f$NzgH+ZW>70v{22sESE=b=ORC@>OZ#yl-Xd=>QKYXxX9C<Hmct z2%|q<=j=Y+Eo-)6)Hnj{n)n|Ay3!(g{d4P&NjU&xK02cmVQD=kx!Kqj@VRpIk>P*= z;9q;R0SMG9CjbQsBpu+e1ib&oyBoFywOjN$AA**-b*5l<Q$e2!{$*OM?V&F~VcBi% zc?v+~v|<2|0eQdO9?WH`vxHCadOAccbchJ_Tl61dekiCNIwsPj0%!;S^k+4cE<@f> z{Y@JokkRn{mkH2h=bh3VwT;ph$NTjvudM!2Rr1;H8qaQ_Wa}8(%dW*cN*WvCNDKN~ z6=YaDv+uTZPXV|jU4%||$IPlFi16gfftqiK|KXeKyxZ1QUG+SWJkr#`1x!R!s5)4q zwPH80g`vX(?{V-z=;HNXwX+UGS*6f9ihqEAFoVO1Cmv_bTeIWd!Nq-aHQhdK(M~F} zX2DPo3?HPDbDS{{>Sy|Th!xWNFOiT3;N=wTrKoptB2bgdLyf5;*@kIc({sv$Kqjl; zV%RM??av*Si`NT&MK}@ctLa{#Kj!!FE)|b<%R)0eRTjw45vwtoB(>)`WF3#T*&~_E zmymc`q3UM>ccLEyk1Mx^!Jh}70UTzuvDU9UR7`j%m$}uHE&ghWtn@vA9+&xpMMqKE z3>KTkWPY;1XB3d2V1U`;03;%C&&oKdVR>b}TOV{=ZpoVLqllS~$@O@0d}+13{Zr!9 zNxxIO>sv^A(~jvExqL#Q$3r3#TcBSWHD;r%FtTp|!mZ%>H2^YMY^KlqDbVW-vG|)C zs#@1x|7gsNI<MQY0d06KpPxs*8vZH>^vf8Son5gjRH+_l5dbVzM}}9*(zO_!9!Z8~ zJDx*E8C?oL@_0gyO8s?2q0?ruy5K!gLvNNmHc(g*%uHuv`oIgkQI6QhQD+Li!B>C( zW1!jHqIa@T3?#>DeflmnNN7ghFg=F^QNdNUxb_a+G*Xc}bipBeo+<lB4_%5DWL)CS zrPU*OMD`+B&8;E$b?l~89@nkU1G~DkpUkur9Ir7NgEk{hf}{^gAk3ggi@ML7w!fOv zABfv>Hd80JicdMs2nZLC@IH?JdQh)LHQ-tz4B|`<XwMt)Uy7kES@{z@z_M`k-0to- zHs@5|pw#p}0xEz^p<)p!A^YR(XUzDInA=_Z#={H_1~Lf-e2M+hPPBJE$<sfBs(QXb z{v88xrv?Fx@uFbXD+=fMN{AO0bRdBH5TZszjvNo87)S(#vlf+YfklHhI3u1BrFY*= zz0L0Qy&mYv^6|sEOL`t;uzJv^Q3IJou|L$HaI?`uFxOXtFYA8PIt>J0MV@ox%LQ0G z6nQcV>_pzm5`W;u_zVC<T_9+7eaPX9%-6#THS2_nwHwTrG4@wcxH6r5b-EBG(gG)T z^?<l1I6O)nAWu6?>-PMIX$kV~%Tm-o$+v4+8Hqs)d1=THBaUQOpln3|o?mM!cpOl9 zZ*Q)?uLbinsAelEALY{_A$j~)2C+dflzf}8cx{!4K|HpDjfOa7iJOCG;uhz3*m(cj zqA6;Fx^`se1RyIwGq6N})4fG)%m96Ze4FVi=0nTD)RXlV=I(Cb;{%lKOn-=yy{W5) zdiN+f`u0$NW3Y40PdB5=<|+2u*7fNN|9Uq?e57Z)!cd37)j*1~X<7oLsFuyMY%os= z7VGF3`Ohlr`108#h^>&`7J7QWOxD^Ypzu4FBz5Ujrk7|oE55Fzgiq4<yo^cQWo%}~ z;CfI4I%6G2A32*;X*E5i5{DXX1gDD+uJaq)K76Vnvg$D1FN%%G`)g}y*Wwc8cW&x$ z4btQ!Mzn3`(d#-R9VF<#Q>QTGnpJnEnG$D6rBu4)g2y9{B{!=0o%06j4oYqZ0YWy~ z)I|u)&z-vbYmVkrxy+xhu}3u5cvX&TBz<tDepY5YTRS_jkzVU8EG**K^PuRkFxky2 z#cYM+ZAL{BN1^r2!9-N<Tz-hj9K8=nH7;bNq(#szAY3dhNJw{&WzpHI*RSx!=M9fr za?d%xE#O-0wD++G<nSNh;D<<M+9#?B{h|w=9pnhZ)(Z{z;NkC>Y-r)+Y{jNDx_m3q z#P;jLg*sv<c;HLi)B7UF$`QFv{LO`=OW*<E?2M4+j#HG0xqIgB99k_%eyY2h9z`ic zgs5k=h%aD&9XS<nn-JR7<aIWo;XlELTam2^57!bIX#5$)Bp8xl&7Rj~?1abawdz`1 z&UxpPa&YKKcwvY$6<NE1Zjcum6t0%)vE+JR;l}m#-)CAoY1h^LDdMAD-<a%3_!@q9 zosuOn3ERfIxp~YMmA2SQy6*}oDwrKNl)`z}T9nYMxfdzGb+yMuljfKsN0S&FI5HeY zQJ4Z+wsf^laEzc7&;LeqO;_@Zmp;er3quR;z20ENPOx5^Lcn7qyuSQt$9L}|OoUO@ zx#P(Qg#C9K87h(4nVI6|=K1wMN#;9~rL_+^)Tfp^zg~Aon>twUUH&{QBnZw+X&(B% z_?DmU)0LKnZv*L{H~|kMS#zg_#v+#&i4WzT7c|hB2>Z~D_nWC0{T++`1x-|+B-V8% zPLcT3ifuz&;qIUesMc)3U#WR3M4Qo*^W*lC9(z@jri%`aNwR}aJrf2FSGs3cd*bXT zir=~a{rS@8Y}#t?>X^T*p<(luQ@yr=DrtT^*sj$(YLUXoX)WOns3X^|Z^a+cpd3B$ z+?iRGVYM)&O?q2*t;y!q3pgB<`$S6k<%SOG<JY+--iGmQXOtw4b@YV6$sG_attH5F zi=Nod8t>DGHzp~<<Kvd>O6MJR!s(SYH525igR;0LOw$whE&$1~-MEVur<L)y-osrc z`{mbWw|QL+@K31;wsfw#f;zIwE;<ZlCL9;m6Ve-{ClqWtM!@2evgePoUxFy(2aqa= z<Y@daWGRL3zaOWGOl#K}HNcR23(b9|&#Yk<xe?6L4g9*?ANBMi&o<n)^SC$1kUCe~ z)?hHzlIssx?1=Bcdvnz#ov(M1x1OiP(SBmwl#1np7COgQ-KVrEO2PPb;Lv{=i83@{ z>ZBj`E#dKNSuY!uMbAoP)*KX&QX!`4pZEBls;B%NoQKLdXPFY{1n71^tp?L9+*WpW zH)Gh(mO~b2O5vwf*Jrh@mFC@%7qi8WJZ#@K_Z5lZZ_#Ss1v}D%?g8!!(rZO!{ur~( z59hM5zkMxQLPkn;=Tm|8QZ<apleR?>BIcUu#fK35g9j!LAuE2{j3mC(aBd@G((p;* zbT`;N!K3XSSsbh*wVnCm>uhmh4KAgJ+;_)NkETuYeej>`*HIS=_WA0mGic{|S@&K2 z)+6zfnh8_ug3Qd}v;FxU^u{|=Q%4#T&j49`n)-L{$NdvCbMY0ovPn{PCGbA>0i{B7 zPVWu|c=iAf$3Z1`_)+5gC6Ui|Q9k6@(wg^^`~gOQjJGKd>7y%poDHpgrNv*!=g{_i znmEh$DxV~dPi%WRzdNYZL%O2jJfDPgo7Y*iyEOLBKDlg~V?qMZwN;s!$-2UvLY(TI zw(hQ;^rF*pAZ2Ossao<X;gIRg5!Y;`RTQho_RwAQiem0Vxth6ZPDYXOB_y%g2-3V{ zQH0BcJ^GmaQ$d}2Q$|klQ7WYcWJ%W?SE1p{mK#1b)p%9j%AJ6zuPMLF@^L1-lb{{O z^T$?yj}=Y5u&qeAi;}%g!g-a=AcH@S@Y3qg49mX;S^%RML>($tx}&gQ^?920n%Bdx z35K?}Z5aeDzqR^>*Szz(xxiJe^+`e(n!G~h3T_S0OnpSKNE+MZj}W~VNTR;0JvHXW z)r+bjR%sKj8%kcJJsF7dKMG>`{>PvF)4At14<?66wNL)#Mcn33WcfrA{YDa5d=+bH zElo#y+!j~>ymgOIT~tFy;rj@$ZVsmZf3<Vn?`*YkUzJv=>Y&uDYEg=|Mr^HFTTAR& ztu0h+MN2~;YCT44#Fj|Zo=HWDs@7hyV-uppUNPR&=epiM;r;DBzvtv!=X~$`{(e8J zX0DhiiAY3JwnYo+Ej7$a1|d_&RZ304wcvem+CmX$Z*k<33t1Va7cjljjy>^4w`&IP zms;VQOCp9XLQh_)LCQ{F7~Z>Mvphtr_SKf@_Op@O`fb9y757)7hRMebKiyev!L(p& zn$5fi*RtJ^bF6Bv+oJvN2dBA%Lyy{h#v+a5-r}6yGx%#yLrN)!+2q#-I&A0(UCcLs zO5HA3aM*KFc1W2DOLaj(tEH9INiOOkssg0}1D45h_?oJ#v-4+s#M*K{TWG6~-&vZN z)t@yld{?3ZtcQ$!6Q)6Q{X;APTX8;gzVyz+wzh-CZgz#&@{=BqNfBU!=o^m;^+IIv zNnh9Isr?)l;Q*nDG9(ReH0sw<k`>vN%dYdtUK9ynsk?{_j`cJ4suUj%4s*9ZF!&;P zrR1V|0ueaPj<Z>aNTx7Al2=qGk3yAIx|idI4T7F-FZUM=4-CvnF#67XKgT7B_-XPM zE*Vm%^1;+9@1sZ+fdCF|^<Xowxk|)9KjVW-X+?aH$r<tZ8CBIPMEx7>R<!TRaY0O6 zfk72?<+;Yk;OSQ8JN?qdtV<qOe#9v<_LvbUsw6%61)9szWzFL^l%6>l8)qhl0~;7* zx-75HEdXoJ{F;k(A2*cz^+JBI4V$u`@eHB&VIR4!E&pAy&a3+U&AC{KEwfxAJ{-@- zY8H5=q=ie62xQ-0FN0)ChorHqTAkcRql;A$rlrh1+a{wX9AIIfJxSq_4NUx=ei3ru zFY8N|1*_@ir3Ar?7Hg&5kC|*X6s6n`ea^fRLcRDQ;GLPKl=z-oixppB5k<oaeT{^u z??x~E0EUx6ZHi_=)j_fWgxwA+hxayiyQC0AYRUKgQw3~(N%0xa*Z2*RBEcH9=XS+_ z^<)!DS}8S@qI=P73^v4tXSsa*dXr&*RwY@;ux@Rlp4#fNTYHl>LmG-WnT-Qk`svr! z20K(&R`!Qm=NUIY=8z#=^^cp)#^g9@C2&hGL~|yLBPA83)@$ubHw|O7M_1V*2Qeg6 z$SG233o~)#7mUF_3Q#+I0q!l0;Vs;bl+W#OT~wDoojSuGv2gLa#7ffqQilg+u<$iq zSe@)Ry48O_6YS<^k8#jWziD9vyKntkM@wzm7b-fAw#=IvX<*)c?$Wq3pj(PS{FH%A zE??Avbz4+B?JAJ~rHU65PNibRE}RJ1oc2ksJzpLv6?I&P(3SY0<#H`CHxCQsbjd>u z`%B+~;Gd_CE=7$Bj+U|8RuF8#)o-SoY7)M|z76FiL+D*ol+WZB{jAH*nj=qm2Zf{e zKd(f*Jn|ZD+#}@8dNIOPf&EVAu~<_Yq*H#uY^=sDf-PUv3$G**`(S9-;DKo%_+zRs z)N{b~!T0Q!jByb2KgWmLYe1#c-P27g{Gc7GTohInSH|JlZR<$-l_U`MTB-}CA38KI zWSCt8@?WoM4?8lZ?n>hK@IN<JzA*9{K9#R)qQ1`@O%Qjmt|e>n;qN()retei<xgh* z*(z`!3TVVrfZ@wnUaGt}D`dKNS3am5TYZ)V7J<`L%|`Vjm@@y=-@;X0%4&X>PN_g9 z=60l9mIBqtZ%DGrOMTjI+OKgP956MIs;_p^i>s}zw}>>OR|=|X^EyCWS>u|GHYS#1 zvV|Jo1uf6;13Q0t9Gc^`RXs#<Avzw(a<<Acm`x*%G$t5yYiJ&$guv_#zS|ouJM~3L z=NYpumx%FUoxWm7yk`{o$*b4l7g=S}&4zBs55n2m<mH5Df2o)BlP$R+1vg}vkRG(i zC;?0#ifPd3d`^^{tM;C6`CupjkC3U#>2&*3Lq?MuA*kz*huS`EIjm1&hQ|k9rWS~v zfIR~!Q=V~Cy-DL6YwOIJVyF3PoCZKo$&sl-(Occ(Rrv$fOtO=|<d%otn0$$Ue?$lg zj+%P0_NmBv=_Q#WW=?#ynLB`lh9S^P2UGo5q@rHDcDqf^;;8pyy=o{TzwBkWCKJx~ zYWSJ3tGvVq_LUngP7bNv+y*eE`lK4Py5)ja>rER5a4W7<4mvtGCkAo#$Ngju8d{CO z4Mg%Zik>bnHJuFYNG{{hZtc6cXw!v3T1}Xg>%d*BiW#xJKh?cs%N;u9mKcI&Jf~~t zXR&S30(1<T|Eoi_Ry=R5S~LqamZ_U!^VVfLlj^ZDuzmRu*@21bcZF;s`YIj)SqhgQ z)k}u4N)et`@BHLi+dVq~cR1c)7po#`Cwop;<Jb4)*=13XG#MLE%^apobj3wHsq9`+ z1Kvsbz$!n8=gq7fJj1__Y|}p7#v9DgKb?iP#>OMKv~#b~k(#`U@E0zI2NbClXbt!+ zUz1@f2R_w<Ri&ij%`y#(h>#HaA}(y9CSEn)7MU>1?-Ojz91g1S&&_$tu3j&jG}XC_ zJrKgs)=2_A_*xu~!dDckALzs9CB%K_e*A7CxPd&!J%CBJ5@?R8y((di&E>D$+}U7# zz$iDd2v$StrIYE0>7!hh1OE>ETlLd#+98RY7MZ+Oi#dv8?Ue_tH`%z^WQD|RUlz2- z*T&xv@)*c(^Iz&nm01^K@}L^>YE!W@Zham}FM@r`Mi{uH-wnh$-Qoji!tYXzrh_Ie zsj<wKzj~RrIHS7!UnJ_~2|NQE28iKSny5HOX9PcHsCgq9-yr6xU`J)I?lYf_TNWQI z^MzYm2YT#6un$*ELBEEDIfL_bmW}M#5hJTC%{IcjN2(GGn*+KMV^O<Y$6^L)<>s@| z&(<nYZMxQx7T|7wi7$0Ebq7$8R$%XQdXv1GrlzTKkEWBV&f`?+Yf5MNUl8Lf#qvE( z@V0paq@}qoi1}&wJm}07?5tNWPVxHD-9LFaT2M!IR?!by!|)vod|NIEUy|4<3L+eZ z-1Sbo!aNO~@F`LQOM<Y1B@VaNKN@Sn>mCk9=n5N_+A1t+)ldCf*^u~8JY3~?>EzTe z1?s)!^2HZh+CJIT<h#tKHFlxL2dP<Jr_=8}+JV+7DK6eP59mQfas;&8l5&$y+j|VU z7l+cA;WEP|Znkgx8Oue+|A5s?aAXplghv%jEzi}(2<wI{m{O3oy_5|j)q(nj&vp9^ z>*t7iV8Jfa8}gU^Pj)I(M&Km+EA$4;#%42xH;_`rn+3Dg>6|!5^&_jIYbgqTKVbFA zK3{x{!mO+7it?J90=6%fy1pYcOImC-xvv4h;_^iURcD`9XeTOk&f;xpF+<ktu5L+a z4pM>D_j6Azah)k)kGw!<{T9M!PJGNCcrzP7(Y-}H+)|!cS!IUja6za?0xbJnrX`G| zw(z}2D&AQ9qtl*$b)Oo;Rntv{O}!LC@QVrPTb89V#71*i5Hom5(VW*hM3XcbD&bWZ zt$dW!)b50zhs#i70uG=nMZh`gae_PRw7kNj6U1^78n%-JmT_vK>uJ68u<xp6-0{Fe zOU(q<kzxg<sH(!`;;6M1gqsf5N<)L9b+*lT_VYK0*LN!`VCD5`qdu&+U<wA9R|B?) zec$d>MR}M(Tf{g<(gg~F&%#VFL+t_*cn>YRpnHpl#=Q!?PS$~WU@-WwSIAp1Ibz98 z;=o1O9NVV76F?nKcso>f@(u6Y;LHmS3<t$dg`}PZ$u6u;KYco6w^9CS|FIZ*nWRmD zj;5Q$7TV2y6xW$X++&xa5-FAawjYNa84KBJYh{2c^`Ml8y|$SGsN@j`+1)It$H1hd z9D94#Qk#l@yB$Jl+ASvO=C#4Yb8P@4c-<gQSh}Vrv?Fgy?xzD?Z_6d|gL!#h*2iFA zu9CY5g4DFy_J$<VlDe2a?=mBcl9IX6Wu8HEmsDI%m+Vfx#-kF7q0gQg$9DG9#6+n! zie!Y;beqpu7l#YL40_%d^~T+OUOcq?ZzYs8UQ=)5mbz<vR2Ks6-S(Q2!@g<1;y#8~ zSqycudt0e57s9{2;;6G-e|FNV;+n~4wHR=f&Q&UM$sKDT%xY&*`hqE?3Tj%m<8{89 zGI_i#a`w|`!UgsIj<_#2Dvt9>M(+wQ3)CT%%`MrX0_@BKyDetldYsqNN3ja|qMYiq zdJBGLa_%*lGH}y+*9ug6vn<A`LZDA9epHgP=qx4wIYIi=kxa9Y#my%_;^x(@C(2Sy zW2Fet`ohm6#U9*6(=9J3j`}NeV7(=<oS=*mlpK8Zlv3}xjX%A;c-S?ocZE3<oY?Qy zA4#u&lTM_J**5xnIfbe@9*)FL!PJ)nMa9IQp|Pm#Qd6b?(GQ}ESnzinA^Yu0$Gsi9 z)3f2=g=Zbq$qhJVd?;x9gg_-0-(VeiQW7d^k9JJh(^GstOQ&NZ!)Ca<vx<oN?9MTG z(7`eydr9U+6;DP{6c9=v9HYj}P2V*#{PlOk)x?61^wT|tj5Z{$oIpd6xx^X4UWlRW z<0+h)Z&Pl=o!PFJ1V@*BGf)JzHPaiw20ouIPMowjoyd{QcNc<H3bDB{bGJOM$-tq~ zcFAa`w*ZiT{j>gtNvrO5?=dMv2m)`k=(~HyVf3%!n5iV8uixby(PigHto)GjaU`G9 zSAVQSU8l<O36<D|Zq_ErubTX3g=xSv_k+Bjt;J5C#N+lx9Z#m_zjB@G{v=SJ%QE9U zll6dwt#0`~qX&23_)N^miB%D#RM+A4jO7E`ISln?J}U5JDF-h-lW4g&`#>B78jPdi zV0bENF@!<HgZyq6&i90LQS|C&j`huod<FEZ{h-81meKJL{4k}~^7r0x!fATk_Gz}e zyZZ_BvFHwaT2FIEBu=h%`aX%c0EoF?>$G;(_;@0s%o0_R=t5`QwvNHN+(6bHQ1mv; z>#W-IsCnO*H{g9W(D3q|wsm}jNvH5vw;Xr9;_`@BXs(u`BMrnVAj#9G7;4iP<&aY| z<R7y~B_-wcSgbskg8x^Q=;ZGf9AgiD{Ji7w8({J}vVxC^#~<I{<nXEar)o+4nsRkP zECK@Q2dZ~-Kux8pv?T1`twxyWv=?dGH+iIClh&D%fAi>MOCi3;NKFt&F4AiC7;*0u zj&S}B?Iyl&S%TG1L;MDv4^s8PvS6Zbh=71RGfsd-D%2r2S6j#qpv%wgJTI8w^U2g8 z7&GKV0^}4v@r`+(ec4{{cyC@_rkNUZx~dwohFPY|lp*^!a%ugE!*)b(=#*QpY%5DT zM7R{43Hfnp%d4X8-G`uzB7l|3<ultIsz}@Dh)-{DsP8)bGrPo6+O*BI=aZpvzv>ME zZntw@NDULE)m|0e`O*MUkchg%Mt@n}xTDo5LWqQU^;^&*9xl^e?sVZivPIA;f5EQq zsd2cwFE$OZC%rp|x`yC)Ml-yYTrfps<0{IVZR1Ob7uZVz=VAlKMOC`Ryqic&;j0&U zm!MbT&|k`f+gEwZA8nIq)M{E-1$U^*BdfCg74j)aj|ikZzi*hMLh8XF#{3)!Xx)pZ z9m7VCk4c_gDX6f~A?{$9K3Il0sgKS)OzJ+?<9A6D1Rmil1{USJ*(38d27Qh*xFo@t zUA*Q6sRgm*aXN<&|6NxaHtDljrf@orU&d;(<Vh+?+gj5bKdpWv+>RLG&z~O%rON{T zyrG}xa(x^hJT`$sbY}^2_&e#Ow4+y7*IEF9owPCHAXSfE&uq-(V4*RS@6-iF+5dW^ zWYjk#H#*(=1z+$lP&0`)V21VKHg&BKjnwz{=kY_d#U&7bU*DZlosu=99Sj6(2P(BJ zNr0q>Ne9;O#88WWCInCHKDVpZnR6|R2y&S)#Xo|2TkW;yG?1wlwn7Z4dY1(!W>Acn z9#<2k`DS?R$lFEUkViGl;D;XMV>Glh0+CrShYgsO>A_%r*Ja%AN|Im!GB8^a7t*7| z-C&sJz5UC^G=6H{HZ=N2S#oAX4^PkC^GH(!c-iE;q8~YhPlh<<?bf%92vWt~H^*K` zgjl9c@78^GpV#8yB#+82gibE<*r}oHW8#HiofcD@ZM0^;2u7wmPNJx}!Nc8yY^A-m z)g!a6n<pz;9!ra62P80n;WROeUsoUH&d7W43xU4`mL&cXN>K*BR^wJQD43n=EMM|R zUVS`mv7Ok4YB5uR_P^rZWGH~uMJ-@4nsF1KteJ012Ts1dGcsTH(DDlOpP^#2VqbzT zkIGn2^W~St5Aqkvmrh2}U*$)o)Hl9PvEiO`KrCB-<|w{23_HXl6-{U1#u7&@)8osG z<&Iu@aRFs(>E#v#1?=61XIHI^ne|9cehlavngaS46wFH0EDCf-Ez!q7B&)g(y8swr za*oI2O8b)*eyN^RBT%6!Sf5^>$od34=9}Q0Z-nYw0ljPNyY=UdMA7#ZP7$}l<%2#F zCQ7$|b7qNg^&t0Aq^ftTXSGFEhnQ4hhk=|p!t@zqCV3`gXRmiGzSdpLjFXJwGT<WT zdz?yfQUc9>6>gUU8~Hib6fRy=$M?Lc#3WG=x0!>QgOvDF6C@a<B`NDX2$m*7TP8Ow z>2-H&zRAJGJp|u;{LCpZJ~TlI+-NDHHoj>%Tc5&1y@h4Y-DoSEw=R&cDh<YN1esEF zrnvEk^XN?SM#uqhic`a=`HN)F`mjlstVQKU8Ch$YOdUi;Ei2%7p^51LKRIcOuJhy> zpjA(AxXpQ4aD7|V=3tT=cnctB<Hv9x;>P$!R?poJ`rshT5YaTof8%g@KC*0`xBUdW zHaR7XgB4hd?eFyXjOoOLe%fyLJ8%_gHB>$!)tv?4tF3Xnj`auctGP+OOI6{ItaSN- zXv%lyo6(kg7kY^}rXLFeA1=Vo7mI&#TUdeaKjMqvmn1go?|*5?U1^xDo~1JBpYcKt zN>q!OQpD}+q(O`KOynVK^P9L<B+B;A?;)d+x4n5?&Jz2fpQ3e1HgO{TCQ;y=!xWyt zm3y584Zah}ZwqNwRMS$i*N{yW5WV2UwmcIJKNqlYD%mgRK{(cp%vyOE!}C6l56)Iw z=GE*&1Mm&))tA)Oln9z^j|s(BnLP;<aC1LQll?AL`HJJHyUej$QGoHH&s$2`^$)r! zXzLav9ZB%UlZzyTq)T(1AiSNE>%<MY)c>ttAOoF?*@BdJ-v(iSbmxuCc@{NDgS|sg zdFysxSM#hGViW)I07~(08dpnDML_>8dZ9B%UQx)HkAq2s+FV4=NYO2k&z%(o-mTxk z{P3tLqZQiM*b&y45>D#22ky)iq?k5qD(nooN6EYVEp<cY1zq1Mt1O#1+vCj4%#%Kp z8&b76qml88xJi^&VnaJoXLdYI=e==`sIQ=$H<s;t?WmzRfQvdBr0&0%P~rM(>Jyf0 zjwu$eVzkFLV9~r=q8uV@SY#kyNl5gA8xP*U$H0bs#@fv%Puq@)@i?EH^PH1^@0e;( zFP3^EOG2U<#oV0QLga-XDQW|;0*nor(Q-rXd{lOU9H8JjVyvVI^hWH@z&w6-^HQK! z=5gjk>(l{y9eO>^J5RzE9Qo$$*-ZF4#XewR<25>^5QuE4)qTZh=LWh<0unIaQSVk- z5L^*l?cZ-ry%hOOE^6>&9>sI~b&Ngv$W#P@6qI}--<cX8l_Wi%JkdsHU>$G-T<ksY z2%rdz^Lvj$ogSOC+%+;G(-?2~#$pz*aVFkO_v!z^PF=fH^vg3gKL!zjm`D@hmW?Fn zv&$0S8h{ptJ@pq&FH88(_zr4q)wZRqrr4joR0jk_G(mmC-wq5OChDl=zRV~K&d_z_ zSJabk^nUI~8DaeNHzMx*?Vv4OT#Blujn~Cws~XWOA-7nf-G{Mj#jJ{vB_CoV3V3zd zZ?{?*V|tm`WC}*VnNQ+NGb6RXtMmUS?79Anxf#qhMBn%JQv(C#^`E-<t!RRfePEgU zI50m_6=i*gFZIs*?rUJAQzuGf8we)K`{Fn285@@DtBkl}{yrp)(H(2)2h;pg!i@oy zcK6`f*w1gQ(asntD3tjNBt}Ec-t*nhDHJ<^gBdn!Ow_ccOtgO?-<$jJ-)~!5te#<d z3zi~KbdfHBhK>NnU>$+ZJnb9jx;?mN@u2zS6I11GipqXn!1UaGT<goR{J*9lAmLhA zt&K5%jA7mLLAvR<pM!Mr@MWfN^!xYIUao<;msIPcnz5b;>tBU#{}ck!A{v_9gbA4r zPqsytPESb8t3ZexBSdVmE`t%GM4tl0D+7X}swLWDro!gZ!j2%7`HiMFw9zpA685_A z^RoYxN54et!6s_<O$AK(kOOqcSFiY2dVA7W*3GylUv{kN|ADORNnYsV`_DvBIY(PE zn3(6rnH_t}6z;&EKcn2X?oKOkmHB@|xB+(oaJ^&r|Mc$v!vyoWvvW7Bu4-{hdM^Ea O+u9li>Se0-5&r`<-#a$| literal 0 HcmV?d00001 diff --git a/book/images/sllx4.png b/book/images/sllx4.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc58cc4ec06d6d8cf7bebca8e72cafcfda16add GIT binary patch literal 5409 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 TJvJzdAOu`Dff`psJRbcAXxs-r literal 0 HcmV?d00001 diff --git a/book/interview-questions/daily-temperatures.spec.js b/book/interview-questions/daily-temperatures.spec.js index 3ff950d7..88e046f7 100644 --- a/book/interview-questions/daily-temperatures.spec.js +++ b/book/interview-questions/daily-temperatures.spec.js @@ -1,3 +1,4 @@ +/* eslint-disable max-len */ const { dailyTemperatures } = require('./daily-temperatures'); describe('Stack: Daily Temperatures', () => { diff --git a/book/interview-questions/linkedlist-find-cycle-start.js b/book/interview-questions/linkedlist-find-cycle-start.js new file mode 100644 index 00000000..56afa687 --- /dev/null +++ b/book/interview-questions/linkedlist-find-cycle-start.js @@ -0,0 +1,39 @@ +// tag::fn[] +/** + * Find where the cycle starts or null if no loop. + * @param {Node} head - The head of the list + * @returns {Node|null} + */ +function findCycleStart(head) { + let slow = head; + let fast = head; + while (fast && fast.next) { + slow = slow.next; // slow moves 1 by 1. + fast = fast.next.next; // slow moves 2 by 2. + if (fast === slow) { // detects loop! + slow = head; // reset pointer to begining. + while (slow !== fast) { // find intersection + slow = slow.next; + fast = fast.next; // move both pointers one by one this time. + } + return slow; // return where the loop starts + } + } + return null; // not found. +} +// end::fn[] + +// tag::brute[] +function findCycleStartBrute(head) { + const visited = new Set(); + let curr = head; + while (curr) { + if (visited.has(curr)) return curr; + visited.add(curr); + curr = curr.next; + } + return null; +} +// end::brute[] + +module.exports = { findCycleStart, findCycleStartBrute }; diff --git a/book/interview-questions/linkedlist-find-cycle-start.spec.js b/book/interview-questions/linkedlist-find-cycle-start.spec.js new file mode 100644 index 00000000..3f1ab06b --- /dev/null +++ b/book/interview-questions/linkedlist-find-cycle-start.spec.js @@ -0,0 +1,25 @@ +const { findCycleStart, findCycleStartBrute } = require('./linkedlist-find-cycle-start'); +const { LinkedList } = require('../../src/index'); + +[findCycleStart, findCycleStartBrute].forEach((fn) => { + describe(`findCycleStart: ${fn.name}`, () => { + it('should work without loop', () => { + const head = new LinkedList([1, 2, 3]).first; + expect(fn(head)).toEqual(null); + }); + + it('should work with loop on first', () => { + const list = new LinkedList([1, 2, 3]); + const n1 = list.first; + list.last.next = n1; + expect(fn(list.first)).toEqual(n1); + }); + + it('should work with loop on second', () => { + const list = new LinkedList([1, 2, 3]); + const n2 = list.first.next; + list.last.next = n2; + expect(fn(list.first)).toEqual(n2); + }); + }); +}); diff --git a/book/interview-questions/linkedlist-flatten-multilevel.js b/book/interview-questions/linkedlist-flatten-multilevel.js new file mode 100644 index 00000000..30f6e07c --- /dev/null +++ b/book/interview-questions/linkedlist-flatten-multilevel.js @@ -0,0 +1,45 @@ +// tag::fn[] +/** + * Flatten a multi-level to a single level + * @param {Node} head + * @return {Node} + */ +function flatten(head) { + for (let curr = head; curr; curr = curr.next) { + if (!curr.child) continue; + + let last = curr.child; + while (last && last.next) last = last.next; // find "child"'s last + if (curr.next) { // move "next" to "child"'s last postion + last.next = curr.next; + curr.next.previous = last; + } + curr.next = curr.child; // override "next" with "child". + curr.child.previous = curr; + curr.child = null; // clean "child" pointer. + } + + return head; +} +// end::fn[] + +// tag::fn2[] +function flattenBrute(head) { + const stack = []; + for (let curr = head; curr; curr = curr.next) { + if (!curr.next && stack.length) { + curr.next = stack.pop(); // merge main thread with saved nodes. + curr.next.previous = curr; + } + if (!curr.child) continue; + if (curr.next) stack.push(curr.next); // save "next" nodes. + curr.next = curr.child; // override next pointer with "child" + curr.child.previous = curr; + curr.child = null; // clear child pointer (was moved to "next"). + } + + return head; +} +// end::fn2[] + +module.exports = { flatten, flattenBrute }; diff --git a/book/interview-questions/linkedlist-flatten-multilevel.spec.js b/book/interview-questions/linkedlist-flatten-multilevel.spec.js new file mode 100644 index 00000000..547067ac --- /dev/null +++ b/book/interview-questions/linkedlist-flatten-multilevel.spec.js @@ -0,0 +1,79 @@ +/* eslint-disable one-var, one-var-declaration-per-line, prefer-destructuring */ +const { flatten, flattenBrute } = require('./linkedlist-flatten-multilevel'); +const { LinkedList } = require('../../src/index'); +const { ListNode } = require('../../src/index'); + +class Node extends ListNode { + constructor(value) { + super(value); + this.child = null; + } +} + +// print linked list node with (previous and child) +const toString = (head) => { + const arr = []; + for (let i = head; i; i = i.next) { + arr.push(`${i.value}(${(i.previous && i.previous.value) || ''},${(i.child && i.child.value) || ''})`); + } + return `{ ${arr.join(' -> ')} }`; +}; + +const ll = (nums) => Array.from(new LinkedList(nums, Node)); + +[flatten, flattenBrute].forEach((fn) => { + describe(`flatten: ${fn.name}`, () => { + let l1, l2, l3, l4; + + beforeEach(() => { + l1 = ll([1, 2, 3]); + l2 = ll([10, 12, 14, 16]); + l3 = ll([21, 23]); + l4 = ll([36, 37]); + }); + + it('works with flat 1 level', () => { + // 1--- 2--- 3 + expect(toString(fn(l1[0]))).toEqual('{ 1(,) -> 2(1,) -> 3(2,) }'); + }); + + it('works with flat 2 levels', () => { + // 21--23 + // | + // 36--37 + l3[1].child = l4[0]; + expect(toString(l3[0])).toEqual('{ 21(,) -> 23(21,36) }'); + expect(toString(fn(l3[0]))).toEqual('{ 21(,) -> 23(21,) -> 36(23,) -> 37(36,) }'); + }); + + fit('works with flat 2 levels and reminder', () => { + // 1--- 2--- 3 + // | + // 36--37 + l1[1].child = l4[0]; + expect(toString(l1[0])).toEqual('{ 1(,) -> 2(1,36) -> 3(2,) }'); + + expect(toString(fn(l1[0]))).toEqual('{ 1(,) -> 2(1,) -> 36(2,) -> 37(36,) -> 3(37,) }'); + }); + + it('should flatten 3 levels', () => { + // 1--- 2--- 3 + // | + // 10---12---14---16 + // | | + // | 36---37 + // | + // 21--23 + l1[1].child = l2[0]; + l2[1].child = l3[0]; + l2[2].child = l4[0]; + + // verify list children are present + expect(toString(l1[0])).toEqual('{ 1(,) -> 2(1,10) -> 3(2,) }'); + expect(toString(l2[0])).toEqual('{ 10(,) -> 12(10,21) -> 14(12,36) -> 16(14,) }'); + + // run + expect(toString(fn(l1[0]))).toEqual('{ 1(,) -> 2(1,) -> 10(2,) -> 12(10,) -> 21(12,) -> 23(21,) -> 14(23,) -> 36(14,) -> 37(36,) -> 16(37,) -> 3(16,) }'); + }); + }); +}); diff --git a/book/interview-questions/linkedlist-is-palindrome.js b/book/interview-questions/linkedlist-is-palindrome.js new file mode 100644 index 00000000..6eb65f3f --- /dev/null +++ b/book/interview-questions/linkedlist-is-palindrome.js @@ -0,0 +1,39 @@ +// tag::fn[] +function isPalindrome(head) { + let slow = head; + let fast = head; + while (fast) { // use slow/fast pointers to find the middle. + slow = slow.next; + fast = fast.next && fast.next.next; + } + + const reverseList = (node) => { // use 3 pointers to reverse a linked list + let prev = null; + let curr = node; + while (curr) { + const { next } = curr; // same as: "const next = curr.next;" + curr.next = prev; + prev = curr; + curr = next; + } + return prev; + }; + + const reversed = reverseList(slow); // head of the reversed half + for (let i = reversed, j = head; i; i = i.next, j = j.next) if (i.value !== j.value) return false; + return true; +} +// end::fn[] + +// tag::fn2[] +function isPalindromeBrute(head) { + const arr = []; + for (let i = head; i; i = i.next) arr.push(i.value); // <1> + let lo = 0; + let hi = arr.length - 1; + while (lo < hi) if (arr[lo++] !== arr[hi--]) return false; // <2> + return true; +} +// end::fn2[] + +module.exports = { isPalindrome, isPalindromeBrute }; diff --git a/book/interview-questions/linkedlist-is-palindrome.spec.js b/book/interview-questions/linkedlist-is-palindrome.spec.js new file mode 100644 index 00000000..c57c300f --- /dev/null +++ b/book/interview-questions/linkedlist-is-palindrome.spec.js @@ -0,0 +1,19 @@ +const { isPalindrome, isPalindromeBrute } = require('./linkedlist-is-palindrome'); +const { LinkedList } = require('../../src'); + +const toList = (arr) => new LinkedList(arr).first; + +[isPalindrome, isPalindromeBrute].forEach((fn) => { + describe(`isPalindrome: ${fn.name}`, () => { + it('should work', () => { + expect(fn()).toEqual(true); + }); + + it('should work different cases', () => { + expect(fn(toList([1, 2, 3]))).toEqual(false); + expect(fn(toList([1, 2, 3, 2, 1]))).toEqual(true); + expect(fn(toList([1, 1, 2, 1]))).toEqual(false); + expect(fn(toList([1, 2, 2, 1]))).toEqual(true); + }); + }); +}); diff --git a/book/interview-questions/max-subarray.data.js b/book/interview-questions/max-subarray.data.js index 3fce5f6a..9222bb6e 100644 --- a/book/interview-questions/max-subarray.data.js +++ b/book/interview-questions/max-subarray.data.js @@ -1 +1,2 @@ -module.exports = [-57,9,-72,-72,-62,45,-97,24,-39,35,-82,-4,-63,1,-93,42,44,1,-75,-25,-87,-16,9,-59,20,5,-95,-41,4,-30,47,46,78,52,74,93,-3,53,17,34,-34,34,-69,-21,-87,-86,-79,56,-9,-55,-69,3,5,16,21,-75,-79,2,-39,25,72,84,-52,27,36,98,20,-90,52,-85,44,94,25,51,-27,37,41,-6,-30,-68,15,-23,11,-79,93,-68,-78,90,11,-41,-8,-17,-56,17,86,56,15,7,66,-56,-2,-13,-62,-77,-62,-12,37,55,81,-93,86,-27,-39,-3,-30,-46,6,-8,-79,-83,50,-10,-24,70,-93,-38,27,-2,45,-7,42,-57,79,56,-57,93,-56,79,48,-98,62,11,-48,-77,84,21,-47,-10,-87,-49,-17,40,40,35,10,23,97,-63,-79,19,6,39,62,-38,-27,81,-68,-7,60,79,-28,-1,-33,23,22,-48,-79,51,18,-66,-98,-98,50,41,13,-63,-59,10,-49,-38,-70,56,77,68,95,-73,26,-73,20,-14,83,91,61,-50,-9,-40,1,11,-88,-80,21,89,97,-29,8,10,-15,48,97,35,86,-96,-9,64,48,-37,90,-26,-10,-13,36,-27,-45,-3,-1,45,34,77,-66,22,73,54,11,70,-97,-81,-43,-13,44,-69,-78,30,-66,-11,-29,58,52,-61,-68,-81,25,44,-32,57,-81,66,2,52,43,35,-26,16,-33,61,-37,-54,80,-3,32,24,27,30,-69,38,-81,2,-4,47,17,5,42,-58,-51,-90,98,-33,76,-22,95,-4,89,-31,-87,-44,-69,-48,1,87,48,-90,-12,-24,39,18,-86,35,96,-14,-41,13,90,-98,32,-83,-89,7,-17,63,84,-21,-40,51,24,-51,83,31,0,-38,-5,-74,-29,59,1,87,-22,-9,-1,-49,76,57,41,44,35,-27,60,23,56,-80,-14,41,-2,22,-31,99,47,-48,7,-75,13,-97,-50,61,61,27,48,-84,94,-76,-56,70,57,84,-9,-7,-66,-49,-84,89,-29,-22,7,45,-99,75,21,24,-95,-71,48,17,-92,74,-22,45,1,-97,61,-5,-74,81,-57,83,42,33,-47,75,61,-55,41,-68,22,-51,53,-1,-99,-25,-76,-95,3,48,-1,-13,23,53,-68,-76,33,92,-4,35,50,38,18,-8,-52,47,-33,-91,91,85,-60,14,-89,93,89,-89,-55,89,92,47,38,-9,-66,-39,-79,-58,-39,53,-65,56,-11,61,-29,83,-46,19,31,-3,27,-1,-18,67,-87,-8,37,79,-20,58,68,-28,-18,-17,39,-8,43,59,33,81,13,44,37,-98,6,85,84,59,4,-8,-44,-69,91,15,74,80,83,-12,59,-37,-54,5,34,27,87,-50,-81,8,-90,52,-11,-1,-4,-97,0,78,87,-39,37,-32,30,70,-1,21,-38,-50,-22,-55,15,-85,8,60,19,-81,-35,-17,-31,-40,90,-45,-88,-44,53,-15,-41,-70,-37,-77,-33,77,-9,96,24,66,-6,85,92,72,-70,7,86,14,-32,-18,33,9,64,78,68,32,-90,57,87,62,-58,-77,68,-19,-54,-65,-42,13,-68,58,-44,25,43,-52,-26,73,55,-63,-13,-77,18,96,31,-40,51,-1,91,60,-44,55,22,-26,78,-10,32,-99,2,66,13,33,25,68,-65,-32,-84,-14,-82,70,22,5,69,-59,-22,-23,0,-70,53,-32,89,85,-77,-11,-40,77,55,68,77,-43,34,-33,66,-41,-88,-98,27,-72,-13,21,74,85,-74,21,-74,-19,97,2,10,50,46,-1,13,69,87,72,23,20,40,1,76,-49,67,43,10,79,21,-86,83,84,34,34,69,37,-45,72,-82,-70,-26,27,56,97,-97,-31,66,67,-82,-11,-13,57,66,-37,85,11,82,-5,-33,3,-15,-50,-13,95,60,-66,9,-84,-94,26,-78,-44,-70,77,-47,-90,-53,95,76,-36,-38,-60,98,-72,-21,83,15,-38,-45,81,41,16,-69,-94,11,91,-84,-79,83,-79,23,-95,-24,30,58,6,39,-95,1,-8,-54,62,31,-56,67,86,-96,-18,-75,-42,-36,66,73,-29,48,-39,-61,63,-42,98,60,81,-97,-64,11,61,18,-73,42,-80,18,87,58,-51,-69,2,-88,-66,84,-63,-32,-75,79,-82,-28,27,-21,11,-33,13,9,-73,-6,-11,-61,81,-73,57,-92,45,53,25,33,11,50,40,90,62,51,74,75,-81,75,54,-86,-53,-42,-8,34,1,-95,-79,27,-24,-14,42,-66,12,-24,-58,-66,-71,43,66,17,-29,-16,7,-90,-65,-42,84,-70,-90,15,-57,-67,49,11,67,-50,-7,64,53,68,-50,-5,78,38,71,96,71,76,40,15,-7,87,98,76,96,-90,-66,57,-61,-57,-51,-41,-47,97,69,-80,-53,-61,83,76,83,-90,-29,62,47,-81,58,18,95,-2,-67,-12,-38,-92,-35,-65,-83,-25,91,-44,-5,-83,-9,47,-86,-40,43,-63,-1,3,-87,-18,12,-39,-79,-41,-21,79,53,-26,-46,63,39,16,70,80,50,87,-45,19,-80,26,35,10,-27,26,46,92,62,-55,-5,52,4,-93,-87,1,-58,-9,-20,95,42,34,58,-19,-73,5,-39,53,-31,-8,-28,-12,95,84,97,-55,10,44,-62,-51,65,32,-99,-54,16,89,47,57,-42,-96,52,99,14,-13,-43,40,69,-6,-6,-62,85,42,26,80,26,0,-74,-87,-79,-60,-38,63,71,-61,85,-13,-71,9,-78,-14,13,50,-38,-73,-85,18,44,83,-88,-85,-79,73,56,23,31,-40,-99,33,-51,97,72,-13,60,20,26,46,84,31,-45,-94,93,67,55,-45,71,69,49,15,52,37,29,50,-13,-38,-50,-82,-2,-73,27,47,-75,-24,-66,84,96,36,7,80,-56,62,62,-63,6,17,-32,-46,-13,93,45,-84,30,-26,42,-82,13,92,-88,-89,-81,16,34,-57,91,45,-95,87,-42,11,44,2,-50,6,15,33,-76,83,86,-13,76,32,-21,-16,82,-78,-22,-28,90,-34,-40,-91,81,93,-71,73,15,-90,37,73,-3,-41,-48,47,64,66,-43,64,49,-57,-72,3,51,7,63,11,28,-82,82,18,-17,-58,3,-58,-87,8,-85,27,17,28,-23,-85,86,28,38,28,-5,94,-31,-79,-86,-3,0,65,80,-60,-24,8,-43,-65,-97,40,-23,-18,81,-11,90,72,92,-16,0,-30,-25,-36,97,-87,68,-31,83,-63,-33,97,10,66,39,-10,-93,91,74,-37,-74,53,79,-21,-64,37,67,-74,9,60,9,86,-70,84,-73,-96,73,94,-50,57,-69,16,31,18,-18,-53,-92,-35,-62,59,5,-60,12,-16,19,47,-78,-14,49,7,-77,-64,-7,-71,96,19,-67,69,-10,-18,3,-2,97,-89,-84,-44,-43,99,-2,-6,58,-97,11,-29,-14,-70,94,-16,-8,44,91,15,79,-39,20,75,57,52,21,-53,-89,-98,44,84,-88,36,-82,-31,36,15,39,-29,17,-50,41,79,-21,13,-36,71,-66,-68,-37,89,-8,82,41,-74,12,-38,-50,-1,-37,70,-39,-48,7,-22,20,-57,69,-41,13,-14,-14,-68,-58,64,21,5,12,54,13,51,43,-94,11,-16,-92,99,22,-43,-2,62,-72,58,-86,11,-87,33,53,81,68,-57,-56,-46,-49,-14,95,71,67,-16,2,-19,-87,-78,-37,0,-18,-30,-1,-95,4,96,66,31,32,79,-81,44,-11,48,3,-66,90,46,-12,-81,-91,-40,66,76,20,-54,-43,9,-33,19,-91,49,88,7,30,-8,-19,-4,99,-87,-48,-82,33,40,65,-64,73,33,59,-62,28,67,-26,-29,43,71,16,99,-20,83,18,-11,9,-16,72,-61,52,-47,34,29,-58,85,23,75,2,-34,87,-48,75,46,-33,3,-9,40,73,-66,-12,-10,-89,68,-50,5,-66,58,88,82,96,18,-64,7,-53,-23,-31,69,-71,47,-88,-83,98,86,39,-35,-34,-70,82,-60,-36,-30,6,-26,-85,55,55,-75,-10,44,84,-37,-38,-80,69,-15,-27,-85,-69,-21,61,-57,-5,59,-71,-66,-98,-5,-59,60,11,4,-93,93,54,98,48,9,99,-85,-70,83,-23,-32,79,-77,52,-47,-63,60,8,97,-97,-97,33,-92,-87,11,-21,-47,-29,66,33,-45,59,-36,-47,-16,50,-48,-2,79,-64,51,-75,-85,73,76,-56,-90,13,51,83,-8,30,17,-23,20,-72,55,49,-24,-1,-17,7,-42,23,59,42,-27,87,-83,-47,99,68,-46,91,18,-93,-88,28,20,40,-12,-88,-30,-95,-12,66,-90,-79,16,-38,19,75,68,76,-2,27,-5,71,-9,12,-99,-32,-43,-46,-41,74,-40,-53,-21,79,86,67,68,-66,48,-67,99,57,-47,15,-81,71,-33,86,25,65,-10,96,36,58,-15,13,-74,41,66,-39,-7,-97,7,71,59,-6,15,27,4,-36,59,3,-79,89,95,-83,37,-38,79,-38,-96,-53,-41,39,-95,43,-71,-93,-38,71,-33,54,74,50,2,10,-79,-82,-86,24,-19,49,-95,1,38,99,-6,-24,-62,-26,14,-58,20,49,57,1,-7,63,-16,31,34,50,-15,-15,-23,86,94,-2,-96,-92,98,-39,34,-97,62,-28,78,-67,24,93,6,-61,-65,-97,87,68,-20,-43,31,63,87,-57,-10,-51,27,67,-87,-1,-35,-84,-17,-60,-23,-83,-57,-84,-34,-79,-52,89,-86,31,-95,-75,10,69,70,90,-97,1,53,67,43,-56,-84,-52,87,-72,46,-71,-79,-71,-32,-26,-77,10,-34,-12,8,-10,-46,-2,-79,-41,0,8,-95,-30,-2,83,47,-72,50,-9,-29,43,15,-65,70,-39,-37,67,-34,31,-59,-12,-82,6,75,25,96,-70,-99,93,-35,0,1,-54,69,75,-71,16,-96,56,83,-49,-1,-2,-14,-31,35,48,-86,-98,-21,-46,-34,-3,37,-58,98,10,-52,98,3,-11,-2,81,11,-33,56,16,60,36,-28,43,87,47,-81,-50,93,53,97,-93,31,-46,-40,97,27,73,-84,25,-17,-60,1,63,5,98,44,-84,-57,-23,8,79,90,57,22,54,4,17,-96,-3,-29,-99,3,78,-69,40,52,57,13,67,-40,73,83,60,36,-12,35,-43,-20,54,10,88,33,0,45,-67,-46,-51,49,-43,23,96,-65,-74,52,-35,42,4,99,-67,-28,-41,-94,-45,-81,18,43,53,74,99,-15,-39,87,-82,61,9,-73,91,58,76,-74,-19,49,-63,-17,1,1,-97,-94,-23,-65,-46,35,-83,8,53,34,-72,-16,-15,-95,68,45,91,62,-17,1,89,-48,-64,42,-46,-7,-9,-10,52,69,67,54,74,-55,65,-72,79,58,12,10,-31,17,70,53,21,38,-24,-11,-23,35,89,-34,86,-98,-92,-60,-6,-24,6,-53,-55,-26,77,-81,18,20,-77,-26,-22,11,60,47,-72,30,-23,25,-55,52,-85,22,-12,80,87,-49,59,72,-32,-47,-52,73,-24,-8,-76,-69,-13,18,50,9,92,-95,96,52,51,-98,-40,-71,26,4,57,17,-74,-78,-25,90,-50,-66,39,17,-37,86,-33,39,-45,-9,69,41,-91,-4,-73,77,0,-77,7,-48,-76,66,-43,50,-30,90,-56,-27,-87,-5,-37,-38,28,-98,55,91,64,-78,7,-81,12,-47,36,-2,48,62,-25,-75,84,81,-47,-91,24,-14,35,94,-23,78,-56,-34,-49,-17,27,78,-16,-18,46,-75,-20,-70,-80,92,-18,55,-10,-93,17,41,-68,1,0,-39,-14,-76,47,-79,94,-76,76,-62,-11,-73,20,92,81,80,-49,28,-95,30,34,-99,22,-83,55,88,99,-28,7,-69,50,-93]; +/* eslint-disable max-len */ +module.exports = [-57, 9, -72, -72, -62, 45, -97, 24, -39, 35, -82, -4, -63, 1, -93, 42, 44, 1, -75, -25, -87, -16, 9, -59, 20, 5, -95, -41, 4, -30, 47, 46, 78, 52, 74, 93, -3, 53, 17, 34, -34, 34, -69, -21, -87, -86, -79, 56, -9, -55, -69, 3, 5, 16, 21, -75, -79, 2, -39, 25, 72, 84, -52, 27, 36, 98, 20, -90, 52, -85, 44, 94, 25, 51, -27, 37, 41, -6, -30, -68, 15, -23, 11, -79, 93, -68, -78, 90, 11, -41, -8, -17, -56, 17, 86, 56, 15, 7, 66, -56, -2, -13, -62, -77, -62, -12, 37, 55, 81, -93, 86, -27, -39, -3, -30, -46, 6, -8, -79, -83, 50, -10, -24, 70, -93, -38, 27, -2, 45, -7, 42, -57, 79, 56, -57, 93, -56, 79, 48, -98, 62, 11, -48, -77, 84, 21, -47, -10, -87, -49, -17, 40, 40, 35, 10, 23, 97, -63, -79, 19, 6, 39, 62, -38, -27, 81, -68, -7, 60, 79, -28, -1, -33, 23, 22, -48, -79, 51, 18, -66, -98, -98, 50, 41, 13, -63, -59, 10, -49, -38, -70, 56, 77, 68, 95, -73, 26, -73, 20, -14, 83, 91, 61, -50, -9, -40, 1, 11, -88, -80, 21, 89, 97, -29, 8, 10, -15, 48, 97, 35, 86, -96, -9, 64, 48, -37, 90, -26, -10, -13, 36, -27, -45, -3, -1, 45, 34, 77, -66, 22, 73, 54, 11, 70, -97, -81, -43, -13, 44, -69, -78, 30, -66, -11, -29, 58, 52, -61, -68, -81, 25, 44, -32, 57, -81, 66, 2, 52, 43, 35, -26, 16, -33, 61, -37, -54, 80, -3, 32, 24, 27, 30, -69, 38, -81, 2, -4, 47, 17, 5, 42, -58, -51, -90, 98, -33, 76, -22, 95, -4, 89, -31, -87, -44, -69, -48, 1, 87, 48, -90, -12, -24, 39, 18, -86, 35, 96, -14, -41, 13, 90, -98, 32, -83, -89, 7, -17, 63, 84, -21, -40, 51, 24, -51, 83, 31, 0, -38, -5, -74, -29, 59, 1, 87, -22, -9, -1, -49, 76, 57, 41, 44, 35, -27, 60, 23, 56, -80, -14, 41, -2, 22, -31, 99, 47, -48, 7, -75, 13, -97, -50, 61, 61, 27, 48, -84, 94, -76, -56, 70, 57, 84, -9, -7, -66, -49, -84, 89, -29, -22, 7, 45, -99, 75, 21, 24, -95, -71, 48, 17, -92, 74, -22, 45, 1, -97, 61, -5, -74, 81, -57, 83, 42, 33, -47, 75, 61, -55, 41, -68, 22, -51, 53, -1, -99, -25, -76, -95, 3, 48, -1, -13, 23, 53, -68, -76, 33, 92, -4, 35, 50, 38, 18, -8, -52, 47, -33, -91, 91, 85, -60, 14, -89, 93, 89, -89, -55, 89, 92, 47, 38, -9, -66, -39, -79, -58, -39, 53, -65, 56, -11, 61, -29, 83, -46, 19, 31, -3, 27, -1, -18, 67, -87, -8, 37, 79, -20, 58, 68, -28, -18, -17, 39, -8, 43, 59, 33, 81, 13, 44, 37, -98, 6, 85, 84, 59, 4, -8, -44, -69, 91, 15, 74, 80, 83, -12, 59, -37, -54, 5, 34, 27, 87, -50, -81, 8, -90, 52, -11, -1, -4, -97, 0, 78, 87, -39, 37, -32, 30, 70, -1, 21, -38, -50, -22, -55, 15, -85, 8, 60, 19, -81, -35, -17, -31, -40, 90, -45, -88, -44, 53, -15, -41, -70, -37, -77, -33, 77, -9, 96, 24, 66, -6, 85, 92, 72, -70, 7, 86, 14, -32, -18, 33, 9, 64, 78, 68, 32, -90, 57, 87, 62, -58, -77, 68, -19, -54, -65, -42, 13, -68, 58, -44, 25, 43, -52, -26, 73, 55, -63, -13, -77, 18, 96, 31, -40, 51, -1, 91, 60, -44, 55, 22, -26, 78, -10, 32, -99, 2, 66, 13, 33, 25, 68, -65, -32, -84, -14, -82, 70, 22, 5, 69, -59, -22, -23, 0, -70, 53, -32, 89, 85, -77, -11, -40, 77, 55, 68, 77, -43, 34, -33, 66, -41, -88, -98, 27, -72, -13, 21, 74, 85, -74, 21, -74, -19, 97, 2, 10, 50, 46, -1, 13, 69, 87, 72, 23, 20, 40, 1, 76, -49, 67, 43, 10, 79, 21, -86, 83, 84, 34, 34, 69, 37, -45, 72, -82, -70, -26, 27, 56, 97, -97, -31, 66, 67, -82, -11, -13, 57, 66, -37, 85, 11, 82, -5, -33, 3, -15, -50, -13, 95, 60, -66, 9, -84, -94, 26, -78, -44, -70, 77, -47, -90, -53, 95, 76, -36, -38, -60, 98, -72, -21, 83, 15, -38, -45, 81, 41, 16, -69, -94, 11, 91, -84, -79, 83, -79, 23, -95, -24, 30, 58, 6, 39, -95, 1, -8, -54, 62, 31, -56, 67, 86, -96, -18, -75, -42, -36, 66, 73, -29, 48, -39, -61, 63, -42, 98, 60, 81, -97, -64, 11, 61, 18, -73, 42, -80, 18, 87, 58, -51, -69, 2, -88, -66, 84, -63, -32, -75, 79, -82, -28, 27, -21, 11, -33, 13, 9, -73, -6, -11, -61, 81, -73, 57, -92, 45, 53, 25, 33, 11, 50, 40, 90, 62, 51, 74, 75, -81, 75, 54, -86, -53, -42, -8, 34, 1, -95, -79, 27, -24, -14, 42, -66, 12, -24, -58, -66, -71, 43, 66, 17, -29, -16, 7, -90, -65, -42, 84, -70, -90, 15, -57, -67, 49, 11, 67, -50, -7, 64, 53, 68, -50, -5, 78, 38, 71, 96, 71, 76, 40, 15, -7, 87, 98, 76, 96, -90, -66, 57, -61, -57, -51, -41, -47, 97, 69, -80, -53, -61, 83, 76, 83, -90, -29, 62, 47, -81, 58, 18, 95, -2, -67, -12, -38, -92, -35, -65, -83, -25, 91, -44, -5, -83, -9, 47, -86, -40, 43, -63, -1, 3, -87, -18, 12, -39, -79, -41, -21, 79, 53, -26, -46, 63, 39, 16, 70, 80, 50, 87, -45, 19, -80, 26, 35, 10, -27, 26, 46, 92, 62, -55, -5, 52, 4, -93, -87, 1, -58, -9, -20, 95, 42, 34, 58, -19, -73, 5, -39, 53, -31, -8, -28, -12, 95, 84, 97, -55, 10, 44, -62, -51, 65, 32, -99, -54, 16, 89, 47, 57, -42, -96, 52, 99, 14, -13, -43, 40, 69, -6, -6, -62, 85, 42, 26, 80, 26, 0, -74, -87, -79, -60, -38, 63, 71, -61, 85, -13, -71, 9, -78, -14, 13, 50, -38, -73, -85, 18, 44, 83, -88, -85, -79, 73, 56, 23, 31, -40, -99, 33, -51, 97, 72, -13, 60, 20, 26, 46, 84, 31, -45, -94, 93, 67, 55, -45, 71, 69, 49, 15, 52, 37, 29, 50, -13, -38, -50, -82, -2, -73, 27, 47, -75, -24, -66, 84, 96, 36, 7, 80, -56, 62, 62, -63, 6, 17, -32, -46, -13, 93, 45, -84, 30, -26, 42, -82, 13, 92, -88, -89, -81, 16, 34, -57, 91, 45, -95, 87, -42, 11, 44, 2, -50, 6, 15, 33, -76, 83, 86, -13, 76, 32, -21, -16, 82, -78, -22, -28, 90, -34, -40, -91, 81, 93, -71, 73, 15, -90, 37, 73, -3, -41, -48, 47, 64, 66, -43, 64, 49, -57, -72, 3, 51, 7, 63, 11, 28, -82, 82, 18, -17, -58, 3, -58, -87, 8, -85, 27, 17, 28, -23, -85, 86, 28, 38, 28, -5, 94, -31, -79, -86, -3, 0, 65, 80, -60, -24, 8, -43, -65, -97, 40, -23, -18, 81, -11, 90, 72, 92, -16, 0, -30, -25, -36, 97, -87, 68, -31, 83, -63, -33, 97, 10, 66, 39, -10, -93, 91, 74, -37, -74, 53, 79, -21, -64, 37, 67, -74, 9, 60, 9, 86, -70, 84, -73, -96, 73, 94, -50, 57, -69, 16, 31, 18, -18, -53, -92, -35, -62, 59, 5, -60, 12, -16, 19, 47, -78, -14, 49, 7, -77, -64, -7, -71, 96, 19, -67, 69, -10, -18, 3, -2, 97, -89, -84, -44, -43, 99, -2, -6, 58, -97, 11, -29, -14, -70, 94, -16, -8, 44, 91, 15, 79, -39, 20, 75, 57, 52, 21, -53, -89, -98, 44, 84, -88, 36, -82, -31, 36, 15, 39, -29, 17, -50, 41, 79, -21, 13, -36, 71, -66, -68, -37, 89, -8, 82, 41, -74, 12, -38, -50, -1, -37, 70, -39, -48, 7, -22, 20, -57, 69, -41, 13, -14, -14, -68, -58, 64, 21, 5, 12, 54, 13, 51, 43, -94, 11, -16, -92, 99, 22, -43, -2, 62, -72, 58, -86, 11, -87, 33, 53, 81, 68, -57, -56, -46, -49, -14, 95, 71, 67, -16, 2, -19, -87, -78, -37, 0, -18, -30, -1, -95, 4, 96, 66, 31, 32, 79, -81, 44, -11, 48, 3, -66, 90, 46, -12, -81, -91, -40, 66, 76, 20, -54, -43, 9, -33, 19, -91, 49, 88, 7, 30, -8, -19, -4, 99, -87, -48, -82, 33, 40, 65, -64, 73, 33, 59, -62, 28, 67, -26, -29, 43, 71, 16, 99, -20, 83, 18, -11, 9, -16, 72, -61, 52, -47, 34, 29, -58, 85, 23, 75, 2, -34, 87, -48, 75, 46, -33, 3, -9, 40, 73, -66, -12, -10, -89, 68, -50, 5, -66, 58, 88, 82, 96, 18, -64, 7, -53, -23, -31, 69, -71, 47, -88, -83, 98, 86, 39, -35, -34, -70, 82, -60, -36, -30, 6, -26, -85, 55, 55, -75, -10, 44, 84, -37, -38, -80, 69, -15, -27, -85, -69, -21, 61, -57, -5, 59, -71, -66, -98, -5, -59, 60, 11, 4, -93, 93, 54, 98, 48, 9, 99, -85, -70, 83, -23, -32, 79, -77, 52, -47, -63, 60, 8, 97, -97, -97, 33, -92, -87, 11, -21, -47, -29, 66, 33, -45, 59, -36, -47, -16, 50, -48, -2, 79, -64, 51, -75, -85, 73, 76, -56, -90, 13, 51, 83, -8, 30, 17, -23, 20, -72, 55, 49, -24, -1, -17, 7, -42, 23, 59, 42, -27, 87, -83, -47, 99, 68, -46, 91, 18, -93, -88, 28, 20, 40, -12, -88, -30, -95, -12, 66, -90, -79, 16, -38, 19, 75, 68, 76, -2, 27, -5, 71, -9, 12, -99, -32, -43, -46, -41, 74, -40, -53, -21, 79, 86, 67, 68, -66, 48, -67, 99, 57, -47, 15, -81, 71, -33, 86, 25, 65, -10, 96, 36, 58, -15, 13, -74, 41, 66, -39, -7, -97, 7, 71, 59, -6, 15, 27, 4, -36, 59, 3, -79, 89, 95, -83, 37, -38, 79, -38, -96, -53, -41, 39, -95, 43, -71, -93, -38, 71, -33, 54, 74, 50, 2, 10, -79, -82, -86, 24, -19, 49, -95, 1, 38, 99, -6, -24, -62, -26, 14, -58, 20, 49, 57, 1, -7, 63, -16, 31, 34, 50, -15, -15, -23, 86, 94, -2, -96, -92, 98, -39, 34, -97, 62, -28, 78, -67, 24, 93, 6, -61, -65, -97, 87, 68, -20, -43, 31, 63, 87, -57, -10, -51, 27, 67, -87, -1, -35, -84, -17, -60, -23, -83, -57, -84, -34, -79, -52, 89, -86, 31, -95, -75, 10, 69, 70, 90, -97, 1, 53, 67, 43, -56, -84, -52, 87, -72, 46, -71, -79, -71, -32, -26, -77, 10, -34, -12, 8, -10, -46, -2, -79, -41, 0, 8, -95, -30, -2, 83, 47, -72, 50, -9, -29, 43, 15, -65, 70, -39, -37, 67, -34, 31, -59, -12, -82, 6, 75, 25, 96, -70, -99, 93, -35, 0, 1, -54, 69, 75, -71, 16, -96, 56, 83, -49, -1, -2, -14, -31, 35, 48, -86, -98, -21, -46, -34, -3, 37, -58, 98, 10, -52, 98, 3, -11, -2, 81, 11, -33, 56, 16, 60, 36, -28, 43, 87, 47, -81, -50, 93, 53, 97, -93, 31, -46, -40, 97, 27, 73, -84, 25, -17, -60, 1, 63, 5, 98, 44, -84, -57, -23, 8, 79, 90, 57, 22, 54, 4, 17, -96, -3, -29, -99, 3, 78, -69, 40, 52, 57, 13, 67, -40, 73, 83, 60, 36, -12, 35, -43, -20, 54, 10, 88, 33, 0, 45, -67, -46, -51, 49, -43, 23, 96, -65, -74, 52, -35, 42, 4, 99, -67, -28, -41, -94, -45, -81, 18, 43, 53, 74, 99, -15, -39, 87, -82, 61, 9, -73, 91, 58, 76, -74, -19, 49, -63, -17, 1, 1, -97, -94, -23, -65, -46, 35, -83, 8, 53, 34, -72, -16, -15, -95, 68, 45, 91, 62, -17, 1, 89, -48, -64, 42, -46, -7, -9, -10, 52, 69, 67, 54, 74, -55, 65, -72, 79, 58, 12, 10, -31, 17, 70, 53, 21, 38, -24, -11, -23, 35, 89, -34, 86, -98, -92, -60, -6, -24, 6, -53, -55, -26, 77, -81, 18, 20, -77, -26, -22, 11, 60, 47, -72, 30, -23, 25, -55, 52, -85, 22, -12, 80, 87, -49, 59, 72, -32, -47, -52, 73, -24, -8, -76, -69, -13, 18, 50, 9, 92, -95, 96, 52, 51, -98, -40, -71, 26, 4, 57, 17, -74, -78, -25, 90, -50, -66, 39, 17, -37, 86, -33, 39, -45, -9, 69, 41, -91, -4, -73, 77, 0, -77, 7, -48, -76, 66, -43, 50, -30, 90, -56, -27, -87, -5, -37, -38, 28, -98, 55, 91, 64, -78, 7, -81, 12, -47, 36, -2, 48, 62, -25, -75, 84, 81, -47, -91, 24, -14, 35, 94, -23, 78, -56, -34, -49, -17, 27, 78, -16, -18, 46, -75, -20, -70, -80, 92, -18, 55, -10, -93, 17, 41, -68, 1, 0, -39, -14, -76, 47, -79, 94, -76, 76, -62, -11, -73, 20, 92, 81, 80, -49, 28, -95, 30, 34, -99, 22, -83, 55, 88, 99, -28, 7, -69, 50, -93]; diff --git a/book/interview-questions/network-delay-time.spec.js b/book/interview-questions/network-delay-time.spec.js index 24563b4e..445f7490 100644 --- a/book/interview-questions/network-delay-time.spec.js +++ b/book/interview-questions/network-delay-time.spec.js @@ -1,3 +1,4 @@ +/* eslint-disable max-len */ const { networkDelayTime, networkDelayTimeQueue } = require('./network-delay-time'); [networkDelayTime, networkDelayTimeQueue].forEach((fn) => { @@ -9,14 +10,14 @@ const { networkDelayTime, networkDelayTimeQueue } = require('./network-delay-tim expect(fn(times, n, k)).toEqual(2); }); - fit('should work with loops', () => { + it('should work with loops', () => { const times = [[1, 2, 0], [1, 5, 10], [1, 4, 1], [2, 3, 100], [4, 5, 1], [5, 6, 1], [6, 7, 1], [7, 3, 1], [7, 5, 1]]; const n = 7; const k = 1; expect(fn(times, n, k)).toEqual(5); }); - fit('should work with loops and dead starts', () => { + it('should work with loops and dead starts', () => { const times = [[1, 2, 0], [1, 5, 10], [1, 4, 1], [2, 3, 100], [4, 5, 1], [5, 6, 1], [6, 7, 1], [7, 3, 1], [7, 5, 1]]; const n = 7; const k = 3; @@ -45,4 +46,3 @@ const { networkDelayTime, networkDelayTimeQueue } = require('./network-delay-tim }); }); }); - diff --git a/book/interview-questions/recent-counter.js b/book/interview-questions/recent-counter.js index 79eada7c..c30b4948 100644 --- a/book/interview-questions/recent-counter.js +++ b/book/interview-questions/recent-counter.js @@ -20,7 +20,6 @@ const { Queue } = require('../../src/index'); class RecentCounter { // end::description[] // tag::solution[] - queue = new Queue(); // end::solution[] // tag::description[] /** @@ -31,6 +30,7 @@ class RecentCounter { // end::description[] // tag::solution[] this.window = maxWindow; + this.queue = new Queue(); // end::solution[] // tag::description[] } @@ -44,8 +44,7 @@ class RecentCounter { // end::description[] // tag::solution[] this.queue.enqueue(timestamp); - while (timestamp - this.queue.peek() > this.window) - this.queue.dequeue(); + while (timestamp - this.queue.peek() > this.window) this.queue.dequeue(); return this.queue.size; // end::solution[] diff --git a/book/interview-questions/sort-colors.js b/book/interview-questions/sort-colors.js index daee44cb..d4f331ae 100644 --- a/book/interview-questions/sort-colors.js +++ b/book/interview-questions/sort-colors.js @@ -1,3 +1,4 @@ +/* eslint-disable no-return-assign */ // const { } = require('../../src/index'); // tag::description[] @@ -35,7 +36,8 @@ function sortColors(nums) { // tag::compact[] function sortColorsCompact(nums) { - let i = 0, lo = 0, hi = nums.length - 1; + let i = 0; let lo = 0; let + hi = nums.length - 1; const swap = (k, j) => [nums[k], nums[j]] = [nums[j], nums[k]]; while (i <= hi) { diff --git a/package-lock.json b/package-lock.json index 210a076a..dc3a55dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -443,6 +443,50 @@ "resolve-global": "^1.0.0" } }, + "@eslint/eslintrc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz", + "integrity": "sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, "@istanbuljs/load-nyc-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", @@ -2159,9 +2203,9 @@ } }, "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", "dev": true }, "@types/minimist": { @@ -2222,70 +2266,71 @@ "dev": true }, "@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.6.0.tgz", + "integrity": "sha512-pnh6Beh2/4xjJVNL+keP49DFHk3orDHHFylSp3WEjtgW3y1U+6l+jNnJrGlbs6qhAz5z96aFmmbUyKhunXKvKw==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", + "@typescript-eslint/scope-manager": "4.6.0", + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/typescript-estree": "4.6.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, + "@typescript-eslint/scope-manager": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.6.0.tgz", + "integrity": "sha512-uZx5KvStXP/lwrMrfQQwDNvh2ppiXzz5TmyTVHb+5TfZ3sUP7U1onlz3pjoWrK9konRyFe1czyxObWTly27Ang==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/visitor-keys": "4.6.0" + } + }, + "@typescript-eslint/types": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.6.0.tgz", + "integrity": "sha512-5FAgjqH68SfFG4UTtIFv+rqYJg0nLjfkjD0iv+5O27a0xEeNZ5rZNDvFGZDizlCD1Ifj7MAbSW2DPMrf0E9zjA==", + "dev": true + }, "@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.0.tgz", + "integrity": "sha512-s4Z9qubMrAo/tw0CbN0IN4AtfwuehGXVZM0CHNMdfYMGBDhPdwTEpBrecwhP7dRJu6d9tT9ECYNaWDHvlFSngA==", "dev": true, "requires": { + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/visitor-keys": "4.6.0", "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", + "globby": "^11.0.1", "is-glob": "^4.0.1", "lodash": "^4.17.15", "semver": "^7.3.2", "tsutils": "^3.17.1" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -2294,6 +2339,24 @@ } } }, + "@typescript-eslint/visitor-keys": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.0.tgz", + "integrity": "sha512-38Aa9Ztl0XyFPVzmutHXqDMCu15Xx8yKvUo38Gu3GhsuckCh3StPI5t2WIO9LHEsOH7MLmlGfKUisU8eW1Sjhg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.6.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } + } + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -2310,6 +2373,12 @@ "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", "dev": true }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", @@ -2329,9 +2398,9 @@ } }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, "acorn-walk": { @@ -2396,12 +2465,50 @@ "uri-js": "^4.2.2" } }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, "ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", @@ -3705,6 +3812,28 @@ } } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -3789,6 +3918,15 @@ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4047,6 +4185,15 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "env-ci": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", @@ -4249,21 +4396,23 @@ } }, "eslint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", - "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.12.1.tgz", + "integrity": "sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^7.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", @@ -4273,12 +4422,11 @@ "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.14", + "lodash": "^4.17.19", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -4292,228 +4440,78 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "is-glob": "^4.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "eslint-visitor-keys": "^1.1.0" }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true } } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -4524,34 +4522,10 @@ } }, "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4677,12 +4651,12 @@ } }, "eslint-plugin-jest": { - "version": "23.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.11.0.tgz", - "integrity": "sha512-qedvh6mcMgoLFHjITtG40yKOCu5Fa1GMYesDOclU30ZvtVkf+DaH0fnCn1ysOX/QMdk2SGhQvxvYLowcLaM0GA==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.1.0.tgz", + "integrity": "sha512-827YJ+E8B9PvXu/0eiVSNFfxxndbKv+qE/3GSMhdorCaeaOehtqHGX2YDW9B85TEOre9n/zscledkFW/KbnyGg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "^2.5.0" + "@typescript-eslint/experimental-utils": "^4.0.1" } }, "eslint-scope": { @@ -4711,20 +4685,20 @@ "dev": true }, "espree": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", - "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", + "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", "dev": true, "requires": { - "acorn": "^7.1.1", + "acorn": "^7.4.0", "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { - "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } @@ -4745,9 +4719,9 @@ }, "dependencies": { "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } @@ -6021,6 +5995,15 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -6745,6 +6728,12 @@ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, "is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", @@ -6757,6 +6746,15 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -14868,6 +14866,34 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -15543,6 +15569,23 @@ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, "supports-hyperlinks": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", @@ -15588,32 +15631,12 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -16019,9 +16042,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "v8-to-istanbul": { diff --git a/package.json b/package.json index 4384319f..db006d2b 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,11 @@ "scripts": { "test": "jest --verbose", "watch": "jest --watch --coverage", - "ci": "npx eslint src/ && jest --coverage", + "lint:base": "npx eslint --fix '{src,book/interview-questions}/**/*.js'", + "lint": "npm run lint:base -- --format codeframe", + "ci": "npm run lint:base && jest --coverage", "coverage": "jest --coverage && open coverage/lcov-report/index.html", "coverage:win": "jest --coverage && cmd.exe /C start coverage/lcov-report/index.html", - "lint": "npx eslint --fix --format codeframe src/", "semantic-release": "semantic-release", "release:check": "semantic-release --dry-run" }, @@ -40,10 +41,10 @@ "commitizen": "4.1.2", "conventional-changelog-cli": "2.0.34", "cz-conventional-changelog": "3.2.0", - "eslint": "7.0.0", + "eslint": "7.12.1", "eslint-config-airbnb-base": "14.1.0", "eslint-plugin-import": "2.20.2", - "eslint-plugin-jest": "23.11.0", + "eslint-plugin-jest": "24.1.0", "handlebars": "4.7.6", "husky": "4.2.5", "jest": "26.0.1", diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 3b0ed6fc..987069ca 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -1,5 +1,5 @@ const util = require('util'); -const Node = require('./node'); +const Node = require('./node'); // Doubly // tag::constructor[] /** @@ -7,10 +7,18 @@ const Node = require('./node'); * the last and first element */ class LinkedList { - constructor(iterable = []) { + constructor( + iterable = [], + // end::constructor[] + ListNode = Node, // Node class (e.g. singly, doubly, multilevel) + // tag::constructor[] + ) { this.first = null; // head/root element this.last = null; // last element of the list this.size = 0; // total number of elements in the list + // end::constructor[] + this.ListNode = ListNode; // ListNode class + // tag::constructor[] Array.from(iterable, (i) => this.addLast(i)); } @@ -20,10 +28,10 @@ class LinkedList { /** * Adds element to the begining of the list. Similar to Array.unshift * Runtime: O(1) - * @param {any} value + * @param {Node} value */ addFirst(value) { - const newNode = new Node(value); + const newNode = new this.ListNode(value); newNode.next = this.first; @@ -246,16 +254,14 @@ class LinkedList { * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#User-defined_iterables */ * [Symbol.iterator]() { - for (let node = this.first, position = 0; - node; - position += 1, node = node.next) { - yield { node, position }; + for (let node = this.first; node; node = node.next) { + yield node; } } toString() { const parts = [...this]; // see [Symbol.iterator]() - return parts.map((n) => util.inspect(n.node.value)).join(' -> '); + return parts.map((n) => util.inspect(n.value)).join(' -> '); } /** diff --git a/src/data-structures/linked-lists/linked-list.spec.js b/src/data-structures/linked-lists/linked-list.spec.js index 4bc30182..504a3431 100644 --- a/src/data-structures/linked-lists/linked-list.spec.js +++ b/src/data-structures/linked-lists/linked-list.spec.js @@ -429,5 +429,24 @@ describe('LinkedList Test', () => { expect(linkedList.toString()).toBe("'a' -> 2 -> 'c' -> { k: 4, v: 'd' }"); }); }); + + + describe('iterator', () => { + let a; + let b; + let c; + let d; + beforeEach(() => { + a = linkedList.addLast('a'); + b = linkedList.addLast('b'); + c = linkedList.addLast('c'); + d = linkedList.addLast('d'); + }); + + it('should convert to array of nodes', () => { + expect([...linkedList]).toEqual([a, b, c, d]); + expect(Array.from(linkedList)).toEqual([a, b, c, d]); + }); + }); }); }); diff --git a/src/data-structures/linked-lists/node.js b/src/data-structures/linked-lists/node.js index ea09b473..0d3147f5 100644 --- a/src/data-structures/linked-lists/node.js +++ b/src/data-structures/linked-lists/node.js @@ -1,14 +1,18 @@ // tag::snippet[] /** - * Node with reference to next and previous element + * Linked List Node */ +// tag::singly[] class Node { constructor(value = null) { this.value = value; this.next = null; - this.previous = null; // for doubly linked list + // end::singly[] + this.previous = null; // if doubly linked list + // tag::singly[] } } +// end::singly[] // end::snippet[] module.exports = Node; diff --git a/src/index.js b/src/index.js index 9d8e8a4a..449b034f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,6 @@ // data structures const LinkedList = require('./data-structures/linked-lists/linked-list'); +const ListNode = require('./data-structures/linked-lists/node'); const Queue = require('./data-structures/queues/queue'); const Stack = require('./data-structures/stacks/stack'); const Graph = require('./data-structures/graphs/graph'); @@ -29,6 +30,7 @@ const mergeSort = require('./algorithms/sorting/merge-sort'); module.exports = { LinkedList, + ListNode, Queue, Stack, Graph, From 571834a848d3b4c7d0dd8a94957b73724f3756ac Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Wed, 28 Oct 2020 16:38:12 -0400 Subject: [PATCH 078/108] fix(test): refactor tests --- book/interview-questions/daily-temperatures.spec.js | 4 ++-- .../linkedlist-flatten-multilevel.spec.js | 2 +- book/interview-questions/linkedlist-same-data.spec.js | 2 +- book/interview-questions/max-subarray.spec.js | 4 ++-- book/interview-questions/merge-intervals.spec.js | 2 +- book/interview-questions/merge-lists.spec.js | 2 +- book/interview-questions/most-common-words-ii.spec.js | 4 ++-- book/interview-questions/network-delay-time.spec.js | 2 +- book/interview-questions/sort-colors.spec.js | 6 +++--- src/data-structures/custom/lru-cache.spec.js | 2 +- src/data-structures/graphs/graph.spec.js | 4 ++-- src/data-structures/graphs/node.spec.js | 2 +- src/data-structures/heaps/median-heap.spec.js | 6 +++--- src/data-structures/linked-lists/linked-list.spec.js | 6 +++--- src/data-structures/trees/binary-search-tree.spec.js | 2 +- src/data-structures/trees/binary-tree-node.spec.js | 4 ++-- 16 files changed, 27 insertions(+), 27 deletions(-) diff --git a/book/interview-questions/daily-temperatures.spec.js b/book/interview-questions/daily-temperatures.spec.js index 88e046f7..7d5de523 100644 --- a/book/interview-questions/daily-temperatures.spec.js +++ b/book/interview-questions/daily-temperatures.spec.js @@ -6,11 +6,11 @@ describe('Stack: Daily Temperatures', () => { expect(dailyTemperatures([30, 28, 50, 40, 30])).toEqual([2, 1, 0, 0, 0]); }); - it('should work', () => { + it('should work 2', () => { expect(dailyTemperatures([73, 74, 75, 71, 69, 72, 76, 73])).toEqual([1, 1, 4, 2, 1, 1, 0, 0]); }); - it('should work', () => { + it('should work 3', () => { expect(dailyTemperatures([89, 62, 70, 58, 47, 47, 46, 76, 100, 70])).toEqual([8, 1, 5, 4, 3, 2, 1, 1, 0, 0]); }); diff --git a/book/interview-questions/linkedlist-flatten-multilevel.spec.js b/book/interview-questions/linkedlist-flatten-multilevel.spec.js index 547067ac..8115f035 100644 --- a/book/interview-questions/linkedlist-flatten-multilevel.spec.js +++ b/book/interview-questions/linkedlist-flatten-multilevel.spec.js @@ -46,7 +46,7 @@ const ll = (nums) => Array.from(new LinkedList(nums, Node)); expect(toString(fn(l3[0]))).toEqual('{ 21(,) -> 23(21,) -> 36(23,) -> 37(36,) }'); }); - fit('works with flat 2 levels and reminder', () => { + it('works with flat 2 levels and reminder', () => { // 1--- 2--- 3 // | // 36--37 diff --git a/book/interview-questions/linkedlist-same-data.spec.js b/book/interview-questions/linkedlist-same-data.spec.js index c0d26830..a9933aaa 100644 --- a/book/interview-questions/linkedlist-same-data.spec.js +++ b/book/interview-questions/linkedlist-same-data.spec.js @@ -20,7 +20,7 @@ describe('Linked List: has same data', () => { expect(hasSameData(l1, l2)).toEqual(true); }); - it('should work with different data', () => { + it('should work with different data separated', () => { const l1 = new LinkedList(['he', 'll', 'o']).first; const l2 = new LinkedList(['ho', 'la']).first; expect(hasSameData(l1, l2)).toEqual(false); diff --git a/book/interview-questions/max-subarray.spec.js b/book/interview-questions/max-subarray.spec.js index 2d6a8e23..6abfb033 100644 --- a/book/interview-questions/max-subarray.spec.js +++ b/book/interview-questions/max-subarray.spec.js @@ -4,7 +4,7 @@ const largeArray = require('./max-subarray.data'); describe('Max Subarray Sum', () => { [maxSubArray, maxSubArrayBrute1, maxSubArrayBrute2].forEach((fn) => { describe(`with ${fn.name}`, () => { - it('should work with small arrays', () => { + it('should work with large arrays', () => { expect(fn([-2, 1, -3, 4, -1, 2, 1, -5, 4])).toEqual(6); }); @@ -12,7 +12,7 @@ describe('Max Subarray Sum', () => { expect(fn([1, -3, 10, -5])).toEqual(10); }); - it('should work with large arrays', () => { + it('should work with humongous arrays', () => { expect(fn(largeArray)).toEqual(4853); }); }); diff --git a/book/interview-questions/merge-intervals.spec.js b/book/interview-questions/merge-intervals.spec.js index da875e4d..efae90e9 100644 --- a/book/interview-questions/merge-intervals.spec.js +++ b/book/interview-questions/merge-intervals.spec.js @@ -21,7 +21,7 @@ const { merge } = require('./merge-intervals'); expect(actual).toEqual(expected); }); - it('should work with other case', () => { + it('should work with other case with large numbers', () => { const actual = fn([[10, 99], [20, 50], [9, 11], [98, 100]]); const expected = [[9, 100]]; expect(actual).toEqual(expected); diff --git a/book/interview-questions/merge-lists.spec.js b/book/interview-questions/merge-lists.spec.js index 4b06e8ee..650aaea0 100644 --- a/book/interview-questions/merge-lists.spec.js +++ b/book/interview-questions/merge-lists.spec.js @@ -26,7 +26,7 @@ describe('Linked List: Merge Lists', () => { expect(asString(actual)).toEqual(expected); }); - it('should handle empty list 1', () => { + it('should handle empty list 2', () => { const l1 = new LinkedList([2, 3, 4]).first; const l2 = new LinkedList().first; const actual = mergeTwoLists(l1, l2); diff --git a/book/interview-questions/most-common-words-ii.spec.js b/book/interview-questions/most-common-words-ii.spec.js index cc0499e0..6c443366 100644 --- a/book/interview-questions/most-common-words-ii.spec.js +++ b/book/interview-questions/most-common-words-ii.spec.js @@ -9,14 +9,14 @@ const { mostCommonWords, mostCommonWordsBrute } = require('./most-common-words-i )).toEqual(['keys']); }); - it('should work', () => { + it('should work 2', () => { expect(fn( 'Look at it! What is it? It does look like my code from 1 year ago', 2, )).toEqual(['it', 'look']); }); - it('should work', () => { + it('should work all puntuations', () => { expect(fn( 'a; a,b, a\'s c a!; b,b, c.', 4, diff --git a/book/interview-questions/network-delay-time.spec.js b/book/interview-questions/network-delay-time.spec.js index 445f7490..bb3440e7 100644 --- a/book/interview-questions/network-delay-time.spec.js +++ b/book/interview-questions/network-delay-time.spec.js @@ -38,7 +38,7 @@ const { networkDelayTime, networkDelayTimeQueue } = require('./network-delay-tim expect(fn(times, n, k)).toEqual(38); }); - it('should work with highly connected networks', () => { + it('should work with large highly connected networks', () => { const times = [[15, 8, 1], [7, 10, 41], [7, 9, 34], [9, 4, 31], [12, 13, 50], [14, 3, 52], [4, 11, 99], [4, 7, 86], [10, 13, 57], [9, 6, 10], [1, 7, 51], [7, 15, 38], [1, 9, 11], [12, 7, 94], [9, 13, 34], [11, 7, 79], [7, 6, 28], [5, 3, 34], [2, 6, 97], [14, 1, 97], [6, 10, 90], [12, 10, 37], [13, 3, 73], [11, 14, 7], [15, 1, 39], [6, 5, 90], [13, 6, 43], [6, 9, 32], [4, 6, 45], [11, 10, 2], [2, 13, 4], [14, 15, 29], [1, 14, 88], [14, 6, 19], [6, 2, 29], [3, 14, 72], [1, 15, 4], [11, 5, 2], [6, 7, 56], [8, 7, 88], [13, 14, 70], [14, 12, 58], [14, 2, 86], [11, 3, 57], [5, 2, 56], [3, 10, 26], [2, 11, 21], [14, 5, 54], [5, 12, 40], [14, 4, 81], [15, 2, 99], [5, 7, 57], [13, 12, 5], [4, 9, 60], [12, 15, 48], [6, 14, 1], [9, 7, 44], [13, 7, 69], [5, 13, 42], [4, 1, 7], [11, 9, 76], [8, 1, 76], [5, 14, 29], [2, 3, 69], [7, 3, 23], [12, 14, 28], [11, 4, 85], [10, 1, 10], [15, 12, 36], [1, 11, 69], [15, 10, 96], [11, 13, 69], [7, 12, 49], [1, 2, 95], [6, 4, 46], [8, 12, 94], [12, 4, 93], [13, 5, 31], [12, 2, 60], [6, 1, 87], [4, 14, 20], [5, 11, 89], [4, 15, 88], [4, 10, 21], [1, 6, 5], [10, 8, 26], [8, 2, 51], [3, 15, 23], [7, 2, 12], [11, 1, 47], [2, 1, 75], [3, 8, 63], [8, 10, 19], [6, 8, 18], [4, 2, 55], [14, 11, 80], [10, 3, 73], [3, 5, 22], [12, 3, 61], [1, 13, 33], [9, 3, 98], [9, 12, 69], [15, 9, 6], [7, 13, 76], [11, 12, 22], [11, 15, 51], [13, 15, 46], [5, 10, 58], [1, 10, 26], [13, 4, 85], [7, 14, 58], [5, 8, 46], [11, 6, 32], [10, 9, 41], [9, 14, 35], [14, 13, 60], [3, 9, 97], [2, 5, 39], [7, 11, 19], [1, 12, 27], [7, 5, 13], [8, 4, 34], [9, 15, 25], [5, 1, 93], [15, 13, 97], [14, 9, 35], [8, 6, 67], [9, 5, 39], [13, 11, 35], [7, 4, 21], [12, 9, 64], [14, 8, 8], [10, 12, 94], [8, 9, 76], [8, 5, 71], [2, 9, 64], [10, 14, 59], [1, 4, 74], [7, 1, 69], [15, 5, 55], [6, 15, 80], [13, 8, 84], [8, 13, 63], [8, 3, 91], [10, 4, 87], [1, 5, 39], [8, 11, 0], [1, 3, 79], [4, 5, 82], [4, 12, 87], [3, 11, 29], [7, 8, 92], [10, 7, 77], [6, 12, 42], [13, 2, 40], [9, 10, 13], [4, 13, 65], [2, 4, 34], [3, 13, 44], [2, 14, 69], [3, 4, 42], [5, 15, 98], [14, 7, 6], [15, 3, 94], [10, 2, 37], [15, 11, 7], [9, 2, 15], [13, 9, 66], [4, 8, 83], [8, 15, 23], [13, 1, 50], [6, 13, 57], [2, 10, 37], [10, 6, 38], [2, 7, 45], [9, 8, 8], [3, 12, 28], [3, 2, 83], [2, 12, 75], [1, 8, 91], [4, 3, 70], [12, 6, 48], [3, 1, 13], [5, 6, 42], [6, 11, 96], [3, 6, 22], [15, 6, 34], [11, 8, 43], [15, 7, 40], [9, 11, 57], [11, 2, 11], [2, 8, 22], [9, 1, 73], [2, 15, 40], [12, 11, 10], [15, 4, 78], [12, 8, 75], [10, 15, 37], [13, 10, 44], [8, 14, 33], [3, 7, 82], [5, 4, 46], [12, 5, 79], [15, 14, 43], [10, 5, 65], [5, 9, 34], [12, 1, 54], [6, 3, 16], [14, 10, 83], [10, 11, 67]]; const n = 15; const k = 8; diff --git a/book/interview-questions/sort-colors.spec.js b/book/interview-questions/sort-colors.spec.js index da394c2a..9e0fdc47 100644 --- a/book/interview-questions/sort-colors.spec.js +++ b/book/interview-questions/sort-colors.spec.js @@ -17,21 +17,21 @@ const { sortColors, sortColorsCompact } = require('./sort-colors'); expect(actual).toEqual(expected); }); - it('should work with small case', () => { + it('should work with small case1', () => { const actual = [2, 1, 2]; fn(actual); const expected = [1, 2, 2]; expect(actual).toEqual(expected); }); - it('should work with small case', () => { + it('should work with small case2', () => { const actual = [1, 0, 2]; fn(actual); const expected = [0, 1, 2]; expect(actual).toEqual(expected); }); - it('should work with small case', () => { + it('should work with small case3', () => { const actual = [2, 0, 1]; fn(actual); const expected = [0, 1, 2]; diff --git a/src/data-structures/custom/lru-cache.spec.js b/src/data-structures/custom/lru-cache.spec.js index 68b846ca..6a00202f 100644 --- a/src/data-structures/custom/lru-cache.spec.js +++ b/src/data-structures/custom/lru-cache.spec.js @@ -9,7 +9,7 @@ describe('LRU Cache', () => { expect(c).toBeDefined(); }); - it('should initialize', () => { + it('should initialize with capacity', () => { c = new LRUCache(7); expect(c.capacity).toEqual(7); }); diff --git a/src/data-structures/graphs/graph.spec.js b/src/data-structures/graphs/graph.spec.js index a4fbba7e..4ff1fb3b 100644 --- a/src/data-structures/graphs/graph.spec.js +++ b/src/data-structures/graphs/graph.spec.js @@ -252,11 +252,11 @@ describe('Graph', () => { expect(graph.areConnected('you', 'barbara')).toBe(true); }); - it('should return true if two nodes are connected', () => { + it('should return true if two nodes are connected to itself', () => { expect(graph.areConnected('you', 'you')).toBe(true); }); - it('should return true if two nodes are connected', () => { + it('should return true if two nodes are connected to other', () => { expect(graph.areConnected('you', 'John')).toBe(false); }); }); diff --git a/src/data-structures/graphs/node.spec.js b/src/data-structures/graphs/node.spec.js index 97e76b02..360480be 100644 --- a/src/data-structures/graphs/node.spec.js +++ b/src/data-structures/graphs/node.spec.js @@ -62,7 +62,7 @@ describe('Node (Graph)', () => { expect(node.isAdjacent(b)).toBe(true); }); - it('should return true if they are adjacent', () => { + it('should return true if they are adjacent on c', () => { const c = new Node('c'); expect(node.isAdjacent(c)).toBe(false); }); diff --git a/src/data-structures/heaps/median-heap.spec.js b/src/data-structures/heaps/median-heap.spec.js index 5f6de956..4f7a8a6b 100644 --- a/src/data-structures/heaps/median-heap.spec.js +++ b/src/data-structures/heaps/median-heap.spec.js @@ -13,7 +13,7 @@ describe('Median Heap', () => { expect(medianHeap.size).toEqual(1); }); - it('should work', () => { + it('should work with 2 additions', () => { expect(medianHeap.add(1)).toEqual(undefined); expect(medianHeap.add(1)).toEqual(undefined); expect(medianHeap.size).toEqual(2); @@ -30,7 +30,7 @@ describe('Median Heap', () => { expect(medianHeap.findMedian()).toEqual(10); }); - it('should work', () => { + it('should work with even numbers', () => { const values = [5, 15, 1, 3]; const medians = values.map((v) => { medianHeap.add(v); @@ -39,7 +39,7 @@ describe('Median Heap', () => { expect(medians).toEqual([5, 10, 5, 4]); }); - it('should work', () => { + it('should work with odd numbers', () => { const values = [2, 4, 7, 1, 5, 3]; const medians = values.map((v) => { medianHeap.add(v); diff --git a/src/data-structures/linked-lists/linked-list.spec.js b/src/data-structures/linked-lists/linked-list.spec.js index 504a3431..8285e316 100644 --- a/src/data-structures/linked-lists/linked-list.spec.js +++ b/src/data-structures/linked-lists/linked-list.spec.js @@ -60,13 +60,13 @@ describe('LinkedList Test', () => { }); describe('#addFirst', () => { - it('add element to the head/root of the list', () => { + it('add 1 element to the head/root of the list', () => { linkedList.addFirst('a'); expect(linkedList.first.value).toBe('a'); expect(linkedList.last.value).toBe('a'); }); - it('add element to the head/root of the list', () => { + it('add 2 elements to the head/root of the list', () => { linkedList.addFirst('a'); linkedList.addFirst('b'); expect(linkedList.first.value).toBe('b'); @@ -217,7 +217,7 @@ describe('LinkedList Test', () => { expect(linkedList.length).toBe(1); }); - it('should remove last element', () => { + it('should remove first element', () => { expect(linkedList.length).toBe(2); expect(linkedList.removeByPosition(0)).toBe(0); expect(linkedList.length).toBe(1); diff --git a/src/data-structures/trees/binary-search-tree.spec.js b/src/data-structures/trees/binary-search-tree.spec.js index 40b9601d..854e31ff 100644 --- a/src/data-structures/trees/binary-search-tree.spec.js +++ b/src/data-structures/trees/binary-search-tree.spec.js @@ -105,7 +105,7 @@ describe('Binary Search Tree', () => { expect(parent).toMatchObject({ value: 5 }); }); - it('should find future parent of a node that doesnt exist yet', () => { + it('should find future parent of a node that doesnt exist yet with -1', () => { bst.add(5); bst.add(1); const { found, parent } = bst.findNodeAndParent(-1); diff --git a/src/data-structures/trees/binary-tree-node.spec.js b/src/data-structures/trees/binary-tree-node.spec.js index d24cb5bc..675e6a01 100644 --- a/src/data-structures/trees/binary-tree-node.spec.js +++ b/src/data-structures/trees/binary-tree-node.spec.js @@ -104,12 +104,12 @@ describe('Binary Tree Node', () => { expect(p.uncle).toBe(null); }); - it('true if is parent left child', () => { + it('true if is parent left child for sibling', () => { expect(s.isParentLeftChild).toBe(true); expect(s.isParentRightChild).toBe(false); }); - it('true if is parent left child', () => { + it('true if is parent left child for child', () => { expect(c.isParentLeftChild).toBe(false); expect(c.isParentRightChild).toBe(true); }); From bd9e1e4ce087fcc0041dcd879e38a98344d42ab1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Wed, 28 Oct 2020 20:49:24 +0000 Subject: [PATCH 079/108] :bookmark: chore(release): 2.6.0 # [2.6.0](https://github.com/amejiarosario/dsa.js/compare/2.5.1...2.6.0) (2020-10-28) ### Bug Fixes * **test:** refactor tests ([571834a](https://github.com/amejiarosario/dsa.js/commit/571834a848d3b4c7d0dd8a94957b73724f3756ac)) ### Features * **book:** add chapter numbers ([0f13f90](https://github.com/amejiarosario/dsa.js/commit/0f13f907141d0ad9bb439d131aca6d1d882421ee)) * **book/linkedlist:** linked lists techniques and common patterns ([8cd126d](https://github.com/amejiarosario/dsa.js/commit/8cd126d71a31473fefdbf0f0a9780cd7b128bcd6)) --- CHANGELOG.md | 13 +++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84973f04..b7b8367d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [2.6.0](https://github.com/amejiarosario/dsa.js/compare/2.5.1...2.6.0) (2020-10-28) + + +### Bug Fixes + +* **test:** refactor tests ([571834a](https://github.com/amejiarosario/dsa.js/commit/571834a848d3b4c7d0dd8a94957b73724f3756ac)) + + +### Features + +* **book:** add chapter numbers ([0f13f90](https://github.com/amejiarosario/dsa.js/commit/0f13f907141d0ad9bb439d131aca6d1d882421ee)) +* **book/linkedlist:** linked lists techniques and common patterns ([8cd126d](https://github.com/amejiarosario/dsa.js/commit/8cd126d71a31473fefdbf0f0a9780cd7b128bcd6)) + ## [2.5.1](https://github.com/amejiarosario/dsa.js/compare/2.5.0...2.5.1) (2020-10-23) diff --git a/package-lock.json b/package-lock.json index 4dda553d..756dd68a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.5.1", + "version": "2.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8b9adab0..d8aee567 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.5.1", + "version": "2.6.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From c1cf57a31fc7a698665c82c8fbd2fde7fb825078 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 30 Oct 2020 09:00:22 -0400 Subject: [PATCH 080/108] fix(book/set): split Set chapter into Hash Set and Tree Set for better coverage --- README.md | 4 +- book/B-self-balancing-binary-search-trees.asc | 5 +- book/D-interview-questions-solutions.asc | 8 +- book/content/part02/hash-map.asc | 3 +- book/content/part02/hash-set.asc | 188 +++++++++++ book/content/part03/binary-search-tree.asc | 4 +- book/content/part03/graph-search.asc | 5 + book/content/part03/graph.asc | 2 +- book/content/part03/set.asc | 314 ------------------ .../time-complexity-graph-data-structures.asc | 8 +- book/content/part03/tree-intro.asc | 4 +- .../part03/{treemap.asc => tree-map.asc} | 14 +- book/content/part03/tree-set.asc | 141 ++++++++ book/content/part04/algorithmic-toolbox.asc | 2 +- book/deprecated/old-set.asc | 73 ++++ book/part02-linear-data-structures.asc | 4 + book/part03-graph-data-structures.asc | 18 +- src/data-structures/maps/README.adoc | 4 +- src/data-structures/maps/hash-maps/readme.asc | 2 +- src/data-structures/maps/tree-maps/readme.asc | 2 +- src/data-structures/sets/README.adoc | 2 +- 21 files changed, 456 insertions(+), 351 deletions(-) create mode 100644 book/content/part02/hash-set.asc delete mode 100644 book/content/part03/set.asc rename book/content/part03/{treemap.asc => tree-map.asc} (93%) create mode 100644 book/content/part03/tree-set.asc create mode 100644 book/deprecated/old-set.asc diff --git a/README.md b/README.md index 52316614..f6fde2d7 100644 --- a/README.md +++ b/README.md @@ -271,8 +271,8 @@ Use Linked Lists when: #### [HashMaps](book/content/part03/map.asc) Learn how to implement different types of Maps such as: -- [HashMap](book/content/part03/hashmap.asc) -- [TreeMap](book/content/part03/treemap.asc) +- [HashMap](book/content/part02/hash-map.asc) +- [TreeMap](book/content/part03/tree-map.asc) Also, [learn the difference between the different Maps implementations](book/content/part03/time-complexity-graph-data-structures.asc): diff --git a/book/B-self-balancing-binary-search-trees.asc b/book/B-self-balancing-binary-search-trees.asc index 182bdaa4..d099b8b1 100644 --- a/book/B-self-balancing-binary-search-trees.asc +++ b/book/B-self-balancing-binary-search-trees.asc @@ -36,8 +36,8 @@ Let's go one by one. Right rotation moves a node on the right as a child of another node. -Take a look at the `@example` in the code below. -As you can see we have an unbalanced tree `4-3-2-1`. +Take a look at the examples in the code in the next section. +As you will see we have an unbalanced tree `4-3-2-1`. We want to balance the tree, for that we need to do a right rotation of node 3. So, we move node 3 as the right child of the previous child. @@ -140,4 +140,3 @@ This rotation is also referred to as `RL rotation`. === Self-balancing trees implementations So far, we have study how to make tree rotations which are the basis for self-balancing trees. There are different implementations of self-balancing trees such a Red-Black Tree and AVL Tree. - diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index 1e37568f..1e9a3579 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -438,7 +438,7 @@ The complexity of any of the BFS methods or DFS is similar. [#hashmap-q-two-sum] include::content/part02/hash-map.asc[tag=hashmap-q-two-sum] -// include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] +// include::content/part02/hash-map.asc[tag=hashmap-q-two-sum] This simple problem can have many solutions; let's explore some. @@ -482,7 +482,7 @@ include::interview-questions/two-sum.js[tags=description;solution] [#hashmap-q-subarray-sum-equals-k] include::content/part02/hash-map.asc[tag=hashmap-q-subarray-sum-equals-k] -// include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] +// include::content/part02/hash-map.asc[tag=hashmap-q-subarray-sum-equals-k] This problem has multiple ways to solve it. Let's explore some. @@ -590,7 +590,7 @@ The sum is 1, however `sum - k` is `0`. If it doesn't exist on the map, we will [#set-q-most-common-word] -include::content/part03/set.asc[tag=set-q-most-common-word] +include::content/part02/hash-set.asc[tag=set-q-most-common-word] This problem requires multiple steps. We can use a `Set` for quickly looking up banned words. For getting the count of each word, we used a `Map`. @@ -632,7 +632,7 @@ include::interview-questions/most-common-word.js[tags=explicit] [#set-q-longest-substring-without-repeating-characters] -include::content/part03/set.asc[tag=set-q-longest-substring-without-repeating-characters] +include::content/part02/hash-set.asc[tag=set-q-longest-substring-without-repeating-characters] One of the most efficient ways to find repeating characters is using a `Map` or `Set`. Use a `Map` when you need to keep track of the count/index (e.g., string -> count) and use a `Set` when you only need to know if there are repeated characters or not. diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index dc8a3a8a..083f98a9 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -5,7 +5,7 @@ endif::[] (((Map))) (((HashMap))) (((HashTable))) (((Data Structures, Linear, HashMap))) [[hashmap-chap]] -=== Hash Map +=== Map A Map is a data structure where a `key` is mapped to a `value`. It's used for a fast lookup of values based on the given key. Only one key can map to a value (no duplicates). @@ -35,6 +35,7 @@ A Map uses an array internally. It translates the key into an array's index usin JavaScript has two ways to use Maps: one uses objects (`{}`), and the other is using the built-in `Map`. +[[hashmap-examples]] .Using Objects as a HashMap. [source, javascript] ---- diff --git a/book/content/part02/hash-set.asc b/book/content/part02/hash-set.asc new file mode 100644 index 00000000..d8baa10f --- /dev/null +++ b/book/content/part02/hash-set.asc @@ -0,0 +1,188 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +(((Set))) (((Data Structures, Non-Linear, Set))) +[[hash-set-chap]] +=== Set +Set is a data structure that allows you to store unique values. If you try to add the same value, multiple times only one instance will be added. Also, you can check very quickly if a value exists or not. Searching by value on arrays takes `O(n)`. However, searching by value on a Set takes `O(1)` on average. + +A Set can be implemented on different ways. One way it's using a <<hashmap-chap, Hash Map>> and other is using a <<tree-map-chap, Tree Map>>. JavaScript has a built-in Hash Set, so that' the one we are going to focus on. + +TIP: We will go more in details with <<tree-map-chap, Tree Map>> after we cover the <<binary-search-tree-chap>>. + + +==== Set vs Array + +An array allows you to search a value by index in constant time `O(1)`, however if you don't know the index, searching a value would take you linear time `O(n)`. A Set has doesn't allow you to search value by index, but you can search by value in constant time. The `Set.add` and `Set.has` method both are `O(1)` in average. + +Take a look at the following examples: + +.Set usage example (using JavaScript built-in Set) +[source, javascript] +---- +const set = new Set(); + +set.add(1); //↪️ Set [ 1 ] +set.add(1); //↪️ Set [ 1 ] +set.add(2); //↪️ Set [ 1, 2 ] +set.add(3); //↪️ Set [ 1, 2, 3 ] +set.has(1); //↪️ true +set.delete(1); //↪️ removes 1 from the set +set.has(1); //↪️ false, 1 has been removed +set.size; //↪️ 2, we just removed one value +console.log(set); //↪️ Set(2) {2, 3} +---- + +As you can see, even if we insert the same value multiple times, it only gets added once. + +Similar to a <<hashmap-examples, map>>, you can also insert objects and any kind of objects. However, be careful, because anything that is not a number, string or symbol would be matched by reference. Let's do some examples. + +.Using a Set with objects +[source, javascript] +---- +const set = new Set(); + +set.add({a: 1, b: 2}); +set.has({a: 1, b: 2}); // ↪️ false + +const a = {a: 1, b: 2}; +set.add(a); +set.has(a); // ↪️ true + +console.log(set); // Set { [ 1, 2, 3 ], [ 1, 2, 3 ] } +---- + +As you can see, you can't to find object using a new object (e.g. `{a: 1, b: 2}`), you need the reference to find it. +If you need to match by value, you would need to convert it to an string using `JSON.stringify`. + +.Workaround to find objects by value. +[source, javascript] +---- +const set = new Set(); + +set.add(JSON.stringify({a: 1, b: 2})); + +set.has(JSON.stringify({a: 1, b: 2})); // ↪️ true + +console.log(set); // Set { '{"a":1,"b":2}' } +---- + + +==== Removing duplicates from an array. + +One common case for a Set is to eliminate duplicates from an array. + +.Removing duplicates from an array +[source, javascript] +---- +const arr = [1, 2, 2, 1, 3, 2]; + +// convert array to set +const set = new Set(arr); +// convert set to array +const uniqueValues = Array.from(set); +// check array +console.log(uniqueValues); // [ 1, 2, 3 ] +---- + +You can also do it all in one line. + +.One-liner to remove duplicates from array. +[source, javascript] +---- +const arr = [1, 2, 2, 1, 3, 2]; +console.log([...new Set(arr)]); // [ 1, 2, 3 ] +---- + +==== Time Complexity of a Hash Set + +All operation on Hash Set are constant time on average: `O(1)`. Similar to the Hash Map, there are cases when the the Set is getting full and it would do a rehash taking `O(n)` for that one insertion. + +// tag::table[] +.Time complexity HashSet +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| Hash Set ^|O(1) ^|- ^|O(1)* ^|O(1) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. +// end::table[] + + +==== Practice Questions +(((Interview Questions, Set))) + +// tag::set-q-most-common-word[] +===== Most common word + +*ST-1*) _Given a text and a list of banned words. +Find the most common word that is not on the banned list. +You might need to sanitize the text and strip out punctuation `?!,'.`_ +// end::set-q-most-common-word[] + +// _Seen in interviews at: Amazon._ + +Examples: + +[source, javascript] +---- +mostCommonWord( + `How much wood, would a Woodchuck chuck, + if a woodchuck could chuck?`, + ['a'], +); // woodchuck or chuck (both show up twice) + +mostCommonWord( +`It's a blue ball and its shade... Very BLUE!`, +['and']); // blue (it show up twice, "it" and "its" once) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/most-common-word.js[tags=description;placeholder] +---- + + +_Solution: <<set-q-most-common-word>>_ + + + + + + + + + + + +// tag::set-q-longest-substring-without-repeating-characters[] +===== Longest Without Repeating + +*ST-2*) _Find the length of the longest substring without repeating characters._ + +// end::set-q-longest-substring-without-repeating-characters[] + +// _Seen in interviews at: Amazon, Facebook, Bloomberg._ + +Examples: + +[source, javascript] +---- +lenLongestSubstring('aaaaa'); // 1 ('a') +lenLongestSubstring('abccdefg'); // 5 ('cdefg') +lenLongestSubstring('abc'); // 3 ('abc') +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/longest-substring-without-repeating-characters.js[tags=description;placeholder] +---- + + +_Solution: <<set-q-longest-substring-without-repeating-characters>>_ diff --git a/book/content/part03/binary-search-tree.asc b/book/content/part03/binary-search-tree.asc index bfe81ddc..4a051b4b 100644 --- a/book/content/part03/binary-search-tree.asc +++ b/book/content/part03/binary-search-tree.asc @@ -3,10 +3,12 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -=== Binary Search Tree (((Binary Search Tree))) (((BST))) (((Data Structures, Non-Linear, Binary Search Tree))) +[[binary-search-tree-chap]] +=== Binary Search Tree + .To recap, the Binary Search Tree (BST) is a tree data structure that keeps the following constraints: * Each node must have at most two children. Usually referred to as "left" and "right". diff --git a/book/content/part03/graph-search.asc b/book/content/part03/graph-search.asc index 08356768..6f59d05f 100644 --- a/book/content/part03/graph-search.asc +++ b/book/content/part03/graph-search.asc @@ -187,6 +187,11 @@ graph G { c0, c1, c2 [color=midnightblue] // c3 [color=red] } + + a0, b0, c0 [label = 0] + a1, b1, c1 [label = 1] + a2, b2, c2 [label = 2] + b3, c3 [label = 3] } .... diff --git a/book/content/part03/graph.asc b/book/content/part03/graph.asc index 952c14da..68931aca 100644 --- a/book/content/part03/graph.asc +++ b/book/content/part03/graph.asc @@ -200,7 +200,7 @@ include::{codedir}/data-structures/graphs/graph.js[tag=addVertex, indent=0] If the node doesn't exist, then we create the new node and add it to a `HashMap`. -TIP: <<part03-graph-data-structures#map>> stores key/pair value very efficiently. Lookup is `O(1)`. +TIP: <<tree-map-chap>> stores key/pair value very efficiently. Lookup is `O(1)`. The `key` is the node's value, while the `value` is the newly created node. diff --git a/book/content/part03/set.asc b/book/content/part03/set.asc deleted file mode 100644 index b1e72b07..00000000 --- a/book/content/part03/set.asc +++ /dev/null @@ -1,314 +0,0 @@ -ifndef::imagesdir[] -:imagesdir: ../../images -:codedir: ../../../src -endif::[] - -(((Set))) (((Data Structures, Non-Linear, Set))) -[[set]] -=== Set -A set is a data structure where duplicated entries are not allowed. A Set is like an array with only unique values. - -NOTE: JavaScript already has a built-in Set data structure. - -Take a look at the following -example: - -.Set usage example (using JavaScript built-in Set) -[source, javascript] ----- -const set = new Set(); - -set.add(1); //↪️ Set [ 1 ] -set.add(1); //↪️ Set [ 1 ] -set.add(2); //↪️ Set [ 1, 2 ] -set.add(3); //↪️ Set [ 1, 2, 3 ] -set.has(1); //↪️ true -set.delete(1); //↪️ removes 1 from the set -set.has(1); //↪️ false, 1 has been removed -set.size; //↪️ 2, we just removed one value -console.log(set); //↪️ Set(2) {2, 3} ----- - -As you can see, even if we insert the same value multiple times, it only gets added once. - -Can you think in a way how to implement it? - -TIP: A hint... it should perform all operations in *O(1)** or at most *O(log n)* - -If we use a `map`, we can accomplish this. However, maps use a key/value pair. If we only use the keys, we can avoid duplicates. Since in a `map` you can only have one key at a time. - -As you might remember from the <<part03-graph-data-structures#map>> chapter, there are two ways of implementing a `map`, and both can be used to create a `set`. Let's explore the difference between the two implementations are. - -==== HashSet vs TreeSet - -We can implement a `map` using a *balanced BST* or a *hash function*. If we use them to implement a `Set`, we would have a `HashSet` and `TreeSet`. - -* `TreeSet`, would return the values sorted in ascending order. -* `HashSet`, would return the values in insertion order. -* Operations on a `HashSet` would take on average O(1), and in the worst case (rehash is due), it would take O(n). -* Operation on a `TreeSet` is always O(log n). - -Let’s implement both! - -[[tree-set]] -==== TreeSet -(((TreeSet))) -(((Data Structures, Non-Linear, TreeSet))) -We are to use a self-balanced BST (Red-Black Tree) to implement TreeSet. - -.TreeSet's constructor method and size attribute -[source, javascript] ----- -include::{codedir}/data-structures/sets/tree-set.js[tag=constructor] -} ----- -<1> Converts an array or any iterable data structure to a set. - -An everyday use case for Sets is to remove duplicated values from an array. We can do that bypassing them in the constructor as follows: - -.Removing duplicates from an Array using a Set -[source, javascript] ----- -set = new TreeSet([1, 2, 3, 2, 1]); -expect(set.size).toBe(3); -expect(Array.from(set.keys())).toEqual([1, 2, 3]); ----- - -Ok, now let’s implement the add method. - -===== Adding elements to a TreeSet - -For adding values to the set, we `Tree.add` method. - -.TreeSet's constructor method and size attribute -[source, javascript] ----- -include::{codedir}/data-structures/sets/tree-set.js[tag=add,indent=0] ----- - -Our <<Inserting new elements in a BST, BST implementation>> can hold duplicated values. It has a multiplicity tally to keep track of duplicates. However, we don’t dupe in a set. For that, we check if the value is already in the tree. -Don’t worry about adding extra lookups. The -`Tree.has` is also very performant *O(log n)*. - -===== Searching for values in a TreeSet - -Again, we rely on the Tree implementation to do the heavy lifting: - -.TreeSet's `has` method -[source, javascript] ----- -include::{codedir}/data-structures/sets/tree-set.js[tag=has, indent=0] ----- - -===== Deleting elements from a TreeSet - -We delete the elements from the TreeSet using the remove method of the BST. - -.TreeSet's `delete` method -[source, javascript] ----- -include::{codedir}/data-structures/sets/tree-set.js[tag=delete, indent=0] ----- - -Voilà! That’s it! - -===== Converting TreeSet to Array - -Another use case for a Set is to convert it to an array or use an iterator (for loops, forEach, …). Let’s provide the method for that: - -.TreeSet's iterator -[source, javascript] ----- -include::{codedir}/data-structures/sets/tree-set.js[tag=iterator, indent=0] ----- - -We are using the `inOrderTraversal` method of the BST to go each key in an -ascending order. - -.JavaScript Built-in `Symbol` iterator -**** -The `Symbol.iterator` built-in symbol specifies the default iterator for -an object. Used by `for...of`, `Array.from` and others. -**** - -Now we can convert from set to array and vice versa easily. For -instance: - -.TreeSet's iterator -[source, javascript] ----- -const array = [1, 1, 2, 3, 5]; - -// array to set -const set = new TreeSet(array); - -// set to array -Array.from(set); //↪️ (4) [1, 2, 3, 5] ----- - -No more duplicates in our array! - -Check out our https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/sets/tree-set.js#L12[GitHub repo for the full TreeSet implementation]. - -Let’s now implement a `HashSet`. - -[[hashset]] -==== HashSet -(((HashSet))) -(((Data Structures, Non-Linear, HashSet))) -The *HashSet* is the set implementation using a HashMap as its underlying data structure. - -The HashSet interface will be the same as the built-in `Set` or our previously implemented `TreeSet`. - -.HashSet's constructor method and size attribute -[source, javascript] ----- -include::{codedir}/data-structures/sets/hash-set.js[tag=constructor] -} ----- - -This constructor is useful for converting an array to set and initializing the `HashMap`. - -===== Inserting values to a HashSet - -To insert items in a HashSet, we use the `set` method of the `HashMap`: - -.HashSet's `add` method -[source, javascript] ----- -include::{codedir}/data-structures/sets/hash-set.js[tag=add, indent=0] -} ----- - -`HashMap` stores key/value pairs, but we only need the keys for Set, so we ignore the value. - -===== Finding values in a HashSet - -We use the method `has` to check if a value is on the `Set` or not. - -.HashSet's `has` method -[source, javascript] ----- -include::{codedir}/data-structures/sets/hash-set.js[tag=has, indent=0] ----- - -Internally, the `HashMap` will convert the key into an array index using a hash function. If there’s something in the array index bucket, it will return -true, and if it’s empty, it will be false. - -===== Deleting values from a HashSet - -For deleting a value from a hashSet, we use the HashMap’s delete method: - -.HashSet's `delete` method -[source, javascript] ----- -include::{codedir}/data-structures/sets/hash-set.js[tag=delete, indent=0] ----- - -This method has an average runtime of *O(1)*. - -==== HashSet vs HashMap Time Complexity - -We can say that `HashMap` in on average, more performant O(1) vs. O(log n). However, if a -rehash happens, it will take *O(n)* instead of *O(1)*. A `TreeSet` is always *O(log n)*. - -(((Tables, Non-Linear DS, HashSet/TreeSet complexities))) - -// also on: book/content/part03/time-complexity-graph-data-structures.asc -// tag::table[] -.Time complexity HashSet vs TreeSet -|=== -.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity -^|_Index/Key_ ^|_Value_ -| HashSet ^|O(1) ^|- ^|O(1)* ^|O(1) ^|O(n) -| TreeSet ^|O(log n) ^|- ^|O(log n) ^|O(log n) ^|O(n) -|=== -{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. -// end::table[] - -indexterm:[Runtime, Linear] -(((Logarithmic))) -(((Runtime, Logarithmic))) -To recap, HashSet and TreeSet will keep data without duplicates. The -difference besides runtime is that: - -.TreeSet vs HashSet -* HashSet keeps data in insertion order -* TreeSet keeps data sorted in ascending order. - - -==== Practice Questions -(((Interview Questions, Set))) - -// tag::set-q-most-common-word[] -===== Most common word - -*ST-1*) _Given a text and a list of banned words. -Find the most common word that is not on the banned list. -You might need to sanitize the text and strip out punctuation `?!,'.`_ -// end::set-q-most-common-word[] - -// _Seen in interviews at: Amazon._ - -Examples: - -[source, javascript] ----- -mostCommonWord( - `How much wood, would a Woodchuck chuck, - if a woodchuck could chuck?`, - ['a'], -); // woodchuck or chuck (both show up twice) - -mostCommonWord( -`It's a blue ball and its shade... Very BLUE!`, -['and']); // blue (it show up twice, "it" and "its" once) ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/most-common-word.js[tags=description;placeholder] ----- - - -_Solution: <<set-q-most-common-word>>_ - - - - - - - - - - - -// tag::set-q-longest-substring-without-repeating-characters[] -===== Longest Without Repeating - -*ST-2*) _Find the length of the longest substring without repeating characters._ - -// end::set-q-longest-substring-without-repeating-characters[] - -// _Seen in interviews at: Amazon, Facebook, Bloomberg._ - -Examples: - -[source, javascript] ----- -lenLongestSubstring('aaaaa'); // 1 ('a') -lenLongestSubstring('abccdefg'); // 5 ('cdefg') -lenLongestSubstring('abc'); // 3 ('abc') ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/longest-substring-without-repeating-characters.js[tags=description;placeholder] ----- - - -_Solution: <<set-q-longest-substring-without-repeating-characters>>_ diff --git a/book/content/part03/time-complexity-graph-data-structures.asc b/book/content/part03/time-complexity-graph-data-structures.asc index ed85c1a6..06f2f22c 100644 --- a/book/content/part03/time-complexity-graph-data-structures.asc +++ b/book/content/part03/time-complexity-graph-data-structures.asc @@ -16,10 +16,10 @@ In this section, we learned about Graphs applications, properties and how we can | <<part03-graph-data-structures#bst, BST (unbalanced)>> ^|- ^|O(n) ^|O(n) ^|O(n) ^|O(n) | <<b-self-balancing-binary-search-trees, BST (balanced)>> ^|- ^|O(log n) ^|O(log n) ^|O(log n) ^|O(n) | Hash Map (naïve) ^|O(n) ^|O(n) ^|O(n) ^|O(n) ^|O(n) -| <<part03-graph-data-structures#hashmap, HashMap>> (optimized) ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) -| <<part03-graph-data-structures#treemap, TreeMap>> (Red-Black Tree) ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) -| <<part03-graph-data-structures#hashset, HashSet>> ^|O(1) ^|- ^|O(1)* ^|O(1) ^|O(n) -| <<part03-graph-data-structures#tree-set, TreeSet>> ^|O(log n) ^|- ^|O(log n) ^|O(log n) ^|O(n) +| <<hashmap-chap, HashMap>> (optimized) ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +| <<tree-map-chap, TreeMap>> (Red-Black Tree) ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) +| <<hash-set-chap, HashSet>> ^|O(1) ^|- ^|O(1)* ^|O(1) ^|O(n) +| <<tree-set-chap, TreeSet>> ^|O(log n) ^|- ^|O(log n) ^|O(log n) ^|O(n) |=== {empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. // end::table[] diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index bd92a6c7..1cb9d3e7 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -67,8 +67,8 @@ image::image32.png[image,width=321,height=193] Binary trees are one of the most used kinds of trees, and they are used to build other data structures. .Binary Tree Applications -- <<part03-graph-data-structures#map>> -- <<part03-graph-data-structures#set>> +- <<tree-map-chap>> +- <<tree-set-chap>> - Priority Queues - <<part03-graph-data-structures#bst>> diff --git a/book/content/part03/treemap.asc b/book/content/part03/tree-map.asc similarity index 93% rename from book/content/part03/treemap.asc rename to book/content/part03/tree-map.asc index 511b263e..23e1cb51 100644 --- a/book/content/part03/treemap.asc +++ b/book/content/part03/tree-map.asc @@ -4,17 +4,19 @@ ifndef::imagesdir[] endif::[] (((TreeMap))) (((Data Structures, Non-Linear, TreeMap))) (((Binary Search Tree))) (((BST))) -[[treemap-chap]] -=== TreeMap +[[tree-map-chap]] +=== Tree Map -A Map is an abstract data structure to store pairs of data: *key* and *value*. It also has a fast key lookup of `O(1)` for <<hashmap-chap>> or `O(log n)` for <<treemap-chap>>. +A Map is an abstract data structure to store pairs of data: *key* and *value*. It also has a fast key lookup of `O(1)` for <<hashmap-chap>> or `O(log n)` for <<tree-map-chap>>. We can implement a Map using two different underlying data structures: * *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. * *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>> or Red-Black Tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. -We already covered <<hashmap-chap>>, so this chapter we are going to focus on TreeMap. +We already covered <<hashmap-chap, Hash Map>>, so this chapter we are going to focus on TreeMap. + +TIP: JavaScript only provides (Hash) `Map` that's enough for most needs. But we are going to implement a Tree Map so it's more clear how it works and when it should be used. A TreeMap is a Map implementation using a Balanced Binary Search Trees. Implementing a Map with a tree, TreeMap, has a couple of advantages over a HashMap: @@ -24,7 +26,6 @@ Implementing a Map with a tree, TreeMap, has a couple of advantages over a HashM * Collisions are not a concern so in the worst case is still *O(log n)*. * Trees are more space efficient and don’t need to allocate memory beforehand (e.g. `HashMap`’s initial capacity) nor you have to rehash when is getting full. -indexterm:[Runtime, Logarithmic] Ok, now that you know the advantages, let’s implement it! For a full comparison read the <<HashMap vs TreeMap>> section. @@ -103,7 +104,6 @@ The BST implementation does all the heavy lifting. That’s it! To see the full file in context, click here: https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/maps/tree-maps/tree-map.js#L22[here] -<<< ==== HashMap vs TreeMap .A map can be implemented using hash functions or binary search tree: @@ -130,7 +130,7 @@ As we discussed so far, there is a trade-off between the implementations. .2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity ^|_Index/Key_ ^|_Value_ | <<hashmap-chap, Hash Map>> ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) -| <<treemap-chap, Tree Map (Red-Black Tree)>> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) +| <<tree-map-chap, Tree Map (Red-Black Tree)>> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) |=== {empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. // end::table[] diff --git a/book/content/part03/tree-set.asc b/book/content/part03/tree-set.asc new file mode 100644 index 00000000..507473b3 --- /dev/null +++ b/book/content/part03/tree-set.asc @@ -0,0 +1,141 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +(((TreeSet))) +(((Data Structures, Non-Linear, TreeSet))) +[[tree-set-chap]] +=== Tree Set + +A tree set is a data structure that stores unique values and keep them sorted. You can get check if a value exists in `O(log n)` time. + +Another way to implement a Set is using a hash function, as we covered on <<hash-set-chap, Hash Set>>. There are some key differences between the two implementations. + +==== HashSet vs TreeSet + +We can implement a `map` using a *<<b-self-balancing-binary-search-trees, balanced BST>>* or a *<<hashmap-chap,hash function>>*. If we use them to implement a `Set`, we would have a `HashSet` and `TreeSet`. As all data structures there are trade-offs. Here are some key differences: + +* `TreeSet`, would return the values sorted in ascending order. +* `HashSet`, would return the values in insertion order. +* Operations on a `HashSet` would take on average O(1), and in the worst case (rehash is due), it would take O(n). +* Operation on a `TreeSet` is always O(log n). + +==== Time Complexity Hash Set vs Tree Set + +(((Tables, Non-Linear DS, HashSet/TreeSet complexities))) +indexterm:[Runtime, Linear] +(((Logarithmic))) +(((Runtime, Logarithmic))) + +// also on: book/content/part03/time-complexity-graph-data-structures.asc +// tag::table[] +.Time complexity HashSet vs TreeSet +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| <<hash-set-chap, Hash Set>> ^|O(1) ^|- ^|O(1)* ^|O(1) ^|O(n) +| <<tree-set-chap, Tree Set>> ^|O(log n) ^|- ^|O(log n) ^|O(log n) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. +// end::table[] + + +TIP: JavaScript only provides (Hash) `Set` that's enough for most needs. But we are going to implement a Tree Set so it's more clear how it works and when it should be used. + +==== Implementing a Tree Set + + +.TreeSet's constructor method and size attribute +[source, javascript] +---- +include::{codedir}/data-structures/sets/tree-set.js[tag=constructor] +} +---- +<1> Converts an array or any iterable data structure to a set. + +An everyday use case for Sets is to remove duplicated values from an array. We can do that bypassing them in the constructor as follows: + +.Removing duplicates from an Array using a Set +[source, javascript] +---- +set = new TreeSet([1, 2, 3, 2, 1]); +expect(set.size).toBe(3); +expect(Array.from(set.keys())).toEqual([1, 2, 3]); +---- + +Ok, now let’s implement the add method. + +===== Adding elements to a TreeSet + +For adding values to the set, we `Tree.add` method. + +.TreeSet's constructor method and size attribute +[source, javascript] +---- +include::{codedir}/data-structures/sets/tree-set.js[tag=add,indent=0] +---- + +Our <<Inserting new elements in a BST, BST implementation>> can hold duplicated values. It has a multiplicity tally to keep track of duplicates. However, we don’t dupe in a set. For that, we check if the value is already in the tree. +Don’t worry about adding extra lookups. The +`Tree.has` is also very performant *O(log n)*. + +===== Searching for values in a TreeSet + +Again, we rely on the Tree implementation to do the heavy lifting: + +.TreeSet's `has` method +[source, javascript] +---- +include::{codedir}/data-structures/sets/tree-set.js[tag=has, indent=0] +---- + +===== Deleting elements from a TreeSet + +We delete the elements from the TreeSet using the remove method of the BST. + +.TreeSet's `delete` method +[source, javascript] +---- +include::{codedir}/data-structures/sets/tree-set.js[tag=delete, indent=0] +---- + +Voilà! That’s it! + +===== Converting TreeSet to Array + +Another use case for a Set is to convert it to an array or use an iterator (for loops, forEach, …). Let’s provide the method for that: + +.TreeSet's iterator +[source, javascript] +---- +include::{codedir}/data-structures/sets/tree-set.js[tag=iterator, indent=0] +---- + +We are using the `inOrderTraversal` method of the BST to go each key in an +ascending order. + +.JavaScript Built-in `Symbol` iterator +**** +The `Symbol.iterator` built-in symbol specifies the default iterator for +an object. Used by `for...of`, `Array.from` and others. +**** + +Now we can convert from set to array and vice versa easily. For +instance: + +.TreeSet's iterator +[source, javascript] +---- +const array = [1, 1, 2, 3, 5]; + +// array to set +const set = new TreeSet(array); + +// set to array +Array.from(set); //↪️ (4) [1, 2, 3, 5] +---- + +No more duplicates in our array! + +Check out our https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/sets/tree-set.js#L12[GitHub repo for the full TreeSet implementation]. diff --git a/book/content/part04/algorithmic-toolbox.asc b/book/content/part04/algorithmic-toolbox.asc index f100524a..9539407a 100644 --- a/book/content/part04/algorithmic-toolbox.asc +++ b/book/content/part04/algorithmic-toolbox.asc @@ -23,7 +23,7 @@ TIP: TL;DR: Don't start coding right away. First, solve the problem, then write .. If anything else fails, how would you solve it the dumbest way possible (brute force). We can optimize it later. . *Test* your algorithm idea with multiple examples . *Optimize* the solution –Only optimize when you have something working don't try to do both at the same time! -.. Can you trade-off space for speed? Use a <<part03-graph-data-structures#hashmap>> to speed up results! +.. Can you trade-off space for speed? Use a <<hashmap-chap>> to speed up results! .. Do you have a bunch of recursive and overlapping problems? Try <<Dynamic Programming>>. .. Re-read requirements and see if you can take advantage of anything. E.g. is the array sorted? . *Write Code*, yes, now you can code. diff --git a/book/deprecated/old-set.asc b/book/deprecated/old-set.asc new file mode 100644 index 00000000..f07a72c8 --- /dev/null +++ b/book/deprecated/old-set.asc @@ -0,0 +1,73 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +[[hashset]] +==== Hash Set Implementation +(((HashSet))) +(((Data Structures, Non-Linear, HashSet))) +The *HashSet* is the set implementation using a HashMap as its underlying data structure. + +The HashSet interface will be the same as the built-in `Set` or our previously implemented `TreeSet`. + +.HashSet's constructor method and size attribute +[source, javascript] +---- +include::{codedir}/data-structures/sets/hash-set.js[tag=constructor] +} +---- + +This constructor is useful for converting an array to set and initializing the `HashMap`. + +===== Inserting values to a HashSet + +To insert items in a HashSet, we use the `set` method of the `HashMap`: + +.HashSet's `add` method +[source, javascript] +---- +include::{codedir}/data-structures/sets/hash-set.js[tag=add, indent=0] +} +---- + +`HashMap` stores key/value pairs, but we only need the keys for Set, so we ignore the value. + +===== Finding values in a HashSet + +We use the method `has` to check if a value is on the `Set` or not. + +.HashSet's `has` method +[source, javascript] +---- +include::{codedir}/data-structures/sets/hash-set.js[tag=has, indent=0] +---- + +Internally, the `HashMap` will convert the key into an array index using a hash function. If there’s something in the array index bucket, it will return +true, and if it’s empty, it will be false. + +===== Deleting values from a HashSet + +For deleting a value from a hashSet, we use the HashMap’s delete method: + +.HashSet's `delete` method +[source, javascript] +---- +include::{codedir}/data-structures/sets/hash-set.js[tag=delete, indent=0] +---- + +This method has an average runtime of *O(1)*. + +==== HashSet vs HashMap Time Complexity + +We can say that `HashMap` in on average, more performant O(1) vs. O(log n). However, if a +rehash happens, it will take *O(n)* instead of *O(1)*. A `TreeSet` is always *O(log n)*. + + + +To recap, HashSet and TreeSet will keep data without duplicates. The +difference besides runtime is that: + +.TreeSet vs HashSet +* HashSet keeps data in insertion order +* TreeSet keeps data sorted in ascending order. diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index 48ab9ffc..ab8b99da 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -10,6 +10,7 @@ When you are aware of the data structures implementations, you spot when to use .In this part we are going to learn about the following linear data structures: - <<array-chap>> - <<hashmap-chap>> +- <<hash-set-chap>> - <<part02-linear-data-structures#linked-list>> - <<part02-linear-data-structures#stack>> - <<part02-linear-data-structures#queue>> @@ -31,6 +32,9 @@ include::content/part02/array.asc[] <<< include::content/part02/hash-map.asc[] +<<< +include::content/part02/hash-set.asc[] + <<< include::content/part02/linked-list.asc[] diff --git a/book/part03-graph-data-structures.asc b/book/part03-graph-data-structures.asc index 74b01bc6..25ba9339 100644 --- a/book/part03-graph-data-structures.asc +++ b/book/part03-graph-data-structures.asc @@ -1,13 +1,13 @@ [[part03-graph-data-structures]] -== Graph Data Structures +== Graph & Tree Data Structures Graph-based data structures are everywhere whether you realize it or not. You can find them in databases, Web (HTML DOM tree), search algorithms, finding the best route to get home and many more uses. We are going to learn the basic concepts and when to choose one over the other. .In this chapter we are going to learn: - Exciting <<part03-graph-data-structures#graph>> data structure applications - Searching efficiently with a <<part03-graph-data-structures#tree>> data structures. -- One of the most versatile data structure of all <<part03-graph-data-structures#hashmap>>. -- Keeping dups out with a <<part03-graph-data-structures#set>>. +- One of the most versatile data structure of all <<hashmap-chap>>. +- Keeping duplicates out with a <<tree-set-chap>>. By the end of this section, you will know the data structures trade-offs and when to use one over the other. include::content/part03/tree-intro.asc[] @@ -24,11 +24,17 @@ include::content/part03/binary-search-tree-traversal.asc[] // <<< // include::content/part03/map.asc[] -<< -include::content/part03/treemap.asc[] +// <<< +// include::content/part03/tree-map.asc[] + +// <<< +// include::content/part02/hash-set.asc[] + +<<< +include::content/part03/tree-map.asc[] <<< -include::content/part03/set.asc[] +include::content/part03/tree-set.asc[] <<< include::content/part03/graph.asc[] diff --git a/src/data-structures/maps/README.adoc b/src/data-structures/maps/README.adoc index 4448f31a..b5eaa146 100644 --- a/src/data-structures/maps/README.adoc +++ b/src/data-structures/maps/README.adoc @@ -1,7 +1,7 @@ include::../../../book/content/part03/map.asc[] <<< -include::../../../book/content/part03/hashmap.asc[] +include::../../../book/content/part02/hash-map.asc[] <<< -include::../../../book/content/part03/treemap.asc[] +include::../../../book/content/part03/tree-map.asc[] diff --git a/src/data-structures/maps/hash-maps/readme.asc b/src/data-structures/maps/hash-maps/readme.asc index 6a2c8cce..d06231ea 100644 --- a/src/data-structures/maps/hash-maps/readme.asc +++ b/src/data-structures/maps/hash-maps/readme.asc @@ -1 +1 @@ -include::../../../../book/content/part03/hashmap.asc[] +include::../../../../book/content/part02/hash-map.asc[] diff --git a/src/data-structures/maps/tree-maps/readme.asc b/src/data-structures/maps/tree-maps/readme.asc index 0321f3f1..15d5c234 100644 --- a/src/data-structures/maps/tree-maps/readme.asc +++ b/src/data-structures/maps/tree-maps/readme.asc @@ -1 +1 @@ -include::../../../../book/content/part03/treemap.asc[] +include::../../../../book/content/part03/tree-map.asc[] diff --git a/src/data-structures/sets/README.adoc b/src/data-structures/sets/README.adoc index a7dfc61a..ce08b551 100644 --- a/src/data-structures/sets/README.adoc +++ b/src/data-structures/sets/README.adoc @@ -1 +1 @@ -include::../../../book/content/part03/set.asc[] +include::../../../book/content/part02/hash-set.asc[] From 2b96f0086632d9ddcbb7e8f76a061a46f90a65a0 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 30 Oct 2020 09:41:11 -0400 Subject: [PATCH 081/108] feat(book/linkedlist): add applications --- book/content/part02/linked-list.asc | 23 ++++++++++++++++++++++- book/images/critical-path-examples.png | Bin 40870 -> 38016 bytes book/images/dllx4-compact.png | Bin 0 -> 6760 bytes 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 book/images/dllx4-compact.png diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 59ddac6c..a09f8473 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -9,7 +9,28 @@ endif::[] [[linked-list]] === Linked List -A list (or Linked List) is a linear data structure where each object has a pointer to the next one. +A list (or Linked List) is a linear data structure where each object has a pointer to the next one creating a chain. You can also have a back reference to the previous node. + +image::dllx4-compact.png[] + +The data doesn't have to be a number. It can be anything that you need (e.g., images, songs, menu items). + +.Some features powered by linked lists: +- _Image viewer_ – The previous and next images are linked in an image viewer so that the user can navigate them. +- _Previous and next page in web browser_ – We can access the previous and next URL searched in a web browser by pressing the back and next button since they are linked. +- _Music Player_ - Queue of songs in a music player connects them so you can move to the next song or previous one. + +.Other Applications: +- Build <<Stack>> and <<Queue>> data structures, which are useful for Graph Traversal and other things. +- Linked Lists are used on <<hashmap-chap>> to handle collisions. +- Linked Lists can be used when representing a <<graph>> as an adjacency list. +- Operate arbitrary big numbers (think hundreds of digits). Each digit is a node of a linked list. +- Manipulation of polynomials by storing constants in the node of a linked list. +- Representing sparse matrices (an array representation will waste a lot of memory when most of the cells are empty). The linked list will represent only the non-zero values saving significant space. + +Hopefully, this will get you excited about learning Linked Lists since it's the base of many interesting applications. Let's learn more about the different types of linked lists. + +==== Types of Linked List .Linked Lists can be: - *Singly*: every item has a pointer to the next. diff --git a/book/images/critical-path-examples.png b/book/images/critical-path-examples.png index 63b0e330e430fa49e294f765cded36b4cbff8158..ef4a1389883ff77682993512c4d5450fc02c512b 100644 GIT binary patch literal 38016 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�wweVh>D0j@Il3U_3D); z*o!tcH+P}F05j>2A1}ctV`XLar?(fuZ=*bVR8U%qfXoL6wjhJGc6JhjYY|~|ovdmB z@$&>6j}IO_g0iXtjE3_wGq2yhdkM^Tif&6__2H1Z_4R{0k3^-rmwtZ|$K|jN2WN~G z6hbH{C_hzt@!8nOV%YNDcs)D<wRdjCNFbUqja;!E1>{{bvjJo^0-kp0O_7r?5|NOY zzq%9#zg0b0ClMnH#T)3#2<0Jb>1&?lGaR;DsUiawpzy;ti`Y!=V37TiZew5!q4|a` zoEF0Fa)fz)tUU*EBw{c(HZ(RisI43v(qZ%wQlSRN3-CW6Kw?)Hx`4oKK#btNA|@h2 z9LmUKgP@RkdA&|fgd3YlZ4OOv??2Yk*_{)BDq1#Of&zy%8;DuODW{gtdyC>7N29lI z555qMV^7jTPuC;)RgTYP{|%~-BDZsUD83My8pwN#DM7r+;7!j{JOGbGL9xQ)6xapw zSxPxrQ=zf39Thgq50H`PcV-(9?f@{#%GJ5MfmqoLKJ6fXfB$CQ#2+tIRVy|ooWOQ} zMM}N#5Ii_Q%lopLbMNkFiG99jDgP@>HEFzquCTN;0(@~hUQ{eBq2O!!;-kIX=)0b+ ziV^7Riw2TxKM;vyC0PNPnHJX^_wW2p5q|RQuHD*7@j5yM6p!kqaiq)#w{~|a$}1z9 zy7MUA&d+9-l^09=62QL&`)g#(GbQB_;A*;RGAJaQ{28RJEx=nqDm^6zz8It7F8{5` z8Y|o4!3AO0v_k#C`yvoT{IWKnjX<Tsn#3QI<`pHSAMlh+daX|?ZC5=rGBW;IjKHk) z!qU<b<bFwed)E7?xbN17a=>@u1HBVHNdotQSrvjYE5`Acv1PO5eYe=Io2^aoMoo=0 z;Dxf`*+Fjge&Bum_OL#aX{a-pEww%`{WZM-8WUJZun?7NMq(~_pJ)y?Rs}#zhUXhJ zp+4p29uTl;3G|)&MFT8wft4<CmJ;54Uz*Fn&sqLDclTm*^;jVNOUBBexB~~&?%pp@ zswLZi%v|X;vft+IP8Pf$%|i7>DaWL@&f`YFiz;K5h>W{;R$2;tno7&l)6xonWURfu za)FqLpxc4|B7!c9Fd9;j`GKbs00WZ>(5K^NmWI1?O~n?IIMUM6U{{lnk@>EZVEMqL z%z^}z*mKpgEn@u+wf>ACI;g(tn*?ipc;R`I9W1q-kB=6wE)`fUxSQI;TR?Yx3%u$# zg6RlK#dc$sdjbN7-smlXf4-urZT@OR@arX}(tG>e=MX(-;vKkw5$d{gPbrdy6gX2L z+A~y{9MYw?g^Y}zdR$m}PSt#dEwt1xt=?N(6FHQpee-6%J&m4W*02VZVu89}id-fT z%Gy?Tc8eW!b$VdMZftDKf8TIV6?uJMLQ-;ds)h^vj9|w`S5{VbKHBgFe-3y%t$oOD zh>8XQvBeXB;|89dYetVNm$yPvi~e+D9bk!4hDs4wjhT~Ox+uQ7$JZAa;z0Rfvsv5* zJI#>E^v#<e7QQM~k;^Jj`aYuyoSkP17%g&u0U|K$c9;C{!Q<Zz0E^L+gt|Wbn26by z`5Dz1lkJMwSXp9Ag-uz>n8WLj&YI<Yk)NJr%{ec1VuRrdo5kcQ=+6tl8c4*lO74p5 zfxz1W_6Sg~n89U;FhZG)(8F{tqUO8}A@*f4tw%zMgGe5UxXb&GrGAJ<IzPvubWr%y z+WH-+We!`TTQ<u_24G7t8Zf$NI_ynkyviOd6aZlFFnx``7Ys~kU>I^eT~u;D+?!o! zqkzd%f-7_LfDCr(b8$HQ92f}WX?J`KG7Hzj0g3)!%0AYMVRg}O3&?YU|2G|?hFb^o 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 YT?~b%)ErLtuE9SNqOu}+FWz|kH<i;t^#A|> literal 40870 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�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 N@O1TaS?83{1OUm0Kpp@9 diff --git a/book/images/dllx4-compact.png b/book/images/dllx4-compact.png new file mode 100644 index 0000000000000000000000000000000000000000..189dcd407aa2edfcd752b2a584b50abdf2101652 GIT binary patch literal 6760 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 NXKLE2)hf23{{sqbK12Wj literal 0 HcmV?d00001 From 6c39aae0d0d7cb85b95eff7a0af2b340873196e1 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 30 Oct 2020 10:12:04 -0400 Subject: [PATCH 082/108] chore(book): improve grammar of various chapters --- book/content/colophon.asc | 2 +- book/content/dedication.asc | 2 +- book/content/introduction.asc | 4 +- book/content/part01/algorithms-analysis.asc | 4 +- book/content/part01/big-o-examples.asc | 8 +- book/content/part01/how-to-big-o.asc | 6 +- .../array-vs-list-vs-queue-vs-stack.asc | 4 +- book/content/part02/array.asc | 8 +- book/content/part02/hash-map.asc | 12 +-- book/content/part02/hash-set.asc | 25 ++++-- book/content/part02/queue.asc | 2 +- book/content/part02/stack.asc | 4 +- .../part03/binary-search-tree-traversal.asc | 5 +- book/content/part03/binary-search-tree.asc | 44 +++++----- book/content/part03/graph-search.asc | 8 +- book/content/part03/graph.asc | 68 +++++++-------- .../time-complexity-graph-data-structures.asc | 2 +- book/content/part03/tree-intro.asc | 12 +-- book/content/part03/tree-map.asc | 83 ++++++++----------- book/content/part03/tree-search-traversal.asc | 14 ++-- book/content/part03/tree-set.asc | 12 +-- book/content/part04/algorithmic-toolbox.asc | 16 ++-- book/content/part04/backtracking.asc | 19 ++--- book/content/part04/bubble-sort.asc | 10 +-- book/content/part04/divide-and-conquer.asc | 14 ++-- book/content/part04/dynamic-programming.asc | 8 +- book/content/part04/greedy-algorithms.asc | 16 ++-- book/content/part04/insertion-sort.asc | 4 +- book/content/part04/merge-sort.asc | 10 +-- book/content/part04/quick-sort.asc | 20 ++--- book/content/part04/selection-sort.asc | 14 ++-- book/content/part04/sorting-algorithms.asc | 10 +-- book/content/preface.asc | 12 +-- book/part03-graph-data-structures.asc | 11 +-- book/part04-algorithmic-toolbox.asc | 10 +-- 35 files changed, 244 insertions(+), 259 deletions(-) diff --git a/book/content/colophon.asc b/book/content/colophon.asc index c6860171..6387ef12 100644 --- a/book/content/colophon.asc +++ b/book/content/colophon.asc @@ -9,7 +9,7 @@ For online information and ordering this and other books, please visit https://a No part of this publication may be produced, store in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher. -While every precaution has been taking in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or damages resulting from the use of the information contained herein. +While every precaution has been taking in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or damages resulting from using the information contained herein. // {revremark}, {revdate}. Version {revnumber}, {revdate}. diff --git a/book/content/dedication.asc b/book/content/dedication.asc index 069d116c..db104a6d 100644 --- a/book/content/dedication.asc +++ b/book/content/dedication.asc @@ -1,4 +1,4 @@ [dedication] == Dedication -_To my wife Nathalie who supported me in my long hours of writing and my baby girl Abigail._ +_To my wife Nathalie, who supported me in my long hours of writing, and my baby girl Abigail._ diff --git a/book/content/introduction.asc b/book/content/introduction.asc index e59de6d1..e7e1167d 100644 --- a/book/content/introduction.asc +++ b/book/content/introduction.asc @@ -4,9 +4,9 @@ You are about to become a better programmer and grasp the fundamentals of Algorithms and Data Structures. Let's take a moment to explain how we are going to do that. -This book is divided into 4 main parts: +This book is divided into four main parts: -In *Part 1*, we will cover the framework to compare and analyze algorithms: Big O notation. When you have multiple solutions to a problem, this framework comes handy to know which solution will scale better. +In *Part 1*, we will cover the framework to compare and analyze algorithms: Big O notation. When you have multiple solutions to a problem, this framework comes in handy to know which solution will scale better. In *Part 2*, we will go over linear data structures and trade-offs about using one over another. After reading this part, you will know how to trade space for speed using Maps, when to use a linked list over an array, or what problems can be solved using a stack over a queue. diff --git a/book/content/part01/algorithms-analysis.asc b/book/content/part01/algorithms-analysis.asc index dc7b6893..c2f2dce3 100644 --- a/book/content/part01/algorithms-analysis.asc +++ b/book/content/part01/algorithms-analysis.asc @@ -143,7 +143,7 @@ _7n^3^ + 3n^2^ + 5_ You can express it in Big O notation as _O(n^3^)_. The other terms (_3n^2^ + 5_) will become less significant as the input grows bigger. -Big O notation only cares about the “biggest” terms in the time/space complexity. It combines what we learn about time and space complexity, asymptotic analysis, and adds a worst-case scenario. +Big O notation only cares about the “biggest” terms in the time/space complexity. It combines what we learn about time and space complexity, asymptotic analysis and adds a worst-case scenario. .All algorithms have three scenarios: * Best-case scenario: the most favorable input arrangement where the program will take the least amount of operations to complete. E.g., a sorted array is beneficial for some sorting algorithms. @@ -152,7 +152,7 @@ Big O notation only cares about the “biggest” terms in the time/space comple To sum up: -TIP: Big O only cares about the run time function's highest order on the worst-case scenario. +TIP: Big O only cares about the run time function's highest order in the worst-case scenario. WARNING: Don't drop terms that are multiplying other terms. _O(n log n)_ is not equivalent to _O(n)_. However, _O(n + log n)_ is. diff --git a/book/content/part01/big-o-examples.asc b/book/content/part01/big-o-examples.asc index 73bfe968..5526af8f 100644 --- a/book/content/part01/big-o-examples.asc +++ b/book/content/part01/big-o-examples.asc @@ -25,7 +25,7 @@ Before we dive in, here’s a plot with all of them. // image::image5.png[CPU time needed vs. Algorithm runtime as the input size increases] image::big-o-running-time-complexity.png[CPU time needed vs. Algorithm runtime as the input size increases] -The above chart shows how the algorithm's running time is related to the work the CPU has to perform. As you can see, O(1) and O(log n) is very scalable. However, O(n^2^) and worst can convert your CPU into a furnace 🔥 for massive inputs. +The above chart shows how the algorithm's running time is related to the CPU's work. As you can see, O(1) and O(log n) is very scalable. However, O(n^2^) and worst can convert your CPU into a furnace 🔥 for massive inputs. [[constant]] ==== Constant @@ -71,7 +71,9 @@ include::{codedir}/runtimes/02-binary-search.js[tag=binarySearchRecursive] This binary search implementation is a recursive algorithm, which means that the function `binarySearchRecursive` calls itself multiple times until the program finds a solution. The binary search splits the array in half every time. -Finding the runtime of recursive algorithms is not very obvious sometimes. It requires some tools like recursion trees or the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Theorem]. The `binarySearch` divides the input in half each time. As a rule of thumb, when you have an algorithm that divides the data in half on each call, you are most likely in front of a logarithmic runtime: _O(log n)_. +Finding the runtime of recursive algorithms is not very obvious sometimes. It requires some approaches like recursion trees or the https://adrianmejia.com/blog/2018/04/24/analysis-of-recursive-algorithms/[Master Theorem]. + +Since the `binarySearch` divides the input in half each time. As a rule of thumb, when you have an algorithm that divides the data in half on each call, you are most likely in front of a logarithmic runtime: _O(log n)_. [[linear]] ==== Linear @@ -171,7 +173,7 @@ Cubic *O(n^3^)* and higher polynomial functions usually involve many nested loop [[cubic-example]] ===== 3 Sum -Let's say you want to find 3 items in an array that add up to a target number. One brute force solution would be to visit every possible combination of 3 elements and add them up to see if they are equal to target. +Let's say you want to find 3 items in an array that add up to a target number. One brute force solution would be to visit every possible combination of 3 elements and add them to see if they are equal to the target. [source, javascript] ---- diff --git a/book/content/part01/how-to-big-o.asc b/book/content/part01/how-to-big-o.asc index 951cee6b..26a3358e 100644 --- a/book/content/part01/how-to-big-o.asc +++ b/book/content/part01/how-to-big-o.asc @@ -6,7 +6,7 @@ endif::[] === How to determine time complexity from code? In general, you can determine the time complexity by analyzing the program's statements. -However, you have to be mindful how are the statements arranged. Suppose they are inside a loop or have function calls or even recursion. All these factors affect the runtime of your code. Let's see how to deal with these cases. +However, you have to be mindful of how are the statements arranged. Suppose they are inside a loop or have function calls or even recursion. All these factors affect the runtime of your code. Let's see how to deal with these cases. *Sequential Statements* @@ -114,7 +114,7 @@ If instead of `m`, you had to iterate on `n` again, then it would be `O(n^2)`. A [[big-o-function-statement]] *Function call statements* -When you calculate your programs' time complexity and invoke a function, you need to be aware of its runtime. If you created the function, that might be a simple inspection of the implementation. However, if you are using a library function, you might infer it from the language/library documentation. +When you calculate your programs' time complexity and invoke a function, you need to be aware of its runtime. If you created the function, that might be a simple inspection of the implementation. However, you might infer it from the language/library documentation if you use a 3rd party function. Let's say you have the following program: @@ -210,7 +210,7 @@ graph G { If you take a look at the generated tree calls, the leftmost nodes go down in descending order: `fn(4)`, `fn(3)`, `fn(2)`, `fn(1)`, which means that the height of the tree (or the number of levels) on the tree will be `n`. -The total number of calls, in a complete binary tree, is `2^n - 1`. As you can see in `fn(4)`, the tree is not complete. The last level will only have two nodes, `fn(1)` and `fn(0)`, while a complete tree would have 8 nodes. But still, we can say the runtime would be exponential `O(2^n)`. It won't get any worst because `2^n` is the upper bound. +The total number of calls in a complete binary tree is `2^n - 1`. As you can see in `fn(4)`, the tree is not complete. The last level will only have two nodes, `fn(1)` and `fn(0)`, while a full tree would have eight nodes. But still, we can say the runtime would be exponential `O(2^n)`. It won't get any worst because `2^n` is the upper bound. ==== Summary diff --git a/book/content/part02/array-vs-list-vs-queue-vs-stack.asc b/book/content/part02/array-vs-list-vs-queue-vs-stack.asc index b464f17d..1c88b696 100644 --- a/book/content/part02/array-vs-list-vs-queue-vs-stack.asc +++ b/book/content/part02/array-vs-list-vs-queue-vs-stack.asc @@ -5,7 +5,7 @@ endif::[] === Array vs. Linked List & Queue vs. Stack -In this part of the book, we explored the most used linear data structures such as Arrays, Linked Lists, Stacks and Queues. We implemented them and discussed the runtime of their operations. +In this part of the book, we explored the most used linear data structures such as Arrays, Linked Lists, Stacks, and Queues. We implemented them and discussed the runtime of their operations. .Use Arrays when… * You need to access data in random order fast (using an index). @@ -17,7 +17,7 @@ In this part of the book, we explored the most used linear data structures such * You want constant time to remove/add from extremes of the list. .Use a Queue when: -* You need to access your data on a first-come, first served basis (FIFO). +* You need to access your data on a first-come, first-served basis (FIFO). * You need to implement a <<part03-graph-data-structures#bfs-tree, Breadth-First Search>> .Use a Stack when: diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 86acc40a..452f73df 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -256,7 +256,7 @@ array.pop(); // ↪️111 // array: [2, 5, 1, 9] ---- -No other element was touched, so it’s an _O(1)_ runtime. +While deleting the last element, no other item was touched, so that’s an _O(1)_ runtime. .JavaScript built-in `array.pop` **** @@ -293,7 +293,7 @@ To sum up, the time complexity of an array is: | `unshift` ^| O(n) | Insert element on the left side. | `shift` ^| O(n) | Remove leftmost element. | `splice` ^| O(n) | Insert and remove from anywhere. -| `slice` ^| O(n) | Returns shallow copy of the array. +| `slice` ^| O(n) | Returns a shallow copy of the array. |=== //end::table @@ -474,7 +474,7 @@ Notice that many middle branches (in red color) have the same numbers, but in a *Sliding window algorithm* -Another approach is using sliding windows. Since the sum always has `k` elements, we can compute the cumulative sum for k first elements from the left. Then, we slide the "window" to the right and remove one from the left until we cover all the right items. In the end, we would have all the possible combinations without duplicated work. +Another approach is using sliding windows. Since the sum always has `k` elements, we can compute the cumulative sum for the k first elements from the left. Then, we slide the "window" to the right and remove one from the left until we cover all the right items. In the end, we would have all the possible combinations without duplicated work. Check out the following illustration: @@ -537,7 +537,7 @@ _Solution: <<array-q-max-subarray>>_ // tag::array-q-buy-sell-stock[] ===== Best Time to Buy and Sell a Stock -*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You have only one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ +*AR-2*) _You have an array of integers. Each value represents the closing value of the stock on that day. You have only one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ Examples: diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index 083f98a9..a15c2c9b 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -7,7 +7,7 @@ endif::[] [[hashmap-chap]] === Map -A Map is a data structure where a `key` is mapped to a `value`. It's used for a fast lookup of values based on the given key. Only one key can map to a value (no duplicates). +A Map is a data structure where a `key` is mapped to a `value`. It's used for a fast lookup of values based on the given key. Only one key can map to a value (no key duplicates are possible). NOTE: Map has many terms depending on the programming language. Here are some other names: Hash Map, Hash Table, Associative Array, Unordered Map, Dictionary. @@ -242,7 +242,7 @@ map.set('art', 8); .Internal HashMap representation image::image41.png[image,width=528,height=299] -No hash function is perfect, so it's going to map two different keys to the same value for some cases. That's what we called a *collision*. When that happens, we chain the results on the same bucket. If we have too many collisions, it could degrade the lookup time from `O(1)` to `O(n)`. +No hash function is perfect, so it will map two different keys to the same value for some cases. That's what we called a *collision*. When that happens, we chain the results on the same bucket. If we have too many collisions, it could degrade the lookup time from `O(1)` to `O(n)`. The Map doubles the size of its internal array to minimize collisions when it reaches a certain threshold. This restructuring is called a *rehash*. This *rehash* operation takes `O(n)`, since we have to visit every old key/value pair and remap it to the new internal array. Rehash doesn't happen very often, so statistically speaking, Maps can insert/read/search in constant time `O(1)`. @@ -343,7 +343,7 @@ The LRU cache behavior is almost identical to the Map. - LRU cache has a limited size, while Map grows until you run out of memory. - LRU cache removes the least used items once the limit is reached. -We can extend the Map functionality. Also, the Map implementation on JavaScript already keeps the items by insertion order. So, every time we read or update a value, we can remove it from where it was and add it back. That way, the oldest (least used) it's the first element on the Map. +We can extend the Map functionality. Also, the Map implementation on JavaScript already keeps the items by insertion order. Every time we read or update a value, we can remove it from where it was and add it back. That way, the oldest (least used) it's the first element on the Map. .Solution: extending Map [source, javascript] @@ -505,9 +505,9 @@ image:sliding-window-map.png[sliding window for abbadvdf] As you can see, we calculate the length of the string on each iteration and keep track of the maximum value. -What would this look like in code? Let's try a couple of solutions. Let's go first with the brute force and then improve. +What would this look like in code? Let's try a couple of solutions. Let's go first with the brute force and then how we can improve it. -We can have two pointers, `lo` and `hi` to define a window. We can can use two for-loops for that. Later, within `lo` to `hi` we want to know if there's a duplicate value. We can use two other for-loops to check for duplicates (4 nested for-loop)! To top it off, we are using labeled breaks to skip updating the max if there's a duplicate. +We can have two pointers, `lo` and `hi`, to define a window. We can use two for-loops for that. Later, within `lo` to `hi` window, we want to know if there's a duplicate value. A simple and naive approach is to use another two for-loops to check for duplicates (4 nested for-loop)! We need labeled breaks to skip updating the max if there's a duplicate. WARNING: The following code can hurt your eyes. Don't try this in production; for better solutions, keep reading. @@ -615,7 +615,7 @@ Something that might look unnecessary is the `Math.max` when updating the `lo` p .Complexity Analysis - Time Complexity: `O(n)`. We do one pass and visit each character once. -- Space complexity: `O(n)`. We store everything one the Map so that the max size would be `n`. +- Space complexity: `O(n)`. We store everything on the Map so that the max size would be `n`. <<< ==== Practice Questions (((Interview Questions, Hash Map))) diff --git a/book/content/part02/hash-set.asc b/book/content/part02/hash-set.asc index d8baa10f..f5689180 100644 --- a/book/content/part02/hash-set.asc +++ b/book/content/part02/hash-set.asc @@ -6,16 +6,16 @@ endif::[] (((Set))) (((Data Structures, Non-Linear, Set))) [[hash-set-chap]] === Set -Set is a data structure that allows you to store unique values. If you try to add the same value, multiple times only one instance will be added. Also, you can check very quickly if a value exists or not. Searching by value on arrays takes `O(n)`. However, searching by value on a Set takes `O(1)` on average. +Set is a data structure that allows you to store unique values. If you try to add the same value multiple times, the Set will only add it once and ignore all other requests. Also, you can check very quickly if a value exists or not. Searching by value on arrays takes `O(n)`. However, searching by value on a Set takes `O(1)` on average. -A Set can be implemented on different ways. One way it's using a <<hashmap-chap, Hash Map>> and other is using a <<tree-map-chap, Tree Map>>. JavaScript has a built-in Hash Set, so that' the one we are going to focus on. +A Set can be implemented in different ways. One way it's using a <<hashmap-chap, Hash Map>>, and other is using a <<tree-map-chap, Tree Map>>. JavaScript has a built-in Hash Set, so that' the one we are going to focus on. TIP: We will go more in details with <<tree-map-chap, Tree Map>> after we cover the <<binary-search-tree-chap>>. ==== Set vs Array -An array allows you to search a value by index in constant time `O(1)`, however if you don't know the index, searching a value would take you linear time `O(n)`. A Set has doesn't allow you to search value by index, but you can search by value in constant time. The `Set.add` and `Set.has` method both are `O(1)` in average. +An array allows you to search a value by index in constant time `O(1)`; however, if you don't know the index, searching a value would take you linear time `O(n)`. A Set has doesn't allow you to search value by index, but you can search by value in constant time. The `Set.add` and `Set.has` method both are `O(1)` in average. Take a look at the following examples: @@ -37,25 +37,30 @@ console.log(set); //↪️ Set(2) {2, 3} As you can see, even if we insert the same value multiple times, it only gets added once. -Similar to a <<hashmap-examples, map>>, you can also insert objects and any kind of objects. However, be careful, because anything that is not a number, string or symbol would be matched by reference. Let's do some examples. +Like a <<hashmap-examples, map>>, you can also insert objects, arrays, maps, and even other sets. However, be careful because anything that is not a number, string, or symbol would be matched by reference. Let's do some examples. .Using a Set with objects [source, javascript] ---- const set = new Set(); +// matching by value set.add({a: 1, b: 2}); set.has({a: 1, b: 2}); // ↪️ false +set.add({a: 1, b: 2}); // not ignored +// matching by reference const a = {a: 1, b: 2}; set.add(a); set.has(a); // ↪️ true +set.add(a); // this requests will be ignore. -console.log(set); // Set { [ 1, 2, 3 ], [ 1, 2, 3 ] } +// Set has 3 arrays with the same value, but since they all have different memory address it's allowed. +console.log(set); // Set { {a: 1, b: 2}, {a: 1, b: 2}, {a: 1, b: 2} } ---- -As you can see, you can't to find object using a new object (e.g. `{a: 1, b: 2}`), you need the reference to find it. -If you need to match by value, you would need to convert it to an string using `JSON.stringify`. +As you can see, you can't find an object using a new object (e.g. `{a: 1, b: 2}`); you need the reference to find it. +If you need to match by value, you would need to convert it to a string using `JSON.stringify`. .Workaround to find objects by value. [source, javascript] @@ -63,16 +68,18 @@ If you need to match by value, you would need to convert it to an string using ` const set = new Set(); set.add(JSON.stringify({a: 1, b: 2})); +set.add(JSON.stringify({a: 1, b: 2})); // ignored set.has(JSON.stringify({a: 1, b: 2})); // ↪️ true +// Only one object, since strings are matched by value and not by reference. console.log(set); // Set { '{"a":1,"b":2}' } ---- ==== Removing duplicates from an array. -One common case for a Set is to eliminate duplicates from an array. +One typical case for a Set is to eliminate duplicates from an array. .Removing duplicates from an array [source, javascript] @@ -98,7 +105,7 @@ console.log([...new Set(arr)]); // [ 1, 2, 3 ] ==== Time Complexity of a Hash Set -All operation on Hash Set are constant time on average: `O(1)`. Similar to the Hash Map, there are cases when the the Set is getting full and it would do a rehash taking `O(n)` for that one insertion. +All operations on Hash Set are constant time on average: `O(1)`. Like the Hash Map, there are cases when the the Set is getting full, and it would do a rehash taking `O(n)` for that one insertion. // tag::table[] .Time complexity HashSet diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 9b760e1f..11944aa5 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -120,7 +120,7 @@ _Solution: <<queue-q-recent-counter>>_ // tag::queue-q-design-snake-game[] ===== Design Snake Game -*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself the game is over and return `-1`._ +*QU-2*) _Design the `move` function for the snake game. The move function returns an integer representing the current score. If the snake goes out of the given height and width or hit itself, the game is over and return `-1`._ Example: diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index 90b3a859..bf66f49f 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -93,7 +93,7 @@ It's not very common to search for values on a stack (other Data Structures are // tag::stack-q-valid-parentheses[] ===== Validate Parentheses / Braces / Brackets -*ST-1*) _Given an string with 3 types of brakets: `()`, `{}`, and `[]`. Validate they are properly closed and opened._ +*ST-1*) _Given a string with three types of brackets: `()`, `{}`, and `[]`. Validate they are correctly closed and opened._ Examples: @@ -125,7 +125,7 @@ _Solution: <<stack-q-valid-parentheses>>_ // tag::stack-q-daily-temperatures[] ===== Daily Temperaturs -*ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that for each day in the input, tells you how many days you would have to wait until a warmer temperature. If no warmer temperature is possible then return `0` for that element._ +*ST-2*) _Given an array of integers from 30 to 100 (daily temperatures), return another array that, for each day in the input, tells you how many days you would have to wait until warmer weather. If no warmer climate is possible, then return `0` for that element._ Examples: diff --git a/book/content/part03/binary-search-tree-traversal.asc b/book/content/part03/binary-search-tree-traversal.asc index 7b40f9bd..9a21e8fc 100644 --- a/book/content/part03/binary-search-tree-traversal.asc +++ b/book/content/part03/binary-search-tree-traversal.asc @@ -5,7 +5,7 @@ endif::[] === Binary Tree Traversal (((Binary Tree Traversal))) -As mentioned before, there are different ways to visit all the nodes or search for a value in a binary tree. On this section, we are going to focus on depth-first tree traversal. +In this section, we are going to focus on depth-first tree traversal. ==== In Order Traversal (((Tree Traversal, In Order))) @@ -33,7 +33,7 @@ Check out the implementation: include::{codedir}/data-structures/trees/binary-search-tree.js[tag=inOrderTraversal, indent=0] ---- -This function goes recursively to the leftmost element and then yield that node, then we go to the right child (if any) and repeat the process. This method will get us the values ordered. +This function gets the leftmost element (recursively) and then yields that node, then we go to the right child (if any) and repeat the process. This method will get us the values ordered. ==== Pre Order Traversal (((Tree Traversal, Pre Order))) @@ -229,4 +229,3 @@ include::../../interview-questions/binary-tree-right-side-view.js[tags=descripti ---- _Solution: <<binary-tree-q-binary-tree-right-side-view>>_ - diff --git a/book/content/part03/binary-search-tree.asc b/book/content/part03/binary-search-tree.asc index 4a051b4b..db6fcfce 100644 --- a/book/content/part03/binary-search-tree.asc +++ b/book/content/part03/binary-search-tree.asc @@ -11,14 +11,14 @@ endif::[] .To recap, the Binary Search Tree (BST) is a tree data structure that keeps the following constraints: -* Each node must have at most two children. Usually referred to as "left" and "right". -* All trees must a have a "root" node. +* Each node must have at most two children. Usually referred to as "left" and "right." +* All trees must have a "root" node. * The order of nodes values must be: `left child < parent < right child`. * Nodes might need re-ordering after each insert/delete operation to keep the `left <= parent < right` constraint. ==== Implementing a Binary Search Tree -The first step is to implement the Binary Tree Node, which can hold 0, 1 or 2 children. +The first step is to implement the Binary Tree Node, which can hold 0, 1, or 2 children. .Binary Tree Node's constructor [source, javascript] @@ -32,7 +32,7 @@ Does this look familiar to you? It’s almost like the linked list node, but ins We also added the `meta` object to hold some metadata about the node, like duplicity, color (for red-black trees), or any other data needed for future algorithms. -We implemented the node, now let’s layout other methods that we can implement for a BST: +We implemented the node; now, let’s layout other methods that we can implement for a BST: .Binary Search Tree's class [source, javascript] @@ -47,13 +47,13 @@ include::{codedir}/data-structures/trees/binary-search-tree.js[tag=snippet, inde } ---- -With the methods `add` and `remove` we have to guarantee that our tree always has one root element from where we can navigate left or right based on the value that we are looking for. Let's implement those `add` method first: +With the methods `add` and `remove`, we have to guarantee that our tree always has one root element from where we can navigate left or right based on the value we are looking for. Let's implement those `add` method first: ===== Inserting new elements in a BST -.For inserting an element, in a BST, we have two scenarios: +.For inserting an element in a BST, we have two scenarios: 1. If the tree is empty (root element is null), we add the newly created node as root, and that's it! -2. If the root is not null. Start from it and compare the node’s value against the new element. If the node has higher than a new item, we move to the right child, otherwise to the left. We check each node recursively until we find an empty spot where we can put the new element and keep the rule `right < parent < left`. +2. If the root is not null. Start from it and compare the node’s value against the new element. If the node has higher than a new item, we move to the right child, otherwise to the left. We check each node recursively until we find an empty spot to put the new element and keep the rule `right < parent < left`. 3. If we insert the same value multiple times, we don’t want duplicates. So, we can keep track of multiples using a duplicity counter. For instance, let’s say that we want to insert the values 19, 21, 10, 2, 8 in a BST: @@ -61,15 +61,15 @@ For instance, let’s say that we want to insert the values 19, 21, 10, 2, 8 in .Inserting values on a BST. image::image36.png[image,width=528,height=329] -In the last box of the image above, when we are inserting node 18, we start by the root (19). Since 18 is less than 19, then we move left. Node 18 is greater than 10, so we move right. There’s an empty spot, and we place it there. Let’s code it up: +In the last box of the image above, we start by the root when we insert node 18 (19). Since 18 is less than 19, then we move left. Node 18 is greater than 10, so we move right. There’s an empty spot, and we place it there. Let’s code it up: .Binary Search Tree's class [source, javascript] ---- include::{codedir}/data-structures/trees/binary-search-tree.js[tag=add, indent=0] ---- -<1> We are using a helper function `findNodeAndParent` to iterate through the tree finding a node with current value “found” and its parent (implementation on the next section). -<2> We are taking care of duplicates. Instead of inserting duplicates we are keeping a multiplicity tally. We have to decrease it when removing nodes. +<1> We are using a helper function `findNodeAndParent` to iterate through the tree, finding a node with the current value “found” and its parent (implementation on the next section). +<2> We are taking care of duplicates. Instead of inserting duplicates, we are keeping a multiplicity tally. We have to decrease it when removing nodes. ===== Finding a value in a BST @@ -81,11 +81,11 @@ We can implement the find method using the helper `findNodeAndParent` as follows include::{codedir}/data-structures/trees/binary-search-tree.js[tag=find, indent=0] ---- -`findNodeAndParent` is a recursive function that goes to the left child or right depending on the value. However, if the value already exists, it will return it in `found` variable. +`findNodeAndParent` is a recursive function that goes to the left or right child, depending on the value. However, if the value already exists, it will return it in `found` variable. ===== Removing elements from a BST -Deleting a node from a BST have three cases. +Deleting a node from a BST has three cases. .The node is a 1. leaf @@ -100,7 +100,7 @@ Deleting a leaf is the easiest; we look for their parent and set the child to nu image::image37.png[image,width=528,height=200] -Node 18, will be hanging around until the garbage collector is run. However, there’s no node referencing to it so it won’t be reachable from the tree anymore. +Node 18, will be hanging around until the garbage collector is run. However, there’s no node referencing to it to no longer be reachable from the tree. ====== Removing a parent (Node with 1 children) @@ -114,7 +114,7 @@ In the example, we removed node `10` from the tree, so its child (node 2) needs ====== Removing a full parent (Node with 2 children) or root -Removing a parent of two children is the trickiest of all cases because we need to find new parents for two children. (This sentence sounds tragic out of context 😂) +Removing a parent of two children is the trickiest of all cases because we need to find new parents. (This sentence might sound tragic out of context 😂) .Removing node with two children from a BST. image::image39.png[image,width=528,height=404] @@ -134,13 +134,13 @@ All the described scenarios removing nodes with zero, one and two children can b include::{codedir}/data-structures/trees/binary-search-tree.js[tag=remove, indent=0] ---- <1> Try to find if the value exists on the tree. -<2> If the value doesn’t exist we are done! -<3> Create new subtree without the value to delete +<2> If the value doesn’t exist, we are done! +<3> Create a new subtree without the value to delete <4> Check the multiplicity (duplicates) and decrement the count if we have multiple nodes with the same value -<5> If the `nodeToRemove` was the root, then we move the removed node’s children as the new root. -<6> If it was not the root, then we go to the deleted node’s parent and put their children there. +<5> If the `nodeToRemove` was the root, we wouldwould move the removed node’s children as the new root. +<6> If it was not the root, we will go to the deleted node’s parent and put their children there. -We compute `removedNodeChildren`, which is the resulting subtree after combining the children of the deleted node. +We compute `removedNodeChildren`, which is the resulting subtree after combining the deleted node children. The method to combine subtrees is the following: @@ -150,7 +150,7 @@ The method to combine subtrees is the following: include::{codedir}/data-structures/trees/binary-search-tree.js[tag=combine, indent=0] ---- -Take a look at the code above and the example. You will see how to remove node `30` and combine both children subtree and keeping the BST rules. Also, this method uses a helper to get the left-most node. We can implement it like this: +Take a look at the code above and the example. You will see how to remove node `30` and combine both children's subtree, and keeping the BST rules. Also, this method uses a helper to get the left-most node. We can implement it like this: .Binary Search Tree's get the leftmost node [source, javascript] @@ -162,12 +162,12 @@ That’s all we need to remove elements from a BST. Check out the complete BST i ==== Differentiating a balanced and non-balanced Tree -As we insert and remove nodes from a BST we could end up like the tree on the left: +As we insert and remove nodes from a BST, we could end up like the tree on the left: .Balanced vs. Unbalanced Tree. image::image40.png[image,width=454,height=201] -The tree on the left is unbalanced. It looks like a Linked List and has the same runtime! Searching for an element would be *O(n)*, yikes! However, on a balanced tree, the search time is *O(log n)*, which is pretty good! That’s why we always want to keep the tree balanced. In further chapters, we are going to explore how to keep a tree balanced after each insert/delete. +The tree on the left is unbalanced. It looks like a Linked List and has the same runtime! Searching for an element would be *O(n)*, yikes! However, on a balanced tree, the search time is *O(log n)*, which is pretty good! That’s why we always want to keep the tree balanced. In further chapters, we will explore how to keep a tree balanced after each insert/delete. ==== Tree Complexity diff --git a/book/content/part03/graph-search.asc b/book/content/part03/graph-search.asc index 6f59d05f..117e84fa 100644 --- a/book/content/part03/graph-search.asc +++ b/book/content/part03/graph-search.asc @@ -46,8 +46,8 @@ image::directed-graph.png[directed graph] With Depth-First Search (DFS), we go deep before going wide. -Let's say that we use DFS on the graph shown above, starting with node `0`. -A DFS will probably visit 5, then visit `1` and continue going down `3` and `2`. As you can see, we need to keep track of visited nodes, since in graphs, we can have cycles like `1-3-2`. +We use DFS on the graph shown above, starting with node `0`. +A DFS will probably visit 5, then visit `1` and continue going down `3` and `2`. As you can see, we need to keep track of visited nodes, since, in graphs, we can have cycles like `1-3-2`. Finally, we back up to the remaining node `0` children: node `4`. So, DFS would visit the graph: `[0, 5, 1, 3, 2, 4]`. @@ -59,7 +59,7 @@ So, DFS would visit the graph: `[0, 5, 1, 3, 2, 4]`. With Breadth-First Search (BFS), we go wide before going deep. // TODO: BFS traversal -Let's say that we use BFS on the graph shown above, starting with the same node `0`. +We use BFS on the graph shown above, starting with the same node `0`. A BFS will visit 5 as well, then visit `1` and not go down to its children. It will first finish all the children of node `0`, so it will visit node `4`. After all the children of node `0` are visited, it will continue with all the children of node `5`, `1`, and `4`. @@ -98,7 +98,7 @@ NOTE: Every tree is a graph, but not every graph is a tree. Only acyclic directe // tag::graph-q-course-schedule[] ===== Course Schedule -*gr-1*) _Check if it's possible to take a number of courses while satisfying their prerequisites._ +*gr-1*) _Check if it's possible to take all courses while satisfying their prerequisites._ // end::graph-q-course-schedule[] diff --git a/book/content/part03/graph.asc b/book/content/part03/graph.asc index 68931aca..cceacd24 100644 --- a/book/content/part03/graph.asc +++ b/book/content/part03/graph.asc @@ -8,12 +8,12 @@ endif::[] (((Graph))) (((Data Structures, Non-Linear, Graph))) Graphs are one of my favorite data structures. -They have a lot of cool applications like optimizing routes, social network analysis to name a few. You are probably using apps that use graphs every day. +They have many exciting applications like optimizing routes and social network analysis, to name a few. You are probably using apps that use graphs every day. First, let’s start with the basics. TIP: A graph is a non-linear data structure where a node can have zero or more connected nodes. -You can think of graph like an extension of a Linked List. Instead of having a `next` or `previous` reference, you can have as many as you want. You can implement a graph node as an array of associated nodes. +You can think of a Graph as an extension of a Linked List. Instead of having a `next` or `previous` reference, you can have as many as you want. You can implement a graph node as an array of associated nodes. .Node's constructor [source, javascript] @@ -24,7 +24,7 @@ include::{codedir}/data-structures/graphs/node.js[tag=constructor] As you can see, it’s pretty similar to the Linked List node. The only difference is that it uses an *array* of adjacent nodes instead of just one or two. -Other difference between a linked list and graph is that a linked list always has a root node (or first element), while the graph doesn’t. +Another difference between a linked list and a Graph is that a linked list always has a root node (or first element), while the Graph doesn’t. You can start traversing a graph from anywhere. Let’s examine these graph properties! ==== Graph Properties @@ -43,38 +43,38 @@ A graph can be either *directed* or *undirected*. image::image43.jpg[image,width=469,height=192] -An *undirected graph* has edges that are *two-way street*. E.g., On the undirected example, you can traverse from the green node to the orange and vice versa. +An *undirected graph* has edges that are *two-way street*. E.g., On the undirected example, you can traverse from the green Node to the orange and vice versa. -A *directed graph (digraph)* has edges that are *one-way street*. E.g., On the directed example, you can only go from green node to orange and not the other way around. When one node has an edge to itself is called a *self-loop*. +A *directed graph (digraph)* has edges that are *one-way street*. E.g., On the directed example, you can only go from green Node to orange and not the other way around. When one Node has an edge to itself is called a *self-loop*. ===== Graph Cycles A graph can have *cycles* or not. -.Cyclic vs Acyclic Graphs. +.Cyclic vs. Acyclic Graphs. image::image44.jpg[image,width=444,height=194] (((Cyclic Graph))) A *cyclic graph* is the one that you can pass through a node more than once. -E.g., On the cyclic illustration, if you start in the green node, then go the orange and purple, finally, you could come back to green again. +E.g., On the cyclic illustration, if you start in the green Node, go the orange and purple; finally, you could come back to green again. Thus, it has a *cycle*. (((Acyclic Graph))) -An acyclic graph is the one that you can’t pass through a node more than once. E.g., in the acyclic illustration, can you to find a path where you can pass through the same vertex more than one? +An acyclic graph is the one that you can’t pass through a node more than once. E.g., in the acyclic illustration, can you find a path where you can pass through the same vertex more than one? (((Directed Acyclic Graph))) (((DAG))) -The *Directed Acyclic Graph (DAG)* is unique. It has many applications like scheduling tasks, spreadsheets change propagation, and so forth. DAG is also called *Tree* data structure only when each node has only *one parent*. +The *Directed Acyclic Graph (DAG)* is unique. It has many applications like scheduling tasks, spreadsheets' change propagation, and so forth. DAG is also called *Tree* data structure only when each Node has only *one parent*. ===== Connected vs Disconnected vs Complete Graphs .Different kinds of graphs: disconnected, connected, and complete. image::image45.png[image,width=1528,height=300] -A *disconnected graph* is one that has one or more subgraph. In other words, a graph is *disconnected* if two nodes don’t have a path between them. +A *disconnected graph* is one that has one or more subgraphs. In other words, a graph is *disconnected* if two nodes don’t have a path between them. -A *connected graph* is the opposite to disconnected, there’s a path between every node. No one is left behind. +A *connected graph* is the opposite of disconnected; there’s a path between every Node. No one is left stranded. -A *complete graph* is where every node is adjacent to all the other nodes in the graph. E.g., If there are seven nodes, every node has six edges. +A *complete graph* is where every Node is adjacent to all the other nodes in the Graph. E.g., If there are seven nodes, every Node has six edges. ===== Weighted Graphs (((Weighted Graphs))) @@ -106,7 +106,7 @@ Graphs become a metaphor where nodes and edges model something from our physical ** Edge = data link ** Weight = connection speed -There are endless applications for graphs in electronics, social networks, recommendation systems and many more. That’s cool and all, but how do we represent graphs in code? Let’s see that in the next section. +There are endless applications for graphs in electronics, social networks, recommendation systems, and many more. That’s cool and all, but how do we represent graphs in code? Let’s see that in the next section. ==== Representing Graphs @@ -117,17 +117,17 @@ There are two main ways to graphs one is: ===== Adjacency Matrix (((Adjacency Matrix))) -Representing graphs as adjacency matrix is done using a two-dimensional array. For instance, let’s say we have the following graph: +Representing graphs as adjacency matrix is done using a two-dimensional array. For instance, let’s say we have the following Graph: .Graph and its adjacency matrix. image::image47.png[image,width=438,height=253] -The number of vertices |V| define the size of the matrix. In the example, we have five vertices, so we have a 5x5 matrix. +The number of vertices, |V|, defines the size of the matrix. In the example, we have five vertices, so we have a 5x5 matrix. We fill up the matrix row by row. Mark with 1 (or any other weight) when you find an edge. E.g. * *Row 0:* It has a self-loop, so it has a `1` in the coordinate 0,0. Node 0 also has an edge to 1 and 4, so we mark it. -* *Row 1:* The node 1 has one edge to 3, so we check it. +* *Row 1:* node 1 has one edge to 3, so we check it. * *Row 2:* Node 2 goes to Node 4, so we note the insertion with 1. * etc. @@ -154,26 +154,26 @@ digraph[2][3]; //=> 0 digraph[3][2]; //=> 1 ---- -As you can see, we don’t have a link from node 2 to 3, but we do in the opposite direction. Querying arrays is constant time *O(1)*, so no bad at all. +As you can see, we don’t have a link from node 2 to 3, but we do in the opposite direction. Querying arrays is constant time *O(1)*, so not bad at all. -The issue with the adjacency matrix is the space it takes. Let’s say you want to represent the entire Facebook network on a digraph. You would have a massive matrix of 1.2 billion x 1.2 billion. The worst part is that most of it would be empty (zeros) since people are friends to at most few thousands. +The issue with the adjacency matrix is the space it takes. Let’s say you want to represent the entire Facebook network on a digraph. You would have a massive matrix of 1.2 billion x 1.2 billion. The worst part is that most of it would be empty (zeros) since people are friends to at most a few thousands. -TIP: When the graph has few connections compared to the number of nodes we say that we have a *sparse graph*. On the opposite, if we have almost complete graphs, we say we have a *dense graph*. +TIP: When the Graph has few connections compared to the number of nodes, we say that we have a *sparse graph*. Conversely, if we have almost complete maps, we say we have a *dense graph*. -The space complexity of the adjacency matrix is *O(|V|^2^)*, where |V| is the number of vertices/nodes. +The adjacency matrix's space complexity is *O(|V|^2^)*, where |V| is the number of vertices/nodes. ===== Adjacency List (((Adjacency List))) -Another way to represent a graph is by using an adjacency list. This time instead of using an array (matrix) we use a list. +Another way to represent a graph is by using an adjacency list. This time instead of using an array (matrix), we use a list. .Graph represented as an Adjacency List. image::image48.png[image,width=528,height=237] -If we want to add a new node to the list, we can do it by adding one element to the end of the array of nodes *O(1)*. In the next section, we are going to explore the running times of all operations in an adjacency list. +If we want to add a new node to the list, we can do it by adding one element to the end of the array of nodes *O(1)*. In the next section, we will explore the running times of all operations in an adjacency list. ==== Implementing a Graph data structure -Since adjacency lists are more efficient (than adjacency matrix), we are going to use to implement a graph data structure. +Since adjacency lists are more efficient (than adjacency matrix), we will use to implement a graph data structure. Let's start by creating the constructor of the Graph class. @@ -183,11 +183,11 @@ Let's start by creating the constructor of the Graph class. include::{codedir}/data-structures/graphs/graph.js[tag=constructor] ---- -Notice that the constructor takes a parameter. The `edgeDirection` allow us to use one class for both undirected and directed graphs. +Notice that the constructor takes a parameter. The `edgeDirection` allows us to use one class for both undirected and directed graphs. ==== Adding a vertex -For adding a vertex, we first need to check if the node already exists. If so, we return the node. +For adding a vertex, we first need to check if the Node already exists. If so, we return the Node. .Graphs's `addVertex` method [source, javascript] @@ -198,11 +198,11 @@ include::{codedir}/data-structures/graphs/graph.js[tag=addVertex, indent=0] <2> Create new `Node` with the given value. <3> Set `hashMap` with value and node pair. -If the node doesn't exist, then we create the new node and add it to a `HashMap`. +If the Node doesn't exist, we create the new Node and add it to a `HashMap`. TIP: <<tree-map-chap>> stores key/pair value very efficiently. Lookup is `O(1)`. -The `key` is the node's value, while the `value` is the newly created node. +The `key` is the Node's value, while the `value` is the newly created Node. The `Node` class is constructed as follows: @@ -222,9 +222,9 @@ include::{codedir}/data-structures/graphs/graph.js[tag=removeVertex, indent=0] ---- <1> Try to find if node exists. <2> Remove related edges. See `removeAdjacent` below. -<3> Remove node with the given value. +<3> Remove Node with the given value. -Notice on the callout 2, that we visit every edge on the graph and remove the ones that contain the node to remove. +Notice on callout 2 that we visit every edge on the Graph and remove the ones that contain the Node to remove. For removing adjacent nodes, we use Node's method called `removeAdjacent` that can be implemented as follows: @@ -234,13 +234,13 @@ For removing adjacent nodes, we use Node's method called `removeAdjacent` that c include::{codedir}/data-structures/graphs/node.js[tag=removeAdjacent, indent=0] ---- -All adjacencies are stored as a HashSet to provide constant time deletion. +All adjacencies are stored as a HashSet to provide constant-time deletion. ==== Adding an edge -An edge is a connection between two nodes (vertices). If the graph is undirected means that every link is a two-way street. When we create the edge from node 1 to node 2, we also need to establish a connection between node 2 and 1 for undirected graphs. +An edge is a connection between two nodes (vertices). If the Graph is undirected means that every link is a two-way street. When we create the edge from node 1 to node 2, we also need to establish a connection between nodes 2 and 1 for undirected graphs. -If we are dealing with a digraph (directed graph), then we create one edge. +If we are dealing with a digraph (directed Graph), then we create one edge. .Graphs's `addEdge` method [source, javascript] @@ -249,7 +249,7 @@ include::{codedir}/data-structures/graphs/graph.js[tag=addEdge, indent=0] ---- <1> Find or create nodes if they don't exists yet. <2> Create edge from source to destination. -<3> If us a undirected graph, create the edge on the other direction. +<3> If it's an undirected graph, create the edge in the other direction. We can add adjacencies using the `addAdjacent` method from the Node class. @@ -302,4 +302,4 @@ include::{codedir}/data-structures/graphs/node.js[tag=removeAdjacent, indent=0] |=== // end::table[] -As you can see using a `HashSet` on for the adjacency list make a performance improvement. +As you can see, using a `HashSet` on for the adjacency list make a performance improvement if you need to query for connectivity. However, this is rarely required. Most graph algorithms visit all adjacent nodes one by one. diff --git a/book/content/part03/time-complexity-graph-data-structures.asc b/book/content/part03/time-complexity-graph-data-structures.asc index 06f2f22c..366b2111 100644 --- a/book/content/part03/time-complexity-graph-data-structures.asc +++ b/book/content/part03/time-complexity-graph-data-structures.asc @@ -5,7 +5,7 @@ endif::[] === Summary -In this section, we learned about Graphs applications, properties and how we can create them. We mention that you can represent a graph as a matrix or as a list of adjacencies. We went for implementing the later since it's more space efficient. We cover the basic graph operations like adding and removing nodes and edges. In the algorithms section, we are going to cover searching values in the graph. +In this section, we learned about Graphs, applications, properties, and how we can create them. We mention that you can represent a graph as a matrix or as a list of adjacencies. We went for implementing the latter since it's more space-efficient. We cover the basic graph operations like adding and removing nodes and edges. In the algorithms section, we are going to cover searching values in the graph. (((Tables, Non-Linear DS, BST/Maps/Sets Complexities))) // tag::table[] diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index 1cb9d3e7..80d65903 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -16,7 +16,7 @@ As you can see in the picture above, this data structure resembles an inverted t ==== Implementing a Tree -Implementing a tree is not too hard. It’s similar to a <<part02-linear-data-structures#linked-list>>. The main difference is that instead of having a `next` and `previous` links, we have an infinite number of linked nodes (children/descendants). +Implementing a tree is not too hard. It’s similar to a <<part02-linear-data-structures#linked-list>>. The main difference is that instead of having the `next` and `previous` links, we have an 0 or more number of linked nodes (children/descendants). .Tree's node constructor [source, javascript] @@ -35,7 +35,7 @@ Simple! Right? But there are some constraints that you have to keep at all times .Here’s a summary of the three basic concepts: * The topmost node is called *root*. -* A node’s immediate linked nodes are called *children*. +* A node’s primary linked nodes are called *children*. * A *leaf* or *terminal node* is a node without any descendant or children. * A node immediate ancestor is called *parent*. Yep, and like a family tree, a node can have *uncles* and *siblings*, and *grandparents*. * *Internal nodes* are all nodes except for the leaf nodes and the root node. @@ -54,14 +54,14 @@ image::image31.jpg[image] ==== Types of Binary Trees -There are different kinds of trees, depending on the restrictions. E.g. The trees with two children or less are called *binary tree*, while trees with at most three children are called *Ternary Tree*. Since binary trees are the most common, we will cover them here and others in another chapter. +There are different kinds of trees, depending on the restrictions. E.g. The trees with two children or less are called *binary tree*, while trees with at most three children are *Ternary Tree*. Since binary trees are the most common, we will cover them here and others in another chapter. ===== Binary Tree (((Binary Tree))) (((Data Structures, Non-Linear, Binary Tree))) The binary restricts the nodes to have at most two children. Trees can have 0, 1, 2, 7, or more, but not binary trees. -.Binary tree has at most 2 children while non-binary trees can have more. +.Binary tree has at most two children while non-binary trees can have more. image::image32.png[image,width=321,height=193] Binary trees are one of the most used kinds of trees, and they are used to build other data structures. @@ -90,7 +90,7 @@ image::image33.png[image,width=348,height=189] (((Max-Heap))) (((Min-Heap))) (((Data Structures, Non-Linear, Binary Heap))) -The heap (max-heap) is a type of binary tree where the parent's value is higher than both children's value. Opposed to the BST, the left child doesn’t have to be smaller than the right child. +The heap (max-heap) is a binary tree where the parent's value is higher than both children's value. Opposed to the BST, the left child doesn’t have to be smaller than the right child. .Heap vs BST image::image34.png[image,width=325,height=176] @@ -106,6 +106,6 @@ image::image35.png[image,width=258,height=169] .Heap vs. Binary Search Tree **** -Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good a finding any element in *O(log n)*. Heaps are often used to implement priority queues while BST is used when you need every value sorted. +Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good a finding any element in *O(log n)*. Heaps are often used to implement priority queues, while BST is used when you need every value sorted. **** indexterm:[Runtime, Logarithmic] diff --git a/book/content/part03/tree-map.asc b/book/content/part03/tree-map.asc index 23e1cb51..8820212a 100644 --- a/book/content/part03/tree-map.asc +++ b/book/content/part03/tree-map.asc @@ -9,25 +9,44 @@ endif::[] A Map is an abstract data structure to store pairs of data: *key* and *value*. It also has a fast key lookup of `O(1)` for <<hashmap-chap>> or `O(log n)` for <<tree-map-chap>>. -We can implement a Map using two different underlying data structures: +We can implement a Map using two different underlying data structures: Hash Map or Tree Map. -* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. -* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>> or Red-Black Tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. -We already covered <<hashmap-chap, Hash Map>>, so this chapter we are going to focus on TreeMap. +==== HashMap vs TreeMap + +.A map can be implemented using hash functions or a binary search tree: +* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The hash function's job is to convert the `key` into an index that maps to the `value`. HashMap has an average runtime of *O(1)*. +* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <<c-avl-tree>> or Red-Black Tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* lookup time. + +.When to use a TreeMap vs. HashMap? +* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. +* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. +* `HashMap`’s keys are in insertion order (or random depending on the implementation). `TreeMap`’s keys are always sorted. +* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. +* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. -TIP: JavaScript only provides (Hash) `Map` that's enough for most needs. But we are going to implement a Tree Map so it's more clear how it works and when it should be used. +==== TreeMap Time complexity vs HashMap + +As we discussed so far, there is a trade-off between the implementations. +(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) (((Linear))) (((Runtime, Linear))) (((Logarithmic))) (((Runtime, Logarithmic))) + +// also on: book/content/part03/time-complexity-graph-data-structures.asc +// tag::table[] +.Time complexity for different Maps implementations +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| <<hashmap-chap, Hash Map>> ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +| <<tree-map-chap, Tree Map (Red-Black Tree)>> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. +// end::table[] -A TreeMap is a Map implementation using a Balanced Binary Search Trees. -Implementing a Map with a tree, TreeMap, has a couple of advantages over a HashMap: +We already covered <<hashmap-chap, Hash Map>>, so in this chapter, we will focus on TreeMap. -* Keys are always sorted. -* Statistical data can be easily obtained like the median, highest, lowest key. -* Collisions are not a concern so in the worst case is still *O(log n)*. -* Trees are more space efficient and don’t need to allocate memory beforehand (e.g. `HashMap`’s initial capacity) nor you have to rehash when is getting full. +TIP: JavaScript only provides (Hash) `Map`. That's enough for most needs. But we will implement a TreeMap so it's more clear how it works and when it should be used. Ok, now that you know the advantages, let’s implement it! -For a full comparison read the <<HashMap vs TreeMap>> section. Let’s get started with the essential functions. They have the same interface as the `HashMap` (but the implementation is different). @@ -45,7 +64,7 @@ class TreeMap { ==== Inserting values into a TreeMap -For inserting a value on a TreeMap, we first need to inialize the tree: +For inserting a value on a TreeMap, we first need to initialize the tree: .TreeMap constructor [source, javascript] @@ -53,7 +72,7 @@ For inserting a value on a TreeMap, we first need to inialize the tree: include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=constructor, indent=0] ---- -The tree can be an instance of any Binary Search Tree that we implemented so far. However, for better performance, it should be a self-balanced tree like a https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/trees/red-black-tree.js#L20[Red-Black Tree] or https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/trees/avl-tree.js#L64[AVL Tree]. +The tree can be an instance of any Binary Search Tree that we implemented so far. For better performance, it should be a self-balanced tree like a https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/trees/red-black-tree.js#L20[Red-Black Tree] or https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/trees/avl-tree.js#L64[AVL Tree]. Let's implement the method to add values to the tree. @@ -67,7 +86,7 @@ Adding values is very easy (once we have the underlying tree implementation). ==== Getting values out of a TreeMap -When We search by key in a tree map, it takes *O(log n)*. This is the implementation: +When we search by key in a treemap, it takes *O(log n)*. The following is a possible implementation: .TreeMap `get` and `has` method [source, javascript] @@ -86,7 +105,7 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=iterators, ind .JavaScript Iterators and Generators **** -Generators are useful for producing values that can you can iterate in a `for...of` loop. Generators use the `function*` syntax which expects to have a `yield` with a value. +Generators are useful for producing values that can you can iterate in a `for...of` loop. Generators use the `function*` syntax, which expects to have a `yield` with a value. **** ==== Deleting values from a TreeMap @@ -102,35 +121,3 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=delete, indent The BST implementation does all the heavy lifting. That’s it! To see the full file in context, click here: https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/maps/tree-maps/tree-map.js#L22[here] - - -==== HashMap vs TreeMap - -.A map can be implemented using hash functions or binary search tree: -- *HashMap*: it’s a map implementation using an *array* and *hash function*. The job of the hash function is to convert the key into an index that contains the matching data. Optimized HashMap can have an average runtime of *O(1)*. -- *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (red-black tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. - - -.When to use a TreeMap vs. HashMap? -* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. -* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. -* `HashMap`’s keys are in insertion order (or random depending in the implementation). `TreeMap`’s keys are always sorted. -* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. -* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. - -==== TreeMap Time complexity vs HashMap - -As we discussed so far, there is a trade-off between the implementations. -(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) (((Linear))) (((Runtime, Linear))) (((Logarithmic))) (((Runtime, Logarithmic))) - -// also on: book/content/part03/time-complexity-graph-data-structures.asc -// tag::table[] -.Time complexity for different Maps implementations -|=== -.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity -^|_Index/Key_ ^|_Value_ -| <<hashmap-chap, Hash Map>> ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) -| <<tree-map-chap, Tree Map (Red-Black Tree)>> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) -|=== -{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. -// end::table[] diff --git a/book/content/part03/tree-search-traversal.asc b/book/content/part03/tree-search-traversal.asc index 14179770..dbb9c797 100644 --- a/book/content/part03/tree-search-traversal.asc +++ b/book/content/part03/tree-search-traversal.asc @@ -5,7 +5,7 @@ endif::[] === Tree Search & Traversal -So far we covered, how to insert/delete/search values in a binary search tree (BST). +So far, we have covered how to insert/delete/search values in a binary search tree (BST). However, not all binary trees are BST, so there are other ways to look for values or visit all nodes in a particular order. If we have the following tree: @@ -19,7 +19,7 @@ If we have the following tree: 3 ---- -Depending on what traversal methods we used we will have a different visiting order. +Depending on what traversal methods we used, we will have a different visiting order. (((Tree Traversal))) (((Tree, Traversal))) @@ -30,9 +30,9 @@ Depending on what traversal methods we used we will have a different visiting or ** Pre-order (root-left-right): `10, 5, 4, 3, 30, 15, 40` ** Post-order (left-right-root): `3, 4, 5, 15, 40, 30, 10` -Why do we care? Well, there are specific problems that you can solve more optimally using one or another traversal method. For instance to get the size of a subtree, finding maximums/minimums, and so on. +Why do we care? Well, there are specific problems that you can solve more optimally using one or another traversal method. For instance, to get the size of a subtree, finding maximums/minimums, and so on. -Let's cover the Breadth-first search (BFS) and Depth-first search (DFS). +Let's cover the Breadth-first search (BFS) and the Depth-first search (DFS). [[bfs-tree]] ==== Breadth-First Search for Binary Tree @@ -93,7 +93,7 @@ console.log(Array.from(dummyIdMaker())); // [0, 1, 2] (((DFS))) (((Depth-First Search))) (((Tree, Depth-First Search))) -Depth-First search goes deep (depth) before going wide. It means that starting for the root it goes as deep as it can until it found a leaf node (node without children), then it visits all the remaining nodes that were in the path. +Depth-First search goes deep (depth) before going wide. It means that starting for the root, it goes as deep as it can until it found a leaf node (node without children), then it visits all the remaining nodes in the path. .Depth-First Search (DFS) Implementation with a Stack [source, javascript] @@ -103,7 +103,7 @@ include::{codedir}/data-structures/trees/binary-search-tree.js[tag=dfs,indent=0] This is an iterative implementation of a DFS using an <<part02-linear-data-structures#stack>>. It's almost identical to the BFS, but instead of using a <<part02-linear-data-structures#queue>> we use a Stack. -We can also implement it as recursive functions are we are going to see in the <<Binary Tree Traversal>> section. +We can also implement it as recursive functions we will see in the <<Binary Tree Traversal>> section. ==== Depth-First Search vs. Breadth-First Search @@ -112,7 +112,7 @@ We can see visually the difference between how the DFS and BFS search for nodes: .Depth-First Search vs. Breadth-First Search image::depth-first-search-dfs-breadth-first-search-bfs.jpg[] -As you can see the DFS in two iterations is already at one of the farthest nodes from the root while BFS search nearby nodes first. +As you can see, the DFS in two iterations is already at one of the farthest nodes from the root while BFS search nearby nodes first. .Use DFS when: - The node you are looking for is likely to be *far* from the root. diff --git a/book/content/part03/tree-set.asc b/book/content/part03/tree-set.asc index 507473b3..60fb0676 100644 --- a/book/content/part03/tree-set.asc +++ b/book/content/part03/tree-set.asc @@ -8,13 +8,13 @@ endif::[] [[tree-set-chap]] === Tree Set -A tree set is a data structure that stores unique values and keep them sorted. You can get check if a value exists in `O(log n)` time. +A tree set is a data structure that stores unique values and keeps them sorted. You can get check if a value exists in `O(log n)` time. -Another way to implement a Set is using a hash function, as we covered on <<hash-set-chap, Hash Set>>. There are some key differences between the two implementations. +Another way to implement a Set is by using a hash function, as we covered on <<hash-set-chap, Hash Set>>. There are some critical differences between the two implementations. ==== HashSet vs TreeSet -We can implement a `map` using a *<<b-self-balancing-binary-search-trees, balanced BST>>* or a *<<hashmap-chap,hash function>>*. If we use them to implement a `Set`, we would have a `HashSet` and `TreeSet`. As all data structures there are trade-offs. Here are some key differences: +We can implement a `map` using a *<<b-self-balancing-binary-search-trees, balanced binary search tree>>* or a *<<hashmap-chap,hash function>>*. If we use them to implement a `Set`, we would have a `HashSet` and `TreeSet`. As with all data structures, there are trade-offs. Here are some key differences: * `TreeSet`, would return the values sorted in ascending order. * `HashSet`, would return the values in insertion order. @@ -41,7 +41,7 @@ indexterm:[Runtime, Linear] // end::table[] -TIP: JavaScript only provides (Hash) `Set` that's enough for most needs. But we are going to implement a Tree Set so it's more clear how it works and when it should be used. +TIP: JavaScript only provides (Hash) `Set` that's enough for most needs. But we will implement a Tree Set so it's more clear how it works and when it should be used. ==== Implementing a Tree Set @@ -54,7 +54,7 @@ include::{codedir}/data-structures/sets/tree-set.js[tag=constructor] ---- <1> Converts an array or any iterable data structure to a set. -An everyday use case for Sets is to remove duplicated values from an array. We can do that bypassing them in the constructor as follows: +An everyday use case for Sets is to remove duplicated values from an array. We can do that by bypassing them in the constructor as follows: .Removing duplicates from an Array using a Set [source, javascript] @@ -118,7 +118,7 @@ ascending order. .JavaScript Built-in `Symbol` iterator **** The `Symbol.iterator` built-in symbol specifies the default iterator for -an object. Used by `for...of`, `Array.from` and others. +an object. Used by `for...of`, `Array.from`, and others. **** Now we can convert from set to array and vice versa easily. For diff --git a/book/content/part04/algorithmic-toolbox.asc b/book/content/part04/algorithmic-toolbox.asc index 9539407a..27992bed 100644 --- a/book/content/part04/algorithmic-toolbox.asc +++ b/book/content/part04/algorithmic-toolbox.asc @@ -7,33 +7,33 @@ endif::[] === Algorithmic Toolbox Have you ever given a programming problem and freeze without knowing where to start? -Well, in this section we are going to give some tips, so you don't get stuck while coding. +Well, in this section, we are going to give some tips so you don't get stuck while coding. -TIP: TL;DR: Don't start coding right away. First, solve the problem, then write the code. Make it work first, make it better later. +TIP: TL;DR: Don't start coding right away. First, solve the problem, then write the code. Make it work first; make it better later. .Steps to solve algorithmic problems . *Understand* the requirements. Reframe it in your own words. . Draw a *simple example* (no edge cases yet) . *Brainstorm* possible solutions .. How would you solve this problem *manually*? (without a computer) Is there any formula or theorem you can use? -.. Is there any heuristics (largest, smallest, best ratio) or can you spot a pattern to solve this problem using a <<Greedy Algorithms, greedy algorithm>>? -.. Can you address the simple base case and generalize for other cases using a *recursive solution*? Can you divide the problem in subproblems? Try <<Divide and Conquer>>. +.. Is there any heuristics (largest, smallest, best ratio), or can you spot a pattern to solve this problem using a <<Greedy Algorithms, greedy algorithm>>? +.. Can you address the simple base case and generalize for other cases using a *recursive solution*? Can you divide the problem into subproblems? Try <<Divide and Conquer>>. .. Do you have to generate multiple solutions or try different paths? Try <<Backtracking>>. .. List all the data structures that you know that might solve this problem. .. If anything else fails, how would you solve it the dumbest way possible (brute force). We can optimize it later. . *Test* your algorithm idea with multiple examples -. *Optimize* the solution –Only optimize when you have something working don't try to do both at the same time! +. *Optimize* the solution –Only optimize when you have something working. Don't try to do both at the same time! .. Can you trade-off space for speed? Use a <<hashmap-chap>> to speed up results! .. Do you have a bunch of recursive and overlapping problems? Try <<Dynamic Programming>>. .. Re-read requirements and see if you can take advantage of anything. E.g. is the array sorted? . *Write Code*, yes, now you can code. -.. Modularize your code with functions (don't do it all in one giant function please 🙏) +.. Modularize your code with functions (don't do it all in one giant function, please 🙏) .. Comment down edge cases but don't address until the basic cases are working. . *Test* your code. .. Choose a typical input and test against your code. .. Brainstorm about edge cases (empty, null values, overflows, largest supported inputs) -.. How would scale your code beyond the current boundaries? +.. How would your code scale beyond the current boundaries? -These steps should get you going even with the toughest algorithmic problems. +These steps should get you going even with the most challenging algorithmic problems. Stay effective! diff --git a/book/content/part04/backtracking.asc b/book/content/part04/backtracking.asc index aedc6a91..81c81445 100644 --- a/book/content/part04/backtracking.asc +++ b/book/content/part04/backtracking.asc @@ -8,36 +8,35 @@ endif::[] (((Algorithmic Techniques, Backtracking))) Backtracking algorithms are used to find *all (or some)* solutions that satisfy a constraint. -Backtracking builds a solution step by step using recursion. +Backtracking builds a solution step by step, using recursion. If during the process it realizes a given path is not going to lead to a solution, it stops and steps back (backtracks) to try another alternative. -Some examples that use backtracking is a solving Sudoku/crosswords puzzle, and graph operations. +Some examples that use backtracking is solving Sudoku/crosswords puzzle and graph operations. ifndef::backend-pdf[] image::Sudoku_solved_by_bactracking.gif[] endif::backend-pdf[] -Listing all possible solutions might sound like a brute force. +Listing all possible solutions might sound like brute force. However, it is not the same. -Backtracking algorithms are faster because it test if a path will lead to a solution or not. +Backtracking algorithms are faster because it tests if a path will lead to a solution or not. .Brute Force vs. Backtracking Algorithms **** *Brute force* evaluates every possibility. *Backtracking* is an optimized brute force. -It stops evaluating a path as soon as some of the conditions are broken and move on to the next. -However, it can only be applied if a quick test can be run to tell if a candidate will contribute to a valid solution. +It stops evaluating a path as soon as some of the conditions are broken. However, it can only be applied if a quick test can be run to tell if a candidate will contribute to a correct solution. **** ==== How to develop backtracking algorithms? -Backtracking algorithms can be tricky to get right or reason about, but we are going to follow this recipe to make it easier. +Backtracking algorithms can be tricky to get right or reason about, but we will follow this recipe to make it easier. .Steps to create backtracking algorithms . Iterate through the given input . Make a change -. Recursively move to the next element +. Recursively move to the next element. . Test if the current change is a possible solution . Revert the change (backtracking) and try with the next item @@ -74,11 +73,11 @@ include::{codedir}/algorithms/permutations-backtracking.js[tag=snippet,indent=0] <2> Make a change: swap letters <3> Recursive function moving to the next element <4> Test if the current change is a solution: reached the end of the string. -<5> Revert back the change (backtracking): Undo swap from step 2 +<5> Revert the change (backtracking): Undo swap from step 2 As you can see, we iterate through each element and swap with the following letters until we reach the end of the string. Then, we roll back the change and try another path. -In the following tree, you can visualize how the backtracking algorithm is swapping the letters. We are taking the `art` as an example. +In the following tree, you can visualize how the backtracking algorithm is swapping the letters. We are taking `art` as an example. [graphviz, Words-Permutations, png] .... diff --git a/book/content/part04/bubble-sort.asc b/book/content/part04/bubble-sort.asc index 583d8415..d9494cd1 100644 --- a/book/content/part04/bubble-sort.asc +++ b/book/content/part04/bubble-sort.asc @@ -9,8 +9,8 @@ endif::[] (((Sorting, Bubble Sort))) (((Sinking Sort))) (((Sorting, Sinking Sort))) -Bubble sort is a simple sorting algorithm that "bubbles up" the biggest values to the right side of the array. -It's also called _sinking sort_ because the most significant values "sink" to the right side of the array. +Bubble sort is a simple sorting algorithm that "bubbles up" the biggest values to the array's right side. +It's also called _sinking sort_ because of the most significant values "sink" to the array's right side. This algorithm is adaptive, which means that if the array is already sorted, it will take only _O(n)_ to "sort". However, if the array is entirely out of order, it will require _O(n^2^)_ to sort. (((Quadratic))) @@ -23,12 +23,12 @@ However, if the array is entirely out of order, it will require _O(n^2^)_ to sor ---- include::{codedir}/algorithms/sorting/bubble-sort.js[tag=sort, indent=0] ---- -<1> Convert any iterable (array, sets, etc.) into an array or if it's already an array it clones it, so the input is not modified. +<1> Convert any iterable (array, sets, etc.) into an array or if it's already an array, it clones it, so the input is not modified. <2> Starting from index 0 compare current and next element <3> If they are out of order, swap the pair <4> Repeat pair comparison until the last element that has been bubbled up to the right side `array.length - i`. -<5> (optimization) If there were no swaps, this means that the array is sorted. This single pass makes this sorting _adaptive_, and it will only require _O(n)_ operations. -<6> Each step moves the largest element from where it was to the right side. So, we need to do this `n - 1` times to sort the array in case most elements need to be swapped. +<5> (optimization) If there were no swaps, this means that the array is sorted. This single-pass makes this sorting _adaptive_, and it will only require _O(n)_ operations. +<6> Each step moves the largest element from where it was to the right side. We need to do this `n - 1` times to cover all items. .The `swap` function is implemented as follows: [source, javascript] diff --git a/book/content/part04/divide-and-conquer.asc b/book/content/part04/divide-and-conquer.asc index 76bb376d..6ed6f47e 100644 --- a/book/content/part04/divide-and-conquer.asc +++ b/book/content/part04/divide-and-conquer.asc @@ -14,7 +14,7 @@ We have already implemented some algorithms using the divide and conquer techniq .Examples of divide and conquer algorithms: - <<part04-algorithmic-toolbox#merge-sort>>: *divides* the input into pairs, sort them, and them *join* all the pieces in ascending order. -- <<part04-algorithmic-toolbox#quicksort>>: *splits* the data by a random number called "pivot", then move everything smaller than the pivot to the left and anything more significant to the right. Repeat the process on the left and right side. Note: since this works in place doesn't need a "join" part. +- <<part04-algorithmic-toolbox#quicksort>>: *splits* the data by a random number called "pivot," then move everything smaller than the pivot to the left and anything more significant to the right. Repeat the process on the left and right sides. Note: since this works in place doesn't need a "join" part. - <<part01-algorithms-analysis#logarithmic-example, Binary Search>>: find a value in a sorted collection by *splitting* the data in half until it sees the value. - <<part01-algorithms-analysis#factorial-example, Permutations>>: *Take out* the first element from the input and solve permutation for the remainder of the data recursively, then *join* results and append the items that were taken out. @@ -31,12 +31,12 @@ To illustrate how we can solve a problem using divide and conquer, let's write a .Fibonacci Numbers **** -Fibonacci sequence is a series of numbers that starts with `0, 1`; the next values are calculated as the sum of the previous two. So, we have: +Fibonacci sequence is a series of numbers that starts with `0, 1`; the following values are calculated as the sum of the previous two. So, we have: `0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...` **** -We can get the n-th fibonacci number with the following recursive program: +We can get the n-th Fibonacci number with the following recursive program: .Recursive Fibonacci implemenation [source, javascript] @@ -51,7 +51,7 @@ include::{codedir}/algorithms/fibonacci-recursive.js[tag=snippet,indent=0] The implementation above does the job, but what's the runtime? -For that, let's take a look at the job performed calculating the `fib(5)` number. Since `fib(5) = fib(4) + fib(3)`, we need to find the answer for `fib(4)` and `fib(3)`. We do that recursively until we reach the base cases of `fib(1)` and `fib(0)`. If we represent the calls in a tree, we would have the following: +For that, let's take a look at the job performed by calculating the `fib(5)` number. Since `fib(5) = fib(4) + fib(3)`, we need to find the answer for `fib(4)` and `fib(3)`. We do that recursively until we reach the base cases of `fib(1)` and `fib(0)`. If we represent the calls in a tree, we would have the following: // http://bit.ly/2UmwzZV [graphviz, recursive-fibonacci-call-tree, png] @@ -78,20 +78,20 @@ graph G { } .... -In the diagram, we see the two recursive calls needed to compute each number. So if we follow the _O(branches^depth^)_ we get O(2^n^). [big]#🐢# +In the diagram, we see the two recursive calls needed to compute each number. So if we follow the _O(branches^depth^)_, we get O(2^n^). [big]#🐢# (((Exponential))) (((Runtime, Exponential))) NOTE: Fibonacci is not a perfect binary tree since some nodes only have one child instead of two. The exact runtime for recursive Fibonacci is _O(1.6^n^)_ (still exponential time complexity). Exponential time complexity is pretty bad. Can we do better? -In the call tree, you can notice that every element in red and with asterisks `*` it's called more than once. We are repeating calculations too many times! +You can notice every element in red, and with asterisks `*`, it's called more than once in the call tree. We are repeating calculations too many times! (((quotes))) [quote, Dynamic Programming] Those who cannot remember the past are condemned to repeat it. -For these cases when subproblems repeat themselves, we can optimize them using <<Dynamic Programming, dynamic programming>>. Let's do that in the next section. +For these cases, when subproblems repeat themselves, we can optimize them using <<Dynamic Programming, dynamic programming>>. Let's do that in the next section. diff --git a/book/content/part04/dynamic-programming.asc b/book/content/part04/dynamic-programming.asc index 7773f000..dfda9510 100644 --- a/book/content/part04/dynamic-programming.asc +++ b/book/content/part04/dynamic-programming.asc @@ -3,11 +3,11 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -=== Dynamic Programming - (((Dynamic Programming))) (((Algorithmic Techniques, Dynamic Programming))) -Dynamic programming (dp) is a way to solve algorithmic problems with *overlapping subproblems*. Algorithms using dp find the base case and building a solution from the ground-up. Dp _keep track_ of previous results to avoid re-computing the same operations. +=== Dynamic Programming + +Dynamic programming (DP) is a way to solve algorithmic problems with *overlapping subproblems*. Algorithms using DP find the base case and building a solution from the ground-up. Dp _keep track_ of previous results to avoid re-computing the same operations. // https://twitter.com/iAmAdrianMejia/status/1103050924933726208 // https://www.quora.com/How-should-I-explain-dynamic-programming-to-a-4-year-old/answer/Jonathan-Paulson @@ -34,7 +34,7 @@ $$*$$*_Write down 1+1+1+1+1+1+1+1+1+1_*$$*$$ (((Fibonacci))) Let's solve the same Fibonacci problem but this time with dynamic programming. -When we have recursive functions doing duplicated work is the perfect place for a dynamic programming optimization. We can save (or cache) the results of previous operations and speed up future computations. +When we have recursive functions, doing duplicated work is the perfect place for dynamic programming optimization. We can save (or cache) the results of previous operations and speed up future computations. .Recursive Fibonacci Implemenation using Dynamic Programming [source, javascript] diff --git a/book/content/part04/greedy-algorithms.asc b/book/content/part04/greedy-algorithms.asc index 5c35e3ad..7063348f 100644 --- a/book/content/part04/greedy-algorithms.asc +++ b/book/content/part04/greedy-algorithms.asc @@ -8,7 +8,7 @@ endif::[] (((Greedy Algorithms))) (((Algorithmic Techniques, Greedy Algorithms))) Greedy algorithms are designed to find a solution by going one step at a time and using heuristics to determine the best choice. -They are quick but not always lead to most optimum results since it might not take into consideration all the options to give a solution. +They are quick but not always lead to the most optimum results since it might not take into consideration all the options to give a solution. An excellent example of a greedy algorithm that doesn't work well is finding the largest sum on a tree. @@ -26,13 +26,13 @@ graph G { } .... -Let's say the greedy heuristics are set to take the more significant value. The greedy algorithm will start at the root and say, "Which number is bigger 3 or 7?" Then go with 7 and later 4. As you can see in the diagram, the most significant sum would be the path `7 - 3 - 87`. A greedy algorithm never goes back on its options. This greedy choice makes it different from dynamic programming which exhaustive and it's guaranteed to find the best option. However, when they work well, they are usually faster than other options. +Let's say the greedy heuristics are set to take the more significant value. The greedy algorithm will start at the root and say, "Which number is bigger 3 or 7?" Then go with 7 and later 4. As you can see in the diagram, the most significant sum would be the path `7 - 3 - 87`. A greedy algorithm never goes back on its options. This greedy choice makes it different from dynamic programming, which is exhaustive and guaranteed to find the best option. However, when they work well, they are usually faster than other options. Greedy algorithms are well suited when an optimal local solution is also a globally optimal solution. [TIP] ======= -Greedy algorithms make the choice that looks best at the moment based on a heuristic such as smallest, largest, best ratio, and so on. +Greedy algorithms make the choice that looks best at the moment based on a heuristic, such as the smallest, largest, best ratio, and so on. This algorithm only gives one shot at finding the solution and never goes back to consider other options. ======= @@ -55,7 +55,7 @@ indexterm:[Merge Sort] We are going to use the "Fractional Knapsack Problem" to learn how to design greedy algorithms. The problem is the following: -> You are going to resell legumes (rice, beans, chickpeas, lentils) and you only brought a knapsack. What proportion of items can you choose to get the highest loot without exceeding the maximum weight of the bag? +> You are going to resell legumes (rice, beans, chickpeas, lentils), and you only brought a knapsack. What proportion of items can you choose to get the highest loot without exceeding the bag's maximum weight? Let's say we have the following items available. @@ -76,11 +76,11 @@ So, we have four items that we can choose from. We can't take them all because t How would you solve this problem? -First, we have to define what parameters are we going to use to make our *greedy choice*. This some ideas: +First, we have to define what parameters we will use to make our *greedy choice*. This some ideas: -- We can take items with the *largest* value in hopes to maximize profit. Based on that we can take the last and the first one to have a total weight of 7 and a total cost of 8. +- We can take items with the *largest* value in hopes to maximize profit. Based on that, we can take the last and the first to have a total weight of 7 and a total cost of 8. -- Also, we could take items with the *smallest* weight so we can fit as much as possible in the knapsack. Let's analyze both options. So we can choose the first two items for a total value of 5 and a total weight of 4. This option is worse than picking the most significant value! [big]#👎# +We could also take items with the *smallest* weight so we can fit as much as possible in the knapsack. Let's analyze both options. So we can choose the first two items for a total value of 5 and a total weight of 4. This option is worse than picking the most significant amount! [big]#👎# - One last idea, we can take items based on the *best* value/weight ratio and take fractions of an article to fill up the knapsack to maximum weight. In that case, we can buy the last item in full and 2/3 of the 2nd item. We get a total value of `9.67` and a total weight of `7`. These heuristics seem to be the most profitable. [big]#👍# @@ -102,4 +102,4 @@ include::{codedir}/algorithms/knapsack-fractional.js[tag=snippet,indent=0] What's the runtime of this algorithm? -We have to sort the array based on value/weight ratio. Sorting runtime is O(n log n). The rest is linear operations, so we the answer is _O(n log n)_ for our greedy algorithm. +We have to sort the array based on the value/weight ratio. Sorting runtime is O(n log n). The rest is linear operations, so the answer is _O(n log n)_ for our greedy algorithm. diff --git a/book/content/part04/insertion-sort.asc b/book/content/part04/insertion-sort.asc index 02147c51..0c02cfc6 100644 --- a/book/content/part04/insertion-sort.asc +++ b/book/content/part04/insertion-sort.asc @@ -8,7 +8,7 @@ endif::[] (((Sorting, Insertion Sort))) (((Insertion Sort))) -Insertion sort is a simple sorting algorithm. It is one of the most natural ways of sorting. If I give you some cards to sort you will probably use this algorithm without knowing. +Insertion sort is a simple sorting algorithm. It is one of the most natural ways of sorting. If I give you some cards to sort, you will probably use this algorithm without knowing. // Good illustration on of sorting a deck of cards: https://www.khanacademy.org/computing/computer-science/algorithms/insertion-sort/a/insertion-sort @@ -25,7 +25,7 @@ include::{codedir}/algorithms/sorting/insertion-sort.js[tag=sort, indent=0] ---- <1> Convert to an array or clone the array. <2> Start with the 2nd element. Everything on the left is considered sorted. -<3> Compare current element (2nd) to the previous one. If `left - 1` is bigger, it will swap places. If not, it will continue checking the next one to the left. +<3> Compare the current element (2nd) to the previous one. If `left - 1` is bigger, it will swap places. If not, it will continue checking the next one to the left. <4> We check every element on the left side and swap any of them that are out of order diff --git a/book/content/part04/merge-sort.asc b/book/content/part04/merge-sort.asc index b4ee8fe9..3edf462b 100644 --- a/book/content/part04/merge-sort.asc +++ b/book/content/part04/merge-sort.asc @@ -12,7 +12,7 @@ endif::[] Merge Sort is an efficient sorting algorithm that uses <<Divide and Conquer, divide and conquer>> paradigm to accomplish its task faster. However, It uses auxiliary memory in the process of sorting. indexterm:[Divide and Conquer] -Merge sort algorithm splits the array into halves until 2 or fewer elements are left. It sorts these two elements and then merges back all halves until the whole collection is sorted. +Merge sort algorithm splits the array into halves until two or fewer elements are left. It sorts these two elements and then merges back all halves until the whole collection is sorted. image::image11.png[Mergesort visualization,width=500,height=600] @@ -25,7 +25,7 @@ include::{codedir}/algorithms/sorting/merge-sort.js[tag=sort, indent=0] ---- <1> Convert any kind of iterable (array, sets, etc.) into an array -As you can see, this function is just a wrapper to transform things into an array. The heavy lifting is done in `splitSort` as you can see below. +As you can see, this function is just a wrapper to transform things into an array. The heavy lifting is done in `splitSort`, as you can see below. .Merge Sort implementation in JavaScript (splitSort) [source, javascript] @@ -33,7 +33,7 @@ As you can see, this function is just a wrapper to transform things into an arra include::{codedir}/algorithms/sorting/merge-sort.js[tag=splitSort, indent=0] ---- <1> Base case: Sort two or less items manually. -<2> Recursively divide the array in half until two or less elements are left. +<2> Recursively divide the array in half until two or fewer elements are left. <3> Merge back the sorted halves in ascending order. Let's take a look at the merge function: @@ -44,10 +44,10 @@ Let's take a look at the merge function: include::{codedir}/algorithms/sorting/merge-sort.js[tag=merge, indent=0] ---- <1> We need to keep track of 3 arrays indices: `index` which keeps track of the combined array position, `i1` which is the `array1` index and `i2` for `array2`. -<2> If `array1` current element (`i1`) has the lowest value, we insert it into the `mergedArray` if not we then insert `array2` element. +<2> If `array1` current element (`i1`) has the lowest value, we insert it into the `mergedArray`. If not we then insert the `array2` element. <3> `mergedArray` is `array1` and `array2` combined in ascending order (sorted). -Merge sort has an _O(n log n)_ running time. For more details about how to extract the runtime go to <<part01-algorithms-analysis#linearithmic>> section. +Merge sort has an _O(n log n)_ running time. For more details about how to extract the runtime, go to <<part01-algorithms-analysis#linearithmic>> section. ===== Merge Sort Properties diff --git a/book/content/part04/quick-sort.asc b/book/content/part04/quick-sort.asc index 314caad8..7ac50b27 100644 --- a/book/content/part04/quick-sort.asc +++ b/book/content/part04/quick-sort.asc @@ -3,7 +3,7 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[quicksort]] +[[Quicksort]] ==== Quicksort (((Sorting, QuickSort))) (((QuickSort))) @@ -12,7 +12,7 @@ Quicksort is an efficient recursive sorting algorithm that uses <<Divide and Con indexterm:[Divide and Conquer] In practice, quicksort outperforms other sorting algorithms like <<part04-algorithmic-toolbox#merge-sort>>. And, of course, It also outperforms simple sorting algorithms like <<part04-algorithmic-toolbox#selection-sort>>, <<part04-algorithmic-toolbox#insertion-sort>> and <<part04-algorithmic-toolbox#insertion-sort>>. -Quicksort picks a "pivot" element (preferably random) and move all the parts that are smaller than the pivot to the right and the ones that are bigger to the left. It does this recursively until all the array is sorted. +Quicksort picks a "pivot" element randomly and moves all the smaller parts than the pivot to the right and the ones that are bigger to the left. It does this recursively until all the array is sorted. ===== Quicksort Implementation @@ -20,7 +20,7 @@ Quicksort implementation uses the divide-and-conquer in the following way: .Quicksort Algorithm . Pick a "pivot" element (at random). -. Move everything lower than the pivot to the left and everything more significant than the pivot to the right. +. Move everything lower than the pivot to the left, and everything more significant than the pivot to the right. . Recursively repeat step #1 and #2 in the sub-arrays on the left and on the right WITHOUT including the pivot. Let's convert these words into code! @@ -35,7 +35,7 @@ include::{codedir}/algorithms/sorting/quick-sort.js[tag=quickSort, indent=0] <3> Do the partition of the sub-array at the right of the pivot. <4> Only do the partition when there's something to divide. -The `partition` function does the real heavy-lifting. 🏋️♀️ +The `partition` function does the real heavy lifting. 🏋️♀️ .Quicksort implementation in JavaScript (partition) [source, javascript] @@ -53,16 +53,16 @@ include::{codedir}/algorithms/sorting/quick-sort.js[tag=partition, indent=0] E.g. `[10, 7, 5, 4, 2, 1]`, if we always choose the first element as the pivot, we would have to swap everything to the left of `10`. -So in the first partition we would have `[7, 5, 4, 2, 1, 10]`. -Then, we take `7` would be the next pivot and we have to swap everything to the left. -Descending arrays are the worst-case for this quicksort since it will perform O(n^2^) work. -If instead of partitioning by the first element we do it by the middle (or even better at random) we would have better performance. That's why we usually shuffle the array before doing quicksort to avoid edge cases. +So in the first partition, we would have `[7, 5, 4, 2, 1, 10]`. +Then, we take `7` would be the next pivot, and we have to swap everything to the left. +Descending arrays are the worst-case for this Quicksort since it will perform O(n^2^) work. +If we do it by the middle (or even better at random) instead of partitioning by the first element, we would have better performance. That's why we usually shuffle the array before doing Quicksort to avoid edge cases. [source, javascript] ---- include::{codedir}/algorithms/sorting/quick-sort.js[tag=sort, indent=0] ---- -<1> Convert to array (or clone array). If you want to modify the input directly remove this line. +<1> Convert to array (or clone array). If you want to modify the input, directly remove this line. <2> Shuffle array to avoid edge cases (desc order arrays) And you can see the implementation of `shuffle` below: @@ -73,7 +73,7 @@ And you can see the implementation of `shuffle` below: include::{codedir}/algorithms/sorting/sorting-common.js[tag=shuffle, indent=0] ---- -With the optimization, Quicksort has an _O(n log n)_ running time. Similar to the merge sort we divide the array into halves each time. For more details about how to extract the runtime go to <<part01-algorithms-analysis#linearithmic>>. +With the optimization, Quicksort has an _O(n log n)_ running time. Similar to the merge sort, we divide the array into halves each time. For more details about how to extract the runtime, go to <<part01-algorithms-analysis#linearithmic>>. ===== Quicksort Properties diff --git a/book/content/part04/selection-sort.asc b/book/content/part04/selection-sort.asc index 4d1daf63..6f9f1a12 100644 --- a/book/content/part04/selection-sort.asc +++ b/book/content/part04/selection-sort.asc @@ -3,16 +3,16 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] +(((Sorting, Selection Sort))) +(((Selection Sort))) [[selection-sort]] ==== Selection Sort -(((Sorting, Selection Sort))) -(((Selection Sort))) The selection sort is a simple sorting algorithm. As its name indicates, it _selects_ the lowest element from the list and moves it where it should be. .Selection sort algorithm . Start with the element in position 0. -. Find the minimum item in the rest of the array. If a new minimum is found swap them. +. Find the minimum item in the rest of the array. If a new minimum is found, swap them. . Repeat step #1 and #2 with the next element until the last one. image::selection-sort.gif[] @@ -34,7 +34,7 @@ include::{codedir}/algorithms/sorting/selection-sort.js[tag=sort, indent=0] TIP: Selection sort minimizes the number of swaps. It does one swap per iteration while insertion sort and bubble sort could swap many times with the same array. -One index is for the position in question (selection/left) and another one for finding the minimum in the rest of the array (right). +One index is for the position in question (selection/left) and another for finding the minimum in the rest of the array (right). ===== Selection Sort Properties @@ -48,14 +48,14 @@ One index is for the position in question (selection/left) and another one for f *Why selection sort is not stable?* To recap, _stable_ means that items with the same value keep their initial position. -Let's see what would happen with the selection sort if we (select) sort the following array `2, 5, 2, 1`. To distinguish them let's say `2a` and `2b`, so `2a, 5, 2b, 1`. +Let's see what would happen with the selection sort if we (select) sort the following array `2, 5, 2, 1`. To distinguish them, let's say `2a` and `2b`, so `2a, 5, 2b, 1`. -Initially, we select the first element `2a` and check if there's anything less than 2 in the array. We find out that position 3 has an item with a smaller value (`1`) so we swap them. +Initially, we select the first element, `2a` and check if there's anything less than 2 in the array. We find out that position 3 has an item with a smaller value (`1`), so we swap them. Now, we have: `1, 5, 2b, 2a`. There you have it, `2b` now comes before `2a`. -// CAUTION: In practice, selection sort performance is the worst compared <<part04-algorithmic-toolbox#insertion-sort>> and <<part04-algorithmic-toolbox#insertion-sort>>. The only advantage of selection sort is that it minimizes the number of swaps. In case, that swapping is expensive, then it could make sense to use this one over the others. +// CAUTION: In practice, selection sort performance is the worst compared <<part04-algorithmic-toolbox#insertion-sort>> and <<part04-algorithmic-toolbox#insertion-sort>>. The only advantage of selection sort is that it minimizes the number of swaps. If swapping is expensive, it could make sense to use this one over the others. (((Quadratic))) (((Runtime, Quadratic))) diff --git a/book/content/part04/sorting-algorithms.asc b/book/content/part04/sorting-algorithms.asc index 4f2b8c0c..c9206540 100644 --- a/book/content/part04/sorting-algorithms.asc +++ b/book/content/part04/sorting-algorithms.asc @@ -21,7 +21,7 @@ Before we dive into the most well-known sorting algorithms, let's discuss the so ==== Sorting Properties -Sorting implementations with the same time complexity might manipulate the data differently. We want to understand these differences to be aware of the side effects it will have on data or extra resources they will require. For instance, some solutions will need auxiliary memory to store temporary data while sorting, while others can do it in place. +Sorting implementations with the same time complexity might manipulate the data differently. We want to understand these differences to be aware of the side effects on data or extra resources they will require. For instance, some solutions will need auxiliary memory to store temporary data while sorting, while others can do it in place. Sorting properties are stable, adaptive, online, and in-place. Let's go one by one. @@ -42,7 +42,7 @@ const users = [ ]; ---- -.If you sort by `name` you would have: +.If you sort by `name`, you would have: [source, javascript] ---- [ @@ -53,7 +53,7 @@ const users = [ ]; ---- -Then, here comes the _critical_ part, if you sort by `age` you might get (at least two) different results. +Then, here comes the _critical_ part; if you sort by `age`, you might get (at least two) different results. .If the sorting algorithm is *stable*; it should keep the items with the same age ordered by `name`: [source, javascript] @@ -81,7 +81,7 @@ Both results are sorted by `age`; however, having a stable sorting is better if ===== In-place (((Sorting, in-place))) -An ((in-place sorting)) algorithm would have a _space complexity_ of O(1). In other words, it does not use any other auxiliary memory because it moves the items in the collection itself. +An ((in-place sorting)) algorithm would have a _space complexity_ of O(1). In other words, it does not use any additional memory because it moves the items in-place. No extra memory for sorting is especially useful for large amounts of data or in memory constraint environments like robotics, smart devices, or embedded systems in appliances. ===== Online @@ -191,7 +191,7 @@ _Solution: <<sorting-q-merge-intervals>>_ // tag::sorting-q-sort-colors[] ===== Sort Colors (The Dutch flag problem) -*so-2*) _Given an array with 3 possible values (0, 1, 2), sort them in linear time and in-place. Hint: similar to quicksort, where the pivot is 1._ +*so-2*) _Given an array with three possible values (0, 1, 2), sort them in linear time, and in-place. Hint: similar to quicksort, where the pivot is 1._ // end::sorting-q-sort-colors[] diff --git a/book/content/preface.asc b/book/content/preface.asc index afcc20c6..82f78390 100644 --- a/book/content/preface.asc +++ b/book/content/preface.asc @@ -3,7 +3,7 @@ === What is in this book? -_{doctitle}_ is a book that can be read from cover to cover, where each section builds on top of the previous one. Also, it can be used as a reference manual where developers can refresh specific topics before an interview or look for ideas to solve a problem optimally. (Check out the <<a-time-complexity-cheatsheet,Time Complexity Cheatsheet>> and <<index, topical index>>) +_{doctitle}_ is a book that can be read from cover to cover. Each section builds on top of the previous one. Also, you can use it as a reference manual. Developers can refresh specific topics before an interview or look for ideas to solve a problem optimally. (Check out the <<a-time-complexity-cheatsheet,Time Complexity Cheatsheet>> and <<index, topical index>>) This publication is designed to be concise, intending to serve software developers looking to get a firm conceptual understanding of data structures in a quick yet in-depth fashion. After reading this book, the reader should have a fundamental knowledge of algorithms, including when and where to apply it, what are the trade-offs of using one data structure over the other. The reader will then be able to make intelligent decisions about algorithms and data structures in their projects. @@ -15,7 +15,7 @@ NOTE: You can apply the concepts in this book to any programming language. Howev === What you need for this book -You will need Node.js. The book code was tested against Node.js v10.15, but newer versions should also work. +You will need Node.js. The book code was tested against Node.js v14.8, but newer versions should also work. All the code examples used in this book can be found on: https://github.com/amejiarosario/dsa.js @@ -24,7 +24,7 @@ https://github.com/amejiarosario/dsa.js We use some typographical conventions within this book that distinguish between different kinds of information. -The code in the text, including commands, variables, file names, CSS class names, and property names are shown as follows: +The code in the text, including commands, variables, file names, and property names are shown as follows: [example] Repeat pair comparison until the last element that has been bubbled up to the right side `array.length - i`. @@ -45,7 +45,7 @@ const generator = dummyIdMaker() console.log(generator.next()); // ↪️ {value: 0, done: false} ---- -When we want to draw your attention to specific lines of code, those lines are annotated using numbers accompanied by brief descriptions. +When we want to draw your attention to specific code lines, those lines are annotated using numbers accompanied by brief descriptions. .Quicksort implementation in JavaScript (QuickSort) [source, javascript] @@ -60,7 +60,7 @@ include::../../src/algorithms/sorting/quick-sort.js[tag=quickSort, indent=0] The following admonitions are used to highlight content. -IMPORTANT: Reword essential concepts. Useful for memorizing, tweeting and sharing. +IMPORTANT: Reword essential concepts. Useful for memorizing, tweeting, and sharing. TIP: Tips are shown using callouts like this. @@ -80,6 +80,6 @@ Measurement is the first step that leads to control and eventually to improvemen === Reader feedback -Your feedback is very welcome and valuable. Let us know what your thoughts about this book — what you like or ideas to make it better. +Your feedback is very welcome and valuable. Let us know your thoughts about this book — what you like or ideas to make it better. To send us feedback, e-mail us at hello+dsajs@adrianmejia.com, send a tweet to https://twitter.com/iAmAdrianMejia[@iAmAdrianMejia], or using the hash tag `#dsaJS`. diff --git a/book/part03-graph-data-structures.asc b/book/part03-graph-data-structures.asc index 25ba9339..c9b7e820 100644 --- a/book/part03-graph-data-structures.asc +++ b/book/part03-graph-data-structures.asc @@ -1,7 +1,7 @@ [[part03-graph-data-structures]] == Graph & Tree Data Structures -Graph-based data structures are everywhere whether you realize it or not. You can find them in databases, Web (HTML DOM tree), search algorithms, finding the best route to get home and many more uses. We are going to learn the basic concepts and when to choose one over the other. +Graph-based data structures are everywhere, whether you realize it or not. You can find them in databases, Web (HTML DOM tree), search algorithms, finding the best route to get home, and many more uses. We are going to learn the basic concepts and when to choose one over the other. .In this chapter we are going to learn: - Exciting <<part03-graph-data-structures#graph>> data structure applications @@ -21,15 +21,6 @@ include::content/part03/tree-search-traversal.asc[] <<< include::content/part03/binary-search-tree-traversal.asc[] -// <<< -// include::content/part03/map.asc[] - -// <<< -// include::content/part03/tree-map.asc[] - -// <<< -// include::content/part02/hash-set.asc[] - <<< include::content/part03/tree-map.asc[] diff --git a/book/part04-algorithmic-toolbox.asc b/book/part04-algorithmic-toolbox.asc index f1dc3efa..6b60c1bf 100644 --- a/book/part04-algorithmic-toolbox.asc +++ b/book/part04-algorithmic-toolbox.asc @@ -1,23 +1,23 @@ [[part04-algorithmic-toolbox]] == Algorithmic Toolbox -In this part of the book, we are going to cover examples of classical algorithms in more details. Also, we will provide algorithmic tools for improving your problem-solving skills. +In this part of the book, we will cover examples of classical algorithms in more detail. Also, we will provide algorithmic tools for improving your problem-solving skills. -IMPORTANT: There's not a single approach to solve all problems but knowing well-known techniques can help you build your own faster. +IMPORTANT: There's no single approach to solve all problems, but knowing well-known techniques can help you build your own faster. We are going to start with <<Sorting Algorithms>> // and searching algorithms, such as <<part04-algorithmic-toolbox#insertion-sort>>, <<part04-algorithmic-toolbox#merge-sort>> and some others. -Later, you are going to learn some algorithmic paradigms that will help you to identify common patterns and solve problems from different angles. +Later, you will learn some algorithmic paradigms that will help you identify common patterns and solve problems from different angles. .We are going to discuss the following techniques for solving algorithms problems: - <<Greedy Algorithms>>: makes greedy choices using heuristics to find the best solution without looking back. - <<Dynamic Programming>>: a technique for speeding up recursive algorithms when there are many _overlapping subproblems_. It uses _memoization_ to avoid duplicating work. -- <<Divide and Conquer>>: _divide_ problems into smaller pieces, _conquer_ each subproblem and then _join_ the results. +- <<Divide and Conquer>>: _divide_ problems into smaller pieces, _conquer_ each subproblem, and then _join_ the results. - <<Backtracking>>: search _all (or some)_ possible paths. However, it stops and _go back_ as soon as notice the current solution is not working. -- _Brute Force_: generate all possible solutions and tries all of them. (Use it as a last resort or as the starting point to optimize it with other techniques). +- _Brute Force_: generate all possible solutions and tries all of them. (Use it as a last resort or as the starting point and to later optimize it). include::content/part04/sorting-algorithms.asc[] From b3167f9c694c5e6719bf1d01804aeec60b41e57f Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Fri, 30 Oct 2020 11:37:45 -0400 Subject: [PATCH 083/108] feat(book): show companies asked questions --- book/content/part01/big-o-examples.asc | 2 +- book/content/part02/array.asc | 4 ++-- book/content/part02/hash-map.asc | 4 ++-- book/content/part02/hash-set.asc | 4 ++-- book/content/part02/linked-list.asc | 4 ++-- book/content/part02/queue.asc | 4 ++-- book/content/part02/stack.asc | 4 ++-- .../part03/binary-search-tree-traversal.asc | 4 ++-- book/content/part03/graph-search.asc | 4 ++-- book/content/part04/algorithmic-toolbox.asc | 2 +- book/content/part04/divide-and-conquer.asc | 6 +++--- book/content/part04/dynamic-programming.asc | 1 + book/content/part04/quick-sort.asc | 5 +++-- book/content/part04/sorting-algorithms.asc | 10 +++++----- book/images/time-complexity-manual.png | Bin 0 -> 119814 bytes book/part04-algorithmic-toolbox.asc | 2 +- 16 files changed, 31 insertions(+), 29 deletions(-) create mode 100644 book/images/time-complexity-manual.png diff --git a/book/content/part01/big-o-examples.asc b/book/content/part01/big-o-examples.asc index 5526af8f..c7755736 100644 --- a/book/content/part01/big-o-examples.asc +++ b/book/content/part01/big-o-examples.asc @@ -23,7 +23,7 @@ Before we dive in, here’s a plot with all of them. .CPU operations vs. Algorithm runtime as the input size grows // image::image5.png[CPU time needed vs. Algorithm runtime as the input size increases] -image::big-o-running-time-complexity.png[CPU time needed vs. Algorithm runtime as the input size increases] +image::time-complexity-manual.png[{half-size}] The above chart shows how the algorithm's running time is related to the CPU's work. As you can see, O(1) and O(log n) is very scalable. However, O(n^2^) and worst can convert your CPU into a furnace 🔥 for massive inputs. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 452f73df..066cbb58 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -522,7 +522,7 @@ maxSubArray([-3, 4,-1, 2, 1, -5]); // 6 (sum [4,-1, 2, 1]) maxSubArray([-2, 1, -3, 4, -1, 3, 1]); // 7 (sum [4,-1, 3, 1]) ---- -// _Seen in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ +_Common in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ // end::array-q-max-subarray[] [source, javascript] @@ -548,7 +548,7 @@ maxProfit([3, 2, 1]) // 2 (no buys) maxProfit([5, 10, 5, 10]) // 5 (buying at 5 and selling at 10) ---- -// _Seen in interviews at: Amazon, Facebook, Bloomberg_ +_Common in interviews at: Amazon, Facebook, Bloomberg_ // end::array-q-buy-sell-stock[] [source, javascript] diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index a15c2c9b..ab5ad56f 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -627,7 +627,7 @@ Something that might look unnecessary is the `Math.max` when updating the `lo` p // end::hashmap-q-two-sum[] -// _Seen in interviews at: Amazon, Google, Apple._ +_Common in interviews at: Amazon, Google, Apple._ Examples: @@ -656,7 +656,7 @@ _Solution: <<hashmap-q-two-sum>>_ // end::hashmap-q-subarray-sum-equals-k[] -// _Seen in interviews at: Facebook, Google, Amazon_ +_Common in interviews at: Facebook, Google, Amazon_ Examples: diff --git a/book/content/part02/hash-set.asc b/book/content/part02/hash-set.asc index f5689180..766db939 100644 --- a/book/content/part02/hash-set.asc +++ b/book/content/part02/hash-set.asc @@ -129,7 +129,7 @@ Find the most common word that is not on the banned list. You might need to sanitize the text and strip out punctuation `?!,'.`_ // end::set-q-most-common-word[] -// _Seen in interviews at: Amazon._ +_Common in interviews at: Amazon._ Examples: @@ -173,7 +173,7 @@ _Solution: <<set-q-most-common-word>>_ // end::set-q-longest-substring-without-repeating-characters[] -// _Seen in interviews at: Amazon, Facebook, Bloomberg._ +_Common in interviews at: Amazon, Facebook, Bloomberg._ Examples: diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index a09f8473..bf2ed110 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -584,7 +584,7 @@ mergeTwoLists(2->3->4, 1->2); // 1->2->2->3->4 mergeTwoLists(2->3->4,null); // 2->3->4 ---- -// _Seen in interviews at: Amazon, Adobe, Microsoft, Google_ +_Common in interviews at: Amazon, Adobe, Microsoft, Google_ // end::linkedlist-q-merge-lists[] [source, javascript] @@ -612,7 +612,7 @@ hasSameData(hello, hel->lo); // true hasSameData(he->ll->o, h->i); // false ---- -// _Seen in interviews at: Facebook_ +_Common in interviews at: Facebook_ // end::linkedlist-q-linkedlist-same-data[] [source, javascript] diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index 11944aa5..a9c0de2e 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -103,7 +103,7 @@ counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't co counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) ---- -// _Seen in interviews at: Google, Bloomberg, Yandex_ +_Common in interviews at: Google, Bloomberg, Yandex_ // end::queue-q-recent-counter[] @@ -135,7 +135,7 @@ expect(snakeGame.move('L')).toEqual(2); // 2 (ate food2) expect(snakeGame.move('U')).toEqual(-1); // -1 (hit wall) ---- -// _Seen in interviews at: Amazon, Bloomberg, Apple_ +_Common in interviews at: Amazon, Bloomberg, Apple_ // end::queue-q-design-snake-game[] [source, javascript] diff --git a/book/content/part02/stack.asc b/book/content/part02/stack.asc index bf66f49f..e08cc965 100644 --- a/book/content/part02/stack.asc +++ b/book/content/part02/stack.asc @@ -106,7 +106,7 @@ isParenthesesValid('[{]}'); // false (brakets are not closed in the right order) isParenthesesValid('([{)}]'); // false (closing is out of order) ---- -// _Seen in interviews at: Amazon, Bloomberg, Facebook, Citadel_ +_Common in interviews at: Amazon, Bloomberg, Facebook, Citadel_ // end::stack-q-valid-parentheses[] [source, javascript] @@ -135,7 +135,7 @@ dailyTemperatures([30, 28, 50, 40, 30]); // [2 (to 50), 1 (to 28), 0, 0, 0] dailyTemperatures([73, 69, 72, 76, 73, 100]); // [3, 1, 1, 0, 1, 100] ---- -// _Seen in interviews at: Amazon, Adobe, Cisco_ +_Common in interviews at: Amazon, Adobe, Cisco_ // end::stack-q-daily-temperatures[] [source, javascript] diff --git a/book/content/part03/binary-search-tree-traversal.asc b/book/content/part03/binary-search-tree-traversal.asc index 9a21e8fc..1b6b5b60 100644 --- a/book/content/part03/binary-search-tree-traversal.asc +++ b/book/content/part03/binary-search-tree-traversal.asc @@ -105,7 +105,7 @@ Post-order traverval will return `3, 4, 5, 15, 40, 30, 10`. // end::binary-tree-q-diameter-of-binary-tree[] -// _Seen in interviews at: Facebook, Amazon, Google_ +_Common in interviews at: Facebook, Amazon, Google_ // Example 1: // [graphviz, tree-diameter-example-1, png] @@ -203,7 +203,7 @@ _Solution: <<binary-tree-q-diameter-of-binary-tree>>_ // end::binary-tree-q-binary-tree-right-side-view[] -// _Seen in interviews at: Facebook, Amazon, ByteDance (TikTok)._ +_Common in interviews at: Facebook, Amazon, ByteDance (TikTok)._ Examples: diff --git a/book/content/part03/graph-search.asc b/book/content/part03/graph-search.asc index 117e84fa..eda1d6af 100644 --- a/book/content/part03/graph-search.asc +++ b/book/content/part03/graph-search.asc @@ -102,7 +102,7 @@ NOTE: Every tree is a graph, but not every graph is a tree. Only acyclic directe // end::graph-q-course-schedule[] -// _Seen in interviews at: Amazon, Facebook, Bytedance (TikTok)._ +_Common in interviews at: Amazon, Facebook, Bytedance (TikTok)._ *Starter code*: @@ -155,7 +155,7 @@ _Solution: <<graph-q-course-schedule>>_ // end::graph-q-critical-connections-in-a-network[] -// _Seen in interviews at: Amazon, Google._ +_Common in interviews at: Amazon, Google._ Examples: diff --git a/book/content/part04/algorithmic-toolbox.asc b/book/content/part04/algorithmic-toolbox.asc index 27992bed..2d0f6b8a 100644 --- a/book/content/part04/algorithmic-toolbox.asc +++ b/book/content/part04/algorithmic-toolbox.asc @@ -24,7 +24,7 @@ TIP: TL;DR: Don't start coding right away. First, solve the problem, then write . *Test* your algorithm idea with multiple examples . *Optimize* the solution –Only optimize when you have something working. Don't try to do both at the same time! .. Can you trade-off space for speed? Use a <<hashmap-chap>> to speed up results! -.. Do you have a bunch of recursive and overlapping problems? Try <<Dynamic Programming>>. +.. Do you have a bunch of recursive and overlapping problems? Try <<dynamic-programming-chap>>. .. Re-read requirements and see if you can take advantage of anything. E.g. is the array sorted? . *Write Code*, yes, now you can code. .. Modularize your code with functions (don't do it all in one giant function, please 🙏) diff --git a/book/content/part04/divide-and-conquer.asc b/book/content/part04/divide-and-conquer.asc index 6ed6f47e..d6e7c083 100644 --- a/book/content/part04/divide-and-conquer.asc +++ b/book/content/part04/divide-and-conquer.asc @@ -14,7 +14,7 @@ We have already implemented some algorithms using the divide and conquer techniq .Examples of divide and conquer algorithms: - <<part04-algorithmic-toolbox#merge-sort>>: *divides* the input into pairs, sort them, and them *join* all the pieces in ascending order. -- <<part04-algorithmic-toolbox#quicksort>>: *splits* the data by a random number called "pivot," then move everything smaller than the pivot to the left and anything more significant to the right. Repeat the process on the left and right sides. Note: since this works in place doesn't need a "join" part. +- <<quicksort-chap>>: *splits* the data by a random number called "pivot," then move everything smaller than the pivot to the left and anything more significant to the right. Repeat the process on the left and right sides. Note: since this works in place doesn't need a "join" part. - <<part01-algorithms-analysis#logarithmic-example, Binary Search>>: find a value in a sorted collection by *splitting* the data in half until it sees the value. - <<part01-algorithms-analysis#factorial-example, Permutations>>: *Take out* the first element from the input and solve permutation for the remainder of the data recursively, then *join* results and append the items that were taken out. @@ -117,7 +117,7 @@ For these cases, when subproblems repeat themselves, we can optimize them using // // end::divide-and-conquer-q-FILENAME[] -// // _Seen in interviews at: X._ +// _Common in interviews at: X._ // *Starter code*: @@ -148,7 +148,7 @@ For these cases, when subproblems repeat themselves, we can optimize them using // // end::divide-and-conquer-q-FILENAME[] -// // _Seen in interviews at: X._ +// _Common in interviews at: X._ // *Starter code*: diff --git a/book/content/part04/dynamic-programming.asc b/book/content/part04/dynamic-programming.asc index dfda9510..211acb9e 100644 --- a/book/content/part04/dynamic-programming.asc +++ b/book/content/part04/dynamic-programming.asc @@ -5,6 +5,7 @@ endif::[] (((Dynamic Programming))) (((Algorithmic Techniques, Dynamic Programming))) +[[dynamic-programming-chap]] === Dynamic Programming Dynamic programming (DP) is a way to solve algorithmic problems with *overlapping subproblems*. Algorithms using DP find the base case and building a solution from the ground-up. Dp _keep track_ of previous results to avoid re-computing the same operations. diff --git a/book/content/part04/quick-sort.asc b/book/content/part04/quick-sort.asc index 7ac50b27..4f1cd5e0 100644 --- a/book/content/part04/quick-sort.asc +++ b/book/content/part04/quick-sort.asc @@ -3,10 +3,11 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[Quicksort]] -==== Quicksort (((Sorting, QuickSort))) (((QuickSort))) +[[quicksort-chap]] +==== Quicksort + Quicksort is an efficient recursive sorting algorithm that uses <<Divide and Conquer, divide and conquer>> paradigm to sort faster. It can be implemented in-place, so it doesn't require additional memory. indexterm:[Divide and Conquer] diff --git a/book/content/part04/sorting-algorithms.asc b/book/content/part04/sorting-algorithms.asc index c9206540..cf19cd33 100644 --- a/book/content/part04/sorting-algorithms.asc +++ b/book/content/part04/sorting-algorithms.asc @@ -15,7 +15,7 @@ We can sort to get the maximum or minimum value, and many algorithmic problems c .and then discuss efficient sorting algorithms _O(n log n)_ such as: - <<part04-algorithmic-toolbox#merge-sort>> -- <<part04-algorithmic-toolbox#quicksort>> +- <<quicksort-chap>> Before we dive into the most well-known sorting algorithms, let's discuss the sorting properties. @@ -124,7 +124,7 @@ We explored the most common sorting algorithms, some of which are simple and oth | <<part04-algorithmic-toolbox#insertion-sort>> | Look for biggest number to the left and swap it with current | <<part04-algorithmic-toolbox#selection-sort>> | Iterate array looking for smallest value to the right | <<part04-algorithmic-toolbox#merge-sort>> | Split numbers in pairs, sort pairs and join them in ascending order -| <<part04-algorithmic-toolbox#quicksort>> | Choose a pivot, set smaller values to the left and bigger to the right. +| <<quicksort-chap>> | Choose a pivot, set smaller values to the left and bigger to the right. // | Tim sort | Hybrid of merge sort and insertion sort |=== @@ -135,7 +135,7 @@ We explored the most common sorting algorithms, some of which are simple and oth | <<part04-algorithmic-toolbox#insertion-sort>> | O(n^2^) | O(n) | O(n^2^) | O(1) | Yes | Yes | Yes | Yes | <<part04-algorithmic-toolbox#selection-sort>> | O(n^2^) | O(n^2^) | O(n^2^) | O(1) | No | Yes | No | No | <<part04-algorithmic-toolbox#merge-sort>> | O(n log n) | O(n log n) | O(n log n) | O(n) | Yes | No | No | No -| <<part04-algorithmic-toolbox#quicksort>> | O(n log n) | O(n log n) | O(n^2^) | O(log n) | No | Yes | No | No +| <<quicksort-chap>> | O(n log n) | O(n log n) | O(n^2^) | O(log n) | No | Yes | No | No // | Tim sort | O(n log n) | O(log n) | Yes | No | No | Yes |=== // end::table[] @@ -162,7 +162,7 @@ We explored the most common sorting algorithms, some of which are simple and oth // end::sorting-q-merge-intervals[] -// _Seen in interviews at: Facebook, Amazon, Bloomberg._ +_Common in interviews at: Facebook, Amazon, Bloomberg._ *Starter code*: @@ -195,7 +195,7 @@ _Solution: <<sorting-q-merge-intervals>>_ // end::sorting-q-sort-colors[] -// _Seen in interviews at: Amazon, Microsoft, Facebook._ +_Common in interviews at: Amazon, Microsoft, Facebook._ *Starter code*: diff --git a/book/images/time-complexity-manual.png b/book/images/time-complexity-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9c3bcb2368f2fbb30aa44c4c7773dc5027c080 GIT binary patch literal 119814 zcmeFY^;27I)HRG0D^MJQ7k76EP@rgWDNtOBy9R<5_fp(Kf#MW*m*VbF+?@bHi@mv@ zZ{~adg!h+cCYhX^IdiU)oh@sxwXZ03Re9{UWN#4=5U>>$K58N$AOjE(kSftp;b&+w zTASe?7%mF>?g$8&1pmDe5i+ykS0Es|YsyO_R8CMF!N0t*mQs;IK&VN;d@@5pK%C7| z{3xXjLOkt2%cfZL+y}QZSu3MPlG1;B!z}mxZL(#?^bZDoTAI<5p9pS__Ks2fiUy6k z0nRAhkDvb<p(U1Ar-mq~r=B%U5=#vet0)pG$o{~`u%i7wWc!`*;OJa;<4i)JxXh_I z0|J2@!w#yJLn@Dt%Z^uc4%(Px@!$Poj?Vv|mnK5~|2=-MZTkP8=l<X0|4gL$zjpZl z{N#V_@c-Bjtcn`RKTPdRBj25ZhMv~kN5|)ytr%EZ@TjTsgPrLojb^chwB}KK&u0<= z<arsz)B=IJhA&>xja*E!8icYe^ogO!EJ}zzo55(z_)$}-90m%*afvd6M>XUU(ghQI zHZFhqRobXLKFZ;+WMnKovQoZ2i`o49c(p2JSn)55QoF^xkThb1z2<pxc6ae57XLsk zBT)Wts@7RfU?r{0e@ifv(H0UWpRF{_o;7W#Hm!MOJs1pQT|Yk@7#GS5u5CwSa@)Nb zl(*g8<k37$cfV_(^f+7;Y}-cKgj(FKZh-{C6&1g^3v`^A*lfcBH={9Ot*|CM3em~` zQWW9$Xh(S7g1tc<$$dG>{XwCcAo<el(|O){;=#C#G@-w-qc*(*eQ?aALMQ73oh|hx zOph2i<!3HfX<GHPh&><V7P_0f<a_#@uIgvHQeiKy=`C1HqDNe6Wd6O}u=y7iae9&s zE%<Yfu48z`_?*KEkAD;?lyF`y&_2QX+pNLuC?*K^Br9+GW;-Qlljh$RT6V^5RB8Q* zlx4QhlkJzAa%kR2>laOmOK$#;gXd2GY{`GWV^37hS7a~_x?1hmEnkeBc5p1%U7tJ$ z?JpIhsRIOdS}*&+k(_$+)8{(>#B>N{HTL87O_|*pvzovA{hQ4dT*nqL{&C<4^%px_ z21{hYz+b9X6@<=xr!Fn))mzMa{ZuK6>8Mwv`Dp1`$;C|qg2>jdQ)|h<!n%C%gXaGd zDdWA(`J0611=P=|Us8q#r#6my6Vs{aM4t+FB{`QqCjNV;Nhpg!e%zzJ|54O+dUjSu zW&*43)fvQl0XeDa>O7VCY`pq{;`^c%n6dcC_-|t7Piftp`>4uSpBI<)fq+|nO3yzi zy}4IryHSHBM>)`<=%W2vVeb-rf#<5ggUA@PD61m(z=Ap_hgVE(*M=R(in7m%8m6(; zOLrVfPuHU#nY;;d0$3i}j~xk1OBiJ}lDYGcWQNI!NdTflZKmh#FxA%GAD<47igN{D z<%mk{t2$C4zQ-&uXBOTMBH<Mu4BK~s`@P*Tu=166OB7bN(C(M)zqd@u>6s(1&l6xd z>Q}0U_CP+_vOY)Q!O5Kb;jVuK(H-}6nFM{$@l)yfhXX=o-ORXDW{4ViB>6a_+k795 z(vBWJ6EbL*bgN(W{_!lvZ++h0_6|7kK4g-7z<55jmgK84^1qqCj#Bgc#>&bHq(x57 z8tN7SAE_O1asnc;raafOMz>e{!%>gstQ$36C4n|Zkdmt6A&*=AfA>S&ab5Qm0$tFB zDTt8Pw*~E}<AR4EzgPt$I@v|Td^spkk>Vwfj{Sx8s5G*ewD=i~c^dXv{z>rg;dAuJ z;kAe;_cbB5%AJO1eS8_)v7*M?u(wzY)=Tb)W;A{I0nodE1c{f+gxO?1Ei7n1-z3n& zIHJ3I$I%&V@Fh`$n1*e_2Yhv_Hog9MD(AKX4v5cJx#4%8A^$gf0co1OeklmPQIkx( z#tk#FRHl@a8$7=U#69muEbLw0z9W0QNzlCEQv(~T&CP4I7iQ$|>_8T+RUto@E^z0& zZVtw}`rOWyokr+zX67WH^#6V@sUzQzJK*#qXrQ=b1Sfb@=0zW2M4J;EAtd6hZGw0* zSLP0LkfZp(%$IWqQSU?+TaPYJozuw*{#=!hwJgAXv(wLB^8A&&knw#v?YlnB2+Y&6 zsG7P=Bsp9<#H?@J<Iu({rIlrQ!^)kUt&ryKx@hD*P3gTVH9NuX2BZ>N$0P<U8oFb5 zT*f)`2X@{3b{3%B8D`4me@&e)`~Yw+^P70j`R=?r4c+l&-dpp8+Am#>>H)7`H3!CS z-vL`Jv6E#|IbA0QnWW32PLQ*HfIEEubzaDVrxoYALZA0*&9G33|M4K?>#Y6a^o6tk zH@oabI*AbQb|Hx}r`#HmZuoXP4ZYp5bJO(L>_#JJg3jVhY5BThF=q!PGrmJw#rmC3 z>Rr|9hY&WdynU@IpABI?*-LTBf@q;GEf~*LH+qcqYrM^*P$Xl7TY!n>A)w!YD_=pT z7-C<zsi1K=JNs(+vHx()XG3&{uu$o^tW9C?rzS4EV$^<DHSBf|#x2RnAa$4e78EIG z4HnvVZbvn*N!KS?X@zz^uAU)kr@!4nar8Bf?Cg4Yr;BxO`#f%7n*j^ruG`MO-Cx<j zxsgQ<Y~rg1Y<-Ti|2*@TBTL5f1^1oj?Wl>u3bXU^fcMN&)l;~Lv%tY5imnR~P}Ar| z_OL`b=eO~S#V+x<Xu@4+Z!g4ohWm5r<v`P@<%~u{EAF?)bt}%SjXTK}Gg~ne@`>^y zR{<Z1$tM8|<hd58;v}zw_c63lbDT2J>E*Yayf1!;Jo9C*q-cme*LccdXJDb;AnJ`d zGYVq<_TdGlhs&YjaW2s5B`0py;*m0sT<Fe;GGxSWT6JAXwL2XK=KSs*yhuY^R$g9O zR5U<Dh!D6Vz}|;~d9p1I;tFweGnUuuu2H_h$y8lE`XjsI>|C_4q4X9xJ4?@GO1<*S z^4AHPP=ym`r$#5V^+aSGKXJl?Nq(xQy2*4@UqRPkznG}k3!2RPd7QRyjkR5p)y5Sa zec4(dk%0}cy{Sl}|2EF~wa2Tm(wNuYi{%$rp1&RO@7nKF$xIqoiT>Rn7bBgh)c@u_ zsD;*&+nO&&cVFGxb4^{-narzh*eb;46yEa%%11#Rv(lOo5@C;Hg4c#@usml6YH^=q zDc}3<&%R~Qat~j>K-F!e><rL&y9wL{(C0$(euZ)I78P~w6n=p8r*&R4EV?6By@^dL zD`U0jHtiT0S*Gbn>H~l$9&02ZG`t8v(soMRaD9U8kZBpF!y0l)b5@CEo5wR8bps{C z>i03~7tQ54uxR%fN9pf><OggnUj6y2*Xz1o_3b*2@nL#p2ROs4gOml-g*J}qelZCf zDm5t`+DF-Z#8yOF1i_vKadGE9Sx<!qrB_e-WmkKy%DF(*!NAvd$ImB}+SBbGBa5{3 z4#y`ZO62$`6Nat?IbKx4k|`6eTS8Ip8axC*UG2s6r*YAQzQt$M-+{X^!S154LtU2E z7q@7`c13Fet@IJ~D*p)lsz4@v3|8bm0XEwbE0Nz6zTvfa%XcbpkMTj)aPhlF5#_$u zo-n69Ym~dwus-vJHN`5ZC;Mpx=UJj4A&3xP2tFOWKIN+L3WXwZN}T2e<&EWOVx_`( z0X$2n>oI3izx=L}a)0?+f6i=bm<z@e+K!BduH8@9Z|9$MJqb3nLq**sOy9s<S7M{e zj#<lo{}zByXBSLtyjJ6p_PyRBPx>C-KBvPngaVw=8k}2`Q}I`UIL{n2K7{7t<u<3@ z(4vp>XgVSXaf8Vs)(4Yl3khBvLOb{?1A1BaIMhYa7V<2<*VWeIyFS@3F|VqlP0vj~ zg!W_8CNDoLTbAI5`Nb40iu5*uf3rR5KZX2-F(E^v>b=?y?220Y+5^YEUl^;`=X76^ z^K+l@WyL-xdsAltL;FDu?h*#;sv$a~wkofc-B%e30y>QCU(*T>?q;#Bgj1OU2U&TO zJqR_m72;!Gk~#HnIf+O{+Nbdd@ljDxOQtsWQTvclIk5zQ7eZiG)59Kw0c3cj`DjG{ zvQjha{-AK-%MGfg1nRk5c%`u_PRjba2D54yz3y35Hg~s_l$Y}zpd2s>Qk*s#ZcJM( z^t9@sK~G+;2TRV6<AObDcmtXrRLLYj$*FIJtqH&;g)&{8BEOr{16IUruJ0sM2uXAl zd&1lorlw3MR4i#h7QgjsdfEH>LeE5~qH8ufMnO_fSpG1YB$&pC#bjj6Wn%2MdHxxa z@3Xi!nQIS3hC*_JU_zG?1?IOs@2R~!xBVh`35mj7m^~VGej5-3dq^_DFcG$ppnuO! z^-QO9>LXmxoL*s*-{&YaGnzyFD|p1o-QOM}il+zt@SGKUf1!2R8&avOt3m%vFnHMS z{wlX2d|~@<z2?!Tiq6oTh-CUBc7v*QZV*|_&1}Zy;>f?IN<!2d)6h_rEWv3VT_f41 zbzinMw^5FIhh<*YH-5oe8T`c9+~#_QE}-P`5VKx>&E621pUM-#=rLc8NopM+n2|A< zo!3m-;7dCT`nt;q>uem5m${5ou*OQ`SOxO?Kh@{EyYw8d)ZVjj__B}@d^a(aK;?D2 z70%(YQ%O13TvYtaTJk|mvf)N;hS6QE6N=3ECraE5)STZ#>Mra|P^^ZwuDiTyKERM` z&>ol%ZownP4t&s$j`eXKvZmmY8}BDC-BNL8S#~ED`}gIGtE<z_%F!J8M%I&K(VsBF zm-nvbCY%0Rl;Y<gejk}q#_$8dXC#4a2?cC_G~fwSe3$C1$t%8&|K`sA#@E@ta5kB^ zoY7`uc1@Y$tjeES*l8N<nZROUd6mn6vZ%N>3z8-snMJHwrC%@bCQlMC-3dkhSwvU8 zh^VP%X?Dgc=N1&JGQe1_5cBiDT8Rs&RuyF)agtSdtmn!Q{UzAp()8}@&piD-h6%TN zWR95kjAPT9oc&^D;fizD+7npf0{e$7BA5=epMwo}cXMeH`AayF3Wu*CGc#lG<kJJv zK=>7oU|=sRC#$Z<42sDU;k={Xj>yZvfSmg~OY~2h9oyNLvF#7ukGx-w&{Ib+MUkOA zv^xVFwleifh!WNVe1a70dr_87APzml>YmtT5F~NXhpz>tI7H5SJ~{;g8>oZT`*Nss zE<)G?x0AdxJIM>_JsyChP%}>zQxWO>_^z7}c=U*vRiO-!KpuoX^N@~pDa<Xj^^=19 zF8?vD-%4qPjZBW+dC!b#C1|#M2Z+l=6?cBuF#MpLZRf++(flOi(SAe*b0+Q=ZW=Y0 z!UO6xeA`ZG;MeZx1wMT=d5|Q`rBF06Q)MAnPWn7(pIF|k5FH&;;{7D<v323BzH&%j zYFFE*jBvXsPOT@2kHZ>YP$20}he`OgvZNcG20hIe-ger+_QxxiKu?#0wwwyCJ$3oK zPxM(IOoO*cNM|lA=)k3Ku?<7bmL7wf4<9z-4|?%PDAwuv@*T{+;%5`ICs?10@DD|{ zepQ)+6{?Bk;$gur1nom!KVO+iHgC;8Z-aqVgDYaTyRZMM2v=O9P8j-XK80lTqr}C1 zX^Q*K49T$OiRrpb_c>^@y&CXFSx4p?sd@Ft+EFB9&43NiL^G-t7Nivgyrivt<$l3w zzq_;9>@8n|{n?SB;){8Wo|Q*hNf2skYxxk6n5eg)$V72zZsB`iqH%f}r5>SHjSzoF zJpp*<S#+f2%fi5Jl|Nruy}7|gMOn~utcl!Uzv>!$hnh}RJQO_0uUt5`1*N8nRsNto zH~4w#Dk`_QfsXpu#B`I^jb$;@HK_hJh)*sAQXdanMEf}4Vcv_LSxD7d!OlrWON8$Q zU3UZ$<Kp8;K2>KWxgJi@&<S4X)mg<ILE?C8(2GY<$)A9I6Hx_ELR}M(cn|17*VlfQ z?m9Yl&eY8A&E>D5Tl^+oJUNeB4k-ZsA%iXSpyL!H+kO;o#Uc5SJsGwva`6M@?FrT! z_TrTIAd#20+`^0`Yv9QT%kCg9Ssc7vp}N4Xe|Tjs`yxfTPk1U-UFnR@ASPJ~9u1a1 zVUjo~>EtFR7wxj5ZEH2dC)>~2FpH~z0BpsLh*Gx=s!4Dnn%j%LSP9G<sw`F%gF#Lr ztOl^4a}MBAscijL6#h@e8T0$ZXnz+UMHL<^ffNt1{kh8|L4^2-AKR`)cKd#sO+Vl3 zvH#9Jvx@&^Ldor{iNGtCJ$jhPoxo@X9z%$y{n24<)AYys;U}@otM`|o2x<G3=@dUR zhkv43G`n_yu>n<vvVC+U>a)Lu)aZOKc%px|MbS2>kQHf$4{Zb*%zsHD*+R?DceN4_ zP^%K64G!ax#fO0T2PPB$l6-?wdjn7S9487=7|T0$u6OT0)wi3;C>mm>6h`@SOCz~) z;!>f|OmA$cwRxT8a~L!NG<vF+K6Ii2$-OuHn|wIP4OLT|e*$3x`R`Y-BE~j0V;~#V z`q4ye_vZ2B-Cs=}s^%_(v*McaxBl55B7r!4Tg8VP)5EM~G7>~`s>^JgE_N$iKxC8J zFfY5fq5I^^R0T4wj-gZC(uog>eImCLcT;oJ&m@_?8)&h2h~a73aR)mo+jEhGpU&le zm5+*Bzf?<zluKS-f|=Lxuz1M9`^5}trlT8qc=FhzHf8>W)<xMegG+sM;v`QmHYQUc zJhKgUjkyXVNi;Hmn&;q8f$^vdMwB3~D=Dk^T@swm<jsv6OBIs1+X=>wg5A@XN(0-# zl{OpT%%LiR3%ZGxR+7)fl4G_o@si*bXG!N;5|jI{wI6ztd?)?tBRDMF3)-(hBlQQl zvQHiWjcEZNj^ES|+(z72oOWd1AG?*q*xu}hBAdt$p5W+rkc`u%F~LFy1mC1mk_Rs2 zBv12{jG@4DHzA1i0^!20yY2E1f!dV&q`0+lNc9Kmx4_NuprvLwPXzq-@y7{PxS^VH z^3yujtNkau^+0#T%JRJV+y`+oa&lPm#Z5%=<rw2Srp&_X#~BBc{c452zg?>4Uxkb| zL7)D;+)HFic&3tZ>dTWjJvWof7}#x(OLFSrx`go%zj0uPo$%`R16KWeYRl)Q4x=%N z>y{)M`|4o(9r1X=w~x8`;jag;xAgwHUC#%rFPw$^5;c?T>2RRLvZSzw%l)n;X-j9| z0?-tiG`|4;$WCJT-54t=@^!!@|6eDvw)pXHZIbe`ypp;J&3DfAJv&Jq4s=G)pBC7< zvvW)DRr;;5MY;yR4YE@Cy_7$iU^oPpY)N|?y*R3=i{;oaDV!A;SCO>?_)eUD*%-x4 z(5BHm8GJ+xH*SspTfDLR*;qM#HuRBvA43en{{6Ysm<$~KB$PQ2<*7|zTV#_0TS=&L zp_(U5m`GKD#3ztf4PQlLe{uMbLBPsAg1{p9p8dU`*Xhz$G&ZpBvFBtPs%+jD?l6+( zq`$P8L3t#-PpV?LyR5KZ%?#183dx-u9W!-dq@vOM;48d@KG?Na(YPGH!=Zn3_d2d} z9ml`WB4=Jo8l<W1LIMiNiL<ih{#1~`Llvu)id$OgboVqe@^uxY25G{uHlj~jJi9lD zj!)3oi-Z1R9gLxUtYt3}-husDm#JhPm>;|s$QY#WvS;DWFUCP@q;@{PxHgN5Eb`N| z{6m&`cp(;;^*Qjsxx|;Ag_m)oCWDpCpp=%uw9o3v7yndCTAa#r0!+K_>-Vd~6esJN zqDM^E^LDShaWIq1Yh%=cFxR#91`f_n-|NsbTI+_BSZs7@p4OVc_<3}C6W9ryVe~@^ z2%QHm#<}e6ZXQphnaXcsZ0pq=-Jnb<QA&2{=bk{1D)52`@K#GpMXB#sa?4NM3SJ~1 z(xJ)jkp3`gkk~~~bI{aMtEc_KSrH}-;}J#C*W4kzR?_>u5%bcR`jn^9^2{L~tzW!r z(pEMWDI~nBMY;O*MpK5Y4(^k2@z$YxSlK{pszh#c%*5k&vGTUR+;^k{lq-!tS-kGO zD*7rOA1hTd#qj?_d>yZ<Goz6q4kjeA9PWx-oWq+J0KMVLWonO@B+5;QN>%lJ?&y-o ze)f;QcPu)dCoi2Qb!Ip1vk4mF7Rx~E56^z3>7%+ds1Sykn`UY0jPp-7XJ+~#A)h2n z)K4Gnv)S}-s)<8Oh400qt2%}+TRpjk)iuAK-}goHynFE8zxzC7AAD_2CHx99ZBx-Y zDHUuTyD71F;)rqnX?FECw(~O0*3D|};dH<L&PP@;;%)4AWDP`T6sDj@sdLnJ;-SUv zR`iT-_d&%LD~*o(4=<0<$$QeHc9NMP>~fM2u7BB}GofUWjb5m%X~<Z18rFdvS*%}O zk9Cdf!~s!NpC>25(WiMpB8`ayvpX;E<k02IV}ewC!&0#63>}zzcYKQ4e4kNTQ$0O} z_DXDT3SEMcO7{guZ!Jm3goD}`Ri^DX*61Eq!)C2^DYQR7ctVymz(08$!7X7B9(xG| zR0C4^`g#2l1}SrsY)q=@5A_@q?B9&IC_0c+CAf2BmDnGmRFNRJKLs*hriytmwv1i8 zQWd7BLEd&s+`H4^yc1X4sd?%4O6%wJ5_e|jrcEk81m$OL<KZ!;r2iza;F<}Wcczma zCLsdQ&}Wq(;1bykp>c&dj6?+Ph%-BmDsJIYQ<#61A!B-3e5UzmCe3I%x@=<mG`vjz zDw0k_+T-{*nentj{e#vWfDkdEP*6NqJ)Q}39kP~m=<c7Lvrga_M8UFp$T&rGvA&C1 zweqXo{#=Uwjs?L|2VjiqAgxLE-1t@#V=#n9*0=~ps1_ypZZENyv0{LenhVS+{3jk; zj3smrl=46>@GON0obgCx`V8qpelq5f;?`L+y)pk#@kg~wY0fihpf3#%i2A$;>aq?Q z%%dR3#Rj8xQ7&1njk($7QwarP?%-PBbh)D^z*4w;79@FZ`M#|9{f;(ZaMp%*PlmE6 zZfxJDa!O}~7G#K6wKI_}>@4vC%jo53GOcBW8Uv$lJiRU&O<@W;g>Kxt2lrc(Z-8wa zCQW;s$@qTpzk;*R{1kEIRzDXt=F#A??&jvCS>PR@3z@&e+|D@C6tg~xXCYvJ$Er&C zj$P&@Y#c@-nIQg&u~;4*OVDH2!FCA?=iza0XU~<c!@ki%=$peKK$d9&tx;^fIhyQ` za}u^fwk`n7eLca|mf0Fk$tAaX(jR&Ls2lC=z<jh(uPJ;lmb%?@6JHq6bVUWP!vM7i zIY<#t%w4|4KRcm{1aSZY0S5=c$sy1OWngL!Lr7Uk<~rF=Js1yP-FM-$8?iK!KbK{` zH)n-@-GFwQbTi@IoPxaQ<)+YiZ)7{h{iIA~_~Mw0x~VpLaN?P}zWQd-b{9*^6}DNW zMPH776Gm+1UNCv(E8o}VOhT)diwaF*tCme)yMd4$`=S<ci&D#1EQy!#aPC)*QJo09 zBb6k`l7~f1;43#$L2<~IMuDd|VX2+VU^?)%mUjNyBjgCHv-TAYawk6l*I4G588k01 zl<pIEVh8gAGaM<lFORzmg3o%u(-cRZ{U{Mf!NbFfJIf^sbL#B8Y)*KLo}k_0`kH@o z|M53@NOYkewBJ`8Ef_fGq#e*CrS&DKSPqdca`TbM=!YL!ii*2^9<h2e^7X}XrFvX& z*qyj8wZ!pfbWu@7-LYR~5Mj83a=2}{a0aI7rD?q|65Sx|&tzR8k9CKoS+2^Y=Z~PM z;xcC)1N?ThEH2NT{jVUhO<}MQiN!MGF~B$8&U{@OmGQF#!`0jr8?{?UD(vQRb4rU} zkl^|!DO6Ua!N4cpU6|XcrFoz>Bj(7k(EACJ4T|E7H-V;#FV+<AetR2>+cW$Zm-rzv z#KZ60J(q7C6U4`xcw}BcLMt}&p*l=Kc4%FUex<P&D~4sKLzsvVz}q9X;)O6tJ1E=h ztv69PmRphyz+_Ko@KE=BH#nOA>8;*_=<9EKo&)PscG-vowA8r8s(dm$GKN7`k{Hv( zV09M$4Fm6eJfSV{ufYtdB33OjJ&l>*ji>SuDflzDuYs5?3ngwpj6`d5%$^)lz}>24 z7}+U3Ie#}Ao@J}Scjw<C-(pDra--3TBqVn>yE7j{xfLA4LPe4DRBIY^(OSG_AI5L! zahJQn_Q7~#yBdZkRAIfT?2>U9oEYa}1`ws{XvVla_(nOwWGBjEytq&1scCreu*aBm zq4~iyR-m#-H@{2zhVOuRW=cxu?4(3d8#-g@EZe(N<?N6<51tnEFD>?tp@?92x%{H_ z2ao2GF*Dw`!+PjwNzb#u7f$|9$L4$wdcvglwjNEZ?!ZaOzes1xkY?Xi(as3NuCJf} zPWx1Gptk+_sK%GO707q8r_{TMOvih4V@eM;<@aqTc*x(Gj;Wy1@!2lzzN%?8R@-Cl zvaz5`7*%uk^XtW9=))$N(ROUQ1M3iC4uH*uJ4%%JHSGNg2Hm$v0PMWV>Do`*-GZud zU8lC3<;=_fMWdkey0Xx!i_BkC-=m=SQi@-ISN>IhtXzg%-ZCgKLRCZg2mU5tJu2z} z0n?R4kY9Ul;(@$(EN)lorVq+m@`r9JN{F+`E^f)JsNeQ%BeE8(+242Xr1WXO=YEP4 z9i=&t%^;rvyLw&SbYI15FFM^CyBrxjm<GqlfAVuQCD*EPZMrOqmtr8{|ET0Ty!hDj zD{K0Dc>DxtsmG^g&s3XVs5!9s(-o(DErSni{0CcQ@{UMSp`R_SaN`uROqib8mMf_^ zHC94qnM2X=fWRC*S;2C<1FyDhD&5|nFM)b7`3f_>T-$MTsm*`rIG-%k<HdnwY^hrQ zekgIW)>U;JL>*3fXdTonEkBVgqRiP8G2c;3WP4@A!F6J-yo(t08&k{hxVDVEt?t^9 zeYu1Wv;TIC^X#}ZR?c!dxOQ9*AZ(vr`jxG#qGM3HcV+cPX5;5?K&-cxcC;AH`GmU1 z=D{>#LML}c+)oCQ;+-4k9k~8nGf~=s>4XdVJYM2Cm7q+k{DL`(v%>jlazmVOxKc)< zZOX3Ei~*tc*oLsRFnSi#t)a+s$sH+@jitI1U|75NN}D>l6r_$AV5`^(7rR)KKB}Rm z_Ghg$ywyf@?XVl_s`i3*E}gYzt58(uq1}sPOz(Bhf$N!LkO$V;o?odzIqqCfDFrh= zQ@_6duF{hmWeQkte+P}&M__r#N0Q-jSZnn()+yl~A37T6j;yFABB#J+Kj3Y!V+Xs6 z1B$;<#oF9m)yM6OU<j$9gdc4#cVFp!64NP@ulSk%?%?3gpv_y2|98Icr<)Rw>Y?xE zGSOHaRLrp_9e|Zwt@E(o-3S*4W-gM%o$)2rI{WZ+!w}sSOy#{APC`qaS8X*;HY>LC z&xe0k>q<WSYRQe;4x9>J(C|}SC&rPhZ!<t49gpWA_+oJsoLFKzMGr;V-Z%Mmw62nJ z6FjlDd~rv)wMf{n*4jyu4W<z%0irq%0kO`n$5Y<<kY}t{F$er-Uazyidk;d=Men(% zD5{psgOk3`?wQ`des)vy(+ydU!H^Y6k?1k#3usqdpVo>%8ntfqE#>@rSXRR=X$jK4 zc`yYfpRS9ONELVaGZ1jUL@-TGWkhW*$()BdtfxC-jo`AhqgA8DnOG#|?Pw085CKNo z71PGX2Wp~Y-b0imZKq=H*?C`toJ!vl9i84bzX}YC&0jn69`;1e2{7i~H0k56p0ClR zp08n-mwq0jDt9d+eA`J?R8GO*&c!N=_Mkizo^U$8X<vH%?GW(UO$tR$;X}!+IXp)v zsrn`J1?(&m(-tbO8(TK(`7Nbxo^hO%Z_}QGxZa_qs(4=enm^uni%9Z%L(lU;j^*-( z%u0Et(EhFIT-4NtVpjR(RxfMm{RbBf!~k)lm+<^wGVuFfL?{!HuQ-%cr2QUn!<FEg zU7(0{!oI^B`d&+FfD>DJo^5qFg1Fo-_QA1ZFi3qrp_Iy#cd3K?fut7Plu!8fC9dno z1Q>7SgN~<;lh3Z78<S;=<*T>?R8~m>u4KRc#z8MT;dL0sg07o5!<R&<Han1Ly7Ap+ z(M@gsw;QE1?=`0xi-y?j+<wOJ+{WIj88qx@-H}C2?5|%UQ_bh3;}mJLb`mY?qsVbE zk7q*`S7ND~HskfbpM*$6fKRcH=WPjI=c~45vNU-Hof3<xt5{0&6JZ|f7^Ff~R9Iq1 z6Q5ehM*=L5<~>wye<A8lhya{)3WBf2xjh_+Pzj<JoT2OD)75`HpbO_KN;Dbc9o5$z z+$|*JZpYv}X3RLa7Z0p?Z#Y7z1D{;Aj8n6A*1*sXAJ2<M9^K%?Qr0jszU2&IGX8XX z-`4RuNR$35sYQ9W-g$;6+Z_cK9rwR)B7mCIchP0mHSaG#^<L0QsB5{r?P;r~0{6M{ zdB1`$6vd6}Vo0FHK!X^G((_a71Am`^LM?-DIa=Q*PMu%Z+2h+7&!i0u{Ygw!KeHz( z$vYb<VnOZ^f^_T%wM?JpG$CHU%sQA_46uQPxGsvj^(`dvcSuMwpGH^<gM7JD0XX8< zxMxc>A(d_CqKjZeTuy-v+|rgGELck7057-S`+4-2$)ydRm&V{cU+y8cKMqFirIp6k z{FraBI)+;OZCkyo^8RUql8s-JrGqza6#lNps8lvj4S<wb{>!exjJ}O>zW)gZ9K;z; zKQlwjB48K}40dc;N&auI+kJSp%`KPK``c<Xuv-WjW3l*7kgbtMtweQgLE4DvXY0?> zrptOpReU*yRa-1dQf3LuY^48;OPbY{Fev>;+7tI|o~z1v2tG2>s^Pq0qt)RTDmfUG zo&lRV*E015jEJ|aJe{*|(;90Xlv@3=uy?9Hj6f^c_T%mW|9rrPT-C#sBWY7NuA&Lc zYhxGvFTiV|N_Iitc}xr#c0#7}w`T0+S83~Q>){1I_0BRObQ4f=;YSWnPg@1j@t5_n z`&#taBkd&d-!}Y#?>Turp{aaBzLhBtz3VX^Mr~>Rf}q|4?K!xm<Ga6C`@pP{vUo_; zx4mYIRQPpy!{k|xwj=<8^+>w71e#tmno?zX8scAf*~Z22u;@O`&4EQ>$IY4Km1&2o zo!zxjnX0oL<Oig*GAQAi=s(tD>TFr%$9=h)-IBxQS^j4U1e`zr2?b3X0pN*s^a}4j zY@zg-CfH?AwON7C%<5)_6;O@h1e3i=HKk<!DMjB3Y^o>yivlNHkoOZjpJu;JEs1M_ z;|?3$qZYcp0#-E%O1=1}7^TG3-*OOM6ZlHMp|XXO;5>2NWKHR+0Ggd(G%D_Vnk=D^ z4&uXN9urH|;4@DmYN?qVKI0;zsgPgTiFWBK7ma&JDdbklacJUznj){e)sihS@7SfB zT5l+o(--J%*VJ3h5x=del0@6KyL=h#`0Z6p4wdrcx4vl@7&bqe;Kc#v&FCCHZXaBx z{U3kX@}o4#yU}w5ugaSC*=LwudIUr5-N4bcQTzDDUsJAmOQ?cri*0T3@CB^*jK>@! zLHh0-4iq3$%;JM1ew!OGw&x>vu4a27s?58BWPDaQLHee@Cj?D=t@(K!t7{QS<#9?9 zdAs-XKS5nf-lkX2pWC$Jd@=>8x*c^FdjWOdcbIw1Sv0baw|@&Q&~pdT?WDTuEdG?P zKuAB<Sh%Vecd`(_F=h@!GHP>7Dfr7M)MC`OY*Dn1S(psRU%ZWuD^{VXcm1Z$sG(uk zUra?7`s`s0SwT~n#=cglAvBT#Y-z<rj(d^W83{M~KtMj4T#L}sj$z8s&)?D73HvBx z$jcoo#8d(^_3HxHa6x^Hq{(g0bPBAIar~E~gM`&CMN<aKPxB^E^YGsP_4$sR3k7uE zaxljCf}Mbp3agbiZ7Z?;;bx^=A{!14UT3y)9sHqU`U?oy^XuHLVH%KU<`p3}ES|_J z&)-c@{3+SBvEI?<8YdQ0q2rhQV9qKp0{8D05=}!J3-Ln2>1lxGX3Gbg<StRdm$*gD z<vUuf$Ye%Vw981&@*I-s5kraCJ97|o^Uu6s*38W70j0WmD+iU^B295_{#Wz!i-$N! zfJ8Ocd;#q|HiVl9{vR1`)mWYU9ZxC1CF|ePVC78K{3vfZ6cn`7=`Z%%sBK}qAxIv% zg*f|7{3;gvpl{gwv}N@i9_(-KyaD{ebS5jag+iE!X~uE6wID9hHY1D5Y<F&87ni|H znAatQWQN?pRRTc8(B^Gls{XZ;o=rZdZr`~2PFljFoux4H3l9y_H>4Kgp*~YML(BQM z1Kc#+@WEydKA*VyRS!oxq_22CWc+=qT!QgadozUcq<7h~e)sqk5Do9nwtA+jbLpLs zg=5fUK7ZHT4<B|W6;EmeH!*s%g#|Hb8y`)s-XX1Hp8x&b;Ryd(|J86NXYJVSDJBrx zd*<_wJ7b|mq^cfp@G6%63~~M&2FHW9PDPECbC7128&l9GZi$DrESt;tHsj)#tW(dE z3cqOmU{}#<_Jz5k16wMWUdP?lmu_AUsOnsUkF?G;1)F<tU>}@rI_n(K0PYhO5^BI( zfL|ovI*5;yCiBaZH?k17G;HQV5~(^9m&z1mX*I@s6llUepKALCPfty4PEe(>WdH%L zgCThjB<?bw56gg;+NL5`Tub0Q%Dt3_AE#ivYh&#~R(V%VAu!i}CWLoqxMr{~mR}a3 z<LPV;SdY^&#=c8{Y^vIn(zDMva&I9bs=nOpA^_~TeIGYB-V@MhLq2KXx~6ohdK?x6 zn?2X|HeBJznNL!AX=E2&2kRGfeH>#wQ?hW3NK3@-*x_#{2|N2{&r~OgQmK}r5_8ZZ z5+us+)8w}Jg~w2PoS!1eYh_ORfkG&MakqReTKHs0FuA>a@dE);2pAVDV24KZagVFH zeBNP6K|Jt5c2eZ*5jHtBR5`fnx$rV8L+EHH82+pD&u&FqveUZecetVF7wmCjeN01F z;3$yL8|tL#nm0z!1nmzJzv~5Y9b1jg*zq71&P|t_DSW`cGkp9~Eo9MIB9%?9Pfl=E z7hVS{yQ7zrf5MC+%Zh#9Z2<x;t^PDv@5(6S)Ki>giqAp|{j)R)5p?c(_+$TU0-iE5 zejN}ZcMW!ojgOz1n@i5JY0>_Ez~cMQ#nh+5J_YW^bWZN#26yNGAVGK1lU2MV+ymjo zGj|=E5R$)l()z52hgc%a1~DI<fKTE)Z{v(luaLt>cc)FIogCGgtaIEVuz`UYU)-%k z#m3ztzg=Fs((!gjpXGXflu2r<ytc`HE?@4V`6&7_OSup2>5+nK5d}v_wnEBwrP+bH zrm<*jj{Ww>^=JbWu3|%C+p~W=+Ai}yl&Xt&DRo{5gXd@N@>z96-dZT%c1*bzC5zhO zh2tid%jz&E|8#V86qp17pDy|!H*j#Kc(>|~GfpDdI|tyzrQt(8uqY|MG5y8rl81v@ zg_bzIxM&Tbq4*nM(HMyc1c16Nc<#p|Ru^eFt2zJNwYVPuw|g6@3uBLX{g2f*Z}ha} z^+~&qI?G!EA~IUN6ND<<2pru7{yA8T-nME=SRVf!Zy{ml<mXq?XNBv)co&*KwK=HJ zeMaVflaIdV{EjP;i{J1*Yb&2bnoA!$`eXA%20IeM4wYPh1hiq_#5614jZl(%)^B$R zuTE(YO5cx+%oToZ{66_@0(_uN)O9<Q9Di@0PxzbFVV2n1qLPj!$SsHcfh0;hsl)Bk zbm%fw_=!#_mLX{!c9uq4E-%XgC#D+234hyq#B~}@{x0^rE635Yv;tmaC_Qjzfz6<Q z&#EX2hu20l;dnnXsCx5!4MBud*T^%)(`eUd)%WE0zH?+ErI^>0VWQBr$7qWFuS7mR zerYqgfID1b|G-;PI6W@pBc19-1BV#-UN>KwfXorto59?rTBR<mp-Ma#ruQ8rK^;`w zy$}21HIJmC*W_KwOicmN6M-BLE8SO`M5L#lQCO&-=2X3JQe}(X1?N@+#d>Kkw<R^V zrzLsAfk~4hE`0^;80#S%Y5Rr{!OaGjTaK5ISE(p*94%mj^Ft&x1F*S;gtXPm{X8rh z^D7ISFQa$Z=v=$e`=I^P&@nKu>nI{Ie$xNk-Ki?}f!-(W>eQ)pOHyr?I9Q|2&WCv< zs#S5YbTyl<>sceZ*o}Tu(X`JfHNU~JkG;<0(yAaM$)Tl=gNlh#ikFAS48PeRaHk;n z&dr9fOwG)Qm<2SI!RK*B&?U>qqBgqB6`06)+j+cPtVwT#6Z=u6!<qs<R(b*YB#a7F zNnm*O!g}~~vf;HjED%h+{cT{P@N9j29dn{bp-Jt$@m}C`Ww~QGu>FNnDSOT0#gZ#q zlj=g?D&@svJtl6ybzrg44SG|+&H<-<-w>m(V$vBUiA$D9plm)25o)GjH1(uGdk1@E zxFWrN$f^2Tc(P2|w2G5zZioYkdHF|n75tbp=n$d79CyKk@d6)5Xj-ju$R9aR`rMJr z5|f!r*IX1YI!fQTBvmEi6W_A~7jJJh2L~m#&cS}5NYz)L83N5{V=OfsteEcfqf=~u z8BU1+UBhm+O?2e6fA69V?^R(;9~lP7u^yB+3cyBUU0l@;?L|r34Zr7hV+&GKiM^ke zHhE%e!d-x{zeHW<&lOBvrhn8s%?w9o!UoyhxE%bsL^WGTUZ$8iit^csJbr~ERN|vF zI;~~uw)|zQYM-gg3H#ujDrGepRVbBr4`x|c{)IU4)$Hpz^5M&F@fcs3pcHy_50e>= ztdS9AgP|)?g9rruy51#CNHD|meqc1}yIxm$d5oy2=#N}SjKOcZNWF-t=HA{-K3un? zU+ro-ZgHIR%7{psPw3jC#X0ZCH0=fkQA_av1h-TGiqCkTcXZ-~2*?@+4W?+_`l~Xm zV}<+%xv$+X%}td*Q#E-*2kv_t7X0=z#0dkhV1$9!I4mzyfxqs%))TRUMW5*EBx1xs zDdTtb+jfKBR=L}x<PBX)v{@pyS;G3Y<H_oE<Ly)&JgRKjxwQ?MKVdl5lOX-#h7bAH zOf6xNbV&V8Jg~d6sTT8Ws7ms#vCc6AshzG7TnNvJ4v7Dg-L1#I#&(JQvPnXsP~p_R zWyMzj-X9}X`%ys+@p1M!S&6!E>F&G{8+g&vZL;TwjZrmzeG|o3K9)N^I1TDkkz;<Z zj5!E0KPgs5mWWK;8BECX4@VT`=eNX?-*tXp5fjX8>vl_i@a@qu`I~Mx-61>Gf9)U> zV#{1R03(zKo5HoiYdU!KQh2IXhp@D4@+H8888X&{kf`G<gepF;ax`1KW(U-y|2G*$ zo+%`7e6pVNbhc3G&nD2&#I)$Y4`p`Um0!>4<;hw5gaM3y`koKHxA<?A5NYS>0VbFI zk+UTXU-CY;4(jtPMraVgpySce<F0&+_>Sp5U{Z~u;d8uQ?%!QJl5CSA3n_gicoIf* zcdSNxJ55f9^?=k*Z$QKX>0$Tkrv_}KpB)r=2!5ZPy6UvNVIb$#MtO{{{L5QI=He#c zMm^PrBs3MSEz69s69`(g;BUFpiH@Up7i6VymK_iOG<G0!SaCl)Iip}gty1LF>R{-` zi3)jETwBY1A|PA7F*^PfCgzGPkyJeW*Dh9aOi#vvUr;b}@p2Ou{M`G%BQBUdx#N=7 zFBh&Li#CaxI+*53?9aZ3Wc3_Z9PEzga3Wmyl&B*qpE&QF>#y=T3V$m@u32mV_z>$4 zxI&0}9U4vCrd{)KZ2~))Y<hyIG8YV!o|@>afZO>JETX_IeO%HK;=NO}fd_c!5qD5g z)OR@`vMt{!S$miDF}^#9N1t`)6ASPO?EkVV6Z}=@k}(M!T)Bo@c-*0$$_npU5Ux1i z^S&pZI-#ZJLLHgob-xMt#h3hPx`c&+*9T;|{Un_&(_%DsQSe2R(X7Ws5(99~UC)yR z#ZXh!S>qX=`51gbe_k6W47$#-adIk}m{4^`4ny3yv(Cjv$Cq3}m98LbYb%|2U>{S4 z!TCpyZk`9prW+Z9!zW4Lp|3#o#NR;QNHWSvtUvE=F@*xOQ@^zEE{8&gCapRExXKD- z2kr5iSLRFYBsE31KQ4?x9}%U~v-Mw<dwXR;h_s7OjIzgKK&lT^&g`m=aIrxK)ZWv5 z089L&+1Lc+kPuQuj$*X)8lb@H8v1AQ^Uo$;U2dX1^rwP6ZzxU`DfA6fh8Qgp5;7{? zz*vpN;9)N&7yUPvA4vTaP%3Y+8G@2fwAh-?8h?-fXz1G8BNZo!jIOAHe0BzH{0Id7 zc;atcEeDX%BY(Yw(OFs+KM4pfcEm{Tk~+6>XMRi1GdRzQ`DLaC9eG67P@!64J>sse zXFr!{f4~bLB#F@ehP&}|m9b;2jJB=sS%=V9A`%3-mmZT9hekNQcv^O_`Ij`ZY`^_V zev<wAH)P)##3O8onP-4Ng|&=Ff#pxvlHfNM6UARohul+n!8d*ec>^^kXL&J1qT{qg zDKre;Is=?y;K?zROSw{o4!R>~LU67{5>t9>$I;vNY}d}$hM}UwYE$~hKRdv8nd(es zWyOaL-kR3~j&g*}imM#uKg^7k?YiQaU2loZ(N4%{Xxw>hKGT~~*Wkp64<z^Y?%bvX z2jZ}Y+~s4hW72T**BI!R9hP8Y+-(GQo%Ao&+a?t|{HCr5**nbYaagVm+m~tOMrJ_I zO*`uOA6k3>Mc~b|F&;4nK46Z!SNCO)#Abd2XhX%0MGxAz+;|POUKwEiG~WC!ppT7s zQ!1z@-t+rGb-=SP+{v21GdQ>hcW?$_^9bfYEAE|kd;np^iar@I#>m8)Qdd*5@P=zW z(usWw33fi`Uni!pF2Zl?|KQtts&ae$X%vj;x<!H*pBTUFzk>)Gq-LNlU#D8d{WF}D zD->AUyaQcxSjk00bdIp-wxIM&dvVLnh;1~zbDDkrLE$e&C%~qxfn;bxll)M}-3bYN z@qtkwd<z+xbw)Afb!RX4AAEZ$;JZ-A<;#JMQ+a3Jd)~2Grok(uf)ZX!IE`ESJ&2p- zx?!_&6|Uy<;gH_Gfud41^Ng%wYC~Gj8dplDN<ImR54`_1Cf6q&CU-eLA~}j<8Y!bb z^lk~E7a^zS`P&<eMehBYF~D8?R#+At0K9+HEr{So`CTvW#uP|HA{~wC=LM?@i2N%Q zI7Oe*mmZ<FwTcnm*I-u_P;kJ=PEdykX6HWN66kS8c>uVHC+GFM(g{)xFvlZ{(B3yK zL%AlM5|TDATYoo8@woP*bT0l!X76yE#eB(Mfa@WJ7Qq(j@|03r8E0tm+(Cztk0`^N z8bY~<gP~JQk*G3dX>SM=eNd|>h;$95TF$v*21fSMG(BLtt6u>|&1Rh%6*xW7*>BNj z{U2|qTRl(40DO?t9=f{6nHhTsjf7rMAM!VDApK9KL$>v2g)r@!?=!d=F5j2I(>CoS zIt@KD_0hHeHKDZc@i+UM4<KMeXc$&nZJ4T*;fKhv2*cLJ<MC-}vNn%AAfWat@wW#% z5RTa2f8Y_rlp)v2z#Y*(X@6HWkY@t(<%8FT+q?uap6*9S%mlmk7e-iYZT*F5H?F<C zJ>T}54;M>s-Zidd9%pQkkfN8CEqlaec_VT@H4P5oV2O<ZcEZ<YXD$Bp46K2XPRw34 zwjy9W+>hgCnwoF6-1SWrpu^^7y*BI&cGj7Hjka{ga9I-a&a>SOj`RqOlkrIwE>Us* zz@u&(ywbiB@GQo7NApGCB&Q}^{`Zn4WC9{?|KpZt!EMd^w294-7XdHYHO$|n!7hbV z%n1O{%B=u|xqh2szJ+vW1($ujxw#qUX2BD*y5c@0wlFlOC`%-LryQV529+JWo_E?~ z23p$M%IZhM3nnR?Pc6Uv^3!$Q|8C8ihzOSkJ*v00MR0dCRB|HolF5R#ZqrYh0*cvg zJX^PFWUQcP$laKY$=NfKN9AV`0thnmxS7|@+O-P(G;D}5c8DWPg~~q>;+pRCh|Pk7 z8td&qK0q2<OvLsXkQmHcOBA1O8XQ7u=I1p3Q0D=QkdPjSZk*x)gk^TXKPVgP)<P4g z#E--IdjO$`S?^X?dFZhF@E+gp)Nf@9&0g#zpiEFVV#rJbrlYpg2vfT{Y&H@%uf9@N zq7|eMJ)!sM$E1fKD1;GrTuAd~kR9Mq(MNu>uWSjo!~3#ZULX3$_Bt(SX!Fu)^eEDU zv2Rn4J^yFW1H|}Vo=y`eoQv17FEpO}<e#}Cd?lj<+_~WdO!f{Ktn!Ysf4Ss_N&!e> zC~5LhDHBj`QFdawgsyjkx<5?FNmC)ec*PUYmL)6Evbjfe!E$q+2fJ&_;BqCLf4pEG zhZk8<c#%by{;)Z|S<Mv4iJD4+-*L1T!A8Yv6DjR2b*Jks`idilbn;Uaf2k|5Yb8T( z;GPb?mF@kI*#(nDg7ARQoA8sKi!k{f%wV)z!~rUDm%~p8bdG)D*iK&=Bcszy0+uW6 zGn1Zo<@t}%x5868<opyS6)2>~dDM9bVjXEL!^9Zfi>;Q=$Tx-G^ETH|r|uNJvmhFv zf|5gOs&D}*o!@y*kwa53wyyS&2+0?<OySH8F*ftQv-W4RZFdOhtS$KFJubpPmLwC> zVBZdhx-G_v*h7U+7yPj>0oRi*R7+@pn~PMlY^kx#7lMgLaVi|^M-23cfA5-dqn9hI zSW_<L9F$W#WNiosu-l18(~22U)hX>SO4@MPIl1HC>+!tXt7#o)NW0NQ2-O$ql@VN@ zwLhB)?dl4VQJYyBd+5HpO}>+6^e+FY4L4`PC<6N12WI{wC%>5KQM1y%VkNRWSihFn zY>RC_MIXqmYVmzY9u_inxQLa`@@BYMxb+ixxa4<?nXyo3@I98|Jj!t868FpU&^D<k zz=W&g`p1Le(>N-V?sKVUtV$#%e1mQ_IZ$LkGFBrJD|FHH)n~OPZ%D|I0*$Kni4GdV zUc)AfaVymF%7#1$WC)v}W!!EZIQUsOY|M&Qu+$}!a4226AeHNlg4E3ex%8K!*cRKW z8K9vBuG5yjvBh!t!#BIL9$4%qDqKo-fCj+}J;?ZVmE0uVYyM59Kv@mjWQhoW8u8ED zTS{ZhNKAgrYyMRW*Tlcx6qr{&o1`J8d#*>fttAfV=aV0<0DH~ashs!kOh~J}&u(?& zzl^oB$g&W^cfAr*<oLjPQMbmv7e;Gq?KtRUBjpGQssp;35gN#?`V{Zw&_Zy!^+NN) zBNWS2!gzdu81X;5yOwe90_9}OkcDqU$hT^GLeDJP&_}nIjb=&czSiG$UaDA$lX`uf zh=UpWU&?vEF75PCp%as`e{QD53`LK@3&6pAOPczAXPu3ma?CZhmRha``-9KRMWk{( z%0g7rnBX#-)k_$VIx5)okht&%M8q<3@Xdq|`~1oq3)+l7M!62AOmY5^#M)o%6c{4V z-YD~WD18>_+c=bTot7ohkR6m$djIic_k8&dohy9V*+AY!p4&8cs=lhJX)!d5%r!V0 zlUV%X+lNSWGY=^xQ)G13?wxgql}pn%atX}C<wzDsy<HJ9eQE|BBtsqD0wjwDl@x_r z8cG25;5@=m4-vpqg^)a#FcV)0UGO4X=E>S#7*@hI>DSFWP6T39JsdOX=H)FjAl1a< zCe3$$>L;X-CIeZv-;cPC*=G#F<jjrZ0}_)9mkyjUh{Ss2fje~jp8B^7r!jTydmYeX z1y-|EaVoa~NC$)8tl+`g0|ha_56I4KSs>B<XbCgDpLDKC+>oz_{>RU?bR2FYRsZyy zjM`}1+$6i4XvHM~?t>`q2eU2}?vt9W2WHM?ez87?ZPUBons@({KP37ibscR|3}RjE zS@YH|acd_>gvzpNkiXw0wD=Q=$(h3jWW}YG(|!om+5J`?XC3m`uu1XtbRp+2mjn|T zV}r-Ao(QXJRF-$JH4%xDo_cUis9u{F2M2v53xrJ&FE5`~{0MudH%tyuPzhAD?&lRA zK;UrU3L?a!0SGm3JrMLiUwA$DB5U(Ai6ej{o$?L8CH5s>aK{a5QlYoU2hw#?J_bAb zUP)xnY6XsGl{)Q^kHvE9QvcxFn&In#U<IB1ACk_(p~>%W!*q@oHUvi_-R%egX(R*z zrPBZ;W#s6P?k)kPB@_mXoG`i+0ja?VmG05+zQ6Zh*v@mF^L*~>zD^VTz)S%XtZfEY z=|c^1*3MaFD-z!u_+geJ@M$n*rp(#TQ3`X(+CG4xTH%S0*TYa15qhiJe_G+;5o-vR z`8`*n34NxkODQe;@CjjBmzA+~Lg+bxKQL)fWslm6zrCX)of7@zFzPLFwUap2P#5cU z=OI=v{+?2wU^#AWh;4U5hyQi{$?N*{OkT&j<DOGh8G!?NYQ3j*)koma=-jB;-&6jt zq+Hn+??Dh&aK9{s35Y!pI@hKkn>WoRCT6)nu<2Kc{Jvdgk_!a7-X&N7+gK12Ipi)= zeJEr!D~tEyMgByL6xNb1>j>*uV7IAAr{RlxL}qi?$Tn>ZtB0%`UDPfXHzk%EV65Q2 z3i<hk9#sb=4=^=Yh~TggEa%Z<vJh{HrOc2!tZh}V?LOB)k+d>{mr>SDL93SZXTLWt zm#}K%85Ky^m3Z5|CpfC`MHYOr&|`HwYgsn4p@cw<A9PE}#qu)1q2NhTd|cUQf{_}t z_eQ14qHKguHaQy_Q3J4+JyaW-=4IMl76&_&otX*eI&dMdrjweev7UEOeJ#dC#nIP{ zp2o{)K8G;PtF0<)8r!mG@Xj99U*GnV*?H>zd_j-+{3wvAKLY=V`JKdmbiYt?oGSSX z_kXXvijCto4m3)p9t{5&V7n=sm%UJJga-)^^X7N)CB-`7vsi4#M!&t~+EA}v7wWr! zGdqc(w%BThr+eyHGjVj%rL~D!Tij9;I`U&AJ}#h-HSTOH?_g(Y|M|w;He%)dbC2qB zV3}cY_QaeW@;9t`#1|&9AvowZG;zRkQ$QNF8Tj99{Mh<r1icybrR%b~?eU0(3cuJj zMs!Jh@KjC%e3kK<sVMo!{s!M>j$ik}?T=okZ&XG54WKI?Wx;Imt#gsXxBlduFrdfE znT1eutkcB3;rm=fUwBOeelh(f!ok=ykHcw=Po~i+f`kIbb(iwPjN><}9-RrXkhK26 zL!(Vnn=KoCOy{elllHZ6H4W)=RdO6}p5dQ9o-;Ww^JvetJ(!=7{`Em)s_|QXNfs6z z-VlriD${MftBGzf+US$ICwf0<3{1ADCm)vGDu_&*Lx#?#c(3luBn5Zd1~$!uRY}@r z304ZW1U^h>T8#T3rcAI|wI&(vFDb)Lp3Xx+hnw%K?`^^7t~Q>FG-u}OZvYRVDOY@V z@2NareuNg%GKmd1jrYx29P6%maxl2qp|_?h7F=BpV&|zJ`ZmV^tjVO_McSe#1)1M$ z%^Mg=%!>-mrKje!aMx0XmCjCA5Z{UXIPJ9EkJ8%_!JQ?HK7>&KoE{JPogoSuOjD~} zpGFfi3VhWof-zBNGSMLCB$f3=bfYTf+<m6e&8Jf-1cXjjZUkyspEDPv7iiaP9cTUi zu76hEu%KD6xyZJWDkk>y#LdqgP8zp3e{^ld*Q)ZI+w@huZ8N4buWbb9Hh?O9sn)-& zKOYt2-{T1XV07CYUOyv*2VJ?|dMcy&^=#@@3PIU8mzdnBc9xJc7xfweXIWjH@VqHY zX2~><^P{V{`c>1Km8b8ZNESVFM%6=hfyq^HH$NG-1<7v`v!`lMMg)7<zTNQAO@+>d z>UXW5f|i%?<@nxrq*>Aib$*?|onFKJD0&Sab-`oaXR#*BtJEC0y7woyU@_LPM#HUm z!H1^U?|5h>rfFS{bLNBEFFTsO*iO#M1Mawr?<6cc(<LWcB6>T)nNMA*KE#{Cj!XQN zzPixtdV+%@vdGh-+O<2{sH%47iAdNa0e^j(XDJgG2$5;)ic3@5xy-`9x(>H`#AF;g z1!hov&E7*wOigcFV0VkrelFp`FXyoDm75(LJg(G>Fxd~5IOy5MM$b}z7TPVu0q>?< zY5bL-$wE&<cRis+K?kE>@1*C|sTxSRCgmoD^a8}-*k1cYaUR%#)q~-TK#l>@c*+~= z%!dC6R@?V}S7*CE|6v2;jUj3<9H-!OzT^k26)+WPZu!@*#hIR1x5b@yFscANlI-;u zo_vS6{nQh%=t9t3JB{5smywc!{!0Ifc-OqOa_hb#WQ*rsFX0n^PN!m7VxMsmqUGs% zJ7f08<?b2=sd!-FD5OrzBop%Re3zV+4Z>ef*GUF<cop>Xw<8T0VCaf`5>O6BJb7;U zz&yFb8ad}@!!UFNit$pMaKRpfukFkiW0MERDpENKXP-3h&UP{U@uLeyv30C!BkG{l zu5K<apC4_HcG}NLa<F0R2D{tv@WG%OSHpG=<A`48NTEE(!H>q54Sx)_IxA~loyLx< z-jg)^UnUz10)a{b_u5b=BXccoEQ+^S%%-&RgyK0Xj`j(5R;+#Z@}bRif5V7Nzpg9a z92;ICf-<-{m1G5tF1hIV8=X(MU3eEmnn;VTegx=Jb`NLzqxo1H-|%jr97Rw>-1DHG zXXgU_LFx8pgjZx#CW);~wsW7UeWz*U)mWbN&zTt~=d8BxuS*#)7Phu4+(AKNw-mx; z-b>1U&jZ<W(49H@XLu}=d*3#~^?QA7?vlipZ^o$b0bc3YWH2x!EUbKIoNChm{O)V5 zEd0jguf=l9^;3O*OWju)fBnL~yK(#J76j`TEU8&8CFpLiy^Dm{0ged2tXgy>bss96 zU!spO0hBl3grxODyPylf0{#lh<i_kPwxK_rlfy<j@+AaZ>OBsg`<>?j)@lg~0PzrP z?<I64NL`~PzRVgDk>i!Cmc^Qo^(mY}f?wo7MVj^5n;&#Ul>^*iaIO1TwW4SP_a_xU zy_65ERq$*9xPt3=q>t@Y0nu23;_+9DXqFmfA&R~Y?EXrsk!5I6{)%=DE?1CJK+bJ; z0hv2h{rj}P2{o}NT#u2@J47%C6fugn(Ea%!rJLSq{;WgOLpT~pn0$D6=$NiKI`HKn z4ge*gEy|#0p8g}V*5|KC+ZE|n_ArV|VjU{EkZnzhCL@qv#s;<71sv!MBB;o+O}gW8 zGe<I4(Zf-*QOR@5UczPa?m;b?!?*9FNWeQ&Xl_r7rQuk<V$ujjDQxHP8gYQIu$$Pp z#;5V=)l?i$Cv9NkhyYSD{;J}ui01W=A&OM*mF%^I-JE{)-F|+&L%RLgd}po^c_RzC zZw?bFm)zMj9(%asxUEeWckj${zFMVF!FTxQ-Tv)*agL)~u8r90^%eSyn@lh-Ey?$| z(SsMbsbW%SDHWzzci<yAa}rhJzOCc8n*pY0&RNXMr??J(u|(+;t%MEl(1{q2!!3E+ zg`=CluWk~P?<W(mq%@HZSf&yn+30x{W#p(qiSbU?%&E?Ywxc)(q`&CFX|goP@J~>1 zFEP;YzhkK!;5BpF`sgC6yH)tFyviOS%juuW!Xpo;R%Qk<WLZN)BVkTT|2R^U)6+}V zRG~P|t&gGSMmhncc!UgfiEMqV<u48aQ$r!FM&Wxa*zqta>K|5whwb;sf~e4LDrCgV z*+-K-m_abEBT}LNs|)xnzp`2;2Zz|%J;4DIP+U`Yv76%_EoUaRPecDD4$RmmCPG>H zEjhXWyjV;A>~gJ*7#4cXfT=o=9B=XjgSRG%4aVVl)p|B$kvzSV%71m6T6)1G9&6vp z9b6r*_*Tfnrq-ca<tm}1jz14c*dde}3`anZvi`04v`V+3b(y*Ro}mWYdRce*=kh_s zML_cS_}kl%<J^9C=dG35K^*-mkx^*{DEle;N*s(E^yKGl_<isF=BHpCclWmjyAIl$ zxV1V<%)gFxRD&eQLNyN_;38Tfeld}`bw;9t(1LjkBIFwjZ$CKVdkyZ;F}56U)_s`m zGjs)8fr?*qqOKP#ME}($=e}YRz8!ul5jh6CP1Mwk)Vw(7X%hHb`uGqJQXXm=X4H=E z06*RC%o*$Kfv;+m;SM5VWo3_udI)>T7jU|(ml~cNVUwYQc(lyk`j=0ET(z>ulN=@d zEQxQ7!j$O|y)yxG!Z7TCon%dXE(``T7AXm*@1_A$W+ZG3^O0?fb&?dgHH(j*+^HF- zpn3D_zPcz~5!iaHc~f#Y&$CCJ_x*aps$x5swAByZukUG)p0BC0k(xrTDmVS6uNUUE zsc>R^!cKo}TG6x$l}&(aNp~Wl7()i|JKm{BnH}go8Y28umNff=hwp#Xp0E9+T&d^+ zvXzA)Md!T5*<TcCf8e<2JYF$2A98^uGu^gUrEDw!ap)g3<Qk*<@Qn_`nNDY#%=y}V zGs{5=$ADy$z62b5!hZbFy={YOI0jdAHE(@JR(>!^S=Fjaoda&+_Lr5NRPEsqEa;)a z+-90tYe!?{RBgwU6&(RvuBwCsL9-8)H)^|oFarO48Z-69l6(*u3QhDRu_lMW*?JMl zHC6Kv5APWK5&elx3fWl9yb~<;SJTSn1MkHgi%n)983Ld~LjFIkEZ#uLr5ebFVZ6o1 z=g;5Tmr-nGqFB^5P6l>)fAZB#dPF{1|6n7#t!8P9uzQ5CVq%6YkIL};aY)q}f6vhI z>?4wAqcaEerwpl#z5k>Tx65l!*VvBqi!DGdYA+ZTMqLn%9RGNW_Q?Z8Qw+inqqZCG z2?RV4*2m^4Nw}R`e;u_{KkW;&dke4Rvs2gfCrcSx@Fw>ZAo}b4OA7KP%aY#RDb|Ez z<Y!Y48fz2z&~6hrkT-<-vnSJb4_acMrYswAOkIxmIEMnlVQCaYOz51R8WiugrZ|{t zJ3$;e)%7otrhVI?FtOu&GU&k1q$TQ;Bl6w#MJG`1>};&t{#FA_X{P)FfHC+mGYGFx zufz26wZK!f!g`kp$(nGpuiSuufYG_oSv;C&9~qO4#M4*MWHhKrjdUdv+_xbm_#Jeh zu@|H{$JSyI=D1G@>*eCqTmJqi&054&wCO_dSFqB}w8K3%d0kURIt3-x()XzC@V9SI zvZuH358I@del|yT9Gv%;ipMcb+;8N}ZTr(1IfcULMo(A5`K%H`_wM|*o06((s@m&+ zGa@g81vdVxz=Y<rM-n?DY!5af0P(7W8BHEqrNj~3&b#YN4eX_~)946K61q^*gsxfZ zz_Cb&9u*`ZnCfM&Md-P$6(|s!-x|~O5gum0B45hX1_I^N3Tx4CL1>_2DPqfKrNSnB zj<0@NCI&O{SSHQxciPg>cu^d@RI~22zaQEx4|+_aQCs0K<&3!S_Oxcd6w`oTNkc$i zx^LUXOR`06itgPfb2~b3)Z)Ocqw-qxckOA*x(_H81n83=$=1^z%)xKJwB=YSJ?gWm zw(M?A(@Y~wZ>;QT&Pr4PLYp+iOs>WCqYS!Jg;3dlx!|V$jkSA-GOeB^b!*Clf0=y_ zUZT7c=AFR0AKAviPWcbdRn^Ke{vR?I!9mC=2w`MVQ}58~;1b{0b7b*JCHJbgo!~PT zw-@luR|PS>7c@;S_yUIjDypgF&OrTe8I}nEK&>`{mJx=f9DaveX3@@K03&?T1$EU6 z9BCx&^eVU6=9W`9@XncG+2;WLSRv#Z-eCZZ7N6e-VH>k;xaGYBln>Y{Z|js@lxVI{ zBoBu}*St5mMBu-Z=exTv!%=}#YdeBqx%%{n2JIKT@uqL4PXSNMUpJX8G*qs}c_nyY z#N{{9iVL{$?4#v_n?tBWZ)hVgiUl@{-SbC?&&jB>CASVr-=)$Uj8mvba^`aHRR>5e zvumI)N*I*O@-WIi2qvTIst?9)zQp=7btToGo;H73xmrFS4beV~gL!)^W|U-ZxcJ}Q zG`NhV&+WcFK>4%N+D;#rb<*nqaeSBxj>=?wSALc|l6W4j=#I;7hsno!$;d15qUL3! zX4Qs%Th6t4f95x(v=g7D|CX>D&i^FJ+AzJm2Hr39a}31>oY1)M2ilyog|Ktmsw2tN zv?z)u3gjKsNmzcl{&^hR(1W&cve<e6mH=&3vPK#5lQ32owlJNXowbKQUJeyB%%qT9 zg&O{AEBmoTI!~VMLb7H5XCy@c!Y<^v!T0QgY^H8_u8)Y_$X3l9Nkr|q#!Yb8#*YV` z@xKWp4wGf~Tob!DE|Aa&O+rip+X4L{6bW5x6lm?mjLIxe$}gsuB(Co;bc_{)-dW~W z1^l5kePkW~F9Tlr<vl{AZhH*Axy&fRZx%8u6zTM;i0aOFGC?+DD054|^a14-eqRhq z?hgF*x8dL3*+dRhpeMK53Z+HX^G=|Sd?`2~1+Ua&$#*uFMab`PoXGhK{*Hub04H)R zdT#}lZSsH8wDF>nlq*ho>d^yA9*IR>hrYmG5`_dF2z0<=udFtUOOaHFZ|-KojvXtT zJs)Y*^=3wZK|uNlYHZR|*30-wEPw0*(8M`0HyKLDNUn26+UxB$A~6fkP<7}U0I|dk z{L#-`i2@RqTCv`bn)f6V1{GG&8n~s!3*&&U-;TI+dm`h=kDr(>p1Qy#lHf6*!3C+j zjOBPDtbFipS!Q_xLuF6A+%QvP_E4=tPvZS|sFa?hQr?4i(s7>Eg^&%`6}rcnj3(O< zHAnRqv&><=YpI>0JB7z)iD~}Ie|r=@O*8VSRddR^%UT20KX9inJsQ0TZO9(lzFsgX z`zocK9f+F}zO^Tu`T6VBtb2v)e`Mz*N_F#@BLj#YA^I%t#mi<T?e<*bi+7!s<Kf=o zo+l>g)4U>gzYEpA=HY4cG=hjkev1d1G6v}yohO_*-)BrfWGs<$V1aA)jPh^aW<Yz4 z<11u|;k{8{lAOAM%N%hMY|zd#t2_U#h|aB#EuXXRvtp8|#AN#9)T4+^l(tf+v?4dq zQ@?&`d`l`ZKm1%QZD&NQDt1fzf{WqzJf2m;ywhyXgNAjR@&H@B+ow#&=MU4-ZEH;5 z@qjGoYi97fTi*@ybW`XYOHUE45b{i{NNo8)QDfy0H6&m-9)a8WIG0~4&ugAagRZ8^ zdqUxrZl!;ktR<Na{e@T^q1k}UwP3xNAZ3U|&Rm#^hB>I(!Dx#F<A#s>u=TE~(JnLL z*B7&n;WhY?I#qK1G58I`jM>-M7B4Dlahk1rkqMcpoG-cyQ=>ByqnMl!`d#ylrIGpU z4?`BJ#V=+v88fbZFL9q_FNMr)3-ZOPO&A40FJh%pmpfE;Qx18v`cEhCIae0m!JC*? zZwd>Y-{&G-vBx(YJZ*g|q!VIDGIe*ngl8tR_M()4XSH0N51YbG8a=%=gscz_`ff$J z)BR`mST>>iIP1>g_zEG*Ov@o}r^)T%0Eg}z??C=gqLyi?suFEli$7xZ#+M<cU}HST zQ(Y*nLs0Oe)bFpqgHS?ZSjqMMFcffKx5cxEAnS<`E&xs5+x*7w8FolK)xRu$SL@ek z;cE2a-+_7Xx4WsHCLL5@qfkrly7l0;aTNuCzksnK1s5{@M*=7d-<ubxdIdGP<sJ-q zdL4I2={x1p+oJ(6yFQGkw9YPe5^4|9a+GM3;-q1fQvuop;p8eRa~V5MJ@TwjQ9vD5 z@N*?~^S*{{`B___ytJI;53zA`+ri1YwrF<SU}pMgm&kc`%Z;WH5lO1k1GJ+x^T%d$ zStql~7epkg<>hqN6wwiY3Cv-%_!`^0+hut~{SL7m3$A7E7$p^(5HHd`m>`>*GeKhW zqg;~YZNcFVS;DI*$(F+1g4dmk4_-pER5hLgv`R(Jg&C&R2t_Fco^Y@caa3a!vB#xM zWj~tlWMThV`l>r(?^hqWCYX~HFvAk5Um}1HlFs{-f9VLvY|afH|9tVoq06l6whGr+ z!gYR9QiKy;mp1zI`#5terlZ1#+N2dnmb&9T$ICfT&HW(`$+LvhwwW|{G8?0k0A5hY z&VxA|ME-L5SF!83lY2U+L)x2<bhEH9#mDB1W_9*ldV6<4<GBEQ3~40wQHD8LBRpkb z#XiYRGG7TQau9&yeYKNB89g~x5#&m<(~t13?X=pGWY0bvm?I^<gb!{WuOC4jJk2G& zBHwV0Z=2GR(LLMcer}}uO!#dTf2PCw1We29E2kL;>T2jCIfnA%f^rv=U@Ph_pRG_y zbE4oDn3t41<+QtBI<l~`ZP9A^WqYR++IE+U%R@8HKYpqoU{HD?uuK`0tt@|W?h_=% zFBal?`gwHw`jJro+vp~r{~jHp1*#a)=l^;S(h#YiZLD`DnJyF?@pHy=hEMV=2dn|i z;BdFTN_%9YBCu)nVT=IJ_=!=JU)jCgy)*7^FN;antMrjW?;OVL1LA_7_=&Z7Cm9pq z0&YKl+z)MF30gd~ol96V?uA*U#G$<&`0Ee(A{v1aPbj|=vp}yO<aN_18%QU?L(juy z6|Gmc#mOpqwEVy~SGn$mu9*0d<x64>@zf}`9tX{RNfLhO-^JESg%_GEFW!B9s+2)N zDIA1_ug=Rqx(KlK@8}OSqL`()eOe4THPy64*xv3HLpI3<VV~Z%EB#4&f(uwU{<m4^ z9inv7EJc^6<%BkgZSH#?-&is)_mQyK8uffR9u<D5*MWja=oBgT=r;xW_d=Mwls5oy zsQ`{>?55DMdK1r?h}3jXe325X<?`ZRd4q}%*SANEjV-?NCLj8Vts{Eyn&j}Uzkro8 z0EzT$;?vMlL89x`_wz*REjMdQV1$j3H8kjA<dJAJJf%C3?88*9#Xd;&HM<C22rvi` zl+gcMSy?Ew`s3*n1|^Wq7XXpBsNO~;b|CcJUc8^!U@k{|f9J;xP7v4Ccr)(LBD=lA zGWSF=(ag~AroVo0vX4Ng6xUW!HKY?L7BB`3PvLrVz)7$7WeX{#nvxO7unjp=yCZA^ zT{xz9N8H^~42$*6#T$~fm!WnbwWf3x{rzoG`jW!pL0o^z1;9un)8XP`<yOZuK8{%v z)2oqqn5XcuJ^BgFih#`Z1FvNIQ16~)0w$32B7n8D`Y--baZ%jBj0t8$TwuLxHJ4%3 z|Jni39BMV%C2%`g37ojecPXrS1e=F&?Eq-5i#9xk*SqjvW0l^YSi7)I{K#<NR<o^j z3!${?xGrn9?))id9(&XGezg;nFVAMad2TJ_oTh~S=LFyU2*<0&KIU`xiTrpSQvB~K zFyQXDvenl(VIIVPfOxEI7Y<R`<QD0%B-RiiX|!%Yi~>j#k$IU`n{Bk<NMn`zd)KX_ z%_-!FqfKW(RB8!cS-ty28~?g|+5kNzyGZfyo%2M$eTeKd`oo;gPZ?jRx_R5p-Zdr> zse}!b#JolORv#2*P5lOcm~9cxG2%nQudT)_THlFaC^gP5;v5G4INz`ST{$MtJG!$K zE`_%7K>*Xfjm;`FFPhz-AQrG~#J8%Qcc*S%pHRTHjoZO7_Tf=;qD*4A(uZ4|E<{m} z>80htt*ULws7#*R*~!Udf1T`P(d~YlHGnB&u+h%Qx|;DzMnx2EXT$r_PbIr(I}FRB zpY|~M?%z;AT`qY{#V^#XHQkWbcoq@?_Bbl{KOw$~RA*rUo<s|uYx8md6@=b)!5s$I zdbN5Y9&ZT#si@4<;EktDKL{2uzi=sk9sE0KDQa1kKLjsEd*ji-<-l34;U^ywSry{S zZ^E<F3Yy$=Db2UoMZyS!Jm!F*jop3m2{9Z5G2YMqA?)x>LAChmlViBc_RVarYM6sk z%0OVF{ZYG$*+oCXnuyo6AXt+@2V%Inu-`v7+dYDK&Zuv#EM=nepMO`CK*6&at}>5& z`K~kbmm|OEOD$Id&TOK=2K$cQ#?rh&<7q!}2#E4R(Niv6xmG)*sFu^wJ(ekqj*i2a z(mzCknS_$@ed<KZl2`p_YT~T1uRcOKVM5B?8L$Oo$H8Ff!mp@tBV01n6R43V^6|dW zKPX33?cI6LRl#=K_XNo_UrBOGl5Mo-Bpvmv$XzUXYU&oz;P#X*(?0QX1oMIS)_5-c zRKHM|&@q{pMYdop<K-itD{FHE&{uM#ihmmOnk;wsIR0><Q9r?!lfI($#u^Zrzq+#1 zpW?6gLBb4&nd6aBQpbl^&V74pX4L<rokhPbK=?ZI5%msM!Pn}X>5XOcv~Y!d$hsps zct&xF(*2%9;NHSx#nwgFvntR^y1ofE`?&U%E3TnM0AO+16#gMYq21_S8{#Q`{IeCO zF{Qv6+b6I}3@;?bnSwgoI!mth*kpesL$oqyVLgr2_v=P<iSMA^Pv$Rz!*CjL1$}77 ziS@m}JBihaWEJ0sxuJ!Ww9Ls5I+ET0wT&<`hpK&O*u@!f2^XG(5ULbYkJIu0@=qg( zJ(pa#Y+Co^I7hBq1C*Uktu4iTADGUV_zNsLJyNDzwL3(vg~zj@#T68EkVxdGAHlq$ z(XZd<{f03z4_opt(R1mH+ddC(!<ByH1w>R@C<EFksKmVf$SHcCyZm8!TNr<FHjzJ@ z!tTFO_>vXV72{aNecfg#xsF(>3gZZ{KYsYf!lk$faijcDIosg}@FLKw6ZkoNEncBR zu{qoh{`bNqg<<RI)X&*&b<BdYD~_Pwmt3h5CgtK0+r$wyEGl!Yad)SrQX4z7C#_(g z?94v+5aToYv+vKsW>NnF2n+jkoq`&tMz0(gfP>9FqsNa#um(w?@CC@P7pfoGpN4p> zeHmL3`eO$_ZlS@dma(fFT9Iw{@NGzREOM2Dw&IeNvr~j%5tFJC5Px2DXOF*)nV(|a z4kG1wy`}c<?(Tqx3r#dzWbvs1t0ZhBoQ;wkSc%@JzKS-K?O96=17dp62BWx@W0-MK z0{(AICQ^?$(h-npi%icL5sFQCO_IEHK$i#B;uY$K?^2p9P3y7jE!!K5t!3=QtQO@$ zoTa^&fFYZ1AuDvi&up;Y*NHB%MI)`tfA6!#zqUN2l6BS&O_q`(y8lJk7Yp^TO@Q5| zyF2lLj_6Rjc<;gl`GV|(r+Q0zw7&YRTUty12*J-ae|xqYG%c1JvbJsF*}qV=_EB)j z^V#s>@4eBppM0h#q&4Y@GFD$p+JN3s=lO}Iu)pSbbUoJO+GaOTc>VfBwI;7Z83H^D zut|1M0;m{dp|WETg1PO>tcUw0?mT`5*tCxY_H_&_r>k)pbSzUAye)W{;Ww70PGdy6 z+R}RG*=lF^)-BoMd4l5`*ZeD_M-s)6*nw=4gM~f~l^)o8R$1mK{AE&3|L0A6K5yJO znk)qz->-F)MUq1G8WhFc4G%q33V0>6++jDS!zD7>G!YyXP0c1d<Lcp@g0`ApG(R|C zdg|&Vdm&wX#Sq~5qi#=uR*@|8KR5Bj`B#uU`!(w$+63X`SPEmi!QI1{sa}U(5=iV< zVS{K+dG^}}sNrDJ#g%+vb%7a2QL90Fk*$O$g!FIypLbspcI&3YI%cd$VY6;mfn4F` za>AwwK(wV8<V|%`?f}bkBkwqJfIM=n)Ch+%i@94^qT6BDSWkxE1azT+s%mZ>m>DeS z<|=g}VELh%9oEl<GC3TdiuO6O8GQlzuBEE^is|gZRqXgwr3O#3_>Y!yEs>u$gjZfa z#Xq77911@q8u>m^oH0`<%4<JOT3y+mmkj~uD(HTp3SPMmRNJP~uxx1P5kE5k`?aF< zPy=Jzx885mEd!_3dS;zi+HRk7yhx(%Rv~<b8r{M`zUXd@9b7qCI3`eC*H08H8x$56 zCdK^YOz!D9k3u9=4=Xf-fn0nWD=o(D|Fs6-x$KQBvbkHuuw`y2FyHIYup9{^RDX3Z z!H+y4a1!S_{7n6zG>1$0V<jswTlDem@Md&)k>*p*4H6r;k&2dO*Dm!$m!kKC%b!gv z8(-afBA-Z+qf*H@?Fpy)o2q1K<}>?*hmjf=svm792~Sv6Hozxnw8K_P>Z_GibW47x z)0+*K;bW$SJIEO1*7w5$*chEmum+#HnYC8tJO9te(CoJvJ+y!S{3+2vIfysk>U`)t z3-Ss~`b=DEJkx!Bm}WrXtBC*EhD?ZsVW~q`7@`xcahgc{M3x8-FccR@?!A<~#zH=i z6U8Uy3TwhMY61PFVmVdOvVE>F2wxY@=%}|LtV`JQ&_MBztDnp|pi`n@%z<m-NAu^q z{=A2riX!v8QjTOs^?h<n-QHDjV*Hb=JsOtM-m3wp*Bl^`ZD{i0HD2T+#lTIQMGaUR zCo%9KFwtq|VUZyg6<mDaN~kD!5JL9!EJ4eo04Ung>+>fItii+#wH*z0no$f3hA4af z3_92CeN>epBcQ9+_p5Gbz8@z*m`zVN62gA`1JhT^mKfCk6L`(9aL_ZmM2f2idq>q| zhXPxJmz!Oe-14ioe&vt3p5OrfSG=pBxbfG$NEpKys%MA^B`6qIpcwcI(Xv`EZ1Syk z$cnVoIB<W#?lx;+&E6IQ3hrf1&}yBHXw2ar&`2Y>e3sl!bItN)D<U6=VE_&c`T+t) z*^88de?uIce;;@1C6Khl@CL@c=+HXdGS&;arFpg4&&KR&XYEHs_#OG*{UHM_!E-p? zkZhUMfzhP%s;tP3)8tLS{@(f(kgxZBmsZ5sf1PW%(qyvJ6bcwaLDAUlXKQBLNi|Y0 zJ8^Zse-27!?TY;FYAa|IZwTs{6@)=ezG0R^V<M1m%p;xJmlMVdWCw(gAk#dh`P`=t z=WR3bO^Mk-M?vcfNBf;gsLjA}7w4MxsDnnB^3jTw0i6=day$}g@MAby(8@E6!rI_8 zSh@zM)s=Dz&tI`uEnA+xp}XuiE%xdsW;wWZz$`Q7o-vG(c-H^eB~<WH_P#70TWNBY zlqL8cOx6>zsu>{VdhYvVh!LlzB;xi{##Jys<=wlqb6sdj{4X%U%$vXRs-iWiR#8X5 zZz$cZ!xQVbS6qqu+J)IXY|@**Nh}h7d0fD{c$nhCGU$y*3nY`z0kb|K(U92Z^o3Q? zf)j$OM+VK8_ut*hohrAYnwKY(Po7}fK&-4%lB;7Qd9N``FCo@|>(2Kh&eiX;HXeDK z^I;`-dERuyD<!!$-;z14Sp=~#jteOV;=3-S%DN(O&a59RXRZ-c{@f1spXfBgu9Ze> zKjS0}c{>+@@q=<94z-EN#@E>Gy+F>SSzNQ4jEZ`yPg31rj8w^eIIS<#4cBeSi%&yE z>zM7iC|#bLe6vfxShUoM6Cq&*GZvCP$Gh*=m6NCL<yRFM-q0h)A)F*GlBk4-VU*mJ z+kzL_D$eWCenDP+bzf3=@tmcg;_Tf!0jC4WQ+_T`v`C<zqdi=h6!&I*299VgZCcuG z5f=9+=coB__d7Q!=%LkIWi%XmHmdw`7I`}#NeejFz=_>1a`ga4kgSro?XY>P&3%S& zkE)`9k+GF$NuM#;SH_6dIgWPP=R9gik6U!^_qNDJQMFa<^%|ntZ-@r+P%dUZiI5ZX zA?f^n>0sMEAqlb9cFWr%OZYccjU4%Vnbm&A{BF2&VQdUIU@(@_=cGv2Y_Dxx=~D+b z<3(EQqCuos>4*P1LADPd)Q|&OtH3*$Y=za$LOOXPtq^@I!@7;_FEVQ)Z!YEs`HByr zUQZRh#IA=B^XPRP`QZGSHH`gOsmDZMh;{oh8nH_CPRu$%@qEvNVRE%93`nRN+X?FT zNgR12E}q|`B|V=XpY2kA#pQA%-dwD0E@n<j16rM7yHsmkti4up!Xkfi*_<NSNP@n) zwJrFSbagE=>}3o^gz*O6LKtOa=54F~v`t3Z=s&tLJ6=_mDt21lh6<tQZ4c=JS2b}( zsh$w~MfNVXfj1lZD;ta;IcrTQ$LazuKg~|AyO%?iOcCOzMg?q_yo;arou`4hTwBrT zu~ODXtXqa2$Up7cq~#4Fg(`pNA23Rk6uH)@6c2e)nWW!?2d)vamdK2E;s`S=t9hjS zihc|~!3%av2I0MRT=TIrZd(&INgaK8@!VDs$|>{J`duXc8MB?n?M>jX+?yD_Kko3k zNR3s<{E@Az_L=#9DzaGG`hNXllqJZOrf^c+GjxSh;OT`otGT)Jk!=I~U@Ic%4x4S| ziNr=(M*TVMI~O8LdCeh4M?G-RiMxX*JX$L%b}S#)32y|=iKyP@F7)^9+sD9Fd_P-$ zk0RQ}1VfeCfGqtGO48)ml^&b?qo5uw%p0N1)K^VH!e7=qdYvUpoap)7HFC#ADLEH~ zqNAe|9+oL=^r!4}o<HW2!frm(n}q{D>&~@9{p$E$#AZO;V<}Ax|JQ%IjXdsxABQ9Z z)lVLX*_m#2q9_Q#?1+ADv(NS`75J_pW;dTBisz?S<uzSBdgmfJD3AlAT91}9+gGkA z%`9_n9#cniDXn)ebr<fcfLJ2F)6pMHYr)G!Sad7sjeFPncFz9-2}kI_{R7@ryime! zKYS^ZZ@Dh4Yzd~&Jllr8ACWi|d|BsK1R5Ntr*noRAiP3P=nrvAB=jx?X43(8rc|M{ zL`mf^0slnDsWcIUyU6NCArG6ck+hGomRS<RiGGv*1Kk!oVvA5}%lT8?&0OR#_uxF5 z`>Lx;sagLzu<TvnfkJ3Yi_Gk+>>|p$L+9<Qu;78l15dnlODwa#X_x&f0rqOW(P+0O zQaUYwCXmOQ%IMiW<$t&|2UlTFUT{r*eB>uSc<;U`1(0`{RAv&FdvoH+le6r%CuUiF zn*yz%*}cSrN}obkaB}u=TuAmA6^cp0hstvwSo+x9InTmT`YZ67!ycv5kc@fdeI;kL z_8*5AZBQ2ICxGhbii&=zJFdLb78Of&1jUu0%dZbkKFkpwj&gAJ8OJXm@uS;GF^i(i z)uYBK6DVDd|E1ByXxDt!vC=cQzscP@;^o*5RcMAwM^Y~hVbK+}ZLLRy(Cd33hf(9l z0>6GTksYUk0g+Cu5NL`B;-Iews=b*xdf#v=LzAHN-W>Q>jLPFq7}TO1-M4ah9GqnP zmzujFn<zrFZq*2rSX0$Pl-@B9@*&nB;pln7it8)T;sp{l>C-oOq^`>7nfBL`Ms&lv zHXR9?FT?`uT)S^Cw+CK+5VImH@bPC3y3sj*uzuWWdxw3oGa(qZnrs0(XfD1Pjm%nA zh#mhWHYdIy>T;CYGwu&8fgQa<AOAMa{Cu`E?+_wLOFIV+%mEcRoPiF{*Q13my)>IP zBzQ*FdC#{GR*}40NA277&C!nz=Tb}4=2h`8SO?YpaB?oo|6F)rC>sBKzhkd`WZm{2 z*B!y&yvyBoys*SINm;j#P$-!SV@32&J!L|*t0OnRX}{p`^1C)O#TzcjxAkJELIc%t z(QQbp1daQr*^tfjpMl2<{0kvlUO~pTCKcaPscwTnc~F`&DwI$%m7OtkX`QsZ<z<2g zw`{?dv~Jw*@x70c8bkSF2iZx|#rv_LzgMojCw7!W#VSM2HD6!D{E5j`lTs!^o#y=N z2MO)JbfOnDnuPfJUev?aD7KZn0Mfw+e*B&o=k%1Zuhs$5rlRM2K+1a{W4x8WxI3ww z)ky{j&V)VdlkK&zPfyX6h&4B77{0T!{4H4gh8FZE?6J+2<iwVW(5j-4o^I(8faTxR zaj&@aiv_i~-!jR5l^F<NTlA+vkuf-l_CD9Z@1W#3<gr&SHZ&}rbYKp*g1yJNkeAo_ zTCGn-8i34m!+TyfG?C!7`>{93avDmi$oE6)9{d#3Mwv$^2W>^C6hy}lHH;U+{m2`( zgjV(|Yuq~nS!qFSMJ^VR+_PdDIBCxDW3_TsyuOd{J6z~&s9kNo7T&m2qT3tME7|pl zGq&RY+h88lHUWQmo*mIi8V@Y(B9gdYD@zo_Hb!aIAvT<k6Ikw>9Srtk*SvG}RPPW& zz~1A=!WG}yRL0^(mi$U;o@6?YL8>BuL`hR-ByzwJKB5YXDT-Y80Vi;Bqlb-aTBaKh zo;SeJjo~Zc1pWj@E~SvSfwmodq?DK?24|d5s2UF8m!tbk<)FkefH}<a;|aDIUzstx z3Ho(z>zw<9aGwPsI;V`u^+Yh3<}173Mn5KKL}Hk>P$1`V30RIv5Nx`Pqf;n8?lWF^ z1!Pz2hwEvjv1>zijU6hTB#3n<F*R=fI11+1<{s~G<t<$#8Kt!mG3xfO7_eFQ^%wWU z6m|i}8DTO&^I{r6v^AoLIb`nY$HIbcVp29^Cr?jozu@<eY9IP85)}Q5nmN1|o1*fX zULC<i1*CBI$<W}wVaHAl<*Vn`*A#3L@>}md`CcC4uKPJrAdyj5A9!(OW~I8_;(8XT z``EI?_+DDY>XFO>j5Fs)FBkxykT0?xm{pY<Y^Z*_cf-)EPey+7`GArs^rmx&?#W;s z+9OmCc=u*?rbh`KJ>W#~^2_2M3t5Z$^Vfde@!~AP=Swd>%FGZta3I~UNeYFxKKA9# z$KZbIzGxtTDIv4wOIO~TKoNk+i}1rFn3>fbeyc=+?^RU;_qs0n>ah@R!a4K>HbjQ6 zjeFl~OS9c_q2A(V76C^_)xJge5b|`TeS&J^-i}a<=VU;Ts&hAMm_xPJ>O0hrzN^>t zKMPL}yG(1IPfe9+E_o9<jB*!o*&u<uPU;z4N{dPl;$6Syznz}5s0NW`eST15W9qd` z$;%eTp$G^9NC0@VF~d@7qODsKz(JyHxpAi(y){m@vS0bF^Z>ycdV(-D(+w9h3k0>q zUB%~BooAUkO{fc5FE-jFA+@v{rzrihUK2US`nyG{r4>RoB^Sbd%y9wL9d!5voQwXl zrkYEGdzs)L^*wi;ARhF=q>=<Sp2sci<N89{rvWKFIi!63Lz3Sh%~3a-FOJ^6yHY`S zYCc;gS`H}|ea#xJ2)6timl$}h=!r;n1&PLEs<5}42Il?5Abp-HH9&(VCvYwzj5NU< z?{M7(ePK2xxe|)|Lv{mnqlNX)+B<+h$ujKtudSY500InsgPTk$b{_R$h!4zH)!pK% zhSi&8-xnRa=xOd`%;FJ{Tp@#X^`M!e+>{k=sVdaH&;G{7|1+_$gqaE;l97dmj{&IJ z<>fsQwWd~o*Q>y4M39Ul4erJ=3lCRX?x0$sB*Ev_AUTb_s#V!VCc;}KuB-z-pZ%iO z=0<4*NE<i6R}1G~ZPUq8#%^H8))%=vMhGJ^%5G0Zg~F4Pp=Ds3HL4M8<KiX!JoPnV zUBJYP(MisQ7DQ$mURu0;$`H5B>fB#)Pw3MA#DG<L86b6Xb$i%NZL*;%3J4t{8-INm zuL28;#+_AC^j4kdVep2)x_FoI!^3U^Bd`C4Jm%^D)~RUIEnKIqphvlJFUcJB6cY~d zZD3@eJFx~1Roct2cxiV?PHBH4DbStT^mXSO2ivRL-HZIA8C*Y1%v%Tv939Kp*&<Su zas&YpjHX!)4`Ts)-@@FyEs)VOg8UDf@cul*m|a`U*F1B6ff_!1Lx331$Pebl=q z6#239r(d~o2C>$3&TPho_5QWC1?b+PZ(g;7Z}j%gf*0bG1EWmJ>lPqL?_PgJtrIY_ zcC^S$&>tGYh4p{>r~BF;9HFAuc4n+iQNa;FD*1aOPl`ys17I3a82`py$)sdd;=;D7 zNv^#;Dy=BoKI&J6TGGRp(4QXFZAAbKKO;ta+_^csae2)SZHeFQDU=+gRuNhUs5`O5 z3X*%Ca?I~@7U%kk6y^)p8Wo-U%;pBwE4S%IqYKdYCuT1!Az!hHp>MNc+=g_N!Qzu8 z`z)l&Zuc)Au$?{yv$sa1H;KPyM-{*pH!$LZnzq<h)Ee*n=kJ0_@+N@Uc;ibqK3y7| zFdRSeEVMh#M0`-{*zqc`v~lbMhxo!oQ^u>%-q?64cbS~Je!}LLaC}cWy6>?opqP>r z>*$hDZ3@C9s`oBm5_=ku!Tjt&v?RVGz57#NPVPqCem=BICQk_Uk$p~`Y+u?R%~_oN zM%Ne);a%QSy&peasgr=4|5%MEHh+x*>)tlfE1v~;uo+9938{<AKx@%qjYx-nD3@_~ z?+rlH@cYC>K;1P#G}U`*ZHLtVN)4@$+7mInGkdXLMfa2D!b(FCN$x0y$T%{b;_Lh| z#ADC|jVM>Aoq+3byqrp(k7%4bJs$H@kk`p{5!!g2|Er_0O1J8cIAsg4^;^mz{ugn= zi#><l!)uwv$+5<gSLbH(|Eg{FaVc!|<)mdiWH4zh_aJ6>bgMPdt&KrA^RdwYD)P8L zod8nhn6)sBZ^k=vb^AwCS>i&M)~Or5`Rr@cD#b9dNuBDvb*O-=(4-qGcYpuMt;jKc zF|yBlG)=G%HM%h&4bjOJ{4YBZ(CkeQdt?0Q{Z2`LiHV4M69UXK_$;D#eN}@4R1R0! zc~oSl9`I)9rSsK|H6`w-I|qC{I0{HM{^Z}{Xj((64<=ek5m|Y!i9WWFT6Io+YHLEC zio8P0GP(7U-xE~V324We;0!;$FFh7r_v9Uj;M9~Ebr1z6GrnBGhh_3dICbouZMzUh z1EwNM$4kv{W3!H;+k2s%ppbps4WDo>IY3!aQBgVEBa-;i8!etru^>^r9a~-X<?h`? zi+pOn;QGOwcFa9)p*g1QJX<2)yn{-d3DBM1NBjfndITW5H>5Y7I3O>aWH-!2^R;Ei zdfTRWthm5zdhJ`>J&*gp@~kJiEqX$OSRQUN{KL?6;N~@!uyd%WU#0u#WNBVUkvEjf z3~#4ZN@`u=t8+d-N7olv_UF<E-${sA)TzK^W#Onbpjq(nt|`7}nC7SJoS-l7%$3c; zR##-=r&Ishijy-H=Lj`!#PaFXze@Ad3awNTcK!KXgQp5d#cviSd*bwcKP=Jt>I!~e z?s$y>awPe=dj_IJ9%`E@K!`{0rblk=xAkXW(wAM4D-pd`sT}YB@hMimiSla3!FISF zldh=#ue9^bj7-P3qeOGB@Y_J9LDca)VhKiXw%0nH3;nHQ&HZmJCoV?Vi5j|aJN{Uu zN{ct~M3}!48${#G*7mBY9nj);dGh+1M)Q1ZbTTv&4*{a3$Nm0k-5g%%wx0KJDPH;> z3@W`;@6VKYuCq;<;B1HXmY9^|DD=gErs9_N^9=!Bcj(VtTh5zTRt74T8866U?=kbC z!}gc6YyoOOs-<cHmoL0QUAW$pdf(&Xo*p5{7JbQ!<$**NeNb|7*Wu0Aaf@ul@{8CY z|GFXK+^tl13z>tCoqzu%V4^j<<UW;3MQ<`lSNm}mxqKbtasM=)H)Aqy(iT+g2whpa zIbgE;xWF{8p~?sSJ9Jr+?^)7B^~tGK?!?^4!|tj58J8)j>-Q^`u-4j+Tl-_#@Am^s zaq(d;<$sTW&JR^fF<Q`tgjpEAP9ueGee*u6Gdm{Q(*gZ`=K`FMpv%eUt5^Z66M?Zo zi`U*au6vtrj++K=(D@<t?x#`IscGUU&v-bR{u`y$&>N9pQn}tD-ODD;S4tjEAQ^S@ z^#^huq4n+m1kzuD16NT+0wxSy&Y?!AW5ZmXOAUM3Wg0F<$p+j>2dVNUsYhI49~FQn zjww*fFlcfUSKXctmMLx?KJNWzRHhH~A8ya8p8CE<+IT0�_%zWI0}d966Yq3jF(N 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 literal 0 HcmV?d00001 diff --git a/book/part04-algorithmic-toolbox.asc b/book/part04-algorithmic-toolbox.asc index 6b60c1bf..3508f0cd 100644 --- a/book/part04-algorithmic-toolbox.asc +++ b/book/part04-algorithmic-toolbox.asc @@ -14,7 +14,7 @@ Later, you will learn some algorithmic paradigms that will help you identify com .We are going to discuss the following techniques for solving algorithms problems: - <<Greedy Algorithms>>: makes greedy choices using heuristics to find the best solution without looking back. -- <<Dynamic Programming>>: a technique for speeding up recursive algorithms when there are many _overlapping subproblems_. It uses _memoization_ to avoid duplicating work. +- <<dynamic-programming-chap>>: a technique for speeding up recursive algorithms when there are many _overlapping subproblems_. It uses _memoization_ to avoid duplicating work. - <<Divide and Conquer>>: _divide_ problems into smaller pieces, _conquer_ each subproblem, and then _join_ the results. - <<Backtracking>>: search _all (or some)_ possible paths. However, it stops and _go back_ as soon as notice the current solution is not working. - _Brute Force_: generate all possible solutions and tries all of them. (Use it as a last resort or as the starting point and to later optimize it). From b3039ab686ba664d44fced91b87c911b331c78d9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Fri, 30 Oct 2020 16:11:54 +0000 Subject: [PATCH 084/108] :bookmark: chore(release): 2.7.0 # [2.7.0](https://github.com/amejiarosario/dsa.js/compare/2.6.0...2.7.0) (2020-10-30) ### Bug Fixes * **book/set:** split Set chapter into Hash Set and Tree Set for better ([c1cf57a](https://github.com/amejiarosario/dsa.js/commit/c1cf57a31fc7a698665c82c8fbd2fde7fb825078)) ### Features * **book:** show companies asked questions ([b3167f9](https://github.com/amejiarosario/dsa.js/commit/b3167f9c694c5e6719bf1d01804aeec60b41e57f)) * **book/linkedlist:** add applications ([2b96f00](https://github.com/amejiarosario/dsa.js/commit/2b96f0086632d9ddcbb7e8f76a061a46f90a65a0)) --- CHANGELOG.md | 13 +++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7b8367d..9ad80831 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [2.7.0](https://github.com/amejiarosario/dsa.js/compare/2.6.0...2.7.0) (2020-10-30) + + +### Bug Fixes + +* **book/set:** split Set chapter into Hash Set and Tree Set for better ([c1cf57a](https://github.com/amejiarosario/dsa.js/commit/c1cf57a31fc7a698665c82c8fbd2fde7fb825078)) + + +### Features + +* **book:** show companies asked questions ([b3167f9](https://github.com/amejiarosario/dsa.js/commit/b3167f9c694c5e6719bf1d01804aeec60b41e57f)) +* **book/linkedlist:** add applications ([2b96f00](https://github.com/amejiarosario/dsa.js/commit/2b96f0086632d9ddcbb7e8f76a061a46f90a65a0)) + # [2.6.0](https://github.com/amejiarosario/dsa.js/compare/2.5.1...2.6.0) (2020-10-28) diff --git a/package-lock.json b/package-lock.json index 756dd68a..48d4536e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.6.0", + "version": "2.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d8aee567..b629b146 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.6.0", + "version": "2.7.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 38a4178e69e698a1b3c0d4452f0cfd58aed5290d Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Tue, 1 Dec 2020 19:43:14 -0500 Subject: [PATCH 085/108] fix(book): update company names --- book/content/part02/array.asc | 2 +- book/content/part02/hash-map.asc | 4 ++-- book/content/part02/linked-list.asc | 2 +- book/content/part02/queue.asc | 2 +- book/content/part03/binary-search-tree-traversal.asc | 2 +- book/content/part03/graph-search.asc | 2 +- lab/exercises/10-mixed/integer-to-words.js | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 066cbb58..3bde2929 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -522,7 +522,7 @@ maxSubArray([-3, 4,-1, 2, 1, -5]); // 6 (sum [4,-1, 2, 1]) maxSubArray([-2, 1, -3, 4, -1, 3, 1]); // 7 (sum [4,-1, 3, 1]) ---- -_Common in interviews at: Amazon, Apple, Google, Microsoft, Facebook_ +_Common in interviews at: FAANG, Microsoft_ // end::array-q-max-subarray[] [source, javascript] diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index ab5ad56f..dcdf6a20 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -627,7 +627,7 @@ Something that might look unnecessary is the `Math.max` when updating the `lo` p // end::hashmap-q-two-sum[] -_Common in interviews at: Amazon, Google, Apple._ +_Common in interviews at: FAANG._ Examples: @@ -656,7 +656,7 @@ _Solution: <<hashmap-q-two-sum>>_ // end::hashmap-q-subarray-sum-equals-k[] -_Common in interviews at: Facebook, Google, Amazon_ +_Common in interviews at: FAANG_ Examples: diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index bf2ed110..234ca937 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -584,7 +584,7 @@ mergeTwoLists(2->3->4, 1->2); // 1->2->2->3->4 mergeTwoLists(2->3->4,null); // 2->3->4 ---- -_Common in interviews at: Amazon, Adobe, Microsoft, Google_ +_Common in interviews at: FAANG, Adobe, Microsoft_ // end::linkedlist-q-merge-lists[] [source, javascript] diff --git a/book/content/part02/queue.asc b/book/content/part02/queue.asc index a9c0de2e..609b720a 100644 --- a/book/content/part02/queue.asc +++ b/book/content/part02/queue.asc @@ -103,7 +103,7 @@ counter.request(3100); // 1 (last requests was 100 ms ago, > 10ms, so doesn't co counter.request(3105); // 2 (last requests was 5 ms ago, <= 10ms, so it counts) ---- -_Common in interviews at: Google, Bloomberg, Yandex_ +_Common in interviews at: FAANG, Bloomberg, Yandex_ // end::queue-q-recent-counter[] diff --git a/book/content/part03/binary-search-tree-traversal.asc b/book/content/part03/binary-search-tree-traversal.asc index 1b6b5b60..512a6cbe 100644 --- a/book/content/part03/binary-search-tree-traversal.asc +++ b/book/content/part03/binary-search-tree-traversal.asc @@ -105,7 +105,7 @@ Post-order traverval will return `3, 4, 5, 15, 40, 30, 10`. // end::binary-tree-q-diameter-of-binary-tree[] -_Common in interviews at: Facebook, Amazon, Google_ +_Common in interviews at: FAANG_ // Example 1: // [graphviz, tree-diameter-example-1, png] diff --git a/book/content/part03/graph-search.asc b/book/content/part03/graph-search.asc index eda1d6af..af7d5969 100644 --- a/book/content/part03/graph-search.asc +++ b/book/content/part03/graph-search.asc @@ -155,7 +155,7 @@ _Solution: <<graph-q-course-schedule>>_ // end::graph-q-critical-connections-in-a-network[] -_Common in interviews at: Amazon, Google._ +_Common in interviews at: FAANG._ Examples: diff --git a/lab/exercises/10-mixed/integer-to-words.js b/lab/exercises/10-mixed/integer-to-words.js index b550539a..76cf8e87 100644 --- a/lab/exercises/10-mixed/integer-to-words.js +++ b/lab/exercises/10-mixed/integer-to-words.js @@ -10,7 +10,7 @@ const HUNDREDS = new Map([ ]); /** - * You are creating a basic number-to-speech algorithms to use at Google. + * You are creating a basic number-to-speech algorithms to use at search engine company. * The first part is to convert a given number into its text representation. * The 2nd part, is to take that text and synthetize the voice. * We are going to focus on the first part for this exercise. From 96cc1cb332fa97bab9fea594ee4405812ebbfb0b Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Wed, 2 Dec 2020 00:47:11 +0000 Subject: [PATCH 086/108] :bookmark: chore(release): 2.7.1 ## [2.7.1](https://github.com/amejiarosario/dsa.js/compare/2.7.0...2.7.1) (2020-12-02) ### Bug Fixes * **book:** update company names ([38a4178](https://github.com/amejiarosario/dsa.js/commit/38a4178e69e698a1b3c0d4452f0cfd58aed5290d)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ad80831..0783431a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.7.1](https://github.com/amejiarosario/dsa.js/compare/2.7.0...2.7.1) (2020-12-02) + + +### Bug Fixes + +* **book:** update company names ([38a4178](https://github.com/amejiarosario/dsa.js/commit/38a4178e69e698a1b3c0d4452f0cfd58aed5290d)) + # [2.7.0](https://github.com/amejiarosario/dsa.js/compare/2.6.0...2.7.0) (2020-10-30) diff --git a/package-lock.json b/package-lock.json index 48d4536e..902c1cab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.0", + "version": "2.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b629b146..d12afbd4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.0", + "version": "2.7.1", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From b2a82c02c877a717adbf83a7c2d3d416ce08ba3f Mon Sep 17 00:00:00 2001 From: knoxknox <alexandr_y@mail.ru> Date: Wed, 16 Dec 2020 14:55:32 +0200 Subject: [PATCH 087/108] Rename fibonacci-dynamic-programming (fix typo) --- book/content/part04/dynamic-programming.asc | 2 +- deprecated-README.adoc | 2 +- ...-dynamic-programming.js => fibonacci-dynamic-programming.js} | 0 src/algorithms/fibonacci.spec.js | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/algorithms/{fibanacci-dynamic-programming.js => fibonacci-dynamic-programming.js} (100%) diff --git a/book/content/part04/dynamic-programming.asc b/book/content/part04/dynamic-programming.asc index 211acb9e..147a92f1 100644 --- a/book/content/part04/dynamic-programming.asc +++ b/book/content/part04/dynamic-programming.asc @@ -40,7 +40,7 @@ When we have recursive functions, doing duplicated work is the perfect place for .Recursive Fibonacci Implemenation using Dynamic Programming [source, javascript] ---- -include::{codedir}/algorithms/fibanacci-dynamic-programming.js[tag=snippet,indent=0] +include::{codedir}/algorithms/fibonacci-dynamic-programming.js[tag=snippet,indent=0] ---- This implementation checks if we already calculated the value, if so it will save it for later use. diff --git a/deprecated-README.adoc b/deprecated-README.adoc index f0ff9d83..27200775 100644 --- a/deprecated-README.adoc +++ b/deprecated-README.adoc @@ -56,7 +56,7 @@ image::https://user-images.githubusercontent.com/418605/46118890-ba721180-c1d6-1 * Divide and Conquer ** Fibonacci Numbers. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js[Code] * Dynamic Programming - ** Fibonacci with memoization. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js[Code] + ** Fibonacci with memoization. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-dynamic-programming.js[Code] * Backtracking algorithms ** Word permutations. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js[Code] diff --git a/src/algorithms/fibanacci-dynamic-programming.js b/src/algorithms/fibonacci-dynamic-programming.js similarity index 100% rename from src/algorithms/fibanacci-dynamic-programming.js rename to src/algorithms/fibonacci-dynamic-programming.js diff --git a/src/algorithms/fibonacci.spec.js b/src/algorithms/fibonacci.spec.js index e9cae4cf..8be001f5 100644 --- a/src/algorithms/fibonacci.spec.js +++ b/src/algorithms/fibonacci.spec.js @@ -1,7 +1,7 @@ const implementations = [ 'fibonacci', 'fibonacci-recursive', - 'fibanacci-dynamic-programming', + 'fibonacci-dynamic-programming', ]; implementations.forEach((fileName) => { From ded0a701815ce4647394e2f5e217c0d88142a92c Mon Sep 17 00:00:00 2001 From: knoxknox <alexandr_y@mail.ru> Date: Wed, 16 Dec 2020 14:55:32 +0200 Subject: [PATCH 088/108] fix(book): Rename fibonacci-dynamic-programming (fix typo) --- book/content/part04/dynamic-programming.asc | 2 +- deprecated-README.adoc | 2 +- ...-dynamic-programming.js => fibonacci-dynamic-programming.js} | 0 src/algorithms/fibonacci.spec.js | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/algorithms/{fibanacci-dynamic-programming.js => fibonacci-dynamic-programming.js} (100%) diff --git a/book/content/part04/dynamic-programming.asc b/book/content/part04/dynamic-programming.asc index 211acb9e..147a92f1 100644 --- a/book/content/part04/dynamic-programming.asc +++ b/book/content/part04/dynamic-programming.asc @@ -40,7 +40,7 @@ When we have recursive functions, doing duplicated work is the perfect place for .Recursive Fibonacci Implemenation using Dynamic Programming [source, javascript] ---- -include::{codedir}/algorithms/fibanacci-dynamic-programming.js[tag=snippet,indent=0] +include::{codedir}/algorithms/fibonacci-dynamic-programming.js[tag=snippet,indent=0] ---- This implementation checks if we already calculated the value, if so it will save it for later use. diff --git a/deprecated-README.adoc b/deprecated-README.adoc index f0ff9d83..27200775 100644 --- a/deprecated-README.adoc +++ b/deprecated-README.adoc @@ -56,7 +56,7 @@ image::https://user-images.githubusercontent.com/418605/46118890-ba721180-c1d6-1 * Divide and Conquer ** Fibonacci Numbers. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js[Code] * Dynamic Programming - ** Fibonacci with memoization. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js[Code] + ** Fibonacci with memoization. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-dynamic-programming.js[Code] * Backtracking algorithms ** Word permutations. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js[Code] diff --git a/src/algorithms/fibanacci-dynamic-programming.js b/src/algorithms/fibonacci-dynamic-programming.js similarity index 100% rename from src/algorithms/fibanacci-dynamic-programming.js rename to src/algorithms/fibonacci-dynamic-programming.js diff --git a/src/algorithms/fibonacci.spec.js b/src/algorithms/fibonacci.spec.js index e9cae4cf..8be001f5 100644 --- a/src/algorithms/fibonacci.spec.js +++ b/src/algorithms/fibonacci.spec.js @@ -1,7 +1,7 @@ const implementations = [ 'fibonacci', 'fibonacci-recursive', - 'fibanacci-dynamic-programming', + 'fibonacci-dynamic-programming', ]; implementations.forEach((fileName) => { From 65b6edd52a5f54acfb07b12a8165b3bc10baad67 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Thu, 17 Dec 2020 01:58:38 +0000 Subject: [PATCH 089/108] :bookmark: chore(release): 2.7.2 ## [2.7.2](https://github.com/amejiarosario/dsa.js/compare/2.7.1...2.7.2) (2020-12-17) ### Bug Fixes * **book:** Rename fibonacci-dynamic-programming ([ded0a70](https://github.com/amejiarosario/dsa.js/commit/ded0a701815ce4647394e2f5e217c0d88142a92c)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0783431a..baef7fd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.7.2](https://github.com/amejiarosario/dsa.js/compare/2.7.1...2.7.2) (2020-12-17) + + +### Bug Fixes + +* **book:** Rename fibonacci-dynamic-programming ([ded0a70](https://github.com/amejiarosario/dsa.js/commit/ded0a701815ce4647394e2f5e217c0d88142a92c)) + ## [2.7.1](https://github.com/amejiarosario/dsa.js/compare/2.7.0...2.7.1) (2020-12-02) diff --git a/package-lock.json b/package-lock.json index 902c1cab..72aad049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.1", + "version": "2.7.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d12afbd4..3fa87ca5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.1", + "version": "2.7.2", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From c137930a8750c0aac95bbbae931886e068371d92 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 21 Dec 2020 21:06:25 -0500 Subject: [PATCH 090/108] fix(book/hashmap): exercise example and add tests --- book/content/part02/hash-map.asc | 2 +- .../longest-substring-without-repeating-characters.spec.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index dcdf6a20..8f239cba 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -486,7 +486,7 @@ function longestSubstring(s) { .Examples [source, javascript] ---- -longestSubstring('abcdaefg'); // 4 ('abcd' or 'aefg') +longestSubstring('abcdaefg'); // 7 ('bcdaefg') longestSubstring('abbaa'); // 2 ('ab') longestSubstring('abbadvdf') // 4 ('badv') ---- diff --git a/book/interview-questions/longest-substring-without-repeating-characters.spec.js b/book/interview-questions/longest-substring-without-repeating-characters.spec.js index 7011e0d4..91df0b9a 100644 --- a/book/interview-questions/longest-substring-without-repeating-characters.spec.js +++ b/book/interview-questions/longest-substring-without-repeating-characters.spec.js @@ -20,5 +20,11 @@ const { lenLongestSubstring } = require('./longest-substring-without-repeating-c const expected = 5; expect(fn(actual)).toEqual(expected); }); + + it('should work with example', () => { + const actual = 'abcdaefg'; + const expected = 7; + expect(fn(actual)).toEqual(expected); + }); }); }); From c7c7947da33cb61a794e538dff55951318edc341 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 21 Dec 2020 21:07:18 -0500 Subject: [PATCH 091/108] fix(book/graph): add comments for runtimes using hashset implementations --- book/content/part03/graph.asc | 2 +- src/data-structures/graphs/graph.js | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/book/content/part03/graph.asc b/book/content/part03/graph.asc index cceacd24..95cf3681 100644 --- a/book/content/part03/graph.asc +++ b/book/content/part03/graph.asc @@ -298,7 +298,7 @@ include::{codedir}/data-structures/graphs/node.js[tag=removeAdjacent, indent=0] ^|_Add_ ^|_Remove_ ^|_Add_ ^|_Remove_ | Graph (adj. matrix) ^| O(\|V\|^2^) ^| O(\|V\|^2^) ^|O(1) ^|O(1) ^|O(\|V\|^2^) | Graph (adj. list w/array) ^| O(1) ^| O(\|V\| + \|E\|)) ^|O(1) ^|O(\|V\| + \|E\|) ^|O(\|V\| + \|E\|) -| Graph (adj. list w/HashSet) ^| O(1) ^| O(\|V\|)) ^|O(1) ^|O(\|V\|) ^|O(\|V\| + \|E\|) +| Graph (adj. list w/HashSet) ^| O(1) ^| O(\|V\|)) ^|O(1) ^|O(1) ^|O(\|V\| + \|E\|) |=== // end::table[] diff --git a/src/data-structures/graphs/graph.js b/src/data-structures/graphs/graph.js index 80fea526..1e01f886 100644 --- a/src/data-structures/graphs/graph.js +++ b/src/data-structures/graphs/graph.js @@ -41,7 +41,8 @@ class Graph { * Removes node from graph * It also removes the reference of the deleted node from * anywhere it was adjacent to. - * Runtime: O(|V| + |E|) + * Runtime: O(|V|) because adjacency list is implemented with a HashSet. + * It were implemented with an array then it would be O(|V| + |E|). * @param {any} value node's value */ removeVertex(value) { @@ -55,9 +56,9 @@ class Graph { // tag::addEdge[] /** - * Create a connection between source node and destination node. - * If the graph is undirected it will also create the conneciton from destination to destination. - * If the nodes doesn't exist then it will create them on the fly + * Create a connection between the source node and the destination node. + * If the graph is undirected, it will also create the link from destination to source. + * If the nodes don't exist, then it will make them on the fly. * Runtime: O(1) * @param {any} source * @param {any} destination @@ -79,10 +80,11 @@ class Graph { // tag::removeEdge[] /** - * Remove connection between source node and destination. - * If the graph is undirected it will also remove the conneciton from destination to destination. + * Remove the connection between source node and destination. + * If the graph is undirected, it will also create the link from destination to source. * - * Runtime: O(|E|) + * Runtime: O(1): implemented with HashSet. + * If implemented with array, would be O(|E|). * * @param {any} source * @param {any} destination @@ -105,7 +107,7 @@ class Graph { // tag::areAdjacents[] /** - * True if two nodes are adjacent to each other + * True if two nodes are adjacent. * @param {any} source node's value * @param {any} destination node's value */ From 1d7530199940b926467ad0dcbc3b7dbe76b77820 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 21 Dec 2020 21:07:39 -0500 Subject: [PATCH 092/108] fix(book/bst): better wording --- book/content/part03/binary-search-tree.asc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/book/content/part03/binary-search-tree.asc b/book/content/part03/binary-search-tree.asc index db6fcfce..2aa7903a 100644 --- a/book/content/part03/binary-search-tree.asc +++ b/book/content/part03/binary-search-tree.asc @@ -53,10 +53,13 @@ With the methods `add` and `remove`, we have to guarantee that our tree always h .For inserting an element in a BST, we have two scenarios: 1. If the tree is empty (root element is null), we add the newly created node as root, and that's it! -2. If the root is not null. Start from it and compare the node’s value against the new element. If the node has higher than a new item, we move to the right child, otherwise to the left. We check each node recursively until we find an empty spot to put the new element and keep the rule `right < parent < left`. -3. If we insert the same value multiple times, we don’t want duplicates. So, we can keep track of multiples using a duplicity counter. +2. If the tree has a root, compare the new value with the root. Then we have three possibilities: +2.1. `root == newValue`: we increase the duplicity counter in that case, and done! +2.2 `root > newValue`, we search on the left side of the root. +2.3 `root < newValue`, we search on the right side of the root. +3. Repeat the comparison between the current node and `newValue`, until we find the value or (null) space. -For instance, let’s say that we want to insert the values 19, 21, 10, 2, 8 in a BST: +For instance, let’s say that we want to insert the values 19, 21, 10, 2, 18 in a BST: .Inserting values on a BST. image::image36.png[image,width=528,height=329] From 436848d3d7045af0a944950473677d594901acce Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 21 Dec 2020 21:32:05 -0500 Subject: [PATCH 093/108] fixes format --- book/content/part03/binary-search-tree.asc | 12 ++++++------ book/content/part03/graph.asc | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/book/content/part03/binary-search-tree.asc b/book/content/part03/binary-search-tree.asc index 2aa7903a..312421fa 100644 --- a/book/content/part03/binary-search-tree.asc +++ b/book/content/part03/binary-search-tree.asc @@ -52,12 +52,12 @@ With the methods `add` and `remove`, we have to guarantee that our tree always h ===== Inserting new elements in a BST .For inserting an element in a BST, we have two scenarios: -1. If the tree is empty (root element is null), we add the newly created node as root, and that's it! -2. If the tree has a root, compare the new value with the root. Then we have three possibilities: -2.1. `root == newValue`: we increase the duplicity counter in that case, and done! -2.2 `root > newValue`, we search on the left side of the root. -2.3 `root < newValue`, we search on the right side of the root. -3. Repeat the comparison between the current node and `newValue`, until we find the value or (null) space. +. If the tree is empty (root element is null), we add the newly created node as root, and that's it! +. If the tree has a root, compare the new value with the root. Then we have three possibilities: +.. `root == newValue`: we increase the duplicity counter in that case, and done! +.. `root > newValue`, we search on the left side of the root. +.. `root < newValue`, we search on the right side of the root. +. Repeat the comparison between the current node and `newValue`, until we find the value or (null) space. For instance, let’s say that we want to insert the values 19, 21, 10, 2, 18 in a BST: diff --git a/book/content/part03/graph.asc b/book/content/part03/graph.asc index 95cf3681..3e2fff43 100644 --- a/book/content/part03/graph.asc +++ b/book/content/part03/graph.asc @@ -297,7 +297,7 @@ include::{codedir}/data-structures/graphs/node.js[tag=removeAdjacent, indent=0] .2+.^s| Data Structure 2+^s| Vertices 2+^s| Edges .2+^.^s| Space Complexity ^|_Add_ ^|_Remove_ ^|_Add_ ^|_Remove_ | Graph (adj. matrix) ^| O(\|V\|^2^) ^| O(\|V\|^2^) ^|O(1) ^|O(1) ^|O(\|V\|^2^) -| Graph (adj. list w/array) ^| O(1) ^| O(\|V\| + \|E\|)) ^|O(1) ^|O(\|V\| + \|E\|) ^|O(\|V\| + \|E\|) +| Graph (adj. list w/array) ^| O(1) ^| O(\|V\| + \|E\|)) ^|O(1) ^|O(\|E\|) ^|O(\|V\| + \|E\|) | Graph (adj. list w/HashSet) ^| O(1) ^| O(\|V\|)) ^|O(1) ^|O(1) ^|O(\|V\| + \|E\|) |=== // end::table[] From 3c32d0efec8f75153a128538d27bb30226afc5be Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Tue, 22 Dec 2020 02:36:35 +0000 Subject: [PATCH 094/108] :bookmark: chore(release): 2.7.3 ## [2.7.3](https://github.com/amejiarosario/dsa.js/compare/2.7.2...2.7.3) (2020-12-22) ### Bug Fixes * **book/bst:** better wording ([1d75301](https://github.com/amejiarosario/dsa.js/commit/1d7530199940b926467ad0dcbc3b7dbe76b77820)) * **book/graph:** add comments for runtimes using hashset implementations ([c7c7947](https://github.com/amejiarosario/dsa.js/commit/c7c7947da33cb61a794e538dff55951318edc341)) * **book/hashmap:** exercise example and add tests ([c137930](https://github.com/amejiarosario/dsa.js/commit/c137930a8750c0aac95bbbae931886e068371d92)) --- CHANGELOG.md | 9 +++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index baef7fd9..5ff82340 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [2.7.3](https://github.com/amejiarosario/dsa.js/compare/2.7.2...2.7.3) (2020-12-22) + + +### Bug Fixes + +* **book/bst:** better wording ([1d75301](https://github.com/amejiarosario/dsa.js/commit/1d7530199940b926467ad0dcbc3b7dbe76b77820)) +* **book/graph:** add comments for runtimes using hashset implementations ([c7c7947](https://github.com/amejiarosario/dsa.js/commit/c7c7947da33cb61a794e538dff55951318edc341)) +* **book/hashmap:** exercise example and add tests ([c137930](https://github.com/amejiarosario/dsa.js/commit/c137930a8750c0aac95bbbae931886e068371d92)) + ## [2.7.2](https://github.com/amejiarosario/dsa.js/compare/2.7.1...2.7.2) (2020-12-17) diff --git a/package-lock.json b/package-lock.json index 72aad049..5ef68ed3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.2", + "version": "2.7.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3fa87ca5..3b7404bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.2", + "version": "2.7.3", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 6b9a4e8c00c2082ed7d083b58f7d462e340725fe Mon Sep 17 00:00:00 2001 From: Adrian Mejia <me@adrianmejia.com> Date: Sat, 9 Jan 2021 09:37:51 -0400 Subject: [PATCH 095/108] fix(bst): some typos on the code --- src/data-structures/trees/binary-search-tree.js | 8 ++++---- src/data-structures/trees/binary-tree-node.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/data-structures/trees/binary-search-tree.js b/src/data-structures/trees/binary-search-tree.js index 43900c54..5e9ffb86 100644 --- a/src/data-structures/trees/binary-search-tree.js +++ b/src/data-structures/trees/binary-search-tree.js @@ -249,14 +249,14 @@ class BinarySearchTree { /** * Represent Binary Tree as an array. * - * Leaf nodes will have two `undefined` descendents. + * Leaf nodes will have two `undefined` descendants. * * The array representation of the binary tree is as follows: * * First element (index=0) is the root. - * The following two elements (index=1,2) are descendents of the root: left (a) and right (b). - * The next two elements (index=3,4) are the descendents of a - * The next two elements (index=5,6) are the descendents of b and so on. + * The following two elements (index=1,2) are descendants of the root: left (a) and right (b). + * The next two elements (index=3,4) are the descendants of a + * The next two elements (index=5,6) are the descendants of b and so on. * * 0 1 2 3 4 5 6 n * [root, a=root.left, b=root.right, a.left, a.right, b.left, b.right, ...] diff --git a/src/data-structures/trees/binary-tree-node.js b/src/data-structures/trees/binary-tree-node.js index 69ae1cbf..781b080d 100644 --- a/src/data-structures/trees/binary-tree-node.js +++ b/src/data-structures/trees/binary-tree-node.js @@ -19,7 +19,7 @@ class BinaryTreeNode { // tag::setAndUpdateParent[] /** - * Set a left node descendents. + * Set a left node descendants. * Also, children get associated to parent. */ setLeftAndUpdateParent(node) { @@ -31,7 +31,7 @@ class BinaryTreeNode { } /** - * Set a right node descendents. + * Set a right node descendants. * Also, children get associated to parent. */ setRightAndUpdateParent(node) { @@ -71,7 +71,7 @@ class BinaryTreeNode { } /** - * Node is leaf is it has no descendents + * Node is leaf is it has no descendants */ get isLeaf() { return !this.left && !this.right; From 2090ea28dd1a5666aa2bea696996c75406d8ceea Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Sat, 9 Jan 2021 13:40:11 +0000 Subject: [PATCH 096/108] :bookmark: chore(release): 2.7.4 ## [2.7.4](https://github.com/amejiarosario/dsa.js/compare/2.7.3...2.7.4) (2021-01-09) ### Bug Fixes * **bst:** some typos on the code ([6b9a4e8](https://github.com/amejiarosario/dsa.js/commit/6b9a4e8c00c2082ed7d083b58f7d462e340725fe)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ff82340..1261c178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.7.4](https://github.com/amejiarosario/dsa.js/compare/2.7.3...2.7.4) (2021-01-09) + + +### Bug Fixes + +* **bst:** some typos on the code ([6b9a4e8](https://github.com/amejiarosario/dsa.js/commit/6b9a4e8c00c2082ed7d083b58f7d462e340725fe)) + ## [2.7.3](https://github.com/amejiarosario/dsa.js/compare/2.7.2...2.7.3) (2020-12-22) diff --git a/package-lock.json b/package-lock.json index 5ef68ed3..b3c30b3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.3", + "version": "2.7.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3b7404bf..4c2e8adb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.3", + "version": "2.7.4", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 1812da740539888d995060f156922b9050001004 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Thu, 11 Feb 2021 08:16:12 -0500 Subject: [PATCH 097/108] Update README.md --- README.md | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index f6fde2d7..c2e3befa 100644 --- a/README.md +++ b/README.md @@ -61,35 +61,35 @@ and then you can import it into your programs or CLI const { LinkedList, Queue, Stack } = require('dsa.js'); ``` -For a full list of all the exposed data structures and algorithms [see](src/index.js). +For a list of all available data structures and algorithms, [see index.js](src/index.js). ## Features Algorithms are an essential toolbox for every programmer. -You usually need algorithms when you have to sort data, search for a value, transform data, scale your code to many users, to name a few. -Algorithms are just the step you follow to solve a problem while data structures are where you store the data for later manipulation. Both combined create programs. +You will need to mind algorithms runtime when you have to sort data, search for a value in a big dataset, transform data, scale your code to many users, to name a few. +Algorithms are just the step you follow to solve a problem, while data structures are where you store the data for later manipulation. Both combined create programs. > Algorithms + Data Structures = Programs. Most programming languages and libraries indeed provide implementations for basic data structures and algorithms. -However, to make use of data structures properly, you have to know the tradeoffs so you can choose the best tool for the job. +However, to make use of data structures properly, you have to know the tradeoffs to choose the best tool for the job. This material is going to teach you to: - 🛠 Apply strategies to tackle algorithm questions. Never to get stuck again. Ace those interviews! -- ✂️ Construct efficient algorithms. Learn how to break down problems in manageable pieces. -- 🧠 Improve your problem-solving skills and become a stronger developer by understanding fundamental computer science concepts. +- ✂️ Construct efficient algorithms. Learn how to break down problems into manageable pieces. +- 🧠 Improve your problem-solving skills and become a well-rounded developer by understanding fundamental computer science concepts. - 🤓 Cover essential topics, such as big O time, data structures, and must-know algorithms. Implement 10+ data structures from scratch. ## What's Inside All the code and explanations are available on this repo. You can dig through the links and code examples from the ([src folder](src)). However, the inline code examples are not expanded (because of Github's asciidoc limitations), but you can follow the path and see the implementation. -_Note: If you prefer to consume the information more linearly then the [book format](https://books.adrianmejia.com/dsajs-data-structures-algorithms-javascript/) would be more appropriate for you._ +_Note: If you prefer to consume the information more linearly, then the [book format](https://books.adrianmejia.com/dsajs-data-structures-algorithms-javascript/) would be more appropriate for you._ -The topics are divided into four main categories as you can see below: +The topics are divided into four main categories, as you can see below: ### 📈 [Algorithms Analysis](book/part01-algorithms-analysis.asc) @@ -129,8 +129,7 @@ The topics are divided into four main categories as you can see below: #### Comparing algorithms using Big O notation Let's say you want to find the duplicates on an array. -Using Big O notation, we can compare different implementations that do the same but -they take different time to complete. +Using Big O notation, we can compare different solutions that solve the same problem but has a massive difference in how long it takes to do it. - [Optimal solution using a map](book/content/part01/big-o-examples.asc#linear-example) - [Finding duplicates in an array (naïve approach)](book/content/part01/big-o-examples.asc#quadratic-example) @@ -225,7 +224,6 @@ they take different time to complete. Use Arrays when… - You need to access data in random order fast (using an index). - Your data is multi-dimensional (e.g., matrix, tensor). -- when there is a limit on memory as the requirement of memory is less due to actual data being stored within the index in the array. Use Linked Lists when: - You will access your data sequentially. @@ -302,8 +300,7 @@ Know all the graphs properties with many images and illustrations.  **Graphs**: data **nodes** that can have a connection or **edge** to - zero or more adjacent nodes. Unlike trees, nodes can have multiple - parents, loops. + zero or more adjacent nodes. Unlike trees, nodes can have multiple parents, loops. [Code](src/data-structures/graphs/graph.js) | [Graph Time Complexity](book/content/part03/graph.asc#graph-complexity) @@ -316,7 +313,7 @@ Learn all the different kinds of trees and their properties. - **Trees**: data nodes has zero or more adjacent nodes a.k.a. children. Each node can only have one parent node otherwise is a - graph not a tree. + graph, not a tree. [Code](src/data-structures/trees) | [Docs](book/content/part03/tree-intro.asc) @@ -383,7 +380,7 @@ From unbalanced BST to balanced BST ### ⚒ [Algorithmic Toolbox](book/part04-algorithmic-toolbox.asc) -<!-- - Never get stuck solving a problem with 7 simple steps. --> +<!-- - Never get stuck solving a problem with seven simple steps. --> <!-- - Master the most popular sorting algorithms (merge sort, quicksort, insertion sort, etc.) --> <!-- - Learn different approaches to solve problems such as divide and conquer, dynamic programming, greedy algorithms, and backtracking. --> @@ -402,9 +399,9 @@ From unbalanced BST to balanced BST 1. Brainstorm solutions (greedy algorithm, Divide and Conquer, Backtracking, brute force) 1. Test your answer on the simple example (mentally) 1. Optimize the solution -1. Write Code, yes, now you can code. +1. Write code. Yes, now you can code. 1. Test your written code -1. Analyse the complexity, both space and time and make sure to optimise further. +1. Analyse the complexity, both space and time, and make sure to optimize further. Full details [here](book/part04-algorithmic-toolbox.asc) @@ -462,8 +459,8 @@ and then discuss efficient sorting algorithms O(n log n) such as: We are going to discuss the following techniques for solving algorithms problems: - [Greedy Algorithms](book/content/part04/greedy-algorithms.asc): makes greedy choices using heuristics to find the best solution without looking back. - [Dynamic Programming](book/content/part04/dynamic-programming.asc): a technique for speeding up recursive algorithms when there are many _overlapping subproblems_. It uses _memoization_ to avoid duplicating work. -- [Divide and Conquer](book/content/part04/divide-and-conquer.asc): _divide_ problems into smaller pieces, _conquer_ each subproblem and then _join_ the results. -- [Backtracking](book/content/part04/backtracking.asc): search _all (or some)_ possible paths. However, it stops and _go back_ as soon as notice the current solution is not working. +- [Divide and Conquer](book/content/part04/divide-and-conquer.asc): _divide_ problems into smaller pieces, _conquer_ each subproblem, and then _join_ the results. +- [Backtracking](book/content/part04/backtracking.asc): search _all (or some)_ possible paths. However, it stops, and _go back_ as soon as notice the current solution is not working. - _Brute Force_: generate all possible solutions and tries all of them. (Use it as a last resort or as the starting point). --- @@ -476,7 +473,7 @@ We are going to discuss the following techniques for solving algorithms problems <details> <summary>How would I apply these to my day-to-day work? <i>(Click to expand)</i></summary> <p> - As a programmer, we have to solve problems every day. If you want to solve problems well, then it's good to know about a broad range of solutions. A lot of times, it's more efficient to learn existing resources than stumble upon the answer yourself. The more tools and practice you have, the better. This book helps you understand the tradeoffs among data structures and reason about algorithms performance. + As a programmer, we have to solve problems every day. If you want to solve problems well, it's good to know about a broad range of solutions. Often, it's more efficient to learn existing resources than stumble upon the answer yourself. The more tools and practice you have, the better. This book helps you understand the tradeoffs among data structures and reason about algorithms performance. </p> </details> From cec3b041202372dac71ba385142b743f8adb72a1 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Mon, 17 May 2021 20:24:46 -0400 Subject: [PATCH 098/108] chore(graph): fix typo --- src/data-structures/graphs/graph.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data-structures/graphs/graph.js b/src/data-structures/graphs/graph.js index 1e01f886..02b8d708 100644 --- a/src/data-structures/graphs/graph.js +++ b/src/data-structures/graphs/graph.js @@ -252,7 +252,7 @@ class Graph { } } -Graph.UNDIRECTED = Symbol('directed graph'); // two-ways edges -Graph.DIRECTED = Symbol('undirected graph'); // one-way edges +Graph.UNDIRECTED = Symbol('undirected graph'); // two-way edges +Graph.DIRECTED = Symbol('directed graph'); // one-way edges module.exports = Graph; From d350da8bd2d7cf5c8f4425e863babf19cbdcbdf4 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sun, 23 May 2021 20:00:05 -0400 Subject: [PATCH 099/108] fix(bst): on duplicates values the same node is returned Fixes #99 --- src/data-structures/trees/binary-search-tree.js | 11 ++++++----- src/data-structures/trees/binary-search-tree.spec.js | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/data-structures/trees/binary-search-tree.js b/src/data-structures/trees/binary-search-tree.js index 5e9ffb86..e7a5cc49 100644 --- a/src/data-structures/trees/binary-search-tree.js +++ b/src/data-structures/trees/binary-search-tree.js @@ -19,23 +19,24 @@ class BinarySearchTree { * @returns {BinaryTreeNode} newly added node */ add(value) { - const newNode = new BinaryTreeNode(value); + let node = new BinaryTreeNode(value); if (this.root) { const { found, parent } = this.findNodeAndParent(value); // <1> if (found) { // duplicated: value already exist on the tree found.meta.multiplicity = (found.meta.multiplicity || 1) + 1; // <2> + node = found; } else if (value < parent.value) { - parent.setLeftAndUpdateParent(newNode); + parent.setLeftAndUpdateParent(node); } else { - parent.setRightAndUpdateParent(newNode); + parent.setRightAndUpdateParent(node); } } else { - this.root = newNode; + this.root = node; } this.size += 1; - return newNode; + return node; } // end::add[] diff --git a/src/data-structures/trees/binary-search-tree.spec.js b/src/data-structures/trees/binary-search-tree.spec.js index 854e31ff..22508eb2 100644 --- a/src/data-structures/trees/binary-search-tree.spec.js +++ b/src/data-structures/trees/binary-search-tree.spec.js @@ -66,7 +66,7 @@ describe('Binary Search Tree', () => { it('should deal with duplicates', () => { const root = bst.add(1); expect(root.meta.multiplicity).toBe(undefined); - bst.add(1); + expect(bst.add(1)).toBe(root); // should return existing expect(bst.size).toBe(2); expect(root.toValues()).toMatchObject({ value: 1, parent: null, left: null, right: null, @@ -262,7 +262,7 @@ describe('Binary Search Tree', () => { }); it('should remove duplicates', () => { - bst.add(40); // add duplicate + expect(bst.add(40)).toBe(n40); // add duplicate expect(n40.meta.multiplicity).toBe(2); expect(bst.remove(40)).toBe(true); From 03bafbb110269511ec357d109177ddb4a158b1d7 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Mon, 24 May 2021 00:05:14 +0000 Subject: [PATCH 100/108] :bookmark: chore(release): 2.7.5 ## [2.7.5](https://github.com/amejiarosario/dsa.js/compare/2.7.4...2.7.5) (2021-05-24) ### Bug Fixes * **bst:** on duplicates values the same node is returned ([d350da8](https://github.com/amejiarosario/dsa.js/commit/d350da8bd2d7cf5c8f4425e863babf19cbdcbdf4)), closes [#99](https://github.com/amejiarosario/dsa.js/issues/99) --- CHANGELOG.md | 7 + package-lock.json | 20541 +++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 3 files changed, 20501 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1261c178..f1268e21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.7.5](https://github.com/amejiarosario/dsa.js/compare/2.7.4...2.7.5) (2021-05-24) + + +### Bug Fixes + +* **bst:** on duplicates values the same node is returned ([d350da8](https://github.com/amejiarosario/dsa.js/commit/d350da8bd2d7cf5c8f4425e863babf19cbdcbdf4)), closes [#99](https://github.com/amejiarosario/dsa.js/issues/99) + ## [2.7.4](https://github.com/amejiarosario/dsa.js/compare/2.7.3...2.7.4) (2021-01-09) diff --git a/package-lock.json b/package-lock.json index b3c30b3a..1d1cca05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,20453 @@ { "name": "dsa.js", - "version": "2.7.4", - "lockfileVersion": 1, + "version": "2.7.5", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "dsa.js", + "version": "2.7.4", + "license": "MIT", + "devDependencies": { + "@semantic-release/changelog": "^5.0.1", + "@semantic-release/git": "^9.0.0", + "benchmark": "2.1.4", + "braces": ">=2.3.1", + "commitizen": "4.1.2", + "conventional-changelog-cli": "2.0.34", + "cz-conventional-changelog": "3.2.0", + "eslint": "7.12.1", + "eslint-config-airbnb-base": "14.1.0", + "eslint-plugin-import": "2.20.2", + "eslint-plugin-jest": "24.1.0", + "handlebars": "4.7.6", + "husky": "4.2.5", + "jest": "26.0.1", + "js-yaml": ">=3.13.1", + "mem": "6.1.0", + "semantic-release": "17.0.7", + "textlint-plugin-asciidoctor": "1.0.3" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "node_modules/@babel/helpers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "node_modules/@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", + "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz", + "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "node_modules/@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "node_modules/@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@commitlint/execute-rule": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz", + "integrity": "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@commitlint/load": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz", + "integrity": "sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/execute-rule": "^8.3.4", + "@commitlint/resolve-extends": "^8.3.5", + "babel-runtime": "^6.23.0", + "chalk": "2.4.2", + "cosmiconfig": "^5.2.0", + "lodash": "4.17.15", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz", + "integrity": "sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ==", + "dev": true, + "optional": true, + "dependencies": { + "import-fresh": "^3.0.0", + "lodash": "4.17.15", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz", + "integrity": "sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/@eslint/eslintrc/node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.0.1.tgz", + "integrity": "sha512-9t1KUe/93coV1rBSxMmBAOIK3/HVpwxArCA1CxskKyRiv6o8J70V8C/V3OJminVCTa2M0hQI9AWRd5wxu2dAHw==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "jest-message-util": "^26.0.1", + "jest-util": "^26.0.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.0.1.tgz", + "integrity": "sha512-Xq3eqYnxsG9SjDC+WLeIgf7/8KU6rddBxH+SCt18gEpOhAGYC/Mq+YbtlNcIdwjnnT+wDseXSbU0e5X84Y4jTQ==", + "dev": true, + "dependencies": { + "@jest/console": "^26.0.1", + "@jest/reporters": "^26.0.1", + "@jest/test-result": "^26.0.1", + "@jest/transform": "^26.0.1", + "@jest/types": "^26.0.1", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.0.1", + "jest-config": "^26.0.1", + "jest-haste-map": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.0.1", + "jest-resolve-dependencies": "^26.0.1", + "jest-runner": "^26.0.1", + "jest-runtime": "^26.0.1", + "jest-snapshot": "^26.0.1", + "jest-util": "^26.0.1", + "jest-validate": "^26.0.1", + "jest-watcher": "^26.0.1", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/core/node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.0.1.tgz", + "integrity": "sha512-xBDxPe8/nx251u0VJ2dFAFz2H23Y98qdIaNwnMK6dFQr05jc+Ne/2np73lOAx+5mSBO/yuQldRrQOf6hP1h92g==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^26.0.1", + "@jest/types": "^26.0.1", + "jest-mock": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/fake-timers": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.0.1.tgz", + "integrity": "sha512-Oj/kCBnTKhm7CR+OJSjZty6N1bRDr9pgiYQr4wY221azLz5PHi08x/U+9+QpceAYOWheauLP8MhtSVFrqXQfhg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "@sinonjs/fake-timers": "^6.0.1", + "jest-message-util": "^26.0.1", + "jest-mock": "^26.0.1", + "jest-util": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/globals": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.0.1.tgz", + "integrity": "sha512-iuucxOYB7BRCvT+TYBzUqUNuxFX1hqaR6G6IcGgEqkJ5x4htNKo1r7jk1ji9Zj8ZMiMw0oB5NaA7k5Tx6MVssA==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.0.1", + "@jest/types": "^26.0.1", + "expect": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/reporters": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.0.1.tgz", + "integrity": "sha512-NWWy9KwRtE1iyG/m7huiFVF9YsYv/e+mbflKRV84WDoJfBqUrNRyDbL/vFxQcYLl8IRqI4P3MgPn386x76Gf2g==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.0.1", + "@jest/test-result": "^26.0.1", + "@jest/transform": "^26.0.1", + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.0.1", + "jest-resolve": "^26.0.1", + "jest-util": "^26.0.1", + "jest-worker": "^26.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^4.1.3" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@jest/reporters/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/node-notifier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.0.tgz", + "integrity": "sha512-y8ThJESxsHcak81PGpzWwQKxzk+5YtP3IxR8AYdpXQ1IB6FmcVzFdZXrkPin49F/DKUCfeeiziB8ptY9npzGuA==", + "dev": true, + "optional": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.1.1", + "semver": "^7.2.1", + "shellwords": "^0.1.1", + "uuid": "^7.0.3", + "which": "^2.0.2" + } + }, + "node_modules/@jest/reporters/node_modules/node-notifier/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "dev": true, + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@jest/reporters/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@jest/source-map": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.0.0.tgz", + "integrity": "sha512-S2Z+Aj/7KOSU2TfW0dyzBze7xr95bkm5YXNUqqCek+HE0VbNNSNzrRwfIi5lf7wvzDTSS0/ib8XQ1krFNyYgbQ==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/source-map/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/@jest/test-result": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.0.1.tgz", + "integrity": "sha512-oKwHvOI73ICSYRPe8WwyYPTtiuOAkLSbY8/MfWF3qDEd/sa8EDyZzin3BaXTqufir/O/Gzea4E8Zl14XU4Mlyg==", + "dev": true, + "dependencies": { + "@jest/console": "^26.0.1", + "@jest/types": "^26.0.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.0.1.tgz", + "integrity": "sha512-ssga8XlwfP8YjbDcmVhwNlrmblddMfgUeAkWIXts1V22equp2GMIHxm7cyeD5Q/B0ZgKPK/tngt45sH99yLLGg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.0.1", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.0.1", + "jest-runner": "^26.0.1", + "jest-runtime": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/@jest/transform": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.0.1.tgz", + "integrity": "sha512-pPRkVkAQ91drKGbzCfDOoHN838+FSbYaEAvBXvKuWeeRRUD8FjwXkqfUNUZL6Ke48aA/1cqq/Ni7kVMCoqagWA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.0.1", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.0.1", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.0.1", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", + "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", + "dev": true, + "dependencies": { + "@octokit/types": "^2.0.0" + } + }, + "node_modules/@octokit/core": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.5.0.tgz", + "integrity": "sha512-uvzmkemQrBgD8xuGbjhxzJN1darJk9L2cS+M99cHrDG2jlSVpxNJVhoV86cXdYBqdHCc9Z995uLCczaaHIYA6Q==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^2.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^5.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.1.tgz", + "integrity": "sha512-pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==", + "dev": true, + "dependencies": { + "@octokit/types": "^2.11.1", + "is-plain-object": "^3.0.0", + "universal-user-agent": "^5.0.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, + "dependencies": { + "isobject": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.4.0.tgz", + "integrity": "sha512-Du3hAaSROQ8EatmYoSAJjzAz3t79t9Opj/WY1zUgxVUGfIKn0AEjg+hlOLscF6fv6i/4y/CeUvsWgIfwMkTccw==", + "dev": true, + "dependencies": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^2.0.0", + "universal-user-agent": "^5.0.0" + } + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.0.tgz", + "integrity": "sha512-KoNxC3PLNar8UJwR+1VMQOw2IoOrrFdo5YOiDKnBhpVbKpw+zkBKNMNKwM44UWL25Vkn0Sl3nYIEGKY+gW5ebw==", + "dev": true, + "dependencies": { + "@octokit/types": "^2.12.1" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", + "dev": true + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.11.0.tgz", + "integrity": "sha512-D31cBYhlOt6Om2xNkCNZUjyWdaDKUfa4HwpLwL8Dnu8aDuVuuOPLUhFMUDE0GvfqlNQFrNtU7n5HaZm+KmRdsw==", + "dev": true, + "dependencies": { + "@octokit/types": "^2.16.0", + "deprecation": "^2.3.1" + } + }, + "node_modules/@octokit/request": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.2.tgz", + "integrity": "sha512-zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^2.11.1", + "deprecation": "^2.0.0", + "is-plain-object": "^3.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^5.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.0.tgz", + "integrity": "sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==", + "dev": true, + "dependencies": { + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request/node_modules/is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, + "dependencies": { + "isobject": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/request/node_modules/isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/rest": { + "version": "17.9.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.9.0.tgz", + "integrity": "sha512-Ff2jwS2OizWVaiCozOJevQ97V+mKjlQAt//lU6a/lhWDfHsZLXm/k1RsyTKVbyuiriDi7pg899wCU59nYfKnmQ==", + "dev": true, + "dependencies": { + "@octokit/core": "^2.4.3", + "@octokit/plugin-paginate-rest": "^2.2.0", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "3.11.0" + } + }, + "node_modules/@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "dev": true, + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@semantic-release/changelog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-5.0.1.tgz", + "integrity": "sha512-unvqHo5jk4dvAf2nZ3aw4imrlwQ2I50eVVvq9D47Qc3R+keNqepx1vDYwkjF8guFXnOYaYcR28yrZWno1hFbiw==", + "dev": true, + "dependencies": { + "@semantic-release/error": "^2.1.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^9.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/changelog/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/changelog/node_modules/jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "node_modules/@semantic-release/changelog/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@semantic-release/commit-analyzer": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz", + "integrity": "sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.7", + "debug": "^4.0.0", + "import-from": "^3.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true + }, + "node_modules/@semantic-release/git": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-9.0.0.tgz", + "integrity": "sha512-AZ4Zha5NAPAciIJH3ipzw/WU9qLAn8ENaoVAhD6srRPxTpTzuV3NhNh14rcAo8Paj9dO+5u4rTKcpetOBluYVw==", + "dev": true, + "dependencies": { + "@semantic-release/error": "^2.1.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^4.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/git/node_modules/cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/git/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@semantic-release/git/node_modules/execa": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz", + "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/git/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/@semantic-release/git/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/git/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/git/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/github": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.6.tgz", + "integrity": "sha512-70fUj+t98AWRgeOG0j2kdguvaVyysOZRUmXykZBwkktSDm1UZ6YfelYFPuM9OJbKPuNjKsCsRXl5/wukDUg8PA==", + "dev": true, + "dependencies": { + "@octokit/rest": "^17.0.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "bottleneck": "^2.18.1", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^9.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^2.4.3", + "p-filter": "^2.0.0", + "p-retry": "^4.0.0", + "url-join": "^4.0.0" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/github/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@semantic-release/github/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/github/node_modules/jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "node_modules/@semantic-release/github/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@semantic-release/npm": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.5.tgz", + "integrity": "sha512-D+oEmsx9aHE1q806NFQwSC9KdBO8ri/VO99eEz0wWbX2jyLqVyWr7t0IjKC8aSnkkQswg/4KN/ZjfF6iz1XOpw==", + "dev": true, + "dependencies": { + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "execa": "^4.0.0", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "nerf-dart": "^1.0.0", + "normalize-url": "^5.0.0", + "npm": "^6.10.3", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^4.0.0", + "semver": "^7.1.2", + "tempy": "^0.5.0" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/npm/node_modules/cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/npm/node_modules/execa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.1.tgz", + "integrity": "sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/npm/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/@semantic-release/npm/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/npm/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/npm/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/npm/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.1.tgz", + "integrity": "sha512-bOoTiH6SiiR0x2uywSNR7uZcRDl22IpZhj+Q5Bn0v+98MFtOMhCxFhbrKQjhbYoZw7vps1mvMRmFkp/g6R9cvQ==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^5.0.0", + "import-from": "^3.0.0", + "into-stream": "^5.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz", + "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", + "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", + "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz", + "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", + "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz", + "integrity": "sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.6.0.tgz", + "integrity": "sha512-pnh6Beh2/4xjJVNL+keP49DFHk3orDHHFylSp3WEjtgW3y1U+6l+jNnJrGlbs6qhAz5z96aFmmbUyKhunXKvKw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.6.0", + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/typescript-estree": "4.6.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.6.0.tgz", + "integrity": "sha512-uZx5KvStXP/lwrMrfQQwDNvh2ppiXzz5TmyTVHb+5TfZ3sUP7U1onlz3pjoWrK9konRyFe1czyxObWTly27Ang==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/visitor-keys": "4.6.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.6.0.tgz", + "integrity": "sha512-5FAgjqH68SfFG4UTtIFv+rqYJg0nLjfkjD0iv+5O27a0xEeNZ5rZNDvFGZDizlCD1Ifj7MAbSW2DPMrf0E9zjA==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.0.tgz", + "integrity": "sha512-s4Z9qubMrAo/tw0CbN0IN4AtfwuehGXVZM0CHNMdfYMGBDhPdwTEpBrecwhP7dRJu6d9tT9ECYNaWDHvlFSngA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.6.0", + "@typescript-eslint/visitor-keys": "4.6.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.0.tgz", + "integrity": "sha512-38Aa9Ztl0XyFPVzmutHXqDMCu15Xx8yKvUo38Gu3GhsuckCh3StPI5t2WIO9LHEsOH7MLmlGfKUisU8eW1Sjhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.6.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "node_modules/acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansi-styles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", + "dev": true + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/array-includes/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/array.prototype.flat/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asciidoctor.js": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/asciidoctor.js/-/asciidoctor.js-1.5.9.tgz", + "integrity": "sha512-k5JgwyV82TsiCpnYbDPReuHhzf/vRUt6NaZ+OGywkDDGeGG/CPfvN2Gd1MJ0iIZKDyuk4iJHOdY/2x1KBrWMzA==", + "dev": true, + "dependencies": { + "opal-runtime": "1.0.11" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.0.1.tgz", + "integrity": "sha512-Z4GGmSNQ8pX3WS1O+6v3fo41YItJJZsVxG5gIQ+HuB/iuAQBJxMTHTwz292vuYws1LnHfwSRgoqI+nxdy/pcvw==", + "dev": true, + "dependencies": { + "@jest/transform": "^26.0.1", + "@jest/types": "^26.0.1", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.0.0.tgz", + "integrity": "sha512-+AuoehOrjt9irZL7DOt2+4ZaTM6dlu1s5TTS46JBa0/qem4dy7VNW3tMb96qeEqcIh20LD73TVNtmVEeymTG7w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", + "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "node_modules/babel-preset-jest": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.0.0.tgz", + "integrity": "sha512-9ce+DatAa31DpR4Uir8g4Ahxs5K4W4L8refzt+qHWQANb6LhGcAEfIFgLUwk67oya2cCUd6t4eUMtO/z64ocNw==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^26.0.0", + "babel-preset-current-node-syntax": "^0.1.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "optional": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", + "dev": true + }, + "node_modules/benchmark": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", + "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", + "dev": true, + "dependencies": { + "lodash": "^4.17.4", + "platform": "^1.3.3" + } + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cachedir": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", + "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "optional": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "optional": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "dev": true, + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, + "node_modules/commitizen": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.1.2.tgz", + "integrity": "sha512-LBxTQKHbVgroMz9ohpm86N+GfJobonGyvDc3zBGdZazbwCLz2tqLa48Rf2TnAdKx7/06W1i1R3SXUt5QW97qVQ==", + "dev": true, + "dependencies": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.2.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "2.0.0", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.0", + "is-utf8": "^0.2.1", + "lodash": "4.17.15", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/commitizen/node_modules/detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commitizen/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/compare-func": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/conventional-changelog": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.21.tgz", + "integrity": "sha512-ZGecVZPEo3aC75VVE4nu85589dDhpMyqfqgUM5Myq6wfKWiNqhDJLSDMsc8qKXshZoY7dqs1hR0H/15kI/G2jQ==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.10", + "conventional-changelog-atom": "^2.0.7", + "conventional-changelog-codemirror": "^2.0.7", + "conventional-changelog-conventionalcommits": "^4.3.0", + "conventional-changelog-core": "^4.1.7", + "conventional-changelog-ember": "^2.0.8", + "conventional-changelog-eslint": "^3.0.8", + "conventional-changelog-express": "^2.0.5", + "conventional-changelog-jquery": "^3.0.10", + "conventional-changelog-jshint": "^2.0.7", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz", + "integrity": "sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==", + "dev": true, + "dependencies": { + "compare-func": "^1.3.1", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-atom": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.7.tgz", + "integrity": "sha512-7dOREZwzB+tCEMjRTDfen0OHwd7vPUdmU0llTy1eloZgtOP4iSLVzYIQqfmdRZEty+3w5Jz+AbhfTJKoKw1JeQ==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-cli": { + "version": "2.0.34", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.34.tgz", + "integrity": "sha512-HDDIhhpsMKiiAfH/mbj7wApgN7uA33Nk4hISY3/7ijlfqXc/bmP3v4o3Yialoxz0iTBibc94xi6kfTH7XIvwDw==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog": "^3.1.21", + "lodash": "^4.17.15", + "meow": "^7.0.0", + "tempfile": "^3.0.0" + }, + "bin": { + "conventional-changelog": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.7.tgz", + "integrity": "sha512-Oralk1kiagn3Gb5cR5BffenWjVu59t/viE6UMD/mQa1hISMPkMYhJIqX+CMeA1zXgVBO+YHQhhokEj99GP5xcg==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.3.0.tgz", + "integrity": "sha512-oYHydvZKU+bS8LnGqTMlNrrd7769EsuEHKy4fh1oMdvvDi7fem8U+nvfresJ1IDB8K00Mn4LpiA/lR+7Gs6rgg==", + "dev": true, + "dependencies": { + "compare-func": "^1.3.1", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.7.tgz", + "integrity": "sha512-UBvSrQR2RdKbSQKh7RhueiiY4ZAIOW3+CSWdtKOwRv+KxIMNFKm1rOcGBFx0eA8AKhGkkmmacoTWJTqyz7Q0VA==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^4.0.16", + "conventional-commits-parser": "^3.1.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "2.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.0.0", + "lodash": "^4.17.15", + "normalize-package-data": "^2.3.5", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "shelljs": "^0.8.3", + "through2": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.8.tgz", + "integrity": "sha512-JEMEcUAMg4Q9yxD341OgWlESQ4gLqMWMXIWWUqoQU8yvTJlKnrvcui3wk9JvnZQyONwM2g1MKRZuAjKxr8hAXA==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.8.tgz", + "integrity": "sha512-5rTRltgWG7TpU1PqgKHMA/2ivjhrB+E+S7OCTvj0zM/QGg4vmnVH67Vq/EzvSNYtejhWC+OwzvDrLk3tqPry8A==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.5.tgz", + "integrity": "sha512-pW2hsjKG+xNx/Qjof8wYlAX/P61hT5gQ/2rZ2NsTpG+PgV7Rc8RCfITvC/zN9K8fj0QmV6dWmUefCteD9baEAw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.10.tgz", + "integrity": "sha512-QCW6wF8QgPkq2ruPaxc83jZxoWQxLkt/pNxIDn/oYjMiVgrtqNdd7lWe3vsl0hw5ENHNf/ejXuzDHk6suKsRpg==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.7.tgz", + "integrity": "sha512-qHA8rmwUnLiIxANJbz650+NVzqDIwNtc0TcpIa0+uekbmKHttidvQ1dGximU3vEDdoJVKFgR3TXFqYuZmYy9ZQ==", + "dev": true, + "dependencies": { + "compare-func": "^1.3.1", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz", + "integrity": "sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ==", + "dev": true, + "dependencies": { + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.6", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^7.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^3.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz", + "integrity": "sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==", + "dev": true, + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz", + "integrity": "sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==", + "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^7.0.0", + "split2": "^2.0.0", + "through2": "^3.0.0", + "trim-off-newlines": "^1.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true, + "optional": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "optional": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "optional": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "optional": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", + "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz", + "integrity": "sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff-sequences": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz", + "integrity": "sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-ci": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", + "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", + "dev": true, + "dependencies": { + "execa": "^4.0.0", + "java-properties": "^1.0.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/env-ci/node_modules/cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/env-ci/node_modules/execa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.1.tgz", + "integrity": "sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/env-ci/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/env-ci/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/env-ci/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/env-ci/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/env-ci/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/env-ci/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/env-ci/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.12.1.tgz", + "integrity": "sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz", + "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.9", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "dependencies": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-jest": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.1.0.tgz", + "integrity": "sha512-827YJ+E8B9PvXu/0eiVSNFfxxndbKv+qE/3GSMhdorCaeaOehtqHGX2YDW9B85TEOre9n/zscledkFW/KbnyGg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", + "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.0.1.tgz", + "integrity": "sha512-QcCy4nygHeqmbw564YxNbHTJlXh47dVID2BUP52cZFpLU9zHViMFK6h07cC1wf7GYCTIigTdAXhVua8Yl1FkKg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.0.0", + "jest-matcher-utils": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/expect/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-glob/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz", + "integrity": "sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==", + "dev": true, + "dependencies": { + "findup-sync": "^3.0.0", + "merge": "^1.2.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "dependencies": { + "semver-regex": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + }, + "bin": { + "get-pkg-repo": "cli.js" + } + }, + "node_modules/get-pkg-repo/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-log-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", + "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "dev": true, + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" + } + }, + "node_modules/git-log-parser/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/git-log-parser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", + "dev": true, + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/git-log-parser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/git-log-parser/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", + "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "dev": true, + "dependencies": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/git-raw-commits/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-raw-commits/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "dependencies": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/git-raw-commits/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/git-raw-commits/node_modules/redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "dependencies": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/git-raw-commits/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/git-raw-commits/node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-raw-commits/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/git-raw-commits/node_modules/trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.0.0.tgz", + "integrity": "sha512-LajaAWLYVBff+1NVircURJFL8TQ3EMIcLAfHisWYX/nPoMwnTYfWAznQDmMujlLqoD12VtLmoSrF1sQ5MhimEQ==", + "dev": true, + "dependencies": { + "meow": "^7.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/globby": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", + "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "node_modules/handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hook-std": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", + "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/husky": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^6.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/husky/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/husky/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/husky/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/husky/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/husky/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/inquirer/node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/into-stream": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", + "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", + "dev": true, + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "dev": true, + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jest": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.0.1.tgz", + "integrity": "sha512-29Q54kn5Bm7ZGKIuH2JRmnKl85YRigp0o0asTc6Sb6l2ch1DCXIeZTLLFy9ultJvhkTqbswF5DEx4+RlkmCxWg==", + "dev": true, + "dependencies": { + "@jest/core": "^26.0.1", + "import-local": "^3.0.2", + "jest-cli": "^26.0.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.0.1.tgz", + "integrity": "sha512-q8LP9Sint17HaE2LjxQXL+oYWW/WeeXMPE2+Op9X3mY8IEGFVc14xRxFjUuXUbcPAlDLhtWdIEt59GdQbn76Hw==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files/node_modules/cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.1.tgz", + "integrity": "sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "node_modules/jest-changed-files/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-config": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.0.1.tgz", + "integrity": "sha512-9mWKx2L1LFgOXlDsC4YSeavnblN6A4CPfXFiobq+YYLaBMymA/SczN7xYTSmLaEYHZOcB98UdoN4m5uNt6tztg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.0.1", + "@jest/types": "^26.0.1", + "babel-jest": "^26.0.1", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.0.1", + "jest-environment-node": "^26.0.1", + "jest-get-type": "^26.0.0", + "jest-jasmine2": "^26.0.1", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.0.1", + "jest-util": "^26.0.1", + "jest-validate": "^26.0.1", + "micromatch": "^4.0.2", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-config/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz", + "integrity": "sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.0.0", + "jest-get-type": "^26.0.0", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-docblock/node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.0.1.tgz", + "integrity": "sha512-OTgJlwXCAR8NIWaXFL5DBbeS4QIYPuNASkzSwMCJO+ywo9BEa6TqkaSWsfR7VdbMLdgYJqSfQcIyjJCNwl5n4Q==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "jest-get-type": "^26.0.0", + "jest-util": "^26.0.1", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.0.1.tgz", + "integrity": "sha512-u88NJa3aptz2Xix2pFhihRBAatwZHWwSiRLBDBQE1cdJvDjPvv7ZGA0NQBxWwDDn7D0g1uHqxM8aGgfA9Bx49g==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.0.1", + "@jest/fake-timers": "^26.0.1", + "@jest/types": "^26.0.1", + "jest-mock": "^26.0.1", + "jest-util": "^26.0.1", + "jsdom": "^16.2.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-jsdom/node_modules/acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.2.2.tgz", + "integrity": "sha512-pDFQbcYtKBHxRaP55zGXCJWgFHkDAYbKcsXEK/3Icu9nKYZkutUXfLBwbD+09XDutkYSHcgfQLZ0qvpAAm9mvg==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.0.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz", + "integrity": "sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ws": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", + "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/jest-environment-node": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.0.1.tgz", + "integrity": "sha512-4FRBWcSn5yVo0KtNav7+5NH5Z/tEgDLp7VRQVS5tCouWORxj+nI+1tOLutM07Zb2Qi7ja+HEDoOUkjBSWZg/IQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.0.1", + "@jest/fake-timers": "^26.0.1", + "@jest/types": "^26.0.1", + "jest-mock": "^26.0.1", + "jest-util": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-haste-map": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.0.1.tgz", + "integrity": "sha512-J9kBl/EdjmDsvyv7CiyKY5+DsTvVOScenprz/fGqfLg/pm1gdjbwwQ98nW0t+OIt+f+5nAVaElvn/6wP5KO7KA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-serializer": "^26.0.0", + "jest-util": "^26.0.1", + "jest-worker": "^26.0.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-haste-map/node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/jest-haste-map/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-haste-map/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/jest-haste-map/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "dev": true + }, + "node_modules/jest-haste-map/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-haste-map/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/jest-haste-map/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/jest-haste-map/node_modules/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/jest-haste-map/node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/jest-haste-map/node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-jasmine2": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.0.1.tgz", + "integrity": "sha512-ILaRyiWxiXOJ+RWTKupzQWwnPaeXPIoLS5uW41h18varJzd9/7I0QJGqg69fhTT1ev9JpSSo9QtalriUN0oqOg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.0.1", + "@jest/source-map": "^26.0.0", + "@jest/test-result": "^26.0.1", + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.0.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.0.1", + "jest-matcher-utils": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-runtime": "^26.0.1", + "jest-snapshot": "^26.0.1", + "jest-util": "^26.0.1", + "pretty-format": "^26.0.1", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "node_modules/jest-leak-detector": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.0.1.tgz", + "integrity": "sha512-93FR8tJhaYIWrWsbmVN1pQ9ZNlbgRpfvrnw5LmgLRX0ckOJ8ut/I35CL7awi2ecq6Ca4lL59bEK9hr7nqoHWPA==", + "dev": true, + "dependencies": { + "jest-get-type": "^26.0.0", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.0.1.tgz", + "integrity": "sha512-PUMlsLth0Azen8Q2WFTwnSkGh2JZ8FYuwijC8NR47vXKpsrKmA1wWvgcj1CquuVfcYiDEdj985u5Wmg7COEARw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.0.1", + "jest-get-type": "^26.0.0", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.0.1.tgz", + "integrity": "sha512-CbK8uQREZ8umUfo8+zgIfEt+W7HAHjQCoRaNs4WxKGhAYBGwEyvxuK81FXa7VeB9pwDEXeeKOB2qcsNVCAvB7Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.0.1", + "@types/stack-utils": "^1.0.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.0.1.tgz", + "integrity": "sha512-MpYTBqycuPYSY6xKJognV7Ja46/TeRbAZept987Zp+tuJvMN0YBWyyhG9mXyYQaU3SBI0TUlSaO5L3p49agw7Q==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", + "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.0.1.tgz", + "integrity": "sha512-6jWxk0IKZkPIVTvq6s72RH735P8f9eCJW3IM5CX/SJFeKq1p2cZx0U49wf/SdMlhaB/anann5J2nCJj6HrbezQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.1", + "jest-util": "^26.0.1", + "read-pkg-up": "^7.0.1", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.0.1.tgz", + "integrity": "sha512-9d5/RS/ft0vB/qy7jct/qAhzJsr6fRQJyGAFigK3XD4hf9kIbEH5gks4t4Z7kyMRhowU6HWm/o8ILqhaHdSqLw==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-resolve/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-resolve/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.0.1.tgz", + "integrity": "sha512-CApm0g81b49Znm4cZekYQK67zY7kkB4umOlI2Dx5CwKAzdgw75EN+ozBHRvxBzwo1ZLYZ07TFxkaPm+1t4d8jA==", + "dev": true, + "dependencies": { + "@jest/console": "^26.0.1", + "@jest/environment": "^26.0.1", + "@jest/test-result": "^26.0.1", + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.0.1", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.0.1", + "jest-jasmine2": "^26.0.1", + "jest-leak-detector": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-resolve": "^26.0.1", + "jest-runtime": "^26.0.1", + "jest-util": "^26.0.1", + "jest-worker": "^26.0.0", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "node_modules/jest-runtime": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.0.1.tgz", + "integrity": "sha512-Ci2QhYFmANg5qaXWf78T2Pfo6GtmIBn2rRaLnklRyEucmPccmCKvS9JPljcmtVamsdMmkyNkVFb9pBTD6si9Lw==", + "dev": true, + "dependencies": { + "@jest/console": "^26.0.1", + "@jest/environment": "^26.0.1", + "@jest/fake-timers": "^26.0.1", + "@jest/globals": "^26.0.1", + "@jest/source-map": "^26.0.0", + "@jest/test-result": "^26.0.1", + "@jest/transform": "^26.0.1", + "@jest/types": "^26.0.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.0.1", + "jest-haste-map": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-mock": "^26.0.1", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.0.1", + "jest-snapshot": "^26.0.1", + "jest-util": "^26.0.1", + "jest-validate": "^26.0.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.0.0.tgz", + "integrity": "sha512-sQGXLdEGWFAE4wIJ2ZaIDb+ikETlUirEOBsLXdoBbeLhTHkZUJwgk3+M8eyFizhM6le43PDCCKPA1hzkSDo4cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-serializer/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-snapshot": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.0.1.tgz", + "integrity": "sha512-jxd+cF7+LL+a80qh6TAnTLUZHyQoWwEHSUFJjkw35u3Gx+BZUNuXhYvDqHXr62UQPnWo2P6fvQlLjsU93UKyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.0.1", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.0.1", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.0.1", + "jest-get-type": "^26.0.0", + "jest-matcher-utils": "^26.0.1", + "jest-message-util": "^26.0.1", + "jest-resolve": "^26.0.1", + "make-dir": "^3.0.0", + "natural-compare": "^1.4.0", + "pretty-format": "^26.0.1", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.0.1.tgz", + "integrity": "sha512-byQ3n7ad1BO/WyFkYvlWQHTsomB6GIewBh8tlGtusiylAlaxQ1UpS0XYH0ngOyhZuHVLN79Qvl6/pMiDMSSG1g==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.0.1.tgz", + "integrity": "sha512-u0xRc+rbmov/VqXnX3DlkxD74rHI/CfS5xaV2VpeaVySjbb1JioNVOyly5b56q2l9ZKe7bVG5qWmjfctkQb0bA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.0.0", + "leven": "^3.1.0", + "pretty-format": "^26.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.0.1.tgz", + "integrity": "sha512-pdZPydsS8475f89kGswaNsN3rhP6lnC3/QDCppP7bg1L9JQz7oU9Mb/5xPETk1RHDCWeqmVC47M4K5RR7ejxFw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.0.1", + "@jest/types": "^26.0.1", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.0.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-watcher/node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", + "dev": true, + "dependencies": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.0.1.tgz", + "integrity": "sha512-pFLfSOBcbG9iOZWaMK4Een+tTxi/Wcm34geqZEqrst9cZDkTQ1LZ2CnBrTlHWuYAiTMFr0EQeK52ScyFU8wK+w==", + "dev": true, + "dependencies": { + "@jest/core": "^26.0.1", + "@jest/test-result": "^26.0.1", + "@jest/types": "^26.0.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.0.1", + "jest-util": "^26.0.1", + "jest-validate": "^26.0.1", + "prompts": "^2.0.1", + "yargs": "^15.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "dev": true + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "dev": true + }, + "node_modules/longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "dependencies": { + "tmpl": "1.0.x" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.0.0.tgz", + "integrity": "sha512-Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/marked-terminal": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.0.tgz", + "integrity": "sha512-5KllfAOW02WS6hLRQ7cNvGOxvKW1BKuXELH4EtbWfyWgxQhROoMxEvuQ/3fTgkNjledR0J48F4HbapvYp1zWkQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.1", + "cardinal": "^2.1.1", + "chalk": "^4.0.0", + "cli-table": "^0.3.1", + "node-emoji": "^1.10.0", + "supports-hyperlinks": "^2.1.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/marked-terminal/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/marked-terminal/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/marked-terminal/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/marked-terminal/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/marked-terminal/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-6.1.0.tgz", + "integrity": "sha512-RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.0.0.tgz", + "integrity": "sha512-PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz", + "integrity": "sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "arrify": "^2.0.1", + "camelcase": "^6.0.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/meow/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mime": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.0.2.tgz", + "integrity": "sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "dev": true, + "dependencies": { + "lodash.toarray": "^4.4.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz", + "integrity": "sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm": { + "version": "6.14.5", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.5.tgz", + "integrity": "sha512-CDwa3FJd0XJpKDbWCST484H+mCNjF26dPrU+xnREW+upR0UODjMEfXPl3bxWuAwZIX6c2ASg1plLO7jP8ehWeA==", + "bundleDependencies": [ + "JSONStream", + "abbrev", + "ansicolors", + "ansistyles", + "aproba", + "archy", + "bin-links", + "bluebird", + "byte-size", + "cacache", + "call-limit", + "chownr", + "ci-info", + "cli-columns", + "cli-table3", + "cmd-shim", + "columnify", + "config-chain", + "debuglog", + "detect-indent", + "detect-newline", + "dezalgo", + "editor", + "figgy-pudding", + "find-npm-prefix", + "fs-vacuum", + "fs-write-stream-atomic", + "gentle-fs", + "glob", + "graceful-fs", + "has-unicode", + "hosted-git-info", + "iferr", + "imurmurhash", + "infer-owner", + "inflight", + "inherits", + "ini", + "init-package-json", + "is-cidr", + "json-parse-better-errors", + "lazy-property", + "libcipm", + "libnpm", + "libnpmaccess", + "libnpmhook", + "libnpmorg", + "libnpmsearch", + "libnpmteam", + "libnpx", + "lock-verify", + "lockfile", + "lodash._baseindexof", + "lodash._baseuniq", + "lodash._bindcallback", + "lodash._cacheindexof", + "lodash._createcache", + "lodash._getnative", + "lodash.clonedeep", + "lodash.restparam", + "lodash.union", + "lodash.uniq", + "lodash.without", + "lru-cache", + "meant", + "mississippi", + "mkdirp", + "move-concurrently", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-cache-filename", + "npm-install-checks", + "npm-lifecycle", + "npm-package-arg", + "npm-packlist", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "once", + "opener", + "osenv", + "pacote", + "path-is-inside", + "promise-inflight", + "qrcode-terminal", + "query-string", + "qw", + "read", + "read-cmd-shim", + "read-installed", + "read-package-json", + "read-package-tree", + "readable-stream", + "readdir-scoped-modules", + "request", + "retry", + "rimraf", + "safe-buffer", + "semver", + "sha", + "slide", + "sorted-object", + "sorted-union-stream", + "ssri", + "stringify-package", + "tar", + "text-table", + "tiny-relative-date", + "uid-number", + "umask", + "unique-filename", + "unpipe", + "update-notifier", + "uuid", + "validate-npm-package-license", + "validate-npm-package-name", + "which", + "worker-farm", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.7", + "bluebird": "^3.5.5", + "byte-size": "^5.0.1", + "cacache": "^12.0.3", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.0", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.8", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^3.0.0", + "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.7", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.2", + "lock-verify": "^2.1.0", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.5", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.0", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.2", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.4", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.4", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.8.2", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.1", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.1.2", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.1", + "tar": "^4.4.13", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.3", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "6 >=6.2.0 || 8 || >=9.3.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "3.5.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/ajv": { + "version": "5.5.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/npm/node_modules/ansi-align": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asn1": { + "version": "0.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/npm/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/aws4": { + "version": "1.8.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npm/node_modules/bin-links": { + "version": "1.1.7", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/npm/node_modules/bluebird": { + "version": "3.5.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/boxen": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/buffer-from": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/byline": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/byte-size": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "12.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/npm/node_modules/call-limit": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/camelcase": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/capture-stack-trace": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/chalk": { + "version": "2.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "2.0.10", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cli-boxes": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/npm/node_modules/cliui": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "node_modules/npm/node_modules/co": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/npm/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "1.9.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.1.1" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/colors": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/combined-stream": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/concat-stream": { + "version": "1.6.2", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/config-chain": { + "version": "1.1.12", + "dev": true, + "inBundle": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/npm/node_modules/configstore": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/npm/node_modules/copy-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/create-error-class": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/crypto-random-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cyclist": { + "version": "0.2.2", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/decode-uri-component": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/define-properties": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/detect-indent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/detect-newline": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/dot-prop": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/dotenv": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.6.0" + } + }, + "node_modules/npm/node_modules/duplexer3": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/duplexify": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/npm/node_modules/editor": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/npm/node_modules/end-of-stream": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/errno": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/npm/node_modules/es-abstract": { + "version": "1.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es-to-primitive": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es6-promise": { + "version": "4.2.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/es6-promisify": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npm/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/execa": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/extend": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-deep-equal": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/figgy-pudding": { + "version": "3.5.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/find-npm-prefix": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/find-up": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/flush-write-stream": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/form-data": { + "version": "2.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npm/node_modules/from2": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/npm/node_modules/from2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "1.2.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/npm/node_modules/fs-minipass/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/fs-vacuum": { + "version": "1.2.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/genfun": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gentle-fs": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + } + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/get-caller-file": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "7.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got": { + "version": "6.7.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/har-validator": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/has-symbols": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "2.8.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "3.8.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/http-signature": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "2.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.4.23", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/iferr": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/npm/node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "1.10.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm/node_modules/invert-kv": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-callable": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-ci": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/npm/node_modules/is-ci/node_modules/ci-info": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^2.0.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/is-date-object": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-installed-globally": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-npm": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-obj": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-path-inside": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-redirect": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-regex": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-retry-allowed": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-symbol": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-schema": { + "version": "0.2.3", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/json-schema-traverse": { + "version": "0.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/jsprim": { + "version": "1.4.1", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/npm/node_modules/latest-version": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lazy-property": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lcid": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libcipm": { + "version": "4.0.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "node_modules/npm/node_modules/libnpm": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmconfig": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-limit": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpx": { + "version": "10.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lock-verify": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + } + }, + "node_modules/npm/node_modules/lockfile": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/lodash._baseindexof": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._baseuniq": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._bindcallback": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._cacheindexof": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._createcache": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._createset": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._getnative": { + "version": "3.9.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._root": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.clonedeep": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.restparam": { + "version": "3.6.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.union": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.without": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm/node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/npm/node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/meant": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mem": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/mime-db": { + "version": "1.35.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/mime-types": { + "version": "2.1.19", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.35.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/mississippi": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "0.5.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/npm/node_modules/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/move-concurrently": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/npm/node_modules/move-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/node-fetch-npm": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm/node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "1.3.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-cache-filename": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "node_modules/npm/node_modules/npm-lifecycle": { + "version": "3.1.4", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "node_modules/npm/node_modules/npm-logical-tree": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "6.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "1.4.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/oauth-sign": { + "version": "0.9.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/object-keys": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.1", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/os-locale": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/os-locale/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm/node_modules/os-locale/node_modules/execa": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npm/node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/p-is-promise": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/p-limit": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/package-json": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "9.5.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/npm/node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/parallel-transform": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-parse": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/npm/node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/protoduck": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/npm/node_modules/prr": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/psl": { + "version": "1.1.29", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/pumpify": { + "version": "1.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/npm/node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/qs": { + "version": "6.5.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/query-string": { + "version": "6.8.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/qw": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/npm/node_modules/rc/node_modules/minimist": { + "version": "1.2.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-installed": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-package-tree": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/registry-auth-token": { + "version": "3.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/npm/node_modules/registry-url": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request": { + "version": "2.88.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/require-main-filename": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npm/node_modules/run-queue": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/npm/node_modules/run-queue/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm/node_modules/semver-diff": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/sha": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT)", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/slide": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/sorted-object": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/sorted-union-stream": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/split-on-first": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/sshpk": { + "version": "1.14.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "getpass": "^0.1.1", + "safer-buffer": "^2.0.2" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "bcrypt-pbkdf": "^1.0.0", + "ecc-jsbn": "~0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "node_modules/npm/node_modules/ssri": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/npm/node_modules/stream-each": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/stream-shift": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/strict-uri-encode": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "5.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "4.4.13", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/term-size": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through": { + "version": "2.3.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through2": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/npm/node_modules/through2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/timed-out": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tough-cookie": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "inBundle": true, + "license": "Unlicense", + "optional": true + }, + "node_modules/npm/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/uid-number": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/umask": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/unique-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/unzip-response": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/update-notifier": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/url-parse-lax": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-extend": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-promisify": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/npm/node_modules/uuid": { + "version": "3.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npm/node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "1.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm/node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/npm/node_modules/wide-align/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/widest-line": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/worker-farm": { + "version": "1.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/xdg-basedir": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/xtend": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npm/node_modules/y18n": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yallist": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yargs": { + "version": "11.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "node_modules/npm/node_modules/yargs-parser": { + "version": "9.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/y18n": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/object.values/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opal-runtime": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/opal-runtime/-/opal-runtime-1.0.11.tgz", + "integrity": "sha512-L+6pnRvXPlDtbamBRnJAnB9mEMXmsIQ/b+0r/2xJ5/n/nxheEkLo+Pm5QNQ08LEbEN9TI6/kedhIspqRRu6tXA==", + "dev": true, + "dependencies": { + "glob": "6.0.4", + "xmlhttprequest": "1.8.0" + }, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/opal-runtime/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dev": true, + "dependencies": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-each-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz", + "integrity": "sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==", + "dev": true, + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-github-repo-url": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", + "dev": true + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/platform": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", + "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", + "dev": true + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", + "dev": true, + "dependencies": { + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true, + "optional": true + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/request-promise-native/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "node_modules/rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.7.tgz", + "integrity": "sha512-F6FzJI1yiGavzCTXir4yPthK/iozZPJ4myUYndiHhSHbmOcCSJ2m7V+P6sFwVpDpQKQp1Q31M68sTJ/Q/27Bow==", + "dev": true, + "dependencies": { + "@semantic-release/commit-analyzer": "^8.0.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^7.0.0", + "@semantic-release/npm": "^7.0.0", + "@semantic-release/release-notes-generator": "^9.0.0", + "aggregate-error": "^3.0.0", + "cosmiconfig": "^6.0.0", + "debug": "^4.0.0", + "env-ci": "^5.0.0", + "execa": "^4.0.0", + "figures": "^3.0.0", + "find-versions": "^3.0.0", + "get-stream": "^5.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^2.0.0", + "hosted-git-info": "^3.0.0", + "lodash": "^4.17.15", + "marked": "^1.0.0", + "marked-terminal": "^4.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "p-reduce": "^2.0.0", + "read-pkg-up": "^7.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "signale": "^1.2.1", + "yargs": "^15.0.1" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/semantic-release/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/semantic-release/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/semantic-release/node_modules/execa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.1.tgz", + "integrity": "sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/semantic-release/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/semantic-release/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/semantic-release/node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/semantic-release/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semantic-release/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semantic-release/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/semantic-release/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/semantic-release/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "dev": true, + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "dependencies": { + "through2": "^2.0.2" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/split2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/split2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/split2/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-combiner2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/stream-combiner2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", + "integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/string.prototype.trimend/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", + "integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempfile": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", + "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", + "dev": true, + "dependencies": { + "temp-dir": "^2.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.5.0.tgz", + "integrity": "sha512-VEY96x7gbIRfsxqsafy2l5yVxxp3PhwAGoWMyC2D2Zt5DmEv+2tGiPOrquNRpf21hhGnKLVEsuqleqiZmKG/qw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.12.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terminal-link/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/textlint-plugin-asciidoctor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/textlint-plugin-asciidoctor/-/textlint-plugin-asciidoctor-1.0.3.tgz", + "integrity": "sha512-T9ZLVLTRMNaAVO5MV9+6IS9q4gYtZTOlaCeCl+VNP55pseTYMmkQwsKd+XnPdu3WLqTSZcqLizG5H5bHysg0dw==", + "dev": true, + "dependencies": { + "asciidoctor.js": "^1.5.9" + }, + "bin": { + "asciidoc-to-textlint-ast": "bin/asciidoc-to-textlint-ast.js" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dev": true, + "dependencies": { + "readable-stream": "2 || 3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "dependencies": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", + "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/uglify-js": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz", + "integrity": "sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==", + "dev": true, + "optional": true, + "dependencies": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universal-user-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", + "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", + "dev": true, + "dependencies": { + "os-name": "^3.1.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": "8.x.x || >=10.10.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "dependencies": { + "makeerror": "1.0.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, + "node_modules/windows-release": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz", + "integrity": "sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==", + "dev": true, + "dependencies": { + "execa": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaml": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", + "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.9.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/yargs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/yargs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + } + }, "dependencies": { "@babel/code-frame": { "version": "7.8.3", @@ -2357,16 +22802,6 @@ } } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abab": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", @@ -3723,8 +24158,8 @@ "integrity": "sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==", "dev": true, "requires": { - "JSONStream": "^1.0.4", "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", "lodash": "^4.17.15", "meow": "^7.0.0", "split2": "^2.0.0", @@ -9142,6 +29577,16 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -9841,7 +30286,6 @@ "integrity": "sha512-CDwa3FJd0XJpKDbWCST484H+mCNjF26dPrU+xnREW+upR0UODjMEfXPl3bxWuAwZIX6c2ASg1plLO7jP8ehWeA==", "dev": true, "requires": { - "JSONStream": "^1.3.5", "abbrev": "~1.1.1", "ansicolors": "~0.3.2", "ansistyles": "~0.1.3", @@ -9882,6 +30326,7 @@ "init-package-json": "^1.10.3", "is-cidr": "^3.0.0", "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", "lazy-property": "~1.0.0", "libcipm": "^4.0.7", "libnpm": "^3.0.1", @@ -9966,15 +30411,6 @@ "write-file-atomic": "^2.4.3" }, "dependencies": { - "JSONStream": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abbrev": { "version": "1.1.1", "bundled": true, @@ -11415,6 +31851,15 @@ "bundled": true, "dev": true }, + "JSONStream": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "1.4.1", "bundled": true, @@ -12064,9 +32509,9 @@ "bundled": true, "dev": true, "requires": { - "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", "npm-package-arg": "^6.1.0", @@ -12919,6 +33364,21 @@ "bundled": true, "dev": true }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } + } + }, "string-width": { "version": "2.1.1", "bundled": true, @@ -12948,21 +33408,6 @@ } } }, - "string_decoder": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.0", - "bundled": true, - "dev": true - } - } - }, "stringify-package": { "version": "1.0.1", "bundled": true, @@ -15279,6 +35724,15 @@ } } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -15510,15 +35964,6 @@ } } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", diff --git a/package.json b/package.json index 4c2e8adb..65e09fd3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.4", + "version": "2.7.5", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From e03875da21dbc53e4ab69e3d1c05e1a55413d814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20G=C3=BCndo=C4=9Fmu=C5=9F?= <74984741+eraygundogmus@users.noreply.github.com> Date: Mon, 13 Sep 2021 13:02:22 +0300 Subject: [PATCH 101/108] Update tree-intro.asc --- book/content/part03/tree-intro.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/content/part03/tree-intro.asc b/book/content/part03/tree-intro.asc index 80d65903..94f4b88b 100644 --- a/book/content/part03/tree-intro.asc +++ b/book/content/part03/tree-intro.asc @@ -106,6 +106,6 @@ image::image35.png[image,width=258,height=169] .Heap vs. Binary Search Tree **** -Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good a finding any element in *O(log n)*. Heaps are often used to implement priority queues, while BST is used when you need every value sorted. +Heap is better at finding max or min values in constant time *O(1)*, while a balanced BST is good at finding any element in *O(log n)*. Heaps are often used to implement priority queues, while BST is used when you need every value sorted. **** indexterm:[Runtime, Logarithmic] From 5ac3cd9edd4cb18bb4379bfdaaa9c4f770a048b4 Mon Sep 17 00:00:00 2001 From: Ivan J <ivanji@gmail.com> Date: Tue, 9 Nov 2021 11:01:12 -0500 Subject: [PATCH 102/108] Update quick-sort.asc Fixing a minor but important detail --- book/content/part04/quick-sort.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/content/part04/quick-sort.asc b/book/content/part04/quick-sort.asc index 4f1cd5e0..e1a1de65 100644 --- a/book/content/part04/quick-sort.asc +++ b/book/content/part04/quick-sort.asc @@ -13,7 +13,7 @@ Quicksort is an efficient recursive sorting algorithm that uses <<Divide and Con indexterm:[Divide and Conquer] In practice, quicksort outperforms other sorting algorithms like <<part04-algorithmic-toolbox#merge-sort>>. And, of course, It also outperforms simple sorting algorithms like <<part04-algorithmic-toolbox#selection-sort>>, <<part04-algorithmic-toolbox#insertion-sort>> and <<part04-algorithmic-toolbox#insertion-sort>>. -Quicksort picks a "pivot" element randomly and moves all the smaller parts than the pivot to the right and the ones that are bigger to the left. It does this recursively until all the array is sorted. +Quicksort picks a "pivot" element randomly and moves all the smaller parts than the pivot to the left and the ones that are bigger to the right. It does this recursively until all the array is sorted. ===== Quicksort Implementation From ccfcfe6f039ce3f6e289d368fbdbf67e227c168c Mon Sep 17 00:00:00 2001 From: Joshua Morris <joshua.a.morris@gmail.com> Date: Sat, 27 Nov 2021 01:46:14 -0600 Subject: [PATCH 103/108] fix(graph): minor typo in bfs code documentation "bfs*" inline documentation should read "Breadth-first search" Fixes #110 --- src/data-structures/graphs/graph.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data-structures/graphs/graph.js b/src/data-structures/graphs/graph.js index 02b8d708..5342b6d3 100644 --- a/src/data-structures/graphs/graph.js +++ b/src/data-structures/graphs/graph.js @@ -134,7 +134,7 @@ class Graph { } /** - * Depth-first search + * Breadth-first search * Use a queue to visit nodes (FIFO) * @param {Node} first node to start the dfs */ From ae41553426a8d128db7958769bc8cfaa753acd23 Mon Sep 17 00:00:00 2001 From: semantic-release-bot <semantic-release-bot@martynus.net> Date: Tue, 30 Nov 2021 01:32:30 +0000 Subject: [PATCH 104/108] :bookmark: chore(release): 2.7.6 ## [2.7.6](https://github.com/amejiarosario/dsa.js/compare/2.7.5...2.7.6) (2021-11-30) ### Bug Fixes * **graph:** minor typo in bfs code documentation ([ccfcfe6](https://github.com/amejiarosario/dsa.js/commit/ccfcfe6f039ce3f6e289d368fbdbf67e227c168c)), closes [#110](https://github.com/amejiarosario/dsa.js/issues/110) --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1268e21..4e021d32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.7.6](https://github.com/amejiarosario/dsa.js/compare/2.7.5...2.7.6) (2021-11-30) + + +### Bug Fixes + +* **graph:** minor typo in bfs code documentation ([ccfcfe6](https://github.com/amejiarosario/dsa.js/commit/ccfcfe6f039ce3f6e289d368fbdbf67e227c168c)), closes [#110](https://github.com/amejiarosario/dsa.js/issues/110) + ## [2.7.5](https://github.com/amejiarosario/dsa.js/compare/2.7.4...2.7.5) (2021-05-24) diff --git a/package-lock.json b/package-lock.json index 1d1cca05..961f44f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dsa.js", - "version": "2.7.5", + "version": "2.7.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "dsa.js", - "version": "2.7.4", + "version": "2.7.5", "license": "MIT", "devDependencies": { "@semantic-release/changelog": "^5.0.1", diff --git a/package.json b/package.json index 65e09fd3..73ef1563 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.7.5", + "version": "2.7.6", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia <hi+dsajs@adrianmejia.com> (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 5b49d8a8a12712328a8de9b94eba949d11553686 Mon Sep 17 00:00:00 2001 From: Gabriela <gabriela.stelescu@gmail.com> Date: Thu, 19 May 2022 14:53:34 +0200 Subject: [PATCH 105/108] fix(runtimes/02-binary-search):fixes binary search iterative --- src/runtimes/02-binary-search.js | 44 ++++++--------------------- src/runtimes/02-binary-search.spec.js | 42 ++++++++++++++++++++----- 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/runtimes/02-binary-search.js b/src/runtimes/02-binary-search.js index 4e241b85..76203d31 100644 --- a/src/runtimes/02-binary-search.js +++ b/src/runtimes/02-binary-search.js @@ -38,50 +38,24 @@ function binarySearchRecursive(array, search, offset = 0) { * @param {string|number} search value to search for */ function binarySearchIterative(array, search) { - // console.log('binarySearchIterative', {array, search}); let start = 0; - let end = array.length; - const half = () => parseInt((end - start) / 2, 10) + start; + let end = array.length - 1; + const half = () => start + parseInt((end - start) / 2, 10); - while (end - start > 0) { + while (start <= end) { const currentIndex = half(); const current = array[currentIndex]; - if (current === search) { - return currentIndex; - } if (search > current) { - start = currentIndex; + if (current === search) return currentIndex; + + if (search > current) { + start = currentIndex + 1; } else if (search < current) { - end = currentIndex; + end = currentIndex - 1; } } return -1; } -// const binarySearch = binarySearchRecursive; -const binarySearch = binarySearchIterative; - -// function test() { -// const directory = ['Adrian', 'Bella', 'Charlotte', 'Daniel', -// 'Emma', 'Hanna', 'Isabella', 'Jayden', 'Kaylee', 'Luke', 'Mia', -// 'Nora', 'Olivia', 'Paisley', 'Riley', 'Thomas', 'Wyatt', 'Xander', 'Zoe']; -// -// const assert = require('assert'); -// assert.equal(binarySearch([], 'not found'), -1); -// assert.equal(binarySearch([1], 2), -1); -// assert.equal(binarySearch([1], 1), 0); -// assert.equal(binarySearch([1, 2, 3], 1), 0); -// assert.equal(binarySearch([1, 2, 3], 2), 1); -// assert.equal(binarySearch([1, 2, 3], 3), 2); -// assert.equal(binarySearch([1, 2, 3], 31), -1); -// assert.equal(binarySearch(directory, 'Adrian'), 0); -// assert.equal(binarySearch(directory, 'Hanna'), 5); -// assert.equal(binarySearch(directory, 'Zoe'), 18); -// assert.equal(binarySearch(directory, 'not found'), -1); -// } - -// test(); - - -module.exports = { binarySearch, binarySearchIterative, binarySearchRecursive }; +module.exports = { binarySearchIterative, binarySearchRecursive }; diff --git a/src/runtimes/02-binary-search.spec.js b/src/runtimes/02-binary-search.spec.js index 4850cd7c..e6aca91b 100644 --- a/src/runtimes/02-binary-search.spec.js +++ b/src/runtimes/02-binary-search.spec.js @@ -1,6 +1,6 @@ -const binarySearch = require('./02-binary-search').binarySearchRecursive; +const { binarySearchRecursive, binarySearchIterative } = require('./02-binary-search'); -describe('Binary Search', () => { +describe('Binary Search Recursive', () => { let array; beforeEach(() => { @@ -8,22 +8,50 @@ describe('Binary Search', () => { }); it('should find a middle element', () => { - expect(binarySearch(array, 9)).toEqual(1); + expect(binarySearchRecursive(array, 9)).toEqual(1); }); it('should find an first element', () => { - expect(binarySearch(array, 7)).toEqual(0); + expect(binarySearchRecursive(array, 7)).toEqual(0); }); it('should find the last element', () => { - expect(binarySearch(array, 23)).toEqual(3); + expect(binarySearchRecursive(array, 23)).toEqual(3); }); it('should not find an bigger element', () => { - expect(binarySearch(array, 9000)).toEqual(-1); + expect(binarySearchRecursive(array, 9000)).toEqual(-1); }); it('should find a smaller element', () => { - expect(binarySearch(array, -9)).toEqual(-1); + expect(binarySearchRecursive(array, -9)).toEqual(-1); + }); +}); + +describe('Binary Search Iterative', () => { + let array; + + beforeEach(() => { + array = [7, 9, 13, 23]; + }); + + it('should find a middle element', () => { + expect(binarySearchIterative(array, 9)).toEqual(1); + }); + + it('should find an first element', () => { + expect(binarySearchIterative(array, 7)).toEqual(0); + }); + + it('should find the last element', () => { + expect(binarySearchIterative(array, 23)).toEqual(3); + }); + + it('should not find an bigger element', () => { + expect(binarySearchIterative(array, 9000)).toEqual(-1); + }); + + it('should find a smaller element', () => { + expect(binarySearchIterative(array, -9)).toEqual(-1); }); }); From cde6e8a2291bb97e08b28dedf093942e664eaa09 Mon Sep 17 00:00:00 2001 From: Balaji Saravanan <balajilitsv@gmail.com> Date: Sun, 29 May 2022 12:01:08 +0530 Subject: [PATCH 106/108] Update heap.js Fix proper parent index fetching --- src/data-structures/heaps/heap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data-structures/heaps/heap.js b/src/data-structures/heaps/heap.js index 54863c39..537894ee 100644 --- a/src/data-structures/heaps/heap.js +++ b/src/data-structures/heaps/heap.js @@ -59,7 +59,7 @@ class Heap { */ bubbleUp() { let index = this.size - 1; - const parent = (i) => Math.ceil(i / 2 - 1); + const parent = (i) => Math.ceil(i / 2) - 1; while (parent(index) >= 0 && this.comparator(parent(index), index) > 0) { this.swap(parent(index), index); index = parent(index); From c9249d38cc3809bc2c0457f35494772cb57b28b9 Mon Sep 17 00:00:00 2001 From: Adrian Mejia <adriansky@gmail.com> Date: Sat, 10 Dec 2022 16:02:51 -0500 Subject: [PATCH 107/108] chore(binary-search): consolidate test for multiple implementations --- src/runtimes/02-binary-search.js | 6 +- src/runtimes/02-binary-search.spec.js | 92 +++++++++++---------------- 2 files changed, 41 insertions(+), 57 deletions(-) diff --git a/src/runtimes/02-binary-search.js b/src/runtimes/02-binary-search.js index 76203d31..c8118160 100644 --- a/src/runtimes/02-binary-search.js +++ b/src/runtimes/02-binary-search.js @@ -18,9 +18,11 @@ function binarySearchRecursive(array, search, offset = 0) { if (current === search) { return offset + half; - } if (array.length === 1) { + } + if (array.length === 1) { return -1; - } if (search > current) { + } + if (search > current) { const right = array.slice(half); return binarySearchRecursive(right, search, offset + half); } diff --git a/src/runtimes/02-binary-search.spec.js b/src/runtimes/02-binary-search.spec.js index e6aca91b..1e8f8f56 100644 --- a/src/runtimes/02-binary-search.spec.js +++ b/src/runtimes/02-binary-search.spec.js @@ -1,57 +1,39 @@ -const { binarySearchRecursive, binarySearchIterative } = require('./02-binary-search'); - -describe('Binary Search Recursive', () => { - let array; - - beforeEach(() => { - array = [7, 9, 13, 23]; - }); - - it('should find a middle element', () => { - expect(binarySearchRecursive(array, 9)).toEqual(1); - }); - - it('should find an first element', () => { - expect(binarySearchRecursive(array, 7)).toEqual(0); - }); - - it('should find the last element', () => { - expect(binarySearchRecursive(array, 23)).toEqual(3); - }); - - it('should not find an bigger element', () => { - expect(binarySearchRecursive(array, 9000)).toEqual(-1); - }); - - it('should find a smaller element', () => { - expect(binarySearchRecursive(array, -9)).toEqual(-1); - }); -}); - -describe('Binary Search Iterative', () => { - let array; - - beforeEach(() => { - array = [7, 9, 13, 23]; - }); - - it('should find a middle element', () => { - expect(binarySearchIterative(array, 9)).toEqual(1); - }); - - it('should find an first element', () => { - expect(binarySearchIterative(array, 7)).toEqual(0); - }); - - it('should find the last element', () => { - expect(binarySearchIterative(array, 23)).toEqual(3); - }); - - it('should not find an bigger element', () => { - expect(binarySearchIterative(array, 9000)).toEqual(-1); - }); - - it('should find a smaller element', () => { - expect(binarySearchIterative(array, -9)).toEqual(-1); +const { + binarySearchRecursive, + binarySearchIterative, +} = require("./02-binary-search"); + +const binarySearchImplementations = [ + binarySearchRecursive, + binarySearchIterative, +]; + +binarySearchImplementations.forEach((binarySearchImpl) => { + describe(binarySearchImpl.name, () => { + let array; + + beforeEach(() => { + array = [7, 9, 13, 23]; + }); + + it("should find a middle element", () => { + expect(binarySearchImpl(array, 9)).toEqual(1); + }); + + it("should find an first element", () => { + expect(binarySearchImpl(array, 7)).toEqual(0); + }); + + it("should find the last element", () => { + expect(binarySearchImpl(array, 23)).toEqual(3); + }); + + it("should not find an bigger element", () => { + expect(binarySearchImpl(array, 9000)).toEqual(-1); + }); + + it("should find a smaller element", () => { + expect(binarySearchImpl(array, -9)).toEqual(-1); + }); }); }); From fefb06a6b51a7699cb3986ed2d20dc0d03511055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ca=C3=ADque=20de=20Castro=20Soares=20da=20Silva?= <castro.caique@gmail.com> Date: Mon, 26 Dec 2022 17:45:05 -0300 Subject: [PATCH 108/108] Fix return of unshift method Fix return of unshift method --- book/content/part02/array.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 3bde2929..25c029ee 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -73,7 +73,7 @@ Here's an example: [source, javascript] ---- const array = [2, 5, 1]; -array.unshift(0); // ↪️ 8 +array.unshift(0); // ↪️ 4 console.log(array); // [ 0, 2, 5, 1 ] array.unshift(-2, -1); // ↪️ 6 console.log(array); // [ -2, -1, 0, 2, 5, 1 ]