From 6fb42a5a93fba098ad2166bf2226d82bdcfc0d8a Mon Sep 17 00:00:00 2001 From: frontend hashira Date: Fri, 23 May 2025 01:52:44 +0100 Subject: [PATCH 1/2] feat: add offline access and documentation - All files and directories previously located in the root, related to documentation, have been moved to the `docs` directory. - An `.envrc` file was added to automatically activate the virtual environment. -Added README.md for documentation --- .envrc | 1 + README.md | 88 + .../01_javascript_refresher.md | 9046 ++++++++--------- .../02_introduction_to_react.md | 0 .../03_Day_Setting_Up}/03_setting_up.md | 0 .../03_setting_up_boilerplate/.gitignore | 0 .../03_setting_up_boilerplate/README.md | 0 .../03_setting_up_boilerplate/package.json | 0 .../public/index.html | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/react_logo.png | Bin .../03_setting_up_boilerplate/src/index.js | 0 .../03_setting_up_boilerplate/src/math.js | 0 .../03_setting_up_boilerplate/yarn.lock | 0 .../04_Day_Components}/04_components.md | 0 .../04_components_boilerplate/.gitignore | 0 .../04_components_boilerplate/README.md | 0 .../04_components_boilerplate/package.json | 0 .../public/index.html | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../04_components_boilerplate/src/index.js | 0 .../04_components_boilerplate/yarn.lock | 0 .../05_Day_Props}/05_props.md | 0 .../05_props_boilerplate/.gitignore | 0 .../05_props_boilerplate/README.md | 0 .../05_props_boilerplate/package.json | 0 .../05_props_boilerplate/public/index.html | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../05_props_boilerplate/src/index.js | 0 .../05_props_boilerplate/yarn.lock | 0 .../06_Day_Map_List_Keys}/06_map_list_keys.md | 0 .../06_map_list_keys_boilerplate/.gitignore | 0 .../06_map_list_keys_boilerplate/README.md | 0 .../06_map_list_keys_boilerplate/package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../06_map_list_keys_boilerplate/src/index.js | 0 .../06_map_list_keys_boilerplate/yarn.lock | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../07_class_components.md | 0 .../08_Day_States}/08_states.md | 0 .../08_states_boilerplate/.gitignore | 0 .../08_states_boilerplate/README.md | 0 .../08_states_boilerplate/package.json | 0 .../08_states_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../08_states_boilerplate/src/index.js | 0 .../08_states_boilerplate/yarn.lock | 0 .../09_conditional_rendering.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../10_react_project_folder_structure.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/App.js | 0 .../src/components/color/HexaColor.js | 0 .../src/components/country/Country.js | 0 .../src/components/footer/Footer.js | 0 .../src/components/header/Header.js | 0 .../src/components/main/Main.js | 0 .../src/components/shared/Button.js | 0 .../src/components/user/UserCard.js | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../src/styles/button-styles.js | 0 .../src/styles/common.css | 0 .../src/styles/country.css | 0 .../src/styles/footer.css | 0 .../src/styles/header.css | 0 .../src/styles/index.css | 0 .../src/styles/user-card.css | 0 .../src/utils/display-date-and-time.js | 0 .../src/utils/hexadecimal-color-generator.js | 0 .../yarn.lock | 0 .../11_Day_Events}/11_events.md | 0 .../11_events_boilerplate/.gitignore | 0 .../11_events_boilerplate/README.md | 0 .../11_events_boilerplate/package.json | 0 .../11_events_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../11_events_boilerplate/src/index.js | 0 .../11_events_boilerplate/yarn.lock | 0 .../12_Day_Forms}/12_forms.md | 0 .../12_forms_boilerplate/.gitignore | 0 .../12_forms_boilerplate/README.md | 0 .../12_forms_boilerplate/package.json | 0 .../12_forms_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../12_forms_boilerplate/src/index.js | 0 .../12_forms_boilerplate/yarn.lock | 0 .../13_uncontrolled_input.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../14_component_life_cycles.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../15_third_party_packages.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../16_higher_order_component.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../yarn.lock | 0 .../17_React_Router}/17_react_router.md | 0 .../17_react_router_boilerplate/.gitignore | 0 .../17_react_router_boilerplate/README.md | 0 .../17_react_router_boilerplate/package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../17_react_router_boilerplate/src/index.js | 0 .../17_react_router_boilerplate/yarn.lock | 0 .../18_fetch_and_axios_boilerplate/.gitignore | 0 .../18_fetch_and_axios_boilerplate/README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../18_fetch_and_axios_boilerplate/yarn.lock | 0 .../18_Fetch_And_Axios}/18_fetch_axios.md | 0 .../19_projects}/19_projects.md | 0 .../19_projects_boilerplate/.gitignore | 0 .../19_projects_boilerplate/README.md | 0 .../19_projects_boilerplate/package.json | 0 .../19_projects_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../19_projects_boilerplate/src/index.js | 0 .../19_projects_boilerplate/yarn.lock | 0 .../20_projects}/20_projects.md | 0 .../20_projects_boilerplate/.gitignore | 0 .../20_projects_boilerplate/README.md | 0 .../20_projects_boilerplate/package.json | 0 .../20_projects_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../20_projects_boilerplate/src/index.js | 0 .../20_projects_boilerplate/yarn.lock | 0 .../21_introducing_hooks.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../src/index.scss | 0 .../yarn.lock | 0 .../22_form_using_hooks.md | 0 .../.gitignore | 0 .../22_form_using_hooks_boilerplate/README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../src/index.scss | 0 .../22_form_using_hooks_boilerplate/yarn.lock | 0 .../23_fetching_data_using_hooks.md | 0 .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../src/index.js | 0 .../src/index.scss | 0 .../yarn.lock | 0 .../24_projects}/24_projects.md | 0 .../24_projects_boilerplate/.gitignore | 0 .../24_projects_boilerplate/README.md | 0 .../24_projects_boilerplate/package.json | 0 .../24_projects_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../24_projects_boilerplate/src/index.js | 0 .../24_projects_boilerplate/src/index.scss | 0 .../24_projects_boilerplate/yarn.lock | 0 .../25_Custom_Hooks}/25_custom_hooks.md | 0 .../25_custom_hooks_boilerplate/.gitignore | 0 .../25_custom_hooks_boilerplate/README.md | 0 .../25_custom_hooks_boilerplate/package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../25_custom_hooks_boilerplate/src/index.js | 0 .../src/index.scss | 0 .../src/useFetch.js | 0 .../25_custom_hooks_boilerplate/yarn.lock | 0 {26_Context => docs/26_Context}/26_context.md | 0 .../26_context_boilerplate/.gitignore | 0 .../26_context_boilerplate/README.md | 0 .../26_context_boilerplate/package.json | 0 .../26_context_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../26_context_boilerplate/src/index.js | 0 .../26_context_boilerplate/src/index.scss | 0 .../26_context_boilerplate/src/useFetch.js | 0 .../26_context_boilerplate/yarn.lock | 0 {27_Ref => docs/27_Ref}/27_ref.md | 0 .../27_Ref}/27_ref_boilerplate/.gitignore | 0 .../27_Ref}/27_ref_boilerplate/README.md | 0 .../27_Ref}/27_ref_boilerplate/package.json | 0 .../27_ref_boilerplate/public/index.html | 0 .../27_ref_boilerplate/src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../27_ref_boilerplate/src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../27_Ref}/27_ref_boilerplate/src/index.js | 0 .../27_Ref}/27_ref_boilerplate/src/index.scss | 0 .../27_ref_boilerplate/src/useFetch.js | 0 .../27_Ref}/27_ref_boilerplate/yarn.lock | 0 {28_project => docs/28_project}/28_project.md | 0 .../28_project_boilerplate/.gitignore | 0 .../28_project_boilerplate/README.md | 0 .../28_project_boilerplate/package.json | 0 .../28_project_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../28_project_boilerplate/src/index.js | 0 .../28_project_boilerplate/src/index.scss | 0 .../28_project_boilerplate/src/useFetch.js | 0 .../28_project_boilerplate/yarn.lock | 0 {29_explore => docs/29_explore}/29_explore.md | 0 .../29_explore_boilerplate/.gitignore | 0 .../29_explore_boilerplate/README.md | 0 .../29_explore_boilerplate/package.json | 0 .../29_explore_boilerplate/public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../29_explore_boilerplate/src/index.js | 0 .../29_explore_boilerplate/src/index.scss | 0 .../29_explore_boilerplate/src/useFetch.js | 0 .../29_explore_boilerplate/yarn.lock | 0 .../30_conclusions}/30_conclusions.md | 0 .../30_conclusions_boilerplate/.gitignore | 0 .../30_conclusions_boilerplate/README.md | 0 .../30_conclusions_boilerplate/package.json | 0 .../public/index.html | 0 .../src/data/countries.js | 0 .../src/data/ten_most_highest_populations.js | 0 .../src/images/asabeneh.jpg | Bin .../src/images/css_logo.png | Bin .../src/images/html_logo.png | Bin .../src/images/js_logo.png | Bin .../src/images/react_logo.png | Bin .../30_conclusions_boilerplate/src/index.js | 0 .../30_conclusions_boilerplate/src/index.scss | 0 .../src/useFetch.js | 0 .../30_conclusions_boilerplate/yarn.lock | 0 .../08_day_changing_background_exercise.gif | Bin .../08_day_select_country_exercise.gif | Bin {images => docs/images}/123456.PNG | Bin {images => docs/images}/30_days_of_react.jpg | Bin .../images}/30_days_of_react_banner_day_1.jpg | Bin .../30_days_of_react_banner_day_10.jpg | Bin .../30_days_of_react_banner_day_11.jpg | Bin .../30_days_of_react_banner_day_12.jpg | Bin .../30_days_of_react_banner_day_13.jpg | Bin .../30_days_of_react_banner_day_14.jpg | Bin .../30_days_of_react_banner_day_15.jpg | Bin .../30_days_of_react_banner_day_16.jpg | Bin .../30_days_of_react_banner_day_17.jpg | Bin .../30_days_of_react_banner_day_18.jpg | Bin .../30_days_of_react_banner_day_19.jpg | Bin .../images}/30_days_of_react_banner_day_2.jpg | Bin .../30_days_of_react_banner_day_20.jpg | Bin .../30_days_of_react_banner_day_21.jpg | Bin .../30_days_of_react_banner_day_22.jpg | Bin .../30_days_of_react_banner_day_23.jpg | Bin .../30_days_of_react_banner_day_24.jpg | Bin .../30_days_of_react_banner_day_25.jpg | Bin .../30_days_of_react_banner_day_26.jpg | Bin .../30_days_of_react_banner_day_27.jpg | Bin .../30_days_of_react_banner_day_28.jpg | Bin .../30_days_of_react_banner_day_29.jpg | Bin .../images}/30_days_of_react_banner_day_3.jpg | Bin .../30_days_of_react_banner_day_30.jpg | Bin .../images}/30_days_of_react_banner_day_4.jpg | Bin .../images}/30_days_of_react_banner_day_5.jpg | Bin .../images}/30_days_of_react_banner_day_6.jpg | Bin .../images}/30_days_of_react_banner_day_7.jpg | Bin .../images}/30_days_of_react_banner_day_8.jpg | Bin .../images}/30_days_of_react_banner_day_9.jpg | Bin .../images}/adding_project_to_vscode.png | Bin {images => docs/images}/all_jsx_final.png | Bin {images => docs/images}/arithmetic copy.png | Bin {images => docs/images}/arithmetic.png | Bin {images => docs/images}/array_index copy.png | Bin {images => docs/images}/array_index.png | Bin .../images}/assignment_operators.png | Bin .../images}/average_cat_weight_and_age.png | Bin {images => docs/images}/become_patreon.png | Bin {images => docs/images}/className_warning.png | Bin {images => docs/images}/cleaned_launched.png | Bin .../images}/comparison_operators.png | Bin {images => docs/images}/components.png | Bin .../images}/components_example.png | Bin .../images}/console_log_multipl_arguments.png | Bin ...te-react-app-first-release_jul-22-2016.png | Bin .../images}/create_react_app_file_cleaned.png | Bin .../images}/create_react_app_files.png | Bin {images => docs/images}/date_time_object.png | Bin .../day_6_hexadecimal_colors_exercise.png | Bin .../day_6_number_generater_exercise.png | Bin ...day_6_ten_highest_populations_exercise.png | Bin {images => docs/images}/download_node.png | Bin {images => docs/images}/dynamic_data.png | Bin {images => docs/images}/first_react_app.png | Bin .../images}/frontend_technologies.png | Bin {images => docs/images}/google_chrome.png | Bin .../images}/hexadecimal_color_exercise.png | Bin .../inecting_data_to_jsx_create_react_app.png | Bin {images => docs/images}/install_node.png | Bin {images => docs/images}/internal_style.png | Bin .../images}/js_code_on_chrome_console.png | Bin {images => docs/images}/js_code_vscode.png | Bin .../js_internal_style_create_react_app.png | Bin .../images}/jsx_use_create_react_app.png | Bin .../images}/launched_on_new_tab.png | Bin {images => docs/images}/local_storage.png | Bin {images => docs/images}/map_list_id.png | Bin {images => docs/images}/multiple_script.png | Bin .../images}/news_letter_design.png | Bin .../images}/npm_package_day_15.png | Bin {images => docs/images}/npm_registry.png | Bin .../opening_chrome_console_shortcut.png | Bin .../images}/opening_developer_tool.png | Bin .../images}/opening_project_on_vscode.png | Bin {images => docs/images}/paypal_lg.png | Bin .../images}/raising_syntax_error.png | Bin .../images}/react_app_starting.png | Bin {images => docs/images}/react_boilerplate.png | Bin .../images}/react_bolier_plate_cleaned.png | Bin .../images}/react_event_on_mouse_enter.gif | Bin .../images}/react_for_everyone.png | Bin {images => docs/images}/react_logo.gif | Bin {images => docs/images}/react_logo.png | Bin {images => docs/images}/react_popularity.png | Bin .../images}/react_repo_1_oct_2020.png | Bin {images => docs/images}/regex.png | Bin .../images}/removing_unique_id_warning.png | Bin .../images}/rendering_componnets.png | Bin {images => docs/images}/rendering_image.png | Bin {images => docs/images}/rendering_jsx.png | Bin {images => docs/images}/rendering_list.png | Bin .../images}/rendering_more_jsx_content_.png | Bin ...ring_more_jsx_content_create_react_app.png | Bin .../rendering_multiple_jsx_elements.png | Bin ...multiple_jsx_elements_create-react_app.png | Bin {images => docs/images}/running_script.png | Bin {images => docs/images}/scripts_on_vscode.png | Bin {images => docs/images}/string_indexes.png | Bin .../images}/styling_all_jsx_elements.png | Bin .../images}/styling_jsx_element.png | Bin .../styling_jsx_inline_create_react_app.png | Bin .../images}/user_card_design_jsx.png | Bin {images => docs/images}/vsc_live_server.png | Bin {images => docs/images}/vscode.png | Bin {images => docs/images}/vscode_ui.png | Bin {images => docs/images}/vue_popularity.png | Bin .../images}/vue_repo_1_oct_2020.png | Bin {images => docs/images}/web_storage.png | Bin readMe.md => docs/index.md | 53 +- mkdocs.yml | 60 + 538 files changed, 4698 insertions(+), 4550 deletions(-) create mode 100644 .envrc create mode 100644 README.md rename {01_Day_JavaScript_Refresher => docs/01_Day_JavaScript_Refresher}/01_javascript_refresher.md (96%) rename {02_Day_Introduction_to_React => docs/02_Day_Introduction_to_React}/02_introduction_to_react.md (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up.md (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/.gitignore (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/README.md (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/package.json (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/public/index.html (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/images/asabeneh.jpg (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/images/css_logo.png (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/images/html_logo.png (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/images/react_logo.png (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/index.js (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/src/math.js (100%) rename {03_Day_Setting_Up => docs/03_Day_Setting_Up}/03_setting_up_boilerplate/yarn.lock (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components.md (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/.gitignore (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/README.md (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/package.json (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/public/index.html (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/images/asabeneh.jpg (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/images/css_logo.png (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/images/html_logo.png (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/images/js_logo.png (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/images/react_logo.png (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/src/index.js (100%) rename {04_Day_Components => docs/04_Day_Components}/04_components_boilerplate/yarn.lock (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props.md (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/.gitignore (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/README.md (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/package.json (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/public/index.html (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/images/asabeneh.jpg (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/images/css_logo.png (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/images/html_logo.png (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/images/js_logo.png (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/images/react_logo.png (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/src/index.js (100%) rename {05_Day_Props => docs/05_Day_Props}/05_props_boilerplate/yarn.lock (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys.md (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/.gitignore (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/README.md (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/package.json (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/public/index.html (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/data/countries.js (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/images/asabeneh.jpg (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/images/css_logo.png (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/images/html_logo.png (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/images/js_logo.png (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/images/react_logo.png (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/src/index.js (100%) rename {06_Day_Map_List_Keys => docs/06_Day_Map_List_Keys}/06_map_list_keys_boilerplate/yarn.lock (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/.gitignore (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/README.md (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/package.json (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/public/index.html (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/data/countries.js (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/images/asabeneh.jpg (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/images/css_logo.png (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/images/html_logo.png (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/images/js_logo.png (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/images/react_logo.png (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/src/index.js (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_based_components_boilerplate/yarn.lock (100%) rename {07_Day_Class_Components => docs/07_Day_Class_Components}/07_class_components.md (100%) rename {08_Day_States => docs/08_Day_States}/08_states.md (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/.gitignore (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/README.md (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/package.json (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/public/index.html (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/data/countries.js (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/images/asabeneh.jpg (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/images/css_logo.png (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/images/html_logo.png (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/images/js_logo.png (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/images/react_logo.png (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/src/index.js (100%) rename {08_Day_States => docs/08_Day_States}/08_states_boilerplate/yarn.lock (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering.md (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/.gitignore (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/README.md (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/package.json (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/public/index.html (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/data/countries.js (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/images/asabeneh.jpg (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/images/css_logo.png (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/images/html_logo.png (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/images/js_logo.png (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/images/react_logo.png (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/src/index.js (100%) rename {09_Day_Conditional_Rendering => docs/09_Day_Conditional_Rendering}/09_conditional_rendering_boilerplate/yarn.lock (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure.md (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/.gitignore (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/README.md (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/package.json (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/public/index.html (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/App.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/color/HexaColor.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/country/Country.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/footer/Footer.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/header/Header.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/main/Main.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/shared/Button.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/components/user/UserCard.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/data/countries.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/images/asabeneh.jpg (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/images/css_logo.png (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/images/html_logo.png (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/images/js_logo.png (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/images/react_logo.png (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/index.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/button-styles.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/common.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/country.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/footer.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/header.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/index.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/styles/user-card.css (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/utils/display-date-and-time.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/src/utils/hexadecimal-color-generator.js (100%) rename {10_React_Project_Folder_Structure => docs/10_React_Project_Folder_Structure}/10_react_project_folder_structure_boilerplate/yarn.lock (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events.md (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/.gitignore (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/README.md (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/package.json (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/public/index.html (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/data/countries.js (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/images/asabeneh.jpg (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/images/css_logo.png (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/images/html_logo.png (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/images/js_logo.png (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/images/react_logo.png (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/src/index.js (100%) rename {11_Day_Events => docs/11_Day_Events}/11_events_boilerplate/yarn.lock (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms.md (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/.gitignore (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/README.md (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/package.json (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/public/index.html (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/data/countries.js (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/images/asabeneh.jpg (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/images/css_logo.png (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/images/html_logo.png (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/images/js_logo.png (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/images/react_logo.png (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/src/index.js (100%) rename {12_Day_Forms => docs/12_Day_Forms}/12_forms_boilerplate/yarn.lock (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input.md (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/.gitignore (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/README.md (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/package.json (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/public/index.html (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/data/countries.js (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/images/asabeneh.jpg (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/images/css_logo.png (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/images/html_logo.png (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/images/js_logo.png (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/images/react_logo.png (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/src/index.js (100%) rename {13_Day_Controlled_Versus_Uncontrolled_Input => docs/13_Day_Controlled_Versus_Uncontrolled_Input}/13_uncontrolled_input_boilerplate/yarn.lock (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles.md (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/.gitignore (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/README.md (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/package.json (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/public/index.html (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/data/countries.js (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/images/asabeneh.jpg (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/images/css_logo.png (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/images/html_logo.png (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/images/js_logo.png (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/images/react_logo.png (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/src/index.js (100%) rename {14_Day_Component_Life_Cycles => docs/14_Day_Component_Life_Cycles}/14_component_life_cycles_boilerplate/yarn.lock (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_party_packages.md (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/.gitignore (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/README.md (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/package.json (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/public/index.html (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/data/countries.js (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/images/asabeneh.jpg (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/images/css_logo.png (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/images/html_logo.png (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/images/js_logo.png (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/images/react_logo.png (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/src/index.js (100%) rename {15_Third_Party_Packages => docs/15_Third_Party_Packages}/15_third_pary_packages_boilerplate/yarn.lock (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component.md (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/.gitignore (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/README.md (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/package.json (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/public/index.html (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/data/countries.js (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/images/asabeneh.jpg (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/images/css_logo.png (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/images/html_logo.png (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/images/js_logo.png (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/images/react_logo.png (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/src/index.js (100%) rename {16_Higher_Order_Component => docs/16_Higher_Order_Component}/16_higher_order_component_boilerplate/yarn.lock (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router.md (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/.gitignore (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/README.md (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/package.json (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/public/index.html (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/data/countries.js (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/images/asabeneh.jpg (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/images/css_logo.png (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/images/html_logo.png (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/images/js_logo.png (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/images/react_logo.png (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/src/index.js (100%) rename {17_React_Router => docs/17_React_Router}/17_react_router_boilerplate/yarn.lock (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/.gitignore (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/README.md (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/package.json (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/public/index.html (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/data/countries.js (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/images/asabeneh.jpg (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/images/css_logo.png (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/images/html_logo.png (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/images/js_logo.png (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/images/react_logo.png (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/src/index.js (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_and_axios_boilerplate/yarn.lock (100%) rename {18_Fetch_And_Axios => docs/18_Fetch_And_Axios}/18_fetch_axios.md (100%) rename {19_projects => docs/19_projects}/19_projects.md (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/.gitignore (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/README.md (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/package.json (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/public/index.html (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/data/countries.js (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/images/asabeneh.jpg (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/images/css_logo.png (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/images/html_logo.png (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/images/js_logo.png (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/images/react_logo.png (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/src/index.js (100%) rename {19_projects => docs/19_projects}/19_projects_boilerplate/yarn.lock (100%) rename {20_projects => docs/20_projects}/20_projects.md (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/.gitignore (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/README.md (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/package.json (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/public/index.html (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/data/countries.js (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/images/asabeneh.jpg (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/images/css_logo.png (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/images/html_logo.png (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/images/js_logo.png (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/images/react_logo.png (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/src/index.js (100%) rename {20_projects => docs/20_projects}/20_projects_boilerplate/yarn.lock (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks.md (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/.gitignore (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/README.md (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/package.json (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/public/index.html (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/data/countries.js (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/images/asabeneh.jpg (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/images/css_logo.png (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/images/html_logo.png (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/images/js_logo.png (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/images/react_logo.png (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/index.js (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/src/index.scss (100%) rename {21_Introducing_Hooks => docs/21_Introducing_Hooks}/21_introducing_hooks_boilerplate/yarn.lock (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks.md (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/.gitignore (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/README.md (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/package.json (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/public/index.html (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/data/countries.js (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/images/asabeneh.jpg (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/images/css_logo.png (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/images/html_logo.png (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/images/js_logo.png (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/images/react_logo.png (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/index.js (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/src/index.scss (100%) rename {22_Form_Using_Hooks => docs/22_Form_Using_Hooks}/22_form_using_hooks_boilerplate/yarn.lock (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks.md (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/.gitignore (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/README.md (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/package.json (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/public/index.html (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/data/countries.js (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/images/asabeneh.jpg (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/images/css_logo.png (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/images/html_logo.png (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/images/js_logo.png (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/images/react_logo.png (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/index.js (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/src/index.scss (100%) rename {23_Fetching_Data_Using_Hooks => docs/23_Fetching_Data_Using_Hooks}/23_fetching_data_using_hooks_boilerplate/yarn.lock (100%) rename {24_projects => docs/24_projects}/24_projects.md (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/.gitignore (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/README.md (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/package.json (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/public/index.html (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/data/countries.js (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/images/asabeneh.jpg (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/images/css_logo.png (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/images/html_logo.png (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/images/js_logo.png (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/images/react_logo.png (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/index.js (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/src/index.scss (100%) rename {24_projects => docs/24_projects}/24_projects_boilerplate/yarn.lock (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks.md (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/.gitignore (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/README.md (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/package.json (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/public/index.html (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/data/countries.js (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/images/asabeneh.jpg (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/images/css_logo.png (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/images/html_logo.png (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/images/js_logo.png (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/images/react_logo.png (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/index.js (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/index.scss (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/src/useFetch.js (100%) rename {25_Custom_Hooks => docs/25_Custom_Hooks}/25_custom_hooks_boilerplate/yarn.lock (100%) rename {26_Context => docs/26_Context}/26_context.md (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/.gitignore (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/README.md (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/package.json (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/public/index.html (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/data/countries.js (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/images/asabeneh.jpg (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/images/css_logo.png (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/images/html_logo.png (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/images/js_logo.png (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/images/react_logo.png (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/index.js (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/index.scss (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/src/useFetch.js (100%) rename {26_Context => docs/26_Context}/26_context_boilerplate/yarn.lock (100%) rename {27_Ref => docs/27_Ref}/27_ref.md (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/.gitignore (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/README.md (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/package.json (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/public/index.html (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/data/countries.js (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/images/asabeneh.jpg (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/images/css_logo.png (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/images/html_logo.png (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/images/js_logo.png (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/images/react_logo.png (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/index.js (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/index.scss (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/src/useFetch.js (100%) rename {27_Ref => docs/27_Ref}/27_ref_boilerplate/yarn.lock (100%) rename {28_project => docs/28_project}/28_project.md (100%) rename {28_project => docs/28_project}/28_project_boilerplate/.gitignore (100%) rename {28_project => docs/28_project}/28_project_boilerplate/README.md (100%) rename {28_project => docs/28_project}/28_project_boilerplate/package.json (100%) rename {28_project => docs/28_project}/28_project_boilerplate/public/index.html (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/data/countries.js (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/images/asabeneh.jpg (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/images/css_logo.png (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/images/html_logo.png (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/images/js_logo.png (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/images/react_logo.png (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/index.js (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/index.scss (100%) rename {28_project => docs/28_project}/28_project_boilerplate/src/useFetch.js (100%) rename {28_project => docs/28_project}/28_project_boilerplate/yarn.lock (100%) rename {29_explore => docs/29_explore}/29_explore.md (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/.gitignore (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/README.md (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/package.json (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/public/index.html (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/data/countries.js (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/images/asabeneh.jpg (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/images/css_logo.png (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/images/html_logo.png (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/images/js_logo.png (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/images/react_logo.png (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/index.js (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/index.scss (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/src/useFetch.js (100%) rename {29_explore => docs/29_explore}/29_explore_boilerplate/yarn.lock (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions.md (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/.gitignore (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/README.md (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/package.json (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/public/index.html (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/data/countries.js (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/data/ten_most_highest_populations.js (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/images/asabeneh.jpg (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/images/css_logo.png (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/images/html_logo.png (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/images/js_logo.png (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/images/react_logo.png (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/index.js (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/index.scss (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/src/useFetch.js (100%) rename {30_conclusions => docs/30_conclusions}/30_conclusions_boilerplate/yarn.lock (100%) rename {images => docs/images}/08_day_changing_background_exercise.gif (100%) rename {images => docs/images}/08_day_select_country_exercise.gif (100%) rename {images => docs/images}/123456.PNG (100%) rename {images => docs/images}/30_days_of_react.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_1.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_10.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_11.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_12.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_13.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_14.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_15.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_16.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_17.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_18.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_19.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_2.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_20.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_21.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_22.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_23.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_24.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_25.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_26.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_27.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_28.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_29.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_3.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_30.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_4.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_5.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_6.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_7.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_8.jpg (100%) rename {images => docs/images}/30_days_of_react_banner_day_9.jpg (100%) rename {images => docs/images}/adding_project_to_vscode.png (100%) rename {images => docs/images}/all_jsx_final.png (100%) rename {images => docs/images}/arithmetic copy.png (100%) rename {images => docs/images}/arithmetic.png (100%) rename {images => docs/images}/array_index copy.png (100%) rename {images => docs/images}/array_index.png (100%) rename {images => docs/images}/assignment_operators.png (100%) rename {images => docs/images}/average_cat_weight_and_age.png (100%) rename {images => docs/images}/become_patreon.png (100%) rename {images => docs/images}/className_warning.png (100%) rename {images => docs/images}/cleaned_launched.png (100%) rename {images => docs/images}/comparison_operators.png (100%) rename {images => docs/images}/components.png (100%) rename {images => docs/images}/components_example.png (100%) rename {images => docs/images}/console_log_multipl_arguments.png (100%) rename {images => docs/images}/create-react-app-first-release_jul-22-2016.png (100%) rename {images => docs/images}/create_react_app_file_cleaned.png (100%) rename {images => docs/images}/create_react_app_files.png (100%) rename {images => docs/images}/date_time_object.png (100%) rename {images => docs/images}/day_6_hexadecimal_colors_exercise.png (100%) rename {images => docs/images}/day_6_number_generater_exercise.png (100%) rename {images => docs/images}/day_6_ten_highest_populations_exercise.png (100%) rename {images => docs/images}/download_node.png (100%) rename {images => docs/images}/dynamic_data.png (100%) rename {images => docs/images}/first_react_app.png (100%) rename {images => docs/images}/frontend_technologies.png (100%) rename {images => docs/images}/google_chrome.png (100%) rename {images => docs/images}/hexadecimal_color_exercise.png (100%) rename {images => docs/images}/inecting_data_to_jsx_create_react_app.png (100%) rename {images => docs/images}/install_node.png (100%) rename {images => docs/images}/internal_style.png (100%) rename {images => docs/images}/js_code_on_chrome_console.png (100%) rename {images => docs/images}/js_code_vscode.png (100%) rename {images => docs/images}/js_internal_style_create_react_app.png (100%) rename {images => docs/images}/jsx_use_create_react_app.png (100%) rename {images => docs/images}/launched_on_new_tab.png (100%) rename {images => docs/images}/local_storage.png (100%) rename {images => docs/images}/map_list_id.png (100%) rename {images => docs/images}/multiple_script.png (100%) rename {images => docs/images}/news_letter_design.png (100%) rename {images => docs/images}/npm_package_day_15.png (100%) rename {images => docs/images}/npm_registry.png (100%) rename {images => docs/images}/opening_chrome_console_shortcut.png (100%) rename {images => docs/images}/opening_developer_tool.png (100%) rename {images => docs/images}/opening_project_on_vscode.png (100%) rename {images => docs/images}/paypal_lg.png (100%) rename {images => docs/images}/raising_syntax_error.png (100%) rename {images => docs/images}/react_app_starting.png (100%) rename {images => docs/images}/react_boilerplate.png (100%) rename {images => docs/images}/react_bolier_plate_cleaned.png (100%) rename {images => docs/images}/react_event_on_mouse_enter.gif (100%) rename {images => docs/images}/react_for_everyone.png (100%) rename {images => docs/images}/react_logo.gif (100%) rename {images => docs/images}/react_logo.png (100%) rename {images => docs/images}/react_popularity.png (100%) rename {images => docs/images}/react_repo_1_oct_2020.png (100%) rename {images => docs/images}/regex.png (100%) rename {images => docs/images}/removing_unique_id_warning.png (100%) rename {images => docs/images}/rendering_componnets.png (100%) rename {images => docs/images}/rendering_image.png (100%) rename {images => docs/images}/rendering_jsx.png (100%) rename {images => docs/images}/rendering_list.png (100%) rename {images => docs/images}/rendering_more_jsx_content_.png (100%) rename {images => docs/images}/rendering_more_jsx_content_create_react_app.png (100%) rename {images => docs/images}/rendering_multiple_jsx_elements.png (100%) rename {images => docs/images}/rendering_multiple_jsx_elements_create-react_app.png (100%) rename {images => docs/images}/running_script.png (100%) rename {images => docs/images}/scripts_on_vscode.png (100%) rename {images => docs/images}/string_indexes.png (100%) rename {images => docs/images}/styling_all_jsx_elements.png (100%) rename {images => docs/images}/styling_jsx_element.png (100%) rename {images => docs/images}/styling_jsx_inline_create_react_app.png (100%) rename {images => docs/images}/user_card_design_jsx.png (100%) rename {images => docs/images}/vsc_live_server.png (100%) rename {images => docs/images}/vscode.png (100%) rename {images => docs/images}/vscode_ui.png (100%) rename {images => docs/images}/vue_popularity.png (100%) rename {images => docs/images}/vue_repo_1_oct_2020.png (100%) rename {images => docs/images}/web_storage.png (100%) rename readMe.md => docs/index.md (94%) create mode 100644 mkdocs.yml diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..8624131 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +source .venv/bin/activate diff --git a/README.md b/README.md new file mode 100644 index 0000000..8404b4a --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# 30 Days Of React + +Offline access for the 30 days of React learning challenge. +![30 Days of React](image.png) + +This project provides offline access to the "30 Days of React" learning challenge using MkDocs for documentation serving. + +## Requirements + +- Python 3.6 or higher +- [pip](https://pip.pypa.io/en/stable/installation/) + +## Getting Started + +### 1. Clone the repository +```sh +git clone https://github.com/Asabeneh/30-Days-Of-React.git +cd 30-Days-Of-React +``` + +### 2. Set up a virtual environment (recommended) +```sh +python -m venv .venv +source .venv/bin/activate # On Windows use `.venv\Scripts\activate` +``` + +### 3. Install MkDocs +```sh +pip install mkdocs mkdocs-material +``` + +### 4. Serve the documentation +```sh +mkdocs serve +``` + +This will start a local server (usually at http://127.0.0.1:8000/) where you can browse the documentation offline. + +## Virtual Environment Management + +### Option A: Manual Activation (Default) +If you're using a virtual environment manually, you **must** activate it every time you start a new terminal session: + +```sh +source .venv/bin/activate # ✅ Required before running mkdocs serve +mkdocs serve +``` + +### Option B: Automatic Virtual Environment Activation (Advanced Users) +**This section is only for users who want automatic virtual environment activation using direnv.** + +If you prefer automatic activation when entering the project directory, you can use [direnv](https://direnv.net/): + +#### Setup direnv (one-time installation): +```sh +# Ubuntu/Debian +sudo apt install direnv + +# macOS +brew install direnv + +# Add to your shell profile (~/.bashrc, ~/.zshrc, etc.) +eval "$(direnv hook bash)" # for bash +eval "$(direnv hook zsh)" # for zsh +``` + +#### Configure automatic activation for this project: +```sh +# In your project directory +echo "source .venv/bin/activate" > .envrc +direnv allow +``` + +After this setup, your virtual environment will automatically activate when you `cd` into the project directory. + +## Additional Notes + +- All course content is located in the `docs/` folder +- Configuration settings can be found in `mkdocs.yml` +- The virtual environment folder is named `.venv` to follow Python conventions + +## Troubleshooting + +- If `mkdocs serve` fails, ensure your virtual environment is activated and dependencies are installed +- On Windows, use backslashes for paths: `.venv\Scripts\activate` +- If you encounter permission issues with direnv, make sure it's properly integrated with your shell + +Happy learning! 🚀 \ No newline at end of file diff --git a/01_Day_JavaScript_Refresher/01_javascript_refresher.md b/docs/01_Day_JavaScript_Refresher/01_javascript_refresher.md similarity index 96% rename from 01_Day_JavaScript_Refresher/01_javascript_refresher.md rename to docs/01_Day_JavaScript_Refresher/01_javascript_refresher.md index 7d03fb4..e64289c 100644 --- a/01_Day_JavaScript_Refresher/01_javascript_refresher.md +++ b/docs/01_Day_JavaScript_Refresher/01_javascript_refresher.md @@ -1,4523 +1,4523 @@ -
- -

30 Days Of React: JavaScript Refresher

- - - - - - Twitter Follow - - -Author: -Asabeneh Yetayeh
- October, 2020 -
- -
- -[<< Day 0](../readMe.md) | [Day 2 >>](../02_Day_Introduction_to_React/02_introduction_to_react.md) - -![30 Days of React banner](../images/30_days_of_react_banner_day_1.jpg) - -- [JavaScript Refresher](#javascript-refresher) - - [0. Adding JavaScript to a Web Page](#0-adding-javascript-to-a-web-page) - - [Inline Script](#inline-script) - - [Internal Script](#internal-script) - - [External Script](#external-script) - - [Multiple External Scripts](#multiple-external-scripts) - - [1. Variables](#1-variables) - - [2. Data types](#2-data-types) - - [3. Arrays](#3-arrays) - - [How to create an empty array](#how-to-create-an-empty-array) - - [How to create an array with values](#how-to-create-an-array-with-values) - - [Creating an array using split](#creating-an-array-using-split) - - [Accessing array items using index](#accessing-array-items-using-index) - - [Modifying array element](#modifying-array-element) - - [Methods to manipulate array](#methods-to-manipulate-array) - - [Array Constructor](#array-constructor) - - [Creating static values with fill](#creating-static-values-with-fill) - - [Concatenating array using concat](#concatenating-array-using-concat) - - [Getting array length](#getting-array-length) - - [Getting index of an element in an array](#getting-index-of-an-element-in-an-array) - - [Getting last index of an element in array](#getting-last-index-of-an-element-in-array) - - [Checking array](#checking-array) - - [Converting array to string](#converting-array-to-string) - - [Joining array elements](#joining-array-elements) - - [Slice array elements](#slice-array-elements) - - [Splice method in array](#splice-method-in-array) - - [Adding item to an array using push](#adding-item-to-an-array-using-push) - - [Removing the end element using pop](#removing-the-end-element-using-pop) - - [Removing an element from the beginning](#removing-an-element-from-the-beginning) - - [Add an element from the beginning](#add-an-element-from-the-beginning) - - [Reversing array order](#reversing-array-order) - - [Sorting elements in array](#sorting-elements-in-array) - - [Array of arrays](#array-of-arrays) - - [💻 Exercise](#-exercise) - - [Exercise: Level 1](#exercise-level-1) - - [Exercise: Level 2](#exercise-level-2) - - [Exercise: Level 3](#exercise-level-3) - - [4. Conditionals](#4-conditionals) - - [If](#if) - - [If Else](#if-else) - - [If Else if Else](#if-else-if-else) - - [Switch](#switch) - - [Ternary Operators](#ternary-operators) - - [💻 Exercises](#-exercises) - - [Exercises: Level 1](#exercises-level-1) - - [Exercises: Level 2](#exercises-level-2) - - [Exercises: Level 3](#exercises-level-3) - - [5. Loops](#5-loops) - - [Types of Loops](#types-of-loops) - - [1. for](#1-for) - - [2. while](#2-while) - - [3. do while](#3-do-while) - - [4. for of](#4-for-of) - - [5. forEach](#5-foreach) - - [6. for in](#6-for-in) - - [Interrupting a loop and skipping an item](#interrupting-a-loop-and-skipping-an-item) - - [break](#break) - - [continue](#continue) - - [Conclusions](#conclusions) - - [6. Scope](#6-scope) - - [Window Scope](#window-scope) - - [Global scope](#global-scope) - - [Local scope](#local-scope) - - [7. Object](#7-object) - - [Creating an empty object](#creating-an-empty-object) - - [Creating an objecting with values](#creating-an-objecting-with-values) - - [Getting values from an object](#getting-values-from-an-object) - - [Creating object methods](#creating-object-methods) - - [Setting new key for an object](#setting-new-key-for-an-object) - - [Object Methods](#object-methods) - - [Getting object keys using Object.keys()](#getting-object-keys-using-objectkeys) - - [Getting object values using Object.values()](#getting-object-values-using-objectvalues) - - [Getting object keys and values using Object.entries()](#getting-object-keys-and-values-using-objectentries) - - [Checking properties using hasOwnProperty()](#checking-properties-using-hasownproperty) - - [💻 Exercises](#-exercises-1) - - [Exercises: Level 1](#exercises-level-1-1) - - [Exercises: Level 2](#exercises-level-2-1) - - [Exercises: Level 3](#exercises-level-3-1) - - [8. Functions](#8-functions) - - [Function Declaration](#function-declaration) - - [Function without a parameter and return](#function-without-a-parameter-and-return) - - [Function returning value](#function-returning-value) - - [Function with a parameter](#function-with-a-parameter) - - [Function with two parameters](#function-with-two-parameters) - - [Function with many parameters](#function-with-many-parameters) - - [Function with unlimited number of parameters](#function-with-unlimited-number-of-parameters) - - [Unlimited number of parameters in regular function](#unlimited-number-of-parameters-in-regular-function) - - [Unlimited number of parameters in arrow function](#unlimited-number-of-parameters-in-arrow-function) - - [Anonymous Function](#anonymous-function) - - [Expression Function](#expression-function) - - [Self Invoking Functions](#self-invoking-functions) - - [Arrow Function](#arrow-function) - - [Function with default parameters](#function-with-default-parameters) - - [Function declaration versus Arrow function](#function-declaration-versus-arrow-function) - - [💻 Exercises](#-exercises-2) - - [Exercises: Level 1](#exercises-level-1-2) - - [Exercises: Level 2](#exercises-level-2-2) - - [Exercises: Level 3](#exercises-level-3-2) - - [9. Higher Order Function](#9-higher-order-function) - - [Callback](#callback) - - [Returning function](#returning-function) - - [setting time](#setting-time) - - [setInterval](#setinterval) - - [setTimeout](#settimeout) - - [10. Destructuring and Spreading](#10-destructuring-and-spreading) - - [What is Destructuring?](#what-is-destructuring) - - [What can we destructure?](#what-can-we-destructure) - - [1. Destructuring arrays](#1-destructuring-arrays) - - [2. Destructuring objects](#2-destructuring-objects) - - [Exercises](#exercises) - - [Spread or Rest Operator](#spread-or-rest-operator) - - [Spread operator to get the rest of array elements](#spread-operator-to-get-the-rest-of-array-elements) - - [Spread operator to copy array](#spread-operator-to-copy-array) - - [Spread operator to copy object](#spread-operator-to-copy-object) - - [Spread operator with arrow function](#spread-operator-with-arrow-function) - - [11. Functional Programming](#11-functional-programming) - - [1. forEach](#1-foreach) - - [2. map](#2-map) - - [3. filter](#3-filter) - - [4. reduce](#4-reduce) - - [5. find](#5-find) - - [6. findIndex](#6-findindex) - - [7. some](#7-some) - - [8. every](#8-every) - - [Exercises](#exercises-1) - - [12. Classes](#12-classes) - - [Defining a classes](#defining-a-classes) - - [Class Instantiation](#class-instantiation) - - [Class Constructor](#class-constructor) - - [Default values with constructor](#default-values-with-constructor) - - [Class methods](#class-methods) - - [Properties with initial value](#properties-with-initial-value) - - [getter](#getter) - - [setter](#setter) - - [Static method](#static-method) - - [Inheritance](#inheritance) - - [Overriding methods](#overriding-methods) - - [Exercises](#exercises-2) - - [Exercises Level 1](#exercises-level-1-3) - - [Exercises Level 2](#exercises-level-2-3) - - [Exercises Level 3](#exercises-level-3-3) - - [13 Document Object Model(DOM)](#13-document-object-modeldom) - -## JavaScript Refresher - -### 0. Adding JavaScript to a Web Page - -JavaScript can be added to a web page in three different ways: - -- **_Inline script_** -- **_Internal script_** -- **_External script_** -- **_Multiple External scripts_** - -The following sections show different ways of adding JavaScript code to your web page. - -#### Inline Script - -Create a project folder on your desktop or in any location, name it 30DaysOfJS and create an **_index.html_** file in the project folder. Then paste the following code and open it in a browser, for example [Chrome](https://www.google.com/chrome/). - -```html - - - - 30DaysOfScript:Inline Script - - - - - -``` - -Now, you just wrote your first inline script. We can create a pop up alert message using the _alert()_ built-in function. - -#### Internal Script - -The internal script can be written in the _head_ or the _body_, but it is preferred to put it on the body of the HTML document. -First, let us write on the head part of the page. - -```html - - - - 30DaysOfScript:Internal Script - - - - -``` - -This is how we write an internal script most of the time. Writing the JavaScript code in the body section is the most preferred option. Open the browser console to see the output from the console.log() - -```html - - - - 30DaysOfScript:Internal Script - - - - - - -``` - -Open the browser console to see the output from the console.log() - -![js code from vscode](../images/js_code_vscode.png) - -#### External Script - -Similar to the internal script, the external script link can be on the header or body, but it is preferred to put it in the body. -First, we should create an external JavaScript file with .js extension. All files ending with .js extension. All files ending with .js extension are JavaScript files. Create a file named introduction.js inside your project directory and write the following code and link this .js file at the bottom of the body. - -```js -console.log('Welcome to 30DaysOfJavaScript') -``` - -External scripts in the _head_: - -```html - - - - 30DaysOfJavaScript:External script - - - - -``` - -External scripts in the _body_: - -```html - - - - 30DaysOfJavaScript:External script - - - //it could be in the header or in the body // Here is the recommended place - to put the external script - - - -``` - -Open the browser console to see the output of the console.log() - -#### Multiple External Scripts - -We can also link multiple external JavaScript files to a web page. -Create a helloworld.js file inside the 30DaysOfJS folder and write the following code. - -```js -console.log('Hello, World!') -``` - -```html - - - - Multiple External Scripts - - - - - - -``` - -_Your main.js file should be below all other scripts_. It is very important to remember this. - -![Multiple Script](../images/multiple_script.png) - -### 1. Variables - -We use _var_, _let_ and _const_ to declare a variable. The _var_ is functions scope, however _let_ and _const_ are block scope. In this challenge we use ES6 and above features of JavaScript. Avoid using _var_. - -```js -let firstName = 'Asabeneh' -firstName = 'Eyob' - -const PI = 3.14 // Not allowed to reassign PI to a new value -// PI = 3. -``` - -### 2. Data types - -If you do not feel comfortable with data types check the following [link](https://github.com/Asabeneh/30-Days-Of-JavaScript/blob/master/02_Day_Data_types/02_day_data_types.md) - -### 3. Arrays - -In contrast to variables, an array can store _multiple values_. Each value in an array has an _index_, and each index has _a reference in a memory address_. Each value can be accessed by using their _indexes_. The index of an array starts from _zero_, and the index of the last element is less by one from the length of the array. - -An array is a collection of different data types which are ordered and changeable(modifiable). An array allows storing duplicate elements and different data types. An array can be empty, or it may have different data type values. - -#### How to create an empty array - -In JavaScript, we can create an array in different ways. Let us see different ways to create an array. -It is very common to use _const_ instead of _let_ to declare an array variable. If you are using const it means you do not use that variable name again. - -- Using Array constructor - -```js -// syntax -const arr = Array() -// or -// let arr = new Array() -console.log(arr) // [] -``` - -- Using square brackets([]) - -```js -// syntax -// This the most recommended way to create an empty list -const arr = [] -console.log(arr) -``` - -#### How to create an array with values - -Array with initial values. We use _length_ property to find the length of an array. - -```js -const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // array of numbers -const fruits = ['banana', 'orange', 'mango', 'lemon'] // array of strings, fruits -const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // array of strings, vegetables -const animalProducts = ['milk', 'meat', 'butter', 'yoghurt'] // array of strings, products -const webTechs = ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB'] // array of web technologies -const countries = ['Finland', 'Denmark', 'Sweden', 'Norway', 'Iceland'] // array of strings, countries - -// Print the array and its length - -console.log('Numbers:', numbers) -console.log('Number of numbers:', numbers.length) - -console.log('Fruits:', fruits) -console.log('Number of fruits:', fruits.length) - -console.log('Vegetables:', vegetables) -console.log('Number of vegetables:', vegetables.length) - -console.log('Animal products:', animalProducts) -console.log('Number of animal products:', animalProducts.length) - -console.log('Web technologies:', webTechs) -console.log('Number of web technologies:', webTechs.length) - -console.log('Countries:', countries) -console.log('Number of countries:', countries.length) -``` - -```sh -Numbers: [0, 3.14, 9.81, 37, 98.6, 100] -Number of numbers: 6 -Fruits: ['banana', 'orange', 'mango', 'lemon'] -Number of fruits: 4 -Vegetables: ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] -Number of vegetables: 5 -Animal products: ['milk', 'meat', 'butter', 'yoghurt'] -Number of animal products: 4 -Web technologies: ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB'] -Number of web technologies: 7 -Countries: ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway'] -Number of countries: 5 -``` - -- Array can have items of different data types - -```js -const arr = [ - 'Asabeneh', - 250, - true, - { country: 'Finland', city: 'Helsinki' }, - { skills: ['HTML', 'CSS', 'JS', 'React', 'Python'] }, -] // arr containing different data types -console.log(arr) -``` - -#### Creating an array using split - -As we have seen in the earlier section, we can split a string at different positions, and we can change to an array. Let us see the examples below. - -```js -let js = 'JavaScript' -const charsInJavaScript = js.split('') - -console.log(charsInJavaScript) // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"] - -let companiesString = 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' -const companies = companiesString.split(',') - -console.log(companies) // ["Facebook", " Google", " Microsoft", " Apple", " IBM", " Oracle", " Amazon"] -let txt = - 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' -const words = txt.split(' ') - -console.log(words) -// the text has special characters think how you can just get only the words -// ["I", "love", "teaching", "and", "empowering", "people.", "I", "teach", "HTML,", "CSS,", "JS,", "React,", "Python"] -``` - -#### Accessing array items using index - -We access each element in an array using their index. An array index starts from 0. The picture below clearly shows the index of each element in the array. - -![arr index](../images/array_index.png) - -```js -const fruits = ['banana', 'orange', 'mango', 'lemon'] -let firstFruit = fruits[0] // we are accessing the first item using its index - -console.log(firstFruit) // banana - -secondFruit = fruits[1] -console.log(secondFruit) // orange - -let lastFruit = fruits[3] -console.log(lastFruit) // lemon -// Last index can be calculated as follows - -let lastIndex = fruits.length - 1 -lastFruit = fruits[lastIndex] - -console.log(lastFruit) // lemon -``` - -```js -const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // set of numbers - -console.log(numbers.length) // => to know the size of the array, which is 6 -console.log(numbers) // -> [0, 3.14, 9.81, 37, 98.6, 100] -console.log(numbers[0]) // -> 0 -console.log(numbers[5]) // -> 100 - -let lastIndex = numbers.length - 1 -console.log(numbers[lastIndex]) // -> 100 -``` - -```js -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', -] // List of web technologies - -console.log(webTechs) // all the array items -console.log(webTechs.length) // => to know the size of the array, which is 7 -console.log(webTechs[0]) // -> HTML -console.log(webTechs[6]) // -> MongoDB - -let lastIndex = webTechs.length - 1 -console.log(webTechs[lastIndex]) // -> MongoDB -``` - -```js -const countries = [ - 'Albania', - 'Bolivia', - 'Canada', - 'Denmark', - 'Ethiopia', - 'Finland', - 'Germany', - 'Hungary', - 'Ireland', - 'Japan', - 'Kenya', -] // List of countries - -console.log(countries) // -> all countries in array -console.log(countries[0]) // -> Albania -console.log(countries[10]) // -> Kenya - -let lastIndex = countries.length - 1 -console.log(countries[lastIndex]) // -> Kenya -``` - -```js -const shoppingCart = [ - 'Milk', - 'Mango', - 'Tomato', - 'Potato', - 'Avocado', - 'Meat', - 'Eggs', - 'Sugar', -] // List of food products - -console.log(shoppingCart) // -> all shoppingCart in array -console.log(shoppingCart[0]) // -> Milk -console.log(shoppingCart[7]) // -> Sugar - -let lastIndex = shoppingCart.length - 1 -console.log(shoppingCart[lastIndex]) // -> Sugar -``` - -#### Modifying array element - -An array is mutable(modifiable). Once an array is created, we can modify the contents of the array elements. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers[0] = 10 // changing 1 at index 0 to 10 -numbers[1] = 20 // changing 2 at index 1 to 20 - -console.log(numbers) // [10, 20, 3, 4, 5] - -const countries = [ - 'Albania', - 'Bolivia', - 'Canada', - 'Denmark', - 'Ethiopia', - 'Finland', - 'Germany', - 'Hungary', - 'Ireland', - 'Japan', - 'Kenya', -] - -countries[0] = 'Afghanistan' // Replacing Albania by Afghanistan -let lastIndex = countries.length - 1 -countries[lastIndex] = 'Korea' // Replacing Kenya by Korea - -console.log(countries) -``` - -```sh -["Afghanistan", "Bolivia", "Canada", "Denmark", "Ethiopia", "Finland", "Germany", "Hungary", "Ireland", "Japan", "Korea"] -``` - -#### Methods to manipulate array - -There are different methods to manipulate an array. These are some of the available methods to deal with arrays:_Array, length, concat, indexOf, slice, splice, join, toString, includes, lastIndexOf, isArray, fill, push, pop, shift, unshift_ - -##### Array Constructor - -Array:To create an array. - -```js -const arr = Array() // creates an an empty array -console.log(arr) - -const eightEmptyValues = Array(8) // it creates eight empty values -console.log(eightEmptyValues) // [empty x 8] -``` - -##### Creating static values with fill - -fill: Fill all the array elements with a static value - -```js -const arr = Array() // creates an an empty array -console.log(arr) - -const eightXvalues = Array(8).fill('X') // it creates eight element values filled with 'X' -console.log(eightXvalues) // ['X', 'X','X','X','X','X','X','X'] - -const eight0values = Array(8).fill(0) // it creates eight element values filled with '0' -console.log(eight0values) // [0, 0, 0, 0, 0, 0, 0, 0] - -const four4values = Array(4).fill(4) // it creates 4 element values filled with '4' -console.log(four4values) // [4, 4, 4, 4] -``` - -##### Concatenating array using concat - -concat:To concatenate two arrays. - -```js -const firstList = [1, 2, 3] -const secondList = [4, 5, 6] -const thirdList = firstList.concat(secondList) - -console.log(thirdList) // [1, 2, 3, 4, 5, 6] -``` - -```js -const fruits = ['banana', 'orange', 'mango', 'lemon'] // array of fruits -const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // array of vegetables -const fruitsAndVegetables = fruits.concat(vegetables) // concatenate the two arrays - -console.log(fruitsAndVegetables) -``` - -```sh -["banana", "orange", "mango", "lemon", "Tomato", "Potato", "Cabbage", "Onion", "Carrot"] -``` - -##### Getting array length - -Length:To know the size of the array - -```js -const numbers = [1, 2, 3, 4, 5] -console.log(numbers.length) // -> 5 is the size of the array -``` - -##### Getting index of an element in an array - -indexOf:To check if an item exist in an array. If it exists it returns the index else it returns -1. - -```js -const numbers = [1, 2, 3, 4, 5] - -console.log(numbers.indexOf(5)) // -> 4 -console.log(numbers.indexOf(0)) // -> -1 -console.log(numbers.indexOf(1)) // -> 0 -console.log(numbers.indexOf(6)) // -> -1 -``` - -Check an element if it exist in an array. - -- Check items in a list - -```js -// let us check if a banana exist in the array - -const fruits = ['banana', 'orange', 'mango', 'lemon'] -let index = fruits.indexOf('banana') // 0 - -if (index != -1) { - console.log('This fruit does exist in the array') -} else { - console.log('This fruit does not exist in the array') -} -// This fruit does exist in the array - -// we can use also ternary here -index != -1 - ? console.log('This fruit does exist in the array') - : console.log('This fruit does not exist in the array') - -// let us check if a avocado exist in the array -let indexOfAvocado = fruits.indexOf('avocado') // -1, if the element not found index is -1 -if (indexOfAvocado != -1) { - console.log('This fruit does exist in the array') -} else { - console.log('This fruit does not exist in the array') -} -// This fruit does not exist in the array -``` - -##### Getting last index of an element in array - -lastIndexOf: It gives the position of the last item in the array. If it exist, it returns the index else it returns -1. - -```js -const numbers = [1, 2, 3, 4, 5, 3, 1, 2] - -console.log(numbers.lastIndexOf(2)) // 7 -console.log(numbers.lastIndexOf(0)) // -1 -console.log(numbers.lastIndexOf(1)) // 6 -console.log(numbers.lastIndexOf(4)) // 3 -console.log(numbers.lastIndexOf(6)) // -1 -``` - -includes:To check if an item exist in an array. If it exist it returns the true else it returns false. - -```js -const numbers = [1, 2, 3, 4, 5] - -console.log(numbers.includes(5)) // true -console.log(numbers.includes(0)) // false -console.log(numbers.includes(1)) // true -console.log(numbers.includes(6)) // false - -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', -] // List of web technologies - -console.log(webTechs.includes('Node')) // true -console.log(webTechs.includes('C')) // false -``` - -##### Checking array - -Array.isArray:To check if the data type is an array - -```js -const numbers = [1, 2, 3, 4, 5] -console.log(Array.isArray(numbers)) // true - -const number = 100 -console.log(Array.isArray(number)) // false -``` - -##### Converting array to string - -toString:Converts array to string - -```js -const numbers = [1, 2, 3, 4, 5] -console.log(numbers.toString()) // 1,2,3,4,5 - -const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook'] -console.log(names.toString()) // Asabeneh,Mathias,Elias,Brook -``` - -##### Joining array elements - -join: It is used to join the elements of the array, the argument we passed in the join method will be joined in the array and return as a string. By default, it joins with a comma, but we can pass different string parameter which can be joined between the items. - -```js -const numbers = [1, 2, 3, 4, 5] -console.log(numbers.join()) // 1,2,3,4,5 - -const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook'] - -console.log(names.join()) // Asabeneh,Mathias,Elias,Brook -console.log(names.join('')) //AsabenehMathiasEliasBrook -console.log(names.join(' ')) //Asabeneh Mathias Elias Brook -console.log(names.join(', ')) //Asabeneh, Mathias, Elias, Brook -console.log(names.join(' # ')) //Asabeneh # Mathias # Elias # Brook - -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', -] // List of web technologies - -console.log(webTechs.join()) // "HTML,CSS,JavaScript,React,Redux,Node,MongoDB" -console.log(webTechs.join(' # ')) // "HTML # CSS # JavaScript # React # Redux # Node # MongoDB" -``` - -##### Slice array elements - -Slice: To cut out a multiple items in range. It takes two parameters:starting and ending position. It doesn't include the ending position. - -```js -const numbers = [1, 2, 3, 4, 5] - -console.log(numbers.slice()) // -> it copies all item -console.log(numbers.slice(0)) // -> it copies all item -console.log(numbers.slice(0, numbers.length)) // it copies all item -console.log(numbers.slice(1, 4)) // -> [2,3,4] // it doesn't include the ending position -``` - -##### Splice method in array - -Splice: It takes three parameters:Starting position, number of times to be removed and number of items to be added. - -```js -const numbers = [1, 2, 3, 4, 5] - -console.log(numbers.splice()) // -> remove all items -``` - -```js -const numbers = [1, 2, 3, 4, 5] -console.log(numbers.splice(0, 1)) // remove the first item -``` - -```js -const numbers = [1, 2, 3, 4, 5, 6] -console.log(numbers.splice(3, 3, 7, 8, 9)) // -> [1, 2, 3, 7, 8, 9] //it removes three item and replace three items -``` - -##### Adding item to an array using push - -Push: adding item in the end. To add item to the end of an existing array we use the push method. - -```js -// syntax -const arr = ['item1', 'item2', 'item3'] -arr.push('new item') - -console.log(arr) -// ['item1', 'item2','item3','new item'] -``` - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.push(6) - -console.log(numbers) // -> [1,2,3,4,5,6] - -numbers.pop() // -> remove one item from the end -console.log(numbers) // -> [1,2,3,4,5] -``` - -```js -let fruits = ['banana', 'orange', 'mango', 'lemon'] -fruits.push('apple') - -console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple'] - -fruits.push('lime') -console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple', 'lime'] -``` - -##### Removing the end element using pop - -pop: Removing item in the end. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.pop() // -> remove one item from the end - -console.log(numbers) // -> [1,2,3,4] -``` - -##### Removing an element from the beginning - -shift: Removing one array element in the beginning of the array. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.shift() // -> remove one item from the beginning - -console.log(numbers) // -> [2,3,4,5] -``` - -##### Add an element from the beginning - -unshift: Adding array element in the beginning of the array. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.unshift(0) // -> add one item from the beginning - -console.log(numbers) // -> [0,1,2,3,4,5] -``` - -##### Reversing array order - -reverse: reverse the order of an array. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.reverse() // -> reverse array order - -console.log(numbers) // [5, 4, 3, 2, 1] - -numbers.reverse() -console.log(numbers) // [1, 2, 3, 4, 5] -``` - -##### Sorting elements in array - -sort: arrange array elements in ascending order. Sort takes a call back function, we will see how we use sort with a call back function in the coming sections. - -```js -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', -] - -webTechs.sort() -console.log(webTechs) // ["CSS", "HTML", "JavaScript", "MongoDB", "Node", "React", "Redux"] - -webTechs.reverse() // after sorting we can reverse it -console.log(webTechs) // ["Redux", "React", "Node", "MongoDB", "JavaScript", "HTML", "CSS"] -``` - -#### Array of arrays - -Array can store different data types including an array itself. Let us create an array of arrays - -```js -const firstNums = [1, 2, 3] -const secondNums = [1, 4, 9] - -const arrayOfArray = [ - [1, 2, 3], - [1, 2, 3], -] -console.log(arrayOfArray[0]) // [1, 2, 3] - -const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux'] -const backEnd = ['Node', 'Express', 'MongoDB'] -const fullStack = [frontEnd, backEnd] -console.log(fullStack) // [["HTML", "CSS", "JS", "React", "Redux"], ["Node", "Express", "MongoDB"]] -console.log(fullStack.length) // 2 -console.log(fullStack[0]) // ["HTML", "CSS", "JS", "React", "Redux"] -console.log(fullStack[1]) // ["Node", "Express", "MongoDB"] -``` - -### 💻 Exercise - -##### Exercise: Level 1 - -```js -const countries = [ - 'Albania', - 'Bolivia', - 'Canada', - 'Denmark', - 'Ethiopia', - 'Finland', - 'Germany', - 'Hungary', - 'Ireland', - 'Japan', - 'Kenya', -] - -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', -] -``` - -1. Declare an _empty_ array; -2. Declare an array with more than 5 number of elements -3. Find the length of your array -4. Get the first item, the middle item and the last item of the array -5. Declare an array called _mixedDataTypes_, put different data types in the array and find the length of the array. The array size should be greater than 5 -6. Declare an array variable name itCompanies and assign initial values Facebook, Google, Microsoft, Apple, IBM, Oracle and Amazon -7. Print the array using _console.log()_ -8. Print the number of companies in the array -9. Print the first company, middle and last company -10. Print out each company -11. Change each company name to uppercase one by one and print them out -12. Print the array like as a sentence: Facebook, Google, Microsoft, Apple, IBM,Oracle and Amazon are big IT companies. -13. Check if a certain company exists in the itCompanies array. If it exist return the company else return a company is _not found_ -14. Filter out companies which have more than one 'o' without the filter method -15. Sort the array using _sort()_ method -16. Reverse the array using _reverse()_ method -17. Slice out the first 3 companies from the array -18. Slice out the last 3 companies from the array -19. Slice out the middle IT company or companies from the array -20. Remove the first IT company from the array -21. Remove the middle IT company or companies from the array -22. Remove the last IT company from the array -23. Remove all IT companies - -##### Exercise: Level 2 - -1. Create a separate countries.js file and store the countries array into this file, create a separate file web_techs.js and store the webTechs array into this file. Access both file in main.js file -1. First remove all the punctuations and change the string to array and count the number of words in the array - - ```js - let text = - 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' - console.log(words) - console.log(words.length) - ``` - - ```sh - ["I", "love", "teaching", "and", "empowering", "people", "I", "teach", "HTML", "CSS", "JS", "React", "Python"] - - 13 - ``` - -1. In the following shopping cart add, remove, edit items - - ```js - const shoppingCart = ['Milk', 'Coffee', 'Tea', 'Honey'] - ``` - - - add 'Meat' in the beginning of your shopping cart if it has not been already added - - add Sugar at the end of you shopping cart if it has not been already added - - remove 'Honey' if you are allergic to honey - - modify Tea to 'Green Tea' - -1. In countries array check if 'Ethiopia' exists in the array if it exists print 'ETHIOPIA'. If it does not exist add to the countries list. -1. In the webTechs array check if Sass exists in the array and if it exists print 'Sass is a CSS preprocess'. If it does not exist add Sass to the array and print the array. -1. Concatenate the following two variables and store it in a fullStack variable. - - ```js - const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux'] - const backEnd = ['Node', 'Express', 'MongoDB'] - - console.log(fullStack) - ``` - - ```sh - ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"] - ``` - -##### Exercise: Level 3 - -1. The following is an array of 10 students ages: - `js const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24] ` - Sort the array and find the min and max age - Find the median age(one middle item or two middle items divided by two) - Find the average age(all items divided by number of items) - Find the range of the ages(max minus min) - Compare the value of (min - average) and (max - average), use _abs()_ method - - 1.Slice the first ten countries from the [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) - -1. Find the middle country(ies) in the [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) -1. Divide the countries array into two equal arrays if it is even. If countries array is not even , one more country for the first half. - -### 4. Conditionals - -Conditional statements are used for make decisions based on different conditions. -By default , statements in JavaScript script executed sequentially from top to bottom. If the processing logic require so, the sequential flow of execution can be altered in two ways: - -- Conditional execution: a block of one or more statements will be executed if a certain expression is true -- Repetitive execution: a block of one or more statements will be repetitively executed as long as a certain expression is true. In this section, we will cover _if_, _else_ , _else if_ statements. The comparison and logical operators we learned in the previous sections will be useful in here. - -Conditions can be implementing using the following ways: - -- if -- if else -- if else if else -- switch -- ternary operator - -#### If - -In JavaScript and other programming languages the key word _if_ is to used check if a condition is true and to execute the block code. To create an if condition, we need _if_ keyword, condition inside a parenthesis and block of code inside a curly bracket({}). - -```js -// syntax -if (condition) { - //this part of code runs for truthy condition -} -``` - -**Example:** - -```js -let num = 3 -if (num > 0) { - console.log(`${num} is a positive number`) -} -// 3 is a positive number -``` - -As you can see in the condition example above, 3 is greater than 0, so it is a positive number. The condition was true and the block of code was executed. However, if the condition is false, we won't see any results. - -```js -let isRaining = true -if (isRaining) { - console.log('Remember to take your rain coat.') -} -``` - -The same goes for the second condition, if isRaining is false the if block will not be executed and we do not see any output. In order to see the result of a falsy condition, we should have another block, which is going to be _else_. - -#### If Else - -If condition is true the first block will be executed, if not the else condition will be executed. - -```js -// syntax -if (condition) { - // this part of code runs for truthy condition -} else { - // this part of code runs for false condition -} -``` - -```js -let num = 3 -if (num > 0) { - console.log(`${num} is a positive number`) -} else { - console.log(`${num} is a negative number`) -} -// 3 is a positive number - -num = -3 -if (num > 0) { - console.log(`${num} is a positive number`) -} else { - console.log(`${num} is a negative number`) -} -// -3 is a negative number -``` - -```js -let isRaining = true -if (isRaining) { - console.log('You need a rain coat.') -} else { - console.log('No need for a rain coat.') -} -// You need a rain coat. - -isRaining = false -if (isRaining) { - console.log('You need a rain coat.') -} else { - console.log('No need for a rain coat.') -} -// No need for a rain coat. -``` - -The last condition is false, therefore the else block was executed. What if we have more than two conditions? In that case, we would use _else if_ conditions. - -#### If Else if Else - -On our daily life, we make decisions on daily basis. We make decisions not by checking one or two conditions instead we make decisions based on multiple conditions. As similar to our daily life, programming is also full of conditions. We use _else if_ when we have multiple conditions. - -```js -// syntax -if (condition) { - // code -} else if (condition) { - // code -} else { - // code -} -``` - -**Example:** - -```js -let a = 0 -if (a > 0) { - console.log(`${a} is a positive number`) -} else if (a < 0) { - console.log(`${a} is a negative number`) -} else if (a == 0) { - console.log(`${a} is zero`) -} else { - console.log(`${a} is not a number`) -} -``` - -```js -// if else if else -let weather = 'sunny' -if (weather === 'rainy') { - console.log('You need a rain coat.') -} else if (weather === 'cloudy') { - console.log('It might be cold, you need a jacket.') -} else if (weather === 'sunny') { - console.log('Go out freely.') -} else { - console.log('No need for rain coat.') -} -``` - -#### Switch - -Switch is an alternative for **if else if else else**. -The switch statement starts with a _switch_ keyword followed by a parenthesis and code block. Inside the code block we will have different cases. Case block runs if the value in the switch statement parenthesis matches with the case value. The break statement is to terminate execution so the code execution does not go down after the condition is satisfied. The default block runs if all the cases don't satisfy the condition. - -```js -switch (caseValue) { - case 1: - // code - break - case 2: - // code - break - case 3: - // code - default: - // code -} -``` - -```js -let weather = 'cloudy' -switch (weather) { - case 'rainy': - console.log('You need a rain coat.') - break - case 'cloudy': - console.log('It might be cold, you need a jacket.') - break - case 'sunny': - console.log('Go out freely.') - break - default: - console.log(' No need for rain coat.') -} - -// Switch More Examples -let dayUserInput = prompt('What day is today ?') -let day = dayUserInput.toLowerCase() - -switch (day) { - case 'monday': - console.log('Today is Monday') - break - case 'tuesday': - console.log('Today is Tuesday') - break - case 'wednesday': - console.log('Today is Wednesday') - break - case 'thursday': - console.log('Today is Thursday') - break - case 'friday': - console.log('Today is Friday') - break - case 'saturday': - console.log('Today is Saturday') - break - case 'sunday': - console.log('Today is Sunday') - break - default: - console.log('It is not a week day.') -} -``` - -// Examples to use conditions in the cases - -```js -let num = prompt('Enter number') -switch (true) { - case num > 0: - console.log('Number is positive') - break - case num == 0: - console.log('Numbers is zero') - break - case num < 0: - console.log('Number is negative') - break - default: - console.log('Entered value was not a number') -} -``` - -#### Ternary Operators - -Ternary operator is very common in _React_. It is a short way to write if else statement. In React we use ternary operator in many cases. - -To generalize, ternary operator is another way to write conditionals. - -```js -let isRaining = true -isRaining - ? console.log('You need a rain coat.') - : console.log('No need for a rain coat.') -``` - -### 💻 Exercises - -##### Exercises: Level 1 - -1. Get user input using prompt(“Enter your age:”). If user is 18 or older , give feedback:'You are old enough to drive' but if not 18 give another feedback stating to wait for the number of years he needs to turn 18. - - ```sh - Enter your age: 30 - You are old enough to drive. - - Enter your age:15 - You are left with 3 years to drive. - ``` - -1. Compare the values of myAge and yourAge using if … else. Based on the comparison and log the result to console stating who is older (me or you). Use prompt(“Enter your age:”) to get the age as input. - - ```sh - Enter your age: 30 - You are 5 years older than me. - ``` - -1. If a is greater than b return 'a is greater than b' else 'a is less than b'. Try to implement it in two ways - - - using if else - - ternary operator. - - ```js - let a = 4 - let b = 3 - ``` - - ```sh - 4 is greater than 3 - ``` - -1. Even numbers are divisible by 2 and the remainder is zero. How do you check, if a number is even or not using JavaScript? - - ```sh - Enter a number: 2 - 2 is an even number - - Enter a number: 9 - 9 is is an odd number. - ``` - -##### Exercises: Level 2 - -1. Write a code which can give grades to students according to theirs scores: - - 80-100, A - - 70-89, B - - 60-69, C - - 50-59, D - - 0-49, F -1. Check if the season is Autumn, Winter, Spring or Summer. - If the user input is : - - September, October or November, the season is Autumn. - - December, January or February, the season is Winter. - - March, April or May, the season is Spring - - June, July or August, the season is Summer -1. Check if a day is weekend day or a working day. Your script will take day as an input. - -```sh - What is the day today? Saturday - Saturday is a weekend. - - What is the day today? saturDaY - Saturday is a weekend. - - What is the day today? Friday - Friday is a working day. - - What is the day today? FrIDAy - Friday is a working day. -``` - -##### Exercises: Level 3 - -1. Write a program which tells the number of days in a month. - -```sh - Enter a month: January - January has 31 days. - - Enter a month: JANUARY - January has 31 day - - Enter a month: February - February has 28 days. - - Enter a month: FEbruary - February has 28 days. -``` - -1. Write a program which tells the number of days in a month, now consider leap year. - -### 5. Loops - -In programming we use different loops to carry out repetitive tasks. Therefore, loop can help us to automate tedious and repetitive task. JavaScript has also different types of loops which we can use to work on repetitive task. - -Imagine if your are asked to print Hello world one thousand times without a loop, it may take an hour or two to do this tedious task. However, using loop we can print it in less than a second. - -Loops: - -- for -- while -- do while -- for of -- forEach -- for in - -A loop usually goes until the condition gets false. But sometimes we like to interrupt the loop or skip an item during iteration. We use _break_ to interrupt the loop and _continue_ to skip an item during iteration. - -#### Types of Loops - -##### 1. for - -We use for loop when we know how many iteration we go. Let's see the following example - -```js -// for loop syntax - -for (initialization, condition, increment/decrement) { - code goes here -} -``` - -This code prints from 0 to 5. - -```js -for (let i = 0; i < 6; i++) { - console.log(i) -} -``` - -For example if we want to sum all the numbers from 0 to 100. - -```js -let sum = 0 -for (let i = 0; i < 101; i++) { - sum += i -} - -console.log(sum) -``` - -If we want to sum only even numbers: - -```js -let sum = 0 -for (let i = 0; i < 101; i += 2) { - sum += i -} - -console.log(sum) - -// or another way - -let total = 0 -for (let i = 0; i < 101; i++) { - if (i % 2 == 0) { - total += i - } -} -console.log(total) -``` - -This code iterates through the array - -```js -const nums = [1, 2, 3, 4, 5] -for (let i = 0; i < 6; i++) { - console.log(nums[i]) -} -``` - -This code prints 5 to 0. Looping in reverse order - -```js -for (let i = 5; i >= 0; i--) { - console.log(i) -} -``` - -The Code below can reverse an array. - -```js -const nums = [1, 2, 3, 4, 5] -const lastIndex = nums.length - 1 -const newArray = [] -for (let i = lastIndex; i >= 0; i--) { - newArray.push(nums[i]) -} - -console.log(newArray) -``` - -##### 2. while - -We use the while loop when we do not know how man iteration we go in advance. - -```js -let count = prompt('Enter a positive number: ') -while (count > 0) { - console.log(count) - count-- -} -``` - -##### 3. do while - -Do while run at least once if the condition is true or false - -```js -let count = 0 -do { - console.log(count) - count++ -} while (count < 11) -``` - -The code below runs ones though the condition is false - -```js -let count = 11 -do { - console.log(count) - count++ -} while (count < 11) -``` - -While loop is the least important loop in many programming languages. - -##### 4. for of - -The for of loop is very handy to use it with array. If we are not interested in the index of the array a for of loop is preferable to regular for loop or forEach loop. - -```js -const numbers = [1, 2, 3, 4, 5] -for (const number of numbers) { - console.log(number) -} - -const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] -for (const country of countries) { - console.log(country.toUpperCase()) -} -``` - -##### 5. forEach - -If we are interested in the index of the array forEach is preferable to for of loop. The forEach array method takes a callback function, the callback function takes three arguments: the item, the index and the array itself. - -```js -const numbers = [1, 2, 3, 4, 5] -numbers.forEach((number, i) => { - console.log(number, i) -}) - -const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] -countries.forEach((country, i, arr) => { - console.log(i, country.toUpperCase()) -}) -``` - -##### 6. for in - -The for in loop can be used with object literals to get the keys of the object. - -```js -const user = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - skills: ['HTML', 'CSS', 'JS', 'React', 'Node', 'Python', 'D3.js'], -} - -for (const key in user) { - console.log(key, user[key]) -} -``` - -#### Interrupting a loop and skipping an item - -##### break - -Break is used to interrupt a loop. - -```js -for (let i = 0; i <= 5; i++) { - if (i == 3) { - break - } - console.log(i) -} - -// 0 1 2 -``` - -The above code stops if 3 found in the iteration process. - -##### continue - -We use the keyword continue to skip a certain iterations. - -```js -for (let i = 0; i <= 5; i++) { - if (i == 3) { - continue - } - console.log(i) -} -// 0 1 2 4 5 -``` - -#### Conclusions - -- Regular for loop can be used anywhere when the number of iteration is known. -- While loop when the number of iteration is not know -- Do while loop and while loop are almost the same but do while loop run at least once even when the condition is false -- for of is used only for array -- forEach is used for array -- for in is used for object - -### 6. Scope - -Variable is the fundamental part in programming. We declare variable to store different data types. To declare a variable we use the key word _var_, _let_ and _const_. A variable can declared at different scope. In this section we will see the scope, scope of variables when we use var or let. -Variables scopes can be: - -- Window -- Global -- Local - -Variable can be declared globally or locally or window scope. We will see both global and local scope. -Anything declared without let, var or const is scoped at window level. - -Let us image we have a scope.js file. - -#### Window Scope - -Without using console.log() open your browser and check, you will see the value of a and b if you write a or b on the browser. That means a and b are already available in the window. - -```js -//scope.js -a = 'JavaScript' // is a window scope this found anywhere -b = 10 // this is a window scope variable -function letsLearnScope() { - console.log(a, b) - if (true) { - console.log(a, b) - } -} -console.log(a, b) // accessible -``` - -#### Global scope - -A globally declared variable can be accessed every where in the same file. But the term global is relative. It can be global to the file or it can be global relative to some block of codes. - -```js -//scope.js -let a = 'JavaScript' // is a global scope it will be found anywhere in this file -let b = 10 // is a global scope it will be found anywhere in this file -function letsLearnScope() { - console.log(a, b) // JavaScript 10, accessible - if (true) { - let a = 'Python' - let b = 100 - console.log(a, b) // Python 100 - } - console.log(a, b) -} -letsLearnScope() -console.log(a, b) // JavaScript 10, accessible -``` - -#### Local scope - -A variable declared as local can be accessed only in certain block code. - -```js -//scope.js -let a = 'JavaScript' // is a global scope it will be found anywhere in this file -let b = 10 // is a global scope it will be found anywhere in this file -function letsLearnScope() { - console.log(a, b) // JavaScript 10, accessible - let c = 30 - if (true) { - // we can access from the function and outside the function but - // variables declared inside the if will not be accessed outside the if block - let a = 'Python' - let b = 20 - let d = 40 - console.log(a, b, c) // Python 20 30 - } - // we can not access c because c's scope is only the if block - console.log(a, b) // JavaScript 10 -} -letsLearnScope() -console.log(a, b) // JavaScript 10, accessible -``` - -Now, you have an understanding of scope. A variable declared with _var_ only scoped to function but variable declared with _let_ or _const_ is block scope(function block, if block, loop etc). Block in JavaScript is a code in between two curly brackets ({}). - -```js -//scope.js -function letsLearnScope() { - var gravity = 9.81 - console.log(gravity) -} -// console.log(gravity), Uncaught ReferenceError: gravity is not defined - -if (true) { - var gravity = 9.81 - console.log(gravity) // 9.81 -} -console.log(gravity) // 9.81 - -for (var i = 0; i < 3; i++) { - console.log(i) // 1, 2, 3 -} -console.log(i) -``` - -In ES6 and above there is _let_ and _const_, so you will not suffer from the sneakiness of _var_. When we use _let_ our variable is block scoped and it will not infect other parts of our code. - -```js -//scope.js -function letsLearnScope() { - // you can use let or const, but gravity is constant I prefer to use const - const gravity = 9.81 - console.log(gravity) -} -// console.log(gravity), Uncaught ReferenceError: gravity is not defined - -if (true) { - const gravity = 9.81 - console.log(gravity) // 9.81 -} -// console.log(gravity), Uncaught ReferenceError: gravity is not defined - -for (let i = 0; i < 3; i++) { - console.log(i) // 1, 2, 3 -} -// console.log(i), Uncaught ReferenceError: gravity is not defined -``` - -The scope _let_ and _const_ is the same. The difference is only reassigning. We can not change or reassign the value of const variable. I would strongly suggest you to use _let_ and _const_, by using _let_ and _const_ you will writ clean code and avoid hard to debug mistakes. As a rule of thumb, you can use _let_ for any value which change, _const_ for any constant value, and for array, object, arrow function and function expression. - -### 7. Object - -Everything can be an object and objects do have properties and properties have values, so an object is a key value pair. The order of the key is not reserved, or there is no order. -To create an object literal, we use two curly brackets. - -#### Creating an empty object - -An empty object - -```js -const person = {} -``` - -#### Creating an objecting with values - -Now, the person object has firstName, lastName, age, location, skills and isMarried properties. The value of properties or keys could be a string, number, boolean, an object, null, undefined or a function. - -Let us see some examples of object. Each key has a value in the object. - -```js -const rectangle = { - length: 20, - width: 20, -} -console.log(rectangle) // {length: 20, width: 20} - -const person = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - city: 'Helsinki', - skills: [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Node', - 'MongoDB', - 'Python', - 'D3.js', - ], - isMarried: true, -} -console.log(person) -``` - -#### Getting values from an object - -We can access values of object using two methods: - -- using . followed by key name if the key-name is a one word -- using square bracket and a quote - -```js -const person = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - city: 'Helsinki', - skills: [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Node', - 'MongoDB', - 'Python', - 'D3.js', - ], - getFullName: function () { - return `${this.firstName}${this.lastName}` - }, - 'phone number': '+3584545454545', -} - -// accessing values using . -console.log(person.firstName) -console.log(person.lastName) -console.log(person.age) -console.log(person.location) - -// value can be accessed using square bracket and key name -console.log(person['firstName']) -console.log(person['lastName']) -console.log(person['age']) -console.log(person['age']) -console.log(person['location']) - -// for instance to access the phone number we only use the square bracket method -console.log(person['phone number']) -``` - -#### Creating object methods - -Now, the person object has getFullName properties. The getFullName is function inside the person object and we call it an object method. The _this_ key word refers to the object itself. We can use the word _this_ to access the values of different properties of the object. We can not use an arrow function as object method because the word this refers to the window inside an arrow function instead of the object itself. Example of object: - -```js -const person = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - city: 'Helsinki', - skills: [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Node', - 'MongoDB', - 'Python', - 'D3.js', - ], - getFullName: function () { - return `${this.firstName} ${this.lastName}` - }, -} - -console.log(person.getFullName()) -// Asabeneh Yetayeh -``` - -#### Setting new key for an object - -An object is a mutable data structure and we can modify the content of an object after it gets created. - -Setting a new keys in an object - -```js -const person = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - city: 'Helsinki', - skills: [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Node', - 'MongoDB', - 'Python', - 'D3.js', - ], - getFullName: function () { - return `${this.firstName} ${this.lastName}` - }, -} -person.nationality = 'Ethiopian' -person.country = 'Finland' -person.title = 'teacher' -person.skills.push('Meteor') -person.skills.push('SasS') -person.isMarried = true - -person.getPersonInfo = function () { - let skillsWithoutLastSkill = this.skills - .slice(0, this.skills.length - 1) - .join(', ') - let lastSkill = this.skills.slice(this.skills.length - 1)[0] - - let skills = `${skillsWithoutLastSkill}, and ${lastSkill}` - let fullName = this.getFullName() - let statement = `${fullName} is a ${this.title}.\nHe lives in ${this.country}.\nHe teaches ${skills}.` - return statement -} -console.log(person) -console.log(person.getPersonInfo()) -``` - -```sh -Asabeneh Yetayeh is a teacher. -He lives in Finland. -He teaches HTML, CSS, JavaScript, React, Node, MongoDB, Python, D3.js, Meteor, and SasS. -``` - -#### Object Methods - -There are different methods to manipulate an object. Let us see some of the available methods. - -_Object.assign_: To copy an object without modifying the original object - -```js -const person = { - firstName: 'Asabeneh', - age: 250, - country: 'Finland', - city: 'Helsinki', - skills: ['HTML', 'CSS', 'JS'], - title: 'teacher', - address: { - street: 'Heitamienkatu 16', - pobox: 2002, - city: 'Helsinki', - }, - getPersonInfo: function () { - return `I am ${this.firstName} and I live in ${this.city}, ${this.country}. I am ${this.age}.` - }, -} - -//Object methods: Object.assign, Object.keys, Object.values, Object.entries -//hasOwnProperty - -const copyPerson = Object.assign({}, person) -console.log(copyPerson) -``` - -##### Getting object keys using Object.keys() - -_Object.keys_: To get the keys or properties of an object as an array - -```js -const keys = Object.keys(copyPerson) -console.log(keys) //['name', 'age', 'country', 'skills', 'address', 'getPersonInfo'] -const address = Object.keys(copyPerson.address) -console.log(address) //['street', 'pobox', 'city'] -``` - -##### Getting object values using Object.values() - -_Object.values_:To get values of an object as an array - -```js -const values = Object.values(copyPerson) -console.log(values) -``` - -##### Getting object keys and values using Object.entries() - -_Object.entries_:To get the keys and values in an array - -```js -const entries = Object.entries(copyPerson) -console.log(entries) -``` - -##### Checking properties using hasOwnProperty() - -_hasOwnProperty_: To check if a specific key or property exist in an object - -```js -console.log(copyPerson.hasOwnProperty('name')) -console.log(copyPerson.hasOwnProperty('score')) -``` - -🌕 You are astonishing. Now, you are super charged with the power of objects. You have just completed day 8 challenges and you are 8 steps a head into your way to greatness. Now do some exercises for your brain and for your muscle. - -### 💻 Exercises - -##### Exercises: Level 1 - -1. Create an empty object called dog -1. Print the the dog object on the console -1. Add name, legs, color, age and bark properties for the dog object. The bark property is a method which return _woof woof_ -1. Get name, legs, color, age and bark value from the dog object -1. Set new properties the dog object: breed, getDogInfo - -##### Exercises: Level 2 - -1. Find the person who has many skills in the users object. -1. Count logged in users,count users having greater than equal to 50 points from the following object. - - ````js - const users = { - Alex: { - email: 'alex@alex.com', - skills: ['HTML', 'CSS', 'JavaScript'], - age: 20, - isLoggedIn: false, - points: 30 - }, - Asab: { - email: 'asab@asab.com', - skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'], - age: 25, - isLoggedIn: false, - points: 50 - }, - Brook: { - email: 'daniel@daniel.com', - skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'], - age: 30, - isLoggedIn: true, - points: 50 - }, - Daniel: { - email: 'daniel@alex.com', - skills: ['HTML', 'CSS', 'JavaScript', 'Python'], - age: 20, - isLoggedIn: false, - points: 40 - }, - John: { - email: 'john@john.com', - skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'], - age: 20, - isLoggedIn: true, - points: 50 - }, - Thomas: { - email: 'thomas@thomas.com', - skills: ['HTML', 'CSS', 'JavaScript', 'React'], - age: 20, - isLoggedIn: false, - points: 40 - }, - Paul: { - email: 'paul@paul.com', - skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'], - age: 20, - isLoggedIn: false, - points: 40 - } - }``` - - ```` - -1. Find people who are MERN stack developer from the users object -1. Set your name in the users object without modifying the original users object -1. Get all keys or properties of users object -1. Get all the values of users object -1. Use the countries object to print a country name, capital, populations and languages. - -##### Exercises: Level 3 - -1. Create an object literal called _personAccount_. It has _firstName, lastName, incomes, expenses_ properties and it has _totalIncome, totalExpense, accountInfo,addIncome, addExpense_ and _accountBalance_ methods. Incomes is a set of incomes and its description and expenses is a set of incomes and its description. -2. \*\*\*\* Questions:2, 3 and 4 are based on the following two arrays:users and products () - -```js -const users = [ - { - _id: 'ab12ex', - username: 'Alex', - email: 'alex@alex.com', - password: '123123', - createdAt: '08/01/2020 9:00 AM', - isLoggedIn: false, - }, - { - _id: 'fg12cy', - username: 'Asab', - email: 'asab@asab.com', - password: '123456', - createdAt: '08/01/2020 9:30 AM', - isLoggedIn: true, - }, - { - _id: 'zwf8md', - username: 'Brook', - email: 'brook@brook.com', - password: '123111', - createdAt: '08/01/2020 9:45 AM', - isLoggedIn: true, - }, - { - _id: 'eefamr', - username: 'Martha', - email: 'martha@martha.com', - password: '123222', - createdAt: '08/01/2020 9:50 AM', - isLoggedIn: false, - }, - { - _id: 'ghderc', - username: 'Thomas', - email: 'thomas@thomas.com', - password: '123333', - createdAt: '08/01/2020 10:00 AM', - isLoggedIn: false, - }, -] - -const products = [ - { - _id: 'eedfcf', - name: 'mobile phone', - description: 'Huawei Honor', - price: 200, - ratings: [ - { userId: 'fg12cy', rate: 5 }, - { userId: 'zwf8md', rate: 4.5 }, - ], - likes: [], - }, - { - _id: 'aegfal', - name: 'Laptop', - description: 'MacPro: System Darwin', - price: 2500, - ratings: [], - likes: ['fg12cy'], - }, - { - _id: 'hedfcg', - name: 'TV', - description: 'Smart TV:Procaster', - price: 400, - ratings: [{ userId: 'fg12cy', rate: 5 }], - likes: ['fg12cy'], - }, -] -``` - -Imagine you are getting the above users collection from a MongoDB database. -a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account. - b. Create a function called signIn which allows user to sign in to the application - -3. The products array has three elements and each of them has six properties. - a. Create a function called rateProduct which rates the product - b. Create a function called averageRating which calculate the average rating of a product - -4. Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked. - -### 8. Functions - -So far we have seen many builtin JavaScript functions. In this section, we will focus on custom functions. What is a function? Before we start making functions, lets understand what function is and why we need function? - -A function is a reusable block of code or programming statements designed to perform a certain task. -A function is declared by a function key word followed by a name, followed by parentheses (). A parentheses can take a parameter. If a function take a parameter it will be called with argument. A function can also take a default parameter. To store a data to a function, a function has to return certain data types. To get the value we call or invoke a function. -Function makes code: - -- clean and easy to read -- reusable -- easy to test - -A function can be declared or created in couple of ways: - -- _Declaration function_ -- _Expression function_ -- _Anonymous function_ -- _Arrow function_ - -#### Function Declaration - -Let us see how to declare a function and how to call a function. - -```js -//declaring a function without a parameter -function functionName() { - // code goes here -} -functionName() // calling function by its name and with parentheses -``` - -#### Function without a parameter and return - -Function can be declared without a parameter. - -**Example:** - -```js -// function without parameter, a function which make a number square -function square() { - let num = 2 - let sq = num * num - console.log(sq) -} - -square() // 4 - -// function without parameter -function addTwoNumbers() { - let numOne = 10 - let numTwo = 20 - let sum = numOne + numTwo - - console.log(sum) -} - -addTwoNumbers() // a function has to be called by its name to be executed -``` - -```js -function printFullName() { - let firstName = 'Asabeneh' - let lastName = 'Yetayeh' - let space = ' ' - let fullName = firstName + space + lastName - console.log(fullName) -} - -printFullName() // calling a function -``` - -#### Function returning value - -Function can also return values, if a function does not return values the value of the function is undefined. Let us write the above functions with return. From now on, we return value to a function instead of printing it. - -```js -function printFullName() { - let firstName = 'Asabeneh' - let lastName = 'Yetayeh' - let space = ' ' - let fullName = firstName + space + lastName - return fullName -} -console.log(printFullName()) -``` - -```js -function addTwoNumbers() { - let numOne = 2 - let numTwo = 3 - let total = numOne + numTwo - return total -} - -console.log(addTwoNumbers()) -``` - -#### Function with a parameter - -In a function we can pass different data types(number, string, boolean, object, function) as a parameter. - -```js -// function with one parameter -function functionName(parm1) { - //code goes her -} -functionName(parm1) // during calling or invoking one argument needed - -function areaOfCircle(r) { - let area = Math.PI * r * r - return area -} - -console.log(areaOfCircle(10)) // should be called with one argument - -function square(number) { - return number * number -} - -console.log(square(10)) -``` - -#### Function with two parameters - -```js -// function with two parameters -function functionName(parm1, parm2) { - //code goes her -} -functionName(parm1, parm2) // during calling or invoking two arguments needed -// Function without parameter doesn't take input, so lets make a function with parameters -function sumTwoNumbers(numOne, numTwo) { - let sum = numOne + numTwo - console.log(sum) -} -sumTwoNumbers(10, 20) // calling functions -// If a function doesn't return it doesn't store data, so it should return - -function sumTwoNumbers(numOne, numTwo) { - let sum = numOne + numTwo - return sum -} - -console.log(sumTwoNumbers(10, 20)) -function printFullName(firstName, lastName) { - return `${firstName} ${lastName}` -} -console.log(printFullName('Asabeneh', 'Yetayeh')) -``` - -#### Function with many parameters - -```js -// function with multiple parameters -function functionName(parm1, parm2, parm3,...){ - //code goes here -} -functionName(parm1,parm2,parm3,...) // during calling or invoking three arguments needed - - -// this function takes array as a parameter and sum up the numbers in the array -function sumArrayValues(arr) { - let sum = 0; - for (let i = 0; i < arr.length; i++) { - sum = sum + arr[i]; - } - return sum; -} -const numbers = [1, 2, 3, 4, 5]; - //calling a function -console.log(sumArrayValues(numbers)); - - - const areaOfCircle = (radius) => { - let area = Math.PI * radius * radius; - return area; - } -console.log(areaOfCircle(10)) - -``` - -#### Function with unlimited number of parameters - -Sometimes we do not know how many arguments the user going to pass. Therefore, we should know how to write a function which can take unlimited number of arguments. The way we do it has a significant difference between a function declaration(regular function) and arrow function. Let us see examples both in function declaration and arrow function. - -##### Unlimited number of parameters in regular function - -A function declaration provides a function scoped arguments array like object. Any thing we passed as argument in the function can be accessed from arguments object inside the functions. Let us see an example - -```js -// Let us access the arguments object -​ -function sumAllNums() { - console.log(arguments) -} - -sumAllNums(1, 2, 3, 4)) -// Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ] - -``` - -```js -// function declaration -​ -function sumAllNums() { - let sum = 0 - for (let i = 0; i < arguments.length; i++) { - sum += arguments[i] - } - return sum -} - -console.log(sumAllNums(1, 2, 3, 4)) // 10 -console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 -console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 -``` - -##### Unlimited number of parameters in arrow function - -Arrow function does not have the function scoped arguments object. To implement a function which takes unlimited number of arguments in an arrow function we use spread operator followed by any parameter name. Any thing we passed as argument in the function can be accessed as array in the arrow function. Let us see an example - -```js -// Let us access the arguments object -​ -const sumAllNums = (...args) => { - // console.log(arguments), arguments object not found in arrow function - // instead we use an a parameter followed by spread operator - console.log(args) -} - -sumAllNums(1, 2, 3, 4)) -// [1, 2, 3, 4] - -``` - -```js -// function declaration -​ -const sumAllNums = (...args) => { - let sum = 0 - for (const element of args) { - sum += element - } - return sum -} - -console.log(sumAllNums(1, 2, 3, 4)) // 10 -console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 -console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 -``` - -#### Anonymous Function - -Anonymous function or without name - -```js -const anonymousFun = function () { - console.log( - 'I am an anonymous function and my value is stored in anonymousFun' - ) -} -``` - -#### Expression Function - -Expression functions are anonymous functions. After we create a function without a name and we assign it to a variable. To return a value from the function we should call the variable. Look at the example below. - -```js -// Function expression -const square = function (n) { - return n * n -} - -console.log(square(2)) // -> 4 -``` - -#### Self Invoking Functions - -Self invoking functions are anonymous functions which do not need to be called to return a value. - -```js -;(function (n) { - console.log(n * n) -})(2) // 4, but instead of just printing if we want to return and store the data, we do as shown below - -let squaredNum = (function (n) { - return n * n -})(10) - -console.log(squaredNum) -``` - -#### Arrow Function - -Arrow function is an alternative to write a function, however function declaration and arrow function have some minor differences. - -Arrow function uses arrow instead of the keyword _function_ to declare a function. Let us see both function declaration and arrow function. - -```js -// This is how we write normal or declaration function -// Let us change this declaration function to an arrow function -function square(n) { - return n * n -} - -console.log(square(2)) // 4 - -const square = (n) => { - return n * n -} - -console.log(square(2)) // -> 4 - -// if we have only one line in the code block, it can be written as follows, explicit return -const square = (n) => n * n // -> 4 -``` - -```js -const changeToUpperCase = (arr) => { - const newArr = [] - for (const element of arr) { - newArr.push(element.toUpperCase()) - } - return newArr -} - -const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] -console.log(changeToUpperCase(countries)) - -// ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] -``` - -```js -const printFullName = (firstName, lastName) => { - return `${firstName} ${lastName}` -} - -console.log(printFullName('Asabeneh', 'Yetayeh')) -``` - -The above function has only the return statement, therefore, we can explicitly return it as follows. - -```js -const printFullName = (firstName, lastName) => `${firstName} ${lastName}` - -console.log(printFullName('Asabeneh', 'Yetayeh')) -``` - -#### Function with default parameters - -Sometimes we pass default values to parameters, when we invoke the function if we do not pass an argument the default value will be used. Both function declaration and arrow function can have a default value or values. - -```js -// syntax -// Declaring a function -function functionName(param = value) { - //codes -} - -// Calling function -functionName() -functionName(arg) -``` - -**Example:** - -```js -function greetings(name = 'Peter') { - let message = `${name}, welcome to 30 Days Of JavaScript!` - return message -} - -console.log(greetings()) -console.log(greetings('Asabeneh')) -``` - -```js -function generateFullName(firstName = 'Asabeneh', lastName = 'Yetayeh') { - let space = ' ' - let fullName = firstName + space + lastName - return fullName -} - -console.log(generateFullName()) -console.log(generateFullName('David', 'Smith')) -``` - -```js -function calculateAge(birthYear, currentYear = 2019) { - let age = currentYear - birthYear - return age -} - -console.log('Age: ', calculateAge(1819)) -``` - -```js -function weightOfObject(mass, gravity = 9.81) { - let weight = mass * gravity + ' N' // the value has to be changed to string first - return weight -} - -console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 gravity at the surface of Earth -console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // gravity at surface of Moon -``` - -Let us see how we write the above functions with arrow functions - -```js -// syntax -// Declaring a function -const functionName = (param = value) => { - //codes -} - -// Calling function -functionName() -functionName(arg) -``` - -**Example:** - -```js -const greetings = (name = 'Peter') => { - let message = name + ', welcome to 30 Days Of JavaScript!' - return message -} - -console.log(greetings()) -console.log(greetings('Asabeneh')) -``` - -```js -const generateFullName = (firstName = 'Asabeneh', lastName = 'Yetayeh') => { - let space = ' ' - let fullName = firstName + space + lastName - return fullName -} - -console.log(generateFullName()) -console.log(generateFullName('David', 'Smith')) -``` - -```js -const calculateAge = (birthYear, currentYear = 2019) => currentYear - birthYear -console.log('Age: ', calculateAge(1819)) -``` - -```js -const weightOfObject = (mass, gravity = 9.81) => mass * gravity + ' N' - -console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 gravity at the surface of Earth -console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // gravity at surface of Moon -``` - -#### Function declaration versus Arrow function - -It ill be covered in other time - -### 💻 Exercises - -##### Exercises: Level 1 - -1. Declare a function _fullName_ and it takes firstName, lastName as a parameter and it returns your full - name. -2. Declare a function _addNumbers_ and it takes two two parameters and it returns sum. -3. Area of a circle is calculated as follows: _area = π x r x r_. Write a function which calculates \_areaOfCircle -4. Temperature in oC can be converted to oF using this formula: _oF = (oC x 9/5) + 32_. Write a function which convert oC to oF _convertCelciusToFahrenheit_. -5. Body mass index(BMI) is calculated as follows: _bmi = weight in Kg / (height x height) in m2_. Write a function which calculates _bmi_. BMI is used to broadly define different weight groups in adults 20 years old or older.Check if a person is _underweight, normal, overweight_ or _obese_ based the information given below. - - - The same groups apply to both men and women. - - _Underweight_: BMI is less than 18.5 - - _Normal weight_: BMI is 18.5 to 24.9 - - _Overweight_: BMI is 25 to 29.9 - - _Obese_: BMI is 30 or more - -6. Write a function called _checkSeason_, it takes a month parameter and returns the season:Autumn, Winter, Spring or Summer. - -##### Exercises: Level 2 - -1. Quadratic equation is calculated as follows: _ax2 + bx + c = 0_. Write a function which calculates value or values of a quadratic equation, _solveQuadEquation_. - - ```js - console.log(solveQuadratic()) // {0} - console.log(solveQuadratic(1, 4, 4)) // {-2} - console.log(solveQuadratic(1, -1, -2)) // {2, -1} - console.log(solveQuadratic(1, 7, 12)) // {-3, -4} - console.log(solveQuadratic(1, 0, -4)) //{2, -2} - console.log(solveQuadratic(1, -1, 0)) //{1, 0} - ``` - -2. Declare a function name _printArray_. It takes array as a parameter and it prints out each value of the array. -3. Write a function name _showDateTime_ which shows time in this format: 08/01/2020 04:08 using the Date object. - - ```sh - showDateTime() - 08/01/2020 04:08 - ``` - -4. Declare a function name _swapValues_. This function swaps value of x to y. - - ```js - swapValues(3, 4) // x => 4, y=>3 - swapValues(4, 5) // x = 5, y = 4 - ``` - -5. Declare a function name _reverseArray_. It takes array as a parameter and it returns the reverse of the array (don't use method). - - ```js - console.log(reverseArray([1, 2, 3, 4, 5])) - //[5, 4, 3, 2, 1] - console.log(reverseArray(['A', 'B', 'C'])) - //['C', 'B', 'A'] - ``` - -6. Declare a function name _capitalizeArray_. It takes array as a parameter and it returns the - capitalizedarray. -7. Declare a function name _addItem_. It takes an item parameter and it returns an array after adding the item -8. Declare a function name _removeItem_. It takes an index parameter and it returns an array after removing an ite -9. Declare a function name evensAndOdds . It takes a positive integer as parameter and it counts number of evens and odds in the number. - -```sh -evensAndOdds(100); -The number of odds are 50. -The number of evens are 51. -``` - -13. Write a function which takes any number of arguments and return the sum of the arguments - -```js -sum(1, 2, 3) // -> 6 -sum(1, 2, 3, 4) // -> 10 -``` - -1. Declare a function name _userIdGenerator_. When this function is called it generates seven character id. The function return the id. - -```sh -console.log(userIdGenerator()); -41XTDbE -``` - -##### Exercises: Level 3 - -1. Declare a function name _userIdGeneratedByUser_. It doesn’t take any parameter but it takes two inputs using prompt(). One of the input is the number of characters and the second input is the number of ids which are supposed to be generated. - - ```sh - userIdGeneratedByUser() - 'kcsy2 - SMFYb - bWmeq - ZXOYh - 2Rgxf - ' - userIdGeneratedByUser() - '1GCSgPLMaBAVQZ26 - YD7eFwNQKNs7qXaT - ycArC5yrRupyG00S - UbGxOFI7UXSWAyKN - dIV0SSUTgAdKwStr - ' - ``` - -2. Write a function **_generateColors_** which can generate any number of hexa or rgb colors. - - ```js - console.log(generateColors('hexa', 3)) // ['#a3e12f', '#03ed55', '#eb3d2b'] - console.log(generateColors('hexa', 1)) // '#b334ef' - console.log(generateColors('rgb', 3)) // ['rgb(5, 55, 175)', 'rgb(50, 105, 100)', 'rgb(15, 26, 80)'] - console.log(generateColors('rgb', 1)) // 'rgb(33,79, 176)' - ``` - -3. Call your function _shuffleArray_, it takes an array as a parameter and it returns a shuffled array -4. Call your function _factorial_, it takes a whole number as a parameter and it return a factorial of the number -5. Call your function _isEmpty_, it takes a parameter and it checks if it is empty or not - -6. Write a function called _average_, it takes an array parameter and returns the average of the items. Check if all the array items are number types. If not give return reasonable feedback. - -### 9. Higher Order Function - -Higher order functions are functions which take other function as a parameter or return a function as a value. The function passed as a parameter is called callback. - -#### Callback - -A callback is a function which can be passed as parameter to other function. See the example below. - -```js -// a callback function, the function could be any name -const callback = (n) => { - return n ** 2 -} -​ -// function take other function as a callback -function cube(callback, n) { - return callback(n) * n -} -​ -console.log(cube(callback, 3)) -``` - -#### Returning function - -Higher order functions return function as a value -​ - -```js -// Higher order function returning an other function -const higherOrder = n => { - const doSomething = m => { - const doWhatEver = t => { - return 2 * n + 3 * m + t - } - return doWhatEver - } -​ - return doSomething -} -console.log(higherOrder(2)(3)(10)) -``` - -Let us see were we use call back functions.For instance the _forEach_ method uses call back. - -```js -const numbers = [1, 2, 3, 4] -const sumArray = arr => { - let sum = 0 - const callback = function(element) { - sum += element - } - arr.forEach(callback) - return sum - -} -console.log(sumArray(numbers)) -``` - -```sh -10 -``` - -The above example can be simplified as follows: - -```js -const numbers = [1, 2, 3, 4] -​ -const sumArray = arr => { - let sum = 0 - arr.forEach(function(element) { - sum += element - }) - return sum - -} -console.log(sumArray(numbers)) -``` - -```sh -10 -``` - -#### setting time - -In JavaScript we can execute some activity on certain interval of time or we can schedule(wait) for sometime to execute some activities. - -- setInterval -- setTimeout - -##### setInterval - -In JavaScript, we use setInterval higher order function to do some activity continuously with in some interval of time. The setInterval global method take a callback function and a duration as a parameter. The duration is in milliseconds and the callback will be always called in that interval of time. - -```js -// syntax -function callback() { - // code goes here -} -setInterval(callback, duration) -``` - -```js -function sayHello() { - console.log('Hello') -} -setInterval(sayHello, 2000) // it prints hello in every 2 seconds -``` - -##### setTimeout - -In JavaScript, we use setTimeout higher order function to execute some action at some time in the future. The setTimeout global method take a callback function and a duration as a parameter. The duration is in milliseconds and the callback wait for that amount of time. - -```js -// syntax -function callback() { - // code goes here -} -setTimeout(callback, duration) // duration in milliseconds -``` - -```js -function sayHello() { - console.log('Hello') -} -setTimeout(sayHello, 2000) // it prints hello after it waits for 2 seconds. -``` - -### 10. Destructuring and Spreading - -#### What is Destructuring? - -Destructuring is a way to unpack arrays, and objects and assigning to a distinct variable. Destructuring allows us to write clean and readable code. - -#### What can we destructure? - -1. Arrays -2. Objects - -##### 1. Destructuring arrays - -Arrays are a list of different data types ordered by their index. Let's see an example of arrays: - -```js -const numbers = [1, 2, 3] -const countries = ['Finland', 'Sweden', 'Norway'] -``` - -We can access an item from an array using a certain index by iterating through the loop or manually as shown in the example below. - -Accessing array items using a loop - -```js -for (const number of numbers) { - console.log(number) -} - -for (const country of countries) { - console.log(country) -} -``` - -Accessing array items manually - -```js -const numbers = [1, 2, 3] -let num1 = numbers[0] -let num2 = numbers[1] -let num3 = numbers[2] -console.log(num1, num2, num3) // 1, 2, 3 - -const countries = ['Finland', 'Sweden', 'Norway'] -let fin = countries[0] -let swe = countries[1] -let nor = countries[2] -console.log(fin, swe, nor) // Finland, Sweden, Norway -``` - -Most of the time the size of an array is big and we use a loop to iterate through each item of the arrays. Sometimes, we may have short arrays. If the array size is very short it is ok to access the items manually as shown above but today we will see a better way to access the array item which is destructuring. - -Accessing array items using destructuring - -```js -const numbers = [1, 2, 3] -const [num1, num2, num3] = numbers -console.log(num1, num2, num3) // 1, 2, 3, - -const constants = [2.72, 3.14, 9.81,37, 100] -const [e, pi, gravity, bodyTemp, boilingTemp] = constants -console.log(e, pi, gravity, bodyTemp, boilingTemp] -// 2.72, 3.14, 9.81, 37,100 -const countries = ['Finland', 'Sweden', 'Norway'] -const [fin, swe, nor] = countries -console.log(fin, swe, nor) // Finland, Sweden, Norway -``` - -During destructuring each variable should match with the index of the desired item in the array. For instance, the variable fin matches to index 0 and the variable nor matches to index 2. What would be the value of den if you have a variable den next nor? - -```js -const [fin, swe, nor, den] = countries -console.log(den) // undefined -``` - -If you tried the above task you confirmed that the value is undefined. Actually, we can pass a default value to the variable, and if the value of that specific index is undefined the default value will be used. - -```js -const countries = ['Finland', 'Sweden', undefined, 'Norway'] -const [fin, swe, ice = 'Iceland', nor, den = 'Denmark'] = countries -console.log(fin, swe, ice, nor, den) // Finland, Sweden, Iceland, Norway, Denmark -``` - -Destructuring Nested arrays - -```js -const fullStack = [ - ['HTML', 'CSS', 'JS', 'React'], - ['Node', 'Express', 'MongoDB'] -] - -const [frontEnd, backEnd] = fullstack -console.log(frontEnd, backEnd) - -//["HTML", "CSS", "JS", "React"] , ["Node", "Express", "MongoDB"] - -const fruitsAndVegetables = [['banana', 'orange', 'mango', 'lemon'], ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']] - -const [fruits, vegetables] = fruitsAndVegetables -console.log(fruits, vegetables] - -//['banana', 'orange', 'mango', 'lemon'] - -//['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] -``` - -Skipping an Item during destructuring - -During destructuring if we are not interested in every item, we can omit a certain item by putting a comma at that index. Let's get only Finland, Iceland, and Denmark from the array. See the example below for more clarity: - -```js -const countries = ['Finland', 'Sweden', 'Iceland', 'Norway', 'Denmark'] -const [fin, , ice, , den] = countries -console.log(fin, ice, den) // Finland, Iceland, Denmark -``` - -Getting the rest of the array using the spread operator -We use three dots(...) to spread or get the rest of an array during destructuring - -```js -const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const [num1, num2, num3, ...rest] = nums -console.log(num1, num2, num3, rest) //1, 2, 3, [4, 5, 6, 7, 8, 9, 10] - -const countries = [ - 'Germany', - 'France', - 'Belgium', - 'Finland', - 'Sweden', - 'Norway', - 'Denmark', - 'Iceland', -] - -let [gem, fra, , ...nordicCountries] = countries -console.log(gem, fra, nordicCountries) -// Germany, France, ["Finland", "Sweden", "Norway", "Denmark", "Iceland"] -``` - -There many cases in which we use array destructuring, let's see the following example: - -Destructuring when we loop through arrays - -```js -const countries = [ - ['Finland', 'Helsinki'], - ['Sweden', 'Stockholm'], - ['Norway', 'Oslo'], -] - -for (const [country, city] of countries) { - console.log(country, city) -} - -const fullStack = [ - ['HTML', 'CSS', 'JS', 'React'], - ['Node', 'Express', 'MongoDB'], -] - -for (const [first, second, third, fourth] of fullStack) { - console.log(first, second, third, fourt) -} -``` - -What do you think about the code snippet below? If you have started React Hooks already it may remind you of the useState hook. - -```js -const [x, y] = [2, (value) => value ** 2] -``` - -What is the value of x? And what is the value of y(x)? I leave this for you to figure out. - -If you have used react hooks you are very familiar with this and as you may imagine it is destructuring. The initial value of count is 0 and the setCount is a method that changes the value of count. - -```js -const [count, setCount] = useState(0) -``` - -Now, you know how to destructure arrays. Let's move on to destructuring objects. - -##### 2. Destructuring objects - -An object literal is made of key and value pairs. A very simple example of an object: - -```js -const rectangle = { - width: 20, - height: 10, -} -``` - -We access the value of an object using the following methods: - -```js -const rectangle = { - width: 20, - height: 10, -} - -let width = rectangle.width -let height = recangle.height - -// or - -let width = rectangle[width] -let height = recangle[height] -``` - -But today, we will see how to access the value of an object using destructuring. - -When we destructure an object the name of the variable should be exactly the same as the key or property of the object. See the example below. - -```js -const rectangle = { - width: 20, - height: 10, -} - -let { width, height } = rectangle -console.log(width, height, perimeter) // 20, 10 -``` - -What will be the value of we try to access a key which not in the object. - -```js -const rectangle = { - width: 20, - height: 10, -} - -let { width, height, perimeter } = rectangleconsole.log( - width, - height, - perimeter -) // 20, 10, undefined -``` - -The value of the perimeter in the above example is undefined. - -Default value during object destructuring - -Similar to the array, we can also use a default value in object destructuring. - -```js -const rectangle = { - width: 20, - height: 10, -} - -let { width, height, perimeter = 200 } = rectangle -console.log(width, height, perimeter) // 20, 10, undefined -``` - -Renaming variable names - -```js -const rectangle = { - width: 20, - height: 10, -} - -let { width: w, height: h } = rectangle -``` - -Let's also destructure, nested objects. In the example below, we have nested objects and we can destructure it in two ways. - -We can just destructure step by step - -```js -const props = { - user:{ - firstName:'Asabeneh', - lastName:'Yetayeh', - age:250 - }, - post:{ - title:'Destructuring and Spread', - subtitle:'ES6', - year:2020 -}, -skills:['JS', 'React', 'Redux', 'Node', 'Python'] - -} -} - -const {user, post, skills} = props -const {firstName, lastName, age} = user -const {title, subtitle, year} = post -const [skillOne, skillTwo, skillThree, skillFour, skillFive] = skills -``` - -1. We can destructure it one step - -```js -const props = { - user:{ - firstName:'Asabeneh', - lastName:'Yetayeh', - age:250 - }, - post:{ - title:'Destructuring and Spread', - subtitle:'ES6', - year:2020 -}, -skills:['JS', 'React', 'Redux', 'Node', 'Python'] - -} - -} - -const {user:{firstName, lastName, age}, post:{title, subtitle, year}, skills:[skillOne, skillTwo, skillThree, skillFour, skillFive]} = props - -``` - -Destructuring during loop through an array - -```js -const languages = [ - { lang: 'English', count: 91 }, - { lang: 'French', count: 45 }, - { lang: 'Arabic', count: 25 }, - { lang: 'Spanish', count: 24 }, - { lang: 'Russian', count: 9 }, - { lang: 'Portuguese', count: 9 }, - { lang: 'Dutch', count: 8 }, - { lang: 'German', count: 7 }, - { lang: 'Chinese', count: 5 }, - { lang: 'Swahili', count: 4 }, - { lang: 'Serbian', count: 4 }, -] - -for (const { lang, count } of languages) { - console.log(`The ${lang} is spoken in ${count} countries.`) -} -``` - -Destructuring function parameter - -```js -const rectangle = { width: 20, height: 10 } -const calcualteArea = ({ width, height }) => width * height -const calculatePerimeter = ({ width, height } = 2 * (width + height)) -``` - -#### Exercises - -Create a function called getPersonInfo. The getPersonInfo function takes an object parameter. The structure of the object and the output of the function is given below. Try to use both a regular way and destructuring and compare the cleanness of the code. If you want to compare your solution with my solution, check this link. - -```js -const person = { - firstName: 'Asabeneh', - lastName: 'Yetayeh', - age: 250, - country: 'Finland', - job: 'Instructor and Developer', - skills: [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB', - 'Python', - 'D3.js', - ], - languages: ['Amharic', 'English', 'Suomi(Finnish)'], -} - -/* -Asabeneh Yetayeh lives in Finland. He is 250 years old. He is an Instructor and Developer. He teaches HTML, CSS, JavaScript, React, Redux, Node, MongoDB, Python and D3.js. He speaks Amharic, English and a little bit of Suomi(Finnish) -*/ -``` - -#### Spread or Rest Operator - -When we destructure an array we use the spread operator(...) to get the rest elements as array. In addition to that we use spread operator to spread arr elements to another array. - -##### Spread operator to get the rest of array elements - -```js -const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -let [num1, num2, num3, ...rest] = nums -​ -console.log(num1, num2, num3) -console.log(rest) -``` - -```sh -1 2 3 -[4, 5, 6, 7, 8, 9, 10] -``` - -```js -const countries = [ - 'Germany', - 'France', - 'Belgium', - 'Finland', - 'Sweden', - 'Norway', - 'Denmark', - 'Iceland', -] - -let [gem, fra, , ...nordicCountries] = countries - -console.log(gem) -console.log(fra) -console.log(nordicCountries) -``` - -```sh -Germany -France -["Finland", "Sweden", "Norway", "Denmark", "Iceland"] -``` - -##### Spread operator to copy array - -```js -const evens = [0, 2, 4, 6, 8, 10] -const evenNumbers = [...evens] - -const odds = [1, 3, 5, 7, 9] -const oddNumbers = [...odds] - -const wholeNumbers = [...evens, ...odds] - -console.log(evenNumbers) -console.log(oddNumbers) -console.log(wholeNumbers) -``` - -```sh -[0, 2, 4, 6, 8, 10] -[1, 3, 5, 7, 9] -[0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9] -``` - -```js -const frontEnd = ['HTML', 'CSS', 'JS', 'React'] -const backEnd = ['Node', 'Express', 'MongoDB'] -const fullStack = [...frontEnd, ...backEnd] - -console.log(fullStack) -``` - -```sh -["HTML", "CSS", "JS", "React", "Node", "Express", "MongoDB"] -``` - -##### Spread operator to copy object - -We can copy an object using a spread operator - -```js -const user = { - name: 'Asabeneh', - title: 'Programmer', - country: 'Finland', - city: 'Helsinki', -} - -const copiedUser = { ...user } -console.log(copiedUser) -``` - -```sh -{name: "Asabeneh", title: "Programmer", country: "Finland", city: "Helsinki"} -``` - -Modifying or changing the object while copying - -```js -const user = { - name: 'Asabeneh', - title: 'Programmer', - country: 'Finland', - city: 'Helsinki', -} - -const copiedUser = { ...user, title: 'instructor' } -console.log(copiedUser) -``` - -```sh -{name: "Asabeneh", title: "instructor", country: "Finland", city: "Helsinki"} -``` - -##### Spread operator with arrow function - -Whenever we like to write an arrow function which takes unlimited number of arguments we use a spread operator. If we use a spread operator as a parameter, the argument passed when we invoke a function will change to an array. - -```js -const sumAllNums = (...args) => { - console.log(args) -} - -sumAllNums(1, 2, 3, 4, 5) -``` - -```sh -[1, 2, 3, 4, 5] - -``` - -```js -const sumAllNums = (...args) => { - let sum = 0 - for (const num of args) { - sum += num - } - return sum -} - -console.log(sumAllNums(1, 2, 3, 4, 5)) -``` - -```sh -15 - -``` - -### 11. Functional Programming - -In this article, I will try to help you to have a very good understanding of the most common feature of JavaScript, _functional programming_. - -_Functional programming_ allows you to write shorter code, clean code, and also to solve complicated problems which might be difficult to solve in a traditional way. - -In this article we will cover all JS functional programming methods: - -- forEach -- map -- filter -- reduce -- find -- findIndex -- some -- every - -#### 1. forEach - -We use forEach when we like to iterate through an array of items. The forEach is a higher-order function and it takes call-back as a parameter. The forEach method is used only with array and we use forEach if you are interested in each item or index or both. - -```js -// syntax in a normal or a function declaration - -function callback(item, index, arr) {} -array.forEach(callback) - -// or syntax in an arrow function -const callback = (item, i, arr) => {} -array.forEach(callback) -``` - -The call back function could be a function declaration or an arrow function. - -Let see different examples - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] -countries.forEach(function (country, index, arr) { - console.log(i, country.toUpperCase()) -}) -``` - -If there is no much code inside the code block we can use an arrow function and we can write it without a curly bracket. The index and the array parameters are optional, we can omit them. - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] -countries.forEach((country, i) => console.log(i, country.toUpperCase())) -``` - -```sh -0 "FINLAND" -1 "ESTONIA" -2 "SWEDEN" -3 "NORWAY" -``` - -For example if we like to change each country to uppercase and store it back to an array we write it as follows. - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] -const newCountries = [] -countries.forEach((country) => newCountries.push(country)) - -console.log(newCountries) // ["Finland", "Estonia", "Sweden", "Norway"] -``` - -Let us see more examples. For instance if we want to sum an array of numbers we can use forEach or reduce. Let us see how we use forEach to sum all numbers in an array. - -```js -const numbers = [1, 2, 3, 4, 5] -let sum = 0 -numbers.forEach((n) => (sum += n)) - -console.log(sum) // 15 -``` - -Let us move to the next functional programming method which is going to be a map. - -#### 2. map - -We use the map method whenever we like to modify an array. We use the map method only with arrays and it always returns an array. - -```js -// syntax in a normal or a function declaration - -function callback(item, i) { - return // code goes here -} - -const modifiedArray = array.map(callback) - -// or syntax in an arrow function - -const callback = (item, i) => { - return // code goes here -} -const modifiedArray = array.map(callback) -``` - -Now, let us modify the countries array using the map method. The index is an optional parameter - -```js -// Using function declaration - -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] - -const newCountries = countries.map(function (country) { - return country.toUpperCase() -}) - -console.log(newCountries) - -// map using an arrow function call back - -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] -const newCountries = countries.map((country) => country.toUpperCase()) - -console.log(newCountries) // ["FINLAND", "ESTONIA", "SWEDEN", "NORWAY"] -``` - -As you can see that map is very handy to modify an array and to get an array back. Now, let us create an array of the length of the countries from the countries array. - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] -const countriesLength = countries.map((country) => country.length) - -console.log(countriesLength) // [7, 7, 6, 6] -``` - -Let us see another more example - -```js -const numbers = [1, 2, 3, 4, 5] -const squares = numbers.map((n) => n ** 2) - -console.log(squares) // [1, 4, 9, 16, 25] -``` - -#### 3. filter - -As you may understand from the literal meaning of filter, it filters out items based on some criteria. The filter method like forEach and map is used with an array and it returns an array of the filtered items. - -For instance if we want to filter out countries containing a substring land from an array of countries. See the example below: - -```js -// syntax in a normal or a function declaration -function callback(item) { - return // boolean -} - -const filteredArray = array.filter(callback) - -// or syntax in an arrow function - -const callback = (item) => { - return // boolean -} -const filteredArray = array.filter(callback) -``` - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const countriesWithLand = countries.filter((country) => - country.includes('land') -) -console.log(countriesWithLand) // ["Finland", "Iceland"] -``` - -How about if we want to filter out countries not containing the substring land. We use negation to achieve that. - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const countriesWithLand = countries.filter( - (country) => !country.includes('land') -) -console.log(countriesWithLand) // ["Estonia", "Sweden", "Norway"] -``` - -Let's see an additional example about the filter, let us filter even or odd numbers from an array of numbers - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const evens = numbers.filter((n) => n % 2 === 0) -const odds = numbers.filter((n) => n % 2 !== 0) -console.log(evens) // [0, 2, 4, 6, 8, 10] -console.log(odds) // [1, 3, 5, 7, 9] -``` - -Now, you know how to filter let us move on to the next functional programming, reduce. - -#### 4. reduce - -Like forEach, map, and filter, reduce is also used with an array and it returns a single value. You can associate reduce with a blender. You put different fruits to a blend and you get a mix of fruit juice. The juice is the output from the reduction process. - -We use the reduce method to sum all numbers in an array together, or to multiply items in an array or to concatenate items in an array. Let us see the following different example to make this explanation more clear. - -```js -// syntax in a normal or a function declaration - -function callback(acc, cur) { - return // code goes here -} - -const reduced = array.reduce(callback, optionalInitialValue) - -// or syntax in an arrow function - -const reduced = callback(acc, cur) => { - return // code goes here -} -const reduced = array.reduce(callback) -``` - -The default initial value is 0. We can change the initial value if we want to change it. - -For instance if we want to add all items in an array and if all the items are numbers we can use reduce. - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const sum = numbers.reduce((acc, cur) => acc + cur) -console.log(sum) // 55 -``` - -Reduce has a default initial value which is zero. Now, let us use a different initial value which is 5 in this case. - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const sum = numbers.reduce((acc, cur) => acc + cur, 5) -console.log(sum) // 60 -``` - -Let us concatenate strings using reduce - -```js -const strs = ['Hello', 'world', '!'] -const helloWorld = strs.reduce((acc, cur) => acc + ' ' + cur) -console.log(helloWorld) // "Hello world !" -``` - -We can multiply items of an array using reduce and we will return the value. - -```js -const numbers = [1, 2, 3, 4, 5] -const value = numbers.reduce((acc, cur) => acc * cur) -console.log(value) // 120 -``` - -Let us try it with an initial value - -```js -const numbers = [1, 2, 3, 4, 5] -const value = numbers.reduce((acc, cur) => acc * cur, 10) -console.log(value) // 1200 -``` - -#### 5. find - -If we are interested in the first occurrence of a certain item or element in an array we can use find method. Unlike map and filter, find just return the first occurrence of an item instead of an array. - -```js -// syntax in a normal or a function declaration - -function callback(item) { -return // code goes here -} - -const item = array.find(callback) - -// or syntax in an arrow function - -const reduced = callback(item) => { -return // code goes here -} -const item = array.find(callback) -``` - -Let find the first even number and the first odd number in the numbers array. - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const firstEvenNum = numbers.find((n) => n % 2 === 0) -const firstOddNum = numbers.find((n) => n % 2 !== 0) -console.log(firstEvenNum) // 0 -console.log(firstOddNum) // 1 -``` - -Let us find the first country which contains a substring way - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const countryWithWay = countries.find((country) => country.includes('way')) -console.log(countriesWithWay) // Norway -``` - -Let us find the first country which has only six characters - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const sixCharsCountry = countries.find((country) => country.length === 6) -console.log(sixCharsCountry) // Sweden -``` - -Let us find the first country in the array which has the letter 'o' - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const index = countries.find((country) => country.includes('o')) -console.log(index // Estonia -``` - -#### 6. findIndex - -The findIndex method works like find but findIndex returns the index of the item. If we are interested in the index of a certain item or element in an array we can use findIndex. The findIndex return the index of the first occurrence of an item. - -```js -// syntax in a normal or a function declaration - -function callback(item) { -return // code goes here -} - -const index = array.findIndex(callback) - -// or syntax in an arrow function - -const reduced = callback(item) => { -return // code goes here -} -const index = array.findIndex(callback) -``` - -Let us find the index of the first even number and the index of the first odd number in the numbers array. - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const firstEvenIndex = numbers.findIndex((n) => n % 2 === 0) -const firstOddIndex = numbers.findIndex((n) => n % 2 !== 0) -console.log(firstEvenIndex) // 0 -console.log(firstOddIndex) // 1 -``` - -Let us find the index of the first country in the array which has exactly six characters - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const index = countries.findIndex((country) => country.length === 6) -console.log(index //2 -``` - -Let us find the index of the first country in the array which has the letter 'o'. - -```js -const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] -const index = countries.findIndex((country) => country.includes('o')) -console.log(index // 1 -``` - -Let us move on to the next functional programming, some. - -#### 7. some - -The some method is used with array and return a boolean. If one or some of the items satisfy the criteria the result will be true else it will be false. Let us see it with an example. - -In the following array some numbers are even and some are odd, so if I ask you a question, are there even numbers in the array then your answer will be yes. If I ask you also another question, are there odd numbers in the array then your answer will be yes. On the contrary, if I ask you, are all the numbers even or odd then your answer will be no because all the numbers are not even or odd. - -```js -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const someAreEvens = numbers.some((n) => n % 2 === 0) -const someAreOdds = numbers.some((n) => n % 2 !== 0) -console.log(someAreEvens) // true -console.log(someAreOdds) // true -``` - -Let us another example - -```js -const evens = [0, 2, 4, 6, 8, 10] -const someAreEvens = evens.some((n) => n % 2 === 0) -const someAreOdds = evens.some((n) => n % 2 !== 0) -console.log(someAreEvens) // true -console.log(someAreOdds) // false -``` - -Now, let us see one more functional programming, every. - -#### 8. every - -The method every is somehow similar to some but every item must satisfy the criteria. The method every like some returns a boolean. - -```js - -const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -const allAreEvens = numbers.every((n) => n % 2 === 0) -const allAreOdd s= numbers.every((n) => n % 2 !== 0) - -console.log(allAreEven) // false -console.log(allAreOdd) // false - -const evens = [0, 2, 4, 6, 8, 10] -const someAreEvens = evens.some((n) => n % 2 === 0) -const someAreOdds = evens.some((n) => n % 2 !== 0) - -console.log(someAreEvens) // true -console.log(someAreOdds) // false -``` - -#### Exercises - -```js -const products = [ - { product: 'banana', price: 3 }, - { product: 'mango', price: 6 }, - { product: 'potato', price: ' ' }, - { product: 'avocado', price: 8 }, - { product: 'coffee', price: 10 }, - { product: 'tea', price: '' }, -] -``` - -1. Print the price of each product using forEach -2. Print the product items as follows using forEach - - ```sh - The price of banana is 3 euros. - The price of mango is 6 euros. - The price of potato is unknown. - The price of avocado is 8 euros. - The price of coffee is 10 euros. - The price of tea is unknown. - ``` - -3. Calculate the sum of all the prices using forEach -4. Create an array of prices using map and store it in a variable prices -5. Filter products with prices -6. Use method chaining to get the sum of the prices(map, filter, reduce) -7. Calculate the sum of all the prices using reduce only -8. Find the first product which doesn't have a price value -9. Find the index of the first product which does not have price value -10. Check if some products do not have a price value -11. Check if all the products have price value -12. Explain the difference between forEach, map, filter and reduce -13. Explain the difference between filter, find and findIndex -14. Explain the difference between some and every - -### 12. Classes - -JavaScript is an object oriented programming language. Everything in JavScript is an object, with its properties and methods. We create class to create an object. A Class is like an object constructor, or a "blueprint" for creating objects. We instantiate a class to create an object. The class defines attributes and the behavior of the object, while the object, on the other hand, represents the class. - -Once we create a class we can create object from it whenever we want. Creating an object from a class is called class instantiation. - -In the object section, we saw how to create an object literal. Object literal is a singleton. If we want to get a similar object , we have to write it. However, class allows to create many objects. This helps to reduce amount of code and repetition of code. - -#### Defining a classes - -To define a class in JavaScript we need the keyword _class_ , the name of a class in **CamelCase** and block code(two curly brackets). Let us create a class name Person. - -```sh -// syntax -class ClassName { - // code goes here -} - -``` - -**Example:** - -```js -class Person { - // code goes here -} -``` - -We have created an Person class but it does not have any thing inside. - -#### Class Instantiation - -Instantiation class means creating an object from a class. We need the keyword _new_ and we call the name of the class after the word new. - -Let us create a dog object from our Person class. - -```js -class Person { - // code goes here -} -const person = new Person() -console.log(person) -``` - -```sh -Person {} -``` - -As you can see, we have created a person object. Since the class did not have any properties yet the object is also empty. - -Let use the class constructor to pass different properties for the class. - -#### Class Constructor - -The constructor is a builtin function which allows as to create a blueprint for our object. The constructor function starts with a keyword constructor followed by a parenthesis. Inside the parenthesis we pass the properties of the object as parameter. We use the _this_ keyword to attach the constructor parameters with the class. - -The following Person class constructor has firstName and lastName property. These properties are attached to the Person class using _this_ keyword. _This_ refers to the class itself. - -```js -class Person { - constructor(firstName, lastName) { - console.log(this) // Check the output from here - this.firstName = firstName - this.lastName = lastName - } -} - -const person = new Person() - -console.log(person) -``` - -```sh -Person {firstName: undefined, lastName} -``` - -All the keys of the object are undefined. When ever we instantiate we should pass the value of the properties. Let us pass value at this time when we instantiate the class. - -```js -class Person { - constructor(firstName, lastName) { - this.firstName = firstName - this.lastName = lastName - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh') - -console.log(person1) -``` - -```sh -Person {firstName: "Asabeneh", lastName: "Yetayeh"} -``` - -As we have stated at the very beginning that once we create a class we can create many object using the class. Now, let us create many person objects using the Person class. - -```js -class Person { - constructor(firstName, lastName) { - console.log(this) // Check the output from here - this.firstName = firstName - this.lastName = lastName - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh') -const person2 = new Person('Lidiya', 'Tekle') -const person3 = new Person('Abraham', 'Yetayeh') - -console.log(person1) -console.log(person2) -console.log(person3) -``` - -```sh -Person {firstName: "Asabeneh", lastName: "Yetayeh"} -Person {firstName: "Lidiya", lastName: "Tekle"} -Person {firstName: "Abraham", lastName: "Yetayeh"} -``` - -Using the class Person we created three persons object. As you can see our class did not many properties let us add more properties to the class. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - console.log(this) // Check the output from here - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') - -console.log(person1) -``` - -```sh -Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} -``` - -#### Default values with constructor - -The constructor function properties may have a default value like other regular functions. - -```js -class Person { - constructor( - firstName = 'Asabeneh', - lastName = 'Yetayeh', - age = 250, - country = 'Finland', - city = 'Helsinki' - ) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - } -} - -const person1 = new Person() // it will take the default values -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') - -console.log(person1) -console.log(person2) -``` - -```sh -Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} -Person {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Espoo"} -``` - -#### Class methods - -The constructor inside a class is a builtin function which allow us to create a blueprint for the object. In a class we can create class methods. Methods are JavaScript functions inside the class. Let us create some class methods. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') - -console.log(person1.getFullName()) -console.log(person2.getFullName()) -``` - -```sh -Asabeneh Yetayeh -test.js:19 Lidiya Tekle -``` - -#### Properties with initial value - -When we create a class for some properties we may have an initial value. For instance if you are playing a game, you starting score will be zero. So, we may have a starting score or score which is zero. In other way, we may have an initial skill and we will acquire some skill after some time. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - this.score = 0 - this.skills = [] - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') - -console.log(person1.score) -console.log(person2.score) - -console.log(person1.skills) -console.log(person2.skills) -``` - -```sh -0 -0 -[] -[] -``` - -A method could be regular method or a getter or a setter. Let us see, getter and setter. - -#### getter - -The get method allow us to access value from the object. We write a get method using keyword _get_ followed by a function. Instead of accessing properties directly from the object we use getter to get the value. See the example bellow - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - this.score = 0 - this.skills = [] - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } - get getScore() { - return this.score - } - get getSkills() { - return this.skills - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') - -console.log(person1.getScore) // We do not need parenthesis to call a getter method -console.log(person2.getScore) - -console.log(person1.getSkills) -console.log(person2.getSkills) -``` - -```sh -0 -0 -[] -[] -``` - -#### setter - -The setter method allow us to modify the value of certain properties. We write a setter method using keyword _set_ followed by a function. See the example bellow. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - this.score = 0 - this.skills = [] - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } - get getScore() { - return this.score - } - get getSkills() { - return this.skills - } - set setScore(score) { - this.score += score - } - set setSkill(skill) { - this.skills.push(skill) - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') - -person1.setScore = 1 -person1.setSkill = 'HTML' -person1.setSkill = 'CSS' -person1.setSkill = 'JavaScript' - -person2.setScore = 1 -person2.setSkill = 'Planning' -person2.setSkill = 'Managing' -person2.setSkill = 'Organizing' - -console.log(person1.score) -console.log(person2.score) - -console.log(person1.skills) -console.log(person2.skills) -``` - -```sh -1 -1 -["HTML", "CSS", "JavaScript"] -["Planning", "Managing", "Organizing"] -``` - -Do not be puzzled by the difference between regular method and a getter. If you know how to make a regular method you are good. Let us add regular method called getPersonInfo in the Person class. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - this.score = 0 - this.skills = [] - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } - get getScore() { - return this.score - } - get getSkills() { - return this.skills - } - set setScore(score) { - this.score += score - } - set setSkill(skill) { - this.skills.push(skill) - } - getPersonInfo() { - let fullName = this.getFullName() - let skills = - this.skills.length > 0 && - this.skills.slice(0, this.skills.length - 1).join(', ') + - ` and ${this.skills[this.skills.length - 1]}` - let formattedSkills = skills ? `He knows ${skills}` : '' - - let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` - return info - } -} - -const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') -const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') -const person3 = new Person('John', 'Doe', 50, 'Mars', 'Mars city') - -person1.setScore = 1 -person1.setSkill = 'HTML' -person1.setSkill = 'CSS' -person1.setSkill = 'JavaScript' - -person2.setScore = 1 -person2.setSkill = 'Planning' -person2.setSkill = 'Managing' -person2.setSkill = 'Organizing' - -console.log(person1.getScore) -console.log(person2.getScore) - -console.log(person1.getSkills) -console.log(person2.getSkills) -console.log(person3.getSkills) - -console.log(person1.getPersonInfo()) -console.log(person2.getPersonInfo()) -console.log(person3.getPersonInfo()) -``` - -```sh -1 -1 -["HTML", "CSS", "JavaScript"] -["Planning", "Managing", "Organizing"] -[] -Asabeneh Yetayeh is 250. He lives Helsinki, Finland. He knows HTML, CSS and JavaScript -Lidiya Tekle is 28. He lives Espoo, Finland. He knows Planning, Managing and Organizing -John Doe is 50. He lives Mars city, Mars. -``` - -#### Static method - -The static keyword defines a static method for a class. Static methods are not called on instances of the class. Instead, they are called on the class itself. These are often utility functions, such as functions to create or clone objects. An example of static method is _Date.now()_. The _now_ method is called directly from the class. - -```js -class Person { - constructor(firstName, lastName, age, country, city) { - this.firstName = firstName - this.lastName = lastName - this.age = age - this.country = country - this.city = city - this.score = 0 - this.skills = [] - } - getFullName() { - const fullName = this.firstName + ' ' + this.lastName - return fullName - } - get getScore() { - return this.score - } - get getSkills() { - return this.skills - } - set setScore(score) { - this.score += score - } - set setSkill(skill) { - this.skills.push(skill) - } - getPersonInfo() { - let fullName = this.getFullName() - let skills = - this.skills.length > 0 && - this.skills.slice(0, this.skills.length - 1).join(', ') + - ` and ${this.skills[this.skills.length - 1]}` - - let formattedSkills = skills ? `He knows ${skills}` : '' - - let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` - return info - } - static favoriteSkill() { - const skills = ['HTML', 'CSS', 'JS', 'React', 'Python', 'Node'] - const index = Math.floor(Math.random() * skills.length) - return skills[index] - } - static showDateTime() { - let now = new Date() - let year = now.getFullYear() - let month = now.getMonth() + 1 - let date = now.getDate() - let hours = now.getHours() - let minutes = now.getMinutes() - if (hours < 10) { - hours = '0' + hours - } - if (minutes < 10) { - minutes = '0' + minutes - } - - let dateMonthYear = date + '.' + month + '.' + year - let time = hours + ':' + minutes - let fullTime = dateMonthYear + ' ' + time - return fullTime - } -} - -console.log(Person.favoriteSkill()) -console.log(Person.showDateTime()) -``` - -```sh -Node -15.1.2020 23:56 -``` - -The static methods are methods which can be used as utility functions. - -#### Inheritance - -Using inheritance we can access all the properties and the methods of the parent class. This reduces repetition of code. If you remember, we have a Person parent class and we will create children from it. Our children class could be student, teach etc. - -```js -// syntax -class ChildClassName extends { - // code goes here -} -``` - -Let us create a Student child class from Person parent class. - -```js -class Student extends Person { - saySomething() { - console.log('I am a child of the person class') - } -} - -const s1 = new Student('Asabeneh', 'Yetayeh', 'Finland', 250, 'Helsinki') -console.log(s1) -console.log(s1.saySomething()) -console.log(s1.getFullName()) -console.log(s1.getPersonInfo()) -``` - -```sh -Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} -I am a child of the person class -Asabeneh Yetayeh -Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} -Asabeneh Yetayeh is Finland. He lives Helsinki, 250. -``` - -#### Overriding methods - -As you can see, we manage to access all the methods in the Person Class and we used it in the Student child class. We can customize the parent methods, we can add additional properties to a child class. If we want to customize, the methods and if we want to add extra properties, we need to use the constructor function the child class too. In side the constructor function we call the super() function to access all the properties from the parent class. The Person class didn't have gender but now let us give gender property for the child class, Student. If the same method name used in the child class, the parent method will be overridden. - -```js -class Student extends Person { - constructor(firstName, lastName, age, country, city, gender) { - super(firstName, lastName, age, country, city) - this.gender = gender - } - - saySomething() { - console.log('I am a child of the person class') - } - getPersonInfo() { - let fullName = this.getFullName() - let skills = - this.skills.length > 0 && - this.skills.slice(0, this.skills.length - 1).join(', ') + - ` and ${this.skills[this.skills.length - 1]}` - - let formattedSkills = skills ? `He knows ${skills}` : '' - let pronoun = this.gender == 'Male' ? 'He' : 'She' - - let info = `${fullName} is ${this.age}. ${pronoun} lives in ${this.city}, ${this.country}. ${formattedSkills}` - return info - } -} - -const s1 = new Student( - 'Asabeneh', - 'Yetayeh', - 250, - 'Finland', - 'Helsinki', - 'Male' -) -const s2 = new Student('Lidiya', 'Tekle', 28, 'Finland', 'Helsinki', 'Female') -s1.setScore = 1 -s1.setSkill = 'HTML' -s1.setSkill = 'CSS' -s1.setSkill = 'JavaScript' - -s2.setScore = 1 -s2.setSkill = 'Planning' -s2.setSkill = 'Managing' -s2.setSkill = 'Organizing' - -console.log(s1) - -console.log(s1.saySomething()) -console.log(s1.getFullName()) -console.log(s1.getPersonInfo()) - -console.log(s2.saySomething()) -console.log(s2.getFullName()) -console.log(s2.getPersonInfo()) -``` - -```sh -Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} -Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} -I am a child of the person class -Asabeneh Yetayeh -Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} -Asabeneh Yetayeh is 250. He lives in Helsinki, Finland. He knows HTML, CSS and JavaScript -I am a child of the person class -Lidiya Tekle -Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} -Lidiya Tekle is 28. She lives in Helsinki, Finland. He knows Planning, Managing and Organizing -``` - -Now, the getPersonInfo method has been overridden and it identifies if the person is male or female. - -#### Exercises - -##### Exercises Level 1 - -1. Create an Animal class. The class will have name, age, color, legs properties and create different methods -2. Create a Dog and Cat child class from the Animal Class. - -##### Exercises Level 2 - -1. Override the method you create in Animal class - -##### Exercises Level 3 - -1. Let's try to develop a program which calculate measure of central tendency of a sample(mean, median, mode) and measure of variability(range, variance, standard deviation). In addition to those measures find the min, max, count, percentile, and frequency distribution of the sample. You can create a class called Statistics and create all the functions which do statistical calculations as method for the Statistics class. Check the output below. - -```JS -ages = [31, 26, 34, 37, 27, 26, 32, 32, 26, 27, 27, 24, 32, 33, 27, 25, 26, 38, 37, 31, 34, 24, 33, 29, 26] - -console.log('Count:', statistics.count()) // 25 -console.log('Sum: ', statistics.sum()) // 744 -console.log('Min: ', statistics.min()) // 24 -console.log('Max: ', statistics.max()) // 38 -console.log('Range: ', statistics.range() // 14 -console.log('Mean: ', statistics.mean()) // 30 -console.log('Median: ',statistics.median()) // 29 -console.log('Mode: ', statistics.mode()) // {'mode': 26, 'count': 5} -console.log('Variance: ',statistics.var()) // 17.5 -console.log('Standard Deviation: ', statistics.std()) // 4.2 -console.log('Variance: ',statistics.var()) // 17.5 -console.log('Frequency Distribution: ',statistics.freqDist()) // [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] -``` - -```sh -// you output should look like this -console.log(statistics.describe()) -Count: 25 -Sum: 744 -Min: 24 -Max: 38 -Range: 14 -Mean: 30 -Median: 29 -Mode: (26, 5) -Variance: 17.5 -Standard Deviation: 4.2 -Frequency Distribution: [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] -``` - -### 13 Document Object Model(DOM) - -HTML document is structured as a JavaScript Object. Every HTML element has a different properties which can help us to manipulate it. It is possible to get, create, append or remove HTML elements using JavaScript. - -When it comes to React we do not directly manipulate the DOM instead React Virtual DOM will take care of update all necessary changes. - -So do not directly manipulate the DOM if you are using react. The only place we directly touch the DOM is here at the index.html. React is a single page application because all the components will be rendered on the index.html page and there will not be any other HTML in the entire React Application. You don't have to know DOM very well to use react but recommended to know. - -```html - - - - - - React App - - - - -
- - - - -``` - -Check out there result on [codepen](https://codepen.io/Asabeneh/full/vYGqQxP) - -🌕 You are amazing! You have just completed day 1 challenge and you are on your way to greatness. Now you are a JavaScript Ninja and ready to dive into React. - -🎉 CONGRATULATIONS ! 🎉 - -[<< Day 0](../readMe.md) | [Day 2 >>](../02_Day_Introduction_to_React/02_introduction_to_react.md) +
+ +

30 Days Of React: JavaScript Refresher

+ + + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ October, 2020 +
+ +
+ +[<< Day 0](../readMe.md) | [Day 2 >>](../02_Day_Introduction_to_React/02_introduction_to_react.md) + +![30 Days of React banner](../images/30_days_of_react_banner_day_1.jpg) + +- [JavaScript Refresher](#javascript-refresher) + - [0. Adding JavaScript to a Web Page](#0-adding-javascript-to-a-web-page) + - [Inline Script](#inline-script) + - [Internal Script](#internal-script) + - [External Script](#external-script) + - [Multiple External Scripts](#multiple-external-scripts) + - [1. Variables](#1-variables) + - [2. Data types](#2-data-types) + - [3. Arrays](#3-arrays) + - [How to create an empty array](#how-to-create-an-empty-array) + - [How to create an array with values](#how-to-create-an-array-with-values) + - [Creating an array using split](#creating-an-array-using-split) + - [Accessing array items using index](#accessing-array-items-using-index) + - [Modifying array element](#modifying-array-element) + - [Methods to manipulate array](#methods-to-manipulate-array) + - [Array Constructor](#array-constructor) + - [Creating static values with fill](#creating-static-values-with-fill) + - [Concatenating array using concat](#concatenating-array-using-concat) + - [Getting array length](#getting-array-length) + - [Getting index of an element in an array](#getting-index-of-an-element-in-an-array) + - [Getting last index of an element in array](#getting-last-index-of-an-element-in-array) + - [Checking array](#checking-array) + - [Converting array to string](#converting-array-to-string) + - [Joining array elements](#joining-array-elements) + - [Slice array elements](#slice-array-elements) + - [Splice method in array](#splice-method-in-array) + - [Adding item to an array using push](#adding-item-to-an-array-using-push) + - [Removing the end element using pop](#removing-the-end-element-using-pop) + - [Removing an element from the beginning](#removing-an-element-from-the-beginning) + - [Add an element from the beginning](#add-an-element-from-the-beginning) + - [Reversing array order](#reversing-array-order) + - [Sorting elements in array](#sorting-elements-in-array) + - [Array of arrays](#array-of-arrays) + - [💻 Exercise](#-exercise) + - [Exercise: Level 1](#exercise-level-1) + - [Exercise: Level 2](#exercise-level-2) + - [Exercise: Level 3](#exercise-level-3) + - [4. Conditionals](#4-conditionals) + - [If](#if) + - [If Else](#if-else) + - [If Else if Else](#if-else-if-else) + - [Switch](#switch) + - [Ternary Operators](#ternary-operators) + - [💻 Exercises](#-exercises) + - [Exercises: Level 1](#exercises-level-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises: Level 3](#exercises-level-3) + - [5. Loops](#5-loops) + - [Types of Loops](#types-of-loops) + - [1. for](#1-for) + - [2. while](#2-while) + - [3. do while](#3-do-while) + - [4. for of](#4-for-of) + - [5. forEach](#5-foreach) + - [6. for in](#6-for-in) + - [Interrupting a loop and skipping an item](#interrupting-a-loop-and-skipping-an-item) + - [break](#break) + - [continue](#continue) + - [Conclusions](#conclusions) + - [6. Scope](#6-scope) + - [Window Scope](#window-scope) + - [Global scope](#global-scope) + - [Local scope](#local-scope) + - [7. Object](#7-object) + - [Creating an empty object](#creating-an-empty-object) + - [Creating an objecting with values](#creating-an-objecting-with-values) + - [Getting values from an object](#getting-values-from-an-object) + - [Creating object methods](#creating-object-methods) + - [Setting new key for an object](#setting-new-key-for-an-object) + - [Object Methods](#object-methods) + - [Getting object keys using Object.keys()](#getting-object-keys-using-objectkeys) + - [Getting object values using Object.values()](#getting-object-values-using-objectvalues) + - [Getting object keys and values using Object.entries()](#getting-object-keys-and-values-using-objectentries) + - [Checking properties using hasOwnProperty()](#checking-properties-using-hasownproperty) + - [💻 Exercises](#-exercises-1) + - [Exercises: Level 1](#exercises-level-1-1) + - [Exercises: Level 2](#exercises-level-2-1) + - [Exercises: Level 3](#exercises-level-3-1) + - [8. Functions](#8-functions) + - [Function Declaration](#function-declaration) + - [Function without a parameter and return](#function-without-a-parameter-and-return) + - [Function returning value](#function-returning-value) + - [Function with a parameter](#function-with-a-parameter) + - [Function with two parameters](#function-with-two-parameters) + - [Function with many parameters](#function-with-many-parameters) + - [Function with unlimited number of parameters](#function-with-unlimited-number-of-parameters) + - [Unlimited number of parameters in regular function](#unlimited-number-of-parameters-in-regular-function) + - [Unlimited number of parameters in arrow function](#unlimited-number-of-parameters-in-arrow-function) + - [Anonymous Function](#anonymous-function) + - [Expression Function](#expression-function) + - [Self Invoking Functions](#self-invoking-functions) + - [Arrow Function](#arrow-function) + - [Function with default parameters](#function-with-default-parameters) + - [Function declaration versus Arrow function](#function-declaration-versus-arrow-function) + - [💻 Exercises](#-exercises-2) + - [Exercises: Level 1](#exercises-level-1-2) + - [Exercises: Level 2](#exercises-level-2-2) + - [Exercises: Level 3](#exercises-level-3-2) + - [9. Higher Order Function](#9-higher-order-function) + - [Callback](#callback) + - [Returning function](#returning-function) + - [setting time](#setting-time) + - [setInterval](#setinterval) + - [setTimeout](#settimeout) + - [10. Destructuring and Spreading](#10-destructuring-and-spreading) + - [What is Destructuring?](#what-is-destructuring) + - [What can we destructure?](#what-can-we-destructure) + - [1. Destructuring arrays](#1-destructuring-arrays) + - [2. Destructuring objects](#2-destructuring-objects) + - [Exercises](#exercises) + - [Spread or Rest Operator](#spread-or-rest-operator) + - [Spread operator to get the rest of array elements](#spread-operator-to-get-the-rest-of-array-elements) + - [Spread operator to copy array](#spread-operator-to-copy-array) + - [Spread operator to copy object](#spread-operator-to-copy-object) + - [Spread operator with arrow function](#spread-operator-with-arrow-function) + - [11. Functional Programming](#11-functional-programming) + - [1. forEach](#1-foreach) + - [2. map](#2-map) + - [3. filter](#3-filter) + - [4. reduce](#4-reduce) + - [5. find](#5-find) + - [6. findIndex](#6-findindex) + - [7. some](#7-some) + - [8. every](#8-every) + - [Exercises](#exercises-1) + - [12. Classes](#12-classes) + - [Defining a classes](#defining-a-classes) + - [Class Instantiation](#class-instantiation) + - [Class Constructor](#class-constructor) + - [Default values with constructor](#default-values-with-constructor) + - [Class methods](#class-methods) + - [Properties with initial value](#properties-with-initial-value) + - [getter](#getter) + - [setter](#setter) + - [Static method](#static-method) + - [Inheritance](#inheritance) + - [Overriding methods](#overriding-methods) + - [Exercises](#exercises-2) + - [Exercises Level 1](#exercises-level-1-3) + - [Exercises Level 2](#exercises-level-2-3) + - [Exercises Level 3](#exercises-level-3-3) + - [13 Document Object Model(DOM)](#13-document-object-modeldom) + +## JavaScript Refresher + +### 0. Adding JavaScript to a Web Page + +JavaScript can be added to a web page in three different ways: + +- **_Inline script_** +- **_Internal script_** +- **_External script_** +- **_Multiple External scripts_** + +The following sections show different ways of adding JavaScript code to your web page. + +#### Inline Script + +Create a project folder on your desktop or in any location, name it 30DaysOfJS and create an **_index.html_** file in the project folder. Then paste the following code and open it in a browser, for example [Chrome](https://www.google.com/chrome/). + +```html + + + + 30DaysOfScript:Inline Script + + + + + +``` + +Now, you just wrote your first inline script. We can create a pop up alert message using the _alert()_ built-in function. + +#### Internal Script + +The internal script can be written in the _head_ or the _body_, but it is preferred to put it on the body of the HTML document. +First, let us write on the head part of the page. + +```html + + + + 30DaysOfScript:Internal Script + + + + +``` + +This is how we write an internal script most of the time. Writing the JavaScript code in the body section is the most preferred option. Open the browser console to see the output from the console.log() + +```html + + + + 30DaysOfScript:Internal Script + + + + + + +``` + +Open the browser console to see the output from the console.log() + +![js code from vscode](../images/js_code_vscode.png) + +#### External Script + +Similar to the internal script, the external script link can be on the header or body, but it is preferred to put it in the body. +First, we should create an external JavaScript file with .js extension. All files ending with .js extension. All files ending with .js extension are JavaScript files. Create a file named introduction.js inside your project directory and write the following code and link this .js file at the bottom of the body. + +```js +console.log('Welcome to 30DaysOfJavaScript') +``` + +External scripts in the _head_: + +```html + + + + 30DaysOfJavaScript:External script + + + + +``` + +External scripts in the _body_: + +```html + + + + 30DaysOfJavaScript:External script + + + //it could be in the header or in the body // Here is the recommended place + to put the external script + + + +``` + +Open the browser console to see the output of the console.log() + +#### Multiple External Scripts + +We can also link multiple external JavaScript files to a web page. +Create a helloworld.js file inside the 30DaysOfJS folder and write the following code. + +```js +console.log('Hello, World!') +``` + +```html + + + + Multiple External Scripts + + + + + + +``` + +_Your main.js file should be below all other scripts_. It is very important to remember this. + +![Multiple Script](../images/multiple_script.png) + +### 1. Variables + +We use _var_, _let_ and _const_ to declare a variable. The _var_ is functions scope, however _let_ and _const_ are block scope. In this challenge we use ES6 and above features of JavaScript. Avoid using _var_. + +```js +let firstName = 'Asabeneh' +firstName = 'Eyob' + +const PI = 3.14 // Not allowed to reassign PI to a new value +// PI = 3. +``` + +### 2. Data types + +If you do not feel comfortable with data types check the following [link](https://github.com/Asabeneh/30-Days-Of-JavaScript/blob/master/02_Day_Data_types/02_day_data_types.md) + +### 3. Arrays + +In contrast to variables, an array can store _multiple values_. Each value in an array has an _index_, and each index has _a reference in a memory address_. Each value can be accessed by using their _indexes_. The index of an array starts from _zero_, and the index of the last element is less by one from the length of the array. + +An array is a collection of different data types which are ordered and changeable(modifiable). An array allows storing duplicate elements and different data types. An array can be empty, or it may have different data type values. + +#### How to create an empty array + +In JavaScript, we can create an array in different ways. Let us see different ways to create an array. +It is very common to use _const_ instead of _let_ to declare an array variable. If you are using const it means you do not use that variable name again. + +- Using Array constructor + +```js +// syntax +const arr = Array() +// or +// let arr = new Array() +console.log(arr) // [] +``` + +- Using square brackets([]) + +```js +// syntax +// This the most recommended way to create an empty list +const arr = [] +console.log(arr) +``` + +#### How to create an array with values + +Array with initial values. We use _length_ property to find the length of an array. + +```js +const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // array of numbers +const fruits = ['banana', 'orange', 'mango', 'lemon'] // array of strings, fruits +const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // array of strings, vegetables +const animalProducts = ['milk', 'meat', 'butter', 'yoghurt'] // array of strings, products +const webTechs = ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB'] // array of web technologies +const countries = ['Finland', 'Denmark', 'Sweden', 'Norway', 'Iceland'] // array of strings, countries + +// Print the array and its length + +console.log('Numbers:', numbers) +console.log('Number of numbers:', numbers.length) + +console.log('Fruits:', fruits) +console.log('Number of fruits:', fruits.length) + +console.log('Vegetables:', vegetables) +console.log('Number of vegetables:', vegetables.length) + +console.log('Animal products:', animalProducts) +console.log('Number of animal products:', animalProducts.length) + +console.log('Web technologies:', webTechs) +console.log('Number of web technologies:', webTechs.length) + +console.log('Countries:', countries) +console.log('Number of countries:', countries.length) +``` + +```sh +Numbers: [0, 3.14, 9.81, 37, 98.6, 100] +Number of numbers: 6 +Fruits: ['banana', 'orange', 'mango', 'lemon'] +Number of fruits: 4 +Vegetables: ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] +Number of vegetables: 5 +Animal products: ['milk', 'meat', 'butter', 'yoghurt'] +Number of animal products: 4 +Web technologies: ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB'] +Number of web technologies: 7 +Countries: ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway'] +Number of countries: 5 +``` + +- Array can have items of different data types + +```js +const arr = [ + 'Asabeneh', + 250, + true, + { country: 'Finland', city: 'Helsinki' }, + { skills: ['HTML', 'CSS', 'JS', 'React', 'Python'] }, +] // arr containing different data types +console.log(arr) +``` + +#### Creating an array using split + +As we have seen in the earlier section, we can split a string at different positions, and we can change to an array. Let us see the examples below. + +```js +let js = 'JavaScript' +const charsInJavaScript = js.split('') + +console.log(charsInJavaScript) // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"] + +let companiesString = 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' +const companies = companiesString.split(',') + +console.log(companies) // ["Facebook", " Google", " Microsoft", " Apple", " IBM", " Oracle", " Amazon"] +let txt = + 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' +const words = txt.split(' ') + +console.log(words) +// the text has special characters think how you can just get only the words +// ["I", "love", "teaching", "and", "empowering", "people.", "I", "teach", "HTML,", "CSS,", "JS,", "React,", "Python"] +``` + +#### Accessing array items using index + +We access each element in an array using their index. An array index starts from 0. The picture below clearly shows the index of each element in the array. + +![arr index](../images/array_index.png) + +```js +const fruits = ['banana', 'orange', 'mango', 'lemon'] +let firstFruit = fruits[0] // we are accessing the first item using its index + +console.log(firstFruit) // banana + +secondFruit = fruits[1] +console.log(secondFruit) // orange + +let lastFruit = fruits[3] +console.log(lastFruit) // lemon +// Last index can be calculated as follows + +let lastIndex = fruits.length - 1 +lastFruit = fruits[lastIndex] + +console.log(lastFruit) // lemon +``` + +```js +const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // set of numbers + +console.log(numbers.length) // => to know the size of the array, which is 6 +console.log(numbers) // -> [0, 3.14, 9.81, 37, 98.6, 100] +console.log(numbers[0]) // -> 0 +console.log(numbers[5]) // -> 100 + +let lastIndex = numbers.length - 1 +console.log(numbers[lastIndex]) // -> 100 +``` + +```js +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', +] // List of web technologies + +console.log(webTechs) // all the array items +console.log(webTechs.length) // => to know the size of the array, which is 7 +console.log(webTechs[0]) // -> HTML +console.log(webTechs[6]) // -> MongoDB + +let lastIndex = webTechs.length - 1 +console.log(webTechs[lastIndex]) // -> MongoDB +``` + +```js +const countries = [ + 'Albania', + 'Bolivia', + 'Canada', + 'Denmark', + 'Ethiopia', + 'Finland', + 'Germany', + 'Hungary', + 'Ireland', + 'Japan', + 'Kenya', +] // List of countries + +console.log(countries) // -> all countries in array +console.log(countries[0]) // -> Albania +console.log(countries[10]) // -> Kenya + +let lastIndex = countries.length - 1 +console.log(countries[lastIndex]) // -> Kenya +``` + +```js +const shoppingCart = [ + 'Milk', + 'Mango', + 'Tomato', + 'Potato', + 'Avocado', + 'Meat', + 'Eggs', + 'Sugar', +] // List of food products + +console.log(shoppingCart) // -> all shoppingCart in array +console.log(shoppingCart[0]) // -> Milk +console.log(shoppingCart[7]) // -> Sugar + +let lastIndex = shoppingCart.length - 1 +console.log(shoppingCart[lastIndex]) // -> Sugar +``` + +#### Modifying array element + +An array is mutable(modifiable). Once an array is created, we can modify the contents of the array elements. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers[0] = 10 // changing 1 at index 0 to 10 +numbers[1] = 20 // changing 2 at index 1 to 20 + +console.log(numbers) // [10, 20, 3, 4, 5] + +const countries = [ + 'Albania', + 'Bolivia', + 'Canada', + 'Denmark', + 'Ethiopia', + 'Finland', + 'Germany', + 'Hungary', + 'Ireland', + 'Japan', + 'Kenya', +] + +countries[0] = 'Afghanistan' // Replacing Albania by Afghanistan +let lastIndex = countries.length - 1 +countries[lastIndex] = 'Korea' // Replacing Kenya by Korea + +console.log(countries) +``` + +```sh +["Afghanistan", "Bolivia", "Canada", "Denmark", "Ethiopia", "Finland", "Germany", "Hungary", "Ireland", "Japan", "Korea"] +``` + +#### Methods to manipulate array + +There are different methods to manipulate an array. These are some of the available methods to deal with arrays:_Array, length, concat, indexOf, slice, splice, join, toString, includes, lastIndexOf, isArray, fill, push, pop, shift, unshift_ + +##### Array Constructor + +Array:To create an array. + +```js +const arr = Array() // creates an an empty array +console.log(arr) + +const eightEmptyValues = Array(8) // it creates eight empty values +console.log(eightEmptyValues) // [empty x 8] +``` + +##### Creating static values with fill + +fill: Fill all the array elements with a static value + +```js +const arr = Array() // creates an an empty array +console.log(arr) + +const eightXvalues = Array(8).fill('X') // it creates eight element values filled with 'X' +console.log(eightXvalues) // ['X', 'X','X','X','X','X','X','X'] + +const eight0values = Array(8).fill(0) // it creates eight element values filled with '0' +console.log(eight0values) // [0, 0, 0, 0, 0, 0, 0, 0] + +const four4values = Array(4).fill(4) // it creates 4 element values filled with '4' +console.log(four4values) // [4, 4, 4, 4] +``` + +##### Concatenating array using concat + +concat:To concatenate two arrays. + +```js +const firstList = [1, 2, 3] +const secondList = [4, 5, 6] +const thirdList = firstList.concat(secondList) + +console.log(thirdList) // [1, 2, 3, 4, 5, 6] +``` + +```js +const fruits = ['banana', 'orange', 'mango', 'lemon'] // array of fruits +const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // array of vegetables +const fruitsAndVegetables = fruits.concat(vegetables) // concatenate the two arrays + +console.log(fruitsAndVegetables) +``` + +```sh +["banana", "orange", "mango", "lemon", "Tomato", "Potato", "Cabbage", "Onion", "Carrot"] +``` + +##### Getting array length + +Length:To know the size of the array + +```js +const numbers = [1, 2, 3, 4, 5] +console.log(numbers.length) // -> 5 is the size of the array +``` + +##### Getting index of an element in an array + +indexOf:To check if an item exist in an array. If it exists it returns the index else it returns -1. + +```js +const numbers = [1, 2, 3, 4, 5] + +console.log(numbers.indexOf(5)) // -> 4 +console.log(numbers.indexOf(0)) // -> -1 +console.log(numbers.indexOf(1)) // -> 0 +console.log(numbers.indexOf(6)) // -> -1 +``` + +Check an element if it exist in an array. + +- Check items in a list + +```js +// let us check if a banana exist in the array + +const fruits = ['banana', 'orange', 'mango', 'lemon'] +let index = fruits.indexOf('banana') // 0 + +if (index != -1) { + console.log('This fruit does exist in the array') +} else { + console.log('This fruit does not exist in the array') +} +// This fruit does exist in the array + +// we can use also ternary here +index != -1 + ? console.log('This fruit does exist in the array') + : console.log('This fruit does not exist in the array') + +// let us check if a avocado exist in the array +let indexOfAvocado = fruits.indexOf('avocado') // -1, if the element not found index is -1 +if (indexOfAvocado != -1) { + console.log('This fruit does exist in the array') +} else { + console.log('This fruit does not exist in the array') +} +// This fruit does not exist in the array +``` + +##### Getting last index of an element in array + +lastIndexOf: It gives the position of the last item in the array. If it exist, it returns the index else it returns -1. + +```js +const numbers = [1, 2, 3, 4, 5, 3, 1, 2] + +console.log(numbers.lastIndexOf(2)) // 7 +console.log(numbers.lastIndexOf(0)) // -1 +console.log(numbers.lastIndexOf(1)) // 6 +console.log(numbers.lastIndexOf(4)) // 3 +console.log(numbers.lastIndexOf(6)) // -1 +``` + +includes:To check if an item exist in an array. If it exist it returns the true else it returns false. + +```js +const numbers = [1, 2, 3, 4, 5] + +console.log(numbers.includes(5)) // true +console.log(numbers.includes(0)) // false +console.log(numbers.includes(1)) // true +console.log(numbers.includes(6)) // false + +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', +] // List of web technologies + +console.log(webTechs.includes('Node')) // true +console.log(webTechs.includes('C')) // false +``` + +##### Checking array + +Array.isArray:To check if the data type is an array + +```js +const numbers = [1, 2, 3, 4, 5] +console.log(Array.isArray(numbers)) // true + +const number = 100 +console.log(Array.isArray(number)) // false +``` + +##### Converting array to string + +toString:Converts array to string + +```js +const numbers = [1, 2, 3, 4, 5] +console.log(numbers.toString()) // 1,2,3,4,5 + +const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook'] +console.log(names.toString()) // Asabeneh,Mathias,Elias,Brook +``` + +##### Joining array elements + +join: It is used to join the elements of the array, the argument we passed in the join method will be joined in the array and return as a string. By default, it joins with a comma, but we can pass different string parameter which can be joined between the items. + +```js +const numbers = [1, 2, 3, 4, 5] +console.log(numbers.join()) // 1,2,3,4,5 + +const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook'] + +console.log(names.join()) // Asabeneh,Mathias,Elias,Brook +console.log(names.join('')) //AsabenehMathiasEliasBrook +console.log(names.join(' ')) //Asabeneh Mathias Elias Brook +console.log(names.join(', ')) //Asabeneh, Mathias, Elias, Brook +console.log(names.join(' # ')) //Asabeneh # Mathias # Elias # Brook + +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', +] // List of web technologies + +console.log(webTechs.join()) // "HTML,CSS,JavaScript,React,Redux,Node,MongoDB" +console.log(webTechs.join(' # ')) // "HTML # CSS # JavaScript # React # Redux # Node # MongoDB" +``` + +##### Slice array elements + +Slice: To cut out a multiple items in range. It takes two parameters:starting and ending position. It doesn't include the ending position. + +```js +const numbers = [1, 2, 3, 4, 5] + +console.log(numbers.slice()) // -> it copies all item +console.log(numbers.slice(0)) // -> it copies all item +console.log(numbers.slice(0, numbers.length)) // it copies all item +console.log(numbers.slice(1, 4)) // -> [2,3,4] // it doesn't include the ending position +``` + +##### Splice method in array + +Splice: It takes three parameters:Starting position, number of times to be removed and number of items to be added. + +```js +const numbers = [1, 2, 3, 4, 5] + +console.log(numbers.splice()) // -> remove all items +``` + +```js +const numbers = [1, 2, 3, 4, 5] +console.log(numbers.splice(0, 1)) // remove the first item +``` + +```js +const numbers = [1, 2, 3, 4, 5, 6] +console.log(numbers.splice(3, 3, 7, 8, 9)) // -> [1, 2, 3, 7, 8, 9] //it removes three item and replace three items +``` + +##### Adding item to an array using push + +Push: adding item in the end. To add item to the end of an existing array we use the push method. + +```js +// syntax +const arr = ['item1', 'item2', 'item3'] +arr.push('new item') + +console.log(arr) +// ['item1', 'item2','item3','new item'] +``` + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.push(6) + +console.log(numbers) // -> [1,2,3,4,5,6] + +numbers.pop() // -> remove one item from the end +console.log(numbers) // -> [1,2,3,4,5] +``` + +```js +let fruits = ['banana', 'orange', 'mango', 'lemon'] +fruits.push('apple') + +console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple'] + +fruits.push('lime') +console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple', 'lime'] +``` + +##### Removing the end element using pop + +pop: Removing item in the end. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.pop() // -> remove one item from the end + +console.log(numbers) // -> [1,2,3,4] +``` + +##### Removing an element from the beginning + +shift: Removing one array element in the beginning of the array. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.shift() // -> remove one item from the beginning + +console.log(numbers) // -> [2,3,4,5] +``` + +##### Add an element from the beginning + +unshift: Adding array element in the beginning of the array. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.unshift(0) // -> add one item from the beginning + +console.log(numbers) // -> [0,1,2,3,4,5] +``` + +##### Reversing array order + +reverse: reverse the order of an array. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.reverse() // -> reverse array order + +console.log(numbers) // [5, 4, 3, 2, 1] + +numbers.reverse() +console.log(numbers) // [1, 2, 3, 4, 5] +``` + +##### Sorting elements in array + +sort: arrange array elements in ascending order. Sort takes a call back function, we will see how we use sort with a call back function in the coming sections. + +```js +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', +] + +webTechs.sort() +console.log(webTechs) // ["CSS", "HTML", "JavaScript", "MongoDB", "Node", "React", "Redux"] + +webTechs.reverse() // after sorting we can reverse it +console.log(webTechs) // ["Redux", "React", "Node", "MongoDB", "JavaScript", "HTML", "CSS"] +``` + +#### Array of arrays + +Array can store different data types including an array itself. Let us create an array of arrays + +```js +const firstNums = [1, 2, 3] +const secondNums = [1, 4, 9] + +const arrayOfArray = [ + [1, 2, 3], + [1, 2, 3], +] +console.log(arrayOfArray[0]) // [1, 2, 3] + +const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux'] +const backEnd = ['Node', 'Express', 'MongoDB'] +const fullStack = [frontEnd, backEnd] +console.log(fullStack) // [["HTML", "CSS", "JS", "React", "Redux"], ["Node", "Express", "MongoDB"]] +console.log(fullStack.length) // 2 +console.log(fullStack[0]) // ["HTML", "CSS", "JS", "React", "Redux"] +console.log(fullStack[1]) // ["Node", "Express", "MongoDB"] +``` + +### 💻 Exercise + +##### Exercise: Level 1 + +```js +const countries = [ + 'Albania', + 'Bolivia', + 'Canada', + 'Denmark', + 'Ethiopia', + 'Finland', + 'Germany', + 'Hungary', + 'Ireland', + 'Japan', + 'Kenya', +] + +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', +] +``` + +1. Declare an _empty_ array; +2. Declare an array with more than 5 number of elements +3. Find the length of your array +4. Get the first item, the middle item and the last item of the array +5. Declare an array called _mixedDataTypes_, put different data types in the array and find the length of the array. The array size should be greater than 5 +6. Declare an array variable name itCompanies and assign initial values Facebook, Google, Microsoft, Apple, IBM, Oracle and Amazon +7. Print the array using _console.log()_ +8. Print the number of companies in the array +9. Print the first company, middle and last company +10. Print out each company +11. Change each company name to uppercase one by one and print them out +12. Print the array like as a sentence: Facebook, Google, Microsoft, Apple, IBM,Oracle and Amazon are big IT companies. +13. Check if a certain company exists in the itCompanies array. If it exist return the company else return a company is _not found_ +14. Filter out companies which have more than one 'o' without the filter method +15. Sort the array using _sort()_ method +16. Reverse the array using _reverse()_ method +17. Slice out the first 3 companies from the array +18. Slice out the last 3 companies from the array +19. Slice out the middle IT company or companies from the array +20. Remove the first IT company from the array +21. Remove the middle IT company or companies from the array +22. Remove the last IT company from the array +23. Remove all IT companies + +##### Exercise: Level 2 + +1. Create a separate countries.js file and store the countries array into this file, create a separate file web_techs.js and store the webTechs array into this file. Access both file in main.js file +1. First remove all the punctuations and change the string to array and count the number of words in the array + + ```js + let text = + 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' + console.log(words) + console.log(words.length) + ``` + + ```sh + ["I", "love", "teaching", "and", "empowering", "people", "I", "teach", "HTML", "CSS", "JS", "React", "Python"] + + 13 + ``` + +1. In the following shopping cart add, remove, edit items + + ```js + const shoppingCart = ['Milk', 'Coffee', 'Tea', 'Honey'] + ``` + + - add 'Meat' in the beginning of your shopping cart if it has not been already added + - add Sugar at the end of you shopping cart if it has not been already added + - remove 'Honey' if you are allergic to honey + - modify Tea to 'Green Tea' + +1. In countries array check if 'Ethiopia' exists in the array if it exists print 'ETHIOPIA'. If it does not exist add to the countries list. +1. In the webTechs array check if Sass exists in the array and if it exists print 'Sass is a CSS preprocess'. If it does not exist add Sass to the array and print the array. +1. Concatenate the following two variables and store it in a fullStack variable. + + ```js + const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux'] + const backEnd = ['Node', 'Express', 'MongoDB'] + + console.log(fullStack) + ``` + + ```sh + ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"] + ``` + +##### Exercise: Level 3 + +1. The following is an array of 10 students ages: + `js const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24] ` - Sort the array and find the min and max age - Find the median age(one middle item or two middle items divided by two) - Find the average age(all items divided by number of items) - Find the range of the ages(max minus min) - Compare the value of (min - average) and (max - average), use _abs()_ method + + 1.Slice the first ten countries from the [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) + +1. Find the middle country(ies) in the [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) +1. Divide the countries array into two equal arrays if it is even. If countries array is not even , one more country for the first half. + +### 4. Conditionals + +Conditional statements are used for make decisions based on different conditions. +By default , statements in JavaScript script executed sequentially from top to bottom. If the processing logic require so, the sequential flow of execution can be altered in two ways: + +- Conditional execution: a block of one or more statements will be executed if a certain expression is true +- Repetitive execution: a block of one or more statements will be repetitively executed as long as a certain expression is true. In this section, we will cover _if_, _else_ , _else if_ statements. The comparison and logical operators we learned in the previous sections will be useful in here. + +Conditions can be implementing using the following ways: + +- if +- if else +- if else if else +- switch +- ternary operator + +#### If + +In JavaScript and other programming languages the key word _if_ is to used check if a condition is true and to execute the block code. To create an if condition, we need _if_ keyword, condition inside a parenthesis and block of code inside a curly bracket({}). + +```js +// syntax +if (condition) { + //this part of code runs for truthy condition +} +``` + +**Example:** + +```js +let num = 3 +if (num > 0) { + console.log(`${num} is a positive number`) +} +// 3 is a positive number +``` + +As you can see in the condition example above, 3 is greater than 0, so it is a positive number. The condition was true and the block of code was executed. However, if the condition is false, we won't see any results. + +```js +let isRaining = true +if (isRaining) { + console.log('Remember to take your rain coat.') +} +``` + +The same goes for the second condition, if isRaining is false the if block will not be executed and we do not see any output. In order to see the result of a falsy condition, we should have another block, which is going to be _else_. + +#### If Else + +If condition is true the first block will be executed, if not the else condition will be executed. + +```js +// syntax +if (condition) { + // this part of code runs for truthy condition +} else { + // this part of code runs for false condition +} +``` + +```js +let num = 3 +if (num > 0) { + console.log(`${num} is a positive number`) +} else { + console.log(`${num} is a negative number`) +} +// 3 is a positive number + +num = -3 +if (num > 0) { + console.log(`${num} is a positive number`) +} else { + console.log(`${num} is a negative number`) +} +// -3 is a negative number +``` + +```js +let isRaining = true +if (isRaining) { + console.log('You need a rain coat.') +} else { + console.log('No need for a rain coat.') +} +// You need a rain coat. + +isRaining = false +if (isRaining) { + console.log('You need a rain coat.') +} else { + console.log('No need for a rain coat.') +} +// No need for a rain coat. +``` + +The last condition is false, therefore the else block was executed. What if we have more than two conditions? In that case, we would use _else if_ conditions. + +#### If Else if Else + +On our daily life, we make decisions on daily basis. We make decisions not by checking one or two conditions instead we make decisions based on multiple conditions. As similar to our daily life, programming is also full of conditions. We use _else if_ when we have multiple conditions. + +```js +// syntax +if (condition) { + // code +} else if (condition) { + // code +} else { + // code +} +``` + +**Example:** + +```js +let a = 0 +if (a > 0) { + console.log(`${a} is a positive number`) +} else if (a < 0) { + console.log(`${a} is a negative number`) +} else if (a == 0) { + console.log(`${a} is zero`) +} else { + console.log(`${a} is not a number`) +} +``` + +```js +// if else if else +let weather = 'sunny' +if (weather === 'rainy') { + console.log('You need a rain coat.') +} else if (weather === 'cloudy') { + console.log('It might be cold, you need a jacket.') +} else if (weather === 'sunny') { + console.log('Go out freely.') +} else { + console.log('No need for rain coat.') +} +``` + +#### Switch + +Switch is an alternative for **if else if else else**. +The switch statement starts with a _switch_ keyword followed by a parenthesis and code block. Inside the code block we will have different cases. Case block runs if the value in the switch statement parenthesis matches with the case value. The break statement is to terminate execution so the code execution does not go down after the condition is satisfied. The default block runs if all the cases don't satisfy the condition. + +```js +switch (caseValue) { + case 1: + // code + break + case 2: + // code + break + case 3: + // code + default: + // code +} +``` + +```js +let weather = 'cloudy' +switch (weather) { + case 'rainy': + console.log('You need a rain coat.') + break + case 'cloudy': + console.log('It might be cold, you need a jacket.') + break + case 'sunny': + console.log('Go out freely.') + break + default: + console.log(' No need for rain coat.') +} + +// Switch More Examples +let dayUserInput = prompt('What day is today ?') +let day = dayUserInput.toLowerCase() + +switch (day) { + case 'monday': + console.log('Today is Monday') + break + case 'tuesday': + console.log('Today is Tuesday') + break + case 'wednesday': + console.log('Today is Wednesday') + break + case 'thursday': + console.log('Today is Thursday') + break + case 'friday': + console.log('Today is Friday') + break + case 'saturday': + console.log('Today is Saturday') + break + case 'sunday': + console.log('Today is Sunday') + break + default: + console.log('It is not a week day.') +} +``` + +// Examples to use conditions in the cases + +```js +let num = prompt('Enter number') +switch (true) { + case num > 0: + console.log('Number is positive') + break + case num == 0: + console.log('Numbers is zero') + break + case num < 0: + console.log('Number is negative') + break + default: + console.log('Entered value was not a number') +} +``` + +#### Ternary Operators + +Ternary operator is very common in _React_. It is a short way to write if else statement. In React we use ternary operator in many cases. + +To generalize, ternary operator is another way to write conditionals. + +```js +let isRaining = true +isRaining + ? console.log('You need a rain coat.') + : console.log('No need for a rain coat.') +``` + +### 💻 Exercises + +##### Exercises: Level 1 + +1. Get user input using prompt(“Enter your age:”). If user is 18 or older , give feedback:'You are old enough to drive' but if not 18 give another feedback stating to wait for the number of years he needs to turn 18. + + ```sh + Enter your age: 30 + You are old enough to drive. + + Enter your age:15 + You are left with 3 years to drive. + ``` + +1. Compare the values of myAge and yourAge using if … else. Based on the comparison and log the result to console stating who is older (me or you). Use prompt(“Enter your age:”) to get the age as input. + + ```sh + Enter your age: 30 + You are 5 years older than me. + ``` + +1. If a is greater than b return 'a is greater than b' else 'a is less than b'. Try to implement it in two ways + + - using if else + - ternary operator. + + ```js + let a = 4 + let b = 3 + ``` + + ```sh + 4 is greater than 3 + ``` + +1. Even numbers are divisible by 2 and the remainder is zero. How do you check, if a number is even or not using JavaScript? + + ```sh + Enter a number: 2 + 2 is an even number + + Enter a number: 9 + 9 is is an odd number. + ``` + +##### Exercises: Level 2 + +1. Write a code which can give grades to students according to theirs scores: + - 80-100, A + - 70-89, B + - 60-69, C + - 50-59, D + - 0-49, F +1. Check if the season is Autumn, Winter, Spring or Summer. + If the user input is : + - September, October or November, the season is Autumn. + - December, January or February, the season is Winter. + - March, April or May, the season is Spring + - June, July or August, the season is Summer +1. Check if a day is weekend day or a working day. Your script will take day as an input. + +```sh + What is the day today? Saturday + Saturday is a weekend. + + What is the day today? saturDaY + Saturday is a weekend. + + What is the day today? Friday + Friday is a working day. + + What is the day today? FrIDAy + Friday is a working day. +``` + +##### Exercises: Level 3 + +1. Write a program which tells the number of days in a month. + +```sh + Enter a month: January + January has 31 days. + + Enter a month: JANUARY + January has 31 day + + Enter a month: February + February has 28 days. + + Enter a month: FEbruary + February has 28 days. +``` + +1. Write a program which tells the number of days in a month, now consider leap year. + +### 5. Loops + +In programming we use different loops to carry out repetitive tasks. Therefore, loop can help us to automate tedious and repetitive task. JavaScript has also different types of loops which we can use to work on repetitive task. + +Imagine if your are asked to print Hello world one thousand times without a loop, it may take an hour or two to do this tedious task. However, using loop we can print it in less than a second. + +Loops: + +- for +- while +- do while +- for of +- forEach +- for in + +A loop usually goes until the condition gets false. But sometimes we like to interrupt the loop or skip an item during iteration. We use _break_ to interrupt the loop and _continue_ to skip an item during iteration. + +#### Types of Loops + +##### 1. for + +We use for loop when we know how many iteration we go. Let's see the following example + +```js +// for loop syntax + +for (initialization, condition, increment/decrement) { + code goes here +} +``` + +This code prints from 0 to 5. + +```js +for (let i = 0; i < 6; i++) { + console.log(i) +} +``` + +For example if we want to sum all the numbers from 0 to 100. + +```js +let sum = 0 +for (let i = 0; i < 101; i++) { + sum += i +} + +console.log(sum) +``` + +If we want to sum only even numbers: + +```js +let sum = 0 +for (let i = 0; i < 101; i += 2) { + sum += i +} + +console.log(sum) + +// or another way + +let total = 0 +for (let i = 0; i < 101; i++) { + if (i % 2 == 0) { + total += i + } +} +console.log(total) +``` + +This code iterates through the array + +```js +const nums = [1, 2, 3, 4, 5] +for (let i = 0; i < 6; i++) { + console.log(nums[i]) +} +``` + +This code prints 5 to 0. Looping in reverse order + +```js +for (let i = 5; i >= 0; i--) { + console.log(i) +} +``` + +The Code below can reverse an array. + +```js +const nums = [1, 2, 3, 4, 5] +const lastIndex = nums.length - 1 +const newArray = [] +for (let i = lastIndex; i >= 0; i--) { + newArray.push(nums[i]) +} + +console.log(newArray) +``` + +##### 2. while + +We use the while loop when we do not know how man iteration we go in advance. + +```js +let count = prompt('Enter a positive number: ') +while (count > 0) { + console.log(count) + count-- +} +``` + +##### 3. do while + +Do while run at least once if the condition is true or false + +```js +let count = 0 +do { + console.log(count) + count++ +} while (count < 11) +``` + +The code below runs ones though the condition is false + +```js +let count = 11 +do { + console.log(count) + count++ +} while (count < 11) +``` + +While loop is the least important loop in many programming languages. + +##### 4. for of + +The for of loop is very handy to use it with array. If we are not interested in the index of the array a for of loop is preferable to regular for loop or forEach loop. + +```js +const numbers = [1, 2, 3, 4, 5] +for (const number of numbers) { + console.log(number) +} + +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +for (const country of countries) { + console.log(country.toUpperCase()) +} +``` + +##### 5. forEach + +If we are interested in the index of the array forEach is preferable to for of loop. The forEach array method takes a callback function, the callback function takes three arguments: the item, the index and the array itself. + +```js +const numbers = [1, 2, 3, 4, 5] +numbers.forEach((number, i) => { + console.log(number, i) +}) + +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +countries.forEach((country, i, arr) => { + console.log(i, country.toUpperCase()) +}) +``` + +##### 6. for in + +The for in loop can be used with object literals to get the keys of the object. + +```js +const user = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + skills: ['HTML', 'CSS', 'JS', 'React', 'Node', 'Python', 'D3.js'], +} + +for (const key in user) { + console.log(key, user[key]) +} +``` + +#### Interrupting a loop and skipping an item + +##### break + +Break is used to interrupt a loop. + +```js +for (let i = 0; i <= 5; i++) { + if (i == 3) { + break + } + console.log(i) +} + +// 0 1 2 +``` + +The above code stops if 3 found in the iteration process. + +##### continue + +We use the keyword continue to skip a certain iterations. + +```js +for (let i = 0; i <= 5; i++) { + if (i == 3) { + continue + } + console.log(i) +} +// 0 1 2 4 5 +``` + +#### Conclusions + +- Regular for loop can be used anywhere when the number of iteration is known. +- While loop when the number of iteration is not know +- Do while loop and while loop are almost the same but do while loop run at least once even when the condition is false +- for of is used only for array +- forEach is used for array +- for in is used for object + +### 6. Scope + +Variable is the fundamental part in programming. We declare variable to store different data types. To declare a variable we use the key word _var_, _let_ and _const_. A variable can declared at different scope. In this section we will see the scope, scope of variables when we use var or let. +Variables scopes can be: + +- Window +- Global +- Local + +Variable can be declared globally or locally or window scope. We will see both global and local scope. +Anything declared without let, var or const is scoped at window level. + +Let us image we have a scope.js file. + +#### Window Scope + +Without using console.log() open your browser and check, you will see the value of a and b if you write a or b on the browser. That means a and b are already available in the window. + +```js +//scope.js +a = 'JavaScript' // is a window scope this found anywhere +b = 10 // this is a window scope variable +function letsLearnScope() { + console.log(a, b) + if (true) { + console.log(a, b) + } +} +console.log(a, b) // accessible +``` + +#### Global scope + +A globally declared variable can be accessed every where in the same file. But the term global is relative. It can be global to the file or it can be global relative to some block of codes. + +```js +//scope.js +let a = 'JavaScript' // is a global scope it will be found anywhere in this file +let b = 10 // is a global scope it will be found anywhere in this file +function letsLearnScope() { + console.log(a, b) // JavaScript 10, accessible + if (true) { + let a = 'Python' + let b = 100 + console.log(a, b) // Python 100 + } + console.log(a, b) +} +letsLearnScope() +console.log(a, b) // JavaScript 10, accessible +``` + +#### Local scope + +A variable declared as local can be accessed only in certain block code. + +```js +//scope.js +let a = 'JavaScript' // is a global scope it will be found anywhere in this file +let b = 10 // is a global scope it will be found anywhere in this file +function letsLearnScope() { + console.log(a, b) // JavaScript 10, accessible + let c = 30 + if (true) { + // we can access from the function and outside the function but + // variables declared inside the if will not be accessed outside the if block + let a = 'Python' + let b = 20 + let d = 40 + console.log(a, b, c) // Python 20 30 + } + // we can not access c because c's scope is only the if block + console.log(a, b) // JavaScript 10 +} +letsLearnScope() +console.log(a, b) // JavaScript 10, accessible +``` + +Now, you have an understanding of scope. A variable declared with _var_ only scoped to function but variable declared with _let_ or _const_ is block scope(function block, if block, loop etc). Block in JavaScript is a code in between two curly brackets ({}). + +```js +//scope.js +function letsLearnScope() { + var gravity = 9.81 + console.log(gravity) +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined + +if (true) { + var gravity = 9.81 + console.log(gravity) // 9.81 +} +console.log(gravity) // 9.81 + +for (var i = 0; i < 3; i++) { + console.log(i) // 1, 2, 3 +} +console.log(i) +``` + +In ES6 and above there is _let_ and _const_, so you will not suffer from the sneakiness of _var_. When we use _let_ our variable is block scoped and it will not infect other parts of our code. + +```js +//scope.js +function letsLearnScope() { + // you can use let or const, but gravity is constant I prefer to use const + const gravity = 9.81 + console.log(gravity) +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined + +if (true) { + const gravity = 9.81 + console.log(gravity) // 9.81 +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined + +for (let i = 0; i < 3; i++) { + console.log(i) // 1, 2, 3 +} +// console.log(i), Uncaught ReferenceError: gravity is not defined +``` + +The scope _let_ and _const_ is the same. The difference is only reassigning. We can not change or reassign the value of const variable. I would strongly suggest you to use _let_ and _const_, by using _let_ and _const_ you will writ clean code and avoid hard to debug mistakes. As a rule of thumb, you can use _let_ for any value which change, _const_ for any constant value, and for array, object, arrow function and function expression. + +### 7. Object + +Everything can be an object and objects do have properties and properties have values, so an object is a key value pair. The order of the key is not reserved, or there is no order. +To create an object literal, we use two curly brackets. + +#### Creating an empty object + +An empty object + +```js +const person = {} +``` + +#### Creating an objecting with values + +Now, the person object has firstName, lastName, age, location, skills and isMarried properties. The value of properties or keys could be a string, number, boolean, an object, null, undefined or a function. + +Let us see some examples of object. Each key has a value in the object. + +```js +const rectangle = { + length: 20, + width: 20, +} +console.log(rectangle) // {length: 20, width: 20} + +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js', + ], + isMarried: true, +} +console.log(person) +``` + +#### Getting values from an object + +We can access values of object using two methods: + +- using . followed by key name if the key-name is a one word +- using square bracket and a quote + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js', + ], + getFullName: function () { + return `${this.firstName}${this.lastName}` + }, + 'phone number': '+3584545454545', +} + +// accessing values using . +console.log(person.firstName) +console.log(person.lastName) +console.log(person.age) +console.log(person.location) + +// value can be accessed using square bracket and key name +console.log(person['firstName']) +console.log(person['lastName']) +console.log(person['age']) +console.log(person['age']) +console.log(person['location']) + +// for instance to access the phone number we only use the square bracket method +console.log(person['phone number']) +``` + +#### Creating object methods + +Now, the person object has getFullName properties. The getFullName is function inside the person object and we call it an object method. The _this_ key word refers to the object itself. We can use the word _this_ to access the values of different properties of the object. We can not use an arrow function as object method because the word this refers to the window inside an arrow function instead of the object itself. Example of object: + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js', + ], + getFullName: function () { + return `${this.firstName} ${this.lastName}` + }, +} + +console.log(person.getFullName()) +// Asabeneh Yetayeh +``` + +#### Setting new key for an object + +An object is a mutable data structure and we can modify the content of an object after it gets created. + +Setting a new keys in an object + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js', + ], + getFullName: function () { + return `${this.firstName} ${this.lastName}` + }, +} +person.nationality = 'Ethiopian' +person.country = 'Finland' +person.title = 'teacher' +person.skills.push('Meteor') +person.skills.push('SasS') +person.isMarried = true + +person.getPersonInfo = function () { + let skillsWithoutLastSkill = this.skills + .slice(0, this.skills.length - 1) + .join(', ') + let lastSkill = this.skills.slice(this.skills.length - 1)[0] + + let skills = `${skillsWithoutLastSkill}, and ${lastSkill}` + let fullName = this.getFullName() + let statement = `${fullName} is a ${this.title}.\nHe lives in ${this.country}.\nHe teaches ${skills}.` + return statement +} +console.log(person) +console.log(person.getPersonInfo()) +``` + +```sh +Asabeneh Yetayeh is a teacher. +He lives in Finland. +He teaches HTML, CSS, JavaScript, React, Node, MongoDB, Python, D3.js, Meteor, and SasS. +``` + +#### Object Methods + +There are different methods to manipulate an object. Let us see some of the available methods. + +_Object.assign_: To copy an object without modifying the original object + +```js +const person = { + firstName: 'Asabeneh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: ['HTML', 'CSS', 'JS'], + title: 'teacher', + address: { + street: 'Heitamienkatu 16', + pobox: 2002, + city: 'Helsinki', + }, + getPersonInfo: function () { + return `I am ${this.firstName} and I live in ${this.city}, ${this.country}. I am ${this.age}.` + }, +} + +//Object methods: Object.assign, Object.keys, Object.values, Object.entries +//hasOwnProperty + +const copyPerson = Object.assign({}, person) +console.log(copyPerson) +``` + +##### Getting object keys using Object.keys() + +_Object.keys_: To get the keys or properties of an object as an array + +```js +const keys = Object.keys(copyPerson) +console.log(keys) //['name', 'age', 'country', 'skills', 'address', 'getPersonInfo'] +const address = Object.keys(copyPerson.address) +console.log(address) //['street', 'pobox', 'city'] +``` + +##### Getting object values using Object.values() + +_Object.values_:To get values of an object as an array + +```js +const values = Object.values(copyPerson) +console.log(values) +``` + +##### Getting object keys and values using Object.entries() + +_Object.entries_:To get the keys and values in an array + +```js +const entries = Object.entries(copyPerson) +console.log(entries) +``` + +##### Checking properties using hasOwnProperty() + +_hasOwnProperty_: To check if a specific key or property exist in an object + +```js +console.log(copyPerson.hasOwnProperty('name')) +console.log(copyPerson.hasOwnProperty('score')) +``` + +🌕 You are astonishing. Now, you are super charged with the power of objects. You have just completed day 8 challenges and you are 8 steps a head into your way to greatness. Now do some exercises for your brain and for your muscle. + +### 💻 Exercises + +##### Exercises: Level 1 + +1. Create an empty object called dog +1. Print the the dog object on the console +1. Add name, legs, color, age and bark properties for the dog object. The bark property is a method which return _woof woof_ +1. Get name, legs, color, age and bark value from the dog object +1. Set new properties the dog object: breed, getDogInfo + +##### Exercises: Level 2 + +1. Find the person who has many skills in the users object. +1. Count logged in users,count users having greater than equal to 50 points from the following object. + + ````js + const users = { + Alex: { + email: 'alex@alex.com', + skills: ['HTML', 'CSS', 'JavaScript'], + age: 20, + isLoggedIn: false, + points: 30 + }, + Asab: { + email: 'asab@asab.com', + skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'], + age: 25, + isLoggedIn: false, + points: 50 + }, + Brook: { + email: 'daniel@daniel.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'], + age: 30, + isLoggedIn: true, + points: 50 + }, + Daniel: { + email: 'daniel@alex.com', + skills: ['HTML', 'CSS', 'JavaScript', 'Python'], + age: 20, + isLoggedIn: false, + points: 40 + }, + John: { + email: 'john@john.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'], + age: 20, + isLoggedIn: true, + points: 50 + }, + Thomas: { + email: 'thomas@thomas.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React'], + age: 20, + isLoggedIn: false, + points: 40 + }, + Paul: { + email: 'paul@paul.com', + skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'], + age: 20, + isLoggedIn: false, + points: 40 + } + }``` + + ```` + +1. Find people who are MERN stack developer from the users object +1. Set your name in the users object without modifying the original users object +1. Get all keys or properties of users object +1. Get all the values of users object +1. Use the countries object to print a country name, capital, populations and languages. + +##### Exercises: Level 3 + +1. Create an object literal called _personAccount_. It has _firstName, lastName, incomes, expenses_ properties and it has _totalIncome, totalExpense, accountInfo,addIncome, addExpense_ and _accountBalance_ methods. Incomes is a set of incomes and its description and expenses is a set of incomes and its description. +2. \*\*\*\* Questions:2, 3 and 4 are based on the following two arrays:users and products () + +```js +const users = [ + { + _id: 'ab12ex', + username: 'Alex', + email: 'alex@alex.com', + password: '123123', + createdAt: '08/01/2020 9:00 AM', + isLoggedIn: false, + }, + { + _id: 'fg12cy', + username: 'Asab', + email: 'asab@asab.com', + password: '123456', + createdAt: '08/01/2020 9:30 AM', + isLoggedIn: true, + }, + { + _id: 'zwf8md', + username: 'Brook', + email: 'brook@brook.com', + password: '123111', + createdAt: '08/01/2020 9:45 AM', + isLoggedIn: true, + }, + { + _id: 'eefamr', + username: 'Martha', + email: 'martha@martha.com', + password: '123222', + createdAt: '08/01/2020 9:50 AM', + isLoggedIn: false, + }, + { + _id: 'ghderc', + username: 'Thomas', + email: 'thomas@thomas.com', + password: '123333', + createdAt: '08/01/2020 10:00 AM', + isLoggedIn: false, + }, +] + +const products = [ + { + _id: 'eedfcf', + name: 'mobile phone', + description: 'Huawei Honor', + price: 200, + ratings: [ + { userId: 'fg12cy', rate: 5 }, + { userId: 'zwf8md', rate: 4.5 }, + ], + likes: [], + }, + { + _id: 'aegfal', + name: 'Laptop', + description: 'MacPro: System Darwin', + price: 2500, + ratings: [], + likes: ['fg12cy'], + }, + { + _id: 'hedfcg', + name: 'TV', + description: 'Smart TV:Procaster', + price: 400, + ratings: [{ userId: 'fg12cy', rate: 5 }], + likes: ['fg12cy'], + }, +] +``` + +Imagine you are getting the above users collection from a MongoDB database. +a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account. + b. Create a function called signIn which allows user to sign in to the application + +3. The products array has three elements and each of them has six properties. + a. Create a function called rateProduct which rates the product + b. Create a function called averageRating which calculate the average rating of a product + +4. Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked. + +### 8. Functions + +So far we have seen many builtin JavaScript functions. In this section, we will focus on custom functions. What is a function? Before we start making functions, lets understand what function is and why we need function? + +A function is a reusable block of code or programming statements designed to perform a certain task. +A function is declared by a function key word followed by a name, followed by parentheses (). A parentheses can take a parameter. If a function take a parameter it will be called with argument. A function can also take a default parameter. To store a data to a function, a function has to return certain data types. To get the value we call or invoke a function. +Function makes code: + +- clean and easy to read +- reusable +- easy to test + +A function can be declared or created in couple of ways: + +- _Declaration function_ +- _Expression function_ +- _Anonymous function_ +- _Arrow function_ + +#### Function Declaration + +Let us see how to declare a function and how to call a function. + +```js +//declaring a function without a parameter +function functionName() { + // code goes here +} +functionName() // calling function by its name and with parentheses +``` + +#### Function without a parameter and return + +Function can be declared without a parameter. + +**Example:** + +```js +// function without parameter, a function which make a number square +function square() { + let num = 2 + let sq = num * num + console.log(sq) +} + +square() // 4 + +// function without parameter +function addTwoNumbers() { + let numOne = 10 + let numTwo = 20 + let sum = numOne + numTwo + + console.log(sum) +} + +addTwoNumbers() // a function has to be called by its name to be executed +``` + +```js +function printFullName() { + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + console.log(fullName) +} + +printFullName() // calling a function +``` + +#### Function returning value + +Function can also return values, if a function does not return values the value of the function is undefined. Let us write the above functions with return. From now on, we return value to a function instead of printing it. + +```js +function printFullName() { + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} +console.log(printFullName()) +``` + +```js +function addTwoNumbers() { + let numOne = 2 + let numTwo = 3 + let total = numOne + numTwo + return total +} + +console.log(addTwoNumbers()) +``` + +#### Function with a parameter + +In a function we can pass different data types(number, string, boolean, object, function) as a parameter. + +```js +// function with one parameter +function functionName(parm1) { + //code goes her +} +functionName(parm1) // during calling or invoking one argument needed + +function areaOfCircle(r) { + let area = Math.PI * r * r + return area +} + +console.log(areaOfCircle(10)) // should be called with one argument + +function square(number) { + return number * number +} + +console.log(square(10)) +``` + +#### Function with two parameters + +```js +// function with two parameters +function functionName(parm1, parm2) { + //code goes her +} +functionName(parm1, parm2) // during calling or invoking two arguments needed +// Function without parameter doesn't take input, so lets make a function with parameters +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + console.log(sum) +} +sumTwoNumbers(10, 20) // calling functions +// If a function doesn't return it doesn't store data, so it should return + +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + return sum +} + +console.log(sumTwoNumbers(10, 20)) +function printFullName(firstName, lastName) { + return `${firstName} ${lastName}` +} +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +#### Function with many parameters + +```js +// function with multiple parameters +function functionName(parm1, parm2, parm3,...){ + //code goes here +} +functionName(parm1,parm2,parm3,...) // during calling or invoking three arguments needed + + +// this function takes array as a parameter and sum up the numbers in the array +function sumArrayValues(arr) { + let sum = 0; + for (let i = 0; i < arr.length; i++) { + sum = sum + arr[i]; + } + return sum; +} +const numbers = [1, 2, 3, 4, 5]; + //calling a function +console.log(sumArrayValues(numbers)); + + + const areaOfCircle = (radius) => { + let area = Math.PI * radius * radius; + return area; + } +console.log(areaOfCircle(10)) + +``` + +#### Function with unlimited number of parameters + +Sometimes we do not know how many arguments the user going to pass. Therefore, we should know how to write a function which can take unlimited number of arguments. The way we do it has a significant difference between a function declaration(regular function) and arrow function. Let us see examples both in function declaration and arrow function. + +##### Unlimited number of parameters in regular function + +A function declaration provides a function scoped arguments array like object. Any thing we passed as argument in the function can be accessed from arguments object inside the functions. Let us see an example + +```js +// Let us access the arguments object +​ +function sumAllNums() { + console.log(arguments) +} + +sumAllNums(1, 2, 3, 4)) +// Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ] + +``` + +```js +// function declaration +​ +function sumAllNums() { + let sum = 0 + for (let i = 0; i < arguments.length; i++) { + sum += arguments[i] + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +##### Unlimited number of parameters in arrow function + +Arrow function does not have the function scoped arguments object. To implement a function which takes unlimited number of arguments in an arrow function we use spread operator followed by any parameter name. Any thing we passed as argument in the function can be accessed as array in the arrow function. Let us see an example + +```js +// Let us access the arguments object +​ +const sumAllNums = (...args) => { + // console.log(arguments), arguments object not found in arrow function + // instead we use an a parameter followed by spread operator + console.log(args) +} + +sumAllNums(1, 2, 3, 4)) +// [1, 2, 3, 4] + +``` + +```js +// function declaration +​ +const sumAllNums = (...args) => { + let sum = 0 + for (const element of args) { + sum += element + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +#### Anonymous Function + +Anonymous function or without name + +```js +const anonymousFun = function () { + console.log( + 'I am an anonymous function and my value is stored in anonymousFun' + ) +} +``` + +#### Expression Function + +Expression functions are anonymous functions. After we create a function without a name and we assign it to a variable. To return a value from the function we should call the variable. Look at the example below. + +```js +// Function expression +const square = function (n) { + return n * n +} + +console.log(square(2)) // -> 4 +``` + +#### Self Invoking Functions + +Self invoking functions are anonymous functions which do not need to be called to return a value. + +```js +;(function (n) { + console.log(n * n) +})(2) // 4, but instead of just printing if we want to return and store the data, we do as shown below + +let squaredNum = (function (n) { + return n * n +})(10) + +console.log(squaredNum) +``` + +#### Arrow Function + +Arrow function is an alternative to write a function, however function declaration and arrow function have some minor differences. + +Arrow function uses arrow instead of the keyword _function_ to declare a function. Let us see both function declaration and arrow function. + +```js +// This is how we write normal or declaration function +// Let us change this declaration function to an arrow function +function square(n) { + return n * n +} + +console.log(square(2)) // 4 + +const square = (n) => { + return n * n +} + +console.log(square(2)) // -> 4 + +// if we have only one line in the code block, it can be written as follows, explicit return +const square = (n) => n * n // -> 4 +``` + +```js +const changeToUpperCase = (arr) => { + const newArr = [] + for (const element of arr) { + newArr.push(element.toUpperCase()) + } + return newArr +} + +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +console.log(changeToUpperCase(countries)) + +// ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +```js +const printFullName = (firstName, lastName) => { + return `${firstName} ${lastName}` +} + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +The above function has only the return statement, therefore, we can explicitly return it as follows. + +```js +const printFullName = (firstName, lastName) => `${firstName} ${lastName}` + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +#### Function with default parameters + +Sometimes we pass default values to parameters, when we invoke the function if we do not pass an argument the default value will be used. Both function declaration and arrow function can have a default value or values. + +```js +// syntax +// Declaring a function +function functionName(param = value) { + //codes +} + +// Calling function +functionName() +functionName(arg) +``` + +**Example:** + +```js +function greetings(name = 'Peter') { + let message = `${name}, welcome to 30 Days Of JavaScript!` + return message +} + +console.log(greetings()) +console.log(greetings('Asabeneh')) +``` + +```js +function generateFullName(firstName = 'Asabeneh', lastName = 'Yetayeh') { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) +console.log(generateFullName('David', 'Smith')) +``` + +```js +function calculateAge(birthYear, currentYear = 2019) { + let age = currentYear - birthYear + return age +} + +console.log('Age: ', calculateAge(1819)) +``` + +```js +function weightOfObject(mass, gravity = 9.81) { + let weight = mass * gravity + ' N' // the value has to be changed to string first + return weight +} + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 gravity at the surface of Earth +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // gravity at surface of Moon +``` + +Let us see how we write the above functions with arrow functions + +```js +// syntax +// Declaring a function +const functionName = (param = value) => { + //codes +} + +// Calling function +functionName() +functionName(arg) +``` + +**Example:** + +```js +const greetings = (name = 'Peter') => { + let message = name + ', welcome to 30 Days Of JavaScript!' + return message +} + +console.log(greetings()) +console.log(greetings('Asabeneh')) +``` + +```js +const generateFullName = (firstName = 'Asabeneh', lastName = 'Yetayeh') => { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) +console.log(generateFullName('David', 'Smith')) +``` + +```js +const calculateAge = (birthYear, currentYear = 2019) => currentYear - birthYear +console.log('Age: ', calculateAge(1819)) +``` + +```js +const weightOfObject = (mass, gravity = 9.81) => mass * gravity + ' N' + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 gravity at the surface of Earth +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // gravity at surface of Moon +``` + +#### Function declaration versus Arrow function + +It ill be covered in other time + +### 💻 Exercises + +##### Exercises: Level 1 + +1. Declare a function _fullName_ and it takes firstName, lastName as a parameter and it returns your full - name. +2. Declare a function _addNumbers_ and it takes two two parameters and it returns sum. +3. Area of a circle is calculated as follows: _area = π x r x r_. Write a function which calculates \_areaOfCircle +4. Temperature in oC can be converted to oF using this formula: _oF = (oC x 9/5) + 32_. Write a function which convert oC to oF _convertCelciusToFahrenheit_. +5. Body mass index(BMI) is calculated as follows: _bmi = weight in Kg / (height x height) in m2_. Write a function which calculates _bmi_. BMI is used to broadly define different weight groups in adults 20 years old or older.Check if a person is _underweight, normal, overweight_ or _obese_ based the information given below. + + - The same groups apply to both men and women. + - _Underweight_: BMI is less than 18.5 + - _Normal weight_: BMI is 18.5 to 24.9 + - _Overweight_: BMI is 25 to 29.9 + - _Obese_: BMI is 30 or more + +6. Write a function called _checkSeason_, it takes a month parameter and returns the season:Autumn, Winter, Spring or Summer. + +##### Exercises: Level 2 + +1. Quadratic equation is calculated as follows: _ax2 + bx + c = 0_. Write a function which calculates value or values of a quadratic equation, _solveQuadEquation_. + + ```js + console.log(solveQuadratic()) // {0} + console.log(solveQuadratic(1, 4, 4)) // {-2} + console.log(solveQuadratic(1, -1, -2)) // {2, -1} + console.log(solveQuadratic(1, 7, 12)) // {-3, -4} + console.log(solveQuadratic(1, 0, -4)) //{2, -2} + console.log(solveQuadratic(1, -1, 0)) //{1, 0} + ``` + +2. Declare a function name _printArray_. It takes array as a parameter and it prints out each value of the array. +3. Write a function name _showDateTime_ which shows time in this format: 08/01/2020 04:08 using the Date object. + + ```sh + showDateTime() + 08/01/2020 04:08 + ``` + +4. Declare a function name _swapValues_. This function swaps value of x to y. + + ```js + swapValues(3, 4) // x => 4, y=>3 + swapValues(4, 5) // x = 5, y = 4 + ``` + +5. Declare a function name _reverseArray_. It takes array as a parameter and it returns the reverse of the array (don't use method). + + ```js + console.log(reverseArray([1, 2, 3, 4, 5])) + //[5, 4, 3, 2, 1] + console.log(reverseArray(['A', 'B', 'C'])) + //['C', 'B', 'A'] + ``` + +6. Declare a function name _capitalizeArray_. It takes array as a parameter and it returns the - capitalizedarray. +7. Declare a function name _addItem_. It takes an item parameter and it returns an array after adding the item +8. Declare a function name _removeItem_. It takes an index parameter and it returns an array after removing an ite +9. Declare a function name evensAndOdds . It takes a positive integer as parameter and it counts number of evens and odds in the number. + +```sh +evensAndOdds(100); +The number of odds are 50. +The number of evens are 51. +``` + +13. Write a function which takes any number of arguments and return the sum of the arguments + +```js +sum(1, 2, 3) // -> 6 +sum(1, 2, 3, 4) // -> 10 +``` + +1. Declare a function name _userIdGenerator_. When this function is called it generates seven character id. The function return the id. + +```sh +console.log(userIdGenerator()); +41XTDbE +``` + +##### Exercises: Level 3 + +1. Declare a function name _userIdGeneratedByUser_. It doesn’t take any parameter but it takes two inputs using prompt(). One of the input is the number of characters and the second input is the number of ids which are supposed to be generated. + + ```sh + userIdGeneratedByUser() + 'kcsy2 + SMFYb + bWmeq + ZXOYh + 2Rgxf + ' + userIdGeneratedByUser() + '1GCSgPLMaBAVQZ26 + YD7eFwNQKNs7qXaT + ycArC5yrRupyG00S + UbGxOFI7UXSWAyKN + dIV0SSUTgAdKwStr + ' + ``` + +2. Write a function **_generateColors_** which can generate any number of hexa or rgb colors. + + ```js + console.log(generateColors('hexa', 3)) // ['#a3e12f', '#03ed55', '#eb3d2b'] + console.log(generateColors('hexa', 1)) // '#b334ef' + console.log(generateColors('rgb', 3)) // ['rgb(5, 55, 175)', 'rgb(50, 105, 100)', 'rgb(15, 26, 80)'] + console.log(generateColors('rgb', 1)) // 'rgb(33,79, 176)' + ``` + +3. Call your function _shuffleArray_, it takes an array as a parameter and it returns a shuffled array +4. Call your function _factorial_, it takes a whole number as a parameter and it return a factorial of the number +5. Call your function _isEmpty_, it takes a parameter and it checks if it is empty or not + +6. Write a function called _average_, it takes an array parameter and returns the average of the items. Check if all the array items are number types. If not give return reasonable feedback. + +### 9. Higher Order Function + +Higher order functions are functions which take other function as a parameter or return a function as a value. The function passed as a parameter is called callback. + +#### Callback + +A callback is a function which can be passed as parameter to other function. See the example below. + +```js +// a callback function, the function could be any name +const callback = (n) => { + return n ** 2 +} +​ +// function take other function as a callback +function cube(callback, n) { + return callback(n) * n +} +​ +console.log(cube(callback, 3)) +``` + +#### Returning function + +Higher order functions return function as a value +​ + +```js +// Higher order function returning an other function +const higherOrder = n => { + const doSomething = m => { + const doWhatEver = t => { + return 2 * n + 3 * m + t + } + return doWhatEver + } +​ + return doSomething +} +console.log(higherOrder(2)(3)(10)) +``` + +Let us see were we use call back functions.For instance the _forEach_ method uses call back. + +```js +const numbers = [1, 2, 3, 4] +const sumArray = arr => { + let sum = 0 + const callback = function(element) { + sum += element + } + arr.forEach(callback) + return sum + +} +console.log(sumArray(numbers)) +``` + +```sh +10 +``` + +The above example can be simplified as follows: + +```js +const numbers = [1, 2, 3, 4] +​ +const sumArray = arr => { + let sum = 0 + arr.forEach(function(element) { + sum += element + }) + return sum + +} +console.log(sumArray(numbers)) +``` + +```sh +10 +``` + +#### setting time + +In JavaScript we can execute some activity on certain interval of time or we can schedule(wait) for sometime to execute some activities. + +- setInterval +- setTimeout + +##### setInterval + +In JavaScript, we use setInterval higher order function to do some activity continuously with in some interval of time. The setInterval global method take a callback function and a duration as a parameter. The duration is in milliseconds and the callback will be always called in that interval of time. + +```js +// syntax +function callback() { + // code goes here +} +setInterval(callback, duration) +``` + +```js +function sayHello() { + console.log('Hello') +} +setInterval(sayHello, 2000) // it prints hello in every 2 seconds +``` + +##### setTimeout + +In JavaScript, we use setTimeout higher order function to execute some action at some time in the future. The setTimeout global method take a callback function and a duration as a parameter. The duration is in milliseconds and the callback wait for that amount of time. + +```js +// syntax +function callback() { + // code goes here +} +setTimeout(callback, duration) // duration in milliseconds +``` + +```js +function sayHello() { + console.log('Hello') +} +setTimeout(sayHello, 2000) // it prints hello after it waits for 2 seconds. +``` + +### 10. Destructuring and Spreading + +#### What is Destructuring? + +Destructuring is a way to unpack arrays, and objects and assigning to a distinct variable. Destructuring allows us to write clean and readable code. + +#### What can we destructure? + +1. Arrays +2. Objects + +##### 1. Destructuring arrays + +Arrays are a list of different data types ordered by their index. Let's see an example of arrays: + +```js +const numbers = [1, 2, 3] +const countries = ['Finland', 'Sweden', 'Norway'] +``` + +We can access an item from an array using a certain index by iterating through the loop or manually as shown in the example below. + +Accessing array items using a loop + +```js +for (const number of numbers) { + console.log(number) +} + +for (const country of countries) { + console.log(country) +} +``` + +Accessing array items manually + +```js +const numbers = [1, 2, 3] +let num1 = numbers[0] +let num2 = numbers[1] +let num3 = numbers[2] +console.log(num1, num2, num3) // 1, 2, 3 + +const countries = ['Finland', 'Sweden', 'Norway'] +let fin = countries[0] +let swe = countries[1] +let nor = countries[2] +console.log(fin, swe, nor) // Finland, Sweden, Norway +``` + +Most of the time the size of an array is big and we use a loop to iterate through each item of the arrays. Sometimes, we may have short arrays. If the array size is very short it is ok to access the items manually as shown above but today we will see a better way to access the array item which is destructuring. + +Accessing array items using destructuring + +```js +const numbers = [1, 2, 3] +const [num1, num2, num3] = numbers +console.log(num1, num2, num3) // 1, 2, 3, + +const constants = [2.72, 3.14, 9.81,37, 100] +const [e, pi, gravity, bodyTemp, boilingTemp] = constants +console.log(e, pi, gravity, bodyTemp, boilingTemp] +// 2.72, 3.14, 9.81, 37,100 +const countries = ['Finland', 'Sweden', 'Norway'] +const [fin, swe, nor] = countries +console.log(fin, swe, nor) // Finland, Sweden, Norway +``` + +During destructuring each variable should match with the index of the desired item in the array. For instance, the variable fin matches to index 0 and the variable nor matches to index 2. What would be the value of den if you have a variable den next nor? + +```js +const [fin, swe, nor, den] = countries +console.log(den) // undefined +``` + +If you tried the above task you confirmed that the value is undefined. Actually, we can pass a default value to the variable, and if the value of that specific index is undefined the default value will be used. + +```js +const countries = ['Finland', 'Sweden', undefined, 'Norway'] +const [fin, swe, ice = 'Iceland', nor, den = 'Denmark'] = countries +console.log(fin, swe, ice, nor, den) // Finland, Sweden, Iceland, Norway, Denmark +``` + +Destructuring Nested arrays + +```js +const fullStack = [ + ['HTML', 'CSS', 'JS', 'React'], + ['Node', 'Express', 'MongoDB'] +] + +const [frontEnd, backEnd] = fullstack +console.log(frontEnd, backEnd) + +//["HTML", "CSS", "JS", "React"] , ["Node", "Express", "MongoDB"] + +const fruitsAndVegetables = [['banana', 'orange', 'mango', 'lemon'], ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']] + +const [fruits, vegetables] = fruitsAndVegetables +console.log(fruits, vegetables] + +//['banana', 'orange', 'mango', 'lemon'] + +//['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] +``` + +Skipping an Item during destructuring + +During destructuring if we are not interested in every item, we can omit a certain item by putting a comma at that index. Let's get only Finland, Iceland, and Denmark from the array. See the example below for more clarity: + +```js +const countries = ['Finland', 'Sweden', 'Iceland', 'Norway', 'Denmark'] +const [fin, , ice, , den] = countries +console.log(fin, ice, den) // Finland, Iceland, Denmark +``` + +Getting the rest of the array using the spread operator +We use three dots(...) to spread or get the rest of an array during destructuring + +```js +const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const [num1, num2, num3, ...rest] = nums +console.log(num1, num2, num3, rest) //1, 2, 3, [4, 5, 6, 7, 8, 9, 10] + +const countries = [ + 'Germany', + 'France', + 'Belgium', + 'Finland', + 'Sweden', + 'Norway', + 'Denmark', + 'Iceland', +] + +let [gem, fra, , ...nordicCountries] = countries +console.log(gem, fra, nordicCountries) +// Germany, France, ["Finland", "Sweden", "Norway", "Denmark", "Iceland"] +``` + +There many cases in which we use array destructuring, let's see the following example: + +Destructuring when we loop through arrays + +```js +const countries = [ + ['Finland', 'Helsinki'], + ['Sweden', 'Stockholm'], + ['Norway', 'Oslo'], +] + +for (const [country, city] of countries) { + console.log(country, city) +} + +const fullStack = [ + ['HTML', 'CSS', 'JS', 'React'], + ['Node', 'Express', 'MongoDB'], +] + +for (const [first, second, third, fourth] of fullStack) { + console.log(first, second, third, fourt) +} +``` + +What do you think about the code snippet below? If you have started React Hooks already it may remind you of the useState hook. + +```js +const [x, y] = [2, (value) => value ** 2] +``` + +What is the value of x? And what is the value of y(x)? I leave this for you to figure out. + +If you have used react hooks you are very familiar with this and as you may imagine it is destructuring. The initial value of count is 0 and the setCount is a method that changes the value of count. + +```js +const [count, setCount] = useState(0) +``` + +Now, you know how to destructure arrays. Let's move on to destructuring objects. + +##### 2. Destructuring objects + +An object literal is made of key and value pairs. A very simple example of an object: + +```js +const rectangle = { + width: 20, + height: 10, +} +``` + +We access the value of an object using the following methods: + +```js +const rectangle = { + width: 20, + height: 10, +} + +let width = rectangle.width +let height = recangle.height + +// or + +let width = rectangle[width] +let height = recangle[height] +``` + +But today, we will see how to access the value of an object using destructuring. + +When we destructure an object the name of the variable should be exactly the same as the key or property of the object. See the example below. + +```js +const rectangle = { + width: 20, + height: 10, +} + +let { width, height } = rectangle +console.log(width, height, perimeter) // 20, 10 +``` + +What will be the value of we try to access a key which not in the object. + +```js +const rectangle = { + width: 20, + height: 10, +} + +let { width, height, perimeter } = rectangleconsole.log( + width, + height, + perimeter +) // 20, 10, undefined +``` + +The value of the perimeter in the above example is undefined. + +Default value during object destructuring + +Similar to the array, we can also use a default value in object destructuring. + +```js +const rectangle = { + width: 20, + height: 10, +} + +let { width, height, perimeter = 200 } = rectangle +console.log(width, height, perimeter) // 20, 10, undefined +``` + +Renaming variable names + +```js +const rectangle = { + width: 20, + height: 10, +} + +let { width: w, height: h } = rectangle +``` + +Let's also destructure, nested objects. In the example below, we have nested objects and we can destructure it in two ways. + +We can just destructure step by step + +```js +const props = { + user:{ + firstName:'Asabeneh', + lastName:'Yetayeh', + age:250 + }, + post:{ + title:'Destructuring and Spread', + subtitle:'ES6', + year:2020 +}, +skills:['JS', 'React', 'Redux', 'Node', 'Python'] + +} +} + +const {user, post, skills} = props +const {firstName, lastName, age} = user +const {title, subtitle, year} = post +const [skillOne, skillTwo, skillThree, skillFour, skillFive] = skills +``` + +1. We can destructure it one step + +```js +const props = { + user:{ + firstName:'Asabeneh', + lastName:'Yetayeh', + age:250 + }, + post:{ + title:'Destructuring and Spread', + subtitle:'ES6', + year:2020 +}, +skills:['JS', 'React', 'Redux', 'Node', 'Python'] + +} + +} + +const {user:{firstName, lastName, age}, post:{title, subtitle, year}, skills:[skillOne, skillTwo, skillThree, skillFour, skillFive]} = props + +``` + +Destructuring during loop through an array + +```js +const languages = [ + { lang: 'English', count: 91 }, + { lang: 'French', count: 45 }, + { lang: 'Arabic', count: 25 }, + { lang: 'Spanish', count: 24 }, + { lang: 'Russian', count: 9 }, + { lang: 'Portuguese', count: 9 }, + { lang: 'Dutch', count: 8 }, + { lang: 'German', count: 7 }, + { lang: 'Chinese', count: 5 }, + { lang: 'Swahili', count: 4 }, + { lang: 'Serbian', count: 4 }, +] + +for (const { lang, count } of languages) { + console.log(`The ${lang} is spoken in ${count} countries.`) +} +``` + +Destructuring function parameter + +```js +const rectangle = { width: 20, height: 10 } +const calcualteArea = ({ width, height }) => width * height +const calculatePerimeter = ({ width, height } = 2 * (width + height)) +``` + +#### Exercises + +Create a function called getPersonInfo. The getPersonInfo function takes an object parameter. The structure of the object and the output of the function is given below. Try to use both a regular way and destructuring and compare the cleanness of the code. If you want to compare your solution with my solution, check this link. + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + job: 'Instructor and Developer', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB', + 'Python', + 'D3.js', + ], + languages: ['Amharic', 'English', 'Suomi(Finnish)'], +} + +/* +Asabeneh Yetayeh lives in Finland. He is 250 years old. He is an Instructor and Developer. He teaches HTML, CSS, JavaScript, React, Redux, Node, MongoDB, Python and D3.js. He speaks Amharic, English and a little bit of Suomi(Finnish) +*/ +``` + +#### Spread or Rest Operator + +When we destructure an array we use the spread operator(...) to get the rest elements as array. In addition to that we use spread operator to spread arr elements to another array. + +##### Spread operator to get the rest of array elements + +```js +const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +let [num1, num2, num3, ...rest] = nums +​ +console.log(num1, num2, num3) +console.log(rest) +``` + +```sh +1 2 3 +[4, 5, 6, 7, 8, 9, 10] +``` + +```js +const countries = [ + 'Germany', + 'France', + 'Belgium', + 'Finland', + 'Sweden', + 'Norway', + 'Denmark', + 'Iceland', +] + +let [gem, fra, , ...nordicCountries] = countries + +console.log(gem) +console.log(fra) +console.log(nordicCountries) +``` + +```sh +Germany +France +["Finland", "Sweden", "Norway", "Denmark", "Iceland"] +``` + +##### Spread operator to copy array + +```js +const evens = [0, 2, 4, 6, 8, 10] +const evenNumbers = [...evens] + +const odds = [1, 3, 5, 7, 9] +const oddNumbers = [...odds] + +const wholeNumbers = [...evens, ...odds] + +console.log(evenNumbers) +console.log(oddNumbers) +console.log(wholeNumbers) +``` + +```sh +[0, 2, 4, 6, 8, 10] +[1, 3, 5, 7, 9] +[0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9] +``` + +```js +const frontEnd = ['HTML', 'CSS', 'JS', 'React'] +const backEnd = ['Node', 'Express', 'MongoDB'] +const fullStack = [...frontEnd, ...backEnd] + +console.log(fullStack) +``` + +```sh +["HTML", "CSS", "JS", "React", "Node", "Express", "MongoDB"] +``` + +##### Spread operator to copy object + +We can copy an object using a spread operator + +```js +const user = { + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', +} + +const copiedUser = { ...user } +console.log(copiedUser) +``` + +```sh +{name: "Asabeneh", title: "Programmer", country: "Finland", city: "Helsinki"} +``` + +Modifying or changing the object while copying + +```js +const user = { + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', +} + +const copiedUser = { ...user, title: 'instructor' } +console.log(copiedUser) +``` + +```sh +{name: "Asabeneh", title: "instructor", country: "Finland", city: "Helsinki"} +``` + +##### Spread operator with arrow function + +Whenever we like to write an arrow function which takes unlimited number of arguments we use a spread operator. If we use a spread operator as a parameter, the argument passed when we invoke a function will change to an array. + +```js +const sumAllNums = (...args) => { + console.log(args) +} + +sumAllNums(1, 2, 3, 4, 5) +``` + +```sh +[1, 2, 3, 4, 5] + +``` + +```js +const sumAllNums = (...args) => { + let sum = 0 + for (const num of args) { + sum += num + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4, 5)) +``` + +```sh +15 + +``` + +### 11. Functional Programming + +In this article, I will try to help you to have a very good understanding of the most common feature of JavaScript, _functional programming_. + +_Functional programming_ allows you to write shorter code, clean code, and also to solve complicated problems which might be difficult to solve in a traditional way. + +In this article we will cover all JS functional programming methods: + +- forEach +- map +- filter +- reduce +- find +- findIndex +- some +- every + +#### 1. forEach + +We use forEach when we like to iterate through an array of items. The forEach is a higher-order function and it takes call-back as a parameter. The forEach method is used only with array and we use forEach if you are interested in each item or index or both. + +```js +// syntax in a normal or a function declaration + +function callback(item, index, arr) {} +array.forEach(callback) + +// or syntax in an arrow function +const callback = (item, i, arr) => {} +array.forEach(callback) +``` + +The call back function could be a function declaration or an arrow function. + +Let see different examples + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] +countries.forEach(function (country, index, arr) { + console.log(i, country.toUpperCase()) +}) +``` + +If there is no much code inside the code block we can use an arrow function and we can write it without a curly bracket. The index and the array parameters are optional, we can omit them. + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] +countries.forEach((country, i) => console.log(i, country.toUpperCase())) +``` + +```sh +0 "FINLAND" +1 "ESTONIA" +2 "SWEDEN" +3 "NORWAY" +``` + +For example if we like to change each country to uppercase and store it back to an array we write it as follows. + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] +const newCountries = [] +countries.forEach((country) => newCountries.push(country)) + +console.log(newCountries) // ["Finland", "Estonia", "Sweden", "Norway"] +``` + +Let us see more examples. For instance if we want to sum an array of numbers we can use forEach or reduce. Let us see how we use forEach to sum all numbers in an array. + +```js +const numbers = [1, 2, 3, 4, 5] +let sum = 0 +numbers.forEach((n) => (sum += n)) + +console.log(sum) // 15 +``` + +Let us move to the next functional programming method which is going to be a map. + +#### 2. map + +We use the map method whenever we like to modify an array. We use the map method only with arrays and it always returns an array. + +```js +// syntax in a normal or a function declaration + +function callback(item, i) { + return // code goes here +} + +const modifiedArray = array.map(callback) + +// or syntax in an arrow function + +const callback = (item, i) => { + return // code goes here +} +const modifiedArray = array.map(callback) +``` + +Now, let us modify the countries array using the map method. The index is an optional parameter + +```js +// Using function declaration + +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] + +const newCountries = countries.map(function (country) { + return country.toUpperCase() +}) + +console.log(newCountries) + +// map using an arrow function call back + +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] +const newCountries = countries.map((country) => country.toUpperCase()) + +console.log(newCountries) // ["FINLAND", "ESTONIA", "SWEDEN", "NORWAY"] +``` + +As you can see that map is very handy to modify an array and to get an array back. Now, let us create an array of the length of the countries from the countries array. + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway'] +const countriesLength = countries.map((country) => country.length) + +console.log(countriesLength) // [7, 7, 6, 6] +``` + +Let us see another more example + +```js +const numbers = [1, 2, 3, 4, 5] +const squares = numbers.map((n) => n ** 2) + +console.log(squares) // [1, 4, 9, 16, 25] +``` + +#### 3. filter + +As you may understand from the literal meaning of filter, it filters out items based on some criteria. The filter method like forEach and map is used with an array and it returns an array of the filtered items. + +For instance if we want to filter out countries containing a substring land from an array of countries. See the example below: + +```js +// syntax in a normal or a function declaration +function callback(item) { + return // boolean +} + +const filteredArray = array.filter(callback) + +// or syntax in an arrow function + +const callback = (item) => { + return // boolean +} +const filteredArray = array.filter(callback) +``` + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const countriesWithLand = countries.filter((country) => + country.includes('land') +) +console.log(countriesWithLand) // ["Finland", "Iceland"] +``` + +How about if we want to filter out countries not containing the substring land. We use negation to achieve that. + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const countriesWithLand = countries.filter( + (country) => !country.includes('land') +) +console.log(countriesWithLand) // ["Estonia", "Sweden", "Norway"] +``` + +Let's see an additional example about the filter, let us filter even or odd numbers from an array of numbers + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const evens = numbers.filter((n) => n % 2 === 0) +const odds = numbers.filter((n) => n % 2 !== 0) +console.log(evens) // [0, 2, 4, 6, 8, 10] +console.log(odds) // [1, 3, 5, 7, 9] +``` + +Now, you know how to filter let us move on to the next functional programming, reduce. + +#### 4. reduce + +Like forEach, map, and filter, reduce is also used with an array and it returns a single value. You can associate reduce with a blender. You put different fruits to a blend and you get a mix of fruit juice. The juice is the output from the reduction process. + +We use the reduce method to sum all numbers in an array together, or to multiply items in an array or to concatenate items in an array. Let us see the following different example to make this explanation more clear. + +```js +// syntax in a normal or a function declaration + +function callback(acc, cur) { + return // code goes here +} + +const reduced = array.reduce(callback, optionalInitialValue) + +// or syntax in an arrow function + +const reduced = callback(acc, cur) => { + return // code goes here +} +const reduced = array.reduce(callback) +``` + +The default initial value is 0. We can change the initial value if we want to change it. + +For instance if we want to add all items in an array and if all the items are numbers we can use reduce. + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const sum = numbers.reduce((acc, cur) => acc + cur) +console.log(sum) // 55 +``` + +Reduce has a default initial value which is zero. Now, let us use a different initial value which is 5 in this case. + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const sum = numbers.reduce((acc, cur) => acc + cur, 5) +console.log(sum) // 60 +``` + +Let us concatenate strings using reduce + +```js +const strs = ['Hello', 'world', '!'] +const helloWorld = strs.reduce((acc, cur) => acc + ' ' + cur) +console.log(helloWorld) // "Hello world !" +``` + +We can multiply items of an array using reduce and we will return the value. + +```js +const numbers = [1, 2, 3, 4, 5] +const value = numbers.reduce((acc, cur) => acc * cur) +console.log(value) // 120 +``` + +Let us try it with an initial value + +```js +const numbers = [1, 2, 3, 4, 5] +const value = numbers.reduce((acc, cur) => acc * cur, 10) +console.log(value) // 1200 +``` + +#### 5. find + +If we are interested in the first occurrence of a certain item or element in an array we can use find method. Unlike map and filter, find just return the first occurrence of an item instead of an array. + +```js +// syntax in a normal or a function declaration + +function callback(item) { +return // code goes here +} + +const item = array.find(callback) + +// or syntax in an arrow function + +const reduced = callback(item) => { +return // code goes here +} +const item = array.find(callback) +``` + +Let find the first even number and the first odd number in the numbers array. + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const firstEvenNum = numbers.find((n) => n % 2 === 0) +const firstOddNum = numbers.find((n) => n % 2 !== 0) +console.log(firstEvenNum) // 0 +console.log(firstOddNum) // 1 +``` + +Let us find the first country which contains a substring way + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const countryWithWay = countries.find((country) => country.includes('way')) +console.log(countriesWithWay) // Norway +``` + +Let us find the first country which has only six characters + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const sixCharsCountry = countries.find((country) => country.length === 6) +console.log(sixCharsCountry) // Sweden +``` + +Let us find the first country in the array which has the letter 'o' + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const index = countries.find((country) => country.includes('o')) +console.log(index // Estonia +``` + +#### 6. findIndex + +The findIndex method works like find but findIndex returns the index of the item. If we are interested in the index of a certain item or element in an array we can use findIndex. The findIndex return the index of the first occurrence of an item. + +```js +// syntax in a normal or a function declaration + +function callback(item) { +return // code goes here +} + +const index = array.findIndex(callback) + +// or syntax in an arrow function + +const reduced = callback(item) => { +return // code goes here +} +const index = array.findIndex(callback) +``` + +Let us find the index of the first even number and the index of the first odd number in the numbers array. + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const firstEvenIndex = numbers.findIndex((n) => n % 2 === 0) +const firstOddIndex = numbers.findIndex((n) => n % 2 !== 0) +console.log(firstEvenIndex) // 0 +console.log(firstOddIndex) // 1 +``` + +Let us find the index of the first country in the array which has exactly six characters + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const index = countries.findIndex((country) => country.length === 6) +console.log(index //2 +``` + +Let us find the index of the first country in the array which has the letter 'o'. + +```js +const countries = ['Finland', 'Estonia', 'Sweden', 'Norway', 'Iceland'] +const index = countries.findIndex((country) => country.includes('o')) +console.log(index // 1 +``` + +Let us move on to the next functional programming, some. + +#### 7. some + +The some method is used with array and return a boolean. If one or some of the items satisfy the criteria the result will be true else it will be false. Let us see it with an example. + +In the following array some numbers are even and some are odd, so if I ask you a question, are there even numbers in the array then your answer will be yes. If I ask you also another question, are there odd numbers in the array then your answer will be yes. On the contrary, if I ask you, are all the numbers even or odd then your answer will be no because all the numbers are not even or odd. + +```js +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const someAreEvens = numbers.some((n) => n % 2 === 0) +const someAreOdds = numbers.some((n) => n % 2 !== 0) +console.log(someAreEvens) // true +console.log(someAreOdds) // true +``` + +Let us another example + +```js +const evens = [0, 2, 4, 6, 8, 10] +const someAreEvens = evens.some((n) => n % 2 === 0) +const someAreOdds = evens.some((n) => n % 2 !== 0) +console.log(someAreEvens) // true +console.log(someAreOdds) // false +``` + +Now, let us see one more functional programming, every. + +#### 8. every + +The method every is somehow similar to some but every item must satisfy the criteria. The method every like some returns a boolean. + +```js + +const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +const allAreEvens = numbers.every((n) => n % 2 === 0) +const allAreOdd s= numbers.every((n) => n % 2 !== 0) + +console.log(allAreEven) // false +console.log(allAreOdd) // false + +const evens = [0, 2, 4, 6, 8, 10] +const someAreEvens = evens.some((n) => n % 2 === 0) +const someAreOdds = evens.some((n) => n % 2 !== 0) + +console.log(someAreEvens) // true +console.log(someAreOdds) // false +``` + +#### Exercises + +```js +const products = [ + { product: 'banana', price: 3 }, + { product: 'mango', price: 6 }, + { product: 'potato', price: ' ' }, + { product: 'avocado', price: 8 }, + { product: 'coffee', price: 10 }, + { product: 'tea', price: '' }, +] +``` + +1. Print the price of each product using forEach +2. Print the product items as follows using forEach + + ```sh + The price of banana is 3 euros. + The price of mango is 6 euros. + The price of potato is unknown. + The price of avocado is 8 euros. + The price of coffee is 10 euros. + The price of tea is unknown. + ``` + +3. Calculate the sum of all the prices using forEach +4. Create an array of prices using map and store it in a variable prices +5. Filter products with prices +6. Use method chaining to get the sum of the prices(map, filter, reduce) +7. Calculate the sum of all the prices using reduce only +8. Find the first product which doesn't have a price value +9. Find the index of the first product which does not have price value +10. Check if some products do not have a price value +11. Check if all the products have price value +12. Explain the difference between forEach, map, filter and reduce +13. Explain the difference between filter, find and findIndex +14. Explain the difference between some and every + +### 12. Classes + +JavaScript is an object oriented programming language. Everything in JavScript is an object, with its properties and methods. We create class to create an object. A Class is like an object constructor, or a "blueprint" for creating objects. We instantiate a class to create an object. The class defines attributes and the behavior of the object, while the object, on the other hand, represents the class. + +Once we create a class we can create object from it whenever we want. Creating an object from a class is called class instantiation. + +In the object section, we saw how to create an object literal. Object literal is a singleton. If we want to get a similar object , we have to write it. However, class allows to create many objects. This helps to reduce amount of code and repetition of code. + +#### Defining a classes + +To define a class in JavaScript we need the keyword _class_ , the name of a class in **CamelCase** and block code(two curly brackets). Let us create a class name Person. + +```sh +// syntax +class ClassName { + // code goes here +} + +``` + +**Example:** + +```js +class Person { + // code goes here +} +``` + +We have created an Person class but it does not have any thing inside. + +#### Class Instantiation + +Instantiation class means creating an object from a class. We need the keyword _new_ and we call the name of the class after the word new. + +Let us create a dog object from our Person class. + +```js +class Person { + // code goes here +} +const person = new Person() +console.log(person) +``` + +```sh +Person {} +``` + +As you can see, we have created a person object. Since the class did not have any properties yet the object is also empty. + +Let use the class constructor to pass different properties for the class. + +#### Class Constructor + +The constructor is a builtin function which allows as to create a blueprint for our object. The constructor function starts with a keyword constructor followed by a parenthesis. Inside the parenthesis we pass the properties of the object as parameter. We use the _this_ keyword to attach the constructor parameters with the class. + +The following Person class constructor has firstName and lastName property. These properties are attached to the Person class using _this_ keyword. _This_ refers to the class itself. + +```js +class Person { + constructor(firstName, lastName) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + } +} + +const person = new Person() + +console.log(person) +``` + +```sh +Person {firstName: undefined, lastName} +``` + +All the keys of the object are undefined. When ever we instantiate we should pass the value of the properties. Let us pass value at this time when we instantiate the class. + +```js +class Person { + constructor(firstName, lastName) { + this.firstName = firstName + this.lastName = lastName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh') + +console.log(person1) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh"} +``` + +As we have stated at the very beginning that once we create a class we can create many object using the class. Now, let us create many person objects using the Person class. + +```js +class Person { + constructor(firstName, lastName) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh') +const person2 = new Person('Lidiya', 'Tekle') +const person3 = new Person('Abraham', 'Yetayeh') + +console.log(person1) +console.log(person2) +console.log(person3) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh"} +Person {firstName: "Lidiya", lastName: "Tekle"} +Person {firstName: "Abraham", lastName: "Yetayeh"} +``` + +Using the class Person we created three persons object. As you can see our class did not many properties let us add more properties to the class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') + +console.log(person1) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} +``` + +#### Default values with constructor + +The constructor function properties may have a default value like other regular functions. + +```js +class Person { + constructor( + firstName = 'Asabeneh', + lastName = 'Yetayeh', + age = 250, + country = 'Finland', + city = 'Helsinki' + ) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } +} + +const person1 = new Person() // it will take the default values +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1) +console.log(person2) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} +Person {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Espoo"} +``` + +#### Class methods + +The constructor inside a class is a builtin function which allow us to create a blueprint for the object. In a class we can create class methods. Methods are JavaScript functions inside the class. Let us create some class methods. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.getFullName()) +console.log(person2.getFullName()) +``` + +```sh +Asabeneh Yetayeh +test.js:19 Lidiya Tekle +``` + +#### Properties with initial value + +When we create a class for some properties we may have an initial value. For instance if you are playing a game, you starting score will be zero. So, we may have a starting score or score which is zero. In other way, we may have an initial skill and we will acquire some skill after some time. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.score) +console.log(person2.score) + +console.log(person1.skills) +console.log(person2.skills) +``` + +```sh +0 +0 +[] +[] +``` + +A method could be regular method or a getter or a setter. Let us see, getter and setter. + +#### getter + +The get method allow us to access value from the object. We write a get method using keyword _get_ followed by a function. Instead of accessing properties directly from the object we use getter to get the value. See the example bellow + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.getScore) // We do not need parenthesis to call a getter method +console.log(person2.getScore) + +console.log(person1.getSkills) +console.log(person2.getSkills) +``` + +```sh +0 +0 +[] +[] +``` + +#### setter + +The setter method allow us to modify the value of certain properties. We write a setter method using keyword _set_ followed by a function. See the example bellow. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +person1.setScore = 1 +person1.setSkill = 'HTML' +person1.setSkill = 'CSS' +person1.setSkill = 'JavaScript' + +person2.setScore = 1 +person2.setSkill = 'Planning' +person2.setSkill = 'Managing' +person2.setSkill = 'Organizing' + +console.log(person1.score) +console.log(person2.score) + +console.log(person1.skills) +console.log(person2.skills) +``` + +```sh +1 +1 +["HTML", "CSS", "JavaScript"] +["Planning", "Managing", "Organizing"] +``` + +Do not be puzzled by the difference between regular method and a getter. If you know how to make a regular method you are good. Let us add regular method called getPersonInfo in the Person class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + let formattedSkills = skills ? `He knows ${skills}` : '' + + let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` + return info + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') +const person3 = new Person('John', 'Doe', 50, 'Mars', 'Mars city') + +person1.setScore = 1 +person1.setSkill = 'HTML' +person1.setSkill = 'CSS' +person1.setSkill = 'JavaScript' + +person2.setScore = 1 +person2.setSkill = 'Planning' +person2.setSkill = 'Managing' +person2.setSkill = 'Organizing' + +console.log(person1.getScore) +console.log(person2.getScore) + +console.log(person1.getSkills) +console.log(person2.getSkills) +console.log(person3.getSkills) + +console.log(person1.getPersonInfo()) +console.log(person2.getPersonInfo()) +console.log(person3.getPersonInfo()) +``` + +```sh +1 +1 +["HTML", "CSS", "JavaScript"] +["Planning", "Managing", "Organizing"] +[] +Asabeneh Yetayeh is 250. He lives Helsinki, Finland. He knows HTML, CSS and JavaScript +Lidiya Tekle is 28. He lives Espoo, Finland. He knows Planning, Managing and Organizing +John Doe is 50. He lives Mars city, Mars. +``` + +#### Static method + +The static keyword defines a static method for a class. Static methods are not called on instances of the class. Instead, they are called on the class itself. These are often utility functions, such as functions to create or clone objects. An example of static method is _Date.now()_. The _now_ method is called directly from the class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + + let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` + return info + } + static favoriteSkill() { + const skills = ['HTML', 'CSS', 'JS', 'React', 'Python', 'Node'] + const index = Math.floor(Math.random() * skills.length) + return skills[index] + } + static showDateTime() { + let now = new Date() + let year = now.getFullYear() + let month = now.getMonth() + 1 + let date = now.getDate() + let hours = now.getHours() + let minutes = now.getMinutes() + if (hours < 10) { + hours = '0' + hours + } + if (minutes < 10) { + minutes = '0' + minutes + } + + let dateMonthYear = date + '.' + month + '.' + year + let time = hours + ':' + minutes + let fullTime = dateMonthYear + ' ' + time + return fullTime + } +} + +console.log(Person.favoriteSkill()) +console.log(Person.showDateTime()) +``` + +```sh +Node +15.1.2020 23:56 +``` + +The static methods are methods which can be used as utility functions. + +#### Inheritance + +Using inheritance we can access all the properties and the methods of the parent class. This reduces repetition of code. If you remember, we have a Person parent class and we will create children from it. Our children class could be student, teach etc. + +```js +// syntax +class ChildClassName extends { + // code goes here +} +``` + +Let us create a Student child class from Person parent class. + +```js +class Student extends Person { + saySomething() { + console.log('I am a child of the person class') + } +} + +const s1 = new Student('Asabeneh', 'Yetayeh', 'Finland', 250, 'Helsinki') +console.log(s1) +console.log(s1.saySomething()) +console.log(s1.getFullName()) +console.log(s1.getPersonInfo()) +``` + +```sh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} +I am a child of the person class +Asabeneh Yetayeh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} +Asabeneh Yetayeh is Finland. He lives Helsinki, 250. +``` + +#### Overriding methods + +As you can see, we manage to access all the methods in the Person Class and we used it in the Student child class. We can customize the parent methods, we can add additional properties to a child class. If we want to customize, the methods and if we want to add extra properties, we need to use the constructor function the child class too. In side the constructor function we call the super() function to access all the properties from the parent class. The Person class didn't have gender but now let us give gender property for the child class, Student. If the same method name used in the child class, the parent method will be overridden. + +```js +class Student extends Person { + constructor(firstName, lastName, age, country, city, gender) { + super(firstName, lastName, age, country, city) + this.gender = gender + } + + saySomething() { + console.log('I am a child of the person class') + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + let pronoun = this.gender == 'Male' ? 'He' : 'She' + + let info = `${fullName} is ${this.age}. ${pronoun} lives in ${this.city}, ${this.country}. ${formattedSkills}` + return info + } +} + +const s1 = new Student( + 'Asabeneh', + 'Yetayeh', + 250, + 'Finland', + 'Helsinki', + 'Male' +) +const s2 = new Student('Lidiya', 'Tekle', 28, 'Finland', 'Helsinki', 'Female') +s1.setScore = 1 +s1.setSkill = 'HTML' +s1.setSkill = 'CSS' +s1.setSkill = 'JavaScript' + +s2.setScore = 1 +s2.setSkill = 'Planning' +s2.setSkill = 'Managing' +s2.setSkill = 'Organizing' + +console.log(s1) + +console.log(s1.saySomething()) +console.log(s1.getFullName()) +console.log(s1.getPersonInfo()) + +console.log(s2.saySomething()) +console.log(s2.getFullName()) +console.log(s2.getPersonInfo()) +``` + +```sh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} +Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} +I am a child of the person class +Asabeneh Yetayeh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} +Asabeneh Yetayeh is 250. He lives in Helsinki, Finland. He knows HTML, CSS and JavaScript +I am a child of the person class +Lidiya Tekle +Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} +Lidiya Tekle is 28. She lives in Helsinki, Finland. He knows Planning, Managing and Organizing +``` + +Now, the getPersonInfo method has been overridden and it identifies if the person is male or female. + +#### Exercises + +##### Exercises Level 1 + +1. Create an Animal class. The class will have name, age, color, legs properties and create different methods +2. Create a Dog and Cat child class from the Animal Class. + +##### Exercises Level 2 + +1. Override the method you create in Animal class + +##### Exercises Level 3 + +1. Let's try to develop a program which calculate measure of central tendency of a sample(mean, median, mode) and measure of variability(range, variance, standard deviation). In addition to those measures find the min, max, count, percentile, and frequency distribution of the sample. You can create a class called Statistics and create all the functions which do statistical calculations as method for the Statistics class. Check the output below. + +```JS +ages = [31, 26, 34, 37, 27, 26, 32, 32, 26, 27, 27, 24, 32, 33, 27, 25, 26, 38, 37, 31, 34, 24, 33, 29, 26] + +console.log('Count:', statistics.count()) // 25 +console.log('Sum: ', statistics.sum()) // 744 +console.log('Min: ', statistics.min()) // 24 +console.log('Max: ', statistics.max()) // 38 +console.log('Range: ', statistics.range() // 14 +console.log('Mean: ', statistics.mean()) // 30 +console.log('Median: ',statistics.median()) // 29 +console.log('Mode: ', statistics.mode()) // {'mode': 26, 'count': 5} +console.log('Variance: ',statistics.var()) // 17.5 +console.log('Standard Deviation: ', statistics.std()) // 4.2 +console.log('Variance: ',statistics.var()) // 17.5 +console.log('Frequency Distribution: ',statistics.freqDist()) // [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] +``` + +```sh +// you output should look like this +console.log(statistics.describe()) +Count: 25 +Sum: 744 +Min: 24 +Max: 38 +Range: 14 +Mean: 30 +Median: 29 +Mode: (26, 5) +Variance: 17.5 +Standard Deviation: 4.2 +Frequency Distribution: [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] +``` + +### 13 Document Object Model(DOM) + +HTML document is structured as a JavaScript Object. Every HTML element has a different properties which can help us to manipulate it. It is possible to get, create, append or remove HTML elements using JavaScript. + +When it comes to React we do not directly manipulate the DOM instead React Virtual DOM will take care of update all necessary changes. + +So do not directly manipulate the DOM if you are using react. The only place we directly touch the DOM is here at the index.html. React is a single page application because all the components will be rendered on the index.html page and there will not be any other HTML in the entire React Application. You don't have to know DOM very well to use react but recommended to know. + +```html + + + + + + React App + + + + +
+ + + + +``` + +Check out there result on [codepen](https://codepen.io/Asabeneh/full/vYGqQxP) + +🌕 You are amazing! You have just completed day 1 challenge and you are on your way to greatness. Now you are a JavaScript Ninja and ready to dive into React. + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 0](../readMe.md) | [Day 2 >>](../02_Day_Introduction_to_React/02_introduction_to_react.md) diff --git a/02_Day_Introduction_to_React/02_introduction_to_react.md b/docs/02_Day_Introduction_to_React/02_introduction_to_react.md similarity index 100% rename from 02_Day_Introduction_to_React/02_introduction_to_react.md rename to docs/02_Day_Introduction_to_React/02_introduction_to_react.md diff --git a/03_Day_Setting_Up/03_setting_up.md b/docs/03_Day_Setting_Up/03_setting_up.md similarity index 100% rename from 03_Day_Setting_Up/03_setting_up.md rename to docs/03_Day_Setting_Up/03_setting_up.md diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/.gitignore b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/.gitignore similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/.gitignore rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/.gitignore diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/README.md b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/README.md similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/README.md rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/README.md diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/package.json b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/package.json similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/package.json rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/package.json diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/public/index.html b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/public/index.html similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/public/index.html rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/public/index.html diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/asabeneh.jpg b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/images/asabeneh.jpg rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/asabeneh.jpg diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/css_logo.png b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/css_logo.png similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/images/css_logo.png rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/css_logo.png diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/html_logo.png b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/html_logo.png similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/images/html_logo.png rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/html_logo.png diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/react_logo.png b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/react_logo.png similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/images/react_logo.png rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/images/react_logo.png diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/index.js b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/index.js similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/index.js rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/index.js diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/src/math.js b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/math.js similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/src/math.js rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/src/math.js diff --git a/03_Day_Setting_Up/03_setting_up_boilerplate/yarn.lock b/docs/03_Day_Setting_Up/03_setting_up_boilerplate/yarn.lock similarity index 100% rename from 03_Day_Setting_Up/03_setting_up_boilerplate/yarn.lock rename to docs/03_Day_Setting_Up/03_setting_up_boilerplate/yarn.lock diff --git a/04_Day_Components/04_components.md b/docs/04_Day_Components/04_components.md similarity index 100% rename from 04_Day_Components/04_components.md rename to docs/04_Day_Components/04_components.md diff --git a/04_Day_Components/04_components_boilerplate/.gitignore b/docs/04_Day_Components/04_components_boilerplate/.gitignore similarity index 100% rename from 04_Day_Components/04_components_boilerplate/.gitignore rename to docs/04_Day_Components/04_components_boilerplate/.gitignore diff --git a/04_Day_Components/04_components_boilerplate/README.md b/docs/04_Day_Components/04_components_boilerplate/README.md similarity index 100% rename from 04_Day_Components/04_components_boilerplate/README.md rename to docs/04_Day_Components/04_components_boilerplate/README.md diff --git a/04_Day_Components/04_components_boilerplate/package.json b/docs/04_Day_Components/04_components_boilerplate/package.json similarity index 100% rename from 04_Day_Components/04_components_boilerplate/package.json rename to docs/04_Day_Components/04_components_boilerplate/package.json diff --git a/04_Day_Components/04_components_boilerplate/public/index.html b/docs/04_Day_Components/04_components_boilerplate/public/index.html similarity index 100% rename from 04_Day_Components/04_components_boilerplate/public/index.html rename to docs/04_Day_Components/04_components_boilerplate/public/index.html diff --git a/04_Day_Components/04_components_boilerplate/src/images/asabeneh.jpg b/docs/04_Day_Components/04_components_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/images/asabeneh.jpg rename to docs/04_Day_Components/04_components_boilerplate/src/images/asabeneh.jpg diff --git a/04_Day_Components/04_components_boilerplate/src/images/css_logo.png b/docs/04_Day_Components/04_components_boilerplate/src/images/css_logo.png similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/images/css_logo.png rename to docs/04_Day_Components/04_components_boilerplate/src/images/css_logo.png diff --git a/04_Day_Components/04_components_boilerplate/src/images/html_logo.png b/docs/04_Day_Components/04_components_boilerplate/src/images/html_logo.png similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/images/html_logo.png rename to docs/04_Day_Components/04_components_boilerplate/src/images/html_logo.png diff --git a/04_Day_Components/04_components_boilerplate/src/images/js_logo.png b/docs/04_Day_Components/04_components_boilerplate/src/images/js_logo.png similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/images/js_logo.png rename to docs/04_Day_Components/04_components_boilerplate/src/images/js_logo.png diff --git a/04_Day_Components/04_components_boilerplate/src/images/react_logo.png b/docs/04_Day_Components/04_components_boilerplate/src/images/react_logo.png similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/images/react_logo.png rename to docs/04_Day_Components/04_components_boilerplate/src/images/react_logo.png diff --git a/04_Day_Components/04_components_boilerplate/src/index.js b/docs/04_Day_Components/04_components_boilerplate/src/index.js similarity index 100% rename from 04_Day_Components/04_components_boilerplate/src/index.js rename to docs/04_Day_Components/04_components_boilerplate/src/index.js diff --git a/04_Day_Components/04_components_boilerplate/yarn.lock b/docs/04_Day_Components/04_components_boilerplate/yarn.lock similarity index 100% rename from 04_Day_Components/04_components_boilerplate/yarn.lock rename to docs/04_Day_Components/04_components_boilerplate/yarn.lock diff --git a/05_Day_Props/05_props.md b/docs/05_Day_Props/05_props.md similarity index 100% rename from 05_Day_Props/05_props.md rename to docs/05_Day_Props/05_props.md diff --git a/05_Day_Props/05_props_boilerplate/.gitignore b/docs/05_Day_Props/05_props_boilerplate/.gitignore similarity index 100% rename from 05_Day_Props/05_props_boilerplate/.gitignore rename to docs/05_Day_Props/05_props_boilerplate/.gitignore diff --git a/05_Day_Props/05_props_boilerplate/README.md b/docs/05_Day_Props/05_props_boilerplate/README.md similarity index 100% rename from 05_Day_Props/05_props_boilerplate/README.md rename to docs/05_Day_Props/05_props_boilerplate/README.md diff --git a/05_Day_Props/05_props_boilerplate/package.json b/docs/05_Day_Props/05_props_boilerplate/package.json similarity index 100% rename from 05_Day_Props/05_props_boilerplate/package.json rename to docs/05_Day_Props/05_props_boilerplate/package.json diff --git a/05_Day_Props/05_props_boilerplate/public/index.html b/docs/05_Day_Props/05_props_boilerplate/public/index.html similarity index 100% rename from 05_Day_Props/05_props_boilerplate/public/index.html rename to docs/05_Day_Props/05_props_boilerplate/public/index.html diff --git a/05_Day_Props/05_props_boilerplate/src/images/asabeneh.jpg b/docs/05_Day_Props/05_props_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/images/asabeneh.jpg rename to docs/05_Day_Props/05_props_boilerplate/src/images/asabeneh.jpg diff --git a/05_Day_Props/05_props_boilerplate/src/images/css_logo.png b/docs/05_Day_Props/05_props_boilerplate/src/images/css_logo.png similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/images/css_logo.png rename to docs/05_Day_Props/05_props_boilerplate/src/images/css_logo.png diff --git a/05_Day_Props/05_props_boilerplate/src/images/html_logo.png b/docs/05_Day_Props/05_props_boilerplate/src/images/html_logo.png similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/images/html_logo.png rename to docs/05_Day_Props/05_props_boilerplate/src/images/html_logo.png diff --git a/05_Day_Props/05_props_boilerplate/src/images/js_logo.png b/docs/05_Day_Props/05_props_boilerplate/src/images/js_logo.png similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/images/js_logo.png rename to docs/05_Day_Props/05_props_boilerplate/src/images/js_logo.png diff --git a/05_Day_Props/05_props_boilerplate/src/images/react_logo.png b/docs/05_Day_Props/05_props_boilerplate/src/images/react_logo.png similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/images/react_logo.png rename to docs/05_Day_Props/05_props_boilerplate/src/images/react_logo.png diff --git a/05_Day_Props/05_props_boilerplate/src/index.js b/docs/05_Day_Props/05_props_boilerplate/src/index.js similarity index 100% rename from 05_Day_Props/05_props_boilerplate/src/index.js rename to docs/05_Day_Props/05_props_boilerplate/src/index.js diff --git a/05_Day_Props/05_props_boilerplate/yarn.lock b/docs/05_Day_Props/05_props_boilerplate/yarn.lock similarity index 100% rename from 05_Day_Props/05_props_boilerplate/yarn.lock rename to docs/05_Day_Props/05_props_boilerplate/yarn.lock diff --git a/06_Day_Map_List_Keys/06_map_list_keys.md b/docs/06_Day_Map_List_Keys/06_map_list_keys.md similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys.md rename to docs/06_Day_Map_List_Keys/06_map_list_keys.md diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/.gitignore b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/.gitignore similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/.gitignore rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/.gitignore diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/README.md b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/README.md similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/README.md rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/README.md diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/package.json b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/package.json similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/package.json rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/package.json diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/public/index.html b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/public/index.html similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/public/index.html rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/public/index.html diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/countries.js b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/countries.js similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/countries.js rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/countries.js diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/ten_most_highest_populations.js b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/ten_most_highest_populations.js rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/data/ten_most_highest_populations.js diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/asabeneh.jpg b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/asabeneh.jpg rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/asabeneh.jpg diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/css_logo.png b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/css_logo.png similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/css_logo.png rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/css_logo.png diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/html_logo.png b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/html_logo.png similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/html_logo.png rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/html_logo.png diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/js_logo.png b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/js_logo.png similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/js_logo.png rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/js_logo.png diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/react_logo.png b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/react_logo.png similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/react_logo.png rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/images/react_logo.png diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/index.js b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/index.js similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/index.js rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/src/index.js diff --git a/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/yarn.lock b/docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/yarn.lock similarity index 100% rename from 06_Day_Map_List_Keys/06_map_list_keys_boilerplate/yarn.lock rename to docs/06_Day_Map_List_Keys/06_map_list_keys_boilerplate/yarn.lock diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/.gitignore b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/.gitignore similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/.gitignore rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/.gitignore diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/README.md b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/README.md similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/README.md rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/README.md diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/package.json b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/package.json similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/package.json rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/package.json diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/public/index.html b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/public/index.html similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/public/index.html rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/public/index.html diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/countries.js b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/countries.js similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/data/countries.js rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/countries.js diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/ten_most_highest_populations.js b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/data/ten_most_highest_populations.js rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/data/ten_most_highest_populations.js diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/asabeneh.jpg b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/images/asabeneh.jpg rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/asabeneh.jpg diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/css_logo.png b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/css_logo.png similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/images/css_logo.png rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/css_logo.png diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/html_logo.png b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/html_logo.png similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/images/html_logo.png rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/html_logo.png diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/js_logo.png b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/js_logo.png similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/images/js_logo.png rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/js_logo.png diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/react_logo.png b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/react_logo.png similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/images/react_logo.png rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/images/react_logo.png diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/src/index.js b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/index.js similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/src/index.js rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/src/index.js diff --git a/07_Day_Class_Components/07_class_based_components_boilerplate/yarn.lock b/docs/07_Day_Class_Components/07_class_based_components_boilerplate/yarn.lock similarity index 100% rename from 07_Day_Class_Components/07_class_based_components_boilerplate/yarn.lock rename to docs/07_Day_Class_Components/07_class_based_components_boilerplate/yarn.lock diff --git a/07_Day_Class_Components/07_class_components.md b/docs/07_Day_Class_Components/07_class_components.md similarity index 100% rename from 07_Day_Class_Components/07_class_components.md rename to docs/07_Day_Class_Components/07_class_components.md diff --git a/08_Day_States/08_states.md b/docs/08_Day_States/08_states.md similarity index 100% rename from 08_Day_States/08_states.md rename to docs/08_Day_States/08_states.md diff --git a/08_Day_States/08_states_boilerplate/.gitignore b/docs/08_Day_States/08_states_boilerplate/.gitignore similarity index 100% rename from 08_Day_States/08_states_boilerplate/.gitignore rename to docs/08_Day_States/08_states_boilerplate/.gitignore diff --git a/08_Day_States/08_states_boilerplate/README.md b/docs/08_Day_States/08_states_boilerplate/README.md similarity index 100% rename from 08_Day_States/08_states_boilerplate/README.md rename to docs/08_Day_States/08_states_boilerplate/README.md diff --git a/08_Day_States/08_states_boilerplate/package.json b/docs/08_Day_States/08_states_boilerplate/package.json similarity index 100% rename from 08_Day_States/08_states_boilerplate/package.json rename to docs/08_Day_States/08_states_boilerplate/package.json diff --git a/08_Day_States/08_states_boilerplate/public/index.html b/docs/08_Day_States/08_states_boilerplate/public/index.html similarity index 100% rename from 08_Day_States/08_states_boilerplate/public/index.html rename to docs/08_Day_States/08_states_boilerplate/public/index.html diff --git a/08_Day_States/08_states_boilerplate/src/data/countries.js b/docs/08_Day_States/08_states_boilerplate/src/data/countries.js similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/data/countries.js rename to docs/08_Day_States/08_states_boilerplate/src/data/countries.js diff --git a/08_Day_States/08_states_boilerplate/src/data/ten_most_highest_populations.js b/docs/08_Day_States/08_states_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/data/ten_most_highest_populations.js rename to docs/08_Day_States/08_states_boilerplate/src/data/ten_most_highest_populations.js diff --git a/08_Day_States/08_states_boilerplate/src/images/asabeneh.jpg b/docs/08_Day_States/08_states_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/images/asabeneh.jpg rename to docs/08_Day_States/08_states_boilerplate/src/images/asabeneh.jpg diff --git a/08_Day_States/08_states_boilerplate/src/images/css_logo.png b/docs/08_Day_States/08_states_boilerplate/src/images/css_logo.png similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/images/css_logo.png rename to docs/08_Day_States/08_states_boilerplate/src/images/css_logo.png diff --git a/08_Day_States/08_states_boilerplate/src/images/html_logo.png b/docs/08_Day_States/08_states_boilerplate/src/images/html_logo.png similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/images/html_logo.png rename to docs/08_Day_States/08_states_boilerplate/src/images/html_logo.png diff --git a/08_Day_States/08_states_boilerplate/src/images/js_logo.png b/docs/08_Day_States/08_states_boilerplate/src/images/js_logo.png similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/images/js_logo.png rename to docs/08_Day_States/08_states_boilerplate/src/images/js_logo.png diff --git a/08_Day_States/08_states_boilerplate/src/images/react_logo.png b/docs/08_Day_States/08_states_boilerplate/src/images/react_logo.png similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/images/react_logo.png rename to docs/08_Day_States/08_states_boilerplate/src/images/react_logo.png diff --git a/08_Day_States/08_states_boilerplate/src/index.js b/docs/08_Day_States/08_states_boilerplate/src/index.js similarity index 100% rename from 08_Day_States/08_states_boilerplate/src/index.js rename to docs/08_Day_States/08_states_boilerplate/src/index.js diff --git a/08_Day_States/08_states_boilerplate/yarn.lock b/docs/08_Day_States/08_states_boilerplate/yarn.lock similarity index 100% rename from 08_Day_States/08_states_boilerplate/yarn.lock rename to docs/08_Day_States/08_states_boilerplate/yarn.lock diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering.md b/docs/09_Day_Conditional_Rendering/09_conditional_rendering.md similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering.md rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering.md diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/.gitignore b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/.gitignore similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/.gitignore rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/.gitignore diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/README.md b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/README.md similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/README.md rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/README.md diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/package.json b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/package.json similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/package.json rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/package.json diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/public/index.html b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/public/index.html similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/public/index.html rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/public/index.html diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/countries.js b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/countries.js similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/countries.js rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/countries.js diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/ten_most_highest_populations.js b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/ten_most_highest_populations.js rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/data/ten_most_highest_populations.js diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/asabeneh.jpg b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/asabeneh.jpg rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/asabeneh.jpg diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/css_logo.png b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/css_logo.png similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/css_logo.png rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/css_logo.png diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/html_logo.png b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/html_logo.png similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/html_logo.png rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/html_logo.png diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/js_logo.png b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/js_logo.png similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/js_logo.png rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/js_logo.png diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/react_logo.png b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/react_logo.png similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/react_logo.png rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/images/react_logo.png diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/index.js b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/index.js similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/index.js rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/src/index.js diff --git a/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/yarn.lock b/docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/yarn.lock similarity index 100% rename from 09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/yarn.lock rename to docs/09_Day_Conditional_Rendering/09_conditional_rendering_boilerplate/yarn.lock diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure.md b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure.md similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure.md rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure.md diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/.gitignore b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/.gitignore similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/.gitignore rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/.gitignore diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/README.md b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/README.md similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/README.md rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/README.md diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/package.json b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/package.json similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/package.json rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/package.json diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/public/index.html b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/public/index.html similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/public/index.html rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/public/index.html diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/App.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/App.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/App.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/App.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/color/HexaColor.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/color/HexaColor.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/color/HexaColor.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/color/HexaColor.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/country/Country.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/country/Country.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/country/Country.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/country/Country.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/footer/Footer.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/footer/Footer.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/footer/Footer.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/footer/Footer.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/header/Header.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/header/Header.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/header/Header.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/header/Header.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/main/Main.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/main/Main.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/main/Main.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/main/Main.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/shared/Button.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/shared/Button.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/shared/Button.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/shared/Button.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/user/UserCard.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/user/UserCard.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/user/UserCard.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/components/user/UserCard.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/countries.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/countries.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/countries.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/countries.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/ten_most_highest_populations.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/ten_most_highest_populations.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/data/ten_most_highest_populations.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/asabeneh.jpg b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/asabeneh.jpg rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/asabeneh.jpg diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/css_logo.png b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/css_logo.png similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/css_logo.png rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/css_logo.png diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/html_logo.png b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/html_logo.png similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/html_logo.png rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/html_logo.png diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/js_logo.png b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/js_logo.png similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/js_logo.png rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/js_logo.png diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/react_logo.png b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/react_logo.png similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/react_logo.png rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/images/react_logo.png diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/index.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/index.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/index.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/index.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/button-styles.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/button-styles.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/button-styles.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/button-styles.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/common.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/common.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/common.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/common.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/country.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/country.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/country.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/country.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/footer.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/footer.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/footer.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/footer.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/header.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/header.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/header.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/header.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/index.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/index.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/index.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/index.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/user-card.css b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/user-card.css similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/user-card.css rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/styles/user-card.css diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/display-date-and-time.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/display-date-and-time.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/display-date-and-time.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/display-date-and-time.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/hexadecimal-color-generator.js b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/hexadecimal-color-generator.js similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/hexadecimal-color-generator.js rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/src/utils/hexadecimal-color-generator.js diff --git a/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/yarn.lock b/docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/yarn.lock similarity index 100% rename from 10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/yarn.lock rename to docs/10_React_Project_Folder_Structure/10_react_project_folder_structure_boilerplate/yarn.lock diff --git a/11_Day_Events/11_events.md b/docs/11_Day_Events/11_events.md similarity index 100% rename from 11_Day_Events/11_events.md rename to docs/11_Day_Events/11_events.md diff --git a/11_Day_Events/11_events_boilerplate/.gitignore b/docs/11_Day_Events/11_events_boilerplate/.gitignore similarity index 100% rename from 11_Day_Events/11_events_boilerplate/.gitignore rename to docs/11_Day_Events/11_events_boilerplate/.gitignore diff --git a/11_Day_Events/11_events_boilerplate/README.md b/docs/11_Day_Events/11_events_boilerplate/README.md similarity index 100% rename from 11_Day_Events/11_events_boilerplate/README.md rename to docs/11_Day_Events/11_events_boilerplate/README.md diff --git a/11_Day_Events/11_events_boilerplate/package.json b/docs/11_Day_Events/11_events_boilerplate/package.json similarity index 100% rename from 11_Day_Events/11_events_boilerplate/package.json rename to docs/11_Day_Events/11_events_boilerplate/package.json diff --git a/11_Day_Events/11_events_boilerplate/public/index.html b/docs/11_Day_Events/11_events_boilerplate/public/index.html similarity index 100% rename from 11_Day_Events/11_events_boilerplate/public/index.html rename to docs/11_Day_Events/11_events_boilerplate/public/index.html diff --git a/11_Day_Events/11_events_boilerplate/src/data/countries.js b/docs/11_Day_Events/11_events_boilerplate/src/data/countries.js similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/data/countries.js rename to docs/11_Day_Events/11_events_boilerplate/src/data/countries.js diff --git a/11_Day_Events/11_events_boilerplate/src/data/ten_most_highest_populations.js b/docs/11_Day_Events/11_events_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/data/ten_most_highest_populations.js rename to docs/11_Day_Events/11_events_boilerplate/src/data/ten_most_highest_populations.js diff --git a/11_Day_Events/11_events_boilerplate/src/images/asabeneh.jpg b/docs/11_Day_Events/11_events_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/images/asabeneh.jpg rename to docs/11_Day_Events/11_events_boilerplate/src/images/asabeneh.jpg diff --git a/11_Day_Events/11_events_boilerplate/src/images/css_logo.png b/docs/11_Day_Events/11_events_boilerplate/src/images/css_logo.png similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/images/css_logo.png rename to docs/11_Day_Events/11_events_boilerplate/src/images/css_logo.png diff --git a/11_Day_Events/11_events_boilerplate/src/images/html_logo.png b/docs/11_Day_Events/11_events_boilerplate/src/images/html_logo.png similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/images/html_logo.png rename to docs/11_Day_Events/11_events_boilerplate/src/images/html_logo.png diff --git a/11_Day_Events/11_events_boilerplate/src/images/js_logo.png b/docs/11_Day_Events/11_events_boilerplate/src/images/js_logo.png similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/images/js_logo.png rename to docs/11_Day_Events/11_events_boilerplate/src/images/js_logo.png diff --git a/11_Day_Events/11_events_boilerplate/src/images/react_logo.png b/docs/11_Day_Events/11_events_boilerplate/src/images/react_logo.png similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/images/react_logo.png rename to docs/11_Day_Events/11_events_boilerplate/src/images/react_logo.png diff --git a/11_Day_Events/11_events_boilerplate/src/index.js b/docs/11_Day_Events/11_events_boilerplate/src/index.js similarity index 100% rename from 11_Day_Events/11_events_boilerplate/src/index.js rename to docs/11_Day_Events/11_events_boilerplate/src/index.js diff --git a/11_Day_Events/11_events_boilerplate/yarn.lock b/docs/11_Day_Events/11_events_boilerplate/yarn.lock similarity index 100% rename from 11_Day_Events/11_events_boilerplate/yarn.lock rename to docs/11_Day_Events/11_events_boilerplate/yarn.lock diff --git a/12_Day_Forms/12_forms.md b/docs/12_Day_Forms/12_forms.md similarity index 100% rename from 12_Day_Forms/12_forms.md rename to docs/12_Day_Forms/12_forms.md diff --git a/12_Day_Forms/12_forms_boilerplate/.gitignore b/docs/12_Day_Forms/12_forms_boilerplate/.gitignore similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/.gitignore rename to docs/12_Day_Forms/12_forms_boilerplate/.gitignore diff --git a/12_Day_Forms/12_forms_boilerplate/README.md b/docs/12_Day_Forms/12_forms_boilerplate/README.md similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/README.md rename to docs/12_Day_Forms/12_forms_boilerplate/README.md diff --git a/12_Day_Forms/12_forms_boilerplate/package.json b/docs/12_Day_Forms/12_forms_boilerplate/package.json similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/package.json rename to docs/12_Day_Forms/12_forms_boilerplate/package.json diff --git a/12_Day_Forms/12_forms_boilerplate/public/index.html b/docs/12_Day_Forms/12_forms_boilerplate/public/index.html similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/public/index.html rename to docs/12_Day_Forms/12_forms_boilerplate/public/index.html diff --git a/12_Day_Forms/12_forms_boilerplate/src/data/countries.js b/docs/12_Day_Forms/12_forms_boilerplate/src/data/countries.js similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/data/countries.js rename to docs/12_Day_Forms/12_forms_boilerplate/src/data/countries.js diff --git a/12_Day_Forms/12_forms_boilerplate/src/data/ten_most_highest_populations.js b/docs/12_Day_Forms/12_forms_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/data/ten_most_highest_populations.js rename to docs/12_Day_Forms/12_forms_boilerplate/src/data/ten_most_highest_populations.js diff --git a/12_Day_Forms/12_forms_boilerplate/src/images/asabeneh.jpg b/docs/12_Day_Forms/12_forms_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/images/asabeneh.jpg rename to docs/12_Day_Forms/12_forms_boilerplate/src/images/asabeneh.jpg diff --git a/12_Day_Forms/12_forms_boilerplate/src/images/css_logo.png b/docs/12_Day_Forms/12_forms_boilerplate/src/images/css_logo.png similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/images/css_logo.png rename to docs/12_Day_Forms/12_forms_boilerplate/src/images/css_logo.png diff --git a/12_Day_Forms/12_forms_boilerplate/src/images/html_logo.png b/docs/12_Day_Forms/12_forms_boilerplate/src/images/html_logo.png similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/images/html_logo.png rename to docs/12_Day_Forms/12_forms_boilerplate/src/images/html_logo.png diff --git a/12_Day_Forms/12_forms_boilerplate/src/images/js_logo.png b/docs/12_Day_Forms/12_forms_boilerplate/src/images/js_logo.png similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/images/js_logo.png rename to docs/12_Day_Forms/12_forms_boilerplate/src/images/js_logo.png diff --git a/12_Day_Forms/12_forms_boilerplate/src/images/react_logo.png b/docs/12_Day_Forms/12_forms_boilerplate/src/images/react_logo.png similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/images/react_logo.png rename to docs/12_Day_Forms/12_forms_boilerplate/src/images/react_logo.png diff --git a/12_Day_Forms/12_forms_boilerplate/src/index.js b/docs/12_Day_Forms/12_forms_boilerplate/src/index.js similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/src/index.js rename to docs/12_Day_Forms/12_forms_boilerplate/src/index.js diff --git a/12_Day_Forms/12_forms_boilerplate/yarn.lock b/docs/12_Day_Forms/12_forms_boilerplate/yarn.lock similarity index 100% rename from 12_Day_Forms/12_forms_boilerplate/yarn.lock rename to docs/12_Day_Forms/12_forms_boilerplate/yarn.lock diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input.md b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input.md similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input.md rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input.md diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/.gitignore b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/.gitignore similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/.gitignore rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/.gitignore diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/README.md b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/README.md similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/README.md rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/README.md diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/package.json b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/package.json similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/package.json rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/package.json diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/public/index.html b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/public/index.html similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/public/index.html rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/public/index.html diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/countries.js b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/countries.js similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/countries.js rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/countries.js diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/ten_most_highest_populations.js b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/ten_most_highest_populations.js rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/data/ten_most_highest_populations.js diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/asabeneh.jpg b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/asabeneh.jpg rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/asabeneh.jpg diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/css_logo.png b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/css_logo.png similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/css_logo.png rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/css_logo.png diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/html_logo.png b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/html_logo.png similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/html_logo.png rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/html_logo.png diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/js_logo.png b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/js_logo.png similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/js_logo.png rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/js_logo.png diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/react_logo.png b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/react_logo.png similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/react_logo.png rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/images/react_logo.png diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/index.js b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/index.js similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/index.js rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/src/index.js diff --git a/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/yarn.lock b/docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/yarn.lock similarity index 100% rename from 13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/yarn.lock rename to docs/13_Day_Controlled_Versus_Uncontrolled_Input/13_uncontrolled_input_boilerplate/yarn.lock diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles.md b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles.md similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles.md rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles.md diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/.gitignore b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/.gitignore similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/.gitignore rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/.gitignore diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/README.md b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/README.md similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/README.md rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/README.md diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/package.json b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/package.json similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/package.json rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/package.json diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/public/index.html b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/public/index.html similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/public/index.html rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/public/index.html diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/countries.js b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/countries.js similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/countries.js rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/countries.js diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/ten_most_highest_populations.js b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/ten_most_highest_populations.js rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/data/ten_most_highest_populations.js diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/asabeneh.jpg b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/asabeneh.jpg rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/asabeneh.jpg diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/css_logo.png b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/css_logo.png similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/css_logo.png rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/css_logo.png diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/html_logo.png b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/html_logo.png similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/html_logo.png rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/html_logo.png diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/js_logo.png b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/js_logo.png similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/js_logo.png rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/js_logo.png diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/react_logo.png b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/react_logo.png similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/react_logo.png rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/images/react_logo.png diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/index.js b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/index.js similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/index.js rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/src/index.js diff --git a/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/yarn.lock b/docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/yarn.lock similarity index 100% rename from 14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/yarn.lock rename to docs/14_Day_Component_Life_Cycles/14_component_life_cycles_boilerplate/yarn.lock diff --git a/15_Third_Party_Packages/15_third_party_packages.md b/docs/15_Third_Party_Packages/15_third_party_packages.md similarity index 100% rename from 15_Third_Party_Packages/15_third_party_packages.md rename to docs/15_Third_Party_Packages/15_third_party_packages.md diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/.gitignore b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/.gitignore similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/.gitignore rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/.gitignore diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/README.md b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/README.md similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/README.md rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/README.md diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/package.json b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/package.json similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/package.json rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/package.json diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/public/index.html b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/public/index.html similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/public/index.html rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/public/index.html diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/countries.js b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/countries.js similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/countries.js rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/countries.js diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/ten_most_highest_populations.js b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/ten_most_highest_populations.js rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/data/ten_most_highest_populations.js diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/asabeneh.jpg b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/asabeneh.jpg rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/asabeneh.jpg diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/css_logo.png b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/css_logo.png similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/css_logo.png rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/css_logo.png diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/html_logo.png b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/html_logo.png similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/html_logo.png rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/html_logo.png diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/js_logo.png b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/js_logo.png similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/js_logo.png rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/js_logo.png diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/react_logo.png b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/react_logo.png similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/react_logo.png rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/images/react_logo.png diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/index.js b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/index.js similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/index.js rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/src/index.js diff --git a/15_Third_Party_Packages/15_third_pary_packages_boilerplate/yarn.lock b/docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/yarn.lock similarity index 100% rename from 15_Third_Party_Packages/15_third_pary_packages_boilerplate/yarn.lock rename to docs/15_Third_Party_Packages/15_third_pary_packages_boilerplate/yarn.lock diff --git a/16_Higher_Order_Component/16_higher_order_component.md b/docs/16_Higher_Order_Component/16_higher_order_component.md similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component.md rename to docs/16_Higher_Order_Component/16_higher_order_component.md diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/.gitignore b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/.gitignore similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/.gitignore rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/.gitignore diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/README.md b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/README.md similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/README.md rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/README.md diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/package.json b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/package.json similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/package.json rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/package.json diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/public/index.html b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/public/index.html similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/public/index.html rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/public/index.html diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/countries.js b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/countries.js similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/countries.js rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/countries.js diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/ten_most_highest_populations.js b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/ten_most_highest_populations.js rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/data/ten_most_highest_populations.js diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/asabeneh.jpg b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/asabeneh.jpg rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/asabeneh.jpg diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/css_logo.png b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/css_logo.png similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/css_logo.png rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/css_logo.png diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/html_logo.png b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/html_logo.png similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/html_logo.png rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/html_logo.png diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/js_logo.png b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/js_logo.png similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/js_logo.png rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/js_logo.png diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/react_logo.png b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/react_logo.png similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/react_logo.png rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/images/react_logo.png diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/index.js b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/index.js similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/src/index.js rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/src/index.js diff --git a/16_Higher_Order_Component/16_higher_order_component_boilerplate/yarn.lock b/docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/yarn.lock similarity index 100% rename from 16_Higher_Order_Component/16_higher_order_component_boilerplate/yarn.lock rename to docs/16_Higher_Order_Component/16_higher_order_component_boilerplate/yarn.lock diff --git a/17_React_Router/17_react_router.md b/docs/17_React_Router/17_react_router.md similarity index 100% rename from 17_React_Router/17_react_router.md rename to docs/17_React_Router/17_react_router.md diff --git a/17_React_Router/17_react_router_boilerplate/.gitignore b/docs/17_React_Router/17_react_router_boilerplate/.gitignore similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/.gitignore rename to docs/17_React_Router/17_react_router_boilerplate/.gitignore diff --git a/17_React_Router/17_react_router_boilerplate/README.md b/docs/17_React_Router/17_react_router_boilerplate/README.md similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/README.md rename to docs/17_React_Router/17_react_router_boilerplate/README.md diff --git a/17_React_Router/17_react_router_boilerplate/package.json b/docs/17_React_Router/17_react_router_boilerplate/package.json similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/package.json rename to docs/17_React_Router/17_react_router_boilerplate/package.json diff --git a/17_React_Router/17_react_router_boilerplate/public/index.html b/docs/17_React_Router/17_react_router_boilerplate/public/index.html similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/public/index.html rename to docs/17_React_Router/17_react_router_boilerplate/public/index.html diff --git a/17_React_Router/17_react_router_boilerplate/src/data/countries.js b/docs/17_React_Router/17_react_router_boilerplate/src/data/countries.js similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/data/countries.js rename to docs/17_React_Router/17_react_router_boilerplate/src/data/countries.js diff --git a/17_React_Router/17_react_router_boilerplate/src/data/ten_most_highest_populations.js b/docs/17_React_Router/17_react_router_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/data/ten_most_highest_populations.js rename to docs/17_React_Router/17_react_router_boilerplate/src/data/ten_most_highest_populations.js diff --git a/17_React_Router/17_react_router_boilerplate/src/images/asabeneh.jpg b/docs/17_React_Router/17_react_router_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/images/asabeneh.jpg rename to docs/17_React_Router/17_react_router_boilerplate/src/images/asabeneh.jpg diff --git a/17_React_Router/17_react_router_boilerplate/src/images/css_logo.png b/docs/17_React_Router/17_react_router_boilerplate/src/images/css_logo.png similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/images/css_logo.png rename to docs/17_React_Router/17_react_router_boilerplate/src/images/css_logo.png diff --git a/17_React_Router/17_react_router_boilerplate/src/images/html_logo.png b/docs/17_React_Router/17_react_router_boilerplate/src/images/html_logo.png similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/images/html_logo.png rename to docs/17_React_Router/17_react_router_boilerplate/src/images/html_logo.png diff --git a/17_React_Router/17_react_router_boilerplate/src/images/js_logo.png b/docs/17_React_Router/17_react_router_boilerplate/src/images/js_logo.png similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/images/js_logo.png rename to docs/17_React_Router/17_react_router_boilerplate/src/images/js_logo.png diff --git a/17_React_Router/17_react_router_boilerplate/src/images/react_logo.png b/docs/17_React_Router/17_react_router_boilerplate/src/images/react_logo.png similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/images/react_logo.png rename to docs/17_React_Router/17_react_router_boilerplate/src/images/react_logo.png diff --git a/17_React_Router/17_react_router_boilerplate/src/index.js b/docs/17_React_Router/17_react_router_boilerplate/src/index.js similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/src/index.js rename to docs/17_React_Router/17_react_router_boilerplate/src/index.js diff --git a/17_React_Router/17_react_router_boilerplate/yarn.lock b/docs/17_React_Router/17_react_router_boilerplate/yarn.lock similarity index 100% rename from 17_React_Router/17_react_router_boilerplate/yarn.lock rename to docs/17_React_Router/17_react_router_boilerplate/yarn.lock diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/.gitignore b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/.gitignore similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/.gitignore rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/.gitignore diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/README.md b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/README.md similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/README.md rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/README.md diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/package.json b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/package.json similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/package.json rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/package.json diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/public/index.html b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/public/index.html similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/public/index.html rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/public/index.html diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/countries.js b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/countries.js similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/countries.js rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/countries.js diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/ten_most_highest_populations.js b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/ten_most_highest_populations.js rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/data/ten_most_highest_populations.js diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/asabeneh.jpg b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/asabeneh.jpg rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/asabeneh.jpg diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/css_logo.png b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/css_logo.png similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/css_logo.png rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/css_logo.png diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/html_logo.png b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/html_logo.png similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/html_logo.png rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/html_logo.png diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/js_logo.png b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/js_logo.png similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/js_logo.png rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/js_logo.png diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/react_logo.png b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/react_logo.png similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/react_logo.png rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/images/react_logo.png diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/index.js b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/index.js similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/index.js rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/src/index.js diff --git a/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/yarn.lock b/docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/yarn.lock similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/yarn.lock rename to docs/18_Fetch_And_Axios/18_fetch_and_axios_boilerplate/yarn.lock diff --git a/18_Fetch_And_Axios/18_fetch_axios.md b/docs/18_Fetch_And_Axios/18_fetch_axios.md similarity index 100% rename from 18_Fetch_And_Axios/18_fetch_axios.md rename to docs/18_Fetch_And_Axios/18_fetch_axios.md diff --git a/19_projects/19_projects.md b/docs/19_projects/19_projects.md similarity index 100% rename from 19_projects/19_projects.md rename to docs/19_projects/19_projects.md diff --git a/19_projects/19_projects_boilerplate/.gitignore b/docs/19_projects/19_projects_boilerplate/.gitignore similarity index 100% rename from 19_projects/19_projects_boilerplate/.gitignore rename to docs/19_projects/19_projects_boilerplate/.gitignore diff --git a/19_projects/19_projects_boilerplate/README.md b/docs/19_projects/19_projects_boilerplate/README.md similarity index 100% rename from 19_projects/19_projects_boilerplate/README.md rename to docs/19_projects/19_projects_boilerplate/README.md diff --git a/19_projects/19_projects_boilerplate/package.json b/docs/19_projects/19_projects_boilerplate/package.json similarity index 100% rename from 19_projects/19_projects_boilerplate/package.json rename to docs/19_projects/19_projects_boilerplate/package.json diff --git a/19_projects/19_projects_boilerplate/public/index.html b/docs/19_projects/19_projects_boilerplate/public/index.html similarity index 100% rename from 19_projects/19_projects_boilerplate/public/index.html rename to docs/19_projects/19_projects_boilerplate/public/index.html diff --git a/19_projects/19_projects_boilerplate/src/data/countries.js b/docs/19_projects/19_projects_boilerplate/src/data/countries.js similarity index 100% rename from 19_projects/19_projects_boilerplate/src/data/countries.js rename to docs/19_projects/19_projects_boilerplate/src/data/countries.js diff --git a/19_projects/19_projects_boilerplate/src/data/ten_most_highest_populations.js b/docs/19_projects/19_projects_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 19_projects/19_projects_boilerplate/src/data/ten_most_highest_populations.js rename to docs/19_projects/19_projects_boilerplate/src/data/ten_most_highest_populations.js diff --git a/19_projects/19_projects_boilerplate/src/images/asabeneh.jpg b/docs/19_projects/19_projects_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 19_projects/19_projects_boilerplate/src/images/asabeneh.jpg rename to docs/19_projects/19_projects_boilerplate/src/images/asabeneh.jpg diff --git a/19_projects/19_projects_boilerplate/src/images/css_logo.png b/docs/19_projects/19_projects_boilerplate/src/images/css_logo.png similarity index 100% rename from 19_projects/19_projects_boilerplate/src/images/css_logo.png rename to docs/19_projects/19_projects_boilerplate/src/images/css_logo.png diff --git a/19_projects/19_projects_boilerplate/src/images/html_logo.png b/docs/19_projects/19_projects_boilerplate/src/images/html_logo.png similarity index 100% rename from 19_projects/19_projects_boilerplate/src/images/html_logo.png rename to docs/19_projects/19_projects_boilerplate/src/images/html_logo.png diff --git a/19_projects/19_projects_boilerplate/src/images/js_logo.png b/docs/19_projects/19_projects_boilerplate/src/images/js_logo.png similarity index 100% rename from 19_projects/19_projects_boilerplate/src/images/js_logo.png rename to docs/19_projects/19_projects_boilerplate/src/images/js_logo.png diff --git a/19_projects/19_projects_boilerplate/src/images/react_logo.png b/docs/19_projects/19_projects_boilerplate/src/images/react_logo.png similarity index 100% rename from 19_projects/19_projects_boilerplate/src/images/react_logo.png rename to docs/19_projects/19_projects_boilerplate/src/images/react_logo.png diff --git a/19_projects/19_projects_boilerplate/src/index.js b/docs/19_projects/19_projects_boilerplate/src/index.js similarity index 100% rename from 19_projects/19_projects_boilerplate/src/index.js rename to docs/19_projects/19_projects_boilerplate/src/index.js diff --git a/19_projects/19_projects_boilerplate/yarn.lock b/docs/19_projects/19_projects_boilerplate/yarn.lock similarity index 100% rename from 19_projects/19_projects_boilerplate/yarn.lock rename to docs/19_projects/19_projects_boilerplate/yarn.lock diff --git a/20_projects/20_projects.md b/docs/20_projects/20_projects.md similarity index 100% rename from 20_projects/20_projects.md rename to docs/20_projects/20_projects.md diff --git a/20_projects/20_projects_boilerplate/.gitignore b/docs/20_projects/20_projects_boilerplate/.gitignore similarity index 100% rename from 20_projects/20_projects_boilerplate/.gitignore rename to docs/20_projects/20_projects_boilerplate/.gitignore diff --git a/20_projects/20_projects_boilerplate/README.md b/docs/20_projects/20_projects_boilerplate/README.md similarity index 100% rename from 20_projects/20_projects_boilerplate/README.md rename to docs/20_projects/20_projects_boilerplate/README.md diff --git a/20_projects/20_projects_boilerplate/package.json b/docs/20_projects/20_projects_boilerplate/package.json similarity index 100% rename from 20_projects/20_projects_boilerplate/package.json rename to docs/20_projects/20_projects_boilerplate/package.json diff --git a/20_projects/20_projects_boilerplate/public/index.html b/docs/20_projects/20_projects_boilerplate/public/index.html similarity index 100% rename from 20_projects/20_projects_boilerplate/public/index.html rename to docs/20_projects/20_projects_boilerplate/public/index.html diff --git a/20_projects/20_projects_boilerplate/src/data/countries.js b/docs/20_projects/20_projects_boilerplate/src/data/countries.js similarity index 100% rename from 20_projects/20_projects_boilerplate/src/data/countries.js rename to docs/20_projects/20_projects_boilerplate/src/data/countries.js diff --git a/20_projects/20_projects_boilerplate/src/data/ten_most_highest_populations.js b/docs/20_projects/20_projects_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 20_projects/20_projects_boilerplate/src/data/ten_most_highest_populations.js rename to docs/20_projects/20_projects_boilerplate/src/data/ten_most_highest_populations.js diff --git a/20_projects/20_projects_boilerplate/src/images/asabeneh.jpg b/docs/20_projects/20_projects_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 20_projects/20_projects_boilerplate/src/images/asabeneh.jpg rename to docs/20_projects/20_projects_boilerplate/src/images/asabeneh.jpg diff --git a/20_projects/20_projects_boilerplate/src/images/css_logo.png b/docs/20_projects/20_projects_boilerplate/src/images/css_logo.png similarity index 100% rename from 20_projects/20_projects_boilerplate/src/images/css_logo.png rename to docs/20_projects/20_projects_boilerplate/src/images/css_logo.png diff --git a/20_projects/20_projects_boilerplate/src/images/html_logo.png b/docs/20_projects/20_projects_boilerplate/src/images/html_logo.png similarity index 100% rename from 20_projects/20_projects_boilerplate/src/images/html_logo.png rename to docs/20_projects/20_projects_boilerplate/src/images/html_logo.png diff --git a/20_projects/20_projects_boilerplate/src/images/js_logo.png b/docs/20_projects/20_projects_boilerplate/src/images/js_logo.png similarity index 100% rename from 20_projects/20_projects_boilerplate/src/images/js_logo.png rename to docs/20_projects/20_projects_boilerplate/src/images/js_logo.png diff --git a/20_projects/20_projects_boilerplate/src/images/react_logo.png b/docs/20_projects/20_projects_boilerplate/src/images/react_logo.png similarity index 100% rename from 20_projects/20_projects_boilerplate/src/images/react_logo.png rename to docs/20_projects/20_projects_boilerplate/src/images/react_logo.png diff --git a/20_projects/20_projects_boilerplate/src/index.js b/docs/20_projects/20_projects_boilerplate/src/index.js similarity index 100% rename from 20_projects/20_projects_boilerplate/src/index.js rename to docs/20_projects/20_projects_boilerplate/src/index.js diff --git a/20_projects/20_projects_boilerplate/yarn.lock b/docs/20_projects/20_projects_boilerplate/yarn.lock similarity index 100% rename from 20_projects/20_projects_boilerplate/yarn.lock rename to docs/20_projects/20_projects_boilerplate/yarn.lock diff --git a/21_Introducing_Hooks/21_introducing_hooks.md b/docs/21_Introducing_Hooks/21_introducing_hooks.md similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks.md rename to docs/21_Introducing_Hooks/21_introducing_hooks.md diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/.gitignore b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/.gitignore similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/.gitignore rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/.gitignore diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/README.md b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/README.md similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/README.md rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/README.md diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/package.json b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/package.json similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/package.json rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/package.json diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/public/index.html b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/public/index.html similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/public/index.html rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/public/index.html diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/countries.js b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/countries.js similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/countries.js rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/countries.js diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/ten_most_highest_populations.js b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/ten_most_highest_populations.js rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/data/ten_most_highest_populations.js diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/asabeneh.jpg b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/asabeneh.jpg rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/asabeneh.jpg diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/css_logo.png b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/css_logo.png similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/css_logo.png rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/css_logo.png diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/html_logo.png b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/html_logo.png similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/html_logo.png rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/html_logo.png diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/js_logo.png b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/js_logo.png similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/js_logo.png rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/js_logo.png diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/react_logo.png b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/react_logo.png similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/react_logo.png rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/images/react_logo.png diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.js b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.js similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.js rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.js diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.scss b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.scss similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.scss rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/src/index.scss diff --git a/21_Introducing_Hooks/21_introducing_hooks_boilerplate/yarn.lock b/docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/yarn.lock similarity index 100% rename from 21_Introducing_Hooks/21_introducing_hooks_boilerplate/yarn.lock rename to docs/21_Introducing_Hooks/21_introducing_hooks_boilerplate/yarn.lock diff --git a/22_Form_Using_Hooks/22_form_using_hooks.md b/docs/22_Form_Using_Hooks/22_form_using_hooks.md similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks.md rename to docs/22_Form_Using_Hooks/22_form_using_hooks.md diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/.gitignore b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/.gitignore similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/.gitignore rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/.gitignore diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/README.md b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/README.md similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/README.md rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/README.md diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/package.json b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/package.json similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/package.json rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/package.json diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/public/index.html b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/public/index.html similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/public/index.html rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/public/index.html diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/countries.js b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/countries.js similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/countries.js rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/countries.js diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/ten_most_highest_populations.js b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/ten_most_highest_populations.js rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/data/ten_most_highest_populations.js diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/asabeneh.jpg b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/asabeneh.jpg rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/asabeneh.jpg diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/css_logo.png b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/css_logo.png similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/css_logo.png rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/css_logo.png diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/html_logo.png b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/html_logo.png similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/html_logo.png rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/html_logo.png diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/js_logo.png b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/js_logo.png similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/js_logo.png rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/js_logo.png diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/react_logo.png b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/react_logo.png similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/react_logo.png rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/images/react_logo.png diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.js b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.js similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.js rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.js diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.scss b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.scss similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.scss rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/src/index.scss diff --git a/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/yarn.lock b/docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/yarn.lock similarity index 100% rename from 22_Form_Using_Hooks/22_form_using_hooks_boilerplate/yarn.lock rename to docs/22_Form_Using_Hooks/22_form_using_hooks_boilerplate/yarn.lock diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks.md b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks.md similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks.md rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks.md diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/.gitignore b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/.gitignore similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/.gitignore rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/.gitignore diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/README.md b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/README.md similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/README.md rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/README.md diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/package.json b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/package.json similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/package.json rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/package.json diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/public/index.html b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/public/index.html similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/public/index.html rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/public/index.html diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/countries.js b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/countries.js similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/countries.js rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/countries.js diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/ten_most_highest_populations.js b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/ten_most_highest_populations.js rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/data/ten_most_highest_populations.js diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/asabeneh.jpg b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/asabeneh.jpg rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/asabeneh.jpg diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/css_logo.png b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/css_logo.png similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/css_logo.png rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/css_logo.png diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/html_logo.png b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/html_logo.png similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/html_logo.png rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/html_logo.png diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/js_logo.png b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/js_logo.png similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/js_logo.png rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/js_logo.png diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/react_logo.png b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/react_logo.png similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/react_logo.png rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/images/react_logo.png diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.js b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.js similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.js rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.js diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.scss b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.scss similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.scss rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/src/index.scss diff --git a/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/yarn.lock b/docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/yarn.lock similarity index 100% rename from 23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/yarn.lock rename to docs/23_Fetching_Data_Using_Hooks/23_fetching_data_using_hooks_boilerplate/yarn.lock diff --git a/24_projects/24_projects.md b/docs/24_projects/24_projects.md similarity index 100% rename from 24_projects/24_projects.md rename to docs/24_projects/24_projects.md diff --git a/24_projects/24_projects_boilerplate/.gitignore b/docs/24_projects/24_projects_boilerplate/.gitignore similarity index 100% rename from 24_projects/24_projects_boilerplate/.gitignore rename to docs/24_projects/24_projects_boilerplate/.gitignore diff --git a/24_projects/24_projects_boilerplate/README.md b/docs/24_projects/24_projects_boilerplate/README.md similarity index 100% rename from 24_projects/24_projects_boilerplate/README.md rename to docs/24_projects/24_projects_boilerplate/README.md diff --git a/24_projects/24_projects_boilerplate/package.json b/docs/24_projects/24_projects_boilerplate/package.json similarity index 100% rename from 24_projects/24_projects_boilerplate/package.json rename to docs/24_projects/24_projects_boilerplate/package.json diff --git a/24_projects/24_projects_boilerplate/public/index.html b/docs/24_projects/24_projects_boilerplate/public/index.html similarity index 100% rename from 24_projects/24_projects_boilerplate/public/index.html rename to docs/24_projects/24_projects_boilerplate/public/index.html diff --git a/24_projects/24_projects_boilerplate/src/data/countries.js b/docs/24_projects/24_projects_boilerplate/src/data/countries.js similarity index 100% rename from 24_projects/24_projects_boilerplate/src/data/countries.js rename to docs/24_projects/24_projects_boilerplate/src/data/countries.js diff --git a/24_projects/24_projects_boilerplate/src/data/ten_most_highest_populations.js b/docs/24_projects/24_projects_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 24_projects/24_projects_boilerplate/src/data/ten_most_highest_populations.js rename to docs/24_projects/24_projects_boilerplate/src/data/ten_most_highest_populations.js diff --git a/24_projects/24_projects_boilerplate/src/images/asabeneh.jpg b/docs/24_projects/24_projects_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 24_projects/24_projects_boilerplate/src/images/asabeneh.jpg rename to docs/24_projects/24_projects_boilerplate/src/images/asabeneh.jpg diff --git a/24_projects/24_projects_boilerplate/src/images/css_logo.png b/docs/24_projects/24_projects_boilerplate/src/images/css_logo.png similarity index 100% rename from 24_projects/24_projects_boilerplate/src/images/css_logo.png rename to docs/24_projects/24_projects_boilerplate/src/images/css_logo.png diff --git a/24_projects/24_projects_boilerplate/src/images/html_logo.png b/docs/24_projects/24_projects_boilerplate/src/images/html_logo.png similarity index 100% rename from 24_projects/24_projects_boilerplate/src/images/html_logo.png rename to docs/24_projects/24_projects_boilerplate/src/images/html_logo.png diff --git a/24_projects/24_projects_boilerplate/src/images/js_logo.png b/docs/24_projects/24_projects_boilerplate/src/images/js_logo.png similarity index 100% rename from 24_projects/24_projects_boilerplate/src/images/js_logo.png rename to docs/24_projects/24_projects_boilerplate/src/images/js_logo.png diff --git a/24_projects/24_projects_boilerplate/src/images/react_logo.png b/docs/24_projects/24_projects_boilerplate/src/images/react_logo.png similarity index 100% rename from 24_projects/24_projects_boilerplate/src/images/react_logo.png rename to docs/24_projects/24_projects_boilerplate/src/images/react_logo.png diff --git a/24_projects/24_projects_boilerplate/src/index.js b/docs/24_projects/24_projects_boilerplate/src/index.js similarity index 100% rename from 24_projects/24_projects_boilerplate/src/index.js rename to docs/24_projects/24_projects_boilerplate/src/index.js diff --git a/24_projects/24_projects_boilerplate/src/index.scss b/docs/24_projects/24_projects_boilerplate/src/index.scss similarity index 100% rename from 24_projects/24_projects_boilerplate/src/index.scss rename to docs/24_projects/24_projects_boilerplate/src/index.scss diff --git a/24_projects/24_projects_boilerplate/yarn.lock b/docs/24_projects/24_projects_boilerplate/yarn.lock similarity index 100% rename from 24_projects/24_projects_boilerplate/yarn.lock rename to docs/24_projects/24_projects_boilerplate/yarn.lock diff --git a/25_Custom_Hooks/25_custom_hooks.md b/docs/25_Custom_Hooks/25_custom_hooks.md similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks.md rename to docs/25_Custom_Hooks/25_custom_hooks.md diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/.gitignore b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/.gitignore similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/.gitignore rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/.gitignore diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/README.md b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/README.md similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/README.md rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/README.md diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/package.json b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/package.json similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/package.json rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/package.json diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/public/index.html b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/public/index.html similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/public/index.html rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/public/index.html diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/countries.js b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/countries.js similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/countries.js rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/countries.js diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/ten_most_highest_populations.js b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/ten_most_highest_populations.js rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/data/ten_most_highest_populations.js diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/asabeneh.jpg b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/asabeneh.jpg rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/asabeneh.jpg diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/css_logo.png b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/css_logo.png similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/css_logo.png rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/css_logo.png diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/html_logo.png b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/html_logo.png similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/html_logo.png rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/html_logo.png diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/js_logo.png b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/js_logo.png similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/js_logo.png rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/js_logo.png diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/react_logo.png b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/react_logo.png similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/react_logo.png rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/images/react_logo.png diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.js b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.js similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.js rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.js diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.scss b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.scss similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.scss rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/index.scss diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/src/useFetch.js b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/useFetch.js similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/src/useFetch.js rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/src/useFetch.js diff --git a/25_Custom_Hooks/25_custom_hooks_boilerplate/yarn.lock b/docs/25_Custom_Hooks/25_custom_hooks_boilerplate/yarn.lock similarity index 100% rename from 25_Custom_Hooks/25_custom_hooks_boilerplate/yarn.lock rename to docs/25_Custom_Hooks/25_custom_hooks_boilerplate/yarn.lock diff --git a/26_Context/26_context.md b/docs/26_Context/26_context.md similarity index 100% rename from 26_Context/26_context.md rename to docs/26_Context/26_context.md diff --git a/26_Context/26_context_boilerplate/.gitignore b/docs/26_Context/26_context_boilerplate/.gitignore similarity index 100% rename from 26_Context/26_context_boilerplate/.gitignore rename to docs/26_Context/26_context_boilerplate/.gitignore diff --git a/26_Context/26_context_boilerplate/README.md b/docs/26_Context/26_context_boilerplate/README.md similarity index 100% rename from 26_Context/26_context_boilerplate/README.md rename to docs/26_Context/26_context_boilerplate/README.md diff --git a/26_Context/26_context_boilerplate/package.json b/docs/26_Context/26_context_boilerplate/package.json similarity index 100% rename from 26_Context/26_context_boilerplate/package.json rename to docs/26_Context/26_context_boilerplate/package.json diff --git a/26_Context/26_context_boilerplate/public/index.html b/docs/26_Context/26_context_boilerplate/public/index.html similarity index 100% rename from 26_Context/26_context_boilerplate/public/index.html rename to docs/26_Context/26_context_boilerplate/public/index.html diff --git a/26_Context/26_context_boilerplate/src/data/countries.js b/docs/26_Context/26_context_boilerplate/src/data/countries.js similarity index 100% rename from 26_Context/26_context_boilerplate/src/data/countries.js rename to docs/26_Context/26_context_boilerplate/src/data/countries.js diff --git a/26_Context/26_context_boilerplate/src/data/ten_most_highest_populations.js b/docs/26_Context/26_context_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 26_Context/26_context_boilerplate/src/data/ten_most_highest_populations.js rename to docs/26_Context/26_context_boilerplate/src/data/ten_most_highest_populations.js diff --git a/26_Context/26_context_boilerplate/src/images/asabeneh.jpg b/docs/26_Context/26_context_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 26_Context/26_context_boilerplate/src/images/asabeneh.jpg rename to docs/26_Context/26_context_boilerplate/src/images/asabeneh.jpg diff --git a/26_Context/26_context_boilerplate/src/images/css_logo.png b/docs/26_Context/26_context_boilerplate/src/images/css_logo.png similarity index 100% rename from 26_Context/26_context_boilerplate/src/images/css_logo.png rename to docs/26_Context/26_context_boilerplate/src/images/css_logo.png diff --git a/26_Context/26_context_boilerplate/src/images/html_logo.png b/docs/26_Context/26_context_boilerplate/src/images/html_logo.png similarity index 100% rename from 26_Context/26_context_boilerplate/src/images/html_logo.png rename to docs/26_Context/26_context_boilerplate/src/images/html_logo.png diff --git a/26_Context/26_context_boilerplate/src/images/js_logo.png b/docs/26_Context/26_context_boilerplate/src/images/js_logo.png similarity index 100% rename from 26_Context/26_context_boilerplate/src/images/js_logo.png rename to docs/26_Context/26_context_boilerplate/src/images/js_logo.png diff --git a/26_Context/26_context_boilerplate/src/images/react_logo.png b/docs/26_Context/26_context_boilerplate/src/images/react_logo.png similarity index 100% rename from 26_Context/26_context_boilerplate/src/images/react_logo.png rename to docs/26_Context/26_context_boilerplate/src/images/react_logo.png diff --git a/26_Context/26_context_boilerplate/src/index.js b/docs/26_Context/26_context_boilerplate/src/index.js similarity index 100% rename from 26_Context/26_context_boilerplate/src/index.js rename to docs/26_Context/26_context_boilerplate/src/index.js diff --git a/26_Context/26_context_boilerplate/src/index.scss b/docs/26_Context/26_context_boilerplate/src/index.scss similarity index 100% rename from 26_Context/26_context_boilerplate/src/index.scss rename to docs/26_Context/26_context_boilerplate/src/index.scss diff --git a/26_Context/26_context_boilerplate/src/useFetch.js b/docs/26_Context/26_context_boilerplate/src/useFetch.js similarity index 100% rename from 26_Context/26_context_boilerplate/src/useFetch.js rename to docs/26_Context/26_context_boilerplate/src/useFetch.js diff --git a/26_Context/26_context_boilerplate/yarn.lock b/docs/26_Context/26_context_boilerplate/yarn.lock similarity index 100% rename from 26_Context/26_context_boilerplate/yarn.lock rename to docs/26_Context/26_context_boilerplate/yarn.lock diff --git a/27_Ref/27_ref.md b/docs/27_Ref/27_ref.md similarity index 100% rename from 27_Ref/27_ref.md rename to docs/27_Ref/27_ref.md diff --git a/27_Ref/27_ref_boilerplate/.gitignore b/docs/27_Ref/27_ref_boilerplate/.gitignore similarity index 100% rename from 27_Ref/27_ref_boilerplate/.gitignore rename to docs/27_Ref/27_ref_boilerplate/.gitignore diff --git a/27_Ref/27_ref_boilerplate/README.md b/docs/27_Ref/27_ref_boilerplate/README.md similarity index 100% rename from 27_Ref/27_ref_boilerplate/README.md rename to docs/27_Ref/27_ref_boilerplate/README.md diff --git a/27_Ref/27_ref_boilerplate/package.json b/docs/27_Ref/27_ref_boilerplate/package.json similarity index 100% rename from 27_Ref/27_ref_boilerplate/package.json rename to docs/27_Ref/27_ref_boilerplate/package.json diff --git a/27_Ref/27_ref_boilerplate/public/index.html b/docs/27_Ref/27_ref_boilerplate/public/index.html similarity index 100% rename from 27_Ref/27_ref_boilerplate/public/index.html rename to docs/27_Ref/27_ref_boilerplate/public/index.html diff --git a/27_Ref/27_ref_boilerplate/src/data/countries.js b/docs/27_Ref/27_ref_boilerplate/src/data/countries.js similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/data/countries.js rename to docs/27_Ref/27_ref_boilerplate/src/data/countries.js diff --git a/27_Ref/27_ref_boilerplate/src/data/ten_most_highest_populations.js b/docs/27_Ref/27_ref_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/data/ten_most_highest_populations.js rename to docs/27_Ref/27_ref_boilerplate/src/data/ten_most_highest_populations.js diff --git a/27_Ref/27_ref_boilerplate/src/images/asabeneh.jpg b/docs/27_Ref/27_ref_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/images/asabeneh.jpg rename to docs/27_Ref/27_ref_boilerplate/src/images/asabeneh.jpg diff --git a/27_Ref/27_ref_boilerplate/src/images/css_logo.png b/docs/27_Ref/27_ref_boilerplate/src/images/css_logo.png similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/images/css_logo.png rename to docs/27_Ref/27_ref_boilerplate/src/images/css_logo.png diff --git a/27_Ref/27_ref_boilerplate/src/images/html_logo.png b/docs/27_Ref/27_ref_boilerplate/src/images/html_logo.png similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/images/html_logo.png rename to docs/27_Ref/27_ref_boilerplate/src/images/html_logo.png diff --git a/27_Ref/27_ref_boilerplate/src/images/js_logo.png b/docs/27_Ref/27_ref_boilerplate/src/images/js_logo.png similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/images/js_logo.png rename to docs/27_Ref/27_ref_boilerplate/src/images/js_logo.png diff --git a/27_Ref/27_ref_boilerplate/src/images/react_logo.png b/docs/27_Ref/27_ref_boilerplate/src/images/react_logo.png similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/images/react_logo.png rename to docs/27_Ref/27_ref_boilerplate/src/images/react_logo.png diff --git a/27_Ref/27_ref_boilerplate/src/index.js b/docs/27_Ref/27_ref_boilerplate/src/index.js similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/index.js rename to docs/27_Ref/27_ref_boilerplate/src/index.js diff --git a/27_Ref/27_ref_boilerplate/src/index.scss b/docs/27_Ref/27_ref_boilerplate/src/index.scss similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/index.scss rename to docs/27_Ref/27_ref_boilerplate/src/index.scss diff --git a/27_Ref/27_ref_boilerplate/src/useFetch.js b/docs/27_Ref/27_ref_boilerplate/src/useFetch.js similarity index 100% rename from 27_Ref/27_ref_boilerplate/src/useFetch.js rename to docs/27_Ref/27_ref_boilerplate/src/useFetch.js diff --git a/27_Ref/27_ref_boilerplate/yarn.lock b/docs/27_Ref/27_ref_boilerplate/yarn.lock similarity index 100% rename from 27_Ref/27_ref_boilerplate/yarn.lock rename to docs/27_Ref/27_ref_boilerplate/yarn.lock diff --git a/28_project/28_project.md b/docs/28_project/28_project.md similarity index 100% rename from 28_project/28_project.md rename to docs/28_project/28_project.md diff --git a/28_project/28_project_boilerplate/.gitignore b/docs/28_project/28_project_boilerplate/.gitignore similarity index 100% rename from 28_project/28_project_boilerplate/.gitignore rename to docs/28_project/28_project_boilerplate/.gitignore diff --git a/28_project/28_project_boilerplate/README.md b/docs/28_project/28_project_boilerplate/README.md similarity index 100% rename from 28_project/28_project_boilerplate/README.md rename to docs/28_project/28_project_boilerplate/README.md diff --git a/28_project/28_project_boilerplate/package.json b/docs/28_project/28_project_boilerplate/package.json similarity index 100% rename from 28_project/28_project_boilerplate/package.json rename to docs/28_project/28_project_boilerplate/package.json diff --git a/28_project/28_project_boilerplate/public/index.html b/docs/28_project/28_project_boilerplate/public/index.html similarity index 100% rename from 28_project/28_project_boilerplate/public/index.html rename to docs/28_project/28_project_boilerplate/public/index.html diff --git a/28_project/28_project_boilerplate/src/data/countries.js b/docs/28_project/28_project_boilerplate/src/data/countries.js similarity index 100% rename from 28_project/28_project_boilerplate/src/data/countries.js rename to docs/28_project/28_project_boilerplate/src/data/countries.js diff --git a/28_project/28_project_boilerplate/src/data/ten_most_highest_populations.js b/docs/28_project/28_project_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 28_project/28_project_boilerplate/src/data/ten_most_highest_populations.js rename to docs/28_project/28_project_boilerplate/src/data/ten_most_highest_populations.js diff --git a/28_project/28_project_boilerplate/src/images/asabeneh.jpg b/docs/28_project/28_project_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 28_project/28_project_boilerplate/src/images/asabeneh.jpg rename to docs/28_project/28_project_boilerplate/src/images/asabeneh.jpg diff --git a/28_project/28_project_boilerplate/src/images/css_logo.png b/docs/28_project/28_project_boilerplate/src/images/css_logo.png similarity index 100% rename from 28_project/28_project_boilerplate/src/images/css_logo.png rename to docs/28_project/28_project_boilerplate/src/images/css_logo.png diff --git a/28_project/28_project_boilerplate/src/images/html_logo.png b/docs/28_project/28_project_boilerplate/src/images/html_logo.png similarity index 100% rename from 28_project/28_project_boilerplate/src/images/html_logo.png rename to docs/28_project/28_project_boilerplate/src/images/html_logo.png diff --git a/28_project/28_project_boilerplate/src/images/js_logo.png b/docs/28_project/28_project_boilerplate/src/images/js_logo.png similarity index 100% rename from 28_project/28_project_boilerplate/src/images/js_logo.png rename to docs/28_project/28_project_boilerplate/src/images/js_logo.png diff --git a/28_project/28_project_boilerplate/src/images/react_logo.png b/docs/28_project/28_project_boilerplate/src/images/react_logo.png similarity index 100% rename from 28_project/28_project_boilerplate/src/images/react_logo.png rename to docs/28_project/28_project_boilerplate/src/images/react_logo.png diff --git a/28_project/28_project_boilerplate/src/index.js b/docs/28_project/28_project_boilerplate/src/index.js similarity index 100% rename from 28_project/28_project_boilerplate/src/index.js rename to docs/28_project/28_project_boilerplate/src/index.js diff --git a/28_project/28_project_boilerplate/src/index.scss b/docs/28_project/28_project_boilerplate/src/index.scss similarity index 100% rename from 28_project/28_project_boilerplate/src/index.scss rename to docs/28_project/28_project_boilerplate/src/index.scss diff --git a/28_project/28_project_boilerplate/src/useFetch.js b/docs/28_project/28_project_boilerplate/src/useFetch.js similarity index 100% rename from 28_project/28_project_boilerplate/src/useFetch.js rename to docs/28_project/28_project_boilerplate/src/useFetch.js diff --git a/28_project/28_project_boilerplate/yarn.lock b/docs/28_project/28_project_boilerplate/yarn.lock similarity index 100% rename from 28_project/28_project_boilerplate/yarn.lock rename to docs/28_project/28_project_boilerplate/yarn.lock diff --git a/29_explore/29_explore.md b/docs/29_explore/29_explore.md similarity index 100% rename from 29_explore/29_explore.md rename to docs/29_explore/29_explore.md diff --git a/29_explore/29_explore_boilerplate/.gitignore b/docs/29_explore/29_explore_boilerplate/.gitignore similarity index 100% rename from 29_explore/29_explore_boilerplate/.gitignore rename to docs/29_explore/29_explore_boilerplate/.gitignore diff --git a/29_explore/29_explore_boilerplate/README.md b/docs/29_explore/29_explore_boilerplate/README.md similarity index 100% rename from 29_explore/29_explore_boilerplate/README.md rename to docs/29_explore/29_explore_boilerplate/README.md diff --git a/29_explore/29_explore_boilerplate/package.json b/docs/29_explore/29_explore_boilerplate/package.json similarity index 100% rename from 29_explore/29_explore_boilerplate/package.json rename to docs/29_explore/29_explore_boilerplate/package.json diff --git a/29_explore/29_explore_boilerplate/public/index.html b/docs/29_explore/29_explore_boilerplate/public/index.html similarity index 100% rename from 29_explore/29_explore_boilerplate/public/index.html rename to docs/29_explore/29_explore_boilerplate/public/index.html diff --git a/29_explore/29_explore_boilerplate/src/data/countries.js b/docs/29_explore/29_explore_boilerplate/src/data/countries.js similarity index 100% rename from 29_explore/29_explore_boilerplate/src/data/countries.js rename to docs/29_explore/29_explore_boilerplate/src/data/countries.js diff --git a/29_explore/29_explore_boilerplate/src/data/ten_most_highest_populations.js b/docs/29_explore/29_explore_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 29_explore/29_explore_boilerplate/src/data/ten_most_highest_populations.js rename to docs/29_explore/29_explore_boilerplate/src/data/ten_most_highest_populations.js diff --git a/29_explore/29_explore_boilerplate/src/images/asabeneh.jpg b/docs/29_explore/29_explore_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 29_explore/29_explore_boilerplate/src/images/asabeneh.jpg rename to docs/29_explore/29_explore_boilerplate/src/images/asabeneh.jpg diff --git a/29_explore/29_explore_boilerplate/src/images/css_logo.png b/docs/29_explore/29_explore_boilerplate/src/images/css_logo.png similarity index 100% rename from 29_explore/29_explore_boilerplate/src/images/css_logo.png rename to docs/29_explore/29_explore_boilerplate/src/images/css_logo.png diff --git a/29_explore/29_explore_boilerplate/src/images/html_logo.png b/docs/29_explore/29_explore_boilerplate/src/images/html_logo.png similarity index 100% rename from 29_explore/29_explore_boilerplate/src/images/html_logo.png rename to docs/29_explore/29_explore_boilerplate/src/images/html_logo.png diff --git a/29_explore/29_explore_boilerplate/src/images/js_logo.png b/docs/29_explore/29_explore_boilerplate/src/images/js_logo.png similarity index 100% rename from 29_explore/29_explore_boilerplate/src/images/js_logo.png rename to docs/29_explore/29_explore_boilerplate/src/images/js_logo.png diff --git a/29_explore/29_explore_boilerplate/src/images/react_logo.png b/docs/29_explore/29_explore_boilerplate/src/images/react_logo.png similarity index 100% rename from 29_explore/29_explore_boilerplate/src/images/react_logo.png rename to docs/29_explore/29_explore_boilerplate/src/images/react_logo.png diff --git a/29_explore/29_explore_boilerplate/src/index.js b/docs/29_explore/29_explore_boilerplate/src/index.js similarity index 100% rename from 29_explore/29_explore_boilerplate/src/index.js rename to docs/29_explore/29_explore_boilerplate/src/index.js diff --git a/29_explore/29_explore_boilerplate/src/index.scss b/docs/29_explore/29_explore_boilerplate/src/index.scss similarity index 100% rename from 29_explore/29_explore_boilerplate/src/index.scss rename to docs/29_explore/29_explore_boilerplate/src/index.scss diff --git a/29_explore/29_explore_boilerplate/src/useFetch.js b/docs/29_explore/29_explore_boilerplate/src/useFetch.js similarity index 100% rename from 29_explore/29_explore_boilerplate/src/useFetch.js rename to docs/29_explore/29_explore_boilerplate/src/useFetch.js diff --git a/29_explore/29_explore_boilerplate/yarn.lock b/docs/29_explore/29_explore_boilerplate/yarn.lock similarity index 100% rename from 29_explore/29_explore_boilerplate/yarn.lock rename to docs/29_explore/29_explore_boilerplate/yarn.lock diff --git a/30_conclusions/30_conclusions.md b/docs/30_conclusions/30_conclusions.md similarity index 100% rename from 30_conclusions/30_conclusions.md rename to docs/30_conclusions/30_conclusions.md diff --git a/30_conclusions/30_conclusions_boilerplate/.gitignore b/docs/30_conclusions/30_conclusions_boilerplate/.gitignore similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/.gitignore rename to docs/30_conclusions/30_conclusions_boilerplate/.gitignore diff --git a/30_conclusions/30_conclusions_boilerplate/README.md b/docs/30_conclusions/30_conclusions_boilerplate/README.md similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/README.md rename to docs/30_conclusions/30_conclusions_boilerplate/README.md diff --git a/30_conclusions/30_conclusions_boilerplate/package.json b/docs/30_conclusions/30_conclusions_boilerplate/package.json similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/package.json rename to docs/30_conclusions/30_conclusions_boilerplate/package.json diff --git a/30_conclusions/30_conclusions_boilerplate/public/index.html b/docs/30_conclusions/30_conclusions_boilerplate/public/index.html similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/public/index.html rename to docs/30_conclusions/30_conclusions_boilerplate/public/index.html diff --git a/30_conclusions/30_conclusions_boilerplate/src/data/countries.js b/docs/30_conclusions/30_conclusions_boilerplate/src/data/countries.js similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/data/countries.js rename to docs/30_conclusions/30_conclusions_boilerplate/src/data/countries.js diff --git a/30_conclusions/30_conclusions_boilerplate/src/data/ten_most_highest_populations.js b/docs/30_conclusions/30_conclusions_boilerplate/src/data/ten_most_highest_populations.js similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/data/ten_most_highest_populations.js rename to docs/30_conclusions/30_conclusions_boilerplate/src/data/ten_most_highest_populations.js diff --git a/30_conclusions/30_conclusions_boilerplate/src/images/asabeneh.jpg b/docs/30_conclusions/30_conclusions_boilerplate/src/images/asabeneh.jpg similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/images/asabeneh.jpg rename to docs/30_conclusions/30_conclusions_boilerplate/src/images/asabeneh.jpg diff --git a/30_conclusions/30_conclusions_boilerplate/src/images/css_logo.png b/docs/30_conclusions/30_conclusions_boilerplate/src/images/css_logo.png similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/images/css_logo.png rename to docs/30_conclusions/30_conclusions_boilerplate/src/images/css_logo.png diff --git a/30_conclusions/30_conclusions_boilerplate/src/images/html_logo.png b/docs/30_conclusions/30_conclusions_boilerplate/src/images/html_logo.png similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/images/html_logo.png rename to docs/30_conclusions/30_conclusions_boilerplate/src/images/html_logo.png diff --git a/30_conclusions/30_conclusions_boilerplate/src/images/js_logo.png b/docs/30_conclusions/30_conclusions_boilerplate/src/images/js_logo.png similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/images/js_logo.png rename to docs/30_conclusions/30_conclusions_boilerplate/src/images/js_logo.png diff --git a/30_conclusions/30_conclusions_boilerplate/src/images/react_logo.png b/docs/30_conclusions/30_conclusions_boilerplate/src/images/react_logo.png similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/images/react_logo.png rename to docs/30_conclusions/30_conclusions_boilerplate/src/images/react_logo.png diff --git a/30_conclusions/30_conclusions_boilerplate/src/index.js b/docs/30_conclusions/30_conclusions_boilerplate/src/index.js similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/index.js rename to docs/30_conclusions/30_conclusions_boilerplate/src/index.js diff --git a/30_conclusions/30_conclusions_boilerplate/src/index.scss b/docs/30_conclusions/30_conclusions_boilerplate/src/index.scss similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/index.scss rename to docs/30_conclusions/30_conclusions_boilerplate/src/index.scss diff --git a/30_conclusions/30_conclusions_boilerplate/src/useFetch.js b/docs/30_conclusions/30_conclusions_boilerplate/src/useFetch.js similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/src/useFetch.js rename to docs/30_conclusions/30_conclusions_boilerplate/src/useFetch.js diff --git a/30_conclusions/30_conclusions_boilerplate/yarn.lock b/docs/30_conclusions/30_conclusions_boilerplate/yarn.lock similarity index 100% rename from 30_conclusions/30_conclusions_boilerplate/yarn.lock rename to docs/30_conclusions/30_conclusions_boilerplate/yarn.lock diff --git a/images/08_day_changing_background_exercise.gif b/docs/images/08_day_changing_background_exercise.gif similarity index 100% rename from images/08_day_changing_background_exercise.gif rename to docs/images/08_day_changing_background_exercise.gif diff --git a/images/08_day_select_country_exercise.gif b/docs/images/08_day_select_country_exercise.gif similarity index 100% rename from images/08_day_select_country_exercise.gif rename to docs/images/08_day_select_country_exercise.gif diff --git a/images/123456.PNG b/docs/images/123456.PNG similarity index 100% rename from images/123456.PNG rename to docs/images/123456.PNG diff --git a/images/30_days_of_react.jpg b/docs/images/30_days_of_react.jpg similarity index 100% rename from images/30_days_of_react.jpg rename to docs/images/30_days_of_react.jpg diff --git a/images/30_days_of_react_banner_day_1.jpg b/docs/images/30_days_of_react_banner_day_1.jpg similarity index 100% rename from images/30_days_of_react_banner_day_1.jpg rename to docs/images/30_days_of_react_banner_day_1.jpg diff --git a/images/30_days_of_react_banner_day_10.jpg b/docs/images/30_days_of_react_banner_day_10.jpg similarity index 100% rename from images/30_days_of_react_banner_day_10.jpg rename to docs/images/30_days_of_react_banner_day_10.jpg diff --git a/images/30_days_of_react_banner_day_11.jpg b/docs/images/30_days_of_react_banner_day_11.jpg similarity index 100% rename from images/30_days_of_react_banner_day_11.jpg rename to docs/images/30_days_of_react_banner_day_11.jpg diff --git a/images/30_days_of_react_banner_day_12.jpg b/docs/images/30_days_of_react_banner_day_12.jpg similarity index 100% rename from images/30_days_of_react_banner_day_12.jpg rename to docs/images/30_days_of_react_banner_day_12.jpg diff --git a/images/30_days_of_react_banner_day_13.jpg b/docs/images/30_days_of_react_banner_day_13.jpg similarity index 100% rename from images/30_days_of_react_banner_day_13.jpg rename to docs/images/30_days_of_react_banner_day_13.jpg diff --git a/images/30_days_of_react_banner_day_14.jpg b/docs/images/30_days_of_react_banner_day_14.jpg similarity index 100% rename from images/30_days_of_react_banner_day_14.jpg rename to docs/images/30_days_of_react_banner_day_14.jpg diff --git a/images/30_days_of_react_banner_day_15.jpg b/docs/images/30_days_of_react_banner_day_15.jpg similarity index 100% rename from images/30_days_of_react_banner_day_15.jpg rename to docs/images/30_days_of_react_banner_day_15.jpg diff --git a/images/30_days_of_react_banner_day_16.jpg b/docs/images/30_days_of_react_banner_day_16.jpg similarity index 100% rename from images/30_days_of_react_banner_day_16.jpg rename to docs/images/30_days_of_react_banner_day_16.jpg diff --git a/images/30_days_of_react_banner_day_17.jpg b/docs/images/30_days_of_react_banner_day_17.jpg similarity index 100% rename from images/30_days_of_react_banner_day_17.jpg rename to docs/images/30_days_of_react_banner_day_17.jpg diff --git a/images/30_days_of_react_banner_day_18.jpg b/docs/images/30_days_of_react_banner_day_18.jpg similarity index 100% rename from images/30_days_of_react_banner_day_18.jpg rename to docs/images/30_days_of_react_banner_day_18.jpg diff --git a/images/30_days_of_react_banner_day_19.jpg b/docs/images/30_days_of_react_banner_day_19.jpg similarity index 100% rename from images/30_days_of_react_banner_day_19.jpg rename to docs/images/30_days_of_react_banner_day_19.jpg diff --git a/images/30_days_of_react_banner_day_2.jpg b/docs/images/30_days_of_react_banner_day_2.jpg similarity index 100% rename from images/30_days_of_react_banner_day_2.jpg rename to docs/images/30_days_of_react_banner_day_2.jpg diff --git a/images/30_days_of_react_banner_day_20.jpg b/docs/images/30_days_of_react_banner_day_20.jpg similarity index 100% rename from images/30_days_of_react_banner_day_20.jpg rename to docs/images/30_days_of_react_banner_day_20.jpg diff --git a/images/30_days_of_react_banner_day_21.jpg b/docs/images/30_days_of_react_banner_day_21.jpg similarity index 100% rename from images/30_days_of_react_banner_day_21.jpg rename to docs/images/30_days_of_react_banner_day_21.jpg diff --git a/images/30_days_of_react_banner_day_22.jpg b/docs/images/30_days_of_react_banner_day_22.jpg similarity index 100% rename from images/30_days_of_react_banner_day_22.jpg rename to docs/images/30_days_of_react_banner_day_22.jpg diff --git a/images/30_days_of_react_banner_day_23.jpg b/docs/images/30_days_of_react_banner_day_23.jpg similarity index 100% rename from images/30_days_of_react_banner_day_23.jpg rename to docs/images/30_days_of_react_banner_day_23.jpg diff --git a/images/30_days_of_react_banner_day_24.jpg b/docs/images/30_days_of_react_banner_day_24.jpg similarity index 100% rename from images/30_days_of_react_banner_day_24.jpg rename to docs/images/30_days_of_react_banner_day_24.jpg diff --git a/images/30_days_of_react_banner_day_25.jpg b/docs/images/30_days_of_react_banner_day_25.jpg similarity index 100% rename from images/30_days_of_react_banner_day_25.jpg rename to docs/images/30_days_of_react_banner_day_25.jpg diff --git a/images/30_days_of_react_banner_day_26.jpg b/docs/images/30_days_of_react_banner_day_26.jpg similarity index 100% rename from images/30_days_of_react_banner_day_26.jpg rename to docs/images/30_days_of_react_banner_day_26.jpg diff --git a/images/30_days_of_react_banner_day_27.jpg b/docs/images/30_days_of_react_banner_day_27.jpg similarity index 100% rename from images/30_days_of_react_banner_day_27.jpg rename to docs/images/30_days_of_react_banner_day_27.jpg diff --git a/images/30_days_of_react_banner_day_28.jpg b/docs/images/30_days_of_react_banner_day_28.jpg similarity index 100% rename from images/30_days_of_react_banner_day_28.jpg rename to docs/images/30_days_of_react_banner_day_28.jpg diff --git a/images/30_days_of_react_banner_day_29.jpg b/docs/images/30_days_of_react_banner_day_29.jpg similarity index 100% rename from images/30_days_of_react_banner_day_29.jpg rename to docs/images/30_days_of_react_banner_day_29.jpg diff --git a/images/30_days_of_react_banner_day_3.jpg b/docs/images/30_days_of_react_banner_day_3.jpg similarity index 100% rename from images/30_days_of_react_banner_day_3.jpg rename to docs/images/30_days_of_react_banner_day_3.jpg diff --git a/images/30_days_of_react_banner_day_30.jpg b/docs/images/30_days_of_react_banner_day_30.jpg similarity index 100% rename from images/30_days_of_react_banner_day_30.jpg rename to docs/images/30_days_of_react_banner_day_30.jpg diff --git a/images/30_days_of_react_banner_day_4.jpg b/docs/images/30_days_of_react_banner_day_4.jpg similarity index 100% rename from images/30_days_of_react_banner_day_4.jpg rename to docs/images/30_days_of_react_banner_day_4.jpg diff --git a/images/30_days_of_react_banner_day_5.jpg b/docs/images/30_days_of_react_banner_day_5.jpg similarity index 100% rename from images/30_days_of_react_banner_day_5.jpg rename to docs/images/30_days_of_react_banner_day_5.jpg diff --git a/images/30_days_of_react_banner_day_6.jpg b/docs/images/30_days_of_react_banner_day_6.jpg similarity index 100% rename from images/30_days_of_react_banner_day_6.jpg rename to docs/images/30_days_of_react_banner_day_6.jpg diff --git a/images/30_days_of_react_banner_day_7.jpg b/docs/images/30_days_of_react_banner_day_7.jpg similarity index 100% rename from images/30_days_of_react_banner_day_7.jpg rename to docs/images/30_days_of_react_banner_day_7.jpg diff --git a/images/30_days_of_react_banner_day_8.jpg b/docs/images/30_days_of_react_banner_day_8.jpg similarity index 100% rename from images/30_days_of_react_banner_day_8.jpg rename to docs/images/30_days_of_react_banner_day_8.jpg diff --git a/images/30_days_of_react_banner_day_9.jpg b/docs/images/30_days_of_react_banner_day_9.jpg similarity index 100% rename from images/30_days_of_react_banner_day_9.jpg rename to docs/images/30_days_of_react_banner_day_9.jpg diff --git a/images/adding_project_to_vscode.png b/docs/images/adding_project_to_vscode.png similarity index 100% rename from images/adding_project_to_vscode.png rename to docs/images/adding_project_to_vscode.png diff --git a/images/all_jsx_final.png b/docs/images/all_jsx_final.png similarity index 100% rename from images/all_jsx_final.png rename to docs/images/all_jsx_final.png diff --git a/images/arithmetic copy.png b/docs/images/arithmetic copy.png similarity index 100% rename from images/arithmetic copy.png rename to docs/images/arithmetic copy.png diff --git a/images/arithmetic.png b/docs/images/arithmetic.png similarity index 100% rename from images/arithmetic.png rename to docs/images/arithmetic.png diff --git a/images/array_index copy.png b/docs/images/array_index copy.png similarity index 100% rename from images/array_index copy.png rename to docs/images/array_index copy.png diff --git a/images/array_index.png b/docs/images/array_index.png similarity index 100% rename from images/array_index.png rename to docs/images/array_index.png diff --git a/images/assignment_operators.png b/docs/images/assignment_operators.png similarity index 100% rename from images/assignment_operators.png rename to docs/images/assignment_operators.png diff --git a/images/average_cat_weight_and_age.png b/docs/images/average_cat_weight_and_age.png similarity index 100% rename from images/average_cat_weight_and_age.png rename to docs/images/average_cat_weight_and_age.png diff --git a/images/become_patreon.png b/docs/images/become_patreon.png similarity index 100% rename from images/become_patreon.png rename to docs/images/become_patreon.png diff --git a/images/className_warning.png b/docs/images/className_warning.png similarity index 100% rename from images/className_warning.png rename to docs/images/className_warning.png diff --git a/images/cleaned_launched.png b/docs/images/cleaned_launched.png similarity index 100% rename from images/cleaned_launched.png rename to docs/images/cleaned_launched.png diff --git a/images/comparison_operators.png b/docs/images/comparison_operators.png similarity index 100% rename from images/comparison_operators.png rename to docs/images/comparison_operators.png diff --git a/images/components.png b/docs/images/components.png similarity index 100% rename from images/components.png rename to docs/images/components.png diff --git a/images/components_example.png b/docs/images/components_example.png similarity index 100% rename from images/components_example.png rename to docs/images/components_example.png diff --git a/images/console_log_multipl_arguments.png b/docs/images/console_log_multipl_arguments.png similarity index 100% rename from images/console_log_multipl_arguments.png rename to docs/images/console_log_multipl_arguments.png diff --git a/images/create-react-app-first-release_jul-22-2016.png b/docs/images/create-react-app-first-release_jul-22-2016.png similarity index 100% rename from images/create-react-app-first-release_jul-22-2016.png rename to docs/images/create-react-app-first-release_jul-22-2016.png diff --git a/images/create_react_app_file_cleaned.png b/docs/images/create_react_app_file_cleaned.png similarity index 100% rename from images/create_react_app_file_cleaned.png rename to docs/images/create_react_app_file_cleaned.png diff --git a/images/create_react_app_files.png b/docs/images/create_react_app_files.png similarity index 100% rename from images/create_react_app_files.png rename to docs/images/create_react_app_files.png diff --git a/images/date_time_object.png b/docs/images/date_time_object.png similarity index 100% rename from images/date_time_object.png rename to docs/images/date_time_object.png diff --git a/images/day_6_hexadecimal_colors_exercise.png b/docs/images/day_6_hexadecimal_colors_exercise.png similarity index 100% rename from images/day_6_hexadecimal_colors_exercise.png rename to docs/images/day_6_hexadecimal_colors_exercise.png diff --git a/images/day_6_number_generater_exercise.png b/docs/images/day_6_number_generater_exercise.png similarity index 100% rename from images/day_6_number_generater_exercise.png rename to docs/images/day_6_number_generater_exercise.png diff --git a/images/day_6_ten_highest_populations_exercise.png b/docs/images/day_6_ten_highest_populations_exercise.png similarity index 100% rename from images/day_6_ten_highest_populations_exercise.png rename to docs/images/day_6_ten_highest_populations_exercise.png diff --git a/images/download_node.png b/docs/images/download_node.png similarity index 100% rename from images/download_node.png rename to docs/images/download_node.png diff --git a/images/dynamic_data.png b/docs/images/dynamic_data.png similarity index 100% rename from images/dynamic_data.png rename to docs/images/dynamic_data.png diff --git a/images/first_react_app.png b/docs/images/first_react_app.png similarity index 100% rename from images/first_react_app.png rename to docs/images/first_react_app.png diff --git a/images/frontend_technologies.png b/docs/images/frontend_technologies.png similarity index 100% rename from images/frontend_technologies.png rename to docs/images/frontend_technologies.png diff --git a/images/google_chrome.png b/docs/images/google_chrome.png similarity index 100% rename from images/google_chrome.png rename to docs/images/google_chrome.png diff --git a/images/hexadecimal_color_exercise.png b/docs/images/hexadecimal_color_exercise.png similarity index 100% rename from images/hexadecimal_color_exercise.png rename to docs/images/hexadecimal_color_exercise.png diff --git a/images/inecting_data_to_jsx_create_react_app.png b/docs/images/inecting_data_to_jsx_create_react_app.png similarity index 100% rename from images/inecting_data_to_jsx_create_react_app.png rename to docs/images/inecting_data_to_jsx_create_react_app.png diff --git a/images/install_node.png b/docs/images/install_node.png similarity index 100% rename from images/install_node.png rename to docs/images/install_node.png diff --git a/images/internal_style.png b/docs/images/internal_style.png similarity index 100% rename from images/internal_style.png rename to docs/images/internal_style.png diff --git a/images/js_code_on_chrome_console.png b/docs/images/js_code_on_chrome_console.png similarity index 100% rename from images/js_code_on_chrome_console.png rename to docs/images/js_code_on_chrome_console.png diff --git a/images/js_code_vscode.png b/docs/images/js_code_vscode.png similarity index 100% rename from images/js_code_vscode.png rename to docs/images/js_code_vscode.png diff --git a/images/js_internal_style_create_react_app.png b/docs/images/js_internal_style_create_react_app.png similarity index 100% rename from images/js_internal_style_create_react_app.png rename to docs/images/js_internal_style_create_react_app.png diff --git a/images/jsx_use_create_react_app.png b/docs/images/jsx_use_create_react_app.png similarity index 100% rename from images/jsx_use_create_react_app.png rename to docs/images/jsx_use_create_react_app.png diff --git a/images/launched_on_new_tab.png b/docs/images/launched_on_new_tab.png similarity index 100% rename from images/launched_on_new_tab.png rename to docs/images/launched_on_new_tab.png diff --git a/images/local_storage.png b/docs/images/local_storage.png similarity index 100% rename from images/local_storage.png rename to docs/images/local_storage.png diff --git a/images/map_list_id.png b/docs/images/map_list_id.png similarity index 100% rename from images/map_list_id.png rename to docs/images/map_list_id.png diff --git a/images/multiple_script.png b/docs/images/multiple_script.png similarity index 100% rename from images/multiple_script.png rename to docs/images/multiple_script.png diff --git a/images/news_letter_design.png b/docs/images/news_letter_design.png similarity index 100% rename from images/news_letter_design.png rename to docs/images/news_letter_design.png diff --git a/images/npm_package_day_15.png b/docs/images/npm_package_day_15.png similarity index 100% rename from images/npm_package_day_15.png rename to docs/images/npm_package_day_15.png diff --git a/images/npm_registry.png b/docs/images/npm_registry.png similarity index 100% rename from images/npm_registry.png rename to docs/images/npm_registry.png diff --git a/images/opening_chrome_console_shortcut.png b/docs/images/opening_chrome_console_shortcut.png similarity index 100% rename from images/opening_chrome_console_shortcut.png rename to docs/images/opening_chrome_console_shortcut.png diff --git a/images/opening_developer_tool.png b/docs/images/opening_developer_tool.png similarity index 100% rename from images/opening_developer_tool.png rename to docs/images/opening_developer_tool.png diff --git a/images/opening_project_on_vscode.png b/docs/images/opening_project_on_vscode.png similarity index 100% rename from images/opening_project_on_vscode.png rename to docs/images/opening_project_on_vscode.png diff --git a/images/paypal_lg.png b/docs/images/paypal_lg.png similarity index 100% rename from images/paypal_lg.png rename to docs/images/paypal_lg.png diff --git a/images/raising_syntax_error.png b/docs/images/raising_syntax_error.png similarity index 100% rename from images/raising_syntax_error.png rename to docs/images/raising_syntax_error.png diff --git a/images/react_app_starting.png b/docs/images/react_app_starting.png similarity index 100% rename from images/react_app_starting.png rename to docs/images/react_app_starting.png diff --git a/images/react_boilerplate.png b/docs/images/react_boilerplate.png similarity index 100% rename from images/react_boilerplate.png rename to docs/images/react_boilerplate.png diff --git a/images/react_bolier_plate_cleaned.png b/docs/images/react_bolier_plate_cleaned.png similarity index 100% rename from images/react_bolier_plate_cleaned.png rename to docs/images/react_bolier_plate_cleaned.png diff --git a/images/react_event_on_mouse_enter.gif b/docs/images/react_event_on_mouse_enter.gif similarity index 100% rename from images/react_event_on_mouse_enter.gif rename to docs/images/react_event_on_mouse_enter.gif diff --git a/images/react_for_everyone.png b/docs/images/react_for_everyone.png similarity index 100% rename from images/react_for_everyone.png rename to docs/images/react_for_everyone.png diff --git a/images/react_logo.gif b/docs/images/react_logo.gif similarity index 100% rename from images/react_logo.gif rename to docs/images/react_logo.gif diff --git a/images/react_logo.png b/docs/images/react_logo.png similarity index 100% rename from images/react_logo.png rename to docs/images/react_logo.png diff --git a/images/react_popularity.png b/docs/images/react_popularity.png similarity index 100% rename from images/react_popularity.png rename to docs/images/react_popularity.png diff --git a/images/react_repo_1_oct_2020.png b/docs/images/react_repo_1_oct_2020.png similarity index 100% rename from images/react_repo_1_oct_2020.png rename to docs/images/react_repo_1_oct_2020.png diff --git a/images/regex.png b/docs/images/regex.png similarity index 100% rename from images/regex.png rename to docs/images/regex.png diff --git a/images/removing_unique_id_warning.png b/docs/images/removing_unique_id_warning.png similarity index 100% rename from images/removing_unique_id_warning.png rename to docs/images/removing_unique_id_warning.png diff --git a/images/rendering_componnets.png b/docs/images/rendering_componnets.png similarity index 100% rename from images/rendering_componnets.png rename to docs/images/rendering_componnets.png diff --git a/images/rendering_image.png b/docs/images/rendering_image.png similarity index 100% rename from images/rendering_image.png rename to docs/images/rendering_image.png diff --git a/images/rendering_jsx.png b/docs/images/rendering_jsx.png similarity index 100% rename from images/rendering_jsx.png rename to docs/images/rendering_jsx.png diff --git a/images/rendering_list.png b/docs/images/rendering_list.png similarity index 100% rename from images/rendering_list.png rename to docs/images/rendering_list.png diff --git a/images/rendering_more_jsx_content_.png b/docs/images/rendering_more_jsx_content_.png similarity index 100% rename from images/rendering_more_jsx_content_.png rename to docs/images/rendering_more_jsx_content_.png diff --git a/images/rendering_more_jsx_content_create_react_app.png b/docs/images/rendering_more_jsx_content_create_react_app.png similarity index 100% rename from images/rendering_more_jsx_content_create_react_app.png rename to docs/images/rendering_more_jsx_content_create_react_app.png diff --git a/images/rendering_multiple_jsx_elements.png b/docs/images/rendering_multiple_jsx_elements.png similarity index 100% rename from images/rendering_multiple_jsx_elements.png rename to docs/images/rendering_multiple_jsx_elements.png diff --git a/images/rendering_multiple_jsx_elements_create-react_app.png b/docs/images/rendering_multiple_jsx_elements_create-react_app.png similarity index 100% rename from images/rendering_multiple_jsx_elements_create-react_app.png rename to docs/images/rendering_multiple_jsx_elements_create-react_app.png diff --git a/images/running_script.png b/docs/images/running_script.png similarity index 100% rename from images/running_script.png rename to docs/images/running_script.png diff --git a/images/scripts_on_vscode.png b/docs/images/scripts_on_vscode.png similarity index 100% rename from images/scripts_on_vscode.png rename to docs/images/scripts_on_vscode.png diff --git a/images/string_indexes.png b/docs/images/string_indexes.png similarity index 100% rename from images/string_indexes.png rename to docs/images/string_indexes.png diff --git a/images/styling_all_jsx_elements.png b/docs/images/styling_all_jsx_elements.png similarity index 100% rename from images/styling_all_jsx_elements.png rename to docs/images/styling_all_jsx_elements.png diff --git a/images/styling_jsx_element.png b/docs/images/styling_jsx_element.png similarity index 100% rename from images/styling_jsx_element.png rename to docs/images/styling_jsx_element.png diff --git a/images/styling_jsx_inline_create_react_app.png b/docs/images/styling_jsx_inline_create_react_app.png similarity index 100% rename from images/styling_jsx_inline_create_react_app.png rename to docs/images/styling_jsx_inline_create_react_app.png diff --git a/images/user_card_design_jsx.png b/docs/images/user_card_design_jsx.png similarity index 100% rename from images/user_card_design_jsx.png rename to docs/images/user_card_design_jsx.png diff --git a/images/vsc_live_server.png b/docs/images/vsc_live_server.png similarity index 100% rename from images/vsc_live_server.png rename to docs/images/vsc_live_server.png diff --git a/images/vscode.png b/docs/images/vscode.png similarity index 100% rename from images/vscode.png rename to docs/images/vscode.png diff --git a/images/vscode_ui.png b/docs/images/vscode_ui.png similarity index 100% rename from images/vscode_ui.png rename to docs/images/vscode_ui.png diff --git a/images/vue_popularity.png b/docs/images/vue_popularity.png similarity index 100% rename from images/vue_popularity.png rename to docs/images/vue_popularity.png diff --git a/images/vue_repo_1_oct_2020.png b/docs/images/vue_repo_1_oct_2020.png similarity index 100% rename from images/vue_repo_1_oct_2020.png rename to docs/images/vue_repo_1_oct_2020.png diff --git a/images/web_storage.png b/docs/images/web_storage.png similarity index 100% rename from images/web_storage.png rename to docs/images/web_storage.png diff --git a/readMe.md b/docs/index.md similarity index 94% rename from readMe.md rename to docs/index.md index ab348b3..f20370a 100644 --- a/readMe.md +++ b/docs/index.md @@ -6,8 +6,7 @@

30 Days Of React

- Learn with Asabeneh by joining the upcoming [CODING BOOTCAMP](https://docs.google.com/forms/d/e/1FAIpQLSf0oNIYR9XU1DCctfl-pY36KbWse-SQX5aQaUgetqSinFYnmQ/viewform) - +Learn with Asabeneh by joining the upcoming [CODING BOOTCAMP](https://docs.google.com/forms/d/e/1FAIpQLSf0oNIYR9XU1DCctfl-pY36KbWse-SQX5aQaUgetqSinFYnmQ/viewform) @@ -61,7 +60,7 @@ 🧡🧡🧡 HAPPY CODING 🧡🧡🧡
-Support the author to create more educational materials
+Support the author to create more educational materials
Paypal Logo
@@ -107,7 +106,7 @@ If you are good at arrays, loops, functions, objects, functional programming, de Before you dive into this course, you may check the [review](https://t.me/thirtydaysofreact) of 30 Days Of React. -This challenge is easy to read, written in conversational English, engaging, motivating and at the same time, it is very demanding. You need to allocate much time to finish this challenge. If you are a visual learner, you may get the video lesson on Washera YouTube channel. Subscribe the channel, comment and ask questions on YouTube vides and be proactive, the author will eventually notice you. +This challenge is easy to read, written in conversational English, engaging, motivating and at the same time, it is very demanding. You need to allocate much time to finish this challenge. If you are a visual learner, you may get the video lesson on Washera YouTube channel. Subscribe the channel, comment and ask questions on YouTube vides and be proactive, the author will eventually notice you. The author likes to hear your opinion about the challenge, share your thoughts about the 30DaysOfJavaScript challenge. You can leave your testimonial on this [link](https://www.asabeneh.com/testimonials) @@ -268,7 +267,7 @@ Ctl+Shift+I To write our first JavaScript code, we used a built-in function **console.log()**. We passed an argument as input data, and the function displays the output. We passed 'Hello, World' as input data or argument in the console.log() function. ```js -console.log('Hello, World!') +console.log('Hello, World!'); ``` ##### Console.log with Multiple Arguments @@ -278,9 +277,9 @@ The **console.log()** function can take multiple parameters separated by comma. ![console log multiple arguments](./images/console_log_multipl_arguments.png) ```js -console.log('Hello', 'World', '!') -console.log('HAPPY', 'NEW', 'YEAR', 2020) -console.log('Welcome', 'to', 30, 'Days', 'Of', 'JavaScript') +console.log('Hello', 'World', '!'); +console.log('HAPPY', 'NEW', 'YEAR', 2020); +console.log('Welcome', 'to', 30, 'Days', 'Of', 'JavaScript'); ``` As you can see from the snippet code above, _console.log()_ can take multiple arguments. It is recommended to use as many console.log() prints to check what is happening in your code but don't keep all console.log() tests on your code forever. Make your life easy by keeping the browser console open. @@ -291,17 +290,17 @@ We add comments to our code. Comments are very important to make code more reada **Example: Single Line Comment** -// This is the first comment - // This is the second comment - // I am a single line comment +// This is the first comment +// This is the second comment +// I am a single line comment **Example: Multiline Comment** /\* -This is a multiline comment - Multiline comments can take multiple lines - JavaScript is the language of the web - \*/ +This is a multiline comment +Multiline comments can take multiple lines +JavaScript is the language of the web +\*/ ##### Syntax @@ -312,17 +311,17 @@ Programming languages are similar to human languages. English or many other lang I made a deliberate mistake. As a result, the console raises syntax errors. Actually, the syntax is very informative. It informs what type of mistake was made. By reading the error feedback guideline, we can correct the syntax and fix the problem. The process of identifying and removing errors from a program is called debugging. Let us fix the errors: ```js -console.log('Hello, World!') -console.log('Hello, World!') +console.log('Hello, World!'); +console.log('Hello, World!'); ``` So far, we saw how to display text using the _console.log()_. If we are printing text or string using _console.log()_, the text has to be inside the single quotes, double quotes, or a backtick quotes. **Example:** ```js -console.log('Hello, World!') -console.log('Hello, World!') -console.log(`Hello, World!`) +console.log('Hello, World!'); +console.log('Hello, World!'); +console.log(`Hello, World!`); ``` #### Arithmetics @@ -334,12 +333,12 @@ The console can directly take arguments without the **_console.log()_** function ![Arithmetic](images/arithmetic.png) ```js -console.log(2 + 3) // Addition -console.log(3 - 2) // Subtraction -console.log(2 * 3) // Multiplication -console.log(3 / 2) // Division -console.log(3 % 2) // Modulus - finding remainder -console.log(3 ** 2) // Exponentiation 3 ** 2 == 3 * 3 +console.log(2 + 3); // Addition +console.log(3 - 2); // Subtraction +console.log(2 * 3); // Multiplication +console.log(3 / 2); // Division +console.log(3 % 2); // Modulus - finding remainder +console.log(3 ** 2); // Exponentiation 3 ** 2 == 3 * 3 ``` ### Code Editor @@ -372,7 +371,7 @@ Open the Visual Studio Code by double-clicking its icon. When you open it, you w ![coding running](./images/launched_on_new_tab.png) -Congratulations! You have completed the setup you need to get started with React, but before we dive into React let's do a JavaScript refresher. If you are very comfortable with JavaScript you may skip day 1 JavaScript refresher. The JavaScript refresher section is vast and it may take more than one day. From my experience people usually get stuck in React because their JavaScript knowledge is very shallow therefore to fill that gap all the necessary JavaScript features which can be used in React are covered in the JavaScript refresher section. There are many exercises but you are not required to solve them. Click [here](../30-Days-Of-React/02_Day_Introduction_to_React/02_introduction_to_react.md) if you want skip JavaScript and jump directly into React. +Congratulations! You have completed the setup you need to get started with React, but before we dive into React let's do a JavaScript refresher. If you are very comfortable with JavaScript you may skip day 1 JavaScript refresher. The JavaScript refresher section is vast and it may take more than one day. From my experience people usually get stuck in React because their JavaScript knowledge is very shallow therefore to fill that gap all the necessary JavaScript features which can be used in React are covered in the JavaScript refresher section. There are many exercises but you are not required to solve them. Click [here](./02_Day_Introduction_to_React/02_introduction_to_react.md) if you want skip JavaScript and jump directly into React. 🎉 CONGRATULATIONS ! 🎉 diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..744c54c --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,60 @@ +site_name: 30 Days Of React +site_description: 30 Days of React challenge is a step by step guide to learn React in 30 days. These videos may help too +site_author: "Asabeneh Yetayeh" +repo_url: https://github.com/Asabeneh/30-Days-Of-React + +nav: + - Home: index.md + +theme: + name: material + palette: + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: red + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: indigo + toggle: + icon: material/brightness-4 + name: Switch to light mode + + features: + - navigation.instant + - navigation.top + - navigation.expand + - navigation.sections + - navigation.tracking + - navigation.search.highlight + - navigation.search.share + - navigation.search.suggest + + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.superfences + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + + + +# to run the server +# source .venv/bin/activate # ✅ required +# mkdocs serve + +# to automatically activate the virtual environment +# direnv allows you to automatically load and unload environment variables when you cd into a directory +# Install direnv once +# sudo apt install direnv + +# In your project: +# echo "source .venv/bin/activate" > .envrc +# direnv allow From d98b991102acf6af92d7aabc7ea2d404f77f915e Mon Sep 17 00:00:00 2001 From: frontend hashira Date: Fri, 23 May 2025 01:53:55 +0100 Subject: [PATCH 2/2] feat: add image - Added image.png to the repository. --- image.png | Bin 0 -> 524866 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 image.png diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..e757923c4a3744c3166a70fc613634388aed1027 GIT binary patch literal 524866 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 z zjjCO4yBScFULKHV5ck!f_Op+4I0Zt0uY{CLR#Ty;epB_ex}d8`v)QyK?4enmP9co8 z+?O>%V@@Ad@+f}44E6?CT{w@rZ23#(c4njxA_h-HEukco^Nn(9ZJbz~RPp2L=5=yf z@_POF_An~%N5KUy(m&TzU$-+kgPEM)?B}5Qeb{bnj zzJbAseKBfRg<5`N=+L;Cj;p|nFKZFheQ(IP` z<+PqGRtg4fTpVi;>~W2ozHaIc?Y%!UlI*Cb$pSs0)F&RwLej_OE;Ik>4mhJWhNl~U zdG?CFsxNaT@y8B&iKN(8cGHOE3sieGY;EP1V7F6&D3Mk7?J=P1eypftGjEVzI)u>j zxBA}`r_7e~7{Cq#^FYwWyX%9;CUmY`f0a5n${V!?rCGv6h2q^Z{|~{T{KV+NY##IZ zr=fp^q#llrblDusOrlN&l$vvZ(9AMWepm=}^NusP`bxWyoS9>GmKayLu~a?1sI-)F zT_xv@{$&&R3nLp>(pi8fIcXP$R`+MlgWERv+kqDcdB+|QdmI8{hEF1}PfTeMA zop=YiZJ1S?x05Xr@z&UiD_h$e;$SWMiK6Xg89bKN=k|IB88PIqRYKxy*83DIUtnWI z^wk}-JY?e>8H@b}@Zu}!BHlc6sdrrzYIZDrgvC83mzS%33&MIE8`aVJ&91Z5B;m2o zS3_>>^8d^~%(hz6*d1%J&#>LN3Vw%poXC_6x-)Nf$}&~ozFZ>}=`tRpU_Vt)T3c{^ zI-NoXllbHHG{plP7`w4^{u|l4Q&&d>{}0Yl9yrzaPbW$}mGWN^u49*>`?bGrrlwT$ zuYDX@9K`p1>8jyn#s=VJFAg)PViUH`93S!AO&eiqYz9eAEh{c5B1`yPqoQxh8L~J| zoHk@1pL`@TI}4fmfbS(l{Lx;b-=Q#Vc5yZ~KvjcRdD@K`Jt8PJ&aMVKS#YAU3S2e; z6ve6f`uOacs8vnHU*wc!Z-l(goxGu;L3Z^u#}VSen1-bx-D69fzD3`gs<>;^jHJ(} z^&sO7+5EqNsVYNu;w{Hwc~Ecd^t9a!{6!5jX#b7c%N0x*quu+`y5*$|8VAcL!ZRY# zxlpxPG(5Cf*mKL5+B(=Lq47{0^>^UIC|x_i^ZzJF;Ej z(id;R;zQ7nI`?|{9o1$rpRge3^~PS@II2cxUy*I-cM6uRFBMPRDxLV(!n7J|9CeXn zbaQLgT+n@nmd8M*uwG39EVcS!vNDB0oxn&dw8-XCpO;FWtX0s)UB5u6qPf`+se&jA zSd^oxFjtakK=xfngf+$&%25^w88Rad&3Ywkj!pOpl5I%SHj_2k7kvboJ{l@3<{o@o z(!JzYz^Tb&hmPn)Vx5XwfPstni>9!V?Xq~6dC^KaD2$s_na$#C#2FR+g9@5H`bszN z9V>Ck6oaFSJ4I;2is@X35~6|@CGWxRWPEgtvC{gRHUC8olVq-abt9%kX!i{f@Oz

`g*~iEgjj6F<_k4g9q9 zjOi{jv}Q0DZH($|k)Fe)y2CVcy*J-XPFm{xpfM}O@@U|PFgG&|-HLaJhhSc{_g{f9^CG7$E2a`q0rtpAWqn62TJ|9mwG9>ciY1;uOsK zg~yPr!%PtHq7DVyo90Y_-CG41cf*HS=O!PRw^l67K`$C}xv~r~;Yx%BaCVq2B^~U& z6QAX@k2Kt&!5@51$d1YDi@h?)56|kKy*#8&paE#Lo!jv<+Ea35XQmh4^^(D^uhO zr0#A{waJ(!Y+Jr{ALvwl!cqt z8&JIv393!O-SP>z{u_TdOuCMGKCpPft-|bv3drbwzdLdGAxK+l_U}2h|35?|5hj^H zL+nB$$9qq!)-nqkfJt9lKQP{%gr+i)8K!z(h*86%W5&%}GD_>srt>}@kFVmY2d^Oa zk@3R7l`AWM+M!Q^>a%X7T-=;ifpJ=-tVITAI@`97B6!(-CS(6_>vLub?41E)M}Gce zstU$NUMkH%eq;*zZtuDF7e%NiO{iWnJL=M&!02nUYmW;MVeJBn<+is$c~dth+T)@5 zj6+4v&C0`Fl2lMNiiNi4IHi~*JYOy=*yU0F2QS}^9RO#VLk$~w%a;kY~c8q*5T3}L`oZgFw^?}XgyMxV!2XPGsSVWS+g3o{SQ4S?tyl`{iK=8fBcfOb4nwAaSP&~ z&q=x1h5^^)ZEg8)(HW$3z%4*s>wKH>#f7x$@kjfQ}%z*Une}Knec9*4J>-g>^A_!&`WBooYl8I#*ZmC zP0KfU`h~(^-j-gfmRoj8fsE?nyo)QTR(aY%5x{~RiQ>+CrEbdo8dY-s|ylRO>H&frOg##8s*4Sc)cq& zBDTw%R?6n+<}tG-x$a3{%7zfiYjIjk;l6N7Qy$($era=K;(vUe&Nk0}tff%Br04tS zBYHN}IM3zXYgVC6UFv`GQHk;;OzN}GU|+$%u>RcM%MGc_s=%PlQPO0Gqd0C4S$_OB z85-eMTJ8J0`8IWgal6&-M|k-0IC0O^nDwN5?@uOlR$OHKvi6AhnB=--PWJ>>uDd4&Cu*ea9jbF3!+dTYhnChk z(X42h4|>i}KK?_XMSct`3@YCIq3*fjJHL*q)ZzW6@PzUxop;#Tow(|!=M^R-0rqs? zk>*b`&v0JUm{L}_nI)K%d8*)eaSg8A+8aI_W8pbdp=_h%#J#l^^w>RDKS9cmiA`)O z^BN|35Kmdx`%3u{m&1N&Ox!`=g!}Pz?&n+O()yF5HTbvt>dCIbnfr6GY6_Vilx(OR zG;QO@V~6d8W(oB)(dgjQa#xv`G)OEZl``j4QW( zsb_t1Bo$VE=OiRdL7Gz;S6XUqiS$Q=nf*@CG-(F0Wq-|XqHor*S4y9#ZwPM6ExCPc z6%p*N9@Z%5w+n#TeWHYyiWUj19Y`Ph9EBzKe5Z zR7M^`?dnWBjS}^Bbqm4R82S-$YVPCbT;}ckqp#W6R1Jq$fUWr|4(a2k znlla|#(vrh3jo*YQ26n#FNfE_HC-_vq=991%^-G^CK~&h%y~dUbiJQ&ntE`@_Jy_V zsPN5eXzA5yP> z&r}FJ&ARon zxZfA*7z~LX*?<1f!4$$4Q~=U+)LjxrWdsHd`B)2X@stmY3zro35N}`d{%!|>)rEKv4@n6<`3KU z9sI5H3~Kfp=zzCtmi>QC7`{zpL(FD2N|%D8*LvPXbd-@!$n?;^k_+y#KLJ z^2SCl1mot;c^53z8^8aD-=S=Nus;2?`_!=8nEp1yxceFi@U_|{3D>=b&usW9pT6{Y z8re{cm5bGk^x+<&tnO)h?~dvY9qnEi1~Ek3w$AuJuv4;Qy&Za5T_oe>krS|65paK5 zwh;}+UcaNJKfOs{i!-*lVC?+TZ+lHwXNQx0_?HfJY!G7_q>}e0!7;feC6{<${hBd8 zbuENZOX?I1urKX@+%`eC8THQLx5%D^3(-k(?u##`*9UPDqSg#rYRz z!H-mD79j{M1V3JYSE`45kJFdM75;>PhtIT>44IicNp|)q=^R)6=#C<+oYh`Ke8sLt zZvFMw-@DFNcEb?;x6U(;%|tl>U=dfMiPQla7F|hJSzT?8!_z0kkweNDhg2Q!_RTLeYm~hCvJ#7FhIps%h%GP`7bA z$uvNjd$dGvHUoh+b{FQSmO`mXL~z!8cMR-sJhC0LYJ2YHWzIOkpEBrucrJa8jEkNu z9=5)@IC>!sYAZRGTxoB#dRA94d0Vby%_1}=X6yggiGAOS=ZleDyu%t?^t^N`3_RV+ zGHTy>m?P%r=cZK8t_gFgr532fdRo3CG-#vg90y}Bj3_TP+$%-8$I;uSMX$j z#%?Oq4te52Ij;Cy@w!~cp2ih7y%1&`itw&3k`v|Gcs0$LtQ!hTHib5mX~*40r?KJc zL2nXyh$vHeWV#+GU{A^Qa%}fkF;o?3{&r7d5d196M!z2IzM&(8 zmx~nuZ({|(F5mqgZjEJq5sS-CP9(`-I%~!hFw&|iX}`1YZ)`ihs@uI`&j~L0x*qf{ z!EnAObl#{dY(8DJ&5NpBfAC~6^VP)s+5PHge$Wo>&A)^8Xw3yXZce)Q^=bPo?stFb z)jsBhR>_<)-cs1z$r+Jx{GQvWD9h{9=Wl)~$Gz5kib>-Bxs4BX3^>y=zc;Ksys)Rp zcc1>N6v*)q(Z9?r7`^u;uC|kS-U9q+2)KmhJYG1UZu&hE)jMxw>>O zY(0;mm5hv|?=v^O$C(pJEZ;_P=@@MpDU>~mel!zHIcivurjd@l*OFGo+pe^0621$j z&DD4<0*N*IroRmb2JqE(NRs4bNc0RxnPP2!!_-Jbpm45{l-Wl}m@}T>_{eMIPn=i< zg_82ho(8ucs3FvL9WR(}4BkoJ0lrR}So z%;OAQX#Wfinrs5bCT_b@LZ_d50=ZiY3{&Z=Os|ZiPKt>~$d#NpWjad@17wlb45HO$ zGJ}YAT^b431p(f;TaTf5noM!u%Av^w8Ywf%?}DoA27aD0d5;|=dCGUg?9{aWe)0aU z7P3_~B(B`(;?F3-RQ=Cld8>B+6P##cUkhkuz2M))Pkl)^(R=TEYBppYP!(w_} zg({xnB!vw5)H-K3Mu~+un_T%8QEYtMi-*}1|CyNz_4)f-SZ&Z1E1f>)|8;Ekl+x$d z1sObNvOPYY`+EoyG&9j6FoWn4esI<>=vR`qCHYEvg`I3TielDlkLa%a@xVz&=iPHQG`v|O^%rN0eoELsH<%Ty169b$h`XfTfc zAmH(f`{tVYt=ZA%5m%(dL&|G&R?LpC@kTh1`(G?mWFDNopRyNVk{WRsxGTqo0kQ1V z_BbF+8mvhjl`Y7e2Gu27%Zy%)@@pQSnk?3YFa`vA)cm(e^Dgr{+o9@_IO5NKys_$j zfty}8 zlJrMSiwk7@UU)WBQ3TR9KOEFvukQEj-zFnHwEFZQ+0pj7ANsmt2$!>ZyAgWHsS$)O z12*S))J?x3+HfPFq}TE+d;nk3kuQvZ3>Q7$pwI(aY%1e0$9@Xc83EmpN;Sl=FhJ^4p(qH*xRez<+oGZ?8fTsU7 z@G~+pDEBJlu0O-X;)wSY{1aR-HX1=gpxnllav8uq_SFVrgFUam@f{uF%^LQmJ{k^} z)r2Swl<-y^gWw}<+YFVBU)z~{*#kdso-6My>2RAqw|UXp{qlhV-%PU#+{;BROI`RG zdjA4>^DpFfo_uX|()<3jPk9=R@4`_4=#utfM|zB5zoQv?{tsRAFPJa~?Lge#Um?HQ zMgjF9)h4(Jw=6Ng;_UgCbQG}`<1-RKQCB%sj<2s{Bt`#w-&~-Q(ENapC)glwdL2Y; z$|pGp)EtU%HD)Ih3_OV3G&TRV8}|}|zoP-`9*9x&k%S+K^&kkvSTp%9L2Kvy5q}W@ z;d3PxLUV`YArSl<5vvJhdgBwM`4&;5q)g=VEqgH@VP^Zo^9Pj0ph-@Na$8ZpUe2xv z_dM?^^)H_B2zZ$JtPuUPS1fL1aqOG)%K=SNjW${S)7w_7%P)ksa0y0U$r7xQ4Yp2n z^8;FY|7Bgh^wNJ3jvahIA8ZmJ<#y+lWyuHTp*f+MFeNPsAwMD|&qg5cG7qaueM@pM z4Of+jElbn-&b=gZOEI^h)69y`tZz{(bfocIex=?}bTmEYvsI)i z+B0si8hp$tdAe+CuouE79ejHKFJwGBltboCK+CzUeu+C;%7-@eWHb@(B!d=1VNU2k zZ{u}44|<%c=(Qvtp|g2fKVIQ1(~XS^b&PkPRxYDi+9G3(JFwY&`Mr^Z?|H){Rz@|+0xdisjF3Q3tLf2 zJW5>yW?g)BLSr}%uQ+2rzM&SL9sP6+iN4sthESbxlUmU++ju_ZY#HgI&S0g#BrcF> z)F?^+pO(*0WM;O4cHfOcWAE7>|M-H)O>-G~sksdtH@y>tY_(v_NDKxtTB;0Q)|5P1wKB)!s)FfdC~+IEwsxV*t^fHvGHCK@;7lKMdXWA8eG;rhSI;Q6 zVPn`vVMT>EpPzmKw@n7^zgoA)-vs#mVWAG-@Cur4TB5f{V*Vix%*P9kgw0(#i;YTe zQZ%@nUKkkF*H+WjI0vro6&rvqM9!Gb$i>q~oB+0hJsdy?;qatTdXK1P0exX{SW8u- zI;sk0?Zo8P?;hs&jQ$?r?!;u5c^e(FC*#VB?~g9NjX63nn;`4h5Z4pqD#d;-bf7o$ES-jMU zIf0!ES8|erm)g*0khmf*C)X$}X=hhKh$iEA{DojMPpRIUVEH`zVlZ{;7BL*6NS1aWpRy@SQ7~NGn|g#_-EcHl7$rf?0aox}N&;GCVWx zlC0~93n8z)z#o6^oD@%QScdToz>Hj^$h5j_F8BCQ`mCU2g`{$fs1AIraj+A;DQECDK~5qGe&Om3s++?4{+BlY&a4daSk7P&(s$e_m}ip z^S@??yuO{Rd4ZO>i&xI*=rH#@bFCpX zrUh-rL~Qe9g+E?xpB6_>V~O)j-%UmgN35O3rL*MKjhYCrQ~$QS|L{yhsmawQJeX@4e?}Lv=GhlEMitnm4CMzX`eZwX_5VbH#Ms=mKFuU(Y4` zn;6}kUFBTVt5B`qv8^LLKL7Ox4E}Wt+@)@|?Z~gIH@l)r9K8F90rYb7I+?zPe&dO{ z))yQVNL0_i{jC3>o@c0m(XxHlh88suQ1`BIdLp|LTSAaHIIw4 zN*DOQNoYO#RM&=yJrYE5+uB`#L1HMzLfmgP{8mRt*HvG%QSX(oP!@l!zSY&1g_U$M zZU{eF2>-PJns>FEf_;JCJjMLs>MydLx0m^qhHqr#4XR^mF5#j2;VYMS>8iyxLHdp^MQD(5r$dg=~VItL$o9!*|4FigSaoMn~A|SJxTv z;})o@`b&>bvf$@_oM9pcWwu-bou22he+UeRXbe-lvO=#zN}|>6rptKfp!5Kq_9rSfQ`XG6Y2Zji}_+gR;iekL@}IB zHsooFu5#jPQkUucs9uw;&kGOf8`|{o5G}-Y1{3H3f6Q3U@~J{j^F7DFA1eCJC#l2% z>ZgNBCU2%kfc|gopZ69!nac_*6 z_m(YI1v|9wOTgEAV-ioObREMEdN8aKn04iF_^0?;X4kn-Zf`T#5G)Wf=D63;8Psni ziem8et9&<-hg>Hw+mFORwg1)1+~Sk)X<08nL=Q*Q7J;L!cZ2E%5M_Ij9VWtCSVDN~ z#jYR9B17|)&;|#6(Z_oJ^}DFKZT6=~3qRU3TI1NQ%N&1SQlVm!ADrytX~)^oSH(qmZOoGO3a3k`g1C*V2Z|!%>P>qON+BN@$mSe1YrT1B zM#LmaRID^-GZh|_2?%~P1Yt}_36P5|ctMly2WL+uOYex9AyW!h#F9c8hHQJMRZ23Xb&=$ z?LOnO7(`N6rftdNbYFRewBP(~J&8=KH+S&EHPcm9*3VzU!N>KhH8Xmms|sOemkWNc zE-@!kJ@_|Lsi`?OY2@-@MKxmi%MOuItyu!)X_eS4zuGAGW?rq1;?q-{b`8cwAFXqB zl@L19_fcx?NOCVL{Y%(oTt)dmFtVoCQCE$7f&RWENk!w}+Wcwmj#h%cVuEgma;Zl>U1MYYeU$ev3ZY*x zzz^-XMj@k}vfe2zY;7_SqB0(y0X-{irnwehN&t^=x^FizjWB&pyUn+=u!Md4ZU*7d z;u=P=?krCY*=iX(0Z+boo{tC!AIB80?VHrS+#}w;k-m75esKE}00)0RAbqL?G`(|; zW3Z82&mv{4S|CMVgX0T_*XFy*gv7TNFw0Vp0~9 zjz}%1m0ZMMH@c`VxXJ|v33KY6R{Opz=(GVoL9 zd*`R88*Xcor6Wy+vj2F>4)Fws)#d*^&SGbfR6zNh$?mYc;*1A(y}V7IJIPV{OjY0D zNpz_}tV{E@e`@Ul=aP$3->fAx3?>`aIa*mn`cO$1sa z93Fb@P>{i+yl;de(`zlJR_ynZyvT8AuBWQ&(rV|r+>gfgvl2$TG!p@)WjUTc_*t5eEWSGovyi}JNW*8|)9cJb*@^6ypdidSoT(=lLJ6x8}XKVZ_WjOVDW zBoBNIPg%LU3*L~b@-EuK{Q3sa=0+0uai34aefBaNuzsrP8>blL?Qemy@qftsroW6> zyu9a+^?mUpXu5+r1!T-hfGL;39mjpOuH$dZ^8Ag+{H!p5=~J+N#{*sqY$I(I>~CbG zp>xc521~Mz31|^3WWL*^C>%J&;W7t2ZIFqn=SO%0bIMN|!%kkExeZbJXr%az^n=Yw zYaeAR@)5~^zX=V4ulO&ILCNGsab3?Ti!`P!+RWN=^w0618?(<+L?J%NnZ~35q}G^y zs4we&v>JL5_1I5J&&VJBG698$!p{q}=cK~=kxOL5N5hB1CqyNC@RQKZw@)8jN3I5S zWe88@b@j4fdY7ByGnBUWM>2e8Xtzox!V#+oLMVtYJpN>!lpLGTJ5ymYSO2uVRwQNW z-tnhpx`s+tAegVLvtv`obaRR(ZNSkqFInjEXb_`C-`<2hrfV+=e7u-rmalYi2^MFY z=#Q49*1v*Bg1=7VD8L1MMm!RyUXQB6c7+*Dd6rHEVndn_~ zjCy!Cx32!RL~>~wW3Dx7l2sQXH}PLI(ROGrIj&kruVy?$?lGAhXQ#72GaFA^E23b@iM;)PeTkgR=`L`-AEB~Q^8Px=ik(_A(>9mcG9Kr zj;oeEapw`7HSeoNnO!hf!2(q-^P%oTHG5JS&Jwv1Zl{&9`@jl)=!_jvWXwAg=00}H zYV1K*+eaT2+?g9-X*=Y(|1L%j)IyStNPz43wopBL-8f4OLNN%zV}`^ ztBxIj#E`|G!9S!2G9K+I@45773%FgzB1}45D|!Zgl?Z1?1>UC72D{6h;TSsVExtS# zf;Qh681wc$DveDaZFI2su$2Eem&_m$3_E@J7W^QwhC2WEjSEAhw+E0aG-Grzx#^~mKf(GyOkWSmQ)A9C?| zU*>!RetH05+q>UGM&KF$Lo(|FjV(p12u#LH$0rV1FdAdOUJL?b^A8=^a^JqdCZ`0D zBB@zYWN0?|Kt7)V?3Cj{U1!4k)Sz86yfn$zKj*61jV0nA16mg9X1lm6!Xb^ z$Xpdgb}UK}1vrp@mH@YBuIU4Ze=RbMOqOKT~3pd1J2yXB;_QLc4ede|nB4dsf#OVo7GnL^5Lq|PW-iODId9jB`159*P3;=p6{%5d zex|$Y`xVW*V!Q0o4Td zeYrfU=#FZWMbykxlr(A7XkcqPaDIL8{`I{IW>S2tip!u}S!nk-wLBgntdADqlwesh z*NICnr+@E5szxKz_KtF6fiAGign6Aun=PwO1u#@kG-r68{QY~11TAv8^58t2=?m7* z6tAhAr%!MHpQGvbPwD%$xdPkIVZpNDcxFz~)}+2_{XKHwYiEi5@cmGH`sKvSoMVK} zpCZpeN2Q8@{)vBVJ?I8U!Qlyr)8No8$4qmxFF>*6L*cvOiU;4c^5S=637W@?`=Vhc zT&@+YY&?m51|9*DbL?S2yWvrwTD{kxP)UclU?7IVkf#Q#rK2pS=qdM6OG~%?V3BJ! z@8joJSls=LhIAKJ3NiQ1z2-6NQsH%MV?t@;G*C;nKllS@Q~xv5H`uz|XKY?wC6blo z?UOES&QqQc7xC-TOC~W-zW%qs(iiEasn(2hu=JJ<-Nnt|Mb|*9giWSgsXh;Ii96Cf zIK5wT@Hz>OiLX)b)A^^dU>-{&Tq0Njz9rB*;+SaH;oJiQjEn!eN7nw%=3mBZ@X5x=oWZ)KhS^0$})H%!18 znVYORut_rwX*=-9G1^)I)WjGZpu3d)Z!9Q^%ClfO>`ZgZH4pGS~sHdhaSk3;yYezHzx6tBm9l1sO|6UH&>j&c6Q`Ki}76293_Gt zmKebVeSDplMQ^xe+Wqq%>UDV|U){HVp_(*SRs9L^ZUlando@~Mt-?*GN!SQ3*WfJZ z;;B%}#orh%{Qg}IUakVnSD*^v(j452rR1*125{syrWlFbqzSSjyey4!d%u4KI9Ep5 zDD2~Dfj9p(OsdozPqJ+j*>h zShL)n5QfmKzzNiGtXrnoy#)y>_05-Tb@sOkMfz=*^={}N`QU)(zx$8H8#qyxv}Wv-j0H->$~E7Qe;jJ*!Ccx!pLS{mG+Iv${Q;?A8H#pmU_WnjA)At0uH*wRpH{g7ec=Z~lpe!9~ zt$OmgJxE67HOKiHZzwsflb^F($`n(*fm-TS~+8RS7# z_EXM4yx#J#?6+{2z)v563D{w#^br^!ee4`pV)pt9Fa1d zNiXKL)M0SrN#+NoOLMW{7HfgxVc8ky*Vsq5Eh4wp+po+5KTl<$QfK_nd zS`CY&;eO@5Mx>&ngAg=h1iP6NTbTLCKZpz@4SB(*zkZr%6EQy#Sm;Fjsln6gIq_GW za3NLH6U^RP5b=)XyX6$B6vYt+Zb&Npj8{2DPz$QT&OJRl9EzG2`go%0wm7vMUDP-p z>4}=Mxik!DC#k;^Rz;XB{3G&cDZ1unbi+k@BAN<*IDe>hgQH73xjHVO$Lp)CWZ z5;H%K(i0!;#jKkoRq&u4ZPKW2AySjY6fmBOuZ28X-&1f4e)=&ra24?3>PMR!L=CeW zon!qB9x*}RTfpWN5q2v!#74j0{ket*v&)C*>*AFhGF6AQldgDJ(4|A|Wv*(*@0IHx zUoRf4OFIeAhn5Ap-vAO!jUTDA?s$304&}^8!oDrNJo3XLWU&bC0`cW>-p~@PUG<=keT8{~vzh90emtX?_l})pN+R&8Vk(P%yJF`}5>Zwi`Kt^Ou#osS#%z z+_%?|1;4zBdN0{xrop|`UfM?qikH;qlby54@AS*G9lQODRg&+cTgm%2Ag#Ur!-(}$ z#;@avH{VlS9q>n;OCM?gKq`I<%`0vuS7!}uORFJifA{!1SI?u}_j8>~Vx7C!Q;UBo zLuxc?r|)^qAdjmXDdjo2OPN@2c-TMx`d!Ni%SJJ9_J@Me5S~J$fSrzNE*eotxl>Lr;aNWL*ucWE7T zd8y7%Y?ZcK#RSGaTmNTKUt8f3Dd@YFp|m7Sc&?CPNO8S>vDn1V^(}r~xqy4un&9C5 zZ=UPceX7#$CpCwYspcErnccgFnD)+LKP>v-v0L;s>l|OusYA=R zU}KKC22T}uBuf^|s>Y>_%#k&quF?Z$H9c_*iBsfF*JO`6#UoNIs0L!E3W;+AXLKhb z&JqLLkV;%ZHwqJ4(q+CSPq!e0>_XX-#2q}TWC>4(Z~HuFg{|p;ue@v#BuZLFDUM`w zP!G~Pye8O4zFLpCa!&DNpve=rAO3#Zm@tVn%kTVolY_VKiT@#*@Mo-gz zRFj9?@e{)_To^Fg)t1h53|)+P!%&3v%#k#H|C z(xTv#&jk!%{*j7Q8ilm1(#HjF$iTON_2l_PGOqKre*)yvJMs{?(Y7OP{%&r9C=#_n~}^6FBfX+Xrw0JvE_x9eX6=!f=$3G_3ZbQAcj6y>EgSFZ`&u2IOgE}&gKdbBh&#%(y!GCF^EKsrd z6Rteed%9LxmsQ~}x;=_;{TELMzM_^sary@Xk8#M4#G4IMBOfW#>lua&M+!AGiIw(q z(54On-l@j|;O`Q+l@;Rhrt)(D^aQvyn`?QJr$os#*U-j-p95;<0s3T;%E^8gJFoei zxAP`j{7Fl&)&h-YJgy#Yw)lYD7+eOvH(c9pKe&j)8z>4zIY)}t6ZFcd_)A+hm#b>M zDI%;Ri1Vn9el6yIoZ0nXwp|Sju^XETd=;IVsl8uAuagYR=T(l%jwAdwX3%EI4%E3& zl7tS~<9a`yi}2v$9HgI zoRTCyvV}X$<9nT^`Z!CaUU0))zNm(R5Bo4`QFDhX*$SDUOkRh&ET{*`)Nv!Ko$dP) zl1DOec}C{IdLPSN6N>Z|XqM(oAAbNPyvMVv>O81Q%2)LG8N}VycOO`#oYpY9E}i4E zklg%Ei+td7-2pXcXzAaWy*yZ3S8!(w>!m_zjXo$v41|wQ&=5g`~85$a|vr@ z;;X9kZ8vjl@mZX!IMuW-s@HG_=`)j(V(H`|DruZv3mT(;$uq30JOU%*%gRzh5&x{t zS|I3Cz^2umlFc(4a610LkXq~3*uQs`PBc{pngj%l^*DrN zDeCQ(3E&mn29s2V*l2E648~`=<1|5DzUp{)!0huVnT+B4@wDeV$M)p_p#l9tnMLjm zPkrM=X{))M4+of*q~v`SfFZuMVH0D}gwm>uDd_jf!bWyTrlWKj>O!G-8_|epC zOlIKE+I=U&f9`KftnBmo*zgy>kI+=9I4vkmy1nHoHT=h4V?-D#?*&a1fnN{buR-4< zY_DU#&!EqW-D?2KQ8~g`5IU?kr>lPf7nezHL9Yko%za!@tc+YFYhdlT~q zySba;tWagD1kQ0^2TxSus!DJt=CT`@jTFsV>GhZd2FC7+++6d+6jkvuEp%r~n8Y3@ zQzvuhkk7^S2#);2O*2B^pPhMlF8MQh{h0WJ;Bg>T)F#3`l|L|ULXV(syK><1p`z zLBHXr29GfAg;V!ZaQYGb${)J}dKE^~!K4m6`EG+R*sg|62YU>GnqKAs3!u(TEqqnY z`LzZbW~oPPg&MAHWV(II30(q>kLTiJ1B?_pzgeX5!u6^t(qQDg8S)-JL=Iv4`MmLO zO+B7?ri;^g2$8C$Z;`(O&syDf(!U_TGi9vS&VDZiZer zVa0n0ow7`Vzq-VqEqnhwsX$X(AZOI-#E?w#TFUa9WKq#nK^qE5NvWp^SLJyXRL*KK zb|xJZm3(SSgTj$lwQ?b>uel_P&R?2yp77sqG@0O5f5{-8NBA%0s?ov;ON>_w{x0-n z^8*OD&qqjv3W+Q8gfwL9M1pS1E$A~EoGn1p$g~N$KoP?8A*BP=Y|plq%lz+nuWU45 zo#$HlZ5!x!+9d^UN~HX}uE-DAIx!sb&q_wKV625)B$>HBKznQER_^%YE1#G$|7Xhg z>Hirs=EVK+l40#k!Z>$ECNQDp(dB(NYS;L#nkfrEF zR`sO$)QFCu?~TOGnIsl^+eWlH6!87vibl`Kwe2z70CMX(Y1&)jWSxES;G zhgw96vD!fR(?xAM5l{Er+{TAzj>feWx#aiNp`Z;QfbC2|F5wRF?RKlnVWZOiL#56qNXOr(qX^AE47jBk17`Q)+U70lMbQ+8@g2Sai__4&qPIMFYVoy(m!st z3lX|eGr2L6wFvpXe0B42AR=;@c=VSIt!kFE;qDsM`-Y>UWb<(N%MtO(`ln>(;zKPQ zx)zl)$C;aqx`x~yZqB>FGn2F^H-4|?>K*AfGIHxpqQk}UX6Q=3$^Cnp>W%XgFS7&4 zsXxz2`vitB?~9D@yly7m%30xhyox5bZZ9DkweZ58yj5UkT>D@iv1}aTjce%hSqECt zA3T((lTautmZth?b{J()Z%JecB1>l92)}2p3T);bzpMj-Vg=|aT--jah8^G+e5Dab zCnZ6|+%m9;KvA9v+8)f%mSK95T1aWi22BL<(2e@DEnIC#?GN|WWL}tnsg>I}**KSN z9U*{uO-6%6JB#LRY@xtXAB>a(zip$I^mNBtwjwIP|8-SkrP|(b&AE^NX#TXDlHuYO z#e{A1)l^UN;mGU%JjKlor*&R|#! z_M8e#9M;W)$0)uO2w|tqeaD>4L`S}uPR}rTe>PQl$Gwya2w{PJ?KqWT=4P>9Q;yOn zHs^hBsrwB`@?uW-X&vIvwuLeIbGU`%To`6Zt9BCB-?hL-7%`$vsBtbjI z@y-T_w@A+Rv1Hw2y+FC_6CaTAFks1Purw=QGvKNow$Bt@2ott}Z}SsABf~GvoNf^YcQ>-wJ=Jic^3w z2C2Ot$t&695#Unr&~3~Hgfx8lF#Pkg4MzE+9IUXZT0Hd1h4Ob*g;ZA9(25UA0TEvoM#Io^}N@{^qKgu@p7nx7g55i6y8IdLM4{)bB2B(x6bU)MJ6qW zvTp?H(db}H8k9ru^SX6(nxIzlxlXTFQ}f!`8#6^kM@khtay1^iPVbR|vuuDcZ^(xd zld(4RqvTB91!JF+)*oNLTNGWnEgA#s1>F4I{Za8STd!2}PfF70H#P+8H{)m`>dNar zIjV@VS*~Vw`Q7w5aNLFpbINmSP7SOofR#Sp_CDfV=TdrvWKzqX$1h93;if)jtPjn) zW|^?OHA2z>Lp{^kJz>YAZiM9K5^Jv>{@qiBiMg8})NDyI7EJ-ha&n)36}!KrdFsEm@(YDMC+=_n;i z9R6KnBP^}8D_ZGL!L zX>JJBJv%d^sZ>fVWM35HVVC36i>Q{XRC081(4iaCIM3<^tW6ry9D83|G48!ncoky7 z?Sv3YKQ=QQ5_`snQcV|89sPK-`Z5MoUCtWWe$*xF{(Ig9aLBd_&YVu0{_JXI z!5zCSvvW{)@Hcqv)8CgmG+J(j+Nt4I*wc9tv0XsCH4(Bo_1{j?J?AycU6p9y@eV@; z)IX9ppaQ@$x-s0s)2pm{Y389uz56j{MwUGBbs$C-XhB0t^K9m|%5AM*3EnyYY7$;J z*_M2kAPHL4o9!O*!H+$ZS#EV*I^(O84fq6yS8eIx$a`r;YNUl;mWt-M;Q`eR zFLdI0>!Ac(P*@488u?*k1(SR7<^lQ>O60+1oqV=MCTY;Q7*x@QcO<`2!d!a$kYEUj zHNo11ef_S;QQ7}q$=m|I8D*@l@iaktvEm0NJQj7FHU^7#$Q^P2A@^V8LbMw4Bk(^k z6ZQ=^^n8btP%B=Uvt^Qg0Qprv6Ly@J@`6*)-q}?waoix(%HryAa^jVyu4iJwfv6=m5;hgN(?`3pWGlE zc)Psi)_YH{nqs_USETf&iruC|7PcDd<7@gn8X7G`(fp=Oj65&_WDh<`t?T4Fk>`;J#w=U$F+i#I zxfL?{$M&R^$lsBokQdEdR99jfSj`0hir3EtlkS>MyrOYifD&mCJyOg)WW0kQNY4K> zLr4$9&tufy3AA1#)gQLXo%zRKQK*;FL-3eHgp-3QeqJvhd_RA7^?h$c=itN46l8XH z)&SuhuU`H`c7FQqe(h;0#h37!f&-<*p^%LvQ;18E?Ur;e6t+tg>IDTLRRD2O!Er>W z_+i`lVVfDDSd`|E_W-|tlF0K}NsGIE;W&;4=Fqwgw% zZ0~TQKg$bhzRYi&vAVz1&cAYox_NQ_I(dC}b36x>DLGQnXWRSQx}=5b4d~i>CYBzm zLg$rXym&OQ{04=c3Utyh9!HG~J!~0FO5wpT0f}TKTq#^Wt<D%mXfjk3u-r{yHvI)=8ghTF@mZm)HVPKGqf?_m*k zbQ&9sYSAIK?L*`0^J>7e+$-8M1^9IROlM(D_h_^3w(!+b`~+JMjg0|y_jMLafWr_s zwj|Sr?s7C)daB{z{Ott$|DXx^8{mKGu>+nF;k4XRz!z(Gr(D+JYe5#&BAnq$Z>OJ; zW)=~+of6<;e6Rgaxx8Pieh<~tdu;>@|JK*`b2utec$`FW*3cL%ysKX^)2e50I<>qS z+2jr*Hs*cLr>&Dp9IK#_bzLkw5yi0#CS@P`&$G{t#wZ&2ebDz9x=w@94BtfL=}3bz z1j(SNi4Y%A#%nh(myv*Ub1)vV;4R~ab8e{kYbcl(q;A|iEJR((x9{?RbL-?vbEnmM zh(h;5lWy_XuM(1vlV!0z{M1!CgAGFxwa(&Rjw>aSrqTa-4ph$Sl$I5?f)-YJy~Y-^ z?TN(S{7r9k^m|pwQ>o)K*23-kG1$fkr#7d-iDO+k3!MVbYiewYa(us$-e?!scI*qL z$5B83$$~4pXJBetnbH*Otcp5nu%FhM91|R4!NGPF8yESa%E9E8>bAJE*6o*G z)tHZIOO`G3MhExU9+jq0tdiu?il5m2zn2~95-nXjzYguy#vJ>okt-e~!=JEi@5y*m z^b-@~tZg2T42mVo@iCdK$w5EZ(}g~%R@fiZQqt4S5nYLRwKE^?#*S$*+AOZWE@=Bu zJeM>30?m^`{GJv=3Fl@e4Q1uo*#Lk1nRv7k|GT6%c(^G*O3@{=X*0w;%oo`1h%ZHK~RFR41Sj@BRp9waY+G(q#_o~FXK{ZAAlN3_55Jqj-KQ<+a$_h#(*$L=K2L_$lrmRZ_hZ7G}mR1Uq#F{VZQYm~>0Ep*;; zJvic*{i2SJzV1#fmy<9b4|=j;Zj24EH$6Peoh8-O=9_9nbb?5QFX=P@k5$-tF`$fT zqNGUIF;DA^y8XsL1-q{!wFq;@SN`qdRpQlN!N@=G4|s|Nhvy#1xw_Nm+jpsD(Ih8V z-o*upevQ%HJ8q{n10UnXX3BpY2MO4>Ff|naNvbqdvwiRAptVHvroMeno#=xCH?;`j z<6nU4+D*xPdKSWa;zi`^GQolqrJhW5V~23aK#EvF9e$E7>HCTXMy3TS`o;9gWv=7a zika9*mN&DCYGXAA{uwGBD$MSd1j)+0=^lWjSDJcSWy4I|iEW4MdT)Cer3~mg#n(o- zIylY{LEz#<=WH@+%fE@Mr8bVdi%iw$ue_%Hd^Zlw`HWr9TfqE1qS4xRBOad&)=d~d zOZ{KxWda(#mQ(7o1Z*z-=J!r>zIR#p&es2TAE!TU2n$9T36DBfr6fluHhp5<8>|&K z&*?Eg_?k7q!h2qE0eVur-zMd`y3bUXg}fJyA8#>W$YcA@Z1iQbY0H0{d ztMuD`82Hs7O-Y#`5M~g*vk&6++1ic5f3r_=6&et+!-OV5%j8cy{O)E#$iuTCJt5E6 zolo8|oey#{3OXr&lpW@eeSva27M1;7M`zRq^fB5UH)n+N=#&juLRz^d1SQDSx#CbJ zm5|z3HV%l*N!!BZbKjVS&!Eu*PgG%{kbaL2P5bS}iDpl6NEx?Nn#NM?e3hHum=IC$p&z z0qF3F4o-?IKO3&egTjcC@#!=^>-apOx3?6m-Qk(}D)$VjKszG*(rD>ujM7Ej{oz3Y zPeOvui#Oh1XFO#?b9F{RnwZ?fgey%&-bf9&HZ?UBT*Xfe1MzZe+WlaUO)+5~dNvFI zJcW7tA3TpAruuMXwLnh(5yc4%ka&>+b!Jtkwa#?vaw9sJC6TSBY(wt8J*1v~I6FOzX-_Nv%LmM46@0H8(`HEIkGhEN)EN}-R7-TJj zn<9+x@O$i{BejXVb^>2S(>%~mf59rN&r|$!VQwLox_obPW-$-0{_#T&+OJ#UrH=_Q zYTwzp?dLQ6v$i(!`*06MFgSn4jU8CZPyG|dZ_4T-F=cQ2z3(P9;QpjqQo@^f*?tu~ z|NizY??Sfl|JLVtm~K3azn9rfVxrC0sEIq9FA~`BLtr|PHvCkuu*JQZ_ z24yM(TXklV_j>LoR^i=CDY|DJ7vk-|i@&%8d=YJ6w+zC4O?LMx-7Z>-%@R)`sFsBO z>`<7S9;5j#TW!Yf?+HQvEC0Yq3d-lNWnQl z9hy{X@>(qevY3j-&r(~dV@4az1L?x%6VW@u4fQ8F)F!4s3h0T`s};kE?^2d!>ucY;nqL5ntm( zNj-B+(E%jc|MVjh3K`Yr_E;1thQeU4Jfe zy3rwh1B(YYz1G(6UDSaLli?(N)ytnu>KZ;MC*!0LQ0vGpKfz-xs(x(sl#0+gsiAMCiqs9Nr^YePYKNA~xiRQ@=}C`0p?@zt1F$N~^Vg>1 zdEWePW4aAy(HPa0O}%X{EG;bfNc1@}{ckJ(j$gh$Vx9V!>Gv^H|7$hLCsWN-= z>BUR65q3XuyF;l?nYQZN{`K9|Besfy1QqVm0HC#EhV2{YTj__|A?suTx>LIFf~j8 z^$*a_8W@?JQsDD4{7eFc>pmXV>sb8R`@ly#*86QKC7GT-bumjJQ1vP^CT);J;q?&1 zR$S@2$^xFNpi)`1iN>tlEX()0J_|kxrcBbKBoTMyI|0R8H|_Jb~g=iW!(Timgrit6g6U9R)on;V&tha?i+`y()c z1&36`c2osV1UuhxZK};skk`u9c*}XG*TB}+qeV~L=%@KWRqX?-X~o?{E=*hm_$|x& z&uSN99{(m6kj8W}f7lV1&&&+`tt{|g1m#q*P-0`s)$9Gze+oky7B8PNtG|^|0!Vl# zorV{P6);W5E4rU43{ihdW}E-Vk?F~DKxH_3lFzrT_$@D6UtFKf0-u0$?@2Y}WmnQx z_~4w)T4fzFza-|*cXH#X?5*&QTh1o3ueHq+sakU7Gs(1YB}ZN^e#|6SjPB)J%79vN zuTdEeW|U~N{DdQ2N@RY9VZUTPBVAu)ZbxIdACcZ{<>k(|TJpO=?pQ*@RQ*n5e*M`V zLcBH~s@)uUSt74-W;`}2YUY0&2mq@!KEN@>AX0gEu_E+7CvwSa5`AB?r=nP`H+|H{ zM-a~h^BY7C*ZLYp@FxI{SvttU#0igK3NMSMZg#R!uitmsUVYq~Tg`L+Mz4-SACvt;G4!+_uR>UF{59dc z^k7FU?8|VJz_aU!u1i zpUzawT`WTYviHKu05HETk2A_*VJ8!oNB6BV>Py>m0LhF9%^rQCyY`t=|962;du1E7 zbB-#dHAte8%Vo6e8~=3<|GXAor|_ony#v|B)AV`7EB_;cfSQ*3qD^@IrH|5BnfXz= z>vS>*%(JFwa9`&-KxJma+_(ZZVlp|N+-pi38-_9A5GI}tJ)nEm4Jcia70m&XOeW%L zl<%Z0=UD%{P=7nR^r9fCyp0MIn#69euh-Z?nn8$)mNxhrmle$Amkuk4+gl!{Qw(8d zg7)foix}I33)GwU8VQGZt9hj8Njt>2GNiGT#)Vc)Z^VLqrxLTNczDX2e!Y&n)bQoV5$s@zzs8fr@X5 zWLvAb)$9Je`+tVUn?s#%H#08&|NG1ABOIKtFnhPCHSIupOJx@uI59 z{XUI1{t~Mh=;fcn_GE3wKH#p~5ozT4@}m=@f`lAlXJRHLCyx218l(5P;z^MV*g!o) znQsj)4Xt)pH`yFntbrVq6~#GCjXXHl>|aaNgYwkKc*R&{YyKOP_(OD)@`sD{Zd5}y zMMNP5+J}^r_z0lK>}*d4$sI>tGy@-f;Bzci+D~U%n~tq54N$krBSd7z*3|=cgu~N# zKkBZEm`A?9+bG2Ki#v-lybP2b7suF+MrK4Ze0_s?rRUvdSrIRnbd^_40;^^Ua%GCW zCWi4|LibXuDrVLx-oejopHm*O%MCmn zmzLnKohEyJjal}4jObKUG+{>d*=aersU|_wgfyV|s5*&77L(i2f?KszXdHQCNr@be zH^_Vjk+-+l^X`6+sZ48O&mgbgA87t+Ib$m!h zt!{?E*|cHK;o8K)jJTW~z-Js9IU$(fh{wQZ(mfABAnBn94a~G(;8v(&#u~X*+xO%8C4tE$gJ?#IF!~cL9YqcirsYx5@WO z6CHPxIbSY9zl1a2OfvITv6}s>gY{3`T~E;J-&fVtMoel9;L)m^3F!!UNS3paW#1b zy~_>HDmiz&!xmlS17MMH|7*Zd(sz6{oq?8YVHDpj6O$Nlsb3*IVyzBYr3<;%WpP)M zQeKX0XiLDa?PUo*oJqP6e^DZm^I89pDdqQSYq7o*vf`ultp>8TxL0MdvuV`wN_mpJ zw{t4q(#7ME&Y3OFTNMhjYXdEVT>WnW_|+L18OJ|^$c!vLaD8Iq!9h0c`Qz$Dkhl_Z zUiWdxa`BtAjOo2Qg3GJ(f;hv#*3xovhmGs*_Hv26u{Q9Yr`qdCY1@}u67|NidmeY5-eLn?Pl6 zZm!81qv^yY*E1L-D7(MBvJlaG6J%gw6usoq{zt6{htW`gI?Ut`*uvt+ULI}*kjDR8 zHs|$`TDF;^#+eeaKX9CrOo1-oBv5$D$Wt4lPB~wX0oNkhESu|^J~uZsSii{BFw9tg z=<{dr%{f%D_F?ZK!4F zgSjN@a3b4pwy@?Pmwy7%P$p|RiQ{eAQuBj=qz#Gpq;meNtP5mqtjfjd?|-Nonr(Q4SkGD$Xma@Zt8Cbd6RHSF%6p;>#p)S+G2EC}O$5 zxrMg)>nDddW|^WQ`t=3s`9@xMc$)k5lk_y@CyLwll%l9YLF#?qvMoi7_}PghK}rPM zwuWM|m247$5a`a8>P$E$@$pnbSSU;hbV6iLrzp9b{hc<}(L0BX5_zNUBM}n&$atsS zpC#_XBFk&@T`Nv6lwjRIZTFem#C@wrLPn8&)wjFV0~~%+9N23G0pIwI>m#zenrex= zK!FQf^Y<5Sq`%T{s+0q6^8_wg!`ALjU|q|%X{#qG&3(mwi^USx^>SDB8>?Rr8<$_4 zcppcZ|HY{GeO=iz(>Ey;-;BCL`>mp}61CBGAEJ{6YjKHbos>~bu3u^R9^F>Bx8`mSTj z1>z_3&-}KIRi~gO|LQO*1b$I!a2?Mq{HN`z^3HbVZWnBcr8Q%!6!5WdH^cC}ZuMW8 ze4x{Qx1(=$@b%V^_wKqp?{<>|`GX7s@BI(ZC&(HRX5nQC@qjr~4Tn5%+{6W9v5akJ zm+_p)Mv4p(+N;{orGbHuCY=z8s!H>yGln-#rTz5qZ(ghT=EJSYs!UoJnz5QxPN;PV z3a9|tO}IYP1Ex)dC$MIHQ{EkU*hQ_tp@OvzVd$q+yjVTR{;urZ?@K91Sg!r;ebp6b zeSAUFeEab&@9c?J-W%4~C&JR*J`8 z`~;Bml8hG^<}wn)!0<>@9WLuETdNfEX1$h$#(xta>r{tdf+yHo*Yi;Z`6n_`_*qbb zhEMNW?JNl*)eblmGB`+JJ3Jp5>Os5LS||3oQVY6(T`({(i$*mji}@k4-sj-|a1mpWWxpZ!@)^tj;zK|Y?xBXfNM*b=e}7|!}% zkl%@q@?jc?#|<%i4_>qFB*({&zdUJ`I9=hwN)<_F1!z0()U2o04_Y+vfwTFYWJ(^- zbWuE8!+vL4nB~au7>n2yFpZI~_zO1L<~&r4%FMbw)=%nvHpG9-e~TkVSNF{vbZR~J zGkfVIzU>G5PO7j_cRFdmAy8XyBMXI&ZJD+|c-Bel#nSm9i|ADjhr({W>e!9FOBg2QnOVHu$%{#YW zImBFU0zmm)Eq9{Xyhk|1Z%KafnxD&z^>Q;GB^gq?&iWrPNajACqVdRe`eu0W9YF

&5muP<;8)1wcozu##wcM-}T&=8@+2R{LbfkdE&+d zvefLC@qL7G+#^;4q2IBqdrWq>Cg$=^Gy_0Zj+q3=YPpCUFfs!8!ac!D?m=GO{nfN!>Q=P96T<^|XFgE`#j9?DHwgUxd# zgx0{}?ZM%IaQ1QZ#r@|+xEgc$Uhee0e>Ts57@mP!ewK{Z9{2CfWkAF}?R7^6qkph` z{@35sz0JQV!FOo6*tAxkb}S51d_yQ~-{ai%2f(Bk57G~qtIw-LP>glmNRa;1a(nc} zr@s1Y*YVv)OuejBnb&fJgmy#cI*%1EzT0W{LsEhJKU2B1dvW@#XsW^_uZ0<&zrZLL zZF{HMY$iv6YVr4eWo-J8!pKd}kn_XJ+6zz8e^!oO^KW@*lEVnXVqJ=PN!zl1tt>Ux zfeYMus{3}X1~j%-_UfqTIkyyVPqxC>!|TFXhaXD8={^VW3TX*G5PpDL`|RN}#9`+Z zgfX&gIJuoqo`<#@bnbjZ~9dh4_krNyf9v2 z*q5rvf4sX6%*?iyhet2wn#I=JmKz!7txWx#tZbKVZ)%h5c5}Cr0IQo1sl(2dQu23u zi*t{L6P^m|vj1ep=9E}f&O5w8JVJe%fvuZC8!5}(PEL&~D)_l>POaEgTG9$y;CO-LNLaj8EyZU8-cto=L3Jb^T>ky$E(p|-H|YfTrr)@x=y z3gpU6oIWmx8HPrrsfE-~F){ci@XX=p#+^fP|60nZv4hNxMxNzE-*1Kithm0H;Z)K& z*)T5D0kNB)kCZWYCPmh4@Ml-4!-c9aXu(*K_ppbiYZb|=pOAVse`|W!|_NmpMnQw4cskxnQl1T9)^q_R)nx=JaR8wyLwj*MhHB&GX5p9BpCs$Ftqt z+nQMS%ZjD+ZyxLakolWQ&`Q0v_iox5lV&)T?$6F>FFU7jf=@z-_1dWCG(>CCr^uO) z5$PW(D{0Xec7_!%sDAD*q4->eShvH=3^b>H1ZaU(@Fn9w`EBY zOM05w^UF{A=c!CE8|hQgt{KR`dbsnq*V?g(5nx_vxnoMXNqZdbR{ag6FoDl?H`(>u z>*4C_$g2lyry2hhtLFvM|1WX?1{s1eqI?{0f1aL|o8RnSqaEyV<>@s3~PWNp;B0T^Nw!*^hdeum~ zRPTE{G%cjRBvVHJqU5`~EE|4w&3RO01RX%1S64W^9W#5^ecJ{uw)$_LPf&t_ch(jI z$S`cYQd8S6ZzA_H#-m)bTyM95S_yZNV8(k&54Q+U+K$QVNKA&w?aJo)s=cI(o~4J| zUnr2B-9ES+q*G%8On28|v=@yXL2u2!ak;4fki@|wby;Y_oSmp+Jgj14sTO3r&c*d> zM^a%N(U|`CbLQNuF=ByD>5n^LkGD8D@?s`E%slFh-*DCnI^1{a=DAjumb?rr_#$my zp$j;ex*x!im?7yo8cuuzp9DpqT`Pfdt+vT<`@MYm7%MRBZA2!5c_bL7%ZtT9tScJ! z4Gq7B3$MecF9s)e5(Rll;d|9__hHOj%FJDOKi|znU>?2&9TO|XDsaPLQ=SH+tYkQL zJiC!(Poqr46~D8|pf&lyo}T{aHGdwp};KHu5|vEs;sSYO@t z%1?kta<|Bh@unh@(C+3)KTb}xlxZx}#`pu!=T&_!|JSc-N!hb2Kd|%N9SsdbHD4X>2@ZXXo-NDpSKv%S4#t`NJg7w$Dsz2aYG2(HroN3slSHTH?y2K-kX3 z(Rj!z)t&fnssZJH0JELcy~oGNI8rmyoj#_ss9DO_I5smkM|AMhA-8|0X)Wl3b}Lhi zy*{|IGF2BDx|OlImQAIXGB+vX@l(G`BAgEUkY?Q5kXm-$cADJ=ia&pCP2LXw6b!| z`T%F<+@nwe*ElM+zXRHu)PU2A*mjr3ZWugdQl^hik&{MW5z^E({Y%!V`-=e(eFIKq zyunVgq=v;mus4CUb)+}v%bttB*o8%a53;85{-oMV^7nak61+Ev!c9^~AG=+}E=Ew8!_OjH-bDw&rVv zmPUL#@6}Z^5A9D7vv+Ij)@`EKbEiM~j?s5JfZtC>D`k(B6@vep;$LRhPfr8@y<-{W z)VO37<3~wn-;!-`nYm?6)U!$3U^x>{*yp*-w5I;7UF6afCB7SJ#12YJgl#n3rsOV_ZrTuvJ>|J6Ys{-|HL)S3PbPJs zm(NEY9KC=B4u~oeKlp@ahq4H;vYI|tjtaq7VMG^fXkRRS=~`i6X|2*Dp60*E>UGK8 zu47TaRjPk)@hIA6;Q`g=UyV)(5ZPAkl)<1WJCxNB3UM0)^EU)H;H~ls^aLkj)SZ>vU_{gc}FMk_vU2Rh%{1^a`4NmdWfk&H7|1c8Zmtd{%JgA`|go4>BS^qJBYFwA4lR_ zEySsjz)90t>3eyZ^RE&GY@N2RV^g8zD37TTGYt>VIni8%PSa@?f@?|Su+;fT?FN=F z!Fef+Fn$E;120kYBb8(6U0)K#Lwg_llDi;1K({OISsQ0AJZf=;a!5z%9^eeM7_Kj3uV{5%|TeItlf0 zl&7mPgpd=RF{1RM^y~ZRg{YHpvT6SQ*_*0$i(y#G9$#C;o5| zD<i$5gCVQYo4}0fjdn_^h1c!cp!R>- z>a;H%<+(S*b~^^`Xo@ty$oJBll{YgkK?OmI*e;B$3g5G)c${36GqOz7hYDq(sfOsr z^aS{C6(n5p4H+@kjf1GxLjv}~3n?C5Kgk*+_nbwCCC0*q%RhFc1Vs^bPjVs4@n)4y zya&ZjKy#YJlNh|VNge)Br}>8;84$m(h&?}~ELZ_Ea9( z1#q=Stld4lUpvOhkft!)LCeyt z4Bh?pT1Wk6TxS1p8vF*|c7o?0pQ zbtXU6BWq62`tYwPw8$$s!*EDgSLVEjlYIw ziG|TFbn0eZ1m66PTYvEe%B^8R#pE>sllvk<|7*SD)9cdD|t>ELk{F|S*73{9s;f$ndq zFe~Wx((S1E^N3sa!x}yZpU;U}PnTJ@MU0YSIiSM@Q#Z-&8X@p`Ox14F-^QJEOa5@v17db&~v4tl8$eac68aMax-#;;bBpZ#KMt@Id6zHbv2i9N|hm* z^ElhdZ6&k%Nu+q=ghYwrM(}wcfIaTCf3?zE_XAG!<8&;Mznj~q4GVzS&+x=kdE!X#e@(6Y`2o<;BwD3p7rK%Q(Yar1z8SXGth8 zn5R+Ic#HVu0_zgC+!?~T6m;V&nM7sxL2cN`j3!pm3H`zJ5$~zdasdk7q>As7`_%DF z82rGlZ+_brqYO$0pakj-Pj>l3w2F9`?}wF}D=dsUbc{$8L+Yj9C?cH8f5@f(V8Odm zR}k_Ugi|F^ce_3^7mu3>ISc${$npkTXw7iQ!5s_w@h_o!JcrrTqaX!l*$cvXV*j0u7qUUI*hjJOLNF9IWbnzg|zIu{)Sg1 zcMJrYkI>uM=ghH}4bi)U5n^Goa1?O@#E{IX!C{N4&=H}N!z_HWDhR;DR=u*daNb_- z2jX0#m11^!uSPlJflAVTZ!awwAJ9;8mP9YOb-^&;2KDK0+VSUT+$j4;93*OLV|*Bu zKjTlIPOqB7g7>Peg*69P*Ce8yvYstQG{83izg*{r6h?NrifHLcPL%M{@hKfq%_po}GNW1&xhFzGN$+ zSbEsW4QQYLoz)2A#RO$1*~dCV)jM^Ef`9*xO*f-Go)TAZwo^84zXUh8M^w^O&`qep(afZ%3)M0yjES7}?8L2il2PCSB) zlN@K$iu5A^W%Gx>Jmsu3Ide?*C55ujVeH$xVZ*MzG+kmpNJ~+oxlNjWC_JcxiD+2< zLZds&xob|K??K8P_0^y{>4{2phjsLV5Ve^7*?V>sh9-7{{mp0USC$)@rrkoI4hJ~{V-yhxaTE$+9%qNO9d@ji zq(`^)L8=fPsIH_j-+IKUyy@&5Q|B|H^|A09`Ux6GH4OkD%E6~_Jzc}l(7UhbLGp&!lG5&?R8XU!E>xHw;S z${7yUIX6{GWM;0X+|bzD`TC~)e%~^rXvSCKpGaYUFfp;KsZ^9hS<|L`{3WaDAsu6H zIzp$_M7%mnYjRKI7Pq20jFiQEUYO)nKBhQ+E0z1uo_mxU_i{(|V$oA)xpsX9&p8X< z7kh#G%e*IF>OQt)bK^g1?%w06Wz+~wrMV9lyF(1lO}bEhIS~8w8TaQVGF#Yx7&Nk* zf2W?0r|xH74kn5~!G3OTjctM@vass^;AkT>drJwTLDr|m8+criiuG4KCYHnS$1!8$ z@7*u6_b?)@*U}oM7tS@%z5{7)mbJ0)vO7pxy{Hd*GML?PaWXTskpk9?gAM zf!YJR?6xeL4<=NaWCB_D6^>a5QtOM0zx$tzBaRsktfdvOBIV|v1}X?b;wYZ#_kgQK zN-S9UyOvdAM3`X>S7L{u<3Ww8D)r!Q&o7Vo10VeN1qIi00X$Gv>1ehgjv{F zAz|a1##`L!Z-%Lc>5o9)f1&wh{A-}08kTo)>z;XS%^yxu_zhPS+MQ=ET;6_EPLX7M za$nxQqUo{eF6J)eUy(O{QsKk8#fFJP*G~Vb)M@oA+a%Me|KW?sMTng&XXZ~$wPd(w z{y;;!iRhrBM{yIP^Ygu)w)u;xiA%yRzQclTtGV9Egimd@BYllgC$4X&5Cb8e6;PRjQqaRnE5UWi{D5E#iF~ z(X9CS=GNB9vdooVrC7@I-|vokUgBX}Rp z|233t4HmW|S}eb0li-#)N-G}uZ&MI`zh5!@#r=A5YWR3lSN0Y!xAfkP@l4iP^PnVa zAK|v&-9J$i7*WjLm)IXmwNu#eCB}kFV2|Cn!1Nbd+TJcAcWJ{ZhxmKDZ@8%!@!_tc zZ{c=dyleWraj7YPt;$9gRvUQaz^z2T8gG)1Y4+63Mz`v#r+0`3Y_)(uhU#8EdRh+L z7CIJSGrim78LNVgqhU$xRjNXXh1$_tfsAzClz1*_V~;$+ll28PN1_M33H=R%dU5)1 zr0FInix^N8+Na!6MaFPBI8(O{6VQ*k8w7N!Yv77+>l<#`)C>>zI+(Cq@ocpHjc(~` zY%GGinUY}gi7QA@hhI;L;JEnxuSS}DV<^2@kMX%NJ7R0}q8Wd$#9pqp2ig2xx^`&U z7{QKoz4D&30h@uSumjZqAMl=)|JTRro|{&fZ_ll7Y@f+Zh3=r!%ReU}a>$jyly^*j z9@|3$n;RJFy~mY%;5*0d_p}h;*L5DkhT(ZJe0fdezeNPwcwPxO+KtF#d+cM2GI?k= ziByFrsb1W0i{Lu_XYr7wJP`fmkoSMgyC0+z!w-UkK8q=^U_Q}dHn@!sRn?$*V#a?`1YV5r&S3*6?}BY*q~$KcBF6kv!Fpnx!pEP44asbD7DrwW+K|5wiXQsqo=4i zW;R+_uLpaV=OI2IMV{_9++f6YSMCWvSv^pHjOrj3Cg+%}1|P!-0-!5v>(T4aW*GE^AU%W`y@8f>6 zSMU@CrRUs>TI5h3^L{ezBpJNA?tLuw+>ulEtFGVq^0rC-;|tBw$M%ms-_C@j<5U{( z^BJcy8OC1r9>ogej{mT&_s69bY~NE1`nBD6Ej(&`_yYUq)g~k0Q%Ygl>b0@-@0#ul5hWv`AN}@=9XzMr+|&=?F~Qa)un=8*0Bb8Owoj2 z>QU1vhlMgCeMBg|(SVi?V@MyiNDt|M6?~B1-9lPg(f*P>b);B-DwcDtYn)Yue6qLkX z6Gw#^1aqOjL~Kuh!Zy_lOQfy-t#fMbWtq zp?K?<2_U>7Y0w%!2E)d5`agUv-m@R;ElVAbyOr`VCrL^FDkRv^V-~JJVMBEsXHa3F zdsD^eV&q0Btg989vg1N6pb;?rI|lXa&Le{HKNmD6n}|ikEk9aHw*M|43ipbt4Cs#s z`G(k=kVN4uGC72(&Bk95lyi-V<`6}*i2l-$`6h_v41G6)+28L694~)pnZZoG3P=$& zyPM^gPvwP4gr4Wcl#)i+gJQ$+Sz-@Fso?>xT+^R_gl#^R9B^mRr(Qz$pYaksA4_62 zS?A~(d*S!<&M|6&x8=z)kBtS{+v0b$;%IdO6zcrypX<3N4%$$tf4ah5>mFYIoq8G? z^w7w)t$0`aawbatsiRG^ z(KK(!W@48be*T;~?A^J>BAd^)bwEs2wcRFLLyRsu(~Rd_ePu8sKI6S>hqonl!7&P0YNHxi zsoxRHHW3X?Dh#+37Np0_XLvI7KE6zM`Dtc~1P|R=6FMGhR$PFY`kK76KFi?yA+aU9 zhtru}TU9mGezlL0(z^2L0a4EU?GSx83I`VUlfX`~BKF|Wo{Sf&eYA>!X=T2yPO8Pp zj((QNH<{C_m8*epo?D_rNk7I!|2_;UQbX&mSgVo94o%fPj+(GyeI^H#(I?Fen9@vy zZLRYIeuLsAjb1{2aOsHIAV+o)dW1^g@TBG6yBzVySmK~L*xk9xOGKeB_QG%=U*`e; z*`8|>?2#jHz(7!R`Ydf94E|Uez?aQTl*JZ1mA`F$_ipd6Y)tR$i-uU1=cu{xL}}di z-_)necmdATx77MhJUjZbvZDF187SZPTmnuwZZu|}NHly5WT3Qmk0jAny^6KuI5e1L zM`SDN)qI5-PJ=M0{_L_Fhi0X$?$t;%+0mafaw$o;HgSK{+ueS@@Qd-RzMtXkB&Kd} z;;ey1zK9oX!)mEr>%9AF9VS{?q7NLZY60Z!)NBm<>ARy(4DzC*qgUmJ*l7x0Ehx&J zdt8zqN#+O8v5qz?p!A6Iz8;w)#my!jD!%v*=8=Y@B=A2PU8Y+3F}Y)x&Cp&ah%+O; zF~f?7+QZ+!jX`{3M59!qBf-pl4k203t2Ll?!P)|oq}Lhv6{$7~pQ#y-AQRyt z3j&S`h5XIHtWX~j2pMFSBG^p}5r$z^q^51RzU$8r;Mql`O~+9dWo{Z-n?!}yUns9b zvZ;+02*km8_r~%w6jc|5r!Ua}LwH4b82nu-X4Gs@$#?I1`LCcGp|6et2_72m0jtYr=W!d-5(~e1y}=B-(L6SzP_jzj8A*>I))wYj5UVc_?ejo ze~xYkxFd9-vVY720{B{5TC)h96I7poOj~%&pO*tw@6{uK{P0JrO6sKT@mPYjAT~rd zw6S^F@ARMboQA&F8H<4&gE%?QszmlFvIg;Ub0i^cw`<>We+eczc$xYwWTC{}Ji@P9 z><8C8R~$S^ye1lQPy!B!$m?;T@GsJ9VAJ%Srf@Ob9l>4$(XXhMB%33_cH~=zZsY#^ z-sIVZJ3_`Wm5@`#H19+WCV*iHbdlJi7^^pCP ztQymJ89>1J%sU(46tHnLPO`|bOyu41RN5=`SPwa=h;=x#AB>JZ`g7tD1GQ(ccl4is za`p9<^dR*OM-|uCmbauo_jqN%yyEmx$#coC)V;8!c2BLNH&Pf^oYHO*5zHhb#XKLh zWiwLXksjy-6s9>HnxO}ty_QS+S2nQef^7y_Z1%ACCI+daX7MN8@mKfGO1!jwv+Ad@ zGf&PPV)t31Bc;3d-hQe-5D;agsN7%NvS!&ruhm0ba#5A4c|d}Br_EJBwi)^(mPIsB z>RwOF-Wa{`mP&9&k|=TA_i;4~B1k>K%~v5hQdPIe4z{q+mZ1~1ZRhQwo8K&3wBG^R zdaPEQv#Xl|-v!Hwqx}wt!F^eoM^mFwif345TsGTOGmkSJ7b3PHXX~nCs<6ub+Hr%xQpp1bgVe zBrb*fJZoE>|1vk24lb00sfhwYd~dm)DU2?Di=9*foRRS5un!LMjj{K(6|{zU7$r4Y zK1U3E=OI|q0jf!3zjP>=S|V5o+-A5b#M-7pH`$)<6hmR)hz66G%-Tfy_IxRPXe^XV zjfoNf`Z-kDmkDdVa<~JfRvFbz#yZRD<`;b{93@eli2oQd!}RzL&reBsIHMD@>gRbk^M6eN|rIa?DtF zyQ3b-4^CA~#)P}rqF0{K0HbI`zN@pasCwwgtG{hMe8*+GUvg(Nd&sew2 zvzT5!%j19e{K$<6gVbdej-Qo3>FoiBzrKfDXU(vJ^$A z>;M$tEH50X<-pG1HX#-UOjX04jGw7?uvUkUy!Ds=$`3s^+^-M9NK6dv)AV=LH79a7 z5VnAa2j+P$yYjhg*c2~Bbxq!MEnL!BW9dY$7-i+@q=Ta z^a}hhMw-rzW&H4g@OwZL@FD}toVlt+Z%lTL!;Aoh4j{!cck~H@iTecmZbc_8`xQm#rg4|idz-}#egrA* z8k<2D#vA*jl@^?Aon!Qs`wUK^d{M7}%ulNtdhkXJ1)MB8hwPu$ryVnC zBLuy9)csGp(V9k;KJ%CT-wb!)A`hX^Nx5vEieRQ3dCxkN*!k?Lq~d08I-Opo=xeP* z_9x0`Hgqm6){{j^znl$$tVPJJ} zl{@UMoXp~Dc=^-8%d_a_Qed^LUM7P9bHO=X2!CKF!!N_D1JOwjTwqX%QNA`WG#BQ& zGxNfGcV@_{3lkn z@+?gk4a@2(mf_<^d+wD{rdac%#EG5_p( ztTFre`FJG!a<%^sR;=Zto@}gUBNO=tlD&6>(F-oz8E9=5xGEp|+PZKvmLwT{;CtFG z>qlOfOhkYg;xsSpoWtm1*#ynKh-?_{u?PO+sdTtL4rpC`ytv{ocH(C zAgbgHfbP312Pb~#^(Is{DXuhh00t=zoX78_NP% z*Z*N6anJCVr|rQd3uzy2A?wBX zqrorSQ5BTyM;44Kg|{HIRZZgCu^rsXcBGfyN<#K`Qk#L`XvYgPPi6|ocXaLy^nxuL7!2Ttqp*SlW+lo2%AdV?oz;Y;m5y#@rh6_oGm5cvui{VOfL(F3&fBMMiPAi^i#BZtE(qbg~RZcGvQ6Z(A^8CO@$Z2JH+@UUx#iC6I9!QsXehD9@8UP?Av)6>)kCwBMynz7*hD;_kQzraW^z$mj zIEKdh@5wHHl^BO~X{#nVli$>Tj_H|vU$EQ8aB62~_Z*e&4+s+n<9pNAjpu*4N_)fB z`5`L*dxIl7^Nn(k=r?_2eskATS+sARt^+d*Xu7k4+h*J`W&y7}EJoM93WaD|fAwb? zTL%acuN{zFIYpy7WXYOmrN!CuWTmT{$wMH?5MaJit+y{5uqd?nuBSgOJ5yJLzCOU2 z0mT%^T<1Sa8nIDjFhB8i>@~>OsXiSurFsO*<~*FmMsN)=R-N}tz8EE?d)NE%!}4Sh zD2t{fmD4mF@MV>-7V(CNWwJ~RJT3M&_8NI4(+sEr;^%)_@OI>r!O6on8~4aLL;FDa z6!9#VJI018oD%W4ilWK-K(fkObMl5Q##_aYf4?iD?fzDR|Np*pHlq(Ww5=3=q%X&D zFV`Mht3zjd_(`s=0ei)fet+FEBFTs01Q*~5?qB3NfcfwtRFgO379usiv}2a%pDPv= zbEmmdPwgD7H2eNg`%M7q(9Q))UB&^cf3p6V$`d9pop9~jt#79nY{b&xb-dPxl?Cwc z%Z|z@BPS3&(`o~{Lby)gF=Us-9Og< z;w}fl1+m}PUeYJ)c_c#n`p|pph6J$x>A)*HP|gpffBu+5AcW8`(i&0zq9}ZK12O_d za8*{i+|M5HyIs0xfea%;n)K0#!NTgO@A-xkx~<|~ zNR>@IVC=>>lNy8piSzK&tezQ3>M>_5J&lPlwlPL#7{4z!WfK)5~zmS-VUXM>PK~g zXt9(VXnOCY&POIKs?VZHzr(JhXiR!$%+@FwkDw8uk!=dSYT~SD*hF5MFIu$> zfYFVKLF}Lk^BI#H9xBkrKqltYQPMY-B+MTvzmzevWQ%&!O=by@{Cv*;1=UA(c9Vzt z^RXI%ss9O~z9PbKkRd3l`cv~sawSyE-ppsK5B}G^V;vl6w9SYYAS$35VYmEyXSul& z#YG(iG@r^AV)h>n(f-oVVwCa{o=9*0&1&JO8KIy-hXr2Lr14K3q#YYd3I1(2InQmp zc+*|Zt302apbJzeQr!ZA=DukWnsS0KMmwb$IR1PXfeqap)zcWW2#pa7FtIV-j=X6& zj%TYbu1}nbZ>HJBI4M;N-t+oP%2w9)kqr{%60qrAprM+3hgjj`MnG%1UHbcOb9Z2z z8W>Zx$k*CNO~NLl_!J2Lddx?`<>K&^5qJZKOV{?><@tRx@$)dP!!x}jryd_30X>$PkgJU;1PxxtY03KLlT<`zhAWR4xr6dWH8$;RrN z8p=dxqbH)35$P(&D(kzNs#=JBf_d-d8`F*L$EVmp#3OAp0{FGB^6VbjV(rq7o!-cz zFUlC$QGBGB7ZT!>iRl&lW|y0Ze+PG^dv=yqRxi8IA;}Um+>RRhHKSb3E{To}#uELud6n0+c2aQRg-a&y+8scz^CD=_inq2458; z+f$FPd08Ak=fP#pr+lvr4$Vj0oo>{#Xc-}3%=UZ8*RfkiTAsVZ=ZZV~B<@OIV#Sx^ zgYFPZe)f+~xx1njq+H_!pzZ~NP@=*iTsx0q2dSQKf1m2T^!ju$jXfb&_OZ6fo8M1^biblr{HA>02Lu$+#ErEW*<&bkP1doI@RB7Iqhb2ofV441(cs~bIh z^9Ee?Y?c;f+yGG)?B4*ScP5gIihl5ZG6g4TG@A)o7n*0FAv1u5qzO#?`J#R(F4a$(~;s>FFh+aTahqzPXD^d`W^Ofr~)fgC%z{WgVMvn z6ptF~WIhSsk@-te{(HIC6xd%}#b4!5Vglk(a17Lyi*B~1Vwe?N!m>Z?+A+X)zzM?C zcQkB=V*;`)_VYTrm}O=Z-}~PFZfkG1LDxF;$X~QZJ5OpB8V$~Vy0G$_8pAeH@*w&} z?~2%KY19jc3j}{9VngWq_ZTiVUofEPDy65YBf>L^nfI`K?~^6u`^rftGF-oJzWIxd zTJLJkGsz^93*C6>ed6HC;O|M^Ek-~>I+x2GH9=)qTWY}oYD{H|Ipz3J@LDeOddX4c znE>w1cnnfm>Q0e+&#g+J=+7g3@vh$r8Db0**iYp69d-y)Uif9^@|X2Eh~tJwXC$7Z zBvNMhZN-w~r!Th+w`c0)4-LMrz!U~fpF#fZMI_CIck3%Fb8QrzDt7eq8sHltK*m>* zpVy14t95hi3IUaajxfpKsjk=HiYxizN-vwY%NV`)JENM1Gl~4iKH$w}o2&6vdZsXtIc zyEl1hDTRE#4m5~4+r9SJ(}!b-)c;4S_#82(nY^`|;#GZH2Qli;;Kj~*l4McW&l&RP z+$1*B0tb;la42{_A*EHbc#~+E&PihpODQB&!ed|^=v^B-Sv#9Yh?7M{x1XDCE`&8l zh@6f6R@pFtY;!0|gR2`NEd;4L@4rifgmG<{Cdr4oro57LLoDf0)U{FOB2H~GzP(C7 z;t@9CgQ=`QMiPrj6N>$va?S3S#whfyE-66WYgW`{*aNaD%{Eb7vuJ18gR`QAhnOEl z0S8i;yzCD0kkob|>kqGRnRc8jgKpV$CxSH`Dv^mqd+|4$a^NBA?RU1Vdl6SiF$lta zL~#C`Nh_=UNCAr?!SP}?689ouSmTAZ!kE<=i&b1oWV!A7;+oj3fMQb-=T@Y5l(TV( zrQLjejsYplH|liEx|TT+FMhSoa$DsTy5Az6FV3o97dFJUtc#~g1D1RQcA>(5=Q6sm zY@(u(WN&2e^S;CMuBPP45 ze+b~@EIstjrLg|f?kD<;+=p*3Dch<4-OSvTXv_5fyP}zu49{!uC~y1FrCuggy`#rt zB-Q3VSJyC9Yh#-DtFRQd7{OIKHEi`f(ep0g%zG-*$`3|A45!ah>fpLZo7&D&JZnV= zG7tVrTTQQ*3Sif%y7pq!JW%;XPA6eeKu>u-X=whztgwJfZN}57VdvLs#!$E@7tHOUrxgGu zF?=_~O9j^_9V^P0nB;Z6o65!e5b(vpe`ja7<6F5(oUqZK&nO8fy`-cs>V9(jZ8-Hi z``ibDFT;^9J4xZ!4ByFJPOZ*qW!En0A9NVh?RWWQ(}&FQ#c?5c;tBT%X+Y}_iIu5r z4_s%v$(D#y3~NQh<_S#<71$z3Wy|5O2zfY)wRc*d%PZxUq2N4$uTL=Gx$Bq1-It}n zVAjrg#f$9R#MQ5`%U#8keG)```F1|>8h()4A3|)=yF3XXi`MJNR?F|}aszGt>lw3v zI1*GNRA-8wMQP(g@Zfvfdeetc>K9}J(n7}7{89e7MJ z1_g~GdgH-E?%m~0=bud=s4@PGh1cz$p5XPcdQlqJLH#Hfd9k9`Tn#n=76j8FboF9b zgIEvo`?L;ZeB}GTZM>c8?1{w`L>AhO;z3%fTI0?`ul*?#HL6-6io8$Y1fop=LYt_1 zolXL)$($13;h`V*@ynFPs@6)ZpV$V6qN5i#)?@#e+Oyvdgg1XgQkV89Vw*Pk$9p?~ z+MsT_4+apYMg?@+_T2XkvuaxT|eVVcpuXwqgb&fA$rW+q>lXUL_8{23L+L^AT4k1`E=x3}3hJ2Hc7L;UB}*tQq; zn)iS?8#ND3lE0K?LZz&A{QIJl;NAr~kSpTmzw0XT6v>pf-&rHLj1WJNEjF_S= zJJG>jzHCJJaBa0_GMkIt34C!y%sqCC(jd8?G;spCoJw;hZC4_x$AsJlgG-i+9>C7I z(My(c0!BuZ9LF4(y6OoWGs{pE#%97mkh>{;ga)viK2DJ^6hGVN4c-me656SyG6ons z7Z)RebiU?wd^}Gi`aO;aE|@Y@278Ud)x^YNXTN4yh2@&H(o@bT){qR=>Z!a7{TWej>L7tFn^J>-FxZ4nocnIrXssj>V4 zQP^!`%mS}B*|~>!!EN)`R<}u;udzmZmmGP8)Aa+3A2;65*2j{W|89iI?n-CaW%@Pc z|Eos~zb)EJY&F17$7iYz%%C3!Tcqsn8me|dm>m=%ZD)fsVp}#B4jcboqN(nlQwJBG z`)k8u;fwUXl0=k;dcjGuH}88$M0RxDjp7SJ%JF2ZrV;71lS@L+)g@h+eA;sVZc!v@ zDEx8$uah^<)>L@r0sm)Lc}CiS7riro+mx8 z?@_(U(U4aQuHT{6bwZB|M7J@A#lG;jIRVN`7y@&$R$^#rm6Ti4bU81=n+&^FivXvM z2%3}>22Y3=dSv9YAzohSgy*Y*eOna~_^y?guiCW0IX};mnL=EyR~JH4h1j^uj7Fl9 zTxR0@s)6C$inXN9)z1*S_)@J|`jzjAxkh^!Hm&X+{|oq-xNQOz%SN2}@`9fND{V@z zVn1A_&gv^u)DZ?!zm**wcX=bL0!g{E3ZcM>X#?|aoOxoZAZQ_~Ax;*o(s1>*e%x1P zp1;eVHQx$59(4+MQByc783Pp2e7Y<;HtyLc!hoQk!1YR{V?ew>t=gKZG&X=puMms! z7V! za(cgPk~tP>ol%TJGgevFKT5#Zp4gh+!jxwvQ6Cmg$$Y`cv1*cJhD^VMxK6%imxOR#duCp!&i^9h6?Xx&`A(w%--sT zubXXf0@W-hWFb1dHidrH=wBqW`Sr0}2lgA+IxfvVfkcT)-m)ls(H#h38w+rTzuRyZnM9sR7@M>#a(2A9D7P?kOM@8vzXJjq_nEPMsnt z9z9#MKhEwWL|yZ_P_6)Xf}x6*D^G*Qgw-jx%SV(%&eMm%UiuVTbLi-oWqXJW3+vh$%O-X${%A&^)ihspXmx!8vV*QlCCNan6Hm zm6xzF@&TTs(y#4XQ&}>8qpkVv`0bjgRY_}Du$z~ASvL2_|0w&45@N#lUv85X)SCYT zQ6H%14HIh3^$V!ZdIWlZ$b3tnNW5fs?F{9@hPrB)sRg2G&3Z$nH^bpG&kiZhCc(>j*5oitYS z-&`nO2&mnu001x7@=_97MR=vK$L2x)HND76RNd{vy9_Tox!bg5;m-=<8i+|f5ebtp z!8utjjtX6iRh=vau}P8Ln7dT5XPOJ6jYk;2$L06H*);bmYwiqrU_Iw|jZky-?C|*_ zQcR-;4=INayGr0gRR!E!X{G=IZrd1(Q?SUS*tS&GvM7;in=5C6CH zGzLGug4}MdkL?ilro9Zy{_mhw=g22!p0n^biclSdZw*xQk;iROgKu4dTF6KU=K>y= zMadtk{-rETmxw_sAb|h{e(?|Z(({Rkknt3+q+pE*&gP~zYfCq)fT?FSjV{2!R|_-$ z^?CWKccVVOAe@qpkN#X6;ry`FBp7*$QAtvc=TDv|j$MB8#^Bmju}dBg$obU8NGy92 zvap%wnaeg1jnN9*N!P z=HfjJ;oPa&mq60`6!QZBB$x#c-{;<}Bc*CIZ=}CK_NyqMyU4Z99&w!OcZIm5rFScF0{8d#XhYl6w0&9Gs)wehBd)gG_9ov0ybMmN>x)}T z9O^W-x%Q-u%^5zy)v>4ro`8y+Lxf<2B*Zktmc)hi$(&#BrV(aMy;JyP$uRC)*eNRv zgFzL!C1`V%hrFM2vitq^o${7~q?_bxs`s*>in(T7xdbp(xB3;S$(Lz?97gmZ3DV&M zjRirRJ>sH4Ro2w>&xyI)gf6cN*d#Z3_bl1V?XIHR*oMajmeME3l*&oJ@~h9|j7FrX zT~dnTWDcwWH`-wqq?xOY2fACL510=eyY!(Qj5 z&x4DN%|&~aUwu`+so$vHIq@d7;QAh3QA~ta(N8Gqh_3B-3$hyjPM5shZ+c68W6Ekt zIpIbqZXfKeDE1gW{D}U}YJ{A%8zmx?fbnL3X%J94NfHTZ836M0Ol76P5`*pfH7OZ^c{uxsV%e_%Ri;R}OPr$fxJ@jaeDc>17Cx>7kk> zV}4F4cPxg7n7Xkym}}$DSHR3H6^X$*Q);U8&Ka#{61~HSUyvPO_TXWiTb+-$&$cC# z)glib{YX6>r^*`H-Jcc360RunR}8f1f6M2eKJ!0j)c?1AdEUMh+2?ZuB3g>B5sR)1 zsIGGFlJ4%$9_R0t0^m;o4PHeRB(R|Nb(8CME^RM=IA~!D^=N#9+e#hr`=vqWiUSdSr}-3VBeaOew&8 z-p9=WP2?kN7L|c*H3gi=>I`Q4hlNpgml-{;!mh_+GLmnu^|jc^z7IIYB6CB5>=;bVZhULzhgP6+O1^hAbQ z5MZq?PU=^NiBd`u`0@>V*x)-;8=cRfgULt15<;7TR;l2tF=uQT387#S>CzdG0LRl~+6>rTuQz zqRK}6lE;!O=q5;*O6cH?-unii()s5Mgotm))ax?Of{cO0@b8EFi0t-_oPPy#<|H-w zwAXDwa)?+ivPHUl+C%dY&ehw@c7{yi>!mN!Zb6rWEfvO23Y36Sn{5Js9E3br;1W^k zT!wujrH1UeYC)&$GS{Jz)p^BC{-E}rT=szB5yG53*U%|T6|?K%lsBo z6|C?Rz#fljQ7lsGT6dj*L2NKK#{5=J{rS2%Ik`DaS8#rFZJu~X8aZ?3Tx~*S31wfK zFjtn1W!yK5+U_3VDWnBC&(gn$6`+BV>A@Yx_4fhqi_veS6k4oj5Ng6D&^!IR_m;Ha zp&S{&Ye_*3UJ2qPj?y?#nl31t;;2uyLHf()rG( z>Brq@CT^+;FMvqNIWCpY9gRPah~!Z=ua!*C)n3VMYF8ci%-(d0GNH zU3sRC=G!#)*cQEG1YWG_Mrr--%2UWeIHUY7Hvw^pF& zdGo{CgItXQc7w;a_*x03-U*h0cV#^ow1m|ZQy}@6OE_8tx8R+6^jcd@HaxYc>iX#w zw3Lnxk>t|L3v}gOiI#D{b4&3^Qp(rzP}1BY0S6Tuw5+oba47d z2%NKNDFLA-_n0QIw*TGTC^Y{My!J~wsBhL%e!&G4TKO_gA(qoqy}GD{^}O`IuypUZ zi3;gl=ZOd;C1{gLccR_>aE)(5XBH5)JId%{vS4(>vn&dAX4ZhR1w^EELl#u`ZK8Qi z;2GSY!hDPdndLUoF#YRo)2~9X8l5Ubev&o5iGjmsbK%)``hUX@93NE|+362*kMcEp zq4JFsPk+o-;ptQ1XAh|xL{r{S&4NiEYaM&sIKU>^d8FjK=04ZsGCVRaOgoLmfd%m` ze%^QzxzU}OgS{epfa{!GthVQ(q9JredO?A7WXDBbXt*OON2Q?FT9^^0kco+rdeuztD$b9Vv4wXj3%3-DL>qaH6 zbq_7qEX6FU>l97VfTUVY<+SeFr$%ctVFuuy@hJ1esMj4JLUN<1#AlGA8p`GM7m|zd z7V**aHdBujvW`s&(CeG#E0?<4{XC)#;{~ub6EGd(=&{b<0X`s-4*Wv+^q^@HGyD2f z&LKiuR0xCY(AeHy%Fa(Gt2zSRFFp*B*SSa-vTFRA zp3;TeHYjitD0Yu}GHkeXV#-rXoM6%jB<``V)LACi3htQ60q6iEMsfsf{r&%NqU6y9 zh->e>xid#M8^uX|2!8kuooXnilzmov@02AR*~A!Yssg8Vvf7C{~(4pn@J_K=+b%1_l){!-dn;*h-&Pzx)=F?PL_JKs!yxvw4 zJrm%wmZ4?JN>s@Kr9w}8cR+CU?qiv$Z0XY-+|YQ%648tR$CY!@sN@+#QjLtKIb$qM zZD=xW>}p&y{`d>p7`nh3Px!VSGXk8=A7p;@iGotR1?|VwvbNIW(Ssd-gcg)BZ#a*Ekv$z0ryyW2;Z%A z$;CS6Fhf{}U?|J-Te|ySn31G-fC9@fkyyYXgDs`Ivz=0oKltmeOlzNR&fD)hq4Y{| zy+|BC^v96amy2*5{mzKa9Lx2(<+Sv!^1LqMCYEEO+B-fFOplY5`au#=&A4t`geIv# zry~j1f~gF7ffoqq-M|QYrMXK;R1L6IqVt-}WRw5@8h1bc|6ixy%JF5z<&;tH#axd! z=rT0njL8nGP~=>~Q?(~SR&r0>Bd(h8=Te2)^uBr?0|6k?L81xvy{jhpi}kLp7c>6A zMJNG(+qJ!~=C{AI|DNAA&u#l%_fEakf$^CkV%9T5bl?4m|INlXxm9SaeI2^%Hu-)l z0Lfm9p2a159x!sh_*^7oOpTb|ZuGcQGN=@AVGXS;StE?rWJo0_VL<)?GuH6!jC_~H z%+A6bXCx?$^zKAGQ9iL3Fh>7NkBbrRp!X$EjO?#%gRn^5*_^n zvpWb!{w9A&N`wEWhd&jMVL4I4FM-w8Di;9Jru4%>zPApYjfy8AmrVPUqH_+3FLr3= zwjTDBRF+f;9IJldFe?*07=HNUi1HEpZM4#q3n+gFO)w3}MV?3g9G)!|-bbBFZ`o9W zUW4gCaya#0wW%zTW2f^uXz|p zihv*m~ET@ZBB?n@=0xp>dafy`Fr;@%q{8FloT=yC%xo$QU^j?MQ zS@_|NWCG0=w!WqxbW=V_#0-X7H=&6*-&WFbaMX}UBf}{$hBT77B?MXs_NR;^LcJH? zSx?T~dtD~ylG{!Jz`roN>`d;#v3__^ zpDswRj)^@9SztSnU)lu30BR1Qr1TiXKNY~oOci84QhTiEKXZ%Owvx%*1Eg;BYNl|# zO~CF&1{x)LB6NajUFZGeIskrk6TnT+iqVoK{TxKRKSs7}Z|jsN>Jg2A`YQKU#~pNr z)lS7xUv_`v1_m#qB)2ZUF$WQVy)@RDAH&_Hw+`;l4~$6OE!|NK(@q}>A{99@OdsCO zpLIdGjCH3(j4K$|HD%-6jD}oR$Qg&#TwDdccP|!HhoNqws&QxutkeE-S2z-A|MuJM z`5f%;(Te#w!`%5e#5)6OA%Fzj+-HoL(Ys=aN>fA6+^>z_dr0k15`)i9uTjV3CGG1g zPh#718d{xa!sX8c^5KVR7X})pz?s7H`C-wokA?a(ouIY{Byz^_#3$2Z7>6oHr_G1Aw|w&z}fhtGw39LNCj zGBPuo!}oKHIKsE4If(jisjKcM!aipt&b8eYSN$Yg4U-|gyv!;VZgpDyRaS#wp^KhF zz?P%qNjPa_pR=1TsbjKoQ5NWOUJ`(zonqp+;IHNx_Du?9A)1Tjo;DoGhS6ZlOQ^hb zDz{w{&^FK~gy~nYQM9Y>)mC&pwla=cTHa}P1Ph1GIkSEI^S|WBunbA(f2UsJ6aOvq zLD{;1YwFlbfZ$4+=5_Col!o`zu$-?wyLhz_m88XX`VTOoqz*Wsc-MAdRtWba_LXK7 zi{@MuOj8J<-t{|iFCF%t@U~oirFwx#6p%T@j!5T3+ftouxPQVyyP2iVtDS=Eyp{O( z>ENBI;dxBQ74vG<=(!l0M2g1PO+z zjP^Z55StkQ7PQLD+rbEo2HNgcVt+EgS-&6(*7Y*Z4K-enCdOiE9}Ql)r=Mv_T+ziV zaL&El02Y)Uj=@TiNQsRuL*z15n9H>d9o02uu~VE4xChLVa;(xp7iiTdQ8D^8bH`eU zFlx3j=i^i{`Y-ZMoW!x~>O!~ZS7Ljg%iHNozqF4S*CKYoJcvQ$b z&&!4+LlDOIAul|ehK)5#VOhocQw-`Gvv^T=$oGqwB#ekR2VvY9KpX(zDCamdru_*a zVok}hxSFj-e+ckx1Vcu6)c5Ai1g!*Iu%7a(DU5pqx#nWd?pJJG0v8z{3@aH%A0@n4 z2%@srdyMMSvI-~_$B+fs`9cPm4Qu9ZzF;8BE0O_+fYJbAy!h#9<|How{6iC09*q+M z2PoqDhn4rg$Ufr1oXK`x6BPYs`Z`*%UO~fDtY~o)W)SXC7%~$mI&P$XEX-$66u=2$ zb6uOSr%~8b7yi|mhr|RRWeA+Zm-PYR0199Cd%>SN)d6%o*F|yOE%ix`o)@Rjk7tfJF7m(kCtgi1oiRv~qyhRHF489Dplvtl>brTA39{?LERG#t z6#rMDx_i;{LWAv2WkBkY)o(-K$_T?`=*}7|Pq;H*>UOl(# zP}9Rh)~1X-f0*SZqr~2qjjO1-xU7*hTKj|jHVNUJxP>&qX1G<(t)N`o@L`#Vy+Jo9 z^}sI6GUbRD(l(1Exhu}!Sb2qx1b+a`IlK+zH{B5`d=yMAnJ^dC(yjx^gf*|cGaVy) zu|cfmHJExp4ufk8rKyO_u`4v&cUx$cS~=C|nzI$74Z~>-AvA$Q;!nZWXd`6l79>iP zBZ+t2xA>+@BcuDmdyit9_5YM*IG4N>a8)on;fiJ-99Qf6mgt^q0>tbH3#Ioo!W&Du= zO7=zP@kE(Wu8nIMD4Yns=4Io^KZVW6h5k?>h{(+SN`=OmKDpZvmGu4@DR#(bxhPRp zYp_VoqG`fnawDl2dsn7H3TdkOo)rBvSJ`3Kd4#H1Q4`!wu z=w9F6LNK8v8uo0`THMF6#V3*3d$ovunTwgpqUz<9@@*<}vtu=-cFZ!&)$Rk1 zFaiMzu_S1Y7Iicnv)p5WAFv66ggdk-gYZ$q^`CDlrRP(X)(?B~c{?1ot@tKf(NCAX ztqmLK>Bk)apsl$}Ec1H=KWyJ4d`OBYz)3Az)H<3L^scf{HCMFk`(&%jQ`m}yl{Y(k z>GaCE&q)Q<{MTsot0OmGXm9ZC@WX=+>!rROFx8}|n-X>Hx83CQ&}-#$A+5X_r9#Jc zL1Hf@(AbG*TgAkSB8mSeOE2!IZ4uObqIax&Cr=1fazJ+>Lk`Yd4R;*TmH=5ja1Yv~QG>*<9r{L-5P(q1>ca>#25h;3#zOiBKV6n$SCLgRr zm#v1a&8T<0`bZ%eA>r)Y!d`^n9JEJ^SoF#fZ0e|i=5;gtT2ieVoV&E(rTZ;38m{u~ z;3J@bEYpybM?bDu&A%=PvA3Tlsd*R@FFyHsA;DV4SVx@9#Qjg8J_iwLTzGS@b=I6- z11zVH0fucAvHKwt)2Wp5LNX9>0K#Lo6Gl#!@p#C19i6gk9lw!X<OH_EW8suvOyPzRe%MO#Xiw>uNZnKPz9NV`@+$}Ico4t zg!TqqwB=@GQ>Mt;?Hsz_$LxLkEOfb>(XH&A-hkA}nhhxxk~Z?K|KABC z-rJ}CH#fm1xK2Zdk`N>koBa+{7XNzgzR-^a5MvL84nBj?kI(gzW zMj|-uNb(8D5jF6h1AnmCw348cngbC$h2}luTq?A6jrwU}W1&Qlth{IMF&n6g_6}Wj zNQ@)kjv%Lo@gQ(Y<9^mT=>%vBRMz=5wKb&M2F`aG@irL?<{F76v_exq&VDjD-h!Je1W>+X~BQ9p-TAg@Mnw|#lHA4f|Gt6;|rB6wE811D~V zaD9icJyt|YD~_;_KFO+U9Fiyxe-203P<&)dK0z0}6_MP$PRs;jFf zU)su4swV)9BNU8sBZ|wH)3dS&3G9!*8w^dRC&5l31IR&v-A*$7SdC#D&jTc$g>BN&bpVO z1NlXr(flS(veRE#5Uiq2ER6?xk>FAVB!(%TQinBsUPKwJbV4l1n_8qdh)f7}pR#Xm zZabTq$(-{<%@b{+6+(f^2nkIY00eW8HFfdf>is{+!f3K)Li9Ab&VZ4KK{=l7Mym34 z(5vtDTdlJ?5x~_YpzkfsCMi||EbiZVL`sTIT2p7E#qn~pz!S-`aQycY)tqMTw(fwn z<9p!xQl`Qza4WOjcTzFbGJQEM zsH4Z1nyUix?yyc-Xm~lO9!Xc$%b!P}bUFFa~3hbjH*Nf+M;*QEC(t(4X1cR&wNo=6z?eX|8VmjHM9x#zcFbYvYa!$~fBhoNu@bFz-O|#+rp3m$w5VEIQ){k^5Mcl44KscC(*&z% zKIuouR{Pu0B~?;<7JlRi8U)l&%1U)c*uum>Iy&_2Y(jw21Rw`J1eNK>AR#sKCbfUY zA&8!viR|0o%`!L%nHWecWte@}J(MS|c8Z1q2AiXHz4jI#4F@0s69B4w8>yg)`AgO*TJQQ^KXaNGbQE?*e=Ss$ zY2B>qJ0|h4L2&&6;ASsbE)t_8O5O-;_HID4h2wdPzzo%K{JjFe zYY_u5nT;2e6Tg;1ieURG1?XL7!>Q02oAOrQpNz%4Qu=qTo%Vy=8_@w_HDT$M;{s_M zV(Q)a@i3J0fZmw#$6kGjeb=eK&d4$nW5kVNJdmLsZbX6Zh>kn`|eC?F& z+tx<=M)r@)o25tPNfa$^$!M%>Wz{Rh$E+z3#)}>vUm)Pf_+uQ+a=@g{CgKgkgfQLE z?0=@YQBLXX3K|^(q!OuaQFkJhM?x>PsE9T$nA>)Rf_&<)htXn1TJ++fufl{M*!15- z>fRmR^XyyL=Wun@w0TeW@;&8A9I$kUN9P)M^;UZH1we<91@q=|G zjrJ|(D6x032Zh7Byl#pSt;F1~XE`#2hhIYAi^$8%_7X_0M_w1;r4(B-KV!I)mKfld zR`M)s2!$kg%e`cA)K6KrDnAGw>TukmjfJPZHwT6YvBE>>#C(k|~Q zfWtM7j^qnJ}0CK(rteq^JQL8BPsr$G-k7{orY{Q2H5Xi)9pd+l0g^mA?uBo@1qd7alw z38U!eq`Y}$>;RAAtb9}gL73WI7)N~1eIPvLF62H%AD@cvZo5IW5kF-XXB#|78l*oq zF~Jn5Y~{XAspP$p8)?!-l15q{4*3vA(7}P+$Sk7>CDpVkXNjKtfKnuoJ11c?5PeCi zNK&oX%vflYB?P|3t(KI_1DubzOAm#iM-lBk11aKbfP1SGNeA3NQ-41MeF*b zQn{ll3D2WwlgMhY@*B!KBQ+g4Im(>|9cEoFCiS)7aT33Wf(WgBZG9O#nZqHAMInej z>}>4vb!w^Z0L2aw5fhOnN5?{+EOGa-JoLpBefjz@763y4$o|6X8IH{A0aEsRm=*>z zxyAl^2qIX{&URu=V;!#u0GLzg-_d=DBJbtM<^BD-OUbRn+fxZ`=BE(wUomOnV;!S? zYmM-0K&^t14G5t2+8xum>J!SV*gfp7@ZgB(Y&fCbNsqrL7Z&Eg^20i8*3cyI52{;H zoIRjWxZlT<@Qwa8uCz(h`&JUE?oZrel0r5hUp1Uhp-xtrS}2$U(R&~hRXaQT77w@+ z><4hF?RRLh_21!fB?uIMLD|WBa@j#uN5%>K*6IwvG5Oa}+2(^o#362#=jZM|Xjbu& zR8lHMEuaxGgi2S{xQSyE4Mdf<=>B@?G@iDG4Y2hdg$O%T&dVJNTyScCUct!&qUh_I znfUEao1zV~%#y8*)+{PIMm)^#ytm{y9f==Lb$sjIRp)`CT&5$@fTcCQHR!xDc|1JMrN2Pa&%=3``13)y8pohtIXe3BA=2ZVIYX8;v=Y9 zYBZkD@X?rGS%xUut*j9d3LBlzvmGW#{?Lb{N+q?5@E z4rrb?Bz9|bqEy1!-;pDh8>7ZREk)Y6h+a)7{9&D5XN*@)S^{$TE69{SQ; z8?Cu4S*|2EKJMx3)bI2wOzMCWm%cGzap$p1 z1aR;2+lKXTfo_J@y0*lJ?2t|GEFzp$H$GJ0fv-Id%%3p7sEmp?vph|7B-3Z#qi@+XHlL>+>tlw?T z!Lu(X;~XQrc7k)QUC^g-ym7*LQM%FBzdd+@!+-0%yZyWZ@+Hl)|B5|?P|xW6@Xj7e ziJ6YSpb7v7(K((9A{; zl0pIei@_bL6bcofI7GKsKrGfa^f7oNR@2MRk-$U{Fp4@hj(^Q7*M|+@xXfEKgy|~R zc7}THPF}4^yIovD6#b6%{Ho^z>E=rUA4-PDO`k9C>Zl&MI&z;6bK@S*dnClSdBlI8 zUgj4$E>#akn_L&%?WjHPv~I_VyxsV3NG;4>r&3Qz|6lK|tZ10)Rijy2V|$!lN1*KC zH76zL7=g8Z-Rw2b@gm_84~||sr;@c*#XfXmHkhM`(Ay$=cBzNk9Rs^(tA{b$Ivls} zo*WoWOvwgwkG9|(*C9PiWdmQ--cA(ZiGi8H@lZMkCPWscBYlh%z4`}4qs9QUV|p-- z#8i!ZevNy9vAy(%+FyzN+~q?FOn-b9TD!mTpTV!yBGp9Q8C1)RD!+54QWS)g#zeu@ zY0Ck`EP04|+-K4$#prjHJ*c(>960ir*|1y*VbGL6;<~z1&nkT{-@|7*b_w z8vjV?MO|H0GaQS#_;D?URTHCnj4G6Zo~~xz``>BH;AzX+R~%6GHt>sjyT%QZ0CSBc zqJ3paWDu~{{@8L5$i$mK+pU>V^zFCA7~Lx#APHMHWdT)&s3NQDHHfXyZ>q0m-TbIn z^1SV%r160*4UkkvV-bl|*@U4i|D9<;-xh%rVUr;s*&R=sqW+7J>Ub6chR1lZppZ)U z6jVrQU+$oFTFXQzko8c8vTcq0U(}aNORX|R8B29@Ks3l66gS2!yxte^@6`RpAA3j& z+c?TN&__ImY)PO~fiQQ)wDpv~4gLAr&(U`rAULS$xndrWe|lLf8LHBXI)dC-J6O4b z?Dz>pYLzlq>IBYdwjM=TiSV%Yj>J$sIs4KP3$(evUS0e#7JrmXwMhXT$>nW)4>f41 zDQiY1a2)-!Fs#pRsaYWtIPtnK!iv1xNqgm((M@)8qek%F6*{t=9%Z1eOnzqjFfn)u z|H3xOXZg{xqpYpmgn|_-x9+MQ8DPz@x1UCL+x$aY{M7cU+9x))bz#XDkYhjk_QC!v z@M0SG9&lqxkMd?*)``vjqc1QBP&t>DqQ1+3!*7t#l1=40dXLaP!4gx9cnANf1{;j~ zIC!S+s5Ogi7=|zPnpze#F&>pWYB`)Dcuy$*T;ps68Pb-NDMmx#BCUglS3G0NR_6tv#1x=qibr-(AF-n37-mjw3FUM?@M z#iH`c0e#wYnJ6#KVwE^dC6_Y_b=9&WuFj6p^y#Lp(5mi#jffz^E}{rUK_4z{KUghw zl_I(_V8*rAf4vI*$3fiaUOG16{|8cTJc{JBaZQwmbzJm7J8hpb`Ys#IU8_ z9ro+0FHm^GUB_!L`B}ktzj@Mp?;{qgd5uiXwpD*d=>gs)e&}C2$f|7Kf?MU zNmV(HmBr<#?7CrsGgrU2LrvfiqT#OFb+Z59<=g+mefB&ry^wA^pKh3h1RO-z7J7DW zQ$UxVS4>&`#On_u)%+|vPo11utN*JJW1|*}$o&73*?7ab!ny!t1!xij&g2j9k8a92 znDkn;-u5L&CwukN;lJ(p;?|eGJTkqCWI^ftxdx$JG=5m)^UNREo#)Hp5`@h384J1Q^Ig1aUH`kX;x-q#ykedOs-0x*gX%1kdB^1dgyr1O9%9b z4117Duc%T1*B*<;$MKdo|!?@l^R+ z#C5}60AYL$&U+OYIx?mREKTzIBTsdJB1m>K& z-{D~O1JUYB04q(pd~}8#Zwh-PnTA7v#L#;#ktNH>&`-YGL+-&$`lGEhGyr1)3rKZU zRXH1Yq-Yf(wbxlQOambqA(}frC^E2J^)0(M)ElambE$0@0AQnOC{*jPw=0%vLxm6e zl+y;>fyte~v7c(2vyJs5u3FaKwT$N9tp+@vqG)4`L^5Sw)>~xlMg{}$T**N)cfkSx zFnpQ5b6=2ro^*)W*@)q2U;OOb)TtwhK34lL6a7Bu@`rbp`bBs{e2$w4USFI~iABW( z&B_o{^27E<9{lv!O`}n%e3%vm7A+lZ$A`&Y>5CFcN!2dmNjIHtwU!_oYbW|MFG#k_ zTh>llgbU%WI8#5fs{LwqA;3$j~*R=JOV>%YbU9* zcT2zZ9}xN7V7vgfu3rNI$@<+UeA4hg2c?+zowskuwS9I*+Ci19C(j`#haw;`lx$wx zvY29_-6laY$8q$!W?r(EY=dZY*Q*bIRNMj5VYV4o*1OV1f`M`qP0MDAPM<4xg${lf zKKz2;osb@j9RWDNn05$lxlFXdU`08Rx+(J-+GkV%txBNB)R5`5!H(?bBS^p`c||}d zc^UR5|E1&^C>u~oqCa7o)-B_A395HL;x(Or!j@RYt^EaONJ{zfIhJIf)%$icnqSj6 zv&yPUa8}=j1mzaBxPlc!?)Vnnq~1tSQ{pbq8BlBMsQe}%QjYYJ|8YVoDteF>01-Lw z5_omFf4q_k_E9lv5)v)iDr{53%4zZR6jhr&Z}IRb5c(IFb7mR7pmjg1XP_JOtlTxS z4M|~jIe)sXsD3IfqxuK={FK{iuXO7$)O@$Pvg*2?sqdo(J@2mRbZMk=?ec;aP>jpY z_nRZ&oG*_F2rk8$;9G#Nx20fv1oGZPA%L`_3k^#dDY2(2G}^~ zr$uKmmY4si&hS0wXB+rk{7dULcM+erXHIrJ zaFe)oi}#|A5mb9E8J-C4TdVyCCpwsguKgdbd6@oCNSv9po3tJ?xk}6yb@Je-tj&-_ z8g``G`IJ%<=V{bI`f_R}w$61RTU?BKr_1+z?fJ~vedyRDBo157eP?>#ABZCXs}IEO zdAfSxT7Ou1d58UUbUx7a@+>h-7I3f+Y2tWVzw18tHGrRFzR(419~FBMMV0^HONrqN z%|aX0iA%1u`#Wl@OimE?p!|J^!X>lsLm4uUKIc(B9%yGimxAb>?sf=obn~1=*GKZj zHOni~3f*$Dw)!jaU&LYyH{IZ$Pl`tVPr=agT=?J}?A2x&`|>p2gWGfWB!O4cb?yXR zIZm^n@EFz^wP)~nrGYgq$Xb`c2jT=+HHf3=#{?D`W{C$Oj2{LgcT>C+VUZeSwHOGw zq)PS!K~{OKzl)4)=wsh0GzD0-E2y>zUP`sOr=a&-Gdlw5GG=j7-lMQTc9KR*Gg zX6BL*m~y_;VH2={1Hgf7m4&T zlds#lgluZ1PRjgx2a$f!FpB@X6|TQR*LAI1Q5NZC4J`h+=y&$-3tz!{=@_sVXjJyJ zu(aGqY8J}p@;cI)t-fqNxj^Rz8)eV>0!~iq8h^`*euus{tl?k541`R7E&vIv1uQ-N zm`q_p?0uVu){8%C@%~7ymfnp@$CKQ(-}=)p#A3_IjaLWVkyQdvP6SW(+;)N{Ejzob zwY!b5;}JCg+Te3(HSvL?gTpf4mRfcfc$Cz#TXkGmzk?zrsl13Bqi@w^;?mvXPRq|% z6Dy2bm*?|gviZy8*pR6H4Sj|5Q8vGDVfH*8;!Zk%+E9vU8?hVng5XrK>p3DP`{OQQLC<-TPEwipRQJ zaE|eP+z6$F5yMonO#R9ydjL_LRS6Z{0K+8a04>JM#8t)E?rwh~+W^PX#V3Q#N=Zua zp&*`yi7>*wdJmh3*S_7cKE+mW8trqvWM?lTsGeKxv;q%Uco2AvIwT~?ko#!b`F(Vg zrIQ$krW%qs)DU#Jxr?sEvwGY6>WvwRakKR1r|q z7M+Rl^hu^P7iOXR^!hEbFBKQSt)Wf*uyu@8>~z!?zs~S(;eeEg^HD=`)eV3r@w_du zo?7{G|LVQHyM1}y78TBzONyEoKWLar*yZ3$*99Q`9%9bH-tIW%vs`%-q|uG0R@|HaH)| zPN<&Oa|eQZ?l&x7)ZgkAQUt<(b!6 zW_m&)aY^b)SpZ1y%M(6}&4#^OgX%{x6bT+4OI972V-)AgVc2!nILvCfQU*Av3<5w1 zI~LX~?kdk~2L%@k|8SQWpd~L*HAuE|AZM!0zGZhCL9oPgbnAZ8D{6u3Z@d8I*+AZV z8QXrJTFrj2j`7P3*Gw=2A+tPFo_-*nTpVn|Ay+?gsLesN3d*HH#an196eFv|q98T) zMJ}oYtap@^!m2Mls(|2i&Rf;Ec2pTNYJjr*isD*_E7B7pD`*P4o>D>W-#ii-$(PZR zKUYeRW3 zZJmrGB;E?_<}*p@vsRfJ#yh(1Jk3ZQx><^g=p_~)Ndmd+w^Toqsrwg~@_0{9O_Evx zC0jjC%OyTCa7f~cbD$W}Q!W9pz3maL&;&!QS*f`)t@7!TQSy=n?J3&xC5FSXf6}bs zj*dIgyqqKnjQJwG#~dhM-+8?$Bp+vGg%sw?zgDJn0JWB*$%KLUcE|~WbAJUzSEEhh z`N)=uQPX1~n`TQ<-%XzZ-(ub`>RTmqrOMX2R$tc5ScP9ao^^1n-&cDMiL673phSUC zj~aKhnK1JEot0D;nI3>2Z2u*RsN=7efF$R*w+DNZp@!*^&A46Yd)DBjw08H(J+0d-C!M}t9RU! zy?S3AkKS&@cb4LvO8er5V-A440R!PrNJv_$l%@lrrPxoS0F|wy5XYRd(q*h$EDKM! ze{Q&DZ|v)6iX~iC1BwQ%pGPujmvEdC?ost=DV$V9aN?Uw#P_JoRNb44OCXHs2D|8a zzZ@40kwtl@WxR2`_u)+O@HsC9*C1Eo%st|e6hG$px*vdaw_m%Tp1t8rb=aM6f&?yU z2H=hpJFSOuk9Mled(2lAa6q+w1%a!P(2|b*;W^4$l9biaO{ z{m8$i%m#W=;E%!(L)jRAuUWqBVA?~V+bCjNuLLy@d?u*5HRZUJsy&D0HyeIjX!lt* z$l+e*-PPOsy=R~XN+;*OIWS(?%Y4B0Wx&!&XU?K;jFP~GBBu)T$wyG}L}Yh~26l?GlA$r@>p5WO zS=U|<%f`!eDYnXi^L1r@yt2QJsQkxeg< zp=3Q!vgR|SFYq5!cfjdbPz5NJ3ghV@{<*Zu+Iz~&+1l1;3*Gc!A9DaVk5?7S2 z*F1z_74&2ETP_ZM8GuOyNOkT)q@e6#7d2Pju3Zj}YR=NdN%*b5`Nqnpt~m^xMh>gp zTHE$9oo~X!O&C+cU*30+um+Zub6quFX>?eA$l*?c(CiW@%_LsxA|c}Vl}GP!X?F)l z5rn!3kZMMRX<}&*`8bP2#CAAKw{Xbl7ub6|)Cn8Ktp|Er8g<_OXzf^xCxiHZRgW&t z-$AUdKs7?^%?oRd1Ln;t^JMU7%F2~*P^@ zdrqn!@z$k@Oy+;1uy1IXX`%${L)G8E%5P;twHrneD?&7*Ca>V`9oH(EqFX1lK{k{l z@F!5`&$$efe=B!5yw%gw!blIs)W`cP-wjX#IjkQV`QyfN{rEtLNU(q_d2y27@O({m zJXg5@8Tp-8IA$}cBgry0%)XS)v_{*Bkjl^ zO}Q;preL;Y%~)>iS0G#s)61Z~q4mw>?xw}Put zYQM5Cb$6oG%#{$g83|G)zsnx-;7>2%;d0E1h3qaT=PBMf=kssVQ8&{2hW|35Q=VPF z-}#)Z#`^&^|E@;u()>Nm?oR4u*)8MT87L_mVGouD@GOu~M}M2rxZv4Lpm=_R$;!=! z&)B}lV)yz zo6U1B=H4UPlkX^v;?EVp6;sBF9wG`mZDE>FTtDNJHVr69P2Jz+D zJ|hJrjCyKAqp#J2)n#-Si_@Y93P)OoS~|qoqTpMMJ;|MaNDFv1j~yK@8gI{G6-%94 zgxhJt)I60YBx=>ZA4e#6S0tmnEWcP&N6`AC4gV}KMO>f<{Q}4Vaotb(lWCn>iXT8f zbnm41F2~7;fMb0;<}tKK;Bk7R7eAHs>cX*sjl9Hak`C|(24k$$biT@JlJO(^YaWrE zf`|8kR<;!%&pwn3Y&TT%cEa7dOASv zJ%PxiXAC2orC81&t+d!?a9dRSa!}ST4zKv(?VaJ*vFK)yYoPhms6W-Pduqy34?*Og z1Eth!XT;J=GX<=b5a{0Y%i(wxQd|RbV$!i_Y^1K1f41)eK~FlslZhz64&P)4(CZ;w z=Kn^CLq^*+*5@U=afIHPS>iJ(%B{gKexRRJh%PL;}T zg4oi4r${Nr)Rk!F@9TZqr0vo-Q}}89T0U35y{^bJ;G@BuQ-ojAsU^}FFS`^5+|TCk zbHYQvVbM|%?~FW+Zn3bAOI&dp>$z(~3vTA5RGY@a+y-c!_mH8#iQbX|zjP~XSm#ix zhMjE?Hnqs+yZ*Z6?wNaM8Q9f}qVLz#>pxA#J7!*`*mYNcI+H>#^x0{0-Xi{9%WUg1**(g!hvsxnB0%)Jy1?EUQPS1UqPaK?xMGIpBe)9IN7AV4KgK4hM(p* zo|68ha7NgM$VDG0rLP+-JcFVaUH|%kx zddZr;&!TC3eP?}mnbt7>$E#5ES;fP?6Qqo-@M&F|cgHB#EUM6CyPlY2P(N8Q{qy_g z&NyuwCIOFX-Cr`HDqQ=mpCLg~NJ_2ZV`q!%&t@oxDK;m-z*U(XPkEX=Mf-XewaQS} zRreklV5T)Dlh4#{X92u8=wH(OI|M3#pq68j)_L2ro^|;+8=X5F)>X&cv3Z-(x6S>G zUVN>vrG(!9)Jlrt?lUDRMvz8h8&Cjh-LJp-)YnAvr%oU;`sK>?%gN~=44V2eISRbB z+^wDZSUotD`y{g}k}-hj7sQBc7uG~r=j65sLSqt8_?n`iV$SsSZK^A;9k%6`!lZr~ z$57jlw+{KBanyH0WZY0;W^ap%k@yhEd=GZqYWIWOy2l;iK8_q+%LQYlp zl0Y^K{P`L3=WWv)M{WXHNwJV9XH8ikS21V#iy7ge+DHn==8$=b7J!F2OKs+!{E6Zm z9__XH;}OHAU;)@#fPq6a2%yx})$5v_YiqFGK527X_d*+=A7CIS#>(=NhCo-SY{)?^k zw{Yw(YHjmZft9#GuZTbFV_pb?^4MNdWOWz=gW>F--;E#zQCS6TyIEBx=((ypMN}+yu%MDyJ={zn+JCSx#&PQ>(r8II258gnj?&hUcNMU8T3FwRz&Y8eM$YH{>KPnKh>}( z&{V$}p`KpAwFl)0VAO21Bez^Mou|@`!d8g!Mxy@^bw^EPbKjAoEU;twW*o>Ata|Y= z+TtmE=j$GW^7r`+We5ILs3_dcB|crJpXGYw^p1#`^Roqd4X6UC`k z_yJ#5_e+D})R(|bp#6-Ox1h> znHfxtL<+^Wch>eg zta2rJR8;$EDtfTKsWLvI6|fNY=$+hVXo=+LZ}NfD<0qLxH9d@(ZHLe_rap()Ud$$e z$6d!rTB_rL{?2NX?~ICrw@ZVNL&iH&SYt!dXg zpW?jqjBboe^Dp*d2%HF-mW#cPoID4Oc}`2G6>&A6-I*!j>dLi{i+x8|cjzDDrQM|% zlfqx0SvyW6)^{CNMcl-yN9*!u^T*aQjuq4&>pX9RXP3(d9=VFprAoRv4=vma-|axyEBv8+5j4Xo1Gb>I zsGRbxDRKl~c0YHx{pI>y>w@sgN6y^N1TGLuFu5eCIF5 z!{r#1i>%I;TaWF_ri#Aybhl{qI=13BAVMYev@$QIu+m(G7Gw~q;;0^_rsDkou0nkq zX=i+qHo~3Q^^D9pIPh@Jx{cLkdq}o+7C$xbpcRk`Km#Z(@KhbPClWZML|gdyZ~J`t z>TCeC?lP!+4Q5}STLWN<*I2iQPo&t_c25f}Kqw~ILA0)V&(Bv}H&wS#Cs)U3H@}`y zKTv@81_h*>bRf^Imtj*?*14dE-7%~40yOLQiBRJ;aCUX`<+vG?5aF$O(2SrD1U=<& zYkGTK8Ze5?mfWZT?qa;=sA0I_4r)TQP#&H|{i^r-4htFj>lO+rY}>pp5vYTS-+__9 zJN@{0lbLhR?Xlf)Xs`dRcVT5!)#=}VBHCR*Nw2!Z-l#9x=|2bnM7{4T%Txa>Ua5qR z*YtFdWlvTKuCB(c!5m$-FH;UqD2NH9hQLbqZLx=MQc|b*IBglECJFH|N9)?RMszFO zqQ~FsLU8ir{V|vt5J4d2)fPvtrJvEVp_smOzXK4|x>A`eWn8UjIb;OPP+tJfXl4qV zIQxPeQpU%w z7t$N&bDHAZ^kVzhmR`Yf)jXy}p?Lbb00>KT_m+5p<4T&xuP$IM(Cz@+eYChB zVC?JFwS5i#xG3PD0ArJugBBo(3_`J%WO2qz8ESn1PhIUle)-9OvKCjShIxWffWXbH zCfO;R_r6~5h1k6Ag9(W(ICAjA?o~C`OiDYat;FG| z*~k`>C6+AMVDkljJ6w}`3=e3L`g6gUZN$Dut!GrJv1iOXBDxf;matJ?GA4!D>dqbQ zbsgi{SM9=%;s$gHcufzh;e9vqPJB-Adi?WfZ|-^p5VbO}8eY!FPeU;6isC|VyZ7bH zcO)3@#k?mZ&CO_ex6|M^Xa7!zN_iT2=d>-Y^V`_(D;Agkho;d zju@(dd2U7bI1&1a-G$-`F&Pp)IUtBya*h$0a$p0B9j64o_O&jvBdl=&Qhq!7mx(ju zJnb$tS4O>@h0{90Yi+A*++L@UdNy(PPTQibzf^i(iQsgf+?U;E_q}9$gil0lUf_Od z;Qogk^;ut=Um7>dRiRJWdTmbr#-gqRg7$u;+;a zdj`L16-)?oi`zoF|6`wIU9^8b@jf@nft|gU+e{1;DcP7gmW4bOGo<`E_&8Kh4Mo9OL+8^chVw8w+ zYg2`h*;GK5%}s74J`nlFrrJrtqlL!Jnsd-|~I9yD|`dkuCwUrKo6GUSk^` zgwp7br_fB)y;^CmBR0s&G7g`k(@hAA9Rd)fFf~T+5TP6^Vll7@Ua~thNm32Ay7kX0 zeqWlMRXLxRvJ;Jynf>-zgxD%t!r(!g<}~L3KV3EtyNwxQ>boOy^?YA?*+>MJ7;=iF z6r1P(PIn~W%)-l5i-kMiaF#N6*bZ5lM#^_+G{&K@r#y-N*<2K4xV-G)KM1xTWw&E}8i*&uS6N@BYda7Xd}W-bdJviD_H{ zIyLr0^LCyFy5}^HA$zU-Nz&Z+VaB2xYiU08f$WU>)03qUoAn;CWTIyJ!dnSecCArPmmspeRX252w~;^LL&`4;6xxZT>{ zWLx^0SiV1d3P)_GhUuGx;|TQFfZFG^%fIyzn|eDdPX2J;IP*XIe^j7z(Z?HtQH7vw zQ?did*YgwAW-IlRyc+s_=yG+2D9*R5o5wcLN0D|Y3p{mAl;_s#c|VlZ0{AU(0A~ z{MW8r;L1(zUo@@BV@Uk?M@jvl=| z<=#3RkJbcQN%sGd1rU-2j&DExj(_kKS5>{ZRJzY+_b%WUJjY*7uIK;qW^!8^{Ju`~ zLtnRx@Joby9j_D2PY~2lM>P6@h2ynk4DhOHTX-Y7eIt5v_+il`o@KwFeO)!{;1#}(3!GuQ*;{nsF|OAh};j$ht+`Zl zFHf-@ZEGxM#QKeM=?g<17?Niu!QMxwUt^juyzXZmRd_f~Q*yUCRy1uYmy~Vf=<+W0 zA!1Axob+?jK+N5mpcg{!n%mLp7L1kG+#MTWpg?YxdaitGL5UxWdc81t}o zXV#!06}#sB0@267y_A&^wJ70K1626H(l*)AR#V~`vT8%u$OIj87YXK3tIfCY!Gz>| zTo}TIhYHI%>4#C*h4tFG*!Xc&WmI@+=F_abv`WHeP=-vlf5)M7t67Rx|G1{w=i~ZD zU+-qL5$Vv?=xNad=S;QHTk|!H-uoVdbtf>>Giy$pR)(MYQHp!35BW3768=0Rk?>xu z`}rLZ(o*uUC2kGNW1;ONGOhX-KO~(R>Yj6eo3J8Pw4Z)9;3`^rY)h!n$q@Km-6@EA zE;(`&d^C)VQ4DQsk-SqAYpSL;+)1L;>wJj5dhzhhw0JS_X}UL#|IS-T#>WWe=inxJTqYLi z^=qegmDx5s=&FV2zG`5*P2@B8XAfJ5KLg(VtHb=J8U`mj{~A$(s!u`sD<|?9M6UH@ zUeyvW$JpYZv?C$PqGN4|sV%B3k)TEvAn#U9^GS%vL#@Np^Cu%#5Jt}7@HT*7%~?{}Ojy`M-0{3ne*&56gm>pAt+qi8A!nbzXK-M6FT@JCP?Q2w9dwfUV> zK&tI3g|_VQD(xElz!JE@(pErvP=>h}IQ+vuI&Im<*rW$gU4GG|0Rk!9W!BL3R`eRF|UoQh@kZz*gG{k@I2*{EZwB&{FN@%BT(uv^o=!RY$+ZQZBPKHBh&6im z&8RWGvi;2cC*uR0!4D5-G1qvHW_l7=(f)23ycjMkHClH*?tv%p-qMv6r4;X_k8J|R zSF881+pJ%@y(mO>oJtjW7P)ip^*jt#7@6*r3LQ>;x8Sx>VcL+v7`5F$M{(@#UMK>?@ZrCE>2`-qfn zIUZo=j`aPlVNNGr_0Ur-xlfqWYY|YLsOgs3552GKZ7)Q;PUPv0jrHR`xA7B@0@a;MHuj~>xc6kF75>?;N8C3EE( zMlOf^+C8H2&4{7sE8y1qf+cUN9XIUwMxS+u$iJ9GEHcxz3-tufK&WX{pUqr{5nR;zW?E$KGoz1{3nx~l827r`5XXh* zP&g>A+150+E#8}B2=09A=0E0c96AMi3)6$JIAY_pghi;fW`pKLH?|J;+UUn{!`CwG zhXw+jUqrby~eU zcnj;Tf}!Oby)l+KJ_O>?%)oObr+0~nX9Pd)rrmR=+=@6OP!U;1J87aPQsR?qFyrja zG$b>pXx$$bD(&L)7AHd)ctFhO^LnmrnZOLuaaVWWp)q8#+=Go6ZmPNI{nP8s;+O86 z7dS3CS^<_=tg5~L2WuzL73|vI^ zuLd2b^*w*==T3$4uDTzMm;UPhXU{uc8{fpPzJy-fK}kE%izczqyI-quX+cwS2sX)S z9wokneUd}ggPhisyp)8<C9zdB>pK8cPqJPD9(mn9qN5(iPeh*UH|pBE&(<0 zwrLy8$fhLznDeS@;_SdCH05n$oOAxZpQFy-^qYDHYgr*OdfxWWVu0(++D> zqaVQ>$IW`Yg})2G*AGLfsx1%tzGEn{gRH=k3>aYm!?9OeRopH2kju@E|NA!JV-tzUSE=Px{ui`dd5T1)Pq^ZKR%=7Hsi3dLtH-5Rlaw|HKf((EK#=^9$E6MosLS;#d(x zK8dh;2aUWd%r^KpcHnJ3cVBx7MEYV!7|{0=s#3}*yK;>4xDMs7!)CX)N9o%w9zhP% zHZ{pRpLp}e?}MhX)SgtB?N9(*@*6RD6sAF$RSW4k1`*|p1yfYLpB9U1ZZvdJ@W=WL zR3Cr0b#$+Hl6$R6$8hSR|5A@8r^AIl_av0%F)c(Wgl1qVKxc1_CRlfJs}N)PuKtAcNOnt_^@pjSB%V~Jer8@#^Rg5!DI^*$%$F+cO#WvFJ z8W=llS0b_w@ZzZzuv~NF0dIQ4aU#yAKQpeMbk2_kPI**}4B*g;;+$mefHtxP7vjI8 zvl-{apsfFpwT2&AO;pcR^ss;Bj{rkKM|}zY?ycE4_q~1bt#7UwB|eCQhcj-7(?qAA z`_O-6{Xqun*2wi4Q@-OlOI!-MMG0AmK3awzg@n@y-lC|@^hmb|tS|e;_)&pU`Y<;Q z|FkNT4VH`H5g;tW1psS|*r6Du*eYz^+CY-gU=ZW72)oDgyBi9tc|dwKb0Z)2T#W#S z8<9ZU0U-QwBDOih(*=;vF)8;uo+7eM`jY|GFmPGLOyAljJ>z%x#EjFF&-W{UT*X;sKKl>D7TW;Sz?rx*&4YINt!Snw+|8`>-!@u zFtDYfyc1_!4&Ki#BbI3Mf1Vl;b@9*t*=s;ETjOmP4Z+1_L3E!j){}B+^ZxyMR8w#N zFrlfrEe1t`Zub602BD{TqCwYlt27TACLMzJXjOk$+m>Gkefte4$ku<+2FjsQ%}w$B zgHq(Tg5SFZ)RYqAwu)dq51NDk)wBNFc_zWO4W`f2DC$-9`Oj;0`DbvtaWJ@czFpc12;9+|)6x7?# z*JEiG+Wo?BSrmNOOFuCv-+(a!SrS6 z<-)T69v$^JUR*T0ZP%w!nJ$mxkD10s3DLvZ0h?W2pSbY%o&&5Xu4^Z`0;{si|C%jK z*^Mfy_kE3sty`?CZT@;)xr%p!`AUlMYqP}+>ruXJcIXy)Vc(cZnrkb+`e9jB` zWvH*u$J;eYqBqb@{3tYw>qS5j$OzE(w##kvm=B}LZM_3) zo_${zoV7Or|wizDdMtdz?RBBw*=iJ&(WLrPXAIvjpb)blP{CIGrMMB$L$EXvwe!KgQ zxxbo=<3LEQDa9B%#|?Zw<7645_x{iC&hUdTn1t|evK;j-fW${kJ`f&yjclVEE4vHj z!&Mb0ly57V1eey~{vHI&`p-sK<*0RP-X`mzOHhNc=+`rI#??IAlaK&QktEA-5Nt~d zjTRr|zMzO`{Q|mJ@5?%$43WB6(3ADgw|@kn`Z z2e{P!CHMM2n00_la<0_>=^<`*ODH729N_%nO?VT`?tvmXjPR1T6~uM9kufo50G+dS+A z)7m7bC?|`Jo$>vAH)Zytf5K!P*5+|+zc_)~pb1kW5Q}ZxfJ($X;Lgs$aV27+mVCMA?v(;xDUZ2Nt9vc^92xQ^_Mj=-cvUan z{$S4B-ETPcEugMEg3Ki?{Hsa;#$A|3cNrr;v1$)yC!Hag8;!nzC;t}>!YPyz&V^iG zkJUjrrvUYnlfD7Pyh=O6!BL(uM5N{;pn@v3Jcl+*(rj=+WS*C_g9xnm5?fHikAY<; zv=5C=Px?9@cVKa?;d;nVxEmu>FHKVU8&3`J)mRje@xFqhjRQl6mi2UJ-Pkbk@DiP^ z&A%uCj=4CRMau$Ziq zCeL!zA7j{Htg)pF^Uy1u5U&2Y!9YGHAf-U<%r6tfMlE}j44cqFm2ySqZD$S-ILa?P zYK*!gABVH}u*crmWH<9%?~Qxz0j8DlVEnb(7<8BcW1Ni|A!a3A)CW{LISh}9kXbqD z5|RabkD|>ko)gE{pM*rHF7rcM3?t5uL5fKSiB_MXy+X2qqLYbG?%@cJqON%N2=}e0 z3FN2zCJWHBHxwf+uGiZa60X;-y?Km2U$7~NQqSmPAcJD}`u(ES z4b{$Jt1J_hmY_QInCi zprj<|=|CEq5L)@Cj(hv_E1uwa!${YvNw8DOlKKiDl|&^4xZNY-`PFg#^G&8rGhJ?W z)dx=ksl5wDA>g{|4W|h;Qf+@TN+WqN!Hv`XdP3+W>iACFCU<8MtZQ_Rgq+7ba|EjG5U`G*=#+&}{PWQ$YK!fwlWfD?Kz z=s$AQZxf>e-v4VAa*A;5X=^bGu(J<7{glv+{r8iqZuBMwkb5ERQSQg*bkt{N4{aTF z!e7)-v@UjNOsN)+$=w*6zNoD}4?tl)OF6hI^2X$vEuXLx*|-OmGw3mzTloYvzxH%u;SV4P|C~-uR7+i}jsixd+B<9(Xa^F0)x)zxFc3 zoS{$N^_0r1kN9GmhvOYUeNy!8E|hd3S6a}#;MIHZn0;%}rhBpxTY^UOHIu6rg}epB z(~q4t+q!oOVzz8#!IF~z>gDWB7*5M5-Vn0vE^%0pCN&-rci9u)ganJhifOW$8ZA(a z*${j+c>P<}D9KN~trVitU6$mYvoVbPa9Jz-5vPprw-hqL$vm*wHTruj-i&Sjb{d*%l9dbQQ;o?XMXIz~o9K^Wpwjdl2welDfDcux33YUpX zPWeZdJe+SFYE_#e+((?-_3{>%h4x;Ib50DYkTK1Op@_Jk<94Fd3wzwU#0{{Tkf=Z? zn7Un6jEP_y>uFYLo36PBeR_;59=_B_(V;;w3C=zL-RByXt3w|f4;NZw6c%y#jax6@j+=kA{>LQ7(=$VvdG#fB2sp8Sk8Dir_Ql*9 zpVh(bu3Wm3LbA8A*|A^d(w5Z&r$w(Mlj^9E%G;cP2el3x!-MRLB3!HiCW519Enp)* zEQk>as6rd{W(=M)$P7<8OaOXHuTYnXcou=Zdnv!q{VlfAAbotMN3|6Z!;J8EsV}7n zM^et|H(X4*gI7Eol&pRkK=W(Jcq;3u)BVJdaxZOB*~(Ow40&-o@>XUU-6H7X^YR)? zehHBSHw^2+{|U~4ad9^5|CPJN;x9Kpy$IAqvDE1tt z*)?jdiz+cx-V&#W(%x`ryrmSFs8ZC&@$7PlJtVcM){pNp>s`9v>hebaxIef)822&r zKa0P0IrO;vYJAjdy2C5a#TGVG()IP5XOTy~|5vTI3$GOSs$wjfxSv`ZM$_jVaZrM7 zKCeX>3geaS7kZOz_k;;L5NRFli&7(w@zF|rwE1t(ElAxbUX8J3TvHs%x&Mhv7;4&P zT+Do?Q?hqmuQs5yO2J{Kaoc;=zn#HwdsZ zBfGz+78Jf5GOtZZ`ms}}+3H9FOLt$yqOyy$gMm4hAjO)T+`{U}lC!3=Z-22&G~n{h z;{cCaB^yH4a8~t-u$7YBVZInr<@-)lw?u0ht!}dod$7dU(yocxYW&eav1CA{xT>`G zg~Xz2Xwkp25I0D%kjOH9HnEChv#6JG%FMKGA-=H>{XxXewYGsA$FDNPFxuKt$CH%t z+#RA^%ss4RT%W(-WaseVQ1O!N)F>reA1A@<^d=%P&&s-5JJE8+#y@WAx-9BP`EBjC zoe)MnfUkcaFXZ?1Bieoa)f749#t*Wb^>>GtEE5T<-)7a88VI=n>Jq6hb<90|xCnti zA4B1N@#WbK97o(*MtoA(r5>Fe&1T#Ymgtm7_Zw6JVx7k6I`%ZUc(D5 zh!Sh@-K>7&>J}>7=ncPoEcfDznD#;d!Or?8B?RHP&ql3^zaxH**>sGEY*R8Ng0{PP z{9Sq}PF^HDLWjO@A&6_a(_jnD)Zw?!M84_u4uUODc+aw?w)`WKB3-WY{VU(&h9C{e zyWJ=^zTlvdf-R3@z+o%mcz0@~*qva<^?F3ol#S27>~?w^(|1W&n_iWW?&mLVU;i?j zW=?IrF=n)zC>J*W=2N(|=bJlV@r^;f;ryMlMOE2%#}pPe#C0vXfKlwWx|~&65XVN$ z;)nd#mSh=b+S?V9)`Cp0bJV|kj#rjB6W*|si`gEkrjutN1X&uF+!LSF7Xa77IZc@_ zaQELXSuR*Zw|Z`+c}^ac{>U#vGLhkbv_953DY#2H_*Q=_e`@zjedNHu zy~HM`0Hx+#H7Vt0jOrbKQvO%%!sgDJ^Pi0%w7zXX&u7k>+4*!7+}{sBXXYt1ZDE6w zNhY_I@yif5&*I4GbgT ziq0BLVru6QBk>qp+WfA{~EPnCEAtZvVc0e-jRARnVYuD0B{;ImM@C=&HF^XX2MEZ)wC z5}R$l*X|mRKbPQog84_X?lz_UOeASjQH6qZ7xXmn-3Lb098k^kb%>y1NMa~zzAT?w zA(Ee;<8#&IteB1h&FPeS0OeEGVt;}UqH|fh*OX7GX_TX)hsx{GWQxgKjN1AOKZ>4V zzA1~_X<5^GSi_}xh94!qp4M~!pBjc>3;#`Q3TZtOgW0|#v=Y!4Vx!Cl9I<|Ma7?Do z$J(olQjyBNof*e4)XcSm@w+Z)q|TV=DS0~ja8X`ZduKdjTM%qd2}G93Yf+NEuO@I( z37aT&jt^(oxMh1+-bkjOJiku#@J2yLG>i2J{uLEIZbL*BQz@DCM3nS^5{UZ zuT;d)^5MdSVt?JX(UbGXe042gK!ah#DI;II|I{3QBvCtT`Q&73CSxZ(sz0aO4$oG^ zrf?>6Zr<*ic~sU>sB%`jNrOLVT8LI?zI8cQgzu+6I%+E*y;V!u-PlhDTx%AyC8{MB zxQWsERJ6eE+cG~Z&a1wbe>v=9VlVB8W-GpPB~S5Qv6fHmjL!<8m0p8~(=Ui88>XamGv|!hq%@^^t{y9Eld+YJH{B)7f zxa);UATL=k&W2@$Jc^M9vFAd4KUgpJshHY*fw~kerL&ds>BEL9QaSKMQ4iZopo8KI za}4Sf37!){FbAX(oYs>$U$Our(ij4+Q}eo5`Y!r??124V?@0tMY#<6YjN-{x{(pGg>lKQN~$GS2t2! zMnKrw>RiUTFP&3+{Br5ISe?0q@QlX-K*OAv~-|^A5;e_PVd(SIL z^5Bpr?5ic0v|X-x?KlPFjHA@*BwDI^+<)_|1C@B#kZ|0C0@}xy8)Yo| ztXKHd*Zk{LbCmK^?q$3vkqjq%Z|5{a-F;{D=B!a;IFlt^Dx>D^IhoardX~$WF4lLs zNa2J(yAn=S@s-bX|0EoPM*b0dm*Bs_mOT9?%G{U`q(Db|%bd+F?T3D?H55*+R<@&` zBU-EIUun3^pmV_p^k!Y-X^~ZabB=WDprZ^=39BCoBYF@;D(leJp%i|n`ba;Ka0CW=xjiiC>F zfm-$c*z=isLP}iFgg1&HiP6rlaosm#`rU|#uWwGq@wn0;e8FZ|*Po!1Kr@nc&&mVn9CF?V z2W2CEc_^nRiUuXzSD*11M|o~}|8|vsG zdSpE{mJ4yLx|2+igNBo{4d3N9UR^r)1sEN-Rpm+8Qz6F|j%Q08O}?z|^iP|QET94r zHkqsoa29|noQxGktQGuCU`S9=cpd&abRA~cO|Lt2(eozKduxwBW2Z|jFJ*TAkHVhb z-^rAZY{*cI5x_Vt3j)nOR-NMf(uRWm&PTgbU8!?XUDYM+N6s|{0>@#nZch% z9Rjf0%;|AD33v<{KLV5=p7>?5_;kA8YUvsiw%7Gy9TdDEROgn;JS%@pxd!5Fp}NWi zP}m9NvLK9RfEqL80QDmLoSIP-QQG)jv(msLRBnOcuauquQ@MEk|%bmj-*X!=E&VKGW+*^np9>G(zm3 zrda>Y<{C6?z1eG6_w$5sT{X7^nvYg2Jfa6Jy&%uPMfmV4j}K2TI;K?2aEq~xGz-NN zUR$@LoB`DeB!-R_QgS64jJJONE;P54`Ds2wzurXI?WAP;Nw@}$%fHyl}$=QrDOtBFPWc9I-4>>)iap4yP}2QcG_b;@-Ih@rZE;Q zDSvi-)$+`oO=@|fulB%NIB!#6%3R)(wCe__k6}xUwy+4$6rR&WBye^s0aNkThOvyR zPrAPd?^itZk!$p-n{oeS-P~P!nwwwHPk;Ibgv;~BKaT9P*FX?<&3`L^U||p~jkj<5 zV=)jcqzI@>tl+AC;v&pU3NXSHB=hLDY4UFxkmr?=w6R#=`)$OKv?7)~Ec&t3-@6t@ z&-$*Cg_-%+aV;14UeVyD-2QMl@Pzns8+zsO@2UfJbP4J}8XQ5PD2XG3m$|m_L(u7+ ze-*xKx;q*#9AZ3K6mv zt`$eA_761zI>+lueja8CHf&yk?S^H$rJdOl=Ri3$Yi&mI`($H&7#sGk6n#nj*&`%} zk6XT8&RZ=r_{LnpiizDh_yzdY`;Q&AqdAh>q#IX$dWKV1^0QRu_|c+2@HBmI-agSV zUtOoJCFboU`!KmrZIyNKjQx?h_WTPrF>x59B!JuA4D&^;u-Oy3GAeWexy2{{1eTX3 zM4eAkb+}B z;8M?s_)7{5Am*p1DpHs z(V|Jhd4-#UH$0gpNr2s;mPF`%^8gOI@A8xReI0&x1bNR|2(S02XPcBk*S#P>8Y&`) zm*AeSCOwYvR{f=G%VprR2Sw!6r$r#N)1P%m$uKSHh82Je_1j2Kqqbw*&S6zC0*|s- z*~dibY;wfEbB|`I#}@eu=%ktEiX=fNE!Xoxxx52{x7LWiUOY;K;8wOPOjME9yikn zkC!&y4}!|^hmCpPr;rLHYo90U)5)TdnDZ~=i!Q9SG;CydBdyB9Q?C{$Wi)?Y0auoC zuQg4a#{FjJmLA;uM3x#-bFC}9=A&lo1X;G7Lc5u)mWrO4W~OPDRr7v@<5;DK2i0^+ ze}zzkv(F9H5&5^6sr~LItIE*-ykI6Sq#|T7EQH}5v6#TLI9Bf5@VIP~`ZjfHy%hJj zQse}B9RM85GaO)q11BDovIu7%{wDUVf^a~K!A+%RwWg?CclUaz9A2s@A9 z=eF5|7@uwX{*?vCPz@6;K!>9ehn@MA-Vn4b$BCbei&5r*_1Y${QXLQD5W|f)3^kU} zOuW^(4w5c?hu*w3^dZ9j_QwCV&4z>hG|cP2@6zdNevZd0_8?;eaq`Z^DNaR zXjnp+OEn{K;CWC)ZMw*wXg3KO;ew3x_dGfX-WTtuhqSqk*6DoV#Af6eoblf4Zp{v< zW44$nRjYe9`iEw#Qefm@B}0!#xBimJ#&J~a$icx;$RgFoar*0p-a&(&x{0bocj@tV z)W!3S1`Xk5H^;WA@64mhXs1;?na9Y2$i>3!{p!k7p%f9%{yyLSRv3kP9&5#`FwSo# z$;^&2w4v^_oBdu}+0Av8^YSP>C7j(*l-Q(d1PSN0j0rPmDpfomG*9Fa1oPEwka{Os z>x@Q;K%0rfM7s%E-!D5(Efc$%dre(7%CwZ53td#4PsYDO$t`g)HPr~)u>~l}T`c=* zAAR#GD~}x-vY6ENE29}2f?n7fo@H+h)#DG4*=yZM5Vo%;h$m0gpN0ML$#_B(1w~op z76(z^Qkv7XTnLOdL;<~r1jxr33D=aUE5RFdob~IfW^YR??xRfi<9WUZlsB|GxzIW|j-K zS5uYvI*?*Chb|Jl(-=7aJuY5;7pZ+?QIRibon*RQa2+{KVCXve!%TYUy}9s!0>vbj z#DRP9P<0Ut8gGpm04sAIbzABeiE%h$;r@a1fPgLiFuIWa_i3i)yO2TSyOxvzCYe0~ zDWdWj7pBMIaO8I~4=i0mhASMln`@hERz6gOA~TFM!?f&`IcmYHSr!A>@}f5*5%D32 zBLPbH0=6O6DV>pA>=Kvz*&FRw?~2zJ)&}liqiKWeLLb{0AHUtaqM-~yJ(>ww&nNh5 zs&!vUPg?rhg!T#8YM2kae6e}^SqgHThBK=ImX?;9oH`gg0N#C!RgK=J#AC5J5f<9!G(xIO^W~>t^UZH1ZX-NkJR%aHx8Z)@`vdpuzI5B zlWV}1#4~T%jZByBw(24qFe~AZ7##r4LhW*Vr@nr_A-zfQn{1=O4|USEU7NW(l)^mLgaNz~*qaT$H$Im9sXytzeR?ds{k~8 zb@m#ZDouIw+{!)fR`gAQ@c`EefaaZ&QG}A-JCO95o(fYpcd)^L{u3yX*$K^A1bQ9m zo)uv~nTYMehUyUtU~PSt`GU5`9Nc}vVse{+8|U7Q8zM4hL0c3Ff4%2&O+x!gd2-Dh zvV|M}yX%&2QugE}Lq~e9D6y!Fmw%s>elH@v9g{wsb=Xq0i9c`kib>|FYQG%Sj^;ty ze$#T+d{}0EORK{#jyMCayI+oO4+mTiUvTu$6TlxRMq2CQa7btW!wzJ&eS_Z~Bw?8q z+v-@NeUM5uduUgQuet0l1R{9Bfz+V-IGq=ksH74Qxh<^79?gtd5|HQHsaxrsOnxCY z|BP6hQgYl;etJCrCW~{pI zg}p~B#Mh%NXsshHmw#R=+S5pw|BMYYQZpGy4AZt(qO{u2@_oh5vQI@B?@z$X{nDWb z*T>{+;r_n;4A@mTC*!)SIuP8h&ZW!qURG0NEF($OrWajeB#xxOtu@A4`lR#BUK@pV z&cuC|^JK#oU>X^1q1o5g@h7Q`taR!~jA&@F;(kM^&Bf&FBSs|64bXUPQ56LOlsnh5 zK!Y;45z*hS|L_<7cMNcI_;wuFsyXuCi9ig5gS}W+WgG$u4Sp6{VDa1H{^g{Ws;N^^ z_+F$Z&QpVbE6zZ3UYoBeeoD$8=og{CXN%DL)P$^Hr zg1}$v`2yHql3G2g1L)*F1lC$C7g=R##OO$Hq}~oz2W$kjFB$&`$huphscEvl|L#a; zFx24?qP`S&KYz8qfv3zP3g9&k;OQg|d1_*Yp4{9o=!XTr zz}v#hRqosD0EVE+`tPOeo@6#%c7?%5F|$VlJojHD&zA0g-Pz3e#Hv2@+V{E3LhePF zw-osR1m%0Y4O+Jj4_@Odx3|FgAm@kHfHt>=WC$qUm?+oTeA(_I&QS0a{eJ?AExQeo?N`}=bnaq)@zUOVB8 zOF9$+-RAe+XCFv$?TXuHylLvb_Sb>*t1S8-cZfp&zAR_0U~SX`U=SW39fv+@AX z^8L&6=+@?~H5xphgy!R)uLq;lq&4zq$ovnlef`-s<}*4KDatH`^H`aVLyG)_JM%r79~bXXV-1mm8CG0vAO+$Rb#)8YHe z2GUi2f+dY$z&~%xnWQDtluJ}KEph-};Xwa>Tq%XCR!ZW)y5-;U;bN=1Iu-+ z|JFh_Ox>cL`ZRv-5jDD@i4y^44dF!<<*aiJVV!)rZXR&=D0*BSxu}TmFjo&Q9SFyQ zwz2wriQ_=rsh>8%C5)UUlIbR#A+^tr*9l8{^3DdH2dcdT_6hRESWp9T{?YC!$oQO! zmuzawXU7ln^wYP8TP(1MsLbF*MP9sW6&Eoc;jEhPmaM5A^kngXI6tj~bCkzVqFIM4 zs`wj4=oqLBj~X4?S}eTGhOtY>m)1tahA)?Nz6>LAQnjYXe`47eQ3e$j#FH3*KKESZ zcsbL7uybB5Vug24e<~c-Ji}k3G!xw?=JIZl=T_e->f#ytJlCjyfwX*u)KU*4VJD4qqv8IX^@ zHukjk>_z5wT=je3-7hoov`w<^a_z<<71~@lyvD4V)*wct`B!1hj$z=9&OQO>kJb8} zjI&uthf~kect*}IQ?bv*8|52U(RD!y0-UGjQky>{+$gk?ADgBZg28!gI^FQnOn3Gf z({1HnZPn~a;(X+ndgKP7hKALB089RH*P7FRAvc)l1nl2Qyf|8N_vT9DFS-)RCZd#X zzU{>BjqKMmIY%%O>Thg-|JvV_b1sVX7pg!&-|%k+kNr%J&HmSkD1HC&Lqzglc-aZb z*FE%qXA+~kc?!@w0iN{SyI~UG65-D2S|!VM#~nV`?kTZ{R;4a)_bo^VLXq zM&=hOv)A-8&yJ&k6HHM-fNi(c)KLoQ;bNsd%$c}2AmTgF?8+3}BeIvGjv@kd(*V~Yk$f9przOv(E|8d5Y;Y9dV< zoZ9VUS)l#Z9S8jCI-A5Xwx==lBJT{6^G;JN0V z=69D*tDhK8@A!=mZcP|{8qdcMb~}E*FCa90st}LcR{rl(VCK2^mD@bh`ZHY-HscXLtsnc$WW4zX0m3bowJ=(eZEv?g7crU;{k4ssc zetCZ3M**`t$Q}xYLWXsKe^mn6o;t9T1zI z_#}0T#oPJ%y#ucd4Tk8X+X5j-d`rg*&gcqGAjIiwPT;v_q2)jGnnX*(mh}@cl&ppO z+~5|OdBd|cwi2IxaMJ+zkK5htFS$3ps1wHQW-}V?>h)MR8I{l;4j7ztvcD~Xg-&}w z0$!yS^YM2cI3k`g=GI*AanKUeX4H=Ywi%W4?1{a(Mu-w2(t+r19MT>}BGRb@UHn4u zm;(733wVeq$Z+K07%bmzP8m1NJe$R9h|jnzml&k)BX?jAOcOCN0{E-H?j#TK`Q-tx>uI{bt1xU-sdG3oG&eG)EAgb# z+Tr?9Z{4@aQt8pRE&Op=sL3PGZ{b$5=KG)h@>q6sEpF;g1xCF&{x|L$#JwWqq1blj zUxC5M0cC!!>(jpw+(>Ht?Aa+Rb{wMp+2$L*z-L$YQmt(2tMe*tTIROTwlHZ%;zb8E zb&p{_dZvjhh_nq%O8&sw^Vi&u$(sG%r$kF#AMer*eT4U>9x{^1$tykn9#p#aggD%* z1Ai=rfXq`4j;*}5zFnlHRvFb8a3mO#rH$W(r@j|fs1(Z9vq@}FDPU@;IJ^ngjx)Bt z82)Q}mX^nBkbWjq-rzOtO_5EfcAEYFXgce^rsMAK4-ip65b5q1DJUHS0TEDQbhk*C zAUQxpx?55@M$71sZlp$cH;mkf-CWoGz5av!u*dnF_j$!LVS|#r&ut{p-&5{0;5Q(v zYh3L*s%9wm@u^p(iR*&#Cap;6R}dgC?xbg=L{ld~3n5Fu&Gl~SjNQQ=$3L#O>sR+j z36zK&TGmm$_s=^+*C&uroRvr-X^n{*!zbCu5SR|8DC!k;rDy;bdIxkemxcbn!Sss1 z^1;I9Y3b;Hx2T-}sqCCm*$*6;H2iUHmfRv<3nKI+45RAA8jpEmT`W`gxqR^K$ccA* z>+StXP5sh^nNOF3V~y~#YkKSLFz~i}6t)Cww`O0sg;nm{LgMvR3HOYEuO}on6MrWv zmykeyeXub%g4bNMA=JW?b>mQWNSB@o=%I@ku1V`o%hn0i+^9#N)Lcu~RqtUD^bXf= z2(;SfVHm!b7oS_MRIPZ?QEB<(X+eNnX>VAF;+}@61<lm)FFc`iJkoYQLgus(m-|&?xk;6 zM_2Wkb%f-OHGjiNp!)J_rFKFjgn=d#uA5ZHt)hv9gZMKXZ5f!`T2(c1PP%z-Ub>td z^8#y>s8oRc=V6;>H*vk#!3xiU2-wm+@UELvql%))1N+xas6``Qak^fj-u+%j;jP9D z*->eK49q7dF=jURMr*Nyw{7bY2D6pIB`@QKNS5JqE*5dCxZs#U_n>kj0U)j zhu>AT<~nTV)zDnH{!4mbVb$CD!QgQ^jvn|1WV-5nl^_s z)4Hqs%co_*U4IGXM+C%UkpUhCcMCuJ4fc`HnK&d)Oseq`f_C|y+@l~1N zelm~~ZfB;5JrTE1&_o9XozWjz>UDKOQC-TL=>;r{C_Rv85Ie$D<823f zCAA;|R`dzLsdpf-g)sGZ3dq{`xCFa`36C<@t#TQnBhcZ zeU1J+2HEXB?tjOMmuVotKI99oGXJGpKRMp|@m_ky;ZxQ|V-xGl%22cAeTgvVty|Px%afxdg@Ok5=hxLpo!b*MQ zywCh^A0wN(4F!8}S!uhwmj6I+dol;|^S3sF+KF>YQPXzZ%UcpYd(BkOOnAy@S(C`_ z&i%)X-7MKG-J<69{b=ZyAjXazl0(_;fD!_P%O{g@BFd(Z?iVR?;bR}xvSiz@$e9Kw zXS5&P2$lU=+3lKY*&fRJ)x8nrGA8Gdo^)8x20@Z8jXaXOfiOg>g5Jh&!kRVG6aycZ zzfXHgFIgrFaS!$=KeNoCXno^#c{Q2|hLv392O4s$zZ(+Z&3%6%aH&9h>s^@24KH_z zvCsz9Y8&4CpGR3ZWj7nMbW{qR{a+nu48uWu$)V zK5p~286m9ex;bWPyg){3-MA2`qQVM2te{0rbv_y$(*Owke4#KX! z)7Mpc!HEw+$<#2RL1?ez-x89X*b-|z4A0XYB~^IcsOOicvy7wrSy=1w^|B4x;vojA zv67UVF=t%)Wg(p$y5Oi+pzpEu)^~Zty5Zh*EzfQx!1^t=>J$Oq`MJxt@r;Pmb+ih3(6h*eTcIPUt|CFn%-_J-&ruK9!IJ1L86tuXvdxe zQ{LWqiQ~^op#6j3OYX+)(l?ueYpfWqZj?mD6>*ByI`oBfUU0nR`C;~wDCAGUZ7SX| z?PeQsadG(3x1<=B((Y=1#&a9RWwMt5rUwy{L%_d(D(gWt?oqi}#Vh6`p$O$$U`N-z zrp1%ChNm6BqZ*=3Uu|YzA5hFM`C-l$y@5*ESmQ9YI^pCzBj*t&&3~O}bAwA35K!O< zEJSu-C=+!6(mFv;+NW^rO7r@(Nre7f;u*kC%(jX}_FpD;{i^ka#RPMa<(|F@P-LLF z2at4&175%j&5%C;WIrykwaAmYc;QL!gXa1UWc+qFbW^Uxml%jCEHm}Bo^&w5=Xg3f zVqiIK$Zj%n@^bY`AFpZGo~EVf8cSiJ|oq@Gqd&Rrf))&=2S3l8o~&8JEBS^VPouiW~^JWKk zlu121Qj=R5x3Ky9PcFN`o$}tBquRNI`A=RXtmG@E%3lBKF?ENQ3Ww<3v}JtNWIDM#{SI9?r`mc2b+) z_CbU%?9X95x6)`0m{WQ({gK`t;&!&W64GRp9eF4wd0~;XcIo0FX)zWfmM5Jv9Pp;0 zDgMKNm^JJn-0$|wf$Y`5=4WbU8){DD-0+y&w95o9@r!9y*g<9MFkO5iw6NO>=+KYV z@pPQy78s1DGoPPPJ?A{3Vt>u&ab)oyf-LBUYr)n*pRLCuo=^PQk5_-HUOTzDxm9T9 zX5{|BOf{vHqb$fJ`8Zvik+_6g%r@hAtY;E#M<=hnC01P6)ELj=YDZBZ&*+M$`Qe?+ zc=)CO(+ix3pnop|11MDcJO`iuouVvQ&Qqz)B0F%|K(@2JE4j$L?5VG1XIpZe#zKNT zB68*YURkvpmg*N6y5MQeV=H&H-uo@gFDGISDfyN*$Ata!kCPNATB4vf%mXyvkz!yc zoj?0YXU_$Fr~Yd%VRP+X$xOr(^Dwc#NT%ckJPX5eoyKaWODjE<-GbN{@cL|`B!npC zYXwK%+XE_BWt~j#G!44v%ydfPNFS-myEWF+jd!Q~g2FmF^DT6o*IL(c2>fgpVnYAu zxOGwF8b_ZOqiUz5=2{N0d#(6&l+uvRFiXLyR~^e1;I%R?paJpRj!^9GFDqq>UC6v(j#LpCnj>W z?0(fw;rL3*A^XJKBDGBd>H(q{U-~eo-OilRe<)+Y0~4Av>wkIFlusGv5H-qvNhxdr z+tBRijO3ewR6U>CI1;2@A$nr2qP|vTo{edma3F?>#AeyeGiD!Nn(<5V!gwI#^2h|K zE7?&CUyi~E8^%FKI!LuY6ZHfU84@?gXjV7UF4PXtM#1;PG?C!l1@Y5YfwFYcOzXChvk&rX&#Sg6B7Mbq4M*$30d)+Y74$YN;g>dGo% zs5LEW4)fZD8pdm_Geh1l_-6Yh58Zy>I))@rii+-tX(;q3sjIS2G*<@p`8Dn$rbGk0(_Drw?t4>eGTW-d==A?$87v3 zaS%>c8Kg8KcKIvm#4nT9t1}Ab+QrP>c;{-TT?(s2_)erHFi&&zk8c&WXo+j- z5Iog-vmMy7FZLPod!+iiLa`<$($)0+gzjNk`&sVJY1j~Ss(9g{(M{;ETD#mbM=E)y zLG#GZ@zkec(0X{i@3V%bq6uT0e?cxH_C@nS^Ww#Mit_32hSA&#(H|~3udUWyx_!*0(_diqy{Ti3CF zZ+5lrBUcdIs^b4&1Za{&lPGIB3jR+9w46w&1$CS^NCA~i>~_ss&3n{slg!3BgK`UG zB~N26oK?7idV0o$YhIH1J8HH041le(oXU_}`y8C>FcKbM7%T9&WUAtiX5HfFKB0%h zx~uK%Tld@3UN0XD>n@c8-Woz(h8?8{PZv8P$>F@vSat%VKyelSiF#ix!iTcKYu$n9 zQN9Jzfzt3K%p64cfjE3=5%y-TR-YR4raYrRoV|+kXX%VU>G{~FFNk|MR+-(F`_(Vb zEjcY5AOAdXR#sNlt`s)Jm|tA{~~e4oI@t@ zQ3Z}7u~+XU0=`Wc=VQ4Bn5VBl{65&dZp;bt@~(V|Zi8@IeQ+5oxi7)V1#UhTuO_SF zYO5S*r$G?e+TeqWCRkma&4PG37~Iv%K;+3-zN0F>OXUv`c(yf1st1J8Y*fs?JY%R( zhl=J#PG)8JKsdSvnJq&wKT0LyJnMV^&KDJBWeVU43u!lqW&?zg+tDus3cc(@#mEh1oP^zmlxTvxiWD}->NdZX{?=4|M&e>_hJ)V`W*SnVeY zChItupD*R%Lp9vw`E3i7$2`%}E|zmMtC@ghivBCLp?I(I9x-YNFEKarGODoSVgG!znwBOOh@6GvzmxdWI? zB&-k(Q9wlO<=Qv=92+GpfHr2 ztwXhswuMKldfi!2+b{v>gxda$I@=}zXK}{+{2T@{^D|qj#L=C_{Pn^?mrk!zM z%otb;@v<-X9s3!EDm~^Z+3wXuF}ZO_KiY+Mh^M9RiSaa`tRdkzr-Y|Fh@V=UBdQ9a zqV@Sor_g|z4`bwcZ`reMg*F`=zmvQzBq8`JVeT;JJMgpVn!KWI5T12E4ZHd@rrk41_Si<{L|=&VBahk}HX_L)OATSo#gFEip9G?wCkal8P@2B@ zrOG{2Vgg*jG%48C3$1&ql=Rbm>LFdJ);as&u!db?`8^&UT(doGm-26)rO8o_$7tE` zvYLgq`%sc#+r;a>^Y1?)y)=s1<{1Z;V!WM01ikDE(w|iG+}2SO%;5_3tb{oBtQHw# zq`$^I8}ql%JQy-qzlb>1FOct4|LQf?#S|saPF3xef(MFN8)Hyrx+b1U8x~X+l1b-zV~APg)1q^-EuJB)Vyf$Jh4^wj})&43qJ)2jfU z%Da__jU8b448RT&f;*Ryx0fpf>+DR~pw8XaxrRYK+Z+#~>{1{U0REm=MRaU=s8x>c z+rAnBy6wNybF5#-%Ui2(E7;Xcp9rYxSDpA_?xUS{`S9HOM0`Qr<8>9)+vIaF$=1aIq@;d(@_k(t@B-JqkRNl6d~#itT45{ALZXifpCRijH>z70`G{!a0b%Ju{UI5wG<^LvK*q) zS~F=E=H}xUv{wiL&K%5}FV=9{0o24%F;y*pr3Iq0W9^`h4)cv}JBJs0lWq8b=6DPF zQ4s?@J(sj9l|2Na2CL|YeB+d@ySVRe)d(NA=iFKC1BcI`2#3FPA_va=Q7+9z5a1h?1npi@tn$}N7GeNP^U|^_x`QmWUDPw zQCQ!#{dP`INP%;jdq^iS$CCL>`7I8Kms!EVZ!GV{^9FPY1T}`>;?#oJKh_2n*en7a z3+;?qn%q2fC`$>e{)}*x&sV{#9G37#`!gr}*sf!77UtcuY(lmUOSv4%468r?whS^H z=h30&6yLLR+<3%?0{I4%M9(qf2P8>XbP>#UP@z3x-BV><$JTx#<&RMJI1_tnnjeeK zbcM`oG`0MIoPDTN=1hzB_<9CcfrQ;X15G=LA6vyV;~Znr*-L9$G;^c)$$n-weXE zcu`MHjpk(pwD~dzxdQUJ^}2ulN?ZJZylKhLrf{LWouHbN_T3eEJ|_6OtJM*|xXe0F z;1YhWl>Jc5-=L#(7@4c}xNY)C-94oq6XfPnZi~lDbyoD!;bi4123_>}N%BV-^0JNu zUF0Hb+c+bxZQBmRr%L_C#9qvdV2VGuv~R67S)u7 z9LGoRvDA`8ldQ8L{yCx+hdH(d`s&M6T`eEuX~gn=2bEp4hi|8&I$M$sn&?X*it=M5 z>lhKn+^*Iagv6^yj{~q}Z@L|V8a=sFX}-T&IGW6U`19EE%2zYf{%}bE{f`!cLjUBI z%>4hVNMswsK%hX}6ty;8EpB!fX?{Mtw=Ulv28~W)r(U8fXTjKbF*oP2*i2CU)ZZKy zMSd!!HL3$MDHD}DH<@D+?BD{|;6Re6k_Arw7n9(5-R7#@gM@0}&+to$s6SX>=~d_O?8y<`8W$wM9)d;evS%QdZLpX5e6 zwX;ulnk&H`_8y+V1R8uQX&the-ljU&t{iQg76`zwD>^rH5Fw3Jee^807{%!^#O;8x7+4E^|tWk&{X_k9bgFsGr zcz6VkCJoMiRWik_9u0n@^ba&)Lnx?146XZVk~cGXhpsW?WlT%%;Tn6S(kNueK-7cyvcoD!_0{A zh&|`-U?%iSfiR>TQ~NBT4f%Ym#P8YqfuOJa#!vDxO~#ZEI@#ynq6zeYZR?*4x>5Tk z(|kSwBa#=tVLA@8IUR-4C9Gbwf;urI+3q?azDSH$eNt zyCT1xKE73X%V?z(B+r_hk!Nlzd8X9XafnstBlOgeJB%I9%eN3cyFA{S67dn72JoF-$EeZGwVpj-<3~^b>bP*l}jwA1(RCJgobrk|KxVM^QD0Jl<}H$YM|yV#WhE!p>w#&m&fyMGvUo5s&vanM75>qPeGVloXvZ(;+&bnRPL5W_3_}_$F z<={wu@wU3Ej`17j5kF~*W`g{O>T2cWHDqunG4Yt8GnthYWMAz&bFcJSdb^pekcd7F z0o~=g@8KDrrVWL+o(A)M_3xxd-}H%pK@k%9At2Yy*?u$M{8CysXirj6zp_N@4usynm`G?|FizJnJSL$KNt?@@%t>P)Kpmc zUZq$*l$fXx?gzLciJG6zKwp1^>K7jje88ngMPTJIO5y_2#i~j)Rl}cWpD4Q5OW_tW z<=A2vv)&q&9bcB0UI5|MD6fWzn1U7#*r>X10mpzBKKxr!&H4dpr}HPJXp$UXmGJlz zC1V(Lq2{pDYa!XSx%}&B3@1g5F+@TIt!$ByP2vjZY|MC}g9GoMKGa>SBK1!D^mP5H zbdA1{c#XZAScMX!GD$lFYqtwi%`0Wjc+49-1uw9WK>P)_xL_5Jq;qywhR!Ackkhg4 zisF-hT!-Lai{Xa$B4qzF#uOc3X$M4*ss>>!JZH zfHl?F;<uWZgVB?`hEf+8632Za^xawyPmfG97;wTtz$6LtiiD~Vlv0v6}K z?8RAr4oYWVNXJPeRbud`BkAnk9|tG@nLx$F+0`lGJDi3$4YN|q?F6SZ2Sf+&y@+%} zO|fPG`25DhSPI?~KkN{IVHP&45c-*v3f_UYC|Ukb_z_z&o2rc>ooe~3K+ao{!AGNT zHRu&2)?{6VkzP^rUJA(O>T5jc1u*TjF7t&Dtdc?n6sgaK$G*`_#~lB~l_( zK{t_Dp<*q`?WTvG$%va!Pff~YpfB)kaF6P>1#&Zx`9%(q%RqufESB3E>%k0#u(52S z{BnMTgbNE{XJ}uXuLvDJvm=XVxXW646-R_83(sXZa+UDkz8x5>vpt+|dZcObP?P6z z*UMMGy%=8ic9O&$&2i@b6IF^kfuC#f?$M-jvcFv1)>7yhA_%Iy@`2CJ)y(%cjg+YJ zl#cNX(9%X93S0(}CN2ECuViZ*aLRQ4n?tA;@wpLJvTq~z)2byG1NlS;Z8pPxcRSNfB`f)_qnN9GJf%}0ifu-L+4uAGc zWxfveU%7jX;foTRDcBQBXpXg#9w>6JY5s|^{CFHr#9P) z%jAq@L88f)y5RfeSCB?!)!@qxy`xUHbmmLtx=VNQe3(d~8Qk=|*i1nS{@7mcJ;i+Yup=zK zB(CdSoafV*d`CuqXUat*&N3JNEooHJ%HPT4ysvvO=@)6=zTG-jgdvLPK1S-j$@ksc zo9o#eu!E}qdJmx+Lx*iMHE4+tV9ls?pGr^qG!(Z(i5lQRuH?NzRr6oh1lG1G8@Cz=FR9@QZ+`U$hH)qhK~)k?ey?@VRp8P z5ONxH{2!zIBQJYp*G$#3lX#JD;y;bJ{=dmUL;sn#htf=Z%LK1hS(CG4d=@u&G1E@G z#(WNa+OK_%{ximxPC)lXXv>xRrIn)xwBh%$|1h;L?jY!E|CNV6^bI|Epgv&LfuD*TV?=dmWFbhJPy9{}yjr&fE2}}MJP=~*8IyXlvCzlrw)kBPsS$(rGMo#?@ngN#VK~YSHkDm( z3$N;AsP;B99t=-Rw&!N$u!bt`l_o~_ZlFAKaJ+z%93MHpDGq=dyM|+;UXi&+Gleoe ze|Z2W0TYB11DU|MG(s{iGJ^3YGJ~N(CJ8y+n6CxQ@sofwY>s)ZcZ*K#eBR{dc}N_Q{8mx=Y2 zhnIV9V!g%yhS@|X?%EwqBWC#msPp&N^x`~W$aiBfWt(H^CDx7o5`s8mLaheY}og&bBf zK5we`bAR0MyZDUVeh?sV8?HrY%tc zxvb(EfRV-SBqaCYF9wygJj$dv@yOQD!O4*`(i89|pkh$goxyLDs83K%ujQpPKud%8 zQogOFpMg*)_W4G{qpgWl3WG$Ar21-;%1&?0q? zNa7e(wr(LG56{BjV2zQ-oR!DLu6q5Gh#!WO=-b;**&!T+(iWRrrBU7VtBCpe@E9ZG ze>eZsC<7RwIQU=i=4qv8m>^<~ zF65#vw)Pu!O!uxHMcU9u_gI(zT)M%!I={|lYtv>jXuG8HXxP13`KI^1nTB zv(YIuh7Prx@rZ*9FI#ZC+U<1mwu71b+%`G+R2CJxL=ceY+S^3ghyYlN)HXPuTfTzv zRZh&W)Ne1hwRhjYV}#0AXGrXxMm!NgJzTf1KsJOSUG4ZC_b2H4_NACA9I4YlDMGi= zj6jg|9`*9+Q&n`ux7Hy#WWNFm36lFS?V)4yP1YHH`va;H?cLss&X$#UxJ5>YZVvT^Y(D-!SMEkuzCJK;+c%=CbVR-4 z*e?N=(HAD@1Alj<3&>&)Ag%3r7h);#n8z=fC}2&R==}&n|38Qr26NUuo5Pwwkx75h+#?U#v#B+oppdAdJ*a*4`lSRAp&cV zemguE3U()TgL$kA80coz`YLWEA>egwCkQUBVICXYv_}BE1jb9wlFq7A49yqe%?2;D zUmffegmTS9E=AxGFWhbx+1JliA3+u-o0AF;fHX-FymyAt>ADzJ3hjX;3mFsi4>im% zuu=6bud!WS;JzpzHttmgilz~TYmmjaKvRR6p|+&vYYssbfwqKNJwQaMXCK`4+wEq4 z-F`YCEl>+m@_rru88EO)&icH7w!oc%^`+=JP+&EfJn-Y!cQnxza(`niBQNok(s*fU zHlKycfBL%!hT9~>hZGFUU0!VwPA&h*(^S*(_TdbvJM+}-HOJl}FB1sJGW}F<8=^B~ z@8vRH3PyaPxgoGKDP^N65l`B9HpvvjOuqR}psse%#MrpHu1*jq?zAhMU_FET!?~~` z@&?UdSE06^wj34^l04=u@iN1E+wv%s+fC=KUn?_CLu1Xewh*AqW^6cig>GIc|leZ38d)(khy zjhwsP6sR82^DeYH+)(rTwKOSZ!ww8Sw_lYpdZLKW4}|!B&7!U8#=orJ;>q zzH5~43XKVo>J>v#jbDG6aDXnb?$+?aCEk0zS#eSEeFj>OC6HPTM5ZFDrZ#@vg^qY9 z0vsDL0C}69TQ2GTtCt?e5Iq&Qn!B1i>DKT|J$L&4YRisU&V9a!*6J5hS2oQXJ$$gs zl-Ak#O24R2%Sdf5|BHKg!&ZXOw}T>Xbl|sz)5_&9neCo+MmGtd8gUaupT`XSy^{eN zR9SO4DZJq8)(7tnQbM>q+MxhyXlGvu&jn$Kqet3;)V~P|l1gK!U_vWeM=Hf&%3m-Oy zCuPJ=d!Af>c)>QX2pyXJ*V^j5BzaWhf2*bKJ1l#2IFVt*!QvgQChktmbvgC3sVEv( z)-K5ht~D!SSDdUR*#}@O%Z~IBO0g755iGB9@2w$hn;Av-*d307{L(VLklC}#>C2`Y z-`XdYvKs~_H0ljp5xiUuj(XmR$O7RN+XTWzOM^zt|3oY_eL#Raj&80LymX*5n z9>MVL74#z&t&R59a>JNuvkyj5x^M=RQN=8BRVNprT`IFCDV(Mbc-^;KR4O;Fd6GFe zzYy?nRn|#F z-z}!-sb}z!gdhB%`+6haxgSs7GMo}8VlBlGDN3TO3FxSAzd!O=a-W%-%)0s$k+c8! zp}_Dt4Wd8XLBCw`Sa9%XK5jknbGk-9=HMmI)5iWdA(NfX#t`U7s984#{GhUZxeG%L zed~`tA^*F1`=}Qjk9poLaA5xPokt6roC{tZT7woK2zLL8u2}3<0W<#gl$K3a$XGOR{kpv8v~!=->~z;g_pDvFT=yi+*P!iS2uy3|*y>D}fY39T_RaHv7Xgs_SJy>#?cLW<7?f=mFSIlQ+|Als1 z%e&32W#CsT^hJ79QuEt)_TK=IgpCqfubXhA>Ka?&#ESaqzb#habpj)|)+Of?pSdKk zNIsF0RRR-}G2r;U#Wc040@5rh7jVWrtvtw+?sQoY8p&q~^BZ#T@b(;R+RAWOvt&8T zb4Dka4T_qApWw?o(Ufopyp_t(dmoA`63W6@skrLV*UGmhX6(Ze}MZ4yuxV|tE#rK&Vff#1k0={kSw{f z&UJd<)e1PH>=pr&Xy2qZFCisWF8G(CN$0S?r9vx*?%W$DwN7+`CmZUf)|%B@-!6z( zows{{YF+GQ|eP2XdG&x727N?OV zKOlN0`0!I|yTz!4PXZ{Ta);l8m)%zymN6EWJ=r;>2$9_^pC?n=7Y5%{KVYVQ5UlLa z{ynzS*+`RJWc!dq*FEVH`SI<8t7xLcCP7ZJzRX?_bQjGn4|pA7_$4MD#hRQK;s9~f z^J_PkJ$q~FsOcAq6N5ddHn#;9{1Y<&jwjE%=|fM^LkZ~mk(r8$Pv8t?rLeL!*WeAi z6q8j>RBZ*<%TziYeO|cbgg5KPO@?5&;XNR5|CMs2DNAwYF?f-5+x^ys{TVJ)z&;?j z9c91U?$H2REvdj?X*GKpmyD@LVs1Z|Hbzm9?by%ubhuXOZ%i)yfGGMGjBK)~46&Bx zFn9-C*7UDvbB9BdMS3xfn_WI5Tx<1$%=-^vzV32EL^j6>N_4QMB`i>vU?$5nMV{FNd zTcQx%7QQS(oPzdi5JK3!{zy$Yig!a!K=$YGOIcL@e6bksEJFJH#0O+*ZG7cQ?Yo|r zeC%LQw@~-1w>Lw-?0xp`wfnHWqTd%4f%4G4((Qx8$?O{V!iwz<`X=URD&pbaeC2(+ zkpGU6$A|O%&K$b}GX;m=UM9kGahv?6d93_#8uwM(S7(Eg(p>?&8@b4!8emctH1D z_Q->*9;Pt(jKs=iqfAuq51owNCiXM|P)SgUV}D?itlV0bipe{+;XR8b&uQ0WdPP8_ z6YYEC@Zg^p*X9GcB@Yt1lI9UH{<*aNs7Z&DT{CeVMQ9hErekZoq5OSmDI(k!XFE1- z!jkGhHbALP!Cj=P>sJx)39S6IBxYgzz}TVa;o>oi$z@_Ta^13kuvXP8SgO&lbcl%W zdlyz`5u&|kB~&y}&Z{$hQ(Q`zf|9Jo+p$MiE}NHMw~lGgV{w&zYQU)yrMSj#s{qL^8h&>io%+-$IrNbKAtjd>?-4`SehO(`x;fB}9ROCB1 zvLVWw89tMDKUg`*O8&!QzoR)AQT5x`aI^|z-Oi)CEVdc;_d*qzpjds*(^u?;mp$|D zubj}Z%3$w*sPi5^$k_@Y>Euyz_#_KTAaK;|!E-W3(6Rv5ns+Y$bM%`0_n$`yTGPDr zQ9k%@Qy3$$QY{_ah%vrXAo-oZ6xR8bB;gz_m*@gtjQ!s8^Q+aJm9ea|N#S`y^y0Ti zqWkIf?0Nf!&tW><19$UTzr|6tTTIRE4&9d-*ojq&d-TG->EC43V;vS5be>MpEAG`4 z{ha%Zq17XHk8kdr4#Cju@wQ5ygk199OhRc=!N0S)_N4p_B~i@Rn3^MqPe5n08LPMB zP@FFoaH(1+YOse;P2mf+?v!}eU@PAl8|oF`2)_^E^NK)SNo0&0mJKErFp&5_{pUdd zhNmpim|_~&&OzJH!z#{#%XG5C8XUT6cB88&x5AfpJOj2@TdMvr$&DtT1wZ!#E&z@4 zKw7b3>_|&le}BBcG(Dgz05`tK7w}7reyIlUoA10M-LieA{TByds2=3YmZ8C(Ej%9l zr>@=cXtXV{IJcae=SF2k5V&d2f$;%LI*92<-3Nk~958CkI558H)BeGtX|F~ZdNqJE z7kd^l66=G7%Yb!CI3FcTc!>N;&PtqleNh9LqCn)Ne!lI2i#i1R)Ycpes6%Z%yQGeAQ&N++8!l zGifNS<(a^8=B8>zB8Hlb=tBvU{>~qxCH3S)J@}$!lr9yPF-Fxkb;Q04E3m=u!0J%H z{3^Cag6>y26so6jXD|G1id^f&WhF@i-d6DOmrT+r!WW5k6PL#)b4r8kMIQt3A>$Y* zIm|Cloqv$e$46&vh7)ksoYDpqVeKR13l#NcrW9SK{7G}^lObX?#wCxG(QCo8RXoV9 zxCR7cW$k5H0=r+hyQ+GH&5!XvXcb)%QNFeaaOvKdD3URR30acZvd_MiDaE@7l(Oe) zn_=!}9xK!j_yZNtRg(%=?(%G$`*i5 z#6-dLQ7OdBZg|9?4t!ql=FvLfw-;q>;1=1-UqcuDhHC~O_LzAIDiHG{GNojAs@AUW zFiXl_;r#7xSH1b}#znl);&}(fYEs+B=JC7zbRa{i=T6y?)aqF(Y^s6oyu^n|6sw^| zCQ7V&!Yngco3l597H(V!Vw}@Fdlgj;spr`Xeu$KRbDkWO`5LOxF*qv(sIzbDZXj{9 zRlE#*6_9)rn-`UU%ja0kdv39;1nhv#zckh?9J3habCur;bP-5KQ;+PX4(ep!R(1F-!?$^~$8{Z$C)Gj*kB zqo4<`ZV)*|cwfT_c)FmTO?#TwoGb9)1~nT*NH*1%hLn~IcG{S9%aTs7AQrnq{Mv=j@dUuB zF+(q1a@*2MjJe;KHucf@kIpPiM5)4#Q1NvL(kRNP;5ZcPePyxF*WXS{>Iz$X%ZZcs z)}bU*XoREz8K`e+d+!r{eWp&^{3v=aTko3oq-xxuURUed$kKo`hFegYZ{OD5GI&ZL znQ$w_aelx1TY9U_ zN+H#$6=$OWsDJ-U2np%OjMw@?W}>l~)EAyW=_ zvTpOPn8)tPZpWSOv~TyE9vp9{PmnUV8|bUrD>%qEuJwep^3O@bnL0c+KDG%ghzl=i zy2{QP^OD2Kk(s;lV`O8cR$SX<1-DFuRch(X4li6GX`Ac56&>xRm;rIC*yIO(If$P} zU(b8C+tJ4h%p`z6gO%p;bKmQQccxrJ$HfqtZ5U)2Bu!xWJe=|LPkgeB-UvJ44VLpll)-IasAJ;9VjLl&}0y zlY(*lH^9<$e|5s?p|TBCnE0Wh)0$U&eu$6*(=>~}7t=QEHQxZnykl8E1+vD1fh(0!H+wg@a1GnZsnICq1TH8|_sy71w$KB-b~9^=4O;@YM)a9A{;} z2uTd{mIZ* z_vh1}9`ofN+*Z?ZVq#Vc2!#Vvl1YqAvm278?jw#Z#DyI@VrAul&=JsGh&Ht^D^Ji2oeQpChe`z~9$U$ew_i1 zI-Ev?4+3HFUYz>XFLN^IRhZ@^t|Oj!EtfML18j-DrqwhTVp3jzXb?QkJq3IQSiwlK zRnG7F)6>?RPDg>QJm#uPi^$Nrm2+^*K2xAwp()Zv2sx_Y=;5_Oz<#ut<2Y?E8rSO0 zvWulhQ^b9Fu16cGek!JE>fbT8@8MX*=d6(Zz?cyTCniBYcaOkqfuP0IkN zqQR5?^_EaoaDzOkO7U@;S5&|eNDtGEoZl_w$lZKl7&6~t$++jL`}(h?Q`I2!{Oi7% z`{FR0lfqmLL*V>inFNs;L)|VT49rz$@v$ai&vtKOpwT|eqjekHhXcK@&GJP+7fb?g z#TMFkNrdJWVIQ>;HkcsDI3rc;lT2_F2O84WZ|_eV*&jcVYjRVqD?tJuQ_ay{Y|tl^ zwoQ3%Yc#^=Re3Z;FK|gic;yXeX~gGS)0z1n*23Pq`K+0Bjd%T~=YXJMZiYPMsaBZ! znc)T`K_M{T|47$8Ce#WSntm*xM+f9?-opKMGGU-$>K=t#-(0^ncu`ihy96)U3QgqZ z{VO(1!Bu8dI#s`PXtM9+*Zzme-m=%PnVXmAa3$yfLSpKF`m186<#D2Kb*6Ia^BV14 zkBouir*F5CE9a72{M6ewa#3nh)(UF<_(Wvu{C>$8;rnS1Cbcas`$6=UR|_4eg#gEK z{SM?5ZEu48{ju6X{75y%|E%Np>~j*cnXs$ytU0F@e{3j-WH464-T+uG7PqBlgexLD z*>-`b9fiB6ZP3bv>dI!oUSHsS9||ct;uCuvag3}uKJ%dzCEkvEnxG}Ak-N|b+iOtZ zL#xp!y>K$iO<%wFQ$kiNpF2D4>;KjS+968Hq=chrndk`_V)q4#Hgd%TtjWr0x?<;g z2h;i8DGrAv)-Cs^_MQmgvN>7srk&rov*c(tN?g6p`RO?^IAGfu+!3(wcrWF5RO#O! ziR$n#m)xNwtlJw)uM1<@(4x<8QXJA`g}hMunV{80%)>%eSJk5JEmvYP>>HAef2QSG zP$an0;tXxS^}Mrs)U#K+D%ZflSu#-e=7P>|iA$N68>!8S=Q}v&(M1<*7J;o<%dAO_ z$$GY3(<0sFrc|U8XpQuaj7k>;Ti9Tw4@-hqlaD6`ep|v4s6 zi|ArMb0^&zv`$siHL5hy$wEUEJZ(M~I!W0G*Ky67TA243uPAFR%R@5z&VG#8%3-qZ zD6bsUmb1#)G|bf=wwXNUQ&hbS2~&48gqv5^*%&=_qsl_{%JuxQ1Ly7N6=(xkUHs34 zK`T}AZFcNhjmiWizjXd`I&2$@DxkAy67cLrR%@hc?8CY@`PXCu%_SjXk{`}Rg;id3 z#<4#tD}+}3NI15MPa*xgNk?k%cwoAFeRb{7S(uB%@LM5wW$o*O@HxpF_jPwtO*Wf1 zfsF(T@4lGr^%o`sID_CAtOEq{InwAm>;zDjnQgn|Y53FMsiFQy)VXz!LP9=ALy1l{ z3&I$qqL+_u^YypXojy_jrn0ZmT)pQ)A%s25FBIZRfh~?hep_>t2@fk`+}6ZA~d zdxK&&e_zJ3kE)VRqDjzkJxH><&{9dU6Tk_fta(Z*q-s55eh=p*z8n}1U$g|Vlc5wsR4nQre1;}lA`@B*ZUNkT9dMS*a_QEpx1 zSmV;DW-{v+F6x&3oUhUF5ier`?u*3%4gfS;iqP2kG#+*4f|WkH)fb2A!08XakV!gH z_jC*#e`Ucwm$uT$yN#Ia@EgXb)U~IuW4uS(ee0Q>kk{dT2)|Z*!=#NbLDkXm@hq}e zbRVBg-3QI(XWR(RYbet|E=;55W3b8L6mXSw$f!W??Ebj*TyJ6iV?)f)`Sk9=#7_qv zbB6S9_ySjw9q1X&#X$60FC)5zy|wh8cQkT91Cv97)Fo!T3k8Cpq^FrAEVu$=!n)4K z!5OgRE#Z4mH5gP$2B<`9C+UIed&~JuPR6;x1840QyhruZUW3wA__nk!{iH#|8{KnHKu;&)}tHB;in;))nHg0`Oarx!J{7sH)IQ~%q=|&}BB6)r zD@_|-LCSFTOR5bi`n3G>Y04zW#wv$Fb#Nl5l4s3xy0*QdkF>>(f0IaQLvu;K<| z!8>l_R$Xo1+Dqpng@@42EVogfg$#!FrYg$G`Zwm4hh`I-!d{O17{Gd_sSdsX+oa+c zLzPT!kU-vUwsGwfCJAw4tv8Bl7|DODKVzVUUpBK}gl9^mdd!LBmDQhpMa1W)qQ|QRUi@@=p*;bE7D=6{1Q0E&g!pEcIr@&Zd}9iyXgWtMMXuK&L}>< zq8#}mZ)TTo!~FT`zqtY%*@6pa@Yy-Hf^SaB*&D(Bq>C{P_~zwxHFL)a#Q}Ro$NU4$ zzK^xzzS4`2)NcviHPO>q4|`=MVQoQCyQvoZZ$idE3Wx*~Up!?YB2&Ws-_O`%VVq>} zc3fU)msWN5IELC=rz)fse@y0OnMhGlX17>Dy9X{!sUlkGvF_nL?#$sfc#YzqVBfhm z2HqK&S5K-`Y^McqYl`$%I-q?-h#%|$Z{FUG)am+_k+vH<+RN<=ugslObk;QQzM~L%Qpa+_j8vmu~0_)z0I0( z3lO?ynM2~LKOLI`6!So1?;1xvp`PPxt5id6oEKE~kT51Ha+umn&_+(?8{CK?PLU^R zR$ug`d{#KaZ4*<>9$++DOHzZH5r?Q*pu-%W^^@Fb+Rx0W$Wr*cr@IPamyy;F5@&WP zT#OHYURO>zv9)c!^Bb*4ZjelLg%QkEfu2&z?=2;h$+eBd{rkt=2Dlu`7QlrC;GCU3 z?0gS76M`VopuEPM{8LH+s0vW3nXSjcocXv_C6eo{l=6o3cRLk-R6P14B3C-@<#TS- zj-_erO#1Wwu)GQgHe4!*@dqC#n#l7t70?GXO?|v6U{$7(kzvC6ENp1V>VcBM9@h)G?lf3s9fNP7R^?MtCpkhA+}3D)ChPg4@Oub_(61IhDRe>X+&q z3_?$yxfUyHakG`Szy7xRymd!?*A=c1U?rWcjCTAC$p;W)mJ;vt6Pl=PA4`V6(`!#I zxo_0_WlOU=A=5mzJ~J_X48a-{#rDh`)DV6itGm* z^wug%>i7~NjKHRt5amAWLwlyd`#Ih0<6*Mk^}<=H{ei9VrSG0I z6+Gb~;c0A?LuB3XJriFLCupro%bbO{HE*tZx;v}*eAV&PL}8cqOwL$fc{|o$IkrrU zEn@a(&aQQZaZb#dbh!N4uc@!zBX_+>K%ssQ3Ol_FBcn3M^BJDmXJapG>BlmBx-P1E z?)@`dm|HqMNw}e8k3MyGwJiCz^=TlXy=!rJzTtOsV|2CoAI{=C11ejtE6-`;?+5W2 zVI;rZ|E{P0b)~&iKLB=bh}ARAbZ?{!bjLaV6Xn{90B+|;AY@>Hi3-zgtY!S z{n(bT2HVPJbW!K^DfxQf9od7E4pf6@?#KFyEt(k5iE?;H`%|QXlKied=bOPpKl4|R zUj&WT{Hb|gvuIM60?PkWi~|~~Tl;H*Gh@Uhy(6LX$vfkeB=7#~>+)wAw>sCR10^3D zBs)(m6&z2cX6E;TY3LHauL5u3kT&u?iJOE0^loR*uRF$eMM z0>hcrHO~HR9#TFvWLI8`>9t%^zI*BgI_||cU+fRupfrT?I3q^CA_-TEOZ>8qBvmI; zU+q8C`ldZCluq@Uk8t)`fI>a5OFL{El|BU(r;AU{$^ZP0FF?@SI;&++a(5JYG&OKL zQGW@GGdOPp3N0+2`WbTVXXI~PYtHv@YI{`bs@Q`g&fjudde3Rqt7R}r>gdK$I2~R% zAEo?3rl&CG#@)=|75MCPaLun3u6!XGI7N4tepB}g&Zc~2nbZfq;oz^DKAxN2H?wIu z1~*Lkhzji8MUD8km)#Z1ON5!<8<*?R2+jDyg*w1;48L3^E=_p#TX;f3x0OwPhBgLt+ig1|@E z(EuyN2soR=`6-mwKVl=m@O+fKbRi9~8{Iy+d!*udA0U9C`@bZw9d~J{vxcBS(XWHO zH(;Hkx`H3}goie>&9Sd{XPOj@)xe^j+u>$ja2PCkIqa$i+UFG~^D=;ILh zAp1D;Fhd2NS+;~$gMB_lKwgwt_4;2usUnP77FMO04>Y;&b^SI^Nv_J>&$X}&70PXj zNlA*WgyQ)|eC^6M_5e)qC{mzQO5eEUce!{Gs<_aK{OV<9Dps_GTo0CFYb}S>HW4(o zSS4W#=dbu@iX^a}4@E!T#&ePyfJ z&9^~Zn5@3r!&yQNv4gof5nc#Y6ROKlPNfJdRNc^_qqEAir$qi&_@s<3hiwF&GXY0b zM`yM08R_D40A_v5;Gjx>^_5<6luDFdvF^cSv3Nl$c2x*XEZXl-N>obY zpK*!;Qaa3#m+S6E|Kp)N0qs-3&3` zs-{~>1wr#n|4j^{;o(X%-Hr?WF!>cvK1U0|eZNd}DdkPO{|z`p?d!O^=NWzaB87k95dtN^RNR2=EG_4U^6 zF^3~V`&XSmealOvbo3Y7L5uuxoSdBO9hrwmhj+etwjZnQ>bC5K&spDsvsV@~E8E~= zU1b|L-w46|YEV)83?uQURwiP9@KZs*)B1Ug=#N!YW(v2Y)RaQ(`cf4ODR106%oqI& zX6}w94|5|s4E@{ydDvrT@U>`GpJo1R@^S+yR48ukRFN`sg5bx7VptuG!Wm(}nie!_ zrcp8a%{}2+C+}~J(I1MM=4zT9b|X^`527R0<9R?wD*x-O8ROC_o!im!KGqD}ItP!% znsSP^$zEr_4jPKUtcME0^X8RJyFHsp*2yHkS7Ai{Jh9X_8E2{{>}6S{4E|%sSabD8 z(Q)FIrR2Bsd8_-mM{#K4OdT8g1{)8AHL`@w9d#6T^%d0y1UWf=?(O`ePhEVqc4x^U zX!>bSE%G;(lI|{ryopNKo#zAU7u zDTsUAW=}Z2@BF(>(walUp(!Lxr?A5MqQw({5%?^oUbEal-;rRu_$IWEDTs zI~F$|qK|5tn(Ay`KH^y@gDl8*Z zZOyJo(=Vb@c{n-ize5wYj^RFX4yvjR?l9Ma{^D3azn3@OJ3<+A{nNLQ=$4XyZB{Ky z5S08de11(wK(g&+vjRfZ55l1=)CHAG9#;5=?b?pyE8j~P%5WIO?wqw5=*4J15n zSE=v+BYT_IYWP-80TGuU!mJfpl2x6Q&g8efzhch~-X1)xAInN+VsWr!N94bXFbYzY z8spLqQ-7#?ngz{fhuQ+}PF&0bk~$o<)-~CxmWc>u{z$t{C8&DjE2?2>#f8Ex8AC$V z1!3JiVj7og6Mh`FcUo_;hD#q9na}e28^Nq_ykz-X4ri~{yJ!@&p>56yrai4@gtP0{ zhK)0#s+=6J#>arsu=hR_3C!aATA=XjBoA8RUC@7~Lgoo#qDbb__JTwk+e46ne?;zk1?sF6)X$w`>2DT}=p# zsHX>t4*#^JE`vpM3Hp4J`^QJd>-di%a9By*fQ9+g9jX5uqx1XrCTv#Flirz@hjZjkQTB577bG|Crbfp)Q)UKgGB#PYYru9)NCx_|+m ziH`JtP}n@8tAbmhZ@dob5f0IE*xb1Ey2S$YfULRn1Hd^eA~~D)VPL$T>a{punA-N% zRdTtr!z^dR^5+br1*yvD9j|puu+wlw<2~)e?OS_MQ}Emi@qEiXQ~kNxV5^d*2y67B z%7%;^I_HMhpCw-Y27*(No+5-2wx*+^9;?)&(GstoxWJU+BE2jgZ=Am5sT>X@2t<>N zi-XPxEyVz}o5X`_VrN7%>D|O(uF4;`xcfI)@qbLUaQ-v&eX@fn_kQ-5syOqgq%P^g z*RIQIof`{uJBzmVTC4!uPanY6=*>YMd1SVQoqaM74C*&>o!3X5l^AX5xK~N4X4j_D z#z*^zvCge-S-I25LiPEFN1wVZ9|Y9!Xu6|*%A(J1PWpwI-neAS9c{*2gn-w{FYY9E z>wi-|3)2!`!4(!URL-@s>VC~JDbr;=@{Wkf-sJ`+k}c<;_fy4CC2-;`Pw{N~(eO~d z(JJM1jeqc^dK#L`a#y6Pwzg$HElxh0`$d<=A9j5D?rJoBj(-1Z zO{U!30x7P)sp-X~@jJ7>Y*}Zem+6&x%FxUV=yj#y%>lIDh5?F8!F6M>>3wxzxL{!R zKgEjRw$}b)TT@la^G^fTg*N590k1ptVw*K-QNd!!Rt`!YS{KNmO5%+i9(cKOlW0+T z*RL$FLX78{D31N+Xq(J72%~Y!%4Jd7GSVTgn#vGT5e}n^_s7XWGLH=3Fn)js<3Y&+ zv7eO()+}gv5+u+>GdE*G)}?QE##SOt$_yf}22ujY!Dlvs%MW|g*G842b*S~xSthRv zb|!i2Llr0|zJgxz%W4p%!NZBB->CCLwB)J`VO6D(ajl=ypGpK$FLzeS(3VAikI4L) zb;*})842YWvOcX}Fgjgn3wksbsf8=N9;!91mV715)mQt&|Hf=sFJuP_&8n{o@2*-v z56oA;X4)s6xR$IB9GWIT#Lx^fpz=#8!B8YO^RrEOv+ZEC6&xUic!;Q&rd_@eX z#S~!;W947%H=6ZvxZ7k>#T5JIT7jqUTE>iPmjuc&NS19dxJi1GV_j)6=$`eD$^kea zk)q)avxbX&x7K^i2mkQRx-$UL?1{bX{Pe$A{|0a2H%u~?T;ofV3T@&zqNT!r+xhv&jWNKDbEAU%>j{GGPhL(zir_H?x7ES3%cY-g;Jdb77Wb{A(PK|$r7;%#YTpm1DR+&z#ii9#R4qaO8x6N(?9sJKZg(_X8UPWOer4zuk zpWpkEnSZvd$UV|_oAa1lwwQyM7k>bm59hY|MD)1<&MwZS|3xLH-Q*MA_;aT5czJhd z7~xS;MGoKh-KH|p3JCi?EvOCKb%I3B7*J6H+JBvYHBVrNN9l6*ZBdzu#PI%y7a1vV zcOUq_JIjZV-SfNK4v3s2Yo78Jj&FR*ONZhCV(|FO0TBH)FTCTb{^Pc>b0L8^eN6j(h8(w2*cbrVyBtAr-QwZoEO<=c1q!4P6 zA$E6sXC0ldh}Xlt#?&d!DmqSPGRF8X2{=VBE?f;l7N^WX?~m*ctiVf7CQ_WHMo;}Z zWSK)tk`H^-qw;jEr<_DINrY}SgL4vMHO7kEoVG5(-+<4Y9Bc2?4;xM}-mBRwsGywRNP&d^lQ8 zl}=iXudK3LrDcXu1_2A~eQB37PGK>|ESFT#$ zUlP3%1%mRqf%C$$sfC*S%l-IG=j;R&X?2@0eBe#Rbo)%&Scm{Gvq`{`J4uu3Wz-L~q|y z_IdMiK6Eo2m{YmL{u8mWd|kG-xMw`mkENo*VTmTvdV~YCvfCz3zJ5)zOo%4-PMp8j zpP1;9x9kiJwu+WR76=R`h>aTga4J9mu=hWdx8|L`amVGobl*GX4;suIN$TRmi$L0y zYr=Z{O&qm7aT~N9Ty(e=lJu8lU0*&CiK|QtkD(}xzh|scRFMwO&U5o;B{U%4e`r(M z+r!FgzePM+?#~9>@I0eFtLl2UZl(Lp*JNK#eR>`5?BE=@Ab!{-9AJF9!`%8x)FF(3 z6KT_Dl#wyL?A&}{5a?q8{!_lg<=|vgp;IqwUs_*VyK|ZTg%(ZZDS+g8v?#hTXMf9L zo<=OxX(`(}t5&-qC#@v$#>+}TSeRRQoBQQXU>T=!y6P#cre?#njqn4_lb|Qye*9Iw ziO+3krt~Y)F4z2THsiA0aj4!u<+c)VbFi`i*l4}*th>)}qZH~ywcEON9+~ttsvk#o zKY6kew^$HMw8hSO#>sC0Xn6knx(Q(^gJMei@^UKkCoDq8cOdfRi3oZl2l3cpHMO+i znnmU+A&BeA8*_tLO)xnW3=Na)A+Bt;g*ClC?d@tGsR_yd?K4uQpWSfLynnExoo!X_ zM-7W9K{8(VYqGX>ZiM!!$c`~;LupDmC%wWpl4-OaRn?cR3r$gWRLj1lx=c|C$SnhF zE*7=+xrR31q2^|6Zppndy}e$36#Bb3vV`~cG9N^E9e)e@>0Uz zMyd<`k1geQ4_+T#_rFh(5sVJX$I(c}Y`&E%P1foVjx}h3cz!c{pWm8xj?1)_e6ri| z^n)~`FP7-B;YjJ8kshI@8G5nkoWOY~xo%wqFa3bktjk=lUy)(rQAZQd%kNNA(tP?? z%~Ei!NxG{(V;iCN+5UB4TSH*y$73+GoP27=pe4(vuCh7_xKD+lc80*_7GGz+{4{z; zb$E$%V8i81WoX1V1L`^Tqq_Iocm^ai^sDTQ3RFcG$=K-umP zAFlprDAjvh{DU=So2gyosWIRO8O}3%to&^MUvtgU?vwq29Q;l|@<09uN)-QYVc-_# zL`|U2na$Sj?Rb^dZlihIlw8YLYGOhT)P_`gDwu+k5yZ_e~Wm-_*d9h zR@pPCqR$%;=~QYlZ5K^Wd}Y{aP%IgaxbB9EGKc2H*P~qx-|+0q(Bv(+-hlGeZ;)Rh zst|Z%;WuLftP5aeUo!qY{vuxy?aR(Lv(qpFFdLyQ9*eAhbtC<9y;IB3m6n`eX9w&z zq|y=*$$5b$*R3gYS_~wAo7YNKkoR7Cf}QB$LLJsdprxo28XS5QGvDnMxo+6{!B>k& zK`Z(i_p0UbyyvQg8;K#l&|!XPr(dF@E>X;}`bD2w(ZrEwv?_vhntcgR( z*u()pYZRu4adSQw+Gd&dSy%qZ9|tn^0j2H>=}RilHft>XHTSl+?WXtZ%jO(>-5`=9 zvIOiU8fKyf?%<1`%peXOm>S!esBdD)isJ7*V*pOcFVe17Zq=agID!84w2)4XXOVfq zPGUBkx>ofy9qfpvot)Sx*&+1V?*h1555XFfk4!2^R$EOM476nc9ahdycT%l;w3ly^ zM}nSXdqPb)mYYulDOh@#y%3cEW z`NO}Ds5ZoPeMg%O-2d_kc`7pCB$ALjK-5hV6RoJNUx0!t zN=Q7e)!mdfJSIfm*TaEyrI~t3!qO2plg1mjq?=|XBK-p|F}Z9IL(CnpC3xiEOI%UJ zALg0-wH^gcE?onq-QA9*>|WCv`*Kf(05Uo~*CYz=S_6irF@vg}Te-`u=8k8be-pC) zC7ibP*HRdPu?3=l2SPo$Pd`K6VifPvrb3EYM@)xizV@uxQ>@7BNVq0TDFc z-FK+%k$1hgmCyTp9@DG~FB6ZL@?0>`e?=Gg^vu9M7$r6RaVTKF_Nt8#z4k0kYL$VG zRGQe5C$=loB4%f55+yV9)g2LL&Cd-<)ekS|UVh+>k)CS^Cq zh2_1xOA2p)0`GH>MP5nwwq$jM4nTKGDv?Yj%zP}9yCl{>lncbshjwA8{HyS3h)b$A z#I7s*dp!cJ&idJ)^gw2m4Lu*CR7lhnoS@FToA)le)wGnxX0M{$D6-$E{lbaR)Pa^} zH~yV>T-wi9M9=273b21thEJv1RdUQOYD29MVW94-DFvj@(7>|L1XWhl&&p>4db;v5 ztuxixoPX{(q4in%9plZwha9HhiX^7?>dq=LrN9^hnsq$QULs%uy& z{W=__n%eg=xh|FxV{s-`wn$|9;-9X;T(u$XIeIl?pjo}_eHAU+_GTA#@4ejii)+E7 zjAk#@ZNX_r>sx^L8Ya~=to3UsGxk?jqZ!cskXhdS|J1OaN?F(uDaMZm;~$=I5l^4^ zk?(%z#6FX>)Zw`Ojr+4?&OGV`QKYn;DEa{EfM9VVjon4y~Uxg^X{XJpac|rbGbh-Hjef!~YhN z7!M@aC;aUm7)9T4HK>TtavjHsZZoQj~?5^PtPod+V^UA@?zRin(F*%1z!VifZENenj| z=8UUam32jjXl4{4Ke3){oPPg{SOvDSzKGn>IK+uB4n5&%&_G}ZBL83tzWWmb1Tkm- zH5_@uN43Hfz^cL3qR_e$M6vku!NxA6yMa0>BmyzprX3?c)PEoAz(d$bf;A=GPA)-NmG ztT&c*ODH>slf?28a1Qz?;+p5#M`j>R4zQ2DOq=um=*hug*b6ic8`)1v;)|QHAR$Jv zq-cG`3#$HWnQB%FRC(d0@$D>PJ9kq_*+jk1u2sINkBzO?vcC^CFyfUqpu<<;_2kx0+D8b+Nl+Rt9!Yyty(~lUE-N%q0gGG$1ftN zFq+WLw!s+IiItyy-xK1~etQJAwH|7eRZ&^FaCH@XjSJYQ)yg&J4!cJ~XHQCpTk;Fd zqq)AVZ>=tI)od^g+_5a4vWq-!Pa0%8&N#t$nK{04bax+o60P~iD6Z3!1R0wq^8~T8 zn*ZFo`ZiwUl;3OAGIhrEf?9e!74yWB3()_G_LHP#=bw+|d*l@yRGsqr2DWZ7fQAO4 z!^JuNdKh?lI8$`Pqrezx^95KJWks-)Hs-0^^=cA2uLBwic-W9)Qg2Q*P?$wB=m8pA zD~@h1+IJ-QOqWUwNa5$9Ftvul4D*4=DBRza@=|-;7cKXrW{OC2NTvsN71(}8KI=DA zA~6E+*PT%Nr^vBE_)qq2$XbA$e^2%5x39TC%qmccB9z*~05?GZB@c5!h6hu{8WfBk>AhlSW_8b;}!syv)g z94}m)*D-h^^g$CP*MT`8l?$ETdab(Hvbh8si5_y`8DN2|L(&wBt@8Z{zW?5czxa6D zzirbH_ey0!ihq}W$pP!1#V;uWZL`z^{zjr=b(?@Jb!3BfUEO`j&O%B?Zrs{N6MX%+ za|zIDeJJ5MCZDw41-=!vDIZe_Zp7p@Y2||Lz9C~x;+`(T8h0ZBR*uHE>dBT+-L&~W zps@|+#Om1P&oeD);`T|1rHE^iQ~S1HimB#fS|L56w7ry9NqkCxe8rx zx9QQPxXFscOCFNaK)?s2TL*#_@0*deSyQ4{!uUsYIE1b%wjEM`T{el0tVJ)J1uWyOA(M@J~?}~?9Z3> z-*T*8H|KxE+Mh2lKM?drXf)R+=6aMib19D{YAyV%_KPAd8uqsv;&8srCe4kdt!?>i zT~PqYsqie|smHZkQ0Z!RJ;*04!pZr#TB8?hPzWb0_=nzbm7kASkcwxliFP7w+cRGB z+0XCp3iPpoG*i&L{5_I8cG*y{=#!oRDEeKZXXOaRU9hWehScq49D_)Nph>#|5wJqWWbhsgC+g5 zTJfPsS*-Bi^An4Jp6j;Dy=v#_^Rer|@%GcE6^qA?$A_qC_oXC6Gy@2o;#pumK>7Qnc2m58A^eLH z-?e(CEVz9&fvwh{<#-55U~^S9^g;x{Aw0GzbiL zUq=Jy(OH`G4fo#}L=CLWbpAjS`9_$uCQW%6ALVi7%PK*OCMI(BU3yNDvZopUK|o%o z(wy`C$4*MA{eoy0npMCaoI$sLVT2W1?W^j7IiKD|kmsce7l&t*T_A^*dorT|cO-WpH4}GI?sC~@VO7y1!tjB@tM;Sy$u)I}Jz7wY z7iE!HJ8^PmM^yqxI0=odE$H#9-kJ_*lDn2)n!y8D3>_nmM~fAyWwlR5ml!9EptxfQ z$YAgY{mxXos3XMXXU78i`-(q5!eX;4;bFMBh+_cOQnL}H^lY;qI^=lNyw61yPIyL% zSM@7ML1<#{NkCF#*%v$eC}Nf;br&4u`C7Jj(2DgG{g+&Ynhm1Amvy-qq%wN;Q^c83$M()gC3 zvTxvLVe65BYa*~^4P#a7*#>lZC=;J==woAn|F4fB;1}jw)7~YODS}K^pB|N>nk}UaE+_!>604% zn7-l_M_pfM15Qdha&J4n0r5=*r-Zj!{SyccD}koNGIbzvy}Hw|5{cKSSjW~&N6#yD zGwa>n3f(EQr%aTfuvrI@&$Z z&9}HY=hju>Lr~!3`C**dJs;}`O{wly&#$w0O%SYfME*YtH0ykcoT3s5X(iHUV2X&F zFW6*&+HB4uQ&fg?O~*rLSh+seeA<+c{co*&9VsenKz0(uOb*9|E#QScb(!;8K+!vm z*wIIWmqKPQ8CbR=_UJ-(^MJQMP>Ul^eas!gM@Yc>mik9}Yp_A4fmy4ku29Q!aqg2o z==p1|EG|EjUE0la58XBd0#2X+{<2PsFY3b9q^PM*N`dK;t5+k++Q#y+ z>_G_+TPuOskqa^KjYIlVojv0XV;~5w31(rYM(I4rh~`b&-VRIn`{1+C0|;;SsOfS( zaz3dlVV({42eAZSg7c0xKLm(kkODT*H7scUtkG#pR_S5I(jA+}kjh{@4;lT2nWasO z!_N%C&DGF{n8~`${d~8Oa5k`AZEzGia#kGctwFUhIkp(**7_a07q1nI{t@soM<6fX zH_IeDF&d8D|J`}I67LfKUd9Pl1XiOt35&C1da`!4E8AA_u+N)4UOKKfAcA1Q^pVe9 zR;9o1Z5`4@MhfyPwnG#RNe=CA%{`l;Z4}73(wMLka@7y~S^5wp5~VNX%@H!`p$r z^A|9HS#S^E3r21lly#UIJ=9SCG2@Ci=*Yo#7~Q6KX)z&AJ6A!o`xFlgfT)+Z2# zNrdyI`?clCd;fbhNR{sfCbl$(xh;fSg@{i4X&IW6B8DNa`F8sPZJMBfbwU7O1NhPx zOXGe*E;Rs>SzgDFvX&}Vc;3aTh}k(g=i3@1e>yQ6E2g?++^4^T7|Mt!eH;)6}MC2=J@9D(aSGXAQSF7?Ex?FLw7-;Pw3vwT}A zv}L`~I0q|N4}gysgbvXdd8jx|r%toLG_xzY{;J@Y$<2kA$LE9Npo~lzAaL5{r1LDq z&IOS)&8AzH!mjcTkOjv`v-=R^W+%QB2vbv=1ja^Gj&FsQKdyAtuHAvmla@!>mSR_A z(b{3D`Pu!!o~IOYLJ85&LUm*o=&LY3MZT+Zmj^$(NQ7MT(ytG_d=J z+CFEpcG&u~;+5*Zt}l}+&!5gEi18^k@kzQIFiKp*WWL7ErhzDqh+3+UIlC;FOgHW4 zUy5_?e_hBO5(J*S>^p9uzxl&QT1AR$*a_ZKk-AS!x$gno;(HHt&%8?97T`SnVg}Hu zK!Jbx0=}PpiU;qYB1K9XM*NgF-00djrBgcuG&rX_Qh;dz z51{{@;RAykL685RSG+RE&iezo5?W_^l}@cyYD1R#l3n5Q1DfCQ-LfU{Zj^FkmjhPy^!*5bSl_qme-VUOUr*&(>uPeLSge5_h z)$ussG3=m+J0R%^A9xQz{T)G7qox*?t;z#f<91s~@gSbK(48||Qz`dBQU{d_D`y{$ zpi$i49U4&@3=l;1-@f1qh)@BGDqe8y+Esg2KwsElg^~I^XGTW7u1Y}P#&1YiE-3_0 zP8R1G^Z}-}p@@Td-!er8Pg%drSIjh7sY>bC61>s|p>VJGL8s?W2;>fJS7p6;bP!P- z2SYjx%ked-Q!&>t(C$T~BAv-@CVQ)k*5$iH9jTmfeGO$iJ@yjbVv{$|GUeA;KY-FM zM`V)zJPR=_?uNaJe^+tiK9wFwzYE<-RP*>}nOpeXE-7-V#NY*{H9t!#fM3QU5?*@V zAE=h&{kl>ziJCkRE#k~wF!+qF?d()QtOQGz_0*qh!JQo#!cK%qWdCMF6_H1Z9)7aR z7eq!EeZ0<1JHS!K%WSIarOzfut@)twLsJA6gm2$JRyKS64E;pL@LBga_w6O7sEc4i zbBbF`BEmr8sYG1F8!8Fe3YON2AT|>KK$eyZWK}Hm4ZDn?X`>m zL=*R+DL8-s#kA3JRaRC25X7qv-^jfB{wYJ|hs={}1E`OjYB(*7`{SG+>?2QMJt&%^ zrs$=#mCzV#OYmKs8UsKs{VVm#d~t^`MC_TVEOGy>R$wLjM-lCNx_qTwbkxHB--RJT#{GgMaM-BWjY?e3}ku}m^%&5a$0vNMp!Xi z6w;cyxL;cE(p;kH#H{_0n<4m>O!w7bt z__uj+nIcY8*vlhV?1F0^H+W{hJoY~fG`*3tzmq(!U%z$N`{hX18y#57`P&JJVLwxC zg&}=mu7CLT?y$FcCn{{l!2oW=tqFyE5MUGVQcPZtvsmL+_gHydM0oi%&anAPY+q=r zT(@G*<(Df~4x0~4g0lu@&K{zq%3r98q}ldu!;*EO*)3bfqGwCelo|r8(7LnCXbO7p|SSd@VXH8Gk zDNj^D>+}1Jw8*^;f8sLGC)DTgha$M|9e;8$&~f{AM!gkDG7$PFs(-xo?($yekOXlF@wQ+u!godNBGOQQ7#9O(Aa9 zT8lQ0+N9<-L{z-F{&SdqierN6`x{2p-CK#2Cva1oCoWU7qu(8kxF53iFspUK>9(8s zpx)^J@N||@QT_4OA3#D<1O%j1M7p~M5T&~tq#F?!xTa%%=GIp=^nl#Vvi@I{f8*8Str~Z-ZK#H&2y(qsQ=&I& zdad!kIZ*^aMA*ryB5G11rA)aKJeSE@6q2TXuTtzmvz#==p;xZGc~D)Z?^~wta%OWJ z19gI%NgfX_#g&bX!|$t{gz3wA{OwLo7n0*GY@cRGJ=Z)~- zI5!q`(y(kfGlp^#(%@DRKZZmH0Hm=}(0~>)RYJ&cDFX=J1`mEZvzoSgCws%Ga;-nu@w3}&!0Rx2A#^_y?I|?Xm~Zd2!Cf$)v`K!q^ee}yAI!Vj1<|w>#IHx1OOwvr~0|btuH)tc&3=JTObc0I;JSNk+xcu#+7(gDj z_O5EJ7byaj$?P=}6q&>mfidOh^IW!TaPJWGd2E~y%tHgnS^1VS(%_@t9H3|wPzrm@ zOs5OEPYvt7jh39(aKT$@xFS26JB2;wK|;5av<)xDR$Qh8+Wcqth{?gECsrNXUE(sW$@Rq2sy8*cMvS}CYb^|dhz z-UxQsPBuYIj<`v!9M;zt+lg9r6zVndyewH{P9F$QHFPAd~b#}1;_6yj41fK zujAm!Xh&sCp<3FWjsc+fx%owbD;PJ~!IFxCwi&%t&3w zMW$Z`$p3ww8`fgF;)tvG^m7FTa6c5hkJSz)`JlL~%(!c(_+;mB6Qln;VzD>|39ECz zU^LJ+`m|{2hbbGiDiu-_rsfKas zviC=yz@9vp)M;jsTAuYUbHtv{|M?eWuN4=ce9`_>1nm0(GyfH56jrq-pU{69^ zuiSs34!#HTDD9GOi%jVqwCZFg>7?n&WblNf4H>(t1jv@fRC%X0HTcyR~P0-eaaC-A^8Zp(_>pu@=8oR+c zR|Mc+Gm`X9(^M`OY)=yzk4{qA?%r9gV6s=S@n4BR(<}ue+)x=w@xmDicC6;C_$RMJPYG@uOvZI+vTmIkUGyZ-I!J%LU6Ts z562>Qm5?0b)xb#96ZZzl0~R+py;5)j$01cOsJY$aWMldOW2C0v9Z8BI`@wn2i$^G( zT^4hdp}S;~9q(SUaPRQ!?Aw1RdM>HX_+0+|UF^EzK8M6q5e}7Kme_qTYICHU12BpO zq2Gx;$I)Nl1$8x`^g`9NZesPn&}9BHc5gf&o|1cL#So#p+}gYk>L#k2Yp zSi4iu?C%i9x)VjkK}+r)>-(xsT;Rpw*h^6>hLbEsADIPd6p%d_egKq|AKo?uzz5cd zSF2@R^4eQRNTL=hnf&In(ue#7dPies81p$kC~R=nBJES|JcW~Fo!$jEW>EsxuBoT+ zL9W^Z)fd}Bw@F4t;b}7tMP#fl&QA?_PL*SZ86o)46Yp8_l`J17te=mA#lnZ7(V7B} zs-8V$>$a}x0w?<+QuJH_DCO^-2t1>zDv-XRlJ1i;?W%e~%nlLCO$=mvdwY-fOiG#> z8eYsA>l-qEs16atdO>$+Zo~3!lHsWz>pzA=`T&8V#A4a5hgVi~@pUFcRFu%V6bg~n zz2T8GUBiaaRlENmEZt)hY^&?Y!&>?v6l=NmV^q@=lNIc;Gl-9FTPWE|5?@>!EQgSX)(!++8*Y>zC)W_4RRXeV9 zHGu8~v+|ebV`XYRg1mFq>ZDaCc((zv-ci58*E)&}k4@NFej!PHCU4rt!x)WqZg>6- zk-O4jk`3}Zhemsk^7qy5$dUtac~l~E%;%@lmNcqYiwkGZJku%Q#TE;N?Z&Heumq0G zM?qQ0$7|ZC&F4Ik1m(d)V1;{I;YMtbr^vWa39y`w2+kVeQ4c?bX7JJ{9lAcR=kQc6iA}5MP5DR_9PGJK96<_k|uRMb|pMc&O*M9L#ntrxh0)x3o zDyel}JFoWS^lg zywmm}(s$$Vzr|+K0YXU?L_6>wT7j4;Fc|tXNLZo(TqC9~6U+7QTbNE0Z{=<~Au7Ff zPqtb`F(EwH;YPwZ!J{wigL6v@kAVAFP(xbn-e|+(X@NtHaMPZhtJZ#0d}2DkjdY96 z_fqMp6!jw;0iMz{wK6rjk1`|(}b7R?+XpI*)wKErwCHxu-Yl|Y{ zab<2g`8^Ay3xpxKg-0f|b`K+oyE-N%;CH1{S~VV4YsK*9Jjh4Vf4QOh3Fw2wovM(; zPrn0k9~sDR^F6@;TMMC2S>(P6ZQr zoY5c|d~kQxfzuyW(*)@(v;%+_^~f%9Pg7#c1HaW^{Lx=lgmm&fp#i~8Ru$Uk&l$h? zO|zbhe?s3f3pxUt05}&Zk3)D{Bu~bRd`Ve8ey`XKzz&x9JMaAPqK`h|Sl!S9H_$}^ z&)roqtlD|VA)3n2Y|}_}?b-K{s7?GOv+uWPN++>Jk);Mxnx30FE_Xu2Z`;kY@0B*H zOs(Q{wC$3hts0p%j4U19QB;DbYu=XRUg*^wreeEVNOvqvXQM|$a7{TE zfWmuunvq46!uX&p|o#!Sl0lIbbRA%m}8j8MVYmLrw58d zwcD2!qQf;Zk$n2?k)RT3xLaXxD$A_q?AzzT%{otZTb9S4BQ9v=!&IU#3)MUk8@~+_ zULNJjER5Q%zLX*`1a_~J{_0^VWF`^Z5^FFfsq%*mhoh%pNRsSMe>v|X**s7XntEww zAPZOK!B1tYIH1f>8y=(bMlBM*_Jxl8&Br_M{{29<@0Uw>z@hv;aX5?V5)V+)U$}Kg zqP%#WkO8?dd%K}%_Q0o1nR~*B{p_Vp;UgpI{$JNQ9%cUTKhu|gJfjJnqd@htuf|kQ zhq-IIOhRmT*8YXu{F97zPuLdrvd5bNqZ+dSWlcPo%D-H#9oaB2Lwl6VuArfmElZ{r z^*HW>%Fp}c3eLnMSGx#fHSiQudio7bmm>X)`(%%g+Wpn*{VCPl^Q(X3;zAIA6{(M% zpN6SUo`O-8Gq~ljAZqW&KBsC~edxpDe1DE|_~A*Vt3H0D`AX%T8m}AaJFNnBi1A!a zb9F^%axp{`^qlNnr&c9Xo_nVHWw6;CQTw(l;ga1^=8AJd%#Jfh~Q(&t{hui+dZ?-O%BHLLpiDLT45= z{;WK8msYWQB29n1aB47pg=7Sc%00*#l_8Cs0};{7JKY4$BH2o!IOciKlk*yu>E!6d zl5hBs?_~L!@bKVs4hD=?TB2AF?jOnQJ@qe}W!pHYI;d3S=x*gBaDnrbeJ|yVcL#5u&Z8H|j(+w=g-TsoqZ%z~f03WU|s=(euVMmp? z)Q(^IE;leXIu&lO9lDK$zv_wbt*)}pFh8ERfN?2V_~|GSlP;E_7^y{@T&K=hKu>q9 zyiGQ;JgI$K5j8sC!>@0PxSiTDv@D7KnGIMj*{{MkjF{B23%b?3*4KW*R6+${ zPt?vs?^B8hB6kfMY)%xG{ogaKE}cXLxJ9V%IQ=kL1>N4Np$}=9@f}oLd~I^XnY1o@ z*IA2zjsO;Zc*&Oy%^1e=R{z8M$h*^18naXNCugj<04hhm!>-)?8*yf(BWtMqq_-7^ z`b(ONiXQex6F!N%BmIKZ3kIlt@lN5hcIe)a;rLg9?(_BUKK_??7sHoiT!CW++YuMY z7$k;5-~P=EP;5*5VS4OC-HfYHvBKtzFQjZXUt3#PtLNMwU(_#9Tx4!ow{KW;Y|)Ll z4MwrSYo0SMfSoX-+gr-szkPRI3+&|mM#inn+^}S*r<3+uG)ul1V7wLXLyXj?)S=}1 zh#*HWdbjA{kQoJ5{o_w>m!ncnf7?f4{fO%!jF#8|Mh;nBT&j+zRb1TbkAl%A3UBn` zKkZD!_J9^c2{ck2w7&4G%}UNi>6>GPhXV}@H3g_@U&G2BD@t%n+{GSooJW5#MNlTD zpGOk7P%>B7Flilm3Qq7A;=$bnrz%*qbyQq;UQLR)^P|2Qifvsa484%cc!sw?hevXA zGiW=_vfH)drYTmFzIS!kbDrwbGizy6A<-0%l7gN*y(#K(YEE~u zvJzidwc!i_LnunsGfI)W1Lmq=MNjvZ?)ZDI%#G;=0*awbR&GlmRP4Q;i~tz=U~hm3`g|~EV%^Qp_UU>91hKC=5g`H6qmnK<<{7=s zi%DcGSE6l-BgCMep{DQ9W(P#jO?yn(;|SExA8FMT1jAdwDt#1txqs+hKFSz58kgNh z-PB|V7GbrA5?XV}6zFLWLG*HFFOk|^= z&(zujGpDNMnMqAjO1q50^7L@aeiMxu?8zW&l$4GxSzm-2nxD*N-1LqcG?>M!VP+7b zGa+lkaK`Qf61fGJ=O|BgZ5m4i>`S7Kzpd6P*ci%4X+g? z^g({^!t~MU?;tCk{u%Zb;}Sjf;6iWup)GZHrFFT-V=h-a6O+|pI$5}OOt%`NIumOi zZM;`dTgH?*4>-FP=kDL_F|o>Ul671(p*8(5bKQ2(oh_qROOu1=X#PnJeYh+IDpk8n z`DL*RdD4-YjZ~}#(j2iv+gSO1Zw91Xi<(}Sol~>5N&+ft@aHD~0`2(cirT6`aT1j0 zI?`83(}^Y6OANF89yK#igV6J}8$_>433 z6KqUbYVy=Q@D;F?ixK@xrCHpYwAWA8hh@ucLhO7n9R2Q}m*|WUztD`M4l!Jr7qnyU zjQtY9~aC z97~}vZzc=(p?4dhb!7w4RFgeCs#JhDfaPuJl5hn(0qBO3&TC_%wSu*n;}>cv_UvBR zwox$(b&6;5u(P}YZsm^la&4(ejNntIXtRtKrtoi4Xf3IDef zy7nrmmDTmD^Zv(H3SplS1k3#-Bnpvwe+5MMP2PLc|H))1`Vz$t{qa_@qfby2--zwT zsZ)ky80;HJ9OmZ(6(LyVgwWjVejVFyup8}Y&0Sh|ILi385;yLRG77gC&#c4JJ>t>0 zXE&-`vU2>frV!H5@706!ox7D)oO4QR_{hg>w0)`35=EYq=H5s1W{!M~uIAkrn80X7 zGy26_adPV@u-ELsV(sg{tGsdq%98y?rL6np1Esquk<4aS-}W%=r3H}ZE>*t9XA;fs z0oOl6T5>(0YfFsS%+pT^?1@EokYe9FDuXZev$QQP-0tNLdCQ7A`+>gZv(Y{)i7plU zsFR|w{H#5fxwz42moaQ=UtiKB4e=1)>D_pbI(=1w;vfTs#tsp9S+yQuh} zX747J*W`aWV^B0k^zXUs;kT(ApOBc>Zr4@N=R?t_|E&T!iz&tb(|=#{{~JF_DK3}% zQ$&8gGZ;&gY6$Kw+`q~q^etji(NZ-$vVZEf(o(k^U*>2O&E%T?UA>%ly<5thlF;8I1HtT0 z2E)qAOWhU`#E^O)A91`Jm9KDHm9R6j0o+ABoFg_u<{AZu@v(}``h0L!ZSChkNg)Q= zVVv9xKuhNqBnrBUUeOik=bx220XcX|8Nj;#O8BzuJw; z<%?6S5UiXguJ>Z@Qptn510*PnohrA3Ki5>}sd#*e)BLh4baea3=?mIi(_gPswHVXU zg%HoF56|-JCZ{%xRhsPXrqEouytIPb22NYy?{s4x7YnTo!?q=CG%+g(>y*Es+8aqm zQN#;wK?-$6r1_5!he9U}Wo!)E74r?Ndl|FDHlX8bY6E4Xuh8({0!TE(NHV9~%b@)s z)$&)x>^quZWD?W8uyi+MLcoUs>tGwgF^s9rjjn|DqD;md0a}Xrw3hBdn<;U2N^-bI zKD4IpeP(#l@yKF)Vq!qucnG&6KR*8Yd_*ckI6%GKpmZV9Ow!= z%VLNv( zJ|$zP?QCPdGwu%k`+`Ter)`QSm?auz#clHqn(FRTlxs1LMS$tMoIFg^XPMweVolHv ziUT0^$5I<4Us#Rx`gP9yJeEdly|a_E?ScXj{;ls*`yx$}0SkY5gBr(C5a;wHeOe

h> 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≫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Ӛ_sJ2j&rg0SxflqEf=CWy4vXa1VBQuP|&j@bp?iV5w2MHPI%FwG$J@u zc)ebULUu&p6ply_z2+SAy)Rjw?QY-aUpYceLn0=al@&yubWX9??vCY4ct@V zqnB4?QH$h%A`qob<&?)e*P84b&b+-DHMi1;OHqMg_N45*e+5BhB$QFNai%-*V{BG?BD%C})AoW@hIMn=U~+E6j_MX+0c@w8=R&t!Q&C9uE0 z#Gt$I9+v#aoQZz9Nf|mW$g@eGEzxFNL&K?Rcdo|yE9*0y{v0Uf0WF1sz+kki)Teapd@2a{0 zecd215|^)+bLuAO9=9vB4gQD=fR5LovuDAmkHsZG%c9!AbJ!xiAbv1Cf!CKbS9g!D z)|(vr^;H*EC$9w!`q?|ea$p0mPP)JhcS7&ZS#OWyzY)a$FLC?cUcu0G+-0-H4>q00 z_ut`CT{Uz~0`*CUOcaZkXSG?6Cs&z){p=$*Kz6c* z@v@g0F%)J(;G>5~$!a5wj1V@x#+YoJR-ui5nLVr?qG31irAkZ5UD#p|n69qzY(6xk z{GleW=!4zoh#QO0&$HfS%+L1J@CRgQleMxr1QdqoG}bw#bST=p=u1fW*X38BTI!_$ zIXEWVC4v>Nj5=Pt{)TTa*ffYZ2~3c1+R^8Mp}kF?!X{pXDzF6a%xQ7)9J!vOXjK5Yqlx6;9u+v z!8&gVVcDr#S#t&T{j1jQKAqA7CghcUR*Vd;aT8(SqgPKaa18hOmeSJP^4y0ct5E#o z{%IRLqHnq?!B)5#ZmZ#)xDB{XK ze|Eo07NYctNL!Uo=PW&{n4bL#BJ0=`Oog?$8uam`-Y7nYEuoS-TiIuKrAfqF8S)W8 z*vmhi#g}gr36>CXXZ0>bH@ytI=Z4AAISKtO=K$jV40cb!(Vv`B;H*9hRKFkY+!Q5l z%smOCnfTeqe*GcqQHEgp=GmyjfH3a+2GI#fht;+-1POSnoug*GOO#zwXB88M{39a~ zsioo2o`7kS3rS&n5{9^NM7ssbMx`BjH6(!MmAs8loBLhY{%|wOG2K~5h@bw0&JU+N zKN%=3t~kL`PdY8n2t3Wjge>}%l6jVRLUg!O&WWXtl9?}1Uhq^BjLd&n_R1SfQ%<2r z@3zJ$*yGV6I$RSE=Biyb((ga|$CJve@w9$(Ovt{nwAvW394GG*gRWpzTa3xU?D6!~ zE9o2o0KfnC{pnxZhP!G&(dYBDcpa@Xs%E)9$XBoO!pjs; zi}E2e45NR9SENh14#83$KrAsKwUK8?Wx6>`u)$apU}L)MqtK2(oIWo?RET`^)g;sG zr}G*It_{g>l&(TX)kbh`Z=ABo;9&@;fic_-6`sV)-7vn!;G9~`d`xjn_`YsgY6mx;LA-1Z(718uJY=tGs7WalN~a%`FCM z@r)0^l*+7bQJ;b7AW)QS-p0h^Z7))j~4vw1G(nqA%}00VKyXSr33y2j3r&N|+G z^yN?WDE~xW#7-lDLok-6xnqvd`EWG zEMLWZ*r1zA>{$`1bn=F3a zc`Pyur>DLVe{z`C8&CB#WBgUOkBj{D(6KT6R?)tEJC0m4O~B1x!+cqWf;+C86!0a?)1l95qlR_D!?lu^9IG_3CxS)1bm)Z#T&8AN zqp-0b`E~@vJ14#$aT~brMqZEdS5wFmX(yubRqKR)Z=qw!F%-Bg(5r1kxF1IP76MbJ zJT{!Q-0D3(hKb>W40iI2v-OECG?H1I&u<~|yjOKT$BogD zN?xTlg3v>X#HGd5AdKX~CrTudTfw82fMr)8o+fW%y-h+(x6u-(Mf266`0~K*!qW9= zb@XgYnkN4ba3M(P=#zv$GTJ!5h8%<1!((-iSsIRp>SNzN z@V-QuYJy8$O2?&B&<%N5iV`1x(5>g+l;o}CiBctsV?j|LSz0)vWO-=-*FPAA)aCvZ2 ziFt$SaElUX+@wO}d3+5upp#^Hn!>u}fQ?8@7)HhM7(=w=nL?JN+xtRaQru{q=k0i`p$k z17i|ZTbAum%n#)qt!?@mTf@|;z@tY$N%-$bZ0GE_A)u&ovxSQMnlus*4!+b?27oCv z*drCSzo7GY-F%jbg#?0Dqn@HcdRFYrqSw6j>OaP;%ZhW(Q~LujsgbY+@TF=Oz%r#H zxDtv)XJUk_>u56UvROd8Lz@*=(0=g~*lQsFBjO!gm*R@!YikfSr5DzUV+)dkAenom zL_n*DXf;Dz_Vc)`6+7@vm*6ogm%-469N+%}yYqIa0-0-X3;$E7AEf-Wp=36c2LHCh z?D`Z!zS46NtP$}Y6s1z=8e%(+g`fk^VMfUHI%B?!!nnyk<`xdzV#*p3^M-kHM4-f_ zMD`9eQBuQwlo_886(*;A=?k zi}X~-+=cz2$8u{^G?dqxF)^ys#I#LH5cC9%o}-5w@`cO!zJE~oR_k&Z_JJO&&vqD^ z3t}ll1!^FNkHpszm?QAZO{cOAAE5c;Ot_I8Nm2q*K82t@N8EFZ>uv^7UVk$Ev5PDF z;R_Y&0LDoq^8x-SF4l&8FkMSrjG3G?H+fB3yIukx$FzF|uH-t%%vBWS>U`({pVNMFH%Po~UpCmfEnt8Ro2n4;p1XO}MXBM%&mEM;OK|}q* zEY&X{8M4BtVKe0nkYvBeoFi`ES5|R{P=CM^)b(dt}kY69uNQt8Wu&w_0 zrWayctj>;_?sEu${bDu@3z+w+l-JA${${phx%u5^KT8Z{KclGkOw3*vr|2Mm@nh~2 zk`fF?;vYuu72^=dWT|83w5*UMWn$q^rk6ygU&HQnz$g4ilS213K>MevRKl&%dt|7_ z@SvHCG8KQN!|PYq)M9a4CDSZd3=N!=+Ni3}p-7e8KF><$BX#EN$b4c9L3!4dV!N`D zFz!Jiz`iga;9pezc!s9@J1$s^M{f3~6A5HHFp*M`Uh%rnsV&N_qdl9Y4nG$widlKB%!Ml3;TrX%4>VOnF@%fh)hN3YfF$@iIr0ew()!qnQ)uy0ws@~pf*$%g(VIEqmNtn}g}?$N1G zw)7t8kG|!l;kgf?xWb`v8y{p>P}%vp?jSK$V26Lu$HsM>N-%g?G66z=IMV@S)4bNF zRADZw?})T)+%?M$I-W3t3LF$`>bEcR$vJE+P~i0HY;RNRV$W1sLjIV_NB%AnjYS)kkHHKa)|T`M=(5|5}&w z>UZg^-gkgsUL^j$ONONxZ?<#N;Y{q`r|+ZeJ`<`T%nLx{Zvszj_1nsDL_|PhTBJU} zC zqnS*;PP>*V{)SczotqhbkyHH3xCLa{z0*u#?>++#nFjC`Za_!j>=ZGx(qCGe=U!ikMu zYA#~T*sMr-;Fc}lK5uzn^dDVgM4*lMmaY=jVS3ll;6TXT~K6De|S`=(&!F{$>Vx$ZH&4T7|p;ph4Z7PYC zpC#%}Y@QVkGTNGjFRUPF5Xz8P=)v^JllGKc3URUb7Wr z-TE3U5>L_}qaKHuUiN<)!1i^~t5GQ@c?5yPfwSn z+mBy&L|hXL3q>kO?-!tHui>cMH|6MmU$@7(+mWmzkMiP{Q3dlfX1~|vZhP&MP+ewT zZz8$t=(Y-?-y*hsgyL?JDE&@N2%n5?^F;-`B4z(1-0eG=ZsKKj8e`uj&2dL0;d5-8 zv(2%GS%urSwIjP;B2MxU!+$RJs$TjMaq=E!4i;XTfo&Ab(IIgzevgJzu!OSF@=n4h zaO=ap%zCCZquV_1;~S!mGh}6gVy1KLzD+H7OMEp(&m=4dNQ7wIr`rz;!j}^5&Y4r> zY$r_=s)H50mB99KJ4D9Ty7RU{rCjSy1u7Qb^&ECKFDJvJ1HYEgdi3qdK>rpP2D7U7 zEzrdWZ{u4g*o1KcnFiZQ%4LoW)*Tu>$=gpz+Z$Ib%K={*S@^$SpcKB@t5@VEedffp zd3pTXK9dwZ%jIw&tMz`E&@1A>z;q?$He`CU6^A(0(3T?Y;hL-$cgd;uW7zZH0q4|3 zGPe8E(MC7j*K69f9`95~ISLPYRH`fFLEU#h&JqDc#XP+}|M34%byfjU#_zTUQMyAq zq`PBi$)USby1N?$326jIq=#`##C#xqWu-_ptB!W zh!B-s4g5toKkUs+`jQ+;XZw@hq*QBuYM4Jo#jMksEEXV~yc2VE!z?rP5Z4u*qhOe8 zYu7jfLR9;O!p*qBF|ew|RAcDBl&nInF{{9rNx7?Q?W3gk7Do2 zG1D#dqAz%kbIlvSl<<#PcQz^idQ%FMcUYq9t;jtfO4?5XHLqipIp?M`c_L&E6+n|u zv3U?5jo<6>Y}c$-Q4J4@nhslXd$+q5=d@u>L;g&D zX8~n|oJN<&hzy9>>74aKbD(Cmc`ssp*Z}hL)cvP6}}%ZuLYibaaZQ2M5)F=Vuti|}@?vn(Vv->j4=ywKhX@JqS(t@1Q}WSvezGQ6*bV)L zU|{Xjh;UY#g!fF}^cZnx zmpd0KN3ZuGfnrvo zrm_{e1B0q`*J(~B$W>ElHuuSckHnDPvR@=g?S*;!%MfZ@Q91dzg)Z}+U8xcDAZ^UX zV{fG|R#Rly`41SSJJ}T7B5qSM|45cY@xzwZkeZK31eX`pE)It;mg-t-u|uMBvADm# z9OhEA><>}){thkXRcnj6H_MP=0=@TAwvU0wbgEgk`@r_P|2p&FZ%=8(sY6Hzc&?<^ z3{kD7S>j&ykZc2&%=+x9OJ@G(tjTga>v8Y52FO099_m)hLP|b|KNFkPqSlgk&^Uc~ zzVVUKHP(AyP?ANK+lU~g;62>u`Hq@^%C-y>OtvkM^F256i+a?=UIeN6m&XODaPzYu~`B0CB{Vch}DNpc1ee%0e69w*`4fGt{7SKg35Guhc7 z_H`F+r~|*^Za8V6N0wK@()@7L*B@4{5#AC0%VdcV2yp%CWsnEF5%`0&k-UV4%|f5( zs(9@lCy~dUWRVop>Yb6tW_DvRLql%B=Yeo6CJ`0|Rc(8W+?bhT&!=$mQ_p%aF2zV} zauaN0J+IXReD9eds{9vJHZnR?z@{@cC z=NYCH-Tdl9=Fcb(R5E22&(^K)ZZuSm7$j7;g*|N=X7`RXHKBB)I;ehHxylp3rupO_ zUHdd6S@A!lVZ4+BzCl%e-Zd2-E=Cl@mSJtW+kTr<~2?4 zj&2*x&T&hdBRR$@p)AC)?spq9^PDrl4$Vfiv_V--W^6AS!PJeFjoN?imJ>n8RWT5T z2{-7s3T^J1O+d%6hUB=&IsWD_LWKh>t5mGcoDdL+zuR>*l90VEhe3nP7%@m+IDOyo zew;9tpDd=SZ_X=a<L_Rf(!!T8Kb@HOgb`q&I86;r7?l|A%dbk@to(Zui(rNNo z%B`iy>}eF@Cy(JsQDy7{%6NhVWLx&2F9Pa*#GP0;#L7WR&n3Cs2XI~Nb+hzs-FIWJ zlGaZ=IH_6ENoMD=--ROZOeQ|2@qwkiAK1|2Q8G!xA{JC6Q|kP3U30MO&y^ zewc5IWAEKX>vkJ+lqbw3ffuQ>H;K$}whE(7Oe?fmr z)8{C!UcS7y$depVY`I}YAxus5VQqTVZsuX0uMEjLse_`EBC`+nxYe!LpX>Ex12IQ> zt{pDmgT=-0EBS*)61c4E_RQtN7G)*Ts zgz|KAk+ntwufjKH!g^iqKhAkf5FcXh?-aTYCtZAd>~)jG5YyI*EU9r}U}UJ2`FX1x z9vK^EHIKMBW9ef}7Bh`vfkDFg%_SMnWzd4!19gXOu2$a#kD(F>{OG}-ZndfImu;rn zq(Ah%FQ7uJ-oI%JM+mr{L;g>gzxO-qfz?^D==X113}c_LFwsMgy0T727%4HQ*W;B* z|G~UD0d+5)TR3sjCbL5T?TwO;u|ApQ9wjFA55AU2=TfI*TiNBx+?iEbZ2AQnccr?O zCS-qp69ds4MpZ12N;ubK_)KrLu<(k!4l7RjP~sFvY6o!gA14(Tu&P@BVKfZjEmo}4 z{?ZB*cILM#j2r>Zw%VEn#8v~W+y?q6?+;}91^)J=D#rz{u#mJKD+L!JiTmU*f2zaY zi?yDB25#TA67EOva7VIID_$5u6h7KBIN{WIvGz#W2?#Waw)xHy%droQv4rbeF`TG6 z0%TLSHq_^2PcWs)rZhkGv5v9%zk7k3SMJn@nl9>WtZy{dLFTtVDGJ0nb^MGLlh7dq zBh3V~2I^HL9_f-j7&a=CLLa@Ye97iREhD0t_AC`|dbL~$b^?i2WEV*x>oITmo;&fG z$n`fFLL{g1{yWMT&whPO_>Z$zS0qSJS+=^I8k@cF9GDTCM)Eo_a0mMIG(w8$+cT-h z<72Ax)lF9u?M*K?-BA&~df7gBVqV-W#i}mG3kmQ@`^qd8{nt}u z-j#;@6W5pByjItoit3Ir*~Hodw<3cd)$*%y02Fw|vMh?a2K8q7BFiAA?mnHj&BDf) zqM-x=l2v~7&6Bb!1U}r1@!eq!Au?lqOOrcmSSOqrd~(W>y!;PwnhzE^A+Ea#SGodM zV&x_rE6MyvICn!ZBspWn^!nQ^-)|7eP!D{A3LM>abcp)q@&4Sz!tpen8@U=RT-Yu~ zODmJOmWW$$*Rh{K;ILpQ1&edZl5qsls)8(@>5nf8H~vWp`PHxBk7D%xVSVx<8VJW# zN7&VFOsd+1!WRLjJwV?_FWc1I_1^NfANDh23w0r^5|{z&3Gr>lsbxhreflvoX*t?} z2cRyym!-^OWpFGXJBzOPY)`xUsKC+b>3Uv>r=xy+O?9|*LB^c%rQ@_L>cpne?1^C@ z_R4DgQ*W~JRBrQiuhpGlv9RbkjZ4ML=rHa{ZWSzIm-?wUw#$2>j0D^j)-d!?Hq@_K z;=?-QmBZ!BTl?H8HOd|&o-CHDuMP<{Tb3M}%n`P#vL3HCY6H7{eoJ}WU;n~XNIwe_ z9BudshJ8a)F+}M#rze?Vcg5}wM3B1v#+CDeNttL0olBVePv&0bHc4f6`F~vk{URkV z4)BJMIbfgOv6HNKI0C~#n^^@oD)ZP6zLRLaygI%-4CIlRcTX?nac|lq_>*bXOcwGX z#$?C+YdHX|H)qarf7kit%Eab%ws%F`3b8D2jIJL|#EoZdTYM|npbyH-#y{h(J{>}Y zv27PvoGIkVW?@#V)$V(dpp`ZrD^i^Lx+vToCvt)|Is91|Q^APtS`PF@?FOwNx8BtM ztCg(hqF2uEE}2DZZgA9bSzLb1`AE{A+-}EQ-(@Vllbm)|L)O+_Vn29eRmn=qEkE9* z7NjY-3t)6$$M@!Hn#3KRNs-u&$ZiVwbQIZ-jja|&LsX={;|?qwntuh0s{k!+9Kn-o zz1&uK;LkXVT?32*`17 z@MiSG)tTGcYKgO4wm9$%5QE2jehuX>+VP*;GWItl)%Ut$gFmcOVbv+pGFCaH+Bc2X zAv{;}1vrszg^r9#YUvMZZJ<{6G8DKlOW`4*$hv5-8f0RCES1`&R3Ucr0+oz3JW}n0 zgjr2n;z@y0nm62{xru}l#b0aX<_RA1@f_rxFCE+GJ_L!Qc>Fb3Ix zpYu9}`LypOPDcs|zLmcYWvIZEoSCvp%%oWF;mD<#iwkezzha?FXZu64XyJ|-B*#yG zu%nIJM;x`fH=2u%8dR*iCkR!^0JBa3c=z!g(QuYNNNgF|lsn`Uc((m63CPLTS4p>{ z0fhxvx$_LyVs@cFrh4E*5k(F^7c(IsTYT0zAANKgLRvJ~BlDA62K2d3XR&ffRtoQs zfP~?&sQ1dkdGoXKnp+ZtICjQ|Kf$KuKg;&U^X}!FWRo2NHgGzX@mcTcy9$vlzMbfr z+|(k{syMx3=W{c(<(7u%L^BWSqfqow-o2m)QH!Px&lK}M_sZSCt=H+uX;HfKP{8W& ze_Tw{_g7ccgCXetBM(>$P|`HPfm*g8rmm^9botlt-s#y{m!?{$;|b+) z(VK0Z;Mv_O8c|?~p#O^$uKushSD7_F;` zC;m$lssr2Z?w^22@)~~4h2_EEeewxLr{| zbQ)ZRZb(HuRV@&lpmtaLU)i9TJou*i9y*dVoyad>_BL5TEo0x3tDC;dKdcTJWqS%s z!Jo}l*`)_8UgZRc^>x~~1#}-H`lY8bMB$Y^cw~ic>{zv54aV{=o<{@zup5DC4Ak%R zr+zJyIT9h08|BPskDQ)_$K5ep6J~qXiE$hE=gAe=tSZExW6xoPAw|$x zM@}4c$+V*fabizX#02qwhizLQCpnF=B@PysOAw~MCMVD&OX@^jlvE$|!~Kw;wqTLI zL7^1j=BoLcTu1^XoQ>qBt~Nq)Es($Cq3ETik&h&DsGX2CUQLk@Y;Umf={Nwfd9g~# zKuX@*B6oh}p_&HFLiaLggea+1!$xvPntviiFI`3QUJLqd6{u=21!WoYpbHZl8(G-$ zkh_H2DiABsEG{kFw#;$(#pqZVcPvv&x4Nle?cW|^T2NaN0_rUxC~0MuaEGia_0o}q znZ6R*i}YFw0!DO2Dn5x|T#7T!sZOmNyB|bB`ib7Xwi`~4`pFZ<{-VNX--`vwxEd6p zBb|G0U~ zJF;r&r=|$Jr=Bo_8r^Rpe?`zmY@^0AY!y_mL%5X|gi8F9dbe7>J3)(tb->3WpK5Xj z#ZXm75d5h~HW~KAdG@UrfYxZ+Y{A$uk>c-`hw?{PeAA3J6zs^3t?7&{w%*<`G}Ymh zu>S4o$nvRdT6+$tYf=KN6XT@7QK?be#dqLjySHnO7PKd#z}X-XIJNsnS06^B;cH_t zS3)m<_0~!sJgkE1{o%e8>`6O7h)W32ShH zDx>hhhb<(lD`68FLjV&zSxI|)`^BEOpr+8xqyHafj)U#3U=fep1~MGN931UozY`Pp@9r&WLI;LFM(Y|p`%T=eTOStGp{>Q zAy1m3({Wr$MMBa+=8CaKpFEjNs@Monca0X z20BP^MP(CgWU2M6W>s=H!bzep$hh&U)AF72*2?7OD_+K|-H#*YXAUN0KP?@3SUD9; zk!;;gP=sm6$d!@Uh<9A!nQuAAi1ZFNI{Gr? zvLx_U)Q7MRLu*Vc11k&K{%~KEIM&yim3Z@4t=q4ru{;jsqOLY@eCiQap?+Xlh@CY} zAssbK8C{mNI0_}E0U}LyOKNzw5vDTq4_n3Ozu=@tatHH>Rm{f(-{RoITGmdFx(*1* zn*Sq3)9dH^fAWt=7lvDsNldfUtB61^?p1`w=t^)1sWvlI`@cYLvu+cjW4&@Qk(}Lr zf-08L?ztUARi8a!@I=xN9XE;Nnm*JuE*E`$aJk zQv3PTl_OxK&e|Vy%y{90u^cQ59kS&(L>8ixrs7$~<`f_6@Mnen3+FxzRh!~nYb0QxCU9ArS6z>>R)a`ybfVcC;*tqEk;>dSIfnUiH9IKjkLFCo6Kr2U{^}d_Re4 zNW24Ez->_=1;XbE*a^PH)=36>r$ljK_`y$A1ORa1a(3hj;|qIZKED{zyEH0HWZx>K zi2;P%rGD}u_S(?HFc8VD&?YHznXBBn*kUmI!T^-<>vrGZ_uc9JB`{4Dz6|%tz1gA43tV}ZaTT?ssJ&X|(w@9V(pWWj3OMJSjfTU}Y&Js~3RvN< zz;GBDIps~H^>+Lnfu`&=!YS5XdwTBvt8{Y9NY}W}OC<9z0dedZ>qNuz#7ZOvEaQ+n>xGbTz)2kN@pk|~y%OMnX~>pY#*riFHI`iqco)g-o|u>z zgaUu%;^^E$Q?Tp^TdBBU{XB_H0~IIRl$^K1*pOKIyO}X`<{6RbKj|gntFrPJ1b%k0X%Ptrm6k%J>FaYS+rl73lhQ2YjqO4e7(4xqbyit; zbVab9?6M1)XR*dcC%**`Pv0-k!BZs@c-u(v%a*9aw~}6S36lJ7!$K+xyWt3@3Rp_< zb`2?=%YEOMJJL|;OjXm2|CUIPRdDE@c$v;_w=8%HIr8zRRe$NPKKT*c2mfog`QEb< zq_?MzUoYLjOt3tX$ft4ml5bYXE8UCAmH4Y#_YGOFkkuUUs2gak2ZI-3(;oBo4g5mR z@9nV?foyr-E75i@K~tLGAVf?8e>H6-0e9XaHfs8277~d2E|kGdeQB{$!Cmh!yHOet zT_;=fBOQ56kN?4<@I>C`$reAWGWE@E9m|cV#(rm>4QC}2Wn=UeF51d9(IHeMj!8o2 zzO;~^>W4ysfS@|Cv@c&@uCRF?kmg*yW*Dz513y?J&sUTX%j)htZ~~Envxz0|ueKGVe4VRXce*T%2wefrLx;O=SNBYGt+5js&JNMx3FR|XXR~+GMA9> z%bb;xg;(b|C=|;`al0YFdKh(oAfeEQL25K>q%VqrKlaZ7x3|KsVUZ5>dQ5!dgxJ4h z&QV{t4TP*SWH(HhHLqnI$ob-93XT2!U+1qy*LVM4s|v?4dA*+jI?gb06>K>$;nh>` zEZof?MfRTzGaD1l8T4E`6qqs>qFThm@GG`t2U+-(>s32SPwrdOjE|fDD$kPFsI}^{ zwd#~(2`A-F(8S#JJ;^+~qE0}FVPteIVqfgFDEz`~%elsN?}pA*g-(OS0{r(2{e$b> z=DXszE#n6c1R#;}jg&X8EDy(nw4_EcDXH_9apW1kec!#pvABNx^Fesr;wLj^^XXB} zE#f=qnopWekkU7X6I`1at^0Cs?3+3{Lc5Vm+rRFV06(lZb$+-*hnPMhl2i23wI6SB z9#+D8fi>MJL5ol3z8VOg{TV4B^%2j1@e`4xa!$mdSD`mSZKoP{ZBD9}4nLVW65iqb zAvf~?Ph0-IM&BJ>@*|*_Cit;b^3J0Qfy_M9Rc(uVp!DuY_QkSQ67@dfhtjN>aJ*9m zz9PTAie;+uTI;(g%mhr)cc~6Hv+3(YOe~7BLc>6Ab0q%0Fh<2LO$cEz3Gf9$odQfYAVy$^8DS$qHo})%;RNf?$Il{jwc7t_c*2^XY84kS zpLL&4YSKLp%BjtSd_680ceo+6A|M94gaLKh;D*IW5uCIf_z9H_s*0gVqAaP=j7o;8 zOL!|B#65oM@(L8o-*3x<)_C0ptd(AuOh4&f*_us`Oa~TGMt>X-+&J;BWZI>$*=)L( z7e7}+q(n*0S4)}1T@m%MSCmDSaVTXM!~R1Ljv3&qI?admU8`%dsjePR7@InL{GtHe zX8{GlLa00IJKOg?TkAqbp%$(Y#*aTgD7Pf2gPz4QfjH1;3S)nYP+l@P&-N8lod#N` zJr>A;U&pXlq4*ToxdgM?k77xGkhq`kPBPVgTA*-0`k@Te(DlMm*KChuC*L2Yq!~h{ z%J@o~vqnRHHxe)luSk*u5AgmuMCm%FC%+H&$wPcdnhFh(Q+?0eqV7B&r9ad8=>aTm zys>$AC}H}o7ES*Sp=f=PMeeZm-?rce_Zx(p@!J+FAp4*zV2YQ|h! z6{`AqVFYJ|89b`0r9r_p4e~vDaY3ogE8HL|HR`Np4TE)vEi=H^t{-yUYA@Ei=iE1>)`}D@pcQC2?g= zu}Hg#>(<$CoQgW;f8~emiPF6S3i*@iO9r#>MrbH`#|-{1AN+X^)8FtJd9g z-}u=oxf_jDZ;~MjvXz$u0uF(>+#ADcSs z?VxS2NdKXindH0L>~+nP8tqdb18>i_dr4)cp`k8$MfkQ{knNepTIcIhh`-GSN zD_O1Ti&y7=^ac+1Xnl!YPbE+L#9JR$Fr>+eO0U0>Msxfn>$sPd`pJVdRRB+cp*ic0 zwVSp%gPmX{OVvF}HSn6O z*biF$#9vuBPzEXV60JguLhVAXo{aDSI1z-FsQym};V;*4)Rfd5DmfO*IlA3kTQv7P z>$l_!gncsIZuEb?2`A)=3Ez#wS=elRNB1C8!y}GSdQETKpZlFrev)i;9B0eE!KF-c z33{>G7G6A-UhZ0S7iPD+F| zrmDJSr5L6sKpbP_zZN{rCBRIn4YiaTReuI@c6HoQujh^mfO=L>7VZ%1nO&$O8Z)B1 z(LnqBC(P4aZFn?XDgjvy^Jte>O|S)^om4GjQv~lr78r;hjWeKb0)CQi4UOa>3+&6b zQ3+U&ozhOdVJ3eLO=pRx44tHq7}CE`QL|! zb~S`g2CDVeN=P%EPV$qGQcOhO1_3Di#8GXr&q22%YH|MQ@;&(qrpA*}h1QLF>8whX z1%xx(pJm%^FVXR9{|2p-r?oa8F!gE@1-$GQ(E0wPnT zrV=z+l(_?h+elZW8~Cl5%N2#>NfBHRw3xM*3ewgBNc;j(agLTJ1z|>CX&vYAz zs1NOTQ%5ZVw`e{g5~(gh6W1sjja!U{j!-|CcQdWLpQk7crqd{OIIRIvvc-G@eoI%#9k}$ijZSk z2G`n5(Xi;0)&&s$g~ZNQ!S$?MsmLn4aoLl#Ytp!8_At;%4+VQ>&LZ9ql2_rN8e2_F zwsaJ)G8dWAp9vId%uz ztiizOb8ear`!>HFvFiIS4gvi6gg{C0qwpHE&=a&i||eh zl)}z!FRWe*X4@s(^;7XQe?E$k0?>h#zXjaZ639#$b=y4T!&-)tM?3FU&i<`B`3|4+ zw>)E>2Ax^(PeboF9v%H%zbprD-t0=aHYrAFd#f52*E-R-Bzn@fl!|r;U*~^p+g-ab z1yDjFASmv_RzgV-77GOKxIaAU5s9lQi3`J-)5FpzY04xpjMD|F85Dv1ZpbYUIvI5vj#;0msAKrLAW>d<8dWC_IO%l_ut0%K@^i z6Q_wI7x!2D1I4sY{hUmMX^D@0;a)(i3W!ylDnwZN8}>t(rtHHv8+uSg0FhZnmg(V* z3~}Gt+Jx4Z?Se|BDU-s5^m(nwFjOm(LUd|t>*6|YWN4j9h0BU7_Z(VBoG-D4Gxag6 zM?c1#j8KikjFNAP+wr}nV==FD%L(!6)^YA(rrI?#hVK^ZpydGa4OHCg98-EaKXAr{ zapezZ==_H5yz6IExL>keGA7anDVWioQ3o^fIO8$cA-Akzi4UO_PYe14--Nt!<$$K9 zNw)OFE|qLCX~)O&LS)j+)BKid1Rj3l70S{H5A=9_A4-TY*>YEE%2Abw_ui3c)V#Px zNDz(b%aYC|V;~{;xYo7@*qV(L z%ziesn@jLv%5DB02OtYkg0H5vs@PM!_-vi6x1wI5vtFj)$v!EPE}rL3Hd>D}Zo20b z9$)EtGs0Pv{z-*&J1YEriG9ZL92iT*G|N#`jHtA8t4CHBV5lz}>VIU4K-?!?!>ye0 zNHkPAHL7w}DJq{$2JnyW(3ZIfgchM{abZ%XJAWaeParjV0t|w)q*pWukz`#{6Oju) zB#F;fkd|X9e)MYTH`0P0nM;gB;ejB43|IGKkgEiL9Y8d~R3}KFN(|1p3@aN4Oqqry zINh6SOFd_XkEyW;%KCoLA?@CS!2ewxaeqfo=v<$tF*P;tR}*W1C~mbvy?TXVz8Zut zET87CG)g&Up2(B|gly)U5FU$#`oT6)%E)GuQw}gAO;#}|xqKP>nc3qg86wq)K*9Zu zpCMT5=7UetZ!vcM7{>==YMXLrei!%GjUQa9ZhK@EbrG zamX87vw39~COg%Mg|b}Ak;n7dcuxv*1Yx)o$aX8HV)~V%FvcBw|NRzm2bfabdw`}G z1%i@b>Wh1+DeiSkx;D};n(&i8-K)yPfci;G)e)!^TOTE+#;nu9E_OBTGBR~PgtNzt zwrO5)zK0NE2NWWBK*khng6Eiq@=B+mw1o4ME1B&AYmdyDtOz zRleE551Q%hVqWASuyTNx<2WJB%_h=`3!nLxu31lVS?)2q7v<7;j3jQ|XuXt@fY~VE zgHOlB;&VC=kz_$s;GsCPlW0#hUJP{oDMv5k@tWn35j zf(^H#I}Sl9T;v}{Wz?U($SND(sHtzV|6UEQuy}Y5s#gR#x@`v=u6aj6#b8{gA$vO4 zTQvNw=ic?gm$ifIcPs9%)3a6SbYL56p?}IHxcPc2T2r6vm~e>DF5@=T#||g;P5XvO z78|G)Gp!rcVG>XV$=^QL;3B5jV44klR60KOpipGX=Y;3@rYni4+OQW&vgiEHz*1;p zqC%{Q%Y~!92D6;FLWzO^S2btS+h4LL&1>$l#;xvylUaiGZMV7z&Rq}I0V7fr=869E1v)-r9`~nXv3yT8 z-=>Dj+TOTh|7n~()+c;-=6f_8^DplbwwcdQWvfk&*8iFi zcMxS#;4nxf*ye8ioefHpw|s9ksH{lzJ`@SNM${ z>8In%?8KV`Pl=p5h2a{<|9m~GLK25~5%vSPbG*?N+Xr0c6UQ$ z&AHJ#C(xz8eU=>04K2;uG+S@}jAXk9Npjnn6u;5vy6X8$h3At_(OCY@QfRAmG%|9W|hc&RZtVH$=TrbPES*UE&_L?}3^g+wyl3Yx3Xr zs*h%sf>>IkT3*sXhWj4stmO;*=*lfKmJjbhDG#61`I59Dy@@HzL3CpT_z|=~1bsCE_WIoFo5T9{l^3lX%RH|gD zIR}$k(2c#%f&_zHKXZmA{u`EqjJvl9DkoSb@DK=Rd_>G!gbw<^f!dKzdFKlEE%;E7 zirvoBcb+F`!b{opiW+POMIzH;B7WLMNm$Qw2qX;7j$uZ;k(Yp~Ri6-GGBu`^idlZ` zLfxpe8<~9QeN$dYJ;yROyQ@Q(wATb%M_7XtLTcvlT$(C1s{cBQ)aTeL6@Nd{VSGc& zVV}1dpC(387+1aq9=@bN^x=V3wh2E#P^}of4;*A&nemYXGh9EyLPn0iQ+BZqc$$+o zMrOaMG37&!)N9jVk-|+GCvBbW7DevrB2Fvnx6==;>wn#0GS9KBw|z=`g#PKusk4>Y zO#0!7MEdGWO8U9PCUTQT8=e@OBdQVXOF0wsv z`83 zz+198P0)q?3E3I2qT<-XIWW|rE=>-<^zCTW|9rTC*JUuNt`GNSRRujipWcedzc=_EJKcMZj2{11)# zgI@nZ)DE|_rXPtZ9Z+9XH=em8k6T7Do;2{u6CUmXf46uDQ%!?HY%O1SHnwabX{x`N zz?xYbX7<%1^Dc9HI(@bg?f3`rq#X1%6;cmmSM1Ut;W^l`kgv=9s6r7|4SoueaM}-I zVt_@%W~~CH!JFR`juf|t+FDzqMEg`kU%z=%j?G}XaMz(Gay1WanS@%D!dUi4cz#g*d2jI{c1fU|LiiIDYmdjd>e@F;cK&VOrXe8xsj2( zQT`SIa#F-=<2IJ8=8V_5Ihq2;BI4(%wb4+d2~JcC!BqIqE@n=6#Cxd{>xE(bTo~Q0 zs_ScaH@e-s*FEm=7sEVv@_3($_XD9_vu0}n%iJ6J9xa{r^|LUQ3vM01y*W71kSzpE z6teJdm2nOky>r`C0CB61_+ksvx=$I5rfef$43&c@Fxw|t>{Hn6&a%!;-alKAIMWYn z8EVsXnH$jPDj}(kAEk)WlSyOkhjvva9&09KBXXN_F}pcqD=3A**c^ZFR*9drhI=L) zN_}37W_kgx6QX zyBZNi6UX+%FgS``Fo^0~vc{Ix30yO=9Oi^Wd7B#WopjF+(t?d*z3NC76mR)acg;1h}G zI*Rrrz7zirO`NgU7Q#Hr%Ywo3cLK7T5fKL*)rF8ggQ0q+aXfV6J8omLBx`KZX?>Hz z+fir~yPLU`YEGUw6XkN$zb@IvF=Qd0qZR4Ez8KZfKq|dbEL>$YjN|UDQnp!wq4DA*?B1jq5*fu(3+O7-S;v<5b6qE^Df3DiXLlC zm{`YkNt>{p&4QG->n#7|V|~x*V<_pH-Rh5`^Q2ACow1S}pq^zkDfTcU>j{%-_~QEY zLzD&A=yH+d;0ebw;<)&^-C~izY;FYBq*{9WXhjFi)Ar%m7!H(rI^5bBp`)H!!CJ`ETi4|m*K9+xR|&+f)%!6NQ|&i)lU zGo-(+Kjoc1s~Jn^(tcWCD$?$T?jeQ|w9w z*ELvDkxWMI$gjW@Rv08-=9x0N4W;*Q^6^}33;_GZvy`!Mu0KSq7P>XK7N8NXyrmW<)s1hBgRkS4l3Lw7-++zv$;INDV4Q3&sq(+_Ge6d<=z)-#H4al#$B&sLMcPmqaDmF zS7GX2n1w8pIijaQwjm*=LX9W&V%0{=w_PDuisI)Dew@9Tn@`q{U6+qyk8f{_#N!*{ z%YW$;K=1WF@%8VKJ%A7Jn|OehhhD3R!>Y54p$sm)ZT0d4c_U`@a|Y!B20KWzExAjVJJeWbx|w zfBzOKQ2O8MmBaS{DXtgaFhoeg8OLuT=U%;DCgN&8w*wL>%y6`*V{Iwled(A;+9^M- zVZat04UuRs;85_`cao1|7(iVbemIY3I!lhU?@^#T;@W#1t^K?Muv3F08rX4hcUgsIa zlaxGBeS5ne7W2w>a=KJ# za^oERW3u008^-!&{thU0iN$kWvUDDB>dJZpFP-uw-hE-x(fRamZMJ_ufAr13Z5*Al zeHt*L0$3LlxlDUGZu8lp1fLfo^?F~{aMhtzbzcpOuVTx+(Eo_xnj+O)c~taO6g4JV zI?G<~P%&*7{|;LMCHDSavO6MSWbi&G2gAZ6&c+<0-HMF z{ZuR`iO$bwyGJB?#$TA;AFJ3V(!{&~i}rR%M58(opJUlIi4{Fr3@O!ltkhE>*_H&q z5Uwy8*pcqAkzk0}!{{rUYQoDhWI(pe796)VLM*qNyw|Uoal4_OT~{bKJ;f2Md^Gwx zes6}XgsN=v)x{YDVg`|dS1M37C7sWai0hWXK9|@)odqe8X-`O;hasdlX3U^+PacIJU;s%1_ zA;o6(gM_MY2rBokyq9V&3vQ6fw->;`19BtmirT*(eN=fienDeY=sewPIYP~yn8xej zuWLid7EbSnYe4~W{h8v~eLI$-!QGcyHca-vd$a3r`}G2E&+({A`epVlHPGZo21okF z-eUizKPW!OYAbnluI&7mEpz`i{_zXHX1dhI*7y~izs|l<-rsC9NZl_&!hs78j<34G z6V)9j3*PrDORM`!9YfVmLk{Ohd^L@`OI`9yF2B*bpBxsSCpPO=a=SJ^x;z^@9P8h{ z;noi~@5RrbGB=!oF2U{b9G5ZtDoj2{`Abg->(mw&*VdJ8ifhdn+r}dJ7#A(82Pw4; z8yxOZ*Fk_r`|2+X?h`k}Q28{Sk1~pC1UIo*Gw_M^EBm_L83Yl3@@U{diuZ-QU14C~ z_mpl;V5}oNw9)&PrCYb8n%F(4P>1hALC03k;@@{_k%?jUNOcpBDA4<#c{U@sHZUY1 zRE)`Cpmjmq!x7!G+Pmi;Ml3GPbGOQOzh*Q4Oi~$Kyu{ua)-US_hdb{6WFUY3rcZD< zX>u5Kin1VjQikyyR-5Bh(8ZLY*)4UTC6I|enOalW5cn5OF?*{ty)fnTgBw_!C=7Yn zio~!AL0)`CYuGiuH$neeUe;W|G6|ri9c-zyT&KPVrP3MzMVpz zVSZBqImRuny)XYZUshi-%XVJRyPuo2Pqy%%i(O#FuS>Vh9s6v#T0=84$tA99orZ#SNsEVi*Mf&zjhCPn@^@f=Bj@z||vQ(nLh|QPt%_atsZIqmJp7Z!Cn}q<}4QRE`gHTVU0!qymu@`6B zYhz7NRmsEcy%+A*pgbA;Rk+I9aK8V|hP;XN{pIU(cL?sL*iCX`WsXsSej(0rp49u< z;89TE=z@*-HJ*5_e_bRJiwJ=4_&*+?z?@zTc5*llr;bu{%bhQMp|@pq{$cx8q!u}Z zE+!}NArHC~CYY{7*v3QSyy^x@q`R%8f&LkX`{WE}M%@WFoS5s=YWmEJVVfOKnwU$4 zgUH3sCN1Q;0-j&p-sMO;%S3T_CGj6XZ?pkR*Gdl!I5dLqmgeOR<@z6(gU5ivt%?5& z+dw405lh4g^^u10*rcrn1?bWPVwM(fM7%s{Rtn)%X9L^ z{4p=(#IhnT(IFet(zdJ4YLykAMLK(p%73y<&a@?7Ls$3~>k0L)j6}+m!3J-zi;1#Y z>YAzj7;H?(?vC1a*pqQBvJ)LNO37f8k(NmcwtMERH8yu`Fqm7X)wk(Lw3i*1nJp}< zx(h0w=+NuVoVL^3TQb%YtK<`_6`5{}Trv$BM|yCyxwCK)9N;)QrZU|5&Gd5&wxMV= zQ#&x>*zAQ(jasY`sB-HY8{S?HCGqw`t0)ifoihF7!jvhwW8a~eX^J?Vk$oKhM@KC? zI64k%!Hoy*G(CUuyj{F>ziJg?>8w@i4cj@jYmKdjN4F9I#&QHWWSJI=gHBgAQX6qf zQ7<&*K29Bv^p!DRmLb2@*pbnx`>C8Ut(;e-y!vHo#bfw^GX}#Lry=r5T|}F8dR^zI zH(17PK}^J%T2ubKGL}?syc2>1(Px z&6>rcFV1E*fNJ+TA?iD=HmY4C$t{jE)(NfF>na1>C8sj<-I?W%2R?{|C@vg}I0{(9 zcf@*>;xpjRJzOLYkZr*430I~PBM-fqaP%Jwk8aPF;-3(<^7CsyYBkyT?Y_N zNkk&@s#Z9S>3=xYd3zVi%7>#9hY?QJz!%y>olJ3t??gw!d)UP?1}u$&UL_rlbaemj z?yhZbZ@Z2}Klw+F5&ap5d01*-IOKx?`fI4N*rD7Tlvvxrv6!MG}I?mg=lwmO;FI&CAhIu z{Pd{lPSt{VRn@qinTU_Rvy<8=IwB7^207!{C1STAxn-SS)~F>Cl=Uw2;!|EcU*Z^4 zUs&pXR=mm(ohh0SFCgtZ++vfv?zU|qrk0Af8fVaN5|AaXLdi7x znMiB&z|JEcYI@1A#r~e#hyw`FU@3GW{yDg)0R!8Rkdu(#&$IR}(%QBZQ z>i$JbF5hp3D;KSD>AY=Tx@h(L?y>w`cUbAt1fLANkM?XHT7R-p)0Sv4jE6RrCZ-TlGkl&$vpPpifGo z6r$rtI_RsQRVfuc?Vk8`?_KxV{*?n?SJnFgXigT=Ssizn?n$m#vZ~L}yb7%JZ z-~WC;$n(wL{LTI>!bd;)QIBqY$2;EPvW9c*tH1iIJ;D(O;D7p0|Hk zzRPaA?KY2;#VPw={>y*yGCugh4>})y_=kUZmHHY`-aq&U|G=L6+~@vvox4q4N?8ko0pPdBS{!jkNKe2!Pum82<{V)E-zwq`)=kA|ZZv>pNzyqUn-}I(8 z*}wW%|H`jF6MlUrKpoNX3(lV^vh|g(e5L)@|N39;fBcXC;k<;7U;DLRd(|NhKr zJSQ5O2-^tY^%Y<76<$7N;LtzmbX~)P4>Y2zVGV0o!x}zU;6;fS?C4aCh9xhpocSFc zaTt`*h~qc+V?LgRw85Dg(_sW-h~b1GPptE#Qxn4$M+HDWj9iXb4^BB1>dsv1!U*7u zu|awaV$J|gBY@wep)QVKm;@t*GdOaOBRY&}Gry^m=h5hhcv3G0rB5prfFJdc2jDtJ zD&Y)>PE~$Ke4QpLn=`;U9cGk@Y`h#>d(yL1AuHp* zW*ghvw!xJ4QpI{Q#s<(Wm)Jl?{!#{2zF4;YaAe2rrX4g7?4pchrc+iWKNZ!VlH8?` zEvz^h#7wDWXJB^4FG;4ne(pn~1yMfU6gNU~0J+0g_=o7TjNN_DJszc)-)f3%Gj1zM>8Mp%wXDE%qA)`i!7c5timC-t~ z=FzdWj$77hb!2-7p5jo(*^9%Ia*$2rm@`qeM437tWjwQ1D9*Q(=-k>rvgYBD9qjGd zNCt6Pv|wW{)~sX~=8EV;v~fmwdvuiKjQUvT6h3)`qpl~C3pV>fVp(Q@NK~Rb+O4*= zb;g-WdvFf1ZXS*lrg;|2Wwn~T< zwdv0Co!wolh+e+-FT4_d)J;9eBvFAxheA7a3lXa#qW6E6%&3+t$`K-6qK+d!{W;J< zdPOvI{i-sE9K_+pG8E9CXfyJ&zAH;h)Knf0l0m0yQ}wG_rDCUcc03I-ja<=IkAj4f zJW%;Kc&G>d;)Lhy4pj9S9ON8)2%zsftoj*xA?g&|*)aJSdCgTsB>Kah-i^tJllAVl<1HhKzLAq$j)a~!8U z{r%)v1Ar@$rKG=b;i5Zfp$8kj5iyC(P!2pp58zzpIr%uFHzMFadCWc1`9_MOS9WvL zvg$KT=w@AR-S+-~Ga2I1YqG*+Ci#Gp>`sp(K0VR1iPDL_aXA7Q!c=vlRq1C((gVmR z)7n|mf{6Bhx8qBZq}5M|c+NuaY$81(ny8uSjATQos3vublrvU&7@4_KbH zp~W+C$oZy%B{Vuzy+9Z9Bty5k*(xpY9TT(Um;cV)81aT*zfhn%4^ ze2niA9^ozU2vz9;WQ{!JB`y6UM_&+e7n1P|@`4AfySi1j>E%aUn7)vnml@0v#h-}8_rCYN_R~N8)2;_Oe(@K7(eIs%R{Z|&|9*dV{q@)T z)cbSi&Uthq5YISLBQS-X2t{P>AO6FC=<noTDKf zpU1K&I~WJS(Z+QIu4}crmCKc@Z6$xq%X7{c{In7JV9WxP%fWLF$907#`64aj!F}>l zHV5fB;Y`E`&QzRV zI80QtM;}gQ{K6Atpn%hGqiT)aZL2iumM+NB&53qd8A~!sr?ZhqJGLfc>&XzC%dlU_ zAWmaoiJl$R)f$hi-RWDm)%EpRnesdzO=OS@C*gyG04Ea81J)O;%BW?!b1;rEZ6z0a zo|ECH7Fn%SwtA)F^oMG+3#SE6z?1D|9XDQtkty!^6i%M&83&FzoGdH{z;#hLGliOI z`E$~#@aY_bTkX;x4oo(5naCjT569Nji!2V~qt>w<9v|3o>&PRE*ijyb0tfV5ro_Lw zWS2-c(Tzw|=#F;=d_8(oay4gT9AQS^!tsT(3nwOckO!o39AW_D=wvE9?Z+{OBLn9g z#xs5xc3v(q)g6Z>IEgkG#6+G}sx_-_)U3YQu&q-&*4V*8zG>CQhSg*g5?v>Px$_C< zBy~z6gE23D;{3z;N_p&XkK-yhj&M%Vf6xmeo~0K2(O@2 zxmvLerZ9?sIJP;vgH?2-Jm~2kjznXCdXO7;x*Z)l{bmcv=yWVu!-*|gvtgU~#Wl-> zlu89Vb&BZHfDe3J^(5CTAu3h;RX0nkj|Vf)hWwnpZsHV!pk{8^EkKjt#)E#9T zrzgZ=s`p&=7u5geYL73;;r&8X)pPU#Sc!vX{eg`SkEE2OpCx-N-EeyMjBQjl+)2&{ z5cGzxwXVE$mZRe%Uj_j@=E}#WayW-)(!XrZG#yBXsGSAJSMA9Z&GIE1Th7K(@>3Iy z@)gS#>$Xwfu@ZdRKd?)G`d(`&UrBhdVrX1e2ft>TSqk(K9X;VyeE7|F`Z-@>gJRlR z1>vU#iUOj6%baH@c5lE!i+h4M&IYkzv>wh)^2)G=8*I$GldwQ_uJU z8#F4`lDtmn>pIXAM5TfglAfsD8=}SZ-g|BDJ%4Hi=~H(3PpSQ0ff5a-LmQ_hQ*5}1 zey&w4tz$-CQGRb1{5o-VU8IBlf6VxHj*0-9fH5BbA{v zlqErO-KX>uxJ?vtvFtoV52II3;t+IU(2eNU812n00%VQ4kuyGYMg32nkT3Kh`YYG| zAq%Iu#yviw5_L$v|4?T8xFy|o;L8VGxpc+XUOhfI5?Se= zQ#(9l36+8OQ|e`jiP&fVzX(JZGR+)kUIeajjPvZTDiF;|^kY2Oj4J~8f5&%xhrQ}m zukva3TU%RxKeh)aUv$P2Ws5G1fGk8HJ#;wflqR~Dh}8$e7k$we*%P1mM0X_rt-tlR zJPi?@;PRQ&dlHzEPb4wUTpZ8*re6B+=bK+Ri*bgY1eQTK>F7O4vk0^ex_#Z(eVzT? zzx#LHQBCwOG#g!AAjSd1SpgI@ueNZnCHhbESt?^wPzLewmMXbr;E6Q zGkJIhuCY#j2LmbOBdw};i1@_znc9LQBjN_`;7T4Kmc_l;2I?VQq;qUD2SB=*hkM{l zIb2h2Y%jlK`IHrTOqpEs4Ej(G(JDC2aggAka)VU&a7?)&I41&UVO!f<)~IjEXwP{B zV5{4)`}Z!}{g*D<{=pS%H)Z6f#e-78GKmajm5+x8$6~%DJN-zE<6$A1!$V#7h6CF>*!MH#nB;_ZwM>dX*;3JpwW?Koy8F`WXS1QhqeFMJ@KJ=11UPJyiVT{Ky03A`3pz3e?TExX`mo*%B0nhL;fb_Ay0mvl0iO)F4ei-`& zXPgS0p##oQoZ&=;DTULRa@-jSy_3AoK`vq$-b?j-E?% z%P)(6R}K$sUwVV+<&logux~>gTIwT~S0BUKCtQen_O%@K8yUgPikzM7mr>_My+Gds zU!tFB3%IZ(1nb4JGd|^jGmbOL;b3ZeT>A}&DIW>kp)URvD;1aBVx??bJKI(jFL9a^ zP0nweD>zamKswJ=UvSQ#zhfjPA6mdQ;tWu4xYpQ^la4O(p-c2!;*g1s9kpL+=-b}E zr9W6If%2=>u(lxU1|z$JLC^N~_FX5@AK_2b-|(36gYsEd6}VP^h`6Ud@TX3$$shDt z(0efrw7|*87~*Shqceq1#`|@M(B&CIj!d<#lo)Bh;_ovoX#l*J+#2(pM=(*K2k5^>BdqkBZG67@Xn z_I=YiYFkJtj^@&L5|Fv{@=V7(ts_%bUnyEv`HHGz@QK^4_0f-8P1l*}$eoxebgIf` z++Zd?uGL{SvCC?E@hMNX5n?3ACJD?8{-YS_B)5AD{d%H%@ zbn95OV~m!}OhgwwlZgyswC-E>F6KpU6M}$=~W8 z2OSq)BS-wuQ;+y%4col(%%q2x;=9=6&w;e)?o;dGiH@cEPpVvUy+8_N6deL^Ms~o5 z`;R8vN^C_d0v>lb`HSvN&2J?LXUk=?5=(!3%tIDwYfQ zzz06?NztKyU4W=z*0Uv&_2+)>=j=&OdeZ-rh}t#$)q!hP^cvQ%hBd6=a{_;X7vPBC z;AKBLPa;7lHW8Q04<4i+|P z!C;GZM`sAYOBQwUjJhd{awvoQ5m$i7$mmP~qQL@wc3$|Q0d&Pc_V!|g67h!232&ToT(>&Bl!wSL zf|!s=eyLPF7hQ2i!CldrI(Z6el$gz?RVI0Sg@nM!DwJt4z9QZmuogm zp3T+XcGGgQus7-z;hA@bDiN3PU^)wO!2$i@4{h^^RpISZJ;6umh&aNyXX%3d*0CM+ zJJ#%X?Woywhc8h~(1z)xt>a_cyL`nC_x60rf=ib#+hrYmd|>@NBGBny6_#VD=v*#) zBrrSZFUI0Ekxt_GWFSLYG|7lhY~Dj;8A}(iwyJJQ#>DJYi0I3SK1q_3{14RU_~5}u z3*-;oLLUzO4~S>ysp_R~a!x@Ox-n_fI4H#zy;S`o=5OgIijAC@v;4PK%SarVML zoPtD;yAxF9@C*mwmAxx=aCE5tDqatT5A@X^ODV9S7|vPpxW3cjP9Wr7We^ERG`6VX zP9~z&h*qs_RBd~A%hy@W=_nNw>6VFjiem|y=3Li!q-Hv7-sF+WB0b|tMRems77=mi zBhq!d9p@iBhj&GlNqHQ|2luHTK4;VqCR07r!G|CJt#rr)vQAs#!8iaeIGX6|)CbVU zsQbe52jaTYGd7Vn=40#uq7H?DgFm@xYSw+{$@AzTwPM zUs7I|GxcjeBJklVQQm^O%+W0$vEjx0ts(qPJW7;rno=KB8NLqhLha9}UD=WyrHgjz znJ={5W1eUe$=E{WgB9Zr2M*ap?FN?=c2SLS*C~hcQitl!N{$gSmPQKiR#QLo{(y{9AN3$xd^ix=uH#t7fF*9S(j8pG zGn}l#NbQsU$QLDY(g%d6FVi;B_|AIBI7xBrs)Lxirp`En^X?FaCddr!@s04nS#8F- zN`FW)i9|s6hk8F0?MMg2zD0CB{f+x4*NA+u0PAKG#rVMK>gao-1z-8fS9;VTbckzz z0$ihuc=p#3*c^!{RiZ(E_Gf?gYTKa21Kav%0qutlC)bMobU!MzUYxNHTmzTo0-pNRr`m@;^r62HzmWI8D1iIPWgP$_VjuB{N34E*dH}Ci zzxvg_Yy#`c;#?(47f10L9=s5=>>AdvhBd6=a{^x28NfMsQH_U3FzIER`@GPRju&rU z#JPu|7^Bd9DyZJyqcITj1;d}IT0}IEAH#uzYc~{hu;~r=aLl>Up))TwZW^c@{%~SN zrwH|NfMYO3WLU|_#$d$21citPbpWIV7w$*LlDBb%2kr4G-D(8a)I)j#NQtVk2vrw% z;MhjPiB&6gUu%*`fNHg5`D|MEyC$p5$}*%%GRzVgVg(&CajhsrD@_!ae#_dkq*%6E ztzm_vC?kGihkFM$==41Du~I0~IFEjujm9?W_I#72v%74{!zMiq+umr{M!9VDQrV+o zT8GCz6+Ox$c!!;@p)c!;BDOvI%4Mx<_(QygQg>xx5Vs5+Xxjz=i$9?X66-Ls zyR$Fxp*G_~+S1?nus}ZO+}LacCu2QC!zM&Xt6m}qqnw7mf&(tRDn=Q1*>rgf z_d`EXTGinWb>Yt0d$`JQCy>hVL+Rj~>jE8Op96dXyiTQw{f##GRPK7s8rxe|Yt%h5 zm1+M=>Q`AF)jAq_6d)1E?M~O4?UwaLUmPOcLEpOlzE6>bKF9#&dw)Z>N)Bne_f6qQ zBrwiV+JKx;KIP&N!{q{gI7*qyeMr=Oi;o(T71c?UDGpu{$s;pa+JLoyujo0EwwIA9 zrS}gxDhK|A>AN#uN&vYaQkJ@-GYAJP8%fd6IpEjssa^Ho1Z*Ue;wwDSFV3uw%9_Id zd-WlRj~nzHrt8zzZny8w6zXzX2)Ivu=(9*8952WKW$>Hll!@brbkUK;Gv}8W>T;p{ z{vk`xT%M?02TmyH&Da!V5*dKYOOJ|0<^jq$DTn-a=d8*EpL`A{qOjOrYg57F46eg;pGL39grr!MFP4pCpZge!fqTD7niv)ZD3PCPY2cf78Y+Buh; zvC&Zh$Ek9*r8f?n$1d+e*oNxsNHF~%EZf0-kb^$-5yo4U>%3VxSvgdX>)k=y=EJ6? zXG6=($Lix_DIMr0x~pW$Smq^Xk|j~bB;yWO>Ol_23+E~X#qCCnqp z-UA+b&UU}_Y1U_~Nvfb{`99p8am zUODS9=?9Ng6&_3BfdBa#pkH)f<>$*)H7-&9Fm}x(KlEe&AVW&k!#&CdpQY<5N{ncM}CnI`{b!c&L zp&MBD^U;rfw0*%Be1T7s=VLDi*WBaT|1OA2$~bR7OL*DKUgp!ynKIAXu5rhHHn76! z$$F-7*3b|A&=2|MQlAQFKk1=iq|G;e<2Tw%U;5Hjifh1fI^X@>-+gtRRMt4f(TP*? zv#FPjoj&o2Px!9=w4by%A^+%){>Z-U%f9Th=GS%CUFUgO8+yi!3&JxYgoe?*06@p5qQzXIa(~2 zd`&~9J2Ex3Cqrwb7jV6?`*U9Cc=?V-JmAhvj6l6W6VcFCjp0$*^Rj9iCBkf)S~r*+_**6Lzk~P}5tz8*3gBr8ja6PK-vJ29ED! zj06h9k z2Xu3zO=ZFluH8`AIjcgTM=n#ae5M%Ix6_eLaS(x`r{d*&JhH*q=s@Rt9 z7m0FGIXM~Wg|hf!W1CI8mgs&WF5>=?#EDjt3*n0MW5C8FA`$l9GBr`#g@b687vmC@ zk1S@CK4GfsY@qgy)P2M!u_@u1WOGWiWNK>5?9`@2)rrom7nq%i9&9M1a&qOOE%eNd zUyM;1p%dzte6^=TYqFDluW9?o`#uGlwN}|s>7a9Dy}4+URezlftUu8+qQaIF^~av- znyTLu$vUx0xnPY-*-FTV_yz9nj1oAUrJA); zC1<5t-nLI~*y(e-cIMn^J9qtczMd;nve8F$C89@(`t`Lv#UF>r93437`NQRelPD!R zx&udN)(Fh0f8zrpDoY#|O+@4A!e(Qvdi6i}BHVFK5jl&Kkut;-)r0IxCMLo`>5dPN zY{Ie-(o;C>i4t7WCxs(2#D@hO>LVF4tiwx$>twdH<95$3%lIR5lwpOTs zRcz#z5{~ICQYk!fX3$){qNT86u*%-ENA< zs~x)~1kMK0AD>G`IF-s}k7iBhq+8S&R+~r^etm0&QJ6wXV$Tuu{4786I1@tn?%v`F$f~yfMe4q zoOCHECdN_LLuINxOHkxk21M6$>9VQxNjk6gG0v%#?vPV@Q-5B_kk6GiZL(SSY3I42 z+9g@UiJw|%?3)#AfwNe&Sst?U|HN@ii9X}bP;xS~L3-danwH$r-CQm9P-6*G>ZQw&F&vOfwV!2aSiXS>%S1euaQb@7-Gy{)PVy<<=BqU|nsHwJ zj}L^xi*-g(R_Gkw6=v!X=rGrdjOl92WEIh$XKWA?h_Yqm$*Qib-qRMM3Cl1r&dylp zfc~knh-;mwJ#&q78pPZ&?eed`ncjQQ=g2GvvIJk~=NaL|bp5%~rlbRx>eo0n(e=nL zYxJ_@OI(i`9uW;6-*1NKa6)-AYKL&u8-(Oq?|FKzHwoPw3(^tpNJa`p8=_{HPKO5{yyPV>v7i6>pZCp=aO^$vna}ho>FmHx zUju&Wmww51q@#(3cHEu+v*Fh_ebYDDi(d31kA5Ys ze=Ix!)c2UjJjR~=>}R{2JP>e9gD2~v5()d}H^14JIEd@i{#ihK+3_EzEO}r2;uqVu ze9N~uPHTAZf^@oi%o^6PhBd6=bAm?YG5+Gt>na8bFZR4-1FmHClAp*Bz$uB^jR!B~ zoINT@@3~PSlb8Fvq{lp@f3gD z`?L*)BfHc*v@vofv~x1>8>NcX*r;YQvSlK}nW??KzU>w(HdGt$=^T3WAI|xj47lB5 z%@Wb4KbE0C8OrFMSh-Yo!*(`eQ>&5{3wd|m;LyQxWLNgR<0I?OCpMI^o#VrTXlvt{ zB{E*sG#Tx1NJco02JjO=czp(}lkz8UmH=znaagaZ~HvKFukw*pbtDwD`cUuHo0L`u&i z!PkZOzCdP3zA6h^C=WV{&0cWs`D_64IM>42mm*L)&!+-P#iH|p=oRv^W-3uL&?h6@ z&g`5*AgtH!_!@>D{m9f_(UM92RwW8NOz%f$5seM~p$m?av}o5oI&v97Uxa8<$?%8| z14NRl{mR2sZ$3obaKl-pTi9{)*!Hd*SdtX&+_|&rXLCC|Xj=2QE!@=}@ux0ax3@Q) zrp0{O*g@Wx0}w9Mci(;Y8oLr>7(#QLlsIXT)d)nw*8&oXuaCDbYIqndEq4)D@?@Cx%zHlVQ0oY8~^I-to819S);DH zMcXVNGqMXCXXhI0OEzPf7L`qVX@lzowE>#3Jcmakuf`Cb12H-c$0;}xIXxwv^i{E1 zv5fjOQIou1Ku@OXk7h&f57K}(7agX>suiE`1ZzCyDb|&aANZKW_{w{Ou0HZ{9IVse;C!oUgw+=?>JEFy6Z^(3x?BK8Bn^Q{)sG<3N@e zuW-(fBqvMh+hi`@tDW`dJ;P>?d$bJ~#QdtREXxb15eq)>n3XB{!oAjh$2&x$uH;Gm zL3JXN)CG^>Epo~=GVJR~>x@42&GLj7xVlbMUU==gT5O>E@-f~&9_yeS6{I{G2hdMS zM_Xcjw2fzT$#+UJK)>?7r1H^OP7~z^n6*TNE;K@?u*NU6VhIB75ryA>&Chw-HLPI` zYgofI_-xi?&iq>z-dMvL*06>(d`|GgKlJ1Na?Fb?FU=U1KBZMJt-K&(xP|rXaIA!v z{Hrh3%HuDJzYyyW2MyP}WOL@FJ-%?0pL_1q)HV6zi#WSjW4J{_jhFFjFZ|)f z8)r}~$Iq*By$nIbi#j->al$>?hAS!JTC3aXgR;T>Q2J$#F<= zi^HeZ>kr;#l|8Gwtc|G~mX{GugjHTL1U?v~I4{}!gO+E7M@2?!rBt%vVCWIm$jnBy zZW}Vn+0>=YlxpQ;V+%H-s+B8h`@;5`L}}tcVx3o};7)z&dAY#aa2e}%+jexk=T1bN zIyebEdWfhk(Q>P{VU0>nW#&CP(H)w4PJ56oqJ@Zb!*GQwNK01r=GDHcjCmYAOq~~z ztX`_PBM|ydWN1TJH#VV+uAR%G89XkieL2Kmw-za)e)td&XojDWaT@t9 z9LbC^N|_!RuDa-NVR&vwY6zQHbW9Uc!nc~{7j{1(;svk)3#afHBRAo zr;)DVDKv4%v*<;+)K6b>rx#>(vA?Eg=u0>OeOU(`u`d$2O25MgMHYBV^e*LiLApVt zG5shWIN3>y?sDgZ@Fy+T-j{WDc~L`IZ`U1M%13(IMrL#o&M@$bPBEmatoE{z80}<9 z24*P0$Np&GPKuHG6q~^KdbpBHK6J4zE>3A8RN1+k@}jN?h`^sPn*lz9W67gT^X@$B zv^$O?^nu2S`tm^KFJ{n5ZBzS+YTd#~E}BipI7`(>>UCdMVsGz?uhF})QM1jhy7Qte zyvxEL=iOL1;pp=z$3h3%rZXCYL?_lT=03|`;6%oWhZ6`bMHDZ3$fq>xT$CQbxl38@ z2vysNbS4clPTz@+Ps#~SqtGtb1IicVAdGv+fa_W1PqNYil4Fnj7k`iuB8PR;ql8%s z0dl(YR(R4U%7p|BoCiY4`|D&Ry!fEUhfe7s@NG2e*6IyydGcrA@0M zW;7s=L{X~ySJYp6?|Hv1_AZMT8l%;Zh_(ew9H5dmmm#9AT{lUl0QiCv-?GIJKV7eppydbY>(U&nKdJ%F2u`rGoWD`;q9e^UN=`>SG>j zN0RAWu_9U{e=1jH&V<*34;^a%hH&1TXv}#32W<4gTSOy`0gH)rNY3UOwER0HQN}_G zzBxT42a*Vvm7??wQ~v2YzVri!ut)Zw3;k17`0qGA^A18kg^mC;!x4!rp@;wf?EML_ zZA(_yjgHm#YxjGf?%rEaMG*^xqUegcb?e@H?m1`oYp=e4|KC4Xp0lYBp^94)K3TcXJZr5v zb7qblIdaS#|2cA`m(HtA_VksYFACBx_wGdb!Mz}QEYHoQbW3{D!gtA?zLuqzM?dvb zQ5C~(3V-#9PR;eY?~rYsZ!}o)zc8()M|??fU7;vAE1Fa6U* z+A-oblX6d#0b(>U#*ko{7BS-hPL`TH&)IB76YUJtF{$QY(#+(U!`Jke47CLQxojmS z*%%i;*Zuqk7)fAA0xUDF`IGZ$f-gdq3>xc5#zf6KpmTl3k~NhJP?5k9P5Q+U@{-5{ z4cw=~e2zRkxS)^k)Zuz`aNq5N^OKbLr=cfUY7a| za6{Q%7A-+3>0S=NftHNu-Bw$Mp!!?9Ck7n`7@#0tm>5)p*(9D^oyX01V9!FpB`-ym z@kZ<`mOxMOo*Rut7oZdMl%m`0_^3%1Gn5NBIv0Hl@pf5aX=p`tB)Md1@oEWh1b`rZ zO~wW~Yse?Xex^LC6&_%0hm~ zuYWERPfxrn0d(24ihibF0bUs|Y(T`0;fQXx+ZKOoaeaLynqP^R-}h3SojuYuUgiLT z%{@+#&7-5kxOeYvJa}+Fo_p?rKlk=_T_#`}je@UuzZwYDIrAJYi-#VI^o8=!9)5Gs zmjGyNcm?A_(|QH%H{_lPF$n%0`<|qX%nhx@(hJ8U8ArJ z=<=O5=7}}+68H4<{4}m_t{pOEM4a5=AV!jR16**G{uxiai~I2UCI&i2I(p}q(ZBAw zO!_eE2xtWCX=^N-cF_Xu$OU?U{N5N1+0%LSFXZBd>^^s6BZ!X-AV+@=1|!MOGR{uV z<2~4-n=NBH;RQfhg_l(qa<%gF6o8w1j*m|y$4!HR)ov$N zy2i#*>3M>@>Q-b(2VqBw>Iati6DGl%Dya;f-{?v1p*_4rrC;+ih;hOJkWQObJLaPA?TzUU@akBN--4A zCiL$oer$9;=@a5q3@LYZVm;SbA;dsblc%rxmOf~T-hJ`m=3VcK$-90mYU-bM3GjIl z)1}6S8aC21ix)|R0pR&i=Q&5)MPo(B_-0^lRK^qM*J|%l@xGNDe}~r(%Jeb^IbBeB7B~{;W_IEf)2mPQ2m4wkz(~~AIhY> z+;_RopEVay5!u_CJX}XExDFti`dYH8YXIW(FCiZYUjxYMxu44A6Tw3l04#f+B%b8C z0z@NIw3Xl1cS?Ca5U|NRA|ELNvtNetwz(vQUB(~UP~E-WWsI_9Zk}i^fJk{mzS=wi3*eA!A;*2X-(HL zdu04+lC5%?h?9@|n7nf^nP&pe1f2;x6L`GjY}6?)=hMWSdHH6Env4YQ9{Gd?F{1M$Q} z1jOKukqm8?#bSgGWZ!s$>=P)op#*0b2mD>J5j8tttuY?SX8mr&>LD^pI;bU z>al5+=xJ9gUZzVdPH64hr_Hc-+ns2L-ZgyHSio=>V;uHi&F>9};TXZ< zCw-JQ?$CAQUis>hkNs{Z_PRT|jwkptS;Bx#o^?r%EF0WQ`6?5Dm2mP$x;LE?p8?W|kqqEwuR4|K z`jw9ZAQm7k8QV!`u#pzm7-Ja>M6Li}0o?JD@(Yipq)Z21V8h{PBhQ2sVHtWMnk_u6 z=FY#Xz68KV7TNKgjgSC@;fqC9|D`(E@tx(aHG7`#sQ&;v@r*h?K8pSQJ=Z}3aLv5S z_nId0kHmePrw=?9Lh>bg0Ik_=oq7QQ?e!&k>3b68kupv2Eb|->Y~l#2fd+r@6sA1g zWbmBplqKrz4n&udln znZ_9UjC=8Ve)#b9cIe;hYZ^pN-@j^h1Q2UZcK4Y5~IZ$3ze%eR!izOWspq`u-Hl!JS;NwTRMv0f%qvTmt$w`lYzmUF3_eGP=rEylo6021wbxSmKWY@} zjVYe2mi!wo4L%=)ClAw>Tgz1u`E*5BeouOL^T{PTbo}<0&#O);XCW|D>lv{Rid;HL zGkvcm<2tag`~|QZ$P=_jKlwx3+Gtbv*?1Hezyn>Q6P0lNC00GVA2nZj?hduX1Fn7W z;}I&{g_AYuil<72cqjCK?4UkWn*>(RQ;~>;rQW1JDOKI{zAS9UuftFV;-w+n-&c## zWO9?UF&p|01>U zIQ?T2+y0DL)zo=f_|yM9w5q1&?f*Nso-?U9i9%$TC%)1!heUFP$9&YZLVsYM6=WKt zu!NGb&9SiE`6#~;q#ld_pF**Y-kE9q5K6=+>VF3=gMrnZ*~T>%8}Prz5M+V*vq(>E zLX*=)6Fu4fO?;2RW?K?t%wZYc3c?W^Ev}Iz#3NHboBEnv7MQWDM`A^sEii!)I^ew% zFO5DGO_j-eM7IU^K3ErMA;uA3OQh&l-9oOLbj3ZQM||F(05f9&(__t~Zmt`RHg~*> z)6Zu5z7Gc(Ds!6R{iy<#9dR#d+>Ug&;n|-yB#0*loHKX$Qmn4K5cjoJa%hb zY!Bbw-o%I0$qFD^W^kNcQix)grt0jLL_Z%+e8LBYjsM9-fqUOVwdvzq8WY4^L8|d)yB%w?{l^l`isXEJ`%JVf3gQcc*Ej`Ajj@anAkzVqRnkYTOl}c72<^!YhXMH9BCC<-B5s#KOzkPa#!LG$eX>yQS)UMldl^3iy ze3D~PVMXyPd}1bo-}D<36#-H2wgIhQj9@Ao*&SEM1B5PqOe8ZcJ`LhOAokfGVc%0J z36O{(&pfVp0@%(lb#9ZLhu@3su24oXYL#YCp%fVEy3&q)^V8H&JPfA|J6>I~YWBwQoLvRo3>i)?%Od>dR&qanCTN7*4cI1!nRE@> zIp|P*`|sM8)bn#rh;WSZ%G!exj2?}erMev=RhAzQ6Lu>`gX4l`cU_C6J)c*oGF~nCxZ0*`|!IDj0S5bV|CjY8k+W=YpP2sdvxTelc4j0 z_S8;40GPLSpGJf^b727 ze!r=V4#+5ve%#$cBboN1RIMcKHJuvjEB`w4IF8h7+AM41>9d*K_G>)NAwbUW$wr*J z;>-OURs!HVk9_f=JKm|=@QjHP-~Ok-T2zEBk76L*Is2SFZKR!4W69w!)^j2yo>Ijl zmN8L=Hoz{tsD#HlgMxxahB`Yw$Mu)GFi6X{xbGjgvhfxA4?<8QDK1qUG=eg`{D?b# zGZlUQX|ec!9zSs8!peV6RN>CvuYCQFUbql~RMJ$IUQT$kwOtC&5~W1)h1JGb6X9>$ z@jD|e=lJ5&dG#2&J2jxU8L%ZBy+kX33EM)Fykye*z9;hLiH<~yV|<8Wl7rI(fx9rg zgONJ*n@=Xmafi#w5~9k1bU$_(XeBlNB!}C`zim9tJW2Y7_2hBp5}ssR;DcSr5}O!H zo4i&{Y$xtuSmv?E=WMtTdAIxhkJ9MFw$aF4Dt#(F0+}M9o3B{T{_i{@P66L%-{)=& z*pzo-wC*a;0@z(imBlRubFg3=OVf_|{kGI(I`j|;wFv?jQMc6+bm)jrvFin)r#f-G#qH~%A@hBA z7Wq#^aSD1WFI=4Q_|?!+)q|_6A<~_2!_-Jh?#pzqWCrH#4w_ixpLWKQ&WhId{e=o* z7v~;iXK1HQM3i!t;ap~TPX}ur);Yc?TuBi*$>Ln?ve~{CeeYw1%<1c3H9~E{qr>kt zVTI0TIv%==IuzOF{WnwDT990-!h*~oqQ7@(6?Fc}k#;JHy?U*cxApo*cf&jSRINSF zA))}VlUfrVL{}ox*7VIsSg97oh;LO=F<5^787iu15OWk$N!4flf*eq5Bevin%*XI) zo|zFdXv{MyJV1}Xs`lV5J0+wFzB)EXm`Ng%;?C|lmu-% z<}5o0F+Ta!AlFUvqiCNlN+&POv^mM-=G9QX7PyiA0r7d_&68LkcYp(lv2b$4?<(JSgN;gF1#z`-ulfiW2yd|uEqd6 zO;%}fn^JkX?C)u(_F&s_!(ihuz7;@6Rtb>4Cjl&*>)c}{vCkzs79uM>ynHt+3sYc; zC3$7@D0}Gf)7-*~jBD&%{LujHYJz%r^25aAP`0nfMLcHHA zE}S(`vy=kq*2w7S=skzq>})B%>yK6jcetbxul;vd&HbD5gK0+n=oskV{nIE$rl}3i z%hLkPj-0(08U97qsN&$Jv;>xi{!u za)59nq(I`ah8@g)DZ23ihe|HL^_*w^e1qPYEk!}5q~&yn4CeAB6KpNA-EaKW%-C6dciwWQuF*XVHZTpd^7lUAY6JgC@8qA> zd;(}R5i@?}4`1Z68p}e!fDxD&eC?+n(^dHF zecN72sWSY(ulu5Nh57$ITNjH(lKx~Bw%vRNoo`Y0J$X4p5x@rH(wq^h``|YIH5L9y zR69lT=C>st3*RH6R(rS6!mj)?K>g|;g+%)la%5Bg*K7g_<0#z?|ot zZLQr5`Myp)Y0NqS==^Bu&F5F$XQuufgNJ^z5YIlV>}EWi1hXaQhz{qIaJ{PbkF9gS z0Khf}R)5~}u!%GA1#T|bLJ;evr+XrqJPXlL?&T!81fdAN82~A-sI0We(JB9s8z_5ay;P)93#|zM@A;~nYgb6+0ajB7dDRDY&VIFDN&?g~6{W+X&O!&e34E}$ z7;9k$pV!Xb%3<$|4p@u0K+1=3^W+VvYz@DvNT{sY>iM5ZKi9xF*%946>9`mo>YslJ zEXwX6R#ko)ysO5J6<&a}DN3pWK+#t^sza+bVTrRo#}wuIAMTRLvQ<+{7ax|TyJ(gD z@g2;1jnPZ>0CiUO4<#gkW`3D6pQazI1v4t&?6Kqfz)>qGN7fh$wW-!V+7~si_OPjN zh+ays6uqq?MVW5aCk{ z?%UvFrrGW0Pp2pl5~4ALSvp_-O~5;62t%>(_yZv%TiuD=h*BH#wX+5D7n1XSXK3?sh2p_*OJ^=+5|F6pB>PjZ`)dhP%1r_>`*9>*DEFckwi-NJ%}lr%Y)ay$I*lHY4*NVGM4)9!-MEp zpXtAKjB#^oH)Hk{C()dQD3Xb$$2GsFOF182wECra@S9Z)i&k3poU?_4A0M6_cayQ_ z{1elK1&gq;%ITKAIV?|;$<#MCw$+b+17c#;o?@-JUzf1PbcIi*0Sh?Wqc_*m(9D5+ z)T-=<_ZRv|8~!T+a4VI%_w<-qQ{*kSWtm6JJ61OXgD@!XP>~e$8i7-{EPB zCprul%g1&Q>n;IGX4b$|L+;5zp{DV?5Blt#gM>f(?p8z>*AnmP)drDA#7Dwx{`raAK?;exf%ipEg52-~@l8jAT3J|2Xe4 zpl-+q5SkqD>iKNv;DF7jm?L%em5vt=Nx!H{g$M}efiOs!vkUmL0vyr-?Og#yW4z&&>RuE!*>J!0))-MPYR_hC#>*_PAlr3bU zy9G_zA!J3E=RCZGb=C7Z%=QU^!X&*e58Fi8*QW`@f1Ox*GtKZu9F46 zGAudT{slM3eI^$KNI^RlR*+xgqrO&JU#H|R9Yu^2`%C;35modjg4i$fzI&jhYmJ}h zaw@R^uptn&XWjjJXdDPR^85BOB*JGA>rb;_Gm7K9-hrz6))w9JT3kzfrIl;(%9f}_ zL16Ed+gFW)oRH-D*ghq$V=ha=8>1V%eH#EyYhp<;OcPzh3{D?yKEUu0L?-xXYnaJk zrMUf6m!TMtDggMd2mO3jOP#J&<~&g3!?Iwj0gf1ti181s5=ZOX!0ao@r}aR_JRd%u z3&sl6 zMW0s8=d!ar%Cx8>N>&Ii&>MOXK}0LFTnNNcbwl;);OjW66?@bJZ>N$80`hYvO}EaX zA06va1IW!0dGa6jMDmEVv|>Hz)LdSHAt`|6&2&lN`-1Z@rblR#-3dm3&E;ZWBZ|K?X2A|)Y#ZG>zJ3!=|_y)y++nPt3``pEFK>hbN)H1ZK{p1FJ zygy{?3#A+#q@my`El|@#o5o#`{4Vs?!`sWiTPzGTScr2e=r#X1`hF03aYLCM7whru zZwuy65d%Zu#Fyo#a)5EkP}zg-^lG8P=##ZJ$~S0_H$h@uoUXC6ABM5d{oK5&?a&JR z3n)?7WsM8nsKn@1EEXPBcCA9uS>liGwy*OFT=pgQSMo7b7nz%=kIUr`elH2kq@Q{V zpYSC3H@^7z@KY(Qj_a*lbJPmj^&*{uUv3Sx4|fO1Xg(wk+V;QZO{cQqu*L!&K?ZF; zj(DOxZK2pFQ=^LX5QpdcBG&?ba~;;Vrz3SGu9g&|4=eh8U=uzCF}6+VUeyXGMF++W z%MY$u**}2;HPG2Re7+)x}#dw+HMnn>%9AQJZEQJY;DvE znGXe1lSvH_PeBSL6yo1*$Y{-94Yuq)hcaOpV|@a6;Ete5MI3jAci--}(s!Q|ZF*NU zMQQ`@`l5wAxGSEcmX(y~Ga{rWCHIUilwN#xp6h&`tZq)ymJ1B}Uba@7Jxbuq_cQvz zu4g1x+A$ku2mG2gNWG_jH!(KybPw4g1d%dmGa^U**$^|Xnnmt>*mE6?f33dOeDJAE zLh@nX8HRLsO7v4~v;n(1?P3-qB9JM-~4^lR0UK%Kk=o0ILRV(kIkp$7t zVXDENv$xt!^x&aYUw)c*Y*}E94@jUt-2$0@whaio-HO-hF*k7#0Gl!@4S!R&j0_0! z23~qgwYL4F+ap-juQb7^m$YwBaH6K;yGB0{eW`KqlhnIz# zabjDTQ`V9H!-`EHzEi(MJ$;sNM+W%E#*JK#8&FI!(H^IfY0RvtxT_>+a+tk`FAP-N zC>hf)LE>X?mE1lbow_~8DlEoyX)CX6e$-E>c!%4Gw_qQNp_Ne%Un}7&y z5VcMCB%lql8n~yB&S{}=eUzR-R9HH+(_)#ZI$wklUI;N_K6(w;fPto)uFRyO?)?s= zKE0GaRMVK-l>Y?e?C=ItHBmuRb(0bPFTwY@++a=qC+kX1h9?<7rHy1g-IY-j*7^5c zI=H-9ks>fan(9D>t4A$Yx*_33hu~CRUC;60g#6!+2}>FFWDTBLcTY-*O99f$z{a<8 z-`^v^!QxS?xs-`T*Y)U#S3EZKR%ZN@ zux6)pvN~wE{2OJ#8Fim(Rqyz?p60ld6PruFWt6h_-t1j=T#me&a`$te!V!yeVILwAVvDIY2GDbI@$sH*NAU!-lF2u zf$n4h=(&s+$vy#kGBVNsz}iP3DySxoiuPq!+kU^? zwzoG8`Zkjhp7jvA=Yw~1nHe^pgBp~Lbpwf|Cw0lqa7bYs=?-+C0rh3kpymzYIhHQG zvv)sZV!4uMv^S~Ou%00-pRUd7XBlPA%%ReYemf0c?w!{mzb%3_1I-Pk8%=$*k)8yf z%Y`FTFFuHoXtmdQ&p=H|$YQDoK9|tV7C%XWI&KaApfo!mJXh1a)19PZy0lSM)_esY zaBz%amy=R4jT)Td`&e`Da2pl0|Gj*mwA^5giFr@*oHf_vw>RJo06vA@qdt>aR0aoB z$-d*6F#xWIpB_jxnZV%4=Yek{dOtH5Q5Ljz(GB>B>RD>aIqBpW3VsOZA&m^)-gwyK z6UxGfsF3zwe`!bUgd@O5}z-qp%F{%Xlg@x_$ zL=pG`5I-_+(EY$v`b;iJNYb*<_Y1o*;$(c!eOu3@^!RqAK37{t{@fmK*k?69e3$e_ z6_C39nn}e+xKc=jql^dfrYCzuH)hJ;7Ge4N4Sqb};O1rL09RU_xTI=W?@}PXTFWsKD>*&o>7k^W;n!+XOUC(Ur zW{z4_S0>ceBB>SYr!FY5A!ijb~5$yVB9c% z;&-XfntAE`JMfnyz~0xIduDe!%EPgZtb=C60PR+NGOKcCtMK=}{K>=<&S&_%n zbn1} z{BM$mwnTtu8?$OeO3;vJhq_8_YyMi(^cor=jSs|O{!OV5of1YX%N52nKCb6>g_BO(^ zWc3Tx{b6CzuXw_Shx`tepmuAwdkOY=#a#W?1wM8!I}?fIl-D+_CPE}jT4UL2X^$i2 zu0#$s5l#o}AftVCYn7k0z_?k)J6>ZAa64dCCwK_p1yjGcFl!w5;O4WpUGYzRIl1|n z4yAx^MLD98d6XiX(v@mzIS{iL8SY|I3G#@;)*oZ5P^%AE1fBRJJH@re$G9oZf%S6BzbP)} z?n5v~*IGa57zgQRl|d#TXDp|qm0~G8dlsn*8VUhG(1cu|9W$%U6V(`B8QMJdNd;OF z80wmpRFq6G*MB|O8f$K&L6Z4`K2G3NVn*g;dku3cPk8-o3SLilqX4FT=_CHg-2(K< z%Z%L!zc~iGz2Wd0=~FQaOwSvLr!*H!$2phpI;q5+v=8cKEXnbnAFH$9gKy-hPRn9Z zzefGv8@qfv>LV?^xnVx*&<=zOvXF94#3(4_QIAuPO;U}fpi;D!y?SiA8QFJN>Mb#a^Zd+$Qlaky5jx9RH=h^; z-jG1j)|x4BN!&#QY2W?&K4_Wp$(}E_94+fQM22Mlwx`nQ_Bor<7bc1nSt||WgR4XN zSHC449-cR58*yIkzti|W z)cek8;m`3nA^lbyRe@k=s(L|!je}%l8QjSvO*vDnw;&vix%w9#A5ZO};QR;0)!A;n zEK^Ey{x!AIT?^OmM>HPjP_;4r1O-IAst@_03fv3&+0Kp1|9!XGsOr0pZ_)2G6j8kc z0Bz9(C@GaKsULg(1idZz?w;C7cGo^|vW(BEc+pE3Na12ddZG6sw@mUtQRI_MaTUHp zOLa*dDXH()p2c=uc=z@j1o9mci_<5lG%4+4SHHju;9J84vcoy|7dw_P!2CqN_c_CM zNxU{}i0AJD9`QpPMUS=+*iQj4%4&3?^)bkf%szqXK#cwy$vl9FhsnZgE&t2FHSbfV z-~SZ3CDyJ?-*c<2dyK~kpc^0uJXwFe{%C;Q!W-UKVRX3K^kYFJ(HsWC(z{xer~~$S zYvTz5IKmz=scXc$(nv2R4Q|Lx~EC0NeK1|HGBY{#B8Np zNh2NUZXZ={N(Jq%c(~yF_#q+_qKm6ioY}gwz1%|d)r<{~437>}tYyzM>3q<#QME?3 z4f((V6|Z&=F8&4+)-Q_|=Dhpk#ex#BEEo%rq$gM(n&U|PicVb`u-j3UNRvOMT5C3 zA*o9V^H8tQeHONlOG$jWz0;qX@-4VnGnC|M^ZuazfFO<^3w$dvoFmDyIs?mU-~#US znhGbGgLmWB${t5TCU`uNrhl(7{LcD2`WM&%NaTd+;I zx+8}aAZjX>G}w@T}I@*v!Dx(jBkZ=pAc353DL<(a3o#BdcInKF+KBn0wcO{-kq;#qti^`d#T5|4QZK1{b>>h@5tzINPL!Jl$qa4)i=aUH| zRD9R+ezO5ydycCqO5o!f)5}-YH8oX)&#GEum`{dNdsgdVt1nZjpm#HT&-6U4+W`WV(l$+9nB)=Tmd z*6CQ1kres2*3|n{tBvV&s?eP?tzt}OaD}(knCXml=*5A~$TS+qx|~$~6l9AEdkW+1DKY$=y9UITe_^on{1* zp~Q=b&J+WYLBga{cYAdHU56mQKABP*fX=hdo{<+8R!D=+q#u4VBwu51yZ;MPoY_Tu zm(p{yf9`IrOULNHr>oa6@UK*SBd)=Jevo>!Puq201Im&SsO#)%Pw4dl_mLupf-}h6 z>1C3xJ$zPqnY0p}Gz)AWahDJR-Equ%eFg~03UHXQkx|C{1Hc=*_Bit|d~kY3{fov- zdh=-(OGDj?$*HCUk%au!n`dOt3BRzC@)P0rwpf5UMHK+T1q@~VMQdg ze&TWLCb1*oy5EVFAzz$Ct@N$@KCkuwx*x=GeIMOF$AB9AppM227Ik8Onv({z~nT7(UBzRGba{;swbAKYy!sh%KQVf?~? zX0)_r5yR44%*RCA1EEe_SYF>&xj~1~AN+mf%eTQ#bCFex7xS@C#+xLtcjU3~+u^!r zM+g%RM7ZzU~V|f|eX^>8}(h#;>jXk{c#F*BB2~e+=)dvcM5F3`Ch; zyf2MYWUjLdEQNj>urP>maQuUPdbtap9IwB8bUon4Ai<9@-OgYGpS3c?S##s~=J69_ zBBTbY=HD~t@ELs-YhS}Z%?nD9@%zI@_6mytYU%@e5P)ZHaODzi$i=_3p>i<^FVB@0 zt2i7|OkuYYJGO;wrrjrFbK3GO!FswMh#x&<| z$No18zZdQ6l!B8F9B=B*n3hq_@bpQ4|AGOT`iqzG&9w!hw*L5jE7BS3M=JXpwLH1KMOQ%cRJ)ZwE_WPm5H zapJ^IUI8;sN4Wfl%Yx%bV(Ajz&og2cAou;5F_fPmg^iKTG9=&l7$O;?T3$xBt4^p| zYgk%dSo8iU{YSa_D8jKSWx$}K3}Y~7Pv+D<=hSTeKpm&|ijw*%QPvx^;k0yM44z!aaP^85Qs?BFxBjZ0qj zSRl2v7%NV&rj~XDWH2{3ZAg}qnC1k0p>fgkd`p&}E?IM=p-8_{hss=bq2u$FJEnV4 zSjceovpHAh?CQ1C4c$d)C;`*!fWP8ua4#}V*t7Q+D(Gz^@M(2UQugFsdy8m+-36%8 zLL)cL*2t52e25u@l#xmduY9sr2x1UBbtwaeX5#h2IBJqGsysXY$|KB0CPP`h-Fg%heNj ze90K$ErI40m(H7;5?#!{ft_@Zm^jO{J;JZ67H4y8Wpog{T)0FT2f6#j+Pl9flKbAt zy4aX243C5DKXh%_rTF%#XmwuG|DP~)?FCNG@8F;8A z;wAN`im$50nypJN*r9)#CFGY3f*8?rE_o7j(QoiGu8oLp*)q+afTEKFv`n%*8sBICk-8F*Lvtf*k-3LCi=kr6|(< z`dwO~Y-o`Rf&iBHnx!VR#?(FT0WdYq#J^3Q(H}iwqAA6x3e;3sNy-bW_BMPiyICQs zG7Oe|Wc3EgGCX$+j?v-<46mo*kJh%F$afv&g{4%eG9FTdzATKGs0**6?KUW2wJUZ5 zBAd%tHa04BtghOv2n3BWSegwE@d5JwI?e0GE%tiDtogWP?ZtY0g;<#@N)(BXC#Ag}Ak9%6gjpO=mAyjRbIl4U;_ z?NtPduR3GBcyAs!c4`Xv(a2(PWphF|OE{r}^ZBi`th7Z1RlN@;;uW=<1G_bm5C&_U zmq>M!J=QoIk+A$ho`256*U8U@RL-XW2ly-hM7t+sR1qET%9~lMJN9dx$s!w2Ca@BU z{~8RC8OzKpg{2T(t)v|2ntr6QgztfEx$53VidAOXYK#+qt+#oW>rv?zp^48N={{IJ z^bNZ{J>_kSsZR#-sI{5$%^P9H-I4h+k^I?GS{ppU{=;Ox)~Tj;g}Cj1-22_FT~XP4 zIU}dZg|xM`e3f5NydOC&jci>71%)&6;||>~D0&E7uVJsDBrJY{dxLVPWfrH5E1z@> za{w=f7&qwlJVA$3#cE~aVon|v0q2jzhgNks2+?QFf0(pWOq2Vr-oD2{y&&G*54y-) z#IL!2gPydb=}y9Z7g>_;nHR)N>qD<6axtYHz(^d1x9?ny$;6P0V$rAAlCVw}(r}k- zC7Qjm!^i*2gAXANv=jFrWtA1d6i=%{wl6MhHNx}|{?i_4>!^H~L*_B=kB(#W{?Gi4 zJoe2C+fqb(OoQQr%BywR69iCd;bFPdpUgdSPpxI11)cqj?&=XB^+U!Ox2NS*L;f`)bQ47C$WE_8jJ=t_t&zii+&|@^AU1HI^2? z>%Mj^tweXO1R@j=7wZ?pfv7K|<37z~!d8W@8jJg0ffL!iqdga1UM76$vH5wfM2{bl zUXfgCAQx`RIzJzZuN`?5c*{Rdp*?)HIPua^_K9F^Z75$ty38Z(y=Q*o&JZJ*OovqRRx>q{-k@VMW$kox?8)8(2 z+$Ig>j=*5D6qN?@T%wD8NBX9^w1U(`Tp70ae4Oz@BG2Nxh#VhxA*Fo@meu6WrCiMz z+Ufn+*X)hI0t`jZS++uW+e7NsDM>fk&;8|vsd`&CL4wgF19;wf1@_@8y1|hp7&+RR z=uH=<;`U}|ul%zaJp&j;cf{!E3hJAkydEsG>wNVcNIWLv0Bfe0C-t=n|9B2tQ^;BL zC}_~Vhj=s~TsWK7C(aM~dZcK_As;xpoxqKflT01oFuKsGMMYNlD zU-Q0iis<_LE#~y5jV)s$&>_1ODt+_Z@&NN+O2c^ZOZk7If^PUeFtBfJS>sj&FNS23 z8#}>@sPrcPitlaOpL!3fP@?!+PUOA{-bx764!{LPR2(`Qv!y*!15ghS zk~@I}iK-78!giAme$rxr8RWUJe5pJgeCcQt*JZb}E(}P0OG8=z;#ug!*ijh~I0~CF zDLwD2v5KwEWl9!HaCoUgvHhGl_7j`I8WK{p;ctcU)=7Q&b5s`I<GQAp@P8ZosW9s{u8kj!o zb&3^>tsu*&F2*;6PG}m;9~)IFnAhv<;HKuOBK894lPFS-U^+L#k1Mc5BgYn;Y-BzQ z;ePFRH~3^UVq9%Gpz~bPsc>r2+nRyGs|QkkqX-&&+vu1)&$PO4O+WYbsZIsz>#MOc zH^lK=iO&GZZ~EjlePcl9Cp4LSI-hYFR;i(N%}T6zz*ADWFjvKkx!J2fI>3aZr$*M$ zGDeh~UIlUSrumK^+;l(+)GU%XtSkkR+9)93w4+uuOIo$$nP$I=tfBiT@@X3n!9W=^8$M~QZao5MG^zGpV zg;?^-y27Dm^{S~`#iEuA)7_IZImo&GG3{H4bLn&^xruJGD2V1trk z7}i0)?>5^qK$81x@XWc{b@UqG;cjqRu6q&M$vN$1v| zzpQxz#T_p^u9lsRyyl;~cms+vY4mJ-^2mdK3a12reVU)nEllGQK%1^i015@}Ljy+B~^-XoU23HW1` z8;Ty|nveBwLVxl-F;+w94#*RK7No|7yr*K0TyHg?Wur|2K>UD2vG*2WP-4#Egf{h7%Vd2U`@gO%BJ!x3 zmVKt86M|BeY}HIyrq^~rp#o_m+V`*7a1JT$Qf5-{u6Q1y)ho0BwaJVoHOm~nq}kl- zZTbY4JfY-7 z3W!OwqkbnF0rH-ADSq|PY%=Tz4M3f-KQdC%n3}Q=J#p)3e>;OExA^)I9+)&9m(+ML zRqsw>)ay^g!}>iU%O+g11`D+gRh&g~$|jbDJaeC1VIhkMwAfqP$n7VZjqk<4$Z9ta zRKRpAb@`vBV^i$dXXI1{h8?J9OP{>0TW0G9Q9h#QX@kh)tz-I73Bt)bDq>;_LB-&P zw^4q^r@4H~r3Qj8Siv;i0{hTMm>xRxJJ5Id{Lp2+|9&D1{8l3#7x%7AF-tus!XI*vjpzuopLa(wqs|PULczu~1-1g!2WH}sm zF2R=V7aZlD*RR_RUcB^fnLeGTAs)cfSW1X%wn-OlE{W4VawT|dQd5%l0}y3=e{~g! zzo>7jpSn2u7L%1_9va#hE}UP3THo1zjF!&Bk9#*zk6#@dyT`W5D&DPFIpu6*tC2r< zLQ4eCbQh$i(ZLPiODq45!%@!366~{7VCwrl#hRD@l2~xk1*Lztq04^5Bmnva+zo@Q z3V;r14!C4EvPoYXiiG184O=7bX3%fHuT_j3!lR4MD==`3mal%LPm$}p8bwnibXOf0 z^)9gY0q7fxVPo*Ce3n*DpD!F;$G@w&Rq zuMXO4{-_&t^nUpkMXKDU^2=VA+2nh9@;g10d;0vAAKOdZ^0Xl3;?wz1sYS>=Q?LKE z+$&N)@8Tetz1Mcm=?*mUl<3Rc64|mta-X3D*y&q>pSAh;tHgG>dM&UXJul51}OuHOb0@2v{OuJGp_!b_M{M;j79}mqWpUeDLQAN!ZqVlCQsN zZpg`FU1-)qzi;`!6zjIoLVlEr z^)UWGQ%K5vTS zi=tfA$Gf+V8l2(u4UaCNsy=@N794pJ*r!fPVBCFibbf^=qc|2{^lczGLAhn%>S-vo@eZBH zVP)@QpKp9M34vtn-c^5%^EF{|u#k&xaf92eqM}|NQr}rit(h3-b+fThJ5De)jrY~n z=6$FC>Leo|R7$1=&^6I)Cj6|RFZZcbfy?U_Z+D6~?Ho9A@c%G%7H(01ZL?omq)U1M z>5wI)ml7l-7C}l%8U#doX%wZqyBnpYQ(!4+kdWM^dtqr<4)6J{?>*T0?Vzq0FdhQbpfA{4&lz0V|yVo7;(qSJgM4#3!-ZpV&UvRcpFVan# zN0iSE@R}O_zTj96x#9Z$0x^n$GI95s|kgSx$l`o=joCmn2zJBCt@ zGGMb^OKZ}>s^HrN=2hl13F!OF`{_VgC-YkyW(?bv=jy|CYAgH_n4r<2TgKyfuum8! zPXrtz?0MF5ZsL7)4df4X%u8~qRR)v!Un?LEc6J8oKdobgIqFsvH$SYgNlv){7Tk6j z=J##)H8~%HZwK)s!UG@*HtNBr_$@VmN4xK6I65}E{nSIE9DJre_cIcH(y1dHp z=0eGByw}uWYqO1jHVRYxH>;c&zzKGKf)e_B?{d&_@`~XN@c`n>Iqie-*RBY${Q~!* z4Sj^ZBCPIRn9JMNd$c@50Q_I!Ou2a0uz@$n^WaUC&T`~l&B|JO4}-$C(8QoYJ~=Gf z`t|H2vAeJv-RXucm($vU-G}yq>o|A1RSfd-qJlcuz5LW;pyfty`#n!;s%v{tqW0vO z!i^SKB|i}$e$J54S>shU?6$hUb{*m;xP|1}CXqY|DtVx|A_Dxlj@Y1YjrYC@x_Ez~ z7`*-LqcF%48snC;&mU>abx-oSB0$qpXjgA6(jh?AHv7lwMyZDTi*c)0%xfBfY}t=H z^^9GAPz+BxIB%fdf83bvA->)1-so2ng82(<$#EES)YO7;!2cH}o|^XkU-pic1$mTU zZ(jx$R@jh~>FfJ-W^dX*r5R+x_NK~}%V9^K{;gos9QDce4RWG^Il2eLqgGe&Q!sy( zb=nA&cb#RrY@x=cz{J)y>PxYzq?%~BvTabPY6r*J1z<*z!I@nSlW=Qg^Op=>!L#H1 zR?h2dW_hXZ9%J0likhBYHb%(PC`>u|cKY@xQ;&b$T5XT~gnV7vRU+D7y0m(c;fSLl zO|6B#VC$jJm<|i`*s+QL(nW5HIS-C*%oBO1DcjROaV)ys;?_e|gv_*9ZnUVxaKh(U z9j#SZ!NKz`G~D0x)~4lRuDZ1sfBlHil@E#SJZt&eQ~L3lA#@S5;Y0JJS4DM!ui-`6 zekGOQsKKWQ7OVX}?-tl)QYb5}5{(?gLicd!zjD{+&^qh;T~lZShKPGWEdcPlP~#Na z!NaJeH*^C}%cyCm?Y#luoxP_YDoJtexf~7EH3h7(qWR`c;MZ4 z^%S9%S+q^5y|ZR|vg)(`e|vP*A~!V0`=0LmFS2=Qe%M}g6Hn0WYlRwDr<{pPNk?CH z-nklIJf`J(-Q3HbX%@~FJBH!DBN+f0YnE1&Qr>1~L(x~C7#chabt_)$di-5bS91#P zf5HoR;=XQgW2t{<8kVZ|D?B>;+4nb#pIY{ zuMSv(ABB#jpD-}IdhhIwv>qRp9&IVY9HpBpCP%h=LP7G{nd5o-fVfjxVn(a!GsZAz zJT#Jyg64sb+Qza{C?^TNfQhAVS@Paqk&#r{L%%JX>-Z36Q0MA09h+H6KSF-0RbD^QLAOvzmQM5Wu1ePiCyvOUS@I&|uz7AF^7e39-2S+a;5HPQHyxbT z?R(=_ZD%Y}OrP-)qR|>m6Cb6p*q?j-^WkKV9mbT0>2hu3fGlW;XxT_aw#>97Z`l4) zk}5arW8MdD>VqO_KeAdT3G$+`#*$|)5}*uIs%k@g23a&E0c+nQZnP27(bsj>RV?WU zDSE>A)tVse>IVLS^L}QaYXE@#TA%ZS;ByrI8om!rhjuc*L0R@7uvOJ?=HX)`DpkxwhdYK|t#a0E$FF-b z9d`O*CU(v&aCBt!{`XfCxGs8hwm7D8=cUo4y+`5lhwVG*U#Zme$vf^|gp|jOb(0i= z-$dN|5WDVWo-5FWu8^#A0YA3c=hQ+3Li92%q7(pt@RZGh!TcM$(Kekt#AJv@zqNSa>DA;^g2NII->gT$NK z!9qMuRSX3`Jyo&{B$FPxcBpQ*k@FX&8`yOybvbXQo~DmZtQ|Hczj!rHcFx^e#nHn3 zYyqr(FGMlRQ_t5@p$oNV^#`@&afbP~ypy7qge7R};Uf~mt-&#RkIK5^4`mJRZb#<8uEYG}#KRlH^$HT{TPp-?CD(K3n zTfyIp^CE`0IMXOR75<`98S04%d{(SLFh$Zj2}++aq|*d*ihR{&8SnVw?r;CxMC$G8 zzQNuNw)>G4h*Xs5^T;Z|}FU z*-e422k1RBrjhJ>gRoM!kWAPcRd0v(`NfHl=b7au7oYUgiH4xTb80&H1KPnR(ZJQdd*AMaS8Z+Q6<54Gh8CvoF!KPdgyHzE8)I<#uRem`AnuHL}UB47yS zY8qXm!K8JQ`fzFnv-SUL>lENLjh7Gr=L~pm>WAzft$sl7n%!3hQc-7Y$D`q9cai_l zizQ}t4YNi6bM0pO+E?^UA*J{s$Uf*JbbX2NM#xl6-f`IHCpny zBWSwh1)v`A5r;NYy;(wlSzy?(0xC=+4&wph>u99l({|h7%!zfR{jt43^;Xn`ekZc9 zh$c592*WR9EBEi7I3W8f59ok?1B@+l#jyxvYr@~aWY;iPF&<9-Vm$fOBsE-kYJCN0 zuZX`1oou3H)S;!Ed0zN54^rxpVwb&nRIs#(GZ z+$DA zD@hKs5=jRg0T*nh{wRU54%V054^uFcQ9(K0$IugbD4ufd>hhV8w=dS>6b|!?Mcz8L z^n6n&gf>-QUyz2RK=zSgfi4cn&D?fOfK7R)7$V3**71H4%?`L;^^Tb`00@s5`*UP4 zm=Z64@FZ!8SY2T?K9^NDpT7n|>Rrn@ZguNAIWz^3CbYtlWi#)|J(J%$D3(t~#mP&} zUeSmD4Zp#3p8s-l@ev#~vce2BG49_lxc{|corTeWDQc%a9lJuR*ic{o1SU4}+lzkL z&hiA)rraO;o>zZnSS0ij?+lCC`A24U;T=C^4_jY%$y#cmcWe}yXa-NucQm(z?^->p z?-8#8Ra+Eynj3Pd_2U&diDyeT9$@Ev5(m79EZJcEObX!zeB}^gHeILvmGEgN0@7B{ z!O@CQ^iOCf_E80t{fkzJKJ!Nw@i$_Aq8H$!E-dIQB20n7F-kD@YV9D_v$1#269ImG zjK)7pU_^UCPk6AL{WfYU>IfX|iUSPG?xFj2Z&Qm6Hq|TURRa{Jb7_@qU`B1dvg-#{EsYyIv|+im5XJNSeLiLeX2 zRHBqcUR<=cxikk-N@Xw4FDxW#+LtleJJ8hwM#97-(>`-+eGA=qfMH0-EzbQn;KwI=JnK0PHa0=mY_up2UIJ0i5gQ- zN2vJ#OeUWFyja3Y)AklVpZv(~^EUy4&moy&JG|6QE}3mTv*+cJA$|0kC7*JQ37Ky= z`j*^3sDc2QSn_P9b7fR_3FR9A1l>$G7sw!OxFweCJqvyYD5aX_nDuc3^Wd}SbV4{ZdjMP(kpUJ_+IR>Z2cOV4!3Cp*<{Ex|&amwct5W z?Mz7(oHF&!@FwmP2Fg}KW?UiX-=BDcWQ8=G_eZv+#O?g)ses?)n860~gWbm7(K-<} zIoUxoWhC#Y#@nvd&yu2Z;8Jtl85l}rqObf+83&yk$@0@SgZcSqH_AJKeNU$gzQa9uQs+N2?t}$W>5B;4;&h zAQQzZN@KO5<>pJV>^0|u)!kVjdR(mQ(O3=GoqEX1aR0yBXE#+`5Fa*gB|#&|wO~T` z8Dp(*n&lZo;z@Gqd2Js7gwXRH$6sIwmh$_O;@#G&T1T?+k-~c{=b~O4l0HkEgAdbq zr|c(HR>#;;0$>shVQSo006M`4jN6)_cj&EHw~L^)ujJPl7!m{i7j-y_zvO^H)j zExIkA2)G?LwAD7%Q=fm-L2=3vR0|yw6QAS{`Ittiys^g2+K2-L34N?4&OYst2K2;8 zlu}HDxdge8kO=>rP?2(Np&i8K5{*qxb!#EI+ZuElTNQi{;67X^JZ>SBBaKoRR>9As zQsDO=zcvXumBV_8l%7^i`$A|uow5WZ9$pjUHVY=%^^>$M)PAHs$}=@f)A$HY3GzsU z<%SK!s4M?@@ke?!P|C&Zh#*RQc-Y;d8}q1WGY%lq|Djw^kP(9;1o0(R#WL;C-HVZW zQZ+<+MH`y2BGqacSIaMX>FH$|=rx}Cf*n%$_4>0*08n3F-`$7BU6wK@fT#+4nu(gI3cvN`uziieMYUG?Q9#fNv z_*I4h3{N37v9SJw+q&&TS^SzsQxea`c3U9kUmFsRT!tcd#64$39kN*%}BLgiwwl^&2nTn9*b%rwIY7M9a41bpF5?2xtrJO*tw{uMK6w#}A zrbTnFDT%4do9rFP%d3Ta7j5qK=qv!AX-+MnU#*<8>QNCSk8_{zNSV5qHQ48d=&|>8 zJpWg60OrwWA9C!-R*acMQr-Ez(1J4FB@*A8$^A|6WAOsO9fh`ZS;!?)VvU&glqpDLH)&a&3z+;P zLRq)pBsiNs{WEiUqh%z*?*Tk9>{9e)_bh&R;w9L;=S|Vr>CTQ~rSSFjEx}tGuB(8E z3OKxhtS9>&k1fytTXl0ZSbR+6IaS6w^iccvy0mUc|B5pN4hsdK z^W5=oeO}EL`{JLRo!Mf$O!dNQ*Q$2|cRS20sQxaNipv#-;9^*modxA7I&rjk3qGXo z#MZb&*sWjQ3b1>(x_{lN6-Y!dLKBH|<|D|jpD@|f!F}Y1+*V#{VLE&D;_sPu!|>>Q z@+W3J5#VJlb{vDU3LD3!HDTn`un1Cnlcf@BDdW%Kbh8|kwV3~8winLeVb*giMWE(@v6w=l(#48RWi~=Twwk# z822j+*uy0K4tg=!R=CZV*?>_(VdhtL&6LSgr;X(ee{Uq2L;752Xgq2bcQ~|a)0zX+ zeZkiDVz4z3F{Ar3SkHfiUXaG!oT+xGgchY+E_6x-tsfckY)(4?J82 zW4Z@!CnDgZbq zrh1(s4ut5mKJ)CWM{0&+y_pp+wpI@8gcx=8o~8GnP$_HQ~*z+vc(OksziGP7?2O zS*+=-@k{G9&N;74^uLCI(bopL(c6{S#FYCV2TYxInshbdyAy4q* zUU{%Md=xWHjw-G@8Ze6T^Go3oLAG(_{DAM-P?F?k4HQmSHt*RVR7D6`c@<19>Us+m ziQqn>jhH~4CneD7dpum=96}XU4MNm;t#AIDeF{>s%8Ojqpq*fh{^zOd3X-g82=`Vq zgG#j9y&}giH>V|A{;&@P#Z!+XDkqt%N)a?vsVi(D0kHZk@!(mDg&YU{RK8@{*!ueV z=ALPzLzy`9=u}?%VbZEc#@y0RF@&Pz&e2Lh)0?ZZ%7YP({$yH`i8uP^Njfg4t2_^o+t@yrl+ zOWlOHLM4=Xh^-6Gf;fVE1c0&uq6KbEdu`z%DdbG%HnKBxxvc!YgR8w~#ehP{Om=J7vCk z;brCi4dCL3(e}%y*;N5@VqwKIW;5OVyUcyKuZt8A+9(D_#@hg>x~~o+zBr!Zro`zm zZ#7J7{3SnzC&pGBL^hE+8=Xh;dD_2z*I_m9TTZ_84i1+2O&{W!Kos9D&gP$cPZpW8 z?BB@wf%@d*UF)nQO2X6?>@rd2A2%7JKJNVlIRi7&o9Ub;!m0cjF?drct7YGUe> zsLiSw>+ zhR}W%n5hP6`6E+vDAJ06R{k@Fw}g1?HkV}+htCoREV$x17#l=)Fj;ZR@^pe~K^{mO zJTvMnXJCpA2%~_(avEFpmuei5e{8IW-{0{@dd0B5kRg}NlHhQ$4QE1+h+z1@@vq-9 zoxeq+Uz?#`LsDZBuh0^?XA+$k+_|UR$otiY`%GSL|J6%>GrybCz}9LVm{{PM*sb41 zGn@Z9bwGY#;sjRLzSn&fbl+%o4^i25Q|W(nPr(e=57^ZI6!045Bb|Eb{BYQHejIpT z{qSpd$bIvSZO-D*wKxku&GwP3Z$FcjYeP3i7Zk zD{=hz?S%5E68#s_qQRxZaSBjYFEd;WYr+iq{XPVo2^Xjxn9i#XuZrf^P!w7VQC83o z;c?MMHcCmzAUUvU4m&D&eZ}l@9Am-0Rl8D&?oom%jSE`3_q{Cn*h;vU26RdmzZE3Z z?+odpsL58jL&GIre&}0sB1j8wBI^<)7BD^8Dgakmsw2$T=gVRoB6uSS!QH?htx25u ziH~(GdY9a3YSIm~tUVtHuC1^aw6tyo^AhC~f<){@Yk2mL%JZLRa77M1TXjluUc{JJ zfrG7GKO8j63@>Kevz@w*tj$C zX?$+4zelApdG78SLxbyMN4^0buVjKB)#H|o9sw5Y27KEz%v>KDmlQp>y;({TT3ctU zx}7uaRKeE@&Z$F{rA4qr7vj#g&pLhwRyV6;3XP`&3dK#zf5&Cfem@DdsOnIMCKrXXU^uOCj*detR(3pF#gV zC-nqEq=ztR50m`xv2xdXpm&maR zgJ9j43UQm)(Hb{@{L5h{Os9GL1=);9CJ@LFwIUZ%d~3aFRxw@_4gYMb9OC(JrR*Cn z>6``vc*z3V%k9XniaO1nkFUb~o3lg+-#Y-`q^9CZHcKC19ekF#l0Re>Cz}zg>Tx-qTrUCZVYekYcfLJA}a7W1t$1+Rqrn=r+4962mvG5zG6*lxx10SrmlseKXyW^8Oq z)ww=z@jH5a77fOe5eP)H+jgI;9HF5>8o=xZ>vO0sVM6kIOrdGDsu>7)^#tg}#7r<- z)TG0p6`r)QbF&2-7u~Z77aHA6PxBG)5U*2;$2{}eEM#dQSlCLJAEct`cLVMACfAix zyW#WUXla6o0b^V-pRpQVv&|dD`&lI9j%Y+5X4tVSe$TK29U=+~#bvQGq)g>}N)oJ!T>^;-3>W>EQQ z*==f7S-8IxQ1b;SN_kNCm_1J2gOrs5)O+wNENaau%=R#5<2OD3_Z#)c9PkZ!PFclW z#V|MNrQY`TRHpwB@|BQQ;O##|3+TEaZK;DAQlt|)tE5gqr~HxPZkzqpD;dZrZDmJYx^VIVUl_6)W~Zy`IbLLJ<@qxtXXz)X$KLrwFPS zvo8tkj>G?297VVc!uQ(LTJ*3-l zz^KTc}+QhQNSRPBm6lWLY56P&O zcPZ8jS2AjSMw?(PGzJ}ub!P-LE+0adJ~LLkfEOj87jFa1#;x5sgZOR$pxN@OSiHit z9f|7^35=@yM}5GAXzRLdBieXCuRh$0=|2w`IKE<>O7?#y>eZt_Qy z!yauo>45FyyX>)8+s)Pcwm>oTl-Z5i*qMjfrH70%CSX%+x9PrdbxSe;r5yOO^U}9# zZY6E?DtdLtp=p{r5J^2if?gweKc>2RoxQqyEd~Igw6~ca5P?e`cRjLKc!9FHrCKsbb^=I#Rpc)j>QY6VHmRNa0W@y|obf56L6`7SZ=6rw(Nh&_)FTANl5 zL@7Iuq3`g=XCYVLAYp-L&gkgC#}Dql3Bhz<7)ZH_K3oMp&ZEgvbsf#!w~`DBpP$J- zoGlMXAQ{)ZG8=allK)%J3T4JX31U1S}RD_&QdUx_lenKiDV6bn!lJvb%_( z5WgCy-RI=}Y;kmaWq2dU$;DuI%@W|-!QOBw5w^x(!L{~GDcta}R$|(+q-eoc*ID(K zB)C;Ozn^UX6b_NkEiTSDc*~*0ab8k4#ets`?D7h@S0b|rio%Z zexNkB+Zea{Hc0yJnx?345Q_m8$wxapQA%#z+|#y%yMtNwoqul~93s4mL3}15Q=S^! zXuiC0h9ZOEguALpR1;l{dXZnB#Rn#?VQnVFx@|q$EOKA}U4G_IRg+nalQ*|pf3MjR z^|&dqPMzB#bHn~+l3TXDfKU#XJolte&2_YGCUz#(8=%$QaiM}6HhG`qOv1&UGBQ<8 za4#W~jc$LZ$BERo#-j9B+uY%EjX5wiF&UUWPnLfUe}JzKtKpauuQ3kHpSar0;-!Vj z6J`=dmix71#6#@rUCO7wO&I`I_Nnujk?)9zBVv?_fd>{#RZWjiHz?+U7_o7p$#Bdx zFo}Na{!gm*-*U8ODZTRYz4*uD{s5g-DPI@$gTGsv2V#=7MozEm`|6x;N;V6hzd!l> zT4sUtrz4`nQLeC~jaq|t{qTO-&eN-aC7n;LvD*0t>GL3D%47_?<%b|<_v@k82QKZX z4VQKw4`6ApJR$px4r9lpz$dF6_!p%tur4K{pRbCO^*G05D$UZ6Gjn_`K4kmA;Pe&O z*Y9at#oa;qt;7b{(C$-za3g?njTP{9plBms_vgSmx-&Hb%W<`ZSB8->;+kL}a|5kq z=2g@bMj)MN+I(~lKe!Rn1dT1HLc#HC{`D&;12)kk=tL9sK@Q<NJtf`AlNlt zXZ7QC;R9`Oip0ImpU-hL6oY|40F=;)yckbx3$^G+=1LMWlp?eeOoUstZ0cr`9C_ccsHea=Ig6_C=c|iLQ zjJ-DV1urdykxbO4_=S5Vs9Nlik70Zs?S5P8MDj*-7|T)KtbXHxe4KlcGXo#1$KYj` zT_L(ICWz#O(iEAA)HFFT?P_b=w?3Vln+rf138Q9fdV zGcM7gydaJz<@spD>$Q8S%YwpM&H2b=D<7d8dp{A&z)NN)AvSO4qXR`E#?S5yYLnRW zW4wG88Phf>uA8r-CDi7sp7v6HhJU6Av`2tWdcNVd5p%rsxk!sr_UoW=Xv*31lww3u zuYb~)(Dm>=*>_BTp#giHbykH|w0g3-bb`Ep;cps7>Mk;-qQ!*`5S6YJwG)Ms+xPC5;z+9i2H7$@~v#S$tR zZUPYbl{l>UgYmmMTvJS~sX1WR#{u$K%h9IOyGU;(pY(Vb!6qhH&uBD_RcFU6x zT2>Te6vUl|7f=3kD3Vq>@r$|XCyp8ug#Im zb$nBG6;XZl^Z~sAL0e%3$(~@zuB{&Da*^aEou*-7{)KPi1Fq5d$9m*JeBnMaxAn6B zPI1cy&sR_A1A?pH%63USd?{H){|of>8%p&Hx4-(J{i%2LE;Dc%ynZDWxP5%JbSQuq zxLJLdeAOI#D{eN9@2q`w>l=7{91Xgk0xf6Vcax7X%ySiiZtFn8gX)3Zv7m=jkk=ri z+)*xQ(iE_!&S?q*{CqsPF;yhl^Zc{g`?ay%!rC=w?{3_25uXHuh zIV{EH%7s#r$^fcgax^=FPj-e9p?)RdzY)qVvuzjTvTzHRj=yEj@UmgWiN2-AAi`(e zWE?lRj^_*Jwl1@wf@;Ip7_aZ?6%@k3ezw{%7`+=zt##%Kzdv--KthPRRfPI#rBLha z9v3m>{s*mUcap>KfMK}I-ntmY8{z=VB&=tMmR{^3-2BmR(U*yYG&@0o6Uq$lcY=WQ z6?f?zjwtN;2~T>{8|*9u1G{TXQdD-*<%O5FXq@$fGlm_F8J&WPHn~1Y|bi zZQpz7mx9IEv_I~lt+cf)EV)LA>fwy?Tvo_>8-z<+$$+aZ=8f^8Ira2x$_LGr`7QL_ zUZ@q+HTvSrw=rv>o_tvEITM5qt5xMhl6D=?#K*lc#*+E1Y(@L01(pZTA_fb_J*N;# z{IM}SEsXU8I)2E=(5x90<|EwCO&)|9Iy4A}lmYf{uR+&a64y^_{eFT>B|WBv_tyq{x@W{raW^8Vo)cG#+ylP)eZ?F~pvkSsN! zs*c#?sx(@t&0HS!=0>Cv!wIBh5I7{OhEq@%k9EOeaY}FCz@R$aG~ZhwJ&JJ`3?2IJ zJ~e7rATw)_%#fXvGjP5ceS`zpu#O{iTQ!?%-t5N#4v@?JVhKJU{E%|aXX!VNh*%AZ zG-T=sg!^=c-d!iUB@G<=#Uu^5$l%3&tbUb^z#(>xvIPRN-{{NSTQR<1j)gtj4yPJ5 zUmN>ia##-h?Mn%GjdQ&@^O)l$`nsNI;G2 zfPT5n_x1Q!O{cc?x~cg$e(hIqqr2w?(<|ZIKrm?W$!t=8@z|ND=TMV#fp4l zTH}~4fl+8?JSB^wxKXA)V2%jblrSsdL;f?@{&Yi6s<%C>bQ4fiJD+GAJ&WhGTXJ8h z;LB67&Mn%oC_5pT^rPC{>0$2SX8yhb5}AWqZQ1E{_@y;nZx9=&ZGJ``l8R49@qHKU zsrbijSjT(Q-{q`hm45p8KBpP|2KE2hGZtBa&}y z4Yg^96$~kr-iC<)YjDn4K^Z%EIf6V|4aHh&6R(-JgQ=cOIMOADp593+U6Q#m(XKJb zak2oR$lnpn;5W4U_(^kMZFd%($I-NEA0>e!X2P1MTCo}m7_fMJJ+4U`)2dn*qqqLQ zVJ_bS%+KUu7^j13 z;`G-B`&~_phvf2Zo*IOV)w#t~KipI|t@u9l8D9y@o(Ur!B~sw=>ci3My;LX%bH}#y zv5QI5v~s|P^35Gy2G_&3T2O2{%rDLk3uNtl_U#zVp`cV0Ug9iL z?a%IG{O!Kd6g`eK3fy--_YOMA1^M?W`+c*==_?7u_#?dhtZc}$AE%*>pQE&#JYO6DdIbHNtf`j7?SZlKNjMKOSLk893*#+S&FoabyPVMD zh`HlHW}g~4p0ZjJ%T2_x(i(mvW^RzfeJKznh}}$$c#idprdZV2s=+Elz^*J()Z(*1 z?c=F@z!U*IDqh~$3?RxzPg~(q)?2E@*C2^CVG|?p zIWY&M1Sd8=OLkf%ePd)3N&kToBGsM!@wNXJqg)&ofC@?^+h@7l+rhwg^cvSK9q_8J z{GYAZRj&f%ok{4h>wRm8OIS}N0P&*tQN7|>GOb}snD?@RXWReiw|}tb0;V#k`76t; zGavT+3ljeXRV$G(rng$8B02$dX65Ae7d}QV3kPBkbVJ1)6g+AYg<&VIf+BgX)ArZx z&D%(kz1V`l<;Wqekn-W4w#ZZ58|j=s1t3}=rfV26SUUW*cqr3H{o>h}Ry#{EZ|Yhqg9)9^_D{y(MK&Q#%Ag;m-0r8z8I^WoJzm$f636$yxEz|L+5T$WZ`{EV&$;xxi=<>1H z)NA@j-DwNh=1NgU;#9im@mo3DPI_GABOYEi1_oYBUT*syo^PJgP<%|3p&gHs@798m z`rwg@#shvXWnO7dTq!7p`DcgVu|jS>{g9EezPvnZrpz_-KNlG~OH?_+N! z#?}!j#*R8%yEb4IWktS4LLb-gfY;w;z++HD92MIS8h#>am5Q0(g7DL#X?xkZ35uY$ zAe9{j7#LWe-ZT!@n0t#!RroM_2`$aZ&Tb=uPX683@NHS?3LJOGJRuW)R`X;HFW{{y zuI@ctvp9eI3R_$Wl83b}4W-MSK-4_XyxXC)!^--`zt}}9r`f6B8Y-hoUB>%mLnNAA zPl_w@8Yd6-#Wc?ZCEz0DEpshV9*~y*uvJ<1oPeh(@1~?sm9VPH($AX~u}>fRJI(IE zEF1A+u}OLVqhxI6E*rmYz|UUz)hlC?n<>^}@pdmxPvT3sK`ts(-@`G-8%5;jT872G z7&agltxQa#=C+F|*O0MAI97~XJU=wd7C=^k{h4_DY<-lOe+&foo4K^nF8(CEr`%S% za@glrN28grKYs7i3)a?xbfTx}sp?M?FhmP^RAiRZc_2$| zHcF>(Bls183<&1zuM>6YX~BI>S4mRhHWaidGM!d=@XKQ1Cyex-8%-L5wGe6xK8vT) zgG`hTVu0Sn1Fpgke6hH8A!BZ`5Cy@-%I9g3f_TDVeP>wSRJl6MY#c@jOyG;x6s%8A z-xBfu!uNIu8*UnveKOsd-HW!t%<DtMExhitEH3G2eS(7t1Gm7=Op$cukz0AyVTWp^4c%yg$d}?hs{8jDBV}0fGBit;1!8K z8cX%jD7)tft_YgpyMJ)T*!quepZ5QO+3*qJ22j53-pHghSAPv`0EU~fxJ-JPa5`?$ z?|G|NF&MaO-(6zmznc?H3}YDd_hqVrS3uB;3nY1h;HzvXD9$*P1C2}S@!><1m7=g< zX;$WX_eg)c#BcD6x4jb|p65z`#OM$gFc3_u*N+!d>NX%_1du%TP@k#I3+@r{1U?Qq zsQpUEmua%Ri@;rm+^UE^*CqDL=MVm)7+F>&$L??W#7N_E;O zb<{jEnoJn^s&}(%*nwY@&j%&m`9PC;#1NA^5dr|;ySX(cgP<_x$A{JWMjo`Nw(|Z z9!>vL&#OgEKQnrMGF37Y3h-Z!^(3k9x=9Z7;l--7e&Peh#=D(gYrU*; z50pnFx}LyTy|c=H+(>UAzz~YMl?oVt%K4g)z3Jph26A}gHIYA#vKxb@X%TZhL3C}z zRj~eZK_`&rxIb9NpJ98iDc@aZ`-st3!t|m@*eBR7sbb|_g5V?*VX;Ehs2BWFH1kE5 z)p?1_)b5VN{<}$`oFYLTJu@ z-%c_`PkW&a+!giD_k@VuJA9{Odq~i!P?Y~F_2Hxd&(z5Mx~?%<)wj=76}hIr9XdPX zat!VMRPng59}yn|`zN>WDt7$-{IhInqSl>!D?K0kHRqO98d4P^CdmB;J*)nkY0`d> zd|YD-Gio+{#}Z3^=GiV$a@qOXE^`(K{B*v7PU;K1zDQtfXi)qHw^z+FS3CX+P?KKsJKex?^eQTQ9 z9OTkx@dw3QbE)xy{d-Up?4eK$tw)R|*HR(Bh=Q@23|2=2N<_l-RAYZBbtJsI;@$GM5^rgzl z#{Iu;FRMN32*@MC8NKRdG(Y)3y;!v8S>U&rnY!0?vFL!#Q6TUWaOxMPV!klyIyY)k zduZBK$N{tew=SNdC&V{A+S<{UR;GEfHglJeJ&KeB^nH*JOtkd0V0>YHH5_KGKv%M! zLo>qlVVXNZdhq4-KwFUYD0Gxh1cM0@A{t{@V#I^>)b2T_Lh5E?kmig|5A&>-=(`Wx z{K%fIKE6Z@X`^xJTGKKbUp~g3)9nV!fUJwk&-o^%qS*u$B zPASX9G71VA65|)^$g`(^E!LlEO9Rw~o67Sc#DsWJMqu?C4na@bzEM6s3ujwM$ZmYJ z(T|s}@F#GScOXGuU%BiaA3TpjvL%{<$wHrQeh}M7+C75+>u1ijaS2R?LjZ(Nei#xs z9rLANV#Z*81)uG(_23aQMx|mW$w@O~1EQ{oMij-)*SX&;Usc3&ah}BoTb%^Cy&Ki` z_f3shRSVL64`9rKjObl!E>PW9?Wsr=a#cfHGaejCpN`vkc5Zi*_VLD#+V=SiMlfcm z2^viVq?}p4t8f}LF@M%Er14lbM4%4-Bw7R!dgNJoQKsJSr$sixTNxbAOQpm5n~)!$ zCHB*N>c*yT4=PI`Sca^U&sFo#iHB{6*izN5d@{iG_pnyjensKd-Z*eC&o@xNGfcxK zvxXk4l7>IQstI)e@FDO;j@}XpOJT#OZe*PoV|A`fc>Rj*AM3dB;lwoknE~DN^r#Uf z-vJld1@~QODV6e19|kY_x0X$N#e^ff-D>B~A^yIGF>JQ_^#Q07F+tOqe$H;==-}Cx zHaAt1;N6Yn}x9hUfY`vI;pmw;`4{FswKhugb1}L9HN}liO}?{-SLB4}SLg*V%Xi zDl5n1VEuZRVTl0Cs4c<70S$Ccb$qOqmid{~Hak)(xJKe_K-C=m_|6IL`vl!nq|k4W zz{?yDrB#Zu9&t?sI$h?(R`t9BGB+jf7L6kr{h8GG%;O&8>rYz;WF5<|1yVEmNykI3 zYWEEbI=9{Y79cTVK?o?@5;bQk9j#0PD)bVJ`vjxc-rVtt_~K(tTeiF4>Uyc!0L_;( z`nYL#JZE`XL+{A-y3LL?h^IAx`)0x|g*^otIhL6C*k@-CDtot@ue1H6a;HM%y(_SCnccd50O2aDY7UgL0_=n(fV}LXOeB<%^=(gwJ0FNG8TBDPvwo z@D5G9voskWuh?jP`2seoDHXwlw%P4_g<6@5Jgp4g>AHN$uUQR;-@V_oJD5Rb&7{3| zIFLg`qnMVz+VbU9(2(f>Pkz3~28EtHrOrMpcQ;iofX`dckyt5+G$vKC*PE^c>vW+8Kh+*>y_tR z1mg%(Ji!;p7AKRO{*6$y<)45JJc}kTGTz@mlN_c(_w7_pXrp_`fs<3U> zGk_pc0!pWJNH+rmf^}Rd&hQACuHcI-{QH70isc~rxwJOQy&1Hl<7AXT z^}3T3?6n*}%K5GWT|JS5Vz@7(o4*uN$`s`@B!K+xC4kIfZAa}2?f4LM$}t@)!IRg} zK(1c)ZLtU^G97P)KFUr0TW!wmk3rz;t)IM@z5}mN|0r=Y(c7X>9ctjlIGGY32zMz8 zk5^);f1S!Z$8zGO>TS-bCGNrh$14;y5Mv#urpw7EJ@f<%70UI$<$SW>91r&Qc}xbM zTeVf=yTH;O7c=i%GGbqM{KScS3G8x92;VTgm3`W!zPwB{_M3y6s6f(DZq{!5Yy1WL z*3X}FXEfKfa|B!Xvhgczj$Z_k;LF0tDaM^q6=)H(7z*v&p1DsMo;xj2>iPW8;BY7K zv>m(RSzCaCN7Zxf|8#vPz8_G5r}drb2i47f<>S}H;olx3PDeY6b-~XLMryp31;FKK z{3>4CLqsP+FajHfLacm#vp zvt6g7(3ey-K7}}A-Spw|WUhdos$|8&z#Z0DKMCo6)r_1edHrmUfW-7$Io~}IL_7y4 z2hPjQh-TYEW-wf!4XVn1vH@b5O!)oAT43cOcqVtWa*}^{O>ViGHIrjpQm?t3^jH30 z*YJ*T_~vxNe3zSb0Y$NAvR7+wg~jT3|4fntYDB z@3S$+D+8!pLcToB8l#TgA|33RyO3oibSQeYZY?Arb|I>$S6NYMQKYhnd$xWn_2j~d z;rmiK4(I?BZF}Q0*?9`=3j3i{l^5=3JiHY63(vZ_ z*>ihMO1LMPd{kzf8pl>*Mt^vAx+m2gf8$I6y}H|}|K_^Jb$Zgas3XN(yJkzdSeg#K z;&YC8W^lU)KL_ML{MKo(ip6#Te2V8$d&r%Bhpd$cb##Pe z`iy$7GZ}m7^?7ehGZi|CQS|n@fz2D~n7I>ev88vU`QoMpdqNKnk0BVYZM)nTg)dUdRLe5jBGHrwPjgs0Q*Gd*|5zFJZ>t_bB#M#>Ygz?lOQ7I=Od zvvK8l7X2&Kr}8%UoMLmwgCj7o%~MH(h-D@7fPs7D+=F1HS!KEKx`kR=Ff0A0%hNnX zIY>HxQ_pkiAM1wlCU*g%z|zNifcr)1%N7qV3OUs^`4`l#3*QqJ0edXRj2q!Mjg{?J zT+e~#o)tYDNm7{SJcLFV{HzU^seO-BsBZOsJqo_|IXphf_lYsP*sMUhdw8hwS7Ud4 z<)lvO7E*XHoIfPUXoGt)j=S#`_yXF>AXR?j>h4cW?N-T`dp)Yw8;-&gosgoO%<|k` zRHsEBDb8H-Uv~4Ox|P=0$gO9JRm^^&p@9|q7?s0j5$FQLS8iQ&=QPqoH6>xnA7mwz z#p}saqMGLdNID%$+tXto;4$fyl!K1XdH!_>+8$DhphJ@_`#AbaO~sk9rO<0xYvtm5 zKy&E4tJmD*Y-V_rR1~V>kK@>jzSv17M8|W2J9KyFXDNp?(3jJ&?#+<}D2{;`B0$8C z|2p`)P;U4$3o86ssTx>#5S7kScSR7knh{-Aq6I&l0r)7I7E4OS7~H_P>O=0sob zR;&4guKhE6K0h$x0x*L;lW&{>Lx0oW1H+A z&=<=0Vmd0XCV(f;rs?~gCxW{`r$xei{sDHot*x)+lVQzBJA+@3vCEUY(=HM&+23#S zom23R`_40wEaMQwFn5fB%Ga$T%JiO+vYo)2NEHNxFcUE8V!K_i4Sx5}3}u;T#4~d3 z{iv=J$Z$`3o6RhO&D4%g2J1tf?lyrcChezRpJ#@-)%DWvJWQv{L^ofdet#}3oZk2H zCh)Kh3Qid0^bfwyIN!A&;E`y45xcIr{K+uu1H@B>;)^-g9`~@+80JO&ys{|JpjRV` z4vsa-bIbtKw8t}x7se`OI5U8~rRY)pX`WH)8K`02=K_rX-9)x~>$!AtJNJJ5{_onB z7>_)KD`d`EFqcISnaK_O^_)=l%Qv$}$wS|*O(@JOr{w%=i;e4_)PH~g;d*B!qwqma$et~8NYJ>r%8XLD$b$r zbGbeT_%HKuFVmg$sT}R4y#H22sT{Op>}KcbKGUP@lX&NCYUiyDNOvC7QGRJEcE^Ca z1Wh%hQhAQT=LzF!mD;xA@ek&_XR``uE|U$YImvNz9{hAleO2&zgg~u zqSfPs%)IyfqVYaqW&ONUO=&vqR4pIRkM=d>`PvCoPWfb;@$$cUfN+&-GU}~?S`X0* zLC_ZqR941z9}IRB2>mgQ(F9|}pe3!l?bNU$tLZU$^I9v1!`hGAN5 znnz$Y@dZ8U;@b!N4I{$)ack?<1o>t`mzXcTXyj6rd7+?KKgQX5)3D#c$ZH-m!#)Xw zhKTZ&-h>zl4)#}PyxXjFOi{u*Ti2nSDyOdBc^NG?Xw12wHsPC*2Z8Ud!|1V**zn>I zbF|fL)by4pRMbFcZsvZ)bOV2FBE&~Mp1VVQ8DWasYItEl^{Ys>q~Q|dEfdJbSb+Lw zgs1uIYF9C)K^iA826(OuJ&F|eb~lKsq8Ud49p&^A^uRoMbMe`E?l7OgNqhME1G|9tdT znoZkJJo64W#U-a4Q(7z8g|uxQvo3n(J{rGq0qyUc8<^$c!KCFUeJW0foR$E z#0e%ZNB^))3jn3oQo`>choYqeN?#$8Ke?0lGwpwpRhk<;*w>*(d4GoYjb~W5(zf191mJy`9A; zj?Ux^1e3B4ZvAi%gsU_FbOQ}SHqG3#1z3*ppg1cs2seH5M=GLlzJ%h$h%cv$%2cVC zbwOb06DGE4ec=2aH!CjD_>oy-s29Ngqu83~u&S?H6QQ*wCP;*$@{@aG@G-Fw#K_Ei zWoBeV_2a_4*%@Xkt+?=cEp)45%-73(e+(7ImVhVq)Vxtzz{N{A@PVdAh2I z4P43rxy^n>fCqdoq&5FZjXJYI?Q{W4)!so^GBm@yD)57{@|-~02c(>sXjd+!b5qwT z#!5VB6b+ViOaM*5h*5I3G{`=xTsTF|Hya6*!}4Mrh9nmvt#S&-zxKZD(gM+B6w8Iy zUwo)sh)n0aY18evNg#PcvO>mI`V$_Xk&KLB@~RaI|JNHUbocK`^^HGrYxbk@57+q* zb}Usr#ymM9p4zGi8f{-crvmOd+lB|zz-9nBIs=|t#M`}`JXOu8**^Qz-r_-ZQIgj5 zhxVdF*9|WoSjH|@ar)2nrKa<7hp2z&qrDQ>UcAipjk9jk(k^>eM&W%Y5ZN~l92;u4L{_S%CESMbK7>X=kdBg+Xge`yN60%WxAo6$qDYu( z_})XTP-2DyRl0P&Rz&GqeSk&Vywk;d`QHGTLP;(?X>k}arQt#Q#c>m|+T-IzMeaM1 zuU=F-AI-uXM2ViG@CX^79R`}uZ~OKaIO%aTS=Xj5Jqao?tpXMiAHw}uYk&#Iec_We zId_FIrGCv+OqrK++`h+>28tZg#rwvxzFLt#&uUGx8!~#2FO@;JjZfmA$uQmmTrTfg zq;bKC6}JwevE=^wf`uy?V1 zKF&MS#nq}ZE^Gx_{ukufx%(qJL^2{6n89~7wV)IOG^Ws3B;0R5t`M^X#0fP8IlbgU z-luyb?gtF@!b>45L!6?PpUdY?d&shKek48zcbvccfd!+)TACJKVF(JSuwdoJV+z%6 zh6-h59=ea9)xis7dP#zbE8iI@W!G7@Ud@1lcYmd=&JJ3veYA zDWR-h(dvV$=z#hXX-dc+0^>+th}~;qqSqvjiQd`2;bG6s5^gHhz@)$6 zwYkP&gwRjN0)z>mZywegjX zLwDfp+)}tqt%cv1pZCxNBZI>joe{VA=lTM;Hp&W@WjmVIN@zqsTpFfxV`&7)954K8 z{86SJ`0i3aGP-!=;_2PODwdDZL_Ad2n-qAlkI_ae$gSfY=x1={J)Vkf#)1D{;A=IJ z>dv}8W_va=u_V*5nRp#&@<)38fMIAz&tQ}ZJphmzt~Jhvw3q2_iV-IbEwl}qpcAOO zc*U)g9bm@cCs#u6pKr}yT0Lnmt-OM@FWQ**atzP~3wH8i0j$I$y+=_%cpSwlgr;7;Rq>nC*s4nFhP(PdNl8KIKjX6-cq7!i!H@1!y zU^t-Qan&oT$$$(+I~k%_Sd2mJO`oo8CqRjyFw*d;T|I(F4eT~?a_&hM{sRN?alBh- z^WI=IY)f0F_?o(YtuqWwv*gJpN>x^(1rouA;=DjgSCLrYkIJ1auaWRNRIgzx!)MJ!| zB_S+krjV1(-a%v^#O>=$^|3yJqv4ugH6s23lAWV)vG}kSoG95|l`~I`1 zy29V1X)^KM3}wB+j{flfjq^v7wop9voe zhcqJxMlNLUIlr054JM#2ad=7+LQZGC?cFgBVcVm z7H8y?VEl6+MfJhI^F0yxmasbfFw(0!BO+(cM*6^!Gc3KKo0NS@fNP^ZWA0PEXOZx5 zva8HduK2r1@dF*%OFD7ZZBYyxR5l}lx)k-5PvCP(&M%i2wgIyBaFVWU0<-{GbDkuA`dG3fFt|Znn8KN@%52814>6kj%J)zcz4K8K6qrFvUSiYH zgSBy=wgXz8`I_GM-pu0toK1M&n4Io+J0vyR+R@;IdzYp_*?fUu1_Vw(w6@Usu&}|_ zvCbx7^*s9#cP+lSe0u+M@V|;4By>{n;pdYW=_;~2gua0#_Ve?tm6tHUr&wveCk#d} z+aBUUH@~p?&@rVB6f41g*AM9leEI9I6S2jQYL?ese0cK2Ix zYw-Cd?bZp!>5s|V&yPQh$WY6D1eN#l&dop90^{_%kI-F!y{;V`X0HBEU2Sk)46fKT zb~eUi#%m`Drcj>ZV38XYFbyHY06JWBYv({%)jn$E^A!!@?YSj2a#IdadZVqzA+2x$ z6z;N0@J(G|ZB<%frB0nP(OfTov8rfX`wj7|5ma`$2FoxEogz$nA@t_xsjZM&0lm#1 ztW}cl=KHgraXGI*s0-=K;m∈~^e}7DK9?^OH1YrosijQ?V5( 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�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

8i;=JvU}hMy{hABE-D9M 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 literal 0 HcmV?d00001