From 41bbc30b9498390e8615c424d94aac96a3c99ffb Mon Sep 17 00:00:00 2001 From: camperbot Date: Tue, 18 Oct 2022 08:29:49 +0100 Subject: [PATCH] chore(i18n,learn): processed translations (#48105) --- .../build-a-survey-form.md | 12 +- .../falsy-bouncer.md | 10 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../visualize-data-with-a-bar-chart.md | 6 +- .../visualize-data-with-a-choropleth-map.md | 6 +- .../visualize-data-with-a-heat-map.md | 6 +- ...visualize-data-with-a-scatterplot-graph.md | 6 +- .../visualize-data-with-a-treemap-diagram.md | 6 +- .../mongodb-and-mongoose/create-a-model.md | 6 +- .../authentication-strategies.md | 6 +- .../authentication-with-socket.io.md | 4 +- .../clean-up-your-project-with-modules.md | 2 +- .../communicate-by-emitting.md | 2 +- .../create-new-middleware.md | 2 +- .../handle-a-disconnect.md | 2 +- .../hashing-your-passwords.md | 4 +- .../how-to-put-a-profile-together.md | 2 +- .../how-to-use-passport-strategies.md | 2 +- ...nt-the-serialization-of-a-passport-user.md | 4 +- ...lementation-of-social-authentication-ii.md | 18 +- ...ementation-of-social-authentication-iii.md | 2 +- ...implementation-of-social-authentication.md | 4 +- .../logging-a-user-out.md | 4 +- .../registration-of-new-users.md | 2 +- .../send-and-display-chat-messages.md | 2 +- .../serialization-of-a-user-object.md | 4 +- .../set-up-a-template-engine.md | 14 +- .../set-up-passport.md | 22 +- .../set-up-the-environment.md | 6 +- .../use-a-template-engines-powers.md | 36 ++- ...ality-with-.deepequal-and-.notdeepequal.md | 2 +- .../compare-the-properties-of-two-elements.md | 14 +- .../learn-how-javascript-assertions-work.md | 4 +- ...sponse-using-chai-http-iii---put-method.md | 2 +- ...esponse-using-chai-http-iv---put-method.md | 2 +- ...sts-on-api-endpoints-using-chai-http-ii.md | 2 +- ...-tests-on-api-endpoints-using-chai-http.md | 2 +- ...ional-tests-using-a-headless-browser-ii.md | 4 +- ...nctional-tests-using-a-headless-browser.md | 2 +- ...mulate-actions-using-a-headless-browser.md | 2 +- .../test-for-truthiness.md | 2 +- .../test-if-a-string-contains-a-substring.md | 2 +- ...f-a-value-falls-within-a-specific-range.md | 2 +- .../test-if-a-value-is-a-string.md | 2 +- ...ue-is-of-a-specific-data-structure-type.md | 2 +- ...st-if-a-variable-or-function-is-defined.md | 2 +- .../test-if-an-array-contains-an-item.md | 2 +- .../test-if-an-object-has-a-property.md | 2 +- ...-object-is-an-instance-of-a-constructor.md | 2 +- ...s-below-or-at-least-as-large-as-another.md | 2 +- .../use-assert.isok-and-assert.isnotok.md | 4 +- ...se-regular-expressions-to-test-a-string.md | 2 +- ...se-the-double-equals-to-assert-equality.md | 2 +- ...triple-equals-to-assert-strict-equality.md | 2 +- .../american-british-translator.md | 6 +- .../issue-tracker.md | 6 +- .../metric-imperial-converter.md | 6 +- .../personal-library.md | 6 +- .../sudoku-solver.md | 30 +-- .../build-your-own-functions.md | 2 +- .../comparing-and-sorting-tuples.md | 2 +- .../data-visualization-mailing-lists.md | 14 +- .../dictionaries-and-loops.md | 2 +- .../files-as-a-sequence.md | 2 +- .../intermediate-expressions.md | 4 +- .../intermediate-strings.md | 2 +- .../introduction-why-program.md | 4 +- .../iterations-more-patterns.md | 2 +- .../more-conditional-structures.md | 4 +- .../networking-web-scraping-with-python.md | 6 +- .../relational-databases-and-sqlite.md | 14 +- ...al-databases-many-to-many-relationships.md | 10 +- .../python-for-everybody/strings-and-lists.md | 2 +- ...services-api-rate-limiting-and-security.md | 8 +- .../arithmetic-formatter.md | 4 +- .../budget-app.md | 2 +- .../polygon-area-calculator.md | 2 +- .../probability-calculator.md | 4 +- .../time-calculator.md | 2 +- .../introduction-to-data-analysis.md | 9 +- .../demographic-data-analyzer.md | 9 +- ...-variance-standard-deviation-calculator.md | 7 +- .../medical-data-visualizer.md | 35 +-- .../page-view-time-series-visualizer.md | 15 +- .../sea-level-predictor.md | 14 +- .../anonymous-message-board.md | 6 +- .../port-scanner.md | 8 +- .../secure-real-time-multiplayer-game.md | 55 +++-- .../sha-1-password-cracker.md | 10 +- .../stock-price-checker.md | 8 +- ...ur-site-via-https-only-with-helmet.hsts.md | 2 +- ...-response-mime-type-with-helmet.nosniff.md | 2 +- ...lmet-using-the-parent-helmet-middleware.md | 2 +- ...client-side-caching-with-helmet.nocache.md | 2 +- ...fetching-with-helmet.dnsprefetchcontrol.md | 2 +- ...sh-and-compare-passwords-asynchronously.md | 2 +- ...ash-and-compare-passwords-synchronously.md | 2 +- ...-information-using-helmet.hidepoweredby.md | 2 +- .../install-and-require-helmet.md | 6 +- ...-of-clickjacking-with-helmet.frameguard.md | 2 +- ...pting-xss-attacks-with-helmet.xssfilter.md | 2 +- ...ing-untrusted-html-with-helmet.ienoopen.md | 2 +- ...olicy-with-helmet.contentsecuritypolicy.md | 2 +- .../understand-bcrypt-hashes.md | 10 +- .../find-the-symmetric-difference.md | 4 +- ...d-a-new-element-to-a-binary-search-tree.md | 2 +- ...ts-at-a-specific-index-in-a-linked-list.md | 6 +- .../data-structures/adjacency-list.md | 2 +- .../check-if-binary-search-tree.md | 20 +- .../create-a-circular-queue.md | 2 +- .../create-a-doubly-linked-list.md | 10 +- .../data-structures/create-a-hash-table.md | 14 +- .../create-a-linked-list-class.md | 3 +- .../create-a-map-data-structure.md | 16 +- .../create-a-trie-search-tree.md | 12 +- .../create-an-es6-javascript-map.md | 18 +- ...ete-a-leaf-node-in-a-binary-search-tree.md | 21 ++ ...-with-one-child-in-a-binary-search-tree.md | 13 +- .../data-structures/depth-first-search.md | 17 ++ .../implement-heap-sort-with-a-min-heap.md | 10 +- .../data-structures/incidence-matrix.md | 2 +- .../insert-an-element-into-a-max-heap.md | 48 ++-- ...form-a-subset-check-on-two-sets-of-data.md | 18 +- .../perform-a-union-on-two-sets.md | 2 +- .../remove-an-element-from-a-max-heap.md | 42 ++-- ...ve-elements-from-a-linked-list-by-index.md | 2 +- .../reverse-a-doubly-linked-list.md | 10 +- .../search-within-a-linked-list.md | 2 +- ...th-first-search-in-a-binary-search-tree.md | 6 +- .../problem-1-multiples-of-3-and-5.md | 18 +- .../problem-10-summation-of-primes.md | 53 +++-- .../problem-100-arranged-probability.md | 2 +- .../problem-101-optimum-polynomial.md | 6 +- .../problem-102-triangle-containment.md | 2 +- ...problem-103-special-subset-sums-optimum.md | 21 +- .../problem-104-pandigital-fibonacci-ends.md | 2 +- ...problem-105-special-subset-sums-testing.md | 4 +- ...em-106-special-subset-sums-meta-testing.md | 4 +- .../problem-107-minimal-network.md | 6 +- .../problem-108-diophantine-reciprocals-i.md | 6 +- .../project-euler/problem-109-darts.md | 9 +- .../problem-11-largest-product-in-a-grid.md | 4 +- .../problem-110-diophantine-reciprocals-ii.md | 4 +- .../problem-111-primes-with-runs.md | 2 +- .../problem-112-bouncy-numbers.md | 2 +- .../problem-113-non-bouncy-numbers.md | 4 +- ...oblem-114-counting-block-combinations-i.md | 10 +- .../problem-116-red-green-or-blue-tiles.md | 14 +- .../problem-117-red-green-and-blue-tiles.md | 8 +- .../problem-118-pandigital-prime-sets.md | 8 +- .../problem-119-digit-power-sum.md | 12 +- ...m-12-highly-divisible-triangular-number.md | 6 +- .../problem-121-disc-game-prize-fund.md | 18 +- .../problem-122-efficient-exponentiation.md | 27 ++- .../problem-124-ordered-radicals.md | 140 +++++++++--- .../problem-125-palindromic-sums.md | 16 +- .../problem-126-cuboid-layers.md | 22 +- .../project-euler/problem-127-abc-hits.md | 40 ++-- .../problem-128-hexagonal-tile-differences.md | 78 ++++++- .../project-euler/problem-13-large-sum.md | 4 +- .../problem-135-same-differences.md | 18 +- .../problem-136-singleton-difference.md | 18 +- .../problem-139-pythagorean-tiles.md | 22 +- .../problem-14-longest-collatz-sequence.md | 4 +- ...ng-multiple-reflections-of-a-laser-beam.md | 37 ++- ...m-147-rectangles-in-cross-hatched-grids.md | 24 +- .../project-euler/problem-15-lattice-paths.md | 18 +- ...y-for-a-sub-triangle-having-minimum-sum.md | 28 ++- ...tandard-sizes-an-expected-value-problem.md | 18 +- ...ng-one-half-as-a-sum-of-inverse-squares.md | 18 +- ...lem-153-investigating-gaussian-integers.md | 60 +++-- .../problem-154-exploring-pascals-pyramid.md | 20 +- ...problem-155-counting-capacitor-circuits.md | 22 +- .../problem-156-counting-digits.md | 38 ++- ...em-157-solving-the-diophantine-equation.md | 59 +---- ...hically-after-its-neighbour-to-the-left.md | 16 +- ...159-digital-root-sums-of-factorisations.md | 27 ++- .../problem-16-power-digit-sum.md | 2 +- .../problem-160-factorial-trailing-digits.md | 25 +- .../project-euler/problem-161-triominoes.md | 16 +- .../problem-162-hexadecimal-numbers.md | 24 +- .../problem-163-cross-hatched-triangles.md | 23 +- ...s-have-a-sum-greater-than-a-given-value.md | 12 +- .../problem-165-intersections.md | 38 ++- .../project-euler/problem-166-criss-cross.md | 18 +- ...roblem-167-investigating-ulam-sequences.md | 22 +- .../problem-168-number-rotations.md | 56 ++++- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 26 +-- .../problem-17-number-letter-counts.md | 6 +- ...can-be-formed-by-concatenating-products.md | 15 +- ...f-the-squares-of-the-digits-is-a-square.md | 22 +- ...gating-numbers-with-few-repeated-digits.md | 12 +- ...ent-hollow-square-laminae-can-be-formed.md | 12 +- ...one-two-three-...-distinct-arrangements.md | 18 +- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 34 ++- ...-angled-triangles-that-share-a-cathetus.md | 10 +- ...oblem-177-integer-angled-quadrilaterals.md | 20 +- .../project-euler/problem-178-step-numbers.md | 12 +- ...oblem-179-consecutive-positive-divisors.md | 12 +- .../problem-18-maximum-path-sum-i.md | 2 +- ...-zeros-of-a-function-of-three-variables.md | 27 ++- ...of-two-different-colours-can-be-grouped.md | 18 +- .../problem-182-rsa-encryption.md | 2 +- .../problem-183-maximum-product-of-parts.md | 28 +-- ...lem-184-triangles-containing-the-origin.md | 20 +- .../project-euler/problem-185-number-mind.md | 32 ++- .../problem-186-connectedness-of-a-network.md | 27 ++- .../project-euler/problem-187-semiprimes.md | 12 +- ...188-the-hyperexponentiation-of-a-number.md | 18 +- ...lem-189-tri-colouring-a-triangular-grid.md | 14 +- .../problem-19-counting-sundays.md | 2 +- ...oblem-190-maximising-a-weighted-product.md | 16 +- .../problem-191-prize-strings.md | 18 +- .../problem-192-best-approximations.md | 20 +- .../problem-193-squarefree-numbers.md | 14 +- .../problem-194-coloured-configurations.md | 22 +- ...-triangles-with-one-angle-of-60-degrees.md | 22 +- .../problem-196-prime-triplets.md | 24 +- ...viour-of-a-recursively-defined-sequence.md | 18 +- .../problem-198-ambiguous-numbers.md | 18 +- .../problem-199-iterative-circle-packing.md | 8 +- .../problem-2-even-fibonacci-numbers.md | 24 +- .../problem-20-factorial-digit-sum.md | 2 +- ...ontaining-the-contiguous-sub-string-200.md | 18 +- .../problem-201-subsets-with-a-unique-sum.md | 32 ++- .../project-euler/problem-202-laserbeam.md | 18 +- ...em-203-squarefree-binomial-coefficients.md | 18 +- ...problem-204-generalised-hamming-numbers.md | 16 +- .../project-euler/problem-205-dice-game.md | 10 +- .../problem-206-concealed-square.md | 39 +++- ...problem-207-integer-partition-equations.md | 30 ++- .../project-euler/problem-208-robot-walks.md | 16 +- .../problem-209-circular-logic.md | 32 ++- .../problem-21-amicable-numbers.md | 2 +- .../problem-210-obtuse-angled-triangles.md | 20 +- .../problem-211-divisor-square-sum.md | 16 +- .../problem-212-combined-volume-of-cuboids.md | 31 +-- .../project-euler/problem-213-flea-circus.md | 10 +- .../problem-214-totient-chains.md | 26 ++- .../problem-215-crack-free-walls.md | 16 +- ...-primality-of-numbers-of-the-form-2n2-1.md | 18 +- .../problem-217-balanced-numbers.md | 18 +- ...blem-218-perfect-right-angled-triangles.md | 28 ++- .../problem-219-skew-cost-coding.md | 24 +- .../project-euler/problem-22-names-scores.md | 2 +- .../problem-220-heighway-dragon.md | 29 ++- .../problem-221-alexandrian-integers.md | 21 +- .../problem-222-sphere-packing.md | 12 +- ...lem-223-almost-right-angled-triangles-i.md | 14 +- ...em-224-almost-right-angled-triangles-ii.md | 16 +- .../problem-225-tribonacci-non-divisors.md | 16 +- .../problem-226-a-scoop-of-blancmange.md | 20 +- .../project-euler/problem-227-the-chase.md | 20 +- .../problem-228-minkowski-sums.md | 33 ++- ...-229-four-representations-using-squares.md | 28 ++- .../problem-23-non-abundant-sums.md | 2 +- .../problem-230-fibonacci-words.md | 36 +-- ...-factorisation-of-binomial-coefficients.md | 18 +- .../project-euler/problem-232-the-race.md | 20 +- .../problem-233-lattice-points-on-a-circle.md | 16 +- .../problem-234-semidivisible-numbers.md | 20 +- ...em-235-an-arithmetic-geometric-sequence.md | 18 +- .../problem-236-luxury-hampers.md | 35 ++- ...blem-237-tours-on-a-4-x-n-playing-board.md | 27 ++- .../problem-238-infinite-string-tour.md | 31 +-- .../problem-239-twenty-two-foolish-primes.md | 10 +- .../problem-24-lexicographic-permutations.md | 2 +- .../project-euler/problem-240-top-dice.md | 20 +- .../problem-241-perfection-quotients.md | 18 +- .../project-euler/problem-242-odd-triplets.md | 18 +- .../project-euler/problem-243-resilience.md | 22 +- .../project-euler/problem-244-sliders.md | 26 ++- .../project-euler/problem-245-coresilience.md | 22 +- .../problem-246-tangents-to-an-ellipse.md | 30 ++- .../problem-247-squares-under-a-hyperbola.md | 30 ++- ...which-eulers-totient-function-equals-13.md | 14 +- .../problem-249-prime-subset-sums.md | 16 +- .../problem-25-1000-digit-fibonacci-number.md | 4 +- .../project-euler/problem-250-250250.md | 12 +- .../problem-251-cardano-triplets.md | 18 +- .../project-euler/problem-252-convex-holes.md | 17 +- .../project-euler/problem-253-tidying-up.md | 43 ++-- .../problem-254-sums-of-digit-factorials.md | 22 +- .../problem-255-rounded-square-roots.md | 41 +++- .../problem-256-tatami-free-rooms.md | 24 +- .../problem-257-angular-bisectors.md | 20 +- ...problem-258-a-lagged-fibonacci-sequence.md | 17 +- .../problem-259-reachable-numbers.md | 19 +- .../problem-26-reciprocal-cycles.md | 2 +- .../project-euler/problem-260-stone-game.md | 32 ++- .../problem-261-pivotal-square-sums.md | 22 +- .../problem-262-mountain-range.md | 22 +- ...roblem-263-an-engineers-dream-come-true.md | 27 ++- .../problem-264-triangle-centres.md | 43 ++-- .../problem-265-binary-circles.md | 25 +- .../problem-266-pseudo-square-root.md | 16 +- .../project-euler/problem-267-billionaire.md | 16 +- ...ur-distinct-prime-factors-less-than-100.md | 16 +- ...ynomials-with-at-least-one-integer-root.md | 28 ++- .../problem-27-quadratic-primes.md | 2 +- .../problem-270-cutting-squares.md | 26 +-- .../problem-271-modular-cubes-part-1.md | 16 +- .../problem-272-modular-cubes-part-2.md | 16 +- .../problem-273-sum-of-squares.md | 24 +- .../problem-274-divisibility-multipliers.md | 24 +- .../problem-275-balanced-sculptures.md | 27 +-- .../problem-276-primitive-triangles.md | 16 +- ...problem-277-a-modified-collatz-sequence.md | 30 +-- ...m-278-linear-combinations-of-semiprimes.md | 18 +- ...th-integral-sides-and-an-integral-angle.md | 12 +- .../problem-28-number-spiral-diagonals.md | 2 +- .../problem-280-ant-and-seeds.md | 10 +- .../problem-281-pizza-toppings.md | 20 +- .../problem-282-the-ackermann-function.md | 19 +- ...h-the-area--perimeter-ratio-is-integral.md | 16 +- .../problem-284-steady-squares.md | 24 +- .../problem-285-pythagorean-odds.md | 20 +- .../problem-286-scoring-probabilities.md | 18 +- ...encoding-a-simple-compression-algorithm.md | 35 +-- .../problem-288-an-enormous-factorial.md | 23 +- .../problem-289-eulerian-cycles.md | 24 +- .../problem-29-distinct-powers.md | 6 +- .../problem-290-digital-signature.md | 12 +- .../problem-291-panaitopol-primes.md | 14 +- .../problem-292-pythagorean-polygons.md | 25 +- .../problem-293-pseudo-fortunate-numbers.md | 22 +- ...oblem-294-sum-of-digits---experience-23.md | 21 +- .../problem-295-lenticular-holes.md | 31 +-- ...roblem-296-angular-bisector-and-tangent.md | 18 +- .../problem-297-zeckendorf-representation.md | 22 +- .../problem-298-selective-amnesia.md | 33 ++- .../problem-299-three-similar-triangles.md | 32 +-- .../problem-30-digit-n-powers.md | 2 +- .../problem-300-protein-folding.md | 24 +- .../project-euler/problem-301-nim.md | 33 +-- .../problem-302-strong-achilles-numbers.md | 24 +- ...problem-303-multiples-with-small-digits.md | 18 +- .../project-euler/problem-304-primonacci.md | 20 +- .../problem-305-reflexive-position.md | 20 +- .../problem-306-paper-strip-game.md | 26 ++- .../project-euler/problem-307-chip-defects.md | 16 +- ...8-an-amazing-prime-generating-automaton.md | 24 +- .../problem-309-integer-ladders.md | 20 +- .../project-euler/problem-31-coin-sums.md | 2 +- .../project-euler/problem-310-nim-square.md | 16 +- ...em-311-biclinic-integral-quadrilaterals.md | 24 +- ...em-312-cyclic-paths-on-sierpiski-graphs.md | 27 ++- .../project-euler/problem-313-sliding-game.md | 20 +- .../problem-314-the-mouse-on-the-moon.md | 22 +- .../problem-315-digital-root-clocks.md | 36 ++- ...oblem-316-numbers-in-decimal-expansions.md | 34 +-- .../project-euler/problem-317-firecracker.md | 16 +- .../project-euler/problem-318-2011-nines.md | 46 ++-- .../problem-319-bounded-sequences.md | 24 +- .../problem-32-pandigital-products.md | 2 +- ...-factorials-divisible-by-a-huge-integer.md | 18 +- .../problem-321-swapping-counters.md | 22 +- ...2-binomial-coefficients-divisible-by-10.md | 16 +- ...itwise-or-operations-on-random-integers.md | 23 +- .../problem-324-building-a-tower.md | 20 +- .../problem-325-stone-game-ii.md | 18 +- .../problem-326-modulo-summations.md | 24 +- .../problem-327-rooms-of-doom.md | 30 ++- .../problem-328-lowest-cost-search.md | 32 +-- .../project-euler/problem-329-prime-frog.md | 22 +- .../problem-33-digit-cancelling-fractions.md | 2 +- .../project-euler/problem-331-cross-flips.md | 22 +- .../problem-332-spherical-triangles.md | 24 +- .../problem-333-special-partitions.md | 29 +-- .../problem-334-spilling-the-beans.md | 23 +- .../problem-335-gathering-the-beans.md | 16 +- .../problem-336-maximix-arrangements.md | 32 ++- ...problem-337-totient-stairstep-sequences.md | 26 +-- ...blem-338-cutting-rectangular-grid-paper.md | 24 +- .../problem-339-peredur-fab-efrawg.md | 18 +- .../problem-34-digit-factorials.md | 4 +- .../problem-340-crazy-function.md | 23 +- ...em-341-golombs-self-describing-sequence.md | 23 +- ...m-342-the-totient-of-a-square-is-a-cube.md | 17 +- .../problem-343-fractional-sequences.md | 31 ++- .../problem-344-silver-dollar-game.md | 18 +- .../project-euler/problem-345-matrix-sum.md | 27 ++- .../problem-346-strong-repunits.md | 16 +- ...largest-integer-divisible-by-two-primes.md | 22 +- .../problem-348-sum-of-a-square-and-a-cube.md | 18 +- .../project-euler/problem-349-langtons-ant.md | 17 +- .../problem-35-circular-primes.md | 4 +- ...e-least-greatest-and-the-greatest-least.md | 24 +- .../problem-351-hexagonal-orchards.md | 20 +- .../project-euler/problem-352-blood-tests.md | 38 ++- .../project-euler/problem-353-risky-moon.md | 28 +-- ...oblem-354-distances-in-a-bees-honeycomb.md | 18 +- .../problem-355-maximal-coprime-subset.md | 16 +- ...-356-largest-roots-of-cubic-polynomials.md | 20 +- .../problem-357-prime-generating-integers.md | 16 +- .../problem-358-cyclic-numbers.md | 29 ++- .../problem-359-hilberts-new-hotel.md | 32 ++- .../problem-36-double-base-palindromes.md | 2 +- .../project-euler/problem-360-scary-sphere.md | 22 +- ...-361-subsequence-of-thue-morse-sequence.md | 31 +-- .../problem-362-squarefree-factors.md | 22 +- .../project-euler/problem-363-bzier-curves.md | 30 ++- .../problem-364-comfortable-distance.md | 24 +- ...problem-365-a-huge-binomial-coefficient.md | 16 +- .../problem-366-stone-game-iii.md | 34 ++- .../project-euler/problem-367-bozo-sort.md | 28 ++- .../problem-368-a-kempner-like-series.md | 19 +- .../project-euler/problem-369-badugi.md | 14 +- .../problem-37-truncatable-primes.md | 2 +- .../problem-370-geometric-triangles.md | 18 +- .../problem-371-licence-plates.md | 16 +- .../problem-372-pencils-of-rays.md | 18 +- .../problem-373-circumscribed-circles.md | 20 +- ...m-374-maximum-integer-partition-product.md | 28 +-- .../problem-375-minimum-of-subsequences.md | 31 +-- .../problem-376-nontransitive-sets-of-dice.md | 37 ++- ...problem-377-sum-of-digits-experience-13.md | 14 +- .../problem-378-triangle-triples.md | 22 +- ...problem-379-least-common-multiple-count.md | 18 +- .../problem-38-pandigital-multiples.md | 6 +- .../problem-380-amazing-mazes.md | 28 ++- .../problem-381-prime-k-factorial.md | 22 +- .../problem-382-generating-polygons.md | 37 ++- ...isibility-comparison-between-factorials.md | 20 +- .../problem-384-rudin-shapiro-sequence.md | 39 ++-- .../problem-385-ellipses-inside-triangles.md | 30 +-- ...blem-386-maximum-length-of-an-antichain.md | 24 +- .../problem-387-harshad-numbers.md | 18 +- .../problem-388-distinct-lines.md | 18 +- .../problem-389-platonic-dice.md | 22 +- .../problem-39-integer-right-triangles.md | 2 +- ...th-non-rational-sides-and-integral-area.md | 22 +- .../project-euler/problem-391-hopping-game.md | 33 +-- .../problem-392-enmeshed-unit-circle.md | 28 ++- .../problem-393-migrating-ants.md | 18 +- .../project-euler/problem-394-eating-pie.md | 29 +-- .../problem-395-pythagorean-tree.md | 18 +- .../problem-396-weak-goodstein-sequence.md | 32 ++- .../problem-397-triangle-on-parabola.md | 18 +- .../project-euler/problem-398-cutting-rope.md | 16 +- ...roblem-399-squarefree-fibonacci-numbers.md | 32 +-- .../problem-4-largest-palindrome-product.md | 12 +- .../problem-40-champernownes-constant.md | 2 +- .../problem-400-fibonacci-tree-game.md | 28 +-- .../problem-401-sum-of-squares-of-divisors.md | 20 +- .../problem-402-integer-valued-polynomials.md | 25 +- ...ce-points-enclosed-by-parabola-and-line.md | 20 +- .../problem-404-crisscross-ellipses.md | 30 ++- .../problem-405-a-rectangular-tiling.md | 24 +- .../problem-406-guessing-game.md | 42 ++-- .../project-euler/problem-407-idempotents.md | 18 +- ...lem-408-admissible-paths-through-a-grid.md | 18 +- .../project-euler/problem-409-nim-extreme.md | 24 +- .../problem-41-pandigital-prime.md | 2 +- .../problem-410-circle-and-tangent-line.md | 20 +- .../project-euler/problem-411-uphill-paths.md | 24 +- .../problem-412-gnomon-numbering.md | 26 ++- .../problem-413-one-child-numbers.md | 20 +- .../problem-414-kaprekar-constant.md | 32 +-- .../project-euler/problem-415-titanic-sets.md | 18 +- .../project-euler/problem-416-a-frogs-trip.md | 18 +- .../problem-417-reciprocal-cycles-ii.md | 23 +- .../problem-418-factorisation-triples.md | 21 +- .../problem-419-look-and-say-sequence.md | 31 ++- .../problem-42-coded-triangle-numbers.md | 2 +- ...problem-420-2x2-positive-integer-matrix.md | 27 ++- .../problem-421-prime-factors-of-n151.md | 26 ++- ...m-422-sequence-of-points-on-a-hyperbola.md | 28 ++- .../problem-423-consecutive-die-throws.md | 33 ++- .../project-euler/problem-424-kakuro.md | 43 +++- .../problem-425-prime-connection.md | 27 ++- .../problem-426-box-ball-system.md | 27 ++- .../project-euler/problem-427-n-sequences.md | 22 +- .../problem-428-necklace-of-circles.md | 31 +-- ...-429-sum-of-squares-of-unitary-divisors.md | 20 +- .../problem-43-sub-string-divisibility.md | 2 +- .../project-euler/problem-430-range-flips.md | 22 +- .../problem-431-square-space-silo.md | 20 +- .../project-euler/problem-432-totient-sum.md | 16 +- .../problem-433-steps-in-euclids-algorithm.md | 25 +- .../project-euler/problem-434-rigid-graphs.md | 30 ++- ...em-435-polynomials-of-fibonacci-numbers.md | 18 +- .../project-euler/problem-436-unfair-wager.md | 24 +- .../problem-437-fibonacci-primitive-roots.md | 36 ++- ...-part-of-polynomial-equations-solutions.md | 25 +- .../problem-439-sum-of-sum-of-divisors.md | 20 +- .../problem-44-pentagon-numbers.md | 2 +- .../problem-440-gcd-and-tiling.md | 31 ++- ...he-inverse-summation-of-coprime-couples.md | 22 +- .../problem-442-eleven-free-integers.md | 14 +- .../project-euler/problem-443-gcd-sequence.md | 24 +- .../problem-444-the-roundtable-lottery.md | 26 ++- .../problem-445-retractions-a.md | 24 +- .../problem-446-retractions-b.md | 24 +- .../problem-447-retractions-c.md | 24 +- ...oblem-448-average-least-common-multiple.md | 24 +- .../problem-449-chocolate-covered-candy.md | 22 +- ...-45-triangular-pentagonal-and-hexagonal.md | 2 +- ...blem-450-hypocycloid-and-lattice-points.md | 35 +-- .../problem-451-modular-inverses.md | 33 ++- .../problem-452-long-products.md | 18 +- .../problem-453-lattice-quadrilaterals.md | 20 +- ...problem-454-diophantine-reciprocals-iii.md | 20 +- ...problem-455-powers-with-trailing-digits.md | 18 +- ...-456-triangles-containing-the-origin-ii.md | 26 ++- ...polynomial-modulo-the-square-of-a-prime.md | 20 +- .../problem-458-permutations-of-project.md | 18 +- .../problem-459-flipping-game.md | 32 ++- .../problem-46-goldbachs-other-conjecture.md | 2 +- .../problem-460-an-ant-on-the-move.md | 31 ++- .../project-euler/problem-461-almost-pi.md | 2 +- ...lem-462-permutation-of-3-smooth-numbers.md | 28 ++- ...problem-463-a-weird-recurrence-relation.md | 24 +- ...roblem-464-mbius-function-and-intervals.md | 31 ++- .../problem-465-polar-polygons.md | 20 +- ...istinct-terms-in-a-multiplication-table.md | 26 ++- .../project-euler/problem-467-superinteger.md | 31 ++- ...mooth-divisors-of-binomial-coefficients.md | 30 ++- .../project-euler/problem-469-empty-chairs.md | 18 +- .../problem-47-distinct-primes-factors.md | 60 ++--- .../project-euler/problem-470-super-ramvok.md | 18 +- ...oblem-471-triangle-inscribed-in-ellipse.md | 34 ++- .../problem-472-comfortable-distance-ii.md | 30 +-- .../problem-473-phigital-number-base.md | 20 +- .../problem-474-last-digits-of-divisors.md | 18 +- .../problem-475-music-festival.md | 20 +- .../problem-476-circle-packing-ii.md | 18 +- .../problem-477-number-sequence-game.md | 46 ++-- .../project-euler/problem-478-mixtures.md | 30 ++- .../problem-479-roots-on-the-rise.md | 20 +- .../project-euler/problem-48-self-powers.md | 2 +- .../problem-480-the-last-question.md | 100 +++----- .../problem-49-prime-permutations.md | 2 +- .../problem-5-smallest-multiple.md | 16 +- .../problem-50-consecutive-prime-sum.md | 92 +++++--- .../problem-51-prime-digit-replacements.md | 115 +++++----- .../problem-52-permuted-multiples.md | 2 +- .../problem-53-combinatoric-selections.md | 2 +- .../project-euler/problem-54-poker-hands.md | 2 +- .../problem-55-lychrel-numbers.md | 2 +- .../problem-56-powerful-digit-sum.md | 2 +- .../problem-57-square-root-convergents.md | 2 +- .../project-euler/problem-58-spiral-primes.md | 2 +- .../problem-59-xor-decryption.md | 2 +- .../problem-6-sum-square-difference.md | 2 +- .../problem-60-prime-pair-sets.md | 4 +- .../problem-61-cyclical-figurate-numbers.md | 8 +- .../problem-62-cubic-permutations.md | 2 +- .../problem-63-powerful-digit-counts.md | 2 +- .../problem-64-odd-period-square-roots.md | 4 +- .../problem-65-convergents-of-e.md | 2 +- .../problem-66-diophantine-equation.md | 10 +- .../problem-67-maximum-path-sum-ii.md | 2 +- .../problem-68-magic-5-gon-ring.md | 2 +- .../problem-69-totient-maximum.md | 2 +- .../project-euler/problem-7-10001st-prime.md | 2 +- .../problem-70-totient-permutation.md | 2 +- .../problem-71-ordered-fractions.md | 2 +- .../problem-72-counting-fractions.md | 2 +- ...roblem-73-counting-fractions-in-a-range.md | 2 +- .../problem-74-digit-factorial-chains.md | 12 +- ...lem-75-singular-integer-right-triangles.md | 2 +- .../problem-76-counting-summations.md | 6 +- .../problem-77-prime-summations.md | 2 +- .../problem-78-coin-partitions.md | 2 +- .../problem-79-passcode-derivation.md | 2 +- .../problem-8-largest-product-in-a-series.md | 2 +- ...roblem-80-square-root-digital-expansion.md | 2 +- .../problem-81-path-sum-two-ways.md | 6 +- .../problem-82-path-sum-three-ways.md | 6 +- .../problem-83-path-sum-four-ways.md | 8 +- .../project-euler/problem-84-monopoly-odds.md | 4 +- .../problem-85-counting-rectangles.md | 2 +- .../project-euler/problem-86-cuboid-route.md | 2 +- .../problem-87-prime-power-triples.md | 2 +- .../problem-88-product-sum-numbers.md | 2 +- .../problem-89-roman-numerals.md | 2 +- .../problem-9-special-pythagorean-triplet.md | 4 +- .../problem-90-cube-digit-pairs.md | 2 +- ...ight-triangles-with-integer-coordinates.md | 2 +- .../problem-93-arithmetic-expressions.md | 8 +- ...problem-94-almost-equilateral-triangles.md | 18 +- .../problem-97-large-non-mersenne-prime.md | 2 +- .../problem-98-anagramic-squares.md | 2 +- .../problem-99-largest-exponential.md | 2 +- .../rosetta-code/24-game.md | 141 ++++++++---- .../9-billion-names-of-god-the-integer.md | 6 +- .../rosetta-code/abc-problem.md | 2 +- ...ient-and-perfect-number-classifications.md | 2 +- .../rosetta-code/accumulator-factory.md | 4 +- .../rosetta-code/ackermann-function.md | 2 +- .../rosetta-code/align-columns.md | 14 +- .../rosetta-code/amicable-pairs.md | 12 +- .../rosetta-code/averages-mode.md | 4 +- .../averages-pythagorean-means.md | 4 +- .../rosetta-code/averages-root-mean-square.md | 8 +- .../rosetta-code/babbage-problem.md | 6 +- .../rosetta-code/balanced-brackets.md | 44 ++-- ...cles-of-given-radius-through-two-points.md | 2 +- .../rosetta-code/closest-pair-problem.md | 2 +- .../rosetta-code/combinations.md | 4 +- .../rosetta-code/comma-quibbling.md | 14 +- .../rosetta-code/compare-a-list-of-strings.md | 10 +- .../convert-seconds-to-compound-duration.md | 2 +- .../count-occurrences-of-a-substring.md | 2 +- .../rosetta-code/count-the-coins.md | 34 +-- .../rosetta-code/cramers-rule.md | 12 +- .../cumulative-standard-deviation.md | 29 ++- .../rosetta-code/cusip.md | 2 +- .../rosetta-code/cut-a-rectangle.md | 2 +- .../rosetta-code/date-manipulation.md | 4 +- .../rosetta-code/day-of-the-week.md | 2 +- .../rosetta-code/deal-cards-for-freecell.md | 10 +- .../rosetta-code/deepcopy.md | 2 +- .../define-a-primitive-data-type.md | 2 +- .../rosetta-code/department-numbers.md | 4 +- .../rosetta-code/discordian-date.md | 21 +- .../rosetta-code/dot-product.md | 4 +- .../rosetta-code/element-wise-operations.md | 2 +- .../rosetta-code/emirp-primes.md | 2 +- .../rosetta-code/entropy.md | 2 +- .../rosetta-code/equilibrium-index.md | 4 +- .../rosetta-code/ethiopian-multiplication.md | 2 +- .../rosetta-code/euler-method.md | 4 +- .../evaluate-binomial-coefficients.md | 2 +- .../execute-a-markov-algorithm.md | 212 ++++++----------- .../rosetta-code/execute-brain.md | 24 +- .../extensible-prime-generator.md | 4 +- .../rosetta-code/factorial.md | 4 +- .../factors-of-a-mersenne-number.md | 10 +- .../rosetta-code/factors-of-an-integer.md | 2 +- .../rosetta-code/farey-sequence.md | 4 +- .../fibonacci-n-step-number-sequences.md | 8 +- .../rosetta-code/fibonacci-sequence.md | 2 +- .../rosetta-code/fibonacci-word.md | 114 +++++---- .../rosetta-code/fizzbuzz.md | 2 +- .../rosetta-code/fractran.md | 4 +- .../rosetta-code/gamma-function.md | 4 +- .../rosetta-code/gaussian-elimination.md | 2 +- .../rosetta-code/general-fizzbuzz.md | 4 +- .../generate-lower-case-ascii-alphabet.md | 2 +- .../rosetta-code/generator-exponential.md | 2 +- .../rosetta-code/gray-code.md | 8 +- .../rosetta-code/greatest-common-divisor.md | 2 +- .../greatest-subsequential-sum.md | 2 +- .../rosetta-code/hailstone-sequence.md | 6 +- .../rosetta-code/happy-numbers.md | 4 +- .../rosetta-code/harshad-or-niven-series.md | 2 +- .../rosetta-code/hash-from-two-arrays.md | 16 +- .../rosetta-code/hash-join.md | 12 +- .../rosetta-code/heronian-triangles.md | 4 +- .../hofstadter-figure-figure-sequences.md | 26 +-- .../rosetta-code/hofstadter-q-sequence.md | 6 +- .../rosetta-code/i-before-e-except-after-c.md | 24 +- .../rosetta-code/iban.md | 14 +- .../rosetta-code/identity-matrix.md | 2 +- .../rosetta-code/iterated-digits-squaring.md | 2 +- .../rosetta-code/jaro-distance.md | 4 +- .../rosetta-code/jortsort.md | 4 +- .../rosetta-code/josephus-problem.md | 6 +- .../rosetta-code/k-d-tree.md | 2 +- .../rosetta-code/kaprekar-numbers.md | 10 +- .../rosetta-code/knapsack-problem-0-1.md | 2 +- .../rosetta-code/knapsack-problem-bounded.md | 2 +- .../knapsack-problem-continuous.md | 2 +- .../knapsack-problem-unbounded.md | 2 +- .../rosetta-code/knights-tour.md | 16 +- .../largest-int-from-concatenated-ints.md | 2 +- .../rosetta-code/last-friday-of-each-month.md | 2 +- .../rosetta-code/last-letter-first-letter.md | 2 +- .../rosetta-code/leap-year.md | 2 +- .../rosetta-code/least-common-multiple.md | 6 +- .../rosetta-code/left-factorials.md | 2 +- .../rosetta-code/letter-frequency.md | 2 +- .../rosetta-code/levenshtein-distance.md | 6 +- .../linear-congruential-generator.md | 6 +- .../rosetta-code/long-multiplication.md | 4 +- .../longest-common-subsequence.md | 22 +- .../longest-increasing-subsequence.md | 8 +- .../rosetta-code/longest-string-challenge.md | 4 +- .../rosetta-code/look-and-say-sequence.md | 4 +- ...oop-over-multiple-arrays-simultaneously.md | 2 +- .../rosetta-code/lu-decomposition.md | 6 +- .../rosetta-code/lucas-lehmer-test.md | 2 +- .../rosetta-code/ludic-numbers.md | 26 +-- .../luhn-test-of-credit-card-numbers.md | 6 +- .../rosetta-code/lychrel-numbers.md | 4 +- .../rosetta-code/lzw-compression.md | 4 +- .../rosetta-code/s-expressions.md | 16 +- .../sailors-coconuts-and-a-monkey-problem.md | 17 +- .../rosetta-code/search-a-list-of-records.md | 2 +- .../rosetta-code/sedols.md | 13 +- .../rosetta-code/self-describing-numbers.md | 6 +- .../rosetta-code/self-referential-sequence.md | 4 +- .../rosetta-code/semiprime.md | 4 +- .../rosetta-code/set-consolidation.md | 2 +- .../rosetta-code/set-of-real-numbers.md | 2 +- .../rosetta-code/sha-1.md | 4 +- .../sort-an-array-of-composite-structures.md | 2 +- .../rosetta-code/sort-disjoint-sublist.md | 2 +- .../rosetta-code/sort-stability.md | 4 +- .../sort-using-a-custom-comparator.md | 2 +- .../sorting-algorithms-bead-sort.md | 38 +-- .../sorting-algorithms-bogosort.md | 6 +- .../sorting-algorithms-cocktail-sort.md | 26 +-- .../sorting-algorithms-comb-sort.md | 12 +- .../sorting-algorithms-gnome-sort.md | 4 +- .../sorting-algorithms-pancake-sort.md | 4 +- .../sorting-algorithms-permutation-sort.md | 4 +- .../sorting-algorithms-shell-sort.md | 4 +- .../sorting-algorithms-stooge-sort.md | 4 +- .../sorting-algorithms-strand-sort.md | 18 +- .../rosetta-code/soundex.md | 14 +- .../rosetta-code/spiral-matrix.md | 2 +- ...ter-string-based-on-change-of-character.md | 2 +- .../rosetta-code/state-name-puzzle.md | 9 +- .../rosetta-code/stern-brocot-sequence.md | 4 +- .../rosetta-code/straddling-checkerboard.md | 10 +- .../rosetta-code/stream-merge.md | 2 +- ...s-and-extended-characters-from-a-string.md | 2 +- .../rosetta-code/subleq.md | 36 +-- .../rosetta-code/sudoku.md | 4 +- .../rosetta-code/sum-digits-of-an-integer.md | 2 +- .../rosetta-code/sum-multiples-of-3-and-5.md | 2 +- .../rosetta-code/sum-of-a-series.md | 4 +- .../rosetta-code/sum-of-squares.md | 2 +- .../rosetta-code/sum-to-100.md | 2 +- .../sutherland-hodgman-polygon-clipping.md | 4 +- .../rosetta-code/symmetric-difference.md | 8 +- .../rosetta-code/taxicab-numbers.md | 11 +- .../tokenize-a-string-with-escaping.md | 6 +- .../rosetta-code/top-rank-per-group.md | 2 +- .../rosetta-code/topological-sort.md | 2 +- .../rosetta-code/towers-of-hanoi.md | 10 +- .../rosetta-code/vector-cross-product.md | 4 +- .../rosetta-code/vector-dot-product.md | 2 +- .../rosetta-code/word-frequency.md | 4 +- .../rosetta-code/word-wrap.md | 2 +- .../rosetta-code/y-combinator.md | 12 +- .../zeckendorf-number-representation.md | 2 +- .../zhang-suen-thinning-algorithm.md | 18 +- .../rosetta-code/zig-zag-matrix.md | 6 +- .../build-a-camper-leaderboard.md | 8 +- .../build-a-light-bright-app.md | 20 +- .../build-a-nightlife-coordination-app.md | 12 +- .../build-a-pinterest-clone.md | 8 +- .../take-home-projects/build-a-pong-game.md | 14 +- .../take-home-projects/build-a-recipe-box.md | 6 +- .../build-a-roguelike-dungeon-crawler-game.md | 8 +- .../take-home-projects/build-a-simon-game.md | 6 +- .../build-a-tic-tac-toe-game.md | 6 +- .../take-home-projects/build-a-voting-app.md | 2 +- .../build-a-wikipedia-viewer.md | 16 +- ...build-an-image-search-abstraction-layer.md | 2 +- .../build-the-game-of-life.md | 23 +- .../chart-the-stock-market.md | 2 +- .../manage-a-book-trading-club.md | 6 +- .../map-data-across-the-globe.md | 8 +- .../p2p-video-chat-application.md | 6 +- ...-contiguity-with-a-force-directed-graph.md | 6 +- .../show-the-local-weather.md | 8 +- .../use-the-twitch-json-api.md | 16 +- .../book-recommendation-engine-using-knn.md | 45 +++- .../cat-and-dog-image-classifier.md | 94 +++++++- ...near-regression-health-costs-calculator.md | 26 ++- .../neural-network-sms-text-classifier.md | 18 +- .../rock-paper-scissors.md | 50 +++- .../neural-networks-activation-functions.md | 2 +- .../build-a-survey-form.md | 12 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 27 ++- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 13 +- .../6153a3952facd25a83fe8083.md | 2 +- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 8 +- .../5dfa22d1b521be39a3de7be0.md | 11 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 2 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 9 +- .../60f803d5241e6a0433a523a1.md | 9 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 4 +- .../62a8cf22272d6d35af80d4ac.md | 2 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 2 +- .../62a8d61ddfe35744369365b7.md | 6 +- .../62a8d6c7001ebc45350e3d16.md | 4 +- .../62a8e35675c18c56354c08cf.md | 6 +- .../62a8e41e2f190c58404dd46e.md | 4 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 2 +- .../62a8eec45f77bc69e8775294.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 2 +- .../62a8efb0e3ce826db8daf80f.md | 2 +- .../62a8eff21c0b0f6ebe5b8e38.md | 2 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 6 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- .../build-a-survey-form.md | 12 +- .../falsy-bouncer.md | 10 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../visualize-data-with-a-bar-chart.md | 6 +- .../visualize-data-with-a-choropleth-map.md | 6 +- .../visualize-data-with-a-heat-map.md | 6 +- ...visualize-data-with-a-scatterplot-graph.md | 6 +- .../visualize-data-with-a-treemap-diagram.md | 6 +- .../mongodb-and-mongoose/create-a-model.md | 6 +- .../authentication-strategies.md | 6 +- .../authentication-with-socket.io.md | 4 +- .../clean-up-your-project-with-modules.md | 2 +- .../communicate-by-emitting.md | 2 +- .../create-new-middleware.md | 2 +- .../handle-a-disconnect.md | 2 +- .../hashing-your-passwords.md | 4 +- .../how-to-put-a-profile-together.md | 2 +- .../how-to-use-passport-strategies.md | 2 +- ...nt-the-serialization-of-a-passport-user.md | 4 +- ...lementation-of-social-authentication-ii.md | 18 +- ...ementation-of-social-authentication-iii.md | 2 +- ...implementation-of-social-authentication.md | 4 +- .../logging-a-user-out.md | 4 +- .../registration-of-new-users.md | 2 +- .../send-and-display-chat-messages.md | 2 +- .../serialization-of-a-user-object.md | 4 +- .../set-up-a-template-engine.md | 14 +- .../set-up-passport.md | 22 +- .../set-up-the-environment.md | 6 +- .../use-a-template-engines-powers.md | 36 ++- ...ality-with-.deepequal-and-.notdeepequal.md | 2 +- .../compare-the-properties-of-two-elements.md | 14 +- .../learn-how-javascript-assertions-work.md | 4 +- ...sponse-using-chai-http-iii---put-method.md | 2 +- ...esponse-using-chai-http-iv---put-method.md | 2 +- ...sts-on-api-endpoints-using-chai-http-ii.md | 2 +- ...-tests-on-api-endpoints-using-chai-http.md | 2 +- ...ional-tests-using-a-headless-browser-ii.md | 4 +- ...nctional-tests-using-a-headless-browser.md | 2 +- ...mulate-actions-using-a-headless-browser.md | 2 +- .../test-for-truthiness.md | 2 +- .../test-if-a-string-contains-a-substring.md | 2 +- ...f-a-value-falls-within-a-specific-range.md | 2 +- .../test-if-a-value-is-a-string.md | 2 +- ...ue-is-of-a-specific-data-structure-type.md | 2 +- ...st-if-a-variable-or-function-is-defined.md | 2 +- .../test-if-an-array-contains-an-item.md | 2 +- .../test-if-an-object-has-a-property.md | 2 +- ...-object-is-an-instance-of-a-constructor.md | 2 +- ...s-below-or-at-least-as-large-as-another.md | 2 +- .../use-assert.isok-and-assert.isnotok.md | 4 +- ...se-regular-expressions-to-test-a-string.md | 2 +- ...se-the-double-equals-to-assert-equality.md | 2 +- ...triple-equals-to-assert-strict-equality.md | 2 +- .../american-british-translator.md | 6 +- .../issue-tracker.md | 6 +- .../metric-imperial-converter.md | 6 +- .../personal-library.md | 6 +- .../sudoku-solver.md | 30 +-- .../build-your-own-functions.md | 2 +- .../comparing-and-sorting-tuples.md | 2 +- .../data-visualization-mailing-lists.md | 14 +- .../dictionaries-and-loops.md | 2 +- .../files-as-a-sequence.md | 2 +- .../intermediate-expressions.md | 4 +- .../intermediate-strings.md | 2 +- .../introduction-why-program.md | 4 +- .../iterations-more-patterns.md | 2 +- .../more-conditional-structures.md | 4 +- .../networking-web-scraping-with-python.md | 6 +- .../relational-databases-and-sqlite.md | 14 +- ...al-databases-many-to-many-relationships.md | 10 +- .../python-for-everybody/strings-and-lists.md | 2 +- ...services-api-rate-limiting-and-security.md | 8 +- .../arithmetic-formatter.md | 4 +- .../budget-app.md | 2 +- .../polygon-area-calculator.md | 2 +- .../probability-calculator.md | 4 +- .../time-calculator.md | 2 +- .../introduction-to-data-analysis.md | 9 +- .../demographic-data-analyzer.md | 9 +- ...-variance-standard-deviation-calculator.md | 7 +- .../medical-data-visualizer.md | 35 +-- .../page-view-time-series-visualizer.md | 15 +- .../sea-level-predictor.md | 14 +- .../anonymous-message-board.md | 6 +- .../port-scanner.md | 8 +- .../secure-real-time-multiplayer-game.md | 55 +++-- .../sha-1-password-cracker.md | 10 +- .../stock-price-checker.md | 8 +- ...ur-site-via-https-only-with-helmet.hsts.md | 2 +- ...-response-mime-type-with-helmet.nosniff.md | 2 +- ...lmet-using-the-parent-helmet-middleware.md | 2 +- ...client-side-caching-with-helmet.nocache.md | 2 +- ...fetching-with-helmet.dnsprefetchcontrol.md | 2 +- ...sh-and-compare-passwords-asynchronously.md | 2 +- ...ash-and-compare-passwords-synchronously.md | 2 +- ...-information-using-helmet.hidepoweredby.md | 2 +- .../install-and-require-helmet.md | 6 +- ...-of-clickjacking-with-helmet.frameguard.md | 2 +- ...pting-xss-attacks-with-helmet.xssfilter.md | 2 +- ...ing-untrusted-html-with-helmet.ienoopen.md | 2 +- ...olicy-with-helmet.contentsecuritypolicy.md | 2 +- .../understand-bcrypt-hashes.md | 10 +- .../find-the-symmetric-difference.md | 4 +- ...d-a-new-element-to-a-binary-search-tree.md | 2 +- ...ts-at-a-specific-index-in-a-linked-list.md | 6 +- .../data-structures/adjacency-list.md | 2 +- .../check-if-binary-search-tree.md | 20 +- .../create-a-circular-queue.md | 2 +- .../create-a-doubly-linked-list.md | 10 +- .../data-structures/create-a-hash-table.md | 14 +- .../create-a-linked-list-class.md | 3 +- .../create-a-map-data-structure.md | 16 +- .../create-a-trie-search-tree.md | 12 +- .../create-an-es6-javascript-map.md | 18 +- ...ete-a-leaf-node-in-a-binary-search-tree.md | 21 ++ ...-with-one-child-in-a-binary-search-tree.md | 13 +- .../data-structures/depth-first-search.md | 17 ++ .../implement-heap-sort-with-a-min-heap.md | 10 +- .../data-structures/incidence-matrix.md | 2 +- .../insert-an-element-into-a-max-heap.md | 48 ++-- ...form-a-subset-check-on-two-sets-of-data.md | 18 +- .../perform-a-union-on-two-sets.md | 2 +- .../remove-an-element-from-a-max-heap.md | 42 ++-- ...ve-elements-from-a-linked-list-by-index.md | 2 +- .../reverse-a-doubly-linked-list.md | 10 +- .../search-within-a-linked-list.md | 2 +- ...th-first-search-in-a-binary-search-tree.md | 6 +- .../problem-1-multiples-of-3-and-5.md | 18 +- .../problem-10-summation-of-primes.md | 53 +++-- .../problem-100-arranged-probability.md | 2 +- .../problem-101-optimum-polynomial.md | 6 +- .../problem-102-triangle-containment.md | 2 +- ...problem-103-special-subset-sums-optimum.md | 21 +- .../problem-104-pandigital-fibonacci-ends.md | 2 +- ...problem-105-special-subset-sums-testing.md | 4 +- ...em-106-special-subset-sums-meta-testing.md | 4 +- .../problem-107-minimal-network.md | 6 +- .../problem-108-diophantine-reciprocals-i.md | 6 +- .../project-euler/problem-109-darts.md | 9 +- .../problem-11-largest-product-in-a-grid.md | 4 +- .../problem-110-diophantine-reciprocals-ii.md | 4 +- .../problem-111-primes-with-runs.md | 2 +- .../problem-112-bouncy-numbers.md | 2 +- .../problem-113-non-bouncy-numbers.md | 4 +- ...oblem-114-counting-block-combinations-i.md | 10 +- .../problem-116-red-green-or-blue-tiles.md | 14 +- .../problem-117-red-green-and-blue-tiles.md | 8 +- .../problem-118-pandigital-prime-sets.md | 8 +- .../problem-119-digit-power-sum.md | 12 +- ...m-12-highly-divisible-triangular-number.md | 6 +- .../problem-121-disc-game-prize-fund.md | 18 +- .../problem-122-efficient-exponentiation.md | 27 ++- .../problem-124-ordered-radicals.md | 140 +++++++++--- .../problem-125-palindromic-sums.md | 16 +- .../problem-126-cuboid-layers.md | 22 +- .../project-euler/problem-127-abc-hits.md | 40 ++-- .../problem-128-hexagonal-tile-differences.md | 78 ++++++- .../project-euler/problem-13-large-sum.md | 4 +- .../problem-135-same-differences.md | 18 +- .../problem-136-singleton-difference.md | 18 +- .../problem-139-pythagorean-tiles.md | 22 +- .../problem-14-longest-collatz-sequence.md | 4 +- ...ng-multiple-reflections-of-a-laser-beam.md | 37 ++- ...m-147-rectangles-in-cross-hatched-grids.md | 24 +- .../project-euler/problem-15-lattice-paths.md | 18 +- ...y-for-a-sub-triangle-having-minimum-sum.md | 28 ++- ...tandard-sizes-an-expected-value-problem.md | 18 +- ...ng-one-half-as-a-sum-of-inverse-squares.md | 18 +- ...lem-153-investigating-gaussian-integers.md | 60 +++-- .../problem-154-exploring-pascals-pyramid.md | 20 +- ...problem-155-counting-capacitor-circuits.md | 22 +- .../problem-156-counting-digits.md | 38 ++- ...em-157-solving-the-diophantine-equation.md | 59 +---- ...hically-after-its-neighbour-to-the-left.md | 16 +- ...159-digital-root-sums-of-factorisations.md | 27 ++- .../problem-16-power-digit-sum.md | 2 +- .../problem-160-factorial-trailing-digits.md | 25 +- .../project-euler/problem-161-triominoes.md | 16 +- .../problem-162-hexadecimal-numbers.md | 24 +- .../problem-163-cross-hatched-triangles.md | 23 +- ...s-have-a-sum-greater-than-a-given-value.md | 12 +- .../problem-165-intersections.md | 38 ++- .../project-euler/problem-166-criss-cross.md | 18 +- ...roblem-167-investigating-ulam-sequences.md | 22 +- .../problem-168-number-rotations.md | 56 ++++- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 26 +-- .../problem-17-number-letter-counts.md | 6 +- ...can-be-formed-by-concatenating-products.md | 15 +- ...f-the-squares-of-the-digits-is-a-square.md | 22 +- ...gating-numbers-with-few-repeated-digits.md | 12 +- ...ent-hollow-square-laminae-can-be-formed.md | 12 +- ...one-two-three-...-distinct-arrangements.md | 18 +- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 34 ++- ...-angled-triangles-that-share-a-cathetus.md | 10 +- ...oblem-177-integer-angled-quadrilaterals.md | 20 +- .../project-euler/problem-178-step-numbers.md | 12 +- ...oblem-179-consecutive-positive-divisors.md | 12 +- .../problem-18-maximum-path-sum-i.md | 2 +- ...-zeros-of-a-function-of-three-variables.md | 27 ++- ...of-two-different-colours-can-be-grouped.md | 18 +- .../problem-182-rsa-encryption.md | 2 +- .../problem-183-maximum-product-of-parts.md | 28 +-- ...lem-184-triangles-containing-the-origin.md | 20 +- .../project-euler/problem-185-number-mind.md | 32 ++- .../problem-186-connectedness-of-a-network.md | 27 ++- .../project-euler/problem-187-semiprimes.md | 12 +- ...188-the-hyperexponentiation-of-a-number.md | 18 +- ...lem-189-tri-colouring-a-triangular-grid.md | 14 +- .../problem-19-counting-sundays.md | 2 +- ...oblem-190-maximising-a-weighted-product.md | 16 +- .../problem-191-prize-strings.md | 18 +- .../problem-192-best-approximations.md | 20 +- .../problem-193-squarefree-numbers.md | 14 +- .../problem-194-coloured-configurations.md | 22 +- ...-triangles-with-one-angle-of-60-degrees.md | 22 +- .../problem-196-prime-triplets.md | 24 +- ...viour-of-a-recursively-defined-sequence.md | 18 +- .../problem-198-ambiguous-numbers.md | 18 +- .../problem-199-iterative-circle-packing.md | 8 +- .../problem-2-even-fibonacci-numbers.md | 24 +- .../problem-20-factorial-digit-sum.md | 2 +- ...ontaining-the-contiguous-sub-string-200.md | 18 +- .../problem-201-subsets-with-a-unique-sum.md | 32 ++- .../project-euler/problem-202-laserbeam.md | 18 +- ...em-203-squarefree-binomial-coefficients.md | 18 +- ...problem-204-generalised-hamming-numbers.md | 16 +- .../project-euler/problem-205-dice-game.md | 10 +- .../problem-206-concealed-square.md | 39 +++- ...problem-207-integer-partition-equations.md | 30 ++- .../project-euler/problem-208-robot-walks.md | 16 +- .../problem-209-circular-logic.md | 32 ++- .../problem-21-amicable-numbers.md | 2 +- .../problem-210-obtuse-angled-triangles.md | 20 +- .../problem-211-divisor-square-sum.md | 16 +- .../problem-212-combined-volume-of-cuboids.md | 31 +-- .../project-euler/problem-213-flea-circus.md | 10 +- .../problem-214-totient-chains.md | 26 ++- .../problem-215-crack-free-walls.md | 16 +- ...-primality-of-numbers-of-the-form-2n2-1.md | 18 +- .../problem-217-balanced-numbers.md | 18 +- ...blem-218-perfect-right-angled-triangles.md | 28 ++- .../problem-219-skew-cost-coding.md | 24 +- .../project-euler/problem-22-names-scores.md | 2 +- .../problem-220-heighway-dragon.md | 29 ++- .../problem-221-alexandrian-integers.md | 21 +- .../problem-222-sphere-packing.md | 12 +- ...lem-223-almost-right-angled-triangles-i.md | 14 +- ...em-224-almost-right-angled-triangles-ii.md | 16 +- .../problem-225-tribonacci-non-divisors.md | 16 +- .../problem-226-a-scoop-of-blancmange.md | 20 +- .../project-euler/problem-227-the-chase.md | 20 +- .../problem-228-minkowski-sums.md | 33 ++- ...-229-four-representations-using-squares.md | 28 ++- .../problem-23-non-abundant-sums.md | 2 +- .../problem-230-fibonacci-words.md | 36 +-- ...-factorisation-of-binomial-coefficients.md | 18 +- .../project-euler/problem-232-the-race.md | 20 +- .../problem-233-lattice-points-on-a-circle.md | 16 +- .../problem-234-semidivisible-numbers.md | 20 +- ...em-235-an-arithmetic-geometric-sequence.md | 18 +- .../problem-236-luxury-hampers.md | 35 ++- ...blem-237-tours-on-a-4-x-n-playing-board.md | 27 ++- .../problem-238-infinite-string-tour.md | 31 +-- .../problem-239-twenty-two-foolish-primes.md | 10 +- .../problem-24-lexicographic-permutations.md | 2 +- .../project-euler/problem-240-top-dice.md | 20 +- .../problem-241-perfection-quotients.md | 18 +- .../project-euler/problem-242-odd-triplets.md | 18 +- .../project-euler/problem-243-resilience.md | 22 +- .../project-euler/problem-244-sliders.md | 26 ++- .../project-euler/problem-245-coresilience.md | 22 +- .../problem-246-tangents-to-an-ellipse.md | 30 ++- .../problem-247-squares-under-a-hyperbola.md | 30 ++- ...which-eulers-totient-function-equals-13.md | 14 +- .../problem-249-prime-subset-sums.md | 16 +- .../problem-25-1000-digit-fibonacci-number.md | 4 +- .../project-euler/problem-250-250250.md | 12 +- .../problem-251-cardano-triplets.md | 18 +- .../project-euler/problem-252-convex-holes.md | 17 +- .../project-euler/problem-253-tidying-up.md | 43 ++-- .../problem-254-sums-of-digit-factorials.md | 22 +- .../problem-255-rounded-square-roots.md | 41 +++- .../problem-256-tatami-free-rooms.md | 24 +- .../problem-257-angular-bisectors.md | 20 +- ...problem-258-a-lagged-fibonacci-sequence.md | 17 +- .../problem-259-reachable-numbers.md | 19 +- .../problem-26-reciprocal-cycles.md | 2 +- .../project-euler/problem-260-stone-game.md | 32 ++- .../problem-261-pivotal-square-sums.md | 22 +- .../problem-262-mountain-range.md | 22 +- ...roblem-263-an-engineers-dream-come-true.md | 27 ++- .../problem-264-triangle-centres.md | 43 ++-- .../problem-265-binary-circles.md | 25 +- .../problem-266-pseudo-square-root.md | 16 +- .../project-euler/problem-267-billionaire.md | 16 +- ...ur-distinct-prime-factors-less-than-100.md | 16 +- ...ynomials-with-at-least-one-integer-root.md | 28 ++- .../problem-27-quadratic-primes.md | 2 +- .../problem-270-cutting-squares.md | 26 +-- .../problem-271-modular-cubes-part-1.md | 16 +- .../problem-272-modular-cubes-part-2.md | 16 +- .../problem-273-sum-of-squares.md | 24 +- .../problem-274-divisibility-multipliers.md | 24 +- .../problem-275-balanced-sculptures.md | 27 +-- .../problem-276-primitive-triangles.md | 16 +- ...problem-277-a-modified-collatz-sequence.md | 30 +-- ...m-278-linear-combinations-of-semiprimes.md | 18 +- ...th-integral-sides-and-an-integral-angle.md | 12 +- .../problem-28-number-spiral-diagonals.md | 2 +- .../problem-280-ant-and-seeds.md | 10 +- .../problem-281-pizza-toppings.md | 20 +- .../problem-282-the-ackermann-function.md | 19 +- ...h-the-area--perimeter-ratio-is-integral.md | 16 +- .../problem-284-steady-squares.md | 24 +- .../problem-285-pythagorean-odds.md | 20 +- .../problem-286-scoring-probabilities.md | 18 +- ...encoding-a-simple-compression-algorithm.md | 35 +-- .../problem-288-an-enormous-factorial.md | 23 +- .../problem-289-eulerian-cycles.md | 24 +- .../problem-29-distinct-powers.md | 6 +- .../problem-290-digital-signature.md | 12 +- .../problem-291-panaitopol-primes.md | 14 +- .../problem-292-pythagorean-polygons.md | 25 +- .../problem-293-pseudo-fortunate-numbers.md | 22 +- ...oblem-294-sum-of-digits---experience-23.md | 21 +- .../problem-295-lenticular-holes.md | 31 +-- ...roblem-296-angular-bisector-and-tangent.md | 18 +- .../problem-297-zeckendorf-representation.md | 22 +- .../problem-298-selective-amnesia.md | 33 ++- .../problem-299-three-similar-triangles.md | 32 +-- .../problem-30-digit-n-powers.md | 2 +- .../problem-300-protein-folding.md | 24 +- .../project-euler/problem-301-nim.md | 33 +-- .../problem-302-strong-achilles-numbers.md | 24 +- ...problem-303-multiples-with-small-digits.md | 18 +- .../project-euler/problem-304-primonacci.md | 20 +- .../problem-305-reflexive-position.md | 20 +- .../problem-306-paper-strip-game.md | 26 ++- .../project-euler/problem-307-chip-defects.md | 16 +- ...8-an-amazing-prime-generating-automaton.md | 24 +- .../problem-309-integer-ladders.md | 20 +- .../project-euler/problem-31-coin-sums.md | 2 +- .../project-euler/problem-310-nim-square.md | 16 +- ...em-311-biclinic-integral-quadrilaterals.md | 24 +- ...em-312-cyclic-paths-on-sierpiski-graphs.md | 27 ++- .../project-euler/problem-313-sliding-game.md | 20 +- .../problem-314-the-mouse-on-the-moon.md | 22 +- .../problem-315-digital-root-clocks.md | 36 ++- ...oblem-316-numbers-in-decimal-expansions.md | 34 +-- .../project-euler/problem-317-firecracker.md | 16 +- .../project-euler/problem-318-2011-nines.md | 46 ++-- .../problem-319-bounded-sequences.md | 24 +- .../problem-32-pandigital-products.md | 2 +- ...-factorials-divisible-by-a-huge-integer.md | 18 +- .../problem-321-swapping-counters.md | 22 +- ...2-binomial-coefficients-divisible-by-10.md | 16 +- ...itwise-or-operations-on-random-integers.md | 23 +- .../problem-324-building-a-tower.md | 20 +- .../problem-325-stone-game-ii.md | 18 +- .../problem-326-modulo-summations.md | 24 +- .../problem-327-rooms-of-doom.md | 30 ++- .../problem-328-lowest-cost-search.md | 32 +-- .../project-euler/problem-329-prime-frog.md | 22 +- .../problem-33-digit-cancelling-fractions.md | 2 +- .../project-euler/problem-331-cross-flips.md | 22 +- .../problem-332-spherical-triangles.md | 24 +- .../problem-333-special-partitions.md | 29 +-- .../problem-334-spilling-the-beans.md | 23 +- .../problem-335-gathering-the-beans.md | 16 +- .../problem-336-maximix-arrangements.md | 32 ++- ...problem-337-totient-stairstep-sequences.md | 26 +-- ...blem-338-cutting-rectangular-grid-paper.md | 24 +- .../problem-339-peredur-fab-efrawg.md | 18 +- .../problem-34-digit-factorials.md | 4 +- .../problem-340-crazy-function.md | 23 +- ...em-341-golombs-self-describing-sequence.md | 23 +- ...m-342-the-totient-of-a-square-is-a-cube.md | 17 +- .../problem-343-fractional-sequences.md | 31 ++- .../problem-344-silver-dollar-game.md | 18 +- .../project-euler/problem-345-matrix-sum.md | 27 ++- .../problem-346-strong-repunits.md | 16 +- ...largest-integer-divisible-by-two-primes.md | 22 +- .../problem-348-sum-of-a-square-and-a-cube.md | 18 +- .../project-euler/problem-349-langtons-ant.md | 17 +- .../problem-35-circular-primes.md | 4 +- ...e-least-greatest-and-the-greatest-least.md | 24 +- .../problem-351-hexagonal-orchards.md | 20 +- .../project-euler/problem-352-blood-tests.md | 38 ++- .../project-euler/problem-353-risky-moon.md | 28 +-- ...oblem-354-distances-in-a-bees-honeycomb.md | 18 +- .../problem-355-maximal-coprime-subset.md | 16 +- ...-356-largest-roots-of-cubic-polynomials.md | 20 +- .../problem-357-prime-generating-integers.md | 16 +- .../problem-358-cyclic-numbers.md | 29 ++- .../problem-359-hilberts-new-hotel.md | 32 ++- .../problem-36-double-base-palindromes.md | 2 +- .../project-euler/problem-360-scary-sphere.md | 22 +- ...-361-subsequence-of-thue-morse-sequence.md | 31 +-- .../problem-362-squarefree-factors.md | 22 +- .../project-euler/problem-363-bzier-curves.md | 30 ++- .../problem-364-comfortable-distance.md | 24 +- ...problem-365-a-huge-binomial-coefficient.md | 16 +- .../problem-366-stone-game-iii.md | 34 ++- .../project-euler/problem-367-bozo-sort.md | 28 ++- .../problem-368-a-kempner-like-series.md | 19 +- .../project-euler/problem-369-badugi.md | 14 +- .../problem-37-truncatable-primes.md | 2 +- .../problem-370-geometric-triangles.md | 18 +- .../problem-371-licence-plates.md | 16 +- .../problem-372-pencils-of-rays.md | 18 +- .../problem-373-circumscribed-circles.md | 20 +- ...m-374-maximum-integer-partition-product.md | 28 +-- .../problem-375-minimum-of-subsequences.md | 31 +-- .../problem-376-nontransitive-sets-of-dice.md | 37 ++- ...problem-377-sum-of-digits-experience-13.md | 14 +- .../problem-378-triangle-triples.md | 22 +- ...problem-379-least-common-multiple-count.md | 18 +- .../problem-38-pandigital-multiples.md | 6 +- .../problem-380-amazing-mazes.md | 28 ++- .../problem-381-prime-k-factorial.md | 22 +- .../problem-382-generating-polygons.md | 37 ++- ...isibility-comparison-between-factorials.md | 20 +- .../problem-384-rudin-shapiro-sequence.md | 39 ++-- .../problem-385-ellipses-inside-triangles.md | 30 +-- ...blem-386-maximum-length-of-an-antichain.md | 24 +- .../problem-387-harshad-numbers.md | 18 +- .../problem-388-distinct-lines.md | 18 +- .../problem-389-platonic-dice.md | 22 +- .../problem-39-integer-right-triangles.md | 2 +- ...th-non-rational-sides-and-integral-area.md | 22 +- .../project-euler/problem-391-hopping-game.md | 33 +-- .../problem-392-enmeshed-unit-circle.md | 28 ++- .../problem-393-migrating-ants.md | 18 +- .../project-euler/problem-394-eating-pie.md | 29 +-- .../problem-395-pythagorean-tree.md | 18 +- .../problem-396-weak-goodstein-sequence.md | 32 ++- .../problem-397-triangle-on-parabola.md | 18 +- .../project-euler/problem-398-cutting-rope.md | 16 +- ...roblem-399-squarefree-fibonacci-numbers.md | 32 +-- .../problem-4-largest-palindrome-product.md | 12 +- .../problem-40-champernownes-constant.md | 2 +- .../problem-400-fibonacci-tree-game.md | 28 +-- .../problem-401-sum-of-squares-of-divisors.md | 20 +- .../problem-402-integer-valued-polynomials.md | 25 +- ...ce-points-enclosed-by-parabola-and-line.md | 20 +- .../problem-404-crisscross-ellipses.md | 30 ++- .../problem-405-a-rectangular-tiling.md | 24 +- .../problem-406-guessing-game.md | 42 ++-- .../project-euler/problem-407-idempotents.md | 18 +- ...lem-408-admissible-paths-through-a-grid.md | 18 +- .../project-euler/problem-409-nim-extreme.md | 24 +- .../problem-41-pandigital-prime.md | 2 +- .../problem-410-circle-and-tangent-line.md | 20 +- .../project-euler/problem-411-uphill-paths.md | 24 +- .../problem-412-gnomon-numbering.md | 26 ++- .../problem-413-one-child-numbers.md | 20 +- .../problem-414-kaprekar-constant.md | 32 +-- .../project-euler/problem-415-titanic-sets.md | 18 +- .../project-euler/problem-416-a-frogs-trip.md | 18 +- .../problem-417-reciprocal-cycles-ii.md | 23 +- .../problem-418-factorisation-triples.md | 21 +- .../problem-419-look-and-say-sequence.md | 31 ++- .../problem-42-coded-triangle-numbers.md | 2 +- ...problem-420-2x2-positive-integer-matrix.md | 27 ++- .../problem-421-prime-factors-of-n151.md | 26 ++- ...m-422-sequence-of-points-on-a-hyperbola.md | 28 ++- .../problem-423-consecutive-die-throws.md | 33 ++- .../project-euler/problem-424-kakuro.md | 43 +++- .../problem-425-prime-connection.md | 27 ++- .../problem-426-box-ball-system.md | 27 ++- .../project-euler/problem-427-n-sequences.md | 22 +- .../problem-428-necklace-of-circles.md | 31 +-- ...-429-sum-of-squares-of-unitary-divisors.md | 20 +- .../problem-43-sub-string-divisibility.md | 2 +- .../project-euler/problem-430-range-flips.md | 22 +- .../problem-431-square-space-silo.md | 20 +- .../project-euler/problem-432-totient-sum.md | 16 +- .../problem-433-steps-in-euclids-algorithm.md | 25 +- .../project-euler/problem-434-rigid-graphs.md | 30 ++- ...em-435-polynomials-of-fibonacci-numbers.md | 18 +- .../project-euler/problem-436-unfair-wager.md | 24 +- .../problem-437-fibonacci-primitive-roots.md | 36 ++- ...-part-of-polynomial-equations-solutions.md | 25 +- .../problem-439-sum-of-sum-of-divisors.md | 20 +- .../problem-44-pentagon-numbers.md | 2 +- .../problem-440-gcd-and-tiling.md | 31 ++- ...he-inverse-summation-of-coprime-couples.md | 22 +- .../problem-442-eleven-free-integers.md | 14 +- .../project-euler/problem-443-gcd-sequence.md | 24 +- .../problem-444-the-roundtable-lottery.md | 26 ++- .../problem-445-retractions-a.md | 24 +- .../problem-446-retractions-b.md | 24 +- .../problem-447-retractions-c.md | 24 +- ...oblem-448-average-least-common-multiple.md | 24 +- .../problem-449-chocolate-covered-candy.md | 22 +- ...-45-triangular-pentagonal-and-hexagonal.md | 2 +- ...blem-450-hypocycloid-and-lattice-points.md | 35 +-- .../problem-451-modular-inverses.md | 33 ++- .../problem-452-long-products.md | 18 +- .../problem-453-lattice-quadrilaterals.md | 20 +- ...problem-454-diophantine-reciprocals-iii.md | 20 +- ...problem-455-powers-with-trailing-digits.md | 18 +- ...-456-triangles-containing-the-origin-ii.md | 26 ++- ...polynomial-modulo-the-square-of-a-prime.md | 20 +- .../problem-458-permutations-of-project.md | 18 +- .../problem-459-flipping-game.md | 32 ++- .../problem-46-goldbachs-other-conjecture.md | 2 +- .../problem-460-an-ant-on-the-move.md | 31 ++- .../project-euler/problem-461-almost-pi.md | 2 +- ...lem-462-permutation-of-3-smooth-numbers.md | 28 ++- ...problem-463-a-weird-recurrence-relation.md | 24 +- ...roblem-464-mbius-function-and-intervals.md | 31 ++- .../problem-465-polar-polygons.md | 20 +- ...istinct-terms-in-a-multiplication-table.md | 26 ++- .../project-euler/problem-467-superinteger.md | 31 ++- ...mooth-divisors-of-binomial-coefficients.md | 30 ++- .../project-euler/problem-469-empty-chairs.md | 18 +- .../problem-47-distinct-primes-factors.md | 60 ++--- .../project-euler/problem-470-super-ramvok.md | 18 +- ...oblem-471-triangle-inscribed-in-ellipse.md | 34 ++- .../problem-472-comfortable-distance-ii.md | 30 +-- .../problem-473-phigital-number-base.md | 20 +- .../problem-474-last-digits-of-divisors.md | 18 +- .../problem-475-music-festival.md | 20 +- .../problem-476-circle-packing-ii.md | 18 +- .../problem-477-number-sequence-game.md | 46 ++-- .../project-euler/problem-478-mixtures.md | 30 ++- .../problem-479-roots-on-the-rise.md | 20 +- .../project-euler/problem-48-self-powers.md | 2 +- .../problem-480-the-last-question.md | 100 +++----- .../problem-49-prime-permutations.md | 2 +- .../problem-5-smallest-multiple.md | 16 +- .../problem-50-consecutive-prime-sum.md | 92 +++++--- .../problem-51-prime-digit-replacements.md | 115 +++++----- .../problem-52-permuted-multiples.md | 2 +- .../problem-53-combinatoric-selections.md | 2 +- .../project-euler/problem-54-poker-hands.md | 2 +- .../problem-55-lychrel-numbers.md | 2 +- .../problem-56-powerful-digit-sum.md | 2 +- .../problem-57-square-root-convergents.md | 2 +- .../project-euler/problem-58-spiral-primes.md | 2 +- .../problem-59-xor-decryption.md | 2 +- .../problem-6-sum-square-difference.md | 2 +- .../problem-60-prime-pair-sets.md | 4 +- .../problem-61-cyclical-figurate-numbers.md | 8 +- .../problem-62-cubic-permutations.md | 2 +- .../problem-63-powerful-digit-counts.md | 2 +- .../problem-64-odd-period-square-roots.md | 4 +- .../problem-65-convergents-of-e.md | 2 +- .../problem-66-diophantine-equation.md | 10 +- .../problem-67-maximum-path-sum-ii.md | 2 +- .../problem-68-magic-5-gon-ring.md | 2 +- .../problem-69-totient-maximum.md | 2 +- .../project-euler/problem-7-10001st-prime.md | 2 +- .../problem-70-totient-permutation.md | 2 +- .../problem-71-ordered-fractions.md | 2 +- .../problem-72-counting-fractions.md | 2 +- ...roblem-73-counting-fractions-in-a-range.md | 2 +- .../problem-74-digit-factorial-chains.md | 12 +- ...lem-75-singular-integer-right-triangles.md | 2 +- .../problem-76-counting-summations.md | 6 +- .../problem-77-prime-summations.md | 2 +- .../problem-78-coin-partitions.md | 2 +- .../problem-79-passcode-derivation.md | 2 +- .../problem-8-largest-product-in-a-series.md | 2 +- ...roblem-80-square-root-digital-expansion.md | 2 +- .../problem-81-path-sum-two-ways.md | 6 +- .../problem-82-path-sum-three-ways.md | 6 +- .../problem-83-path-sum-four-ways.md | 8 +- .../project-euler/problem-84-monopoly-odds.md | 4 +- .../problem-85-counting-rectangles.md | 2 +- .../project-euler/problem-86-cuboid-route.md | 2 +- .../problem-87-prime-power-triples.md | 2 +- .../problem-88-product-sum-numbers.md | 2 +- .../problem-89-roman-numerals.md | 2 +- .../problem-9-special-pythagorean-triplet.md | 4 +- .../problem-90-cube-digit-pairs.md | 2 +- ...ight-triangles-with-integer-coordinates.md | 2 +- .../problem-93-arithmetic-expressions.md | 8 +- ...problem-94-almost-equilateral-triangles.md | 18 +- .../problem-97-large-non-mersenne-prime.md | 2 +- .../problem-98-anagramic-squares.md | 2 +- .../problem-99-largest-exponential.md | 2 +- .../rosetta-code/24-game.md | 141 ++++++++---- .../9-billion-names-of-god-the-integer.md | 6 +- .../rosetta-code/abc-problem.md | 2 +- ...ient-and-perfect-number-classifications.md | 2 +- .../rosetta-code/accumulator-factory.md | 4 +- .../rosetta-code/ackermann-function.md | 2 +- .../rosetta-code/align-columns.md | 14 +- .../rosetta-code/amicable-pairs.md | 12 +- .../rosetta-code/averages-mode.md | 4 +- .../averages-pythagorean-means.md | 4 +- .../rosetta-code/averages-root-mean-square.md | 8 +- .../rosetta-code/babbage-problem.md | 6 +- .../rosetta-code/balanced-brackets.md | 44 ++-- ...cles-of-given-radius-through-two-points.md | 2 +- .../rosetta-code/closest-pair-problem.md | 2 +- .../rosetta-code/combinations.md | 4 +- .../rosetta-code/comma-quibbling.md | 14 +- .../rosetta-code/compare-a-list-of-strings.md | 10 +- .../convert-seconds-to-compound-duration.md | 2 +- .../count-occurrences-of-a-substring.md | 2 +- .../rosetta-code/count-the-coins.md | 34 +-- .../rosetta-code/cramers-rule.md | 12 +- .../cumulative-standard-deviation.md | 29 ++- .../rosetta-code/cusip.md | 2 +- .../rosetta-code/cut-a-rectangle.md | 2 +- .../rosetta-code/date-manipulation.md | 4 +- .../rosetta-code/day-of-the-week.md | 2 +- .../rosetta-code/deal-cards-for-freecell.md | 10 +- .../rosetta-code/deepcopy.md | 2 +- .../define-a-primitive-data-type.md | 2 +- .../rosetta-code/department-numbers.md | 4 +- .../rosetta-code/discordian-date.md | 21 +- .../rosetta-code/dot-product.md | 4 +- .../rosetta-code/element-wise-operations.md | 2 +- .../rosetta-code/emirp-primes.md | 2 +- .../rosetta-code/entropy.md | 2 +- .../rosetta-code/equilibrium-index.md | 4 +- .../rosetta-code/ethiopian-multiplication.md | 2 +- .../rosetta-code/euler-method.md | 4 +- .../evaluate-binomial-coefficients.md | 2 +- .../execute-a-markov-algorithm.md | 212 ++++++----------- .../rosetta-code/execute-brain.md | 24 +- .../extensible-prime-generator.md | 4 +- .../rosetta-code/factorial.md | 4 +- .../factors-of-a-mersenne-number.md | 10 +- .../rosetta-code/factors-of-an-integer.md | 2 +- .../rosetta-code/farey-sequence.md | 4 +- .../fibonacci-n-step-number-sequences.md | 8 +- .../rosetta-code/fibonacci-sequence.md | 2 +- .../rosetta-code/fibonacci-word.md | 114 +++++---- .../rosetta-code/fizzbuzz.md | 2 +- .../rosetta-code/fractran.md | 4 +- .../rosetta-code/gamma-function.md | 4 +- .../rosetta-code/gaussian-elimination.md | 2 +- .../rosetta-code/general-fizzbuzz.md | 4 +- .../generate-lower-case-ascii-alphabet.md | 2 +- .../rosetta-code/generator-exponential.md | 2 +- .../rosetta-code/gray-code.md | 8 +- .../rosetta-code/greatest-common-divisor.md | 2 +- .../greatest-subsequential-sum.md | 2 +- .../rosetta-code/hailstone-sequence.md | 6 +- .../rosetta-code/happy-numbers.md | 4 +- .../rosetta-code/harshad-or-niven-series.md | 2 +- .../rosetta-code/hash-from-two-arrays.md | 16 +- .../rosetta-code/hash-join.md | 12 +- .../rosetta-code/heronian-triangles.md | 4 +- .../hofstadter-figure-figure-sequences.md | 26 +-- .../rosetta-code/hofstadter-q-sequence.md | 6 +- .../rosetta-code/i-before-e-except-after-c.md | 24 +- .../rosetta-code/iban.md | 14 +- .../rosetta-code/identity-matrix.md | 2 +- .../rosetta-code/iterated-digits-squaring.md | 2 +- .../rosetta-code/jaro-distance.md | 4 +- .../rosetta-code/jortsort.md | 4 +- .../rosetta-code/josephus-problem.md | 6 +- .../rosetta-code/k-d-tree.md | 2 +- .../rosetta-code/kaprekar-numbers.md | 10 +- .../rosetta-code/knapsack-problem-0-1.md | 2 +- .../rosetta-code/knapsack-problem-bounded.md | 2 +- .../knapsack-problem-continuous.md | 2 +- .../knapsack-problem-unbounded.md | 2 +- .../rosetta-code/knights-tour.md | 16 +- .../largest-int-from-concatenated-ints.md | 2 +- .../rosetta-code/last-friday-of-each-month.md | 2 +- .../rosetta-code/last-letter-first-letter.md | 2 +- .../rosetta-code/leap-year.md | 2 +- .../rosetta-code/least-common-multiple.md | 6 +- .../rosetta-code/left-factorials.md | 2 +- .../rosetta-code/letter-frequency.md | 2 +- .../rosetta-code/levenshtein-distance.md | 6 +- .../linear-congruential-generator.md | 6 +- .../rosetta-code/long-multiplication.md | 4 +- .../longest-common-subsequence.md | 22 +- .../longest-increasing-subsequence.md | 8 +- .../rosetta-code/longest-string-challenge.md | 4 +- .../rosetta-code/look-and-say-sequence.md | 4 +- ...oop-over-multiple-arrays-simultaneously.md | 2 +- .../rosetta-code/lu-decomposition.md | 6 +- .../rosetta-code/lucas-lehmer-test.md | 2 +- .../rosetta-code/ludic-numbers.md | 26 +-- .../luhn-test-of-credit-card-numbers.md | 6 +- .../rosetta-code/lychrel-numbers.md | 4 +- .../rosetta-code/lzw-compression.md | 4 +- .../rosetta-code/s-expressions.md | 16 +- .../sailors-coconuts-and-a-monkey-problem.md | 17 +- .../rosetta-code/search-a-list-of-records.md | 2 +- .../rosetta-code/sedols.md | 13 +- .../rosetta-code/self-describing-numbers.md | 6 +- .../rosetta-code/self-referential-sequence.md | 4 +- .../rosetta-code/semiprime.md | 4 +- .../rosetta-code/set-consolidation.md | 2 +- .../rosetta-code/set-of-real-numbers.md | 2 +- .../rosetta-code/sha-1.md | 4 +- .../sort-an-array-of-composite-structures.md | 2 +- .../rosetta-code/sort-disjoint-sublist.md | 2 +- .../rosetta-code/sort-stability.md | 4 +- .../sort-using-a-custom-comparator.md | 2 +- .../sorting-algorithms-bead-sort.md | 38 +-- .../sorting-algorithms-bogosort.md | 6 +- .../sorting-algorithms-cocktail-sort.md | 26 +-- .../sorting-algorithms-comb-sort.md | 12 +- .../sorting-algorithms-gnome-sort.md | 4 +- .../sorting-algorithms-pancake-sort.md | 4 +- .../sorting-algorithms-permutation-sort.md | 4 +- .../sorting-algorithms-shell-sort.md | 4 +- .../sorting-algorithms-stooge-sort.md | 4 +- .../sorting-algorithms-strand-sort.md | 18 +- .../rosetta-code/soundex.md | 14 +- .../rosetta-code/spiral-matrix.md | 2 +- ...ter-string-based-on-change-of-character.md | 2 +- .../rosetta-code/state-name-puzzle.md | 9 +- .../rosetta-code/stern-brocot-sequence.md | 4 +- .../rosetta-code/straddling-checkerboard.md | 10 +- .../rosetta-code/stream-merge.md | 2 +- ...s-and-extended-characters-from-a-string.md | 2 +- .../rosetta-code/subleq.md | 36 +-- .../rosetta-code/sudoku.md | 4 +- .../rosetta-code/sum-digits-of-an-integer.md | 2 +- .../rosetta-code/sum-multiples-of-3-and-5.md | 2 +- .../rosetta-code/sum-of-a-series.md | 4 +- .../rosetta-code/sum-of-squares.md | 2 +- .../rosetta-code/sum-to-100.md | 2 +- .../sutherland-hodgman-polygon-clipping.md | 4 +- .../rosetta-code/symmetric-difference.md | 8 +- .../rosetta-code/taxicab-numbers.md | 11 +- .../tokenize-a-string-with-escaping.md | 6 +- .../rosetta-code/top-rank-per-group.md | 2 +- .../rosetta-code/topological-sort.md | 2 +- .../rosetta-code/towers-of-hanoi.md | 10 +- .../rosetta-code/vector-cross-product.md | 4 +- .../rosetta-code/vector-dot-product.md | 2 +- .../rosetta-code/word-frequency.md | 4 +- .../rosetta-code/word-wrap.md | 2 +- .../rosetta-code/y-combinator.md | 12 +- .../zeckendorf-number-representation.md | 2 +- .../zhang-suen-thinning-algorithm.md | 18 +- .../rosetta-code/zig-zag-matrix.md | 6 +- .../build-a-camper-leaderboard.md | 8 +- .../build-a-light-bright-app.md | 20 +- .../build-a-nightlife-coordination-app.md | 12 +- .../build-a-pinterest-clone.md | 8 +- .../take-home-projects/build-a-pong-game.md | 14 +- .../take-home-projects/build-a-recipe-box.md | 6 +- .../build-a-roguelike-dungeon-crawler-game.md | 8 +- .../take-home-projects/build-a-simon-game.md | 6 +- .../build-a-tic-tac-toe-game.md | 6 +- .../take-home-projects/build-a-voting-app.md | 2 +- .../build-a-wikipedia-viewer.md | 16 +- ...build-an-image-search-abstraction-layer.md | 2 +- .../build-the-game-of-life.md | 23 +- .../chart-the-stock-market.md | 2 +- .../manage-a-book-trading-club.md | 6 +- .../map-data-across-the-globe.md | 8 +- .../p2p-video-chat-application.md | 6 +- ...-contiguity-with-a-force-directed-graph.md | 6 +- .../show-the-local-weather.md | 8 +- .../use-the-twitch-json-api.md | 16 +- .../book-recommendation-engine-using-knn.md | 45 +++- .../cat-and-dog-image-classifier.md | 94 +++++++- ...near-regression-health-costs-calculator.md | 26 ++- .../neural-network-sms-text-classifier.md | 18 +- .../rock-paper-scissors.md | 50 +++- .../neural-networks-activation-functions.md | 2 +- .../build-a-survey-form.md | 12 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 27 ++- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 13 +- .../6153a3952facd25a83fe8083.md | 2 +- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 8 +- .../5dfa22d1b521be39a3de7be0.md | 11 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 2 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 9 +- .../60f803d5241e6a0433a523a1.md | 9 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 4 +- .../62a8cf22272d6d35af80d4ac.md | 2 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 2 +- .../62a8d61ddfe35744369365b7.md | 6 +- .../62a8d6c7001ebc45350e3d16.md | 4 +- .../62a8e35675c18c56354c08cf.md | 6 +- .../62a8e41e2f190c58404dd46e.md | 4 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 2 +- .../62a8eec45f77bc69e8775294.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 2 +- .../62a8efb0e3ce826db8daf80f.md | 2 +- .../62a8eff21c0b0f6ebe5b8e38.md | 2 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 6 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- .../build-a-survey-form.md | 2 +- .../falsy-bouncer.md | 10 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../visualize-data-with-a-bar-chart.md | 2 +- .../visualize-data-with-a-choropleth-map.md | 2 +- .../visualize-data-with-a-heat-map.md | 2 +- ...visualize-data-with-a-scatterplot-graph.md | 2 +- .../visualize-data-with-a-treemap-diagram.md | 2 +- .../mongodb-and-mongoose/create-a-model.md | 2 +- ...ality-with-.deepequal-and-.notdeepequal.md | 2 +- .../port-scanner.md | 82 +++++-- .../sha-1-password-cracker.md | 59 +++-- .../stock-price-checker.md | 24 +- ...ur-site-via-https-only-with-helmet.hsts.md | 14 +- ...-response-mime-type-with-helmet.nosniff.md | 2 +- ...lmet-using-the-parent-helmet-middleware.md | 4 +- ...client-side-caching-with-helmet.nocache.md | 2 +- ...fetching-with-helmet.dnsprefetchcontrol.md | 4 +- ...sh-and-compare-passwords-asynchronously.md | 8 +- ...-information-using-helmet.hidepoweredby.md | 2 +- ...-of-clickjacking-with-helmet.frameguard.md | 2 +- ...pting-xss-attacks-with-helmet.xssfilter.md | 2 +- ...ing-untrusted-html-with-helmet.ienoopen.md | 2 +- ...olicy-with-helmet.contentsecuritypolicy.md | 2 +- .../understand-bcrypt-hashes.md | 10 +- .../remove-an-element-from-a-max-heap.md | 46 ++-- ...th-first-search-in-a-binary-search-tree.md | 6 +- .../problem-10-summation-of-primes.md | 54 +++-- .../problem-100-arranged-probability.md | 2 +- .../problem-101-optimum-polynomial.md | 6 +- .../problem-102-triangle-containment.md | 2 +- ...problem-103-special-subset-sums-optimum.md | 7 +- .../problem-104-pandigital-fibonacci-ends.md | 2 +- ...problem-105-special-subset-sums-testing.md | 2 +- ...em-106-special-subset-sums-meta-testing.md | 4 +- .../problem-107-minimal-network.md | 4 +- .../problem-108-diophantine-reciprocals-i.md | 6 +- .../project-euler/problem-109-darts.md | 9 +- .../problem-110-diophantine-reciprocals-ii.md | 2 +- .../problem-111-primes-with-runs.md | 2 +- .../problem-112-bouncy-numbers.md | 2 +- .../problem-113-non-bouncy-numbers.md | 2 +- ...oblem-114-counting-block-combinations-i.md | 2 +- ...blem-115-counting-block-combinations-ii.md | 2 +- .../problem-116-red-green-or-blue-tiles.md | 2 +- .../problem-117-red-green-and-blue-tiles.md | 2 +- .../problem-118-pandigital-prime-sets.md | 4 +- .../problem-119-digit-power-sum.md | 4 +- .../problem-120-square-remainders.md | 2 +- .../problem-121-disc-game-prize-fund.md | 10 +- .../problem-122-efficient-exponentiation.md | 27 ++- .../problem-123-prime-square-remainders.md | 18 +- .../problem-124-ordered-radicals.md | 138 ++++++++--- .../problem-126-cuboid-layers.md | 22 +- .../project-euler/problem-127-abc-hits.md | 38 ++- .../problem-128-hexagonal-tile-differences.md | 78 ++++++- .../problem-129-repunit-divisibility.md | 18 +- ...-composites-with-prime-repunit-property.md | 18 +- .../problem-131-prime-cube-partnership.md | 16 +- .../problem-133-repunit-nonfactors.md | 18 +- .../problem-134-prime-pair-connection.md | 16 +- .../problem-135-same-differences.md | 18 +- .../problem-136-singleton-difference.md | 18 +- .../problem-137-fibonacci-golden-nuggets.md | 35 +-- .../problem-139-pythagorean-tiles.md | 16 +- ...m-140-modified-fibonacci-golden-nuggets.md | 26 ++- ...ressive-numbers-n-which-are-also-square.md | 20 +- .../problem-142-perfect-square-collection.md | 12 +- ...ting-the-torricelli-point-of-a-triangle.md | 18 +- ...ng-multiple-reflections-of-a-laser-beam.md | 31 ++- ...ble-numbers-are-there-below-one-billion.md | 14 +- ...oblem-146-investigating-a-prime-pattern.md | 14 +- ...m-147-rectangles-in-cross-hatched-grids.md | 16 +- .../problem-148-exploring-pascals-triangle.md | 16 +- ...searching-for-a-maximum-sum-subsequence.md | 22 +- ...y-for-a-sub-triangle-having-minimum-sum.md | 26 ++- ...tandard-sizes-an-expected-value-problem.md | 18 +- ...ng-one-half-as-a-sum-of-inverse-squares.md | 18 +- ...lem-153-investigating-gaussian-integers.md | 56 +++-- .../problem-154-exploring-pascals-pyramid.md | 18 +- ...problem-155-counting-capacitor-circuits.md | 22 +- .../problem-156-counting-digits.md | 38 ++- ...em-157-solving-the-diophantine-equation.md | 59 +---- ...hically-after-its-neighbour-to-the-left.md | 20 +- ...159-digital-root-sums-of-factorisations.md | 27 ++- .../problem-160-factorial-trailing-digits.md | 23 +- .../project-euler/problem-161-triominoes.md | 16 +- .../problem-162-hexadecimal-numbers.md | 24 +- .../problem-163-cross-hatched-triangles.md | 23 +- ...s-have-a-sum-greater-than-a-given-value.md | 14 +- .../problem-165-intersections.md | 38 ++- .../project-euler/problem-166-criss-cross.md | 18 +- ...roblem-167-investigating-ulam-sequences.md | 22 +- .../problem-168-number-rotations.md | 56 ++++- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 26 +-- ...can-be-formed-by-concatenating-products.md | 15 +- ...f-the-squares-of-the-digits-is-a-square.md | 22 +- ...gating-numbers-with-few-repeated-digits.md | 12 +- ...ent-hollow-square-laminae-can-be-formed.md | 12 +- ...one-two-three-...-distinct-arrangements.md | 18 +- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 34 ++- ...-angled-triangles-that-share-a-cathetus.md | 10 +- ...oblem-177-integer-angled-quadrilaterals.md | 20 +- .../project-euler/problem-178-step-numbers.md | 12 +- ...oblem-179-consecutive-positive-divisors.md | 12 +- ...-zeros-of-a-function-of-three-variables.md | 27 ++- ...of-two-different-colours-can-be-grouped.md | 18 +- .../problem-182-rsa-encryption.md | 2 +- .../problem-183-maximum-product-of-parts.md | 28 +-- ...lem-184-triangles-containing-the-origin.md | 20 +- .../project-euler/problem-185-number-mind.md | 32 ++- .../problem-186-connectedness-of-a-network.md | 27 ++- .../project-euler/problem-187-semiprimes.md | 12 +- ...188-the-hyperexponentiation-of-a-number.md | 18 +- ...lem-189-tri-colouring-a-triangular-grid.md | 14 +- ...oblem-190-maximising-a-weighted-product.md | 16 +- .../problem-192-best-approximations.md | 20 +- .../problem-193-squarefree-numbers.md | 14 +- .../problem-194-coloured-configurations.md | 22 +- ...-triangles-with-one-angle-of-60-degrees.md | 22 +- ...viour-of-a-recursively-defined-sequence.md | 16 +- .../problem-198-ambiguous-numbers.md | 16 +- .../problem-199-iterative-circle-packing.md | 8 +- ...ontaining-the-contiguous-sub-string-200.md | 18 +- .../problem-201-subsets-with-a-unique-sum.md | 32 ++- .../project-euler/problem-202-laserbeam.md | 18 +- ...em-203-squarefree-binomial-coefficients.md | 18 +- ...problem-204-generalised-hamming-numbers.md | 16 +- .../project-euler/problem-205-dice-game.md | 10 +- .../problem-206-concealed-square.md | 39 +++- ...problem-207-integer-partition-equations.md | 30 ++- .../project-euler/problem-208-robot-walks.md | 16 +- .../problem-209-circular-logic.md | 32 ++- .../problem-210-obtuse-angled-triangles.md | 20 +- .../problem-211-divisor-square-sum.md | 16 +- .../problem-212-combined-volume-of-cuboids.md | 31 +-- .../project-euler/problem-213-flea-circus.md | 10 +- .../problem-214-totient-chains.md | 24 +- .../problem-215-crack-free-walls.md | 16 +- ...-primality-of-numbers-of-the-form-2n2-1.md | 18 +- .../problem-217-balanced-numbers.md | 18 +- ...blem-218-perfect-right-angled-triangles.md | 28 ++- .../problem-220-heighway-dragon.md | 29 ++- .../problem-221-alexandrian-integers.md | 21 +- .../problem-222-sphere-packing.md | 12 +- ...lem-223-almost-right-angled-triangles-i.md | 14 +- ...em-224-almost-right-angled-triangles-ii.md | 14 +- .../problem-225-tribonacci-non-divisors.md | 16 +- .../problem-226-a-scoop-of-blancmange.md | 20 +- .../project-euler/problem-227-the-chase.md | 20 +- .../problem-228-minkowski-sums.md | 33 ++- ...-229-four-representations-using-squares.md | 28 ++- .../problem-230-fibonacci-words.md | 38 +-- ...-factorisation-of-binomial-coefficients.md | 20 +- .../project-euler/problem-232-the-race.md | 20 +- .../problem-233-lattice-points-on-a-circle.md | 16 +- .../problem-234-semidivisible-numbers.md | 20 +- ...em-235-an-arithmetic-geometric-sequence.md | 16 +- .../problem-236-luxury-hampers.md | 35 ++- ...blem-237-tours-on-a-4-x-n-playing-board.md | 27 ++- .../problem-238-infinite-string-tour.md | 31 +-- .../problem-239-twenty-two-foolish-primes.md | 10 +- .../project-euler/problem-240-top-dice.md | 20 +- .../problem-241-perfection-quotients.md | 18 +- .../project-euler/problem-242-odd-triplets.md | 18 +- .../project-euler/problem-243-resilience.md | 22 +- .../project-euler/problem-244-sliders.md | 26 ++- .../project-euler/problem-245-coresilience.md | 22 +- .../problem-246-tangents-to-an-ellipse.md | 28 ++- .../problem-247-squares-under-a-hyperbola.md | 30 ++- ...which-eulers-totient-function-equals-13.md | 14 +- .../problem-249-prime-subset-sums.md | 14 +- .../project-euler/problem-250-250250.md | 12 +- .../problem-251-cardano-triplets.md | 18 +- .../project-euler/problem-252-convex-holes.md | 17 +- .../project-euler/problem-253-tidying-up.md | 43 ++-- .../problem-254-sums-of-digit-factorials.md | 22 +- .../problem-255-rounded-square-roots.md | 41 +++- .../problem-256-tatami-free-rooms.md | 24 +- .../problem-257-angular-bisectors.md | 20 +- ...problem-258-a-lagged-fibonacci-sequence.md | 15 +- .../problem-259-reachable-numbers.md | 19 +- .../project-euler/problem-260-stone-game.md | 32 ++- .../problem-261-pivotal-square-sums.md | 22 +- .../problem-262-mountain-range.md | 22 +- ...roblem-263-an-engineers-dream-come-true.md | 19 +- .../problem-264-triangle-centres.md | 43 ++-- .../problem-265-binary-circles.md | 25 +- .../problem-266-pseudo-square-root.md | 16 +- .../project-euler/problem-267-billionaire.md | 16 +- ...ur-distinct-prime-factors-less-than-100.md | 12 +- ...ynomials-with-at-least-one-integer-root.md | 28 ++- .../problem-27-quadratic-primes.md | 30 +-- .../problem-270-cutting-squares.md | 24 +- .../problem-271-modular-cubes-part-1.md | 16 +- .../problem-272-modular-cubes-part-2.md | 16 +- .../problem-273-sum-of-squares.md | 22 +- .../problem-274-divisibility-multipliers.md | 24 +- .../problem-275-balanced-sculptures.md | 27 +-- ...problem-277-a-modified-collatz-sequence.md | 30 +-- ...m-278-linear-combinations-of-semiprimes.md | 18 +- ...th-integral-sides-and-an-integral-angle.md | 12 +- .../problem-28-number-spiral-diagonals.md | 20 +- .../problem-280-ant-and-seeds.md | 10 +- .../problem-281-pizza-toppings.md | 20 +- .../problem-282-the-ackermann-function.md | 19 +- ...h-the-area--perimeter-ratio-is-integral.md | 16 +- .../problem-284-steady-squares.md | 24 +- .../problem-285-pythagorean-odds.md | 20 +- .../problem-286-scoring-probabilities.md | 16 +- ...encoding-a-simple-compression-algorithm.md | 35 +-- .../problem-288-an-enormous-factorial.md | 23 +- .../problem-289-eulerian-cycles.md | 24 +- .../problem-29-distinct-powers.md | 6 +- .../problem-290-digital-signature.md | 12 +- .../problem-291-panaitopol-primes.md | 14 +- .../problem-292-pythagorean-polygons.md | 25 +- .../problem-293-pseudo-fortunate-numbers.md | 20 +- ...oblem-294-sum-of-digits---experience-23.md | 21 +- .../problem-295-lenticular-holes.md | 31 +-- ...roblem-296-angular-bisector-and-tangent.md | 18 +- .../problem-297-zeckendorf-representation.md | 22 +- .../problem-298-selective-amnesia.md | 27 ++- .../problem-299-three-similar-triangles.md | 30 ++- .../problem-30-digit-n-powers.md | 2 +- .../problem-300-protein-folding.md | 22 +- .../project-euler/problem-301-nim.md | 33 +-- .../problem-302-strong-achilles-numbers.md | 24 +- ...problem-303-multiples-with-small-digits.md | 18 +- .../project-euler/problem-304-primonacci.md | 20 +- .../problem-305-reflexive-position.md | 20 +- .../problem-306-paper-strip-game.md | 26 ++- .../project-euler/problem-307-chip-defects.md | 18 +- ...8-an-amazing-prime-generating-automaton.md | 24 +- .../problem-309-integer-ladders.md | 20 +- .../project-euler/problem-31-coin-sums.md | 2 +- .../project-euler/problem-310-nim-square.md | 16 +- ...em-311-biclinic-integral-quadrilaterals.md | 24 +- ...em-312-cyclic-paths-on-sierpiski-graphs.md | 27 ++- .../project-euler/problem-313-sliding-game.md | 20 +- .../problem-314-the-mouse-on-the-moon.md | 22 +- .../problem-315-digital-root-clocks.md | 36 ++- ...oblem-316-numbers-in-decimal-expansions.md | 32 ++- .../project-euler/problem-317-firecracker.md | 16 +- .../project-euler/problem-318-2011-nines.md | 46 ++-- .../problem-319-bounded-sequences.md | 24 +- .../problem-32-pandigital-products.md | 2 +- ...-factorials-divisible-by-a-huge-integer.md | 18 +- .../problem-321-swapping-counters.md | 22 +- ...2-binomial-coefficients-divisible-by-10.md | 16 +- ...itwise-or-operations-on-random-integers.md | 23 +- .../problem-324-building-a-tower.md | 20 +- .../problem-325-stone-game-ii.md | 18 +- .../problem-326-modulo-summations.md | 24 +- .../problem-327-rooms-of-doom.md | 28 ++- .../problem-328-lowest-cost-search.md | 32 +-- .../project-euler/problem-329-prime-frog.md | 22 +- .../problem-33-digit-cancelling-fractions.md | 2 +- .../problem-330-eulers-number.md | 30 +-- .../project-euler/problem-331-cross-flips.md | 22 +- .../problem-332-spherical-triangles.md | 24 +- .../problem-333-special-partitions.md | 27 ++- .../problem-334-spilling-the-beans.md | 23 +- .../problem-335-gathering-the-beans.md | 16 +- .../problem-336-maximix-arrangements.md | 32 ++- ...problem-337-totient-stairstep-sequences.md | 26 +-- ...blem-338-cutting-rectangular-grid-paper.md | 24 +- .../problem-339-peredur-fab-efrawg.md | 18 +- .../problem-34-digit-factorials.md | 10 +- .../problem-340-crazy-function.md | 23 +- ...em-341-golombs-self-describing-sequence.md | 21 +- ...m-342-the-totient-of-a-square-is-a-cube.md | 17 +- .../problem-343-fractional-sequences.md | 31 ++- .../problem-344-silver-dollar-game.md | 18 +- .../project-euler/problem-345-matrix-sum.md | 27 ++- .../problem-346-strong-repunits.md | 16 +- ...largest-integer-divisible-by-two-primes.md | 22 +- .../problem-348-sum-of-a-square-and-a-cube.md | 18 +- .../project-euler/problem-349-langtons-ant.md | 17 +- .../problem-35-circular-primes.md | 2 +- ...e-least-greatest-and-the-greatest-least.md | 24 +- .../problem-351-hexagonal-orchards.md | 20 +- .../project-euler/problem-352-blood-tests.md | 38 ++- .../project-euler/problem-353-risky-moon.md | 26 ++- ...oblem-354-distances-in-a-bees-honeycomb.md | 18 +- .../problem-355-maximal-coprime-subset.md | 16 +- ...-356-largest-roots-of-cubic-polynomials.md | 18 +- .../problem-357-prime-generating-integers.md | 16 +- .../problem-358-cyclic-numbers.md | 29 ++- .../problem-359-hilberts-new-hotel.md | 32 ++- .../problem-36-double-base-palindromes.md | 2 +- .../project-euler/problem-360-scary-sphere.md | 22 +- ...-361-subsequence-of-thue-morse-sequence.md | 31 +-- .../problem-362-squarefree-factors.md | 22 +- .../project-euler/problem-363-bzier-curves.md | 30 ++- .../problem-364-comfortable-distance.md | 24 +- ...problem-365-a-huge-binomial-coefficient.md | 16 +- .../problem-366-stone-game-iii.md | 34 ++- .../project-euler/problem-367-bozo-sort.md | 28 ++- .../problem-368-a-kempner-like-series.md | 19 +- .../project-euler/problem-369-badugi.md | 14 +- .../problem-37-truncatable-primes.md | 2 +- .../problem-370-geometric-triangles.md | 18 +- .../problem-371-licence-plates.md | 16 +- .../problem-372-pencils-of-rays.md | 18 +- .../problem-373-circumscribed-circles.md | 20 +- ...m-374-maximum-integer-partition-product.md | 28 +-- .../problem-375-minimum-of-subsequences.md | 29 +-- ...problem-377-sum-of-digits-experience-13.md | 20 +- .../problem-378-triangle-triples.md | 24 +- ...problem-379-least-common-multiple-count.md | 18 +- .../problem-38-pandigital-multiples.md | 6 +- .../problem-380-amazing-mazes.md | 28 ++- .../problem-381-prime-k-factorial.md | 22 +- .../problem-382-generating-polygons.md | 37 ++- ...isibility-comparison-between-factorials.md | 20 +- .../problem-384-rudin-shapiro-sequence.md | 39 ++-- .../problem-385-ellipses-inside-triangles.md | 30 +-- ...blem-386-maximum-length-of-an-antichain.md | 24 +- .../problem-387-harshad-numbers.md | 18 +- .../problem-388-distinct-lines.md | 18 +- .../problem-389-platonic-dice.md | 22 +- .../problem-39-integer-right-triangles.md | 2 +- ...th-non-rational-sides-and-integral-area.md | 22 +- .../project-euler/problem-391-hopping-game.md | 33 +-- .../problem-392-enmeshed-unit-circle.md | 28 ++- .../problem-393-migrating-ants.md | 18 +- .../project-euler/problem-394-eating-pie.md | 23 +- .../problem-395-pythagorean-tree.md | 18 +- .../problem-396-weak-goodstein-sequence.md | 32 ++- .../problem-397-triangle-on-parabola.md | 18 +- .../project-euler/problem-398-cutting-rope.md | 16 +- ...roblem-399-squarefree-fibonacci-numbers.md | 28 ++- .../problem-40-champernownes-constant.md | 2 +- .../problem-400-fibonacci-tree-game.md | 28 +-- .../problem-401-sum-of-squares-of-divisors.md | 20 +- .../problem-402-integer-valued-polynomials.md | 25 +- ...ce-points-enclosed-by-parabola-and-line.md | 20 +- .../problem-404-crisscross-ellipses.md | 28 ++- .../problem-405-a-rectangular-tiling.md | 24 +- .../problem-406-guessing-game.md | 42 ++-- .../project-euler/problem-407-idempotents.md | 18 +- ...lem-408-admissible-paths-through-a-grid.md | 18 +- .../project-euler/problem-409-nim-extreme.md | 24 +- .../problem-41-pandigital-prime.md | 2 +- .../problem-410-circle-and-tangent-line.md | 20 +- .../project-euler/problem-411-uphill-paths.md | 24 +- .../problem-412-gnomon-numbering.md | 26 ++- .../problem-413-one-child-numbers.md | 20 +- .../problem-414-kaprekar-constant.md | 32 +-- .../project-euler/problem-416-a-frogs-trip.md | 18 +- .../problem-417-reciprocal-cycles-ii.md | 23 +- .../problem-418-factorisation-triples.md | 21 +- .../problem-419-look-and-say-sequence.md | 31 ++- .../problem-42-coded-triangle-numbers.md | 2 +- ...problem-420-2x2-positive-integer-matrix.md | 27 ++- .../problem-421-prime-factors-of-n151.md | 26 ++- ...m-422-sequence-of-points-on-a-hyperbola.md | 28 ++- .../problem-423-consecutive-die-throws.md | 33 ++- .../project-euler/problem-424-kakuro.md | 43 +++- .../problem-425-prime-connection.md | 27 ++- .../problem-426-box-ball-system.md | 27 ++- .../project-euler/problem-427-n-sequences.md | 22 +- .../problem-428-necklace-of-circles.md | 27 ++- ...-429-sum-of-squares-of-unitary-divisors.md | 20 +- .../problem-43-sub-string-divisibility.md | 2 +- .../project-euler/problem-430-range-flips.md | 22 +- .../problem-431-square-space-silo.md | 20 +- .../project-euler/problem-432-totient-sum.md | 16 +- .../project-euler/problem-434-rigid-graphs.md | 30 ++- ...em-435-polynomials-of-fibonacci-numbers.md | 18 +- .../project-euler/problem-436-unfair-wager.md | 24 +- .../problem-437-fibonacci-primitive-roots.md | 36 ++- ...-part-of-polynomial-equations-solutions.md | 25 +- .../problem-439-sum-of-sum-of-divisors.md | 20 +- .../problem-44-pentagon-numbers.md | 2 +- .../problem-440-gcd-and-tiling.md | 31 ++- ...he-inverse-summation-of-coprime-couples.md | 22 +- .../problem-442-eleven-free-integers.md | 14 +- .../project-euler/problem-443-gcd-sequence.md | 24 +- .../problem-444-the-roundtable-lottery.md | 26 ++- .../problem-445-retractions-a.md | 24 +- .../problem-446-retractions-b.md | 24 +- .../problem-447-retractions-c.md | 24 +- ...oblem-448-average-least-common-multiple.md | 22 +- .../problem-449-chocolate-covered-candy.md | 22 +- ...-45-triangular-pentagonal-and-hexagonal.md | 2 +- ...blem-450-hypocycloid-and-lattice-points.md | 35 +-- .../problem-451-modular-inverses.md | 33 ++- .../problem-452-long-products.md | 18 +- .../problem-453-lattice-quadrilaterals.md | 20 +- ...problem-454-diophantine-reciprocals-iii.md | 20 +- ...problem-455-powers-with-trailing-digits.md | 20 +- .../problem-459-flipping-game.md | 30 ++- .../problem-46-goldbachs-other-conjecture.md | 2 +- .../problem-460-an-ant-on-the-move.md | 31 ++- ...problem-463-a-weird-recurrence-relation.md | 24 +- ...roblem-464-mbius-function-and-intervals.md | 31 ++- .../problem-465-polar-polygons.md | 20 +- ...istinct-terms-in-a-multiplication-table.md | 26 ++- .../project-euler/problem-467-superinteger.md | 31 ++- ...mooth-divisors-of-binomial-coefficients.md | 28 ++- .../project-euler/problem-469-empty-chairs.md | 18 +- .../problem-47-distinct-primes-factors.md | 60 ++--- .../project-euler/problem-470-super-ramvok.md | 18 +- ...oblem-471-triangle-inscribed-in-ellipse.md | 34 ++- .../problem-472-comfortable-distance-ii.md | 30 +-- .../problem-473-phigital-number-base.md | 20 +- .../problem-474-last-digits-of-divisors.md | 18 +- .../problem-475-music-festival.md | 20 +- .../problem-476-circle-packing-ii.md | 18 +- .../problem-477-number-sequence-game.md | 40 ++-- .../project-euler/problem-478-mixtures.md | 28 ++- .../problem-479-roots-on-the-rise.md | 20 +- .../project-euler/problem-48-self-powers.md | 2 +- .../problem-480-the-last-question.md | 98 +++----- .../problem-49-prime-permutations.md | 2 +- .../problem-50-consecutive-prime-sum.md | 92 +++++--- .../problem-51-prime-digit-replacements.md | 115 +++++----- .../problem-52-permuted-multiples.md | 2 +- .../problem-53-combinatoric-selections.md | 2 +- .../project-euler/problem-54-poker-hands.md | 2 +- .../problem-55-lychrel-numbers.md | 4 +- .../problem-56-powerful-digit-sum.md | 2 +- .../problem-57-square-root-convergents.md | 2 +- .../project-euler/problem-58-spiral-primes.md | 2 +- .../problem-59-xor-decryption.md | 2 +- .../problem-60-prime-pair-sets.md | 2 +- .../problem-61-cyclical-figurate-numbers.md | 2 +- .../problem-62-cubic-permutations.md | 2 +- .../problem-63-powerful-digit-counts.md | 2 +- .../problem-64-odd-period-square-roots.md | 4 +- .../problem-65-convergents-of-e.md | 2 +- .../problem-66-diophantine-equation.md | 10 +- .../problem-67-maximum-path-sum-ii.md | 2 +- .../problem-68-magic-5-gon-ring.md | 2 +- .../problem-69-totient-maximum.md | 2 +- .../problem-70-totient-permutation.md | 2 +- .../problem-71-ordered-fractions.md | 2 +- .../problem-72-counting-fractions.md | 2 +- ...roblem-73-counting-fractions-in-a-range.md | 2 +- .../problem-74-digit-factorial-chains.md | 22 +- ...lem-75-singular-integer-right-triangles.md | 2 +- .../problem-76-counting-summations.md | 2 +- .../problem-77-prime-summations.md | 2 +- .../problem-78-coin-partitions.md | 2 +- .../problem-79-passcode-derivation.md | 2 +- ...roblem-80-square-root-digital-expansion.md | 2 +- .../problem-81-path-sum-two-ways.md | 8 +- .../problem-82-path-sum-three-ways.md | 6 +- .../problem-83-path-sum-four-ways.md | 6 +- .../project-euler/problem-84-monopoly-odds.md | 2 +- .../problem-85-counting-rectangles.md | 2 +- .../project-euler/problem-86-cuboid-route.md | 2 +- .../problem-87-prime-power-triples.md | 2 +- .../problem-88-product-sum-numbers.md | 2 +- .../problem-89-roman-numerals.md | 2 +- .../problem-90-cube-digit-pairs.md | 2 +- ...ight-triangles-with-integer-coordinates.md | 2 +- .../problem-92-square-digit-chains.md | 7 +- .../problem-93-arithmetic-expressions.md | 6 +- ...problem-94-almost-equilateral-triangles.md | 2 +- .../problem-95-amicable-chains.md | 2 +- .../problem-97-large-non-mersenne-prime.md | 2 +- .../problem-98-anagramic-squares.md | 2 +- .../problem-99-largest-exponential.md | 2 +- .../rosetta-code/24-game.md | 141 ++++++++---- .../9-billion-names-of-god-the-integer.md | 4 +- .../rosetta-code/accumulator-factory.md | 4 +- .../rosetta-code/ackermann-function.md | 2 +- .../rosetta-code/align-columns.md | 2 +- .../rosetta-code/amicable-pairs.md | 12 +- .../rosetta-code/averages-mode.md | 4 +- .../averages-pythagorean-means.md | 4 +- .../rosetta-code/averages-root-mean-square.md | 8 +- .../rosetta-code/babbage-problem.md | 4 +- .../rosetta-code/balanced-brackets.md | 20 +- ...cles-of-given-radius-through-two-points.md | 2 +- .../rosetta-code/closest-pair-problem.md | 2 +- .../rosetta-code/combinations.md | 4 +- .../rosetta-code/comma-quibbling.md | 14 +- .../rosetta-code/compare-a-list-of-strings.md | 10 +- .../convert-seconds-to-compound-duration.md | 2 +- .../count-occurrences-of-a-substring.md | 2 +- .../rosetta-code/count-the-coins.md | 4 +- .../rosetta-code/cramers-rule.md | 10 +- .../rosetta-code/cusip.md | 2 +- .../rosetta-code/cut-a-rectangle.md | 2 +- .../rosetta-code/date-format.md | 2 +- .../rosetta-code/date-manipulation.md | 2 +- .../rosetta-code/day-of-the-week.md | 2 +- .../rosetta-code/deal-cards-for-freecell.md | 16 +- .../rosetta-code/deepcopy.md | 2 +- .../define-a-primitive-data-type.md | 2 +- .../rosetta-code/department-numbers.md | 2 +- .../rosetta-code/discordian-date.md | 21 +- .../rosetta-code/dot-product.md | 4 +- .../rosetta-code/element-wise-operations.md | 2 +- .../rosetta-code/emirp-primes.md | 2 +- .../rosetta-code/entropy.md | 22 +- .../rosetta-code/equilibrium-index.md | 2 +- .../rosetta-code/ethiopian-multiplication.md | 2 +- .../rosetta-code/euler-method.md | 6 +- .../evaluate-binomial-coefficients.md | 2 +- .../execute-a-markov-algorithm.md | 216 ++++++------------ .../rosetta-code/execute-brain.md | 22 +- .../extensible-prime-generator.md | 2 +- .../rosetta-code/factorial.md | 4 +- .../factors-of-a-mersenne-number.md | 6 +- .../rosetta-code/factors-of-an-integer.md | 2 +- .../rosetta-code/farey-sequence.md | 4 +- .../fibonacci-n-step-number-sequences.md | 8 +- .../rosetta-code/fibonacci-word.md | 116 +++++----- .../rosetta-code/fizzbuzz.md | 24 +- .../rosetta-code/fractran.md | 4 +- .../rosetta-code/gamma-function.md | 4 +- .../rosetta-code/gaussian-elimination.md | 2 +- .../rosetta-code/general-fizzbuzz.md | 4 +- .../generate-lower-case-ascii-alphabet.md | 2 +- .../rosetta-code/generator-exponential.md | 2 +- .../rosetta-code/gray-code.md | 6 +- .../rosetta-code/greatest-common-divisor.md | 2 +- .../greatest-subsequential-sum.md | 2 +- .../rosetta-code/hailstone-sequence.md | 2 +- .../rosetta-code/happy-numbers.md | 4 +- .../rosetta-code/harshad-or-niven-series.md | 2 +- .../rosetta-code/hash-from-two-arrays.md | 16 +- .../rosetta-code/hash-join.md | 10 +- .../rosetta-code/heronian-triangles.md | 4 +- .../hofstadter-figure-figure-sequences.md | 26 +-- .../rosetta-code/hofstadter-q-sequence.md | 6 +- .../rosetta-code/iban.md | 14 +- .../rosetta-code/identity-matrix.md | 2 +- .../rosetta-code/iterated-digits-squaring.md | 2 +- .../rosetta-code/jaro-distance.md | 34 +-- .../rosetta-code/jortsort.md | 4 +- .../rosetta-code/josephus-problem.md | 6 +- .../rosetta-code/k-d-tree.md | 2 +- .../rosetta-code/kaprekar-numbers.md | 10 +- .../rosetta-code/knapsack-problem-0-1.md | 2 +- .../rosetta-code/knapsack-problem-bounded.md | 2 +- .../knapsack-problem-continuous.md | 2 +- .../knapsack-problem-unbounded.md | 2 +- .../rosetta-code/knights-tour.md | 16 +- .../largest-int-from-concatenated-ints.md | 2 +- .../rosetta-code/last-friday-of-each-month.md | 2 +- .../rosetta-code/last-letter-first-letter.md | 2 +- .../rosetta-code/leap-year.md | 2 +- .../rosetta-code/least-common-multiple.md | 6 +- .../rosetta-code/left-factorials.md | 2 +- .../rosetta-code/letter-frequency.md | 2 +- .../rosetta-code/levenshtein-distance.md | 6 +- .../linear-congruential-generator.md | 6 +- .../rosetta-code/long-multiplication.md | 4 +- .../longest-common-subsequence.md | 22 +- .../longest-increasing-subsequence.md | 8 +- .../rosetta-code/longest-string-challenge.md | 4 +- .../rosetta-code/look-and-say-sequence.md | 4 +- ...oop-over-multiple-arrays-simultaneously.md | 2 +- .../rosetta-code/lu-decomposition.md | 8 +- .../rosetta-code/lucas-lehmer-test.md | 2 +- .../rosetta-code/ludic-numbers.md | 4 +- .../luhn-test-of-credit-card-numbers.md | 4 +- .../rosetta-code/lychrel-numbers.md | 2 +- .../rosetta-code/lzw-compression.md | 4 +- .../rosetta-code/s-expressions.md | 6 +- .../sailors-coconuts-and-a-monkey-problem.md | 17 +- .../rosetta-code/search-a-list-of-records.md | 2 +- .../rosetta-code/sedols.md | 13 +- .../rosetta-code/self-describing-numbers.md | 4 +- .../rosetta-code/self-referential-sequence.md | 4 +- .../rosetta-code/semiprime.md | 4 +- .../rosetta-code/set-of-real-numbers.md | 2 +- .../rosetta-code/sha-1.md | 4 +- .../rosetta-code/sha-256.md | 2 +- .../sort-an-array-of-composite-structures.md | 2 +- .../rosetta-code/sort-disjoint-sublist.md | 2 +- .../rosetta-code/sort-stability.md | 4 +- .../sort-using-a-custom-comparator.md | 2 +- .../sorting-algorithms-bead-sort.md | 54 ++--- .../sorting-algorithms-bogosort.md | 6 +- .../sorting-algorithms-cocktail-sort.md | 26 +-- .../sorting-algorithms-comb-sort.md | 12 +- .../sorting-algorithms-gnome-sort.md | 4 +- .../sorting-algorithms-pancake-sort.md | 4 +- .../sorting-algorithms-permutation-sort.md | 4 +- .../sorting-algorithms-shell-sort.md | 4 +- .../sorting-algorithms-stooge-sort.md | 4 +- .../sorting-algorithms-strand-sort.md | 18 +- .../rosetta-code/soundex.md | 14 +- .../rosetta-code/spiral-matrix.md | 2 +- ...ter-string-based-on-change-of-character.md | 2 +- .../rosetta-code/state-name-puzzle.md | 9 +- .../rosetta-code/straddling-checkerboard.md | 10 +- ...s-and-extended-characters-from-a-string.md | 2 +- .../rosetta-code/subleq.md | 36 +-- .../rosetta-code/sudoku.md | 4 +- .../rosetta-code/sum-digits-of-an-integer.md | 2 +- .../rosetta-code/sum-multiples-of-3-and-5.md | 2 +- .../rosetta-code/sum-of-a-series.md | 4 +- .../rosetta-code/sum-of-squares.md | 2 +- .../rosetta-code/sum-to-100.md | 4 +- .../sutherland-hodgman-polygon-clipping.md | 4 +- .../rosetta-code/symmetric-difference.md | 8 +- .../rosetta-code/taxicab-numbers.md | 11 +- .../tokenize-a-string-with-escaping.md | 2 +- .../rosetta-code/top-rank-per-group.md | 2 +- .../rosetta-code/topological-sort.md | 4 +- .../rosetta-code/towers-of-hanoi.md | 12 +- .../rosetta-code/word-frequency.md | 34 +-- .../rosetta-code/word-wrap.md | 2 +- .../rosetta-code/y-combinator.md | 12 +- .../zeckendorf-number-representation.md | 2 +- .../zhang-suen-thinning-algorithm.md | 6 +- .../rosetta-code/zig-zag-matrix.md | 4 +- .../build-a-camper-leaderboard.md | 18 +- .../build-a-light-bright-app.md | 6 +- .../build-a-nightlife-coordination-app.md | 12 +- .../build-a-pinterest-clone.md | 10 +- .../take-home-projects/build-a-pong-game.md | 10 +- .../take-home-projects/build-a-recipe-box.md | 10 +- .../build-a-roguelike-dungeon-crawler-game.md | 10 +- .../take-home-projects/build-a-simon-game.md | 10 +- .../build-a-tic-tac-toe-game.md | 10 +- .../take-home-projects/build-a-voting-app.md | 8 +- .../build-a-wikipedia-viewer.md | 18 +- ...build-an-image-search-abstraction-layer.md | 6 +- .../build-the-game-of-life.md | 25 +- .../chart-the-stock-market.md | 8 +- .../manage-a-book-trading-club.md | 8 +- .../map-data-across-the-globe.md | 10 +- ...-contiguity-with-a-force-directed-graph.md | 10 +- .../show-the-local-weather.md | 14 +- .../use-the-twitch-json-api.md | 18 +- ...near-regression-health-costs-calculator.md | 26 ++- .../neural-network-sms-text-classifier.md | 16 +- .../rock-paper-scissors.md | 48 +++- ...neural-networks-the-convolutional-layer.md | 8 +- ...-learning-algorithms-building-the-model.md | 4 + ...core-learning-algorithms-classification.md | 6 +- .../core-learning-algorithms-clustering.md | 4 + ...earning-algorithms-hidden-markov-models.md | 4 + ...earning-algorithms-the-training-process.md | 6 +- ...ng-algorithms-training-and-testing-data.md | 4 + ...using-probabilities-to-make-predictions.md | 4 + ...e-learning-algorithms-working-with-data.md | 4 + .../tensorflow/core-learning-algorithms.md | 18 +- ...roduction-machine-learning-fundamentals.md | 4 + .../tensorflow/introduction-to-tensorflow.md | 4 + ...processing-with-rnns-building-the-model.md | 4 + ...ssing-with-rnns-create-a-play-generator.md | 4 + ...processing-with-rnns-making-predictions.md | 4 + ...al-language-processing-with-rnns-part-2.md | 4 + ...ing-with-rnns-recurring-neural-networks.md | 4 + ...processing-with-rnns-training-the-model.md | 4 + .../natural-language-processing-with-rnns.md | 4 + .../neural-networks-activation-functions.md | 6 +- .../neural-networks-creating-a-model.md | 4 + .../tensorflow/neural-networks-optimizers.md | 4 + .../neural-networks-with-tensorflow.md | 4 + ...cement-learning-with-q-learning-example.md | 4 + ...rcement-learning-with-q-learning-part-2.md | 4 + .../build-a-survey-form.md | 2 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 27 ++- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 11 +- .../617b9ad735109e217284e095.md | 8 +- .../617bd6ec666b1da2587e4e37.md | 16 +- .../618a00ed1ca871a2b3aca0cb.md | 12 +- .../618a0927005553b74bfa05ae.md | 12 +- .../618a0b2befb143baefab632b.md | 12 +- .../618a1275e873dcc803c2d1aa.md | 8 +- .../618a132676346ac9f7fd59dd.md | 10 +- .../618a16873520a8d088ffdf44.md | 6 +- .../618a16d21bd3dad1bb3aa8ef.md | 10 +- .../619b72a0db211f1c29afb906.md | 10 +- .../619b7424f43ec9215e538afe.md | 12 +- .../619b74fa777a2b2473c94f82.md | 16 +- .../619b761916dac02643940022.md | 10 +- .../619b7c3c83de403126b69c1e.md | 10 +- .../619b7fd56aa2253778bcf5f7.md | 16 +- .../61a489b8579e87364b2d2cdb.md | 12 +- .../61a493ead935c148d2b76312.md | 4 +- .../61a498399534644f59cff05e.md | 8 +- .../61a49d15bdbb5e57cc6fd280.md | 2 +- .../61a4a53c4459446dc134a1c6.md | 8 +- .../61a4a6e908bc34725b4c25ac.md | 6 +- .../61a4a7877da33a73a1c1723e.md | 8 +- .../61a4ac092eb21e7dbfe61c33.md | 8 +- .../61a4acbb5587197f68544d00.md | 8 +- .../61a4ada3aabeec822b2975d9.md | 8 +- .../61a4ae5f29eb5584187201c3.md | 8 +- .../61a5be9833e7dc178de2af10.md | 8 +- .../61a5bfe091060f1d6a629dd0.md | 2 +- .../61a5c906ab73313316e342f0.md | 12 +- .../61a5ca57f50ded36d33eef96.md | 8 +- .../61a5d594b887335228ee6533.md | 2 +- .../61a5d6701ee08953ca375243.md | 2 +- .../61a5d79c858bef560e26c685.md | 2 +- .../61a5d7ef1cfcf45764df07a2.md | 2 +- .../61adc60b69cd4b87739d2174.md | 10 +- .../61adc91467b5d59328b9f781.md | 2 +- .../61add79e739a5faee9d96080.md | 2 +- .../61add929e41980b1edbdba7e.md | 2 +- .../61addaf7e83988b59a7d18ff.md | 2 +- .../61ade49b2dad60c076cbd32d.md | 2 +- .../61b092eb9e7fc020b43b1bb2.md | 2 +- .../61b093179e7fc020b43b1bb3.md | 2 +- .../61b093219e7fc020b43b1bb4.md | 2 +- .../61b093329e7fc020b43b1bb5.md | 2 +- .../61b093429e7fc020b43b1bb6.md | 2 +- .../61b0934c9e7fc020b43b1bb7.md | 2 +- .../61b0936d9e7fc020b43b1bb8.md | 4 +- .../61b095989e7fc020b43b1bb9.md | 2 +- .../61b095a79e7fc020b43b1bba.md | 2 +- .../61b095c79e7fc020b43b1bbb.md | 2 +- .../61b09f739aa6572d2064f9b8.md | 2 +- .../61b0a1b2af494934b7ec1a72.md | 2 +- .../61b0a44a6b865738ba49b9fb.md | 2 +- .../61b306305810f1c9040ce5a2.md | 2 +- .../61b30995968123ceb6b76167.md | 2 +- .../61b30a286c228bd0c493c09a.md | 2 +- .../61b31287fb580ae75a486047.md | 2 +- .../61b315e76a63b3ecbbb11b75.md | 2 +- .../61b3183655ec10efd8c0bb07.md | 2 +- .../61b31a451057fff645ec09be.md | 2 +- .../61b31cd7b0c76bfc076b4719.md | 2 +- .../6153a3952facd25a83fe8083.md | 2 +- .../61437d575fb98f57fa8f7f36.md | 6 +- .../614385513d91ae5c251c2052.md | 2 +- .../6143862a5e54455d262c212e.md | 2 +- .../6143869bb45bd85e3b1926aa.md | 10 +- .../614387cbefeeba5f3654a291.md | 2 +- .../614389f601bb4f611db98563.md | 2 +- .../61438b5b66d76a6264430f2a.md | 2 +- .../61438ec09438696391076d6a.md | 2 +- .../61439dc084fa5f659cf75d7c.md | 2 +- .../61439dfc811e12666b04be6f.md | 4 +- .../61439e33e4fb7967609e0c83.md | 2 +- .../6143a1a228f7d068ab16a130.md | 4 +- .../6143a73279ce6369de4b9bcc.md | 2 +- .../6143a778bffc206ac6b1dbe3.md | 2 +- .../6143a83fcc32c26bcfae3efa.md | 2 +- .../6143b97c06c3306d23d5da47.md | 2 +- .../6143b9e1f5035c6e5f2a8231.md | 4 +- .../6143bb50e8e48c6f5ef9d8d5.md | 2 +- .../6143c2a363865c715f1a3f72.md | 2 +- .../6143cd08fe927072ca3a371d.md | 2 +- .../6143cdf48b634a747de42104.md | 2 +- .../6143d003ad9e9d76766293ec.md | 2 +- .../6143d2842b497779bad947de.md | 2 +- .../6144d66a5358db0c80628757.md | 2 +- .../6144d7dbdd3e580da730ff45.md | 2 +- .../6144de308591ec10e27d5383.md | 2 +- .../6144e1ba93e435127a7f516d.md | 2 +- .../6144ee46a9d6e614c598cc05.md | 2 +- .../6144ee790af79815ad15a832.md | 2 +- .../6144f1410990ea17187a722b.md | 4 +- .../6144f3818bfbc51844152e36.md | 2 +- .../6144f42204c8c8195f1f3345.md | 2 +- .../6144f47b7c631e1a6f304dd5.md | 2 +- .../6148b07081759c2c691166a9.md | 2 +- .../6148b0d764e4192e5712ed92.md | 2 +- .../6148b185ef37522f688316b0.md | 2 +- .../6148b30464daf630848c21d4.md | 2 +- .../6148b4b150434734143db6f2.md | 2 +- .../6148b5623efa8f369f2c3643.md | 2 +- .../6148b59ef318e03875f35c4a.md | 2 +- .../6148bd62bbb8c83a5f1fc1b3.md | 2 +- .../6148be3d605d6b3ca9425d11.md | 2 +- .../6148be82ca63c63daa8cca49.md | 2 +- .../6148bf49fcc7913f05dbf9b7.md | 2 +- .../6148bfc43df3bc40fe0e6405.md | 2 +- .../6148c004ffc8434252940dc3.md | 2 +- .../6148c224ecb157439bc5247c.md | 2 +- .../6148c434bd731d45617a76c6.md | 2 +- .../6148c5036ddad94692a66230.md | 2 +- .../6148c58bace368497fb11bcf.md | 2 +- .../6148c6aa9981d74af202125e.md | 2 +- .../6148c721e74ecd4c619ae51c.md | 2 +- .../6148ceaf5d897d4d8b3554b3.md | 2 +- .../6148cf094b3f2b4e8a032c63.md | 2 +- .../6148d0b863d10d50544ace0e.md | 2 +- .../6148d1bdf39c5b5186f5974b.md | 2 +- .../6148d1f9eb63c252e1f8acc4.md | 2 +- .../6148d2444d01ab541e64a1e4.md | 2 +- .../6148d33e31fccf558696c745.md | 2 +- .../6148d3fff5186b57123d97e2.md | 2 +- .../6148d4d57b965358c9fa38bf.md | 2 +- .../6148d7720f0db36775db868a.md | 2 +- .../6148d94fdf6a5d6899f8ff15.md | 2 +- .../6148d9825b50a3698aeee644.md | 2 +- .../6148e162e255676ae0da6a76.md | 2 +- .../6148e19c3e26436be0155690.md | 2 +- .../6148e246146b646cf4255f0c.md | 2 +- .../6148e2dcdd60306dd77d41cc.md | 2 +- .../6148e4d6861a486f60681f36.md | 2 +- .../6148e5a204d99e70343a63e4.md | 2 +- .../6148e62a6f768f71c4f04828.md | 2 +- .../6148e789329dc9736ce59b85.md | 2 +- .../6148f34ebedc2274bceeb99c.md | 2 +- .../6148f600cde42b7670c2611f.md | 2 +- .../6148f693e0728f77c87f3020.md | 2 +- .../6148f6f7d8914c78e93136ca.md | 10 +- .../614e0e503b110f76d3ac2ff6.md | 2 +- .../614e0e588f0e8a772a8a81a6.md | 2 +- .../6165d3b702a5d92ad970b30c.md | 2 +- .../6169cd8a558aa8434e0ad7f6.md | 2 +- .../619665c9abd72906f3ad30f9.md | 4 +- .../61967e74a8e3690ab6292daa.md | 4 +- .../61968df2acd5550bf1616c34.md | 6 +- .../61968e9243a4090cc805531c.md | 4 +- .../61968f8877c6720d6d61aaf5.md | 4 +- .../619691693bc14b0e528f5a20.md | 4 +- .../6196928658b6010f28c39484.md | 2 +- .../619692ff79f5770fc6d8c0b4.md | 4 +- .../6196990f966e8f10a40094f6.md | 4 +- .../619699c10a0f6e11591d73c4.md | 4 +- .../61969aa6acef5b12200f672e.md | 4 +- .../61969c487ced6f12db8fef94.md | 2 +- .../61969d66cfcdba137d021558.md | 4 +- .../61969e7451455614217e901b.md | 4 +- .../6196adc17f77a714d51485f2.md | 4 +- .../6196aead7ac7bf1584b17a7f.md | 6 +- .../6196ce0415498d2463989e84.md | 2 +- .../6196cee94c6da1253809dff9.md | 2 +- .../6196d00a5d7292262bc02f4c.md | 2 +- .../6196d0cda039d026f7f78d1e.md | 2 +- .../6196d1ac33c68d27dcda5796.md | 2 +- .../6196d213d99f16287bff22ae.md | 2 +- .../6196d2c0f22ca0293107c048.md | 4 +- .../6196d32d1340d829f0f6f57d.md | 2 +- .../6196d41d40bf9b2aaea5d520.md | 2 +- .../6197cff995d03905b0cca8ad.md | 2 +- .../6197f40a16afea068c7e60c8.md | 2 +- .../6197f667297bb30a552ce017.md | 4 +- .../61993b72e874e709b8dfd666.md | 2 +- .../61993cf26a8e0f0a553db223.md | 4 +- .../61993dbb35adf30b10d49e38.md | 2 +- .../61993e9adc9e9a0bb4d28fff.md | 2 +- .../6199409834ccaf0d10736596.md | 2 +- .../6199429802b7c10dc79ff871.md | 2 +- .../619943285a41720e6370d985.md | 4 +- .../619943876b706d0f35c01dbc.md | 2 +- .../6199442866286d0ff421a4fc.md | 2 +- .../619be73b3c806006ccc00bb0.md | 2 +- .../619be7af7b0bf60770f5d2a4.md | 2 +- .../619be80062551a080e32c821.md | 2 +- .../619be8ce4ea49008c5bfbc30.md | 2 +- .../619be946958c6009844f1dee.md | 2 +- .../619c155df0063a0a3fec0e32.md | 2 +- .../619c16debd0c270b01c5ce38.md | 2 +- .../619cfdf2e63ddf05feab86ad.md | 2 +- .../619d019488f98c06acbbb71a.md | 2 +- .../619d022dc8400c0763829a17.md | 2 +- .../619d02c7bc95bf0827a5d296.md | 2 +- .../619d033915012509031f309a.md | 2 +- .../619d03dadadb6509a16f4f5f.md | 2 +- .../619d0503e03a790a4179d463.md | 2 +- .../619d05c54dabca0b10058235.md | 2 +- .../619d0882f54bf40bdc4671ed.md | 2 +- .../619d090cd8d6db0c93dc5087.md | 2 +- .../619d0b51ca42ed0d74582186.md | 2 +- .../619d0bc9cb05360e1bf549c3.md | 2 +- .../619d0c1594c38c0ebae75878.md | 2 +- .../619d0d18ca99870f884a7bff.md | 4 +- .../619d0daf214542102739b0da.md | 2 +- .../619d0e56f9ca9710fcb974e3.md | 2 +- .../619d0eec0ac40611b41e2ccc.md | 2 +- .../619d0fc9825c271253df28d4.md | 2 +- .../619d102d786c3d13124c37c6.md | 2 +- .../619d107edf7ddf13cc77106a.md | 2 +- .../619d10cc98145f14820399c5.md | 2 +- .../619d115e2adcd71538e82ebb.md | 2 +- .../619d11e6d5ef9515d2a16033.md | 2 +- .../619d129a417d0716a94de913.md | 2 +- .../619d1340361095175f4b5115.md | 2 +- .../619d15797b580c1828b05426.md | 2 +- .../619d15d955d9d418c4487bbc.md | 2 +- .../619d1629a8adc61960ca8b40.md | 2 +- .../619d1c5fc9f8941a400955da.md | 2 +- .../619d1dab9ff3421ae1976991.md | 2 +- .../619d1deb8b04811b8839ffe4.md | 2 +- .../619d1e7a8e81a61c5a819dc4.md | 2 +- .../619d1ed33c9a071cf657a0d6.md | 2 +- .../619d1fb5d244c31db8a7fdb7.md | 2 +- .../619d204bd73ae51e743b8e94.md | 4 +- .../619d20b12996101f430920fb.md | 4 +- .../619d21fe6a3f9b2016be9d9d.md | 2 +- .../619d229b0e542520cd91c685.md | 2 +- .../619d23089e787e216a7043d6.md | 2 +- .../619d237a107c10221ed743fa.md | 2 +- .../619d26b12e651022d80cd017.md | 2 +- .../619d2712853306238f41828e.md | 2 +- .../619d2b7a84e78b246f2d17a2.md | 2 +- .../619d2bd9c1d43c2526e96f1f.md | 4 +- .../619d2d4e80400325ff89664a.md | 2 +- .../619d2ebc81ba81271460850d.md | 2 +- .../619d2f0e9440bc27caee1cec.md | 2 +- .../619d2fd3ff4f772882e3d998.md | 2 +- .../619d30350883802921bfcccc.md | 2 +- .../619d324f5915c929f36ae91d.md | 2 +- .../619d32c7fa21f32aaa91d499.md | 2 +- .../619d333b738e3c2b5d58b095.md | 2 +- .../619d337765b9f02c10e93722.md | 2 +- .../619d33c51140292cc5a21742.md | 2 +- .../619d3482f505452d861d0f62.md | 2 +- .../619d3561a951bf2e41a24f10.md | 2 +- .../619d36103839c82efa95dd34.md | 2 +- .../619d3711d04d623000013e9e.md | 2 +- .../61a8fe15a6a31306e60d1e89.md | 4 +- .../5d822fd413a79914d39e98cd.md | 2 +- .../5d822fd413a79914d39e98ce.md | 2 +- .../5d822fd413a79914d39e98cf.md | 4 +- .../5d822fd413a79914d39e98d0.md | 2 +- .../5d822fd413a79914d39e98d1.md | 4 +- .../5d822fd413a79914d39e98d2.md | 4 +- .../5d822fd413a79914d39e98d3.md | 4 +- .../5d822fd413a79914d39e98d4.md | 2 +- .../5d822fd413a79914d39e98d5.md | 4 +- .../5d822fd413a79914d39e98d6.md | 4 +- .../5d822fd413a79914d39e98d7.md | 6 +- .../5d822fd413a79914d39e98d8.md | 2 +- .../5d822fd413a79914d39e98d9.md | 2 +- .../5d822fd413a79914d39e98da.md | 4 +- .../5d822fd413a79914d39e98db.md | 2 +- .../5d822fd413a79914d39e98dc.md | 4 +- .../5d822fd413a79914d39e98dd.md | 4 +- .../5d822fd413a79914d39e98de.md | 4 +- .../5d822fd413a79914d39e98df.md | 4 +- .../5d822fd413a79914d39e98e0.md | 2 +- .../5d822fd413a79914d39e98e1.md | 4 +- .../5d822fd413a79914d39e98e2.md | 4 +- .../5d822fd413a79914d39e98e3.md | 2 +- .../5d822fd413a79914d39e98e4.md | 2 +- .../5d822fd413a79914d39e98e5.md | 2 +- .../5d822fd413a79914d39e98e6.md | 2 +- .../5d822fd413a79914d39e98e7.md | 4 +- .../5d822fd413a79914d39e98e8.md | 2 +- .../5d822fd413a79914d39e98e9.md | 4 +- .../5d822fd413a79914d39e98ea.md | 4 +- .../5d822fd413a79914d39e98eb.md | 2 +- .../5d822fd413a79914d39e98ec.md | 4 +- .../5d822fd413a79914d39e98ed.md | 4 +- .../5d822fd413a79914d39e98ee.md | 4 +- .../5d822fd413a79914d39e98ef.md | 4 +- .../5d822fd413a79914d39e98f0.md | 4 +- .../5d822fd413a79914d39e98f1.md | 4 +- .../5d822fd413a79914d39e98f2.md | 4 +- .../5d822fd413a79914d39e98f3.md | 4 +- .../5d822fd413a79914d39e98f4.md | 4 +- .../5d822fd413a79914d39e98f5.md | 4 +- .../5d822fd413a79914d39e98f6.md | 4 +- .../5d822fd413a79914d39e98f7.md | 4 +- .../5d822fd413a79914d39e98f8.md | 4 +- .../5d822fd413a79914d39e98f9.md | 4 +- .../5d822fd413a79914d39e98fa.md | 4 +- .../5d822fd413a79914d39e98fb.md | 10 +- .../5d822fd413a79914d39e98fc.md | 10 +- .../5d822fd413a79914d39e98fd.md | 2 +- .../5d822fd413a79914d39e98fe.md | 10 +- .../5d822fd413a79914d39e98ff.md | 10 +- .../5d822fd413a79914d39e9900.md | 10 +- .../5d822fd413a79914d39e9901.md | 10 +- .../5d822fd413a79914d39e9902.md | 10 +- .../5d822fd413a79914d39e9903.md | 10 +- .../5d822fd413a79914d39e9904.md | 10 +- .../5d822fd413a79914d39e9905.md | 10 +- .../5d822fd413a79914d39e9906.md | 10 +- .../5d822fd413a79914d39e9907.md | 10 +- .../5d822fd413a79914d39e9908.md | 12 +- .../5d822fd413a79914d39e9909.md | 12 +- .../5d822fd413a79914d39e990a.md | 12 +- .../5d822fd413a79914d39e990b.md | 12 +- .../5d822fd413a79914d39e990c.md | 12 +- .../5d822fd413a79914d39e990d.md | 12 +- .../5d822fd413a79914d39e990e.md | 12 +- .../5d822fd413a79914d39e990f.md | 12 +- .../5d822fd413a79914d39e9910.md | 12 +- .../5d822fd413a79914d39e9911.md | 12 +- .../5d822fd413a79914d39e9912.md | 12 +- .../5d822fd413a79914d39e9913.md | 14 +- .../5d822fd413a79914d39e9914.md | 12 +- .../5d822fd413a79914d39e9915.md | 16 +- .../5d822fd413a79914d39e9916.md | 12 +- .../5d822fd413a79914d39e9917.md | 12 +- .../5d822fd413a79914d39e9918.md | 14 +- .../5d822fd413a79914d39e9919.md | 14 +- .../5d822fd413a79914d39e991a.md | 14 +- .../5d822fd413a79914d39e991b.md | 14 +- .../5d822fd413a79914d39e991c.md | 14 +- .../5d822fd413a79914d39e991d.md | 14 +- .../5d822fd413a79914d39e991e.md | 14 +- .../5d822fd413a79914d39e991f.md | 14 +- .../5d822fd413a79914d39e9920.md | 14 +- .../5d822fd413a79914d39e9921.md | 14 +- .../5d822fd413a79914d39e9922.md | 12 +- .../5d822fd413a79914d39e9923.md | 14 +- .../5d822fd413a79914d39e9924.md | 16 +- .../5d822fd413a79914d39e9925.md | 16 +- .../5d822fd413a79914d39e9926.md | 16 +- .../5d822fd413a79914d39e9927.md | 16 +- .../5d822fd413a79914d39e9928.md | 16 +- .../5d822fd413a79914d39e9929.md | 16 +- .../5d822fd413a79914d39e992a.md | 16 +- .../5d822fd413a79914d39e992b.md | 16 +- .../5d822fd413a79914d39e992c.md | 16 +- .../5d822fd413a79914d39e992d.md | 16 +- .../5d822fd413a79914d39e992e.md | 16 +- .../5d822fd413a79914d39e992f.md | 16 +- .../5d822fd413a79914d39e9930.md | 16 +- .../5d822fd413a79914d39e9931.md | 6 +- .../5d822fd413a79914d39e9932.md | 16 +- .../5d822fd413a79914d39e9933.md | 16 +- .../5d822fd413a79914d39e9934.md | 14 +- .../5d822fd413a79914d39e9935.md | 14 +- .../5d822fd413a79914d39e9936.md | 16 +- .../5d822fd413a79914d39e9937.md | 16 +- .../5d822fd413a79914d39e9938.md | 16 +- .../5d822fd413a79914d39e9939.md | 16 +- .../5d822fd413a79914d39e993a.md | 14 +- .../5d822fd413a79914d39e993b.md | 16 +- .../5d822fd413a79914d39e993c.md | 4 +- .../5d822fd413a79914d39e993d.md | 16 +- .../5d822fd413a79914d39e993e.md | 28 +-- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 2 +- .../5dfa22d1b521be39a3de7be0.md | 4 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 10 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 2 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 9 +- .../60f803d5241e6a0433a523a1.md | 7 +- .../60b69a66b6ddb80858c51578.md | 2 +- .../60b69a66b6ddb80858c51579.md | 4 +- .../60b69a66b6ddb80858c5157a.md | 7 +- .../60b69a66b6ddb80858c5157b.md | 4 +- .../60b69a66b6ddb80858c5157c.md | 2 +- .../60b69a66b6ddb80858c5157d.md | 2 +- .../60b69a66b6ddb80858c5157e.md | 2 +- .../60b69a66b6ddb80858c5157f.md | 2 +- .../60b69a66b6ddb80858c51580.md | 2 +- .../60b69a66b6ddb80858c51581.md | 4 +- .../60b69a66b6ddb80858c51582.md | 4 +- .../60b69a66b6ddb80858c51583.md | 4 +- .../60b69a66b6ddb80858c51584.md | 4 +- .../60b69a66b6ddb80858c51585.md | 4 +- .../60b69a66b6ddb80858c51586.md | 2 +- .../60b69a66b6ddb80858c51587.md | 2 +- .../60b69a66b6ddb80858c51588.md | 2 +- .../60b69a66b6ddb80858c51589.md | 2 +- .../60b69a66b6ddb80858c5158a.md | 2 +- .../60b69a66b6ddb80858c5158b.md | 2 +- .../60b69a66b6ddb80858c5158c.md | 2 +- .../60b69a66b6ddb80858c5158d.md | 2 +- .../60b69a66b6ddb80858c5158e.md | 2 +- .../60b69a66b6ddb80858c5158f.md | 2 +- .../60b69a66b6ddb80858c51590.md | 2 +- .../60b69a66b6ddb80858c51591.md | 2 +- .../60b69a66b6ddb80858c51592.md | 2 +- .../60b69a66b6ddb80858c51593.md | 2 +- .../60b69a66b6ddb80858c51594.md | 2 +- .../60b69a66b6ddb80858c51595.md | 4 +- .../60b69a66b6ddb80858c51596.md | 2 +- .../60b69a66b6ddb80858c51597.md | 2 +- .../60b69a66b6ddb80858c51598.md | 4 +- .../60b69a66b6ddb80858c51599.md | 4 +- .../60b69a66b6ddb80858c5159a.md | 4 +- .../60b69a66b6ddb80858c5159b.md | 4 +- .../60b69a66b6ddb80858c5159c.md | 2 +- .../60b69a66b6ddb80858c5159d.md | 2 +- .../60b69a66b6ddb80858c5159e.md | 2 +- .../60b69a66b6ddb80858c5159f.md | 2 +- .../60b69a66b6ddb80858c515a1.md | 2 +- .../60b69a66b6ddb80858c515a2.md | 2 +- .../60b69a66b6ddb80858c515a3.md | 2 +- .../60b69a66b6ddb80858c515a4.md | 2 +- .../60b69a66b6ddb80858c515a5.md | 2 +- .../60b69a66b6ddb80858c515a6.md | 2 +- .../60b69a66b6ddb80858c515a7.md | 4 +- .../60b69a66b6ddb80858c515a8.md | 2 +- .../60b69a66b6ddb80858c515a9.md | 2 +- .../60b69a66b6ddb80858c515aa.md | 2 +- .../60b69a66b6ddb80858c515ab.md | 2 +- .../60b69a66b6ddb80858c515ac.md | 2 +- .../60b69a66b6ddb80858c515ad.md | 4 +- .../60b69a66b6ddb80858c515ae.md | 4 +- .../60b69a66b6ddb80858c515af.md | 4 +- .../60b69a66b6ddb80858c515b0.md | 4 +- .../60b69a66b6ddb80858c515b1.md | 4 +- .../60b69a66b6ddb80858c515b2.md | 6 +- .../60b69a66b6ddb80858c515b3.md | 2 +- .../60b69a66b6ddb80858c515b4.md | 4 +- .../60b69a66b6ddb80858c515b5.md | 2 +- .../60b69a66b6ddb80858c515b6.md | 2 +- .../60b69a66b6ddb80858c515b7.md | 2 +- .../60b69a66b6ddb80858c515b8.md | 2 +- .../60b69a66b6ddb80858c515b9.md | 2 +- .../60b69a66b6ddb80858c515ba.md | 2 +- .../60b69a66b6ddb80858c515bc.md | 2 +- .../60b69a66b6ddb80858c515bd.md | 2 +- .../60b69a66b6ddb80858c515be.md | 2 +- .../60b69a66b6ddb80858c515bf.md | 2 +- .../60b69a66b6ddb80858c515c0.md | 2 +- .../60b69a66b6ddb80858c515c1.md | 2 +- .../60b69a66b6ddb80858c515c2.md | 2 +- .../60b69a66b6ddb80858c515c3.md | 2 +- .../60b69a66b6ddb80858c515c4.md | 2 +- .../60b69a66b6ddb80858c515c5.md | 2 +- .../60b69a66b6ddb80858c515c6.md | 10 +- .../60b69a66b6ddb80858c515c7.md | 4 +- .../60b80da8676fb3227967a731.md | 2 +- .../60ba890832b4940f24d1936b.md | 2 +- .../60ba89123a445e0f5c9e4022.md | 2 +- .../60ba8913f1704c0f7a8906b8.md | 2 +- .../60ba89146b25080f99ab54ad.md | 2 +- .../60ba8914bab51f0fb8228e9c.md | 2 +- .../60ba929345ab0714a3743655.md | 2 +- .../60ba9296d4d6b414c1b10995.md | 2 +- .../60ba92987c1e4914dfa7a0b9.md | 2 +- .../60bad32219ebcb4a8810ac6a.md | 2 +- .../612ec19d5268da7074941f84.md | 12 +- .../60a3e3396c7b40068ad6996b.md | 2 +- .../60a3e3396c7b40068ad6996c.md | 2 +- .../60a3e3396c7b40068ad6996d.md | 2 +- .../60a3e3396c7b40068ad6996e.md | 2 +- .../60a3e3396c7b40068ad6996f.md | 2 +- .../60a3e3396c7b40068ad69970.md | 2 +- .../60a3e3396c7b40068ad69971.md | 6 +- .../60a3e3396c7b40068ad69972.md | 2 +- .../60a3e3396c7b40068ad69973.md | 2 +- .../60a3e3396c7b40068ad69974.md | 2 +- .../60a3e3396c7b40068ad69975.md | 2 +- .../60a3e3396c7b40068ad69976.md | 2 +- .../60a3e3396c7b40068ad69977.md | 2 +- .../60a3e3396c7b40068ad69978.md | 2 +- .../60a3e3396c7b40068ad69979.md | 2 +- .../60a3e3396c7b40068ad6997a.md | 2 +- .../60a3e3396c7b40068ad6997b.md | 2 +- .../60a3e3396c7b40068ad6997c.md | 2 +- .../60a3e3396c7b40068ad6997d.md | 2 +- .../60a3e3396c7b40068ad6997e.md | 2 +- .../60a3e3396c7b40068ad6997f.md | 2 +- .../60a3e3396c7b40068ad69980.md | 2 +- .../60a3e3396c7b40068ad69981.md | 6 +- .../60a3e3396c7b40068ad69982.md | 2 +- .../60a3e3396c7b40068ad69983.md | 2 +- .../60a3e3396c7b40068ad69984.md | 2 +- .../60a3e3396c7b40068ad69986.md | 2 +- .../60a3e3396c7b40068ad69987.md | 2 +- .../60a3e3396c7b40068ad69988.md | 2 +- .../60a3e3396c7b40068ad69989.md | 2 +- .../60a3e3396c7b40068ad6998a.md | 2 +- .../60a3e3396c7b40068ad6998b.md | 2 +- .../60a3e3396c7b40068ad6998c.md | 2 +- .../60a3e3396c7b40068ad6998d.md | 2 +- .../60a3e3396c7b40068ad6998e.md | 2 +- .../60a3e3396c7b40068ad6998f.md | 2 +- .../60a3e3396c7b40068ad69990.md | 2 +- .../60a3e3396c7b40068ad69991.md | 2 +- .../60a3e3396c7b40068ad69992.md | 2 +- .../60a3e3396c7b40068ad69993.md | 2 +- .../60a3e3396c7b40068ad69994.md | 2 +- .../60a3e3396c7b40068ad69995.md | 2 +- .../60a3e3396c7b40068ad69996.md | 2 +- .../60a3e3396c7b40068ad69997.md | 4 +- .../615f2abbe7d18d49a1e0e1c8.md | 8 +- .../615f2d4150fe0d4cbd0f2628.md | 2 +- .../615f34948891834dd77655a6.md | 4 +- .../615f34ecc1091b4fd5a8a484.md | 2 +- .../615f357957e370510f21ea16.md | 2 +- .../615f378014c2da526a109c81.md | 2 +- .../615f38279e5c3d53692ea441.md | 2 +- .../615f38cabc64e3556f98cc1a.md | 2 +- .../615f3949f58e12577dcefb00.md | 2 +- .../615f39d7da41b15851fa3fb9.md | 2 +- .../615f3b091162165948e1cb33.md | 2 +- .../615f3cafd794015aa9547a6d.md | 2 +- .../615f3d9e59db4b5b8e960762.md | 2 +- .../615f3e1b7233ee5c7595771f.md | 2 +- .../615f3ed16592445e57941aec.md | 2 +- .../615f405b89a7ec5f8e2d11f4.md | 2 +- .../615f40b01f680e608d360ed4.md | 2 +- .../615f4172e9eec061d6456221.md | 2 +- .../615f41c979787462e76dab90.md | 2 +- .../615f423cf65d5864132a0956.md | 2 +- .../615f42a021625f656101ef93.md | 2 +- .../615f4bfb9de4a16703b56eb6.md | 2 +- .../615f4ce9d877b668417c0c42.md | 2 +- .../615f4dde9d72e3694cb9ee3b.md | 2 +- .../615f4ec58334106a4170c2a8.md | 2 +- .../615f4f9e4a40566b776a8f38.md | 2 +- .../615f50473cc0196c6dd3892a.md | 4 +- .../615f51257a8a516d80b6c743.md | 2 +- .../615f51e4e5b24a6e80eccce1.md | 2 +- .../615f522dea4f776f64dc3e91.md | 2 +- .../615f5486b8fd4b71633f69b0.md | 2 +- .../615f575b50b91e72af079480.md | 2 +- .../615f5af373a68e744a3c5a76.md | 2 +- .../615f5c1cb7575c7551ed8a40.md | 2 +- .../615f5fd85d0062761f288364.md | 2 +- .../615f61338c8ca176d6445574.md | 2 +- .../615f666ac5edea782feb7e75.md | 2 +- .../615f671b6d1919792745aa5d.md | 2 +- .../615f6823d0815b7a991f2a75.md | 2 +- .../615f6a7d4ba8037bc086c2c7.md | 2 +- .../615f6b2d164f81809efd9bdc.md | 2 +- .../615f6cc778f7698258467596.md | 2 +- .../615f6fddaac1e083502d3e6a.md | 2 +- .../615f70077a4ff98424236c1e.md | 2 +- .../615f72a872354a850d4f533e.md | 2 +- .../615f74a71f1e498619e38ee8.md | 2 +- .../615f7ad94380408d971d14f6.md | 4 +- .../615f7bc680f7168ea01ebf99.md | 2 +- .../615f7c71eab8218f846e4503.md | 2 +- .../615f7d489a581590d1350288.md | 2 +- .../615f7de4487b64919bb4aa5e.md | 2 +- .../615f7e7281626a92bbd62da8.md | 2 +- .../615f7ecb09de9a938ef94756.md | 2 +- .../615f7fa959ab75948f96a0d6.md | 2 +- .../615f808d85793195b0f53be9.md | 2 +- .../615f829d07b18f96f6f6684b.md | 2 +- .../615f83ef928ec9982b785b6a.md | 2 +- .../615f84f246e8ba98e3cd97be.md | 2 +- .../615f887466db4ba14b5342cc.md | 2 +- .../615f89e055040ba294719d2f.md | 2 +- .../615f8bfe0f30a1a3c340356b.md | 2 +- .../615f8f1223601fa546e93f31.md | 2 +- .../615f905fbd1017a65ca224eb.md | 2 +- .../615f94786869e1a7fec54375.md | 2 +- .../615f951dff9317a900ef683f.md | 2 +- .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 8 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a2509ba163e020bb9d84ea.md | 2 +- .../62a255dae245b52317da824a.md | 2 +- .../62a257659d0d1e2456f24ba2.md | 2 +- .../62a39f5a5790eb27c1e5d4bf.md | 2 +- .../62a3a0a3c0a4b32915d26a6e.md | 2 +- .../62a3a488b24fb32b91155d56.md | 2 +- .../62a3a75d8466a12e009eff76.md | 2 +- .../62a3a7e4f1060e2fc5ffb34b.md | 2 +- .../62a3b365f1cdeb33efc2502e.md | 2 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 2 +- .../62a3b506dbaead396f58a701.md | 2 +- .../62a3b5843544ce3a77459c27.md | 2 +- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 4 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 4 +- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 2 +- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 2 +- .../62a8ca22d29fe62f3952bdf5.md | 2 +- .../62a8cb19bd7f8a304e5427a1.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 2 +- .../62a8ce1dfc990134162b3bd9.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 4 +- .../62a8d0337d7c67377a4a76c6.md | 8 +- .../62a8d08668fa8b38732486e9.md | 4 +- .../62a8d0c4f12c2239b6618582.md | 2 +- .../62a8d0fdf2dad83a92883a80.md | 2 +- .../62a8d143f2a58e3b6d6e9c33.md | 2 +- .../62a8d1c72e8bb13c2074d93c.md | 2 +- .../62a8d2146a3e853d0a6e28ca.md | 2 +- .../62a8d24c97461b3ddb9397c8.md | 2 +- .../62a8d2e2a073be3edb46116f.md | 2 +- .../62a8d31ebbc10e3fe1b28e03.md | 2 +- .../62a8d35660db4040ba292193.md | 2 +- .../62a8d382cd075f4169223e14.md | 2 +- .../62a8d539dc11cb42b5dd7ec8.md | 2 +- .../62a8d61ddfe35744369365b7.md | 8 +- .../62a8d6c7001ebc45350e3d16.md | 6 +- .../62a8d7b8ab568b4649998954.md | 2 +- .../62a8d81f539f004776dd9b1e.md | 2 +- .../62a8dd468debb449b4454086.md | 2 +- .../62a8dd9cdb16324b04cfd958.md | 2 +- .../62a8dfcf7fb1044d2f478fd1.md | 2 +- .../62a8e0d1d0110b4ec421489f.md | 2 +- .../62a8e142f7f0bd4fed898de3.md | 2 +- .../62a8e1dc897df55108bcb5e8.md | 2 +- .../62a8e21398ad61520edb724f.md | 2 +- .../62a8e24c673b075317cc0b09.md | 2 +- .../62a8e271f8e3d1541f9624ad.md | 2 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 6 +- .../62a8e45cc600c3591cee671a.md | 2 +- .../62a8e49f4df7af5ae2d7a616.md | 2 +- .../62a8e4dc6a60f85bf256a0cb.md | 2 +- .../62a8ed36d7a7915dfa444ba2.md | 4 +- .../62a8edd05e27cc668051686f.md | 4 +- .../62a8ee154c8946678775c4a4.md | 2 +- .../62a8ee71f018e968a056d369.md | 2 +- .../62a8eec45f77bc69e8775294.md | 4 +- .../62a8eefe2e68b66ac563816b.md | 2 +- .../62a8ef6a52292f6bdca4f6f8.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 4 +- .../62a8efb0e3ce826db8daf80f.md | 4 +- .../62a8eff21c0b0f6ebe5b8e38.md | 4 +- .../62a8f06fb318666fef69f91e.md | 2 +- .../62a8f14fe6d1fc72454648c7.md | 2 +- .../62a8f1d5f5ddbf74c07f733b.md | 2 +- .../62a8f20463b324759953edad.md | 2 +- .../62a8f256b813a476cae51f49.md | 2 +- .../62a8f2bc37675e77d5835235.md | 2 +- .../62a8f35bde1750791f58773f.md | 2 +- .../62a94114ce0b8918b487390f.md | 2 +- .../62aa1cea594f152ba626b872.md | 2 +- .../62aa1d6736ba262cfa74344b.md | 2 +- .../62aa1d9f535e102e4663e7a6.md | 2 +- .../62aa1e3c7c3d552fb04f0f18.md | 2 +- .../62aa1e8ccd579330e097ce44.md | 2 +- .../62aa1eec891ed731db227a36.md | 2 +- .../62aa1fed3d4e873366ff3131.md | 2 +- .../62aa204c1e1d33348ff09944.md | 4 +- .../62aa20e9cf1be9358f5aceae.md | 6 +- .../62aa2136fc49b836dfedb959.md | 2 +- .../62aa21971e3b743844849985.md | 2 +- .../62aa21ea8d9d9f396b95dd87.md | 2 +- .../62aa226207f33d3ad4c6f546.md | 8 +- .../62aa22aba186563bcbf2c395.md | 2 +- .../62aa234322d4ad3e8bce42cc.md | 2 +- .../62aa2469c77b363fdb4f0e06.md | 2 +- .../62aa252c3b1073415ba2b898.md | 2 +- .../62aa258da314ef42ba0a1858.md | 2 +- .../62aa25fcb5837d43b4d9873d.md | 2 +- .../62aa2626c3c10244b94c787b.md | 2 +- .../62aa264d23cdaa45a20efada.md | 4 +- .../62aa26cca3cd3d46c431e73b.md | 2 +- .../62aa27227399d647e1c37a3c.md | 6 +- .../62aa27560def7048d7b4a095.md | 4 +- .../62aa27c40ca6f04ab8be5fac.md | 6 +- .../62aa28032d863d4bd8058799.md | 2 +- .../62aa287434dc284cea01157c.md | 2 +- .../62aa28bbd6323e4dfb3ac43e.md | 2 +- .../62aa28fb651bf14efa2dbb16.md | 2 +- .../62aa2943669c9d5026af6985.md | 2 +- .../62aa2999ec27ec516655eba6.md | 2 +- .../62aa29d8f8f88152c91350ca.md | 2 +- .../62aa2aec2f09d454253aad6c.md | 2 +- .../62aa2ba9cd881355a6f0a5a8.md | 2 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 2 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../build-a-survey-form.md | 2 +- .../falsy-bouncer.md | 10 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../practice-comparing-different-values.md | 2 +- .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../understand-string-immutability.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + .../mutate-an-array-declared-with-const.md | 2 +- ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- ...tand-functional-programming-terminology.md | 2 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 18 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../visualize-data-with-a-bar-chart.md | 2 +- .../visualize-data-with-a-choropleth-map.md | 2 +- .../visualize-data-with-a-heat-map.md | 2 +- ...visualize-data-with-a-scatterplot-graph.md | 2 +- .../visualize-data-with-a-treemap-diagram.md | 2 +- .../add-document-elements-with-d3.md | 6 +- .../add-labels-to-scatter-plot-circles.md | 8 +- .../change-styles-based-on-data.md | 4 +- .../create-a-linear-scale-with-d3.md | 8 +- .../create-a-scatterplot-with-svg-circles.md | 10 +- .../display-shapes-with-svg.md | 8 +- ...on-data-to-find-a-users-gps-coordinates.md | 4 +- .../exercise-tracker.md | 38 +-- .../request-header-parser-microservice.md | 8 +- .../timestamp-microservice.md | 10 +- .../url-shortener-microservice.md | 2 +- ...hain-middleware-to-create-a-time-server.md | 12 +- ...t-route-parameter-input-from-the-client.md | 8 +- ...-a-root-level-request-logger-middleware.md | 10 +- .../meet-the-node-console.md | 2 +- .../use-body-parser-to-parse-post-requests.md | 2 +- .../use-the-.env-file.md | 18 +- .../add-a-license-to-your-package.json.md | 6 +- ...project-with-external-packages-from-npm.md | 6 +- ...e-of-any-node.js-project-or-npm-package.md | 6 +- ...remove-a-package-from-your-dependencies.md | 4 +- ...he-latest-minor-version-of-a-dependency.md | 6 +- ...he-latest-patch-version-of-a-dependency.md | 2 +- .../create-and-save-a-record-of-a-model.md | 4 +- .../create-many-records-with-model.create.md | 4 +- .../install-and-set-up-mongoose.md | 8 +- .../use-model.find-to-search-your-database.md | 2 +- .../authentication-with-socket.io.md | 2 +- .../create-new-middleware.md | 8 +- .../registration-of-new-users.md | 12 +- .../send-and-display-chat-messages.md | 4 +- .../serialization-of-a-user-object.md | 10 +- .../set-up-a-template-engine.md | 2 +- .../set-up-passport.md | 4 +- .../use-a-template-engines-powers.md | 8 +- .../learn-how-javascript-assertions-work.md | 14 +- ...esponse-using-chai-http-iv---put-method.md | 30 +-- ...sts-on-api-endpoints-using-chai-http-ii.md | 12 +- ...nctional-tests-using-a-headless-browser.md | 40 ++-- .../american-british-translator.md | 2 +- .../issue-tracker.md | 12 +- .../metric-imperial-converter.md | 2 +- .../personal-library.md | 5 +- .../sudoku-solver.md | 2 +- .../data-cleaning-and-visualizations.md | 2 +- .../data-cleaning-with-dataframes.md | 10 +- .../how-to-use-jupyter-notebooks-intro.md | 14 +- .../jupyter-notebooks-cells.md | 16 +- ...-notebooks-importing-and-exporting-data.md | 20 +- .../numpy-boolean-arrays.md | 8 +- .../numpy-introduction-a.md | 16 +- .../numpy-introduction-b.md | 16 +- .../numpy-operations.md | 10 +- ...onal-selection-and-modifying-dataframes.md | 10 +- .../pandas-creating-columns.md | 10 +- .../pandas-dataframes.md | 8 +- ...ndas-indexing-and-conditional-selection.md | 10 +- .../pandas-introduction.md | 10 +- .../parsing-html-and-saving-data.md | 10 +- .../python-functions-and-collections.md | 16 +- .../python-introduction.md | 18 +- .../python-iteration-and-modules.md | 10 +- .../reading-data-csv-and-txt.md | 8 +- .../reading-data-from-databases.md | 14 +- .../reading-data-introduction.md | 10 +- .../medical-data-visualizer.md | 44 ++-- .../page-view-time-series-visualizer.md | 40 ++-- .../sea-level-predictor.md | 1 + .../numpy/basics-of-numpy.md | 2 +- .../numpy/initializing-different-arrays.md | 2 +- .../anonymous-message-board.md | 24 +- .../port-scanner.md | 10 +- .../secure-real-time-multiplayer-game.md | 2 +- .../stock-price-checker.md | 2 +- ...ash-and-compare-passwords-synchronously.md | 2 +- .../install-and-require-helmet.md | 14 +- ...pting-xss-attacks-with-helmet.xssfilter.md | 3 +- .../developing-a-banner-grabber.md | 2 +- .../algorithms/implement-binary-search.md | 12 +- .../algorithms/implement-insertion-sort.md | 14 +- .../algorithms/implement-quick-sort.md | 12 +- ...ment-is-present-in-a-binary-search-tree.md | 2 +- .../check-if-binary-search-tree.md | 2 +- .../create-a-doubly-linked-list.md | 4 +- .../data-structures/create-a-hash-table.md | 10 +- .../create-a-map-data-structure.md | 2 +- .../data-structures/create-a-set-class.md | 2 +- .../create-a-trie-search-tree.md | 2 +- .../create-an-es6-javascript-map.md | 14 +- .../data-structures/depth-first-search.md | 2 +- ...-maximum-height-of-a-binary-search-tree.md | 4 +- ...d-maximum-value-in-a-binary-search-tree.md | 2 +- .../implement-heap-sort-with-a-min-heap.md | 4 +- .../insert-an-element-into-a-max-heap.md | 2 +- .../data-structures/invert-a-binary-tree.md | 2 +- ...erform-a-difference-on-two-sets-of-data.md | 2 +- ...form-a-subset-check-on-two-sets-of-data.md | 2 +- ...orm-an-intersection-on-two-sets-of-data.md | 2 +- .../remove-elements-from-a-linked-list.md | 2 +- .../reverse-a-doubly-linked-list.md | 2 +- ...th-first-search-in-a-binary-search-tree.md | 2 +- ...th-first-search-in-a-binary-search-tree.md | 2 +- .../problem-10-summation-of-primes.md | 54 +++-- .../problem-101-optimum-polynomial.md | 9 +- ...problem-103-special-subset-sums-optimum.md | 9 +- .../problem-107-minimal-network.md | 6 +- .../problem-108-diophantine-reciprocals-i.md | 10 +- .../project-euler/problem-109-darts.md | 21 +- .../problem-111-primes-with-runs.md | 2 +- ...oblem-114-counting-block-combinations-i.md | 2 +- .../problem-116-red-green-or-blue-tiles.md | 6 +- .../problem-117-red-green-and-blue-tiles.md | 2 +- .../problem-122-efficient-exponentiation.md | 22 +- .../problem-126-cuboid-layers.md | 2 +- .../problem-128-hexagonal-tile-differences.md | 2 +- .../problem-137-fibonacci-golden-nuggets.md | 15 +- ...problem-138-special-isosceles-triangles.md | 2 +- .../problem-139-pythagorean-tiles.md | 2 +- ...m-140-modified-fibonacci-golden-nuggets.md | 8 +- ...ting-the-torricelli-point-of-a-triangle.md | 2 +- ...m-147-rectangles-in-cross-hatched-grids.md | 11 +- ...searching-for-a-maximum-sum-subsequence.md | 8 +- .../project-euler/problem-15-lattice-paths.md | 2 +- ...y-for-a-sub-triangle-having-minimum-sum.md | 24 +- ...tandard-sizes-an-expected-value-problem.md | 2 +- ...lem-153-investigating-gaussian-integers.md | 2 +- .../problem-154-exploring-pascals-pyramid.md | 2 +- ...problem-155-counting-capacitor-circuits.md | 2 +- .../problem-156-counting-digits.md | 2 +- ...em-157-solving-the-diophantine-equation.md | 18 +- ...hically-after-its-neighbour-to-the-left.md | 3 +- ...159-digital-root-sums-of-factorisations.md | 29 +-- .../problem-160-factorial-trailing-digits.md | 7 +- .../project-euler/problem-161-triominoes.md | 6 +- .../problem-163-cross-hatched-triangles.md | 8 +- ...s-have-a-sum-greater-than-a-given-value.md | 3 +- .../problem-165-intersections.md | 12 +- .../project-euler/problem-166-criss-cross.md | 9 +- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 13 +- ...can-be-formed-by-concatenating-products.md | 9 +- ...one-two-three-...-distinct-arrangements.md | 9 +- ...an-be-expressed-as-a-sum-of-powers-of-2.md | 3 +- ...oblem-177-integer-angled-quadrilaterals.md | 2 +- ...of-two-different-colours-can-be-grouped.md | 3 +- .../problem-182-rsa-encryption.md | 33 +-- ...lem-184-triangles-containing-the-origin.md | 12 +- .../project-euler/problem-185-number-mind.md | 62 ++--- .../problem-186-connectedness-of-a-network.md | 24 +- ...lem-189-tri-colouring-a-triangular-grid.md | 6 +- .../problem-19-counting-sundays.md | 8 +- .../problem-191-prize-strings.md | 10 +- ...viour-of-a-recursively-defined-sequence.md | 4 +- .../problem-198-ambiguous-numbers.md | 2 +- .../problem-199-iterative-circle-packing.md | 10 +- .../problem-201-subsets-with-a-unique-sum.md | 33 +-- ...em-203-squarefree-binomial-coefficients.md | 16 +- .../problem-206-concealed-square.md | 2 +- ...problem-207-integer-partition-equations.md | 32 ++- .../project-euler/problem-208-robot-walks.md | 4 +- .../problem-209-circular-logic.md | 26 +-- .../problem-210-obtuse-angled-triangles.md | 10 +- .../problem-211-divisor-square-sum.md | 2 +- .../problem-212-combined-volume-of-cuboids.md | 30 ++- .../problem-214-totient-chains.md | 15 +- .../problem-215-crack-free-walls.md | 4 +- ...-primality-of-numbers-of-the-form-2n2-1.md | 2 +- .../problem-217-balanced-numbers.md | 4 +- .../problem-220-heighway-dragon.md | 16 +- .../problem-222-sphere-packing.md | 6 +- ...em-224-almost-right-angled-triangles-ii.md | 6 +- .../problem-225-tribonacci-non-divisors.md | 4 +- .../problem-228-minkowski-sums.md | 8 +- ...-229-four-representations-using-squares.md | 18 +- .../problem-230-fibonacci-words.md | 22 +- .../problem-236-luxury-hampers.md | 12 +- ...blem-237-tours-on-a-4-x-n-playing-board.md | 2 +- .../problem-238-infinite-string-tour.md | 6 +- .../project-euler/problem-240-top-dice.md | 9 +- .../project-euler/problem-244-sliders.md | 22 +- .../problem-246-tangents-to-an-ellipse.md | 4 +- .../problem-247-squares-under-a-hyperbola.md | 2 +- .../project-euler/problem-252-convex-holes.md | 9 +- .../project-euler/problem-253-tidying-up.md | 30 +-- .../problem-256-tatami-free-rooms.md | 2 +- .../problem-257-angular-bisectors.md | 2 +- .../problem-261-pivotal-square-sums.md | 9 +- .../problem-265-binary-circles.md | 2 +- ...ur-distinct-prime-factors-less-than-100.md | 3 +- .../problem-270-cutting-squares.md | 2 +- .../problem-275-balanced-sculptures.md | 2 +- .../problem-281-pizza-toppings.md | 2 +- .../problem-282-the-ackermann-function.md | 8 +- ...encoding-a-simple-compression-algorithm.md | 2 +- .../problem-288-an-enormous-factorial.md | 7 +- .../problem-289-eulerian-cycles.md | 2 +- .../problem-295-lenticular-holes.md | 9 +- ...roblem-296-angular-bisector-and-tangent.md | 2 +- .../problem-298-selective-amnesia.md | 22 +- .../problem-299-three-similar-triangles.md | 2 +- .../problem-300-protein-folding.md | 2 +- .../problem-306-paper-strip-game.md | 2 +- .../problem-309-integer-ladders.md | 2 +- ...em-311-biclinic-integral-quadrilaterals.md | 2 +- ...em-312-cyclic-paths-on-sierpiski-graphs.md | 13 +- .../project-euler/problem-313-sliding-game.md | 4 +- .../problem-314-the-mouse-on-the-moon.md | 2 +- .../problem-315-digital-root-clocks.md | 2 +- .../project-euler/problem-318-2011-nines.md | 15 +- .../problem-321-swapping-counters.md | 4 +- .../problem-324-building-a-tower.md | 10 +- .../problem-327-rooms-of-doom.md | 2 +- .../problem-330-eulers-number.md | 15 +- .../project-euler/problem-331-cross-flips.md | 2 +- .../problem-332-spherical-triangles.md | 2 +- .../problem-333-special-partitions.md | 6 +- .../problem-334-spilling-the-beans.md | 15 +- .../problem-335-gathering-the-beans.md | 2 +- .../problem-336-maximix-arrangements.md | 2 +- ...blem-338-cutting-rectangular-grid-paper.md | 2 +- .../problem-340-crazy-function.md | 6 +- ...em-341-golombs-self-describing-sequence.md | 6 +- .../problem-344-silver-dollar-game.md | 2 +- .../project-euler/problem-345-matrix-sum.md | 35 +-- .../problem-348-sum-of-a-square-and-a-cube.md | 9 +- .../problem-35-circular-primes.md | 2 +- ...e-least-greatest-and-the-greatest-least.md | 9 +- .../problem-351-hexagonal-orchards.md | 2 +- ...oblem-354-distances-in-a-bees-honeycomb.md | 2 +- .../problem-358-cyclic-numbers.md | 22 +- .../problem-359-hilberts-new-hotel.md | 12 +- ...-361-subsequence-of-thue-morse-sequence.md | 6 +- .../project-euler/problem-363-bzier-curves.md | 2 +- .../problem-364-comfortable-distance.md | 2 +- .../problem-375-minimum-of-subsequences.md | 6 +- .../problem-376-nontransitive-sets-of-dice.md | 6 +- .../problem-38-pandigital-multiples.md | 6 +- .../problem-380-amazing-mazes.md | 2 +- .../problem-384-rudin-shapiro-sequence.md | 15 +- .../problem-385-ellipses-inside-triangles.md | 2 +- .../problem-392-enmeshed-unit-circle.md | 2 +- .../project-euler/problem-394-eating-pie.md | 2 +- .../problem-395-pythagorean-tree.md | 2 +- .../problem-400-fibonacci-tree-game.md | 2 +- .../problem-404-crisscross-ellipses.md | 2 +- .../problem-405-a-rectangular-tiling.md | 4 +- .../problem-406-guessing-game.md | 9 +- .../project-euler/problem-411-uphill-paths.md | 2 +- .../problem-412-gnomon-numbering.md | 4 +- .../problem-414-kaprekar-constant.md | 10 +- .../problem-417-reciprocal-cycles-ii.md | 15 +- ...problem-420-2x2-positive-integer-matrix.md | 12 +- ...m-422-sequence-of-points-on-a-hyperbola.md | 2 +- .../problem-423-consecutive-die-throws.md | 7 +- .../project-euler/problem-424-kakuro.md | 2 +- .../problem-426-box-ball-system.md | 11 +- .../problem-428-necklace-of-circles.md | 2 +- .../project-euler/problem-430-range-flips.md | 2 +- .../problem-431-square-space-silo.md | 2 +- .../problem-433-steps-in-euclids-algorithm.md | 6 +- .../project-euler/problem-434-rigid-graphs.md | 4 +- .../problem-437-fibonacci-primitive-roots.md | 16 +- .../problem-440-gcd-and-tiling.md | 11 +- .../project-euler/problem-443-gcd-sequence.md | 12 +- ...blem-450-hypocycloid-and-lattice-points.md | 7 +- .../problem-451-modular-inverses.md | 12 +- .../problem-453-lattice-quadrilaterals.md | 2 +- ...problem-455-powers-with-trailing-digits.md | 9 +- ...-456-triangles-containing-the-origin-ii.md | 17 +- .../problem-459-flipping-game.md | 4 +- .../problem-460-an-ant-on-the-move.md | 2 +- .../project-euler/problem-461-almost-pi.md | 2 +- ...problem-463-a-weird-recurrence-relation.md | 10 +- .../problem-465-polar-polygons.md | 2 +- ...istinct-terms-in-a-multiplication-table.md | 15 +- .../project-euler/problem-467-superinteger.md | 18 +- ...mooth-divisors-of-binomial-coefficients.md | 14 +- ...oblem-471-triangle-inscribed-in-ellipse.md | 4 +- .../problem-472-comfortable-distance-ii.md | 2 +- .../problem-480-the-last-question.md | 54 ++--- .../project-euler/problem-54-poker-hands.md | 10 +- .../problem-6-sum-square-difference.md | 16 +- .../problem-61-cyclical-figurate-numbers.md | 10 +- .../problem-68-magic-5-gon-ring.md | 6 +- .../problem-74-digit-factorial-chains.md | 12 +- .../problem-81-path-sum-two-ways.md | 10 +- .../problem-82-path-sum-three-ways.md | 10 +- .../problem-83-path-sum-four-ways.md | 10 +- .../problem-85-counting-rectangles.md | 2 +- .../project-euler/problem-86-cuboid-route.md | 2 +- .../problem-90-cube-digit-pairs.md | 2 +- ...ight-triangles-with-integer-coordinates.md | 4 +- .../problem-92-square-digit-chains.md | 6 +- .../problem-95-amicable-chains.md | 4 +- .../rosetta-code/100-doors.md | 8 +- .../rosetta-code/24-game.md | 8 +- .../rosetta-code/balanced-brackets.md | 10 +- .../rosetta-code/compare-a-list-of-strings.md | 2 +- .../convert-seconds-to-compound-duration.md | 18 +- .../cumulative-standard-deviation.md | 12 +- .../rosetta-code/discordian-date.md | 2 +- .../rosetta-code/euler-method.md | 2 +- .../rosetta-code/execute-brain.md | 34 +-- .../hofstadter-figure-figure-sequences.md | 4 +- .../rosetta-code/least-common-multiple.md | 6 +- .../longest-common-subsequence.md | 6 +- .../sailors-coconuts-and-a-monkey-problem.md | 6 +- .../rosetta-code/sedols.md | 2 +- .../rosetta-code/self-describing-numbers.md | 2 +- .../rosetta-code/sha-256.md | 3 +- .../sorting-algorithms-strand-sort.md | 2 +- .../rosetta-code/soundex.md | 8 +- .../rosetta-code/towers-of-hanoi.md | 2 +- .../rosetta-code/y-combinator.md | 2 +- .../zhang-suen-thinning-algorithm.md | 7 +- .../build-a-camper-leaderboard.md | 2 +- .../build-a-light-bright-app.md | 2 +- .../build-a-nightlife-coordination-app.md | 2 +- .../build-a-pinterest-clone.md | 2 +- .../take-home-projects/build-a-pong-game.md | 2 +- .../take-home-projects/build-a-recipe-box.md | 2 +- .../build-a-roguelike-dungeon-crawler-game.md | 2 +- .../take-home-projects/build-a-simon-game.md | 2 +- .../build-a-tic-tac-toe-game.md | 2 +- .../build-a-wikipedia-viewer.md | 8 +- .../build-the-game-of-life.md | 2 +- .../chart-the-stock-market.md | 2 +- .../manage-a-book-trading-club.md | 6 +- .../map-data-across-the-globe.md | 2 +- .../p2p-video-chat-application.md | 2 +- ...-contiguity-with-a-force-directed-graph.md | 2 +- .../show-the-local-weather.md | 2 +- .../use-the-twitch-json-api.md | 2 +- .../cat-and-dog-image-classifier.md | 4 +- .../rock-paper-scissors.md | 4 +- .../build-a-personal-portfolio-webpage.md | 20 +- .../build-a-survey-form.md | 12 +- .../build-a-technical-documentation-page.md | 42 ++-- .../61329b210dac0b08047fd6ab.md | 4 +- .../61329d52e5010e08d9b9d66b.md | 20 +- .../6133d11ef548f51f876149e3.md | 18 +- .../6140827cff96e906bd38fc2b.md | 16 +- .../6140883f74224508174794c0.md | 12 +- .../61408e4ae3e35d08feb260eb.md | 22 +- .../61408f155e798909b6908712.md | 12 +- .../6141fabd6f75610664e908fd.md | 4 +- .../6141fed65b61320743da5894.md | 10 +- .../614202874ca576084fca625f.md | 8 +- .../614206033d366c090ca7dd42.md | 6 +- .../61435e3c0679a306c20f1acc.md | 8 +- .../6143610161323a081b249c19.md | 4 +- .../6143639d5eddc7094161648c.md | 18 +- .../6143908b6aafb00a659ca189.md | 12 +- .../6143920c8eafb00b735746ce.md | 2 +- .../6143931a113bb80c45546287.md | 6 +- .../6143956ed76ed60e012faa51.md | 10 +- .../614396f7ae83f20ea6f9f4b3.md | 14 +- .../6143cb26f7edff2dc28f7da5.md | 2 +- .../6144e818fd5ea704fe56081d.md | 2 +- .../6144f8dc6849e405dd8bb829.md | 2 +- .../6145e6eeaa66c605eb087fe9.md | 2 +- .../6145e8b5080a5f06bb0223d0.md | 12 +- .../6145eb5f08a38a0786c7a80c.md | 2 +- .../6145ed1f22caab087630aaad.md | 2 +- .../6145ee65e2e1530938cb594d.md | 2 +- .../6145f02240ff8f09f7ec913c.md | 2 +- .../6145f14f019a4b0adb94b051.md | 8 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 8 +- .../6145f685797bd30df9784e8c.md | 2 +- .../6145f829ac6a920ebf5797d7.md | 2 +- .../6145f8f8bcd4370f6509078e.md | 2 +- .../6145fb5018cb5b100cb2a88c.md | 2 +- .../6145fc3707fc3310c277f5c8.md | 14 +- .../614796cb8086be482d60e0ac.md | 8 +- .../6147a14ef5668b5881ef2297.md | 2 +- .../614878f7a412310647873015.md | 10 +- .../61487b77d4a37707073a64e5.md | 8 +- .../61487da611a65307e78d2c20.md | 14 +- .../61487f703571b60899055cf9.md | 2 +- .../614883b6fa720e09fb167de9.md | 12 +- .../614884c1f5d6f30ab3d78cde.md | 20 +- .../61488ecfd05e290b5712e6da.md | 2 +- .../6148d99cdc7acd0c519862cb.md | 8 +- .../6148da157cc0bd0d06df5c0a.md | 2 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 8 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 6 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../614ccc21ea91ef1736b9b578.md | 8 +- .../5f33071498eb2472b87ddee4.md | 2 +- .../5f3313e74582ad9d063e3a38.md | 2 +- .../5f331e55dfab7a896e53c3a1.md | 2 +- .../5f3326b143638ee1a09ff1e3.md | 2 +- .../5f33294a6af5e9188dbdb8f3.md | 2 +- .../5f332a88dc25a0fd25c7687a.md | 2 +- .../5f332b23c2045fb843337579.md | 2 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477aefa51bfc29327200b.md | 2 +- .../5f356ed60785e1f3e9850b6e.md | 6 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 6 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 10 +- .../5f3ef6e03d719d5ac4738993.md | 6 +- .../5f3ef6e04559b939080db057.md | 12 +- .../5f3ef6e050279c7a4a7101d3.md | 12 +- .../5f3ef6e05473f91f948724ab.md | 2 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e0819d4f23ca7285e6.md | 2 +- .../5f3ef6e087d56ed3ffdc36be.md | 2 +- .../5f3ef6e0a81099d9a697b550.md | 2 +- .../5f3f26fa39591db45e5cd7a0.md | 8 +- .../5f459a7ceb8b5c446656d88b.md | 6 +- .../5f459cf202c2a3472fae6a9f.md | 6 +- .../5f459fd48bdc98491ca6d1a3.md | 4 +- .../5f475bb508746c16c9431d42.md | 12 +- .../5f475e1c7f71a61d913836c6.md | 8 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 10 +- .../5f7b88d37b1f98386f04edc0.md | 2 +- .../6140de31b1f5b420410728ff.md | 2 +- .../6140df547f09402144e40b92.md | 2 +- .../6140e0d875ec16262f26432b.md | 2 +- .../6140f4b5c1555a2960de1e5f.md | 2 +- .../614100d7d335bb2a5ff74f1f.md | 2 +- .../6141019eadec6d2c6c6f007b.md | 2 +- .../6169ab1aaeb4cd1174def700.md | 4 +- .../6169b1357fcb701bb5efc619.md | 2 +- .../6169b284950e171d8d0bb16a.md | 2 +- .../616d4a84b756d9c4b8255093.md | 2 +- .../61764f23ea21477b76f3b80f.md | 2 +- .../61764fdda535587e1fefb3aa.md | 2 +- .../6176519636a76b810ab1219a.md | 2 +- .../617b954d9f4f6217a749380e.md | 2 +- .../619b7396e57b771f903be90d.md | 2 +- .../61a4ae5f29eb5584187201c3.md | 2 +- .../61adc91467b5d59328b9f781.md | 2 +- .../61b092eb9e7fc020b43b1bb2.md | 2 +- .../61b0934c9e7fc020b43b1bb7.md | 2 +- .../61b0936d9e7fc020b43b1bb8.md | 2 +- .../61b095a79e7fc020b43b1bba.md | 2 +- .../61b095c79e7fc020b43b1bbb.md | 2 +- .../61b30a286c228bd0c493c09a.md | 2 +- .../61b315e76a63b3ecbbb11b75.md | 2 +- .../61b3183655ec10efd8c0bb07.md | 2 +- .../61b31a451057fff645ec09be.md | 2 +- .../61b31cd7b0c76bfc076b4719.md | 2 +- .../61537bb9b1a29430ac15ad38.md | 8 +- .../61537c5f81f0cf325b4a854c.md | 4 +- .../61537c9eecea6a335db6da79.md | 2 +- .../6153897c27f6334716ee5abe.md | 2 +- .../6153908a366afb4d57185c8d.md | 12 +- .../615392916d83fa4f02f7e2cf.md | 2 +- .../6153947986535e5117e60615.md | 4 +- .../61539f32a206bd53ec116465.md | 2 +- .../6153a3ebb4f7f05b8401b716.md | 2 +- .../6143862a5e54455d262c212e.md | 2 +- .../61439dc084fa5f659cf75d7c.md | 2 +- .../61439dfc811e12666b04be6f.md | 4 +- .../61439e33e4fb7967609e0c83.md | 2 +- .../6143a1a228f7d068ab16a130.md | 4 +- .../6143a73279ce6369de4b9bcc.md | 2 +- .../6143a778bffc206ac6b1dbe3.md | 4 +- .../6143a83fcc32c26bcfae3efa.md | 2 +- .../6143b97c06c3306d23d5da47.md | 4 +- .../6143b9e1f5035c6e5f2a8231.md | 20 +- .../6143bb50e8e48c6f5ef9d8d5.md | 4 +- .../6143c2a363865c715f1a3f72.md | 2 +- .../6143cd08fe927072ca3a371d.md | 2 +- .../6144de308591ec10e27d5383.md | 2 +- .../6144ee790af79815ad15a832.md | 2 +- .../6144f1410990ea17187a722b.md | 2 +- .../6148b59ef318e03875f35c4a.md | 2 +- .../6148bd62bbb8c83a5f1fc1b3.md | 2 +- .../6148d1f9eb63c252e1f8acc4.md | 2 +- .../6148f34ebedc2274bceeb99c.md | 2 +- .../6148f6f7d8914c78e93136ca.md | 8 +- .../614e0e588f0e8a772a8a81a6.md | 2 +- .../6165d3b702a5d92ad970b30c.md | 2 +- .../61967e74a8e3690ab6292daa.md | 2 +- .../61968df2acd5550bf1616c34.md | 6 +- .../61968e9243a4090cc805531c.md | 2 +- .../61968f8877c6720d6d61aaf5.md | 4 +- .../619691693bc14b0e528f5a20.md | 2 +- .../619692ff79f5770fc6d8c0b4.md | 2 +- .../6196990f966e8f10a40094f6.md | 4 +- .../619699c10a0f6e11591d73c4.md | 2 +- .../61969aa6acef5b12200f672e.md | 2 +- .../61969c487ced6f12db8fef94.md | 2 +- .../61969d66cfcdba137d021558.md | 2 +- .../61969e7451455614217e901b.md | 2 +- .../6196adc17f77a714d51485f2.md | 2 +- .../6196aead7ac7bf1584b17a7f.md | 4 +- .../6196d0cda039d026f7f78d1e.md | 2 +- .../6196d213d99f16287bff22ae.md | 2 +- .../6196d2c0f22ca0293107c048.md | 4 +- .../6197f667297bb30a552ce017.md | 2 +- .../61993cf26a8e0f0a553db223.md | 4 +- .../6199409834ccaf0d10736596.md | 2 +- .../619943285a41720e6370d985.md | 2 +- .../619be946958c6009844f1dee.md | 2 +- .../619d0d18ca99870f884a7bff.md | 4 +- .../619d1340361095175f4b5115.md | 2 +- .../619d204bd73ae51e743b8e94.md | 2 +- .../619d20b12996101f430920fb.md | 2 +- .../619d23089e787e216a7043d6.md | 2 +- .../619d2bd9c1d43c2526e96f1f.md | 2 +- .../619d2d4e80400325ff89664a.md | 2 +- .../619d2f0e9440bc27caee1cec.md | 2 +- .../619d2fd3ff4f772882e3d998.md | 2 +- .../619d30350883802921bfcccc.md | 2 +- .../61a8fe15a6a31306e60d1e89.md | 4 +- .../5d822fd413a79914d39e98ca.md | 2 +- .../5d822fd413a79914d39e98cb.md | 2 +- .../5d822fd413a79914d39e98cc.md | 2 +- .../5d822fd413a79914d39e98cf.md | 4 +- .../5d822fd413a79914d39e98d1.md | 4 +- .../5d822fd413a79914d39e98d2.md | 2 +- .../5d822fd413a79914d39e98d3.md | 2 +- .../5d822fd413a79914d39e98d5.md | 2 +- .../5d822fd413a79914d39e98d6.md | 2 +- .../5d822fd413a79914d39e98d7.md | 6 +- .../5d822fd413a79914d39e98da.md | 2 +- .../5d822fd413a79914d39e98dc.md | 4 +- .../5d822fd413a79914d39e98dd.md | 2 +- .../5d822fd413a79914d39e98de.md | 2 +- .../5d822fd413a79914d39e98df.md | 2 +- .../5d822fd413a79914d39e98e1.md | 2 +- .../5d822fd413a79914d39e98e2.md | 2 +- .../5d822fd413a79914d39e98e3.md | 2 +- .../5d822fd413a79914d39e98e6.md | 2 +- .../5d822fd413a79914d39e98e7.md | 2 +- .../5d822fd413a79914d39e98e9.md | 2 +- .../5d822fd413a79914d39e98ea.md | 2 +- .../5d822fd413a79914d39e98eb.md | 2 +- .../5d822fd413a79914d39e98ec.md | 2 +- .../5d822fd413a79914d39e98ed.md | 2 +- .../5d822fd413a79914d39e98ee.md | 4 +- .../5d822fd413a79914d39e98ef.md | 2 +- .../5d822fd413a79914d39e98f0.md | 2 +- .../5d822fd413a79914d39e98f1.md | 2 +- .../5d822fd413a79914d39e98f2.md | 2 +- .../5d822fd413a79914d39e98f3.md | 2 +- .../5d822fd413a79914d39e98f4.md | 2 +- .../5d822fd413a79914d39e98f5.md | 4 +- .../5d822fd413a79914d39e98f6.md | 2 +- .../5d822fd413a79914d39e98f7.md | 2 +- .../5d822fd413a79914d39e98f8.md | 4 +- .../5d822fd413a79914d39e98f9.md | 2 +- .../5d822fd413a79914d39e98fa.md | 2 +- .../5d822fd413a79914d39e98fb.md | 8 +- .../5d822fd413a79914d39e98fc.md | 8 +- .../5d822fd413a79914d39e98fd.md | 2 +- .../5d822fd413a79914d39e98fe.md | 8 +- .../5d822fd413a79914d39e98ff.md | 8 +- .../5d822fd413a79914d39e9900.md | 10 +- .../5d822fd413a79914d39e9901.md | 10 +- .../5d822fd413a79914d39e9902.md | 10 +- .../5d822fd413a79914d39e9903.md | 10 +- .../5d822fd413a79914d39e9904.md | 10 +- .../5d822fd413a79914d39e9905.md | 10 +- .../5d822fd413a79914d39e9906.md | 10 +- .../5d822fd413a79914d39e9907.md | 10 +- .../5d822fd413a79914d39e9908.md | 12 +- .../5d822fd413a79914d39e9909.md | 12 +- .../5d822fd413a79914d39e990a.md | 10 +- .../5d822fd413a79914d39e990b.md | 10 +- .../5d822fd413a79914d39e990c.md | 10 +- .../5d822fd413a79914d39e990d.md | 10 +- .../5d822fd413a79914d39e990e.md | 10 +- .../5d822fd413a79914d39e990f.md | 10 +- .../5d822fd413a79914d39e9910.md | 12 +- .../5d822fd413a79914d39e9911.md | 12 +- .../5d822fd413a79914d39e9912.md | 12 +- .../5d822fd413a79914d39e9913.md | 14 +- .../5d822fd413a79914d39e9914.md | 12 +- .../5d822fd413a79914d39e9915.md | 16 +- .../5d822fd413a79914d39e9916.md | 12 +- .../5d822fd413a79914d39e9917.md | 12 +- .../5d822fd413a79914d39e9918.md | 14 +- .../5d822fd413a79914d39e9919.md | 14 +- .../5d822fd413a79914d39e991a.md | 12 +- .../5d822fd413a79914d39e991b.md | 12 +- .../5d822fd413a79914d39e991c.md | 12 +- .../5d822fd413a79914d39e991d.md | 12 +- .../5d822fd413a79914d39e991e.md | 12 +- .../5d822fd413a79914d39e991f.md | 12 +- .../5d822fd413a79914d39e9920.md | 14 +- .../5d822fd413a79914d39e9921.md | 14 +- .../5d822fd413a79914d39e9922.md | 12 +- .../5d822fd413a79914d39e9923.md | 14 +- .../5d822fd413a79914d39e9924.md | 16 +- .../5d822fd413a79914d39e9925.md | 16 +- .../5d822fd413a79914d39e9926.md | 16 +- .../5d822fd413a79914d39e9927.md | 16 +- .../5d822fd413a79914d39e9928.md | 16 +- .../5d822fd413a79914d39e9929.md | 16 +- .../5d822fd413a79914d39e992a.md | 14 +- .../5d822fd413a79914d39e992b.md | 14 +- .../5d822fd413a79914d39e992c.md | 14 +- .../5d822fd413a79914d39e992d.md | 14 +- .../5d822fd413a79914d39e992e.md | 14 +- .../5d822fd413a79914d39e992f.md | 14 +- .../5d822fd413a79914d39e9930.md | 16 +- .../5d822fd413a79914d39e9931.md | 6 +- .../5d822fd413a79914d39e9932.md | 14 +- .../5d822fd413a79914d39e9933.md | 14 +- .../5d822fd413a79914d39e9934.md | 12 +- .../5d822fd413a79914d39e9935.md | 12 +- .../5d822fd413a79914d39e9936.md | 16 +- .../5d822fd413a79914d39e9937.md | 14 +- .../5d822fd413a79914d39e9938.md | 14 +- .../5d822fd413a79914d39e9939.md | 14 +- .../5d822fd413a79914d39e993a.md | 12 +- .../5d822fd413a79914d39e993b.md | 16 +- .../5d822fd413a79914d39e993c.md | 4 +- .../5d822fd413a79914d39e993d.md | 16 +- .../5d822fd413a79914d39e993e.md | 28 +-- .../5dc17dc8f86c76b9248c6eb5.md | 2 +- .../5dfb5ecbeacea3f48c6300b1.md | 4 +- .../5ef9b03c81a63668521804d2.md | 4 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804dc.md | 4 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 4 +- .../60f0286404aefb0562a4fdf9.md | 2 +- .../60f5cb8875ab6a0610f05071.md | 2 +- .../60f80e0081e0f2052ae5b505.md | 3 +- .../60fab9f17fa294054b74228c.md | 4 +- .../60fabf0dd4959805dbae09e6.md | 6 +- .../60faca286cb48b07f6482970.md | 2 +- .../62b30924c5e4ef0daba23b5e.md | 2 +- .../60b69a66b6ddb80858c51579.md | 4 +- .../60b69a66b6ddb80858c5157a.md | 5 +- .../60b69a66b6ddb80858c5157b.md | 2 +- .../60b69a66b6ddb80858c5157e.md | 2 +- .../60b69a66b6ddb80858c51580.md | 2 +- .../60b69a66b6ddb80858c51581.md | 2 +- .../60b69a66b6ddb80858c51582.md | 2 +- .../60b69a66b6ddb80858c51583.md | 2 +- .../60b69a66b6ddb80858c51584.md | 2 +- .../60b69a66b6ddb80858c51585.md | 2 +- .../60b69a66b6ddb80858c51592.md | 2 +- .../60b69a66b6ddb80858c51595.md | 2 +- .../60b69a66b6ddb80858c51598.md | 2 +- .../60b69a66b6ddb80858c51599.md | 2 +- .../60b69a66b6ddb80858c5159a.md | 2 +- .../60b69a66b6ddb80858c5159b.md | 2 +- .../60b69a66b6ddb80858c515a7.md | 2 +- .../60b69a66b6ddb80858c515aa.md | 2 +- .../60b69a66b6ddb80858c515ad.md | 2 +- .../60b69a66b6ddb80858c515ae.md | 2 +- .../60b69a66b6ddb80858c515af.md | 2 +- .../60b69a66b6ddb80858c515b0.md | 2 +- .../60b69a66b6ddb80858c515b1.md | 2 +- .../60b69a66b6ddb80858c515b2.md | 4 +- .../60b69a66b6ddb80858c515b4.md | 2 +- .../60b69a66b6ddb80858c515bc.md | 2 +- .../60b69a66b6ddb80858c515bf.md | 2 +- .../60b69a66b6ddb80858c515c1.md | 2 +- .../60b69a66b6ddb80858c515c6.md | 2 +- .../60ba9296d4d6b414c1b10995.md | 2 +- .../61fd5a93fd62bb35968adeab.md | 2 +- .../61fd6343fb42013d99bcd7f3.md | 2 +- .../61fd71d596e8f253b9408b39.md | 2 +- .../61fd7648a7ba2e5882436831.md | 2 +- .../61fd778081276b59d59abad6.md | 2 +- .../61fd77f7ad2aeb5ae34d07d6.md | 2 +- .../61fd78621573aa5e8b512f5e.md | 4 +- .../61fd7b3fcaa5406257abc5d1.md | 2 +- .../61fd933ba685de776a94997e.md | 4 +- .../61fd94056e0355785fbba4d3.md | 2 +- .../61fd986ddbcbd47ba8fbc5ec.md | 2 +- .../61fdac1e31692f9a9ad97295.md | 2 +- .../61fdaf9ff894b6a084ecdc1b.md | 2 +- .../61fdafe6f07fd7a1c6785bc2.md | 2 +- .../620179bc0a6a2358c72b90ad.md | 2 +- .../620191707bc65579ddd3ce15.md | 2 +- .../620199c7a7a32c81d4db3410.md | 2 +- .../6201a5258af7b398b030bfaf.md | 2 +- .../612e6afc009b450a437940a1.md | 2 +- .../612e77aba7ca691f598feb02.md | 2 +- .../612e813b3ba67633222cbe54.md | 2 +- .../612e8279827a28352ce83a72.md | 2 +- .../612e89562043183c86df287c.md | 2 +- .../612e95ef2e4bdf41f69067f9.md | 2 +- .../612e9d142affc44a453655db.md | 2 +- .../612eb8e984cd73677a92b7e9.md | 2 +- .../612ebf9a210f2b6d77001e68.md | 2 +- .../60a3e3396c7b40068ad6996e.md | 2 +- .../60a3e3396c7b40068ad69970.md | 2 +- .../60a3e3396c7b40068ad69971.md | 4 +- .../60a3e3396c7b40068ad69978.md | 2 +- .../60a3e3396c7b40068ad6997a.md | 2 +- .../60a3e3396c7b40068ad69987.md | 2 +- .../60a3e3396c7b40068ad6998f.md | 2 +- .../60a3e3396c7b40068ad69994.md | 2 +- .../615f34948891834dd77655a6.md | 2 +- .../615f38cabc64e3556f98cc1a.md | 2 +- .../615f3e4af8008c5d494d3afe.md | 2 +- .../615f41c979787462e76dab90.md | 2 +- .../615f423cf65d5864132a0956.md | 2 +- .../615f50473cc0196c6dd3892a.md | 4 +- .../615f51e4e5b24a6e80eccce1.md | 2 +- .../615f575b50b91e72af079480.md | 2 +- .../615f5c1cb7575c7551ed8a40.md | 2 +- .../615f666ac5edea782feb7e75.md | 2 +- .../615f7ad94380408d971d14f6.md | 2 +- .../615f7d489a581590d1350288.md | 2 +- .../615f8f1223601fa546e93f31.md | 2 +- .../615f905fbd1017a65ca224eb.md | 2 +- .../cash-register.md | 16 +- .../palindrome-checker.md | 22 +- .../roman-numeral-converter.md | 82 +++---- .../telephone-number-validator.md | 8 +- .../62a23d1c5f1c93161f3582ae.md | 6 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 4 +- .../62a8cf22272d6d35af80d4ac.md | 2 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 2 +- .../62a8d61ddfe35744369365b7.md | 6 +- .../62a8d6c7001ebc45350e3d16.md | 4 +- .../62a8e35675c18c56354c08cf.md | 6 +- .../62a8e41e2f190c58404dd46e.md | 4 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 2 +- .../62a8eec45f77bc69e8775294.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 2 +- .../62a8efb0e3ce826db8daf80f.md | 2 +- .../62a8eff21c0b0f6ebe5b8e38.md | 2 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 6 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...plete-a-promise-with-resolve-and-reject.md | 2 +- .../es6/create-a-module-script.md | 2 +- ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 5 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- ...characters-that-occur-one-or-more-times.md | 4 +- ...haracters-that-occur-zero-or-more-times.md | 2 +- .../responsively-style-radio-buttons.md | 2 +- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../mongodb-and-mongoose/create-a-model.md | 2 +- .../problem-10-summation-of-primes.md | 54 +++-- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 19 +- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 9 +- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 2 +- .../5dfa22d1b521be39a3de7be0.md | 4 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 2 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 5 +- .../60f803d5241e6a0433a523a1.md | 5 +- .../62a3b49686792938718b90d3.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 8 +- .../62a8ade9b2f5b30ef0b606c2.md | 6 +- .../62a8b0b5053f16111b0b6b5f.md | 18 +- .../62a8c1154d3ae11aee80353f.md | 14 +- .../62a8c151b23bf21bc7c4fcba.md | 6 +- .../62a8c173949f851c83c64756.md | 8 +- .../62a8c242b25a531f2909e5bc.md | 10 +- .../62a8c2bbbd8aa82052f47c53.md | 22 +- .../62a8c31ec0ec78216a1c36a0.md | 12 +- .../62a8c370ad8c68227137e0bc.md | 8 +- .../62a8c3ebc6c35e23785e1a19.md | 6 +- .../62a8c41ecaf1bd24536129b8.md | 10 +- .../62a8c465fa7b0c252f4a8f0c.md | 10 +- .../62a8c4db0710f3260f867a92.md | 10 +- .../62a8c56247609626fa4a8d6e.md | 10 +- .../62a8c5db7888af27af23f0dd.md | 8 +- .../62a8c65b75664c28a8e59c16.md | 6 +- .../62a8c6815f5f1a29735efe1b.md | 8 +- .../62a8c7322e42962ad53ad204.md | 14 +- .../62a8c7a59e72c02bb1c717d2.md | 6 +- .../62a8c89e4272512d44fc1c66.md | 8 +- .../62a8c8cee8e5cf2e001789b4.md | 8 +- .../62a8ca22d29fe62f3952bdf5.md | 8 +- .../62a8cb19bd7f8a304e5427a1.md | 6 +- .../62a8cbd1e3595431d5a2b3f1.md | 12 +- .../62a8cce1b0c32c33017cf2e9.md | 8 +- .../62a8ce1dfc990134162b3bd9.md | 4 +- .../62a8ce73d0dce43468f6689c.md | 10 +- .../62a8cf22272d6d35af80d4ac.md | 14 +- .../62a8d0337d7c67377a4a76c6.md | 10 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 10 +- .../62a8d0fdf2dad83a92883a80.md | 8 +- .../62a8d143f2a58e3b6d6e9c33.md | 6 +- .../62a8d1c72e8bb13c2074d93c.md | 6 +- .../62a8d2146a3e853d0a6e28ca.md | 8 +- .../62a8d24c97461b3ddb9397c8.md | 10 +- .../62a8d2e2a073be3edb46116f.md | 6 +- .../62a8d31ebbc10e3fe1b28e03.md | 6 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 6 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 10 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 32 +-- .../62a8dd468debb449b4454086.md | 6 +- .../62a8dd9cdb16324b04cfd958.md | 10 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 10 +- .../62a8e142f7f0bd4fed898de3.md | 14 +- .../62a8e1dc897df55108bcb5e8.md | 6 +- .../62a8e21398ad61520edb724f.md | 6 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 10 +- .../62a8e35675c18c56354c08cf.md | 10 +- .../62a8e41e2f190c58404dd46e.md | 12 +- .../62a8e45cc600c3591cee671a.md | 6 +- .../62a8e49f4df7af5ae2d7a616.md | 10 +- .../62a8e4dc6a60f85bf256a0cb.md | 22 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 10 +- .../62a8ee154c8946678775c4a4.md | 10 +- .../62a8ee71f018e968a056d369.md | 10 +- .../62a8eec45f77bc69e8775294.md | 6 +- .../62a8eefe2e68b66ac563816b.md | 10 +- .../62a8ef6a52292f6bdca4f6f8.md | 6 +- .../62a8ef8f0c76a46cd221a68c.md | 8 +- .../62a8efb0e3ce826db8daf80f.md | 8 +- .../62a8eff21c0b0f6ebe5b8e38.md | 14 +- .../62a8f06fb318666fef69f91e.md | 6 +- .../62a8f14fe6d1fc72454648c7.md | 6 +- .../62a8f1d5f5ddbf74c07f733b.md | 2 +- .../62a8f20463b324759953edad.md | 26 +-- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f2bc37675e77d5835235.md | 14 +- .../62a8f35bde1750791f58773f.md | 6 +- .../62a94114ce0b8918b487390f.md | 12 +- .../62aa1cea594f152ba626b872.md | 6 +- .../62aa1d6736ba262cfa74344b.md | 6 +- .../62aa1d9f535e102e4663e7a6.md | 10 +- .../62aa1e3c7c3d552fb04f0f18.md | 4 +- .../62aa1e8ccd579330e097ce44.md | 4 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 6 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- .../62ba17beef16c563069a65d8.md | 12 +- .../falsy-bouncer.md | 10 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../visualize-data-with-a-bar-chart.md | 2 +- .../visualize-data-with-a-choropleth-map.md | 2 +- .../visualize-data-with-a-heat-map.md | 2 +- ...visualize-data-with-a-scatterplot-graph.md | 2 +- .../visualize-data-with-a-treemap-diagram.md | 2 +- .../mongodb-and-mongoose/create-a-model.md | 4 +- .../set-up-the-environment.md | 2 +- .../use-a-template-engines-powers.md | 34 ++- ...ality-with-.deepequal-and-.notdeepequal.md | 2 +- .../build-your-own-functions.md | 2 +- .../comparing-and-sorting-tuples.md | 2 +- .../dictionaries-and-loops.md | 2 +- .../files-as-a-sequence.md | 2 +- .../intermediate-expressions.md | 4 +- .../intermediate-strings.md | 2 +- .../introduction-why-program.md | 4 +- .../iterations-more-patterns.md | 2 +- .../more-conditional-structures.md | 4 +- .../networking-web-scraping-with-python.md | 6 +- .../relational-databases-and-sqlite.md | 16 +- ...al-databases-many-to-many-relationships.md | 10 +- .../python-for-everybody/strings-and-lists.md | 2 +- ...services-api-rate-limiting-and-security.md | 8 +- .../arithmetic-formatter.md | 6 +- .../budget-app.md | 30 +-- .../polygon-area-calculator.md | 30 +-- .../probability-calculator.md | 32 +-- .../time-calculator.md | 2 +- .../introduction-to-data-analysis.md | 15 +- .../demographic-data-analyzer.md | 9 +- ...-variance-standard-deviation-calculator.md | 7 +- .../medical-data-visualizer.md | 35 +-- .../page-view-time-series-visualizer.md | 15 +- .../sea-level-predictor.md | 14 +- .../anonymous-message-board.md | 6 +- .../port-scanner.md | 8 +- .../secure-real-time-multiplayer-game.md | 57 +++-- .../sha-1-password-cracker.md | 10 +- .../stock-price-checker.md | 8 +- ...ur-site-via-https-only-with-helmet.hsts.md | 2 +- ...-response-mime-type-with-helmet.nosniff.md | 2 +- ...lmet-using-the-parent-helmet-middleware.md | 2 +- ...client-side-caching-with-helmet.nocache.md | 2 +- ...fetching-with-helmet.dnsprefetchcontrol.md | 2 +- ...sh-and-compare-passwords-asynchronously.md | 2 +- ...ash-and-compare-passwords-synchronously.md | 2 +- ...-information-using-helmet.hidepoweredby.md | 2 +- .../install-and-require-helmet.md | 6 +- ...-of-clickjacking-with-helmet.frameguard.md | 2 +- ...pting-xss-attacks-with-helmet.xssfilter.md | 2 +- ...ing-untrusted-html-with-helmet.ienoopen.md | 2 +- ...olicy-with-helmet.contentsecuritypolicy.md | 2 +- .../understand-bcrypt-hashes.md | 8 +- .../find-the-symmetric-difference.md | 4 +- ...d-a-new-element-to-a-binary-search-tree.md | 2 +- .../create-a-doubly-linked-list.md | 12 +- .../data-structures/create-a-hash-table.md | 14 +- .../create-a-map-data-structure.md | 14 +- .../create-a-trie-search-tree.md | 12 +- .../create-an-es6-javascript-map.md | 14 +- .../implement-heap-sort-with-a-min-heap.md | 10 +- .../data-structures/incidence-matrix.md | 2 +- .../insert-an-element-into-a-max-heap.md | 8 +- ...form-a-subset-check-on-two-sets-of-data.md | 12 +- .../perform-a-union-on-two-sets.md | 2 +- .../remove-an-element-from-a-max-heap.md | 10 +- .../reverse-a-doubly-linked-list.md | 10 +- .../search-within-a-linked-list.md | 2 +- .../problem-10-summation-of-primes.md | 54 +++-- .../problem-107-minimal-network.md | 4 +- .../problem-128-hexagonal-tile-differences.md | 64 +++++- .../problem-168-number-rotations.md | 52 ++++- ...lem-184-triangles-containing-the-origin.md | 2 +- .../problem-2-even-fibonacci-numbers.md | 4 +- .../project-euler/problem-250-250250.md | 2 +- .../problem-257-angular-bisectors.md | 4 +- ...itwise-or-operations-on-random-integers.md | 14 +- .../problem-326-modulo-summations.md | 4 +- .../problem-344-silver-dollar-game.md | 2 +- ...-356-largest-roots-of-cubic-polynomials.md | 4 +- .../problem-371-licence-plates.md | 4 +- .../problem-414-kaprekar-constant.md | 4 +- ...-part-of-polynomial-equations-solutions.md | 4 +- ...blem-450-hypocycloid-and-lattice-points.md | 7 +- .../problem-473-phigital-number-base.md | 4 +- .../problem-64-odd-period-square-roots.md | 4 +- .../problem-9-special-pythagorean-triplet.md | 4 +- .../rosetta-code/24-game.md | 141 ++++++++---- .../9-billion-names-of-god-the-integer.md | 4 +- .../rosetta-code/accumulator-factory.md | 4 +- .../rosetta-code/amicable-pairs.md | 20 +- .../rosetta-code/averages-mode.md | 4 +- .../averages-pythagorean-means.md | 4 +- .../rosetta-code/averages-root-mean-square.md | 12 +- .../rosetta-code/babbage-problem.md | 4 +- .../rosetta-code/comma-quibbling.md | 14 +- .../rosetta-code/compare-a-list-of-strings.md | 34 +-- .../rosetta-code/count-the-coins.md | 4 +- .../rosetta-code/cramers-rule.md | 24 +- .../cumulative-standard-deviation.md | 43 +++- .../rosetta-code/deal-cards-for-freecell.md | 20 +- .../rosetta-code/discordian-date.md | 37 ++- .../rosetta-code/dot-product.md | 4 +- .../rosetta-code/euler-method.md | 4 +- .../execute-a-markov-algorithm.md | 214 ++++++----------- .../rosetta-code/execute-brain.md | 22 +- .../factors-of-a-mersenne-number.md | 6 +- .../rosetta-code/farey-sequence.md | 4 +- .../fibonacci-n-step-number-sequences.md | 8 +- .../rosetta-code/fibonacci-word.md | 118 +++++----- .../rosetta-code/fractran.md | 4 +- .../rosetta-code/gamma-function.md | 4 +- .../rosetta-code/general-fizzbuzz.md | 4 +- .../rosetta-code/gray-code.md | 6 +- .../rosetta-code/happy-numbers.md | 4 +- .../rosetta-code/hash-from-two-arrays.md | 30 +-- .../rosetta-code/hash-join.md | 6 +- .../rosetta-code/heronian-triangles.md | 4 +- .../hofstadter-figure-figure-sequences.md | 50 ++-- .../rosetta-code/hofstadter-q-sequence.md | 6 +- .../rosetta-code/i-before-e-except-after-c.md | 4 +- .../rosetta-code/iban.md | 14 +- .../rosetta-code/jortsort.md | 4 +- .../rosetta-code/josephus-problem.md | 6 +- .../rosetta-code/kaprekar-numbers.md | 6 +- .../rosetta-code/knights-tour.md | 16 +- .../rosetta-code/least-common-multiple.md | 22 +- .../rosetta-code/levenshtein-distance.md | 4 +- .../linear-congruential-generator.md | 6 +- .../rosetta-code/long-multiplication.md | 4 +- .../longest-common-subsequence.md | 40 ++-- .../longest-increasing-subsequence.md | 28 +-- .../rosetta-code/look-and-say-sequence.md | 4 +- .../rosetta-code/lu-decomposition.md | 6 +- .../rosetta-code/ludic-numbers.md | 4 +- .../luhn-test-of-credit-card-numbers.md | 4 +- .../rosetta-code/lzw-compression.md | 24 +- .../rosetta-code/s-expressions.md | 6 +- .../sailors-coconuts-and-a-monkey-problem.md | 25 +- .../rosetta-code/sedols.md | 25 +- .../rosetta-code/self-describing-numbers.md | 4 +- .../rosetta-code/self-referential-sequence.md | 4 +- .../rosetta-code/semiprime.md | 4 +- .../rosetta-code/sha-1.md | 4 +- .../rosetta-code/sort-stability.md | 4 +- .../sorting-algorithms-bead-sort.md | 38 +-- .../sorting-algorithms-bogosort.md | 4 +- .../sorting-algorithms-cocktail-sort.md | 26 +-- .../sorting-algorithms-comb-sort.md | 36 ++- .../sorting-algorithms-gnome-sort.md | 4 +- .../sorting-algorithms-pancake-sort.md | 4 +- .../sorting-algorithms-shell-sort.md | 4 +- .../sorting-algorithms-stooge-sort.md | 4 +- .../sorting-algorithms-strand-sort.md | 32 ++- .../rosetta-code/soundex.md | 40 ++-- .../rosetta-code/state-name-puzzle.md | 17 +- .../rosetta-code/stern-brocot-sequence.md | 4 +- .../rosetta-code/straddling-checkerboard.md | 30 ++- .../rosetta-code/subleq.md | 4 +- .../rosetta-code/sudoku.md | 4 +- .../rosetta-code/sum-of-a-series.md | 4 +- .../sutherland-hodgman-polygon-clipping.md | 4 +- .../rosetta-code/symmetric-difference.md | 24 +- .../rosetta-code/taxicab-numbers.md | 23 +- .../rosetta-code/towers-of-hanoi.md | 20 +- .../rosetta-code/y-combinator.md | 24 +- .../zhang-suen-thinning-algorithm.md | 4 +- .../rosetta-code/zig-zag-matrix.md | 4 +- .../build-a-camper-leaderboard.md | 6 +- .../build-a-light-bright-app.md | 6 +- .../build-a-nightlife-coordination-app.md | 4 +- .../build-a-pinterest-clone.md | 8 +- .../take-home-projects/build-a-pong-game.md | 6 +- .../take-home-projects/build-a-recipe-box.md | 6 +- .../build-a-roguelike-dungeon-crawler-game.md | 6 +- .../take-home-projects/build-a-simon-game.md | 6 +- .../build-a-tic-tac-toe-game.md | 6 +- .../take-home-projects/build-a-voting-app.md | 2 +- .../build-a-wikipedia-viewer.md | 18 +- ...build-an-image-search-abstraction-layer.md | 2 +- .../build-the-game-of-life.md | 31 ++- .../chart-the-stock-market.md | 2 +- .../manage-a-book-trading-club.md | 6 +- .../map-data-across-the-globe.md | 6 +- .../p2p-video-chat-application.md | 6 +- ...-contiguity-with-a-force-directed-graph.md | 6 +- .../show-the-local-weather.md | 8 +- .../use-the-twitch-json-api.md | 16 +- .../book-recommendation-engine-using-knn.md | 45 +++- .../cat-and-dog-image-classifier.md | 94 +++++++- ...near-regression-health-costs-calculator.md | 26 ++- .../rock-paper-scissors.md | 50 +++- .../neural-networks-activation-functions.md | 2 +- .../build-a-number-guessing-game.md | 4 +- .../build-a-periodic-table-database.md | 4 +- .../build-a-kitty-ipsum-translator.md | 2 +- .../build-a-bike-rental-shop.md | 2 +- .../build-a-boilerplate.md | 2 +- .../build-five-programs.md | 2 +- .../build-an-sql-reference-object.md | 2 +- .../build-a-castle.md | 2 +- .../build-a-mario-database.md | 2 +- .../build-a-student-database-part-1.md | 2 +- .../build-a-student-database-part-2.md | 2 +- .../build-a-survey-form.md | 12 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 27 ++- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 13 +- .../61537a8054753e2f1f2a1574.md | 10 +- .../61537c5f81f0cf325b4a854c.md | 12 +- .../615380dff67172357fcf0425.md | 2 +- .../6153897c27f6334716ee5abe.md | 2 +- .../615389bd81347947ea7ba896.md | 8 +- .../6153908a366afb4d57185c8d.md | 2 +- .../615392916d83fa4f02f7e2cf.md | 4 +- .../6153938dce8b294ff8f5a4e9.md | 2 +- .../61539e07e7430b528fbffe21.md | 2 +- .../61539f32a206bd53ec116465.md | 2 +- .../6153a3952facd25a83fe8083.md | 2 +- .../6153a3ebb4f7f05b8401b716.md | 2 +- .../61437d575fb98f57fa8f7f36.md | 6 +- .../614385513d91ae5c251c2052.md | 2 +- .../614389f601bb4f611db98563.md | 2 +- .../61439dfc811e12666b04be6f.md | 2 +- .../6143a1a228f7d068ab16a130.md | 4 +- .../6143a73279ce6369de4b9bcc.md | 2 +- .../6143a778bffc206ac6b1dbe3.md | 2 +- .../6143b97c06c3306d23d5da47.md | 2 +- .../6143b9e1f5035c6e5f2a8231.md | 4 +- .../6143bb50e8e48c6f5ef9d8d5.md | 2 +- .../6143c2a363865c715f1a3f72.md | 2 +- .../6143cd08fe927072ca3a371d.md | 2 +- .../6143d2842b497779bad947de.md | 2 +- .../6144ee790af79815ad15a832.md | 2 +- .../6144f1410990ea17187a722b.md | 2 +- .../6144f3818bfbc51844152e36.md | 2 +- .../6144f42204c8c8195f1f3345.md | 2 +- .../6148b07081759c2c691166a9.md | 2 +- .../6148b0d764e4192e5712ed92.md | 2 +- .../6148b30464daf630848c21d4.md | 2 +- .../6148b4b150434734143db6f2.md | 2 +- .../6148bd62bbb8c83a5f1fc1b3.md | 2 +- .../6148be3d605d6b3ca9425d11.md | 2 +- .../6148bf49fcc7913f05dbf9b7.md | 2 +- .../6148bfc43df3bc40fe0e6405.md | 2 +- .../6148c224ecb157439bc5247c.md | 2 +- .../6148c721e74ecd4c619ae51c.md | 2 +- .../6148cf094b3f2b4e8a032c63.md | 2 +- .../6148d0b863d10d50544ace0e.md | 2 +- .../6148d1f9eb63c252e1f8acc4.md | 2 +- .../6148d2444d01ab541e64a1e4.md | 2 +- .../6148d33e31fccf558696c745.md | 2 +- .../6148d3fff5186b57123d97e2.md | 2 +- .../6148d4d57b965358c9fa38bf.md | 2 +- .../6148d94fdf6a5d6899f8ff15.md | 2 +- .../6148e162e255676ae0da6a76.md | 2 +- .../6148e19c3e26436be0155690.md | 2 +- .../6148e246146b646cf4255f0c.md | 2 +- .../6148e4d6861a486f60681f36.md | 2 +- .../6148e5a204d99e70343a63e4.md | 2 +- .../6148f6f7d8914c78e93136ca.md | 8 +- .../614e0e588f0e8a772a8a81a6.md | 2 +- .../6165d3b702a5d92ad970b30c.md | 2 +- .../6169cd8a558aa8434e0ad7f6.md | 2 +- .../619665c9abd72906f3ad30f9.md | 22 +- .../61967e74a8e3690ab6292daa.md | 6 +- .../61968df2acd5550bf1616c34.md | 6 +- .../61968e9243a4090cc805531c.md | 4 +- .../61968f8877c6720d6d61aaf5.md | 4 +- .../619691693bc14b0e528f5a20.md | 4 +- .../6196928658b6010f28c39484.md | 2 +- .../619692ff79f5770fc6d8c0b4.md | 4 +- .../6196990f966e8f10a40094f6.md | 4 +- .../619699c10a0f6e11591d73c4.md | 4 +- .../61969aa6acef5b12200f672e.md | 4 +- .../61969c487ced6f12db8fef94.md | 2 +- .../61969d66cfcdba137d021558.md | 4 +- .../61969e7451455614217e901b.md | 4 +- .../6196adc17f77a714d51485f2.md | 4 +- .../6196aead7ac7bf1584b17a7f.md | 6 +- .../6196ce0415498d2463989e84.md | 2 +- .../6196cee94c6da1253809dff9.md | 2 +- .../6196d00a5d7292262bc02f4c.md | 2 +- .../6196d0cda039d026f7f78d1e.md | 2 +- .../6196d1ac33c68d27dcda5796.md | 2 +- .../6196d213d99f16287bff22ae.md | 2 +- .../6196d2c0f22ca0293107c048.md | 4 +- .../6196d32d1340d829f0f6f57d.md | 2 +- .../6196d41d40bf9b2aaea5d520.md | 2 +- .../6197cff995d03905b0cca8ad.md | 2 +- .../6197f40a16afea068c7e60c8.md | 2 +- .../6197f667297bb30a552ce017.md | 4 +- .../61993b72e874e709b8dfd666.md | 2 +- .../61993cf26a8e0f0a553db223.md | 4 +- .../61993dbb35adf30b10d49e38.md | 2 +- .../61993e9adc9e9a0bb4d28fff.md | 2 +- .../6199409834ccaf0d10736596.md | 2 +- .../6199429802b7c10dc79ff871.md | 2 +- .../619943285a41720e6370d985.md | 4 +- .../619943876b706d0f35c01dbc.md | 2 +- .../6199442866286d0ff421a4fc.md | 2 +- .../619bcf239fc15905ecd66fce.md | 2 +- .../619be73b3c806006ccc00bb0.md | 2 +- .../619be7af7b0bf60770f5d2a4.md | 2 +- .../619be80062551a080e32c821.md | 2 +- .../619be8ce4ea49008c5bfbc30.md | 2 +- .../619be946958c6009844f1dee.md | 2 +- .../619c155df0063a0a3fec0e32.md | 2 +- .../619c16debd0c270b01c5ce38.md | 2 +- .../619cfdf2e63ddf05feab86ad.md | 2 +- .../619d019488f98c06acbbb71a.md | 2 +- .../619d022dc8400c0763829a17.md | 4 +- .../619d02c7bc95bf0827a5d296.md | 2 +- .../619d033915012509031f309a.md | 2 +- .../619d03dadadb6509a16f4f5f.md | 2 +- .../619d0503e03a790a4179d463.md | 2 +- .../619d05c54dabca0b10058235.md | 2 +- .../619d0882f54bf40bdc4671ed.md | 2 +- .../619d090cd8d6db0c93dc5087.md | 2 +- .../619d0b51ca42ed0d74582186.md | 2 +- .../619d0bc9cb05360e1bf549c3.md | 2 +- .../619d0c1594c38c0ebae75878.md | 6 +- .../619d0d18ca99870f884a7bff.md | 4 +- .../619d0daf214542102739b0da.md | 2 +- .../619d0e56f9ca9710fcb974e3.md | 2 +- .../619d0eec0ac40611b41e2ccc.md | 2 +- .../619d0fc9825c271253df28d4.md | 2 +- .../619d102d786c3d13124c37c6.md | 2 +- .../619d107edf7ddf13cc77106a.md | 6 +- .../619d10cc98145f14820399c5.md | 2 +- .../619d115e2adcd71538e82ebb.md | 2 +- .../619d11e6d5ef9515d2a16033.md | 4 +- .../619d129a417d0716a94de913.md | 4 +- .../619d1340361095175f4b5115.md | 2 +- .../619d15797b580c1828b05426.md | 2 +- .../619d15d955d9d418c4487bbc.md | 2 +- .../619d1629a8adc61960ca8b40.md | 2 +- .../619d1c5fc9f8941a400955da.md | 2 +- .../619d1dab9ff3421ae1976991.md | 2 +- .../619d1deb8b04811b8839ffe4.md | 2 +- .../619d1e7a8e81a61c5a819dc4.md | 2 +- .../619d1ed33c9a071cf657a0d6.md | 2 +- .../619d1fb5d244c31db8a7fdb7.md | 2 +- .../619d204bd73ae51e743b8e94.md | 4 +- .../619d20b12996101f430920fb.md | 4 +- .../619d21fe6a3f9b2016be9d9d.md | 6 +- .../619d229b0e542520cd91c685.md | 2 +- .../619d23089e787e216a7043d6.md | 2 +- .../619d237a107c10221ed743fa.md | 2 +- .../619d26b12e651022d80cd017.md | 2 +- .../619d2712853306238f41828e.md | 2 +- .../619d2b7a84e78b246f2d17a2.md | 6 +- .../619d2bd9c1d43c2526e96f1f.md | 4 +- .../619d2d4e80400325ff89664a.md | 2 +- .../619d2ebc81ba81271460850d.md | 2 +- .../619d2f0e9440bc27caee1cec.md | 2 +- .../619d2fd3ff4f772882e3d998.md | 2 +- .../619d30350883802921bfcccc.md | 2 +- .../619d324f5915c929f36ae91d.md | 2 +- .../619d32c7fa21f32aaa91d499.md | 2 +- .../619d333b738e3c2b5d58b095.md | 2 +- .../619d337765b9f02c10e93722.md | 2 +- .../619d33c51140292cc5a21742.md | 2 +- .../619d3482f505452d861d0f62.md | 2 +- .../619d3561a951bf2e41a24f10.md | 2 +- .../619d36103839c82efa95dd34.md | 2 +- .../619d3711d04d623000013e9e.md | 2 +- .../61a8fe15a6a31306e60d1e89.md | 4 +- .../5d822fd413a79914d39e9908.md | 22 +- .../5d822fd413a79914d39e9909.md | 16 +- .../5d822fd413a79914d39e990a.md | 26 +-- .../5d822fd413a79914d39e990b.md | 18 +- .../5d822fd413a79914d39e990c.md | 18 +- .../5d822fd413a79914d39e990d.md | 18 +- .../5d822fd413a79914d39e990e.md | 20 +- .../5d822fd413a79914d39e990f.md | 24 +- .../5d822fd413a79914d39e9910.md | 16 +- .../5d822fd413a79914d39e9911.md | 24 +- .../5d822fd413a79914d39e9912.md | 22 +- .../5d822fd413a79914d39e9913.md | 18 +- .../5d822fd413a79914d39e9914.md | 18 +- .../5d822fd413a79914d39e9915.md | 16 +- .../5d822fd413a79914d39e9916.md | 24 +- .../5d822fd413a79914d39e9917.md | 22 +- .../5d822fd413a79914d39e9918.md | 20 +- .../5d822fd413a79914d39e9919.md | 20 +- .../5d822fd413a79914d39e991a.md | 22 +- .../5d822fd413a79914d39e991b.md | 22 +- .../5d822fd413a79914d39e991c.md | 20 +- .../5d822fd413a79914d39e991d.md | 18 +- .../5d822fd413a79914d39e991e.md | 22 +- .../5d822fd413a79914d39e991f.md | 20 +- .../5d822fd413a79914d39e9920.md | 22 +- .../5d822fd413a79914d39e9921.md | 26 +-- .../5d822fd413a79914d39e9922.md | 22 +- .../5d822fd413a79914d39e9923.md | 22 +- .../5d822fd413a79914d39e9924.md | 20 +- .../5d822fd413a79914d39e9925.md | 22 +- .../5d822fd413a79914d39e9926.md | 24 +- .../5d822fd413a79914d39e9927.md | 20 +- .../5d822fd413a79914d39e9928.md | 16 +- .../5d822fd413a79914d39e9929.md | 16 +- .../5d822fd413a79914d39e992a.md | 16 +- .../5d822fd413a79914d39e992b.md | 16 +- .../5d822fd413a79914d39e992c.md | 16 +- .../5d822fd413a79914d39e992d.md | 16 +- .../5d822fd413a79914d39e992e.md | 16 +- .../5d822fd413a79914d39e992f.md | 16 +- .../5d822fd413a79914d39e9930.md | 16 +- .../5d822fd413a79914d39e9931.md | 6 +- .../5d822fd413a79914d39e9932.md | 16 +- .../5d822fd413a79914d39e9933.md | 16 +- .../5d822fd413a79914d39e9934.md | 14 +- .../5d822fd413a79914d39e9935.md | 14 +- .../5d822fd413a79914d39e9936.md | 16 +- .../5d822fd413a79914d39e9937.md | 16 +- .../5d822fd413a79914d39e9938.md | 16 +- .../5d822fd413a79914d39e9939.md | 16 +- .../5d822fd413a79914d39e993a.md | 14 +- .../5d822fd413a79914d39e993b.md | 16 +- .../5d822fd413a79914d39e993c.md | 4 +- .../5d822fd413a79914d39e993d.md | 16 +- .../5d822fd413a79914d39e993e.md | 28 +-- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 18 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 14 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 8 +- .../5dfa22d1b521be39a3de7be0.md | 11 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 16 +- .../5efc4f528d6a74d05e68af74.md | 10 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 16 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f0286404aefb0562a4fdf9.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 9 +- .../60f5cb8875ab6a0610f05071.md | 10 +- .../60f803d5241e6a0433a523a1.md | 9 +- .../60f8604682407e0d017bbf7f.md | 2 +- .../60fabf0dd4959805dbae09e6.md | 2 +- .../60ffe1bc30415f042faea936.md | 2 +- .../60ffe3936796ac04959285a9.md | 2 +- .../60ffe69ee377c6055e192a46.md | 12 +- .../60ffe7d8aae62c05bcc9e7eb.md | 8 +- .../60ffec2825da1007509ddd06.md | 2 +- .../62b30924c5e4ef0daba23b5e.md | 4 +- .../62cc5b1779e4d313466f73c5.md | 2 +- .../62ff8b9dab5ac88e4d3d43a3.md | 2 +- .../62ff8e998d3e7eae14d6ae3b.md | 2 +- .../62ff919a7b5612c0670923a5.md | 2 +- .../60b69a66b6ddb80858c5157e.md | 2 +- .../60b69a66b6ddb80858c51580.md | 2 +- .../60b69a66b6ddb80858c51581.md | 4 +- .../60b69a66b6ddb80858c51582.md | 2 +- .../60b69a66b6ddb80858c51583.md | 4 +- .../60b69a66b6ddb80858c51584.md | 2 +- .../60b69a66b6ddb80858c51585.md | 2 +- .../60b69a66b6ddb80858c51586.md | 2 +- .../60b69a66b6ddb80858c51588.md | 2 +- .../60b69a66b6ddb80858c5158b.md | 2 +- .../60b69a66b6ddb80858c5158d.md | 2 +- .../60b69a66b6ddb80858c5158f.md | 2 +- .../60b69a66b6ddb80858c51591.md | 2 +- .../60b69a66b6ddb80858c51592.md | 2 +- .../60b69a66b6ddb80858c51595.md | 4 +- .../60b69a66b6ddb80858c51598.md | 4 +- .../60b69a66b6ddb80858c51599.md | 2 +- .../60b69a66b6ddb80858c5159a.md | 4 +- .../60b69a66b6ddb80858c5159b.md | 4 +- .../60b69a66b6ddb80858c5159d.md | 2 +- .../60b69a66b6ddb80858c5159f.md | 2 +- .../60b69a66b6ddb80858c515a1.md | 2 +- .../60b69a66b6ddb80858c515a2.md | 2 +- .../60b69a66b6ddb80858c515a5.md | 2 +- .../60b69a66b6ddb80858c515a6.md | 2 +- .../60b69a66b6ddb80858c515a7.md | 4 +- .../60b69a66b6ddb80858c515a9.md | 2 +- .../60b69a66b6ddb80858c515aa.md | 2 +- .../60b69a66b6ddb80858c515ab.md | 2 +- .../60b69a66b6ddb80858c515ac.md | 2 +- .../60b69a66b6ddb80858c515ad.md | 2 +- .../60b69a66b6ddb80858c515ae.md | 2 +- .../60b69a66b6ddb80858c515af.md | 4 +- .../60b69a66b6ddb80858c515b0.md | 2 +- .../60b69a66b6ddb80858c515b1.md | 4 +- .../60b69a66b6ddb80858c515b2.md | 4 +- .../60b69a66b6ddb80858c515b3.md | 2 +- .../60b69a66b6ddb80858c515b4.md | 4 +- .../60b69a66b6ddb80858c515b7.md | 2 +- .../60b69a66b6ddb80858c515b8.md | 2 +- .../60b69a66b6ddb80858c515b9.md | 2 +- .../60b69a66b6ddb80858c515bc.md | 2 +- .../60b69a66b6ddb80858c515bd.md | 2 +- .../60b69a66b6ddb80858c515be.md | 2 +- .../60b69a66b6ddb80858c515c0.md | 2 +- .../60b69a66b6ddb80858c515c3.md | 2 +- .../60b69a66b6ddb80858c515c5.md | 2 +- .../60ba8913f1704c0f7a8906b8.md | 2 +- .../60ba89146b25080f99ab54ad.md | 2 +- .../60ba8914bab51f0fb8228e9c.md | 2 +- .../60ba929345ab0714a3743655.md | 2 +- .../61fd5a93fd62bb35968adeab.md | 34 +-- .../61fd6343fb42013d99bcd7f3.md | 4 +- .../61fd66c687e610436494c6f1.md | 6 +- .../61fd67a656743144844941cb.md | 2 +- .../61fd6ab779390f49148773bb.md | 2 +- .../61fd6b7c83dbf54a08cf0498.md | 12 +- .../61fd6cc9475a784b7776233e.md | 2 +- .../61fd70336ebb3e4f62ee81ba.md | 2 +- .../61fd719788899952e67692b9.md | 2 +- .../61fd71d596e8f253b9408b39.md | 2 +- .../61fd75ea7f663457612dba02.md | 12 +- .../61fd7648a7ba2e5882436831.md | 8 +- .../61fd778081276b59d59abad6.md | 4 +- .../61fd77f7ad2aeb5ae34d07d6.md | 4 +- .../61fd78621573aa5e8b512f5e.md | 22 +- .../61fd7a160ed17960e971f28b.md | 2 +- .../61fd7b3fcaa5406257abc5d1.md | 2 +- .../61fd8e491324ce717da97ffe.md | 8 +- .../61fd8fd08af43372f02952d0.md | 2 +- .../61fd9126aa72a474301fc49f.md | 2 +- .../61fd933ba685de776a94997e.md | 22 +- .../61fd94056e0355785fbba4d3.md | 4 +- .../61fd986ddbcbd47ba8fbc5ec.md | 4 +- .../61fd990577d8227dd93fbeeb.md | 10 +- .../61fd9a4ff2fc4481b9157bd7.md | 2 +- .../61fd9ad665a4a282c8106be3.md | 2 +- .../61fd9b7285bde783ad5b8aac.md | 2 +- .../61fd9d9fbdfe078800317055.md | 2 +- .../61fda307bde0b091cf7d884a.md | 2 +- .../61fda339eadcfd92a6812bed.md | 2 +- .../61fdac1e31692f9a9ad97295.md | 4 +- .../61fdaea3999cb19d76ce717b.md | 2 +- .../61fdaf9ff894b6a084ecdc1b.md | 4 +- .../61fdafe6f07fd7a1c6785bc2.md | 4 +- .../61fdb04d9939f0a26ca51c2b.md | 2 +- .../620159cd5431aa34bc6a4c9c.md | 2 +- .../62015a5da1c95c358f079ebb.md | 4 +- .../62015cd2654a1139321a89d2.md | 2 +- .../62015d8942384c3aed48329e.md | 2 +- .../620167374bb8b4455cd11125.md | 2 +- .../620174ed519dd7506c1a4b61.md | 2 +- .../620175b3710a0951cfa86edf.md | 8 +- .../6201782cc420715562f36271.md | 2 +- .../620179bc0a6a2358c72b90ad.md | 2 +- .../62017b6f47454059bf2d3bd1.md | 2 +- .../62017f47c87be96457c49f46.md | 2 +- .../62017fa5bbef406580ceb44f.md | 2 +- .../62018243f046a368fab8ffb6.md | 2 +- .../6201830cb0c74b69f1b41635.md | 2 +- .../620186f4b6b8356d2def576b.md | 2 +- .../62018ba1aa263770c953be66.md | 2 +- .../62018c3e94434a71af1d5eaa.md | 10 +- .../62018ec29b3ae674f40bef31.md | 2 +- .../62019093fe30e278e797d2f6.md | 2 +- .../620191707bc65579ddd3ce15.md | 8 +- .../620192a767533a7ad19d96d7.md | 2 +- .../6201995d9ab88e80f1989dce.md | 2 +- .../620199c7a7a32c81d4db3410.md | 2 +- .../6201a1a7af32c287bd6b8183.md | 2 +- .../6201a1cc668a34888f5b2f52.md | 2 +- .../6201a20d742f5c89736c8cfb.md | 2 +- .../6201a42e39bf3b95b6a33bf3.md | 2 +- .../6201a4adcc6414968b391592.md | 2 +- .../6201a5258af7b398b030bfaf.md | 2 +- .../6201a59be346d399c21d10b1.md | 2 +- .../612e6afc009b450a437940a1.md | 16 +- .../612e83ec2eca1e370f830511.md | 13 +- .../612eaf56b7ba3257fdbfb0db.md | 2 +- .../612ebcba99bfa46a15370b11.md | 18 +- .../612ec19d5268da7074941f84.md | 16 +- .../roman-numeral-converter.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 6 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 4 +- .../62a8cf22272d6d35af80d4ac.md | 2 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 2 +- .../62a8d61ddfe35744369365b7.md | 6 +- .../62a8d6c7001ebc45350e3d16.md | 4 +- .../62a8e35675c18c56354c08cf.md | 6 +- .../62a8e41e2f190c58404dd46e.md | 4 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 2 +- .../62a8eec45f77bc69e8775294.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 2 +- .../62a8efb0e3ce826db8daf80f.md | 2 +- .../62a8eff21c0b0f6ebe5b8e38.md | 2 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 6 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- .../build-a-survey-form.md | 12 +- ...ugh-all-an-arrays-items-using-for-loops.md | 2 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- ...-variables-with-the-assignment-operator.md | 6 - .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/stand-in-line.md | 4 +- .../use-recursion-to-create-a-countdown.md | 7 + ...-recursion-to-create-a-range-of-numbers.md | 7 + ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- .../make-a-person.md | 8 - .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../mongodb-and-mongoose/create-a-model.md | 2 +- .../problem-10-summation-of-primes.md | 54 +++-- .../build-a-survey-form.md | 12 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 17 +- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 12 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 7 +- .../617bb5624a75e86463b7e638.md | 2 +- .../61439dfc811e12666b04be6f.md | 2 +- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 2 +- .../5dfa22d1b521be39a3de7be0.md | 4 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 4 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 3 +- .../60f803d5241e6a0433a523a1.md | 1 + .../615f50473cc0196c6dd3892a.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 6 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 2 +- .../62a8cbd1e3595431d5a2b3f1.md | 2 +- .../62a8ce73d0dce43468f6689c.md | 4 +- .../62a8cf22272d6d35af80d4ac.md | 2 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 2 +- .../62a8d61ddfe35744369365b7.md | 6 +- .../62a8d6c7001ebc45350e3d16.md | 4 +- .../62a8e35675c18c56354c08cf.md | 6 +- .../62a8e41e2f190c58404dd46e.md | 4 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 2 +- .../62a8eec45f77bc69e8775294.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 2 +- .../62a8efb0e3ce826db8daf80f.md | 2 +- .../62a8eff21c0b0f6ebe5b8e38.md | 2 +- .../62aa204c1e1d33348ff09944.md | 2 +- .../62aa20e9cf1be9358f5aceae.md | 4 +- .../62aa226207f33d3ad4c6f546.md | 8 +- .../62aa264d23cdaa45a20efada.md | 2 +- .../62aa27227399d647e1c37a3c.md | 4 +- .../62aa27560def7048d7b4a095.md | 2 +- .../62aa27c40ca6f04ab8be5fac.md | 2 +- .../falsy-bouncer.md | 10 +- .../access-array-data-with-indexes.md | 12 +- ...s-multi-dimensional-arrays-with-indexes.md | 8 +- ...essing-object-properties-with-variables.md | 34 +-- .../assignment-with-a-returned-value.md | 2 +- .../comment-your-javascript-code.md | 2 +- .../comparison-with-the-equality-operator.md | 20 +- ...mparison-with-the-greater-than-operator.md | 16 +- ...h-the-greater-than-or-equal-to-operator.md | 28 ++- ...comparison-with-the-inequality-operator.md | 16 +- .../comparison-with-the-less-than-operator.md | 28 ++- ...with-the-less-than-or-equal-to-operator.md | 30 ++- ...rison-with-the-strict-equality-operator.md | 18 +- ...son-with-the-strict-inequality-operator.md | 20 +- ...oncatenating-strings-with-plus-operator.md | 16 +- ...g-strings-with-the-plus-equals-operator.md | 10 +- .../constructing-strings-with-variables.md | 2 +- .../basic-javascript/counting-cards.md | 29 ++- .../create-decimal-numbers-with-javascript.md | 2 +- ...ad-only-variable-with-the-const-keyword.md | 36 +-- .../decrement-a-number-with-javascript.md | 14 +- ...-one-decimal-by-another-with-javascript.md | 6 - .../escape-sequences-in-strings.md | 12 +- .../escaping-literal-quotes-in-strings.md | 2 +- .../find-the-length-of-a-string.md | 4 +- ...nerate-random-fractions-with-javascript.md | 2 +- .../global-scope-and-functions.md | 2 +- .../basic-javascript/golf-code.md | 2 +- ...-variables-with-the-assignment-operator.md | 6 - ...terate-with-javascript-do...while-loops.md | 2 +- .../local-scope-and-functions.md | 2 +- .../practice-comparing-different-values.md | 2 +- .../quoting-strings-with-single-quotes.md | 6 - .../basic-javascript/record-collection.md | 8 +- .../return-early-pattern-for-functions.md | 4 +- ...returning-boolean-values-from-functions.md | 2 +- .../basic-javascript/stand-in-line.md | 4 +- .../understand-string-immutability.md | 4 +- .../understanding-uninitialized-variables.md | 8 +- .../use-recursion-to-create-a-countdown.md | 9 +- ...-recursion-to-create-a-range-of-numbers.md | 7 + .../using-objects-for-lookups.md | 8 +- .../basic-javascript/word-blanks.md | 18 +- .../mutate-an-array-declared-with-const.md | 2 +- ...syntax-to-define-a-constructor-function.md | 31 ++- ...-concise-declarative-functions-with-es6.md | 3 +- ...f-an-array-using-concat-instead-of-push.md | 10 +- ...tand-functional-programming-terminology.md | 2 +- .../make-a-person.md | 8 - .../map-the-debris.md | 23 +- .../steamroller.md | 7 + .../sum-all-primes.md | 56 +++-- .../add-methods-after-inheritance.md | 48 +++- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 18 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../moving-forward-from-here.md | 2 +- .../react/create-a-stateful-component.md | 16 +- .../react/introducing-inline-styles.md | 2 +- .../react/render-conditionally-from-props.md | 12 +- .../react/set-state-with-this.setstate.md | 2 +- ...rray.map-to-dynamically-render-elements.md | 2 +- ...roptypes-to-define-the-props-you-expect.md | 2 +- ...the-lifecycle-method-componentwillmount.md | 2 +- .../redux/create-a-redux-store.md | 2 +- .../visualize-data-with-a-bar-chart.md | 2 +- .../visualize-data-with-a-choropleth-map.md | 2 +- .../visualize-data-with-a-heat-map.md | 2 +- ...visualize-data-with-a-scatterplot-graph.md | 2 +- .../visualize-data-with-a-treemap-diagram.md | 2 +- .../exercise-tracker.md | 40 ++-- .../timestamp-microservice.md | 8 +- ...hain-middleware-to-create-a-time-server.md | 4 +- .../use-body-parser-to-parse-post-requests.md | 4 +- .../use-the-.env-file.md | 4 +- ...project-with-external-packages-from-npm.md | 18 +- ...es-by-understanding-semantic-versioning.md | 16 +- ...remove-a-package-from-your-dependencies.md | 10 +- ...he-latest-minor-version-of-a-dependency.md | 18 +- ...he-latest-patch-version-of-a-dependency.md | 18 +- .../mongodb-and-mongoose/create-a-model.md | 6 +- .../install-and-set-up-mongoose.md | 36 ++- ...-updates-by-running-find-edit-then-save.md | 2 +- .../announce-new-users.md | 2 +- .../authentication-strategies.md | 6 +- .../authentication-with-socket.io.md | 4 +- .../clean-up-your-project-with-modules.md | 2 +- .../communicate-by-emitting.md | 2 +- .../create-new-middleware.md | 2 +- .../handle-a-disconnect.md | 2 +- .../hashing-your-passwords.md | 4 +- .../how-to-put-a-profile-together.md | 2 +- .../how-to-use-passport-strategies.md | 2 +- ...nt-the-serialization-of-a-passport-user.md | 4 +- ...lementation-of-social-authentication-ii.md | 18 +- ...ementation-of-social-authentication-iii.md | 2 +- ...implementation-of-social-authentication.md | 4 +- .../logging-a-user-out.md | 4 +- .../registration-of-new-users.md | 2 +- .../send-and-display-chat-messages.md | 2 +- .../serialization-of-a-user-object.md | 4 +- .../set-up-a-template-engine.md | 14 +- .../set-up-passport.md | 22 +- .../set-up-the-environment.md | 6 +- .../use-a-template-engines-powers.md | 36 ++- ...ality-with-.deepequal-and-.notdeepequal.md | 2 +- .../compare-the-properties-of-two-elements.md | 14 +- ...ional-tests-using-a-headless-browser-ii.md | 4 +- .../use-assert.isok-and-assert.isnotok.md | 4 +- .../sudoku-solver.md | 30 +-- .../build-your-own-functions.md | 2 +- .../comparing-and-sorting-tuples.md | 2 +- .../files-as-a-sequence.md | 2 +- .../intermediate-expressions.md | 4 +- .../introduction-why-program.md | 4 +- .../iterations-more-patterns.md | 2 +- .../more-conditional-structures.md | 4 +- .../networking-web-scraping-with-python.md | 6 +- .../relational-databases-and-sqlite.md | 8 +- ...al-databases-many-to-many-relationships.md | 10 +- .../python-for-everybody/strings-and-lists.md | 2 +- .../arithmetic-formatter.md | 49 ++-- .../budget-app.md | 48 ++-- .../polygon-area-calculator.md | 42 ++-- .../probability-calculator.md | 48 ++-- .../time-calculator.md | 34 ++- .../introduction-to-data-analysis.md | 15 +- .../demographic-data-analyzer.md | 17 +- ...-variance-standard-deviation-calculator.md | 23 +- .../medical-data-visualizer.md | 43 ++-- .../page-view-time-series-visualizer.md | 23 +- .../sea-level-predictor.md | 22 +- .../port-scanner.md | 28 +-- .../secure-real-time-multiplayer-game.md | 57 +++-- .../sha-1-password-cracker.md | 32 +-- .../stock-price-checker.md | 8 +- ...sh-and-compare-passwords-asynchronously.md | 16 +- .../install-and-require-helmet.md | 6 +- .../understand-bcrypt-hashes.md | 8 +- .../find-the-symmetric-difference.md | 6 +- .../algorithms/implement-binary-search.md | 2 +- ...d-a-new-element-to-a-binary-search-tree.md | 2 +- .../check-if-binary-search-tree.md | 20 +- .../create-a-doubly-linked-list.md | 10 +- .../data-structures/create-a-hash-table.md | 14 +- .../create-a-map-data-structure.md | 14 +- .../create-a-trie-search-tree.md | 12 +- .../create-an-es6-javascript-map.md | 14 +- .../data-structures/depth-first-search.md | 31 ++- .../implement-heap-sort-with-a-min-heap.md | 10 +- .../data-structures/incidence-matrix.md | 2 +- .../insert-an-element-into-a-max-heap.md | 8 +- ...form-a-subset-check-on-two-sets-of-data.md | 10 +- .../perform-a-union-on-two-sets.md | 2 +- .../remove-an-element-from-a-max-heap.md | 10 +- ...ve-elements-from-a-linked-list-by-index.md | 2 +- .../reverse-a-doubly-linked-list.md | 10 +- .../search-within-a-linked-list.md | 2 +- .../problem-10-summation-of-primes.md | 54 +++-- .../problem-107-minimal-network.md | 4 +- .../problem-124-ordered-radicals.md | 12 +- .../problem-128-hexagonal-tile-differences.md | 64 +++++- .../problem-168-number-rotations.md | 52 ++++- .../problem-199-iterative-circle-packing.md | 18 +- .../problem-2-even-fibonacci-numbers.md | 4 +- .../project-euler/problem-250-250250.md | 4 +- .../problem-257-angular-bisectors.md | 4 +- ...h-the-area--perimeter-ratio-is-integral.md | 14 +- .../problem-29-distinct-powers.md | 16 +- ...itwise-or-operations-on-random-integers.md | 14 +- .../problem-326-modulo-summations.md | 4 +- .../project-euler/problem-331-cross-flips.md | 22 +- .../problem-344-silver-dollar-game.md | 4 +- ...-356-largest-roots-of-cubic-polynomials.md | 4 +- .../problem-371-licence-plates.md | 4 +- .../problem-414-kaprekar-constant.md | 4 +- .../problem-421-prime-factors-of-n151.md | 4 +- ...-429-sum-of-squares-of-unitary-divisors.md | 6 +- ...-part-of-polynomial-equations-solutions.md | 4 +- ...blem-450-hypocycloid-and-lattice-points.md | 7 +- .../problem-473-phigital-number-base.md | 4 +- .../problem-64-odd-period-square-roots.md | 4 +- .../rosetta-code/24-game.md | 141 ++++++++---- .../9-billion-names-of-god-the-integer.md | 4 +- .../rosetta-code/accumulator-factory.md | 4 +- .../rosetta-code/amicable-pairs.md | 20 +- .../rosetta-code/averages-mode.md | 4 +- .../averages-pythagorean-means.md | 4 +- .../rosetta-code/averages-root-mean-square.md | 10 +- .../rosetta-code/babbage-problem.md | 4 +- ...cles-of-given-radius-through-two-points.md | 10 +- .../rosetta-code/comma-quibbling.md | 14 +- .../rosetta-code/compare-a-list-of-strings.md | 30 ++- .../rosetta-code/count-the-coins.md | 4 +- .../rosetta-code/cramers-rule.md | 22 +- .../cumulative-standard-deviation.md | 41 +++- .../rosetta-code/deal-cards-for-freecell.md | 18 +- .../rosetta-code/discordian-date.md | 35 ++- .../rosetta-code/dot-product.md | 4 +- .../rosetta-code/euler-method.md | 4 +- .../execute-a-markov-algorithm.md | 214 ++++++----------- .../rosetta-code/execute-brain.md | 4 +- .../rosetta-code/factorial.md | 4 +- .../factors-of-a-mersenne-number.md | 6 +- .../rosetta-code/farey-sequence.md | 4 +- .../fibonacci-n-step-number-sequences.md | 8 +- .../rosetta-code/fibonacci-word.md | 116 +++++----- .../rosetta-code/fractran.md | 4 +- .../rosetta-code/gamma-function.md | 4 +- .../rosetta-code/general-fizzbuzz.md | 4 +- .../rosetta-code/gray-code.md | 6 +- .../rosetta-code/happy-numbers.md | 4 +- .../rosetta-code/hash-from-two-arrays.md | 16 +- .../rosetta-code/hash-join.md | 6 +- .../rosetta-code/heronian-triangles.md | 4 +- .../hofstadter-figure-figure-sequences.md | 48 ++-- .../rosetta-code/hofstadter-q-sequence.md | 6 +- .../rosetta-code/i-before-e-except-after-c.md | 4 +- .../rosetta-code/iban.md | 14 +- .../rosetta-code/jortsort.md | 4 +- .../rosetta-code/josephus-problem.md | 6 +- .../rosetta-code/kaprekar-numbers.md | 6 +- .../rosetta-code/knights-tour.md | 16 +- .../rosetta-code/least-common-multiple.md | 10 +- .../rosetta-code/levenshtein-distance.md | 4 +- .../linear-congruential-generator.md | 6 +- .../rosetta-code/long-multiplication.md | 4 +- .../longest-common-subsequence.md | 40 ++-- .../longest-increasing-subsequence.md | 26 +-- .../rosetta-code/longest-string-challenge.md | 4 +- .../rosetta-code/look-and-say-sequence.md | 4 +- .../rosetta-code/lu-decomposition.md | 6 +- .../rosetta-code/ludic-numbers.md | 4 +- .../luhn-test-of-credit-card-numbers.md | 4 +- .../rosetta-code/lzw-compression.md | 8 +- .../rosetta-code/s-expressions.md | 6 +- .../sailors-coconuts-and-a-monkey-problem.md | 19 +- .../rosetta-code/sedols.md | 23 +- .../rosetta-code/self-describing-numbers.md | 4 +- .../rosetta-code/self-referential-sequence.md | 4 +- .../rosetta-code/semiprime.md | 4 +- .../rosetta-code/sha-1.md | 4 +- .../rosetta-code/sort-stability.md | 4 +- .../sorting-algorithms-bead-sort.md | 38 +-- .../sorting-algorithms-bogosort.md | 4 +- .../sorting-algorithms-cocktail-sort.md | 26 +-- .../sorting-algorithms-comb-sort.md | 22 +- .../sorting-algorithms-gnome-sort.md | 4 +- .../sorting-algorithms-pancake-sort.md | 4 +- .../sorting-algorithms-shell-sort.md | 4 +- .../sorting-algorithms-stooge-sort.md | 4 +- .../sorting-algorithms-strand-sort.md | 30 ++- .../rosetta-code/soundex.md | 18 +- .../rosetta-code/state-name-puzzle.md | 15 +- .../rosetta-code/stern-brocot-sequence.md | 4 +- .../rosetta-code/straddling-checkerboard.md | 26 ++- .../rosetta-code/subleq.md | 4 +- .../rosetta-code/sudoku.md | 4 +- .../rosetta-code/sum-of-a-series.md | 4 +- .../sutherland-hodgman-polygon-clipping.md | 4 +- .../rosetta-code/symmetric-difference.md | 24 +- .../rosetta-code/taxicab-numbers.md | 21 +- .../rosetta-code/towers-of-hanoi.md | 18 +- .../rosetta-code/y-combinator.md | 12 +- .../rosetta-code/zig-zag-matrix.md | 4 +- .../build-a-camper-leaderboard.md | 6 +- .../build-a-light-bright-app.md | 6 +- .../build-a-nightlife-coordination-app.md | 4 +- .../build-a-pinterest-clone.md | 8 +- .../take-home-projects/build-a-pong-game.md | 6 +- .../take-home-projects/build-a-recipe-box.md | 6 +- .../build-a-roguelike-dungeon-crawler-game.md | 6 +- .../take-home-projects/build-a-simon-game.md | 6 +- .../build-a-tic-tac-toe-game.md | 6 +- .../build-a-wikipedia-viewer.md | 18 +- ...build-an-image-search-abstraction-layer.md | 2 +- .../build-the-game-of-life.md | 31 ++- .../manage-a-book-trading-club.md | 10 +- .../map-data-across-the-globe.md | 6 +- .../p2p-video-chat-application.md | 6 +- ...-contiguity-with-a-force-directed-graph.md | 6 +- .../show-the-local-weather.md | 8 +- .../use-the-twitch-json-api.md | 16 +- .../book-recommendation-engine-using-knn.md | 43 +++- .../cat-and-dog-image-classifier.md | 92 +++++++- ...near-regression-health-costs-calculator.md | 26 ++- .../neural-network-sms-text-classifier.md | 16 +- .../rock-paper-scissors.md | 48 +++- .../neural-networks-activation-functions.md | 2 +- .../6148da157cc0bd0d06df5c0a.md | 14 +- .../6148dc095264000dce348bf5.md | 2 +- .../6148dcaaf2e8750e6cb4501a.md | 2 +- .../6148dd31d210990f0fb140f8.md | 2 +- .../6148defa9c01520fb9d178a0.md | 2 +- .../6148dfab9b54c110577de165.md | 2 +- .../6148e0bcc13efd10f7d7a6a9.md | 2 +- .../6148e161ecec9511941f8833.md | 2 +- .../6148e28706b34912340fd042.md | 2 +- .../6148e335c1edd512d00e4691.md | 2 +- .../6148e41c728f65138addf9cc.md | 2 +- .../6148e5aeb102e3142de026a2.md | 4 +- .../5f33294a6af5e9188dbdb8f3.md | 23 +- .../5f332a88dc25a0fd25c7687a.md | 25 +- .../5f332b23c2045fb843337579.md | 31 +-- .../5f344f9c805cd193c33d829c.md | 8 +- .../5f344fad8bf01691e71a30eb.md | 8 +- .../5f344fbc22624a2976425065.md | 8 +- .../5f344fc1520b6719f2e35605.md | 15 +- .../5f3477ae34c1239cafe128be.md | 8 +- .../5f3477ae8466a9a3d2cc953c.md | 8 +- .../5f3477ae9675db8bb7655b30.md | 17 +- .../5f3477aefa51bfc29327200b.md | 8 +- .../5f3477cb2e27333b1ab2b955.md | 8 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f3477cbcb6ba47918c1da92.md | 8 +- .../5f34a1fd611d003edeafd681.md | 8 +- .../5f356ed60785e1f3e9850b6e.md | 8 +- .../5f356ed60a5decd94ab66986.md | 8 +- .../5f356ed6199b0cdef1d2be8f.md | 8 +- .../5f356ed63c7807a4f1e6d054.md | 8 +- .../5f356ed63e0fa262326eef05.md | 8 +- .../5f356ed656a336993abd9f7c.md | 8 +- .../5f356ed69db0a491745e2bb6.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 8 +- .../5f35e5c4321f818cdc4bed30.md | 8 +- .../5f35e5c44359872a137bd98f.md | 8 +- .../5f3c866d0fc037f7311b4ac8.md | 8 +- .../5f3c866d28d7ad0de6470505.md | 8 +- .../5f3c866d5414453fc2d7b480.md | 8 +- .../5f3c866daec9a49519871816.md | 8 +- .../5f3c866dbf362f99b9a0c6d0.md | 8 +- .../5f3c866dd0d0275f01d4d847.md | 8 +- .../5f3c866de7a5b784048f94b1.md | 8 +- .../5f3cade94c6576e7f7b7953f.md | 8 +- .../5f3cade9993019e26313fa8e.md | 8 +- .../5f3cade99dda4e6071a85dfd.md | 8 +- .../5f3cade9fa77275d9f4efe62.md | 8 +- .../5f3ef6e01f288a026d709587.md | 20 +- .../5f3ef6e03d719d5ac4738993.md | 8 +- .../5f3ef6e04559b939080db057.md | 8 +- .../5f3ef6e050279c7a4a7101d3.md | 8 +- .../5f3ef6e05473f91f948724ab.md | 8 +- .../5f3ef6e056bdde6ae6892ba2.md | 8 +- .../5f3ef6e06d34faac0447fc44.md | 8 +- .../5f3ef6e07276f782bb46b93d.md | 10 +- .../5f3ef6e0819d4f23ca7285e6.md | 8 +- .../5f3ef6e087d56ed3ffdc36be.md | 8 +- .../5f3ef6e0a81099d9a697b550.md | 8 +- .../5f3ef6e0b431cc215bb16f55.md | 8 +- .../5f3ef6e0e0c3feaebcf647ad.md | 8 +- .../5f3ef6e0e9629bad967cd71e.md | 8 +- .../5f3ef6e0eaa7da26e3d34d78.md | 8 +- .../5f3ef6e0f8c230bdd2349716.md | 8 +- .../5f3f26fa39591db45e5cd7a0.md | 10 +- .../5f459225127805351a6ad057.md | 10 +- .../5f459a7ceb8b5c446656d88b.md | 10 +- .../5f459cf202c2a3472fae6a9f.md | 10 +- .../5f459fd48bdc98491ca6d1a3.md | 12 +- .../5f45a05977e2fa49d9119437.md | 10 +- .../5f45a276c093334f0f6e9df4.md | 10 +- .../5f45a5a7c49a8251f0bdb527.md | 10 +- .../5f45a66d4a2b0453301e5a26.md | 10 +- .../5f45b0731d39e15d54df4dfc.md | 10 +- .../5f45b25e7ec2405f166b9de1.md | 10 +- .../5f45b3c93c027860d9298dbd.md | 10 +- .../5f45b45d099f3e621fbbb256.md | 10 +- .../5f45b4c81cea7763550e40df.md | 10 +- .../5f45b715301bbf667badc04a.md | 10 +- .../5f46e270702a8456a664f0df.md | 10 +- .../5f46e36e745ead58487aabf2.md | 10 +- .../5f46e7a4750dd05b5a673920.md | 10 +- .../5f46e8284aae155c83015dee.md | 10 +- .../5f46ede1ff8fec5ba656b44c.md | 10 +- .../5f46fc57528aa1c4b5ea7c2e.md | 10 +- .../5f4701b942c824109626c3d8.md | 10 +- .../5f475bb508746c16c9431d42.md | 10 +- .../5f475e1c7f71a61d913836c6.md | 10 +- .../5f47633757ae3469f2d33d2e.md | 8 +- .../5f47fe7e31980053a8d4403b.md | 16 +- .../5f716ad029ee4053c7027a7a.md | 8 +- .../5f716bee5838c354c728a7c5.md | 8 +- .../5f7691dafd882520797cd2f0.md | 8 +- .../5f7692f7c5b3ce22a57788b6.md | 8 +- .../5f769541be494f25449b292f.md | 8 +- .../5f76967fad478126d6552b0d.md | 8 +- .../5f769702e6e33127d14aa120.md | 8 +- .../5f7b87422a560036fd03ccff.md | 8 +- .../5f7b88d37b1f98386f04edc0.md | 8 +- .../616965351e74d4689eb6de30.md | 7 +- .../5dc2385ff86c76b9248c6eb7.md | 12 +- .../5dc23991f86c76b9248c6eb8.md | 10 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 2 +- .../5dc24165f86c76b9248c6ebc.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5ddbd81294d8ddc1510a8e56.md | 2 +- .../5dfa22d1b521be39a3de7be0.md | 4 +- .../5dfa2407b521be39a3de7be1.md | 2 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfa3589eacea3f48c6300ae.md | 2 +- .../5dfa371beacea3f48c6300af.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 4 +- .../5dfb5ecbeacea3f48c6300b1.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 2 +- .../5dfb655eeacea3f48c6300b3.md | 6 +- .../5dfb6a35eacea3f48c6300b4.md | 2 +- .../5ef9b03c81a63668521804d0.md | 2 +- .../5ef9b03c81a63668521804d1.md | 2 +- .../5ef9b03c81a63668521804d2.md | 2 +- .../5ef9b03c81a63668521804d3.md | 2 +- .../5ef9b03c81a63668521804d4.md | 2 +- .../5ef9b03c81a63668521804d5.md | 2 +- .../5ef9b03c81a63668521804d6.md | 2 +- .../5ef9b03c81a63668521804d7.md | 2 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804d9.md | 2 +- .../5ef9b03c81a63668521804da.md | 2 +- .../5ef9b03c81a63668521804db.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../5ef9b03c81a63668521804dd.md | 2 +- .../5ef9b03c81a63668521804de.md | 2 +- .../5ef9b03c81a63668521804df.md | 2 +- .../5ef9b03c81a63668521804e1.md | 2 +- .../5ef9b03c81a63668521804e2.md | 2 +- .../5ef9b03c81a63668521804e3.md | 2 +- .../5ef9b03c81a63668521804e5.md | 2 +- .../5ef9b03c81a63668521804e7.md | 2 +- .../5ef9b03c81a63668521804e8.md | 2 +- .../5ef9b03c81a63668521804e9.md | 2 +- .../5ef9b03c81a63668521804ea.md | 2 +- .../5ef9b03c81a63668521804eb.md | 2 +- .../5ef9b03c81a63668521804ec.md | 2 +- .../5ef9b03c81a63668521804ee.md | 2 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../5efae0543cbd2bbdab94e333.md | 2 +- .../5efae16e3cbd2bbdab94e334.md | 2 +- .../5efb23e70dc218d6c85f89b1.md | 2 +- .../5efb2c990dc218d6c85f89b2.md | 2 +- .../5efc4f528d6a74d05e68af74.md | 2 +- .../5efc518e8d6a74d05e68af75.md | 2 +- .../5efc54138d6a74d05e68af76.md | 2 +- .../5efc575c8d6a74d05e68af77.md | 2 +- .../5f05a1d8e233dff4a68508d8.md | 2 +- .../5f07be6ef7412fbad0c5626b.md | 18 +- .../5f07c98cdb9413cbd4b16750.md | 2 +- .../5f07fb1579dc934717801375.md | 52 ++--- .../5f0d48e7b435f13ab6550051.md | 2 +- .../5f0d4ab1b435f13ab6550052.md | 2 +- .../5f0d4d04b435f13ab6550053.md | 2 +- .../5f1a80975fc4bcae0edb3497.md | 2 +- .../5f1a89f1190aff21ae42105a.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 4 +- .../62dabe2ef403a12d5d295273.md | 2 +- .../7cf9b03d81a65668421804c3.md | 2 +- .../60f1922fcbd2410527b3bd89.md | 7 +- .../60f803d5241e6a0433a523a1.md | 1 + .../62a3c2fccf186146b59c6e96.md | 12 +- .../62a3c4a0e52767482c5202d4.md | 16 +- .../62a3c668afc43b4a134cca81.md | 14 +- .../62a3cfc8328d3351b95d4f61.md | 18 +- .../62a7beb1ad61211ac153707f.md | 20 +- .../62a7bf06d2ad9d1c5024e833.md | 28 +-- .../62a7bfabe119461eb13ccbd6.md | 12 +- .../62a7c23e6b511f22ed71197a.md | 8 +- .../62a7cc99577fbf25ee7a7d76.md | 12 +- .../62a8a929e4260d08093756d2.md | 10 +- .../62a8a9d876b2580943ba9351.md | 10 +- .../62a8aa98a8289d0a698eee1d.md | 14 +- .../62a8ab0e27cbaf0b54ba8a42.md | 16 +- .../62a8ac194679e60cb561b0a8.md | 14 +- .../62a8ad8e01d7cb0deae5ec66.md | 16 +- .../62a8ade9b2f5b30ef0b606c2.md | 10 +- .../62a8ae85fcaedc0fddc7ca4f.md | 24 +- .../62a8b0b5053f16111b0b6b5f.md | 22 +- .../62a8b1762b7775124622e1a3.md | 8 +- .../62a8b3cc436db8139cc5fc09.md | 6 +- .../62a8b6536156c51500739b41.md | 14 +- .../62a8b711ab7a12161c7d9b67.md | 8 +- .../62a8b9770050d217d2247801.md | 8 +- .../62a8c0c8313e891a15ec23e7.md | 12 +- .../62a8c1154d3ae11aee80353f.md | 16 +- .../62a8c151b23bf21bc7c4fcba.md | 8 +- .../62a8c173949f851c83c64756.md | 10 +- .../62a8c242b25a531f2909e5bc.md | 12 +- .../62a8c2bbbd8aa82052f47c53.md | 24 +- .../62a8c31ec0ec78216a1c36a0.md | 14 +- .../62a8c370ad8c68227137e0bc.md | 10 +- .../62a8c3ebc6c35e23785e1a19.md | 8 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 8 +- .../62a8c4db0710f3260f867a92.md | 8 +- .../62a8c56247609626fa4a8d6e.md | 2 +- .../62a8c5db7888af27af23f0dd.md | 8 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 6 +- .../62a8c7322e42962ad53ad204.md | 6 +- .../62a8c7a59e72c02bb1c717d2.md | 4 +- .../62a8c89e4272512d44fc1c66.md | 4 +- .../62a8c8cee8e5cf2e001789b4.md | 4 +- .../62a8ca22d29fe62f3952bdf5.md | 2 +- .../62a8cb19bd7f8a304e5427a1.md | 6 +- .../62a8cbd1e3595431d5a2b3f1.md | 6 +- .../62a8cce1b0c32c33017cf2e9.md | 4 +- .../62a8ce1dfc990134162b3bd9.md | 4 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 6 +- .../62a8d0337d7c67377a4a76c6.md | 8 +- .../62a8d08668fa8b38732486e9.md | 8 +- .../62a8d0c4f12c2239b6618582.md | 12 +- .../62a8d0fdf2dad83a92883a80.md | 6 +- .../62a8d143f2a58e3b6d6e9c33.md | 4 +- .../62a8d1c72e8bb13c2074d93c.md | 2 +- .../62a8d2146a3e853d0a6e28ca.md | 8 +- .../62a8d24c97461b3ddb9397c8.md | 10 +- .../62a8d2e2a073be3edb46116f.md | 6 +- .../62a8d31ebbc10e3fe1b28e03.md | 4 +- .../62a8d35660db4040ba292193.md | 4 +- .../62a8d382cd075f4169223e14.md | 6 +- .../62a8d539dc11cb42b5dd7ec8.md | 2 +- .../62a8d61ddfe35744369365b7.md | 10 +- .../62a8d6c7001ebc45350e3d16.md | 6 +- .../62a8d7b8ab568b4649998954.md | 6 +- .../62a8d81f539f004776dd9b1e.md | 24 +- .../62a8dd468debb449b4454086.md | 6 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 2 +- .../62a8e0d1d0110b4ec421489f.md | 10 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 2 +- .../62a8e21398ad61520edb724f.md | 2 +- .../62a8e24c673b075317cc0b09.md | 4 +- .../62a8e271f8e3d1541f9624ad.md | 2 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 6 +- .../62a8e45cc600c3591cee671a.md | 2 +- .../62a8e49f4df7af5ae2d7a616.md | 4 +- .../62a8e4dc6a60f85bf256a0cb.md | 2 +- .../62a8ed36d7a7915dfa444ba2.md | 2 +- .../62a8edd05e27cc668051686f.md | 8 +- .../62a8ee154c8946678775c4a4.md | 6 +- .../62a8ee71f018e968a056d369.md | 10 +- .../62a8eec45f77bc69e8775294.md | 4 +- .../62a8eefe2e68b66ac563816b.md | 2 +- .../62a8ef6a52292f6bdca4f6f8.md | 2 +- .../62a8ef8f0c76a46cd221a68c.md | 8 +- .../62a8efb0e3ce826db8daf80f.md | 6 +- .../62a8eff21c0b0f6ebe5b8e38.md | 8 +- .../62a8f06fb318666fef69f91e.md | 2 +- .../62a8f14fe6d1fc72454648c7.md | 4 +- .../62a8f1d5f5ddbf74c07f733b.md | 4 +- .../62a8f20463b324759953edad.md | 22 +- .../62a8f256b813a476cae51f49.md | 8 +- .../62a8f2bc37675e77d5835235.md | 2 +- .../62a8f35bde1750791f58773f.md | 4 +- .../62a94114ce0b8918b487390f.md | 4 +- .../62aa1d6736ba262cfa74344b.md | 4 +- .../62aa1d9f535e102e4663e7a6.md | 6 +- .../62aa1e3c7c3d552fb04f0f18.md | 2 +- .../62aa1e8ccd579330e097ce44.md | 2 +- .../62aa1eec891ed731db227a36.md | 2 +- .../62aa1fed3d4e873366ff3131.md | 2 +- .../62aa204c1e1d33348ff09944.md | 4 +- .../62aa20e9cf1be9358f5aceae.md | 6 +- .../62aa2136fc49b836dfedb959.md | 4 +- .../62aa21971e3b743844849985.md | 2 +- .../62aa21ea8d9d9f396b95dd87.md | 8 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 2 +- .../62aa234322d4ad3e8bce42cc.md | 4 +- .../62aa2469c77b363fdb4f0e06.md | 12 +- .../62aa252c3b1073415ba2b898.md | 8 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 6 +- .../62aa264d23cdaa45a20efada.md | 4 +- .../62aa26cca3cd3d46c431e73b.md | 2 +- .../62aa27227399d647e1c37a3c.md | 6 +- .../62aa27560def7048d7b4a095.md | 4 +- .../62aa27c40ca6f04ab8be5fac.md | 4 +- .../62aa28032d863d4bd8058799.md | 2 +- .../62aa287434dc284cea01157c.md | 2 +- .../62aa28bbd6323e4dfb3ac43e.md | 2 +- .../62aa28fb651bf14efa2dbb16.md | 4 +- .../62aa2943669c9d5026af6985.md | 4 +- .../62aa2999ec27ec516655eba6.md | 2 +- .../62aa29d8f8f88152c91350ca.md | 2 +- .../62aa2aec2f09d454253aad6c.md | 6 +- .../62aa2ba9cd881355a6f0a5a8.md | 6 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62fc1ee0c5a89717d4785729.md | 14 +- .../62fc20387ef88d1d1998aac5.md | 12 +- .../62fc211760bfc220f4734800.md | 8 +- .../chinese-traditional/comments.json | 3 +- curriculum/dictionaries/chinese/comments.json | 3 +- curriculum/dictionaries/german/comments.json | 111 +++++++++ 6193 files changed, 34024 insertions(+), 29301 deletions(-) create mode 100644 curriculum/dictionaries/german/comments.json diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md index a8bb0cf51a9..4ffdba5ea38 100644 --- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md +++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md @@ -91,7 +91,7 @@ const el = document.getElementById('name') assert(!!el && el.required) ``` -你的 `#name` 元素應該是 `#survey-form` 元素的子元素。 +Your `#name` should be a descendant of `#survey-form`. ```js const el = document.querySelector('#survey-form #name') @@ -119,7 +119,7 @@ const el = document.getElementById('email') assert(!!el && el.required) ``` -你的 `#email` 元素應該是 `#survey-form` 元素的子元素。 +Your `#email` should be a descendant of `#survey-form` ```js const el = document.querySelector('#survey-form #email') @@ -133,7 +133,7 @@ const el = document.getElementById('number') assert(!!el && el.tagName === 'INPUT') ``` -你的 `#number` 元素應該是 `#survey-form` 元素的子元素。 +Your `#number` should be a descendant of `#survey-form`. ```js const el = document.querySelector('#survey-form #number') @@ -203,21 +203,21 @@ const el = document.getElementById('number-label') assert(!!el && el.innerText.length > 0) ``` -你的 `#name-label` 元素應該是 `#survey-form` 元素的子元素。 +Your `#name-label` should be a descendant of `#survey-form`. ```js const el = document.querySelector('#survey-form #name-label') assert(!!el) ``` -你的 `#email-label` 元素應該是 `#survey-form` 元素的子元素。 +Your `#email-label` should be a descendant of `#survey-form`. ```js const el = document.querySelector('#survey-form #email-label') assert(!!el) ``` -你的 `#number-label` 元素應該是 `#survey-form` 元素的子元素。 +Your `#number-label` should be a descendant of `#survey-form`. ```js const el = document.querySelector('#survey-form #number-label') diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md index b0f1416de35..b76bb842d4c 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md @@ -8,7 +8,7 @@ dashedName: falsy-bouncer # --description-- -從數組中移除所有假值(falsy values)。 +Remove all falsy values from an array. Return a new array; do not mutate the original array. JavaScript 中的假值有 `false`、`null`、`0`、`""`、`undefined`、`NaN`。 @@ -40,6 +40,14 @@ assert.deepEqual(bouncer([false, null, 0, NaN, undefined, '']), []); assert.deepEqual(bouncer([null, NaN, 1, 2, undefined]), [1, 2]); ``` +You should not mutate `arr`. + +```js +const arr = ['a', false, 0, 'Naomi']; +bouncer(arr); +assert.deepEqual(arr, ['a', false, 0, 'Naomi']) +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript.md index 25b0e991643..86b5874bb4d 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/divide-one-decimal-by-another-with-javascript.md @@ -37,12 +37,6 @@ assert(code.match(/quotient/g).length === 1); # --seed-- -## --after-user-code-- - -```js -(function(y){return 'quotient = '+y;})(quotient); -``` - ## --seed-contents-- ```js diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings.md index bccac3a3929..01adfa0d9d5 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings.md @@ -11,12 +11,12 @@ dashedName: escape-sequences-in-strings 引號不是字符串中唯一可以被轉義(escaped)的字符。 使用轉義字符有兩個原因: -1. 首先是可以讓你使用無法輸入的字符,例如退格。 +1. To allow you to use characters you may not otherwise be able to type out, such as a newline. 2. 其次是可以讓你在一個字符串中表示多個引號,而不會出錯。 我們在之前的挑戰中學到了這個。 -
代碼輸出
\'單引號
\"雙引號
\\反斜槓
\n換行符
\r回車符
\t製表符
\b退格
\f換頁符
+
代碼輸出
\'單引號
\"雙引號
\\反斜槓
\n換行符
\ttab
\rcarriage return
\b退格
\f換頁符
*請注意,必須對反斜槓本身進行轉義,它才能顯示爲反斜槓。* @@ -78,14 +78,6 @@ assert(myStr === 'FirstLine\n\t\\SecondLine\nThirdLine'); # --seed-- -## --after-user-code-- - -```js -(function(){ -if (myStr !== undefined){ -console.log('myStr:\n' + myStr);}})(); -``` - ## --seed-contents-- ```js diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator.md index 054a453aee3..a8360c285b5 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/initializing-variables-with-the-assignment-operator.md @@ -31,12 +31,6 @@ assert(/var\s+a\s*=\s*9(\s*;?\s*)$/.test(code)); # --seed-- -## --after-user-code-- - -```js -if(typeof a !== 'undefined') {(function(a){return "a = " + a;})(a);} else { (function() {return 'a is undefined';})(); } -``` - ## --seed-contents-- ```js diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes.md index d80d8fb1a58..7cb1ebf3801 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes.md @@ -62,12 +62,6 @@ assert(code.match(/"/g).length === 4 && code.match(/'/g).length === 2); # --seed-- -## --after-user-code-- - -```js -(function() { return "myStr = " + myStr; })(); -``` - ## --seed-contents-- ```js diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/stand-in-line.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/stand-in-line.md index 6ed26f256a9..4d8c35de2c7 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/stand-in-line.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/stand-in-line.md @@ -98,7 +98,7 @@ function nextInLine(arr, item) { } // Setup -const testArr = [1, 2, 3, 4, 5]; +let testArr = [1, 2, 3, 4, 5]; // Display code console.log("Before: " + JSON.stringify(testArr)); @@ -109,7 +109,7 @@ console.log("After: " + JSON.stringify(testArr)); # --solutions-- ```js -const testArr = [1, 2, 3, 4, 5]; +let testArr = [1, 2, 3, 4, 5]; function nextInLine(arr, item) { arr.push(item); diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md index 830cd6c9609..964bdf024bd 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md @@ -71,6 +71,13 @@ assert( ); ``` +Global variables should not be used to cache the array. + +```js +countdown(1) +assert.deepStrictEqual(countdown(5), [5, 4, 3, 2, 1]); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers.md index 5cc0098b523..429cd2dcbd5 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers.md @@ -56,6 +56,13 @@ assert.deepStrictEqual(rangeOfNumbers(6, 9), [6, 7, 8, 9]); assert.deepStrictEqual(rangeOfNumbers(4, 4), [4]); ``` +Global variables should not be used to cache the array. + +```js +rangeOfNumbers(1, 3) +assert.deepStrictEqual(rangeOfNumbers(6, 9), [6, 7, 8, 9]); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md index 18806c6610e..bf01fc37706 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md @@ -12,24 +12,35 @@ ES6 提供了一個新的創建對象的語法,使用關鍵字 class 2) { - var half = n>>1; - var sieve = Array(half); - for (var i = 1, limit = Math.sqrt(n)>>1; i <= limit; i++) { - if (!sieve[i]) { - for (var step = 2*i+1, j = (step*step)>>1; j < half; j+=step) { - sieve[j] = true; - } - } - } - primes.push(2); - for (var p = 1; p < half; p++) { - if (!sieve[p]) primes.push(2*p+1); +class PrimeSeive { + constructor(num) { + const seive = Array(Math.floor((num - 1) / 2)).fill(true); + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + + for (let i = 0; i <= sqrtUpper; i++) { + if (seive[i]) { + // Mark value in seive array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + seive[j] = false; } + } } - return primes; -} + + this._seive = seive; + } + + isPrime(num) { + return num === 2 + ? true + : num % 2 === 0 + ? false + : this.isOddPrime(num); + } + + isOddPrime(num) { + return this._seive[(num - 3) / 2]; + } +}; function sumPrimes(num) { - return eratosthenesArray(num+1).reduce(function(a,b) {return a+b;}, 0); + const primeSeive = new PrimeSeive(num); + + let sum = 2; + for (let i = 3; i <= num; i += 2) { + if (primeSeive.isOddPrime(i)) sum += i; + } + return sum; } sumPrimes(10); diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance.md index 626f7c8141d..ce2687e5a89 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/object-oriented-programming/add-methods-after-inheritance.md @@ -79,23 +79,55 @@ assert(beagle.constructor === Dog); `beagle.eat()` 應該記錄字符串 `nom nom nom` ```js -console.log = function (msg) { - throw msg; -}; -assert.throws(() => beagle.eat(), 'nom nom nom'); +capture(); +beagle.eat(); +uncapture(); +assert(logOutput == 'nom nom nom'); ``` `beagle.bark()` 應該將字符串 `Woof!` 打印到控制檯 ```js -console.log = function (msg) { - throw msg; -}; -assert.throws(() => beagle.bark(), 'Woof!'); +capture(); +beagle.bark(); +uncapture(); +assert(logOutput == 'Woof!'); ``` # --seed-- +## --before-user-code-- + +```js +var logOutput = ""; +var originalConsole = console +function capture() { + var nativeLog = console.log; + console.log = function (message) { + logOutput = message; + if(nativeLog.apply) { + nativeLog.apply(originalConsole, arguments); + } else { + var nativeMsg = Array.prototype.slice.apply(arguments).join(' '); + nativeLog(nativeMsg); + } + }; +} + +function uncapture() { + console.log = originalConsole.log; +} + +capture(); +``` + +## --after-user-code-- + +```js +uncapture(); +(function() { return logOutput || "console.log never called"; })(); +``` + ## --seed-contents-- ```js diff --git a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md index 643d3befd5d..21093512a8c 100644 --- a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md @@ -8,7 +8,7 @@ dashedName: build-a-25--5-clock # --description-- -**目標:** 構建一個應用,功能和 https://codepen.io/freeCodeCamp/full/XpKrrW 類似。 +**Objective:** Build an app that is functionally similar to this: https://25--5-clock.freecodecamp.rocks. 完成以下需求,並且通過所有測試。 可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 diff --git a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md index f3fb2b74390..46bc000a2e2 100644 --- a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md +++ b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md @@ -8,7 +8,7 @@ dashedName: build-a-drum-machine # --description-- -**目標:** 構建一個應用,功能和 https://codepen.io/freeCodeCamp/full/MJyNMd 類似。 +**Objective:** Build an app that is functionally similar to this: https://drum-machine.freecodecamp.rocks/. 完成以下需求,並且通過所有測試。 可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 diff --git a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md index e0de9e3ab07..51cf65eeebc 100644 --- a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md +++ b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md @@ -8,7 +8,7 @@ dashedName: build-a-javascript-calculator # --description-- -**目標:** 構建一個應用,功能和 https://codepen.io/freeCodeCamp/full/wgGVVX 類似。 +**Objective:** Build an app that is functionally similar to this: https://javascript-calculator.freecodecamp.rocks/. 完成以下需求,並且通過所有測試。 可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 diff --git a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md index 8e235b6e320..385221aecf0 100644 --- a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md +++ b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md @@ -8,7 +8,7 @@ dashedName: build-a-markdown-previewer # --description-- -**目標:** 構建一個應用,功能和 https://codepen.io/freeCodeCamp/full/GrZVVO 類似。 +**Objective:** Build an app that is functionally similar to this: https://markdown-previewer.freecodecamp.rocks/. 完成以下需求,並且通過所有測試。 可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 diff --git a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md index ddd6da04890..d2656cd7cac 100644 --- a/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md +++ b/curriculum/challenges/chinese-traditional/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md @@ -8,7 +8,7 @@ dashedName: build-a-random-quote-machine # --description-- -**目標:** 構建一個應用,功能和 https://codepen.io/freeCodeCamp/full/qRZeGZ 類似。 +**Objective:** Build an app that is functionally similar to this: https://random-quote-machine.freecodecamp.rocks/. 完成以下需求,並且通過所有測試。 可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 diff --git a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md index fea3ec04265..01b1d522cc7 100644 --- a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md +++ b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md @@ -8,9 +8,9 @@ dashedName: visualize-data-with-a-bar-chart # --description-- -**目標:** 在 [CodePen.io](https://codepen.io) 上實現一個功能類似 的 App。 +**Objective:** Build an app that is functionally similar to this: https://bar-chart.freecodecamp.rocks. -在滿足以下[需求](https://en.wikipedia.org/wiki/User_story)並能通過所有測試的前提下, 你可以根據自己的喜好來美化你的 app。 +完成以下需求,並且通過所有測試。 使用你需要的任何庫或 API。 賦予它你自己的個人風格。 你可以使用 HTML、JavaScript、CSS、以及基於 svg 的 D3 可視化庫來完成這個挑戰。 該任務需要使用 D3 的座標軸屬性生成座標軸,這個屬性會自動生成沿軸的刻度。 通過 D3 測試需要這些刻度,因爲它們的位置被用來確定繪製元素的對齊方式。 你可以在這裏 獲取關於生成座標軸的信息。 每次測試查詢的元素都必須是非虛擬 DOM。 如果你使用了前端框架(例如 Vue),那麼對於動態的內容測試結果可能不準確。 我們希望最終能夠兼容這些框架,但 D3 項目目前還不支持它們。 @@ -42,7 +42,7 @@ dashedName: visualize-data-with-a-bar-chart 以下是完成此項目所需的數據: `https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/GDP-data.json` -你可以使用 CodePen 模板來創建你的項目,點擊 `Save` 即可創建你的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. +你可以使用 CodePen 模版創建你的新項目,點擊 `Save` 即可創建你的新項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. 當你完成了本項目,並且該項目所有測試運行通過,請提交項目的 URL。 diff --git a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md index 628f636436e..26d8a6e9973 100644 --- a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md +++ b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md @@ -8,9 +8,9 @@ dashedName: visualize-data-with-a-choropleth-map # --description-- -**目標:** 在 [CodePen.io](https://codepen.io) 上實現一個功能類似 的 App。 +**Objective:** Build an app that is functionally similar to this: https://choropleth-map.freecodecamp.rocks. -在滿足以下[需求](https://en.wikipedia.org/wiki/User_story)並能通過所有測試的前提下, 你可以根據自己的喜好來美化你的 app。 +完成以下需求,並且通過所有測試。 你可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 你可以使用 HTML、JavaScript、CSS、以及基於 svg 的 D3 可視化庫來完成這個挑戰。 每次測試查詢的元素都必須是非虛擬 DOM。 如果你使用了前端框架(例如 Vue),那麼對於動態的內容測試結果可能不準確。 我們希望最終能夠兼容這些框架,但 D3 項目目前還不支持它們。 @@ -41,7 +41,7 @@ dashedName: visualize-data-with-a-choropleth-map - **US Education Data:** `https://cdn.freecodecamp.org/testable-projects-fcc/data/choropleth_map/for_user_education.json` - **US County Data:** `https://cdn.freecodecamp.org/testable-projects-fcc/data/choropleth_map/counties.json` -你可以使用 CodePen 模板來創建你的項目,點擊 `Save` 即可創建你的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. +你可以使用這份 CodePen 模版來創建你的新項目,點擊 `Save` 即可創建屬於你自己的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. 當你完成了本項目,並且該項目所有測試運行通過,請提交項目的 URL。 diff --git a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md index e69236fb536..408c09d3712 100644 --- a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md +++ b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md @@ -8,9 +8,9 @@ dashedName: visualize-data-with-a-heat-map # --description-- -**目標:** 在 [CodePen.io](https://codepen.io) 上實現一個功能類似 的 App。 +**Objective:** Build an app that is functionally similar to this: https://heat-map.freecodecamp.rocks. -在滿足以下[需求](https://en.wikipedia.org/wiki/User_story)並能通過所有測試的前提下, 你可以根據自己的喜好來美化你的 app。 +完成以下需求,並且通過所有測試。 你可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 你可以使用 HTML、JavaScript、CSS、以及基於 svg 的 D3 可視化庫來完成這個挑戰。 每次測試查詢的元素都必須是非虛擬 DOM。 如果你使用了前端框架(例如 Vue),那麼對於動態的內容測試結果可能不準確。 我們希望最終能夠兼容這些框架,但 D3 項目目前還不支持它們。 @@ -50,7 +50,7 @@ dashedName: visualize-data-with-a-heat-map 以下是完成此項目所需的數據:`https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/global-temperature.json` -你可以使用這個 CodePen 模板來創建你的項目,點擊 `Save` 即可創建你的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. +你可以使用 CodePen 模版創建你的新項目,點擊 `Save` 即可創建你的新項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. 當你完成了本項目,並且該項目所有測試運行通過,請提交項目的 URL。 diff --git a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md index 4066a98d892..7948ab49d5d 100644 --- a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md +++ b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md @@ -8,9 +8,9 @@ dashedName: visualize-data-with-a-scatterplot-graph # --description-- -**目標:** 在 [CodePen.io](https://codepen.io) 上實現一個功能類似 的 App。 +**Objective:** Build an app that is functionally similar to this: https://scatterplot-graph.freecodecamp.rocks. -在滿足以下[需求](https://en.wikipedia.org/wiki/User_story)並能通過所有測試的前提下, 你可以根據自己的喜好來美化你的 app。 +完成以下需求,並且通過所有測試。 你可以使用你需要的任何庫或 API。 賦予它你自己的個人風格。 你可以使用 HTML、JavaScript、CSS、以及基於 svg 的 D3 可視化庫來完成這個挑戰。 該任務需要使用 D3 的座標軸屬性生成座標軸,這個屬性會自動生成沿軸的刻度。 這些刻度是通過 D3 測試所必需的,因爲它們的位置是用來確定圖表元素的對齊方式。 你可以在這裏 獲取關於生成座標軸的信息。 每次測試查詢的元素都必須是非虛擬 DOM。 如果你使用了前端框架(例如 Vue),因爲內容是動態渲染的,試結果可能不準確。 我們希望最終能夠兼容這些框架,但 D3 框架目前還不支持它們。 @@ -46,7 +46,7 @@ dashedName: visualize-data-with-a-scatterplot-graph 以下是完成此項目所需的數據:`https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/cyclist-data.json` -你可以使用這個 CodePen 模板來創建你的項目,點擊 `Save` 即可創建你的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. +你可以使用 CodePen 模版創建你的新項目,點擊 `Save` 即可創建你的新項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. 當你完成了本項目,並且項目通過所有測試,請提交項目的 URL。 diff --git a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md index 5e570d2cce1..9bc8283a0f2 100644 --- a/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md +++ b/curriculum/challenges/chinese-traditional/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md @@ -8,9 +8,9 @@ dashedName: visualize-data-with-a-treemap-diagram # --description-- -**目標:** 在 [CodePen.io](https://codepen.io) 上實現一個功能類似 的 App。 +**Objective:** Build an app that is functionally similar to this: https://treemap-diagram.freecodecamp.rocks. -在滿足以下[需求](https://en.wikipedia.org/wiki/User_story)並能通過所有測試的前提下, 你可以根據自己的喜好來美化你的 app。 +完成以下需求,並且通過所有測試。 使用你需要的任何庫或 API。 賦予它你自己的個人風格。 你可以使用 HTML、JavaScript、CSS、以及基於 svg 的 D3 可視化庫來完成這個挑戰。 該任務需要使用 D3 的座標軸屬性生成座標軸,這個屬性會自動生成沿軸的刻度。 這些刻度是通過 D3 測試所必需的,因爲它們的位置是用來確定圖表元素的對齊方式。 你可以在這裏 獲取關於生成座標軸的信息。 每次測試查詢的元素都必須是非虛擬 DOM。 如果你使用了前端框架(例如 Vue),那麼對於動態的內容測試結果可能不準確。 我們希望最終能夠兼容這些框架,但 D3 項目目前還不支持它們。 @@ -42,7 +42,7 @@ dashedName: visualize-data-with-a-treemap-diagram - **Movie Sales:** `https://cdn.freecodecamp.org/testable-projects-fcc/data/tree_map/movie-data.json` - **Video Game Sales:** `https://cdn.freecodecamp.org/testable-projects-fcc/data/tree_map/video-game-sales-data.json` -你可以使用 CodePen 模板來創建你的項目,點擊 `Save` 即可創建你的項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. +你可以使用 CodePen 模版創建你的新項目,點擊 `Save` 即可創建你的新項目。 或者你可以在任何你喜歡的環境中使用以下 CDN 鏈接來運行測試:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. 當你完成了本項目,並且該項目所有測試運行通過,請提交項目的 URL。 diff --git a/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/mongodb-and-mongoose/create-a-model.md b/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/mongodb-and-mongoose/create-a-model.md index 99acff55520..dcbbb361036 100644 --- a/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/mongodb-and-mongoose/create-a-model.md +++ b/curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/mongodb-and-mongoose/create-a-model.md @@ -10,9 +10,9 @@ dashedName: create-a-model **C** RUD 第一小節——CREATE -首先,我們需要一個 Schema, 每一個 Schema 都對應一個 MongoDB 的 collection, 並且在相應的 collection 裏定義 documents 的“樣子”。 Schema 用於組成模型(Model), 我們甚至可以通過嵌套 Schema 來創建複雜的模型。目前我們先從簡。 我們可以根據模型創建實例,模型實例化後的對象稱爲 documents。 +First of all, we need a Schema. 每一個 Schema 都對應一個 MongoDB 的 collection, 並且在相應的 collection 裏定義 documents 的“樣子”。 Schemas are building blocks for Models. They can be nested to create complex models, but in this case, we'll keep things simple. 我們可以根據模型創建實例,模型實例化後的對象稱爲 documents。 -Replit 是一個真實的服務器,在其中,通過 handler 函數和數據庫交互。 這些函數會在特定事件(比如有人調用了我們的服務器 API)發生時執行。 接下來的挑戰題目即是以此爲基礎。 `done()` 是一個回調函數,它的作用是在一個異步操作(比如對數據庫進行插入、查詢、更新或刪除)執行完成時,通知我們可以繼續執行後續的其它代碼。 這與 Node.js 中的處理方式十分類似,在 Node.js 中,我們會在(異步操作)成功時調用 `done(null, data)`,在失敗時調用 `done(err)`。 +Replit is a real server, and in real servers, the interactions with the database happen in handler functions. 這些函數會在特定事件(比如有人調用了我們的服務器 API)發生時執行。 接下來的挑戰題目即是以此爲基礎。 `done()` 是一個回調函數,它的作用是在一個異步操作(比如對數據庫進行插入、查詢、更新或刪除)執行完成時,通知我們可以繼續執行後續的其它代碼。 這與 Node.js 中的處理方式十分類似,在 Node.js 中,我們會在(異步操作)成功時調用 `done(null, data)`,在失敗時調用 `done(err)`。 注意:與遠程服務器進行交互時,我們需要考慮到發生錯誤的可能! @@ -38,7 +38,7 @@ age : number favoriteFoods : array of strings (*) ``` -採用 Mongoose 基礎 schema 類型。 你如果還想添加更多的鍵,就請使用 required 或 unique 等簡單的驗證器(validators),並設置默認值。 詳情請參考 [Mongoose 文檔](http://mongoosejs.com/docs/guide.html)。 +採用 Mongoose 基礎 schema 類型。 你如果還想添加更多的鍵,就請使用 required 或 unique 等簡單的驗證器(validators),並設置默認值。 查看我們的 Mongoose 文章。 請從 `personSchema` 創建一個名爲 `Person` 的 model。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-strategies.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-strategies.md index 6eb6549303a..b32a2b4ec88 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-strategies.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-strategies.md @@ -8,9 +8,9 @@ dashedName: authentication-strategies # --description-- -策略是認證用戶的一種方式。 如果你讓用戶在註冊時填寫了用戶信息,那你就可以基於這些信息進行驗證。或者也可以引入第三方登錄,如 Google 或者 Github。 對於這個項目的驗證策略,我們會採用自己搭建的方式完成。 可以[點擊這裏](http://passportjs.org/)訪問 Passport 網站,查看數以百計的策略。 +策略是認證用戶的一種方式。 如果你讓用戶在註冊時填寫了用戶信息,那你就可以基於這些信息進行驗證。或者也可以引入第三方登錄,如 Google 或者 Github。 在這個項目中,我們將使用 Passport 中間件。 Passport 提供了一套全面的策略,支持使用用戶名和密碼、GitHub、谷歌等進行認證。 -引入 `passport-local@~1.0.0` 作爲依賴,然後將它添加到服務器,就像這樣:`const LocalStrategy = require('passport-local');` +`passport-local@~1.0.0` has already been added as a dependency, so add it to your server as follows: `const LocalStrategy = require('passport-local');` 然後,需要讓 passport **使用**一個實例化的 LocalStrategy 對象,這個對象的一些設置已完成。 請注意,接下來的所有代碼都應寫在連接數據庫的回調中,因爲它們的執行都依賴數據庫。 @@ -34,7 +34,7 @@ passport.use(new LocalStrategy( 在下一個挑戰中,我們會基於表單數據調用上面寫好的驗證策略。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到任何問題,可以參考[這裏](https://gist.github.com/camperbot/53b495c02b92adeee0aa1bd3f3be8a4b)的答案。 +完成上述要求後,請提交你的頁面鏈接。 如果你在運行時遇到錯誤,可以點擊此處查看已執行項目的當前進度。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md index 2b069246fe6..e1d14e15d4d 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md @@ -10,7 +10,7 @@ dashedName: authentication-with-socket-io 目前,你還無法確定連接到服務器的用戶身份。 雖然 `req.user` 包含用戶信息,但這個只在用戶直接與服務器交互時產生。當用戶通過 web socket 與服務器連接時,由於不存在 `req` 對象,我們就無法獲取用戶數據。 解決這個問題的方法之一是通過讀取和解析請求中包含 passport session 的 cookie,然後反序列化,進而獲取用戶信息對象。 幸運的是,NPM 上有可以讓這個複雜的流程簡單化的庫。 -添加 `passport.socketio@~3.7.0`、`connect-mongo@~3.2.0`、`cookie-parser@~1.4.5` 作爲依賴,把它們分別賦值給 `passportSocketIo`、`MongoStore`、`cookieParser`。 同時,我們需要從之前引入的 `express-session` 中開闢新的內存空間, 就像這樣: +`passport.socketio@~3.7.0`, `connect-mongo@~3.2.0`, and `cookie-parser@~1.4.5` have already been added as dependencies. Require them as `passportSocketIo`, `MongoStore`, and `cookieParser` respectively. Also, we need to initialize a new memory store, from `express-session` which we previously required. It should look like this: ```js const MongoStore = require('connect-mongo')(session); @@ -65,7 +65,7 @@ console.log('user ' + socket.request.user.name + ' connected'); 它將在服務器控制檯記錄已連接的用戶! -完成以上要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254)的答案。 +完成以上要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project up to this point https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules.md index a117727bcf7..b14d397bf59 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/clean-up-your-project-with-modules.md @@ -26,7 +26,7 @@ module.exports = function (app, myDataBase) { 現在,我們來把 server.js 中與驗證相關的代碼分離到 auth.js 中,例如序列化,設置驗證策略等。 請正確添加依賴,並在 server.js 中調用 `auth(app, myDataBase)`。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/2d06ac5c7d850d8cf073d2c2c794cc92)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out an example of the completed project. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md index 0bc1bdf733a..ad93e666f65 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md @@ -38,7 +38,7 @@ socket.on('user count', function(data) { 現在你可以嘗試啓動你的 app 並登錄,你會看到在客戶端的控制檯打印出了 “1”,這就表示目前連接到服務器的用戶數爲 1。 你可以試着通過打開多個 app 來驗證數量是否會增加。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/28ef7f1078f56eb48c7b1aeea35ba1f5)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/create-new-middleware.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/create-new-middleware.md index 56041c62957..ba267e8e475 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/create-new-middleware.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/create-new-middleware.md @@ -31,7 +31,7 @@ app }); ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/ae49b8778cab87e93284a91343da0959)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md index 88c9d2b5934..eab72ab1823 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md @@ -22,7 +22,7 @@ socket.on('disconnect', () => { **注意:**和 `'disconnect'` 類似,所有 socket 可以發送到服務器的事件,我們都應該在有 “socket” 定義的連接監聽器裏處理。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/ab1007b76069884fb45b215d3c4496fa)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/hashing-your-passwords.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/hashing-your-passwords.md index 812540f591f..42b5b3d0243 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/hashing-your-passwords.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/hashing-your-passwords.md @@ -10,7 +10,7 @@ dashedName: hashing-your-passwords 回過頭來看信息安全,你也許記得在數據庫中存儲明文密碼是*絕對*禁止的。 現在,我們需要引入 BCrypt 來解決這個問題。 -添加 `bcrypt@~5.0.0` 作爲依賴,並在服務端使用它。 你需要在兩個步驟中使用哈希運算:註冊和保存新賬戶,以及登錄時檢查密碼是否正確。 +`bcrypt@~5.0.0` has already been added as a dependency, so require it in your server. 你需要在兩個步驟中使用哈希運算:註冊和保存新賬戶,以及登錄時檢查密碼是否正確。 目前處理註冊的路由中,我們是這樣把密碼添加到數據庫的:`password: req.body.password`。 保存哈希值的一個簡單方式是在數據庫邏輯中添加 `const hash = bcrypt.hashSync(req.body.password, 12);`,然後把 `req.body.password` 替換爲 `password: hash`。 @@ -24,7 +24,7 @@ if (!bcrypt.compareSync(password, user.password)) { 當你需要存儲密碼時,這樣做可以有效地提升網站的安全性。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/dc16cca09daea4d4151a9c36a1fab564)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md index 4cff542563f..119469df9d5 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md @@ -24,7 +24,7 @@ h2.center#welcome Welcome, #{username}! a(href='/logout') Logout ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/136b3ad611cc80b41cab6f74bb460f6a)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-use-passport-strategies.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-use-passport-strategies.md index 1ed7d4edfff..10ab146d70b 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-use-passport-strategies.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/how-to-use-passport-strategies.md @@ -18,7 +18,7 @@ dashedName: how-to-use-passport-strategies 這時,由於我們還沒有實現註冊功能,如果你在表單裏輸入了用戶名和密碼,路由將會重定向到主頁 `/`,在服務端將會打印 `'User {USERNAME} attempted to log in.'`。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/7ad011ac54612ad53188b500c5e99cb9)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md index c67fbaefd80..b3989f852ce 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md @@ -10,7 +10,7 @@ dashedName: implement-the-serialization-of-a-passport-user 截至目前,我們還沒有配置完數據庫,因此還無法加載用戶數據。 實現這個的方式很多,但對於我們的項目,一旦服務器啓動,那麼只要有 app 實例在運行,數據庫就應一直處於連接狀態。 爲此,你需要在環境變量 `MONGO_URI` 中添加你的數據庫地址(比如:`mongodb+srv://:@cluster0-jvwxi.mongodb.net/?retryWrites=true&w=majority`)。 我們會在 `connection.js` 文件中調用它。 -*你可以在 [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) 創建一個免費的數據庫。* +*If you are having issues setting up a free database on MongoDB Atlas, check out tutorial.* 現在我們想要連接到數據庫,然後開始監聽請求。 這樣做的目的是在連接數據庫之前或者出現數據庫錯誤時,不接收任何請求。 要實現這一點,你需要在以下代碼中包含序列化和應用的路由: @@ -40,7 +40,7 @@ myDB(async client => { 記得要取消 `deserializeUser` 中 `myDataBase` 的註釋,並把 `doc` 添加到 `done(null, null)`。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/175f2f585a2d8034044c7e8857d5add7)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii.md index c9428da7859..78d443e59b0 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-ii.md @@ -8,11 +8,13 @@ dashedName: implementation-of-social-authentication-ii # --description-- -設置 GitHub 驗證的最後一步是創建策略本身。 爲此,你需要在項目中添加 `passport-github@~1.1.0` 依賴,並在 `auth.js` 中請求它,作爲 `GithubStrategy`,像這樣:`const GitHubStrategy = require('passport-github').Strategy;`。 別忘了請求和配置 `dotenv`,使用你的環境變量。 +設置 GitHub 驗證的最後一步是創建策略本身。 `passport-github@~1.1.0` has already been added as a dependency, so require it in your `auth.js` file as `GithubStrategy` like this: `const GitHubStrategy = require('passport-github').Strategy;`. 別忘了請求和配置 `dotenv`,使用你的環境變量。 -爲了設置 GitHub 策略,我們需要在 Passport 中使用實例化的 `GitHubStrategy`,它可以接收兩個參數:一個對象(包括 `clientID`、`clientSecret` 和 `callbackURL`),以及一個回調函數。在這個回調函數中,我們要處理驗證成功時,判斷用戶是否已經在數據庫中存在的邏輯,以及在用戶數據庫對象中最初保存哪些字段。 這種處理方式適用於絕大部分第三方驗證策略,但有些策略會需要我們提供更多的信息,詳情請參考相關策略的 GitHub README。 例如,Google 的驗證策略會要求你提供一個 *scope*,用於標示用戶成功登錄後,你需要從返回的對象中獲取那些信息。以及,這也需要經過用戶同意,你纔可以獲取到。 你可以在[這裏](https://github.com/jaredhanson/passport-github/)瞭解當前我們使用的驗證策略的用法,不過我們也會在 freeCodeCamp 課程中進行詳細講解。 +爲了設置 GitHub 策略,我們需要在 Passport 中使用實例化的 `GitHubStrategy`,它可以接收兩個參數:一個對象(包括 `clientID`、`clientSecret` 和 `callbackURL`),以及一個回調函數。在這個回調函數中,我們要處理驗證成功時,判斷用戶是否已經在數據庫中存在的邏輯,以及在用戶數據庫對象中最初保存哪些字段。 這種處理方式適用於絕大部分第三方驗證策略,但有些策略會需要我們提供更多的信息,詳情請參考相關策略的 GitHub README。 例如,Google 的驗證策略會要求你提供一個 *scope*,用於標示用戶成功登錄後,你需要從返回的對象中獲取那些信息。以及,這也需要經過用戶同意,你纔可以獲取到。 -你的新策略應該這樣去實現: +The current strategy we are implementing authenticates users using a GitHub account and OAuth 2.0 tokens. The client ID and secret obtained when creating an application are supplied as options when creating the strategy. The strategy also requires a `verify` callback, which receives the access token and optional refresh token, as well as `profile` which contains the authenticated user's GitHub profile. The `verify` callback must call `cb` providing a user to complete authentication. + +Here's how your new strategy should look at this point: ```js passport.use(new GitHubStrategy({ @@ -27,13 +29,13 @@ passport.use(new GitHubStrategy({ )); ``` -目前,你的驗證部分不會成功。由於沒有數據庫的邏輯和回調函數,你的代碼目前還會報錯。但如果你試一試,就可以在控制檯裏看到輸出了你的 GitHub 個人信息。 +Your authentication won't be successful yet, and it will actually throw an error without the database logic and callback, but it should log your GitHub profile to your console if you try it! -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/ff3a1166684c1b184709ac0bee30dee6)的答案。 +Submit your page when you think you've got it right. If you're running into errors, you can check out the project completed up to this point. # --hints-- -應正確添加依賴 passport-github。 +passport-github dependency should be added. ```js (getUserInput) => @@ -52,7 +54,7 @@ passport.use(new GitHubStrategy({ ); ``` -應正確請求依賴 passport-github。 +passport-github should be required. ```js (getUserInput) => @@ -70,7 +72,7 @@ passport.use(new GitHubStrategy({ ); ``` -到目前爲止,Github 策略應正確設置。 +GitHub strategy should be setup correctly thus far. ```js (getUserInput) => diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii.md index 98185beacac..d278ad9897b 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication-iii.md @@ -42,7 +42,7 @@ myDataBase.findOneAndUpdate( 你現在應該可以登錄你的應用了,試試吧。 -完成上述要求後,你可以在下方提交你的頁面鏈接。 如果你遇到了問題,可以參考 [這裏](https://gist.github.com/camperbot/183e968f0e01d81dde015d45ba9d2745) 的答案。 +完成上述要求後,你可以在下方提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication.md index d6723354c39..8d2b0f776fe 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/implementation-of-social-authentication.md @@ -18,7 +18,7 @@ dashedName: implementation-of-social-authentication 在 OAuth 驗證策略中,我們至少需要提供 *Client ID* 和 *Client Secret*,這樣第三方平臺就會獲悉驗證請求的來源,以及這個來源是否有效。 爲此,需要去我們使用的第三方驗證平臺(比如 GitHub)獲取這兩個字段的值。 注意,我們獲取到的這個值是唯一的,僅對我們的當前 app 有效——**因此,千萬不要分享給別人**,更不要上傳到公共倉庫或者直接寫在代碼裏。 通常,我們會把它們放在 `.env` 文件裏,並通過 `process.env.GITHUB_CLIENT_ID` 獲取。 對於這次挑戰,我們將會使用 GitHub 作爲驗證平臺。 -首先,你需要進入賬戶設置裏的 “developer settings(開發者設置)”板塊,在 '[OAuth applications](https://github.com/settings/developers)' 獲取 *Client ID and Secret*。 點擊 “Register a new application(註冊一個新的應用)”,設置你的應用名稱,然後把你的 Replit 主頁地址(**不是項目代碼的 url**)粘貼到 Homepage URL。然後,回調 url 需要設置成上面 Homepage URL 裏你粘貼的地址,但後面要加上 `/auth/github/callback`。 這樣在用戶通過 Github 驗證後才能跳轉到我們指定的頁面。 在你的 `.env` 文件裏將返回的信息保存爲 `'GITHUB_CLIENT_ID'` 和 `'GITHUB_CLIENT_SECRET'`。 +Obtaining your *Client ID and Secret* from GitHub is done in your account profile settings under 'developer settings', then 'OAuth applications'. 點擊 “Register a new application(註冊一個新的應用)”,設置你的應用名稱,然後把你的 Replit 主頁地址(**不是項目代碼的 url**)粘貼到 Homepage URL。然後,回調 url 需要設置成上面 Homepage URL 裏你粘貼的地址,但後面要加上 `/auth/github/callback`。 這樣在用戶通過 Github 驗證後才能跳轉到我們指定的頁面。 在你的 `.env` 文件裏將返回的信息保存爲 `'GITHUB_CLIENT_ID'` 和 `'GITHUB_CLIENT_SECRET'`。 在你的 `routes.js` 文件中,添加 `showSocialAuth: true` 到主頁路由,在 `showRegistration: true` 的後面。 然後,爲 `/auth/github` 和 `/auth/github/callback` 創建兩個接收 GET 請求的路由。 第一個只需要通過調用 passport 來驗證 `'github'`。 第二個應該調用 passport 來驗證 `'github'`,但需要在失敗時跳轉回主頁 `/`,成功時跳轉到用戶頁面 `/profile`(跳轉的邏輯與上一個項目中的邏輯一樣)。 @@ -31,7 +31,7 @@ app.route('/login') }); ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/1f7f6f76adb178680246989612bea21e)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project up to this point https://gist.github.com/camperbot/1f7f6f76adb178680246989612bea21e. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/logging-a-user-out.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/logging-a-user-out.md index 621b0b1c4cb..b1523952694 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/logging-a-user-out.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/logging-a-user-out.md @@ -30,11 +30,11 @@ app.use((req, res, next) => { }); ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/c3eeb8a3ebf855e021fd0c044095a23b)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- -`req.Logout` 應在 `/logout` 路由中調用。 +`req.logout()` should be called in your `/logout` route. ```js (getUserInput) => diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md index 2236a4bf810..a2a47f0bd01 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md @@ -47,7 +47,7 @@ app.route('/register') ); ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/b230a5b3bbc89b1fa0ce32a2aa7b083e)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. **注意:**接下來的挑戰可能會在運行 *picture-in-picture*(畫中畫)模式的瀏覽器中出現問題。 如果你使用的線上 IDE 提供在 IDE 內預覽 app 的功能,請考慮打開新的標籤頁預覽。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/send-and-display-chat-messages.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/send-and-display-chat-messages.md index 99946aca2f9..32bdcaf76bd 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/send-and-display-chat-messages.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/send-and-display-chat-messages.md @@ -28,7 +28,7 @@ socket.emit('chat message', messageToSend); 至此,我們已經完成發送信息到所有客戶端的功能。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/d7af9864375207e254f73262976d2016)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md index 4bc7345ac7e..5891eee6470 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md @@ -12,7 +12,7 @@ dashedName: serialization-of-a-user-object 我們需要用到序列化和反序列化的方法來進行配置。 passport 爲我們提供了 `passport.serializeUser( OURFUNCTION )` 和 `passport.deserializeUser( OURFUNCTION )` 兩個方法。 -`serializeUser` 方法接收兩個參數,分別是表示用戶的對象和一個回調函數。 其中,回調函數的返回值應爲這個用戶的唯一標識符:最簡單的寫法就是讓它返回用戶的 `_id`。 它應當是唯一的,是由 MongoDB 產生的。 類似地,`deserializeUser` 也接收兩個參數,分別是在序列化時生成的標識符以及一個回調函數。在回調函數裏,我們需要根據根據傳入的標識符(比如 \_id)返回表示用戶的對象。 爲了在 MongoDB 中通過 query(查詢語句)獲取 `_id` 字段,首先我們需要創建 `const ObjectID = require('mongodb').ObjectID;`;然後調用它:`new ObjectID(THE_ID)`。 確保添加 `mongodb@~3.6.0` 作爲依賴項。 你可以在下面的例子中看到: +`serializeUser` 方法接收兩個參數,分別是表示用戶的對象和一個回調函數。 其中,回調函數的返回值應爲這個用戶的唯一標識符:最簡單的寫法就是讓它返回用戶的 `_id`。 它應當是唯一的,是由 MongoDB 產生的。 類似地,`deserializeUser` 也接收兩個參數,分別是在序列化時生成的標識符以及一個回調函數。在回調函數裏,我們需要根據根據傳入的標識符(比如 \_id)返回表示用戶的對象。 爲了在 MongoDB 中通過 query(查詢語句)獲取 `_id` 字段,首先我們需要創建 `const ObjectID = require('mongodb').ObjectID;`;然後調用它:`new ObjectID(THE_ID)`。 `mongodb@~3.6.0` has already been added as a dependency. 你可以在下面的例子中看到: ```js passport.serializeUser((user, done) => { @@ -28,7 +28,7 @@ passport.deserializeUser((id, done) => { 因此,在我們在下一步中配置 DB 前,`deserializeUser` 會拋出錯誤。所以,現在請先註釋掉上面的代碼,在 `deserializeUser` 中僅調用 `done(null, null)` 即可。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考 [這裏](https://gist.github.com/camperbot/7068a0d09e61ec7424572b366751f048) 的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md index 343a464008e..3a24e4382d9 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md @@ -10,25 +10,25 @@ dashedName: set-up-a-template-engine 你可以採用下面的任意一種方式完成這些挑戰: -- 克隆[這個 GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-advancednode/),在本地完成這些挑戰。 -- 使用[我們的 Replit 上的初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-advancednode)來完成項目。 +- Clone this GitHub repo and complete these challenges locally. +- Use our Replit starter project to complete these challenges. - 使用一個你選擇的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 你可以在應用的模版引擎中使用靜態模板文件(如那些寫在 *Pug* 裏的)。 在運行時,模版引擎會用服務端的真實數據替換掉模版文件中的變量, 然後將模版轉譯成發送給客戶端的 HTML 靜態文件。 這樣可以輕鬆地構造 HTML 頁面,允許在頁面直接顯示變量內容而不需要從客戶端發送 API 請求。 -在 `package.json` 文件中添加依賴 `pug@~3.0.0`。 +`pug@~3.0.0` has already been installed, and is listed as a dependency in your `package.json` file. Express 需要知道你正在使用哪個模板引擎。 我們將使用 `set` 方法來分配 `pug` 作爲 `view engine` 屬性的值: `app.set('view engine', 'pug')`。 -在正確渲染 `views/pug` 目錄中的索引文件之後,加載頁面。 +Your page will be blank until you correctly render the index file in the `views/pug` directory. -修改 `/` 路由中 `res.render()` 聲明的參數爲 `views/pug` 目錄的文件路徑。 這個路徑可以是相對路徑(相對於 views),也可以是絕對路徑,不需要文件擴展。 +To render the `pug` template, you need to use `res.render()` in the `/` route. Pass the file path to the `views/pug` directory as the argument to the method. The path can be a relative path (relative to views), or an absolute path, and does not require a file extension. -如果一切順利,那麼你的應用主頁不會再顯示信息 “`Pug template is not defined.`”,而是會顯示一個信息表明你已經成功渲染 Pug 模版! +If all went as planned, your app home page will no longer be blank and will display a message indicating you've successfully rendered the Pug template! -完成以上要求後,請提交你的頁面鏈接。 如果你遇到問題,可以查看[這裏](https://gist.github.com/camperbot/3515cd676ea4dfceab4e322f59a37791)的答案。 +完成以上要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-passport.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-passport.md index dc4a0805bc5..55f6d64fbfb 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-passport.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-passport.md @@ -8,15 +8,13 @@ dashedName: set-up-passport # --description-- -現在我們來創建 *Passport*,最終我們需要用它來實現用戶註冊和登錄。 除了 Passport,我們還會用 Express-session 來處理 session(會話)。 在客戶端,我們可以用這個中間件把 session id 儲存到 cookie。同時,我們可以在服務器上通過這個 id 訪問 session 數據。 通過這種方式,我們無需把用戶的個人賬號信息存到 cookie,來完成用戶的驗證。只需要用這個 id 作爲 *key* 來訪問服務器上用戶的數據即可。 +現在我們來創建 *Passport*,最終我們需要用它來實現用戶註冊和登錄。 除了 Passport,我們還會用 Express-session 來處理 session(會話)。 Express-session has a ton of advanced features you can use, but for now we're just going to use the basics! Using this middleware saves the session id as a cookie in the client and allows us to access the session data using that id on the server. This way we keep personal account information out of the cookie used by the client to verify to our server they are authenticated and just keep the *key* to access the data stored on the server. -爲了在你的項目中使用 Passport,首先你需要在 package.json 文件中添加依賴: `passport@~0.4.1` +`passport@~0.4.1` and `express-session@~1.17.1` are already installed, and are both listed as dependencies in your `package.json` file. -此外,還需要添加 Express-session 作爲依賴。 Express-session 有許多高級特性,但我們暫時只需要瞭解其基礎功能。 `express-session@~1.17.1` +You will need to set up the session settings now and initialize Passport. Be sure to first create the variables 'session' and 'passport' to require 'express-session' and 'passport' respectively. -現在,我們需要配置 session 並初始化 Passport。 請先創建變量 “session” 和 “passport” 來分別引入 “express-session” 和 “passport”。 - -爲了讓 express 應用可以使用 session,我們需要添加一些基礎選項。 請在 .env 文件中添加字段 “SESSION_SECRET”,並給它賦一個隨機值, 便於加密 cookie、計算哈希。 +To set up your express app to use the session we'll define just a few basic options. Be sure to add 'SESSION_SECRET' to your .env file and give it a random value. This is used to compute the hash used to encrypt your cookie! ```js app.use(session({ @@ -27,13 +25,13 @@ app.use(session({ })); ``` -還有,我們需要讓 express **使用** “passport.initialize()” 和 “passport.session()”。 (例如,`app.use(passport.initialize());`)。 +As well you can go ahead and tell your express app to **use** 'passport.initialize()' and 'passport.session()'. (For example, `app.use(passport.initialize());`) -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/4068a7662a2f9f5d5011074397d6788c)的答案。 +Submit your page when you think you've got it right. If you're running into errors, you can check out the project completed up to this point. # --hints-- -應添加 Passort 和 express-session 作爲依賴。 +Passport and Express-session should be dependencies. ```js (getUserInput) => @@ -57,7 +55,7 @@ app.use(session({ ); ``` -依賴應正確引入。 +Dependencies should be correctly required. ```js (getUserInput) => @@ -80,7 +78,7 @@ app.use(session({ ); ``` -Express app 可以使用新的依賴。 +Express app should use new dependencies. ```js (getUserInput) => @@ -103,7 +101,7 @@ Express app 可以使用新的依賴。 ); ``` -應正確設置 session 和 session secret。 +Session and session secret should be correctly set up. ```js (getUserInput) => diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md index f313aa1a121..9b779f41eac 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md @@ -10,7 +10,7 @@ dashedName: set-up-the-environment 在接下來的挑戰中,我們將會用到 `chat.pug` 文件。 首先,在你的 `routes.js` 文件中爲 `/chat` 添加一個處理 GET 請求的路由,並給它傳入 `ensureAuthenticated`。在回調函數中,我們需要讓它渲染 `chat.pug` 文件,並在響應中包含 `{ user: req.user }` 信息。 現在,請修改 `/auth/github/callback` 路由,讓它可以像這樣設置 user_id:`req.session.user_id = req.user.id`,並在設置完成後重定向至 `/chat`。 -添加 `socket.io@~2.3.0` 作爲依賴項,並且在你的服務器中和 `http` (內置在 Nodejs 中)一起導入/實例化。具體如下: +`socket.io@~2.3.0` has already been added as a dependency, so require/instantiate it in your server as follows with `http` (comes built-in with Nodejs): ```javascript const http = require('http').createServer(app); @@ -19,7 +19,7 @@ const io = require('socket.io')(http); 現在我們的 *express 應用*已經包含了 *http* 服務,接下來我們需要監聽 *http* 服務的事件。 爲此,我們需要把 `app.listen` 更新爲 `http.listen`。 -需要處理的第一件事是監聽客戶端的新連接。 on 關鍵字就是監聽這個特定事件。 它需要 2 個參數:一個包含所發出事件標題的字符串,以及一個用於傳遞數據的函數。 在連接監聽器中,我們用 *socket* 來代表它所包含的數據。 socket 就是指已連接到服務器的客戶端。 +需要處理的第一件事是監聽客戶端的新連接。 on 關鍵字就是監聽這個特定事件。 It requires 2 arguments: a string containing the title of the event that's emitted, and a function with which the data is passed through. 在連接監聽器中,我們用 *socket* 來代表它所包含的數據。 socket 就是指已連接到服務器的客戶端。 爲了可以監聽服務器的連接事件,我們在數據庫連接的部分加入如下代碼: @@ -42,7 +42,7 @@ let socket = io(); **注意:**只有在連接到處於同一個 url/server 上的 socket 時,`io()`纔可以正常執行。 如果需要連接到外部的 socket,就需要這樣調用:`io.connect('URL');`。 -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/aae41cf59debc1a4755c9a00ee3859d1)的答案。 +完成上述要求後,請提交你的頁面鏈接。 If you're running into errors, you can check out the project completed up to this point. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/use-a-template-engines-powers.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/use-a-template-engines-powers.md index dc3b522e950..cce5575a5af 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/use-a-template-engines-powers.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/use-a-template-engines-powers.md @@ -12,19 +12,43 @@ dashedName: use-a-template-engines-powers 在 Pug 文件中,你可以用變量名來調用變量,比如寫成 `#{variable_name}` 來實現行內調用,或像 `p=variable_name` 把元素與變量直接寫在一起,這表示 p 元素的內容等價於這個變量。 -建議大家在 [Pug 的 README](https://github.com/pugjs/pug) 裏看看它的語法和用法,這樣你寫出的代碼會相對簡練。 另外要注意,Pug 使用縮進來表示嵌套的代碼塊。 + Pug is all about using whitespace and tabs to show nested elements and cutting down on the amount of code needed to make a beautiful site. Read the Pug documentation for more information on usage and syntax. -在 pug 的 'index.pug' 文件中,我們使用了 *title* 和 *message* 兩個變量。 + Here is an example: -爲了從服務器傳遞這些信息,你需要給 *res.render* 的第二個參數傳入一個對象,其中包含變量對應的值。 比如,如果你想傳遞對象 `{title: 'Hello', message: 'Please login'}` 到你的主頁, + ```html + + head + script(type='text/javascript'). + if (foo) bar(1 + 5); + body + if youAreUsingPug + p You are amazing + else + p Get on it! -看起來應該像這樣:`res.render(process.cwd() + '/views/pug/index', {title: 'Hello', message: 'Please login'});`。現在刷新頁面,你應該看到那些值就像在 index.pug 文件中一樣被渲染在頁面上正確的位置。 + + + + + +

You are amazing

+ + ``` -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考 [這裏](https://gist.github.com/camperbot/4af125119ed36e6e6a8bb920db0c0871) 的答案。 +Looking at our pug file `index.pug` included in your project, we used the variables `title` and `message`. + +To pass those along from our server, you will need to add an object as a second argument to your `res.render` with the variables and their values. For example, pass this object along setting the variables for your index view: `{title: 'Hello', message: 'Please login'}` + +It should look like: `res.render(process.cwd() + '/views/pug/index', {title: 'Hello', message: 'Please login'});` Now refresh your page and you should see those values rendered in your view in the correct spot as laid out in your `index.pug` file! + +Submit your page when you think you've got it right. If you're running into errors, you can check out the project completed up to this point. # --hints-- -Pug 應正確地展示變量。 +Pug should correctly render variables. ```js (getUserInput) => diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal.md index 3ce660a170c..72465c4f868 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal.md @@ -8,7 +8,7 @@ dashedName: assert-deep-equality-with--deepequal-and--notdeepequal # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit or cloned from GitHub. `deepEqual()` 斷言兩個對象是否深度相等。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements.md index a65e2471ad2..107b249b8de 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements.md @@ -8,15 +8,15 @@ dashedName: compare-the-properties-of-two-elements # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- -在 `tests/1_unit-tests.js` 中,在標有 `#8` 的 `Comparisons` 套件裏,將每個 `assert` 改成 `assert.isAbove` 或 `assert.isAtMost` 方法,讓測試通過(結果應該返回 `true`)。 不要改變傳入斷言的參數。 +Within `tests/1_unit-tests.js` under the test labelled `#8` in the `Comparisons` suite, change each `assert` to either `assert.isAbove` or `assert.isAtMost` to make the test pass (should evaluate to `true`). Do not alter the arguments passed to the asserts. # --hints-- -不應有未通過的測試 +All tests should pass. ```js (getUserInput) => @@ -30,7 +30,7 @@ dashedName: compare-the-properties-of-two-elements ); ``` -請爲第一個斷言選擇正確的方法 — `isAbove` 或 `isAtMost`。 +You should choose the correct method for the first assertion - `isAbove` vs. `isAtMost`. ```js (getUserInput) => @@ -48,7 +48,7 @@ dashedName: compare-the-properties-of-two-elements ); ``` -請爲第二個斷言選擇正確的方法 — `isAbove` 或 `isAtMost`。 +You should choose the correct method for the second assertion - `isAbove` vs. `isAtMost`. ```js (getUserInput) => @@ -62,7 +62,7 @@ dashedName: compare-the-properties-of-two-elements ); ``` -請爲第三個斷言選擇正確的方法 — `isAbove` 或 `isAtMost`。 +You should choose the correct method for the third assertion - `isAbove` vs. `isAtMost`. ```js (getUserInput) => @@ -80,7 +80,7 @@ dashedName: compare-the-properties-of-two-elements ); ``` -請爲第四個斷言選擇正確的方法 — `isAbove` 或 `isAtMost`。 +You should choose the correct method for the fourth assertion - `isAbove` vs. `isAtMost`. ```js (getUserInput) => diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md index 2e8e5a94839..71b7099db8c 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work.md @@ -10,8 +10,8 @@ dashedName: learn-how-javascript-assertions-work 你可以採用下面的任意一種方式完成這些挑戰: -- 克隆[這個 GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-mochachai/)並在本地完成項目。 -- 使用[我們的 Replit 上的初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)來完成項目。 +- Clone this GitHub repo and complete these challenges locally. +- Use our Replit starter project to complete these challenges. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md index 71ede243843..9995cdeb83d 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md @@ -8,7 +8,7 @@ dashedName: run-functional-tests-on-an-api-response-using-chai-http-iii---put-me # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 當你測試一個 `PUT` 請求時,你經常會隨同它一起發送數據。 你在 `PUT` 請求中包含的數據被稱爲請求的主體。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md index f79a74e2244..d556982e11e 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md @@ -8,7 +8,7 @@ dashedName: run-functional-tests-on-an-api-response-using-chai-http-iv---put-met # --description-- -請注意,本項目在 [這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai) 的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 這個練習與上一個類似。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md index 48251c3a748..f2a580bd225 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md @@ -8,7 +8,7 @@ dashedName: run-functional-tests-on-api-endpoints-using-chai-http-ii # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md index 207471c9c25..858d3f856d8 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md @@ -8,7 +8,7 @@ dashedName: run-functional-tests-on-api-endpoints-using-chai-http # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. Mocha 允許你使用名爲 `chai-http` 的插件測試異步操作,例如調用 API 端點。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md index f9cef3d4a71..8ee00251c2f 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md @@ -8,11 +8,11 @@ dashedName: run-functional-tests-using-a-headless-browser-ii # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- -在 `tests/2_functional-tests.js` 中,在 `'Submit the surname "Vespucci" in the HTML form'` 測試(`// #5`),自動執行以下操作: +Within `tests/2_functional-tests.js`, in the `'Submit the surname "Vespucci" in the HTML form'` test (`// #6`), automate the following: 1. 在表格中填寫姓氏 `Vespucci`。 2. 點擊提交按鈕 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md index b7ecb5c9663..a4d9b7014e9 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md @@ -8,7 +8,7 @@ dashedName: run-functional-tests-using-a-headless-browser # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 在頁面上有一個輸入表單。 它將數據作爲 AJAX 請求發送到 `PUT /travellers` 端點。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md index 10c84675e02..3d73b5e4b91 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md @@ -7,7 +7,7 @@ dashedName: simulate-actions-using-a-headless-browser # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 在接下來的挑戰中,你將使用無頭瀏覽器模擬人類與頁面的交互。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md index 55ea9d8a5f1..120fbb97114 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md @@ -8,7 +8,7 @@ dashedName: test-for-truthiness # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `isTrue()` 僅當給出的值爲 Boolean 的 `true` 時可以通過測試;`isNotTrue()` 則會在給出除 `true` 以外的值時通過測試。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md index 9e94ebe58c9..23b356d6daa 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring.md @@ -8,7 +8,7 @@ dashedName: test-if-a-string-contains-a-substring # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `include()` 和 `notInclude()` 同樣可以用於字符串。 `include()` 用於斷言字符串中包含某個子字符串。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range.md index 8bf27780278..91aaf87b3e2 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range.md @@ -8,7 +8,7 @@ dashedName: test-if-a-value-falls-within-a-specific-range # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. ```javascript .approximately(actual, expected, delta, [message]) diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string.md index 7a7ba1db000..039a43e37c8 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string.md @@ -8,7 +8,7 @@ dashedName: test-if-a-value-is-a-string # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `isString` 或 `isNotString` 斷言一個值是否爲字符串。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type.md index b877f7a1096..b9179db3dd9 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type.md @@ -8,7 +8,7 @@ dashedName: test-if-a-value-is-of-a-specific-data-structure-type # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `#typeOf` 斷言一個值的類型符合給定的類型,這個類型與 `Object.prototype.toString` 一致。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined.md index 2f5e0fc4e89..f983bf4b262 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined.md @@ -8,7 +8,7 @@ dashedName: test-if-a-variable-or-function-is-defined # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item.md index 3dbb1278126..3aef8eaa9b0 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item.md @@ -8,7 +8,7 @@ dashedName: test-if-an-array-contains-an-item # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property.md index 7207a75531f..da6a59a3d90 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property.md @@ -8,7 +8,7 @@ dashedName: test-if-an-object-has-a-property # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `property` 斷言一個對象含有給定屬性。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor.md index 51698b42b75..407a4a415d0 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor.md @@ -8,7 +8,7 @@ dashedName: test-if-an-object-is-an-instance-of-a-constructor # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `#instanceOf` 斷言一個對象是一個構造器的實例。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another.md index d0e487cb16d..601d7496b65 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another.md @@ -8,7 +8,7 @@ dashedName: test-if-one-value-is-below-or-at-least-as-large-as-another # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok.md index 8f94593f41d..8583e4d2ee7 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok.md @@ -8,11 +8,11 @@ dashedName: use-assert-isok-and-assert-isnotok # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `isOk()` 用來測試值是否爲真值,`isNotOk()` 用來測試值是否爲假值。 -可以在[過濾數組中的假值](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer)這個挑戰中瞭解更多關於真值和假值的信息。 +To learn more about truthy and falsy values, try our Falsy Bouncer challenge. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string.md index 348b3bdc887..659ba631dd9 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string.md @@ -8,7 +8,7 @@ dashedName: use-regular-expressions-to-test-a-string # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `match()` 斷言一個值匹配一個正則表達式(第二個參數)。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality.md index fc4f563ca49..e7ee1a318bd 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality.md @@ -8,7 +8,7 @@ dashedName: use-the-double-equals-to-assert-equality # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `equal()` 使用 `==` 比較對象。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality.md index 11b87ed3737..39bbff495fa 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality.md @@ -8,7 +8,7 @@ dashedName: use-the-triple-equals-to-assert-strict-equality # --description-- -請注意,本項目在[這個 Replit 項目](https://replit.com/github/freeCodeCamp/boilerplate-mochachai)的基礎上進行開發。你也可以從 [GitHub](https://repl.it/github/freeCodeCamp/boilerplate-mochachai) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `strictEqual()` 使用 `===` 比較對象。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/american-british-translator.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/american-british-translator.md index e245dc28ed8..2d9443effcd 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/american-british-translator.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/american-british-translator.md @@ -8,10 +8,10 @@ dashedName: american-british-translator # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似:。 可以採用下面的任意一種方式完成這個挑戰: +Build a full stack JavaScript app that is functionally similar to this: https://american-british-translator.freecodecamp.rocks/. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [這個 GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-project-american-british-english-translator/) 並在本地完成項目。 -- 使用[我們的 Replit 初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-project-american-british-english-translator)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用您選擇的站點生成器來完成項目。 並確保包含了我們 GitHub 倉庫的所有文件。 當完成本項目,請確認有一個可以公開訪問的正常運行 demo 。 然後將 URL 提交到 `Solution Link` 中。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/issue-tracker.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/issue-tracker.md index 9db42401462..e1096893573 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/issue-tracker.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/issue-tracker.md @@ -8,10 +8,10 @@ dashedName: issue-tracker # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似: 。 可以採用下面的任意一種方式完成這個挑戰: +Build a full stack JavaScript app that is functionally similar to this: https://issue-tracker.freecodecamp.rocks/. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-project-issuetracker/) 並在本地完成你的項目。 -- 使用[我們的 Replit 初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-project-issuetracker)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use this Replit starter project to complete your project. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md index 3c1f724eb0d..6a3f006a885 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.md @@ -8,10 +8,10 @@ dashedName: metric-imperial-converter # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似:。 可以採用下面的任意一種方式完成這個挑戰: +Build a full stack JavaScript app that is functionally similar to this: https://metric-imperial-converter.freecodecamp.rocks/. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-project-metricimpconverter/) 並在本地完成你的項目。 -- 使用[我們的 Replit 初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-project-metricimpconverter)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/personal-library.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/personal-library.md index 691d7124655..f9e2f97afda 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/personal-library.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/personal-library.md @@ -8,10 +8,10 @@ dashedName: personal-library # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似:。 可以採用下面的任意一種方式完成這個挑戰: +Build a full stack JavaScript app that is functionally similar to this: https://personal-library.freecodecamp.rocks/. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [這個 GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-project-library) 並在本地完成項目。 -- 使用[我們的 Replit 初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-project-library)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/sudoku-solver.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/sudoku-solver.md index b5fa2049789..0f91eb2a6b4 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/sudoku-solver.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-projects/sudoku-solver.md @@ -8,10 +8,10 @@ dashedName: sudoku-solver # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似:。 可以採用下面的任意一種方式完成這個挑戰: +Build a full stack JavaScript app that is functionally similar to this: https://sudoku-solver.freecodecamp.rocks/. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [GitHub 倉庫](https://github.com/freecodecamp/boilerplate-project-sudoku-solver) 並在本地完成你的項目。 -- 使用[我們的 Replit 初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-project-sudoku-solver)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 @@ -270,7 +270,7 @@ async (getUserInput) => { }; ``` -如果提交給 `/api/check` 的對象缺失 `puzzle`、`coordinate` 或 `value`,返回的值將是 `{ error: Required field(s) missing }` +If the object submitted to `/api/check` is missing `puzzle`, `coordinate` or `value`, the returned value will be `{ error: 'Required field(s) missing' }` ```js async (getUserInput) => { @@ -324,7 +324,7 @@ async (getUserInput) => { }; ``` -如果提交給 `/api/check` 的 `value` 不是一個介於 1 到 9 之間的數字,則返回的值將是 `{ error: 'Invalid value' }` +If the `value` submitted to `/api/check` is not a number between 1 and 9, the returned value will be `{ error: 'Invalid value' }` ```js async (getUserInput) => { @@ -353,9 +353,11 @@ async (getUserInput) => { try { const getTests = await $.get(getUserInput('url') + '/_api/get-tests'); assert.isArray(getTests); - const units = getTests.filter((el) => el.context.includes('UnitTests')); - assert.isAtLeast(units.length, 12, 'At least 12 tests passed'); - units.forEach((test) => { + const unitTests = getTests.filter((test) => { + return !!test.context.match(/Unit\s*Tests/gi); + }); + assert.isAtLeast(unitTests.length, 12, 'At least 12 tests passed'); + unitTests.forEach((test) => { assert.equal(test.state, 'passed', 'Test in Passed State'); assert.isAtLeast( test.assertions.length, @@ -369,18 +371,18 @@ async (getUserInput) => { }; ``` -所有 14 項功能測試都已完成並通過。 請參閱 `/tests/2_functional-tests.js` 來了解你應該編寫的測試的功能。 +所有 14 項功能測試都已完成並通過。 See `/tests/2_functional-tests.js` for the expected functionality you should write tests for. ```js async (getUserInput) => { try { const getTests = await $.get(getUserInput('url') + '/_api/get-tests'); assert.isArray(getTests); - const funcs = getTests.filter((el) => - el.context.includes('Functional Tests') - ); - assert.isAtLeast(funcs.length, 14, 'At least 14 tests passed'); - funcs.forEach((test) => { + const functTests = getTests.filter((test) => { + return !!test.context.match(/Functional\s*Tests/gi); + }); + assert.isAtLeast(functTests.length, 14, 'At least 14 tests passed'); + functTests.forEach((test) => { assert.equal(test.state, 'passed', 'Test in Passed State'); assert.isAtLeast( test.assertions.length, diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md index e6ca1518b38..0b07afe3d2f 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md @@ -14,7 +14,7 @@ dashedName: build-your-own-functions 更多資源 -\- [練習](https://www.youtube.com/watch?v=ksvGhDsjtpw) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md index 5405d9d9ed9..8e2e171ac25 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md @@ -14,7 +14,7 @@ dashedName: comparing-and-sorting-tuples 更多資源: -\- [練習](https://www.youtube.com/watch?v=EhQxwzyT16E) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md index 22ce778b6ef..da1898ddba0 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md @@ -14,19 +14,19 @@ dashedName: data-visualization-mailing-lists 更多資源: -\- [練習:Geodata](https://www.youtube.com/watch?v=KfhslNzopxo) +\- 練習:Geodata -\- [練習:Gmane 模型](https://www.youtube.com/watch?v=wSpl1-7afAk) +\- 練習:Gmane 模型 -\- [練習:Gmane Spider](https://www.youtube.com/watch?v=H3w4lOFBUOI) +\- Exercise: Gmane Spider -\- [練習:Gmane Viz](https://www.youtube.com/watch?v=LRqVPMEXByw) +\- Exercise: Gmane Viz -\- [練習:Page Rank](https://www.youtube.com/watch?v=yFRAZBkBDBs) +\- Exercise: Page Rank -\- [練習:Page Spider](https://www.youtube.com/watch?v=sXedPQ_AnWA) +\- Exercise: Page Spider -\- [練習: Page Viz](https://www.youtube.com/watch?v=Fm0hpkxsZoo) +\- Exercise: Page Viz # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md index e4337d2cfb6..a095df2bf0a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md @@ -14,7 +14,7 @@ dashedName: dictionaries-and-loops 更多資源: -\- [練習](https://www.youtube.com/watch?v=PrhZ9qwBDD8) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md index 7abcb0ab6c3..cdc943a7645 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md @@ -14,7 +14,7 @@ dashedName: files-as-a-sequence 更多資源: -\- [練習](https://www.youtube.com/watch?v=il1j4wkte2E) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md index 607b6415b93..4e613551868 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md @@ -14,9 +14,9 @@ dashedName: intermediate-expressions 更多資源: -\- [練習 1](https://youtu.be/t_4DPwsaGDY) +\- Exercise 1 -\- [練習 2](https://youtu.be/wgkC8SxraAQ) +\- Exercise 2 # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md index 606b9bf5abb..8c409de6303 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md @@ -14,7 +14,7 @@ dashedName: intermediate-strings 更多資料: -[練習](https://www.youtube.com/watch?v=1bSqHot-KwE) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md index 2f13ffc8b4f..2d969304655 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md @@ -18,9 +18,9 @@ dashedName: introduction-why-program 更多資源: -\- [Windows 系統安裝 Python](https://youtu.be/F7mtLrYzZP8) +\- Install Python on Windows -\- [MacOS 系統安裝 Python](https://youtu.be/wfLnZP-4sZw) +\- Install Python on MacOS # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md index 8f80966ed50..9ba8ebf3f61 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md @@ -14,7 +14,7 @@ dashedName: iterations-more-patterns 更多資源: -\- [練習](https://www.youtube.com/watch?v=kjxXZQw0uPg) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md index 6d492b14707..82f39b31fed 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md @@ -14,9 +14,9 @@ dashedName: more-conditional-structures 更多資源: -\- [練習 1](https://www.youtube.com/watch?v=crLerB4ZxMI) +\- Exercise 1 -\- [練習 2](https://www.youtube.com/watch?v=KJN3-7HH6yk) +\- Exercise 2 # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md index a140c9b601e..ee0b5294818 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md @@ -14,11 +14,11 @@ dashedName: networking-web-scraping-with-python 更多資料: -\- [練習:socket1](https://www.youtube.com/watch?v=dWLdI143W-g) +\- Exercise: socket1 -\- [練習:urllib](https://www.youtube.com/watch?v=8yis2DvbBkI) +\- Exercise: urllib -\- [練習:urllinks](https://www.youtube.com/watch?v=g9flPDG9nnY) +\- Exercise: urllinks # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md index 43d896fd086..64628790865 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md @@ -10,15 +10,21 @@ bilibiliIds: dashedName: relational-databases-and-sqlite --- +# --description-- + +Download SQLite +Download DB Browser for SQLite +SQLite usage + # --question-- ## --text-- -哪個不是數據庫中主要的數據結構? +哪一個不是數據庫中的主要數據結構? ## --answers-- -指數 +索引 --- @@ -26,11 +32,11 @@ dashedName: relational-databases-and-sqlite --- -一行 +行 --- -一列 +列 ## --video-solution-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md index 3ecdc5d2138..ea20d6bdc0c 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md @@ -14,15 +14,15 @@ dashedName: relational-databases-many-to-many-relationships 更多資料: -\- [練習:電子郵件](https://www.youtube.com/watch?v=uQ3Qv1z_Vao) +\- Exercise: Email -\- [練習:名冊](https://www.youtube.com/watch?v=qEkUEAz8j3o) +\- Exercise: Roster -\- [練習:曲目](https://www.youtube.com/watch?v=I-E7avcPeSE) +\- Exercise: Tracks -\- [練習:推特好友](https://www.youtube.com/watch?v=RZRAoBFIH6A) +\- Exercise: Twfriends -\- [練習:推特爬蟲](https://www.youtube.com/watch?v=xBaJddvJL4A) +\- Exercise: Twspider # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md index 81608d7a271..b715d5a3576 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md @@ -14,7 +14,7 @@ dashedName: strings-and-lists 更多資源: -\- [練習](https://www.youtube.com/watch?v=-9TfJF2dwHI) +\- Exercise # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md index 3651be8daf6..c178df44c11 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md @@ -14,13 +14,13 @@ dashedName: web-services-api-rate-limiting-and-security 更多資料: -\- [練習:GeoJSON](https://www.youtube.com/watch?v=TJGJN0T8tak) +\- Exercise: GeoJSON -\- [練習:JSON](https://www.youtube.com/watch?v=vTmw5RtfGMY) +\- Exercise: JSON -\- [練習:Twitter](https://www.youtube.com/watch?v=2c7YwhvpCro) +\- Exercise: Twitter -\- [練習:XML](https://www.youtube.com/watch?v=AopYOlDa-vY) +\- Exercise: XML # --question-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md index 3e41aa1b713..78ac98c42ea 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md @@ -8,7 +8,7 @@ dashedName: arithmetic-formatter # --description-- -你將[使用我們的 Replit 入門代碼來完成這個項目](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter)。 +You will be working on this project with our Replit starter code. # --instructions-- @@ -64,7 +64,7 @@ arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) - 每個數字(操作數)應該只包含數字。 否則,該函數將返回: `Error: Numbers must only contain digits.` - 每個操作數(也就是運算符兩側的數字)的寬度最多爲四位。 否則,返回的錯誤字符串將爲: `Error: Numbers cannot be more than four digits.` - 如果用戶提供了正確格式的問題,返回的轉換將遵循以下規則: - - 運算符和兩個數中最長的一個之間應該有一個空格,運算符與第二個數在同一行,兩個數的順序與所提供的相同(第一個將是頂部的,而第二個將是底部。 + - There should be a single space between the operator and the longest of the two operands, the operator will be on the same line as the second operand, both operands will be in the same order as provided (the first will be the top one and the second will be the bottom). - 數字應該右對齊。 - 每個問題之間應該有四個空格。 - 每個問題的底部都應該有破折號。 破折號應該單獨沿着每個問題的整個長度延伸。 (上面的例子展示了這應該是什麼樣子。) diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md index 363f1264881..83fad56fbb1 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md @@ -8,7 +8,7 @@ dashedName: budget-app # --description-- -你將[使用我們的 Replit 入門代碼來完成這個項目](https://replit.com/github/freeCodeCamp/boilerplate-budget-app)。 +You will be working on this project with our Replit starter code. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md index 0c767fcb6ad..18a6b19442a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md @@ -8,7 +8,7 @@ dashedName: polygon-area-calculator # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator)來完成本項目。 +You will be working on this project with our Replit starter code. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md index 039d4078989..fb4d8bb7beb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md @@ -8,7 +8,7 @@ dashedName: probability-calculator # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator)來完成本項目。 +You will be working on this project with our Replit starter code. # --instructions-- @@ -37,7 +37,7 @@ hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) `experiment` 函數應該返回一個概率。 -例如,假設你想確定當你從一個包含 6 個黑球、4 個紅球和 3 個綠球的帽子中抽出 5 個球時,至少得到 2 個紅球和 1 個綠球的概率。 爲此,我們進行 `N` 次實驗,記錄其中我們至少得到 2 個紅球和 1 個綠球的次數 `M`,並估計概率爲`M/N`。 每個實驗都包括從一頂裝有指定球的帽子開始,抽取一些球,然後檢查我們是否得到了我們想要得到的球。 +For example, if you want to determine the probability of getting at least two red balls and one green ball when you draw five balls from a hat containing six black, four red, and three green. To do this, you will perform `N` experiments, count how many times `M` you get at least two red balls and one green ball, and estimate the probability as `M/N`. Each experiment consists of starting with a hat containing the specified balls, drawing several balls, and checking if you got the balls you were attempting to draw. 以下是基於上面的示例調用 `experiment` 函數的方法,其中包含 2000 個實驗: diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md index d0357eae42b..ae63f756dba 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md @@ -8,7 +8,7 @@ dashedName: time-calculator # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator)來完成本項目。 +You will be working on this project with our Replit starter code. # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis.md index 2d90bd0490a..d7f08525a68 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-course/introduction-to-data-analysis.md @@ -11,16 +11,17 @@ dashedName: introduction-to-data-analysis --- # --description-- +數據分析是指通過清理、轉換、處理原始數據,從而洞察數據價值的行爲。 -以下有更多的資料: +更多資源: -\- [幻燈片](https://docs.google.com/presentation/d/1cUIt8b2ySz-85_ykfeuuWsurccwTAuFPn782pZBzFsU/edit?usp=sharing) +\- 專欄文章 # --question-- ## --text-- -以下哪一項 **不是** 數據分析的一部分? +以下哪一項**不屬於**數據分析範疇? ## --answers-- @@ -28,7 +29,7 @@ dashedName: introduction-to-data-analysis --- -爲分析選擇所需的結論。 +分析數據並得出結論。 --- diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md index 31f1f9f6134..7465c2437f5 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md @@ -8,12 +8,13 @@ dashedName: demographic-data-analyzer # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer)來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Python for Everybody Video Course (14 hours) + +- How to Analyze Data with Python Pandas (10 hours) # --instructions-- @@ -59,7 +60,7 @@ dashedName: demographic-data-analyzer ## 數據集源 -Dua, D. and Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). Irvine, CA: University of California, School of Information and Computer Science. +Dua, D. and Graff, C. (2019). UCI Machine Learning Repository. Irvine, CA: University of California, School of Information and Computer Science. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md index 9c1ccbc5987..847b3078441 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md @@ -8,12 +8,13 @@ dashedName: mean-variance-standard-deviation-calculator # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator)來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Python for Everybody Video Course(14 hours) + +- How to Analyze Data with Python Pandas (10 hours) # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md index a3ddebd0934..8120ddc059f 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md @@ -8,12 +8,13 @@ dashedName: medical-data-visualizer # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer)來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Python for Everybody Video Course(14 hours) + +- How to Analyze Data with Python Pandas (10 hours) # --instructions-- @@ -25,20 +26,20 @@ dashedName: medical-data-visualizer 文件名:medical_examination.csv -| 項目 | 變量類型 | 變量名 | 變量值類型 | -|:--------:|:----:|:-----------:|:---------------------:| -| 年齡 | 客觀特徵 | age | int (days) | -| 身高 | 客觀特徵 | height | int (cm) | -| 體重 | 客觀特徵 | weight | float (kg) | -| 性別 | 客觀特徵 | gender | 分類編碼 | -| 收縮壓 | 檢測特徵 | ap_hi | int | -| 舒張壓 | 檢測特徵 | ap_lo | int | -| 膽固醇 | 檢測特徵 | cholesterol | 1:正常,2:高於正常,3:遠遠高於正常值 | -| 血糖值 | 檢測特徵 | gluc | 1:正常,2:高於正常,3:遠遠高於正常值 | -| 吸菸問題 | 主觀特徵 | smoke | binary | -| 飲酒量 | 主觀特徵 | alco | binary | -| 體育活動 | 主觀特徵 | active | binary | -| 是否有心血管疾病 | 目標變量 | cardio | binary | +| 項目 | 變量類型 | 變量名 | 變量值類型 | +|:--------:|:----:|:-------------:|:---------------------:| +| 年齡 | 客觀特徵 | `age` | int (days) | +| 身高 | 客觀特徵 | `height` | int (cm) | +| 體重 | 客觀特徵 | `weight` | float (kg) | +| 性別 | 客觀特徵 | `gender` | 分類編碼 | +| 收縮壓 | 檢測特徵 | `ap_hi` | int | +| 舒張壓 | 檢測特徵 | `ap_lo` | int | +| 膽固醇 | 檢測特徵 | `cholesterol` | 1:正常,2:高於正常,3:遠遠高於正常值 | +| 血糖值 | 檢測特徵 | `gluc` | 1:正常,2:高於正常,3:遠遠高於正常值 | +| 吸菸問題 | 主觀特徵 | `smoke` | binary | +| 飲酒量 | 主觀特徵 | `alco` | binary | +| 體育活動 | 主觀特徵 | `active` | binary | +| 是否有心血管疾病 | 目標變量 | `cardio` | binary | ## 任務 diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md index a8fb8b8b997..61881d16f42 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md @@ -8,12 +8,13 @@ dashedName: page-view-time-series-visualizer # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-page-view-time-series-visualizer)來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 freeCodeCamp.org 的 YouTube 頻道中通過視頻學習到這個項目相關的所有知識 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Python for Everybody Video Course(14 hours) + +- How to Analyze Data with Python Pandas (10 hours) # --instructions-- @@ -21,11 +22,11 @@ dashedName: page-view-time-series-visualizer 使用數據完成以下任務: -- 使用 Pandas 從 “fcc-forum-pageviews.csv” 導入數據。 將索引設置爲 “date” 列。 +- 使用 Pandas 從 “fcc-forum-pageviews.csv” 導入數據。 Set the index to the `date` column. - 通過過濾掉頁面瀏覽量位於數據集前 2.5% 或數據集後 2.5% 的日期來清理數據。 -- 創建一個 `draw_line_plot` 函數,該函數使用 Matplotlib 繪製類似於“examples/Figure_1.png”的折線圖。 標題應爲“Daily freeCodeCamp Forum Page Views 5/2016-12/2019”。 x 軸上的標籤應爲“Date”,y 軸上的標籤應爲“Page Views”。 -- 創建一個 `draw_bar_plot` 函數,用於繪製類似於“examples/Figure_2.png”的條形圖。 它應該顯示按年份分組的每個月的平均每日頁面瀏覽量。 圖例應顯示月份標籤並具有“Months”標題。 在圖表上,x 軸上的標籤應爲“Years”,y 軸上的標籤應爲“Average Page Views”。 -- 創建一個 `draw_box_plot` 函數,該函數使用 Seaborn 繪製兩個相鄰的箱形圖,類似於“examples/Figure_3.png”。 這些箱線圖應顯示值在給定年份或月份內的分佈情況以及隨時間推移的比較情況。 第一個圖表的標題應爲“Year-wise Box Plot (Trend)”,第二個圖表的標題應爲“Month-wise Box Plot (Seasonality)”。 確保底部的月份標籤從“Jan”開始,並且 x 和 x 軸標記正確。 樣板文件包括準備數據的命令。 +- 創建一個 `draw_line_plot` 函數,該函數使用 Matplotlib 繪製類似於“examples/Figure_1.png”的折線圖。 The title should be `Daily freeCodeCamp Forum Page Views 5/2016-12/2019`. The label on the x axis should be `Date` and the label on the y axis should be `Page Views`. +- 創建一個 `draw_bar_plot` 函數,用於繪製類似於“examples/Figure_2.png”的條形圖。 它應該顯示按年份分組的每個月的平均每日頁面瀏覽量。 The legend should show month labels and have a title of `Months`. On the chart, the label on the x axis should be `Years` and the label on the y axis should be `Average Page Views`. +- 創建一個 `draw_box_plot` 函數,該函數使用 Seaborn 繪製兩個相鄰的箱形圖,類似於“examples/Figure_3.png”。 這些箱線圖應顯示值在給定年份或月份內的分佈情況以及隨時間推移的比較情況。 The title of the first chart should be `Year-wise Box Plot (Trend)` and the title of the second chart should be `Month-wise Box Plot (Seasonality)`. Make sure the month labels on bottom start at `Jan` and the x and y axis are labeled correctly. 樣板文件包括準備數據的命令。 對於每個圖表,請確保使用數據框的副本。 單元測試是在 `test_module.py` 下爲你編寫的。 diff --git a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md index 97e9f9d9b09..d6c5df5b66d 100644 --- a/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md +++ b/curriculum/challenges/chinese-traditional/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md @@ -8,12 +8,13 @@ dashedName: sea-level-predictor # --description-- -你將通過使用我們的[Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor)來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Python for Everybody Video Course(14 hours) + +- How to Analyze Data with Python Pandas (10 hours) # --instructions-- @@ -22,10 +23,10 @@ dashedName: sea-level-predictor 使用數據完成以下任務: - 使用 Pandas 從 `epa-sea-level.csv` 導入數據。 -- 使用 matplotlib 創建散點圖,使用“Year”列作爲 x 軸,將“CSIRO Adjusted Sea Level”列作爲 y 軸。 +- Use matplotlib to create a scatter plot using the `Year` column as the x-axis and the `CSIRO Adjusted Sea Level` column as the y-axix. - 使用 `scipy.stats` 中的 `linregress` 函數來獲得最佳擬合線的斜率和 y 截距。 在散點圖的頂部繪製最佳擬合線。 使線穿過 2050 年以預測 2050 年的海平面上升。 - 僅使用數據集中從 2000 年到最近一年的數據繪製一條新的最佳擬合線。 如果上升速度繼續與 2000 年一樣,則使該線也經過 2050 年以預測 2050 年的海平面上升。 -- x 標籤應爲 “Year”,y 標籤應爲 “Sea Level (inches)”,標題應爲 “Rise in Sea Level”。 +- The x label should be `Year`, the y label should be `Sea Level (inches)`, and the title should be `Rise in Sea Level`. 單元測試是在 `test_module.py` 下爲你編寫的。 @@ -44,7 +45,8 @@ dashedName: sea-level-predictor 複製項目的 URL 並將其提交給 freeCodeCamp。 ## 數據源 -[Global Average Absolute Sea Level Change](https://datahub.io/core/sea-level-rise), 1880-2014 from the US Environmental Protection Agency using data from CSIRO, 2015; NOAA, 2015. + +Global Average Absolute Sea Level Change, 1880-2014 from the US Environmental Protection Agency using data from CSIRO, 2015; NOAA, 2015. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/anonymous-message-board.md index 3d8a7e3cd73..187204881cc 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/anonymous-message-board.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/anonymous-message-board.md @@ -8,12 +8,12 @@ dashedName: anonymous-message-board # --description-- -構建一個功能上與此相似的全棧式 JavaScript 應用程序:。 +Build a full stack JavaScript app that is functionally similar to this: https://anonymous-message-board.freecodecamp.rocks/. 在這個項目中,你將使用以下方法之一編寫你的代碼: -- 克隆[這個 GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-messageboard/) 並在本地完成你的項目。 -- 使用 [我們的 Replit 啓動項目](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用一個你喜歡的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後將 URL 提交到 `Solution Link` 中。 此外,還可以提交一個指向項目源碼的 `GitHub Link`。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/port-scanner.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/port-scanner.md index 3b1c42645fa..971c95b5463 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/port-scanner.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/port-scanner.md @@ -9,13 +9,15 @@ dashedName: port-scanner # --description-- -你將通過使用我們的 [Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner) 來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) +- Python for Everybody Video Course (14 hours) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Learn Python Basics in Depth (4 hours) + +- Intermediate Python Course (6 hours) # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md index c9f85c9f162..f4138a1ddac 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md @@ -8,21 +8,32 @@ dashedName: secure-real-time-multiplayer-game # --description-- -使用 HTML Canvas API 和 [Socket.io](https://socket.io/) 開發一個 2D 實時多人遊戲,其功能與此類似:。 在這個項目中,你將使用以下方法之一編寫你的代碼: +使用 HTML Canvas API 和 Socket.io 開發一個功能上類似於 https://secure-real-time-multiplayer-game.freecodecamp.rocks/ 的 2D 實時多人遊戲。 在這個項目中,你將使用以下方法之一編寫你的代碼: -- 克隆[這個 GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game/),並在本地完成你的項目。 -- 使用[我們的 Replit 初始項目](https://replit.com/github/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game)來完成你的項目。 +- 克隆這個 GitHub 倉庫,並在本地完成你的項目。 +- 使用我們在 Replit 上的初始化項目來完成你的項目 - 使用您選擇的站點生成器來完成項目。 需要確定包含了我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 框中提交你的項目 URL。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 # --instructions-- -**注意** :`helmet@^3.21.3` 是用戶故事所必需的。 這意味着你需要使用以前版本的 Helmet 的文檔,瞭解如何實現用戶故事的信息。 +創建一個安全的多人遊戲,每名玩家可以移動他們的角色,並且這個遊戲至少提供了一個可收集的道具,玩家的排名是根據他們的分數計算的。 + +有關詳細信息,請參考下面的測試。 + +請確保你的遊戲是安全的! 包含以下安全措施: + +- 客戶端不能猜測/嗅探 MIME 類型 +- 防止 XSS 攻擊 +- 不要在客戶端中緩存網站的任何信息 +- 在請求頭中聲明網站是由 `PHP 7.4.3` 提供技術支持 + +**注意:** `helmet@^3.21.3` 是需求中所要求的。 這意味着你將需要使用之前版本的 Helmet 文檔,來了解如何實現需求。 # --hints-- -提交自己的項目,而不是示例的 URL。 +你應該提交你自己的項目,而不是示例 URL ```js (getUserInput) => { @@ -34,91 +45,91 @@ dashedName: secure-real-time-multiplayer-game }; ``` -多個玩家可以連接到一臺服務器遊玩。 +多名玩家可以連接到同一臺服務器玩這個遊戲。 ```js ``` -每個玩家都有頭像。 +每名玩家都有一個角色。 ```js ``` -每個玩家都由在 `Player.mjs` 中創建的 `Player` 類對象來代表。 +每名玩家都由 `Player.mjs` 中的 `Player` 類創建的對象表示 ```js ``` -至少,每個玩家對象應該包含一個唯一的 `id`、一個 `score`,以及代表玩家當前位置的 `x` 和 `y` 座標。 +至少,每個玩家對象都應該包含一個唯一的 `id`、一個`score`,以及代表玩家當前位置的 `x` 和 `y` 座標。 ```js ``` -遊戲至少有一種類型的可收藏物品。 在 `Collectible.mjs` 中完成 `Collectible` 類來實現這一點。 +遊戲中至少有一種可收集道具。 在 `Collectible.mjs` 中完成 `Collectible` 類來實現這一點 ```js ``` -至少,每個由 `Collectible` 類創建的可收集物品對象應該包含一個唯一的 `id`、一個 `value`,以及代表該物品當前位置的 `x` 和 `y` 座標。 +至少,由 `Collectible` 類創建的每個可收集物品對象應該包含一個唯一的 `id`、一個 `value` 和代表物品的當前位置 `x` 和 `y` 座標。 ```js ``` -玩家可以使用 WASD 或方向鍵移動頭像。 完成 `Player.mjs` 中的 `movePlayer` 方法來實現這一功能。 +玩家可以使用 WASD 和/或箭頭鍵移動他們的角色。 完成 `Player.mjs` 中的 `movePlayer` 方法來實現這一功能。 ```js ``` -`movePlayer` 方法應該接受兩個參數:一個是 “up”、“down”、“left” 或 “right” 的字符串,另一個是玩家角色位置應該改變的像素數量。 `movePlayer` 應該調整它所調用的玩家對象的 `x` 和 `y` 座標。 +`movePlayer` 方法應該接受兩個參數:一個由 “up”、“down”、“left” 或 “right” 組成的字符串,以及一個表示玩家位置應該改變的像素數量的數字。 `movePlayer` 應該調整被調用的玩家對象的 `x` 和 `y` 座標。 ```js ``` -用玩家的分數來計算他們相對其他玩家的名次。 在 `Player` 類中完成 `calculateRank` 方法來實現這個。 +玩家的分數應該用來計算他們與其他玩家相比的排名。 完成 `Player` 類中的 `calculateRank` 方法來實現這個功能。 ```js ``` -`calculateRank` 方法應該接受一個代表所有在線玩家的對象數組,並返回字符串 `Rank: currentRanking/totalPlayers`。 例如,在一局有兩個玩家的遊戲中,如果玩家 A 的分數是 3,玩家 B 的分數是 5,那麼玩家 A 的 `calculateRank` 應該返回 `Rank: 2/2`。 +`calculateRank` 方法應該接受一個代表所有連接的玩家的對象數組,並返回字符串 `Rank: currentRanking/totalPlayers`(排名:當前排名/總玩家數)。 舉個例子,在一個兩人遊戲中,如果玩家 A 有 3 分,玩家 B 有 5 分,那麼玩家 A 的 `calculateRank` 應該返回 `Rank: 2/2`。 ```js ``` -玩家可以與可收集物品發生碰撞。 完成 `Player.mjs` 中的 `collision` 方法來實現這一點。 +玩家可以與收集道具發生碰撞。 完成 `Player.mjs` 中的 `collision` 方法實現這一功能。 ```js ``` -`collision` 方法應該接受一個可收集物品的對象作爲參數。 如果玩家的頭像與物品相交,`collision` 方法應該返回 `true`。 +`collision` 方法應該接受可收集物品的對象作爲參數。 如果玩家的角色與道具重合,`collision` 方法應該返回 `true`。 ```js ``` -所有玩家都保持遊戲狀態同步。 +所有玩家保持同步。 ```js ``` -玩家可以隨時斷開與遊戲的連接。 +玩家可以在任何時候退出遊戲。 ```js ``` -阻止客戶端試圖猜測/嗅探 MIME 類型。 +防止客戶端嘗試猜測/嗅探 MIME 類型。 ```js async (getUserInput) => { @@ -138,7 +149,7 @@ async (getUserInput) => { }; ``` -客戶端沒有緩存任何網站內容。 +網站上的任何東西都不會被緩存到客戶端中。 ```js async (getUserInput) => { @@ -154,7 +165,7 @@ async (getUserInput) => { }; ``` -請求頭顯示該網站是由 “PHP 7.4.3” 驅動的,儘管實際並非如此(作爲一種安全防禦措施)。 +在請求頭中聲明該網站由 “PHP 7.4.3” 提供技術支持,儘管它並非如此(作爲一種安全措施)。 ```js async (getUserInput) => { diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/sha-1-password-cracker.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/sha-1-password-cracker.md index 4ad5dbe6d3f..678ed3f2636 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/sha-1-password-cracker.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/sha-1-password-cracker.md @@ -9,13 +9,15 @@ dashedName: sha-1-password-cracker # --description-- -你將通過使用我們的 [Replit 入門代碼](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker) 來完成本項目。 +You will be working on this project with our Replit starter code. 我們仍在開發 Python 課程的交互式教學部分。 目前,你可以在 YouTube 上通過 freeCodeCamp.org 上傳的一些視頻學習這個項目相關的知識。 -- [Python for Everybody 視頻課程](https://www.freecodecamp.org/news/python-for-everybody/)(14 小時) +- Python for Everybody Video Course (14 hours) -- [Learn Python 視頻課程](https://www.freecodecamp.org/news/learn-python-video-course/)(10 小時) +- Learn Python Basics in Depth (4 hours) + +- Intermediate Python Course (6 hours) # --instructions-- @@ -41,7 +43,7 @@ dashedName: sha-1-password-cracker - `da5a4e8cf89539e66097acd2f8af128acae2f8ae` 應該返回 “q1w2e3r4t5” - `ea3f62d498e3b98557f9f9cd0d905028b3b019e1` 應該返回 “bubbles1” -`hashlib` 庫已經爲你導入。 你應該在你的代碼中使用它。 [在此瞭解更多關於 “hashlib” 的信息](https://docs.python.org/3/library/hashlib.html) +`hashlib` 庫已經爲你導入。 You should consider using it in your code. Learn more about "hashlib" here. ## 開發 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/stock-price-checker.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/stock-price-checker.md index e3bd6496a19..59dbc2b278b 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/stock-price-checker.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-projects/stock-price-checker.md @@ -8,14 +8,14 @@ dashedName: stock-price-checker # --description-- -構建一個 JavaScript 的全棧應用,在功能上與這個應用相似:。 +Build a full stack JavaScript app that is functionally similar to this: https://stock-price-checker.freecodecamp.rocks/. -由於所有可靠的股票價格 API 都需要一個 API 密鑰,我們已經建立了一個解決方案。 使用 [https://stock-price-checer-proxy.freecodecamp.rocks/](https://stock-price-checker-proxy.freecodecamp.rocks/) 獲取最新的股票價格信息,而無需註冊您自己的密鑰。 +由於所有可靠的股票價格 API 都需要一個 API 密鑰,我們已經建立了一個解決方案。 Use https://stock-price-checker-proxy.freecodecamp.rocks/ to get up-to-date stock price information without needing to sign up for your own key. 可以採用下面的任意一種方式完成這個挑戰: -- 克隆 [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-stockchecker/) 並在本地完成項目。 -- 使用[我們的 Replit 啓動項目](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker)來完成你的項目。 +- Clone this GitHub repo and complete your project locally. +- Use our Replit starter project to complete your project. - 使用你選擇的網站生成器來完成項目。 需要包含我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後將 URL 提交到 `Solution Link` 中。 此外,還可以將項目的源碼提交到 `GitHub Link` 中。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md index c028f374915..c17d40e14f2 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md @@ -8,7 +8,7 @@ dashedName: ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. HTTP 嚴格傳輸安全(HSTS)是一種網絡安全策略,有助於保護網站免受協議降級攻擊和 cookie 劫持。 如果你的網站可以通過 HTTPS 訪問,你可以要求用戶的瀏覽器避免使用不安全的 HTTP。 通過設置標頭 Strict-Transport-Security,你告訴瀏覽器在指定時間內對未來的請求使用 HTTPS。 這將對初始請求之後的請求起作用。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md index 3df51eff7ff..736ebfffb22 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md @@ -8,7 +8,7 @@ dashedName: avoid-inferring-the-response-mime-type-with-helmet-nosniff # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 瀏覽器可以使用內容或 MIME 嗅探來覆蓋響應的 `Content-Type` 頭,猜測並使用隱含的內容類型來處理數據。 雖然這在某些情況下可能很方便,但也可能導致一些危險的攻擊。 該中間件將 X-Content-Type-Options 頭設置爲 `nosniff`,指示瀏覽器不要繞過所提供的 `Content-Type`。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 瀏覽器可以使用內容或 MIME 嗅探來覆蓋響應的 `Content-Type` 頭,猜測並使用隱含的內容類型來處理數據。 雖然這在某些情況下可能很方便,但也可能導致一些危險的攻擊。 該中間件將 X-Content-Type-Options 頭設置爲 `nosniff`,指示瀏覽器不要繞過所提供的 `Content-Type`。 # --instructions-- diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md index 9a72ee091bf..f651618a89f 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md @@ -8,7 +8,7 @@ dashedName: configure-helmet-using-the-parent-helmet-middleware # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. `app.use(helmet())` 將自動包括上面介紹的所有中間件,除了 `noCache()` 和 `contentSecurityPolicy()`,但如果有必要,這些可以被啓用。 你也可以使用配置對象,單獨禁用或配置任何其他中間件。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md index 5ecebfe01fa..dfb80f98d11 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md @@ -8,7 +8,7 @@ dashedName: disable-client-side-caching-with-helmet-nocache # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。 你也可以從[GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/)上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 如果你正在爲你的網站發佈更新,而你希望用戶總是下載較新的版本,你可以(嘗試)在客戶的瀏覽器上禁用緩存。 它在開發中也很有用。 緩存具有性能優勢,你將失去這些優勢,因此只有在真正需要時才使用此選項。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md index 455ce2a2546..d5e63354248 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md @@ -8,7 +8,7 @@ dashedName: disable-dns-prefetching-with-helmet-dnsprefetchcontrol # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 爲了提高性能,大部分瀏覽器都會爲頁面上的鏈接預先加載 DNS 記錄。 這樣當用戶點擊一個鏈接的時候瀏覽器已經知道其 IP 地址了。 但這也會造成 DNS 服務的過度使用(如果你有一個百萬用戶數量級的大型網站)、隱私問題(竊聽者可以藉此推測出你在訪問哪個頁面)、頁面統計數據準確性(有些沒訪問過的鏈接會被標記成已訪問)。 如果你對安全性要求比較高,你應該禁用 DNS 預加載。 當然,這樣做會讓你損失一些性能。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md index 737288015a7..93e3da005da 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md @@ -8,7 +8,7 @@ dashedName: hash-and-compare-passwords-asynchronously # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。 你也可以從[GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/)上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 由於哈希運算會佔用很大計算機資源,並且會耗費比較多時間,因此比較推薦的做法是異步調用哈希算法,這樣就不會因此阻止其它連接或請求了。 異步調用哈希方法非常簡單,只需要: diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md index c19836bc321..570d37bdc05 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md @@ -8,7 +8,7 @@ dashedName: hash-and-compare-passwords-synchronously # --description-- -請注意,本項目在 [這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt) 的基礎上進行開發。 你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 同步執行哈希運算是非常簡單的,但這會在哈希計算量大並且次數多的情況下造成延遲。 用這個方法哈希就像調用函數一樣簡單。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md index 32214afbae6..5e881c25e58 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md @@ -8,7 +8,7 @@ dashedName: hide-potentially-dangerous-information-using-helmet-hidepoweredby # --description-- -請注意,本項目在[這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)的基礎上進行開發。你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 如果黑客發現你的網站是用 Express 搭建的,那麼他們就可以利用 Express 或 Node 現存的漏洞來攻擊你的網站。 `X-Powered-By: Express` 默認在來自 Express 的每個請求中被髮送。 使用 `helmet.hidePoweredBy()` 中間件來移除 X-Powered-By 頭。 diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md index 49d5ede4259..1bc77e579da 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md @@ -10,8 +10,8 @@ dashedName: install-and-require-helmet 你可以採用下面的任意一種編寫代碼的方式來完成這些挑戰: -- 克隆 [這個 GitHub 倉庫](https://github.com/freeCodeCamp/boilerplate-infosec/) 並在本地完成這些挑戰。 -- 使用[我們在 Repl.it 上的初始化項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec)來完成這些挑戰。 +- 克隆這個 GitHub 倉庫,並在本地完成這些挑戰。 +- 使用我們在 Replit 上的初始化項目來完成這些挑戰。 - 使用你選擇的網站生成器來完成項目。 需要包含我們 GitHub 倉庫的所有文件。 完成本項目後,請將一個正常運行的 demo(項目演示)託管在可以公開訪問的平臺。 然後在 `Solution Link` 字段中提交它的 URL。 @@ -22,7 +22,7 @@ Helmet 通過設置各種 HTTP 頭來保護你的 Express 應用程序。 你在這些課程中寫的所有代碼都在 `myApp.js` 文件中,在初始代碼之間。 不要改變或刪除我們爲你添加的代碼。 -安裝 Helmet 的 `3.21.3` 版本,然後引入它。 你可以用 `npm install --save-exact package@version` 來安裝一個特定版本的軟件包,或者直接將其添加到你的 `package.json` 中。 +Helmet `3.21.3` 版已經安裝完畢,所以在 `myApp.js` 中請求它作爲 `helmet`。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md index dcbf163ddd4..18c18a4a9ff 100644 --- a/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md +++ b/curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md @@ -8,7 +8,7 @@ dashedName: mitigate-the-risk-of-clickjacking-with-helmet-frameguard # --description-- -請注意,本項目在 [這個 Repl.it 項目](https://replit.com/github/freeCodeCamp/boilerplate-infosec) 的基礎上進行開發。 你也可以從 [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) 上克隆。 +As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub. 你的網頁可能在未經你同意的情況下被放在 `` 或 `