Search.setIndex({"docnames": ["Advanced/DictionariesRevisited", "Advanced/GraphsRevisited", "Advanced/Objectives", "Advanced/PythonListsRevisited", "Advanced/RecursionRevisited", "Advanced/TreesRevisited", "Advanced/exercises", "Advanced/keyterms", "Advanced/summary", "Advanced/toctree", "AlgorithmAnalysis/AnAnagramDetectionExample", "AlgorithmAnalysis/BigONotation", "AlgorithmAnalysis/Dictionaries", "AlgorithmAnalysis/Exercises", "AlgorithmAnalysis/KeyTerms", "AlgorithmAnalysis/Lists", "AlgorithmAnalysis/Objectives", "AlgorithmAnalysis/PerformanceofPythonDataStructures", "AlgorithmAnalysis/Summary", "AlgorithmAnalysis/WhatIsAlgorithmAnalysis", "AlgorithmAnalysis/toctree", "BasicDS/BalancedSymbolsAGeneralCase", "BasicDS/ConvertingDecimalNumberstoBinaryNumbers", "BasicDS/Exercises", "BasicDS/ImplementingaDequeinPython", "BasicDS/ImplementingaQueueinPython", "BasicDS/ImplementingaStackinPython", "BasicDS/ImplementinganOrderedList", "BasicDS/ImplementinganUnorderedListLinkedLists", "BasicDS/InfixPrefixandPostfixExpressions", "BasicDS/KeyTerms", "BasicDS/Lists", "BasicDS/Objectives", "BasicDS/PalindromeChecker", "BasicDS/SimpleBalancedParentheses", "BasicDS/SimulationHotPotato", "BasicDS/SimulationPrintingTasks", "BasicDS/Summary", "BasicDS/TheDequeAbstractDataType", "BasicDS/TheOrderedListAbstractDataType", "BasicDS/TheQueueAbstractDataType", "BasicDS/TheStackAbstractDataType", "BasicDS/TheUnorderedListAbstractDataType", "BasicDS/WhatAreLinearStructures", "BasicDS/WhatIsaDeque", "BasicDS/WhatIsaQueue", "BasicDS/WhatisaStack", "BasicDS/toctree", "Graphs/AnAdjacencyList", "Graphs/AnAdjacencyMatrix", "Graphs/AnalysisofDijkstrasAlgorithm", "Graphs/BreadthFirstSearchAnalysis", "Graphs/BuildingtheKnightsTourGraph", "Graphs/BuildingtheWordLadderGraph", "Graphs/DepthFirstSearchAnalysis", "Graphs/DijkstrasAlgorithm", "Graphs/Exercises", "Graphs/GeneralDepthFirstSearch", "Graphs/Implementation", "Graphs/ImplementingBreadthFirstSearch", "Graphs/ImplementingKnightsTour", "Graphs/KeyTerms", "Graphs/KnightsTourAnalysis", "Graphs/Objectives", "Graphs/PrimsSpanningTreeAlgorithm", "Graphs/ShortestPathProblems", "Graphs/StronglyConnectedComponents", "Graphs/Summary", "Graphs/TheGraphAbstractDataType", "Graphs/TheKnightsTourProblem", "Graphs/TheWordLadderProblem", "Graphs/TopologicalSorting", "Graphs/VocabularyandDefinitions", "Graphs/toctree", "Introduction/ControlStructures", "Introduction/DefiningFunctions", "Introduction/DiscussionQuestions", "Introduction/ExceptionHandling", "Introduction/Exercises", "Introduction/GettingStarted", "Introduction/GettingStartedwithData", "Introduction/InputandOutput", "Introduction/KeyTerms", "Introduction/ObjectOrientedProgramminginPythonDefiningClasses", "Introduction/Objectives", "Introduction/ProgrammingExercises", "Introduction/ReviewofBasicPython", "Introduction/Summary", "Introduction/WhatIsComputerScience", "Introduction/WhatIsProgramming", "Introduction/WhyStudyAlgorithms", "Introduction/WhyStudyDataStructuresandAbstractDataTypes", "Introduction/toctree", "ProperClasses/a_proper_python_class", "ProperClasses/make_your_class_comparable", "ProperClasses/toctree", "Recursion/CalculatingtheSumofaListofNumbers", "Recursion/ComplexRecursiveProblems", "Recursion/ConvertinganIntegertoaStringinAnyBase", "Recursion/DiscussionQuestions", "Recursion/DynamicProgramming", "Recursion/Exercises", "Recursion/ExploringaMaze", "Recursion/Glossary", "Recursion/KeyTerms", "Recursion/Objectives", "Recursion/SierpinskiTriangle", "Recursion/StackFramesImplementingRecursion", "Recursion/Summary", "Recursion/TheThreeLawsofRecursion", "Recursion/TowerofHanoi", "Recursion/VisualizingRecursion", "Recursion/WhatIsRecursion", "Recursion/toctree", "SortSearch/Exercises", "SortSearch/Hashing", "SortSearch/KeyTerms", "SortSearch/Objectives", "SortSearch/Summary", "SortSearch/TheBinarySearch", "SortSearch/TheBubbleSort", "SortSearch/TheInsertionSort", "SortSearch/TheMergeSort", "SortSearch/TheQuickSort", "SortSearch/TheSelectionSort", "SortSearch/TheSequentialSearch", "SortSearch/TheShellSort", "SortSearch/searching", "SortSearch/sorting", "SortSearch/toctree", "Trees/AVLTreeImplementation", "Trees/AVLTreePerformance", "Trees/BalancedBinarySearchTrees", "Trees/BinaryHeapImplementation", "Trees/BinaryHeapOperations", "Trees/BinarySearchTrees", "Trees/ExamplesofTrees", "Trees/Exercises", "Trees/Implementation", "Trees/KeyTerms", "Trees/ListofListsRepresentation", "Trees/NodesandReferences", "Trees/Objectives", "Trees/ParseTree", "Trees/PriorityQueueswithBinaryHeaps", "Trees/SearchTreeAnalysis", "Trees/SearchTreeImplementation", "Trees/SearchTreeOperations", "Trees/Summary", "Trees/SummaryofMapADTImplementations", "Trees/TreeTraversals", "Trees/VocabularyandDefinitions", "Trees/toctree", "assignments", "index"], "filenames": ["Advanced/DictionariesRevisited.rst", "Advanced/GraphsRevisited.rst", "Advanced/Objectives.rst", "Advanced/PythonListsRevisited.rst", "Advanced/RecursionRevisited.rst", "Advanced/TreesRevisited.rst", "Advanced/exercises.rst", "Advanced/keyterms.rst", "Advanced/summary.rst", "Advanced/toctree.rst", "AlgorithmAnalysis/AnAnagramDetectionExample.rst", "AlgorithmAnalysis/BigONotation.rst", "AlgorithmAnalysis/Dictionaries.rst", "AlgorithmAnalysis/Exercises.rst", "AlgorithmAnalysis/KeyTerms.rst", "AlgorithmAnalysis/Lists.rst", "AlgorithmAnalysis/Objectives.rst", "AlgorithmAnalysis/PerformanceofPythonDataStructures.rst", "AlgorithmAnalysis/Summary.rst", "AlgorithmAnalysis/WhatIsAlgorithmAnalysis.rst", "AlgorithmAnalysis/toctree.rst", "BasicDS/BalancedSymbolsAGeneralCase.rst", "BasicDS/ConvertingDecimalNumberstoBinaryNumbers.rst", "BasicDS/Exercises.rst", "BasicDS/ImplementingaDequeinPython.rst", "BasicDS/ImplementingaQueueinPython.rst", "BasicDS/ImplementingaStackinPython.rst", "BasicDS/ImplementinganOrderedList.rst", "BasicDS/ImplementinganUnorderedListLinkedLists.rst", "BasicDS/InfixPrefixandPostfixExpressions.rst", "BasicDS/KeyTerms.rst", "BasicDS/Lists.rst", "BasicDS/Objectives.rst", "BasicDS/PalindromeChecker.rst", "BasicDS/SimpleBalancedParentheses.rst", "BasicDS/SimulationHotPotato.rst", "BasicDS/SimulationPrintingTasks.rst", "BasicDS/Summary.rst", "BasicDS/TheDequeAbstractDataType.rst", "BasicDS/TheOrderedListAbstractDataType.rst", "BasicDS/TheQueueAbstractDataType.rst", "BasicDS/TheStackAbstractDataType.rst", "BasicDS/TheUnorderedListAbstractDataType.rst", "BasicDS/WhatAreLinearStructures.rst", "BasicDS/WhatIsaDeque.rst", "BasicDS/WhatIsaQueue.rst", "BasicDS/WhatisaStack.rst", "BasicDS/toctree.rst", "Graphs/AnAdjacencyList.rst", "Graphs/AnAdjacencyMatrix.rst", "Graphs/AnalysisofDijkstrasAlgorithm.rst", "Graphs/BreadthFirstSearchAnalysis.rst", "Graphs/BuildingtheKnightsTourGraph.rst", "Graphs/BuildingtheWordLadderGraph.rst", "Graphs/DepthFirstSearchAnalysis.rst", "Graphs/DijkstrasAlgorithm.rst", "Graphs/Exercises.rst", "Graphs/GeneralDepthFirstSearch.rst", "Graphs/Implementation.rst", "Graphs/ImplementingBreadthFirstSearch.rst", "Graphs/ImplementingKnightsTour.rst", "Graphs/KeyTerms.rst", "Graphs/KnightsTourAnalysis.rst", "Graphs/Objectives.rst", "Graphs/PrimsSpanningTreeAlgorithm.rst", "Graphs/ShortestPathProblems.rst", "Graphs/StronglyConnectedComponents.rst", "Graphs/Summary.rst", "Graphs/TheGraphAbstractDataType.rst", "Graphs/TheKnightsTourProblem.rst", "Graphs/TheWordLadderProblem.rst", "Graphs/TopologicalSorting.rst", "Graphs/VocabularyandDefinitions.rst", "Graphs/toctree.rst", "Introduction/ControlStructures.rst", "Introduction/DefiningFunctions.rst", "Introduction/DiscussionQuestions.rst", "Introduction/ExceptionHandling.rst", "Introduction/Exercises.rst", "Introduction/GettingStarted.rst", "Introduction/GettingStartedwithData.rst", "Introduction/InputandOutput.rst", "Introduction/KeyTerms.rst", "Introduction/ObjectOrientedProgramminginPythonDefiningClasses.rst", "Introduction/Objectives.rst", "Introduction/ProgrammingExercises.rst", "Introduction/ReviewofBasicPython.rst", "Introduction/Summary.rst", "Introduction/WhatIsComputerScience.rst", "Introduction/WhatIsProgramming.rst", "Introduction/WhyStudyAlgorithms.rst", "Introduction/WhyStudyDataStructuresandAbstractDataTypes.rst", "Introduction/toctree.rst", "ProperClasses/a_proper_python_class.rst", "ProperClasses/make_your_class_comparable.rst", "ProperClasses/toctree.rst", "Recursion/CalculatingtheSumofaListofNumbers.rst", "Recursion/ComplexRecursiveProblems.rst", "Recursion/ConvertinganIntegertoaStringinAnyBase.rst", "Recursion/DiscussionQuestions.rst", "Recursion/DynamicProgramming.rst", "Recursion/Exercises.rst", "Recursion/ExploringaMaze.rst", "Recursion/Glossary.rst", "Recursion/KeyTerms.rst", "Recursion/Objectives.rst", "Recursion/SierpinskiTriangle.rst", "Recursion/StackFramesImplementingRecursion.rst", "Recursion/Summary.rst", "Recursion/TheThreeLawsofRecursion.rst", "Recursion/TowerofHanoi.rst", "Recursion/VisualizingRecursion.rst", "Recursion/WhatIsRecursion.rst", "Recursion/toctree.rst", "SortSearch/Exercises.rst", "SortSearch/Hashing.rst", "SortSearch/KeyTerms.rst", "SortSearch/Objectives.rst", "SortSearch/Summary.rst", "SortSearch/TheBinarySearch.rst", "SortSearch/TheBubbleSort.rst", "SortSearch/TheInsertionSort.rst", "SortSearch/TheMergeSort.rst", "SortSearch/TheQuickSort.rst", "SortSearch/TheSelectionSort.rst", "SortSearch/TheSequentialSearch.rst", "SortSearch/TheShellSort.rst", "SortSearch/searching.rst", "SortSearch/sorting.rst", "SortSearch/toctree.rst", "Trees/AVLTreeImplementation.rst", "Trees/AVLTreePerformance.rst", "Trees/BalancedBinarySearchTrees.rst", "Trees/BinaryHeapImplementation.rst", "Trees/BinaryHeapOperations.rst", "Trees/BinarySearchTrees.rst", "Trees/ExamplesofTrees.rst", "Trees/Exercises.rst", "Trees/Implementation.rst", "Trees/KeyTerms.rst", "Trees/ListofListsRepresentation.rst", "Trees/NodesandReferences.rst", "Trees/Objectives.rst", "Trees/ParseTree.rst", "Trees/PriorityQueueswithBinaryHeaps.rst", "Trees/SearchTreeAnalysis.rst", "Trees/SearchTreeImplementation.rst", "Trees/SearchTreeOperations.rst", "Trees/Summary.rst", "Trees/SummaryofMapADTImplementations.rst", "Trees/TreeTraversals.rst", "Trees/VocabularyandDefinitions.rst", "Trees/toctree.rst", "assignments.rst", "index.rst"], "titles": ["8.4. Dictionaries Revisited: Skip Lists", "8.6. Graphs Revisited: Pattern Matching", "8.1. Objectives", "8.2. Python Lists Revisited", "8.3. Recursion Revisited", "8.5. Trees Revisited: Quantizing Images", "Exercises", "Key Terms", "Summary", "8. Advanced Topics", "2.4. An Anagram Detection Example", "2.3. Big O Notation", "2.7. Dictionaries", "2.10. Exercises", "2.9. Key Terms", "2.6. Lists", "2.1. Objectives", "2.5. Performance of Python Data Structures", "2.8. Summary", "2.2. What Is Algorithm Analysis?", "2. Algorithm Analysis", "3.7. Balanced Symbols (A General Case)", "3.8. Converting Decimal Numbers to Binary Numbers", "3.26. Exercises", "3.17. Implementing a Deque in Python", "3.12. Implementing a Queue in Python", "3.5. Implementing a Stack in Python", "3.23. Implementing an Ordered List", "3.21. Implementing an Unordered List: Linked Lists", "3.9. Infix, Prefix, and Postfix Expressions", "3.25. Key Terms", "3.19. Lists", "3.1. Objectives", "3.18. Palindrome Checker", "3.6. Simple Balanced Parentheses", "3.13. Queue Simulation: Hot Potato", "3.14. Queue Simulation: Printing Tasks", "3.24. Summary", "3.16. The Deque Abstract Data Type", "3.22. The Ordered List Abstract Data Type", "3.11. The Queue Abstract Data Type", "3.4. The Stack Abstract Data Type", "3.20. The Unordered List Abstract Data Type", "3.2. What Are Linear Structures?", "3.15. Deques", "3.10. Queues", "3.3. Stacks", "3. Basic Data Structures", "7.5. An Adjacency List", "7.4. An Adjacency Matrix", "7.21. Analysis of Dijkstra\u2019s Algorithm", "7.10. Breadth-First Search Analysis", "7.12. Building the Knight\u2019s Tour Graph", "7.8. Building the Word Ladder Graph", "7.16. Depth-First Search Analysis", "7.20. Dijkstra\u2019s Algorithm", "7.25. Exercises", "7.15. General Depth-First Search", "7.6. Implementation", "7.9. Implementing Breadth-First Search", "7.13. Implementing Knight\u2019s Tour", "7.24. Key Terms", "7.14. Knight\u2019s Tour Analysis", "7.1. Objectives", "7.22. Prim\u2019s Spanning Tree Algorithm", "7.19. Shortest Path Problems", "7.18. Strongly Connected Components", "7.23. Summary", "7.3. The Graph Abstract Data Type", "7.11. The Knight\u2019s Tour Problem", "7.7. The Word Ladder Problem", "7.17. Topological Sorting", "7.2. Vocabulary and Definitions", "7. Graphs and Graphing Algorithms", "1.10. Control Structures", "1.12. Defining Functions", "Discussion Questions", "1.11. Exception Handling", "1.16. Exercises", "1.2. Getting Started", "1.8. Getting Started with Data", "1.9. Input and Output", "1.15. Key Terms", "1.13. Object-Oriented Programming in Python: Defining Classes", "1.1. Objectives", "Programming Exercises", "1.7. Review of Basic Python", "1.14. Summary", "1.3. What Is Computer Science?", "1.4. What Is Programming?", "1.6. Why Study Algorithms?", "1.5. Why Study Data Structures and Abstract Data Types?", "1. Introduction", "Writing a Proper Python Class", "Making your Class Comparable", "A Proper Class", "4.3. Calculating the Sum of a List of Numbers", "4.9. Complex Recursive Problems", "4.5. Converting an Integer to a String in Any Base", "Discussion Questions", "4.12. Dynamic Programming", "4.15. Exercises", "4.11. Exploring a Maze", "Glossary", "4.14. Key Terms", "4.1. Objectives", "4.8. Sierpinski Triangle", "4.6. Stack Frames: Implementing Recursion", "4.13. Summary", "4.4. The Three Laws of Recursion", "4.10. Tower of Hanoi", "4.7. Visualizing Recursion", "4.2. What Is Recursion?", "4. Recursion", "5.15. Exercises", "5.5. Hashing", "5.14. Key Terms", "5.1. Objectives", "5.13. Summary", "5.4. The Binary Search", "5.7. The Bubble Sort", "5.9. The Insertion Sort", "5.11. The Merge Sort", "5.12. The Quicksort", "5.8. The Selection Sort", "5.3. The Sequential Search", "5.10. The Shell Sort", "5.2. Searching", "5.6. Sorting", "5. Searching and Sorting", "6.18. AVL Tree Implementation", "6.17. AVL Tree Performance", "6.16. Balanced Binary Search Trees", "6.11. Binary Heap Implementation", "6.10. Binary Heap Operations", "6.12. Binary Search Trees", "6.2. Examples of Trees", "6.22. Exercises", "6.4. Implementation", "6.21. Key Terms", "6.5. List of Lists Representation", "6.6. Nodes and References", "6.1. Objectives", "6.7. Parse Tree", "6.9. Priority Queues with Binary Heaps", "6.15. Search Tree Analysis", "6.14. Search Tree Implementation", "6.13. Search Tree Operations", "6.20. Summary", "6.19. Summary of Map ADT Implementations", "6.8. Tree Traversals", "6.3. Vocabulary and Definitions", "6. Trees and Tree Algorithms", "Class Assignments", "Problem Solving with Algorithms and Data Structures using Python"], "terms": {"One": [0, 1, 4, 5, 10, 12, 15, 19, 28, 29, 35, 46, 49, 53, 55, 59, 65, 66, 69, 80, 83, 90, 100, 110, 114, 115, 119, 121, 140, 144, 146, 151], "most": [0, 1, 3, 4, 5, 6, 11, 12, 15, 19, 22, 27, 28, 29, 34, 36, 43, 45, 46, 49, 51, 62, 64, 74, 77, 78, 80, 81, 83, 85, 86, 88, 89, 98, 100, 109, 115, 119, 120, 122, 127, 128, 130, 131, 133, 137, 145, 146, 150], "versatil": 0, "collect": [0, 3, 5, 23, 25, 26, 28, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 53, 68, 74, 81, 83, 87, 91, 92, 115, 125, 127, 128, 135, 154], "avail": [0, 3, 29, 34, 62, 77, 83, 86, 106, 115, 154], "i": [0, 1, 3, 4, 5, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 90, 91, 92, 93, 94, 96, 97, 98, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, 154], "often": [0, 1, 3, 5, 11, 15, 19, 28, 43, 62, 79, 80, 81, 83, 89, 90, 91, 103, 108, 115, 120, 151], "refer": [0, 1, 3, 5, 11, 19, 23, 26, 27, 28, 29, 31, 32, 43, 46, 60, 74, 77, 79, 80, 81, 83, 86, 88, 91, 115, 120, 130, 131, 133, 137, 138, 142, 143, 146, 152, 154], "store": [0, 1, 3, 4, 5, 22, 23, 28, 33, 45, 46, 49, 53, 55, 58, 71, 81, 83, 88, 100, 115, 125, 130, 133, 138, 140, 141, 143, 146, 147, 150], "which": [0, 1, 3, 4, 5, 6, 10, 11, 12, 19, 23, 24, 25, 26, 28, 29, 34, 40, 43, 49, 51, 57, 58, 59, 60, 62, 63, 64, 65, 70, 71, 72, 75, 78, 79, 80, 81, 83, 85, 93, 94, 98, 100, 101, 102, 103, 106, 107, 111, 115, 119, 120, 121, 122, 123, 124, 125, 126, 128, 130, 131, 133, 140, 143, 144, 145, 146, 148, 150, 151], "must": [0, 1, 3, 4, 5, 10, 11, 21, 23, 24, 26, 27, 28, 29, 31, 33, 34, 45, 49, 51, 53, 55, 56, 60, 63, 64, 65, 66, 70, 71, 72, 74, 79, 80, 81, 83, 88, 89, 101, 102, 103, 108, 109, 111, 114, 115, 119, 120, 124, 125, 127, 130, 133, 137, 140, 141, 143, 146, 150, 151], "uniqu": [0, 4, 83, 115, 126, 136, 151], "assign": [0, 3, 11, 15, 19, 24, 28, 36, 74, 80, 83, 93, 103, 110, 120, 121, 146, 154], "an": [0, 1, 2, 3, 4, 6, 8, 9, 11, 12, 13, 15, 18, 19, 20, 22, 23, 24, 25, 26, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 51, 52, 53, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 80, 81, 83, 84, 85, 86, 88, 89, 91, 94, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 113, 114, 115, 118, 119, 120, 121, 122, 123, 126, 127, 128, 130, 131, 132, 133, 136, 137, 140, 141, 143, 144, 145, 146, 150, 151, 154], "associ": [0, 4, 8, 29, 65, 74, 80, 89, 115, 146], "particular": [0, 1, 3, 4, 5, 10, 11, 19, 43, 48, 55, 57, 58, 60, 62, 67, 70, 79, 80, 91, 102, 120, 123, 125, 127, 130, 143, 145], "given": [0, 1, 4, 6, 10, 11, 13, 19, 23, 24, 26, 27, 28, 36, 38, 40, 41, 42, 43, 59, 65, 68, 70, 74, 75, 78, 83, 85, 88, 89, 90, 102, 110, 111, 114, 115, 122, 123, 126, 130, 131, 132, 133, 137, 140, 143, 146, 147], "possibl": [0, 1, 4, 5, 6, 10, 15, 17, 21, 23, 27, 28, 29, 34, 36, 42, 45, 52, 57, 60, 62, 69, 70, 77, 80, 81, 83, 90, 100, 111, 115, 119, 120, 122, 123, 125, 128, 131, 133, 138, 145], "ask": [0, 1, 5, 19, 28, 74, 75, 77, 78, 80, 81, 83, 85, 100, 122, 127, 136, 140, 150], "correspond": [0, 1, 4, 5, 21, 22, 23, 29, 34, 52, 56, 59, 62, 77, 79, 81, 98, 100, 111, 115, 130, 136, 138, 140, 143], "abil": [0, 22, 26, 28, 34, 79, 83, 90, 130], "put": [0, 1, 4, 5, 35, 36, 53, 57, 81, 83, 100, 111, 114, 115, 126, 130, 132, 143, 145, 146, 147, 149, 150], "look": [0, 1, 3, 4, 5, 6, 11, 15, 19, 27, 28, 29, 36, 46, 49, 50, 53, 55, 57, 59, 60, 62, 63, 64, 66, 67, 68, 72, 79, 80, 81, 83, 86, 94, 96, 97, 98, 100, 101, 102, 106, 107, 108, 109, 111, 115, 119, 121, 123, 124, 125, 130, 131, 132, 133, 136, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151], "up": [0, 1, 3, 4, 5, 10, 11, 15, 23, 27, 28, 35, 36, 44, 51, 52, 60, 62, 71, 75, 80, 83, 88, 93, 94, 97, 98, 100, 102, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 130, 133, 137, 143, 150], "ar": [0, 1, 3, 4, 5, 6, 8, 10, 11, 12, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 77, 78, 80, 81, 83, 85, 86, 87, 88, 89, 90, 91, 93, 94, 96, 97, 98, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 114, 115, 118, 119, 120, 121, 122, 123, 125, 126, 127, 128, 130, 131, 133, 134, 135, 136, 140, 141, 143, 144, 145, 146, 150, 151, 153, 154], "fundament": [0, 37, 46, 72, 79, 89, 122, 151], "oper": [0, 3, 4, 5, 6, 10, 11, 13, 16, 17, 22, 23, 24, 25, 26, 27, 29, 31, 34, 35, 37, 39, 42, 44, 45, 64, 66, 78, 81, 82, 83, 85, 88, 89, 91, 94, 98, 102, 114, 115, 119, 120, 121, 122, 126, 127, 128, 130, 131, 132, 136, 137, 140, 143, 145, 146, 149, 150, 152, 154], "all": [0, 1, 3, 4, 5, 6, 10, 11, 12, 15, 22, 23, 26, 27, 28, 29, 31, 34, 35, 36, 37, 44, 45, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 64, 65, 66, 68, 71, 72, 74, 77, 78, 79, 80, 81, 83, 85, 88, 89, 93, 94, 96, 100, 101, 102, 103, 106, 108, 109, 110, 111, 115, 123, 125, 126, 130, 131, 132, 133, 136, 141, 143, 144, 145, 146, 150, 151, 154], "provid": [0, 1, 5, 8, 11, 12, 19, 23, 24, 26, 27, 28, 29, 31, 36, 37, 44, 46, 55, 57, 58, 64, 66, 67, 74, 76, 77, 78, 79, 81, 83, 86, 88, 89, 91, 93, 94, 101, 102, 103, 107, 110, 115, 118, 130, 135, 140, 143, 146, 147, 151], "For": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 21, 22, 23, 26, 27, 28, 31, 36, 39, 41, 43, 46, 53, 55, 60, 62, 64, 66, 70, 72, 74, 75, 77, 80, 81, 83, 86, 89, 93, 98, 100, 101, 102, 111, 114, 115, 123, 125, 126, 127, 128, 132, 133, 136, 141, 151, 153], "exampl": [0, 1, 3, 4, 5, 11, 15, 19, 20, 21, 22, 23, 26, 27, 28, 31, 33, 34, 35, 36, 39, 41, 43, 45, 46, 60, 62, 64, 65, 66, 70, 71, 72, 74, 75, 77, 79, 80, 81, 83, 86, 88, 89, 90, 94, 98, 100, 101, 102, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 122, 123, 126, 128, 130, 132, 133, 140, 141, 143, 145, 146, 150, 151, 152, 153, 154], "figur": [0, 1, 3, 4, 5, 11, 12, 15, 22, 27, 28, 29, 33, 34, 35, 36, 44, 45, 46, 48, 49, 52, 53, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 70, 71, 72, 74, 80, 83, 88, 90, 91, 96, 98, 100, 102, 106, 107, 110, 111, 115, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 136, 140, 141, 143, 145, 146, 150, 151], "1": [0, 1, 3, 4, 5, 6, 12, 13, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 44, 45, 46, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 69, 71, 72, 74, 75, 77, 83, 88, 90, 96, 98, 100, 101, 102, 106, 107, 109, 110, 111, 114, 115, 119, 121, 122, 123, 124, 126, 127, 130, 131, 132, 133, 134, 136, 137, 140, 141, 143, 145, 146, 150, 151, 153, 154], "show": [0, 1, 3, 4, 5, 10, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 38, 40, 41, 44, 45, 46, 52, 53, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 70, 71, 72, 75, 77, 80, 83, 86, 91, 93, 96, 98, 100, 106, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 136, 137, 140, 143, 146, 150, 151], "contain": [0, 1, 3, 5, 12, 15, 23, 26, 27, 28, 31, 46, 55, 58, 60, 66, 71, 74, 80, 81, 83, 93, 100, 102, 103, 115, 146], "In": [0, 1, 3, 4, 5, 10, 11, 12, 15, 17, 19, 22, 23, 24, 26, 27, 28, 29, 31, 33, 34, 35, 36, 44, 45, 48, 49, 51, 53, 54, 55, 57, 58, 59, 60, 62, 63, 64, 67, 70, 74, 75, 77, 78, 79, 80, 81, 83, 85, 86, 88, 89, 90, 93, 96, 97, 98, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 132, 133, 135, 136, 137, 140, 141, 143, 144, 145, 146, 148, 150, 151], "thi": [0, 1, 3, 4, 5, 6, 10, 11, 12, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 44, 45, 46, 49, 51, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 83, 85, 86, 88, 89, 91, 93, 94, 96, 97, 98, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 135, 136, 137, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154], "case": [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 19, 23, 26, 27, 28, 29, 31, 33, 35, 36, 37, 43, 47, 51, 55, 57, 60, 62, 64, 74, 75, 77, 79, 80, 81, 83, 88, 90, 93, 98, 100, 102, 103, 104, 106, 108, 109, 110, 111, 115, 118, 120, 121, 122, 123, 125, 126, 130, 131, 133, 135, 140, 141, 143, 145, 146, 150, 154], "integ": [0, 3, 4, 5, 10, 11, 19, 22, 23, 27, 28, 29, 31, 36, 38, 39, 40, 41, 42, 75, 77, 78, 80, 81, 83, 85, 89, 113, 114, 115, 119, 120, 121, 125, 133, 137, 143, 154], "small": [0, 1, 4, 5, 11, 49, 53, 57, 62, 64, 65, 66, 96, 100, 109, 111, 112, 114, 115, 119, 128, 133, 136, 140], "two": [0, 1, 3, 4, 5, 6, 10, 11, 12, 15, 19, 21, 22, 23, 26, 27, 28, 29, 36, 43, 44, 49, 51, 52, 53, 56, 57, 58, 59, 60, 62, 64, 66, 68, 69, 72, 74, 77, 78, 79, 80, 81, 83, 85, 90, 91, 94, 96, 98, 100, 101, 102, 106, 110, 114, 115, 120, 122, 123, 125, 128, 130, 131, 133, 135, 136, 137, 138, 140, 141, 143, 144, 145, 146, 149, 150, 151], "charact": [0, 1, 4, 10, 22, 23, 26, 29, 33, 45, 74, 75, 80, 83, 98, 102, 107, 114, 115, 137, 143], "word": [0, 4, 10, 11, 28, 29, 36, 59, 73, 74, 78, 81, 83, 85, 88, 101, 102, 115, 125, 126, 128, 137, 154], "from": [0, 1, 3, 4, 5, 6, 10, 11, 12, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 51, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 83, 85, 86, 88, 90, 91, 96, 98, 100, 101, 102, 103, 106, 107, 108, 110, 111, 114, 115, 119, 122, 125, 128, 130, 133, 134, 135, 136, 137, 138, 140, 143, 144, 145, 146, 147, 150, 151, 153], "logic": [0, 5, 26, 28, 37, 77, 88, 91, 92, 94, 102, 109, 144, 146, 154], "perspect": [0, 19, 88, 91], "inher": 0, "order": [0, 3, 5, 10, 11, 13, 14, 19, 21, 23, 26, 28, 29, 34, 35, 37, 38, 40, 41, 43, 44, 45, 46, 47, 55, 57, 60, 63, 66, 67, 71, 80, 81, 83, 88, 89, 98, 102, 106, 111, 114, 115, 118, 119, 120, 121, 122, 123, 124, 126, 128, 130, 134, 137, 139, 143, 144, 145, 146, 150, 151, 152, 154], "organ": [0, 1, 8, 83, 87, 103, 136], "within": [0, 1, 5, 19, 22, 29, 45, 50, 52, 74, 77, 79, 83, 150], "themselv": [0, 22, 35, 58, 83, 141, 143], "howev": [0, 1, 3, 4, 5, 10, 11, 15, 19, 24, 26, 27, 28, 29, 31, 33, 36, 49, 53, 55, 56, 59, 60, 63, 64, 65, 69, 77, 80, 83, 88, 89, 100, 101, 111, 115, 119, 120, 121, 123, 124, 125, 126, 133, 136, 140, 144, 146, 150], "93": [0, 27, 28, 31, 39, 115, 121, 123, 124, 146], "return": [0, 1, 3, 4, 5, 6, 10, 15, 19, 21, 22, 23, 24, 25, 27, 28, 29, 34, 35, 36, 38, 39, 40, 41, 42, 52, 53, 57, 58, 60, 62, 68, 71, 74, 75, 78, 80, 81, 83, 85, 88, 90, 96, 98, 100, 102, 106, 107, 109, 110, 115, 125, 127, 130, 133, 134, 138, 140, 141, 143, 146, 147, 150], "defin": [0, 3, 5, 11, 15, 23, 26, 29, 34, 38, 39, 40, 41, 58, 64, 66, 68, 72, 80, 88, 91, 92, 94, 96, 103, 107, 109, 111, 115, 131, 132, 133, 140, 141, 143, 146, 149, 150, 151, 154], "follow": [0, 1, 3, 4, 5, 6, 10, 11, 13, 15, 19, 21, 23, 25, 26, 27, 28, 29, 34, 36, 38, 40, 41, 51, 52, 54, 55, 56, 57, 58, 59, 60, 64, 66, 67, 70, 71, 74, 75, 77, 80, 81, 83, 88, 93, 94, 96, 97, 100, 101, 102, 105, 106, 108, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 133, 134, 136, 137, 138, 140, 141, 143, 146, 148, 150, 151], "structur": [0, 3, 5, 6, 8, 12, 15, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 44, 49, 63, 66, 77, 79, 80, 82, 83, 86, 92, 103, 109, 110, 115, 135, 136, 137, 140, 141, 142, 143, 144, 148, 149, 150, 152], "describ": [0, 3, 4, 5, 6, 11, 16, 23, 24, 26, 28, 35, 36, 38, 40, 41, 42, 53, 66, 68, 80, 83, 86, 88, 89, 91, 99, 100, 101, 102, 106, 111, 114, 115, 120, 123, 126, 130, 143, 146], "abov": [0, 1, 3, 4, 5, 11, 15, 19, 21, 23, 27, 28, 29, 36, 38, 39, 40, 41, 42, 56, 66, 68, 70, 72, 77, 80, 81, 83, 98, 100, 101, 102, 106, 110, 111, 115, 119, 120, 126, 130, 132, 136, 140, 143, 146], "where": [0, 1, 3, 4, 5, 6, 11, 15, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 48, 57, 60, 62, 65, 66, 69, 70, 72, 74, 77, 80, 83, 90, 93, 96, 98, 100, 102, 108, 109, 110, 115, 119, 120, 122, 123, 125, 126, 127, 130, 133, 136, 140, 143, 145, 146, 150, 151, 153], "can": [0, 1, 3, 4, 5, 6, 10, 11, 12, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 37, 38, 43, 44, 45, 46, 49, 51, 52, 53, 55, 56, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 77, 79, 80, 81, 83, 87, 88, 89, 90, 91, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 114, 115, 118, 119, 120, 121, 122, 123, 125, 126, 128, 130, 131, 132, 133, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153], "access": [0, 3, 5, 12, 27, 28, 46, 77, 80, 83, 93, 102, 107, 115, 140, 146], "via": [0, 28, 29, 80, 83, 110], "below": [0, 5, 12, 28, 29, 38, 40, 41, 42, 58, 59, 60, 65, 75, 77, 80, 81, 83, 101, 102, 115, 146], "creat": [0, 1, 3, 4, 5, 6, 15, 22, 23, 24, 25, 26, 27, 28, 29, 36, 37, 38, 39, 40, 41, 42, 46, 49, 52, 53, 55, 57, 58, 60, 66, 68, 74, 77, 79, 80, 81, 83, 87, 89, 91, 94, 100, 106, 107, 111, 114, 115, 119, 126, 130, 133, 134, 136, 137, 138, 140, 141, 143, 146, 147, 153], "new": [0, 1, 3, 5, 21, 22, 24, 25, 26, 27, 28, 29, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 55, 57, 59, 60, 64, 68, 74, 75, 77, 80, 81, 83, 86, 87, 98, 100, 106, 107, 111, 114, 115, 121, 122, 130, 131, 133, 134, 137, 138, 140, 141, 143, 144, 145, 146, 147], "empti": [0, 5, 15, 22, 24, 25, 27, 28, 29, 34, 36, 38, 39, 40, 41, 42, 49, 55, 68, 80, 83, 115, 122, 130, 134, 140, 143, 146, 147, 151], "It": [0, 1, 3, 4, 5, 10, 11, 12, 15, 17, 19, 21, 23, 25, 26, 27, 28, 29, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 55, 57, 59, 63, 64, 65, 72, 74, 75, 77, 80, 81, 83, 86, 88, 90, 93, 94, 98, 100, 102, 115, 118, 119, 120, 121, 122, 123, 125, 126, 127, 130, 133, 146, 151], "need": [0, 1, 3, 4, 5, 10, 11, 15, 19, 22, 24, 25, 26, 27, 28, 29, 34, 36, 38, 39, 40, 41, 42, 46, 49, 53, 56, 57, 60, 64, 70, 74, 75, 78, 79, 80, 81, 83, 85, 86, 88, 89, 90, 93, 96, 98, 100, 102, 110, 111, 114, 115, 119, 120, 121, 122, 123, 125, 126, 130, 132, 133, 137, 140, 141, 143, 145, 146, 150], "paramet": [0, 1, 4, 5, 6, 11, 15, 22, 23, 36, 38, 39, 40, 41, 42, 56, 58, 60, 75, 80, 81, 83, 88, 94, 96, 98, 100, 101, 102, 111, 120, 137, 138, 143, 146, 150], "add": [0, 3, 4, 5, 6, 23, 24, 25, 27, 28, 29, 33, 36, 38, 39, 40, 41, 42, 50, 53, 55, 57, 58, 59, 64, 68, 72, 78, 80, 83, 85, 98, 100, 115, 130, 133, 134, 137, 140, 141, 143, 146, 147, 150], "noth": [0, 21, 26, 29, 38, 39, 40, 41, 42, 57, 59, 110], "assum": [0, 1, 6, 10, 15, 22, 24, 25, 26, 27, 28, 29, 31, 34, 35, 38, 39, 40, 42, 44, 46, 60, 64, 74, 78, 83, 85, 88, 99, 101, 102, 106, 115, 119, 121, 122, 125, 150], "alreadi": [0, 3, 5, 24, 28, 29, 39, 42, 55, 57, 59, 62, 72, 81, 83, 96, 100, 102, 103, 110, 115, 120, 121, 122, 123, 128, 130, 133, 135, 137, 140, 143, 146, 147, 150], "get": [0, 1, 3, 4, 5, 6, 10, 11, 12, 13, 15, 19, 24, 25, 28, 29, 36, 38, 45, 55, 56, 58, 60, 62, 64, 65, 74, 81, 83, 88, 91, 92, 94, 96, 98, 100, 101, 102, 106, 109, 111, 112, 114, 115, 119, 125, 126, 128, 130, 131, 132, 133, 135, 136, 140, 141, 143, 145, 146, 147, 149, 150, 154], "should": [0, 4, 5, 11, 12, 23, 27, 28, 29, 34, 36, 55, 57, 58, 59, 65, 71, 75, 78, 80, 83, 85, 86, 87, 93, 96, 98, 101, 102, 110, 111, 115, 119, 120, 128, 130, 137, 140, 143, 146, 150], "note": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 26, 27, 28, 29, 31, 34, 35, 36, 38, 44, 46, 50, 55, 57, 62, 64, 65, 74, 75, 77, 80, 81, 83, 88, 100, 102, 115, 119, 120, 121, 122, 123, 125, 126, 130, 133, 140, 150], "number": [0, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 15, 19, 21, 23, 24, 25, 27, 28, 29, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 49, 52, 53, 55, 57, 58, 60, 62, 64, 65, 69, 70, 72, 74, 77, 79, 80, 81, 83, 90, 93, 94, 98, 99, 100, 101, 106, 109, 110, 113, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 128, 130, 131, 133, 134, 137, 143, 145, 147, 150, 151, 154], "other": [0, 1, 3, 4, 5, 10, 11, 15, 17, 19, 21, 26, 27, 28, 29, 31, 34, 35, 36, 40, 42, 43, 45, 46, 48, 49, 51, 53, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 68, 71, 72, 74, 77, 78, 80, 81, 83, 85, 86, 88, 90, 93, 94, 96, 98, 101, 102, 115, 120, 122, 123, 125, 126, 128, 130, 137, 140, 141, 145, 146, 151], "we": [0, 1, 3, 4, 5, 10, 11, 12, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 38, 39, 40, 43, 45, 46, 48, 49, 50, 51, 52, 53, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 83, 85, 86, 88, 89, 90, 91, 93, 94, 96, 97, 98, 100, 102, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 154], "could": [0, 1, 3, 4, 5, 6, 10, 12, 15, 19, 23, 26, 27, 29, 36, 39, 43, 53, 62, 66, 74, 75, 77, 83, 93, 94, 96, 100, 102, 103, 110, 111, 115, 120, 128, 133, 136, 137, 146], "explor": [0, 2, 19, 21, 45, 55, 57, 59, 60, 62, 66, 67, 83, 111, 113, 146, 154], "exercis": [0, 3, 4, 5, 15, 20, 27, 28, 29, 35, 47, 51, 57, 62, 66, 73, 74, 83, 92, 111, 113, 115, 119, 122, 123, 129, 130, 133, 140, 144, 146, 150, 152, 154], "have": [0, 1, 3, 4, 5, 6, 10, 11, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 35, 36, 39, 42, 43, 45, 46, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 72, 74, 75, 76, 77, 78, 79, 80, 81, 83, 85, 88, 89, 90, 91, 93, 96, 98, 99, 100, 101, 102, 105, 106, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 128, 130, 132, 133, 135, 136, 137, 140, 141, 143, 145, 146, 148, 149, 150, 151, 153], "seen": [0, 1, 3, 12, 15, 19, 27, 28, 29, 34, 62, 67, 80, 81, 83, 90, 110, 115, 126, 128, 130, 133, 135, 140, 150], "interest": [0, 1, 3, 4, 5, 15, 19, 33, 36, 45, 57, 62, 63, 64, 66, 70, 80, 97, 100, 102, 110, 111, 115, 126, 127, 133, 135, 138, 140, 144, 146, 148], "wai": [0, 1, 3, 4, 5, 8, 12, 15, 18, 19, 22, 23, 26, 27, 28, 29, 31, 36, 37, 43, 45, 48, 49, 55, 57, 59, 62, 63, 68, 72, 74, 75, 77, 78, 79, 80, 81, 83, 85, 88, 89, 90, 91, 96, 100, 102, 103, 106, 107, 109, 110, 111, 114, 115, 119, 121, 122, 123, 125, 126, 127, 128, 130, 133, 135, 136, 143, 144, 145, 146, 150], "idea": [0, 1, 2, 3, 4, 5, 17, 19, 22, 28, 35, 36, 52, 62, 64, 79, 80, 83, 84, 86, 88, 91, 96, 101, 102, 106, 111, 115, 117, 123, 130], "chapter": [0, 3, 5, 6, 10, 12, 17, 19, 26, 27, 29, 49, 55, 56, 63, 66, 67, 70, 76, 78, 79, 80, 83, 85, 86, 98, 103, 105, 108, 109, 111, 114, 127, 133, 140, 141, 144, 146, 148, 149, 150, 154], "sort": [0, 15, 20, 23, 49, 56, 60, 61, 62, 64, 67, 73, 80, 81, 93, 114, 116, 117, 118, 119, 123, 125, 127, 133, 137, 144, 145, 149, 154], "consid": [0, 1, 3, 4, 11, 15, 19, 23, 26, 27, 28, 29, 31, 34, 35, 36, 39, 43, 46, 57, 64, 70, 71, 77, 78, 80, 83, 85, 88, 90, 93, 98, 100, 102, 114, 115, 119, 120, 122, 123, 130, 131, 137, 141, 143, 146], "hash": [0, 80, 114, 116, 117, 118, 129, 135, 149, 154], "tabl": [0, 24, 25, 26, 82, 83, 100, 114, 116, 118, 135], "mean": [0, 1, 4, 5, 6, 19, 23, 25, 26, 28, 29, 34, 36, 49, 57, 59, 77, 78, 80, 83, 85, 89, 90, 91, 93, 94, 102, 109, 111, 115, 119, 120, 125, 136, 145, 146], "behavior": [0, 2, 36, 37, 80, 81, 83, 87, 102, 126], "set": [0, 1, 3, 5, 6, 10, 11, 12, 13, 15, 21, 22, 24, 26, 27, 28, 36, 53, 55, 57, 59, 64, 72, 81, 82, 83, 86, 87, 89, 96, 100, 106, 114, 115, 122, 126, 130, 133, 137, 140, 141, 143, 150, 151], "function": [0, 2, 4, 5, 10, 15, 17, 19, 21, 22, 23, 25, 26, 29, 33, 34, 35, 36, 51, 52, 53, 56, 57, 59, 60, 62, 74, 77, 78, 80, 81, 83, 85, 86, 88, 90, 91, 92, 94, 96, 98, 100, 101, 102, 103, 106, 107, 109, 110, 111, 112, 114, 116, 119, 120, 122, 123, 124, 125, 126, 129, 130, 133, 137, 138, 140, 141, 143, 144, 146, 150, 154], "place": [0, 1, 4, 5, 15, 22, 23, 27, 28, 29, 36, 45, 46, 59, 60, 62, 63, 65, 80, 83, 88, 102, 107, 108, 110, 115, 120, 121, 122, 123, 124, 125, 128, 143, 145, 146], "allow": [0, 1, 4, 5, 6, 15, 18, 23, 25, 27, 28, 29, 35, 36, 37, 43, 48, 55, 58, 60, 69, 70, 74, 77, 78, 80, 81, 83, 85, 87, 88, 89, 90, 91, 93, 94, 106, 109, 110, 112, 115, 130, 133, 138, 140, 141, 143, 144, 146, 150, 153, 154], "u": [0, 1, 3, 4, 5, 10, 11, 15, 19, 25, 26, 27, 28, 29, 36, 37, 48, 51, 55, 57, 60, 62, 63, 64, 65, 67, 71, 79, 81, 83, 88, 89, 90, 91, 93, 94, 97, 98, 100, 102, 107, 110, 112, 119, 125, 130, 131, 133, 138, 140, 141, 143, 144, 145, 146, 148, 150, 154], "retriev": [0, 36, 83, 143, 146], "our": [0, 1, 3, 4, 5, 10, 11, 12, 15, 17, 22, 24, 26, 27, 28, 32, 34, 35, 36, 43, 45, 48, 53, 55, 57, 58, 59, 60, 63, 64, 66, 70, 71, 72, 75, 77, 80, 83, 86, 89, 90, 91, 93, 94, 96, 98, 100, 102, 107, 109, 110, 111, 115, 119, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 137, 141, 143, 146, 150, 154], "techniqu": [0, 5, 10, 11, 19, 22, 23, 27, 28, 29, 75, 90, 100, 101, 108, 114, 115, 117, 123, 125, 128, 137, 138, 140], "potenti": [0, 115, 123], "yield": [0, 28, 122, 146], "o": [0, 1, 3, 4, 8, 10, 13, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 28, 50, 51, 53, 54, 56, 62, 102, 114, 115, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 137, 144, 145, 149, 154], "perform": [0, 1, 3, 4, 6, 11, 12, 13, 15, 19, 20, 22, 23, 24, 25, 26, 27, 29, 32, 34, 51, 56, 62, 71, 74, 75, 80, 83, 88, 89, 96, 98, 100, 101, 114, 115, 119, 120, 121, 122, 123, 125, 126, 130, 132, 133, 137, 145, 150, 152, 154], "degrad": [0, 118, 132], "due": [0, 1, 5, 11, 27, 29, 36, 45, 74, 77, 88, 115, 124], "issu": [0, 119], "size": [0, 1, 3, 4, 5, 11, 12, 15, 18, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 38, 39, 40, 41, 42, 56, 59, 62, 80, 98, 101, 114, 115, 120, 122, 123, 126, 134, 137, 146, 147], "collis": [0, 114, 116, 129, 154], "resolut": [0, 5, 114, 116, 129, 154], "strategi": [0, 1, 3, 23, 27, 64, 100, 102, 114, 119, 122], "tree": [0, 4, 6, 9, 26, 56, 57, 59, 60, 61, 62, 63, 66, 67, 72, 73, 100, 101, 111, 133, 137, 138, 139, 140, 141, 142, 144, 148, 149, 151, 154], "binari": [0, 4, 5, 6, 23, 47, 62, 74, 89, 98, 114, 115, 116, 117, 118, 122, 128, 129, 130, 137, 138, 139, 140, 141, 145, 146, 148, 149, 150, 151, 152, 154], "were": [0, 6, 10, 15, 19, 26, 29, 36, 39, 46, 53, 78, 80, 81, 85, 96, 108, 110, 111, 115, 125, 128, 135, 146], "done": [0, 3, 15, 24, 29, 45, 57, 60, 64, 74, 75, 83, 100, 111, 115, 119, 120, 121, 130, 133, 143, 146], "log": [0, 8, 10, 11, 13, 14, 15, 50, 65, 118, 119, 122, 123, 131, 133, 137, 144, 151], "n": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13, 15, 19, 24, 25, 26, 27, 28, 34, 52, 53, 56, 60, 62, 65, 72, 74, 75, 81, 83, 98, 101, 102, 109, 114, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 137, 144, 145, 149, 151, 154], "wa": [0, 1, 3, 4, 10, 15, 19, 27, 28, 29, 33, 35, 36, 40, 46, 51, 52, 55, 70, 74, 83, 98, 102, 109, 110, 114, 115, 121, 123, 125, 130, 146], "onli": [0, 1, 3, 4, 5, 10, 12, 15, 21, 22, 23, 26, 27, 28, 29, 33, 35, 36, 43, 45, 46, 50, 51, 52, 53, 54, 55, 57, 59, 62, 64, 74, 75, 80, 83, 88, 91, 93, 94, 100, 101, 102, 110, 115, 121, 124, 125, 126, 132, 133, 136, 137, 143, 144, 146, 150, 151], "true": [0, 1, 27, 28, 38, 40, 41, 51, 60, 68, 74, 80, 83, 94, 98, 102, 115, 127, 134, 136, 146, 147], "balanc": [0, 6, 23, 30, 47, 130, 131, 133, 137, 139, 145, 148, 149, 152, 154], "left": [0, 1, 4, 5, 21, 22, 23, 25, 28, 29, 33, 34, 35, 43, 52, 56, 57, 72, 80, 81, 101, 106, 107, 111, 115, 119, 120, 122, 123, 130, 131, 132, 133, 138, 140, 141, 143, 145, 146, 150], "right": [0, 1, 3, 5, 12, 15, 22, 23, 28, 29, 33, 34, 38, 40, 41, 43, 52, 62, 72, 78, 80, 81, 85, 98, 100, 102, 106, 111, 115, 119, 121, 122, 123, 130, 131, 132, 133, 138, 140, 141, 143, 145, 146, 150], "subtre": [0, 5, 130, 132, 133, 136, 139, 140, 141, 143, 145, 146, 150, 151], "similar": [0, 1, 5, 15, 19, 24, 28, 44, 52, 55, 64, 65, 66, 80, 83, 90, 91, 106, 130, 131, 140, 146, 147], "unfortun": [0, 1, 27, 28, 83, 88, 102, 115, 123, 145], "depend": [0, 1, 3, 11, 17, 19, 29, 33, 43, 56, 62, 65, 71, 80, 81, 83, 106, 130, 145], "insert": [0, 3, 5, 6, 15, 23, 24, 25, 26, 28, 42, 46, 62, 80, 81, 88, 101, 114, 115, 116, 117, 118, 126, 129, 130, 133, 134, 137, 140, 141, 144, 145, 146, 154], "end": [0, 1, 3, 4, 10, 11, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 57, 58, 59, 60, 69, 70, 72, 77, 80, 81, 83, 89, 90, 100, 102, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 126, 133, 140, 146, 150], "being": [0, 1, 15, 19, 22, 23, 29, 45, 57, 59, 74, 80, 88, 89, 115, 120, 122, 125, 126, 128, 141], "skew": [0, 123, 145], "again": [0, 1, 4, 5, 10, 11, 15, 19, 21, 22, 24, 25, 27, 28, 29, 35, 36, 46, 52, 55, 60, 62, 66, 69, 75, 80, 83, 90, 98, 100, 101, 102, 106, 111, 115, 119, 121, 122, 123, 133, 146, 150], "problem": [0, 1, 2, 3, 4, 5, 8, 10, 11, 13, 18, 19, 21, 22, 23, 28, 29, 32, 33, 34, 35, 43, 49, 51, 52, 53, 55, 56, 59, 60, 62, 63, 64, 67, 71, 72, 73, 79, 80, 83, 84, 87, 88, 89, 90, 91, 96, 98, 99, 100, 101, 102, 105, 108, 109, 110, 111, 112, 113, 115, 119, 125, 127, 130, 143, 146, 153], "would": [0, 1, 3, 4, 5, 6, 10, 11, 15, 19, 22, 23, 25, 26, 27, 28, 29, 31, 33, 35, 36, 49, 51, 52, 53, 55, 57, 59, 64, 72, 74, 75, 77, 78, 80, 83, 85, 90, 93, 94, 96, 98, 100, 102, 107, 109, 110, 115, 120, 121, 123, 125, 133, 136, 141, 145, 146], "like": [0, 1, 3, 4, 5, 15, 19, 22, 23, 24, 28, 33, 34, 35, 36, 37, 45, 49, 53, 60, 65, 66, 74, 75, 80, 83, 90, 96, 97, 98, 100, 101, 102, 103, 107, 109, 110, 111, 112, 115, 128, 132, 133, 136, 140, 141, 143, 144, 145, 146, 150], "address": [0, 3, 28, 83, 114, 115, 116, 119], "here": [0, 1, 3, 4, 5, 28, 29, 36, 57, 59, 65, 70, 75, 83, 86, 101, 102, 110, 111, 115, 121, 125, 127], "come": [0, 1, 3, 4, 5, 11, 22, 23, 28, 29, 36, 45, 56, 71, 83, 88, 89, 100, 101, 106, 111], "ha": [0, 1, 3, 4, 5, 10, 11, 12, 19, 21, 23, 27, 28, 29, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 53, 55, 56, 57, 59, 60, 62, 63, 64, 66, 69, 71, 74, 77, 79, 80, 82, 83, 86, 94, 97, 98, 101, 102, 106, 111, 115, 119, 120, 122, 126, 130, 131, 133, 136, 140, 141, 143, 144, 145, 146, 150, 151], "advantag": [0, 1, 5, 10, 19, 27, 28, 48, 49, 83, 115, 119, 120, 123, 125, 128, 133], "effici": [0, 1, 4, 5, 6, 8, 11, 17, 19, 23, 48, 49, 64, 66, 70, 83, 90, 91, 100, 110, 115, 125, 126, 128, 130, 133, 135], "without": [0, 3, 4, 5, 6, 10, 11, 19, 22, 27, 29, 37, 57, 74, 88, 89, 91, 93, 96, 103, 114, 120, 130, 136, 146, 150], "drawback": 0, "call": [0, 1, 3, 4, 5, 10, 11, 15, 19, 21, 22, 23, 27, 28, 29, 34, 35, 40, 41, 43, 45, 46, 50, 52, 54, 55, 56, 57, 58, 59, 60, 62, 64, 66, 69, 70, 71, 72, 74, 75, 77, 80, 81, 83, 88, 89, 91, 93, 94, 96, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 114, 115, 119, 120, 122, 123, 126, 130, 132, 136, 137, 138, 140, 143, 144, 146, 150, 151], "2": [0, 1, 3, 4, 5, 11, 12, 13, 19, 20, 22, 23, 25, 26, 28, 33, 35, 36, 40, 41, 46, 48, 49, 52, 53, 55, 56, 57, 58, 59, 62, 64, 65, 72, 74, 75, 77, 81, 83, 91, 96, 98, 100, 101, 102, 107, 109, 110, 111, 114, 115, 118, 119, 120, 121, 122, 123, 124, 126, 127, 130, 131, 133, 136, 137, 140, 141, 143, 145, 146, 150, 151, 154], "shown": [0, 3, 4, 5, 11, 12, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 39, 40, 52, 53, 55, 57, 58, 59, 60, 64, 66, 71, 72, 77, 78, 80, 81, 83, 85, 96, 98, 100, 101, 102, 106, 107, 110, 111, 115, 119, 120, 122, 123, 124, 125, 126, 130, 133, 136, 140, 141, 143, 145, 146, 150, 151], "reason": [0, 1, 4, 5, 11, 15, 19, 28, 29, 36, 51, 57, 62, 71, 79, 80, 83, 90, 96, 111, 115, 146, 150], "sai": [0, 1, 3, 4, 10, 11, 15, 19, 36, 49, 72, 77, 80, 83, 88, 96, 110, 111, 125, 126, 130, 132, 151], "becom": [0, 1, 4, 5, 10, 11, 15, 22, 27, 28, 29, 34, 79, 80, 83, 89, 115, 120, 123, 125, 130, 131, 132, 141, 143, 146], "appar": 0, "later": [0, 12, 17, 21, 28, 29, 34, 36, 45, 57, 59, 80, 86, 115, 127], "As": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 22, 24, 25, 26, 27, 28, 29, 34, 36, 38, 40, 45, 46, 53, 55, 57, 59, 62, 63, 71, 74, 79, 80, 81, 83, 88, 89, 90, 91, 102, 109, 110, 111, 115, 121, 123, 124, 130, 132, 133, 141, 143, 146, 150], "you": [0, 1, 3, 4, 5, 6, 10, 11, 12, 13, 15, 17, 19, 21, 22, 23, 24, 25, 27, 28, 29, 34, 35, 36, 38, 43, 44, 45, 46, 49, 51, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 83, 85, 86, 88, 93, 94, 96, 98, 99, 100, 101, 102, 106, 107, 108, 109, 110, 111, 112, 114, 115, 119, 120, 121, 124, 125, 126, 130, 131, 133, 136, 140, 141, 143, 144, 145, 146, 147, 150, 153], "see": [0, 1, 4, 5, 10, 11, 12, 15, 17, 19, 21, 22, 24, 27, 28, 29, 33, 34, 35, 36, 38, 39, 40, 41, 42, 49, 51, 52, 53, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 68, 71, 72, 74, 75, 77, 80, 81, 83, 88, 90, 96, 100, 101, 102, 103, 106, 107, 109, 110, 111, 115, 119, 120, 122, 123, 124, 128, 130, 131, 133, 136, 141, 142, 143, 144, 146, 149, 150], "basic": [0, 1, 3, 5, 11, 15, 26, 28, 31, 32, 36, 59, 64, 79, 83, 88, 89, 92, 95, 111, 115, 125, 126, 130, 134, 150, 151, 154], "dimension": [0, 5, 49], "link": [0, 1, 2, 3, 5, 6, 8, 23, 30, 32, 37, 47, 48, 51, 55, 57, 59, 64, 66, 146, 154], "go": [0, 3, 4, 5, 6, 10, 12, 17, 22, 23, 28, 29, 35, 36, 46, 49, 51, 53, 55, 59, 62, 64, 65, 70, 71, 72, 75, 81, 83, 93, 98, 100, 102, 106, 109, 110, 111, 115, 130, 133, 136, 140, 143, 145, 146, 150], "forward": [0, 3, 23, 27, 33, 64, 78, 85, 98, 100, 102, 111, 120, 121, 122, 123, 124, 126], "down": [0, 1, 3, 5, 6, 15, 28, 36, 46, 52, 100, 102, 109, 111, 112, 114, 130, 133, 140, 141, 143], "head": [0, 23, 27, 28, 30, 37, 136], "upper": [0, 3, 29, 69, 74, 80], "corner": [0, 62, 106], "entri": [0, 1, 28, 80, 100], "point": [0, 1, 3, 4, 5, 15, 19, 27, 28, 29, 33, 35, 53, 55, 57, 59, 60, 62, 64, 78, 80, 81, 83, 85, 88, 93, 96, 98, 100, 101, 102, 106, 108, 111, 114, 116, 118, 119, 121, 123, 125, 130, 133, 137, 143, 146, 150], "befor": [0, 1, 3, 4, 5, 10, 19, 25, 28, 29, 34, 35, 36, 43, 45, 51, 57, 59, 60, 62, 66, 71, 72, 83, 87, 93, 94, 98, 100, 106, 110, 111, 115, 119, 120, 125, 128, 130, 131, 136, 137, 138, 143, 145, 147, 150], "move": [0, 1, 3, 5, 27, 28, 29, 35, 38, 46, 52, 55, 60, 62, 64, 69, 83, 98, 102, 106, 109, 110, 111, 114, 115, 119, 120, 121, 123, 125, 126, 130, 133, 136, 143, 144, 150, 151], "detail": [0, 4, 5, 15, 24, 27, 29, 45, 75, 79, 80, 81, 83, 86, 87, 88, 90, 91, 102, 106, 109, 115, 121, 130, 143], "process": [0, 1, 2, 3, 4, 5, 10, 12, 15, 18, 21, 22, 23, 27, 28, 29, 33, 34, 35, 36, 45, 53, 59, 71, 74, 77, 79, 80, 81, 83, 84, 87, 88, 89, 91, 100, 103, 111, 115, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 133, 143, 146], "us": [0, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 90, 91, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 106, 107, 109, 110, 111, 114, 117, 119, 120, 122, 123, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 153], "explain": [0, 1, 6, 13, 17, 19, 23, 27, 56, 68, 80, 81, 102, 114, 117], "some": [0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 15, 17, 19, 21, 22, 27, 28, 29, 34, 35, 36, 39, 42, 43, 51, 53, 57, 59, 60, 63, 64, 66, 67, 69, 71, 72, 74, 77, 78, 80, 81, 83, 85, 86, 88, 90, 91, 93, 94, 97, 98, 100, 101, 102, 107, 108, 109, 111, 114, 115, 119, 123, 125, 127, 128, 130, 134, 136, 137, 140, 141, 143, 144, 150, 153], "vocabulari": [0, 73, 111, 145, 152, 154], "3": [0, 1, 3, 4, 5, 11, 15, 19, 20, 22, 23, 25, 26, 27, 28, 34, 35, 36, 40, 41, 46, 49, 55, 56, 57, 58, 59, 60, 62, 65, 66, 71, 72, 74, 75, 81, 83, 94, 96, 98, 100, 101, 102, 109, 110, 114, 115, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 133, 136, 137, 140, 143, 146, 150, 151, 154], "major": [0, 4, 12, 63, 80, 101], "consist": [0, 1, 5, 10, 12, 15, 19, 27, 28, 44, 80, 83, 91, 115, 143, 151], "node": [0, 3, 5, 6, 23, 27, 30, 32, 47, 49, 51, 52, 55, 57, 59, 60, 62, 64, 66, 72, 100, 130, 131, 132, 133, 136, 137, 138, 139, 140, 143, 145, 146, 150, 151, 152, 154], "each": [0, 1, 3, 4, 5, 10, 11, 15, 17, 19, 21, 23, 27, 28, 29, 31, 33, 34, 36, 37, 39, 42, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 68, 70, 71, 72, 74, 75, 80, 81, 83, 93, 94, 96, 100, 101, 102, 106, 107, 109, 110, 111, 114, 115, 119, 121, 122, 123, 124, 125, 126, 130, 132, 133, 134, 136, 137, 143, 145, 146, 149, 150, 151], "hold": [0, 3, 26, 28, 29, 31, 33, 35, 37, 39, 42, 56, 58, 74, 80, 81, 93, 101, 115, 122, 123, 146], "addit": [0, 1, 3, 4, 5, 10, 11, 15, 23, 24, 27, 28, 36, 43, 44, 45, 46, 55, 57, 58, 59, 60, 64, 65, 66, 72, 74, 77, 78, 80, 83, 85, 89, 90, 96, 99, 100, 101, 102, 106, 110, 111, 115, 118, 119, 120, 122, 123, 125, 130, 143, 146, 150, 151], "4": [0, 1, 3, 4, 5, 11, 12, 15, 20, 22, 23, 25, 26, 27, 28, 34, 36, 38, 40, 41, 48, 52, 55, 56, 57, 58, 59, 60, 62, 64, 65, 71, 72, 74, 77, 81, 83, 88, 94, 96, 98, 100, 101, 102, 106, 107, 109, 110, 111, 114, 119, 120, 121, 122, 123, 125, 126, 127, 130, 131, 133, 137, 141, 143, 146, 150, 151, 154], "view": [0, 46, 66, 88, 91, 102], "singl": [0, 3, 4, 5, 15, 23, 28, 29, 36, 44, 45, 51, 53, 57, 62, 64, 66, 69, 74, 80, 81, 83, 98, 103, 106, 110, 115, 122, 126, 133, 144, 146], "bodi": [0, 23, 74, 75, 136], "made": [0, 4, 10, 15, 26, 60, 77, 100, 106, 109, 120, 136], "A": [0, 1, 4, 9, 10, 11, 19, 22, 23, 28, 29, 31, 33, 35, 36, 37, 38, 40, 41, 44, 45, 46, 47, 48, 49, 53, 57, 59, 60, 62, 63, 64, 66, 67, 71, 72, 74, 75, 77, 80, 81, 87, 92, 96, 98, 100, 103, 108, 109, 110, 114, 115, 118, 120, 122, 123, 126, 127, 128, 130, 133, 136, 137, 140, 141, 143, 144, 145, 146, 148, 151, 154], "5": [0, 1, 3, 4, 5, 6, 10, 11, 15, 19, 22, 23, 26, 28, 29, 34, 36, 53, 55, 56, 57, 58, 59, 60, 62, 65, 72, 74, 81, 83, 96, 98, 100, 101, 102, 107, 109, 111, 114, 119, 120, 121, 123, 125, 126, 127, 130, 131, 133, 137, 141, 143, 146, 150], "differ": [0, 3, 5, 6, 10, 11, 12, 15, 17, 19, 21, 22, 26, 27, 35, 36, 44, 45, 53, 55, 63, 64, 65, 66, 68, 69, 74, 76, 78, 80, 81, 83, 85, 88, 89, 90, 91, 94, 100, 102, 103, 108, 110, 111, 114, 120, 121, 122, 123, 125, 126, 127, 132, 135, 136, 137, 140, 143, 146, 150], "vertic": [0, 1, 48, 49, 50, 51, 52, 53, 55, 57, 58, 59, 60, 64, 66, 68, 71, 72], "column": [0, 5, 49, 69, 102], "leftmost": [0, 29, 146], "header": 0, "next": [0, 1, 3, 4, 5, 15, 21, 23, 27, 28, 29, 34, 36, 45, 46, 55, 57, 58, 59, 60, 62, 64, 65, 66, 74, 77, 83, 86, 90, 94, 98, 100, 102, 103, 106, 110, 111, 115, 119, 120, 123, 124, 126, 130, 133, 136, 141, 143, 144, 145, 146, 150], "lower": [0, 29, 80, 100, 106, 115, 121, 136], "6": [0, 1, 4, 10, 11, 12, 15, 22, 26, 27, 28, 29, 34, 36, 55, 56, 58, 59, 60, 62, 64, 65, 74, 81, 83, 98, 100, 101, 102, 107, 109, 110, 111, 114, 115, 119, 124, 125, 126, 130, 133, 137, 141, 145, 146, 150], "tower": [0, 6, 7, 99, 101, 113, 154], "known": [0, 1, 4, 5, 15, 23, 28, 36, 39, 44, 45, 46, 55, 68, 69, 70, 74, 75, 77, 78, 83, 85, 88, 100, 115, 120], "togeth": [0, 4, 5, 36, 50, 58, 65, 66, 71, 80, 83, 96, 98, 115, 122, 143], "height": [0, 5, 6, 62, 110, 130, 131, 132, 133, 139, 145, 151], "how": [0, 1, 3, 4, 5, 11, 15, 16, 17, 22, 23, 26, 27, 28, 29, 36, 43, 49, 52, 53, 56, 59, 62, 63, 64, 65, 74, 75, 77, 78, 79, 83, 85, 88, 90, 91, 93, 96, 98, 100, 101, 102, 105, 106, 107, 109, 110, 111, 114, 115, 119, 120, 122, 125, 127, 130, 131, 132, 136, 142, 143, 145, 146], "determin": [0, 5, 10, 11, 12, 29, 55, 56, 57, 144], "when": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 21, 22, 23, 26, 27, 28, 29, 34, 35, 36, 45, 46, 49, 51, 53, 55, 57, 59, 60, 62, 63, 64, 65, 71, 77, 78, 80, 83, 85, 88, 93, 96, 98, 100, 102, 106, 107, 109, 110, 111, 114, 115, 119, 121, 122, 123, 125, 127, 128, 130, 132, 133, 136, 137, 141, 143, 144, 145, 146, 150], "final": [0, 1, 3, 4, 5, 6, 10, 11, 15, 28, 29, 36, 50, 51, 55, 56, 58, 59, 66, 71, 74, 80, 83, 96, 98, 100, 101, 102, 106, 107, 109, 110, 111, 115, 120, 123, 124, 126, 128, 130, 136, 143, 146, 150], "7": [0, 3, 4, 5, 22, 23, 26, 27, 28, 29, 34, 35, 36, 55, 56, 58, 60, 65, 72, 81, 83, 96, 98, 100, 111, 114, 115, 120, 124, 126, 130, 131, 137, 141, 143, 146, 150], "horizont": 0, "If": [0, 1, 3, 4, 5, 10, 11, 12, 19, 21, 27, 28, 29, 33, 34, 36, 45, 46, 52, 53, 57, 59, 60, 63, 65, 66, 72, 74, 75, 77, 78, 80, 81, 83, 85, 86, 88, 93, 96, 98, 100, 101, 102, 110, 111, 114, 115, 119, 120, 122, 123, 125, 126, 130, 131, 132, 133, 136, 137, 140, 143, 145, 146, 147, 150, 151], "close": [0, 5, 19, 21, 23, 34, 36, 57, 66, 71, 83, 101, 102, 111, 141, 150], "notic": [0, 1, 3, 4, 5, 11, 12, 15, 19, 26, 27, 35, 36, 52, 53, 57, 58, 66, 78, 80, 83, 85, 93, 94, 96, 98, 100, 102, 107, 110, 111, 115, 122, 125, 130, 133, 134, 136, 140, 141, 145, 146, 147, 150], "level": [0, 5, 6, 7, 29, 57, 59, 60, 62, 65, 66, 74, 83, 88, 89, 91, 93, 106, 110, 111, 130, 133, 136, 139, 141, 143, 145, 146, 151], "actual": [0, 1, 3, 4, 5, 10, 11, 15, 19, 22, 27, 28, 29, 36, 46, 57, 75, 83, 91, 119, 123, 125, 126], "maintain": [0, 21, 23, 26, 28, 37, 40, 48, 78, 80, 85, 121, 122, 133, 137], "name": [0, 1, 4, 6, 11, 15, 19, 28, 35, 43, 57, 58, 62, 68, 72, 75, 80, 81, 83, 88, 102, 114, 115, 132, 133, 136, 141, 143, 150, 151], "commonli": [0, 1, 15, 23, 28, 36, 45, 46, 89, 100, 115, 123, 143, 150], "its": [0, 1, 3, 4, 5, 6, 10, 19, 21, 22, 23, 28, 29, 34, 36, 45, 55, 57, 59, 64, 66, 71, 72, 75, 80, 83, 87, 88, 96, 98, 100, 101, 102, 106, 108, 109, 110, 111, 115, 120, 122, 124, 126, 130, 131, 132, 133, 136, 137, 145, 146, 150, 151], "start": [0, 1, 3, 4, 5, 6, 10, 11, 15, 19, 22, 23, 27, 28, 29, 34, 36, 41, 45, 46, 51, 53, 55, 57, 59, 60, 62, 64, 66, 70, 71, 72, 74, 78, 83, 85, 88, 92, 93, 96, 99, 100, 101, 102, 106, 110, 111, 114, 115, 119, 120, 121, 122, 125, 130, 131, 133, 136, 137, 141, 143, 146, 150, 154], "0": [0, 1, 3, 4, 5, 10, 11, 12, 13, 15, 19, 22, 23, 24, 25, 26, 28, 36, 52, 53, 55, 57, 58, 59, 60, 62, 64, 65, 74, 75, 77, 80, 81, 83, 88, 96, 100, 102, 106, 110, 115, 121, 123, 125, 130, 131, 132, 133, 140, 146, 154], "lowest": [0, 29, 55, 64, 78, 83, 85, 100, 133, 144], "row": [0, 5, 36, 49, 52, 69, 100, 101, 102], "entir": [0, 1, 3, 4, 5, 10, 21, 28, 29, 52, 83, 90, 110, 111, 115, 119, 120, 124, 130, 133, 136, 143, 146], "everi": [0, 1, 3, 5, 10, 11, 19, 27, 28, 34, 35, 36, 46, 49, 50, 51, 53, 54, 55, 56, 62, 64, 66, 69, 75, 83, 101, 110, 115, 120, 124, 125, 130, 133, 136, 137, 143, 151], "present": [0, 1, 2, 4, 5, 6, 28, 31, 39, 42, 80, 86, 110, 115, 125, 127, 143], "higher": [0, 5, 29, 143], "decreas": [0, 15, 36, 64, 66, 71], "one": [0, 1, 3, 4, 5, 6, 10, 11, 12, 15, 19, 22, 23, 27, 28, 29, 35, 36, 39, 40, 42, 43, 45, 46, 49, 51, 52, 53, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 74, 75, 76, 78, 80, 81, 83, 85, 88, 90, 91, 93, 94, 96, 100, 101, 102, 106, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 133, 136, 137, 138, 140, 141, 143, 145, 146, 150, 151], "import": [0, 1, 3, 4, 5, 11, 12, 15, 16, 17, 19, 21, 22, 24, 26, 28, 29, 34, 36, 38, 43, 44, 46, 52, 53, 55, 57, 59, 60, 62, 64, 65, 72, 74, 77, 79, 80, 81, 83, 88, 89, 90, 100, 102, 109, 110, 111, 115, 119, 120, 121, 122, 128, 131, 136, 137, 141, 143, 144, 146], "characterist": [0, 26, 27, 37, 39, 44, 80, 83, 90, 111], "lead": [0, 1, 3, 4, 57, 77, 81, 102, 133], "directli": [0, 1, 33, 48, 55, 83, 94, 100, 109, 140, 146], "relat": [0, 78, 79, 83, 85, 128], "group": [0, 5, 57, 75, 83, 115, 119], "class": [0, 3, 5, 6, 22, 23, 24, 25, 26, 27, 34, 36, 47, 48, 55, 56, 57, 58, 59, 63, 65, 68, 72, 75, 76, 78, 80, 81, 82, 85, 87, 92, 102, 114, 115, 133, 136, 137, 140, 141, 142, 146, 150, 154], "easili": [0, 4, 11, 21, 22, 29, 33, 48, 62, 74, 81, 83, 86, 96, 98, 100, 102, 110, 133, 146], "construct": [0, 1, 5, 21, 22, 28, 33, 34, 36, 37, 46, 50, 53, 57, 59, 60, 64, 71, 74, 76, 78, 79, 83, 86, 89, 91, 93, 96, 103, 115, 125, 133, 140, 143, 145, 146], "same": [0, 1, 3, 4, 5, 6, 10, 11, 12, 15, 19, 22, 23, 26, 27, 28, 29, 33, 35, 39, 46, 53, 60, 64, 65, 66, 72, 80, 83, 88, 94, 98, 100, 101, 102, 106, 107, 111, 114, 115, 120, 123, 124, 125, 130, 133, 137, 145, 146, 150, 151], "fashion": [0, 34, 37, 83], "simpl": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 16, 19, 21, 22, 23, 31, 37, 43, 45, 47, 49, 55, 60, 66, 71, 72, 74, 75, 78, 80, 81, 85, 89, 93, 96, 98, 100, 102, 105, 106, 110, 111, 122, 130, 133, 136, 140, 141, 143, 146, 150, 154], "previou": [0, 1, 3, 4, 13, 19, 21, 23, 24, 26, 27, 28, 55, 57, 59, 64, 75, 81, 83, 86, 97, 98, 100, 102, 107, 111, 115, 121, 126, 130, 131, 132, 137, 138, 143, 145, 146], "section": [0, 1, 3, 4, 5, 17, 21, 24, 26, 36, 60, 70, 80, 83, 86, 93, 97, 98, 100, 102, 111, 115, 127, 128, 132, 135, 136, 138, 143, 144, 145, 149, 150], "both": [0, 1, 4, 5, 6, 10, 15, 17, 19, 23, 26, 28, 29, 33, 34, 53, 54, 55, 64, 68, 69, 74, 78, 80, 81, 83, 85, 87, 88, 89, 90, 98, 110, 111, 114, 115, 122, 131, 133, 137, 138, 141, 143, 144, 146], "initi": [0, 1, 3, 4, 5, 11, 15, 19, 28, 36, 50, 51, 55, 58, 59, 64, 75, 80, 83, 96, 102, 106, 110, 111, 115, 120, 121, 122, 123, 124, 126, 133, 143], "none": [0, 5, 10, 12, 27, 28, 36, 56, 58, 59, 64, 80, 83, 102, 115, 141, 143, 146, 147, 150], "constructor": [0, 3, 5, 15, 28, 36, 58, 78, 83, 85, 87, 93, 102, 133, 137, 141, 146], "lst_headnod": 0, "headernod": 0, "def": [0, 1, 3, 4, 5, 15, 19, 24, 25, 27, 28, 36, 52, 53, 55, 57, 58, 59, 60, 62, 64, 75, 83, 100, 102, 110, 111, 115, 130, 133, 140, 141, 143, 146, 150], "__init__": [0, 3, 5, 24, 25, 27, 28, 36, 57, 58, 83, 102, 115, 133, 141, 146], "self": [0, 3, 5, 24, 27, 57, 58, 82, 94, 106, 130, 133, 150], "_next": [0, 28], "_down": 0, "properti": [0, 22, 28, 32, 40, 46, 57, 61, 106, 130, 136, 139, 140, 146, 151, 152, 154], "setter": [0, 59], "four": [0, 1, 3, 5, 11, 15, 43, 53, 59, 60, 64, 83, 100, 102, 106, 110, 126, 143, 145, 151], "field": [0, 4, 28, 30, 62, 80, 81], "wrap": [0, 4, 15, 103], "manipul": [0, 5, 25, 26, 80, 91, 138, 140, 141], "lst_datanod": 0, "datanod": 0, "_kei": 0, "_data": [0, 28], "lst_constructor": 0, "therefor": [0, 10, 11, 27, 35, 36, 54, 55, 64, 89, 119, 124, 133, 146, 150], "first": [0, 1, 3, 4, 5, 10, 11, 15, 19, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 40, 45, 46, 50, 53, 55, 56, 58, 60, 61, 62, 64, 65, 66, 67, 70, 71, 73, 74, 77, 79, 80, 81, 83, 89, 96, 97, 98, 100, 102, 106, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 128, 130, 133, 136, 140, 141, 143, 144, 145, 146, 150, 154], "turn": [0, 1, 3, 4, 5, 10, 11, 19, 23, 26, 27, 28, 34, 35, 53, 59, 66, 70, 71, 75, 78, 83, 85, 91, 96, 101, 102, 111, 122, 126, 127, 146], "well": [0, 1, 4, 6, 10, 11, 21, 23, 27, 28, 45, 57, 68, 75, 80, 87, 88, 93, 111, 115, 119, 126, 130, 140, 141, 143, 145], "skiplist": 0, "_head": 0, "requir": [0, 1, 3, 4, 5, 10, 11, 15, 19, 26, 27, 28, 29, 35, 36, 37, 44, 49, 51, 53, 55, 69, 71, 74, 75, 79, 83, 89, 90, 91, 94, 100, 102, 103, 110, 115, 118, 119, 120, 121, 122, 123, 124, 125, 130, 131, 133, 143, 146], "find": [0, 1, 3, 4, 5, 11, 13, 22, 27, 28, 35, 48, 53, 55, 56, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 78, 80, 83, 85, 86, 90, 93, 99, 100, 101, 102, 111, 115, 119, 120, 123, 125, 127, 133, 143, 145, 146], "8": [0, 3, 4, 5, 12, 22, 25, 27, 28, 29, 34, 36, 38, 40, 41, 52, 55, 58, 60, 62, 65, 69, 72, 74, 78, 83, 85, 99, 101, 106, 109, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 130, 136, 137, 146], "proce": [0, 1, 28, 59, 64, 131, 146], "through": [0, 1, 5, 10, 15, 19, 22, 27, 46, 51, 55, 57, 58, 59, 60, 64, 65, 74, 78, 79, 85, 89, 96, 100, 102, 110, 115, 119, 120, 121, 124, 125, 130, 143, 150], "77": [0, 4, 10, 27, 28, 31, 39, 115, 121, 123, 124], "mark": [0, 1, 28, 56, 80, 101], "star": 0, "repres": [0, 1, 4, 5, 6, 8, 11, 15, 19, 22, 27, 28, 31, 34, 36, 46, 48, 49, 52, 57, 58, 62, 63, 65, 67, 69, 70, 72, 74, 78, 80, 81, 83, 85, 87, 89, 91, 93, 94, 102, 109, 120, 121, 124, 133, 140, 141, 143, 145, 146, 150, 151], "those": [0, 1, 4, 5, 19, 21, 22, 34, 39, 44, 46, 52, 57, 72, 80, 81, 83, 88, 90, 93, 94, 100, 115, 120, 121, 123, 127], "dure": [0, 19, 29, 36, 107, 120, 146], "begin": [0, 1, 3, 4, 10, 15, 19, 23, 26, 27, 28, 29, 31, 35, 36, 43, 46, 50, 55, 57, 59, 60, 64, 66, 70, 72, 77, 80, 83, 90, 96, 100, 106, 109, 110, 111, 115, 120, 121, 122, 123, 124, 125, 126, 130, 133, 136, 140, 143], "31": [0, 15, 27, 28, 31, 36, 39, 66, 115, 121, 123, 126, 146], "sinc": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 22, 24, 27, 28, 29, 33, 34, 35, 36, 39, 46, 49, 50, 52, 53, 54, 55, 57, 60, 62, 64, 70, 72, 74, 77, 79, 80, 83, 86, 91, 98, 100, 102, 106, 109, 115, 120, 121, 123, 124, 125, 126, 130, 133, 141, 143, 145, 146, 150, 151], "less": [0, 1, 4, 5, 11, 15, 64, 74, 80, 81, 83, 90, 94, 98, 100, 111, 119, 122, 123, 132, 133, 145, 146], "than": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 22, 26, 27, 35, 36, 48, 52, 53, 55, 57, 60, 63, 64, 65, 66, 74, 75, 77, 80, 81, 83, 90, 94, 98, 100, 103, 108, 110, 111, 114, 115, 119, 120, 122, 123, 126, 128, 130, 132, 133, 137, 140, 143, 145, 146, 151], "now": [0, 1, 3, 4, 5, 12, 15, 17, 19, 26, 27, 28, 29, 33, 34, 36, 39, 46, 55, 57, 59, 64, 66, 68, 69, 71, 72, 77, 78, 80, 81, 83, 85, 91, 98, 100, 102, 107, 110, 111, 115, 120, 121, 122, 123, 126, 127, 130, 133, 136, 141, 143, 145, 146, 150, 151], "drop": [0, 5, 11, 102, 137], "time": [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16, 17, 19, 22, 26, 27, 28, 29, 32, 34, 35, 36, 37, 45, 46, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 62, 64, 65, 66, 69, 70, 71, 74, 75, 77, 78, 79, 80, 81, 83, 85, 90, 93, 96, 98, 100, 106, 107, 110, 111, 115, 118, 119, 120, 122, 123, 128, 130, 131, 132, 133, 134, 137, 146, 150], "success": [0, 1, 28, 60, 74, 102, 115], "comparison": [0, 5, 9, 11, 12, 15, 23, 39, 53, 80, 83, 94, 114, 119, 121, 124, 126, 128, 145, 154], "over": [0, 1, 3, 4, 11, 15, 28, 29, 52, 55, 57, 58, 59, 65, 69, 71, 74, 81, 90, 93, 101, 107, 133, 146, 149], "17": [0, 5, 23, 27, 28, 29, 31, 36, 39, 55, 57, 64, 100, 115, 119, 121, 123, 125, 126, 130, 143], "26": [0, 4, 10, 22, 27, 28, 31, 39, 53, 57, 71, 75, 100, 115, 121, 122, 143], "likewis": [0, 24, 27, 29, 39, 44, 83, 119], "abl": [0, 2, 4, 10, 15, 16, 19, 32, 83, 88, 90, 91, 93, 98, 115, 117, 125, 128, 146], "bypass": 0, "54": [0, 15, 27, 28, 31, 39, 65, 80, 115, 119, 121, 123, 125], "lst_skiplistsearchcod": 0, "method": [0, 1, 3, 4, 5, 6, 10, 15, 19, 23, 24, 26, 27, 28, 29, 36, 55, 56, 57, 58, 59, 60, 62, 74, 75, 78, 81, 82, 83, 85, 87, 93, 94, 100, 102, 104, 106, 111, 112, 114, 116, 120, 123, 128, 130, 133, 134, 137, 141, 143, 145, 146, 150], "until": [0, 1, 4, 5, 22, 27, 28, 29, 34, 35, 45, 59, 60, 64, 71, 78, 83, 85, 96, 98, 100, 102, 106, 111, 112, 114, 115, 120, 123, 125, 133, 136, 146], "either": [0, 1, 10, 26, 27, 29, 33, 38, 39, 43, 44, 56, 68, 78, 80, 81, 83, 85, 100, 101, 102, 115, 119, 123, 125, 127, 141, 143, 146, 151], "found": [0, 1, 5, 6, 10, 12, 27, 28, 53, 55, 56, 60, 77, 78, 81, 85, 102, 115, 125, 127, 130, 133, 145, 146], "more": [0, 1, 3, 4, 5, 6, 10, 15, 19, 21, 22, 23, 27, 28, 29, 31, 36, 45, 48, 53, 57, 60, 63, 64, 65, 66, 69, 72, 77, 80, 81, 83, 86, 90, 91, 93, 100, 102, 108, 109, 110, 111, 114, 115, 119, 122, 126, 128, 130, 131, 132, 136, 137, 140, 141, 143, 145, 146, 150, 151], "check": [0, 1, 3, 4, 5, 14, 20, 21, 23, 24, 27, 33, 55, 57, 58, 59, 60, 62, 77, 78, 85, 93, 94, 96, 100, 101, 130, 133, 136, 137, 143, 150, 154], "highest": [0, 5, 144], "continu": [0, 1, 3, 11, 15, 19, 21, 22, 23, 27, 28, 33, 35, 51, 56, 57, 59, 60, 64, 74, 77, 78, 83, 85, 87, 101, 102, 106, 114, 120, 122, 124, 125, 130, 141, 143, 146], "line": [0, 1, 3, 4, 5, 12, 21, 22, 23, 24, 26, 27, 28, 29, 34, 35, 36, 45, 46, 53, 55, 57, 60, 62, 75, 77, 78, 80, 83, 85, 96, 98, 100, 101, 102, 107, 109, 110, 111, 115, 120, 121, 122, 130, 141, 143, 150], "check1": 0, "down1": 0, "On": [0, 1, 3, 5, 10, 29, 36, 62, 88, 110, 111, 120, 121, 124, 125, 126, 127, 128], "hand": [0, 1, 19, 22, 27, 29, 34, 59, 62, 72, 80, 88, 106, 122, 128, 130], "exist": [0, 1, 3, 5, 6, 22, 23, 27, 28, 36, 42, 44, 45, 46, 78, 83, 85, 88, 89, 90, 114, 115, 141, 143, 146, 150], "compar": [0, 1, 6, 11, 12, 13, 15, 19, 20, 21, 23, 27, 28, 29, 32, 33, 34, 53, 57, 75, 83, 90, 93, 95, 101, 114, 119, 120, 125, 127, 128, 133, 146, 154], "match": [0, 2, 3, 5, 6, 8, 9, 10, 21, 23, 28, 29, 33, 34, 53, 55, 100, 115, 146, 147, 154], "check2": 0, "current": [0, 1, 3, 5, 19, 21, 27, 28, 34, 36, 38, 40, 46, 54, 55, 59, 60, 62, 80, 83, 93, 100, 102, 115, 121, 123, 130, 133, 138, 140, 143, 146], "while": [0, 1, 4, 5, 10, 13, 15, 26, 27, 28, 36, 46, 50, 51, 55, 59, 60, 63, 64, 74, 80, 81, 96, 98, 106, 112, 115, 123, 124, 130, 133, 146, 150, 151], "els": [0, 1, 4, 5, 27, 28, 29, 57, 60, 74, 77, 83, 102, 115, 130, 133, 140, 141, 143, 146, 150], "mismatch": [0, 1, 6, 21], "veri": [0, 1, 3, 4, 5, 8, 11, 15, 19, 21, 22, 23, 24, 26, 28, 29, 33, 34, 37, 38, 43, 45, 49, 53, 55, 62, 63, 64, 65, 66, 74, 77, 80, 81, 83, 88, 89, 91, 97, 98, 101, 102, 108, 109, 110, 111, 112, 115, 120, 121, 123, 125, 126, 127, 130, 131, 133, 136, 138, 140, 146, 147, 150, 151, 154], "inform": [0, 1, 4, 5, 6, 12, 15, 22, 23, 28, 29, 64, 65, 72, 82, 83, 86, 91, 115, 143, 151], "check3": 0, "know": [0, 1, 4, 5, 10, 15, 24, 27, 28, 29, 34, 36, 53, 60, 63, 64, 71, 72, 75, 83, 88, 90, 93, 94, 96, 98, 100, 101, 102, 110, 111, 115, 119, 120, 123, 125, 130, 143, 146, 151], "everyth": [0, 3, 75, 96, 115], "greater": [0, 3, 5, 11, 22, 27, 35, 64, 74, 77, 80, 81, 83, 94, 119, 121, 122, 123, 132, 145, 146], "down2": 0, "discov": [0, 1, 19, 27, 28, 55, 59, 115, 123, 125, 146], "break": [0, 1, 4, 28, 83, 98, 102, 109, 112, 126, 130, 133, 143], "out": [0, 1, 3, 4, 5, 10, 11, 15, 19, 23, 27, 28, 30, 33, 34, 35, 36, 37, 38, 41, 45, 46, 49, 53, 56, 57, 59, 64, 65, 70, 74, 75, 80, 88, 93, 98, 100, 101, 102, 106, 110, 111, 120, 123, 125, 126, 127, 128, 130, 133, 140, 141, 143, 144, 146, 150], "loop": [0, 1, 3, 4, 5, 15, 28, 50, 51, 54, 55, 57, 58, 60, 66, 96, 100, 102], "long": [0, 1, 4, 10, 15, 21, 27, 28, 29, 34, 36, 51, 53, 60, 74, 75, 88, 89, 90, 96, 110], "next1": 0, "onc": [0, 1, 3, 4, 5, 10, 15, 21, 23, 26, 27, 28, 29, 34, 36, 43, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63, 66, 69, 83, 88, 100, 102, 106, 111, 115, 119, 120, 122, 130, 132, 133, 140, 143, 146], "enter": [0, 1, 45, 77, 81, 83], "repeat": [0, 1, 4, 5, 12, 15, 19, 59, 74, 78, 80, 85, 102, 119, 123, 125, 133], "complet": [0, 1, 5, 6, 26, 27, 28, 29, 33, 34, 36, 45, 52, 55, 59, 60, 63, 75, 77, 83, 102, 111, 115, 119, 120, 121, 123, 124, 126, 130, 133, 139, 143, 145], "hope": [0, 19, 36], "sooner": 0, "fairli": [0, 19, 130], "easi": [0, 1, 4, 5, 8, 11, 19, 27, 49, 58, 62, 63, 64, 74, 86, 87, 97, 98, 100, 102, 110, 111, 115, 122, 127, 130, 133, 140, 144, 146], "task": [0, 1, 4, 15, 45, 47, 51, 67, 90, 146, 154], "understand": [0, 2, 3, 4, 5, 11, 16, 17, 19, 29, 32, 63, 64, 65, 69, 74, 79, 80, 83, 84, 88, 90, 100, 105, 111, 115, 117, 130, 133, 142, 143, 145], "built": [0, 1, 3, 4, 10, 22, 28, 53, 83, 86, 87, 89, 91, 92, 115, 143, 154], "give": [0, 3, 4, 5, 10, 11, 13, 22, 25, 26, 29, 36, 43, 51, 77, 78, 79, 80, 83, 85, 89, 91, 93, 98, 100, 101, 103, 107, 110, 111, 115, 119, 122, 125, 130, 133, 137, 143, 145, 150], "essenti": [0, 19, 115, 130], "step": [0, 1, 4, 10, 11, 19, 23, 27, 28, 29, 47, 55, 56, 57, 59, 60, 64, 66, 69, 70, 71, 74, 88, 89, 93, 98, 100, 102, 110, 111, 115, 120, 121, 122, 123, 124, 125, 126, 130, 133, 143, 146, 154], "posit": [0, 1, 3, 4, 5, 6, 10, 12, 15, 22, 23, 24, 25, 26, 27, 28, 29, 31, 37, 39, 42, 43, 44, 46, 52, 55, 62, 64, 78, 80, 81, 83, 85, 100, 102, 114, 115, 120, 121, 123, 125, 128, 130, 133, 136, 140, 146, 150], "been": [0, 1, 3, 5, 19, 22, 27, 28, 29, 34, 35, 36, 38, 40, 41, 45, 46, 53, 57, 59, 60, 66, 71, 77, 91, 102, 115, 122, 125, 126, 128, 130, 133, 146], "rememb": [0, 4, 5, 19, 26, 27, 28, 29, 36, 57, 80, 83, 98, 100, 102, 108, 110, 111, 115, 121, 130, 133, 137, 141, 145, 146], "9": [0, 3, 4, 5, 22, 23, 27, 28, 29, 58, 60, 64, 65, 72, 74, 75, 80, 83, 96, 98, 101, 102, 106, 110, 114, 115, 120, 122, 123, 126, 130, 133, 137, 146], "65": [0, 4, 36, 115], "hi": [0, 35, 62, 102], "path": [0, 5, 53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 66, 67, 69, 70, 72, 73, 100, 102, 136, 139, 151, 154], "hit": [0, 75], "caus": [0, 3, 10, 27, 29, 74, 77, 78, 83, 85, 103, 115, 120, 121, 146], "eventu": [0, 1, 28, 33, 45, 65, 91, 103, 115, 122, 123, 126], "base": [0, 1, 3, 4, 5, 8, 10, 19, 22, 23, 26, 27, 28, 35, 36, 39, 45, 46, 55, 56, 60, 74, 81, 83, 90, 100, 102, 103, 104, 106, 108, 109, 110, 111, 113, 114, 115, 122, 123, 126, 130, 131, 143, 150, 154], "second": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 26, 28, 29, 31, 36, 55, 59, 60, 62, 64, 66, 69, 79, 80, 81, 83, 96, 98, 109, 110, 114, 115, 119, 120, 122, 123, 124, 128, 130, 133, 136, 140, 141, 146, 151], "10": [0, 1, 4, 11, 12, 15, 19, 22, 23, 27, 28, 29, 36, 56, 57, 60, 62, 64, 65, 66, 69, 74, 77, 80, 83, 90, 94, 98, 100, 101, 102, 106, 107, 109, 110, 114, 115, 120, 121, 122, 123, 130, 137, 143, 146, 153], "stop": [0, 1, 4, 5, 23, 27, 28, 35, 98, 106, 109, 120, 121, 122, 123, 124, 125, 126], "best": [0, 3, 10, 11, 75, 80, 83, 100, 115, 119, 120, 121, 125, 150], "ever": [0, 27, 56, 63, 94, 101, 103], "also": [0, 1, 3, 4, 5, 12, 15, 19, 22, 23, 24, 25, 27, 28, 29, 31, 34, 35, 36, 43, 44, 45, 48, 55, 57, 58, 59, 60, 63, 64, 72, 74, 75, 77, 79, 80, 81, 83, 86, 88, 89, 90, 94, 96, 98, 100, 102, 107, 111, 115, 120, 121, 122, 123, 124, 128, 130, 133, 136, 143, 145, 146, 150, 151], "high": [0, 6, 29, 36, 65, 79, 91, 110, 125, 128], "predetermin": [0, 114], "instead": [0, 5, 19, 22, 26, 28, 29, 35, 62, 77, 80, 81, 101, 107, 111, 115, 119, 126, 150], "probabilist": [0, 23, 36], "essenc": [0, 1, 120], "flip": 0, "coin": [0, 99, 100, 101], "decid": [0, 6, 10, 11, 25, 26, 27, 34, 35, 36, 55, 59, 71, 74, 90, 94, 100, 114, 115, 125], "whether": [0, 1, 4, 6, 10, 12, 19, 22, 27, 28, 29, 33, 34, 36, 38, 39, 40, 41, 42, 74, 80, 83, 90, 115, 119, 125, 127, 130], "anoth": [0, 4, 5, 10, 11, 12, 15, 19, 22, 23, 27, 28, 29, 35, 43, 46, 53, 57, 58, 63, 65, 66, 69, 70, 72, 74, 75, 76, 78, 80, 81, 83, 85, 88, 90, 94, 101, 106, 110, 111, 115, 119, 125, 127, 128, 130, 133, 135, 136, 137, 140, 141, 146, 151], "random": [0, 4, 12, 13, 35, 36, 37, 75, 101, 111, 114, 137, 145], "gener": [0, 1, 3, 4, 10, 15, 17, 19, 22, 35, 36, 37, 47, 52, 54, 56, 60, 62, 63, 64, 67, 73, 74, 75, 78, 80, 83, 85, 101, 106, 107, 111, 114, 115, 119, 121, 126, 131, 136, 137, 140, 146, 150, 154], "simul": [0, 3, 23, 30, 32, 37, 47, 75, 78, 82, 83, 85, 154], "randrang": [0, 12, 36], "modul": [0, 15, 19, 26, 36, 75, 77, 80, 83, 88, 101, 102, 106, 111, 143], "interpret": [0, 22, 29, 77, 81, 86, 89, 102, 143], "lst_insert": 0, "immedi": [0, 1, 21, 27, 28, 29, 34, 35, 78, 85, 98, 100, 102, 122, 125], "question": [0, 1, 4, 5, 10, 19, 23, 27, 28, 36, 37, 53, 55, 56, 74, 78, 80, 83, 85, 94, 122, 127, 130, 136, 137, 145], "iter": [0, 1, 3, 4, 6, 10, 11, 12, 15, 19, 22, 27, 28, 51, 55, 57, 58, 59, 74, 75, 83, 89, 93, 96, 97, 101, 105, 108, 114, 115, 121, 146], "14": [0, 5, 22, 28, 57, 62, 64, 83, 100, 102, 115, 119, 121, 123, 124, 125, 146, 150], "toss": 0, "non": [0, 5, 70, 77, 137, 146], "15": [0, 4, 15, 23, 27, 29, 34, 56, 57, 64, 100, 101, 102, 111, 119, 120, 121, 123, 125, 126, 127], "mani": [0, 1, 3, 4, 5, 8, 10, 12, 15, 19, 21, 24, 26, 27, 29, 34, 35, 36, 39, 43, 44, 45, 46, 49, 53, 57, 59, 60, 63, 64, 65, 66, 67, 69, 70, 71, 74, 77, 78, 79, 80, 83, 85, 89, 90, 91, 93, 98, 100, 101, 102, 109, 111, 115, 119, 123, 125, 126, 127, 128, 136, 140, 143, 146, 148, 151], "save": [0, 3, 5, 29, 150], "part": [0, 1, 3, 4, 5, 11, 23, 28, 34, 50, 51, 62, 64, 66, 72, 74, 80, 83, 89, 102, 115, 119, 120, 130, 133, 136, 143, 151], "These": [0, 1, 4, 5, 11, 21, 29, 36, 43, 77, 80, 81, 83, 88, 89, 91, 108, 115, 120, 130, 140, 150], "revers": [0, 15, 22, 23, 26, 28, 29, 34, 37, 46, 62, 66, 80, 98, 101, 115], "so": [0, 1, 3, 4, 5, 6, 10, 11, 15, 19, 22, 23, 27, 28, 29, 31, 34, 36, 40, 45, 50, 53, 55, 56, 57, 59, 60, 62, 63, 64, 65, 66, 74, 75, 77, 78, 80, 81, 83, 85, 88, 89, 90, 93, 94, 100, 101, 102, 106, 109, 110, 111, 114, 115, 119, 122, 123, 124, 125, 126, 130, 133, 136, 137, 140, 143, 145, 146, 150], "stack": [0, 21, 22, 23, 24, 29, 30, 32, 34, 37, 43, 44, 45, 47, 57, 60, 98, 99, 101, 104, 110, 113, 136, 143, 154], "work": [0, 1, 3, 4, 5, 13, 19, 22, 23, 26, 27, 29, 36, 45, 53, 55, 57, 59, 64, 65, 74, 75, 78, 80, 83, 85, 88, 89, 90, 93, 96, 98, 100, 102, 106, 110, 111, 115, 119, 120, 121, 122, 125, 127, 130, 133, 140, 143, 145, 146, 150], "nice": [0, 3, 4, 12, 24, 93, 140], "back": [0, 1, 3, 4, 5, 22, 23, 29, 35, 46, 57, 59, 60, 64, 65, 77, 78, 83, 85, 98, 100, 102, 103, 106, 111, 115, 121, 122, 130, 132, 133, 137, 143, 144, 150], "necessari": [0, 1, 3, 4, 19, 27, 28, 36, 45, 57, 62, 74, 78, 83, 85, 88, 89, 114, 115, 119, 120, 122, 126, 128, 130], "34": [0, 66, 122], "pop": [0, 3, 6, 15, 22, 23, 24, 25, 26, 28, 29, 34, 37, 39, 41, 42, 45, 53, 60, 80, 107, 133, 140, 143], "grow": [0, 1, 5, 10, 11, 12, 15, 26, 29, 62, 64, 79, 137], "after": [0, 1, 4, 5, 6, 10, 15, 19, 22, 23, 28, 29, 35, 36, 43, 50, 57, 59, 62, 74, 75, 81, 83, 98, 107, 111, 115, 119, 120, 121, 122, 123, 124, 125, 126, 130, 133, 146, 150], "leav": [0, 1, 3, 5, 10, 27, 28, 29, 45, 51, 57, 62, 66, 83, 107, 115, 119, 122, 123, 130, 133, 134, 136, 144, 146], "remain": [0, 1, 4, 5, 12, 23, 27, 28, 29, 34, 35, 36, 44, 60, 64, 78, 79, 81, 83, 85, 91, 110, 115, 119, 123, 124, 130, 132], "trace": [0, 1, 55, 64, 66, 98, 100, 130, 137, 143], "temp": [0, 27, 28, 120], "top": [0, 5, 21, 26, 29, 41, 43, 46, 83, 106, 107, 110, 133, 136, 143], "newhead": 0, "push": [0, 21, 22, 26, 29, 34, 37, 41, 46, 62, 107, 133, 140, 141, 143], "lowest_level": 0, "is_empti": [0, 24, 25, 26, 27, 28, 36, 37, 38, 39, 40, 41, 42, 64, 134], "next_level": 0, "make": [0, 3, 4, 5, 6, 10, 11, 12, 15, 23, 26, 28, 29, 33, 34, 36, 39, 42, 44, 45, 52, 55, 57, 58, 60, 62, 66, 70, 71, 74, 75, 78, 83, 85, 89, 93, 95, 96, 98, 99, 100, 101, 102, 103, 106, 107, 108, 110, 111, 114, 115, 120, 121, 122, 124, 125, 126, 130, 131, 132, 133, 137, 140, 141, 143, 146, 150, 151, 154], "about": [0, 1, 3, 4, 5, 10, 12, 15, 17, 19, 22, 29, 35, 36, 55, 59, 62, 63, 65, 71, 75, 79, 80, 81, 86, 89, 93, 100, 102, 106, 109, 110, 111, 114, 115, 119, 121, 125, 128, 131, 133, 136, 141, 143, 144, 145], "had": [0, 1, 3, 5, 10, 15, 100, 102, 115, 125], "mention": [0, 5, 81, 111, 123], "earlier": [0, 1, 2, 10, 11, 19, 27, 28, 29, 34, 36, 57, 59, 74, 75, 80, 83, 90, 91, 115, 120, 123, 125, 126, 144, 146, 150], "even": [0, 1, 3, 4, 5, 10, 12, 15, 19, 22, 26, 33, 44, 49, 57, 63, 69, 74, 80, 90, 100, 102, 103, 107, 110, 111, 115, 119, 122, 123, 127, 130, 133, 146, 150], "thei": [0, 3, 4, 5, 10, 11, 15, 17, 19, 22, 23, 26, 27, 28, 29, 33, 34, 35, 36, 43, 45, 46, 49, 54, 55, 59, 63, 64, 71, 76, 77, 78, 80, 83, 88, 90, 91, 94, 100, 102, 110, 115, 120, 122, 125, 126, 127, 128, 143], "why": [0, 3, 5, 6, 15, 16, 17, 29, 56, 57, 62, 79, 92, 102, 110, 114, 137, 146, 154], "natur": [0, 36, 44, 57, 62, 108, 109, 111, 119, 133, 136, 143], "ani": [0, 1, 3, 4, 5, 10, 11, 12, 15, 19, 21, 22, 23, 26, 27, 28, 29, 34, 35, 36, 46, 53, 55, 56, 57, 59, 64, 65, 71, 74, 75, 81, 83, 86, 88, 91, 96, 100, 101, 102, 103, 110, 113, 115, 125, 130, 131, 133, 136, 140, 141, 145, 146, 150, 151, 153, 154], "bound": [0, 3, 15, 69, 77], "chang": [0, 1, 11, 12, 21, 22, 23, 26, 27, 28, 29, 36, 55, 59, 60, 62, 64, 70, 79, 80, 81, 83, 91, 93, 98, 99, 100, 101, 102, 108, 109, 111, 115, 126, 130, 131, 136, 145, 146, 150, 154], "discuss": [0, 3, 4, 11, 26, 27, 28, 29, 31, 47, 72, 80, 83, 91, 98, 115, 128, 130, 133, 135, 146, 154], "lst_mapclass": 0, "intern": [0, 5, 25, 36, 63, 83, 102, 133, 138, 144, 150, 154], "init": [0, 83], "label": [0, 1, 3, 4, 5, 53, 65, 83, 96, 100], "simpli": [0, 1, 3, 4, 5, 10, 11, 19, 21, 22, 27, 28, 29, 34, 35, 36, 57, 58, 64, 74, 75, 77, 80, 83, 86, 88, 90, 98, 100, 102, 107, 110, 115, 119, 122, 123, 127, 131, 133, 140, 141, 143, 145, 146, 150], "expect": [0, 2, 8, 15, 24, 29, 56, 64, 80, 89, 111, 141], "better": [0, 1, 3, 4, 5, 19, 28, 36, 53, 64, 75, 78, 79, 83, 85, 90, 91, 114, 115, 119, 123, 126, 131, 144, 146, 150], "recal": [0, 1, 3, 4, 12, 21, 25, 26, 27, 28, 29, 36, 55, 83, 86, 96, 114, 115, 119, 120, 122, 125, 128, 131, 135, 143, 145, 146], "upon": [0, 19, 24, 29, 35, 36, 39, 75, 78, 83, 85, 90, 106], "probabl": [0, 5, 10, 12, 15, 19, 22, 36, 88, 110, 115, 119, 125, 133, 136, 144, 145, 150], "event": [0, 1, 36, 71, 77], "although": [0, 4, 10, 11, 15, 19, 27, 29, 57, 69, 79, 83, 88, 89, 100, 110, 115, 121, 123, 126, 133, 140], "rigor": 0, "beyond": [0, 3, 22, 83, 88, 115, 125, 126, 133, 141], "scope": [0, 83, 88, 107, 115, 126, 133], "text": [0, 1, 3, 4, 5, 6, 8, 65, 75, 79, 81, 83, 88, 102, 114, 115, 126, 131, 154], "strong": 0, "argument": [0, 22, 34, 81, 106], "off": [0, 5, 14, 15, 20, 23, 34, 68, 90, 102, 107, 111, 123, 143, 146, 154], "frac": [0, 10, 19, 36, 75, 83, 115, 119, 120, 125, 126, 131], "tallest": 0, "log_": 0, "big": [0, 3, 10, 13, 14, 16, 17, 18, 20, 23, 56, 91, 100, 130, 131, 154], "notat": [0, 14, 17, 18, 20, 21, 29, 80, 83, 89, 93, 154], "To": [0, 1, 2, 3, 4, 5, 10, 15, 16, 19, 22, 23, 27, 28, 29, 32, 34, 35, 36, 46, 52, 53, 55, 59, 63, 64, 66, 70, 71, 75, 80, 83, 84, 89, 91, 96, 100, 102, 103, 105, 109, 111, 115, 117, 119, 120, 123, 125, 130, 132, 133, 140, 141, 142, 143, 146, 149], "analyz": [0, 3, 6, 10, 11, 19, 27, 51, 115, 119, 120, 122, 123, 125, 128], "scan": [0, 29], "direct": [0, 5, 23, 55, 56, 61, 64, 66, 68, 71, 72, 78, 85, 98, 102, 114, 130, 151, 153], "result": [0, 1, 3, 4, 5, 6, 11, 12, 15, 19, 22, 23, 25, 28, 29, 34, 36, 38, 40, 41, 55, 57, 62, 71, 74, 75, 77, 78, 80, 81, 83, 85, 86, 88, 89, 90, 98, 100, 107, 114, 115, 119, 120, 122, 123, 125, 131, 133, 137, 140, 143, 146, 150], "suggest": [0, 27, 28, 75, 90, 98, 101, 115, 128, 143], "worst": [0, 3, 11, 14, 27, 51, 90, 118, 120, 123, 125, 131, 145], "includ": [0, 1, 3, 4, 5, 15, 22, 23, 26, 29, 31, 56, 59, 63, 71, 75, 76, 78, 80, 81, 83, 88, 94, 98, 101, 102, 103, 136, 137, 153], "occur": [0, 1, 3, 10, 21, 26, 28, 29, 36, 43, 45, 46, 70, 77, 79, 83, 102, 103, 115, 123, 125], "happen": [0, 1, 4, 15, 26, 28, 29, 35, 45, 46, 54, 59, 60, 62, 83, 88, 93, 94, 97, 98, 109, 111, 115, 123, 125, 126, 130, 150], "constant": [0, 3, 11, 12, 14, 15, 26, 35, 62, 79, 81, 102, 115, 118, 119, 131, 145], "domin": [0, 10, 11, 18, 115], "locat": [0, 1, 3, 6, 27, 28, 43, 52, 64, 65, 80, 88, 115, 120, 123, 124], "comput": [1, 3, 4, 5, 6, 10, 11, 15, 19, 21, 22, 29, 34, 36, 43, 45, 46, 62, 63, 65, 66, 69, 71, 74, 75, 76, 78, 79, 82, 83, 84, 87, 89, 90, 91, 92, 96, 100, 101, 105, 109, 111, 114, 115, 122, 125, 127, 128, 133, 136, 154], "graphic": [1, 5, 97, 101, 111, 136], "textual": 1, "still": [1, 3, 4, 10, 15, 22, 27, 28, 29, 36, 51, 52, 59, 64, 74, 77, 81, 100, 110, 111, 115, 120, 121, 125, 133, 136, 146, 150], "area": [1, 5, 8, 65, 66, 67, 79, 101, 128, 136], "studi": [1, 11, 22, 36, 43, 59, 63, 65, 66, 69, 70, 79, 87, 88, 89, 92, 121, 122, 124, 127, 128, 130, 135, 136, 144, 154], "Of": [1, 3, 5, 15, 31, 36, 51, 62, 66, 80, 133], "substr": [1, 7, 80], "The": [1, 3, 5, 6, 9, 10, 11, 12, 15, 19, 21, 22, 23, 25, 26, 27, 29, 31, 33, 34, 35, 36, 37, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 62, 64, 65, 66, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 83, 85, 86, 88, 89, 91, 96, 98, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 113, 114, 115, 128, 129, 130, 134, 135, 136, 138, 140, 141, 143, 144, 145, 146, 150, 151, 152, 154], "type": [1, 3, 5, 9, 21, 23, 24, 25, 26, 29, 31, 32, 36, 37, 45, 47, 58, 63, 67, 73, 74, 75, 76, 77, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 92, 100, 102, 103, 110, 117, 129, 132, 135, 140, 149, 154], "search": [1, 5, 6, 8, 9, 27, 28, 39, 42, 55, 56, 60, 61, 62, 65, 66, 67, 69, 70, 71, 73, 102, 114, 115, 116, 117, 118, 122, 128, 130, 131, 133, 137, 139, 149, 152, 154], "identifi": [1, 5, 19, 29, 66, 80, 90, 100, 136, 143], "least": [1, 5, 6, 28, 29, 39, 42, 51, 64, 100, 137, 151], "occurr": [1, 6, 10, 80], "extens": [1, 4], "python": [1, 4, 5, 6, 9, 10, 11, 16, 19, 20, 21, 22, 23, 27, 28, 29, 31, 32, 34, 44, 45, 46, 47, 49, 52, 53, 58, 64, 66, 68, 74, 75, 77, 79, 81, 84, 87, 88, 92, 94, 95, 96, 98, 106, 107, 110, 111, 115, 119, 120, 122, 125, 127, 133, 138, 140, 143, 146, 147], "ccabababcab": 1, "ab": [1, 74, 77], "xyz": 1, "index": [1, 3, 5, 6, 13, 15, 22, 23, 26, 28, 39, 42, 77, 80, 83, 93, 102, 114, 115, 125, 133, 140, 154], "doe": [1, 3, 4, 11, 15, 19, 21, 28, 29, 36, 41, 44, 59, 62, 75, 77, 78, 80, 81, 83, 85, 88, 89, 93, 94, 97, 100, 101, 102, 103, 106, 110, 111, 114, 115, 118, 122, 123, 125, 126, 130, 137, 143, 145, 146], "excit": 1, "algorithm": [1, 2, 3, 7, 9, 10, 11, 13, 15, 16, 18, 22, 23, 29, 33, 34, 36, 37, 43, 45, 51, 53, 56, 57, 59, 60, 62, 63, 65, 66, 67, 69, 70, 71, 74, 75, 77, 79, 82, 83, 86, 88, 89, 91, 92, 96, 97, 98, 99, 100, 101, 102, 106, 107, 108, 109, 110, 114, 115, 116, 118, 119, 120, 121, 122, 123, 125, 127, 128, 130, 133, 137, 143, 144, 146, 148, 150, 151], "develop": [1, 3, 15, 29, 59, 60, 64, 79, 83, 88, 89, 90, 101, 128], "take": [1, 3, 4, 5, 6, 10, 11, 12, 15, 19, 22, 23, 27, 28, 29, 46, 50, 52, 59, 60, 63, 71, 72, 74, 75, 77, 79, 80, 81, 83, 88, 89, 90, 93, 96, 98, 100, 102, 106, 107, 108, 109, 111, 115, 119, 120, 122, 128, 130, 131, 133, 136, 137, 143, 146, 147, 150], "domain": [1, 77, 87, 91], "bioinformat": 1, "manag": [1, 35, 87, 91], "larg": [1, 4, 5, 10, 11, 15, 36, 49, 53, 55, 66, 79, 106, 109, 115, 119, 122, 125, 128, 150], "quantiti": [1, 5], "data": [1, 3, 4, 5, 6, 9, 11, 12, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 43, 44, 45, 46, 49, 58, 63, 64, 67, 73, 75, 79, 81, 82, 83, 84, 86, 87, 89, 92, 102, 103, 109, 110, 114, 117, 122, 125, 129, 132, 135, 136, 140, 141, 142, 143, 144, 146, 148, 149, 150], "much": [1, 3, 4, 5, 12, 15, 28, 33, 36, 53, 62, 78, 80, 81, 83, 85, 90, 91, 102, 111, 112, 146], "form": [1, 4, 5, 23, 29, 64, 66, 68, 74, 80, 81, 83, 96, 98, 105, 115, 137, 147, 150], "code": [1, 3, 4, 5, 10, 11, 13, 15, 19, 22, 23, 24, 28, 29, 34, 36, 53, 55, 57, 58, 59, 62, 64, 66, 74, 77, 78, 80, 83, 85, 88, 94, 98, 102, 103, 106, 107, 110, 111, 120, 128, 130, 133, 136, 137, 140, 141, 143, 146, 150, 153], "genet": 1, "materi": [1, 26], "chromosom": 1, "individu": [1, 5, 64, 83, 125, 143], "deoxyribonucl": 1, "acid": 1, "dna": [1, 7], "molecul": 1, "blueprint": 1, "protein": 1, "synthesi": 1, "sequenc": [1, 3, 4, 21, 22, 23, 24, 25, 26, 34, 38, 40, 41, 55, 57, 63, 64, 69, 70, 72, 74, 83, 96, 98, 101, 103, 115, 119, 125, 131], "chemic": 1, "adenin": 1, "thymin": 1, "t": [1, 4, 5, 10, 11, 12, 29, 57, 62, 64, 66, 77, 102, 111, 114, 115], "guanin": 1, "g": [1, 5, 29, 58, 59, 64, 66, 71, 72, 81, 89, 103, 132, 146], "cytosin": 1, "c": [1, 3, 4, 5, 10, 11, 23, 29, 57, 60, 62, 64, 65, 66, 74, 81, 83, 100, 115, 130, 140, 141], "symbol": [1, 10, 28, 29, 34, 47, 80, 81, 154], "alphabet": [1, 4, 10, 22, 57, 60, 75, 128], "piec": [1, 5, 23, 28, 64, 69, 75, 80, 83, 96, 100, 101, 106, 110, 115, 119, 141], "atcgtagagtcagtagagactadtggtacga": 1, "might": [1, 3, 4, 5, 11, 15, 29, 31, 36, 43, 53, 62, 63, 66, 70, 71, 72, 81, 88, 90, 93, 94, 96, 98, 110, 111, 114, 115, 125, 130, 133, 136, 141, 145, 146], "strand": [1, 62], "perhap": [1, 4, 15, 19, 36, 46, 88, 90, 115], "thousand": [1, 5, 15, 69], "tool": [1, 4, 15, 79, 87, 88, 111], "research": [1, 5, 69, 78, 85, 101, 114], "reduc": [1, 4, 5, 6, 8, 15, 55, 64, 66, 78, 83, 85, 98, 100, 110, 111, 115, 126, 130], "underli": [1, 10, 19, 27, 39, 66, 77, 83, 88, 125, 127], "further": [1, 2, 4, 11, 19, 25, 26, 27, 59, 81, 83, 93, 94, 102, 103, 115, 119, 120, 130, 131, 133, 143], "typic": [1, 10, 19, 22, 28, 35, 36, 39, 45, 58, 77, 80, 83, 89, 109, 115, 120, 124, 125, 127], "quit": [1, 4, 36, 71, 80, 90, 101, 111], "sure": [1, 4, 21, 23, 28, 29, 39, 52, 57, 75, 77, 78, 83, 85, 100, 110, 111, 115, 130, 132, 143, 146], "approach": [1, 4, 5, 10, 15, 27, 28, 36, 49, 53, 62, 64, 100, 101, 115, 140, 141, 146], "solut": [1, 4, 5, 19, 20, 22, 28, 29, 33, 53, 56, 59, 62, 64, 70, 79, 88, 89, 90, 96, 97, 100, 101, 105, 108, 109, 110, 112, 119, 143, 154], "your": [1, 3, 4, 5, 6, 15, 19, 22, 23, 28, 29, 46, 49, 56, 59, 62, 63, 65, 71, 74, 75, 77, 78, 79, 80, 81, 83, 85, 88, 93, 95, 100, 101, 102, 111, 114, 137, 153], "mind": [1, 4, 5, 28, 138], "solv": [1, 5, 10, 11, 19, 22, 33, 34, 43, 53, 55, 56, 59, 60, 63, 64, 65, 67, 69, 70, 72, 78, 79, 80, 83, 84, 85, 87, 88, 89, 90, 91, 96, 97, 98, 100, 101, 102, 105, 108, 109, 110, 111, 112, 119, 125, 130, 131, 143], "try": [1, 5, 6, 11, 15, 28, 36, 55, 62, 74, 77, 80, 83, 94, 98, 100, 102, 103, 106, 108, 110, 140], "whenev": [1, 29, 83, 102, 143], "slide": 1, "sixth": 1, "attempt": [1, 15, 115, 123], "shade": [1, 5, 58, 66, 120, 121, 146], "denot": [1, 11, 27, 28, 29, 77, 115, 130], "partial": [1, 120, 121, 124, 126], "list": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 32, 35, 36, 37, 38, 41, 43, 47, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 68, 71, 73, 74, 75, 77, 82, 83, 87, 88, 93, 100, 101, 102, 103, 107, 109, 110, 111, 113, 114, 115, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 133, 134, 135, 136, 137, 138, 141, 142, 143, 144, 146, 149, 150, 151, 152, 154], "lst_simplematch": 1, "implement": [1, 2, 3, 4, 5, 6, 9, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23, 31, 32, 34, 35, 37, 47, 48, 49, 53, 55, 57, 62, 63, 64, 67, 68, 73, 74, 75, 78, 80, 81, 82, 83, 84, 85, 87, 88, 90, 91, 94, 95, 98, 101, 105, 113, 114, 117, 119, 121, 122, 123, 125, 129, 132, 134, 135, 137, 140, 141, 142, 143, 144, 145, 147, 148, 150, 152, 154], "otherwis": [1, 3, 4, 63, 68, 80, 81, 83, 98, 102, 105, 112, 115, 130, 134, 147], "signal": [1, 22, 34], "fail": [1, 27, 59, 60, 74, 100, 102], "simple_match": 1, "j": [1, 3, 4, 10, 11, 12, 13, 100, 120, 122], "len": [1, 4, 5, 24, 25, 36, 60, 80, 93, 102, 111, 114, 115, 133, 140], "variabl": [1, 3, 4, 15, 19, 28, 29, 55, 57, 58, 59, 62, 74, 80, 81, 83, 93, 96, 102, 107, 120, 130, 137], "serv": [1, 36, 45, 59, 123], "indic": [1, 5, 6, 49, 57, 59, 60, 71, 80, 91, 100, 102, 119, 122, 146, 151], "respect": [1, 4, 11, 18, 19, 22, 28, 29, 31, 42, 55, 59, 80, 83, 89, 91, 98, 115, 119, 123, 128, 137, 143, 146, 150], "line_checkmatch": 1, "between": [1, 4, 5, 10, 11, 12, 15, 17, 19, 22, 23, 27, 29, 34, 36, 53, 55, 57, 62, 63, 64, 65, 66, 70, 72, 74, 80, 81, 83, 90, 98, 100, 101, 106, 111, 114, 115, 118, 125, 126, 132, 133, 136, 137, 141, 145, 150, 151], "increment": [1, 3, 5, 10, 114, 115, 118, 123, 126], "reset": 1, "line_patternreset": 1, "At": [1, 4, 5, 10, 19, 28, 29, 33, 34, 35, 52, 55, 60, 62, 70, 80, 83, 89, 93, 110, 111, 114, 120, 121, 123, 125, 126, 130, 136, 143, 145, 146, 150], "line_textend": 1, "line_patternend": 1, "length": [1, 4, 5, 10, 33, 36, 46, 53, 60, 69, 72, 80, 96, 109, 111, 114, 122, 123, 128], "m": [1, 4, 26, 65, 74, 81, 83, 98, 115, 132], "complex": [1, 8, 12, 14, 27, 28, 29, 79, 80, 81, 87, 88, 89, 91, 103, 105, 113, 115, 125, 128, 130, 154], "nm": 1, "mai": [1, 3, 4, 5, 10, 15, 19, 22, 23, 27, 28, 29, 34, 36, 55, 57, 59, 62, 63, 64, 68, 72, 75, 81, 83, 88, 90, 93, 94, 100, 102, 105, 106, 108, 109, 110, 111, 112, 115, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 131, 133, 144, 145, 146, 150, 151], "against": [1, 4, 6, 10, 27, 29, 35, 58, 119, 121, 123, 125], "almost": [1, 21, 46, 57, 75, 110, 115], "bad": [1, 77, 133], "million": [1, 5, 10, 15, 53], "matcher": [1, 6], "willing": 1, "do": [1, 3, 4, 5, 6, 10, 11, 15, 19, 21, 23, 28, 29, 36, 45, 49, 51, 53, 57, 62, 63, 64, 66, 71, 74, 75, 76, 78, 80, 83, 85, 88, 90, 93, 94, 96, 98, 100, 102, 110, 111, 114, 115, 120, 124, 125, 126, 130, 132, 133, 137, 140, 143, 144, 145, 146, 148, 150, 151, 153], "preprocess": 1, "build": [1, 4, 8, 9, 17, 22, 23, 24, 25, 28, 36, 50, 51, 59, 60, 73, 80, 83, 89, 93, 101, 106, 115, 132, 133, 134, 137, 141, 143, 146, 154], "what": [1, 3, 4, 5, 6, 10, 11, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 35, 36, 37, 44, 45, 46, 47, 49, 53, 54, 56, 57, 59, 60, 62, 63, 71, 74, 76, 78, 80, 81, 83, 91, 92, 94, 97, 98, 100, 101, 102, 106, 109, 110, 111, 113, 114, 115, 119, 123, 125, 127, 130, 134, 142, 143, 145, 146, 150, 154], "determinist": [1, 7], "automaton": [1, 7], "dfa": [1, 6, 7, 8], "vertex": [1, 5, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 66, 68, 69, 71, 72], "keep": [1, 3, 4, 5, 6, 10, 22, 28, 29, 33, 34, 36, 38, 48, 55, 57, 58, 59, 60, 64, 75, 100, 101, 110, 115, 130, 132, 133, 136, 137, 138, 140, 143, 146], "track": [1, 3, 5, 6, 19, 22, 36, 38, 55, 57, 58, 59, 60, 100, 101, 110, 130, 132, 137, 140, 143, 146], "amount": [1, 4, 5, 10, 15, 19, 36, 45, 56, 75, 90, 100, 101, 111, 115, 128], "far": [1, 27, 29, 41, 62, 74, 75, 83, 102, 111, 133], "edg": [1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 68, 71, 72, 102, 139, 145, 151], "transit": 1, "last": [1, 3, 4, 10, 12, 22, 23, 24, 25, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 42, 45, 46, 57, 62, 63, 64, 77, 78, 80, 83, 85, 100, 102, 115, 123, 125, 126, 133, 136, 146], "acata": 1, "clearli": [1, 3, 4, 26, 69, 72, 100, 110, 115, 150], "situat": [1, 21, 23, 28, 35, 36, 37, 46, 74, 77, 83, 130], "read": [1, 5, 6, 11, 15, 19, 23, 29, 33, 34, 55, 80, 93, 102, 106, 143, 150], "appropri": [1, 5, 11, 22, 25, 32, 34, 53, 59, 83, 109, 114, 123, 130, 137, 145], "By": [1, 4, 11, 15, 19, 29, 36, 65, 80, 83, 90, 91, 100, 102, 111, 115, 126, 130, 131, 136, 143, 146, 151, 154], "definit": [1, 4, 5, 11, 26, 66, 68, 73, 74, 75, 78, 83, 85, 88, 103, 109, 111, 122, 130, 132, 138, 140, 141, 146, 152, 154], "multipl": [1, 9, 29, 62, 63, 89, 101, 120, 133, 143, 154], "termin": [1, 77, 103, 115], "concentr": 1, "circl": [1, 35, 81, 102, 109, 136], "report": [1, 29, 77, 125], "run": [1, 5, 6, 10, 11, 12, 15, 19, 26, 27, 29, 33, 36, 50, 51, 54, 55, 56, 62, 65, 66, 75, 94, 96, 102, 110, 111, 114, 120, 121, 122, 123, 124, 125, 126, 128, 130], "somewher": [1, 11, 28, 29, 102, 126], "nonfin": 1, "did": [1, 3, 4, 5, 15, 19, 28, 29, 78, 85, 88, 98, 100, 119], "acgacacata": 1, "alwai": [1, 3, 4, 10, 12, 27, 28, 29, 46, 55, 64, 80, 83, 87, 101, 106, 108, 110, 111, 115, 119, 121, 123, 131, 133, 143, 144], "subsequ": [1, 3, 60, 75, 123, 130], "combin": [1, 4, 5, 23, 50, 51, 66, 74, 80, 81, 83, 100, 122, 150], "input": [1, 19, 29, 33, 35, 77, 78, 83, 85, 92, 154], "account": [1, 3, 4, 28, 76, 78, 100], "There": [1, 3, 4, 5, 15, 19, 21, 27, 29, 45, 49, 52, 55, 56, 60, 62, 64, 68, 70, 77, 83, 90, 96, 100, 101, 120, 122, 125, 128, 131, 141, 143, 146, 154], "produc": [1, 3, 4, 19, 29, 36, 56, 62, 66, 71, 78, 80, 83, 85, 89, 94, 126], "them": [1, 4, 5, 10, 15, 21, 22, 29, 31, 33, 35, 36, 43, 46, 53, 55, 59, 64, 71, 72, 76, 78, 80, 81, 83, 85, 90, 91, 93, 94, 100, 101, 102, 106, 107, 114, 115, 122, 123, 125, 128, 138, 141, 145, 146, 150, 151], "mostli": 1, "fact": [1, 3, 5, 10, 11, 12, 15, 19, 27, 28, 29, 49, 63, 66, 77, 88, 89, 93, 94, 96, 97, 100, 109, 115, 119, 124, 130, 131, 133, 146, 150, 151], "aris": [1, 19, 21, 28, 36, 88, 89, 90, 127], "emploi": 1, "streamlin": [1, 100], "test": [1, 3, 4, 10, 15, 26, 38, 39, 40, 41, 42, 57, 60, 74, 76, 78, 94, 100, 102, 114], "prove": [1, 3, 83, 88, 151], "wast": [1, 3, 5, 100, 115, 120, 146], "farther": [1, 106, 133], "ineffici": [1, 8, 100, 120], "rule": [1, 5, 29, 77, 94, 99, 101, 110, 130, 131, 143], "longer": [1, 3, 4, 12, 15, 19, 22, 26, 27, 28, 29, 36, 78, 85, 111], "shift": [1, 3, 5, 15, 88, 121, 126, 133], "third": [1, 4, 5, 10, 11, 31, 35, 66, 72, 75, 98, 110, 115, 121, 124, 136, 140, 146], "choic": [1, 5, 6, 10, 15, 26, 29, 83, 119], "three": [1, 3, 4, 5, 11, 29, 36, 55, 56, 59, 62, 64, 66, 80, 83, 94, 98, 99, 100, 101, 102, 105, 106, 110, 113, 114, 115, 116, 120, 121, 123, 124, 125, 126, 146, 150, 154], "too": [1, 28, 34, 36, 90, 100, 111, 114, 115, 128], "miss": [1, 36, 110], "content": [1, 3, 29, 38, 40, 41, 56, 115, 122, 123, 126, 136, 143], "previous": [1, 27, 55, 83], "prefix": [1, 23, 30, 32, 37, 47, 154], "suffix": 1, "valuabl": 1, "overlap": 1, "slid": 1, "observ": [1, 15, 24, 29, 34, 46, 51, 66], "kmp": [1, 6, 7, 8], "scientist": [1, 10, 11, 69, 71, 79, 88, 89, 90, 91, 100, 101], "who": [1, 35, 62, 64, 80, 88, 101, 102, 154], "represent": [1, 4, 5, 11, 22, 23, 25, 28, 36, 48, 49, 55, 59, 63, 68, 83, 89, 93, 98, 102, 133, 141, 144, 152, 154], "unlik": [1, 10, 146], "special": [1, 4, 10, 28, 37, 57, 63, 83, 96, 114, 115, 132, 146], "respons": [1, 122], "asterisk": 1, "taken": [1, 4, 15, 50, 63, 81], "f": [1, 4, 11, 12, 15, 23, 29, 36, 53, 57, 58, 60, 64, 74, 82, 83, 103, 110, 140], "y": [1, 4, 5, 11, 15, 26, 55, 62, 94, 102, 114], "ye": 1, "want": [1, 3, 4, 5, 15, 19, 27, 28, 29, 36, 45, 55, 64, 65, 71, 75, 80, 81, 83, 93, 94, 96, 98, 100, 101, 102, 106, 111, 115, 121, 128, 131, 143, 146, 150, 153, 154], "itself": [1, 5, 19, 28, 57, 80, 83, 88, 91, 96, 100, 103, 106, 108, 109, 111, 112, 114, 140, 141, 146, 150], "lst_mismatchedlink": 1, "tell": [1, 3, 4, 11, 17, 19, 28, 81, 83, 100, 101, 110], "mismatched_link": [1, 6], "aug_pattern": 1, "k": [1, 4, 10, 11, 13, 15, 56, 59, 62, 75, 80, 119, 122, 126, 134], "rang": [1, 3, 4, 5, 10, 11, 12, 13, 15, 19, 36, 52, 58, 74, 75, 77, 80, 100, 101, 102, 111, 115, 132], "": [1, 3, 4, 5, 10, 11, 15, 29, 32, 35, 41, 51, 53, 56, 57, 59, 66, 67, 70, 71, 72, 73, 74, 75, 81, 83, 88, 89, 91, 96, 98, 100, 101, 102, 106, 109, 110, 111, 115, 123, 130, 131, 133, 136, 140, 141, 143, 145, 146, 147, 149, 150, 154], "valu": [1, 3, 4, 5, 6, 9, 10, 11, 15, 19, 22, 23, 27, 28, 29, 31, 34, 35, 36, 38, 39, 40, 41, 42, 48, 49, 53, 55, 58, 59, 60, 64, 72, 74, 75, 77, 78, 80, 81, 83, 85, 93, 100, 101, 102, 103, 107, 111, 114, 115, 116, 119, 120, 121, 123, 124, 125, 128, 130, 134, 135, 140, 141, 143, 144, 146, 147, 150, 151], "dictionari": [1, 2, 7, 8, 9, 13, 16, 17, 20, 21, 29, 48, 53, 58, 81, 82, 87, 103, 115, 143, 146, 147, 154], "kei": [1, 2, 3, 4, 5, 6, 9, 12, 20, 47, 48, 53, 55, 58, 59, 62, 72, 73, 75, 80, 81, 88, 92, 96, 100, 103, 108, 110, 113, 115, 119, 125, 126, 129, 130, 131, 133, 134, 135, 137, 138, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154], "pair": [1, 4, 9, 29, 34, 55, 56, 57, 65, 66, 80, 96, 115, 120, 135, 136, 146, 147, 151], "destin": [1, 28, 55, 110], "past": [1, 4, 29, 100, 133, 143, 149], "longest": [1, 45, 46], "augment": [1, 122, 130], "placehold": [1, 81], "line_initdict": 1, "automat": [1, 3, 114, 132], "larger": [1, 3, 5, 11, 12, 27, 36, 55, 56, 62, 66, 101, 110, 121, 122, 128, 131], "11": [1, 12, 15, 22, 27, 28, 29, 34, 36, 57, 60, 64, 65, 74, 83, 100, 102, 110, 115, 119, 122, 123, 124, 125, 137, 146, 150], "proper": [1, 23, 28, 29, 45, 81, 83, 98, 115, 120, 124, 133, 145], "revert": 1, "correct": [1, 5, 12, 22, 29, 75, 83, 88, 94, 100, 119, 120, 124, 128, 130, 140, 146], "easier": [1, 3, 57, 75, 80, 93, 102, 103, 109, 146], "storag": [1, 5, 10, 37, 115, 120, 123, 138, 140], "expand": [2, 59, 60, 102], "rsa": [2, 7, 9, 154], "public": [2, 4, 5, 7, 93], "encrypt": [2, 4, 6, 7], "recurs": [2, 5, 9, 54, 56, 57, 60, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 110, 114, 119, 122, 123, 130, 136, 137, 140, 141, 142, 143, 146, 150, 151, 154], "mathemat": [2, 3, 4, 80, 98, 111, 131, 133, 137, 143], "skip": [2, 6, 7, 8, 9, 80, 115, 154], "altern": [2, 4, 19, 23, 74, 81, 88, 108, 114, 115], "octre": [2, 6, 7, 8, 9, 154], "imag": [2, 6, 8, 9, 88, 154], "string": [2, 4, 7, 9, 10, 21, 22, 23, 26, 28, 29, 33, 34, 58, 74, 75, 82, 83, 87, 89, 92, 93, 101, 103, 107, 113, 114, 115, 143, 154], "graph": [2, 6, 7, 8, 9, 11, 26, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 69, 70, 71, 72, 100, 144, 154], "analysi": [3, 7, 9, 11, 14, 16, 18, 36, 47, 73, 90, 114, 122, 126, 129, 152, 154], "introduc": [3, 55, 81, 83], "limit": [3, 5, 60, 66, 114, 131, 137, 145, 150], "yet": [3, 29, 31, 60, 64, 83, 87, 89, 135, 143], "knowledg": [3, 62, 63, 88], "learn": [3, 22, 23, 55, 59, 63, 65, 77, 79, 86, 90, 102, 105, 106, 109, 132, 136, 144], "pattern": [3, 5, 6, 8, 9, 22, 32, 74, 83, 90, 114, 131, 150, 154], "principl": [3, 45, 46, 79], "behind": [3, 12, 27, 28, 65, 94, 121], "recogn": [3, 32, 34, 57, 83, 111, 120, 143], "real": [3, 4, 5, 23, 34, 35, 36, 37, 49, 53, 55, 69, 143], "program": [3, 4, 5, 6, 10, 11, 15, 16, 19, 21, 22, 23, 26, 29, 31, 34, 35, 36, 45, 56, 62, 66, 69, 74, 75, 77, 78, 79, 80, 81, 82, 84, 86, 90, 91, 92, 96, 97, 99, 101, 102, 103, 104, 105, 106, 110, 111, 112, 113, 120, 141, 153, 154], "languag": [3, 5, 12, 19, 21, 23, 26, 31, 34, 36, 74, 77, 79, 80, 83, 84, 86, 87, 89, 120], "demonstr": [3, 15, 71, 115, 130, 134, 136], "replac": [3, 10, 22, 28, 53, 75, 83, 115, 130, 131, 137, 143, 146, 147, 150], "arrai": [3, 5, 27, 72, 100], "common": [3, 5, 8, 9, 10, 15, 16, 19, 22, 24, 31, 45, 69, 74, 76, 78, 80, 83, 88, 89, 111, 115, 125, 127, 128, 136, 144, 150, 154], "java": [3, 5], "capabl": [3, 36, 44, 115, 120], "kind": [3, 11, 21, 23, 62, 63, 77, 128, 132, 141, 143, 146, 148, 150], "float": [3, 4, 5, 15, 80, 81, 83, 100, 143], "cannot": [3, 10, 31, 36, 62, 77, 79, 80, 88, 96, 103, 115, 120, 126], "mix": [3, 21, 71], "support": [3, 6, 65, 74, 80, 88, 115, 154], "think": [3, 5, 10, 15, 19, 21, 22, 29, 46, 62, 63, 75, 77, 79, 89, 93, 94, 96, 102, 106, 107, 110, 111, 114, 115, 126, 128, 130, 131, 133, 141, 144, 146], "block": [3, 17, 28, 56, 77, 83, 89, 102, 103], "byte": [3, 4, 5], "memori": [3, 5, 8, 19, 28, 79, 89, 90, 115, 120, 123, 154], "divid": [3, 4, 5, 22, 23, 77, 80, 83, 98, 102, 106, 115, 119, 122, 123, 133, 150], "chunk": [3, 4], "illustr": [3, 4, 5, 17, 48, 49, 52, 56, 57, 64, 65, 69, 71, 72, 80, 81, 98, 100, 106, 107, 111, 122, 126, 130, 131, 133, 136, 140, 143, 146, 150, 151], "six": [3, 5, 22, 35, 36, 58, 72, 94, 100, 115, 121, 141, 146], "16": [3, 5, 22, 27, 28, 29, 57, 64, 74, 88, 96, 98, 100, 102, 115, 119, 122, 123, 126, 130, 146], "total": [3, 5, 6, 10, 15, 36, 54, 55, 65, 96, 100, 101, 120, 122, 126, 128, 131, 133, 145], "96": [3, 23, 36, 80], "object": [3, 4, 9, 15, 20, 26, 28, 36, 44, 45, 46, 47, 48, 55, 58, 69, 73, 74, 80, 81, 82, 86, 87, 92, 93, 100, 102, 110, 113, 129, 138, 141, 143, 146, 152, 154], "__main__": [3, 12, 15, 83], "foo": [3, 19], "0x5eca30": 3, "becaus": [3, 4, 5, 11, 15, 17, 19, 23, 29, 36, 51, 55, 62, 64, 65, 80, 81, 83, 98, 100, 102, 106, 109, 111, 120, 131, 133, 140, 143, 144, 145, 146, 150], "calcul": [3, 4, 5, 6, 19, 23, 88, 100, 109, 113, 119, 137, 145, 154], "item_address": 3, "base_address": 3, "size_of_object": 3, "suppos": [3, 4, 11, 25, 36, 53, 75, 94, 96, 98, 100, 101, 102, 107, 109, 110, 115, 119, 120, 121, 124, 125, 146, 150], "0x000040": 3, "64": [3, 4, 5, 60, 65, 74, 110, 115], "decim": [3, 4, 5, 47, 81, 98, 154], "arithmet": [3, 9, 21, 29, 34, 78, 80, 81, 83, 85, 89, 143, 154], "cdot": [3, 4, 10, 53, 143], "cours": [3, 5, 15, 19, 22, 31, 51, 62, 63, 66, 80, 123, 133], "risk": 3, "fix": [3, 83, 93, 146], "just": [3, 4, 5, 11, 15, 27, 28, 53, 55, 58, 62, 64, 65, 71, 75, 88, 93, 94, 96, 98, 100, 102, 106, 111, 119, 120, 130, 132, 140, 141, 143, 145, 146, 150], "thing": [3, 4, 5, 12, 15, 19, 24, 29, 35, 38, 51, 57, 59, 62, 63, 64, 71, 83, 88, 93, 100, 102, 106, 110, 115, 130, 136, 141, 143], "indefinit": [3, 106], "seriou": 3, "consequ": 3, "though": [3, 10, 15, 26, 44, 74, 80, 90, 94, 100, 107, 110, 115, 119, 127, 140], "element": [3, 5, 12, 15, 24, 25, 26, 43, 45, 74, 80, 81, 96, 100, 103, 115, 120, 123, 125, 128, 136, 140], "runtim": [3, 77, 103], "error": [3, 5, 15, 23, 28, 29, 39, 42, 77, 80, 83, 94, 103, 143, 146], "imagin": [3, 5, 46, 59], "hard": [3, 11, 62, 79, 102, 133], "linux": 3, "system": [3, 15, 19, 22, 45, 63, 88, 105, 136, 151], "boundari": [3, 5], "rather": [3, 4, 5, 11, 12, 15, 28, 35, 36, 48, 57, 65, 100, 103, 111, 137], "uninform": 3, "messag": [3, 4, 55, 64, 65, 67, 74, 77, 80], "segment": 3, "violat": [3, 133], "pointer": [3, 130], "alloc": [3, 5, 107], "space": [3, 5, 10, 19, 23, 29, 48, 75, 80, 81, 98, 102, 118, 119, 122, 137], "fill": [3, 5, 49, 53, 56, 81, 100, 101, 106, 115, 133, 146], "bigger": [3, 11, 12], "old": [3, 5, 28, 81, 98, 100, 115, 130, 137, 140, 146, 147], "copi": [3, 12, 23, 64, 74, 101], "implic": [3, 55], "pretti": [3, 102, 111], "amaz": [3, 59], "let": [3, 4, 5, 15, 29, 35, 50, 51, 53, 55, 59, 60, 62, 64, 66, 70, 71, 80, 81, 93, 94, 96, 98, 100, 102, 106, 109, 110, 111, 115, 123, 130, 131, 136, 140, 141, 143, 145, 147, 149, 150], "dive": 3, "anyth": [3, 4, 11, 28, 59, 71, 75, 80, 83], "itema": 3, "specif": [3, 5, 19, 21, 27, 28, 31, 60, 72, 80, 81, 83, 128, 136], "append": [3, 4, 5, 15, 22, 23, 24, 26, 28, 29, 36, 42, 52, 60, 62, 74, 80, 133], "averag": [3, 5, 11, 12, 14, 19, 23, 27, 36, 62, 114, 115, 120, 125], "delet": [3, 6, 12, 50, 55, 64, 80, 101, 114, 115, 130, 133, 134, 137, 145, 146, 147], "item": [3, 6, 12, 13, 15, 22, 23, 24, 25, 26, 27, 28, 31, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 74, 77, 80, 81, 83, 89, 93, 100, 101, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 133, 134, 135, 136, 137, 144], "arbitrari": [3, 4, 6, 19, 57, 80, 115], "outlin": [3, 5, 70, 98, 106, 110, 143, 146], "__resiz": 3, "arraylist": [3, 6], "instanc": [3, 5, 11, 19, 28, 36, 55, 57, 58, 59, 68, 80, 83, 88, 89, 93, 100, 102, 138, 141, 146], "max_siz": 3, "last_index": 3, "lst_arraylistinit": 3, "zero": [3, 4, 5, 36, 74, 77, 80, 81, 100, 102, 109, 111, 130, 132, 151], "my_arrai": 3, "size_expon": 3, "shortli": [3, 5, 146], "val": [3, 102, 115, 138, 147], "lst_arr_siz": 3, "new_siz": 3, "print": [3, 4, 5, 12, 15, 19, 45, 47, 58, 59, 74, 75, 77, 81, 83, 86, 93, 100, 101, 110, 115, 122, 146, 150, 154], "new_arrai": 3, "lst_arr_cop1": 3, "condit": [3, 4, 5, 27, 28, 60, 74, 98, 100, 102, 103, 109, 122, 131, 146], "doubl": [3, 36, 44, 80, 145], "underscor": [3, 53, 80, 83, 133], "convent": 3, "resiz": [3, 114], "privat": [3, 4, 5, 146], "ad": [3, 5, 9, 10, 19, 24, 26, 27, 28, 29, 38, 40, 41, 43, 44, 45, 46, 50, 51, 57, 58, 59, 64, 71, 74, 80, 83, 96, 100, 101, 115, 130, 133, 140, 145], "_expon": 3, "multipli": [3, 4, 15, 29, 62, 71, 83], "power": [3, 4, 5, 25, 26, 31, 36, 43, 66, 69, 74, 80, 83, 86, 87, 146], "125": 3, "plu": [3, 5, 11, 75, 98, 100, 115, 137], "design": [3, 4, 5, 15, 23, 35, 36, 37, 64, 78, 83, 85, 88, 90, 109, 115, 143, 151], "good": [3, 4, 5, 10, 11, 15, 19, 23, 28, 36, 49, 59, 63, 80, 90, 93, 98, 100, 101, 102, 109, 111, 121, 133, 138], "tradeoff": [3, 15], "vari": [3, 4, 36], "cpu": 3, "speed": [3, 36, 62, 79, 102, 114], "24": [3, 57, 62, 65, 81, 96], "32": [3, 4, 66], "40": [3, 4, 111, 122, 146], "52": [3, 100], "76": [3, 98, 137], "ldot": 3, "bit": [3, 4, 5, 6, 29, 38, 78, 85, 93, 100, 111, 130, 133, 140, 141, 146], "updat": [3, 5, 55, 64, 102, 130, 137, 146], "referenc": 3, "explicitli": [3, 5, 26, 28, 29, 60, 75, 77, 81, 83, 107, 110, 146], "reus": [3, 83], "clean": [3, 34, 46, 111, 137], "garbag": 3, "cost": [3, 10, 17, 55, 56, 61, 64, 65, 72, 81, 101, 119, 122, 130, 133], "c_i": 3, "expens": [3, 108, 119], "_index": 3, "summar": [3, 12, 81, 125, 149], "i_": 3, "th": [3, 13, 120, 124, 125, 131], "rel": [3, 4, 5, 27, 28, 29, 31, 37, 39, 42, 43, 63, 97, 125], "infrequ": 3, "spread": 3, "amort": [3, 7], "fifth": [3, 83, 100, 121], "But": [3, 4, 5, 15, 19, 22, 28, 49, 62, 98, 102, 109, 110, 130, 143, 145], "room": [3, 102, 121, 133], "low": [3, 36, 88, 89, 125, 133], "align": [3, 4, 81], "cost_": 3, "sum_": [3, 10, 19], "log_2": [3, 130, 145, 149], "2n": [3, 10, 11], "3n": [3, 11], "summat": [3, 11, 19], "equat": [3, 4, 19, 29, 75, 96, 101, 130, 131, 137], "obviou": [3, 5, 15, 19, 29], "sum": [3, 10, 11, 19, 36, 64, 72, 80, 83, 107, 109, 113, 115, 120, 121, 154], "goe": [3, 4, 36, 80, 83, 143, 146], "term": [3, 4, 5, 10, 11, 20, 29, 47, 72, 73, 78, 83, 85, 89, 92, 94, 96, 100, 103, 106, 113, 129, 130, 131, 152, 154], "advanc": [3, 79, 154], "lst_arrindex": 3, "express": [3, 4, 11, 21, 22, 23, 28, 32, 34, 37, 47, 56, 62, 77, 81, 83, 94, 96, 103, 107, 108, 109, 137, 143, 146, 148, 150, 154], "hide": [3, 5, 75, 82, 87, 91], "difficult": [3, 63, 71, 88, 97, 105, 111, 112, 115, 130, 146], "reli": [3, 106, 133, 146], "confirm": [3, 12], "sourc": [3, 15, 83, 136], "file": [3, 5, 6, 15, 77, 80, 83, 102, 136, 146, 151, 153], "listobject": 3, "__getitem__": [3, 6, 102, 115, 146], "idx": [3, 5, 102], "rais": [3, 4, 19, 28, 39, 42, 77, 78, 83, 85, 103, 143, 146], "lookuperror": 3, "__setitem__": [3, 6, 115, 146], "ahead": [3, 4, 10, 28, 45], "27": [3, 36, 66, 71, 115, 122], "correctli": [3, 21, 23, 28, 29, 34, 55, 88, 98, 110, 119], "realiz": [3, 100], "overwrit": [3, 5], "toward": [3, 5, 45, 55, 98, 102, 106, 108, 109, 110, 123, 130, 133, 143], "lst_arrlistin": 3, "lst_arrlistins_rang": 3, "ensur": [3, 29, 62, 64, 115, 122, 130, 131, 133], "unus": [3, 5, 115], "lost": [3, 5, 28, 91], "forev": 3, "someth": [3, 4, 10, 27, 29, 67, 77, 81, 94, 103, 111, 120, 125, 126, 140, 146, 150], "half": [3, 27, 36, 62, 78, 85, 111, 119, 120, 122, 123, 125, 130, 145], "basicd": 3, "remind": [3, 98], "yourself": [3, 5, 36, 55, 62, 64, 65, 83, 106, 130, 140, 146], "neither": [3, 56, 59, 101], "wrong": [3, 77, 98, 123], "guarante": [3, 29, 100, 115, 122, 123, 130, 133, 146], "wors": [3, 114], "applic": [3, 8, 35, 55, 71, 83, 88, 151], "write": [3, 4, 5, 6, 10, 11, 12, 13, 19, 23, 26, 29, 34, 36, 37, 51, 56, 66, 75, 77, 78, 79, 80, 81, 83, 85, 88, 94, 95, 98, 101, 102, 109, 112, 127, 130, 133, 137, 140, 141, 143, 146, 148, 150, 153], "intend": [3, 22, 23, 75, 88, 89], "Will": [3, 111], "sever": [3, 5, 53, 59, 66, 68, 72, 94, 100, 108, 128, 136, 146, 149, 151], "del": [3, 13, 15, 80, 114, 115, 145, 146, 147, 149], "enhanc": 3, "count": [3, 5, 6, 20, 23, 28, 35, 54, 62, 80, 125, 153, 154], "sy": [3, 5, 55, 64], "getsizeof": 3, "1415": 3, "189": 3, "87": 3, "104": [3, 4], "numer": [4, 78, 80, 83, 85, 89, 115, 143], "todai": [4, 81, 88], "cryptographi": 4, "bank": [4, 23, 56, 76, 78, 101], "sign": 4, "secur": [4, 115], "websit": [4, 12, 66], "purchas": [4, 100], "sens": [4, 5, 11, 26, 28, 29, 44, 74, 83, 89, 114, 125], "concern": [4, 10, 19, 36, 65, 79, 91, 127], "decrypt": 4, "peopl": [4, 5, 15, 56, 76, 78, 83, 88, 101, 111], "everydai": [4, 46], "cryptograph": 4, "practic": [4, 5, 55, 79, 115], "faster": [4, 10, 12, 15, 36, 79, 90, 124], "modulo": [4, 22, 80, 115], "b": [4, 5, 10, 11, 22, 23, 29, 57, 60, 64, 66, 74, 83, 120, 130, 140, 141], "earliest": 4, "uryybjbeyq": 4, "guess": [4, 75, 100, 102, 145], "lst_enc": [4, 6], "abcdefghijklmnopqrstuvwxyz": 4, "13": [4, 5, 21, 22, 28, 34, 36, 56, 57, 62, 64, 65, 83, 102, 115, 120, 122, 123, 125, 130, 143, 146], "caesar": [4, 6], "cipher": [4, 6], "rot13": 4, "descript": [4, 80, 81, 83, 89, 91, 102, 110], "letter": [4, 53, 70, 74, 75, 80, 101, 102], "ordin": [4, 115], "around": [4, 27, 60, 62, 91, 96, 101, 111, 130, 137, 145, 150], "wraparound": 4, "accomplish": [4, 10, 28, 35, 70, 80, 150], "symmetr": [4, 60, 111, 130, 141, 146], "symmetri": 4, "pass": [4, 15, 23, 35, 52, 58, 64, 75, 78, 80, 83, 85, 102, 114, 119, 121, 122, 124, 126, 143, 146], "uryybjbeyg": 4, "helloworld": 4, "rotat": [4, 130, 137, 139], "asymmetri": 4, "separ": [4, 81, 88, 91], "subtract": [4, 15, 29, 36, 83, 89, 98, 100, 101, 106, 111, 130, 133, 143], "job": [4, 5, 15, 65, 83, 98, 100], "lst_dec_kei": 4, "modifi": [4, 5, 6, 22, 23, 27, 28, 29, 36, 38, 39, 40, 41, 42, 56, 74, 75, 78, 80, 81, 85, 100, 101, 102, 103, 107, 109, 111, 114, 115, 120, 127, 137, 141, 150], "accept": [4, 6, 22, 75, 83, 101], "specifi": [4, 6, 15, 28, 74, 80, 81, 91, 93, 100, 106, 110, 136], "everyon": [4, 56, 64, 101], "except": [4, 5, 53, 57, 65, 78, 80, 82, 83, 85, 92, 103, 130, 133, 143, 150, 151, 154], "person": [4, 35], "send": [4, 36, 56, 64, 65, 80, 88], "anyon": [4, 64], "steal": 4, "secret": 4, "remaind": [4, 17, 22, 23, 27, 66, 80, 83, 98, 109, 141], "congruent": 4, "shorthand": 4, "equiv": 4, "pmod": 4, "foral": 4, "ac": 4, "bc": [4, 5], "p": [4, 74, 114, 133, 151], "digit": [4, 9, 22, 23, 29, 81, 83, 89, 98, 115, 154], "254": 4, "906": 4, "Not": [4, 28, 70, 80, 83, 94, 125], "precis": [4, 71], "598": 4, "743": 4, "rightmost": [4, 133], "realli": [4, 5, 11, 19, 28, 62, 71, 75, 93, 97, 111, 133, 143, 146], "x": [4, 5, 11, 12, 15, 26, 55, 58, 62, 74, 80, 94, 102, 130, 133, 140], "answer": [4, 5, 19, 22, 23, 27, 29, 36, 37, 74, 83, 94, 100, 108, 110, 119, 122, 123, 126, 127, 136, 140, 145, 150], "appli": [4, 5, 56, 71, 80, 83, 102, 105, 106, 111, 130, 143], "simpler": [4, 81], "smaller": [4, 5, 11, 55, 96, 98, 100, 101, 106, 109, 110, 111, 112, 119, 121, 122, 126, 128, 133], "full": [4, 5, 23, 49, 52, 78, 85, 114, 115, 133, 146], "math": [4, 22, 74, 75, 77, 88, 131], "lfloor": 4, "rfloor": 4, "odd": [4, 22, 33, 74], "eqn": [4, 96], "pow": 4, "floor": 4, "largest": [4, 12, 39, 66, 100, 110, 120, 124, 133, 144, 146], "divis": [4, 5, 22, 29, 80, 98, 123, 133], "achiev": [4, 5], "expon": [4, 11, 56, 81], "modexp": 4, "tmp": 4, "factor": [4, 15, 56, 62, 65, 114, 115, 116, 122, 130, 131, 132, 133, 137, 139, 145], "uncondition": 4, "lst_pow": 4, "fewer": [4, 5, 19, 52, 90, 115], "pure": 4, "ax": 4, "world": [4, 5, 23, 36, 53, 63, 66, 74, 81, 102, 110, 143, 154], "seem": [4, 11, 15, 19, 29, 63, 109, 112, 133, 145], "confus": [4, 29, 38, 109], "select": [4, 5, 6, 60, 62, 64, 74, 89, 100, 101, 111, 114, 116, 117, 118, 123, 129, 154], "shed": 4, "light": 4, "session": [4, 15, 58, 77, 80, 81, 83, 86, 115], "12": [4, 5, 22, 24, 28, 36, 52, 57, 62, 64, 65, 83, 102, 115, 119, 120, 121, 123, 124, 125, 126, 146, 150], "19": [4, 15, 57, 89, 100, 120, 121, 123, 124, 125, 126, 146], "33": [4, 11, 36, 66, 99, 101], "littl": [4, 5, 15, 110, 111, 130], "experi": [4, 12, 13, 15, 17, 19, 23, 34, 90, 102, 114, 136], "seven": [4, 5], "plug": 4, "output": [4, 19, 29, 36, 58, 65, 66, 78, 83, 85, 92, 154], "dot": [4, 57, 80, 102], "repeatedli": [4, 22, 75, 122], "never": [4, 55, 83, 110, 115, 146], "prime": [4, 115], "gcd": [4, 78, 83, 85], "switch": [4, 29, 36, 79, 83, 91], "role": [4, 11, 28, 80, 84, 88, 123], "swap": [4, 103, 120, 126, 133], "000": [4, 10, 11, 12, 15, 19], "year": [4, 10, 69, 79, 81, 110], "ago": 4, "euclid": [4, 83], "straightforward": [4, 34, 125, 146], "lst_gcd1": 4, "elif": [4, 5, 74, 102, 130, 143, 146], "particularli": [4, 111, 123, 150], "rescu": 4, "With": [4, 5, 6, 28, 35, 36, 59, 60, 72, 74, 80, 89, 94, 100, 115, 133, 143, 145, 146, 150, 151], "cut": [4, 36, 100], "revis": [4, 56], "lst_gcd2": 4, "d": [4, 11, 19, 22, 23, 29, 38, 57, 60, 64, 74, 81, 83, 130, 137, 140, 145], "am": 4, "bx": 4, "mod": 4, "satisfi": [4, 74, 98, 100], "finish": [4, 55, 60, 66, 97, 102, 106, 110, 130, 133, 143, 150], "tupl": [4, 5, 19, 21, 55, 72, 74, 80, 81, 82, 83, 87, 103], "lst_gcd3": 4, "ext_gcd": 4, "gcd3_return": 4, "origin": [4, 5, 10, 11, 19, 28, 29, 33, 66, 67, 80, 98, 100, 102, 110, 111, 115, 119, 122, 123, 126, 130, 141, 143, 146, 150], "ai": 4, "rearrang": [4, 10, 131], "substitut": [4, 81, 130], "legal": [4, 52, 60, 62, 69], "normal": [4, 51, 57, 80], "exactli": [4, 5, 10, 12, 15, 29, 46, 52, 53, 56, 60, 69, 71, 101, 102, 109, 115, 125, 130, 150, 151], "extend": [4, 21, 22, 23, 57, 59, 78, 83, 85, 100, 115, 137], "25": [4, 22, 57, 62, 74, 96, 100, 114, 115, 146], "easiest": [4, 5, 27, 28, 49, 59, 63, 64, 69, 83, 133], "invent": [4, 70, 101, 110], "whitfield": 4, "diffi": 4, "martin": 4, "hellman": 4, "independ": [4, 11, 15, 18, 19, 36, 82, 88, 91, 136], "ralph": 4, "merkl": 4, "contribut": 4, "convert": [4, 5, 10, 23, 29, 32, 47, 52, 80, 81, 83, 100, 113, 154], "plaintext": 4, "ciphertext": 4, "vice": 4, "versa": 4, "difficulti": [4, 89, 115], "deriv": [4, 56, 130, 131, 133, 136, 137], "100": [4, 5, 11, 19, 53, 74, 75, 80, 115], "200": [4, 5], "nativ": 4, "fun": [4, 98], "choos": [4, 15, 36, 60, 64, 74, 75, 77, 83, 101, 111, 114, 123, 126, 138, 146], "q": [4, 10, 12, 22, 25, 26, 29, 40, 94, 109, 115, 119, 120, 121, 122, 123, 124, 125, 126, 140, 146], "Then": [4, 5, 23, 29, 53, 58, 100, 106, 110, 111, 119, 123, 143, 150], "product": [4, 83], "randomli": [4, 23, 28, 75, 125, 145], "e": [4, 23, 29, 50, 51, 54, 57, 60, 64, 72, 81, 89, 130, 132, 140, 146], "version": [4, 6, 35, 59, 60, 62, 64, 66, 74, 94, 100, 101, 111, 119, 143, 146, 150, 154], "reveal": [4, 115], "ed": 4, "talk": [4, 12, 65, 102, 109], "coupl": [4, 15, 28, 55, 102, 111, 140, 144], "hello": [4, 23, 25, 74, 81], "ascii": 4, "concaten": [4, 6, 15, 80, 83, 98, 107], "hexadecim": [4, 22, 98], "reliabl": [4, 15], "h": [4, 5, 62, 74, 103, 110, 114, 115, 131, 145], "l": [4, 5, 15, 72, 154], "w": [4, 5, 11, 49, 55, 58, 62, 66, 71, 72, 80, 101], "r": [4, 5, 53, 74, 101, 102, 137], "101": [4, 5, 65, 114], "108": [4, 5, 115], "111": 4, "119": 4, "114": [4, 115], "68": [4, 65, 137], "6c": 4, "6f": 4, "20": [4, 6, 10, 36, 53, 57, 75, 81, 101, 111, 115, 121, 122, 123, 124, 126, 130, 143], "72": 4, "hex": 4, "126207244316550804821666916": 4, "handl": [4, 21, 23, 28, 29, 36, 64, 92, 103, 107, 110, 114, 115, 133, 137, 141, 146, 154], "fine": [4, 22, 27, 53, 100], "short": [4, 101, 102, 111, 114, 116, 120], "email": [4, 56, 65, 88], "1k": 4, "inde": [4, 15, 53], "restrict": [4, 45], "le": [4, 72], "5563": 4, "8191": 4, "45": [4, 11, 23, 27, 101, 111, 122], "566": 4, "533": 4, "bit_length": 4, "eight": [4, 5, 52, 62], "conveni": [4, 80, 89, 93], "68656c": 4, "6841708": 4, "m_1": 4, "m_2": 4, "7106336": 4, "m_3": 4, "7827314": 4, "m_4": 4, "27748": 4, "tricki": [4, 94, 130], "transform": [4, 5, 29, 66, 67, 70, 101, 130], "care": [4, 19, 28, 88, 140], "glue": 4, "45552780": 4, "552": 4, "780": 4, "471": 4, "ext": 4, "_gcd": 4, "1471": 4, "11705609": 4, "33847171": 4, "45566533": 4, "16310024": 4, "recov": [4, 143, 150], "procedur": [4, 75, 82, 88, 91, 102, 106, 120, 128, 130, 132, 143, 150], "sent": [4, 64, 102], "gen_kei": 4, "int": [4, 77, 80, 83], "msg": 4, "chunk_siz": 4, "all_chunk": 4, "str_to_chunk": 4, "msg_chunk": 4, "cipher_chunk": 4, "plain_chunk": 4, "chunks_to_str": 4, "2646697": 4, "33043453": 4, "22810070": 4, "18852325": 4, "34390906": 4, "22805081": 4, "helper": [4, 5, 21, 29, 36, 52, 57, 83, 102, 130, 133, 146], "merg": [4, 5, 114, 116, 117, 118, 123, 129, 154], "lst_chunk": 4, "bytearrai": 4, "msg_byte": 4, "utf": [4, 136], "hex_str": 4, "join": [4, 35, 68], "02x": 4, "num_chunk": 4, "chunk_list": 4, "eval": 4, "0x": 4, "hex_list": 4, "clen": 4, "hstring": 4, "msg_arrai": 4, "fromhex": 4, "decod": 4, "sometim": [4, 11, 19, 28, 43, 45, 46, 80, 83, 88, 89, 91, 106, 108, 115, 120, 126, 146], "format": [4, 5, 6, 28, 29, 32, 82, 83, 92, 154], "comprehens": [4, 15, 74, 82, 100], "significantli": 4, "extra": [4, 10, 19, 64, 74, 115, 119, 122, 125, 137], "prepend": 4, "repetit": [4, 6, 35, 74, 80, 83, 89], "internet": [5, 55, 63, 64, 65, 66], "feel": [5, 79, 100], "slower": [5, 15, 36], "advertis": 5, "196": [5, 65], "560": 5, "banner": 5, "246": 5, "phenomen": 5, "topic": [5, 62, 65, 79, 86, 154], "compos": 5, "compon": [5, 56, 61, 67, 72, 73, 98, 151, 154], "pixel": [5, 7], "arrang": [5, 35, 98, 101, 109, 110, 120], "rectangl": [5, 101], "color": [5, 6, 8, 57, 59, 60, 62, 101, 102, 111], "mixtur": 5, "primari": [5, 65, 109], "red": [5, 102], "green": [5, 102], "blue": [5, 102], "pictur": [5, 6, 91, 111], "physic": [5, 26, 28, 37, 88, 91], "discret": 5, "infinit": [5, 64, 75, 102, 103], "variat": [5, 15, 19, 35, 36, 43, 55, 70, 80, 81, 114, 115, 125, 144], "approxim": [5, 11, 75, 83, 115, 119, 121, 125, 131, 133], "human": [5, 62, 63, 79, 151], "ey": [5, 110], "distinguish": [5, 43, 76, 78, 83, 90], "256": [5, 22], "huge": [5, 66], "artist": [5, 111], "wonderfulli": 5, "downsid": 5, "rapidli": [5, 62], "megapixel": 5, "camera": 5, "megabyt": 5, "255": [5, 65], "im": 5, "28": [5, 36, 71, 75, 122], "white": [5, 51, 54, 57, 59, 60, 62], "bluish": 5, "obtain": [5, 140, 143], "18": [5, 15, 36, 57, 65, 110, 119, 121, 124, 125, 130], "39": [5, 35, 36, 122], "per": [5, 36, 102, 110], "packag": [5, 26, 59], "pillow": 5, "getpixel": 5, "col": [5, 52, 102], "putpixel": 5, "tradit": 5, "forget": [5, 77], "popular": 5, "wide": [5, 31, 63, 66, 74, 81, 83], "web": [5, 23, 46, 65, 66, 88, 136], "axi": 5, "z": [5, 10, 11, 26, 55, 146], "cube": 5, "closest": 5, "black": [5, 57, 59, 88, 102, 106], "dark": 5, "bright": 5, "forth": [5, 22], "simplest": [5, 45, 64, 110], "overal": [5, 15, 55, 98, 128], "stai": [5, 15, 29, 43], "lst_simplequ": 5, "simple_qu": 5, "map": [5, 6, 7, 8, 9, 29, 55, 58, 63, 83, 108, 114, 116, 117, 129, 132, 135, 139, 142, 143, 146, 147, 148, 152, 154], "center": [5, 80, 81], "distinct": [5, 11, 83, 122, 141], "dimens": 5, "pil": 5, "filenam": [5, 53], "open": [5, 21, 23, 34, 53, 102, 114, 115, 116, 121], "36": [5, 66, 74], "42": [5, 65, 100], "bubbl": [5, 55, 71, 114, 116, 117, 118, 124, 129, 154], "jpg": 5, "fig_simplecompar": 5, "grai": [5, 57, 58, 59, 60, 106], "scale": 5, "jpeg": 5, "grass": 5, "nearli": [5, 150], "uniformli": 5, "skin": 5, "tone": 5, "tan": 5, "evenli": [5, 83, 115, 122], "distribut": [5, 115, 145], "throughout": [5, 31, 79], "appear": [5, 19, 21, 24, 28, 29, 33, 34, 36, 43, 45, 80, 83, 94], "plot": [5, 11], "children": [5, 6, 35, 57, 59, 62, 83, 130, 133, 136, 139, 140, 141, 143, 146, 150, 151], "interfac": [5, 82, 88, 91, 140, 143, 146, 147], "abstract": [5, 9, 24, 25, 26, 31, 32, 47, 58, 63, 67, 73, 75, 80, 82, 83, 84, 87, 88, 92, 117, 129, 132, 135, 140, 149, 154], "leaf": [5, 6, 101, 111, 130, 136, 139, 140, 143, 145, 146, 151], "root": [5, 59, 62, 74, 75, 77, 88, 90, 102, 130, 133, 136, 139, 140, 141, 143, 145, 146, 150, 151], "slice": [5, 15, 23, 80, 103, 114, 119, 122], "sub": [5, 143, 150], "parent": [5, 57, 83, 87, 94, 130, 133, 139, 143, 146, 151], "progress": [5, 28, 59, 75, 98, 108, 109], "portion": [5, 11, 80, 115, 120], "eighth": 5, "hierarch": [5, 83, 136, 143], "hierarchi": [5, 23, 76, 78, 82, 83, 85, 87, 136, 143], "overview": [5, 65], "subset": [5, 64, 66, 72], "possibli": [5, 130, 140], "counter": [5, 10, 35, 74], "equal": [5, 10, 19, 28, 29, 36, 64, 65, 74, 77, 80, 82, 83, 94, 100, 115, 122, 123, 131, 133, 151], "target": 5, "deepest": [5, 57, 60, 145], "smallest": [5, 12, 13, 39, 55, 64, 65, 70, 99, 100, 101, 106, 111, 120, 122, 133, 134, 144, 146], "sibl": [5, 133, 139, 151], "encod": [5, 19, 22, 53, 89], "displai": [5, 23, 45, 57, 58, 81, 86, 93, 101], "build_and_displai": 5, "lst_bad": 5, "img": 5, "ot": 5, "nr": [5, 101], "ng": 5, "nb": 5, "line_bldotstrt": 5, "line_bldotend": 5, "line_callotreduc": 5, "line_otfind": 5, "librari": [5, 77, 81], "screen": [5, 45, 102], "interact": [5, 22, 76, 78, 81, 86, 88, 91, 93, 154], "lst_octreedef": 5, "max_level": 5, "num_leav": 5, "all_leav": 5, "otnod": 5, "outer": [5, 106, 146], "max_cub": 5, "line_otreduc": 5, "find_min_cub": 5, "line_otredmerg": 5, "min_count": 5, "maxsiz": [5, 55, 64], "min_cub": 5, "attribut": [5, 93, 141, 146, 154], "depth": [5, 6, 56, 60, 61, 62, 65, 66, 67, 71, 73, 145, 154], "five": [5, 19, 36, 74, 100, 110, 121, 151], "optim": [5, 15, 71, 100], "ignor": [5, 10, 11, 23, 56, 75, 106], "signific": [5, 6, 10, 11, 27, 43, 46, 119], "doesn": 5, "hurt": 5, "qualiti": [5, 36], "travers": [5, 27, 28, 30, 51, 59, 60, 133, 137, 139, 143, 146, 151, 152, 154], "behav": [5, 28, 45, 83], "cousin": [5, 136], "chap_tre": 5, "lst": 5, "octreedef": 5, "minimum": [5, 11, 36, 56, 64, 67, 89, 93, 100, 133, 134, 146], "insid": [5, 34, 51, 60, 65, 75, 81, 88, 111, 136, 137, 144], "inner": [5, 57], "outsid": [5, 77, 102, 132], "nobodi": 5, "softwar": [5, 71], "engin": [5, 66, 88], "lst_otnodedef": 5, "option": [5, 68, 80, 100, 111, 146], "under": [5, 41, 53, 62, 83, 88, 114, 115, 131, 136, 146, 154], "varieti": [5, 31, 43, 63, 74, 80], "circumst": [5, 74, 114, 146], "child": [5, 35, 83, 130, 133, 136, 138, 139, 140, 141, 143, 146, 150], "otre": 5, "lst_otninsert": 5, "went": 5, "line_otci": 5, "compute_index": 5, "rc": 5, "0x4": 5, "gc": 5, "0x2": 5, "0x1": 5, "163": 5, "98": 5, "231": 5, "unfamiliar": 5, "bitwis": 5, "lst_otnfind": 5, "No": [5, 64], "exit": [5, 55, 102, 111], "reach": [5, 22, 28, 34, 35, 36, 57, 60, 62, 64, 96, 103, 106, 114, 121, 130, 146], "maximum": [5, 6, 22, 36, 54, 119, 121, 130, 145, 151], "21": [5, 36, 57, 80, 96, 100, 122, 130], "nonexist": [5, 88], "aspect": [5, 79, 83, 93, 146], "subsum": 5, "fulli": [5, 29, 30, 52, 88, 96, 143, 150], "enclos": [5, 29, 80], "effect": [5, 28, 29, 59, 60, 108, 119, 143], "weight": [5, 48, 49, 55, 56, 58, 61, 64, 65, 67, 68, 72, 101, 114, 115], "whose": [5, 15, 28, 43, 46], "122": [5, 36], "167": 5, "183": 5, "123": 5, "126": 5, "113": [5, 115], "166": 5, "id": [5, 66, 75, 80], "112": [5, 53, 65], "115": 5, "168": 5, "o_tre": 5, "remov": [5, 21, 22, 23, 24, 25, 27, 28, 29, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 50, 59, 64, 71, 74, 80, 98, 122, 133, 134, 144, 146, 150], "faithfulli": 5, "preserv": [5, 29, 39, 130, 133, 146], "fig_otquantcompar": 5, "compress": 5, "cosin": 5, "huffman": 5, "grasp": [5, 111], "encourag": [5, 130], "dither": [5, 7], "blend": 5, "realist": [5, 90, 101, 111], "trick": [5, 64], "newspap": [5, 78, 85], "ink": [5, 111], "own": [5, 10, 15, 21, 59, 75, 77, 83, 87, 90, 146], "notion": [6, 27, 29, 31, 84], "perfectli": [6, 132, 145], "draw": [6, 56, 99, 101, 102, 106, 111, 137, 140], "quantiz": [6, 7, 9, 154], "174": 6, "145": 6, "229": 6, "92": 6, "85": 6, "atc": 6, "atccat": 6, "__delitem__": [6, 146], "__iter__": [6, 58, 146], "__contains__": [6, 58, 114, 146], "boolean": [6, 10, 28, 34, 36, 38, 39, 40, 41, 42, 80, 83, 125, 137], "improv": [6, 9, 13, 75, 93, 100, 114, 115, 118, 122, 124, 125, 126, 128, 130, 154], "disk": [6, 99, 101, 110], "wrote": [6, 150], "finit": [7, 9, 88, 154], "knuth": [7, 9, 154], "morri": [7, 9, 154], "pratt": [7, 9, 154], "revisit": [9, 154], "modular": [9, 154], "theorem": [9, 75, 154], "exponenti": [9, 11, 14, 62, 80, 154], "greatest": [9, 83, 154], "divisor": [9, 83, 154], "invers": [9, 145, 154], "quick": [9, 117, 145, 154], "review": [9, 79, 80, 84, 92, 102, 147, 154], "biolog": [9, 136, 154], "state": [9, 10, 19, 23, 28, 55, 57, 59, 65, 74, 75, 80, 83, 88, 96, 98, 108, 109, 115, 146, 154], "automata": [9, 154], "magnitud": [10, 11, 14], "classic": [10, 33, 69, 100, 144], "heart": 10, "earth": 10, "typhon": 10, "sake": 10, "simplic": [10, 25, 26, 31, 110], "lowercas": [10, 80], "goal": [10, 11, 15, 17, 19, 51, 57, 60, 75, 86, 88, 100, 105, 110, 115, 123], "immut": [10, 80, 83, 103], "activecod": [10, 19, 21, 22, 26, 27, 28, 29, 33, 34, 35, 36, 74, 80, 83, 94, 96, 98, 100, 102, 106, 107, 109, 110, 111, 115, 120, 121, 122, 123, 124, 126, 133, 134, 140, 141, 143], "s1": 10, "s2": 10, "visit": [10, 28, 57, 60, 62, 69, 102, 115, 125, 146, 150], "written": [10, 11, 29, 31, 34, 39, 80, 83, 100, 140, 146, 150], "glanc": [10, 19, 126, 145, 146], "tempt": 10, "tri": [10, 15, 45, 75, 102, 110, 115], "exhaust": [10, 60, 79, 115], "candid": [10, 98], "duplic": [10, 23, 31, 74, 80, 122, 137, 146], "432": 10, "902": 10, "008": 10, "176": 10, "640": 10, "146": 10, "816": 10, "596": 10, "ident": [10, 15, 27, 57, 110, 130, 150], "nest": [10, 11, 21, 23, 34, 51, 58, 74, 136], "That": [10, 15, 28, 29, 36, 53, 66, 81, 111, 122, 136, 137, 146], "linear": [10, 11, 13, 14, 30, 32, 37, 44, 47, 52, 71, 115, 116, 125, 136, 154], "sacrif": [10, 15, 130], "gain": [10, 83, 97, 115, 119, 123, 125, 132], "occas": [10, 127], "decis": [10, 26, 57, 62, 89, 138, 146], "trade": [10, 15, 68, 90, 123], "resourc": [10, 19, 86, 90, 128], "fragment": [10, 11, 13, 74, 77, 80, 83, 120], "character": [11, 19, 141], "execut": [11, 15, 16, 19, 29, 45, 50, 51, 54, 74, 77, 80, 81, 89, 103, 114, 122, 124, 146], "quantifi": 11, "unit": [11, 111, 125], "complic": [11, 130, 137, 145, 146], "statement": [11, 15, 19, 28, 34, 57, 68, 74, 77, 79, 80, 81, 83, 88, 89, 93, 102, 103, 107, 111, 115, 120, 122, 130, 137, 141, 143, 146, 147], "sum_of_n": [11, 19], "_sum": [11, 96], "prefer": [11, 23, 122], "exact": [11, 19, 81, 83, 100, 106, 135, 146], "tend": [11, 36, 62, 79, 126], "overpow": 11, "rest": [11, 28, 64, 79, 81, 96, 106, 110, 122, 133, 136, 143, 150], "increas": [11, 15, 19, 36, 111, 114, 115, 130], "fastest": 11, "certainli": [11, 19, 89], "accur": [11, 15], "5n": 11, "27n": 11, "1005": 11, "insignific": [11, 125], "plai": [11, 28, 35, 69, 78, 84, 85, 88, 101, 111], "focu": [11, 91, 109], "coeffici": [11, 101, 125], "especi": [11, 19, 36, 83, 93], "poorli": 11, "wherea": [11, 15, 24, 57, 60, 83, 137], "extraordinarili": 11, "extrem": [11, 66, 83, 100], "misl": 11, "logarithm": [11, 14, 115, 119, 133], "quadrat": [11, 14, 114, 115, 116], "cubic": [11, 14], "relationship": [11, 21, 23, 63, 70, 72, 82, 83, 115, 125, 133, 145, 146, 151], "instruct": [11, 19, 77, 79, 81, 88, 111, 150], "v": [11, 49, 50, 51, 54, 55, 58, 62, 64, 66, 71, 72, 80], "fourth": [11, 107, 110], "few": [11, 29, 49, 80, 96, 115, 120, 123, 133, 136, 143, 146], "quickli": [11, 45, 57, 80, 115, 119], "overtak": 11, "book": [12, 17, 26, 46, 100, 110, 133, 150, 153], "side": [12, 35, 56, 62, 80, 81, 93, 94, 98, 101, 106, 111, 123, 130, 131], "rare": [12, 150], "degener": 12, "ll": [12, 15, 57, 75, 79, 93], "pick": [12, 114, 123], "timeit": [12, 15], "dict": 12, "10_000": 12, "1_000_001": 12, "20_000": 12, "timer": [12, 15, 36], "lst_time": 12, "1000": [12, 15, 75], "dict_tim": 12, "3f": 12, "89": [12, 74, 137], "990": 12, "603": 12, "linearli": 12, "verifi": [12, 13, 15, 58, 115], "assert": [12, 133], "took": [12, 36], "004": 12, "millisecond": [12, 15], "evolv": 12, "scene": [12, 65, 94], "latest": [12, 64], "wiki": 12, "page": [12, 36, 46, 65, 66, 136, 154], "devis": [13, 114], "benchmark": [14, 16, 19, 23, 26, 114, 121, 124], "brute": [14, 20, 64, 154], "forc": [14, 20, 29, 64, 80, 115, 154], "impact": [15, 16, 19, 23, 115], "fast": [15, 35, 62, 100, 115], "help": [15, 19, 23, 29, 60, 62, 64, 66, 71, 72, 74, 79, 81, 83, 90, 97, 100, 101, 102, 106, 111, 119, 140, 143, 146], "favor": 15, "matter": [15, 19, 26, 29, 83, 111, 122, 125, 134, 136, 146], "test1": 15, "test2": 15, "test3": 15, "test4": 15, "captur": 15, "cross": [15, 56, 101], "platform": [15, 79], "measur": [15, 18, 19, 128], "environ": [15, 75], "mechan": [15, 23, 26, 31, 83, 88], "across": [15, 19, 56, 57, 62, 101], "default": [15, 74, 80, 81, 83, 94, 146], "microsecond": 15, "t1": 15, "2f": [15, 36, 81], "t2": 15, "t3": 15, "t4": 15, "07": [15, 36], "setup": [15, 27], "strang": [15, 19, 29], "familiar": [15, 19, 65, 80, 86, 88, 115, 122, 131], "usual": [15, 28, 77, 80, 91, 94, 99, 100, 101, 109, 112, 143], "namespac": 15, "unclutt": 15, "strai": 15, "interfer": 15, "unforeseen": 15, "clear": [15, 80, 98, 143], "twice": [15, 19, 29, 36], "overhead": [15, 123, 128], "meaning": [15, 39], "concret": [15, 98], "carefulli": [15, 27, 29, 57, 146, 150], "wonder": [15, 53, 63, 110, 150, 154], "anywher": [15, 28], "middl": [15, 27, 28, 29, 45, 52, 62, 102, 106, 110, 114, 115, 118, 119, 123, 133], "li": [15, 64, 136], "front": [15, 24, 25, 29, 33, 35, 38, 40, 43, 44, 45, 55, 59, 64, 144, 150], "closer": [15, 29, 46, 126, 131], "silli": 15, "thought": [15, 43, 88, 115], "nk": 15, "00014": 15, "09779": 15, "05": [15, 36], "pop_zero": 15, "pop_end": 15, "2000000": 15, "5f": 15, "valid": [15, 100, 153], "claim": [15, 131], "1_000_000": 15, "100_000_001": 15, "pop_zero_t": 15, "pop_end_t": 15, "10d": 15, "flat": 15, "among": [15, 35, 63], "slow": [15, 36], "minim": [15, 64, 115], "statist": 15, "gather": 15, "enough": [15, 42, 60, 65, 106, 109, 110, 112, 119, 130], "benefit": [17, 115, 119, 128, 132], "certain": [17, 24, 35, 36, 74, 88, 100, 102], "classifi": [18, 74, 146], "scienc": [19, 21, 22, 34, 36, 43, 45, 63, 66, 74, 79, 84, 87, 89, 92, 100, 128, 136, 154], "student": [19, 36, 45, 63, 76, 78, 102, 115, 153], "ones": [19, 22, 23, 46], "desir": [19, 29, 83], "programm": [19, 31, 74, 77, 83, 87, 88, 91, 100, 109, 111], "accumul": [19, 96, 107], "inspect": 19, "poor": [19, 145], "assist": [19, 21, 29, 37, 89, 123], "readabl": 19, "criteria": [19, 74, 100, 114], "introductori": 19, "strive": 19, "dictat": [19, 29], "clock": 19, "fraction": [19, 51, 62, 78, 80, 85, 92, 100, 154], "sum_of_n_2": 19, "the_sum": [19, 80, 96], "embed": 19, "invoc": [19, 75, 83, 119, 122, 126], "7f": 19, "10000": 19, "50005000": 19, "0018950": 19, "0018620": 19, "0019171": 19, "0019162": 19, "0019360": 19, "0019": 19, "100000": 19, "5000050000": 19, "0199420": 19, "0180972": 19, "0194821": 19, "0178988": 19, "0188949": 19, "1000000": 19, "500000500000": 19, "1948988": 19, "1850290": 19, "1809771": 19, "1729250": 19, "1646299": 19, "sum_of_n_3": 19, "00000095": 19, "00000191": 19, "50000005000000": 19, "5000000050000000": 19, "00000119": 19, "record": [19, 154], "shorter": [19, 36, 59, 109, 133], "hardli": 19, "intuit": 19, "ran": 19, "older": [19, 36, 46], "machin": [19, 23, 79, 88, 100], "dai": [19, 35, 36, 62, 65, 110, 136], "compil": 19, "judg": 19, "alon": 19, "anagram": [20, 115, 128, 154], "detect": [20, 29, 77, 98, 154], "summari": [20, 47, 73, 80, 92, 113, 125, 129, 152, 154], "parenthes": [21, 23, 29, 30, 47, 75, 80, 96, 137, 143, 150, 154], "frequent": [21, 77], "squar": [21, 23, 34, 52, 60, 62, 69, 74, 75, 77, 80, 88, 90, 93, 102, 116], "bracket": [21, 23, 80, 93], "curli": [21, 80], "brace": [21, 80], "properli": [21, 23, 28, 34, 58, 78, 80, 83, 85, 133, 137, 146], "checker": [21, 47, 154], "wait": [21, 29, 34, 35, 36, 45, 62, 111], "fals": [21, 25, 27, 28, 34, 38, 40, 41, 60, 68, 74, 80, 83, 94, 98, 102, 115, 127, 134, 146, 147], "expos": [22, 90, 100, 108], "awkward": 22, "233_": 22, "equival": [22, 26, 29, 35, 98, 143], "11101001_": 22, "times10": 22, "times2": 22, "convers": [22, 23, 47, 93, 107, 143, 154], "divide_by_2": 22, "extract": [22, 80, 115, 122], "octal": 22, "233": 22, "351_": 22, "e9_": 22, "times8": 22, "times16": 22, "base_convert": 22, "onto": [22, 29, 65, 71, 107], "slight": [22, 125], "ten": [22, 23, 100], "along": [22, 28, 29, 59, 65, 81, 98, 100, 102, 114, 119, 120, 122, 133, 143, 146, 150], "incorrect": [22, 77, 78, 85, 94, 150], "hexidecim": 22, "baseconvert": 22, "infix": [23, 30, 32, 37, 47, 154], "postfix": [23, 30, 32, 37, 47, 154], "evalu": [23, 28, 32, 37, 47, 74, 75, 80, 86, 90, 94, 128, 137, 143, 148, 150, 154], "operand": [23, 29, 80, 83, 143], "queue": [23, 24, 30, 32, 33, 37, 43, 44, 47, 50, 51, 55, 57, 59, 60, 64, 136, 139, 142, 148, 152, 154], "adt": [23, 32, 36, 68, 82, 91, 114, 135, 147, 148, 152, 154], "rear": [23, 24, 25, 33, 38, 40, 43, 44, 45], "carri": [23, 88, 127], "token": [23, 29, 143], "hot": [23, 47, 71, 154], "potato": [23, 47, 154], "chosen": [23, 26, 36, 57, 108, 114, 115, 126], "predict": [23, 102], "life": [23, 37], "formul": [23, 98, 105], "car": [23, 88], "wash": 23, "custom": [23, 46, 100, 153], "groceri": [23, 45], "airplan": 23, "land": 23, "runwai": 23, "teller": 23, "Be": [23, 28, 29], "assumpt": [23, 36, 53, 125], "scenario": [23, 90, 125, 145], "radix": 23, "util": [23, 26, 62, 91, 115], "bin": 23, "main": [23, 47, 66, 69, 71, 80, 100, 154], "act": [23, 33, 35, 144], "arriv": [23, 36, 65, 100], "534": 23, "667": 23, "hundr": [23, 64], "hypertext": 23, "markup": [23, 136], "html": [23, 136], "tag": [23, 136], "document": [23, 86, 88, 93], "titl": [23, 136], "h1": [23, 136], "palindrom": [23, 30, 47, 98, 154], "pi": 23, "backward": [23, 28, 33, 78, 83, 85, 96, 98, 100, 111, 120, 121, 122, 123, 124, 126], "blank": [23, 81], "unorderedlist": [23, 47, 154], "rewrit": [23, 96, 131, 150], "__str__": [23, 28, 58, 78, 83, 85, 93], "unord": [23, 27, 31, 39, 47, 80, 115, 118, 154], "inherit": [23, 57, 82, 92, 154], "dequ": [23, 30, 32, 33, 37, 43, 47, 154], "singli": 23, "doubli": 23, "preced": [23, 29, 30, 71, 80, 136, 143], "enqueu": [23, 25, 35, 36, 37, 40, 59, 137, 144], "dequeu": [23, 25, 35, 36, 37, 40, 51, 59, 137, 144], "_item": [24, 25, 115], "bool": [24, 25, 80, 146], "add_front": [24, 37, 38], "add_rear": [24, 37, 38], "remove_front": [24, 37, 38], "remove_rear": [24, 37, 38], "codelen": [24, 25, 26, 119, 125], "action": [24, 25, 26, 35, 57, 60, 74, 78, 80, 83, 85, 94, 100, 102, 115, 120, 143, 146, 150], "dog": [25, 38, 40, 41, 80, 115], "seri": [25, 56, 83, 96, 98, 101, 133], "attent": [26, 34, 59, 66, 83, 91, 122, 127, 146], "orient": [26, 80, 86, 87, 92, 141, 154], "creation": [26, 89], "primit": [26, 46, 89, 91], "click": [26, 46, 111], "button": [26, 46], "pythonds3": [26, 36, 52, 53, 55, 57, 59, 60, 64], "download": [26, 102, 146], "accord": [26, 35, 81, 100, 115, 123, 146], "github": 26, "instal": [26, 138, 140, 146], "command": [26, 65], "python3": 26, "pip": 26, "suffer": 26, "peek": [26, 41], "rev_str": 26, "my_str": 26, "ideal": 27, "orderedlist": [27, 39], "deal": [27, 28, 77, 115], "regard": [27, 62, 91], "modif": [27, 28, 37, 60, 78, 85, 114, 115, 120, 150], "soon": [27, 110], "former": 27, "incorpor": [27, 81, 100], "belong": [27, 64, 115, 120, 123, 126], "wish": [27, 28, 60, 102], "saw": [27, 98, 115], "extern": [27, 28, 78, 83, 85, 146, 150], "thu": [27, 55, 64, 144], "contigu": [28, 126], "explicit": [28, 83], "constrain": 28, "Their": [28, 110], "placement": [28, 29, 80, 135], "similarli": [28, 80, 83, 119, 133, 146], "suppli": [28, 81], "hidden": [28, 75, 88, 91], "node_data": 28, "get_data": 28, "set_data": 28, "get_next": 28, "set_next": 28, "node_next": 28, "str": [28, 58, 80, 81, 83, 150], "ground": 28, "standard": [28, 63, 74, 80, 83, 87, 94, 106, 111, 126, 140], "my_list": [28, 80], "resid": [28, 83, 115], "attach": [28, 36, 83], "systemat": [28, 59, 100, 102, 115, 128], "invok": [28, 75, 80, 83, 87, 122, 123], "valueerror": [28, 77, 143], "marker": [28, 75, 123], "late": 28, "dilemma": [28, 130], "travel": [28, 65], "crucial": [28, 59, 96], "inchworm": 28, "catch": [28, 77], "movement": [28, 101], "said": [28, 83, 98, 110, 111, 126, 130, 141, 151], "someplac": 28, "ii": 28, "ambigu": [29, 71], "presenc": [29, 115], "troublesom": 29, "rewritten": 29, "clearer": 29, "don": [29, 57, 102], "hoc": 29, "parenthesi": [29, 34, 57, 61, 143, 150], "subexpress": 29, "clue": [29, 34], "virtu": 29, "recent": [29, 34, 45, 46, 77, 80, 83], "delimit": [29, 31, 80], "op_stack": 29, "split": [29, 80, 116, 118, 119, 122, 123], "prec": 29, "arbitrarili": [29, 36, 106], "receiv": [29, 64, 78, 85, 88], "shell": [29, 91, 93, 114, 116, 117, 118, 129, 146, 154], "infix_to_postfix": 29, "encount": [29, 57, 115, 121, 130], "unsur": 29, "30": [29, 45, 66, 122, 143, 146], "slightli": [29, 120, 121, 130, 146], "shrink": 29, "commut": 29, "operand_stack": 29, "do_math": 29, "intermedi": [29, 110], "hint": [29, 101, 110], "lifo": [30, 37, 41, 44, 46], "fifo": [30, 35, 37, 40, 44, 45], "exam": 31, "score": [31, 74, 75], "comma": [31, 80], "radar": [33, 98], "toot": 33, "madam": [33, 98], "ordinari": 33, "dual": 33, "doubt": [34, 79], "lisp": 34, "defun": 34, "notori": 34, "lot": [34, 64, 65, 93, 100, 130, 144], "differenti": [34, 80], "unbalanc": [34, 130, 131, 132, 145], "challeng": [34, 74, 90, 146], "agre": [34, 110, 136], "par_check": 34, "symbol_str": 34, "manner": [35, 36, 83, 94, 115], "game": [35, 64, 78, 85, 88], "neighbor": [35, 55, 57, 58, 59, 60, 64], "modern": [35, 86], "famou": 35, "josephu": 35, "legend": [35, 110], "centuri": 35, "historian": 35, "flaviu": 35, "stori": [35, 109], "told": 35, "jewish": 35, "revolt": 35, "rome": 35, "comrad": 35, "held": [35, 80], "roman": [35, 80], "cave": 35, "defeat": [35, 115], "immin": 35, "die": [35, 93, 94], "slave": 35, "man": 35, "proceed": 35, "clockwis": 35, "kill": [35, 102], "seventh": 35, "mathematician": [35, 69, 96, 110], "he": [35, 102, 110], "instantli": 35, "ought": 35, "sit": [35, 46], "came": [35, 43], "himself": 35, "escap": [35, 96], "hors": 35, "num": [35, 36, 83, 96, 100], "perman": 35, "cycl": [35, 61, 64, 72], "hot_potato": 35, "susan": 35, "load": [35, 36, 114, 115, 116], "bill": [35, 100], "share": 36, "printer": [36, 45], "configur": [36, 88, 110], "laboratori": [36, 45, 65], "lab": 36, "hour": [36, 62], "minut": [36, 96], "draft": 36, "rate": [36, 110], "model": [36, 83, 91, 97, 111, 150], "submit": 36, "paper": [36, 99, 101, 110], "inclus": 36, "chanc": [36, 115, 125], "ratio": [36, 131], "twenti": 36, "180": 36, "60": [36, 74], "timestamp": 36, "current_second": 36, "busi": 36, "printqueu": 36, "tick": 36, "decrement": [36, 123], "idl": 36, "ppm": 36, "page_r": 36, "current_task": 36, "time_remain": 36, "start_next": 36, "new_task": 36, "get_pag": 36, "wait_tim": 36, "spent": [36, 79], "get_stamp": 36, "current_tim": 36, "print_queu": 36, "new_print_task": 36, "num_second": 36, "pages_per_minut": 36, "lab_print": 36, "waiting_tim": 36, "nexttask": 36, "average_wait": 36, "sec": 36, "3d": 36, "181": 36, "3600": 36, "trend": 36, "adjust": [36, 55, 64, 130], "period": 36, "600": 36, "trial": 36, "165": [36, 65], "38": 36, "95": 36, "99": [36, 80, 114, 115], "74": [36, 65], "239": 36, "61": [36, 137], "75": [36, 65, 80, 114], "48": 36, "376": 36, "09": 36, "frame": [36, 104, 113, 154], "29": [36, 71, 122], "00": [36, 81], "55": [36, 115, 122, 124], "67": [36, 75, 100], "46": [36, 62, 115, 122], "22": [36, 57, 143], "variou": [36, 74, 81, 83, 88, 148], "persuad": 36, "afford": 36, "enrol": 36, "saturdai": 36, "robust": 36, "reflect": 36, "parametert": 36, "translat": [37, 77, 111], "hybrid": [37, 44], "cat": [38, 80, 115], "ascend": [39, 125], "occupi": [39, 102, 115], "descend": [39, 143, 151], "po": [39, 42, 115], "concept": [43, 86, 109, 115, 130], "bottom": [43, 71, 83, 102, 106, 110, 133, 136, 145], "rise": [43, 103, 125], "unrestrict": 44, "enforc": [44, 74, 131], "particip": [45, 89], "movi": [45, 111], "checkout": 45, "cafeteria": [45, 46], "trai": [45, 46], "jump": 45, "network": [45, 64, 65, 79, 88, 136], "control": [45, 55, 81, 83, 86, 88, 89, 92, 93, 154], "schedul": [45, 59, 71, 146], "queu": 45, "user": [45, 75, 77, 78, 80, 81, 83, 85, 88, 91, 93], "keystrok": 45, "moment": 45, "buffer": 45, "opposit": [46, 83], "newer": 46, "plate": 46, "uncov": 46, "desk": 46, "cover": [46, 74, 75, 115], "visibl": 46, "desktop": 46, "browser": [46, 65, 75], "navig": [46, 79, 102], "url": 46, "spars": [48, 49, 52, 53], "connect": [48, 49, 52, 53, 56, 57, 58, 61, 63, 64, 65, 67, 68, 72, 73, 83, 102, 106, 151, 154], "master": [48, 58], "compactli": 48, "cell": [49, 53], "intersect": [49, 80], "otic": 49, "involv": [49, 83, 98, 100, 112, 130, 151], "prioriti": [50, 55, 64, 139, 142, 148, 152, 154], "change_prior": [50, 55, 64], "examin": [51, 55, 59, 62, 64, 102, 119, 130, 138, 140, 143, 150], "chain": [51, 114, 115, 116], "build_graph": [51, 53, 56], "chessboard": [52, 60, 69], "board": [52, 56, 60, 62, 69], "knight_graph": 52, "gen_legal_mov": 52, "board_siz": 52, "kt_graph": 52, "node_id": 52, "new_posit": 52, "row2": 52, "col2": 52, "other_node_id": 52, "add_edg": [52, 53, 58, 68], "new_mov": 52, "move_offset": 52, "r_off": 52, "c_off": 52, "336": 52, "096": 52, "adjac": [52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 68, 73, 120, 154], "matrix": [52, 53, 56, 61, 68, 73, 154], "percent": 52, "puzzl": [53, 69, 70, 78, 85, 110], "fool": [53, 59, 70], "sage": [53, 59, 70], "undirect": 53, "unweight": [53, 67, 72], "110": 53, "roughli": [53, 133], "speak": 53, "bucket": 53, "_": [53, 80, 133], "wildcard": 53, "pope": 53, "pop_": 53, "scheme": [53, 100, 114], "the_graph": 53, "utf8": 53, "file_in": 53, "all_word": 53, "readlin": [53, 102], "strip": 53, "enumer": [53, 102], "setdefault": 53, "similar_word": 53, "word1": 53, "word2": 53, "53": 53, "286": 53, "df": [54, 56, 57, 60, 61, 66, 71], "dfs_visit": [54, 57], "shortest": [55, 56, 57, 59, 61, 63, 67, 73, 100, 111, 154], "breadth": [55, 56, 57, 60, 61, 65, 67, 70, 73, 154], "distanc": [55, 59, 64, 72, 101], "theoret": 55, "infin": [55, 64], "predecessor": [55, 57, 59, 64], "priorityqueu": [55, 64, 137], "pq": [55, 64], "heapifi": [55, 64, 133, 134, 137], "current_v": [55, 64], "next_v": [55, 64], "get_neighbor": [55, 57, 58, 59, 60, 62, 64], "new_dist": [55, 64], "heap": [55, 137, 139, 142, 148, 152, 154], "walk": [55, 100, 143], "guid": [55, 146], "obvious": 55, "cheaper": 55, "accordingli": 55, "convinc": [55, 64, 130, 146], "neg": [55, 74, 77, 78, 83, 85], "rout": [55, 65], "router": [55, 64, 65], "vector": 55, "drawn": [56, 106, 111], "shortansw": 56, "bigo": 56, "topolog": [56, 61, 67, 73, 154], "bigotwo": 56, "strongli": [56, 61, 67, 73, 154], "dijkstra": [56, 64, 67, 73, 154], "prim": [56, 73, 154], "span": [56, 61, 67, 73, 154], "branch": [56, 57, 60, 62, 101, 103, 111, 136], "knight": [56, 57, 73, 154], "tour": [56, 57, 73, 154], "suitabl": 56, "transpos": [56, 66], "maze": [56, 113, 154], "jug": [56, 101], "gallon": [56, 101], "pump": [56, 101], "water": [56, 101], "missionari": [56, 101], "cannib": [56, 101], "river": [56, 101], "boat": [56, 101], "journei": [56, 101], "outnumb": [56, 101], "eaten": [56, 101], "safe": [56, 64, 101], "Its": [57, 133], "deepli": [57, 60], "forest": [57, 61, 66, 71], "discoveri": 57, "chose": 57, "unusu": 57, "dfsgraph": 57, "super": [57, 83], "start_vertex": 57, "discovery_tim": 57, "next_vertex": 57, "closing_tim": 57, "bf": [57, 59, 61], "deeper": [57, 60, 91, 151], "implicit": 57, "23": [57, 62, 77, 89, 143, 146], "bring": [57, 102, 130, 132, 137, 150], "set_neighbor": 58, "__repr__": [58, 78, 85, 93], "get_kei": 58, "box": [58, 75, 81, 88, 98], "get_vertic": [58, 68], "set_vertex": 58, "get_vertex": [58, 59, 68], "from_vert": [58, 68], "to_vert": [58, 68], "ladder": [59, 73, 154], "prototyp": 59, "remark": 59, "visual": [59, 62, 102, 113, 154], "grandchildren": 59, "undiscov": 59, "vert_queu": 59, "getter": 59, "paint": 59, "unexplor": 59, "pool": [59, 70], "foil": 59, "foul": 59, "cool": 59, "expans": 59, "poll": [59, 70], "comfort": 59, "arrow": [59, 100, 136], "starting_vertex": 59, "forbid": 60, "63": [60, 100], "dead": [60, 69, 102], "knight_tour": [60, 62], "statu": [60, 102], "prepar": [60, 64], "backtrack": 60, "unvisit": [60, 62], "implicitli": [60, 110], "elect": 60, "circular": [60, 103, 109], "acycl": [61, 64, 71, 72], "scc": [61, 66], "digraph": [61, 72], "uncontrol": [61, 64], "flood": [61, 64], "dag": [61, 72], "sensit": [62, 80], "chess": [62, 69], "estim": 62, "deep": [62, 82, 83, 102, 136], "regular": [62, 132], "won": 62, "luckili": [62, 115, 119], "order_by_avail": 62, "critic": [62, 122, 151], "fewest": [62, 100], "counterproduct": 62, "res_list": 62, "earli": [62, 120, 141], "hop": [62, 65], "heurist": 62, "artifici": 62, "intellig": 62, "warnsdorff": 62, "von": 62, "publish": [62, 154], "1823": 62, "lambda": [62, 115], "road": [63, 72], "airlin": 63, "flight": 63, "citi": [63, 72, 80, 128], "site": 63, "quickest": 63, "prerequisit": [63, 72], "interdepend": 63, "luther": [63, 65, 66, 136, 154], "colleg": [63, 65, 66, 76, 78, 102, 136, 154], "onlin": [64, 78, 85, 154], "radio": 64, "face": [64, 94], "transfer": [64, 65, 110], "listen": 64, "player": [64, 69], "tune": 64, "reconstruct": 64, "song": 64, "broadcast": [64, 67], "appreci": 64, "propos": 64, "host": [64, 65, 66], "cheapest": 64, "traffic": [64, 65], "live": [64, 98], "ttl": 64, "distant": 64, "unnecessari": [64, 78, 85], "formal": [64, 66, 72, 75, 83, 94, 108, 132, 140, 151], "simplifi": [64, 66, 67, 130, 136, 143], "highlight": 64, "exclud": [64, 146], "famili": [64, 83, 114], "greedi": [64, 100, 104], "sampl": [64, 101], "graft": 64, "surf": [65, 88], "campu": [65, 76, 78], "flow": [65, 83], "commun": [65, 88], "request": [65, 83, 146], "server": 65, "local": [65, 78, 85, 107], "cloud": 65, "tracerout": 65, "mail": 65, "univers": 65, "minnesota": 65, "volum": 65, "surpris": 65, "192": 65, "203": 65, "hilda": 65, "edu": [65, 136], "216": 65, "159": 65, "icn": 65, "ether": 65, "ia": 65, "207": 65, "237": 65, "137": 65, "isp": 65, "209": 65, "56": [65, 115], "p3": 65, "hsa1": 65, "chi1": 65, "bbnplanet": 65, "net": 65, "202": 65, "ae": 65, "bbr2": 65, "chicago1": 65, "level3": 65, "97": [65, 115], "mpls2": 65, "minneapolis1": 65, "214": 65, "ge": [65, 131], "hsa2": 65, "p1": 65, "226": 65, "telecomb": 65, "br": [65, 120, 121, 122], "01": [65, 115], "v4002": 65, "ggnet": 65, "umn": 65, "152": 65, "37": [65, 66, 100], "bn": 65, "vlan": 65, "3000": 65, "128": 65, "58": 65, "cn": 65, "710": 65, "80": [65, 74], "158": 65, "baldrick": 65, "129": 65, "88": [65, 137], "631": 65, "interconnect": [65, 66], "sound": [65, 98, 102, 110], "googl": 66, "bing": 66, "exploit": 66, "treat": [66, 110, 115, 141], "hyperlink": 66, "home": 66, "awai": [66, 80, 100], "iowa": [66, 80], "liber": 66, "art": [66, 101], "conclud": [66, 149], "cluster": [66, 115, 116], "highli": 66, "tackl": 66, "transposit": 66, "35": [66, 69], "enabl": [67, 136, 148], "isol": 68, "add_vertex": 68, "vert": 68, "vert_kei": 68, "fascin": 69, "305": 69, "brain": 69, "gradual": 70, "1878": 70, "lewi": 70, "carrol": 70, "author": 70, "alic": 70, "wonderland": 70, "pose": 70, "pole": [70, 110], "pale": 70, "sale": 70, "surprisingli": [70, 150], "stir": 71, "batch": 71, "pancak": 71, "recip": 71, "egg": 71, "cup": [71, 93], "tablespoon": 71, "oil": 71, "milk": 71, "heat": 71, "griddl": 71, "ingredi": 71, "spoon": 71, "cook": 71, "golden": [71, 131], "brown": 71, "eat": 71, "syrup": 71, "project": 71, "chart": 71, "databas": [71, 136], "queri": [71, 78, 83, 85, 127], "matric": 71, "adapt": 71, "payload": [72, 137, 146, 151], "arc": 72, "subgraph": 72, "v_0": 72, "v_1": 72, "v_2": 72, "v_3": 72, "v_4": 72, "v_5": 72, "nine": [72, 115, 126], "w_1": 72, "w_2": 72, "w_n": 72, "w_i": 72, "w_": 72, "phrase": [74, 83, 98], "mandatori": 74, "indent": 74, "purpos": [74, 75, 88, 103, 115, 127, 132], "compound": [74, 103], "conjunct": [74, 80, 81], "member": [74, 114], "sorri": 74, "sqrt": [74, 75, 77, 88, 90, 131], "claus": [74, 96, 143], "90": [74, 102, 111, 114], "70": [74, 146], "grade": 74, "earn": 74, "syntact": [74, 83], "syntax": [74, 75, 77, 80], "keyword": 74, "elimin": [74, 119], "absolut": [74, 77], "regardless": [74, 120], "perfect": [74, 114, 115, 116], "sq_list": 74, "49": [74, 122], "81": [74, 75], "ch": [74, 102], "aeiou": 74, "redo": [74, 100], "newton": 75, "raphson": 75, "isaac": 75, "joseph": 75, "converg": [75, 123], "newguess": 75, "oldguess": 75, "comment": 75, "square_root": 75, "4563": 75, "54998149518622": 75, "heard": 75, "monkei": 75, "typewrit": 75, "keyboard": 75, "william": 75, "shakespear": 75, "sentenc": [75, 143], "shoot": 75, "methink": 75, "weasel": 75, "re": [75, 114], "fire": 75, "favorit": [75, 78, 85], "whole": [75, 96, 102, 111, 119, 133, 143], "hill": 75, "climb": 75, "faculti": [76, 78], "staff": [76, 78, 88], "circuit": [76, 78, 85, 92, 102, 154], "mistak": 77, "colon": 77, "stdin": [77, 80, 83], "syntaxerror": 77, "invalid": 77, "conform": 77, "fatal": [77, 100], "intervent": 77, "warrant": 77, "a_numb": 77, "pleas": [77, 81], "traceback": [77, 80, 83], "795831523312719": 77, "runtimeerror": [77, 83], "manual": [77, 81], "get_num": [78, 85], "get_den": [78, 85], "denomin": [78, 83, 85], "__add__": [78, 80, 83, 85], "__sub__": [78, 85], "__mul__": [78, 85], "__truediv__": [78, 85], "__gt__": [78, 85, 94], "__ge__": [78, 85, 94], "__lt__": [78, 85, 93, 94], "__le__": [78, 83, 85, 94], "__ne__": [78, 85, 94], "constraint": [78, 85, 110], "__radd__": [78, 85], "__iadd__": [78, 85], "gate": [78, 85, 92, 154], "nand": [78, 85], "nor": [78, 85], "xor": [78, 85], "adder": [78, 85], "card": [78, 85], "deck": [78, 85], "sudoku": [78, 85], "undergon": 79, "electron": [79, 83], "patch": 79, "cabl": 79, "convei": [79, 80], "societi": 79, "technologi": [79, 88], "craft": 79, "processor": 79, "capac": 79, "spiral": [79, 111], "rapid": 79, "evolut": 79, "consider": [79, 93, 119, 130], "hopefulli": 79, "confid": 79, "overshadow": 79, "emphas": 79, "framework": [79, 83], "fit": [79, 100, 151], "solver": [79, 83], "explan": [79, 80, 130], "paradigm": [80, 141], "focal": 80, "analog": 80, "quotient": 80, "truncat": 80, "truth": [80, 82, 83], "negat": 80, "dynam": [80, 99, 101, 104, 113, 154], "understood": 80, "heterogen": 80, "sequenti": [80, 83, 87, 89, 114, 115, 116, 117, 118, 119, 129, 154], "membership": [80, 127], "asid": 80, "big_list": 80, "a_list": [80, 119, 120, 122], "ith": 80, "liter": [80, 81], "quotat": 80, "david": [80, 154], "my_nam": 80, "daviddavid": 80, "a_str": [80, 115], "ljust": 80, "justifi": [80, 81], "rjust": 80, "s_char": 80, "whitespac": 80, "tab": 80, "newlin": [80, 81], "da": 80, "mutabl": [80, 82, 103], "1024": 80, "typeerror": [80, 83], "my_tupl": 80, "my_set": 80, "cardin": 80, "a_set": 80, "other_set": 80, "union": 80, "issubset": 80, "othe_rset": 80, "your_set": 80, "hous": 80, "capit": 80, "de": 80, "moin": 80, "wisconsin": 80, "madison": 80, "prior": 80, "utah": 80, "salt": 80, "lake": [80, 83], "california": 80, "sacramento": 80, "a_dict": 80, "dict_kei": 80, "dict_valu": 80, "dict_item": 80, "alt": 80, "phone_ext": 80, "1410": 80, "brad": [80, 154], "1137": 80, "1171": 80, "kent": 80, "NO": [80, 83], "workspac": 80, "window": [80, 102, 111], "dialog": 81, "prompt": [81, 82, 86, 106], "a_nam": 81, "whatev": 81, "s_radiu": 81, "radiu": 81, "diamet": 81, "sep": 81, "fortun": 81, "templat": [81, 150], "ag": 81, "unsign": 81, "ddddd": 81, "ddddde": 81, "xx": 81, "width": [81, 111], "20d": 81, "020d": 81, "price": 81, "banana": 81, "cent": [81, 99, 100, 101], "itemdict": 81, "1f": 81, "formatt": 81, "featur": [81, 83, 126, 140], "010": 81, "0000024": 81, "overrid": [82, 83, 87, 130, 146], "shallow": [82, 83], "subclass": [82, 83, 130], "encapsul": [82, 91], "superclass": [82, 83], "slash": 83, "den": 83, "my_fract": 83, "0x103203eb8": 83, "respond": 83, "0x40bce9ac": 83, "redefin": [83, 96], "ate": 83, "pizza": 83, "f1": 83, "f2": 83, "unsupport": 83, "bd": 83, "cb": 83, "other_fract": 83, "new_num": 83, "new_den": 83, "depict": 83, "versu": [83, 114, 121], "__eq__": [83, 93, 94], "overridden": 83, "first_num": 83, "second_num": 83, "impli": 83, "homogen": 83, "meet": [83, 110], "algebra": [83, 130], "AND": 83, "OR": 83, "NOT": 83, "feed": 83, "logicg": 83, "identif": [83, 110], "lbl": 83, "get_label": 83, "get_output": 83, "perform_gate_log": 83, "categor": 83, "binaryg": 83, "unaryg": 83, "pin": 83, "terminologi": 83, "pin_a": 83, "pin_b": 83, "get_pin_a": 83, "get_pin_b": 83, "get_pin": 83, "andgat": 83, "g1": 83, "orgat": 83, "notgat": 83, "g2": 83, "g3": 83, "connector": 83, "from_gat": 83, "to_gat": 83, "set_next_pin": 83, "fgate": 83, "tgate": 83, "get_from": 83, "get_to": 83, "g4": 83, "c1": 83, "c2": 83, "c3": 83, "norgat": 83, "nandgat": 83, "recommend": 86, "consult": [86, 100, 131], "tutori": 86, "http": [86, 136], "doc": 86, "org": 86, "reacquaint": 86, "reinforc": 86, "central": [86, 151], "nonsequenti": 87, "awar": 88, "disciplin": [88, 89], "pertain": 88, "driven": 88, "school": 88, "driver": 88, "vehicl": 88, "brake": 88, "acceler": 88, "steer": 88, "drive": 88, "transport": 88, "repair": 88, "grant": 88, "transmiss": 88, "gear": 88, "temperatur": 88, "hood": 88, "music": 88, "administr": 88, "protocol": 88, "script": 88, "client": [88, 91], "necessarili": [88, 100], "someon": 88, "unambigu": 89, "654": 89, "suffici": 89, "disadvantag": [89, 115], "ourselv": [90, 109, 127, 136], "Being": 90, "recognit": 90, "contrast": 90, "sole": 90, "intract": 90, "abbrevi": 91, "focus": 91, "atom": [92, 154], "releas": 93, "roll": 93, "bunch": 93, "dice": [93, 94], "incrementatlli": 93, "consder": 93, "desig": 93, "ecosystem": 93, "docstr": 93, "magic": 93, "meaninig": 93, "debugg": 93, "meaningfulli": 93, "flexibl": [93, 146], "nicer": 93, "my_di": 93, "current_valu": 93, "repr": 93, "debug": 93, "msdie": [94, 95], "die1": 94, "die2": 94, "tediu": 94, "dunder": 94, "investig": 96, "pretend": 96, "Such": 96, "innermost": 96, "simplif": 96, "restat": 96, "num_list": 96, "_list": 96, "list_sum": [96, 109], "trivial": [96, 110, 112], "topmost": [96, 106], "mental": [97, 111], "style": 97, "eleg": [97, 98, 103, 109, 112, 150], "decept": 97, "1010": [98, 107], "769": 98, "convert_str": [98, 107], "0123456789": 98, "lookup": [98, 100, 143], "unclear": 98, "diagram": [98, 106, 144], "law": [98, 105, 113, 154], "to_str": [98, 107], "delai": 98, "spell": [98, 101], "bonu": 98, "punctuat": 98, "adam": 98, "kayak": 98, "aibohphobia": 98, "evil": 98, "revil": 98, "deliv": 98, "hang": 98, "salami": 98, "lasagna": 98, "hog": 98, "er": 98, "elba": 98, "kanakanak": 98, "town": 98, "alaska": 98, "wassamassaw": 98, "south": [98, 102], "dakota": 98, "hanoi": [99, 101, 113, 154], "sierpinski": [99, 101, 113, 154], "triangl": [99, 101, 113, 151, 154], "pencil": [99, 101, 106], "vend": 100, "manufactur": 100, "compani": 100, "effort": [100, 109], "transact": 100, "dollar": 100, "quarter": 100, "dime": 100, "penni": 100, "arsen": 100, "deploi": 100, "elbonia": 100, "minu": 100, "nickel": 100, "_coin": 100, "min": [100, 130, 139, 144, 148], "eqn_chang": 100, "filter": 100, "make_change_1": 100, "coin_denom": 100, "min_coin": 100, "inf": 100, "num_coin": 100, "troubl": [100, 128], "716": 100, "925": 100, "flaw": 100, "377": 100, "got": 100, "recalcul": [100, 130], "avoid": 100, "recomput": 100, "221": 100, "acitvecod": 100, "hack": 100, "known_result": 100, "hole": 100, "memoiz": 100, "cach": 100, "truli": 100, "Or": 100, "eleven": 100, "make_change_3": 100, "coin_value_list": 100, "coin_count": 100, "bulk": 100, "make_change_4": 100, "print_coin": 100, "friend": 100, "coins_us": 100, "42nd": 100, "factori": [101, 109], "thick": [101, 111], "branch_len": [101, 111], "thinner": [101, 111], "angl": [101, 111], "turtl": [101, 102, 106, 111], "degre": [101, 106, 111], "fractal": [101, 104, 106, 111], "mountain": [101, 111], "fibonacci": [101, 131], "hilbert": 101, "curv": 101, "koch": 101, "snowflak": [101, 111], "anim": [101, 120, 136], "shape": [101, 102, 111], "pascal": 101, "stagger": 101, "a_": 101, "binomi": 101, "diagon": 101, "thief": 101, "broken": 101, "galleri": 101, "haul": 101, "stolen": 101, "knapsack": 101, "pound": 101, "maxim": 101, "profit": 101, "edit": 101, "allig": 101, "relev": 102, "robot": [102, 109], "roomba": 102, "vacuum": 102, "cleaner": 102, "dorm": 102, "reprogram": 102, "virtual": 102, "greek": 102, "myth": 102, "theseu": 102, "minotaur": 102, "ball": 102, "thread": [102, 137], "him": 102, "beast": 102, "wall": 102, "bump": 102, "north": 102, "northern": 102, "west": 102, "east": 102, "bag": 102, "bread": 102, "crumb": 102, "paragraph": [102, 143, 145], "unsuccessfulli": 102, "watch": [102, 111], "draw_maz": 102, "update_posit": 102, "is_exit": 102, "overload": [102, 115, 146], "global": 102, "search_from": 102, "obstacl": 102, "dead_end": 102, "part_of_path": 102, "maze_filenam": 102, "maze_fil": 102, "maze_list": 102, "rstrip": 102, "rows_in_maz": 102, "columns_in_maz": 102, "row_idx": 102, "start_row": 102, "start_col": 102, "x_translat": 102, "y_translat": 102, "wn": 102, "setworldcoordin": 102, "secondari": 102, "tracer": 102, "draw_centered_box": 102, "orang": 102, "fillcolor": 102, "goto": 102, "sethead": 102, "begin_fil": [102, 106], "end_fil": [102, 106], "move_turtl": 102, "drop_bread_crumb": 102, "auxiliari": 102, "geograph": 102, "maze2": 102, "txt": 102, "prevent": 103, "indirect": 103, "wherev": 103, "parallel": [103, 115], "exhibit": 106, "midpoint": [106, 119], "sharp": 106, "activ": 106, "inact": 106, "heavili": 106, "get_mid": 106, "endpoint": 106, "halfwai": [106, 133], "insight": [107, 111], "computation": 108, "asimov": 109, "obei": [109, 110], "shorten": 109, "novic": 109, "recus": 109, "french": 110, "edouard": 110, "luca": 110, "1883": 110, "inspir": 110, "hindu": 110, "templ": 110, "young": 110, "priest": 110, "gold": 110, "beneath": 110, "night": 110, "crumbl": 110, "dust": 110, "vanish": 110, "worri": 110, "446": 110, "744": 110, "073": 110, "709": 110, "551": 110, "615": 110, "584": 110, "942": 110, "417": 110, "355": 110, "peg": 110, "fanci": 110, "pile": 110, "knew": 110, "move_tow": 110, "from_pol": 110, "to_pol": 110, "with_pol": 110, "move_disk": 110, "english": 110, "cement": 111, "metaphor": 111, "etc": [111, 114, 136, 151], "tail": 111, "dip": 111, "draw_spir": 111, "my_win": 111, "exitonclick": 111, "handi": 111, "mode": 111, "impress": 111, "magnifi": 111, "coastlin": 111, "contin": 111, "shrub": 111, "phenomena": 111, "sceneri": 111, "magnif": 111, "twig": 111, "trunk": 111, "undo": 111, "unfold": 111, "halv": [111, 122, 123], "simultan": [111, 120], "subproblem": 112, "surfac": 112, "formula": [114, 131], "50": [114, 125, 137], "bias": 114, "classmat": 114, "quicksort": [114, 116, 118, 129, 154], "pivot": [114, 116, 123, 130], "reimplement": 114, "sublist": [114, 118, 121, 126, 140], "__len__": [114, 146], "hashtabl": [114, 115], "assess": 114, "probe": [114, 115, 116], "rehash": [114, 115, 116], "500": 114, "merge_sort": [114, 122], "partit": [114, 116, 123], "median": [114, 116, 123], "quick_sort": [114, 123], "slot": [115, 116], "_of": 115, "_size": 115, "44": [115, 122, 131], "clash": 115, "accommod": 115, "feasibl": 115, "social": 115, "billion": 115, "enorm": 115, "fold": [115, 116], "phone": 115, "436": 115, "555": 115, "4601": 115, "43": [115, 122], "210": 115, "219": 115, "1936": 115, "ord": 115, "116": 115, "hash_str": 115, "table_s": 115, "remedi": [115, 119], "resolv": 115, "circularli": 115, "tendenc": 115, "surround": 115, "therebi": 115, "_hash": 115, "130": 115, "117": 115, "105": 115, "great": [115, 119, 131], "hash_funct": 115, "unless": [115, 130, 151], "nonempti": 115, "hash_valu": 115, "next_slot": 115, "old_hash": 115, "start_slot": 115, "lion": 115, "tiger": 115, "bird": 115, "cow": 115, "goat": 115, "pig": 115, "chicken": 115, "duck": 115, "conceptu": 115, "unsuccess": 115, "gap": [116, 126], "mid": 116, "stabl": [116, 122], "fall": [118, 126], "clever": 119, "conquer": [119, 122, 123], "reassembl": 119, "binary_search_rec": 119, "strict": 119, "worth": [119, 128], "exchang": [120, 121, 123, 124, 128], "bubble_sort": 120, "temporari": [120, 130], "overwritten": 120, "costli": [120, 128], "unsort": 120, "insertion_sort": 121, "left_half": 122, "right_half": 122, "transcript": 122, "problemat": 122, "mergesort": 122, "diminish": [123, 126], "left_mark": 123, "right_mark": 123, "quick_sort_help": 123, "uneven": 123, "allevi": 123, "somewhat": [123, 137], "reduct": 124, "apart": 126, "shellsort": 126, "shell_sort": 126, "presort": 126, "popul": 128, "zip": 128, "substanti": 128, "affect": [130, 136], "grandpar": 130, "ancestor": 130, "binarysearchtre": [130, 146], "_put": [130, 146], "update_bal": 130, "current_nod": [130, 146], "left_child": [130, 141, 143, 146, 150], "avltreenod": 130, "right_child": [130, 141, 143, 146, 150], "balance_factor": 130, "rebal": 130, "is_left_child": [130, 146], "is_right_child": [130, 146], "rebalanc": 130, "nonzero": 130, "promot": [130, 146], "furthermor": 130, "heavi": [130, 131, 132], "rotate_right": 130, "rotate_left": 130, "new_root": 130, "bookkeep": 130, "rotation_root": 130, "is_root": [130, 146], "_root": 130, "max": [130, 137, 139, 144], "unaffect": 130, "h_x": 130, "_bal": 130, "h_a": 130, "h_c": 130, "h_d": 130, "h_e": 130, "readili": 130, "opportun": 130, "n_h": 131, "n_": 131, "recurr": 131, "f_0": 131, "f_1": 131, "f_i": 131, "f_": 131, "phi": 131, "avl": [132, 137, 139, 148, 149, 152, 154], "inventor": 132, "adelson": 132, "velskii": 132, "landi": 132, "_factor": 132, "_subtre": 132, "2p": 133, "binaryheap": [133, 134, 137], "_heap": 133, "regain": 133, "newli": 133, "percol": 133, "restor": 133, "_perc_up": 133, "readi": [133, 143], "parent_idx": 133, "complianc": 133, "destroi": 133, "_perc_down": 133, "_get_min_child": 133, "sm_child": 133, "empi": 133, "not_a_heap": 133, "cuir_idx": 133, "hepifi": 133, "mysteri": 133, "proof": 133, "get_min": 134, "botan": 136, "classif": 136, "biologi": 136, "layer": 136, "kingdom": 136, "phylum": 136, "taxonomi": 136, "chordat": 136, "arthropod": 136, "mammal": 136, "stuck": 136, "primat": 136, "carnivor": 136, "genu": 136, "thermobia": 136, "domestica": 136, "musca": 136, "speci": 136, "animalia": 136, "rightarrow": [136, 151], "chordata": 136, "mammalia": [136, 151], "carnivora": [136, 151], "felida": [136, 151], "feli": [136, 151], "catu": [136, 151], "directori": 136, "folder": 136, "unix": 136, "subdirectori": 136, "stare": 136, "detach": 136, "reattach": 136, "usr": [136, 151], "pathnam": 136, "httpd": 136, "lang": 136, "en": 136, "meta": 136, "charset": 136, "ul": 136, "h2": 136, "href": 136, "www": 136, "accompani": 136, "binarytre": [137, 138, 141, 143, 150], "insert_left": [137, 138, 140, 141], "insert_right": [137, 138, 140, 141], "set_root_v": [137, 138, 140, 141], "94": [137, 146], "66": 137, "82": 137, "preorder": [137, 139, 150], "build_parse_tre": 137, "unari": 137, "find_successor": [137, 146], "inord": [137, 139, 146, 150], "successor": [137, 139, 145, 146], "print_exp": [137, 150], "pars": [137, 139, 148, 150, 152, 154], "get_root_v": [138, 140, 141], "get_left_child": [138, 140, 141, 143, 146], "get_right_child": [138, 140, 141, 143], "postord": [139, 150], "bst": [139, 146], "my_tre": 140, "adher": 140, "make_binary_tre": 140, "new_child": [140, 141], "old_child": 140, "splice": [140, 146], "round": [140, 141], "new_valu": 140, "statment": 140, "build_tre": [140, 141], "root_obj": 141, "new_nod": 141, "accessor": 141, "new_obj": 141, "henc": 143, "builder": 143, "parse_tre": 143, "mul": [143, 150], "truediv": [143, 150], "fn": 143, "param1": 143, "param2": 143, "73": 146, "treenod": 146, "miscellan": 146, "is_leaf": 146, "has_any_child": 146, "has_children": 146, "replace_valu": 146, "bug": 146, "my_zip_tre": 146, "plymouth": 146, "55446": 146, "lightli": 146, "_get": 146, "besid": 146, "fargo": 146, "northfield": 146, "node_to_remov": 146, "_delet": 146, "keyerror": 146, "ve": 146, "splice_out": 146, "find_min": 146, "__delete__": 146, "wrapper": 146, "nyc": 146, "caller": 146, "freez": 146, "elem": 146, "usag": 150, "subsect": 150, "stick": 150, "chapter1": 150, "postorderev": 150, "result_1": 150, "result_2": 150, "incom": 151, "outgo": 151, "spool": 151, "yp": 151, "var": 151, "compris": 151, "chimpanze": 151, "arrowhead": 151, "restructuredtext": 153, "homework": 153, "data structur": 154, "computer sci": 154, "miller": 154, "ranum": 154, "youtub": 154, "video": 154, "gerri": 154, "jenkin": 154, "introduct": 154, "grate": 154, "franklin": 154, "beedl": 154, "textbook": 154, "freeli": 154, "dedic": 154, "editor": 154, "jim": 154, "leisi": 154, "bradlei": 154, "licens": 154, "creativ": 154, "noncommerci": 154, "sharealik": 154}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"dictionari": [0, 12, 80], "revisit": [0, 1, 3, 4, 5], "skip": 0, "list": [0, 3, 15, 27, 28, 31, 39, 42, 48, 80, 96, 125, 140], "The": [0, 4, 28, 38, 39, 40, 41, 42, 68, 69, 70, 109, 119, 120, 121, 122, 123, 124, 125, 126, 133], "map": [0, 115, 149], "abstract": [0, 38, 39, 40, 41, 42, 68, 91, 115], "data": [0, 17, 38, 39, 40, 41, 42, 47, 68, 80, 91, 115, 154], "type": [0, 38, 39, 40, 41, 42, 68, 80, 91, 115], "implement": [0, 24, 25, 26, 27, 28, 36, 58, 59, 60, 93, 107, 115, 130, 133, 138, 146, 149], "python": [0, 3, 12, 15, 17, 24, 25, 26, 36, 80, 83, 86, 93, 154], "search": [0, 51, 54, 57, 59, 119, 125, 127, 129, 132, 135, 145, 146, 147], "ad": 0, "kei": [0, 7, 14, 30, 61, 82, 104, 116, 139], "valu": 0, "pair": 0, "build": [0, 52, 53], "analysi": [0, 19, 20, 27, 50, 51, 54, 62, 115, 119, 125, 145], "graph": [1, 52, 53, 68, 73], "pattern": 1, "match": 1, "biolog": 1, "string": [1, 80, 81, 98], "simpl": [1, 34, 115], "comparison": [1, 29, 115, 120, 125], "us": [1, 5, 115, 125, 154], "finit": 1, "state": 1, "automata": 1, "knuth": 1, "morri": 1, "pratt": 1, "object": [2, 16, 32, 63, 83, 84, 105, 117, 142], "recurs": [4, 97, 107, 109, 111, 112, 113], "modular": 4, "arithmet": 4, "theorem": 4, "exponenti": 4, "greatest": 4, "common": [4, 11], "divisor": 4, "multipl": 4, "invers": 4, "rsa": 4, "algorithm": [4, 5, 19, 20, 50, 55, 64, 73, 90, 152, 154], "tree": [5, 64, 130, 131, 132, 135, 136, 143, 145, 146, 147, 150, 152], "quantiz": 5, "imag": 5, "A": [5, 21, 83, 93, 95], "quick": 5, "review": [5, 86], "digit": 5, "an": [5, 10, 27, 28, 48, 49, 98, 125], "improv": 5, "octre": 5, "exercis": [6, 13, 23, 56, 78, 85, 101, 114, 137], "term": [7, 14, 30, 61, 82, 104, 116, 139], "summari": [8, 18, 37, 67, 87, 108, 118, 148, 149], "advanc": 9, "topic": 9, "anagram": 10, "detect": 10, "exampl": [10, 29, 38, 40, 136], "solut": 10, "1": [10, 11, 41, 80, 120, 125, 149], "check": [10, 11, 12, 22, 25, 26, 28, 29, 36, 74, 75, 83, 98, 102, 109, 111, 115, 119, 120, 121, 122, 123, 124, 125, 126, 140, 141, 146], "off": 10, "2": [10, 15, 29, 80, 125], "sort": [10, 71, 120, 121, 122, 124, 126, 128, 129], "compar": [10, 94, 149], "3": [10, 12, 29, 80, 119], "brute": 10, "forc": 10, "4": [10, 29, 80, 115], "count": 10, "self": [10, 11, 12, 22, 25, 26, 28, 29, 36, 74, 75, 83, 98, 102, 109, 111, 115, 119, 120, 121, 122, 123, 124, 125, 126, 140, 141, 146], "big": [11, 12, 15], "o": [11, 12, 15], "notat": 11, "tabl": [11, 12, 15, 29, 38, 40, 41, 80, 81, 115, 119, 120, 125, 149, 154], "function": [11, 75, 115], "effici": [12, 15], "oper": [12, 15, 38, 40, 41, 80, 133, 134, 147], "perform": [17, 131, 149], "structur": [17, 43, 47, 74, 91, 133, 154], "what": [19, 43, 88, 89, 112], "i": [19, 88, 89, 112], "balanc": [21, 34, 132], "symbol": 21, "gener": [21, 29, 57], "case": 21, "convert": [22, 98], "decim": 22, "number": [22, 96], "binari": [22, 119, 132, 133, 134, 135, 144], "dequ": [24, 38, 44], "queue": [25, 35, 36, 40, 45, 144], "stack": [26, 41, 46, 107], "order": [27, 39, 125, 133], "link": [27, 28], "unord": [28, 42, 125], "node": [28, 141], "class": [28, 83, 93, 94, 95, 153], "unorderedlist": 28, "infix": 29, "prefix": 29, "postfix": 29, "express": 29, "addit": [29, 81], "convers": [29, 81], "evalu": 29, "palindrom": 33, "checker": 33, "parenthes": 34, "simul": [35, 36], "hot": 35, "potato": 35, "print": 36, "task": 36, "main": 36, "step": 36, "discuss": [36, 76, 99], "6": [38, 80], "5": [40, 80, 115], "sampl": 41, "ar": 43, "linear": 43, "basic": [47, 86, 93], "adjac": [48, 49], "matrix": 49, "dijkstra": [50, 55], "": [50, 52, 55, 60, 62, 64, 69], "breadth": [51, 59], "first": [51, 54, 57, 59], "knight": [52, 60, 62, 69], "tour": [52, 60, 62, 69], "word": [53, 70], "ladder": [53, 70], "depth": [54, 57], "prim": 64, "span": 64, "shortest": 65, "path": 65, "problem": [65, 69, 70, 97, 154], "strongli": 66, "connect": 66, "compon": 66, "topolog": 71, "vocabulari": [72, 151], "definit": [72, 151], "control": 74, "defin": [75, 83], "challeng": 75, "question": [76, 99], "except": 77, "handl": 77, "get": [79, 80], "start": [79, 80], "built": 80, "atom": 80, "relat": 80, "logic": [80, 83], "collect": 80, "ani": [80, 98], "sequenc": 80, "method": [80, 115], "provid": 80, "set": 80, "7": 80, "8": 80, "input": 81, "output": 81, "format": 81, "9": 81, "charact": 81, "10": 81, "option": 81, "11": 81, "f": 81, "orient": 83, "program": [83, 85, 89, 100], "fraction": 83, "inherit": 83, "gate": 83, "circuit": 83, "comput": 88, "scienc": 88, "why": [90, 91], "studi": [90, 91], "introduct": 92, "write": 93, "proper": [93, 95], "msdie": 93, "make": 94, "your": 94, "calcul": 96, "sum": 96, "complex": 97, "integ": 98, "base": 98, "dynam": 100, "explor": 102, "maze": 102, "glossari": 103, "sierpinski": 106, "triangl": 106, "frame": 107, "three": 109, "law": 109, "tower": 110, "hanoi": 110, "visual": 111, "hash": 115, "remaind": 115, "mid": 115, "squar": 115, "collis": 115, "resolut": 115, "tabular": 119, "bubbl": 120, "each": 120, "pass": 120, "insert": 121, "merg": 122, "quicksort": 123, "select": 124, "sequenti": 125, "shell": 126, "avl": [130, 131], "heap": [133, 134, 144], "properti": 133, "represent": 140, "refer": 141, "pars": 143, "prioriti": 144, "adt": 149, "differ": 149, "travers": 150, "assign": 153, "solv": 154, "acknowledg": 154, "indic": 154}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Dictionaries Revisited: Skip Lists": [[0, "dictionaries-revisited-skip-lists"]], "The Map Abstract Data Type": [[0, "the-map-abstract-data-type"]], "Implementing a Dictionary in Python": [[0, "implementing-a-dictionary-in-python"]], "Searching a Skip List": [[0, "searching-a-skip-list"]], "Adding Key-Value Pairs to a Skip List": [[0, "adding-key-value-pairs-to-a-skip-list"]], "Building the Map": [[0, "building-the-map"]], "Analysis of a Skip List": [[0, "analysis-of-a-skip-list"]], "Graphs Revisited: Pattern Matching": [[1, "graphs-revisited-pattern-matching"]], "Biological Strings": [[1, "biological-strings"]], "Simple Comparison": [[1, "simple-comparison"]], "Using Graphs: Finite State Automata": [[1, "using-graphs-finite-state-automata"]], "Using Graphs: Knuth-Morris-Pratt": [[1, "using-graphs-knuth-morris-pratt"]], "Objectives": [[2, "objectives"], [16, "objectives"], [32, "objectives"], [63, "objectives"], [84, "objectives"], [105, "objectives"], [117, "objectives"], [142, "objectives"]], "Python Lists Revisited": [[3, "python-lists-revisited"]], "Recursion Revisited": [[4, "recursion-revisited"]], "Modular Arithmetic Theorems": [[4, "modular-arithmetic-theorems"]], "Modular Exponentiation": [[4, "modular-exponentiation"]], "The Greatest Common Divisor and Multiplicative Inverses": [[4, "the-greatest-common-divisor-and-multiplicative-inverses"]], "RSA Algorithm": [[4, "rsa-algorithm"]], "Trees Revisited: Quantizing Images": [[5, "trees-revisited-quantizing-images"]], "A Quick Review of Digital Images": [[5, "a-quick-review-of-digital-images"]], "Quantizing an Image": [[5, "quantizing-an-image"]], "An Improved Quantization Algorithm Using Octrees": [[5, "an-improved-quantization-algorithm-using-octrees"]], "Exercises": [[6, "exercises"], [13, "exercises"], [23, "exercises"], [56, "exercises"], [78, "exercises"], [101, "exercises"], [114, "exercises"], [137, "exercises"]], "Key Terms": [[7, "key-terms"], [14, "key-terms"], [30, "key-terms"], [61, "key-terms"], [82, "key-terms"], [104, "key-terms"], [116, "key-terms"], [139, "key-terms"]], "Summary": [[8, "summary"], [18, "summary"], [37, "summary"], [67, "summary"], [87, "summary"], [108, "summary"], [118, "summary"], [148, "summary"]], "Advanced Topics": [[9, "advanced-topics"]], "An Anagram Detection Example": [[10, "an-anagram-detection-example"]], "Solution 1: Anagram Detection Checking Off": [[10, "solution-1-anagram-detection-checking-off"]], "Anagram Detection Solution 2: Sort and Compare": [[10, "anagram-detection-solution-2-sort-and-compare"]], "Anagram Detection Solution 3: Brute Force": [[10, "anagram-detection-solution-3-brute-force"]], "Anagram Detection Solution 4: Count and Compare": [[10, "anagram-detection-solution-4-count-and-compare"]], "Self Check": [[10, null], [11, null], [12, null], [22, null], [25, null], [26, null], [28, null], [29, null], [36, null], [74, null], [74, null], [75, null], [83, null], [98, null], [102, null], [109, null], [111, null], [115, null], [119, null], [120, null], [121, null], [122, null], [123, null], [124, null], [125, null], [126, null], [140, null], [141, null], [146, null]], "Big O Notation": [[11, "big-o-notation"]], "Table 1: Common Functions for Big O": [[11, "id1"]], "Dictionaries": [[12, "dictionaries"]], "Table 3: Big O Efficiency of Python Dictionary Operations": [[12, "id1"]], "Lists": [[15, "lists"], [31, "lists"]], "Table 2: Big O Efficiency of Python List Operators": [[15, "id1"]], "Performance of Python Data Structures": [[17, "performance-of-python-data-structures"]], "What Is Algorithm Analysis?": [[19, "what-is-algorithm-analysis"]], "Algorithm Analysis": [[20, "algorithm-analysis"], [20, null]], "Balanced Symbols (A General Case)": [[21, "balanced-symbols-a-general-case"]], "Converting Decimal Numbers to Binary Numbers": [[22, "converting-decimal-numbers-to-binary-numbers"]], "Implementing a Deque in Python": [[24, "implementing-a-deque-in-python"]], "Implementing a Queue in Python": [[25, "implementing-a-queue-in-python"]], "Implementing a Stack in Python": [[26, "implementing-a-stack-in-python"]], "Implementing an Ordered List": [[27, "implementing-an-ordered-list"]], "Analysis of Linked Lists": [[27, "analysis-of-linked-lists"]], "Implementing an Unordered List: Linked Lists": [[28, "implementing-an-unordered-list-linked-lists"]], "The Node Class": [[28, "the-node-class"]], "The UnorderedList Class": [[28, "the-unorderedlist-class"]], "Infix, Prefix, and Postfix Expressions": [[29, "infix-prefix-and-postfix-expressions"]], "Table 2: Examples of Infix, Prefix, and Postfix Expressions": [[29, "id1"]], "Table 3: Comparison of Infix, Prefix, and Postfix Expressions": [[29, "id2"]], "Table 4: Additional Examples of Infix, Prefix, and Postfix Expressions": [[29, "id3"]], "Conversion of Infix Expressions to Prefix and Postfix": [[29, "conversion-of-infix-expressions-to-prefix-and-postfix"]], "General Infix-to-Postfix Conversion": [[29, "general-infix-to-postfix-conversion"]], "Postfix Evaluation": [[29, "postfix-evaluation"]], "Palindrome Checker": [[33, "palindrome-checker"]], "Simple Balanced Parentheses": [[34, "simple-balanced-parentheses"]], "Queue Simulation: Hot Potato": [[35, "queue-simulation-hot-potato"]], "Queue Simulation: Printing Tasks": [[36, "queue-simulation-printing-tasks"]], "Main Simulation Steps": [[36, "main-simulation-steps"]], "Python Implementation": [[36, "python-implementation"]], "Discussion": [[36, "discussion"]], "The Deque Abstract Data Type": [[38, "the-deque-abstract-data-type"]], "Table 6: Examples of Deque Operations": [[38, "id1"]], "The Ordered List Abstract Data Type": [[39, "the-ordered-list-abstract-data-type"]], "The Queue Abstract Data Type": [[40, "the-queue-abstract-data-type"]], "Table 5: Example Queue Operations": [[40, "id1"]], "The Stack Abstract Data Type": [[41, "the-stack-abstract-data-type"]], "Table 1: Sample Stack Operations": [[41, "id1"]], "The Unordered List Abstract Data Type": [[42, "the-unordered-list-abstract-data-type"]], "What Are Linear Structures?": [[43, "what-are-linear-structures"]], "Deques": [[44, "deques"]], "Queues": [[45, "queues"]], "Stacks": [[46, "stacks"]], "Basic Data Structures": [[47, "basic-data-structures"], [47, null]], "An Adjacency List": [[48, "an-adjacency-list"]], "An Adjacency Matrix": [[49, "an-adjacency-matrix"]], "Analysis of Dijkstra\u2019s Algorithm": [[50, "analysis-of-dijkstras-algorithm"]], "Breadth-First Search Analysis": [[51, "breadth-first-search-analysis"]], "Building the Knight\u2019s Tour Graph": [[52, "building-the-knights-tour-graph"]], "Building the Word Ladder Graph": [[53, "building-the-word-ladder-graph"]], "Depth-First Search Analysis": [[54, "depth-first-search-analysis"]], "Dijkstra\u2019s Algorithm": [[55, "dijkstras-algorithm"]], "General Depth-First Search": [[57, "general-depth-first-search"]], "Implementation": [[58, "implementation"], [138, "implementation"]], "Implementing Breadth-First Search": [[59, "implementing-breadth-first-search"]], "Implementing Knight\u2019s Tour": [[60, "implementing-knights-tour"]], "Knight\u2019s Tour Analysis": [[62, "knights-tour-analysis"]], "Prim\u2019s Spanning Tree Algorithm": [[64, "prims-spanning-tree-algorithm"]], "Shortest Path Problems": [[65, "shortest-path-problems"]], "Strongly Connected Components": [[66, "strongly-connected-components"]], "The Graph Abstract Data Type": [[68, "the-graph-abstract-data-type"]], "The Knight\u2019s Tour Problem": [[69, "the-knights-tour-problem"]], "The Word Ladder Problem": [[70, "the-word-ladder-problem"]], "Topological Sorting": [[71, "topological-sorting"]], "Vocabulary and Definitions": [[72, "vocabulary-and-definitions"], [151, "vocabulary-and-definitions"]], "Graphs and Graphing Algorithms": [[73, "graphs-and-graphing-algorithms"], [73, null]], "Control Structures": [[74, "control-structures"]], "Defining Functions": [[75, "defining-functions"]], "Self Check Challenge": [[75, null]], "Discussion Questions": [[76, "discussion-questions"], [99, "discussion-questions"]], "Exception Handling": [[77, "exception-handling"]], "Getting Started": [[79, "getting-started"]], "Getting Started with Data": [[80, "getting-started-with-data"]], "Built-in Atomic Data Types": [[80, "built-in-atomic-data-types"]], "Table 1: Relational and Logical Operators": [[80, "id1"]], "Built-in Collection Data Types": [[80, "built-in-collection-data-types"]], "Table 2: Operations on Any Sequence in Python": [[80, "id4"]], "Table 3: Methods Provided by Lists in Python": [[80, "id5"]], "Table 4: Methods Provided by Strings in Python": [[80, "id6"]], "Table 5: Operations on a Set in Python": [[80, "id7"]], "Table 6: Methods Provided by Sets in Python": [[80, "id8"]], "Table 7: Operators Provided by Dictionaries in Python": [[80, "id9"]], "Table 8: Methods Provided by Dictionaries in Python": [[80, "id10"]], "Input and Output": [[81, "input-and-output"]], "String Formatting": [[81, "string-formatting"]], "Table 9: String Formatting Conversion Characters": [[81, "id1"]], "Table 10: Additional formatting options": [[81, "id2"]], "Table 11: f-string Formatting Options": [[81, "id3"]], "Object-Oriented Programming in Python: Defining Classes": [[83, "object-oriented-programming-in-python-defining-classes"]], "A Fraction Class": [[83, "a-fraction-class"]], "Self Check": [[83, null]], "Inheritance: Logic Gates and Circuits": [[83, "inheritance-logic-gates-and-circuits"]], "Programming Exercises": [[85, "programming-exercises"]], "Review of Basic Python": [[86, "review-of-basic-python"]], "What Is Computer Science?": [[88, "what-is-computer-science"]], "What Is Programming?": [[89, "what-is-programming"]], "Why Study Algorithms?": [[90, "why-study-algorithms"]], "Why Study Data Structures and Abstract Data Types?": [[91, "why-study-data-structures-and-abstract-data-types"]], "Introduction": [[92, "introduction"]], "Writing a Proper Python Class": [[93, "writing-a-proper-python-class"]], "A Basic implementation of the MSDie class": [[93, "a-basic-implementation-of-the-msdie-class"]], "Making your Class Comparable": [[94, "making-your-class-comparable"]], "A Proper Class": [[95, "a-proper-class"]], "Calculating the Sum of a List of Numbers": [[96, "calculating-the-sum-of-a-list-of-numbers"]], "Complex Recursive Problems": [[97, "complex-recursive-problems"]], "Converting an Integer to a String in Any Base": [[98, "converting-an-integer-to-a-string-in-any-base"]], "Dynamic Programming": [[100, "dynamic-programming"]], "Exploring a Maze": [[102, "exploring-a-maze"]], "Glossary": [[103, "glossary"]], "Sierpinski Triangle": [[106, "sierpinski-triangle"]], "Stack Frames: Implementing Recursion": [[107, "stack-frames-implementing-recursion"]], "The Three Laws of Recursion": [[109, "the-three-laws-of-recursion"]], "Tower of Hanoi": [[110, "tower-of-hanoi"]], "Visualizing Recursion": [[111, "visualizing-recursion"]], "What Is Recursion?": [[112, "what-is-recursion"]], "Recursion": [[113, "recursion"], [113, null]], "Hashing": [[115, "hashing"]], "Table 4: Simple Hash Function Using Remainders": [[115, "id2"]], "Hash Functions": [[115, "hash-functions"]], "Table 5: Comparison of Remainder and Mid-Square Methods": [[115, "id4"]], "Collision Resolution": [[115, "collision-resolution"]], "Implementing the Map Abstract Data Type": [[115, "implementing-the-map-abstract-data-type"]], "Analysis of Hashing": [[115, "analysis-of-hashing"]], "The Binary Search": [[119, "the-binary-search"]], "Analysis of Binary Search": [[119, "analysis-of-binary-search"]], "Table 3: Tabular Analysis for a Binary Search": [[119, "id2"]], "The Bubble Sort": [[120, "the-bubble-sort"]], "Table 1: Comparisons for Each Pass of Bubble Sort": [[120, "id3"]], "The Insertion Sort": [[121, "the-insertion-sort"]], "The Merge Sort": [[122, "the-merge-sort"]], "The Quicksort": [[123, "the-quicksort"]], "The Selection Sort": [[124, "the-selection-sort"]], "The Sequential Search": [[125, "the-sequential-search"]], "Analysis of Sequential Search": [[125, "analysis-of-sequential-search"]], "Table 1: Comparisons Used in a Sequential Search of an Unordered List": [[125, "id2"]], "Table 2: Comparisons Used in Sequential Search of an Ordered List": [[125, "id4"]], "The Shell Sort": [[126, "the-shell-sort"]], "Searching": [[127, "searching"]], "Sorting": [[128, "sorting"]], "Searching and Sorting": [[129, "searching-and-sorting"], [129, null]], "AVL Tree Implementation": [[130, "avl-tree-implementation"]], "AVL Tree Performance": [[131, "avl-tree-performance"]], "Balanced Binary Search Trees": [[132, "balanced-binary-search-trees"]], "Binary Heap Implementation": [[133, "binary-heap-implementation"]], "The Structure Property": [[133, "the-structure-property"]], "The Heap Order Property": [[133, "the-heap-order-property"]], "Heap Operations": [[133, "heap-operations"]], "Binary Heap Operations": [[134, "binary-heap-operations"]], "Binary Search Trees": [[135, "binary-search-trees"]], "Examples of Trees": [[136, "examples-of-trees"]], "List of Lists Representation": [[140, "list-of-lists-representation"]], "Nodes and References": [[141, "nodes-and-references"]], "Parse Tree": [[143, "parse-tree"]], "Priority Queues with Binary Heaps": [[144, "priority-queues-with-binary-heaps"]], "Search Tree Analysis": [[145, "search-tree-analysis"]], "Search Tree Implementation": [[146, "search-tree-implementation"]], "Search Tree Operations": [[147, "search-tree-operations"]], "Summary of Map ADT Implementations": [[149, "summary-of-map-adt-implementations"]], "Table 1: Comparing the Performance of Different Map Implementations": [[149, "id1"]], "Tree Traversals": [[150, "tree-traversals"]], "Trees and Tree Algorithms": [[152, "trees-and-tree-algorithms"], [152, null]], "Class Assignments": [[153, "class-assignments"]], "Problem Solving with Algorithms and Data Structures using Python": [[154, "problem-solving-with-algorithms-and-data-structures-using-python"]], "Acknowledgements": [[154, "acknowledgements"]], "Indices and tables": [[154, "indices-and-tables"]]}, "indexentries": {"base case": [[103, "term-base-case"]], "data structure": [[103, "term-data-structure"]], "exception": [[103, "term-exception"]], "handle an exception": [[103, "term-handle-an-exception"]], "immutable data type": [[103, "term-immutable-data-type"]], "infinite recursion": [[103, "term-infinite-recursion"]], "mutable data type": [[103, "term-mutable-data-type"]], "raise": [[103, "term-raise"]], "recursion": [[103, "term-recursion"]], "recursive call": [[103, "term-recursive-call"]], "recursive definition": [[103, "term-recursive-definition"]], "tuple": [[103, "term-tuple"], [105, "index-0"]], "tuple assignment": [[103, "term-tuple-assignment"]], "koch": [[105, "index-1"]], "koch fractal": [[105, "index-1"]], "fractal": [[105, "index-1"]], "immutable": [[105, "index-0"]], "mutable": [[105, "index-0"]]}})