diff --git a/.github/ISSUE_TEMPLATE/issue-form.yml b/.github/ISSUE_TEMPLATE/issue-form.yml new file mode 100644 index 0000000000..60050d499f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue-form.yml @@ -0,0 +1,71 @@ +name: New Issue +description: Description +title: "[Create New Issue]: " +labels: ["GWOC21"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to make an issue! + - type: textarea + id: description + attributes: + label: Description + description: Enter a brief description + placeholder: Please include a summary. Please also include relevant motivation and context. + value: "Description" + validations: + required: true + - type: dropdown + id: version + attributes: + label: Domain + description: Select domain of Contribution + options: + - Android Dev (Flutter) + - Android Dev (Java) + - Android Dev (Kotlin) + - Backend Dev (Java) + - Backend Dev (.NET) + - Backend Dev (PHP) + - Backend Dev (Python) + - C/CPP + - Competitive Programming + - Cyber Security + - DSA + - Database + - Datascience with Python + - Datascience with R + - Frontend Dev HTML/CSS/JS + - Frontend Dev React/Angular/Vue + - Golang + - Interview Prep + - Java_Domain + - JavaScript + - MERN + - Machine Learning + - Open Source + - Python_Domain + - Rust + - Statistics + - UI/UX + validations: + required: true + - type: dropdown + id: contribtype + attributes: + label: Type of Contribution + multiple: true + options: + - Audio + - Video + - Documentation + - Others + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct]() + options: + - label: I follow [Contributing Guidelines](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CONTRIBUTING.md) & [Code of conduct](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CODE_OF_CONDUCT.md) of this project. + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..82000d038e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,71 @@ +
+ +## Description 📜 + +Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. +Fixes # + +
+ +## Type of change 📝 + + + +- [ ] Au#dio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion) +- [ ] Vi#deo (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc) +- [ ] Doc#umentation (Content Creation in the form of codes or tutorials) +- [ ] Other (If you choose other, Please mention changes below) + +
+ +## Domain of Contribution 📊 + + + +- [ ] Android Dev #(Flutter) +- [ ] Android Dev #(Java) +- [ ] Android Dev #(Kotlin) +- [ ] Backend Dev #(Java) +- [ ] Backend Dev #(.NET) +- [ ] Backend Dev #(PHP) +- [ ] Backend Dev #(Python) +- [ ] C/#CPP +- [ ] Competitive #Programming +- [ ] Cyber #Security +- [ ] DS#A +- [ ] Data#base +- [ ] Datascience with #Python +- [ ] Datascience with #R +- [ ] Frontend Dev #HTML/CSS/JS +- [ ] Frontend Dev #React/Angular/Vue +- [ ] Go#lang +- [ ] Interview #Prep +- [ ] Java_#Domain +- [ ] Java#Script +- [ ] ME#RN +- [ ] Machine #Learning +- [ ] Open #Source +- [ ] Python_#Domain +- [ ] Ru#st +- [ ] Statis#tics +- [ ] UI/#UX + +
+ +## Checklist ✅ + + + +- [ ] I follow [Contributing Guidelines](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CONTRIBUTING.md) & [Code of conduct](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CODE_OF_CONDUCT.md) of this project. +- [ ] I have performed a self-review of my own code or work. +- [ ] I have commented my code, particularly in hard-to-understand areas. +- [ ] My changes generates no new warnings. +- [ ] I'm GWOC'21 contributor + +
+ + + +## Screenshots / Gif (Optional) 📾 + +
diff --git a/.github/keylabeler.yml b/.github/keylabeler.yml new file mode 100644 index 0000000000..9a4e97e76d --- /dev/null +++ b/.github/keylabeler.yml @@ -0,0 +1,41 @@ +# Determines if we search the title (optional). Defaults to true. +matchTitle: true + +# Determines if we search the body (optional). Defaults to true. +matchBody: true + +# Determines if label matching is case sensitive (optional). Defaults to true. +caseSensitive: false + +# Explicit keyword mappings to labels. Form of match:label. Required. +labelMappings: + Audio : Audio + Video : Video + Documentation : Documentation + Android Dev (Flutter): Android-Dev-Flutter + Android Dev (Kotlin): Android-Dev-Kotlin + Android Dev (Java): Android-Dev-Java + Backend Dev (Java): Backend-Dev-Java + Backend Dev (.NET): .NET + Backend Dev (PHP): Backend-Dev-PHP + Backend Dev (Python): Backend-Dev-Python + C/CPP : C/CPP + Competitive Programming : Competitive Programming + Cyber Security : Cyber Security + DSA : DSA + Database : Database + Datascience with Python : DSWP + Datascience with R : Datascience with R + Frontend Dev HTML/CSS/JS : Frontend Dev HTML/CSS/JS + Frontend Dev React/Angular/Vue : Frontend Dev React/Angular/Vue + Golang : Golang + Interview Prep : Interview Prep + Java_Domain : Java + JavaScript : JavaScript + MERN : MERN + Machine Learning : Machine Learning + Open Source : Open Source + Python_Domain : Python + Rust : Rust + Statistics : Statistics + UI/UX : UI/UX diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..312a9344b7 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,22 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 7 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 8 +# Issues with these labels will never be considered stale +exemptLabels: + - bug + - do not merge yet + - help wanted + - high priority + - pinned +# Label to use when marking an issue as stale +staleLabel: stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: > + Please reopen this issue once you commit the changes requested or + make improvements on the code. Thank you for your contributions. diff --git a/.github/workflows/Auto_Issue_Closer.yml b/.github/workflows/Auto_Issue_Closer.yml new file mode 100644 index 0000000000..2e25468867 --- /dev/null +++ b/.github/workflows/Auto_Issue_Closer.yml @@ -0,0 +1,20 @@ +# Written By XZANATOL +name: Auto Issue Closer on Merge + +on: + pull_request: + # Will trigger on closed PRs + types: [closed] + +jobs: + Close_Issue: + + runs-on: ubuntu-latest + # Checks if PR is merged (subflag) + if: ${{ github.event.pull_request.merged == true }} + + steps: + - name: Closes issues related to a merged pull request. + uses: ldez/gha-mjolnir@v1.0.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml new file mode 100644 index 0000000000..da1d139f25 --- /dev/null +++ b/.github/workflows/greetings.yml @@ -0,0 +1,23 @@ +name: Greetings + +on: + issues: + types: [opened] + pull_request: + types: [opened] + +jobs: + greeting: + runs-on: ubuntu-latest + steps: + - uses: Saviour1001/Greeting-action@main + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + issue_message: 'Hello @${{github.actor}},
+ Thank you for opening an issue. :octocat:
+ Note - Self-assigns by the original author will be prioritised by mentors manually
+ To get assigned to this particular issue please use /assign
+ Check this guide before contributing.' + PR_message: + '

:fleur_de_lis: Congratulations

:octocat: + Thank you @${{github.actor}} for taking out your time and contributing to GWOC21. Our team will review this soon and if everything looks good it will be merged. :heavy_check_mark:' diff --git a/.github/workflows/issue-assign.yml b/.github/workflows/issue-assign.yml new file mode 100644 index 0000000000..55f8240c23 --- /dev/null +++ b/.github/workflows/issue-assign.yml @@ -0,0 +1,33 @@ +name: Assigner + +on: + schedule: + - cron: '*/2 * * * *' + issue_comment: + types: [created] + +jobs: + slash_assign: + # If the acton was triggered by a new comment that starts with `/assign` + # or a on a schedule + if: > + (github.event_name == 'issue_comment' && startsWith(github.event.comment.body, '/assign')) || + github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + steps: + - name: Assign the user or unassign stale assignments + uses: JasonEtco/slash-assign-action@v0.0.3 + with: + assigned_label: Assigned + days_until_warning: 5 + days_until_unassign: 7 + stale_assignment_label: Open + - name: Checkout code + uses: actions/checkout@main + - name: Run Action + uses: Suvraneel/Issue_Watcher@main + with: + token: "${{ secrets.GITHUB_TOKEN }}" + author: "${{github.actor}}" + repo: girlscript/winter-of-contributing #Change the Repo name + maxIssue: 3 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..4260c35d62 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,18 @@ +name: Mark Stale Issues and Pull Requests +on: + schedule: + - cron: "0 0 * * *" +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: > + Please reopen this issue once you add more information and updates here. + stale-pr-message: > + Please reopen this pull request once you commit the changes requested + or make improvements on the code.Thank you for your contributions! + stale-issue-label: "no-issue-activity" + stale-pr-label: "no-pr-activity" diff --git a/C_CPP/readme.md b/C_CPP/readme.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/C_CPP/readme.md @@ -0,0 +1 @@ + diff --git a/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/BS.png b/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/BS.png new file mode 100644 index 0000000000..acff2a0cdb Binary files /dev/null and b/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/BS.png differ diff --git a/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/readme.md b/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/readme.md new file mode 100644 index 0000000000..3a43dbbd8a --- /dev/null +++ b/Competitive_Programming/C++/Searching & Sorting/Binary Search/assests/readme.md @@ -0,0 +1 @@ +#### This folder contains screenshots that are used to prepare documentation diff --git a/Competitive_Programming/C++/Searching & Sorting/Binary Search/binary_search_documentation.md b/Competitive_Programming/C++/Searching & Sorting/Binary Search/binary_search_documentation.md new file mode 100644 index 0000000000..a1ed7733f7 --- /dev/null +++ b/Competitive_Programming/C++/Searching & Sorting/Binary Search/binary_search_documentation.md @@ -0,0 +1,272 @@ + +# BINARY SEARCH + +Binary search is also known as half-interval search. It is a searching technique in a sorted array by repeatedly dividing search intervals in half. It is an efficient algorithm to find the element efficiently. Repeatedly check until the value is found or the interval is empty. + + + + +## Steps To Implement Binary Search +Let us assume there is an array A and an element x. +We have to search throughout the array and we need to find element x inside the array. +If not present print -1 or print the position of the array. + + +--- +

+ +

+ +--- + +### Approach: +1. Compare x with the middle element of array A. +2. If x matches with the middle element, we return the mid index. +3. Else If x is greater than the mid element, then x can only lie in the right half subarray after the mid element. So we recur for the right half. +4. Else (x is smaller) recur for the left half. +#### Note: To apply binary search array must be sorted. + + +### Pseudocode + + +arr ← sorted array + +size ← size of array + +item ← value to be searched + +start ← 0 + +end ← (size-1) + + +binarySearch(arr, size) + loop until beg is not equal to end + + midIndex = (beg + end)/2 + + if (item == arr[midIndex] ) + return midIndex + + else if (item > arr[midIndex] ) + start = midIndex + 1 + + else + end = midIndex - 1 + + if item is not found after iterating through whole array then + return -1 + + + +#### Code in C++: + +```c +#include +using namespace std; + +int binary_search(int arr, int size, int target) +{ int start = 0; + int end = size-1; + while(start<=end) + { // Finding mid of the array + int mid = end+(start-end)/2; + + // Comparing the middle element with target + if(arr[mid] == target) + { // if the middle element is equals to target return the mid index + return mid; + } + + else if(arr[mid] > target) + { // if target is smaller than the middle element, then target can only lie in the left + end = mid - 1; + } + + else if(arr[mid] < target) + { // if target is greater than the middle element, then target can only lie in the right + start = mid + 1; + } + } + # if the target is not inside the array then return -1 + return -1; +} + + +int main() +{ //Consider a sorted Array + int arr[]={1,3,5,8,10}; + int target=8; + + // Calculating size of array + int size=sizeOf(arr)/sizeOf(arr[0]); + + // Calling of binary_search function + int index = binary_search(arr, size, target); + cout< +#include +using namespace std; + +int find_first_occur(int arr[] , int n) +{ + int start=0; + int end=n-1; + int ans =-1; + while(start<=end) + { // Finding mid of the array + int mid=(end+start)/2; + + //if middle is 0 then 1 lies in right half as array is sorted + if(arr[mid] == 0) + start=mid+1; + + // if middle is 1 then it may be possible that there is 1 in left of it + // thus, find the occurance in left half + else if(arr[mid] == 1) + { // possible position that this is the first occurance + ans=mid; + // but still finding left of it + end=mid-1; + } + } + // completion of the loop either gives us the first occurance if 1 present + // otherwise return the default value -1 which indicates that 1 is not present in array + return ans; +} + + +int main(){ + int arr[]={0,0,0,0,1,1,1}; + int n=sizeof(arr)/sizeof(arr[0]); //size of the array + int first=find_first_occur(arr, n); + if(first!=-1) + cout< +#include + +using namespace std; + + +int binary(int arr[], int size, int target, bool isleft) +{ int ans=-1; + int start= 0; + int end=size-1; + + while(start<=end) + { // finding the mid of the array + int mid=(start+end)/2; + + // if target is smaller than middle then traverse in left half + if(arr[mid]>target) + end=mid-1; + + // if target is greater than middle then traverse in right half + else if(arr[mid] + +# Work to be done + +## 1) Components (Week-1) +- [x] Creating a component using the Angular CLI +- [ ] Creating a component manually +- [ ] Component LifeCycle +- [ ] Component Interaction +- [ ] Sharing Data between parent and child directives and components(@Input +, @Output , Event Emitter) +- [ ] Dynamic Components + +## 2) Templates (Week-2) +- [ ] Interpolation +- [ ] Template Statements +- [ ] Pipes +- [ ] Property Binding +- [ ] Event Binding +- [ ] Two Way Data Binding + +3) Directives (Week-3) +- [ ] Built in Directives +- [ ] Structural Directives +- [ ] Attribute Directives + +4) Dependency Injection (Week-4) +- [ ] Injecting Services + +5) Routing and Navigation (Week-5) +- [ ] How to generate an application with routing enabled? +- [ ] Defining a route +- [ ] Getting Router Info(Activated Route) +- [ ] Wildcard routes +- [ ] Setting up Redirects +- [ ] Nesting Routes +- [ ] Lazy Loading + +6) Forms (Week-6) +- [ ] Types of Forms-Template, Reactive +- [ ] Difference between both +- [ ] Setup in Template Driven Forms +- [ ] Setup in Reactive Forms +- [ ] Form Control, Formbuilder + +7) HTTP Client (Week-7) +- [ ] HttpClient Module +- [ ] Setup for server communication +- [ ] Observables +- [ ] Requesting Data from server +- [ ] Error Handling +- [ ] Get,Post,Put requests +- [ ] Interceptors + +8) CLI commands (Week-8) +- [ ] Create a component +- [ ] Create a service +- [ ] Create a module +- [ ] Build the application +- [ ] Aot,jit diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Angular_material.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Angular_material.md new file mode 100644 index 0000000000..064bdafa68 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Angular_material.md @@ -0,0 +1,34 @@ +![](https://i.imgur.com/0mtNSW5.jpg) + +# Angular Material + +It is a **user interface component library** which can be used by developers to boost up their angular projects. It offers us *reusable, UI components such as cards, data tables, inputs* and many more. + +We can easily customize the look of angular material components. The components of angular material continues to grow with increasing iteration of the library. + +# Installation of Angular Material + +![](https://i.imgur.com/1fp1VSM.png) + +We can use Angular CLI installation schematic to setup Angular Material. + +***ng add @angular/material*** + +Using of ng add command asks you some questions to determine the features + +1. Choose a prebuilt theme name or custom theme. +2. step up Global Angular Material typography styles. +3. Set up browser animation for angular material + + + +## Some of the files added using this command + +- Adding the **material design icon** font to index.html +- adding a **Roboto** **font** in index.html +- adding **project** **dependencies** to package.json + + + +After This Angular material will be configured and You are all set to use in your application. + diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Creating_component_using_Angular_CLI.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Creating_component_using_Angular_CLI.md new file mode 100644 index 0000000000..0e15f4da0c --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Creating_component_using_Angular_CLI.md @@ -0,0 +1,56 @@ +![](https://i.imgur.com/zhxqvxx.png) + +# Angular Components + +These are the **main building blocks** of Angular application. + +It consists of : + +- *applied css* style to the template +- *Typescript class* that defines behavior +- *HTML template* which declares that what will render on the page. + +# How to create a component using Angular CLI? + + + +## Prerequisites + +User must have : + +1. Installed the Angular CLI +2. Create an Angular Workspace with initial application and if you don't have initial application then create one. + + + +## Creating component + +To create a component using Angular CLI : + +1. Navigate to the directory that has your application. +2. Run (***ng generate component ***) command and here Component name is the name of new component + +![](https://i.imgur.com/EnzOAXk.png) + + + +## Command line creates the following files : + + + +1. A folder named same as name of component. +2. **Component File** - .component.ts +3. **A template file** - .component.html +4. **A CSS file** - .component.css +5. **A testing specification file** - .component.spec.ts + + + +![](https://i.imgur.com/o5YPXSD.png) + + + +These Files Will be automatically Generated. + + + diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/GWOC_Angular.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/GWOC_Angular.md new file mode 100644 index 0000000000..c12118f6e9 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/GWOC_Angular.md @@ -0,0 +1,81 @@ + +# What is ANGULAR? +Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages. +It is a component based frame work meaning entire app is divided in small components both reusable(single code used many times) and non reusable(seperate code for each component). +Some frameworks are preintegrated into the app while external frameworks can be integrated into the app using cli or manually. +App can be scalled up from single developer to enterprise level. + +# PREREQUISITES + +**Angular** is essentially a frontend framework hence knowledge of the basic and most common front end languages is essential. +To use the Angular framework, you should be familiar with the following: + +- [**JavaScript**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript) - Used to make the app dynamic. +- [**HTML**](https://developer.mozilla.org/docs/Learn/HTML/Introduction_to_HTML) - Used to give different meanings to various pieces of texts and images. +- [**CSS**](https://developer.mozilla.org/docs/Learn/CSS/First_steps) - Used to style the app especially the HTML components. + +## **Tools required to install ANGULAR on local machine :** +1. [ **Node.js**](https://nodejs.org/en/download/) : is an asynchronous event-driven JavaScript runtime designed to build scalable network applications. It is an open source server environment used by **ANGULAR** to render the code onto a local server(http://localhost:4200/). +Angular requires an active LTS(version **14**) or maintenance LTS(version **12**) version of Node.js only. +Download and install [Node.js](https://nodejs.org/en/download/) on your computer. It will be installed globally in your computer. +2. [**npm (Node Package Manager)**]() : is the world's largest software registry. It contains over 800,000 **code packages** that can be used into any project for free. It uses **Node.js** to install packages locally in your app. CLI is most commanly used to interact with npm. To check that you have the npm client installed, run `npm -v` in a terminal window. + #### Windows Example + >C:\>npm install + #### Mac OS Example + >npm install + +## Install the Angular CLI +You use the Angular CLI to create projects, generate application and library code, and perform a variety of ongoing development tasks such as testing, bundling, and deployment. + +To install the Angular CLI, open a terminal window and run the following command: +#### Windows Example +>C:\>npm install -g @angular/cli +#### Mac OS Example +>npm install -g @angular/cli + + +npm uses Node.js to install the **cli (Command Line Interface)** from **@angular** code package and -g means it will install the **cli** globally means it can be accessed from anywhere in the system using terminal. + +## Create a workspace and initial application + +**Workspace** is a collection of Angular projects (that is, applications and libraries) powered by the Angular CLI that are typically co-located in a single source-control repository is called a workspace. It is like your desk where you keep all the frameworks, dependencies, assets and other tools required for that project exclusively and not supposed to be installed globally. + +**To create a new workspace and initial starter app:** + +1. Go to your specified folder and run the CLI command `ng new` and provide the name `my-app`(name of the app): + + #### Windows Example + >C:\>ng new my-app + + #### Mac OS Example + >ng new my-app + + A folder will be created with the name my-app and it will contain all the necessary Angular npm packages and other dependencies to start your app. The CLI creates a new workspace and a simple Welcome app, ready to run + +2. The `ng new` command prompts you for information about features to include in the initial app. Accept the defaults by pressing the Enter or Return key. + +## Run the application + +The Angular CLI includes a server, for you to build and serve your app locally. + +1. Navigate to the workspace folder, such as `my-app`. + +2. Run the following command: + + #### Windows Example + >C:\>cd my-app + + >C:\my-app\>ng serve --open + + #### Mac OS Example + >cd my-app + + >ng serve --open + +The `ng serve` command launches the server, watches your files, and rebuilds the app as you make changes to those files. + +The `--open` (or just `-o`) option automatically opens your browser to `http://localhost:4200/` + +Go to the localhost:4200 in your browser and see the starter app template provided by **ANGULAR**. + +Saurabh Prakash Frontend_With_Framework_Batch_2 diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Introduction.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Introduction.md new file mode 100644 index 0000000000..77b33753ec --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Introduction.md @@ -0,0 +1,58 @@ + + +![](https://i.imgur.com/jxaZKLZ.png) + +# What is Angular ? + +***Angular*** is a **TypeScript** - **based free and open-source web application** **framework**. + +It is maintained by **Google** and also a **open** **source** **community**. They used to simply things and also do a testing kind of a stuff . So that they can provide us a bug free environment. + +Angular is being used as the frontend of *MEAN* *Stack*, that has *MongoDB* data base, *ExpressJS* servers and *NodeJS* environment and *Angular* itself. + +Information - + +Originally, the rewrite of AngularJS was called Angular 2 But it was Confusing for developers. To sort it, Team announced that separate terms should be used for each framework with "AngularJS" referring to the versions 1 and "Angular" referring to versions 2 and up. + +It was released on 2012 by a Google employee named as **Misko** **Hevery**. + +Every major changes are supported for 18 months. It also consists of 6 months support, during which regularly-scheduled updates and patches are released. + +------ + +# Why we use angular ? + +1. ***Easy* *to* *learn*** - everyone have knowledge of HTML, CSS and JavaScript. So it becomes Easier to learn as the language used is already familiar. There are many free courses and AngularJS tutorials available online. +2. ***Real*** ***Time Testing*** feature that is offered by Angular, like dependency injection and how components of web applications are generated. We don’t even need to remember module loading order if you follow “one file-one module” principle. +3. ***Support by Google*** - It has been used by google for its own applications. Google engineers always come up with improvements in it and also it got its credibility due to google. +4. ***Allows for optimized web applications*** - This framework saves a lot of time as it automatically binds up all the code together that has been broken into different parts. It is easier for developers to manage the UI part of the application. +5. ***Two way Binding Feature*** - It helps in syncing of view and model automatically and immediately. It helps in simplifying its presentation layer. + + + +------ + +# Features of Angular + +![](https://i.imgur.com/BgKUHL9.png) + +1. Model View Controller (MVC) Framework +2. User interface with HTML +3. Two-way binding +4. To sum up +5. Routing +6. Access to the POJO Model + + + +# Now lets See Some Disadvantages + +1. ***Not supported everywhere*** :- AngularJS is not supported by *Internet* *Explorer* *8.0* +2. ***Less secure*** :- It doesn't provide feature of *authorization* and *authentication* +3. ***Memory leakage*** :- It is done when memory requires by application anymore and after that due to some factors that memory doesn't comeback to that free memory pond. And it causes system slowdown, crashes and high latency. +4. ***JavaScript + TypeScript -Based*** :- Since to use angular you need to have JavaScript installed on your machine. This can be a problem where JavaScript is not available with the OS, which is the case in some and end-users will have to install it in order for angular application development and running the end application. + + + +Hence, We can conclude that there are some disadvantages of it but we have way more advantages, that why it is getting so much popular. + diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Readme.md new file mode 100644 index 0000000000..4afa5f2a6c --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/Readme.md @@ -0,0 +1 @@ +Week 1 topics need to be added here diff --git a/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/assets/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/assets/Readme.md new file mode 100644 index 0000000000..711e368be3 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Angular/Week 1/assets/Readme.md @@ -0,0 +1 @@ +any type of images or any assets you use in week 1 please add here diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Readme.md b/Frontend_Web_Development_React_Angular_Vue/React/Readme.md new file mode 100644 index 0000000000..53c20f4637 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Readme.md @@ -0,0 +1,60 @@ +# Frontend Web Development using React + +drawing + +# Work Need To Be Completed + +### Week 1 +- [ ] JSX +- [x] Babel +- [ ] ES6 template literals +- [ ] JSX Attributes and Styling react elements +- [ ] npm +- [ ] Creating React App (Include setup for Windows/Linux/Mac) +- [ ] The anatomy of a React App and Concept of Virtual DOM +- [ ] Installing the React Developer Tools +### Week 2 +- [ ] Components +- [ ] Class components +- [ ] Functional components +- [ ] import, export, modules +- [ ] React Props vs State +- [ ] Mapping data to components +- [ ] Using the React Developer Tools (Preferrably a video) +### Week 3 +- [ ] List and Keys +- [ ] Composition vs Inheritance +- [ ] Basic Hooks : a) useState b) useEffect +- [ ] Some more Hooks (As per recommended by Mentor) + +### Week 4 +- [ ] Conditional rendering +- [ ] State in React-Declarative and Imperative programing + + ### Week 5 +- [ ] Common hooks(useRef,useContent etc) +- [ ] Refs +- [ ] Writiing your own hooks *High order Components +- [ ] Fibre Architecture + ### Week 6 +- [ ] Multi page react app (React Router) +- [ ] Good Coding Practices +- [ ] Context +- [ ] Render Props + +### Week 7 +- [ ] state management in react +- [ ] importance of state managment in react +- [ ] Redux + +### Week 8 +- [ ] REST API Calls +- [ ] Using built-in Fetch API +- [ ] Axios +- [ ] Unfetch +- [ ] Superagent + +### Week-9 +- [ ] Testing +- [ ] Jest +- [ ] React Testing Library \ No newline at end of file diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/All_About_npm.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/All_About_npm.md new file mode 100644 index 0000000000..3353f98e7e --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/All_About_npm.md @@ -0,0 +1,144 @@ + + +

+NPM_Logo +

+ +

All About npm

+ +# What is npm? +npm stands for Node Package Manager. It manage the packages that are created by developers and these packages can be used by anyone all around the world. The packages are bits of reusable code that someone else wrote. + +

 

+ +# Why and Where should we use npm? + The first question after getting the idea of what is npm will be why should we use it? +So the answer is simple it saves our time and effort that's required to write every bit of code on our own. + +Using npm we can install various packages and resolve their various dependencies. + +

 

+ +## **Where should we use npm?** + +Let us understand this by using a simple example :- Suppose you are building a house.The house must be having doors,fans,etc.Now what you can do is to take the raw materials like wood,nuts,bolts,etc and built the doors on your own or you can purchase a ready made door from the market. + +Similarly while making an app either you can code every small component on your own or you can adapt packages of code for different components of your app using npm.Most commonly it is used to install,develop and publish node programs. + + +

 

+ + +# Installing Node.js and npm in local Machine using NVM + +`npm actually gets bundled with Node,so installing node will lead to the installation of npm as well.` + +To run different versions of node.js on your system without any hinderance you need to download the **node version manager** +

 

+ +## **NVM Installation on Windows** + +To install or update nvm,you should run the [install script](https://github.com/nvm-sh/nvm#install--update-script) on your terminal. + +If you face any problem with the installation you can check out the complete procedure [here](https://github.com/coreybutler/nvm-windows) + +

 

+ +To verify the installation use this command +``` +command -v nvm +``` + +For installing node.js using nvm use this command +``` +$ nvm install node +``` +For verifying the version of node use this command +``` +$ node --version +``` +

 

+ +## **NVM Installation on OS X or Linux** +To install or update nvm,you should run the [install script](https://github.com/nvm-sh/nvm#install--update-script) on your terminal. + +If you face any problem with the installation you can check out [this](https://github.com/nvm-sh/nvm#troubleshooting-on-linux). + +

 

+ +To verify the installation use this command +``` +command -v nvm +``` + +For installing node.js using nvm use this command +``` +$ nvm install node +``` +For verifying the version of node use this command +``` +$ node --version +``` +

 

+ +# Using Node Installer for downloading Node.js + +## **For Windows** +Download the windows installer from the [Node.js](https://nodejs.org/en/download/current/) website. +Download the LTS(Long-Term Support) version. + +

+ +

+ +Run the .msi file that you downloaded in previous step. +Accept the license agreement and and accept the default installation settings. + + +## **For macOs** +Download the Mac installer from the [Node.js](https://nodejs.org/en/download/current/) website. +

+ +

+ +Run the .pkg file that you downloaded in previous step. +Accept the license agreement and and accept the default installation settings. +

 

+ +# npm CLI + +There are a number of [npm CLI](https://docs.npmjs.com/cli/v7/commands) commands that are used by developers all around the world. + +

 

+ +## **Initialising npm from terminal** + + +Create a folder using the mkdir command. +
+Create a JavaScript file inside this folder using the touch command. + +

+ +Now use this command for initialising npm +``` +npm init +``` +After this you will get a number of entries to fill and you can fill them according to your preference. All this will lead to the creation of a file with name `package` in your main folder. Once you'll start installing external packages they'll also show up in this package file. + +[Here](https://www.npmjs.com/) you can search your desired packages. + +

 

+ +# Advantages of npm + +- Contains 1.3 million packages that can be used by anyone around the world. +- You can publish your scoped public package to the npm registry. +- Manage multiple versions of code and code dependencies. +- Manage local dependencies of project tools. + + + + + + diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/JSX_Expressions_and_ES6_Template_Literals.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/JSX_Expressions_and_ES6_Template_Literals.md new file mode 100644 index 0000000000..8de3d11484 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/JSX_Expressions_and_ES6_Template_Literals.md @@ -0,0 +1,262 @@ +



+ +

Introduction To React JSX

+ +### What is JSX? + +* JSX stands for JavaScript XML. +* JSX is a JavaScript Extension Syntax used in React to easily write HTML and JavaScript together. + +___ + +### **Take a look at the below code:** + +```javascript + + const jsx =

This is JSX

+ +``` + +* This is simple JSX code in React. But the browser does not understand this JSX because it's not valid JavaScript code. This is because we're assigning an HTML tag to a variable that is not a string but just HTML code. + +* So to convert it to browser understandable JavaScript code, we use a tool like Babel which is a JavaScript compiler/transpiler. + +* You can set up your own babel configuration using Webpack as I show in this article. Or you can use create-react-app which internally uses Babel for the JSX to JavaScript conversion.

+___ + + +**Example:** + +```javascript + + class JSXDemo extends React.Component { + render() { + return

This is JSX

; + } +} + +ReactDOM.render(, document.getElementById('root')); + +``` + + Here, we're returning the JSX from the JSXDemo component and rendering that on the screen using the ReactDOM.render method. + +### **Corresponding Output:** + + When the Babel executes the above JSX, it converts it to the following code: + +```javascript + +class JSXDemo extends React.Component { + render() { + return React.createElement("h1", null, "This is JSX"); + } +} + +``` + + As you can see in the above example, the code still correctly prints the contents to the screen using React.createElement. + + This was the old way of writing code in React – but it's tedious to write the React.createElement every time, even for adding a simple div. + + So React introduced the JSX way of writing code which makes code easy to write and understand. +___ + + +## Expressions in JSX: + + +* With JSX you can write expressions inside curly braces { }. + +* The expression can be a React variable, or property, or any other valid JavaScript expression. JSX will execute the expression and return the result: + +**Example:** +Execute the expression 5 + 5: + +```javascript + +const myelement =

React is {5 + 5} times better with JSX

; + +``` +**Output:** + +```javascript +React is 10 times better with JSX +``` +___ + + +

ES6 Template Literals

+ +## Introduction to Template literals: + +* Template literals are a new feature introduced in ECMAScript 2015/ ES6. + +* It provides an easy way to create multiline strings and perform string interpolation. Template literals are the string literals and allow embedded expressions. + +* Template literals are enclosed by the backtick (``). + +* Template literals can contain placeholders. These are indicated by the dollar sign and curly braces (${expression}). The expressions in the placeholders and the text between the backticks (` `) get passed to a function. + +### Template Literals use back-ticks (``) rather than the quotes ("") to define a string: + +**Example :** + +```javascript + +var str = `string value`; + +``` +___ + +## Multiline Strings:- + +In normal strings, we have to use an escape sequence \n to give a new line for creating a multiline string. However, in template literals, there is no need to use \n because string ends only when it gets backtick(`) character. + +**Example :** + +```javascript + +// Without template literal +console.log('Hello \n World!'); + +// With template literal +console.log(`Hello +World!`); + +``` + +**Output:** + +```javascript + +Hello + World! + +Hello +World! + +``` +___ + +## String Interpolation:- + +ES6 template literals support string interpolation. Template literals can use the placeholders for string substitution. To embed expressions with normal strings, we have to use the ${} syntax. + +**Example :** +```javascript + +let a = 'Hello'; +let b = 'World'; +console.log(`${a}, ${b}!`); + +``` +**Output:** + +```javascript + +Hello, World! + +``` +___ + +## Tagged templates:- + +Tagged template literals allow us to parse template literals with a function. + +**Example :** + +```javascript + +function TaggedLiteral(str) { + console.log(str); +} + +TaggedLiteral `Tagged literal`; + +``` + +**Output:** + +```javascript + +Tagged literal + +``` +___ + +## Raw Strings:- + +**Example :** + +```javascript + +var string = String.raw`Hello \n World \n Welcome back! ` +console.log(string) + +``` + +**Output:** + +```javascript + +Hello \n World \n Welcome back! + +``` +___ + +# Advantage of ES6 template literals : + +### 1) String concatenation (variable interpolation) + + The big advantage of backtick literals over quotation marks is when it is necessary to insert variables into a string phrase. + +```javascript + +const firstName = "Saurabh" +const middleName = "Wasudeo" +const lastName = "Chachere" +const name = firstName + " " + verb + " " + frequency +const literalName = `${firstName} ${verb} ${frequency}` + +``` +___ + +### 2) Cleaner code, less escaping with \ + + The other advantage of backtick literals (` `) is not needing to escape double quote (“ ”) or single quote (‘ ’) characters using a backslash (\). + +```javascript + +Double quotes: "He said, \"Don't do that!\"" +Single quotes: 'He said, "Don\'t do that!"' +Backtick literal: `He said, "Don't do that!"` + +``` +___ + +### 3) Multi-line code + + if we create a multi-line string in JavaScript? We get a SyntaxError: + +```javascript + +const myString = "
+

Hello world!

+
" + +SyntaxError: "" string literal contains an unescaped line break + +``` + The solution would be to add \n newline characters, but that would make the string almost impossible to read. + Backtick literals solve this problem and are preferable for HTML: + +```javascript + +const myUglyString = "
\n

Hello world!

\n
" + +const myBeautifulString = `
+

Hello world!

+
` + +``` \ No newline at end of file diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Learn-About-Babel.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Learn-About-Babel.md new file mode 100644 index 0000000000..502a3937db --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Learn-About-Babel.md @@ -0,0 +1,148 @@ +![Babel](https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Babel_Logo.svg/1200px-Babel_Logo.svg.png) + +# Introduction To Babel + +### What is Babel? + +Babel is a JavaScript compiler and a transpiler. It converts the latest version of javascript with advanced features into ES5 or other older versions of javascript. + +___ + +### Basic Information about Babel + +* Babel supports any latest version of javascript through syntax transformers. + * it converts into ES5 Javascript code. + * Babel tries using the least amount of code possible with no dependence on a bulky runtime. + +___ + + ### Why do we need Babel? + + JavaScript is moving so fast that browsers behind are not able to adapt all the changes which it brings. + So, Babel compile down your advanced feature code into the ones which your browser can actually understand. + + It allows you to use latest JavaScript without needing to worry about the needs of your target environment(s). + +After ES5, we have had ES6, ES7, and ES8. ES6 released with a lot of new features which are not fully supported by all browsers. So, it makes javascript compatible and browser friendly. + + +Babel includes a polyfill that includes a custom regenerator runtime and core-js. This will emulate a full ES2015+ environment and is intended to be used in an application rather than a library/tool. + + ___ + + ### Code Examples + + + **Example-1** + + ```javascript + let name="Rahul" + + const arr = [1,2,3] + + let person={name: "Rahul", age: 26, gender: "Male"} +``` + +*Babel converts code to ES5 format-* + +```javascript +"use strict"; + +var name="Rahul"; + +var arr = [1,2,3]; + + var person={name: "Rahul", age: 26, gender: "Male"}; +``` +___ + +**Example-2** + +```javascript +var add = (x,y) => { + return x+y; +} + +var k = add(3,6); +console.log(k); +``` + +*Babel converts code to ES5 format-* + +```javascript +"use strict"; + +var add = function add(x, y) { + return x + y; +}; + +var k = add(3, 6); +console.log(k); +``` + +___ + +**Example-3** + +```javascript + class Student{ + + } +``` +*Babel converts code to ES5 format-* + +```javascript +"use strict"; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +var User = function User() { + _classCallCheck(this, User); +}; +``` + +___ + +### Benefits of using Babel in react + +1. You can use modules. +2. You can use JSX with ES6. +3. It support a lot of browsers. +3. You can use more advanced features (async/await) etc. + +**React can be used without ES6 and JSX which would remove the initial need for Babel but you would lose the potential benefits of ES6 and JSX.Babel acts as a compiler allowing us to leverage all the benefits of JSX while building React components.** + +So, +when we start a react-based project, setting up the build environment is tough and time-consuming work. To help with this, the developers of React created an npm package called **react-scripts** that includes a lot of the basic setup most people will need for an average React app. **Babel and webpack are included as dependencies in react-scripts**. + +___ + +### Setup React app with Babel and Webpack + +```bash +mkdir reactApp + +cd reactApp + +npm init + +npm install react react-dom --save + +npm install webpack webpack-dev-server webpack-cli --save + +npm install babel-core babel-loader babel-preset-env + babel-preset-react html-webpack-plugin --save-dev + ``` + +___ +___ + + + + + + diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/REACT-1.1 WHAT IS JSX.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/REACT-1.1 WHAT IS JSX.md new file mode 100644 index 0000000000..1c5c2cec01 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/REACT-1.1 WHAT IS JSX.md @@ -0,0 +1,139 @@ + +

+JSX-logo +

+ +# What is JSX? + +## Introduction +JSX (*Javasript XML*) is an extension to the javascript language syntax to write XML-like code for elements and components. It is meant to be transformed into valid Javascript through internal transformations by **Babel**. + +--- +--- + +## JSX & React +The popularity of JSX rose due to its use in React, although its not necessary to use JSX in React components but JSX **simplifies concern** and makes our **code elegant**. +JSX allows us to write HTML elements in React and place them in the DOM without any createElement() and/or appendChild() methods + +

 

+ +### React **without** JSX: + ```jsx + React.createElement( + Heading, + {color:'red' , className: 'GWOC'}, + GirlScript Winter of Contributing 2021 has officially begun. + ); +``` + +### React **with** JSX: +```html + +GirlScript Winter of Contributing 2021 has officially begun. + +``` +  + +>### **Note** +> As JSX is an extension of javascript rather than HTML, it uses *camelCase* for attribrute/property naming: +> +> class becomes **className** & tabindex becomes **tabIndex** in JSX. + +--- +--- +

 

+ +## Benefits of using JSX in React + +* If familiar with HTML, it is **quite easy** to use JSX to build React apps. + +* JSX also allows React to show more **useful error and warning messages**. +* It helps in keeping our coder **simpler and neat**. + +   + + +--- +--- + +## Code Instructions + +### **Storing in variables** +```jsx +const element =

Welcome to GWOC

// element is used to insert this JSX code anywhere. +``` +--- + +### **Injecting JavaScript Expressions** +```jsx +const name="Sahil Srivastava"; + +return( +
+

Welcome to GWOC

+

{name}

+
+ // It will convert to

Sahil Srivastava

+) +``` +--- + +### **Attributes with JSX** +```jsx +const image = //iconUrl = "https://url/icon.png" +``` +--- + +### **Conditional Statements in JSX** +You cannot use conditional statements like if-else in JSX code, but u can use ternary operator. + +```jsx +const count = 5; +const myElement =

{(count) < 10 ? "Hello" : "Goodbye"}

; +// count< 10 ->

Hello

+// count>= 10 ->

Goodbye

+``` +--- + +### **JSX is a JavasScript Expression** + +This means that you can use JSX inside of *if statements* and *for loops*, assign it to *variables*, accept it as *arguments*, and return it from *functions*. + +```jsx +function authenticator(isMember){ + if(isMember===true){ + return

Welcome, Team member.

+ }else{ + return

Welcome,Please register

+ } +} +``` +

 

+ +> ### **Note** +>JSX code must be wrapped inside one top level element or JSX will throw an error. +> +>If you write *two* headers, you must put them inside a parent element, like a **div** element + + +--- +--- + +## Passing Props in JSX + + Props or properties that our custom React components recieve as arguments are passed through JSX from the parent component, So learning how to pass props is a necessity for making dynamic react applications. + + ### Pass any **JavaScript expression** as a prop, by surrounding it with **{ }** : + + ```jsx + // In MyComponent, the value of props.no will be 10 because 5-2 gets evaluated. + ``` + +### You can also pass any **Literal** as a prop : +```jsx + // props.message = "Welcome to GWOC" +``` + +--- +--- \ No newline at end of file diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Readme.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Readme.md new file mode 100644 index 0000000000..4afa5f2a6c --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/Readme.md @@ -0,0 +1 @@ +Week 1 topics need to be added here diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/assets/Readme.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/assets/Readme.md new file mode 100644 index 0000000000..711e368be3 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/assets/Readme.md @@ -0,0 +1 @@ +any type of images or any assets you use in week 1 please add here diff --git a/Frontend_Web_Development_React_Angular_Vue/React/Week 1/introduction to npm.md b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/introduction to npm.md new file mode 100644 index 0000000000..2477b14b6a --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/React/Week 1/introduction to npm.md @@ -0,0 +1,120 @@ +![npm](https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Npm-logo.svg/1920px-Npm-logo.svg.png) + + + + + +# Introduction To npm + + + +### What is npm? + + +npm stands for Node Package Manager, which is the default package manager of Node.js( a JavaScript runtime environment). +It is a Node.js utility that lets you manage Javascript programming libraries. +It consists of a command-line client, commonly known as npm, and the npm registry, an online database of public and compensated private packages. + + + + + ### What is the need of npm? + + + This is an essential tool for everyone working in the software development industry. There are hundreds of thousands of code snippets shared by developers in the Javascript community, which helps new projects avoid recreating essential components, libraries, or frameworks. + Many additional open source codes may be reliant on any of these code snippets. + + Fortunately, tools like npm have emerged for managing libraries. Otherwise, maintaining these collections will be very time consuming. + + ___ + + + ### npm Installation + + + To execute NPM applications, your system must have NodeJS installed. + + As it comes by default with Node.js. So, NodeJS installer includes the NPM software. + Once you've completed the NodeJS installation using either a Node version manager or a Node installer, you'll have both npm and Node.js installed. + + + ### Installing Node.js and npm using a Node version management + + In order to test your apps on several versions of npm, you may use Node version managers to install and switch between different versions of Node.js and npm on your machine. + + OSX or Linux Node version managers + + * [nvm](https://github.com/nvm-sh/nvm) + + * [n](https://github.com/tj/n) + +Windows Node version managers + + * [nodist](https://github.com/nullivex/nodist) + + * [nvm-windows](https://github.com/coreybutler/nvm-windows) + + + ### Installing Node.js and npm with a Node installation + + Both Node.js and npm can be installed on your machine using a Node installer. + + * [Node.js installer](https://nodejs.org/en/download/) + * [NodeSource installer](https://github.com/nodesource/distributions) + + If you use Linux, we recommend that you use a NodeSource installer. + + + + OS X or Windows Node installers + + * Use one of the installers from the [Node.js installer](https://nodejs.org/en/download/) + +Linux or other operating systems Node installers + +Use one of the following installers if you're running Linux or another operating system: + + * [NodeSource installer](https://github.com/nodesource/distributions) + + * One of the installers on the [Node.js download page](https://nodejs.org/en/download/) + + Alternatively, check [this page](https://nodejs.org/en/download/package-manager/) to install npm for Linux in the manner preferred by many Linux developers. + + + + You may check the version of the Node.js and NPM once it has been installed on your machine by using the following command in CMD Window : + + `node -v` : For Node.js version. + + `npm -v` : For npm version. + + You may use the NPM to download Javascript libraries from the Internet since it is a software application installed on your machine. + + To install a library, run the following command in a CMD window : `npm install ` + + ___ + + As npm is the largest software registry in the world. + With over one million packages, the free npm Registry has emerged as the go-to place for JavaScript code exchange. + + One of such package is `react` + + ___ + + [React Package](https://www.npmjs.com/package/react) + + React is a user interface-building JavaScript library. + + The code required to define React components is included in the react package. + It's usually used in conjunction with a React renderer, such as `react-dom` for the web or `react-native` for native platforms. + + To install the react package in your system use the following code in CMD window : + `npm install react` + + Once installed , you can use the react.js package in you javascript code. + + To get the package in you JS code, write this following code : + ```javascript +var React = require('react'); +``` + diff --git a/Frontend_Web_Development_React_Angular_Vue/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Readme.md new file mode 100644 index 0000000000..84f03b32bd --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Readme.md @@ -0,0 +1,199 @@ +# Frontend Web Development React/Angular/Vue + +![Alt text](./assets/react.png?raw=true) ![Alt text](./assets/angular.png?raw=true)![Alt text](./assets/vue.png?raw=true) + +## Week 1 is going on !!!! + +# How to get Work + +We will create issues according to Roadmap.You guys can comment under the issues in which you are intrested to work on alon with in which type you are going to do it.We are following first come first method. +- You can find the issues at [https://github.com/girlscript/winter-of-contributing/milestone/3](url) + +## Imp +- Contributers are not allowded to create issues + +# Important Things before making PR + +Guys Please Take Care that ,while making a **PR** please follow these instructions +1. Please add Frontend With Framework In Beginning of your PR Heading,as in issues +- (eg: Frontend With FrameWork - your pr heading) +3. Send your PR Link in discord general chat of our domain +4. Add your file in your domain folder only(eg:For React there is a React folder) +5. Inside your domain folder there are Week based folder's +6. Add your PR in that folders according to the Week(you can find which week is going on now by looking at the top of this Readme.md) + +Otherwise your PR will be lost in tones of PR.Please follow this Trend + +# Road Map + +## Angular Road Map + +### 1) Components (Week-1) +- Creating a component using the Angular CLI +- Creating a component manually +- Component LifeCycle +- Component Interaction +- Sharing Data between parent and child directives and components(@Input +, @Output , Event Emitter) +- Dynamic Components + +### 2) Templates (Week-2) +- Interpolation +- Template Statements +- Pipes +- Property Binding +- Event Binding +- Two Way Data Binding + +### 3) Directives (Week-3) +- Built in Directives +- Structural Directives +- Attribute Directives + +### 4) Dependency Injection (Week-4) +- Injecting Services + +### 5) Routing and Navigation (Week-5) +- How to generate an application with routing enabled? +- Defining a route +- Getting Router Info(Activated Route) +- Wildcard routes +- Setting up Redirects +- Nesting Routes +- Lazy Loading + +### 6) Forms (Week-6) +- Types of Forms-Template, Reactive +- Difference between both +- Setup in Template Driven Forms +- Setup in Reactive Forms +- Form Control, Formbuilder + +### 7) HTTP Client (Week-7) +- HttpClient Module +- Setup for server communication +- Observables +- Requesting Data from server +- Error Handling +- Get,Post,Put requests +- Interceptors + +### 8) CLI commands (Week-8) +- Create a component +- Create a service +- Create a module +- Build the application +- Aot,jit + +## React RoadMap + +### Week 1 +- JSX +- Babel +- ES6 template literals +- JSX Attributes and Styling react elements +- npm +- Creating React App +### Week 2 +- Components +- Class components +- Function components +- import,export,modules +- React Props vs State +- Mapping data to components +### Week 3 +- List and Keys +- Composition vs Inheritance +- Basic Hooks : a) useState b) useEffect +- Some more Hooks (As per recommended by Mentor) + +### Week 4 +- Conditional rendering +- State in React-Declarative and Imperative programing + + ### Week 5 +- Common hooks(useRef,useContent etc) +- Refs +- Writiing your own hooks *High order +Components +- Fibre Architecture + ### Week 6 +- Multi page react app +- Context +- Render Props + +### Week 7 +- state management in react +- importance of state managment in react +- Redux + +### Week 8 +- REST API Calls +- Axios +- Unfetch +- Superagent + +### Week-9 +- Testing +- Jest +- React Testing Library + + + + +## Vue RoadMap + +### 1) Introduction (Week-1) +- VueJS Intro (uses, benefits, scalability) +- Introduction to VueJS using CDN +- Installation using NPM and about Vue CLI +- Intro to Lifecycle Diagram and Lifecycle Hooks (Theory explanation) +- Installing Vue-DevTools +- Vue Components + +### 2) Data Manipulation in VueJS (Week-2) +- Data and Methods +- Data Manipulation in VueJS (using methods) +- Computed Properties +- Watchers +- Filters + +### 3) DOM Manipulation (Week-3) +- Inline style manipulation +- Class binding +- **ref** keyword in VueJS + +### 4) Directives (Week-4) +- Conditional rendering (v-if / v-show) +- One way data binding (v-bind) & Two way data binding (v-model) +- Event Listening (v-on) +- List rendering (v-for) +- HTML rendering (v-html) + +### 5) Event Handling (Week-5) +- Event Listening and Handling in VueJs (using v-on) +- Emitting events +- Creating custom Events + +### 6) Component reusability (Week-6) +- Props +- Slots +- Child Component Data manipulation using events (Child to Parent) +- Component Lifecycle hooks methods +- Dynamic Components + +### 7) Plugins (Week-7) +- Plugins introduction and installation in VueJs (Vue Router & Vuex) +- Creating Routes (Static and Dynamic) +- Nested Routes +- Using Routing Guards +- History Mode in routes +- Route Meta fields +- Handling routes Programmatically + +### 8) State management (Week-8) +- Need of State Management +- Workflow of State Management in Vue Js +- Vuex Installation +- Implementation of State Management using Vuex (states, getters, actions, mutations and modules) + diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Readme.md new file mode 100644 index 0000000000..c3968ccce4 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Readme.md @@ -0,0 +1,61 @@ +# Frontend Web Development using Vue + + + +# Work need to be done + +## Vue RoadMap + +### 1) Introduction (Week-1) +- VueJS Intro (uses, benefits, scalability) +- Introduction to VueJS using CDN +- Installation using NPM and about Vue CLI +- Intro to Lifecycle Diagram and Lifecycle Hooks (Theory explanation) +- Installing Vue-DevTools +- Vue Components + +### 2) Data Manipulation in VueJS (Week-2) +- Data and Methods +- Data Manipulation in VueJS (using methods) +- Computed Properties +- Watchers +- Filters + +### 3) DOM Manipulation (Week-3) +- Inline style manipulation +- Class binding +- **ref** keyword in VueJS + +### 4) Directives (Week-4) +- Conditional rendering (v-if / v-show) +- One way data binding (v-bind) & Two way data binding (v-model) +- Event Listening (v-on) +- List rendering (v-for) +- HTML rendering (v-html) + +### 5) Event Handling (Week-5) +- Event Listening and Handling in VueJs (using v-on) +- Emitting events +- Creating custom Events + +### 6) Component reusability (Week-6) +- Props +- Slots +- Child Component Data manipulation using events (Child to Parent) +- Component Lifecycle hooks methods +- Dynamic Components + +### 7) Plugins (Week-7) +- Plugins introduction and installation in VueJs (Vue Router & Vuex) +- Creating Routes (Static and Dynamic) +- Nested Routes +- Using Routing Guards +- History Mode in routes +- Route Meta fields +- Handling routes Programmatically + +### 8) State management (Week-8) +- Need of State Management +- Workflow of State Management in Vue Js +- Vuex Installation +- Implementation of State Management using Vuex (states, getters, actions, mutations and modules) diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installation_of_Vue.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installation_of_Vue.md new file mode 100644 index 0000000000..59bd64d3c7 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installation_of_Vue.md @@ -0,0 +1,86 @@ +![](https://i.imgur.com/Zyy4Xtr.jpg) + +# Installation of Vue.JS using npm + +### Prerequisites + +Must have Installed **Node.js** it contains :- + +1. package manager +2. version manager +3. VS Code + + + +### Installing Vue.js + +**Step** 1 : Create a folder. + +**Step** 2 : Open cmd (command line) in that folder. + +**Step** 3 : npm install vue + + + +To check the version that we have installed use command ***vue --version***. + +# What is Vue CLI ? + +It is a ***command line interface***. + +Its is full system for rapid Vue.js development. + +It basically targets the *standard tooling baseline for its ecosystem*. It ensures that various tools works smoothly so that developer can focus more on building the app instead of just spending time with configurations. + + It Provides : + +1. A **full Graphical User interface** to create and manage whole vue.js projects +2. Zero config rapid prototyping +3. project scaffolding +4. some runtime dependency like upgradable, Extensible etc. +5. create app with 1 command +6. plugin support(tailwind, electron) + +# Installation of Vue CLI + +Important : To install vue CLI. We have to use -g flag to globally install. + +**step** **1** : npm install -g @vue/cli + + In order to upgrade use command ***(vue upgrade --next)*** + +# Working on Vue CLI commands + +**Step** 1 : vue create example + +![](https://i.imgur.com/oofWaxE.png) + +**step** **2** : Then you need to pick a preset and by default it is Babel and ESLint. Use arrow key to navigate and space to select. + +![](https://i.imgur.com/vwEljD7.png) + +**step** **3** : Choose how to apply linting. + +![](https://i.imgur.com/3fahKrV.png) + +**step** **4** : Testing choose one of two options for testing + +![](https://i.imgur.com/889fmTS.png) + +**step** **5** : vue CLI will ask where to put all configurations in package.jason or any other file. + +![](https://i.imgur.com/IZWUg2G.png) + +**Step** **6** : Vue CLI asks you if I want to save these presets, and allow us to pick them as a choice so that Vue CLI to create a new app. + +![](https://i.imgur.com/bYbmABz.png) + +**Step** **7** : It will ask You want to use yarn or npm. + +![](https://i.imgur.com/r9mLYDN.png) + +At end you will be all set to go and recieve this message + +![](https://i.imgur.com/ymjAQCG.png) + +And This is how we can work on Vue CLI. \ No newline at end of file diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installing Vue-Devtools.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installing Vue-Devtools.md new file mode 100644 index 0000000000..1c72a551f6 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Installing Vue-Devtools.md @@ -0,0 +1,130 @@ +# What is Vue-DevTools? +Web developer tools, also known as DevTools that are meant to help developers in the process of testing as well as debugging their codes. +The **Vue.js devtools** allows you to inspect and debug your applications while developing. + +# Why it is needed? +These development tools are utterly different from IDEs and other website builders because these are not meant to help in the direct process of a webpage creation but instead, these are the tools that will help you in testing your webpage or web application. +These development tools are commonly available as *built-in* features and *add-ons* in web browsers. +# What are the most common features of DevTools? +– ***HTML*** and ***DOM*** editor +– Assets, network and resources information of webpage +– ***JavaScript*** debugging to add more + +# Installation +## 1. Chrome : + Install the extension on the _[Chrome Web Store](https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd)_. Follow the following steps + + +- Step 1 - Click on the `three dots button(Menu)` at top right corner of browser then select`More tools` then `Extensions`. + +- Step 2 - Click on the `Details` button on the Vue.js Devtools extension. + +- Step 3 - Check the following settings. + + +Markdown Monster icon + +## 2. Firefox : + Install the extension on the _[Firefox Addon](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/)_. +Markdown Monster icon + +Follow the following steps : + +- Step 1 - Click on the `three horizontal lines button(Menu)` at top right corner of browser then select`Addons and Themes` or just press `Ctrl + Shift + A`. + +- Step 2 - Click on `three horizontal dots button` then `Manage` button on the Vue.js Devtools extension. + +- Step 3 - Check the following settings. + + Markdown Monster icon + + ## 3. Standalone : + A **standalone** application is an application that runs locally on the device and doesn't require anything else to be functional. Required when using an unsupported browser, or if you have other specific needs (for example your application is in **Electron**). + Markdown Monster icon + +- To install the package globally using npm: + - Step 1 : + > npm install -g @vue/devtools + or + > yarn add -g @vue/devtools + + **-g** installs the devtools from vue package globally on your computer means you can use it from anywhere inside the system. + - Step 2 : Run in terminal + > vue-devtools + + - Step 3 : Then add this code to the `` section of your application HTML file. Specify the specific port number where you want the devtools to start. + + `````` + + Or if you want to debug your device remotely: + ```html + + + ``` + `` usually looks like this: `192.168.x.x` + Remove it during deployment. + + Then start your development server like you are used to, _without_ killing the `vue-devtools` command as both need to run in parallel. Open a new terminal and type : + > npm dev + or + > npm serve + or + > yarn dev + or + > yarn serve + + + +- To install the package locally or specific to the project: + - Step 1 : + >npm install --save-dev @vue/devtools + >or + >yarn add --save-dev @vue/devtools + + **--save-dev** installs the package in the workspace of th project hence you cannot use it outside the workspace. + - Step 2 : + > ./node_modules/.bin/vue-devtools + + - Step 3 : import it directly in your app + ```js + import devtools from '@vue\devtools' + ``` + Import **devtools** before importing **Vue**. + - Step 4 : And connect to host + ```js + if (process.env.NODE_ENV === 'development') { + devtools.connect(/* host(optional), port(optional) */) + } + ``` + **host** -argument that tells your application where devtools middleware server is running, required only while debugging on mobile. + **port** - argument that tells your application on what port devtools middleware server is running. If you use proxy server, you might want to set it to `null` so the port won't be added to connection URL. + +# How to open Vue-DevTools in the browser? + +**Vue-DevTools** can be activated by opening the Developer Tools in the browser and moving to the Vue panel. +To use the devtools, we must open the Developer Tools panel, using `View → Developer → Developer Tools`, or `Cmd+Alt+i`(Mac) and `Ctrl+Alt+i`(Windows). + + Markdown Monster icon + +Another option is to right-click on any element in the page, and choose `Inspect Vue component` on both Mac and Windows: + + Markdown Monster icon + + + + diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Introducion_To_Vue.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Introducion_To_Vue.md new file mode 100644 index 0000000000..6a6778f807 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Introducion_To_Vue.md @@ -0,0 +1,88 @@ +# Introduction + +Ever wondered what will your website look like if no Javascript was there. Let me be clear, JavaScript is a programming language that is used to make your website much more interactive, user friendly. JavaScript reacts with your HTML elements via tag names, classes, or ids and helps in implementing interactivity to the website or a particular component of a website. + +Nowadays there are several JavaScript frameworks or libraries that help developers to make their code much more organized and compiled together. +The three famous and most used JavaScript frameworks are - **Vue.js, Angular, React.js**. + +In this documentation, we will learn more about _Vue.js_. + +## What is Vue.js? + +Vue.js is an **open-source**, **front-end** **progressive Javascript framework** that is used for _Single Page Applications_ that has richer and _powerful user experience_ and that can be _scaled_ to any level for a single page application or a user interface used with the combination of _modern tooling_ and _supportive library_ . + +_Progressive framework_ means if you have a previous server-side application you can plug Vue.js into one of the application's components that needs to be much more richer and user interactive experience. + +
+ +
+ +## Why Vue.js? + +Making an application just by using HTML, CSS and JavaScript is a tedious task and is not much organizable and manageable when it comes to building large-scale applications. Here Vue.js comes into play which modularizes (_breaking into small pieces_) your code, compiles HTML, CSS, and JavaScript into one single structure or component which makes it easy to identify errors much more easily. + +**Reusable Components** - One of the key features of the Vue.js framework is the _reusability_ of the components which we have created. Each component has its own set of HTML, CSS, and JS which operates independently and which is used to render that piece of the page. These components can be reused at any level of code making it easier for us and preventing us from writing duplicate pieces of code for the same component that has to be rendered elsewhere. + +
+ +
+ +Vue.js also provides the ability to control HTML already rendered by the server. Its main focus is the view layer (UI, pages, and the visual elements of the page), which makes it easier to integrate the Vue.js framework with existing web applications. + +## Advantages of Vue.js + +### 1.Small + +Any JS framework that is lightweight and is of small size is always the most used and preferred framework due to its fast rendering and easy-to-understand features. So going by the above point Vue.js, owing to its small size **18-21 KB**, has an advantage over other frameworks as it takes no time to download and use it. + +### 2. Simple Integration + +Vue.js is a progressive framework meaning it can be integrated with existing applications easily. (Being itself built on JavaScript can be integrated with any other framework built on JS) + +### 3. Flexibility + +Vue.js allows a developer to write a template in a pure HTML file, or a JavaScript file, which gives the framework the flexibility to developers who use React.js to understand a particular template. It's also easy to integrate different templating engines, CSS preprocessors, and many other things. + +### 4. Two Way Data Binding or Communication + +Vue.js has a very interesting feature of communicating with the UI elements called **two-way data binding** - meaning whatever changes you make in your UI passes on to the data and changes made to the data get reflected in the UI. This is very different when compared to libraries like React.js which has only one-way communication. + +
+ +
+ +### 5. Documentation + +In addition to the simple syntax, the Vue.js framework is also truly intuitive. The framework is extensively documented - the video courses and impressive core library focusing on the view layer make it easier for anyone who has even the basic knowledge of HTML, CSS, and JavaScript to understand the concepts and incorporate them. + +### 6. Component Based Architecture (CBA) + +The components which we previously talked about, represent encapsulated elements of your application interface. Each of these components has its separate HTML, CSS, and JS without the need oof division into separate files. Such a type of architectural approach and component system has several benefits: + +1. _Code Reusabilty_ - Owing to the fact that the components of Vue are individually stored in separate files, it makes it easier for you to access a particular section of the code and fix it in case of any bugs. + +2. _Good for unit-testing_ - Having components greatly simplifies the unit testing. It is aimed at understanding how the smallest component of the application works on its own. + +### 7. Performance + +Vue.js uses virtual DOM and lazy loading to boost performance and page loading speed. + +Suppose in React you update a component state, all of the components in the subtree are re-rendered as well while in Vue, dependencies are tracked to prevent the unnecessary re-renders. Although in React you can use **shouldComponentUpdate** to prevent child component re-renders, this might add complexity and result in DOM state inconsistencies. + +## Disadvantages of Vue.js + +### 1. Limited Plugins + +Vue.js is still a developing framework so it doesn't enjoy the support of many plugins, but it can be integrated with React or Angular to overcome this issue. + +The plugins that are available on Vue that can be integrated with other frameworks are not well supported. + +### 2. Language barriers + +There are certain results stated by experts that are being developed mostly in the Chinese language, this complicates things for the native language developers. So it seems that there is larger support for the Chinese development community as compared to others. + +### 3. Lack of Financial Support for Large-Scale projects + +Vue.js has come a long since its development phase in the last two years, but still, it is a relatively young framework and cannot be compared to a well-established framework like Angular. This is one of the main reasons that it does not receive a large amount of financial support from enterprises that can support an app development team that can quickly solve the arising issues. + +Despite that, Vue sees growing demands from tech giants like IBM and Adobe, although on relatively small scale projects. \ No newline at end of file diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Readme.md new file mode 100644 index 0000000000..4afa5f2a6c --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/Readme.md @@ -0,0 +1 @@ +Week 1 topics need to be added here diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Readme.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Readme.md new file mode 100644 index 0000000000..711e368be3 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Readme.md @@ -0,0 +1 @@ +any type of images or any assets you use in week 1 please add here diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/ReusableComponents.jpg b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/ReusableComponents.jpg new file mode 100644 index 0000000000..59fa6393e7 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/ReusableComponents.jpg differ diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Two-Way Data Binding.jpg b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Two-Way Data Binding.jpg new file mode 100644 index 0000000000..5865fd41e3 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Two-Way Data Binding.jpg differ diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Vue.jpg b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Vue.jpg new file mode 100644 index 0000000000..9132bb74bb Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/Vue.jpg differ diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/cdnoutput.png b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/cdnoutput.png new file mode 100644 index 0000000000..7200cdff06 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/assets/cdnoutput.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/using_vue_with_cdn.md b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/using_vue_with_cdn.md new file mode 100644 index 0000000000..357d5f0602 --- /dev/null +++ b/Frontend_Web_Development_React_Angular_Vue/Vue/Week 1/using_vue_with_cdn.md @@ -0,0 +1,46 @@ +# Using Vue.js with CDN +If you dont want to go throught the hassle of installation, and just want to try out Vue.js for learning or prototyping (or for fun), using a CDN would be a good choice. CDN stands for Content Delivery Network, it is used to deliver content like HTML Pages, Javascript files, images etc and is responsible for serving a huge amount of internet traffic these days. We will be using Vue.js via a CDN service called jsdelivr + +### Usage +To use Vue.js with a CDN, simply add the following script tag to the head tag of your HTML and you will be good to go (yes it's that simple!). +``` + +``` + +### Example +Let's take a look at an example. +```html + + + + + + + Simple Vue App + + + + +
+ + {{ content }} +
+ + + +``` +### This code renders the following page in the browser: + +![ ](./assets/cdnoutput.png) diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/How_To_Use_NPM1.png b/Frontend_Web_Development_React_Angular_Vue/assets/How_To_Use_NPM1.png new file mode 100644 index 0000000000..4c7f3db59a Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/How_To_Use_NPM1.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/LTS_Installer.png b/Frontend_Web_Development_React_Angular_Vue/assets/LTS_Installer.png new file mode 100644 index 0000000000..ff65f04a8d Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/LTS_Installer.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/LTS_MacOs.png b/Frontend_Web_Development_React_Angular_Vue/assets/LTS_MacOs.png new file mode 100644 index 0000000000..f4fdb7c98c Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/LTS_MacOs.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/angular.png b/Frontend_Web_Development_React_Angular_Vue/assets/angular.png new file mode 100644 index 0000000000..3475d572e8 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/angular.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/react.png b/Frontend_Web_Development_React_Angular_Vue/assets/react.png new file mode 100644 index 0000000000..da69984d18 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/react.png differ diff --git a/Frontend_Web_Development_React_Angular_Vue/assets/vue.png b/Frontend_Web_Development_React_Angular_Vue/assets/vue.png new file mode 100644 index 0000000000..67e2c82281 Binary files /dev/null and b/Frontend_Web_Development_React_Angular_Vue/assets/vue.png differ diff --git a/Machine_Learning/README.md b/Machine_Learning/README.md new file mode 100644 index 0000000000..73941bdae0 --- /dev/null +++ b/Machine_Learning/README.md @@ -0,0 +1,47 @@ +![](https://gwoc.girlscript.tech/assets/gwoc_logo_forweb.png) + + +

:fleur_de_lis: MACHINE LEARNING :fleur_de_lis:

+ +************************************************************ + +## Roadmap for GWoC '21 +### :yellow_circle: *Week 1 [Statistics for Machine Learning]* : + - **1.1. Variables, Range, Population Distribution, Sample Distribution** + - **1.2. PDFs, CDFs** + - **1.3. Central Limit Theorem** + - **1.4. Variance, Standard Deviation, Expectation** + - **1.5. Probability Distributions (Gaussian, Standard, Poisson)** + - **1.6. Maximum Likelyhood Estimation** + - **1.7. Parzen Windows** + +### :yellow_circle: *Week 2 [Supervised Machine Learning (Classic Algorithms)]* : + - **2.1. What is Learning? Why Machine Learning works?** + - **2.2. Linear Regression** + - **2.3. Logistic Regression** + - **2.4. Sessions on Numpy and Pandas** + - **2.5. Implementing Linear Regression with Logistic Regression** + - **2.6. K-Nearest Neighbour Algorithms** + - **2.7. Decision Trees** + +*N.B.: Upcoming roadmap will be published as the program goes!* + +*************************************************************** +### Supervisors of Machine Learning + + + + + + + + + +

Abhishek S (B1)

Akshay Raina (B2)

Isha Shaw (B3)

Madipally Sai Krishna Sashank (B4)

Gayathri S
+ +### Happy Contributions! + +[![ForTheBadge built-by-developers](http://ForTheBadge.com/images/badges/built-by-developers.svg)](https://GitHub.com/Naereen/) +[![ForTheBadge built-with-love](http://ForTheBadge.com/images/badges/built-with-love.svg)](https://GitHub.com/Naereen/) + +[![ForTheBadge makes-people-smile](http://ForTheBadge.com/images/badges/makes-people-smile.svg)](http://ForTheBadge.com) diff --git a/Machine_Learning/Statistics_for_Machine_Learning/Assets/README.md b/Machine_Learning/Statistics_for_Machine_Learning/Assets/README.md new file mode 100644 index 0000000000..1710a5e796 --- /dev/null +++ b/Machine_Learning/Statistics_for_Machine_Learning/Assets/README.md @@ -0,0 +1 @@ +## This folder contains all the required images, thumbnails, GIFs while contributing in the Week 1 : Statistics for ML folder. diff --git a/Machine_Learning/Statistics_for_Machine_Learning/Assets/design.png b/Machine_Learning/Statistics_for_Machine_Learning/Assets/design.png new file mode 100644 index 0000000000..27411dad6c Binary files /dev/null and b/Machine_Learning/Statistics_for_Machine_Learning/Assets/design.png differ diff --git a/Machine_Learning/Statistics_for_Machine_Learning/Assets/image_2021-09-18_19-40-53.png b/Machine_Learning/Statistics_for_Machine_Learning/Assets/image_2021-09-18_19-40-53.png new file mode 100644 index 0000000000..9315c18890 Binary files /dev/null and b/Machine_Learning/Statistics_for_Machine_Learning/Assets/image_2021-09-18_19-40-53.png differ diff --git a/Machine_Learning/Statistics_for_Machine_Learning/ML_1_2_PDFs_and_CDFs_(D).ipynb b/Machine_Learning/Statistics_for_Machine_Learning/ML_1_2_PDFs_and_CDFs_(D).ipynb new file mode 100644 index 0000000000..c800107b35 --- /dev/null +++ b/Machine_Learning/Statistics_for_Machine_Learning/ML_1_2_PDFs_and_CDFs_(D).ipynb @@ -0,0 +1,483 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "ML_1.2_PDFs_and_CDFs_(D)", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "BcDJHWR79ZKS" + }, + "source": [ + "# PDFs and CDFs in ML" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "W1wBQOI1i32k" + }, + "source": [ + "PDF and CDF are commonly used techniques in the Exploratory data analysis to finding the probabilistic relation between the variables.
\n", + "Before Starting it's important to know some concepts like Random Variables\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "33jEl8sSdzsz" + }, + "source": [ + "### Random Variables:\n", + "There are two types of random variables:\n", + "1. **Continuous random variable**: A variable which has values between a particular range and take infinite number of possible ways is called Continuous random variable.\n", + "2. **Discrete random variable**: Variables which take countable number of distinct values." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8G-vuPLigDKl" + }, + "source": [ + "##Probability Density Function (PDF)\n", + "\n", + "\n", + "\n", + "* The probability density function (PDF) is the probability that a random variable, say X, will take a value exactly equal to x. \n", + "* The probability density function is also referred to as probability mass function when dealing with discrete variables. (PMF)\n", + "\n", + "* **PDF** is applicable for *continues random* variable while **PMF** is applicable for *discrete* random variable .\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Bd7XLJgNh9KG" + }, + "source": [ + "![image.png](data:image/png;base64,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CEQRodTYLseNgpOw3//+9+2FL3xh/0is2+tOPPHE9otf/KL961//2lBkKD1julm////85z+3733ve+1Tn/pUO++889o73/nO9qEPfah97nOfa9dcc03705/+1L7xjW+0iy66qP3oRz/qShQ6obWHYK+iFAKFwAogUArSClRCsVAIFAKFQCFQCKwqApSjKDmjXxjl5XGPe9zGN5DOPvvs9pe//GVDcaFkSWM1iDsqXdL7hhIa559/fv+47GMe85j2iEc8ol/6cPzxx7fHPvax7WUve1l717ve1Z797Ge34447rn30ox/tChVapSCtqtQUX4XA7kagFKTdXX/FfSFQCBQChUAhsCMIRJlBfFR0sjpEufn85z/fL2i4zW1u04455pj29a9/vW+Py+pOFBhpKEShKdw2vO985zvtla98ZXvAAx7Q7n3ve7fnPOc57Y1vfGM799xz25ve9Kb21Kc+tVmZcnX47W9/+x7nwIEDfWsfhSv0dwSAIloIFAJri0ApSGtb9VXwQqAQKAQKgUJgcwSyQiNGFJsoShQT3z96/etf31ePKDFPecpT2h/+8IeN1SJxosCMK09o/POf/+y33730pS/t55bue9/7trPOOqtdeeWV/T/pnEO64oorulLkEog73OEO7YlPfGL7/ve/35Utq1LilSkECoFCYGoESkGaGtGiVwgUAoVAIVAI7AEEKCC2yzn/Y7WIksMKtxrkLNAJJ5zQV3iOOuqodsEFF3SlRtGjUEVJEj9+NH7605+2V7ziFU26e9zjHu0lL3lJ+8lPftLjuKRBHDTk9bSnPa2vHt361rduL3rRi/p3l9ArBWkPCFkVoRBYUQRKQVrRiim2CoFCoBAoBAqBWxKBX//61+2zn/1se9/73tcvSKCQUFooOpSmj3zkI+1Od7pTX0FyXui3v/1tv5zB/4mHf9vrKDyM/26++eZ24YUXtoc97GF9Vcg2OhcwRIFKPPlZaTrttNN6PrbxveUtb2kuhhgVLnmVKQQKgUJgSgRKQZoSzaJVCBQChUAhUAjsEQS++MUvtpNPPrkrQG6q+81vftNXbSg8P/zhD9uznvWs/p8VoA9/+MMbZ4x8PDarO1GUsiJEsfFh2TPOOKNZEbrPfe7TlR6KEBtlR3xb7ChiD3/4w/sKkm12F198cV/NEo+VT5SvPQJ7FaMQKARWAIFSkFagEoqF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)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kPqzG47lhfsz" + }, + "source": [ + "##Cumulative Distribution Function (CDF)\n", + "\n", + "\n", + "* The cumulative distribution function (CDF) is the probability that a random variable, say X, will take a value less than or equal to x.\n", + "* Unlike a discrete random variable, the probability for a continuous random variable cannot be specified directly, instead it is calculated as an integral for a tiny interval around the specific outcome.\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1KDJXZ_jhz_I" + }, + "source": [ + "![image.png](data:image/png;base64,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)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Tlzmme2siwcE" + }, + "source": [ + " Difference between the cumulative distribution function (CDF) and the probability density function (PDF) – Here the focus is on one specific value. Whereas, for the cumulative distribution function, we are interested in the probability taking on a value equal to or less than the specified value" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yFgUQ8J5iD0-" + }, + "source": [ + "####ML code to get PDF and CDF \n", + "####--> Applied on Iris dataset" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "FNhTv7XM34zv" + }, + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Al8f8HrfevcK", + "outputId": "881afea0-111e-4fa5-dca6-7ff753ef6557" + }, + "source": [ + "iris=pd.read_csv('iris_data.csv')\n", + "iris.shape" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(150, 5)" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "id": "4Tw0mbUxevhk", + "outputId": "e6f6d954-2429-4ce2-cfcc-326d585ce743" + }, + "source": [ + "iris.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal_length sepal_width petal_length petal_width species\n", + "0 5.1 3.5 1.4 0.2 Iris-setosa\n", + "1 4.9 3.0 1.4 0.2 Iris-setosa\n", + "2 4.7 3.2 1.3 0.2 Iris-setosa\n", + "3 4.6 3.1 1.5 0.2 Iris-setosa\n", + "4 5.0 3.6 1.4 0.2 Iris-setosa" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1_SVxyUVjryn", + "outputId": "3bb04053-d9a4-4c0b-ba48-b043e017b754" + }, + "source": [ + "iris['species'].value_counts()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Iris-versicolor 50\n", + "Iris-virginica 50\n", + "Iris-setosa 50\n", + "Name: species, dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "J_34aaZ8l-J8" + }, + "source": [ + "import numpy as np\n", + "iris_setosa=iris.loc[iris[\"species\"]==\"Iris-setosa\"];\n", + "#iris_setosa\n", + "iris_versicolor=iris.loc[iris[\"species\"]==\"Iris-versicolor\"];\n", + "iris_virginica=iris.loc[iris[\"species\"]==\"Iris-virginica\"];" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_lLOZzs1nlFk" + }, + "source": [ + "###PDF and CDF for Iris-setosa" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 346 + }, + "id": "D671-2ynevpR", + "outputId": "b49c3ed1-20e8-4a8d-a667-9d6466d96c20" + }, + "source": [ + "counts, bin_edges = np.histogram(iris_setosa['petal_length'], bins=10, density = True)\n", + "\n", + "print(\"counts:\", counts) \n", + "pdf = counts/(sum(counts)) #calculating probability\n", + "print('PDF: ',pdf);\n", + "\n", + "#compute CDF\n", + "cdf = np.cumsum(pdf) # using np.cumsum (cumulative sum) to calculate the CDF\n", + "plt.plot(bin_edges[1:],pdf)\n", + "plt.plot(bin_edges[1:], cdf)\n", + "plt.gca().legend(('Pdf','Cdf'))\n", + "plt.title('PDF and CDF For Iris Setosa')\n", + "plt.xlabel(\"Petal length\")\n", + "plt.ylabel(\"Percentage\")\n", + "plt.show();" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "counts: [0.22222222 0.22222222 0.44444444 1.55555556 2.66666667 3.11111111\n", + " 1.55555556 0.88888889 0. 0.44444444]\n", + "PDF: [0.02 0.02 0.04 0.14 0.24 0.28 0.14 0.08 0. 0.04]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ScyLKs-Eevuo" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "sBzI6d73evz1" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "LQ5kkrVgev20" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "LzFHbbTxev5l" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "VDq_sPmBev8I" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SVceudzVev_B" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "BKucwGLCewBm" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "39BjoZUFewET" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "i8RpQdR5ewHC" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "j627euVjewJJ" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Machine_Learning/Statistics_for_Machine_Learning/ML_1_6_Maximum_Likelihood_Estimation_(D).md b/Machine_Learning/Statistics_for_Machine_Learning/ML_1_6_Maximum_Likelihood_Estimation_(D).md new file mode 100644 index 0000000000..79739d1bb1 --- /dev/null +++ b/Machine_Learning/Statistics_for_Machine_Learning/ML_1_6_Maximum_Likelihood_Estimation_(D).md @@ -0,0 +1,55 @@ +# Maximum Likelihood Estimation (D) + +## Definition + +The Maximum Likelihood Estimation is a method that measures any parameter of a model based on the likeliness of the same. It is the statistical method of estimating the parameters of the probability distribution by maximizing the likelihood function. The point in which the parameter value that maximizes the likelihood function is called the maximum likelihood estimate. + +## Basic Idea + +The concept was first porposed by Ronald Fisher in the 1920s. He said that the probability distribution is the one that makes the parameter observed more likely. + +## Goal + +Maximum Likelihood Estimation or MLE considers the porblem as an Optimization problem or a Search Problem, where we seek such parameters which would result in the best fit for the joint probability of the data sample. + +## Example + +### Below given is a normal distribution + + + +### Run the below comands to plot a similar distribution in python + + +```python +#importing all required packages like matplotlib, numpy and math +import matplotlib.pyplot as plt +import numpy as np +import scipy.stats as stats +import math + +mu = 0 +variance = 1 +sigma = math.sqrt(variance)#standard deviation +x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100) +plt.plot(x, stats.norm.pdf(x, mu, sigma))#plotting a normal distribution +plt.show() +``` + +Lets start with the example: + +Experiment: Taking 30 marbles of varying sizes, weights and structure. We are going to take into consideration a specific parameter out of the 3 parameters: weight. We are going to plot this parameter on a straight line and compare it with a normal distribution to find out the likeliness of that paramater. + + + + + +The black circles on the straight line represents the marbles. The dotted straight line represents the average of the weights of the marbles. As we can see that most of the marbles lie very near to the mean of the weights, we can say that this parameter is the most likely factor for this probability distribution. + + + +From the above image we can see that if we shift the distribution from left to right, the graph on the top of the same picture denoting the likeliness of factor weight with the distribution shifting from left to right. The topmost position the graph represents the most likely parameter. + +## A question may arise that, if likelihood is so related to probability then what is the difference? + +The term Likelihood and Probability means the same. But, in the language of Statistics, Likelihood refers to the situation or example or experiment provided above, where we are trying to find the optimal value for the mean for the distribution, provided a lot of parameters and one to be optimized. diff --git a/Machine_Learning/Statistics_for_Machine_Learning/README.md b/Machine_Learning/Statistics_for_Machine_Learning/README.md new file mode 100644 index 0000000000..1804ba5220 --- /dev/null +++ b/Machine_Learning/Statistics_for_Machine_Learning/README.md @@ -0,0 +1,9 @@ + +## Week 1 : Statistics for Machine Learning + - **1.1. Variables, Range, Population Distribution, Sample Distribution** + - **1.2. PDFs, CDFs** + - **1.3. Central Limit Theorem** + - **1.4. Variance, Standard Deviation, Expectation** + - **1.5. Probability Distributions (Gaussian, Standard, Poisson)** + - [**1.6. Maximum Likelyhood Estimation**](https://github.com/amitrakshar01/winter-of-contributing/blob/Machine_Learning/Machine_Learning/Statistics_for_Machine_Learning/1.6.%20Maximum%20Likelihood%20Estimation.ipynb) + - **1.7. Parzen Windows** diff --git a/Machine_Learning/Supervised_Machine_Learning/README.md b/Machine_Learning/Supervised_Machine_Learning/README.md new file mode 100644 index 0000000000..5334a2cdc2 --- /dev/null +++ b/Machine_Learning/Supervised_Machine_Learning/README.md @@ -0,0 +1,2 @@ + +## Supervised Machine Learning diff --git a/Machine_Learning/Unsupervised_Machine_Learning/README.md b/Machine_Learning/Unsupervised_Machine_Learning/README.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/Machine_Learning/Unsupervised_Machine_Learning/README.md @@ -0,0 +1 @@ + diff --git a/Open_Source/README.md b/Open_Source/README.md new file mode 100644 index 0000000000..63e7e8d072 --- /dev/null +++ b/Open_Source/README.md @@ -0,0 +1 @@ +## Open Source ☀ \ No newline at end of file diff --git a/Open_Source/Section-1/1.1_Rise_Of_Open_Source_Programming_Languages.md b/Open_Source/Section-1/1.1_Rise_Of_Open_Source_Programming_Languages.md new file mode 100644 index 0000000000..650157c952 --- /dev/null +++ b/Open_Source/Section-1/1.1_Rise_Of_Open_Source_Programming_Languages.md @@ -0,0 +1,32 @@ +# Rise Of Open Source Programming Languages + +Open-source programming languages have been one of the most underrated elements that have helped propel technology. Most of the time, the credit is given to devices and apps, but it is programming languages that allow developers to build great source code and the amazing digital products we as users love. + +
+ +## What Are Open-Source Programming Languages + +Open-source programming languages are not owned by anyone. They are easily available, they are usually maintained by a community, and on many occasions, they are also freely distributed under different open-source licenses. + +**Some of the world’s most popular programming languages are open source.** The reason for this is that, when computers started gaining popularity in the second half of the past century, many developers saw the benefits of developing open-source projects around programming languages. This has remained up to this day. Some of the early languages, like C, started as open-source projects, and they are still used in many software projects, including apps. + +- ### _Open-source Communities_ + + Most open-source projects are maintained by a community of developers, and open-source programming languages are no exception. It helps to solve technical issues in a fast and reliable way. When a developer encounters a problem, We can easily look for solutions on the Internet as someone in the community might had the same issue and solved it. + +- ### _Open-source Libraries_ + Aside from creating a vast open-source project database of knowledge that is easily accessible, some developers also build code libraries that can be **reused** by other developers. + +Take, for example, the case of Ruby on Rails, an open-source web development framework that uses the Ruby programming language. It is one of the most popular programming languages to build web applications, and because of its many libraries and resources for developers . + +
+ +## Top Open-Source Programming Languages + +There are many different types of open-source programming languages based on the type of project being built. +These are some of the best open-source programming languages: +
+ diff --git a/Open_Source/Section-1/1.4_Why_Open_Source.md b/Open_Source/Section-1/1.4_Why_Open_Source.md new file mode 100644 index 0000000000..fbffdf4d63 --- /dev/null +++ b/Open_Source/Section-1/1.4_Why_Open_Source.md @@ -0,0 +1,27 @@ +# Why you should open source your projects ? + +4 Best reasons developers should consider open-source projects: + +1. Developers can improve their coding skills and absolutely can be better developer. +2. It can greatly boost your portfolio. +3. By working on Open Source projects even a beginner can get a real-world experience. +4. Open source projects can be easily found and are flexible, so that developer can work on it whenever they have time. + +# Benefits if contributing to an open source software: + +Contributing to an open source software can benefit in many ways out of which let me mention some below, + +1. Beginners can learn to write a clean code. +2. One can easily get recognition in their field. +3. Even it's fun and gives a developer personal satisfaction. +4. One can get much deeper knowledge of that software and even of their field. +5. You can work with smartest minds from wherever you are. + +# Good practices while contributing to an open-source software + +1. Read the project’s contributing docs carefully. +2. Ask all the questions to understand work you want to do. +3. Code must be clean. +4. Do checks on your work and then check your work again. +5. Write descriptive and succinct commit messages. +6. Be calm and open to feedbacks. diff --git a/Open_Source/Section-1/1._History_Of_Free_And_Open_Source.ipynb b/Open_Source/Section-1/1._History_Of_Free_And_Open_Source.ipynb new file mode 100644 index 0000000000..8bcccf803b --- /dev/null +++ b/Open_Source/Section-1/1._History_Of_Free_And_Open_Source.ipynb @@ -0,0 +1,128 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "\n", + "\n", + "# History of free and open-source software (1980 & 1990’s) \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "In the 1980s software used to be shared via BBS systems and it was common for source code to be distributed freely, it encouraged hacker culture which is the basis of free and open source philosophy.But as researchers were starting software companies, selling licenses for software became the key to their business models. NDAs and proprietary software licenses became the norms, Richard Stallman saw this culture threatened, and advocated that software should not have owners.\n", + "\n", + "\n", + "Then he decided to create a complete operating system that would not deprive users of the freedom to understand how it worked, and would allow them to make changes if they wished. so he launched the GNU Project in 1983,which spurred the free software movement, and is the basis for the open source movement. It is thanks to this groundwork that \"open source\" and its accompanying principles were established in 1998.The goal of the GNU project was to clone the Unix operating system to create a system that would give complete freedom to users.\n", + "

 

\n", + "

\n", + " \n", + "

\n", + "\n", + "

 

\n", + "\n", + "In January 1984 he created the first compiler system the GCC. Then in Early in 1985, he published \"The GNU Manifesto,\" which was a call to arms for programmers to join the effort, and launched the Free Software Foundation in order to accept donations to support the work. This document is the founding charter of the free software movement.\n", + "\n", + "

 

\n", + "\n", + "\n", + "# Table of contents\n", + "\n", + "### 1. [The Release of the GNU License](#g) \n", + "### 2. [World's First OS](#os)\n", + "### 3. [Cathedral Bazaar](#cb)\n", + "### 4. [“Open source” is born](#osib)\n", + "### 5. [Commercialisation of open source](#c)\n", + "\n", + "\n", + "\n", + "

 

\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "## The Release of the GNU License \n", + "Until 1989, software written and released by the Free Software Foundation and RMS did not have a single license however, after a company called Unipress forced Stallman to stop distributing copies of an Emacs implementation they had acquired from James Gosling,he felt that a license to secure user freedoms was important.\n", + "Then first version of the GNU General Public License was released in 1989, which encapsulated the values of copyleft(not copyright). You may use, copy, distribute, and modify the software covered by the license, but if you make changes, you must share the modified source code alongside the modified binaries. This simple requirement is what enabled the decentralized, collaborative development model of the free software movement to flourish.\n", + "

 

\n", + "

\n", + " \n", + "

\n", + "

 

\n", + "\n", + "
\n", + "\n", + "## World's First OS \n", + "\n", + "In the early 1990s the free software community received the first complete free operating system with Linus Torvald’s kernel combined to GNU operating system. Debian, founded by Ian Murdock in 1993, committed to the GNU and FSF principles of free software. Linux adoption by businesses and governments began in the late 1990s. Website-based companies emerged and made extensive use of free web servers, especially the Apache HTTP Server. The LAMP (Linux, Apache, MySQL, PHP) stack gained popularity over expensive proprietary solutions.\n", + "

 

\n", + "

\n", + " \n", + "

\n", + "

 

\n", + "\n", + "
\n", + "\n", + "## Cathedral Bazaar \n", + "\n", + "In 1997, Eric S. Raymond published the seminal essay, \"The Cathedral and the Bazaar,\" comparing and contrasting the development methodologies and social structure of GCC and the Linux kernel and talking about his own experiences with a \"bazaar\" development model with the Fetchmail project. Many of the principles that Raymond describes in this essay will later become central to agile development and the DevOps movement—\"release early, release often,\" refactoring of code, and treating users as co-developers are all fundamental to modern software development.\n", + "\n", + "

 

\n", + "\n", + "

\n", + " \n", + "

\n", + "

 

\n", + "This essay has been credited with bringing free software to a broader audience, and with convincing executives at software companies at the time that releasing their software under a free software license was the right thing to do. Raymond went on to be instrumental in the coining of the term \"open source\" and the creation of the Open Source Institute.\n", + "\n", + "\"The Cathedral and the Bazaar\" was credited as a key document in the 1998 release of the source code for the Netscape web browser Mozilla. At the time, this was the first major release of an existing, widely used piece of desktop software as free software, which brought it further into the public eye.\n", + "\n", + "

 

\n", + "\n", + "
\n", + "\n", + "## “Open source” is born \n", + "\n", + "Up until this point, free software was not widely adopted commercially. Plagued by politics and associated with the GPL which many considered far too liberal, the movement was unpopular with corporations, who often viewed free software as a threat to their own products.\n", + "\n", + " \n", + "Ahead of the release of Netscape Communicator’s source code, a strategy session was held in Palo Alto with some of the major influencers of the free software movement, including Linus Torvalds, Tim O’Reilly, James Zawinski, and others. To capitalize on the attention and momentum from the Navigator news, they rebranded “free software” as “open source,” to distance from the political associations of the free software movement, and bring the principles of free software to the commercial software industry. \n", + "

 

\n", + "

\n", + " \n", + "

\n", + "

 

\n", + "\n", + "Richard Stallman rejected the term, preferring “free software” and its associated message of social values and users’ freedom, resulting in division among the free and open source community over which terminology they identify with. Free and open source software (FOSS) encompasses both terms.\n", + "\n", + "\n", + "\n", + "\n", + "In February 1998 , to evangelize open source Raymond founded the Open Source Initiative, citing “higher quality, better reliability, greater flexibility, lower cost, and an end to predatory vendor lock-in” as some of the primary reasons to advocate for open source. \n", + "

 

\n", + "\n", + "\n", + "
\n", + "\n", + "## Commercialisation of open source \n", + "Commercial companies did not welcome open source at first. In the late 1990s, a series of high-profile events led to a huge increase in the professionalization of free and open source software. Among these, the highest-profile events were the IPOs of VA Linux and Red Hat in 1999. Both companies had massive gains in share price on their opening days as publicly traded companies, proving that open source was now going commercial and mainstream.\n", + "

 

\n", + "\n", + "

\n", + " \n", + "

\n" + ], + "metadata": {} + } + ], + "metadata": { + "orig_nbformat": 4, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/Open_Source/Section-2/2.1_Practice_Git_and_Github_fundamentals.md b/Open_Source/Section-2/2.1_Practice_Git_and_Github_fundamentals.md new file mode 100644 index 0000000000..8259244f79 --- /dev/null +++ b/Open_Source/Section-2/2.1_Practice_Git_and_Github_fundamentals.md @@ -0,0 +1,376 @@ +# Practice Git and Github fundamentals + +Imagine you are working on a project and you add some code to it that breaks the project and you want to rollback to that point in that before the change was made. +Git facilitates that by acting as a Version control System. + +## Issues faced by early developers before git + +* Developers had to submit their codes to the `central server` without having copies of their own +* Any changes made to the source code were unknown to the other developers +* There was no communication between any of the developers + +## How git changed the scenario + +* Every developer has an entire copy of the code on their `local systems` +* Any changes made to the source code can be tracked by others +* There is regular communication between the developers + +## What is git? + +Git is a `version control` system used for tracking changes in computer files. It is generally used for source code management in software development: + +* Git is used to `track changes` in the source code +* The distributed version control tool is used for source code management +* It allows multiple developers to work together +* It supports non-linear development through its thousands of `parallel branches` + +## What is Github + +`Github` is a service based upon `git` where people can share their code, contribute to Open Source, etc. + +Imagine you are given a room to do whatever you want to with your accessories , customize our furniture as per you suitability ( each day ) any time. +Permitted to share the place with some one, bring people to come at your place and party together and you don’t have to pay or rent all this with any bills. +How cool would that be
!! + +Github is a similar space. You have got a free space to put in you code whatever may be your file type - python, java, c, html, js, nodejs
etc. +You may customize your code any day, any time, any where (having network connection). +You may allow people / fellow coders to contribute, commit changes to your work. +Download your project’s code and use it for their work. Follow you and your work and lot more. + +## Git vs Github + +Git is used to store the source code for a project and track the complete history of all changes to that code. It allows developers to collaborate on a project more effectively by providing tools for managing possibly conflicting changes from multiple developers. GitHub facilitates social coding by providing a Web interface to the Git code repository and management tools for collaboration. GitHub allows developers to change, adapt and improve software from its public & private repositories. + +## Getting started with git + +### Step 0: Install git and create a GitHub account. +### Step 1: Create a local git repository: + +When creating a new project on your local machine using git, you'll first create a new repository. To begin, open up a terminal and move to where you want to place the project on your local machine using the cd (change directory) command. For example, if you have a 'projects' folder on your desktop, you'd do something like: + +```shell +cd Desktop +mkdir myproject +cd myproject +``` + +To initialize a git repository in the root of the folder, run the git init command: + +```shell +git init +``` +![step 1](https://user-images.githubusercontent.com/85233682/133319189-952e5922-4606-46c0-8008-cc712a704855.png) + +### Step 2: Add a new file to the repo + +Go ahead and add a new file to the project, using any text editor you like or running a touch command. `ECHO>> newfile.txt` just creates and saves a blank file named newfile.txt. + +Once you've added or modified files in a folder containing a git repo, git will notice that the file exists inside the repo. But, git won't track the file unless you explicitly tell it to. Git only saves/manages changes to files that it tracks, so we’ll need to send a command to confirm that yes, we want git to track our new file. + +```shell +ECHO>> newfile.txt +dir +``` +After creating the new file, you can use the git status command to see which files git knows exist. + +```shell +git status +``` +What this basically says is, "Hey, we noticed you created a new file called newfile.txt, but unless you use the 'git add' command we aren't going to do anything with it." + +![image](https://user-images.githubusercontent.com/85233682/133320965-c3547c2e-8312-48f2-a387-80f2925c8d98.png) + + +### Step 3: Add a file to the staging environment + +Add a file to the staging environment using the `git add` command. + +```shell +git add newfile.txt +``` + +If you rerun the git status command, you'll see that git has added the file to the staging environment (notice the "Changes to be committed" line). + +```shell +git status +``` +![image](https://user-images.githubusercontent.com/85233682/133321461-9eee8c07-d5be-4cc7-a7df-e1d04084b229.png) + +### Step 4: Create a commit + +It's time to create your first commit! + +Run the command `git commit -m "Your message about the commit"` + +```shell +git commit -m "This is my first commit" + ``` +The message at the end of the commit should be something related to what the commit contains - maybe it's a new feature, maybe it's a bug fix, maybe it's just fixing a typo + +![image](https://user-images.githubusercontent.com/85233682/133321900-48192a50-62fa-41d5-8f47-5e8aed3c2dce.png) + + +### Step 5: Create a new branch + +Let's say you are on the primary branch and want to create a new branch to develop your web page. Here's what you'll do: Run `git checkout -b `. This command will automatically create a new branch and then 'check you out' on it, meaning git will move you to that branch, off of the primary branch. + +```shell +git checkout -b mynewbranch +``` + + After running the above command, you can use the `git branch` command to confirm that your branch was created: + + ```shell +git branch +``` +![image](https://user-images.githubusercontent.com/85233682/133322576-0f3cb49a-77b4-4852-bf2d-dbd35bf53bbb.png) + +### Step 6: Create a new repository on GitHub + +To create a new repo on GitHub, log in and go to the GitHub home page. You can find the “New repository” option under the “+” sign next to your profile picture, in the top right corner of the navbar: + +![image](https://user-images.githubusercontent.com/85233682/133322818-08b51544-2912-4782-ba5c-91e9afc9f05a.png) + +After clicking the button, GitHub will ask you to name your repo and provide a brief description: + +![image](https://user-images.githubusercontent.com/85233682/133323264-a8e26a47-6897-4f0e-93c8-1e92e239c93b.png) + +When you're done filling out the information, press the 'Create repository' button to make your new repo. + +GitHub will ask if you want to create a new repo from scratch or if you want to add a repo you have created locally. In this case, since we've already created a new repo locally, we want to push that onto GitHub so follow the '....or push an existing repository from the command line' section: + +```shell +git remote add origin https://github.com/developer-metalhead/newrepo.git +git push -u origin master + ``` + +![step6](https://user-images.githubusercontent.com/85233682/133324562-1afc286f-8687-45b0-94a3-903d53d22048.jpg) + + +### Step 7: Push a branch to GitHub + +Now we'll push the commit in your branch to your new GitHub repo. This allows other people to see the changes you've made. If they're approved by the repository's owner, the changes can then be merged into the primary branch. + +To push changes onto a new branch on GitHub, you'll want to run `git push origin yourbranchname`. GitHub will automatically create the branch for you on the remote repository: + +```shell +git push origin mynewbranch + ``` + +![image](https://user-images.githubusercontent.com/85233682/133326310-437163af-c849-48e9-90ad-361b212f97f4.png) + +You might be wondering what that "origin" word means in the command above. What happens is that when you clone a remote repository to your local machine, git creates an alias for you. In nearly all cases this alias is called "origin." It's essentially shorthand for the remote repository's URL. So, to push your changes to the remote repository, you could've used either the command: `git push git@github.com:git/git.git yourbranchname` or `git push origin yourbranchname` + +![step 7](https://user-images.githubusercontent.com/85233682/133326694-b0bf2698-2199-4781-b143-2d6ff425a2ed.png) + +Now click the green button in the screenshot above. We're going to make a **pull request!** + +### Step 8: Create a pull request (PR) + +A pull request (or PR) is a way to alert a repo's owners that you want to make some changes to their code. It allows them to review the code and make sure it looks good before putting your changes on the primary branch. + +![image](https://user-images.githubusercontent.com/85233682/133327010-2c19d15c-6b16-404e-85cb-6950b5685b4c.png) + +This is what it looks like once you've submitted the PR request: +![image](https://user-images.githubusercontent.com/85233682/133327099-5cf23214-1c1d-4361-a239-9a36fad0c59d.png) + + +### Step 9: Merge a PR + +![image](https://user-images.githubusercontent.com/85233682/133327310-b4a0e5b0-fe65-4032-9c11-1c9f24540eaa.png) + +### Step 10: Get changes on GitHub back to your computer + + +Right now, the repo on GitHub looks a little different than what you have on your local machine. For example, the commit you made in your branch and merged into the primary branch doesn't exist in the primary branch on your local machine. + +In order to get the most recent changes that you or others have merged on GitHub, use the git pull origin master command (when working on the primary branch). In most cases, this can be shortened to`git pull` + +```shell +git pull origin master + ``` + +![image](https://user-images.githubusercontent.com/85233682/133327836-077404e9-44d0-4d6d-83e7-887f33737f2a.png) + +his shows you all the files that have changed and how they've changed. + +Now we can use the `git log` command again to see all new commits. + +```shell + +git log +``` + +![image](https://user-images.githubusercontent.com/85233682/133328185-97bd8bd0-1049-476b-b4cb-7043267eff1d.png) + +### Step 11: Undo a commit + +To rollback to a previous commit get the commit id with the command `git log` and then use the `git reset` command. + +*Rolling back to the first commit* + +```shell +git reset 393612e2e8fc8dbfd2617ee5c78c3102c80a41c5 +git log + +``` + +![image](https://user-images.githubusercontent.com/85233682/133328721-5fe13b1d-7c10-4e3b-9176-be3d0a4c49fc.png) + +## Git contribution workflow + +This section describes the git workflow that should be used when contributing to open source projects on GitHub. It assumes a very basic understanding of git (commits, branches, etc.) using the command line. + +For this document, we will suppose that you want to contribute a patch to +[Four-musketeers/Environment-Friend](https://github.com/Four-Muskeeters/Environment-Friend) + +### Cloning and forking the repository + +The steps in this section only need to be performed once per repository + +1. **Clone the repository.** Click the green `Code` button and copy the url and type git clone clone-url at the terminal + +```git clone https://github.com/Four-Muskeeters/Environment-Friend``` + +![image](https://user-images.githubusercontent.com/85233682/133375404-a6e3e6eb-58ff-48c8-8752-ce8777b35771.png) + +2. **Fork the repo on Github to your personal account** . Click the `fork` button. + +![fork](https://user-images.githubusercontent.com/85233682/133375761-23ef0ec7-43e5-4801-9d53-24122404756a.png) + + +3. **Add your fork as a remote.** This remote will be named after your github + username. Go to the fork of your repository, in this case, + https://github.com/your-username/Environment (replace *`your-username`* with + your GitHub username), and copy the clone url as in step 1. `cd` to your + clone from step 1 and run + + + git remote add your-github-username fork-url + + + + + (replace *`your-github-username`* with your GitHub username and + *`fork-url`* with the url that was copied to your clipboard). You will be + able to tell it is your fork url because it will have your GitHub username + in it.) + + ```shell + git clone https://github.com/Four-Muskeeters/Environment-Friend + cd Environment-Friend + git remote add developer-metalhead https://github.com/developer-metalhead/Environment-Friend-1 + ``` + + ![image](https://user-images.githubusercontent.com/85233682/133377068-77ee1713-d80f-46d5-a5bb-fbd6c8c682b4.png) + +## Making changes + + +1. **Update master.** Before you make any changes, first checkout master + + ``` + git checkout main + ``` + + and pull in the latest changes + + ``` + git pull + ``` + + This will make it so that your changes are against the very latest master, + which will reduce the likelihood of merge conflicts due to your changes + conflicting with changes made by someone else. + +2. **Create a branch.** Once you have done this, create a new branch. + + To create the branch, run + + + git checkout -b branch-name + + + (replace *`branch-name`* with the branch name you chose). This will create a + new branch and check it out. You can verify this with `git status`. + + ```git checkout -b fixit``` + +3. **Make your changes and commit them.** Once you have created your branch, + make your changes and commit them. + +4. **Push up your changes.** Push your changes to your fork. Do this by + running + + + git push your-github-username branch-name + + + (replace *`your-github-username`* with your GitHub username and + *`branch-name`* with the name of the branch) + + ```shell + git push developer-metalhead fixit + + ![image](https://user-images.githubusercontent.com/85233682/133378933-39034565-6168-40e6-9041-55bb08c55d6d.png) + +5. **Make a pull request.** If you then go to your fork on GitHub, you should + see a button to create a pull request from your branch. It will look + something like this. Click compare & pull request button + + ![image](https://user-images.githubusercontent.com/85233682/133379244-21207e4e-28a0-40d6-a843-05ce5f800d73.png) + + Enter a descriptive title in the title field ⑱. + This is very important, as it is what will show up in the pull request + listing and in email notifications to the people in the repo. Pull requests + with undescriptive titles are more likely to be passed by. If the pull + request fixes an issue, I recommend putting the issue number in the pull + request description ④, not the title + + ![image](https://user-images.githubusercontent.com/85233682/133379414-68fac6b6-64cb-4785-bb37-7eea2dfe39e7.png) + +### Important points + +1. You only need to clone and fork once per repository. + +2. Always clone from the main repository and add your fork as a remote. + +3. Never commit to master. Create a branch and commit to it. + +4. Use `git status` often to check what branch you are on and see if you have + any uncommitted changes. + +5. Be descriptive in your branch names, commit messages, and pull request + title and descriptions. + +6. Once you have a pull request for a branch, you can push additional changes + to the same branch and they will be added to the pull request + automatically. You should never create a new pull request for the same + branch. + +7. Comment on the pull request when you want people to know that you have + pushed new changes. Although GitHub does notify people of commit pushes, + people are more likely notice your changes if you leave a comment. + +## Github actions + +Github action is a platform to automate developer workflows. + +When something happens **IN or TO your repository** --> **automatic ACTIONS** are executed in response + +|**Listen to event**| **Trigger Workflow** | +| :------------- | :----------: | +| Issue Created | Sort/Label/Assign | +| Contributor joined | Direct them to a good first issue | + +Other events: PR Created, PR merged + +Some template Workflows: + +![image](https://user-images.githubusercontent.com/85233682/133416528-c5f50104-24ff-4849-8c71-44650bbf0444.png) + +![image](https://user-images.githubusercontent.com/85233682/133416716-735156ea-c7e4-4bfe-b110-9bc782428f42.png) + +![image](https://user-images.githubusercontent.com/85233682/133416765-5e33f9e0-d24f-4e29-8360-b5e17ab06dae.png) + + diff --git a/Open_Source/Section-2/2.3_Start_Contributing_Some_Projects.md b/Open_Source/Section-2/2.3_Start_Contributing_Some_Projects.md new file mode 100644 index 0000000000..b36888ca33 --- /dev/null +++ b/Open_Source/Section-2/2.3_Start_Contributing_Some_Projects.md @@ -0,0 +1,53 @@ + +# Start contributing some projects + +As a Beginner, When you practice tech stacks you like with your favourite programming language and look for starting your journey in Open Source World, +Then the most important step is the first step i.e How to start your first Contribution!! Well for contribution you don't have to wait to be a master in that domain, Even Beginner can contribute which is why every project has beginner friendly issues. + +## How to Begin with first project + +### Start with beginner friendly projects + +For contribution you can go for any big project, But Understanding large codebases at beginner level may become a problem for you because it is difficult to find where you domain code lies and also your code depends on various things which feels messed up and you end up leaving that project and look at next, this way you may end up saying i can't find a project. + + +So It is better to start slow, you can begin with beginner friendly projects, There are some repositories listed below which are best suited for someone looking for starting journey: +- https://github.com/MunGell/awesome-for-beginners +- https://opensourcefriday.com/ +- https://up-for-grabs.net/#/ +- https://opensourcefriday.com/ +- https://www.codetriage.com/ + +### Open Source your project + +If you have made some projects in your tech stack Open-sourcing them may be a great way to get started. Just put your project on github and look for contribution from the community, This way will not just make your project better but will also build your network with the developers around the world. There are many popular libraries and framework which were once open-sourced by an individual. + +### Participate in open-source programs + +If you are not able to find a project to begin with or looking to explore communities then participating in open-source programs is a great option to go with. These programs really help someone to build strong profile in open source and specially made for beginners, you will meet experienced people who are there to help you. There are many open source programs you can participate in: + +![Screenshot from 2021-09-17 11-25-34 (2)](https://user-images.githubusercontent.com/54666019/133761912-280dbcbe-b5d4-49ad-8e95-8e5dbb4bcf38.png) + +- [Outreachy](https://www.outreachy.org) +- [Google Summer of Code](https://summerofcode.withgoogle.com/) +- [Girlscript Winter of Contributing](https://gwoc.girlscript.tech/) +- [Rails Girl Summer of Code](https://railsgirlssummerofcode.org/) +- [Hacktoberfest](https://hacktoberfest.digitalocean.com/) +- [Redox Summer Of Code](https://www.redox-os.org/rsoc/) +- You can find more programs and contest [here](https://github.com/tapaswenipathak/Open-Source-Programs). + +## What to Contribute to open source projects + +Contribution in a project does not mean you can only contribute code-base. There are many other ways you can contribute too, Below are some ways: + +- You can write documentation of a project to elaborate its functions. +- You can add example in some code to show the working of code. +- You can write translations for the project. +- You can add answers to someone's doubt regarding project. + +## prerequisite for a contribution + +- **Code of Conduct**: It is a document which defines the culture of a community and sets the standard and expectations of contributer to follow when it comes to their behaviour. Adopting a Code of Conduct creates positive environment in the community. +- **README**: It is a document made for contributers which helps n getting started with the project. it generally contains the description of the project and its working to help contributer understanding the project in an effective way. +- **Project guidelines**: There are some guidelines which needs to be followed by contributers, It basically guide the contributers on what type of contributions can be done to improve the project. + diff --git a/Open_Source/Section-2/2._GettingStarted_With_Open_Source.ipynb b/Open_Source/Section-2/2._GettingStarted_With_Open_Source.ipynb new file mode 100644 index 0000000000..8c2cf9f818 --- /dev/null +++ b/Open_Source/Section-2/2._GettingStarted_With_Open_Source.ipynb @@ -0,0 +1,115 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Getting Started With Open Source\r\n", + "\r\n", + "Open source is a software that is open for all which mean there is no genuine owner of it.Open source is source code that is made freely available for possible modification and redistribution.\r\n", + "![image](https://miro.medium.com/max/1200/1*1O65lv5fjLnBdD04cS18MQ.jpeg)\r\n", + "Some popular open source software are Mozilla Firefox,GIMP, VLC Media Player, Linux, Python, etc.open source dosent really mean to contributing to big repositories you can start by contributing to small repositories.\r\n", + "\r\n", + "## Why should I contribute to open-source?\r\n", + "Open source is the best way to test your understanding in the respective domain By contributing to an open source project, you receive immediate feedback on your development and programming skills. You may get suggestions about the choice of a function name, the way you used conditional logic, or how using a goroutine you didn't know about speeds up the execution of your program. This is all invaluable feedback to receive when you're learning something new.\r\n", + "\r\n", + "In addition to building your skills and increasing your confidence, all of your open source contributions are public and demonstrate the skills you have mastered and the projects you've tackled.hence creating a strong portfolio\r\n", + "\r\n", + "## How do I get started?\r\n", + "There are Prerequisites one should know before starting to contribute\r\n", + "\r\n", + "\r\n", + "### Build a good Tech background\r\n", + "Its really important to have a good Tech background before contributing to open source or else it might do more harm than good . you need to know about architectural patterns, design patterns on which projects are made and\r\n", + "well-known technologies before you begin anything.\r\n", + "\r\n", + "![image of code](https://www.codingdojo.com/blog/wp-content/uploads/The-7-Most-In-Demand-Programming-Languages-of-2019-Inner-2.png)\r\n", + "#### Learn a Programming Languages\r\n", + "Just like people communicate with each other through languages, you also need to tell your computer what to do using a language that these computers can understand. so choose any programming language as per your choice and goal and have in-depth knowledge in it. \r\n", + "\r\n", + "Ruby, Java, Python, C++, C#, Javascript are some languages you can go with. It’s not important to learn 3-4 languages simultaneously as a beginner. Start with one language and get well versed in it.\r\n", + "\r\n", + "\r\n", + "![TECH STACK](https://www.angularminds.com/site_data/static/images/web-development-stack/web-development-stack.png)\r\n", + "\r\n", + "after becoming proficient with a language you can start learning tech stacks in that language to get an overall idea about it\r\n", + "\r\n", + "#### TECH STACKS\r\n", + "A tech stack is the combination of technologies a company uses to build and run an application or project. Sometimes called a “solutions stack,” a tech stack typically consists of programming languages, frameworks, a database, front-end tools, back-end tools, and applications connected via APIs.\r\n", + "\r\n", + " Some popular tech stacks are mentioned below\r\n", + "\r\n", + "![MEAN](https://www.newgenapps.com/wp-content/uploads/2020/04/mean-stack.jpeg)\r\n", + "#### MEAN\r\n", + "MEAN Stack is a collection of user-friendly full-stack JavaScript frameworks including MongoDB, Express.js, Angular.js, and Node.js that developers use to build dynamic applications.\r\n", + "It is open-source.\r\n", + "It is fast-paced and organised.\r\n", + "The sole programming language that the stack uses in JavaScript. This means every tier of the application operates on a single language.\r\n", + "It is a versatile stack that can be used to build both mobile applications as well as web apps.\r\n", + "\r\n", + "\r\n", + "\r\n", + "![MERN](https://res.cloudinary.com/practicaldev/image/fetch/s--0FRJGdyZ--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/epv55hgtsfi8csprpj9u.jpg)\r\n", + "#### MERN\r\n", + " MERN Stack is a Javascript Stack that is used for easier and faster deployment of full-stack web applications. MERN Stack comprises of 4 technologies namely: MongoDB, Express, React and Node.js. It is designed to make the development process smoother and easier.\r\n", + "\r\n", + "Each of these 4 powerful technologies provides an end-to-end framework for the developers to work in and each of these technologies play a big part in the development of web applications.\r\n", + "\r\n", + "\r\n", + "![LAMP](https://miro.medium.com/max/693/1*FJTQ53A9dCdcmM9g78aaOg.jpeg)\r\n", + "#### LAMP\r\n", + "The widely popular LAMP stack is a set of open source software used for web application development.\r\n", + "\r\n", + "For a web application to work smoothly, it has to include an operating system, a web server, a database, and a programming language. The name LAMP is an acronym of the following programs:\r\n", + "\r\n", + "Linux Operating System\r\n", + "Apache HTTP Server\r\n", + "MySQL database management system\r\n", + "PHP programming language\r\n", + "\r\n", + "\r\n", + "\r\n", + "![VCS](https://programmerblog.net/wp-content/uploads/2021/03/what-is-verion-control-systems.png)\r\n", + "### Version Control Systems\r\n", + "Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.They also allow us to go through older versions and revert to an old version if required\r\n", + "you can find more information about VCS [here](https://www.atlassian.com/git/tutorials/what-is-version-control)\r\n", + "\r\n", + "here are few version control system Git,CVS,SVN just to name a few\r\n", + "\r\n", + "![GIT](https://buddy.works/guides/covers/first-steps-with-git/first-steps-git-cover.png)\r\n", + "### Git\r\n", + "It is a free and open-source version control system used to handle small to very large projects efficiently. Git is used to tracking changes in the source code, enabling multiple developers to work together on non-linear development\r\n", + "![GITHUB](https://www.marksei.com/wp-content/uploads/2018/06/GitHub-logo.png)\r\n", + "### Github\r\n", + "GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.\r\n", + "\r\n", + "## Open-Source Programs/Contests\r\n", + "Here are various programs that are available for university students and even for working professionals to get involved in open source.\r\n", + "\r\n", + "### Google Summer of Code (GSoC)\r\n", + "[Google Summer of Code ](https://summerofcode.withgoogle.com/)is a global program focused on bringing more student developers into open source software development. \r\n", + "\r\n", + "### Hacktoberfest\r\n", + "[Hacktoberfest](https://hacktoberfest.digitalocean.com/) encourages participation in giving back to the open source community by completing pull requests, participating in events, and donating to open source projects. \r\n", + "\r\n", + "### MLH Fellowship\r\n", + " [MLH Fellowship](https://fellowship.mlh.io/) recently launched a program known as MLH fellowship which is a 12-week remote program where students collaborate on Open Source projects that align their personal interests with the general requirements of the industry and students can participate from their homes. It has mainly three tracks – Explorer, Open Source, and Externship. Here you will gain those skills that you require to be a successful engineer like writing good documentation, open-source best practices, communication, etc. Also, make sure you meet the eligibility criteria before applying for the program.\r\n", + "\r\n", + "### GirlScript Summer of Code \r\n", + "[GirlScript Summer of Code](https://gssoc.girlscript.tech/) is a 3 month long Open Source program during summers conducted by GirlScript Foundation, started in 2018, to help beginners get started with Open Source Development while encouraging diversity. this program is open for all not just for girls\r\n", + "\r\n", + "### Linux Kernel Mentorship Program \r\n", + "[Linux Kernel Mentorship Program ](https://wiki.linuxfoundation.org/lkmp)\r\n", + "offers a structured remote learning opportunity to aspiring Linux Kernel developers. Experienced Linux Kernel developers and maintainers mentor volunteer mentees and help them become contributors to the Linux Kernel.\r\n" + ], + "metadata": {} + } + ], + "metadata": { + "orig_nbformat": 4, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/Open_Source/Section-3/3.2_Customising_GitHub_Profile.md b/Open_Source/Section-3/3.2_Customising_GitHub_Profile.md new file mode 100644 index 0000000000..ae1ad814e0 --- /dev/null +++ b/Open_Source/Section-3/3.2_Customising_GitHub_Profile.md @@ -0,0 +1,172 @@ +# Customizing your profile + +You can customize your profile so that other people can get a better sense of who you are and the work you do. +
+ +## About your profile + +**Your profile page tells people the story of your work through the repositories you're interested in, the contributions you've made, and the conversations you've had.** + +You can add personal information about yourself in your bio, like previous places you've worked, projects you've contributed to, or interests you have that other people may like to know about. For more information, see ["Adding a bio to your profile."](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#adding-a-bio-to-your-profile) + + +If you add a README file to the root of a public repository with the same name as your username, that README will automatically appear on your profile page. You can edit your profile README with GitHub Flavored Markdown to create a personalized section on your profile. For more information, see ["Managing your profile README."](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme) + + +![profile](https://docs.github.com/assets/images/help/repository/profile-with-readme.png) + +People who visit your profile see a timeline of your contribution activity, like issues and pull requests you've opened, commits you've made, and pull requests you've reviewed. You can choose to display only public contributions or to also include private, anonymized contributions. + +People who visit your profile can also see the following information. + +- Repositories and gists you own or contribute to. You can showcase your best work by pinning repositories and gists to your profile.Pine items to your profile. +- Repositories you've starred. +- An overview of your activity in organizations, repositories, and teams you're most active in. Show an overview of your activity on your profile. +- Badges that show if you use GitHub Pro or participate in programs like the Arctic Code Vault, GitHub Sponsors, or the GitHub Developer Program. For more information, see ["Personalizing your profile."]() + +You can also set a status on your profile to provide information about your availability + +# Personalizing your profile + +You can share information about yourself with other GitHub users by setting a profile picture and adding a bio to your profile. + +- Changing your profile picture + +Your profile picture helps identify you across GitHub in pull requests, comments, contributions pages, and graphs. + +When you sign up for an account, GitHub provides you with a randomly generated "identicon". Your identicon generates from a hash of your user ID, so there's no way to control its color or pattern. You can replace your identicon with an image that represents you. + +*Tip: Your profile picture should be a PNG, JPG, or GIF file under 1 MB in size. For the best quality rendering, we recommend keeping the image at about 500 by 500 pixels.* + +## Setting a profile picture + +In the upper-right corner of any page, click your profile photo, then click Settings. + +![](https://docs.github.com/assets/images/help/settings/userbar-account-settings.png)
+ +Under Profile Picture, click Edit. + +![](https://docs.github.com/assets/images/help/profile/edit-profile-photo.png) + +Click Upload a photo.... + +![](https://docs.github.com/assets/images/help/profile/edit-profile-picture-options.png) + +Crop your picture. When you're done, click Set new profile picture. + +![](https://docs.github.com/assets/images/help/profile/avatar_crop_and_save.png) + +## Setting a status + +You can set a status to display information about your current availability on GitHub. Your status will show: + +- on your GitHub profile page. +- when people hover over your username or avatar on GitHub. +- on a team page for a team where you're a team member. +- on the organization dashboard in an organization where you're a member. + + +
+ + + + +# Pinning items to your profile + +- You can pin gists and repositories to your profile so other people can quickly see your best work. + +- You can pin a public repository if you own the repository or you've made contributions to the repository. Commits to forks don't count as contributions, so you can't pin a fork that you don't own. For more information, see "Why are my contributions not showing up on my profile?" + +- You can pin any public gist you own. + +*Pinned items include important information about the item, like the number of stars a repository has received or the first few lines of a gist. Once you pin items to your profile, the "Pinned" section replaces the "Popular repositories" section on your profile.* + +You can reorder the items in the "Pinned" section. In the upper-right corner of a pin, click and drag the pin to a new location. + +1.In the top right corner of GitHub, click your profile photo, then click Your profile
+![profile](https://docs.github.com/assets/images/help/profile/top_right_avatar.png) + +2.In the "Popular repositories" or "Pinned" section, click Customize your pins.
+![profile](https://docs.github.com/assets/images/help/profile/customize-pinned-repositories.png) + +3.To display a searchable list of items to pin, select "Repositories", "Gists", or both.
+![profile](https://docs.github.com/assets/images/help/profile/pinned-repo-picker.png) + +4.Optionally, to make it easier to find a specific item, in the filter field, type the name of a user, organization, repository, or gist.
+![profile](https://docs.github.com/assets/images/help/profile/pinned-repo-search.png) + +5.Select a combination of up to six repositories and/or gists to display.
+![profile](https://docs.github.com/assets/images/help/profile/select-items-to-pin.png) + +6.Click Save pins. + +# About your organization's profile + +- Your organization's profile page shows basic information about your organization. + +- You can optionally choose to add a description, location, website, and email address for your organization, and pin important repositories. You can customize your organization's profile by adding a README.md file. For more information, see "Customizing your organization's profile." + +- To confirm your organization's identity and display a "Verified" badge on your organization profile page, you must verify your organization's domains with GitHub. For more information, see "Verifying or approving a domain for your organization." + + +![profile](https://docs.github.com/assets/images/help/organizations/org_profile_with_overview.png) + + +# Managing your profile README + +You can add a README to your GitHub profile to tell other people about yourself. + +## About your profile README + +You can share information about yourself with the community on GitHub by creating a profile README. GitHub shows your profile README at the top of your profile page. + +You decide what information to include in your profile README, so you have full control over how you present yourself on GitHub. Here are some examples of information that visitors may find interesting, fun, or useful in your profile README. + +- An "About me" section that describes your work and interests +- Contributions you're proud of, and context about those contributions +- Guidance for getting help in communities where you're involved + +![profile](https://docs.github.com/assets/images/help/repository/profile-with-readme.png) + +You can format text and include emoji, images, and GIFs in your profile README by using GitHub Flavored Markdown + +## Prerequisites + +GitHub will display your profile README on your profile page if all of the following are true. + +- You've created a repository with a name that matches your GitHub username. +- The repository is public. +- The repository contains a file named README.md in its root. +- The README.md file contains any content. + +**Note: If you created a public repository with the same name as your username before July 2020, GitHub won't automatically show the repository's README on your profile. You can manually share the repository's README to your profile by going to the repository on GitHub.com and clicking Share to profile.** + +![profile](https://docs.github.com/assets/images/help/repository/share-to-profile.png) + +# Adding a profile README + +1.In the upper-right corner of any page, use the drop-down menu, and select New repository.
+ +2.Under "Repository name", type a repository name that matches your GitHub username. For example, if your username is "octocat", the repository name must be "octocat".
+ +3.Optionally, add a description of your repository. For example, "My personal repository."
+ +4.Select Public.
+ +5.Select Initialize this repository with a README.
+ +6.Click Create repository.
+ +7.Above the right sidebar, click Edit README. +
+ +The generated README file is pre-populated with a template to give you some inspiration for your profile README. +![profile](https://docs.github.com/assets/images/help/repository/personal-repository-readme-template.png) + +For a summary of all the available emojis and their codes, see ["Emoji cheat sheet."](https://www.webfx.com/tools/emoji-cheat-sheet/) + +# Displaying badges on your profile + +![image](https://user-images.githubusercontent.com/85386116/133636426-b55a1bd5-cacf-437d-a9c3-135b149e4c79.png) + + diff --git a/Open_Source/Section-3/3.3_Open_Source_Softwares.md b/Open_Source/Section-3/3.3_Open_Source_Softwares.md new file mode 100644 index 0000000000..f1f0ffd2fe --- /dev/null +++ b/Open_Source/Section-3/3.3_Open_Source_Softwares.md @@ -0,0 +1,78 @@ +## What is open source software? +Open Source Software (OSS) is software with source code made available for everyone, so that people can inspect and enhance it. Source code is a part of an app or computer program which can be never seen by the end user. +Open source made it possible that we can see the source code of some software. +
+ +## What's the difference between open source software and other types of software? +- Some softwares have source code that only the person, team, or organization who created it and maintains it can modify. This kind of software is called **closed source software**. +Only the original authors of closed source software can legally copy, inspect, and alter that software. To use this software user has to agree to their terms and conditions and promise that you will not alter any feature of that software. +**Microsoft Office** and **Adobe Photoshop** are examples of such softwares. The company distributing the software (i.e., software owner) guarantees a certain level of support, depending on the terms of the SLA +because the source code is closed for review, there can be security issues. If issues are found, the software distributor is responsible for fixing them. +- Open source software is different. Its authors make its source code available to others who would like to view that code, copy it, learn from it, alter it, or share it. +**LibreOffice** and the **GNU Image Manipulation Program** are examples of open source software. As they do with closed source software, users must accept the terms of a license when they use open source software but the legal terms of open +source licenses differ dramatically from those of closed source licenses. Open source software licenses promote collaboration and sharing because they permit other people to modify to source code and incorporate those +changes into their own projects. Source code is open for review by anyone and everyone. There might be possibility of security bugs and flaws and can pose significant risk. + +
+ +## Is open source software only for computer programmers? +Open source is for both programmers and non-programmers. Anyone using the internet and computer get benifitted from open source. For example, software documentation, hands-on tutorials, etc are some domains for non-programmers where they can contrinute to open source softwares. + +
+ +## How does open source software work? +Open source code is publically stored in a repository and shared. Anyone can access the repository to use the code independently +or contribute improvements to the design and functionality of the overall project.OSS usually comes with a distribution license. This license includes terms that define how developers can use, study, modify, +and most importantly, distribute the software. +
+ +## Why people choose open source software? +- Many people prefer open source software because they have more control over that kind of software. They can examine the code to make sure it's not doing anything they don't want it to do, +and they can change parts of it they don't like. +- Other people like open source software because it helps them become better programmers. Because open source code is publicly accessible, students can easily study it as they learn to make better software. +Students can also collaborate with others and make a great software, as they develop their skills. +- Many users prefer open source software to closed source software for important, long-term projects. +
+ +## Is open source software a free software? +Nearly all open source software is free software, but not every OSS is free. The criteria for open source are concerned solely with the licensing of the source code. + +First, some open source licenses are too restrictive, so they do not qualify as free licenses where its license does not allow making a modified version and using it privately. Fortunately, few programs use such licenses. +Second, when a program's source code carries a weak license, one without copyleft, its executables can carry additional nonfree (or paid) conditions. + +
+ +## Examples of OSS +- GNU/Linux +- Mozilla Firefox +- VLC media player +- SugarCRM +- IMP +- VNC +- Apache web server +- LibreOffice +- jQuery +- LibreOffice +- Blender +- and many more .. +
+ +## Is OSS bug free? +The straight answer is no. With multiple people making enhancements, it will have some bugs. +However, large number of code contributors also mean that bugs are identified and fixed faster. + +Regardless of the type of software—open source or commercial—code flaws will exist. The main difference is who is responsible for fixing the bugs; for commercial software, vendors are responsible, whereas the consumer is responsible for open source software. With a robust set of AppSec tools and practices in place, OSS can be easily secured. +
+ +## Advantages and Disadvantages of open source software +### Advantages +1. OSS is free. +2. OSS is flexible. +3. OSS is stable. +4. OSS always comes with a community that continuously modifies and improves the source code. +5. Open source provides great learning opportunities for new programmers. + +### Disadvantages +1. The biggest disadvantage of OSS is that it can be harder to use and adapt due to difficulty setting it up and the lack of friendly user interfaces. +2. OSS rarely contains any warranty, liability, or infringement indemnity protection. +3. OSS can incur unexpected costs in setting up required hardware. diff --git a/Open_Source/Section-3/3.4_List_Of_Open_Source_Events.md b/Open_Source/Section-3/3.4_List_Of_Open_Source_Events.md new file mode 100644 index 0000000000..8ff64dd4f0 --- /dev/null +++ b/Open_Source/Section-3/3.4_List_Of_Open_Source_Events.md @@ -0,0 +1,84 @@ +## List of Open Source Events. +## Hacktoberfest +![resize-16318157061868959299resize16318156081657301714Screenshot20210916224715Chrome](https://user-images.githubusercontent.com/69195262/133662939-45a5d379-c0fe-4738-abc0-3941400bcadf.jpg) + +Hacktoberfest is a really popular open-source program that +is hosted by Digital Ocean and is open to everyone across the world. +Here, you need to submit four or more quality pull requests and you’ll either +get a chance to plant a tree or get a limited-edition t-shirt. There is no such selection criteria. +So, this is very useful for individuals, in particular, who are just starting out with open source. +You can contribute to participating projects on GitHub and even if you’re not able to make a large major contribution what you +can get out of it is how to use Git and Github. + +[Link to the program](https://hacktoberfest.digitalocean.com/) +
+ +## Google Summer of Code (GSoC) +![resize-163181583216543886611200pxGSoCicon](https://user-images.githubusercontent.com/69195262/133663268-8bc18f2b-f4ba-4c9e-81cd-76c687a874f9.png) + +Gsoc is a program that aims to promote open-source software development among university students. There are a few organizations +and these organizations have mentors. First, the organizations apply to Google and after the organizations are selected then the students +apply to the organizations by writing a proposal. +**Timeline: January-August** + +[Link to apply](https://summerofcode.withgoogle.com/) +
+ +## MLH Fellowship +![mlh-fellowship-white](https://user-images.githubusercontent.com/69195262/133664084-1ab0b928-daef-45d8-92e3-26803fb51c97.jpg) + + +MLH fellowship which is a 12-week remote program where students collaborate on Open Source projects that align their personal interests with +the general requirements of the industry and students can participate from their homes. Also, make sure you meet the eligibility criteria before +applying for the program. It has 3 tracks open source, software engineering & production engineering. + +[Link to apply](https://fellowship.mlh.io/) +
+ +## Google Season of Docs (GSoD) +![resize-1631816268701555114SeasonofDocsIconGrey300ppiwhitespacecropped](https://user-images.githubusercontent.com/69195262/133664293-a351d2d8-6d64-48f3-9243-bcacb9337e13.png) + +Google Season of Docs is a program by where technical writers and open source organizations come together and work on open source projects. +The technical writers write documentation for open source organizations and also get paid by Google. + +[Link to apply](https://developers.google.com/season-of-docs) +
+ +## Outreachy +![resize-16318163391758115203Pjk5iqNn](https://user-images.githubusercontent.com/69195262/133664428-d23b5bab-38f4-47c3-be43-c942edbae7d2.png) + +The Outreachy is also a really great program for students that aims to support diversity in open source. It is sort of a remote internship +of 3 months.The Outreachy internship projects focus on programming, documentation, project marketing, etc.Outreachy interns work with experienced mentors from open source communities. + +[Link to apply](https://www.outreachy.org/) +
+ +## Season OF KDE +![resize-16318164321675479471200pxKDElogo](https://user-images.githubusercontent.com/69195262/133664595-2b270230-6bf9-4c88-b96c-3fd0e8f5528d.png) + +The Season of KDE, hosted by the KDE community, is an outreach program for all individuals across the world. KDE is an international free software community that develops free and open-source +software and you can contribute to KDE through the Season of KDE program. + +[Link to apply](https://season.kde.org/) +
+ +## FOSSASIA Codeheat +![resize-1631816504761671443codeheatlogobig](https://user-images.githubusercontent.com/69195262/133664742-69ab522a-3248-4ea8-a535-cec9d4b93ddd.png) + +Codeheat is a coding contest and here the mentors are developers, professors, or contributors who like to share and become a part of the FOSSASIA open source community. Codeheat is separated into +two-month periods and after each period winners of the period are announced. + +[Link to apply](https://codeheat.org/) + +
+ +## GirlScript Summer of Code +![resize-1631816577926955475wJP49tZ7400x400](https://user-images.githubusercontent.com/69195262/133664896-3b61bc01-38fe-40bf-afa7-64c3b82b772b.png) + +GirlScript Summer of Code is the 3 month-long Open Source program during summers conducted by GirlScript Foundation, started in 2018, with an aim to help beginners get started with Open Source +Development while encouraging diversity. Throughout the program, participants contribute to different projects under the guidance of experienced mentors. Top participants get exciting goodies and +opportunities. + +[Link to apply](https://gssoc.girlscript.tech/) + +
diff --git a/Open_Source/Section-3/3.6_Overview_of_Google Summer_Of_Code.md b/Open_Source/Section-3/3.6_Overview_of_Google Summer_Of_Code.md new file mode 100644 index 0000000000..3abf215d7c --- /dev/null +++ b/Open_Source/Section-3/3.6_Overview_of_Google Summer_Of_Code.md @@ -0,0 +1,43 @@ +# Google Summer of Code (GSOC) +

+

+ + + +We all have come across GSOC either when we start our open source journey or a developer journey you think you have some general idea about it but you want to know more lets try to understand all the fuss about GSOC today + +## What is GSOC ? + +The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to students who successfully complete a free and open-source software coding project during the summer. It is held annually in the summer months of a year, where students who are above the age of eighteen and enrolled in a university are supposed to complete a software coding project. Students partner with mentors to gain exposure into real world software development. + +## Eligibility +You must be a student and you have to be above 18 years and enrolled in a university. If you have a student ID card, you are eligible. + +## Why Should I Apply? + +There are many reasons you should apply to GSOC. I will try to list a few of them. In just one summer, you will take your programming and communication skills to a whole new level. You will build your network, interact with some of the most extraordinary people in the field. Hey, if you have done fantastic requirements, might be offered a job or invited for an internship by the members of your community or offered a chance to present your work at a conference if this hasn’t convinced you you will be earning a stipend from Google. The amount of compensation depends on the country of your origin. + +## How to apply ? + +### Choose the organization +Choosing the organization is the most important decision you have to make when applying for GSoC.Choosing the right company will definitely increase your chancesFirst you should check which companies are going to compete current year. +Make list of companies which are in your domain. +Now search about those companies see there past history in GSoC +Again shortlist companies which are consistently get into GSoC. +Now check projects in those companies. Read and understand there code. + +you can check for [organization]("https://summerofcode.withgoogle.com/organizations/?sp-page=2") + +### Get in touch +after finding your ideal organization get in touch with them Apply to companies tell them what's in your mind where you want to contribute. +If company accepts it then best of luck and start your journey to GSoC + +### Project proposal +Describe how you would go about the project. This will form the core of your project proposal. Ideally should be between 1700 to 2000 words. Describe sequentially what you would do. How you came to know that which decisions are the best for the project. Which packages you will use and why. Split it into sections and points. Make it attractive. + +you can find few project proposal from last year [here]('https://github.com/Google-Summer-of-Code-Archive/gsoc-proposals-archive') + + +## GSOC TIMELINE + +![NIGHT](https://miro.medium.com/max/1400/1*VMoPkeC3lcktnv0It_IftQ.png) diff --git a/Open_Source/Section-3/3.8_Finding_Github_Issues.ipynb b/Open_Source/Section-3/3.8_Finding_Github_Issues.ipynb new file mode 100644 index 0000000000..a15b73deb2 --- /dev/null +++ b/Open_Source/Section-3/3.8_Finding_Github_Issues.ipynb @@ -0,0 +1,81 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Finding_Github_Issues.ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "PPq5YXRgFjWF" + }, + "source": [ + "Hey! Are you looking for Contributing in Projects on Github but not able to find them easily as per your tech skills then you should try to understand how github searchbar works. It is one of the most helpful tool in Github. Let's understand how it engages and helps in finding relevant issues.\n", + "\n", + "On the Home page, you can easily navigate to the Issues tab and you will see something like this:\n", + "\n", + "\n", + "![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUIAAAB1CAIAAAAEHgzoAAAgAElEQVR4Ae3daVBT6cIv+vfDrbqf7rm36rx773f3qzJDgCSQhCEkYQiBQJgjkzKKzJFZZBJQEcUWJ5znARHpVhARkUFRcUIBu7W3NqL2tm3FrqO72w+3Tp26t06dU09WWMYkQIKCCf67VnUtlmt41u8JJP/1DPk3FleIBQIQgAAEIAABCEAAAhCAAAQgAAGTEPg3kyglCgkBCEAAAhCAAAQgAAEIQAACEIAAiytEjEdnBAhAAAIQgAAEIAABCEAAAhCAgMkIIMabTFXhsRMEIAABCEAAAhCAAAQgAAEIQAAxHjEeAhCAAAQgAAEIQAACEIAABCBgMgKI8SZTVXjmBAEIQAACEIAABCAAAQhAAAIQQIxHjIcABCAAAQhAAAIQgAAEIAABCJiMAGK8yVQVnjlBAAIQgAAEIAABCEAAAhCAAAQQ4xHjIQABCEAAAhCAAAQgAAEIQAACJiOAGG8yVYVnThCAAAQgAAEIQAACEIAABCAAAcR4xHgIQAACEIAABCAAAQhAAAIQgIDJCCDGm0xV4ZkTBCAAAQhAAAIQgAAEIAABCEDgU2O8WCrPKlh9sKm9qbV3YGRsZHR8YGSsqbX3YFN7VsFqsVT+eYn5noHeUrlIEuYXHIsFAqYoIJKEeUvlfC/Z5/3VwNkgAAEIQAACEIAABCAAga9EYOYxPjohs6m1d2R0fOqlqbU3OiHzs2hKgmKYHIGdo4ulLRsLBExXwI7pwuQIfGXRn+X3AieBAAQgAAEIQAACEIAABL4qgZnEeHdRQMOB5qnTu8a/NhxodhcFfIqsJCjG0s7ZdJMbSg4BDQFrhjOS/Kf8TcCxEIAABCAAAQhAAAIQ+DoFDI7xwfL4tu7bGildnx/bum8Hy+NnpuzuJWNyBBopCD9CwNQFmBwBetfP7G8CjoIABCAAAQhAAAIQMAkBZ0G4NKUlpupVTNUr6fLTzsIwkyi2kRfSsBgfLI+nBsDrk9u19xkYGZtZkveWytGX3tQjK8qvLWDHdPH2/8zzRxj5XxwUDwIQgAAEIAABCEDg6xFwDchZWvu/NBZX6QrTEuC4iV08JO6iAIF3kMA7yF0U4OIh4biJv+BdGBDj3UUB3QM/0uH8VFsfvT71yqm2voH7T6l9ugd+nEHvepFvmHYEwhYIGIOAs4swIEgulUXIQiKnWAJDFgs8/bULLJLgeSS+LQICEIAABCAAAQhAYB4KOHmER1f+L50L28M0PgOzeSK+V2Cmonjn7gNXr994+dtvL3/77er1Gzt3H8hUFPO9Atk80RcJ8wbEePXcfqjpPIsrdBcFrCyvoyL6wP2np9r6qKXnxgMyZf39p1UbGqjQvuPgaTrqN7X2GnqrfsGx2vkHWyDwxQU4LkKxf4g1Y/pZG6zsnARe/u5CX40y+wXHGvrrgP0hAAEIQAACEIAABCBg/ALC2FPhq/6nzkWw5KTxl5/nJg4IiTlz4fjjt+cfvz2ntbR/f+FYQEgM70s0y+sb46MTMukcPjI6XrWhgXZ3FwVof7GcuyhAvdW9akOD+uGGzl2PGK+R/fCjkQhIZRH6ZHi6tH6BYQwmj/7R0paNGE//JcEKBCAAAQhAAAIQgMA8EHAXBWzcfojvFRic/yY47//XufilPzfyO+W5iROWZf08+mTsbc/dN1vuvtmktWx58rbz59EnCcuy5j7J6xvjqQZ2Ooqrx3h9KkAjxrd139bnKHofxHj14Id14xEICJIbVBgvsYzlzFc/BDGe/jXHCgQgAAEIQAACEICAqQtQA7HP9dx28ZBIkl/I0v4/nYs4cYYxXiyVq7cWzxIXmycKCIn5efTJ+/fvx952331Tr5XhN919U//kbef79+9/Hn0SEBIzx73r9YrxwfJ4OsBTK1Snev3V6rYf0jiDdgP+FGfTM8YLo+r3tHX39F25dPPK+UuN9ak6hiKrJyhD1wVRzdeaVvCtP8O31rP5G5oHdictYhlaBn32t1soi8mI4th8hnLqc7mveR9ZSKRBt+8jCWJ+Qox3N8vZeufNh1+lh0972psyQrwn+91xtcz89vqbobtHothC38wrI6PjLUWT7jzZSWZvuzCqbn1RMo/zGUaCSXMHRkbHW6uCZ6+0n3JmuuIG20r4yvt1cpKmN74cGR2/d//kUpZeAvrXIJsjjlQczk8MnKzMbI445fDLu89vVko8Jtvns29nc8TULX94AY+O33t2d2MEX/9rfZGS61887AkBCEAAAhCAwKGm86fa+igHTsgJaeL/0LlwQo7PzOpUW9/K8rqZHav/UXyvwM6unvfK/1798dPTt1eevrusuby98tsfD6l9Ws608b0m/eil/3X131OvGL+yvE79g9fA/aeGPgJxFwXQs9xRpzJIX58Yz2aU7r3TviXRi4pVgviGc7fPrZE6GJSypt75M8Z4KxtXtovL1Jeb8b+yOdUnWtf6WCHGz7rAFDHeXejrLZFpVOJnifFDj2/u37SnonLv5gN3BkbHh28ciXTVnQONOcZzHWIKz70cuVBJxVr9/2bp3NNUYvy9h51ZHgIWV8i3KN03Qp7IzEaM5zMq94286VgXo9OKxRV+kTBMxfihp49O7yavXmopXbd2sUj3q1dn4b9IyXWWBBshAAEIQAACENApMDI6npRRSP2To1uof9R/17k4uoXoPHzajafa+gztGD7tOTV24LiJMxXFVD5///79n3/+8ef7d7qXP/+gd8tUFDu7emmcavZ+1CvGq09uNzI6Xrf90AwKpNEgTz+k0edU+sR4Z6+d53q3xpip2retbFzdBGKqRdpOoPj2SPeFzksdF9v3VyymNrJ8Cre2kY29Fy4dr5BzbNgOf41d192+pWLHd1cubQyzt7eIVezr6Oi70n1ZtYMgqvl645r0zac6O/qvXTlXn+apEdIcfRV1zeScFzovHd2UzLfWPCe9P90a75nReu1Uqr0tCZzULYRbsN2TyIVyvj11pLW7vWf3Cnn22gNNJy9e6mgqD7NnMf+fRKqcx46eOdN56cyRIqnDh7zKtFJsvXDr1tDlc71b021Z2kWiy4CVTxeYIsYrclfOUoy/d/9kkrL91pkdnNfykrRnhgXmn/598J/deRwSEYNzBoafvDiaK5g2xktzB4bHxo5u2nPyzq8d62Kc2cFLys633fl1+MmL/ovfrQgmTfdch5i03YP9D8bv3Lu1r6T5+7Hxq0dyPC1K9/z0Zrh/o8SZZMKc478P/tJf5EWadv2ijhy//OzO6PjAravfZpA5SJ3ZwXEl3W13fh0ZHR+8e+9wTaqX9fL111XdCgaftKbyBL7xqqPujzz6rnF9qJsB0Y7FFarHeJ2n0t7In+QWdCJo34JBTx+o1vgfL9879/TpgQzy3SReMa39z+91d7+hYjzXISZ9+/Xu4RdEvretYDF5D9CoHbo1nusQk3lqdOjxzc3xvtqlFXC3nhobVz14vbBOJjzS/mT8WvPujWce3HgwPnC7tyJWoh6G2Rzx4vTW76+R2hm4dXVbbiT1N9k/bP+xKz/fmagy6n61K1efP+DUPlSM125+Z3PEUYWDt8fGWkrIly8G5wzcfvLibE2MSDRNyVlcoWdo3b5zP994MD7806Nzp3cniMnrX8NNm0j/MmNPCEAAAhCAAAQMEqDmU1OfB40hzPQL+n81FoYww6DTqu88BzHexUOya89BOp9TK3++/5Pk+T//pVz++PP9nxo77Npz0MVDol7UWV3XK8af67mt3hpPP18xqGQak+QZNDxenxjvsChxQ+etzhPbctOi/EQfOqvbfxOxqq3/9Fq5vS2bwU2r6ereGu1kt1BW2HT7dAWZNpzNqT56p32tl4PDX2PJGfamUd3mgzb2UusOTopdF7u3xDAEUc39t85tiCYN/oKs5qsX1gRYfsjP1IVOFEksbdl2zNjai/2NKSKNc9K5ceoYTy50tXEFn2ljKUo8fLu/Z0s0l+Xw19jVXf2HEsijgY0XhqmyUTdyfKWQPrOlLZspP3Cpc42PFVtnkdT3xPonCkwW451dROtq67RP/lla4+kY7+QkzTz88t6zH+ojQ2cW46lkeGfo6u7qDWlL/WRx3QOj472NVVHhlQ29b+5c2RnmJJQlX7kzOn717K7MlHVbzj0bGR2/ejR9sgws4G49/fDN4OUjyxevyD86em+0p9DfQ+Tb2PVk/OKR0tjIFRlbB6/9eGtjuCTE7whJm5ePxMfEic1LG0be3O06siwuPUHR0f6PpydLSaLTf6FjPN9Cx6km26jzSYROBB23YEhXcFWMb2vafv3NzZM5Ls7ipB2jw4Mtu8/+TsV4aeaV209etO8vWrKk8ezD8Ts9dRJn1TgIunaoyvquMGRx3eCtp4+O5oSyuELt0oY7y+X5pB4vHimNCQkSuez/fmx86PHNHanJUXJy8qGb+8LZPnSneoE32eFGx66k6NV7rr2h+gu4u9c0Dr8ZvtO2SrFq5bEHw2NjBzLEOitX/zqaiPE/bE9b4usfQy1iX38WV8hjJJSee3nvYWdBcM2RkTfXe+pkTsJpS+7BJjsPD/VUKArSCzq6nowPXqjRdtMmCnMy4KWl/w1iTwhAAAIQgAAEtGM8iyu0dw11kjV5hvxT5PvE0fuIvcsM2+Ep3jmI8e6igGsDNzVS+p9//vHqj388fdf79F3vb388/FOtHZ7a89rATUN7rH/KC0avGK+e4UdGx9Wfr+h/bY0YPzI6rv+x+sR4S1u2jVN4UtWOY6e6u4Zudnc11isiOTYkpR+525jmzKQyFQnnO8ItbdkWTFeqDdzhr7EVl0hKd/gryd67kuwsbUlUrukiG6mj7Hgie1s26VR/pozqrM722dI6sIVu/KceB5wabEy3VT1BCKvq7d2XqH5O9VA3bYy/3lRIP03o2x5jacu2snFNPHz7hII8GqDLaWnLDii5cP1wqvrJ6RjP5lRrF0l9T6x/osBkMT4xOT1MruNbEj9PjP+pNTcgWiKJj1xKUtm9+y1pTkGfEuMv7o5ncYXUaG3SWBpIxioHFw4qG049VU8Kwj1ZXKFPWOvlJ1PF+OAcMka9pYxkMyr6tlYFiwJbup6M37jYVF5YECIm/8TiCgULKw+MjVOd6qke5sNDPZsqKqIjg2YwWl49xu9TRjv1U+k8v84nEStFfumNyg4OHyHwdd6C/n/BVGPjL6xL3TF6735Lik3Gt9ff9O0rWnVaFeNZwmCROJjPEbpaZq6/rmqip3I7VTssrirVX2ruu/xk/OKuFB5nsirjU9VEdaqnwvBgGxm84MwOzj/9+93nN0slXnSMZ7lJPX3k7nzSqyJxz3OqtVzlWUkepnBdly/NKYmLlOmsXP0RdI6NH76yU6YM1R4C5QOghy+GHpBHP+T1o3wAMUXJqUJ21ERQPT5Ut+bnoe42yavagNH4+t8g9oQABCAAAQhAQGeMJ8MJPQNF4mBnV58ZEIml8qbWXnoZGBnrHviR/lFnP/HsgtUaAXbHwdP6X1rgHfTbq1daMf5fT9/1UhPdjb3t/uP9O40dfnv1SuAZRF3lEwugT1FnEuMNGtZOF0Ijxg/cf0r/07QresZ4OpJZ2/uGJ9Q3Xr5yaLmI7bPl3NDN3gukozvpV993pXdvmqUt2zuhfm/z+bNt7a1nuy/dvELFeNJWH0qiO/v/TNt0lXStp89JWuDVprjjuG45deNDH35yiM+WtusfZq3zKCC95d3+nTwOoM6pfqppY/y1phVU5/+wKtVzB/UYr35O6kLUztQlPsR4XUVS31O9SFifgcBkMV5nU7ylLfuzxHj1v0pDj+7tTg+l4hndqT5UMahnp3oq8JwuI53nOUz5ytbfR0bH7z94MfjwxZ3R8eEnL46lhZAHBL/0l3oqk5Wyn/MUrfHhG0dGlAcOPnxx90fStbv3wDIOU56w/krPEPmRdBrv2BUrFKjHeDZHHLisherXPTI6fud25yplr/Jp/zLQO9AxXuepdG7UHeMFEToQMgiO9i3QV592ZSLGV8pCW3ue/7BLcaLt2aO9S8LyJ2K8V/CWQxd/psSoAfNJLFVup2qHjvFU7Q90VkqcJ6myDNXTFvUY338yh8dRDYmnns7QMd7FrWhd83D/A1U/fCrGh28cGX7y4mQu6aNOLzorl/7XaVfosfFH15SnK1arloQ46qmNMzs4ten5yOj4je8KqQ78VIyfouTqhWRzxKnkGcQP9dGe07+qMz7c1LTFxg4QgAAEIAABCOgvQA2j1p7LXCyVa3xnuf7ndBcFrCyvq9rQQC09Nx5QDfLUj5M1MKsHaYMyPGlt8g569eq1Rkr/889pYvyrV6/pGM/iCj+lAPrg6BXjNb5tTuczj2kvpvGdc599bDw7NDUlwkc9iS3derVzRzibU3343iG6kZzagc0oPXqnfWMI+eovqnFbI8ZrtHjbCWRurtPF+I+b/enWePXITRdPZ4xnycjw/nAL1YWmiPHqrfHUhegzq3eq1+iJoL2n+lFYn4GAzhgvlUWkZuXoPNtnifFDD3o2ZlakrShJXpYu9iSBRBXjlWGbzRHH1D40KMZT09fT7Zb1SUsDguIDguKlwTFerlS//bv1Ee5Ua/zARKf6fSNvhm7uC3Mig+dLOlVj41Vxel0idYaAoHixr+qxq5OT1Cu0KGfr4MDoeGulXD3GU3892ByxQJyRVnS24+E4PaP7tH9YqB3oGD/FqTTOLzYnk8xp3ALdGq+O4OmuSn0at6Bn2VhcIR3jfayLGkbe9A8+vne/JdmZ9KG4d/9kgmV8Sefv937ur5R5UdMZUOMmqDhKf7kA9WPH2oSl9Q+Hnj46kC7VWWWe7jpi/J1O0hpPPakhD2U+tMZ7RdY/HB4bO1kYMpGEydTx6p48XmZ2eX3+8qgpKlcfiolO9bqnppdEtFwce9E78Pjesx92xPvSrfGTl9yDKs9ZZWs8hylfRT1vmmiNn+JVTVeoPsXGPhCAAAQgAAEI6ClAtdpO1uJLTZo+WerW8xIsrlD/TvVUkDY0w5NPbh93qn/1x6Nf3l179q5/7F3P2Ntusrzrefau/5d311798ROd9rU71c+4APpo6BXjNaa46x74UZ9Ta+yjMcDeoGcB+rTGi6Oau7saS8O8qfgkCCg93Nl/MNV1Ynx4kL0t29bcN6H+aHWYM5u/4dSgqqe9ZMn+8zduUmPO1SP34o293afI18s5OCnqlSPqp26Nn7gQGRvPcEisvUiuTnXOn6I1nht7nBpjb2MpitvY09+zRZ8Yv/HC8IWjZAy/vUXsmlbS0149NDLlB7p6N4ZbfDQ2ni4SGbq/UBaRmu3vQvr/2y2UhactpybJs1soi51YVz8h1icT0Bnji0rKnV0+qhH68M8S4+mx8fSvGJsjjv92dPjJi4tHSpOXHz52ncxRp88UdxpBUTWK+MT6hCWFpSfudFw6ulwgkGaqxsYvVxsbz2MkrOn7/d6zHw4U56eWnifBW/kQQTV8uq8pZ8mKlNpLHdd7axM8A1K6+/7x6GhF/uKwjOSS7r6xFy1l/qrG8OHO4ozkYI+tp0dedDZWx0SnxMYdbhl+c7Ox0KCu9XTsJH2ztU7lqWsj3073LehE0HkLtP+0K3SMFzhJU/eQNuebJ3NclV3cSYw3S1nT9/vQ45v1CWlpq7q7H4zf+7l/dbjM/+PvCKQry92x9MCdN0ODJ5e4TIyN/7jKRIEtl5+Q4e7LYqPF1Nj4R/cOVBRnZJMB5MNXdqqNjfdasmN0eGysZW1WfMqJk3d+HR4bO1Ia6+uy6cRPZGx8QWpBwT6S84/mSHVW7rT3Tu9AxfjhsTH1meorKvemR/q5cHK2X38zfONIjFsO+YrEwZOJAoFqbPykJfdQjY0f7qxQFKSt6iYDN9qq6LHx9OMPnRVKlworEIAABCAAAQh8LgGqnXyKs51q65tZkFQ/p/4xXv0og9Y1prgbe9c79Pu2oTdbn77r++P9uz/ev3v2rn/ozbahN9vG3nbRMd4Yp7jTaEgfGR2f7CnLZEDqnQqoTqEGfU+APjHexlIUnNtwuLP/2sDNqzeU3xuvHBtPkurETPUXOi+d2p4udSB5flldx/nLly6ca9xZtDi+uqO7q7FIHK0e4+2YsUUTM9UfW7uEYzNNa7ylLZueFr7jYvuxtUuomerVz0nHObo13t4itvBoT0fXd0ca965V7DitX2t8TVf3ropvj7R2n7986ezeHPWZ9shDBG7ahs5b17oaC3wctYtE+v8vKtx7p536Nj72vyv23mkv83YkzfhMsp1ap4uKlSkEtGO8s4uoqKR8skNmKcazuEIXUemOi89uP3lx5XLTirzuO6PjJ4t8pp2pnk6G1G8uNR97520yX/rA7d5vM8ik5VznhPwDIzcejN8Zurpz1dl25dh4FlfoHXXkuzu/jjx82nlifeHeUTLi2s+DzRHLljae6iMz1d/54d7xbZleHHKGrD1kGnbSYf7+D6f2l0mcSQ+CZbtGBkbHb420Zbn7Rxd2nLv+lPTk/+lR59kD1JTjk/090d5Ox3gnJ6n2qXRunOwWJkPQvgXtYky2hY7xfI7QL6772tjYsXQx1YeCmuIucFlL68gLMt36kdKlia3dD8gsd0syrpCJBorIkAe6Uz31IzWde/u2BJ2ldWXkbOh6RiqxsyaMR2awu3XmQM2pB9efvLhxrbNE/tFM9W7eNQcvk52vXDqavrjuyOCv9x525noL6Enp79y7dbgmla/sk69duZPdsvZ2nWPjR0jXjOiEnQ/vPfth9zIyh78kmsy/0Hs0x3+6kpMJ/4O37Oki0+kTuhObYoVkFIA+r2rt4mELBCAAAQhAAAKfKKDx/eLq40DpdYMGVusszxzEeOoL5+h56cfeditD+9an7y5TM9VPxPitT9520nPXG+MXzgXL42l6eiW7YLVOWe2N0QmZAyNj9IHUSrCczKql56JPjJ8sOBnndjrGz6B4VAu/xrj9GZwHh3y6gHaM95bI3IXkGxB0Lp8Y4/X8fZm93ajvALt6NH32LoEzf14Bqk37pnJs/Oc982yfzXRLPtsyOD8EIAABCEDAOAXEUrn6IHZ6NDu9srK8TnvYvKH3Urf90Kf3zJ/2onyvwLMXTz5/d+3526tP3nY/edv55G3n2Nue52+vPn97dextz8SWLrLl3bUT3x3kewVOe9rPuINenepZXCHdJb5qQwPdx76ptTc5vWCyifXdRQHJ6QVNrb0aAX5kdPxQ03mD7mH+xXhqGLz6RPc6U5/OjYjxOlm+yEZpkNyg63qJA1nOZEYGevELjjXod+HL7owY/2X9Z3B10w3DplvyGVQTDoEABCAAAQjMM4FgeTw9mbxBzbdG4sDmifxD5F0P1tx9s4k0wr9/pz3F3Z9//uv526t332zqerDGP0TO5onmsvD6xvikjEIqjTccaGZxhTsOnlYP59o95LX74avvb+hjmHkW41myne03r7TVxVLfeEcnOj1XEOP1hJqD3aRBETb2HP0v5B8QxnDkqe+PGD+Xf+++wmuZbhg23ZJ/hS8z3DIEIAABCEBAW+BQ0/kZNN9qn+dLbeG5iaOTY7oerFGL8X3qXzhHYvy7a10P1kQnx/DcyNjAuVz0jfEsrpCqCfqrAug2+ZHRce1Y7i4KUM/t6uszmC1wnsV49RSHdZMWcOYJff1D9Eny1gwnoZe/u0Cscb+mFePn8m8TrgUBCEAAAhCAAAQgAIEvKMBzE/uHyM9cPKEcAP/Hy38NP/pvZx/9t7O//useteXEdwf9Q+Rzn+FZXKEBMd5dFEDPW0Dl9uiEzOyC1ZN1k9D4mjoqyZ/ruT1ZJ/wpakgkCdMIP/gRAkYi4MwTSmUR0iC5LDRyqiVksYfIT7vMIknYFK98/BMEIAABCEAAAhCAAAQg8KUE2DwR3yswU1G8c/fBa9dv/Pbqt99e/Xbt+o2duw9mKor5XoFz3JeedjAgxrO4wmB5PJXk27pva7fA0yelVtSb6z8lw5MJpaVyO6aLdgTCFgiYtIAd08XbX67xi4MfIQABCEAAAhCAAAQgAAHjEXB29XLxkLiLAgSeQQLPIHdRgIuHxNnV6wuW0LAYTyV59WZ2agY7nTegEeNn1g5PnZnvJWNyBCYd2FB4CGgLMLkC97md01Lnryo2QgACEIAABCAAAQhAAAImJGBwjGdxhe6iAI0p7nTeMD25/cjo+I6Dp2fQl179tL6yaGuGs3YQwhYImKiAtT3XVxat/iLHOgQgAAEIQAACEIAABCAAgWkFZhLjqZNGJ2RSk94N3H+q8zJUa/yOg6en7X6v83Dtjb6yaDZHhN71JppaUWxawI7pwuIKkeG1f8exBQIQgAAEIAABCEAAAhCYVmDmMZ46tVgqnyylT/FP0xZrsh08vGTeUrlIEuYXHIsFAqYo4CkJ95bK+V6yyV7k2A4BCEAAAhCAAAQgAAEIQGAKgU+N8VOcGv8EAQhAAAIQgAAEIAABCEAAAhCAwOcVQIwXfl5QnA0CEIAABCAAAQhAAAIQgAAEIDB7AojxiPEQgAAEIAABCEAAAhCAAAQgAAGTEUCMN5mqmr1nOTgzBCAAAQhAAAIQgAAEIAABCJiKAGI8YjwEIAABCEAAAhCAAAQgAAEIQMBkBBDjTaaqTOXJEMoJAQhAAAIQgAAEIAABCEAAArMngBiPGA8BCEAAAhCAAAQgAAEIQAACEDAZAcR4k6mq2XuWgzNDAAIQgAAEIAABCEAAAhCAgKkIIMYjxkMAAhCAAAQgAAEIQAACEIAABExGADHeZKrKVJ4MoZwQgAAEIAABCEAAAhCAAAQgMHsCiPGI8RCAAAQgAAEIQAACEIAABCAAAZMRQIw3maqavWc5ODMEIAABCEAAAhCAAAQgAAEImIoAYjxiPAQgAAEIQAACEIAABCAAAQhAwGQEEONNpqpM5ckQygkBCEAAAhCAAAQgAAEIQAACsyfwb5a2bCwQgAAEIAABCEAAAhCAAAQgAEfJAi0AACAASURBVAEImIQAYjyeYkAAAhCAAAQgAAEIQAACEIAABExGADHeZKrKJB4LoZAQgAAEIAABCEAAAhCAAAQgMKsCiPGI8RCAAAQgAAEIQAACEIAABCAAAZMRQIw3maqa1cc5ODkEIAABCEAAAhCAAAQgAAEImIQAYjxiPAQgAAEIQAACEIAABCAAAQhAwGQEEONNpqpM4rEQCgkBCEAAAhCAAAQgAAEIQAACsyqAGI8YDwEIQAACEIAABCAAAQhAAAIQMBkBxHiTqapZfZyDk0MAAhCAAAQgAAEIQAACEICASQggxiPGQwACEIAABCAAAQhAAAIQgAAETEYAMd5kqsokHguhkBCAAAQgAAEIQAACEIAABCAwqwKI8YjxEIAABCAAAQhAAAIQgAAEIAABkxFAjDeZqprVxzk4OQQgAAEIQAACEIAABCAAAQiYhABiPGI8BCAAAQhAAAIQgAAEIAABCEDAZAQQ402mqkzisRAKCQEIQAACEIAABCAAAQhAAAKzKoAYjxgPAQhAAAIQgAAEIAABCEAAAhAwGQHEeJOpqll9nIOTQwACEIAABCAAAQhAAAIQgIBJCCDGI8ZDAAIQgAAEIAABCEAAAhCAAARMRgAx3mSqyiQeC6GQEIAABCAAAQhAAAIQgAAEIDCrAojxiPEQgAAEIAABCEAAAhCAAAQgAAGTEUCMN5mqmtXHOTg5BCAAAQhAAAIQgAAEIAABCJiEAGI8YjwEIAABCEAAAhCAAAQgAAEIQMBkBBDjTaaqTOKx0KwW0s13p29Yvzi0J2Dx/fm0+EV0+wXHYvlKBITiUC+/CBcPv0/5ZeF5SLz8IgTikK8EDbcJAQhAAAIQmIGAQBzi6RfO85B8ynsujoWAcQogxiPGm4CAlZ2LVD4UED48n9K7+r0Y51+H2SuVX3Ds7J3c+M9sx3RhcgRiWbSlrdMMSiuRRdsx3S1tnRaYM7BAAAIQgAAEIDCFgKWdkx3L3Ze855rAJ14UEgL6CyDG41faBASkEUPqoXf+rev/Gzs/9vzKYzxVidYMjsTwTxW+suhFlg5TfF7BP0EAAhCAAAQgoCGwyNIBSX5+fIbEXdACiPEmEGLp2vo6V1x9tsy/3K5xR19bzSLGUzXO4gp5hvSu5/ElDJabxkcT/AgBCEAAAhCAwLQCdmw3Hh+96xF85o8AYvz8qcv5GgV9Q69ohN759+N8rbvJ7gsxnpKxY7p4+UdMpqS93csvAn3pp/2ghh0gAAEIQAAC2gKWdk6efuHa763YAgETFUCMR4w3dgFx8Hyb0077MYSJ/vmYcbER42k6oTiUXp92ReATrP25BFsgAAEIQAACENBHQOATMu1bLXaAgKkIIMYbe4g1lVfS7JVTO/TOvy2zp2ecZ0aMp+vFIAq/4Fh9PqZgHwhAAAIQgAAEtAUMes+l36mxAgHjFECMR4w3doH5F9q178g4/zrMXqnwPkrbGkSBGK/9mQxbIAABCEAAAnoKGPSeS79TYwUCximAGG/sIdY4XzdzWSrt0Dv/tsylpzFcC++jdC0YRKF/jLewYev5mQa7QQACEIAABL4SAYPec+l3aqxAwDgFEOMR441dYAah3T/1cU3Hr90/vh4ZfX1z6Nfm44/jYu7P4DzUIbLwnxTb/rFYPv0ZAiN+VPS96dj+g6HXMvSvg7U1P2xd14kLp1LcmQYd6+RUs72rQW7OMuioqXdm/pfk4gvteWLHqXdT/1dD30edBPX7ewf3Vwarn8RL0fH95QulUgf1jdOus/zzwrzI7YsWt5w+kO1o8zlf/56JrS07kuwM+WZagyimjfGefhGK4tqSdQ0l6xoUxbWy8EQ987zF3yQhFbURbrZf8JOcnmVgilYXKUItzRlfsKj0pc3+08NN6mtpzrD4u3fQqrpIj5kDWv5dtrjqoyqwsoxNqCnxZdjRl9N/ZaEZkx9Xn77EVf2QhWZMYeK2jAjeFNQ29plZNeT1U5AmUT922vXPUi9TF3vaMujcge1XvTJTZqb2glm4yMktpjq/enNyhI7vfaCVdJ4NGyEAAZMWMOg9d9pPFNgBAl9WADH+c36I/7J1OV+vbmgkDkga3T8y3n325/T0HwLlP8iLRrfdfj3Q/kifHK7zWtKMZ+eujyVHGFGMZ1pnV323JTX/7M5yH4Pq3cqGZ+/ibtAh0+48NzH+4JmeQ2c3SqxUv7CMBcErGnuPnu00KMZb2fBCN/bVRpEYb2XPd3LmTnt3Bu3wZWN8VKKioHKzJCiGy5dw+RJPv4j0vKq0/Co9k/wiW7Z61PkiH9T0KoOlk7Wt4xcpnvZFrWziUoqTmGamEeMXmDMW2XItrBhTxHjqHnmRmwyN8Qs+R73ojPF0sbX99dmiHeMt/u4dtqouRmSv83DEeJ0s2AiB+SGAGG/QpxrsbOQCiPGI8cYuoDNaT7Ex8sSroWtP4tVSt3/q45Jvf1osv7+8Y/xc09jRu6/bjzwIjPhxydEXnYOvegd/67vytDB7JGDxfVnEg2XNL3uGf7s69OratWcl2SOy2NGdI+Mjo6+u3npWvOR+YObojv7frg6+vDr4a8uun8KUTfQhFb98d/f11cFf286O1V8Zn4PWeM+lLftqIjjM0rrv1tPJ1t1v4+YTPcebeo6ePbcxZ7GjDdveKa1078VjZ3qOnu3csSPPy55Nt8bbWQUv3XT+2JmevccOFSRt39GxJdSC7Rp18ruGqqXVjdsOt+9v+74izov6+yWQkTMfau482HS8KEJgacu2tub7Lz9ConXjmdrCDdWz3xp/oHnf6sOdqyNUL1cOr37P8X3VjaoYz+Jlkzs91Xmwub0ml9y7w19jcr9rr0resGZ/c8OpngMHVvoy2P4rWpsuDLacubAlJ4RujWfYxSR8e/bg2c6DZzv37qyWsllWNryw2ms7yvNXbmvefqjzyKm9CSKOpS2bYSGPqyF7HmrubNis8LInhSHIh3qPnj3XsG9rxuqzX6o13tMvoqBys3ZiT84qjUpUTPvxi851ZmYin8RqRVmdoqwuOy9b6Eyagvmxm3KXkbbZRYu4bhHFmcV1K4rrsgtzxDyHBeYMR/HqlStSpEmly/PWZpeUh4ucF5gzFi5ycg0sTC+uUxTXpuene7DIeey9ygqyknziyZ5ZFZXRvi7qBZu6DHZuxYUlKWwzBt3qa24bIlfU5paRJS1VzrJiaBfe8i/S8Iq1EVxy9YWLnDzTtyVKmQvMGRYO5FhFcW12SdXSCE+Ntn1ym5FlGWV1uaVKBGXh2WLSC4B60mFjn5lRkeb6TUh06dZV6zevWJUtMvOWldTGBSxZmldbULE5OzuWY0n6C1jaR0QpavOKaxWr1ibF+dmYKSN06drogNz08rXhAlv6vqZujWd6rFheTMqTU1pCCdtYpqSU54RFVysqc4TmbG5AMdEuq8tdWRLu40zl4Yz4qNCstbkVW/OL872c7eiASlOr+6uv0zFeJ4XOeqTrRf08UxdbYKHyKajYnF9C7mvqYrtEbChIk1JVYP6NSFZYHydhUpWeXUZqM0X5MlhgzjC3DYnKrcspX5u2Ijtwqao1nqJ2/sbDJ3VTfk1DQVltYoibubnEP21dbimxTc0kryJaaeEiJw3VyV7Y6reMdQhAwJgFEOONPJeieAYJIMYbe4g1qDrn5c5TJHbtf5KFP1w5MH5+14/a/xSw+H5Cx5t7t57mLSOJ3a/2Rf/I85XJZH3x7pe3r/wcG3Hft/rFjeHn+UvvB0b8mNj2erD9UZCcbLx5i7TGy8J/qrzz+uLhh0Hy+wFJP++69+pQxX1Z5KMt919/t5F0pJcWPD/7aNZjPGNBcPrR88U+jrbmvkv3XVwdRF7DZGNjb20kjwRL6/gV2zeFc1mB5X2H10XY2bJtzX3DVx/JDXGiY7zn0pbm0zW+DLadVXDq9qtN5+sDLNnuYSe/727KEDtb2rJdI46eaKnxtmKzGEW1F9pLg1wsbdnuvPqGiwejWCwnp5qdnadShM5WNjzv+JPHrpyb7U71+1pqYhJaj9UvtbNlW9nwpBVdDdkpipMkxjMWBGcfurqtLNjOlm1vn1ze3LM6gsT4wlM3D9Unc2zY9t/Ic05c3bSUZ2cmTT50lWqNp2I805obWtZ3dEeaqzXbxtJTvrGPXMKGJ6++1nx6IxXpQ8v6jm+ItrLhBa7qOnkg18OeeEbX9+6vDLa25kfWXju0IY48NLGOX3n07peK8YqSWklQjPaHJyZXVLKuQTvea+xJ5zpb98K84limGQkzLN8VS0MEC8wZtk4yVx6H5HD3wrzyLHcbElDZnmV5E7m6eG1loDLS27vkZVdmuVgyHHiFisocD3tyHmf/1XkFkQwzhoNHWfG6cmpPB7fivJIkttmHvvFTl2GRrbe7J9/S/EOMd43dpEj0MVM+XPBYsjJE4KBdeJ0x3vwbkV9ufWq4h5k5w9xKJtdqmLVzylNU5ghsSPJ3j9+Un0mio3aM5yxi2Lrk5a1UtcaHFG/LUcgdrRgWCyThxVvjJPZU1FwW4kYuZC6JKNycKHWy+Lt3ePHW7MwwhvLe6fuaIsZbfSOPrV4b4ap8aCIszq1K4yxiWNnEpa7ZvCyE3IXVoqjENaru91bsuMj0MPtFjvy4+qJVWUKW3cJFTh7Jm3JTfOiASlNrvAzoH+kYr5NCZz1qx/hpi0188uoSZcTHnrMiY02+yHqqYtvYpKVW5rhbkNeMtV1KKnl+4egatSFfEcGwYpgtcPNM3ZQZ67FwkZMgqT47RUIGO5hJ5fk7qU71NLXF3yShJbWRrmQEhEvEhnxFqI0Zw3yhd2jBtmUyJ1pJW5W8hnW9sGk3rEAAAkYugBg/L5PCV3tTiPGI8cYuoDOQT7YxKOwf6+6Nf1dHwrn2ktAxfqPlIbU9oWP86inVuix29PjjFzVJ5KiQeNWBkrqXQ5dV2Z6K8dKMZ2ce/7M6VnXymOZXN1oe+uc8b3/8S/kSspF6iDDbrfEcXv2uk1Ue1qTihKEnDyqTLYn0O64e2rYyTCymx2ZLFB2NzQ3xETJnB1Utq2K8GTes9tr+Min1h48bdPD4RIxvPlnkqjwzh1nX0NEQakGyPb2RisHr41iCqJPNR3OpPdl/y6vsmYsY729TVNOxN4rFcvjP+JLvm1OdwqkYz7Gt2dx3LI6pGvDvt6rr2MYIh7/GFDRfXatsvbey4S3ZdGtHtqd2jOf85cNulrZsjtee42c3Blpw5dXXDk8Mxfdc2tKyO41NnTBaJenqe/BES5XXf43JO91L9xHwW9X1pWJ8yboGLl/3YOYp/on+vEXnOlt2ZmZ1ebi/r53dh4BN7UbiTVy9Ik5E/Wj1t9CYmspAJzumaHXhyhgqlFr9LXTxurWhbAe++p7fyKPXk5Dp4FFWWEzy/AJzho1N2vKqLP7CD1fRpwwL1GK8U1h1fmG2j4hvbaU6iXbhdcZ4K5u45PVF3taqo7hRGxSJPjQFaXE1Yy6yUvXbtxUWFxVE2phNH+ODV21equynTaBStqWG8KgLiZRPPRaYM5zk6/IzpZZ/9w5etXmJj2aPbsu/yyKrG1ZWbC6YWAortq7cqArnC+0cqVZoK8vY+PVFnhYMa/O4ZTUlEmvS0cByQUh0ZV1CTJATS1VsqlmbrizlMwiZmR5j4ykHOsbrpNBZj9oxnkhOWWzKx1MZyxeaMS3sHKcutvk3osAiVWd4Tui6nDQJhUmxLzBn2Dnl5ZUkOf1FEraqLtpTNU+BS8QGjbHx6jGeXHfi9eMevykznk/H+GlVrSZe2OovHqxDAALGLIAY/9Um3nl544jxxh5i5+XLzqCb0k7jU2yhgnTXpK3x472HHwQsJo3tK3p/v//Dq/6h3/qHSBf6Gw9ebMsdkSY/qmh9ee7Wy/ZrLzsHx3+89lGM9yv4pevJ65vKQ8iBP74abH/kX/LLpYfPC6JI+J+DKe7I6O6yvrYLN1omlu87D1IJ1pYVHVdxZFtT/+nz52pyYjk2pNE4ZNn2DYd6G7u6Gzbn+TqpOtUvXuQes53EWqoiSAf1DlVr/OkDuRzlrG8cZt32LhLjPRNbWzv7j53poZamtv4tqe7ixNaW3WnU/HCO/5FcPvud6ve11PiYeUbX99Yl8/m+Bw/syXb9jwhVjOfV7++70fS9qoRHz/Wf2pzM/qsyYAeRCfCsbHiRk8R43v+VvOpC50qpan4+Dq9+d1eD3IzEePoxBxXjnf9Lcvm5uy3nVFc59n3/8bMbQ/6Pjw4nLF9oirspsvoU/0R/2KIj9EIzJlO4NCpzbU715uwV6ULnD6PQqU7pqSE86ijLv0ipKdlIfstVzTmn2ujK8lm2s2Q16ahMLXlVlQE8EuOLciNslDGeak3VGeOnKIN6jDdb4OYiXZGYW5e/po7qTa19oM4Yb+2QlrV+a8FE2XJXb6a7alO3ZmYj8U0uTS9am55Xlb5y8yplV4JpW+PpKe7oGG/tkJa+dgV9j2y/6qLcUJv/0D0ZHtUaHyN0trbnUIujY8oy5RR3ZgvcXOWFy/NIeTIK6gpqVDE+eX2+QJmBSes0KyI4qTSjYmvByqJwbxcqD9NT3DlSIwK0Yry1XUraavLgIK8khbPowyMVOsbrpNBZj9oxftpia/hQD1DUZ+bTKPYCcwYndF3uMonlRJ63/Is0uqJh5cQrLa90c255Gv///miyQI7WFHfqMd6GGRmVVZVZVJWeV6Wo2Koe43WoLnLS+cKmf4+wAgEIGLkAYrxBn8Cxs5ELIMYjxhu7wBShXec/RZ54de/WWFL0h9Z4aerotjM/J0XfT+hQxfiAxfeTWsd7j5NIr74saXs90PkoRjmtvbj+5dDHMV6a8ez7iYZ3+iiqNb4ikpxHFv5T9cDsdqp3NEsrO388kaNqeabmbNuSqgrkqljuVrTubM9qZYKlttiyolfsvrq/TEq3xketv0XHVFffD63x2jGetMZPNLzTf85Ei1vojey/5dXMSWu8txXbLejg0d15cXUXNy3l2X8jp2K8k03pt5cPRtuqTKhCOugX4zVa412UrfESSx0xnvV3uXrDO32VwlbSh5/6Ubqy70vF+ILKzZ5+EdqfnxiObiXrGhiOOmbkVt+ZjvH0xkUWbu7R6/IKVambjlh0A6/VN3KdrfHKjaQ1PjOeT5+NWtEZ/+h99CmDeoynD1xk6x2cXZ8Z6/Fhy0ThHf5dGlGumv7dbIGbJJuMjbc2J63xVCMwfQi9QgJw7KaczFCGspGWlFkrxltzVijKSc929U712jFeozWeoxzabTnJnPZTdKonAxDKs9zsScymW7CVd/EhxlPlJ0MY+HkZa/I9zUnv9GljPGmLpp4a2DpasUN8/dyp87jGqjrh66TQWY/aMX7aYlP3QnWLWGjGtHJ2tbGaqthUX/plVVlCh5TUijQXS9XMgnTDO1V4ktLLP7TGc6MmbY03/0YUUriZGvVAdTbRiPE6VbVf2NRu+D8EIGD8Aojx9Ac5rMwDAcR4Yw+x8+BF9om3QAdmfVeSft45Mn6lcywr+4egmB8iSp/svv26v+UfYfKPYjwZG3/3GTVOPrDk2f62x/ERPyzrenP1FBn6Lk1+tKb/9T3lkHgyNv7u06woKqW/Pr/rQZD8fmD0wxWnX2wpvS9b/JgeGy8r+WW2x8YLok6enGgwp2Ddgg42NlZ5mScXnjiUIiTD2u0XKRuiwz0jvz27JplMU2dtzQ9f07e/MvjD2PjE1ubGKi97MjY+cceHsfHaMZ7pkLe+8/uV/q7kzPbJ1Kh7DrOOHhvvl9xy4tJcdKr3tmKTlv/mnsPf741gsegYT42N35IVYGfLtrGRRq0+kBvsqjPG25r7phy8uTWZTFBPj40PLFeNjbc195Vv7Du0MZoaG08/5qBa4+2UY+OpUfRWNjzxkt3V2aHW1nz55omx8fbJq07d/FIxXiZPTMuv0v4IFRabmpxVqr1dYwsdoZ0kxSlJEqrB3NGrjBrTbuksdXUhX0RPj40ncdG3jBrczhStLl5bGeqmGrmtKCf5igwhnkietuy4qBQyFFxn/KNLMnUZFtl68z0+jI23WsjlJ61eopwkj4yFjieDorUL7/h31URopOe5XWzCmq3LpI5m/+nhl1tPhbdFFm78pQVSASk8tVBt6ZnxImpAe3DGpsKVMUwzht3EYH4yYH7JhkJljLdxysutIO3Y6l84R7fGq4+NtzCTLi7eHCdhqu+pnINddV9TxHhH8WpqMMKiRVxBTHWusolePcZbMVOW5SQ725JbsLGJW7amiBpkPm2Mp++azIDgkqeoLvHjsizsZNHFZBj/ZBQ661E7xk9bbMqHmqTAnp25fLpiLzBnmP2nh29+bVJqlSKJDO5YaMbkRm0gz1yUszk4+a6IDRGQ18Ny1dh4cytZZPFWemw89RKiW+Mt/iaJKK+j+uRbOcYuWblVkfhhBgEdqja6X9jqjFiHAASMWQAx/hM/k+NwoxJAjEeMN3YBfdO7Wrv6R98bP/jiyG4yTb1yirsPrfHUTPUXhpWd6m/+c8tqMiteYMmzJuWc8+d7nhWuGj0y8rq/5VEYmc1u/ObwP9dmjVAz1ZMe9cMvL5x9TLX5B1X/0jL8+ubQy47zozUXZ/F74+3MpKm7bm5J/egb4xzN0sovtBd7O3lF7t56inT5Pnr23ObKeFdrNkdUuu5QL9XbnJqDnY7xDLuY1PqLTWc69x3cl5W0fYpO9Za2bGqmenLm09+vzyLzwFtb86V5jQfP9R9rbq8rXlXa0l7sM7vfG79POd8emWeuXDkLnS2ZuI5qjbe0ZatmqlfOyb+lnswhrzPGW9nw/JJbTl7sP7wuRudM9Q3bi32dSCd87U71dvRM9crxBQf31UXySfu/PS+78lBv05nOPYe2LC883bLny3xvvIUNOz2vKjmrlMlVjV1nOLqFxaSWrGuQyROn/VBFR2gzG0lw2lqqJzw9F736TPU8+cRM9XnZXs4k/ZIYr0iXJlVkFtflaM1UTyZXLy4KUU5frzP+0WWbugz0jO50XLR0jl2aq+y0X1abqojl2TJ0Fp7psSJtVW16TmncMnnYsm3LgsgwAWqmenKbZbUpy8IcJ0ZHU4WxYsclFdflrlqblrVc5BQZV7Y5I0Vqs9DbP3ODYmV5ckZBuJ8itYK0xlMpMW91kcTRS7s1np6pXqGcqT4+VjlT/cet8fR9TRHjza2lYYpNOeVrUwvzA918/bPr80qS3BbF0Z3qzRa48WPLyDT1paQKon3d9exUT+OrvoYgskxR1VBSXZeSEqSa7EAXBVvX4Ai6XuhzTltsUhGsiNjcOjIdQEn54unGAlBn5vhVF9euj3BTDX2nv54gt7QuY4XqOxEsrOXktGW1GXnZksWrixTke+NpajrGLzRjOvkUZpTVKYqqkpaFufLzsipr4/zdhInbMiJ42qrkwcHEVzCov7DpW8YKBCBg5AKI8UaVQlGYTxRAjDf2EPuJFTwPDp9BjDe5Q75sNXH4O9S/kn0OCoP3URrZIAq/4NgpPiFZ2LCjEhUl6xroJTmrVCZPLFnXoLO//RSnMuiftPObQYdjZwhAAAIQgMDcCBj0nku/U2MFAsYpgBiPGG/sAiaXyWdQ4Ln/6+DitefwmYZwLsvG0jNsXVeTcrr7OSsG3kdpaoMopo7x1GcghqMbly/h8iX0eHhPv4hZTfKI8XPz6RNXgQAEIACBTxQw6D2XfqfGCgSMUwAx3thDrHG+buayVDNIxSZ3yFx6UteyNfcNKztNesWf6dm7f30w76P54Wa7PHgfpYUNotAnxuv8iEMl+Wm/PV7nsdNuRIyflgg7QAACEICAMQgY9J5Lv1NjBQLGKYAYjxhv7AIml8lnUGDj/Oswe6XC+yhtaxDFjGP8AnMG3ThvDB+kUAYIQAACEIDA3AsY9J5Lv1NjBQLGKYAYb+wh1jhfN3NZqhmkYpM7ZC49jeFaeB+la8Egik+J8XP/aQlXhAAEIAABCBiVgEHvufQ7NVYgYJwCiPGI8cYuIA7uMblYbmiBjfOvw+yVCu+jtK1QHEqvT7si8Akxqs9DKAwEIAABCEDAhAQEPiHTvtViBwiYigBivLGHWFN5Jc1eOX1Drxiaik1u/9nTM84zI8ZT9WLHdPXyi9C/jjz9wi3tnEzoAxOKCgEIQAACEDASAUs7J/I2aotP/hCYJwKI8fOkIufxXyUXcb3JxXJDCzyPq0/nrSHGUyxMrsjFw08nkc6NPL6EwXIzks9DKAYEIAABCEDAhATs2G48vkTn2ys2QsAUBRDjEeNNQEAacc/QYGxa+5vi345PKTNivKUt29qBKwmINpTRVxa9yNLBhD42oagQgAAEIACBLy5gbs0UB0YZ+p6L/SFgzAKI8SYQYo35BTQ3ZbOyc/GX3/UPu2Va4Vz/0s4No/Fc5SuP8XZMVyZXNIMMT9WgryyawXJD7/ov/qEQBYAABCAAAeMXsLRzYrD4vsjwGE0w7wQQ4xHjTUaA57XBN6RXHDrfZrzzi+j2C47F8pUIiHxDvfwiXN0N6Euv/fyF5+Hn6RcuEId8JWi4TQhAAAIQgMAMBATiEE+/cPSl1/4ggS3zQAAx3mRC7Dx4teEWIAABCEAAAhCAAAQgAAEIQOATBRDjEeMhAAEIQAACEIAABCAAAQhAAAImI4AYbzJV9YkPbHA4BCAAAQhAAAIQgAAEIAABCMwDAcR4xHgIQAACEIAABCAAAQhAAAIQgIDJCCDGm0xVzYOHRrgFCEAAAhCAAAQgAAEIQAACEPhEAcR4xHgIQAACEIAABCAAAQhAAAIQgIDJCCDGm0xVfeIDGxwOAQhAAAIQgAAEIAABCEAAAvNAADEeMR4CEIAABCAAAQhAAAIQgAAEIGAyAojxJlNV8+ChEW4BAhCAAAQgAAEIQAACEIAABD5RADEeMR4CEIAABCAAAQhAAAIQgAAEIGAyAojxJlNVn/jABodDAAIQgAAEIAABpXN55wAAAChJREFUCEAAAhCAwDwQQIxHjIcABCAAAQhAAAIQgAAEIAABCJiMwP8G9R3XD6+Rl+8AAAAASUVORK5CYII=)\n", + "\n", + "Now, you won't find any issues if you haven't created any. But if you look at the search bar, you will find the reason why it is empty or why there are only the issues that you have created. You will see that in the search bar there is a filter called ```author:Username``` , which filters the issues which are created by you. You definitely don't want this as you want to search and find other issues by other people/communities. So, simply remove the text ```author:Username``` from the search bar. Keep rest as it is for now. Now if you press enter after removing the author filter, you will see all the issues on GitHub.\n", + "\n", + "![image.png](data:image/png;base64,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)\n", + "\n", + "There will be a ton of them, very random in terms of programming languages, frameworks, projects, difficulty, type, etc. they are basically the issues created recently on GitHub.\n", + "\n", + "Now, the ```is:open``` Label is indicating wheather the issue is open or not. It will filter all the open issues available in github so you can easily differentiate between the issues that were closed either because the issue got solved or it was irrelevent.\n", + "\n", + "The ```is:archieved``` label is indicating whether the issue consisting repository is archieved or not. If the arguement is false then it simply means the repository is still active otherwise it is considered to be inactive.\n", + "\n", + "We can filter the issues as ```language:name``` This will filter the issues which have this language in their codebase.\n", + "\n", + "For Example :\n", + "\n", + "![image.png](data:image/png;base64,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QAAEQAAEQMBWCaxc8W+rxDEuEAABEAABEAABEAABEAABEAABEFhiAhD/siUmjuZAAARAAARAAARAAARAAARAAARAYIkJQPxD/IMACIAACIAACIAACIAACIAACICAjROA+LfxCV7ixSQ0BwIgAAIgAAIgAAIgAAIgAAIgsAIJQPxD/IMACIl0pAEAACAASURBVIAACIAACIAACIAACIAACICAjROA+LfxCV6BC07oEgiAAAiAAAiAAAiAAAiAAAiAwBITgPiH+AcBEAABEAABEAABEAABEAABEAABGycA8W/jE7zEi0loDgRAAARAAARAAARAAARAAARAYAUSgPiH+AcBEAABEAABEAABEAABEAABEAABGycA8W/jE7wCF5zQJRAAARAAARAAARAAARAAARAAgSUmAPEP8Q8CIAACIAACIAACIAACIAACIAACNk4A4t/GJ3iJF5PQHAiAAAiAAAiAAAiAAAiAAAiAwAokAPEP8Q8CIAACIAACIAACIAACIAACIAACNk4A4t/GJ3gFLjihSyAAAiAAAiAAAiAAAiAAAiAAAktMwDrxb+/EwwcEQAAEQAAEQAAEQAAEQAAEQAAEQGB1EYD4x3IGCIAACIAACIAACIAACIAACIAACNg4AYh/G5/g1bUWhd6CAAiAAAiAAAiAAAiAAAiAAAgsBgGIf4h/EAABEAABEAABEAABEAABEAABELBxAhD/Nj7Bi7FihDpBAARAAARAAARAAARAAARAAARWFwGIf4h/EAABEAABEAABEAABEAABEAABELBxAhD/Nj7Bq2stCr0FARAAARAAARAAARAAARAAARBYDAIQ/xD/IAACIAACIAACIAACIAACIAACIGDjBCD+bXyCF2PFCHWCAAiAAAiAAAiAAAiAAAiAAAisLgIQ/xD/IAACIAACIAACIAACIAACIAACIGDjBCD+bXyCV9daFHoLAiAAAiAAAiAAAiAAAiAAAiCwGAQg/iH+QQAEQAAEQAAEQAAEQAAEQAAEQMDGCUD82/gEL8aKEeoEARAAARAAARAAARAAARAAARBYXQQg/iH+QQAEQAAEQAAEQAAEQAAEQAAEQMDGCUD82/gEr661KPQWBEAABEAABEAABEAABEAABEBgMQhA/EP8gwAIgAAIgAAIgAAIgAAIgAAIgICNE4D4t/EJXowVI9QJAiAAAiAAAiAAAiAAAiAAAiCwughA/EP8gwAIgAAIgAAIgAAIgAAIgAAIgICNE4D4t/EJXl1rUegtCIAACIAACIAACIAACIAACIDAYhCA+If4BwEQAAEQAAEQAAEQAAEQAAEQAAEbJwDxb+MTvBgrRqgTBEAABEAABEAABEAABEAABEBgdRGA+If4BwEQAAEQAAEQAAEQAAEQAAEQAAEbJwDxb+MTvLrWoha7tx4+gYqgaFlARGBYAj4gsEoJyJQRisBoD5/Aef5exD4qRWC0VBm+Sjmg2yAAAiAAAiCwBASkynDfwCixj2qet10cDgIrgQDEP8T/h0JAFRrHEUqd3T1Wwg9vYfsQGJawsBWuito+zFHTqXHmeHCE0gBN3JxnSqWJc+Z42zvx16x3wQcEQAAEQAAEQGAWAvbOfGeu93xuu3O+X+NAEFhYAhD/H4r0XdjzZtXVptLE2TsLVl23LezwhymDP8xRs08JBxfB3B5EAjRx6+zdZnnKwVcgAAIgAAIgAAJGBNbZu83ttsu+d2MbBJaXAMQ/xL/tExD7BHKE0uX9pS1q6x+mDP4wR210InGEUk+JdY6IYonKhetl9ECDP0EABEAABEAABN5LwJnnJbbytmt048afILC8BCD+bV/6Lu8ZthJaVwRF26S3P8P2w5TBH+aomUmnG84cD0VgtNHO2f/Ul4e3P4IdQAAEQAAEQMBqAvbOfN/AqNnvs/gWBFYyAYh/iH/bJyBTRqzkH+H8+/ZhyuAPc9SmZ4u1p7fUP+y9lg0UAAEQAAEQAAEQMEtA6h9uei/GHhBYLQQg/m1f+q6Wc3Hx+mnzKtHmB2j23PgwR22KwloOgWEJZp9msBMEQAAEQAAEQOC9BKy97ZreuLEHBJaRAMQ/xL/tE7D5y7TND9DsJfLDHLUpCms5QPy/98EOBUAABEAABEBgJgLW3nZNb9zYAwLLSADi3/al7zKeXiukaZu/TNv8AM2eSB/mqE1RWMvBQvG/wZE303MP9oMACIAACIDAB0vA2tuu6Y0be0BgGQlA/EP82z6BOVymHRwk/sm7ek+Mn7syOTp259DBPZnBsvn8ULlBZZEKriU1CMV9+670BdtbMS9zGKC9E0/o1Lnr0p1D3XHOTla0tdFRHLvl0d5SpSVjsbyMb9ro0O50q3pi1agd7X1Tdzw9N3EwmTM9C+52uS0Xn4weKHJ3tIKAs51akxXr7shz/y8pFRfG6tRulg/zvSU5/ymj+uqlMqX7e0syBaziYO/Em138+wZGF1d31XYM1HYMFFd3aaLSLF8F4Mibqooj7NdbnT9pAZ8gLenDhn9RhTd2RXs5LWC7C1KVm099VWm0o907AC0Z0UytO7jl5rcUeqx7p0I3SVlx4w5dcYRRQ7QSB+es7PYSydp3Dpmpfvb+tXYcWdrO/Ggxe+cK3J4Pz/kMZ/Z27VzUcl/P+dSPY0EABJaMgLW3XeZ+jQ0QWAkEIP6teOhfCROGPsyBgLWX6Y2O4qC00ZMXj5fGatwdeS4cdVTmqYM3zpf5C+bQur0Tb6OjOKL7ZlfstOycpZ4lE/9B5Vd25tfUj3wSzbWoY0yfnXi+bu4L/MNZAvGfvOvRseHx/hxvZiCe0UcPnb9z1krxL3Tq3DHY4uNACDjxfK1asGCanmljecV/bFpxRXOvKjReJFGJJCrfwOi8spbc8hZL9b8938HJfckev8w3ZFkf1jnx7JZ1kcJs582K/zWWjchshabif60dR5reV5AiMVt+zXoXmxf/8+E5EzSL9s86j+6K+uI0f4vqWXnnLboNAh8aAWufKme642M/CCwLAYj/BdYwyzKLaHR2AtZeprlritouj7dHeTDVbnQU+yeUhvoIifAb/qSiZuTg5YFoJy5XXFS3/9qx02MHz1zqLN1EDcg876qOQxPHhsdPjVzs1pGdQSWjg1cnh4av9uvCHRwkmuwjn5weP3Rm7OCh/hiJ0N6J57wxLGnb5aMjY/uPHt9c/vESWP7d/jWlfPh4Ot8rsuN6T4aEjtR5Y1hy58jB4fFjw+MHD/UnyoUODpIgfW+PDY8fHTxeFevHtvx7B3bvHLxz7Myl/r7i8p5Hu4t83X4XX3ruUkvG1rZPzwycHj9wYHOAC/mJuWzQkppHxg6dGRvoLVa4kp2u/Ny6QxNHRy4OfLIjv2lksS3/Sbvv9nR9evhYqadetzva+8b1TXR1nqDi3+y8eMaeOjfQktR6cufhS59eON+YrHC3y20YfjgycfvImYHEdcmM5d8nqrf3xPjxwfGjQ6cbMlTOeseKvsv7i7IO9H4yvG9kbGdzPD09pJru3hP62R88XhUttXfiUcgHh8cPnRzuqtzaukyWf9/A6IrmXlOdn1FYF5tWbMmzHWPbdBXnZlT2lG3u0TW0p0Up7de7bLRPSO1sCOI4r1nvYu8aHVvcVVbdVVzTnp4c6GjnsuFfVFGN7Qkh+Sm6xtyarvwCLXcjsTxvcAvXFncVV3cV1bYkRfvaryclw+vaY9WZSYWNedU9haUJQvt3bNSz9GH9R3JNxc40lb4SveV/7Tq+KLg6r7qnuL6ndHNtlL9gzXoX087zlMSjgS4WOLoW5DfmCte5rF3H9wypJMdWd+WV5/lwydDYH3tOTHxZV2ndNATa+bjg0ryG9iipk529X0BWa2lTb0VDG6Xk5lO/uSQ9IL6puK63vKE5LsBjzXoXOiIOv6y4gbS7Zr3LWjuOZ8K24jR/O3N9WLfexz+zo7S+K7+iKlpbSi3/DH9RVFNpy8Dmpp68gkintSKvmPr8+p7Sup6isiKZfgiM+F/vROCX1pNPbo5hRlzFuSmV+hmprgqXE1zMh235n2nsphPnKs5Nr+4prWnPytSGZO3MieDZ/7M6qrE9WkR4rl3H983bmabmkNPGhCedLKPDzZ42a9a7SBK2lWaqGJ72613Wr1cF5XaU1pHh5+hPOWezkNe7cHxKsqtJMV1dbZR+1HZ2cv+01uJ6cuYQdILpE7uisbe8lhSj6yw5CYkJNT050V6GM9POXZa1MyclMaaoMae0q7CKYN8oKihuGKht7ckv0Lq86/fB4MUGCIDAyiFg7VMl8zCJDRBYCQQg/iH+bZ+AtZdpoWLfseu7IzaYISN06tx5/U5/YbCzE89lTVjRobs768OcnXiurhkNZ8abonnOduqsgw/3liqJ/OPU9YxfLJe6O9upMw7dpZZ/ScDBQ5f2x4q4Gx3FgRlDJ48SLSqNPXXmbGeAC89pfYC2++b5y4vu9i8JOHhwd667I0/kv/vTgwY97BFy9ORJYtPe6CiWJ+3tLIzgr6vqvnY8TUhcA7jyupb+YulGEXX7d/vXlKqRuz3pCnsnnjRw38GrkwM53m6/i688/fBQX4bQkef6kVZ34u62JPFGR3FIzfVTB0p9XMkA4/omPm0Oc3CQxHTdO7Q12d2R5+qQsvnok8UW/8m7Hm1Pyqq5OJwv49g78fjrqraMDCTFHqXi3+y8eEeeOn9jMF9JPD48o4+eGOr028jzDDh4YohQYtz+uS5V266e3xzkae/EE/E7dlw9ny/j0FOlJyeAoHOp2jpxOsubw3Wp6rp6qS6UrCt5i/sGrh2M5XL5/M49Y6ezZIKNjmK/lFPHbl9cFrf/4touVWi86dMVRySv7Rhwcfcy/cpoD5U3jh/JQ6p6kvyIYNtgpw7Oy/NxdVm3wUvgF+Cy0YUo8Mq+zHAvO736iq7sTVPzifiv26PLVTvaudj9q09Q6c6ccPH6j+SBpX05UT6k5EaNtqYnXu664fd+4dU7i/QlaVXJKld2N2bpw9p1fFeZhu82Lf43rotNa6sNcCHKbSMvOSYv0v33ZjpvVvy7iSuLm3U+rkSKC4Kayipi2LLNbo2XsnRnTjQZpqNjclpHcwjfecPv/aKqdxQVRLrY6QV87NaiAg1Z+9gQHt/QEy9xdfOpr2xvpvKS51tfVpvOszOIf6eP1NENhlCFDWtU0Q1dMZ5OZvvgrqgvq83ibnRZt04ky9hW3Uzc/hn+VJHmR5HZJFq3WSd1JBrbO2VbeYHajmX5N6wvrCf1+CRuDpe62W+MTWlpj5Fwiep2y81pLpc7mhH/M43ddOI2rFFF1JMTYM16F3fPkuKWgUwN36z4N1+nucPNnjZr1rs48TWeYiFb/HtEby3Xxz6sX+sXUbEzU8PfYA7yxo+0Ca3t0Z5upJOy6tIWsgTj5F1ZVp3A0c8jN6AkKVxKzsaynjQNmXFXYUl+W7ncwV2W3FdVk+vlSihNi/+0nTU1uR725BwQxnWUF2js17uIYrfC8s/+IWMbBFYyAWufKleC3kMfQIAhAPFvRuAxdLBhGwSsvUx7hBw9c5bIPNPhczl1vTePUTEsdOrsvXmMiSEPrLl+rDuaOPm7SqgruOtH2uKzE+36FQEq/jc6irWt9w51htKaef9S1j5xOl0gjOy692lzGN0pDtx3fJHFv6O9b2z/tfY4MkBiqz9t0MMekt2Hrp6uTY+RCAxjd7fLbboy3lebqfQxeMszln+SMuDmwTgnsi7gsias8PhDKv4rztxtjyaHb3QUJ24zuAOQnfrmiIrWi2fF/xFfdnaiSV+SBKLXXF8C8b8tSaxuvP5xvdreieebNHSoO847hIh/joPIdF7ShFzvyFNnTlVRTwEhp2fgykDEBjPi3zN2upjT+oC0vQ/7c7y5nLrttwwpBtz/S0rthUub1e7sCumS0JZkLln60a8B2TvxeP9S1jy+POK/tmNAJCGmUdPPLF+xC1N547DGyz+/ryg/1lMsNHWt3+iYnLGlihGNfG1HeYF64++ICEz0N8h4YQTZ6agv6edg6A9VRxt+7xdW05skJ+H6xNScRZYJrO0DE/NvvyY8rrknNT6UzzVEK9iZ67wZ8b/WXZLcV5wsp01v/Egbt8WwiDDdGXs+Hf76j+RhVT1xvk6083SYG37vF1lDdtLyNAyBiP/N8XQRwdExN7ulULJ2WjRKErYVpJAWnTklxbVZvHVm++DO9up35peV6sU/0yu2+F9rx1m30TBwJ1l1VUWMo9202z8/srW8sshfLnHQe2GsWe/C7p7dGq/A0r4Uv+mVF7blf80MYzeaOEf7rIwt5b4byBTb/auPRq/AzYp/0n+TOs0eTk8wo9OGGf60CNefPxumhuadsq0gRbLWjmMMWW+HX+vsTqdyo31CypYq3w0uTryCgtaGqKAAZ2fD+UnbpWNZa8fZ4OxOakvuYyQ9W/wXpxvOHCdOSVFLrsc6iH8zlx32rGEbBFYUAWufKk0fJrEHBJaRAMS/GYG3jPOBpheDgLWXaWr5D3c2EwnP5dRtu7WfKl6huO/Tmw8GzxMneeIVf/HO6d4MZ0exb1Rv1+FL+08Nf3z40pFrd9ji38FBkrDj6YWLhkOODY+fvHK+3M8zftejvaVyOvYliPnnO9b1jU0OXX1AP2fHJw/rlx6IwT+so3Xg8pFrd6jbP7GQS4sqtp/df+HB4Kl33P5JPy8TMUwd1+N3PaLin0j6UJIDb6OjOEYv/jn/KaPh4pMhZtTn7xwf6Q7/3zJqro5tVhsy2ykXP+Ff8q5H25K5QnHfnnOdQfbqtCPX6oL4HlT8bzQzL2VKotXPHigV6tMBCjk9u66bF/8kYcFe4kZBUSRuIwkR2acK9RHYrHb3TRsdHbtDT5hjw+ODF+7053iTsU8d7v7fMhqWw+1/gyNvFoU/y1fsBzKDvFnvYmfv55dUkV3du7mhOUnv9s8Uc3DLzWPlk+MFtlaVRjj9jmTgi/E0KGG+P9np6pZbuGVHhd4rm/hmN/VW5Krtf+8XWtMT4/Me8W8/ax8Y8U9C3LnRYel1+Y07KjZXRfkRN3vTzpuKf9Fann/mntom4gpOP2UtzcHiac//tXYcrjw3pay9oKwlv6xd19pLxT/Teft/Vm9qMU46yI75d3DOymnWTYt/lub3TNhWkOCzdh3ftA8hIq5v3vSCCAlSeDfhH1v82zmqAjLq8qra88pa8jb31uidFxi3f7s1Xh7qkrTSnvK2niy92z8vsLW2tZcZcmlTb1ooMdrTDyP+3zt2ZtWGdo8mF6Qe/jNZ/s3WafZwB3OnDXsRijlLHTkxsYUtBVUteWUtxY07aB4EZmGFQibnwxovT21ldhmhlF/RU9FJxP9aOw5HlhRbQGa2qCRPJnA3OrHp4pQkuS8v0ZDGjy3+qecFOf2mfg6w/DMnEjZAYOUTsPapcjGebFEnCMyZAMQ/xL/tE7D2Ms1dU9R+6U5XkiESnupYde7eUq2Urej4jsS0SxcCmF8g35G4+lMPcLffEeM2W/xTyz9j5KdHUVs6s9Mz4OBiW/5VxVcOdxAnBfoROnX2j/YH64Pz6R5Hp4Dw2iuMOZpqWv+wffuuHYzlCKnbP5/fOXDNMHxnOzVj+TcV/64fadlGftoECRAYJYES9E/15ptLYflP5rqsCcs9da0xcWv/OeLcYRD/ess/MwW0S8Qz3zLxb2T5zzr4sD9XxD5VGPFPLP9TRn6mFfmmIWYn71/KOpfJ8l/R3OsbGG361OXi7mWV2z87278jJya5vider9VpzUaWf2H01opcg+U/SW4wI1N3AKf1xEeAmlKZXm2wWPwzh5j2gS3+aTHiui8py28zWKHpTuZAtvh3EJaQ2Hu95X+WtHkb7RPSOpqjPYmHPGPkZ3dev7OXGfI6jo+zMzGtM9n+TcX/hjUk30GUMCiyqSWC70wNy0Z9oAq8IMGHDsHJY0bLP7Vy6woiXPTWb9L0u+KfAbjOyS+sqK8gwcdlyjuA+Yq9wYj/946dEf/6hYZy6ZTlP6iU+N7b//N0gIPdGi9VEYn5N1un2cMdzJ027H5SEe74kTy8speGn5D+JBuSIBpBJv4OXtVlDYXUdZ9t3qd1rtvg5R3XUVYZ7c5yVFlrx9ko8HTcSFwzzIp/xmfEcDrB8j+1hMSeKWyDwIolYO1TJXO7xwYIrAQCEP+2L31Xwnm2vH2w9jJNs/2fuXK+Jj1S4CpyEYRFbj556OrpLDmHrehozD+N/3d0VMc2HSgN8yTO4WPHkzkkpF8Rs3fv9TtdsVyn9QFZBx/uyBDZO/EkAQcPDw+EiYlbgVjR0diT5+lAXNCZmP/kvonBxXT7J37+Q2N1oXxmUlzWhBUcnmiPJQHnOzqTqaHbN/bUyaOlCs/uvgOtAXzyM/Fw7OxjiX/3/5ZRNzpOl0h81Lv3jRli/k3FP435P7o711OfTUCZuLe1KMLBQaLtnYr5d82oOf1wacS/vRNPmTZ6bHh8T4M/GZTe8u/uaH5ezIp/oWLf8ZFu1UaTmH81QSry7Okf04f3s5xEGPHPcSvbMmbIDuDqmlGya1uUiCvk9DAx/4EZQyc+Wx63f402Lbe8xfRhKzIhJ6OwznS/6R4qq5zs1OFV5Uo+iZHesEYVVUmc29dt8OL6G8f8b7BTb6ruTVZxDDH/+gD49Wv9SFIADd/uX30CSw3ZAdZt8JIkVailbmz9zGhIdk9m6cPadXw373dj/jlZmboMgROxXTs6Jme2VSkczHTe2auaht+T2PjErZX6xHsk3n5KEzrxkmOzSCQ/0xOiS9uq/ByIiZjvW5bX1pviRxIWMJZ/mrRPV0y094YN4bENJKPB7OJ/zXoXz9it+XmbC/TR5kSXmusDT9lUWZsltCcma0XGtoqpmH/Kn7H8U3oFKXKafCEsf1vl5ngO4/b/r0JJelOiPuPg2nV8aQrxNbDfGJvcaljRWO+gDs7P9tFHs9NRkwr1r/qzZOw0XmPDR+rYBkN6CDdRQb4+5n8qlYM+yZ9zQmrbjky1u/k6zR1u9rQh+QIFak8PHuP27/Q7VXRDD1182eiekLh5B+OfbwTZXdlUWU0SOqxbJ5LGt5Z2kvgOvqo6K11F35VIkixUxLj/niSzoCkqXHkF2W1VcocZxX9NTa43TbWQuLW8QG2/3oWugrE9FJhzCRsgAAIrjYC1T5XM4xY2QGAlEID4h/i3fQJzuEw7OEj840n+9rPjk0MXxwf2bNnkS9Lys8U/+ZNm+x8ePzoy1t9HktiTjH0dJG//J0fOtBZuiq65cvLC6cwAQWDG0Klrdw53xDva+9Js/yRS4PShUi3J9+6yQZu64/Kpi+MHB4/Xpu3afaXfbLrBmS4ZVg3QQ7Hv0Eh/sP07864qvnJqb67ALaWk//LRS/ps/8c+SQ0QOK0PiKw/e+g88VSneeyZmH97J548bN/A8J1jJ8/3tpeU7jTE/JuK/+ls//Q9Ap/0xEjI2oeruKj50MTg8Ni+Q/3ZlWeH9qVb9do8q0btaO9L3f5p+r3u8fMFXiTtHyP+zc6LWfHv5pzbNPjw5MXjuaJ3sv1vOzN++LR+BmP9jE4VRvyT5Ij6bP+E59nzWwrJyyAcHCTqspMHL5L3JvRU19QNXar2N0RDzDTj7P1WcSDpFcISzD5IbXDk5ZW1ZBTWcUSGgGQXd6/I+JzajgGNNs3sIUY7GcdmnmIqO3qDIZ8/k22eyfZfrM/2n5JgyPYf3tiVtCknpay9uJ7kPHdnZfsnfub1XVmZke4biRWdrZ9nivm3t3M37QNRle9m+7db4yVJqCep/ut6dLUNcQHea+04Zg5c6xdUsLV4c0NGfkVUYHHOu9n+ybEmqe/t1nhJ00jK/YLyxsQQXx9tR1ljrZqvYDpP4wtUmR2lTb3lzW0pCeSdCO8V/46uBYWdA0yaA+aNA+w+2NnJVZkdFU09RZtrNwXlZ+rd/hn+jPinOQ5pqvzcwmw5Pya5vjc/S+3qlJWtj8uwFyQkleqDGuq7cooTxPolEldxbmqlfmdtc3I4ef8Ccw4w4v+9Y2ev2nB8SnLrekurWtLTIoPziOWf6HOfktyarjxdXXKmNjJzZ2aou9k6A8XOZg+nL4lgnzZmsv3bufP9K/Pre4qrWtIzIz0lZYXNXclqkj/CCPJ6B3Vk8TZdQ3tOZXmIV0BQUV9Zbbp4oyost51GQBRV6pRi/VIXNzqhtKeisbeitmGTnwd1zTBr+c9LT4wtbMmv79FVGl6y4MjPzW3cUbI5nb7QgaGKDRAAgRVIwNrbLvuWjW0QWHYCEP/vSKBlnw90YDEI2PxletkH6Gjvm7j3UY/etWExZtBsncs+arO9Wvqd1nKYSfwTQ70jLzatuLZjgPlkFNZptGm1HQNmIwIW6pnM1A9/oWpGPauFwLp1IuXUW/3m0GfLDzcsUbGWLebQ3JwPYZZI5lwDDgQBEFh2Atbedpf+wQAtgsAsBCD+If5tn4DNX6aXZYDOdurUfXd3l5K3Hgo5ddv077eb5Vqz4F8ty6gXfBTzr9BaDrOIf/pE5eLuJZKoRBIV83o/38DoRdX/EP/L/iy7LB2wW+MVUNzHvBAxvZW8ENHynsztcF5ER1WxZrkc7CH+LZ9flASBFUvA2tvu/G/0qAEEFpAAxL/tS98FPF1WaVU2f5lergEK5XVtJyZOXRw/Mnq+NSfEKqf9+Z9LyzXq+fd8YWuwlsN7xb/Z5y2q/5nlALNl5rwT4n/O6Fb7gfaChMTKnoq6Hl1Dc6JGaq0mt/Zwj4iOqrYtcX6C5eIG8b9c5NEuCCwgAWtvuwt700dtIDBPAhD/EP+2T8DmL9M2P0Czl7kPc9SmKKzlMDfxv2a9yyIp/wV8IENVIAACIAACILDYBKy97ZreuLEHBJaRAMS/7UvfZTy9VkjTNn+ZtvkBmj2RPsxRm6KwlsOcxf9iP06hfhAAARAAARBY+QSsve2a3rixBwSWkQDEP8S/7ROQKsOX8Te2BE1/mPehD3PUpqeTtae31D985T9aoYcgAAIgAAIgsDIJSP1t/KnS9EkDe2yJAMS/7UtfWzpf5zYWRWC0M8djbseuiqM+TBn8YY7a6IR05ngoAqONds7+p29glL0zeaEaPiAAAiAAAiAAAlYRsHfmk9uoE+QDCKxWAhD/q3XmcN2xnIDYJ5Ajio+C3wAAIABJREFUlFpeftWV/DBl8Ic5aqOTkyOSiiUqo52z/ymWqFy4XlY966AwCIAACIAACIAASX/D87L2tjv7TRnfgsASE4D4h/j/IAgEaOIcXARL/OtasuY+TBn8YY6afVI5uIkCQmLZeyzcDtDErbN3w2McCIAACIAACICA5QTWO3CUc7rtWnh3RjEQWAICEP8fhPRdgjNp5TcRoInjCKU26f//YcrgD3PU9IfmzPHkiOSq4Lg5/+4CNHEuXC/4/1v+zIeSIAACIAACHywBe2e+C1cytwX3Od+pcSAILAYBiH+I/w+IgNgnUBEYLVNGBIYl4AMCq5SAPCBCERjt6R04z1uC2CfQNzBKqgxfpRzQbRAAARAAARBYAgJSZbhvYBS8/ef51IHDVwgBiP8PSPqukHMO3QABEAABEAABEAABEAABEAABEFhiAhD/EP8gAAIgAAIgAAIgAAIgAAIgAAIgYOMEIP5tfIKXeDEJzYEACIAACIAACIAACIAACIAACKxAAhD/EP8gAAIgAAIgAAIgAAIgAAIgAAIgYOMEIP5tfIJX4IITugQCIAACIAACIAACIAACIAACILDEBCD+If5BAARAAARAAARAAARAAARAAARAwMYJQPzb+AQv8WISmgMBEAABEAABEAABEAABEAABEFiBBCD+If5BAARAAARAAARAAARAAARAAARAwMYJQPzb+ASvwAUndAkEQAAEQAAEQAAEQAAEQAAEQGCJCUD8Q/yDAAiAAAiAAAiAAAiAAAiAAAiAgI0TgPi38Qle4sUkNAcCIAACIAACIAACIAACIAACILACCUD8Q/yDAAiAAAiAAAiAAAiAAAiAAAiAgI0TgPi38QlegQtO6BIIgAAIgAAIgAAIgAAIgAAIgMASE4D4h/gHARAAARAAARAAARAAARAAARAAARsnAPFv4xO8xItJK7w5D59AP7VWGRKrDIkJDEvABwRAAARAAARAAARAAARmIuAfHKMMifVTaz18Alf4Uy66BwKWEID4h/j/UAioQuNUofFiH5XAy58rkuEDAiAAAiAAAiAAAiAAArMTEHj5i6WBqtC4AE2cJeIKZUBgJROA+P9QpO9KPguXoG8qDVH+s1/c8S0IgAAIgAAIgAAIgAAImCEgVgRooP+hm1Y9AYj/VT+FS6CcV3sTYh+VRKER+wSauZTDBQAEQAAEQAAEQAAEQAAE3keAPk96SlSr/cEY/f+QCUD8Q/zbPgFFYLSfWgtvf6x9gAAIgAAIgAAIgAAIzI2AwMvfL0irCIz+kKUjxr7aCUD82770Xe3n6Pz7L1NGyAMi53ahx1EgAAIgAAIgAAIgAAIgwBXJ5KpImTJi/o+mqAEElosAxD/Ev+0ToBlccdMCARAAARAAARAAARAAgTkToI+UyyXb0C4IzJ8AxL/tS9/5nyWrvQaI/znf5HAgCIAACIAACIAACIAAJQDxv9pFAfoP8Q/xb/sEIP5xzwYBEAABEAABEAABEJgnAYh/iOfVTgDi3/al72o/R+fff4j/ed7qcDgIgAAIgAAIgAAIgADE//wfy1HD8hKA+If4t30CEP+4W4MACIAACIAACIAACMyTAMT/8gpXtD5/AhD/ti9953+WrPYaIP7neavD4SAAAiAAAiAAAiAAAhD/q10UoP8Q/xD/tk8A4h93axAAARAAARAAARAAgXkSgPiHeF7tBCD+bV/6rvZzdP79h/if560Oh4MACIAACIAACIAACED8z/+xHDUsLwGIf4h/2ycA8Y+7NQiAAAiAAAiAAAiAwDwJQPwvr3BF6/MnAPFv+9J3/mfJaq8B4n+etzocDgIgAAIgAAIgAAIgAPG/2kUB+g/xD/Fv+wQg/nG3BgEQAAEQAAEQAAEQmCcBiH+I59VOAOLf9qXvaj9H59//OYt/T2lQrq5h77HR0fHJwUt3+vcP5uoaPKVB87xz4HAQAAEQAAEQAAEQAIFVRwDif/6P5ahheQlA/EP82z6BuYn/2NSCwUt3jgxdr27tTcutyCttqG7tPTJ0/fCZ6+GxGavudoUOgwAIgAAIgAAIgAAIzIcAxP/yCle0Pn8CEP+2L33nf5as9hrmIP7DYzNGxyerW3uN7hCe0qDm7r2j45Oz63+hd27l7qunr06OXBv/dH9XjELKrocn9Ndkfrpv+MHo+OTQ6EhnRYKXUMYT+gel7h04e3d0fPL0uZHO4hiRSBaYf3F0fJL9+aQ6gqnKy76w5dIT9rfnr+9N4spMW+cJ/eNaPmeXPLenUCSSMVVxRTI+XxNWuHfHiYnzVyZHx+4eObK/OCmMXWBVbAsVKcnl3br67pL6LZkZWg/hO2PkCRXyiOqChr7Klr6SiuIAH/ItT6DyT2osat65uWV7UVmWr7dhZ0BSY3G9vqrKqpAAX6Phi6QpyWXbK9t2VjS0pEQGM996qYpz6gd02eHMnplKMgX4Qk1Aem1hXd/mzoGq1u68wmzaMUloW1VZktE0MUfNYUPoHpPQtiU24J2zcQ714BAQAAEQmJ2Ap6KqsKMmyGv6CswTKpQZvRWlsfKZr2zMRY/ZYLdi2ClUBObtKkxWCTna2KbuhEApT6jwiUiSiafbYh+1jNueqqzk0i3lrQO1nTvLaxuTYyIW8HpOx8VAsHyYPJ+Y4FDiwCjyKc7rqFIJVhw307HwPSJDs1uL9ffuitbuPF22v/5ObVrSaA+fr1Fuil5Y7BD/q10UoP8Q/xD/tk/AWvHvKQ06fOZ6c/deo7sI82dz997DZ67P5P8v4EZk7Xk4fHO8t3NrddfVofHJ0x8XerFUqHdA/6GJyXNHdmQkVTTufzh861pzlEQi698/MXnu9MH60t7tp5+cv325OszHO6yyqLKFfqp6rw5NPOjLnw46EHAjokoN3+pKd/VdfHL+Qk+km5nWvQX+qT2Pzt8ebkkriU/Rxafo4rTTepUof0FgbOONofHJofODrc29da0nDlyYHL45vi0rlBn1StiIiMkSeiln6omAF6at7suNDeSKZAJRTGJ9X1qEnF3YU1pe1FIfpvDlCZXK5K6KsiQPocwrqLG8sSZY7svnq1U5PWVFsSKRzFNdV96s8/eW8YQKaVRbeV2WlDWDtKH8jHBSUpab09au1a/vSMMbi6pKEwp6GfE/U0mmV3y+WqPrr6gpDQ4IEIhkAqk2NL+nskmnFMvMPv4yB85hA+J/DtBwCAiAwBwICHhhsdV92Zv8mGOF3Pikpu0pGjlPrBR7Gy+n0mLMV2avfvRb3pT4J3cub6VAJBNytDFNTeGSlSVivZRVxe3dmfHRXhIZT6iUBOVkNuwszo4SvLvszvCZ8waFYPnh3mHNutwosvAtVAgl5ifC8tqWoCRdNiory5DpBT/fIzKqpL9Cl2CJpBd65+bVFbJv3/PvMMQ/xPNqJwDxb/vSd7Wfo/Pvv7XiP6+04cjQjNqeK5J5SoOODF3PK20wexcRu6Skd37cUJHmJZR5uhLj/MipLezFdb/4s6Pjkx8XE42qShkeHZ/cVeInjerp6P04W6vgimRB2cMj4w/6sqcfZUT8lLITD4cGt4TMsEiv2nTy5K3xbalBZlsP5AVmDzw9f31vrNjPw09lesuUeG0bmJgcObsj2sPQqETZunNs8vzl3dEepJOkP/XNW0/cG5p4cOLgthi9zVwoiM/qPH/kAnFw2LejLtiT+C8k9Dw6d/dUeULfwJmHo2N39/YW+c3QZ7P0ZtmZnFtZ2dLnJVPPVEbIjU9u76A6nCdUBBfsKkp6Z41DkdpDH3qI0UOUkbalMdRHFpDVX5QTQusUeufmdFYFiWXy6M6K0lj6lGYwj7DMSiLP7Kwt9SH6ZzieUKHK66cNiZRhHkKZMmNa/M9UkhmCh7JK114fqudJdxJLRWycxHta/PM9IsMKOkoau0sau/PLDBYPrwBdTvX2irrtZU1bspKi6Jx6Begya/TeCrX1sRqySsITKhSbGnWN23U1HdmxRWmw/C/0kzczldgAARBgE5BGd1ZUpTLuV57qurLmIoVw+spmehFjNL8ktG1zRXF4Toeuoa+iqSUpglzNzFr+EwOCQgt7qzp3VtZ3pGg365pLlVPXakVqT1lB5IKLbfYYZ9rm8zWRlbsKMzTsAh5yXX5nS6RcJvYszmuqik/t1LWQ241XgC67fnt5/Za8/DRtwa78RH+uSCb0TU+p6i5vmL7CEyN/w5bkTUUZpa2FdduLK7N8xWThg7o/iDjJSU3byxvIp7J1oLouy1soE4i1kUVb6M58XapMLBMGlOuaB2rbthfpUmVTln+eQEU83eq26+q2l9RUhek93TzDmyt1haHZTflVW0qaOlIiyRPLsnx4AlVoya6CBFYHvNReUrJsYXpzpHfkgozstPrthYmZyQ07a7b0ldZXsJ1Q5jkKiP/5P5ajhuUlAPEP8W/7BKwV/zs+OW3k8O8bEOEbMO1vzxXJmrv37vjk9Cy3EJ7Q31Opjco4cmhi8mB7CltvS7y2fTw2eWJPaaCXNn37TWrkZ6oScrS5nzwkO9U+zM6Q/Itnbl1rjn3Hjs186yEobBt+MnS4lpHZRq17cCMKDz0ZuTZ+9BwJExi5MFSX9I79XJlK1iPYMQV8QWD6jkfnb1+uD/VR6L8dPbMvJTQ6svDs4Pjkid4MkdA/uu3W8M3xvrLU6PC+j8cmj3SniIT+SR2PRsYfnDhA/BoaDhEPiPYY891m+m/JBlX+UuVskQg8gSqksDcvQ0NM6B7xSQ1bEgOnm+YJlSElu3JjDQNnnpkCsvoZQ71YkJ3d2R4pl3nIdQVNVYE+RDz7atvKyomPANNPKulDpzxaiS9rUTTzran4n6kkVySTJ/dUlSeYfTxlnnSVGb1lugQPIYlQCMzuLS/Qinhh2prtaRHEqiYQxUSXlAX6yIReGRltW5KCyU4vma6gpSbES/+U2d4S4ad3YQhrLuvqhNs/M1PYAAEQWDwCIlFGRluHVk6unDyBKlhnWCSlVzYPcxcxtviv6WhP0F/NpJrGstaKaWeoKcs/cw0XCVLTtjSGS2QCvjZB71xAxDNHG9fQnRQ8fQtYvJGa1iwSZaR3GjzCmG+JN0TdzqwYEpqX396Xm6C/VfG1cY192ZvIjck7qKqkdSA3Vsnnq0Mrd+UnBQtEMg/v3Gx9VQJuZGzdzpKiWA+hjPqUZUZNi//pVojX23ZaoSK5hzq4CQSRcZt30tsfswjOuP0TT7emigC9XV0a1lxeXyQXyrw0zdUdLdEBBCDxj2sokLNugkxzS7MhDWuuaO1MTU9WBgYxT1MGj4B3b44CoSIoq7+qvpRGz4kDq8trC2D5X16pidZXGgGIf9uXvivtnFv6/lgr/gcv32Vb9X0DImi0PFv/55U2DF66M8ttz8uptP3ak5HxB4c/rQ32nNaN9JCQ9JPH9MH8wzfHd5WT8H66XyiIz9x1c2T8wcH2FCZSwMu9svPSk6HDFbIZbr2hFWMkdiBy2n/PqHWRW3z+gZuDo5e7G6vyio8cvmow6TP9D9EnF+jLn3bRpGkChm+OtyXKDa4KFcQ8bvBlGOoJ35DbOPyEuAbwSdQAWSm4vFvL80vs/JwGMnBFMnrgLr2PA9PWHDYsUf60WoF3SnoDid6vbNtZkKtlwNKnz/DSXYwbqoAbGVO/PSVYSp57Wmo0fr48kTowrbOygzyx8YRK/5TOira+8uadVc0kUoDdbfrgVZgd5SFUePhlZTUMVE25CXBF71j+Zy9JXD8yiJhnV85s0+dgT25kfH1fmsbwCCtSVumaS/14JFigRJeh1AcL0EO8NM2VemuPPoODOqKqLzNC7hneXFWdQVcuRILU1E7E/Bv/GBng2AABEFhAAjyhUl3YX6y3fos8s7PbW8L0CwH0yibWRzwZXcTY4r9yKthKxElO7dwSp5Aavp1Z/HNFMkVqT2URcdoS+ZUXNZcqWDfNkKiU2o4Bo09ybuUCDpmpijiR6dcjmD30shxeSizYIg/9t/rlY7Fncc6WGupHxudrNlUbVqh5YhLRQJZ3eWGxNdtTQqX6e1ZfWihJ2kJd2woSApkVENoQT6BS5/eW6RcIaDHhlDdfQHYv9XEzEv+BAt8g1gq4nja5CepvKBneeoBiH11+awXbgdEU5iKRNIxLqPBWpccXNhU37Kxt255fUBjg6yswd3NUCHzJgr4+roErkpkV//PsPCz/S/8YjxYXlgDEP8S/7RNYLPF/+S77vm60zedrQlJ1ecVHPr06OfhpBWOTJ08nofsOX508uqM2Ibogp+uz4ZvjW9KIm59InFn56b2RiTt7mlMZ5c8VyULyL45M3OlKNG/BMKjxwQZ2E7O0PmXSH9YFT3sWzG75pxqehiF4OGXWnSGaP86+dOsY8SM4d/XBuaskeeG5u6eyvBSJnZ+fvz2s8ycPKPLIo0NTAQ5GfGb6U6oMq2jqY1v4rVD+fG18TXdaZKBA7w24qWx7TuK0o6Cp5T+eJouiHo8NfWUNLWmbitI7W8IlMmlYc9nmQl8a8x9cXdRE7E7sPgsVKUlV2ytbtheVFkZkdpUVRDLfsi3/xAA1c0mD5X+GrH4G8e8ek9hGklrR+kVyXaE+RRNJgJRZm1/Xt7mpPUPv9i+N7qxt66MenuS/LX1ZsUppdGdVWRJ9iBRy45Hwj5kmbIAACCw2AQ//ap3e1Z8EUk1d6BiFb3oRY74iG1WGdKfCqWug4dtZxT+RqR01IV6+ytQeJp6LGaaR6ls8vUq8HkxWWqnlPztKphf/NUH6e4pYVl44pauZmxTJNaMpydy8pbiqo7BqS1lb35T4354UPJv4l2oaS6ds+FyRzMM3Pbm0o7imo3Bzh655p3nxz/cPYTnVM7S9NM1VU1EbIp/i/Fbj1IBsmItHkpk7ZkMk12fGqS/yczNzcwzUi//CDEN4oFnxTx6rWCtB1nYe4n9hhShqW3oCEP+2L32X/qxaaS1aK/7n6fYv9MnMaNlVmx9L1uy5EXn7nw7dPZolMog3rkhGvOX1Sf64IpmP38ChCeJFT7z9P743fOvalndz7Inc4suPPzl/fW/iu+KTuRHKI48Osjz2zbaeLYqOK+muzE8U6bP6Z+15eO7O2SL5dJe8ZK0DE5PDIwNRU8HnPlIS8z882h/NNxjwaVCAwadgyvI/MrIvIShaGawln4AQb4H/PMU/VyRLzq1k9L/lyp+s8fvoSO7iKVBE977rUc9YPGjMf3pHPeOQT3mK5DpiLBL4svMFUM2cqJzGxcDXm1aUIYX9TDSBkeV/9pLk4UxZpetspAYxWpjP1wTnlQX6GgJcjSz/+ofpd8xZHr7pGY16FwZNI2PkZ9r1DnvH8m/6PMqUxAYIgAAILCwBATcyrn57cnCEPkzJsH7NKHymLeYixnwlCW1j/JgYW7Ql4p/P10RU9eVExcU2mPdyYlSftZKP6a0lGzTmvygnhB3SRWL+9e4AbPFPdHWHYSGAHpUbqySOEp3tiSp9YJeeoSXifyryy8CZ5lzMSSCxAzy9M7x58U9N5VNvqNE7iBks/7OLf0ZCLypJcpMVqX0jN/lMuTCQJXXqWCF6xy3OcHO0TPzPp/MQ/yvtIR/9sZYAxD/Ev+0TsFb855U2zJLMnyb8O3xmxoR/Hu7EH37k+jWS7b/lzKGJyfMXesJ5frFtt85eGdEF+wQnDw+NTx4ZaIqPK8jf/tnI+IOPK0KCUs8OjZNs/5UN3fSTHUeS1XkJarbdnBw5XsP4/HuLWnddenB6Zw71adc2kMD79lgJfSIx23qUM1lBGL51rbelubjz/LHxyaHjNe94CggCo5rHDNn+W7bWtZ7Ye/EJcUnIJi8XoJb/oeGjJcn5Gc0XSOe7U3hC/1ga81+ap42obj54Ze+uUtlCiH9G/2cU1Va2vOMFMPtTl1CQlN7WnaJPdMcXasJ1hkx+HsqkkGD9m43kuoLmRpLtX6AKSOsq06cL9lBWFW4u9vWW8YVhYbpemqJJltJVXp1Bnza8lFVF7fUhXjK+UOOnjZOJyWsRQ0u3ZG4iLgYS/yoaXc/0jW35n70kdQQNKeyvqqsKDQ4SCBUieUx4UU95bYEvk+1fqPDP7GFi/tX5vSWFUSJRTGxtDQ1GEPC18dXEKVT/5NdBnxf5njFRuuJAH/Iyp4L2lgjyggOFdFNzeQdi/t/x4GBmDRsgAAKLQcA3vktX0ZTPysNHNbyHuYsYW/zXdLTHKYmO9dY00jR+M4p/99TUznaaXIArkkmj2iobtpcudKS3tXA8A8r12f430Wz/3kFZ6XV9hRnhJCSBuP0bBL+QF5PUZEjg4q0sL9LH/JMVgXayNs0TKmRh1YXtJIaLhqrNZPknL+st66f1064KOSQDAg0ZE8mz0ut2Umd4efJUZMRUwj8m5p80F9VMw/vfa/m3FsicywsEJNlBUUGChGb7F2qC0rpIJwW+pjdHgVARkNXPWP5F/tU0zeScWzc9EOLfWqmJ8iuNAMS/7UvflXbOLX1/rBX/NJm/Uc4/9g1g647Ds78OwCuwpuPAZ6evTo6O3T1yZH92uIInpCZxksZPwI2Irz9z4DxxlR+6cnlHe7GfQKZtuEUzCzD/PdhCQsENrwD8OJsJX6dW+nN7CkVkOd8/maTle8eH37R1sojgV9mwl3Rp5Nr4p/u7YvSvpmMPii8IDM/au+PEBFkCuDZ+4NP9+UmG7HqG0P0WQ7b/w4e6qIOAiJ+S1XPhxNXJkYk7h48OZIQww5y72z/TJats/sxRXgG6rOrt5Y3d5Y3deUUkuTE1xdOEfEQAR1YXNPRtbusrKi3017s58PkadVZnefPOitbu/JwEGuLIF4ZpcltJkvy67SVTmfNFogySeEkftioOyMmsI/WU1dVEhRD7DJ+vDi/dxQ4opaGnpiWZ3tINvlCjSmsobNhZ27mzsnFLZk4yfaER8xzMTmhcoMswBCOEVeXVkcTOZU1bsrO1NKrfMPyG7eX1HRkJ5E2EJHlBUnNJS9//z96bxbaR5Pua/TwDzMNFY2ZwT3dXlbXL5qpdlKh9oSRK1C5qF0WJixbu1E6JlCzZki2bXspLeS1vsiWVy2W7umh3VfWBuwdyN2ZwgIML9H245wDTB5hzgenzcPtlHgeRQaXTlEhTskSR6R8gGHQyMyPiy2BmfBH/iDSNu/ubNeogo2EBWcJ/QQAEQOBACEgzNFqPl878pydkHT53x02Mvell1c3ah/U1Wpdx7PToxEwr06XLHlg6cE7fXsJOdxeJyiv1y1bXYlcduRVLpT19s96AV70cSFn2epKMkr7O0UWLy+v0rJqck21NCvoc58o/CQCssOomVkwOt6a/XcWsSisSlZf3L5gmF402V1ejsqR9wTw9WVugbBwPGvYvLTCNerwWZrV/E+n7MMrF+TLlmIG+6kWnLiy3G12LvQ2laYXDupnVEaeuKNtIYuXEZDnGQna1f6tZUUDWuIke+SdD/dktjToyc8HmIk9q/ZC+KJ883Hd9OHLlnyz9O7Zqmh6vLjiwbl/If+Sb8UjxYAlA/iH//CewV/kXSGU1TT2bvi37zHLAwz4jt2xm8eKmb6umqSfgqw/+NyNe69h4rOUE23/wkGA7FGnWb67sOQPBzvbB7f45/5zlAD94yIHsEOKtfns6vyRLq+6v2dMhu+4slMgLB2yV24v877oPNoIACIAACBwhATJRa8ZVy/TSHmE29pE0facduyrtPs6AQyJAAPJ/sCKKs0WeAOSf/+ob+VoVbSnuQ/6p/99/9vONh9/bZ5Y7tWbt8MTM4sUbD7+/ufb9PsxfIJUVN926fneSG2y/v6eUNLVl5PZvZ4Os/7e/c4Y+6qjkP3Suwv9WWqSmowThH7LrniKRoqhOyYZg7LoPNoIACIAACBwVAaGkKL/DYxxpipUbtUhUXj16hn2rX/9s4AsCj4ok0g1GAPIfbY185GevBCD/kH/+E9if/NO5/QMjE5dvfbPp27r/7OezVx4MjExk5JLZ45/UX6zL/yd1sVBYEAABEPg0CUjSOromV0at/ne8xwoESUFft/20hczhmutsUnDXCIyVInxS+YT871U1sX+0EYD88199o63ORT4/+5b/T+p5hsKCAAiAAAiAAAiAAAiEIAD5j3wzHikeLAHIP+Sf/wQg/yEeY/gKBEAABEAABEAABEAgHAKQ/4MVUZwt8gQg//xX38jXqmhLEfIfzvMM+4AACIAACIAACIAACIQgAPmPtkY+8rNXApB/yD//CUD+QzzG8BUIgAAIgAAIgAAIgEA4BCD/e1VN7B9tBCD//FffaKtzkc8P5D+c5xn2AQEQAAEQAAEQAAEQCEEA8h/5ZjxSPFgCkH/IP/8JQP5DPMbwFQiAAAiAAAiAAAiAQDgEIP8HK6I4W+QJQP75r76Rr1XRliLkP5znGfYBARAAARAAARAAARAIQQDyH22NfORnrwQg/5B//hOA/Id4jOErEAABEAABEAABEACBcAhA/veqmtg/2ghA/vmvvtFW5yKfH8h/OM8z7AMCIAACIAACIAACIBCCAOQ/8s14pHiwBCD/kH/+E4D8h3iM4SsQAAEQAAEQAAEQAIFwCED+D1ZEcbbIE4D88199I1+roi1FyH84zzPsAwIgAAIgAAIgAAIgEIIA5D/aGvnIz14JQP4h//wnAPkP8RjDVyAAAiAAAiAAAiAAAuEQgPzvVTWxf7QRgPzzX32jrc5FPj+Q/3CeZ9gHBEAABEAABEAABEAgBAHIf+Sb8UjxYAlA/iH//CcA+Q/xGMNXIAACIAACIAACIAAC4RCA/B+siOJskScA+ee/+ka+VkVbipD/cJ5n2AcEQAAEQAAEQAAEQCAEAch/tDXykZ+9EoD8Q/75TwDyH+Ixhq9AAARAAARAAARAAATCIQD536tqYv9oIwD557/6Rludi3x+IP/hPM+wDwiAAAiAAAiAAAiAQAgCkP/IN+OR4sESgPxD/vlPoLS6Na+4lt6v8S+uwdeJAAAgAElEQVQIgAAIgAAIgAAIgAAI7IMAbU8erIzhbCAQSQKQf/6rbyTrU3SmVVrdGqITF1+BAAiAAAiAAAiAAAiAQDgESqtbo7O5i1yBQDgEIP+Qf/4TgPyH8zDDPiAAAiAAAiAAAiAAAqEJQP7DMUzsE7UEIP/8V9+orXwRyxjkP/RjDN+CAAiAAAiAAAiAAAiEQwDyH7EGPBI6DAKQf8g//wlA/sN5mGEfEAABEAABEAABEACB0AQg/4dhpDhnxAhA/vmvvhGrTFGbEOQ/9GMM34IACIAACIAACIAACIRDAPIftQ1+ZCwcApB/yD//CUD+w3mYYR8QAAEQAAEQAAEQAIHQBCD/4Rgm9olaApB//qtv1Fa+iGUM8h/6MYZvQQAEQAAEQAAEQAAEwiEA+Y9YAx4JHQYByD/kn/8EIP/hPMywDwiAAAiAAAiAAAiAQGgCkP/DMFKcM2IEIP/8V9+IVaaoTQjyH/oxhm9BAARAAARAAARAAATCIQD5j9oGPzIWDgHIP+Sf/wQg/+E8zLAPCIAACIAACIAACIBAaAKQ/3AME/tELQHIP//VN2orX8Qytm/5F+bmSUYqTtyuT/I1Jz5rFF6plYxUCHPzQj8V8C0IgAAIgAAIgAAIgAAvCUD+I9aAR0KHQQDyD/nnP4H9yb+ouyTxWWPK4wbxrEIyUCYZrRDPKlIeN6Su1Yubi3n5PEOhQAAEQAAEQAAEQAAEQhCA/B+GkeKcESMA+ee/+kasMkVtQvuQf3FzcZKvWTyrCLj7C3PzhEs15Kuo9H+huKRq5IJj/pS6IjfY54AShfhvWs7wkMdrH+vLkshC7BbsK2mOUe/xGvorg+3w8dvzWxacbq+xp1wglXE/f/yZdz2D9ER7x7zXNu8oS9sPkF3P+fEbM4/pZ759+/jne71ZuQFnyyo+89WrrY37EwXiKMpwQCZj679V5hebvq3rM/UfmW2xQDnw5Z/WX/vmmrL3eqqPOXavae3cPzNxZP711uNX17ukO+pb1eXbvq3NrxyysO8YkSxL1t6zt7P4obccYHFCcA6dB3wLAiBw2AQg/1Hb4EfGwiEA+Yf885/AXuVfmJuXulYvXKoJ9vwQLtWQHaIv/j+Y8Asl8nyloaGrtyh/DxL4kfKfXjZp9az21u0hxWDAg23nCn96SXdjp6GqsjDYzh+//UDkX5LW0Te7qgkPS+Xg003f1obvzcpgQbD870/+a6Z+2FhbqtxXp4DkRL3+q7cPl3uCZYnH26NB/kXi0ureJcfkdENJoH4HkM+rvXXn50f6og/sFnCUUFJY1rw0d/27u0/fbPq21p69vHx5VaOqoLtJU1taJpZHZ4wlTOXhVqR92PWebFkkUvRd+MOmb+vJj+thFopLQJKnN4wvWwbbpNLDuintqTgB2AP+C/kPAIL/gkD0EID8h2OY2CdqCUD++a++UVv5Ipaxvcq/ZLQi5XFDCLcX5ualPG6QjPpbw9HzQAom//vL4UfKf177kn3B0yzfm3jsKatc+d/Tgfvb+UDkP0MxafN4w5F/aWqL6c7bb56/WfNtrd0wBxtN3Yf8pyV3WB++3bf8Z0ld3ldbkP/91SJ61AFaYrBsCCWFTfP/+Pinvcm/SFyqcn6zxnQ5Pby3tvrl48vrpAtg/Xcv59qKAtIKqEiHLf+Z6ZOrL7boL+KKXRmQmZ3/3R+BnecJf8sBXlbIf/jYsScIRJgA5D9iDXgkdBgEIP+Qf/4T2Kv8C6/UBgT8i0rlolI59+kiXKoRXqnlbuF+zmtfcrq92ubmZsuKZWq4KL1P6/Hapw15TDQsV6qFEnlutXVwYtU5u2IY7SutI2Zo0tYJpDJpod3s8dpGeko6p4enV52zp3U6dU46GbMq7jvjdHv7GslnoUReOXjBMb/SVRU01J/bKSASlVdbLtgX5hpKWlqGFy0ur3lisqnCP7Asye/utJ62elZHHda66lFu2H96QV/nKNnf6locMHTK0mRCcUnFwBmnZ1XXWiqQyiTSlo4Jr8M911yUJ5QUKYwX7HMkQl4oKcqvtw+Ordg8Xufsaf2QvjhHJhV39sx67Z7xqkz/KJycgWborwzBhAs5INSf2xFA+WsaaxR9HhPJsKenVSFmhvuE0vKSrgnjxKrTszrqHG+tITnf+SdOq6/Rugh2z+qQw6osJQEFrPxXF/X12FcIJetIaY7/KuRUmvrsp0kZZxYHtq8UvYgWfWdF34LJPdehWXa6vfTvg/MpsmUkaP/J5QXn9bdPfnikzXvXjSJN67Wcf/7gxZu1zQ1PzwQ37D+rePLkzddrr97cefiVsffSzrD/LMHk2Vdbmz7yt/Hqp4W2PKGksKrz0plHP5Nehs2NRXsn7WiQiFs6Fx5eZYZ/H28+O7NoKMmQ5TV8vcYcu+nb2jnXQCxQNtjvXl5/s+F7c//x2uxAIx1lFYkUKt1VL03i2cvzZ6dq5bnUlDZe/TTf7V9EM1d17b5va+POZIFYJsnSWla+uft8a/PFzzevXeipJD/AzOOW+ddb6xtebefdr168OTdYIJQUlredX73ze5KrZy/Pn7ZWZNArUljRcfX8+hty+JcLHdq7a76tuyvtzE9m9/JyqwE97dm7rwiT756dnTPKmYpKR/6vTGnbXU/uvHiz9t2zRVMrLaNYWt88cffaE1L2B/fvj3VX0RPuyoRriUJJocLydM23dXNVL5PI0nJHHOef331OIj7uP15zGf0M2exxjxULlPqv3j75cd3ZMDxx6bcPnm/df3Lf1lhBe47oVd70bd1yN5NfaHp77/xDmsP732ycnB7YOR8kW3bmy1dE9Rc6/fkXiUurDI9uPCYVQyqVsVLaJwqsSKz8N/ReJXXgpe/SuZESsYxK+KZviwawCCWFvWf+ROseWxZ3n2n82m8fvHhD888WlvuhvJcEwlyaOrn8Ymt9bZ4btyJN6zUufnPzKYF/5+vLg6rinQTY7NHqnVH0jvPd+/enNLX0Otbaf9j0bZ3XdXV7SPXjXmJuZkJf1unuQfPl7eI0+TtNdq3S5MayI/OkqnOmV0hO1Pde/P3Gq5/OGUiXh7xu6eTN1w/oT+PGV4NROQeNywqfQYBnBCD/h2GkOGfECED++a++EatMUZvQXuU/8Vkjd1RfVCpP8jUn+Zq5/i8ZrUh81hjseUZF1DS5aDRZW7vbZOmaYPIvzTEOeryO+VPaHo2qe8owvep0e4c1ZMZBmtw6Smx5ZWCwq1TR3W4jImpQk3CDj5F/obikhqwLsGJyuDu7elX9CzaP1z41LJfIxKL6VucFp2fVaNTXNlkGnavkK2bOvySzRzPtdczOtDa0VaknRj3e0ZEmqVQmSVN3T3jtc+NVssLC3iXSEaAmCyVITtS3TPiPTS8iBbFYR2oa2mvaJoY8Xqu9J1tcVKE75yTzAki/g1hY3WC7YF/wNBXnhmASAJwr/Ds/WybnBwc0tUyK9oW5enmuUCIv6iSZNAxpFHV97ZZzDvdcU/E7qabnF4kUNSMkb0ajXtVu05FOisnqPL/8O+ZOGh3u3n5b/xi5WBZDk1gqS8sZ1nu8junJpoZ2lZ4YPl3sgF7EsYnThrFxdb+mvFytHjnndHv1g12VikraHxFQKPa/JKCaBPyX0eD/i2b/6gkicWnLqX/c9G09uHt5yLg4d/P12raHpwl6xx6+3fC9uXZ+QT98yfvwD2QI9/05/2JpfdPQTdIp8PS+TWeqlecWN9267dt6/LV3sN9sPP3btVdvzhnJRVQ4Xmz43lxfWdD024dOPl/zbV13t4jztZqTz4n53zzbO6jh2qNQUqh0kCnxD+5eto8sn3r4h41XPy31lbFy+/j+7THz9NgyOdXafSJvZZr1Td/W3eUeKenGKmya/d2G781Fc6U0tcV84w/rr33Lk9a+vvPnn75d3/Cq0mVZ8UT+N1767jzeWDx5caAlP6uYyOrG0/vjgzbr6mtWdLPyl4jEvvatzk8NufxdGDcXO8jPJ0h5WfLEr1TXbvvIaadHFycvktPeXCGZpPJ/d+27qze/nDv9/D4Tgj5ckSOUFKqY63XTO9XTN+P56g/r3z+zV5PtuzJhpXeuMa9Yde2rV1v37kxWZMjEAqX2yh/Wf/dycWK8e3DGdeX36699s23vvWHk3bFN2fTzxquf7jzeWJqYti8QtuubZ+oFJVVNKytP367/7uWS2aaur6ACSQpy7azRtOi+8Xu2UNyC0wI+uKjPDDJvn5XS7jRVQEWidv304fdXH9z3nLpzlem/OGcs/aD8k+6SxxtL0ydp3Xjy8npbduCvkk42efLjukFe2XeBIBqvyqE5J19d+QOpq+dOD9tvXn2+9eSHR4aC4gACXPlPTx+Zf/J249VPF5ZODg9fIhXstW+pr4xW+03f1v3NZxeWTuptd0kH3I/rwxX+tGiKoS/rxqufbn393YXVLz1XSc1Z3zxTI5IFq9K7Zl5flMty7pKU1E2/WHv15vpcR6aE9H8tPn278fS+c9im1Z8/8+Tt+otbvfmBuLjXFJ9BAAQOlgDkP2ob/MhYOAQg/5B//hM4Kvm32nvoUnnSjKDyL2slS9ZRgRRKikoGyJA+V/7tM+YiZnm5dCYQwD7Wlyv5WPmvGrlA/LO9hFi6sLFtwms7OVOb5+9usE8b5Ey7P6t6mpV/mk9jj0KUni+RlteMXLB7JquYQe+sUvuox2u1uqnV59LoBjEpskVH1kXLqp52ur1Duqa0dBKnkFlUm5tfKJbKMstImINfnjPI6oCOcV2uRBaCScDze6fwcxf/s46q0yUk7oD2MmjqiL13zpIV+yoz80Xp+bRXYkhbHXBaaYFpiGTGH6mRW2PqMNgaqwroyL9j/lSHgshYOrMbDeiQyFoqG7orK8lrINJkzOG2nnTJNtK58crtAAfacfPBsP80Qe/k+tvHvlu9WbnZmae8zLp9dJZ1ZuLI3Esy2DtcSFr89Fs6CJ9TSlZco7IhkMqKOh/tlH9yRZi4fRr2/84k24okmQW5xy0nX7zduDdfKiroXPojMaIBMiIqEinK6tqLCkhPTV7ro03fLmH/mYkjnm9Jxuh87MzKSffqDbe9MyeZLEn45Mdn9nJiUHRIlg78ZqaT0WOa4fREUuQnP9zT5uXSgmzccRRkFEgyC5SOFxuvfjrV5R8O5fqwtFLXp7d3NZOLmFPgJZ0adxwFYr+lP1jtJ5kXl3Yw3SW33M3BykvZ0ppA55azSy2kSbSDyzfml62V26ddY2ITuLvRi/LYd6szi2S4sJL0Hdxc7AjGJH17wb9F3eL5p283Ni63MhNktiE8Gq4mdUkoa1GomvNl7wWnvCvCtvxv+rZoGHz6cS2DmlwCGpPPhv1TOOubZ1RM9FCWgITQ0wrG1n+hpLDNQ/qV2KB6aaHFvnhxhvmbXB6rznhvRJpbkUi9YlbUY120nFkc8cG57g/KP5siWzdOdb1XZHJypjeHRoXQin1ziYQzkK/KvaSnZnsNi7LOSyfP3rC1lQcQ4Mo/7VBj+zjkTbfYkBPa/UEn2ojEpd1n/8jWBBZU6MtKloR0t9AoCfYXEaxKB8u8X/59tywdd2/7tu5cHaYdbZTD5r2lOjn5MWaUtytqaoL11LAZxgcQAIEDJAD5D8cwsU/UEoD88199o7byRSxje5X/jw/7p1I6rPEP1QaT/2xJfkkfGQemYfMCqSy3bjZA/h2WznRGpyVZ2kGP1+Y2lYgPQP6JwVYQdRSJFMyQOxkYz1QQS3eMttIRaXZ6QrYkv3SA5JP755g/1V5KziCUFJUy0ex294yywN9kp10Vg20kWp5GDZAzz68M2cfV3W2yLLKbRKzunPXaZ8wlabJclYeMlqsrhBJ5MCZiQa1yyDVocw/a3ANaEncQWv6NPf6XNRR3kKH4/mZ5GtPFwC0FyZWlMz2nu8fEnNbmam8opb0VVpOfA9tioPJv94xXMsohlfb0znvtLhI0IUqvpdMESNg/A4pGTNCRf4fN3w3ERm18UP7zGHt8fHU4U0LCKJjQbr88U9t/8v2lZiHBmBFPfI/Kv7yTaPnmlWEawBxstX+us2XEayfX37Lx4fTD41fX29L8I+RkdsBL36VrXzqNXTReOpj8Z2ee+vLV1pNn52nGWG7+7dsZ5homHeh+8uOz8aocaqdUuko6SERAwN8Vu5Ia0drPt/q2l5qXpvUOMPHe7GQEJtKhQO3+46Zviw2XoBHjt9zNIcrLZthv4D+SoXt2I/1AzfC6u4X+VzX7u03f1jljqV/JAvJ8w1yYSQIQdjKhAk/WrvuOFPPuuX7qbzSCgJbl8eYz77nVQXU1vZpsTnbKP9sbQuWZ9rMEqC9F+viqv26kJ5IgETJ+XvfudQPcS0OTy64kEzH8teLnewNZnBFpaS63IrHyTztfSCcRM0Pk8QW9lFl9IHTYP33rgVBS2Lr03oVjS13FROPTC5opdiy/IFRpRwYt2tpVfQCoAALv5F9c2Pl+KpkysowF/U35L/H2Cx3YS8zmhPa4hbisG69+osEa3MsRrEoHyzyt6hu+N0++I9Nzzhn9E5SkqS26G2TVQzor5PTCdAvT58jNHj6DAAgcKgHIf8Qa8EjoMAhA/iH//CewV/mXjFaEXsyfvg6AOzUg4DHDlVIy1Lk98k9H1KV5/lfoZUvyy3r3Jv8kEGBb/jUNZORHKCmq2sucf+78fyr/tSTePiz51/c15ZXUbv9VZTFDiGJhda2FlMIxf6pLSbJEejFUHvrGQfpfYVZtRfNo54h7eJq4sYUZVKeRDvaFk+1llSSUYGGuNo+EBgRjIjne2DrjV2uHhUw/5nIO9lkglRW8L//2ufHqcuV2KWrzCoppNweVdoO6IruKdMEEk3/2VX/v5F+cX8x0fwwZ1HlFlXkVJBTiPfnf7sEJU/5ZBwuw32tuEkkRIP/cBf/2Lf9kjre2q6q2h/5V1quoi2aXjwxMXVm++ltqgF8vE0cNJv9UgHeKbnD5J71jZZr1Nd/WlzMNtXb/NAeBVOY3pVvztUp/lqpqe8pKC97FQjPyL5QUNiwQ/b551lJb1VzTfJWMAJNpDgUBDlnKvDeBlf9g5aXVlXYQEIUOJv/bZlg/8Z78r7+4pVd1sxgVlZXBmLDy//DO7dUHVMLzaeoicWmxetI5f8fLrDiw8eqnlUESjs7+7Sr/VJ65thmgvhRpaPkXSGV0uJ72OrEppiV32O+QDqZw5J991V9e7S0yIWWH/JPhdG/gnP/Q8k+7KgJ+DmyXRzB/DiCwP/lnLzFLgw1D2FnVuZeGDXKhfTHBqnSwzLPy/5WXTKBYf3aZnQohSlPWDizNnHlw7QlZi/HJD490789K4GYVn0EABA6cAOT/MIwU54wYAcg//9U3YpUpahPaq/zTxfwD1vzjPjzE55ShXwfAFVHSBKRDxMzqd6ThyAmnp3uaDSoxo/G7hf1bS5iwfxokT5WyqIcMZeuZ99uLRWR2ffgL/oWQfzpMzYb9Z1fNBoT9j+pqmXzKM4sbC0ormXnacrnKY/N4h/tHNNNe+4y1LJMIfOnAOdvJSbqYnzhbIatQ0p4CkURRZ/b3NZAI+fIxM3Ns36yXHR4PwYR7FUIs+BfAn5V/f9j/yZmabKJSwqzqgnJlbr5futiT+4frt8P+c5RjAzZXZ0Mpu+BfGXNFWPkvEJBCOeZXOqqYOHzFu+kS/lPtkH+6WCObYsCHDAGJn19/7bt46kv38hX38pX55W/ub8fzZyaOnHzxLuyf6iUd+ffHXTNzjFmvDpjzT2ogE/b/5JulGhGZZD7w5Z82fG+WNCRMQyxQVrb2VyorpZLC3LL2mmYVHU3NyCJjrTQ+n8r/g9X+gGyz8xFo2H9ahev09U3voiHPH/bvnzgtTW2x3yGlo6OjWYLJ5Rdb39zwztz2T3MgAfx0/sL2om5ZJf31jep82Xsx53RpCctXZOY2PRV3moOCrj4QJOx/l/K+b9daZg45XaAu/bjW8tXmxa9OqdL9swmu75B/f9j/T48MzLqMQllLfWs37a2gczQCmORsh/3PNebR9QXW7s+XiMkMBbmip0ZJYv5Jv1UtWY7hCVMKljbXMLmfA2yTqi87PSQg7J9OuCDzFN6fXU97atZ/93K+r4odSM/Om1x8GlT+aUUi9YoJ+99F/qUyOn5OuaUfJ8Em3AX/2BgNNuyfXQOSljqPqQ+bmxuLp8nPwb18ZZGZTk+nddDawmajoufm+TuPPYNVAQS42QsI+y9gghS4E0Z2XmKWP12N7wOXtYnEU3D7YoJV6WCZ5/RzFdRMkTUIby52kFtutrJc2V/GxFiRVzMwX50b8ve6cjOJzyAAAodEAPIftQ1+ZCwcApB/yD//CexV/okCNRcn+ZqFs/71rtnnhzA3T7xYk+RrFodcYDlAPsXC6uYxzkJ69tPm7ZFhaQ6Z625fONnXG3TBP+OIsbZxqH/cy66rT18X55idUTf1thjcw+OrRP6VeVyxD+dzwMi/WFTfNkFSGdIxC/4x6/OzC/4RP5/z9HR1+Rftc+ryJLL0HCNZD29qOD+NzFmwebyjhqZ0unrf9toBhAazxl6Vqq2qYXSA6SOgPRoSQUsXEwtAita0HdcanAl7IegHLudgn7kj/0KJnKxK6CarDyrr+9otKyRagVlxkHtmfywD5dBo00976YyGYPIvFxWSZQXc3qHhnsq6IY19ccjltc9ONlVWZjGrNrJzN9jMWCzmunoVndDBTZp+lreRFfXX7jhomD21CCrM0015IpGibZVMzL7/tXfIuEjX/aby79cqZsE/w5B/df2N+xPcCe1EXcSOU6/Jiu4r49MtlfJiOuH56f2xoXG6sN+txZ6ME/Vk5bnXvmXXWJfW3D/+kCwKeIW8cZCO6G48ve+wmqpz341I05B1mrFhw/LJO2TBv5VBsuBfnekFGQR+cN02NOM891umdJM0V+zL28lKgdvrzKUld4zeJUu4XT47RVc1I2sBcFdBY0b+6ZRs4kXeqb6+896vv7/xfGv9xT1bV1NhLrNq/Wvf8sw0u+AfXfR+1/KyoksvAbXujaf3p0zTY8w6gjTqISAmnB0WFkoKG+eIoT24dVY3MDNzg6zNThc7pHp2/2svlwlX2sUCZd8FwuqcUZEhJcu5rT9fmxq2dffbbcz6i+wMfJq3gGMHvvzT+mvfzpF/yYl60x2y+uP1lYXBtjoJc0E3fG9uXj6lMy667zAr5M0Rn+TWQLKUHfPqgQ3fm7v0VX8PyWsgNsm0c0uJ+L3+l4CKxLVrEvbPjvxLZbRKk3KZpu3eb249eUPf8kDLsuF7s/bN2qxpe8HCZ5ebmKgimjE2voMVclKHmdf+0aUB6Vp6/pI6r156St6OoavICSDAzR5d8I+uB6nfXvBvvov0fwW7xAGUPnhZA+Q/WJUOlnmO/Of6ewN/uzFckeOfEHT3slFv6h5klpZ8f+4GN5/4DAIgcBgEIP/hGCb2iVoCkH/+q2/UVr6IZWwf8k/9P/FZI4n/n60SD5ZJRirEizWpa/UpjxtCm3/AiDR98KTLtb1jK07PqsliVhSRN//Rxe2EEnme0q6bYV71N6SpbA2c8+806yvUk/RVf4P9rXQFQZGovJx9iZ26rqxnmVk2n7x7r4qs5H9KXRHWa/8C5J8sYifX9tlIPkcd1tpyA3kTAbMIHxmlL+nrtJJuC/LSwRHyuj6RpLrBco5ZAI+MO1Fndsyf6lF09MySsHnqFSKJoryHebuem7y8wGAyVxeTRjYzZ0FOgx3snkk6Gk83BmMS8BQPJvzc7axv9zeTd8WJJIqSrgn6VgXzxEx7vf8VgAFnFmXW1+ncJhfJ8JAl8FV/ASP/colMmtvRaSEv/zOPOZSlxYUdHrPHa7b0yPPJmw648i/N6+sbIy9uGLH00MURA5MWKYgK+t6cH3gv2JuOVdKF8aWZesdFZpH/x2sznaaxh28fb4855ymWlh79TF94pmtc8r4KfCkavegtMySUYO3Zy9nuPJG4tFJzyf8evu/8r/Qj4+p5evOFb+4yr/pb234/H1GatF7TNZL6o2+vBywzLhYo2dfdcV9TR171N3STfdXfmdNj3F4D/4j9q59o9AEFIs3UW7bfeHf3rv99ZlwjortlyR1zd3+/9urN/Qdf6eqq6x0v7vu27t9wlooKqntukvcUvvj5mneqy/KEfRFAsPJyLwT39YePN5+dnjOWMG8QDGGGYmm9etb/WgFu2XdlwhV4MpWDvmDvW7LKfU6Ny32NvLSPTOre7YV83GO5nwNsUyCVlapvXWVeCHd9jrzmQJLe3ud5Qt+Hd//xmtvWx/YuBZS9rHlp7vp3d16QN+c93vj+/OULhu46+nPmXgKRSMGtSFy7DpB/yYl69fab85ZtfV0u8lqHJQ2JNKHrWcz02sh7K169efDg9qDKH/hAc5WRQheMfG/JfXa1xTN9zMIiWVo9+2LIm1+yZ+ASCMheZoFlklawVz/dvXPbuv1qxhCXmEspnMvKHfknV2e3Kk2uy26Z53Jmo3jWbpgLReTXSt9tSTpoOC8p5GYPn0EABA6PAOQ/Yg14JHQYBCD/kH/+E9if/BMLzc0jE/vv1Cf5mhOfNQqv1EpGK4S577126yOfLkKJXJKnyCnwyzB9QT1d/29nxPhHphUrh4dgEitFQD6PnIBQUphbVF9W6V90k768nV3/78izhwyAAAiAAAjEKAHI/2EYKc4ZMQJU/sP89xcRyxYSAoEDJLBv+Y/AY4mu4e9wz3U0t1fVW2iEeXUeGRX/ZOU/BJMIXBEkwQ8CWflM1MP3z+Yttl7dJRoKTife86OAKAUIgAAIgMCREID8H2ATHaeKPIEwtZ/uBvnn/yB55KtgBFKMZvkna5uVD/fZT5NXxDER5jUV/pDXT1b+QzA5ksc8Eo1FAkJJYXHTyqmvX5H56i9+vnnjq6GmilgsCPIMAiAAAiAQVQQg/xFouiOJwyMA+YfP859AlMt/VOzxX4QAACAASURBVD3SkBkQAAEQAAEQAAEQAIFgBCD/h+elOHMECED++a++EahGUZ4E5D/YAwzbQQAEQAAEQAAEQAAEwicA+Y/yZj+yF5oA5B/yz38CkP/wH2nYEwRAAARAAARAAARAIBgByH9ot8S3UU4A8s9/9Y3yKhiB7B2t/GdnVVUWaZoVDk3dKX3jeZ79aepONSsclUWa7KyqYI9JbAcBEAABEAABEAABfhCA/Eeg6Y4kDo8A5B/yz38CRyX/YmmBskTfVbVQJ7MpsoaLxVq5oJdnf8VirSJrWJVv61acrCnRC9Pk/Hi0oxQgAAIgAAIgAAIgsJMA5P/wvBRnjgAByD//1TcC1SjKkzgS+c/Kru5WelQFTp7Zfoji1MvHOmpmc7Jrdj4psQUEQAAEQAAEQAAEeEAA8h/lzX5kLzQByD/kn/8EIi//ovSC3tqTFRmGEKrMy68qMoy9tScx/s+Dxg2KAAIgAAIgAAIgsJMA5D+0W+LbKCcA+ee/+kZ5FYxA9iIv/3VlQw3yMV7q/QcL1SgfV5bodz4ssQUEQAAEQAAEQAAEYp0A5D8CTXckcXgEIP+Qf/4TiLD8y3LruqsXPyjJe91B8YuLFx/+s/VED3tg1bGvb1/9H8/mblq6/u3+oIXdvvNDyWcTg52nyjnHNon+/GLxevHhrEHQU7Mky62L9ac78g8CIAACIAACIAACAQQg/4fnpThzBAhA/vmvvhGoRlGeRITlv6nSXpNn3WngH7llp/w3p//TD+fDEnjlLx7duPSk7vi7joOPzEzow2vzrY3l5oCHJf4LAiAAAiAAAiAAArFOAPIf5c1+ZC80Acg/5J//BCIs/91Kd3mmcaceVx37+qvVv3279F/v2X++ffsv1hM9Ff9w8bz7r9+e+ZeN83+90e8uFvTu3FJ17Ovr5//926X/esf8p7sP3o38K3559dLZv7/9+v+557pm7fmPxwZnk+jPv115++WZv17oHmmU/e6R96+by3/95tI/TxW4Jyb+4493/9819x3W/1tSSMdBabJxsO2/fHue7Lm57OvN7KlMunll+d+/PfMv357/65XeaeUvHt2592YgmfQa9Kv+7VvnXMHxgd7CP9OTb577WZe7S4dCZeZQR7Ur1p/uyD8IgAAIgAAIgAAIBBCA/Id2S3wb5QQg//xX3yivghHIXoTlv1+1UijSBMh/wfEBs/HvmyNTckFvW/o//bD5F2uqdmTwPzbG5uSCXsUvr351618mM3fZwh7VeOwfn2+SLgP2zM3p/+RbuV5yfMDQ65d/34P/U5/eU5hsnJj5+5Vmkoeq7JvjTeP1/+kfv7n6mDV/uaCXyn/NLy5eevAXS1pPwfEBdfXGcKm2p/pfv506KRf0liWctg2cad0h/9W//Prm7T9oRSQbPdX/+mJheefcgSJpv1a1EvCwxH9BAARAAARAAARAINYJQP4j0HRHEodHAPIP+ec/gYjL/+lisZZVdPqh5LMJz/J/XFQRIVf84urVJ3+x//rdluJj9rn5v1+rnWb3YbfMn/o7ParqF1cD5vzvlP8fLt6vYnoHuov/y2+v/9+3LC/NdePFgt5g8l+WYLKY/vtvL/7zef3d/lLyboJqwcbDa397OPvzRMeSQtqzc+S/SfTn33/9t2ckUuCv35z924vl2zRFbnmLxdp+1elYf7oj/yAAAiAAAiAAAiAQQADyf3heijNHgADkn//qG4FqFOVJRFj+2xQTiqwRrgzLBb0HIv9X1t+F/csFvTvl33fuNjsOX37cZWz4/trS3585FoPJP925WrJqb/3jw2t/u9iklwt6i1LtnZVfn7X9d9+Fx907Rv6bRH/+4cp7QQQBJSW9G9mjbYqJgIcl/gsCIAACIAACIAACsU4A8h/lzX5kLzQByD/kn/8EIiz/yhJ9fYEzQIkLjg/YLH9/bCDbW4V/Dgj7r/qfbl6//Rdn1ruwf3aLzeKfLNCU8n98OOyfkX+ytr9tXZtBIvPJUedut/zn3z398kUjZ8E/GvZf9fnqzPCXdDrAYMd/3xyZ6qx6bVcyIQC/uHn10f9l/sXNmw//eVTQU5Rompz6/751zlX/8ut79/7bhLyb9D6UvF5u22Vpwwb5GN72F+uNG+QfBEAABEAABEBgJwHIf2i3xLdRTgDyz3/1jfIqGIHsRVj+szIVvcpTBcK+AP+vkTy6d/Fv3579y53Rn28yL+0r/3x1mVnwb/3Cv1zpnS4W9O7cUpX86Palv71c+Zd743+gywSypw028k/W5Cv7p28v/fuz5b8+vfiXxbqRin+4eOXi//h29UlHin/JACr/5cfs5pF/fXH5rySMn1m9r1awce8cOfDb83+9YXCXJZhGhv7t+eo/355+e9b0b99O+xf827j072SNwN0W/CsQ9/UpT2VkVu58XmILCIAACIAACIAACMQ0Ach/BJruSOLwCED+If/8JxBh+RdIZdUlg42FE6yl0w/KrJvD1Ta5oFf5y42H9970MUvoB+zDg/82Fk8qivtj+rmOzIMACIAACIAACIDArgQg/4fnpThzBAhA/vmvvhGoRlGeROTlX5gm76qZq3j/hX+KE+SlfS/O/fXplf92brdoeR6Yf0XmUFfNnECav+vzEhtBAARAAARAAARAIKYJQP6jvNmP7IUmAPmH/POfQOTlXyCV5eQoBxtWVTsm//PA8IMVoV4+NtiwmpNdE9MPdWQeBEAABEAABEAABIIRgPyHdkt8G+UEIP/8V98or4IRyN6RyL9AKhOmyWtK9F1VC3UymyJruEjaH0ybY3d7sViryBpW5du6FSeVJXphmjzYwxLbQQAEQAAEQAAEQCDWCUD+I9B0RxKHRwDyD/nnP4Gjkn/6eMvOqqos0jQrHJq6U/rG8zz709SdalY4Kos02VlVsf44R/5BAARAAARAAARAIDQByP/heSnOHAECkH/+q28EqlGUJ3G08h/6EYJvQQAEQAAEQAAEQAAEYoUA5D/Km/3IXmgCkH/IP/8JQP5j5YGKfIIACIAACIAACIBANBOA/Id2S3wb5QQg//xX3yivghHIHuQ/mh+iyBsIgAAIgAAIgAAIxAoByH8Emu5I4vAIQP4h//wnAPmPlQcq8gkCIAACIAACIAAC0UwA8n94XoozR4AA5J//6huBahTlSUD+o/khGm15a9danG7vrn86i1uSWRRtGUZ+QAAEQAAEQAAEIkYA8h/lzX5kLzQByD/kn/8EIP8ReyLyICGn26ts7JOX1+/8c7q9lXUdPCgjigACIAACIAACILA/ApD/0G6Jb6OcAOSf/+ob5VUwAtmD/O/v8fZpHuV0e+Xl9buW3en21rcP7voVNoIACIAACIAACHwKBCD/EWi6I4nDIwD5h/zznwDk/1N4GB9UGan85xZV16sH2b+S6haBVAb5PyjIOA8IgAAIgAAIxCgByP/heSnOHAECkH/+q28EqlGUJ3Ek8i9VmppKc8WC2saBNqlUJpQU5SvHDG5PU3EufdplFRp7HYtG++KQc7yusiDCj0BpjnHA3pMlkR1gulJxZ8esuUj84XNK8owD44vD44sWl9c2ST4YRgbrR12qbTi75kqaodHOrZjt80b74rDD3d1TH37+5e0L/W2Fu542YCOV/5Lqlv7hKfaPDvgHk3+RRFGp9RjG543jiwO6Vm6uRKLygjqlVPphJuHTC8gw/gsCIAACIAACIBAxApD/KG/2I3uhCUD+If/8J3Ak8p/XO1qWJpNk9rR0VAikshzlWL+mt8XupvIvEikqTVOq4jyBVJZRah+x96QfqId/8BF4tPJPsyeUFFXqz3QpCYRw/qQZGs30iJwBJcyorhpcGtLVh+PVAqlsr/K/a36CyX9GmXVA15oukYlECqX1dEeVv39HIJVJxZ1d1rA6WSD/uzLHRhAAARAAARCIKgKQ/9BuiW+jnADkn//qG+VVMALZi7D8i9Nb6nptA05XV+9oh2FePzxSU1koSs8XicoVZr/8s48xoUSeWzNpMDZxJVZS0NdjcutGXDr7uKq0UCRSVNvne3ssnfqJAZtLrSQLzkvyuzvMZJ8B8wSzDzl5d/to54BTY3O31+2yj0AqyyoyDTjc/caJzu4JHWfkn+Yt8PD3s5FZM2nU1BChLTANzY9XZsqE4pKK0Xclkoo7O2fGO7sn+k3zxjGHokAm61gwqEnfB9VvXWspW3ABEw3Byj+Tgfmm4lxpkXXYZG7Q2npM84P9XVXdtk6jS2/ty0+TceWfEBCr22cma7Jl4my12uzWm1wDNldHLUlC3rmkbWIIHG9scTkqGfk3DI50jLr09sXB7joubW6WaGy/vLyeHfnnrvAXTP7ZM4jT6lvs7nq5X/5FovLKwSWry9Ona80RV1fqXXqba9Dm1mhIn4Uop6XV7B5kst3ZUMrKvzhb3Tk2pZTnpxcaNTayw6DDoSzOZ1PBBxAAARAAARAAgaMiAPmPQNMdSRweAcg/5J//BCIs/8RLBS3NA2TRuJzm0eo8/7D2TvmXFJuME6vWMXNpzruhb6r66goyHp5eYNKN6WXC8irLOWrO0hyjbsKYL1DUbPcjkDH8MX2uqEQxekbbRNRXWmAyWjszhYH7yATVdc751lKiprl1s1aO/AvFuxxebZ/nZiM/TatxkEHs3Ibp/tGpDkWeRNDSMjHCxvmTUW73Ij0kT+UZNdanZ2k1Y/o8iUwsqK0fn6jiFDOY/KfJrcPTI0T1xZ2dHtIdIBSXVJkW20tzA+RfJCqvMi2qK3Klpd01ijKCPUurnTDmSXaV/yWztTNdQi5N64yrdvui7Gw60LD/TFl5fftgfftgpqyc3SeE/JOLa1gyz53uV9eIOYEMbISFMKexukkllRIUTWMkA7l1s4b+SoFUJkqvLW9SZYo6OmbNpen1TWZXa0WBUCIv1y93KEg1EMvVVVWkgPgDARAAARAAARA4WgKQ/8PzUpw5AgQg//xX3whUoyhP4gjkP0vbqi4VSuSFmtGS7TnwO+WfEWB5btWYgePh0hPtHW5HWRoxPYmgRe0eV4jLFWa/tNMt1SfU3XMrQybXoMmlM7l10+ZSSXHFqH8faY5RO94nOx64T7lAzZ5ZmjfMHflnxvADD2d3polWCavrnU5FRnH5sLOm1KTpUWTkmgaNTazrEl13WWl50+RWg70nW1RCcyXNGx4caQ0Yb+eG/bMj/2lyq9GkFktlEmbQvixN5tfgqqDyL8ppaTBM9A05ew3uYRdZdGDXkf/B9hICXFyiGF7mRuYHtCFCrPavt7jpiwByi6oDjqL/FafVN9kWqbHTLaz8iySKsl5nv3GiVz+lnyWdGuI8Td/EfP+AvqpGmZbOTBCYdvUNnWbjI3KrxoYmZjp6e8sryljIu6aLjSAAAiAAAiAAApEhAPmP8mY/sheaAOQf8s9/AhGWf2lZf+fwvHHI2qGZ0DldHQN6OrDPlX+htDxfqaTz/KUn2ts8ftsn4/Yh5V96ol3tHq8+oVa7xys5Q8HU3tuKyKg+lf/844H7SI93sj6fJjPtlP+Aw9md/X0Q0ny5xtNV2dZq65WJ1Z2m3pL6WU3Du6UKd8p/lkSWUT5m1NYXds5ylZg+nvcg/4NE1wNG/iVpHZ0z49UZheX6ZX/Ig7Sne/p9+Re0NHv8Yf8fL/802+1ai2VmhdvCkBa0FBX4w/JzWz36HgX7LSv/uXWzxhEyuUMsrFZtL/0gTCuRlXeo+t1Ga49M1NHlXuzrdpLIDqbrh3RVZCgKq/vbR09zz8meHB9AAARAAARAAAQiTADyH9ot8W2UE4D88199o7wKRiB7EZZ/ElTfOVqVScZyW3rJJHn6x5V/yYn6pol5dQUx5yy5VccEq2/vRmb4v4u3H+/jhv2n5w3TsH+l9XRXHTlcnNvR3K6SkOn381x7lwnJ4nPcfaSC2kbnfFspiSTPbfUEhP3vPDwgG7kSWVr52ODo1EB/DZnNbprqG53ixs/TQP22Iub8Ko9JV08G8IWNbTb3oHWkaFtoWSAfI//CjOoa/bJBWychkwJIeLxQIs+rnh5lRv7ziIGTcH1pjnFwnvSSyNuXzKNqEvYvbAwn7J/NZMAHav4BI/9Z1dMj1s4ssuBfuWJ4uZe5LvRARv77siSy/JYFI9MpkJZn7GdG/nOrDFVlhBXp0HFZy5mw/yJxvrzVY9DXp4nKi9r6CrNI5UkvMBlN6oC4iYCM4b8gAAIgAAIgAAIRIAD5j0DTHUkcHgHIP+Sf/wQiLP9kEF5jyJPIJIXDbcxS9kKJvLhrwWhftMyuWsbndU5jkViWVtzf6yBvudv5qj9p3vaCfxay0hsNidf023qMUzqnS63YXszPNq83kUUB6yoLdo7850qYRQE5+5COhjKrbmJ+cHSqu8fJfdXfrocHZINoqrSnd26Frs8vb1+yTOhyOS8pIHP+p8bVPc6+EbfeYa3IJ+IqlMiLepbp5PaAR/I+5N//qr/xxaGJd6/6y6qw6ybIKoZqVbPStKjX1KfndHfb3P0GW1f3aMcUkf/8roVBnbHTODXgmO/v+cCCfzVNffKyenlZvSSToLbMrFTWdUgyi3oMTsvMSoD5k0n7IkW5xjXMvLww4FV/EmFji/20frRHnt3d5ZjXj050dzcr2heM9r4iWV83c3UGbK7eJkX69osSRZLqavt8V01RTrV9wEEW/KOXOIAe/gsCIAACIAACIBB5ApD/w/NSnDkCBCD//FffCFSjKE8iwvJ/4M8hKv/0HYEHfvLDPqFYVN/keC9A4LBT/Mjz6y1up9tL//qHpwRSWWVdh9PtHXYu7mr+H5kcDgcBEAABEAABEIghApD/KG/2I3uhCUD+If/8JwD5P6pnakaxSTcx39tUEVvr1WXKyuXl9fJy/8g/9X+Y/1HVIqQLAiAAAiAAAtFDAPIf2i3xbZQTgPzzX32jvApGIHuxLv/R88BDTkAABEAABEAABEDgUyYA+Y9A0x1JHB4ByD/kn/8EIP+f8kMaZQcBEAABEAABEACBgyIA+T88L8WZI0AA8s9/9Y1ANYryJCD/B/XAw3lAAARAAARAAARA4FMmAPmP8mY/sheaAOQf8s9/ApD/T/khjbKDAAiAAAiAAAiAwEERgPyHdkt8G+UEIP/8V98or4IRyB7k/6AeeDgPCIAACIAACIAACHzKBCD/EWi6I4nDIwD5h/zznwDk/1N+SKPsIAACIAACIAACIHBQBCD/h+elOHMECED++a++EahGUZ4E5P+gHng4DwiAAAiAAAiAAAh8ygQg/1He7Ef2QhOA/EP++U8A8v8pP6RRdhAAARAAARAAARA4KAKQ/9BuiW+jnADkn//qG+VVMALZg/wf1AMP5wEBEAABEAABEACBT5kA5D8CTXckcXgEIP+Qf/4TKK1uzcqvxB8IgAAIgAAIgAAIgAAIfAwByP/heSnOHAECkH/+q28EqlGUJ4HbdJRfIGQPBEAABEAABEAABGKCAFqVMXGZkMlgBCD/kH/+E8BtOtjvH9tBAARAAARAAARAAATCJ4BWZfissGcUEoD88199o7DaRThLuE1HGDiSAwEQAAEQAAEQAAFeEkCrkpeX9dMpFOQf8s9/ArhNfzp3NJQUBEAABEAABEAABA6PAFqVh8cWZ44AAcg//9U3AtUoypPAbTrKLxCyBwIgAAIgAAIgAAIxQQCtypi4TMhkMAKQf8g//wngNh3s94/tIAACIAACIAACIAAC4RNAqzJ8VtgzCglA/vmvvlFY7SKcJdymIwwcyYEACIAACIAACIAALwmgVcnLy/rpFAryD/nnPwHcpj+dOxpKCgIgAAIgAAIgAAKHRwCtysNjizNHgADkn//qG4FqFOVJ4DYd5RcI2QMBEAABEAABEACBmCCAVmVMXCZkMhgByD/kn/8E9n+bFouPm4pTbtYm+ZqTnjamXqo+ris8JhYH+zlhOwiAAAiAAAiAAAiAAI8J7L9Vmcj/JjePrztvigb5x++Q/wT2d5tObs5NetqY8kiVOlma0p2fqisgHx6pUh7VJddk8eYWgIKAAAiAAAiAAAiAAAiESWB/rcowT47dQOCwCUD++a++h12Hov/8+7hNJ9dkJfmaUydLA0snFqd4KpJ8zTz2/xSBdtDj1XfJA8se2R7r+PjsMsMFx/xiU8GJo83JR6Yu+KXW9Xrr8avLzYmCjzwVDgcBEAABEAABEDhaAvtoVR5thpE6CHAJQP4h//wnsOfbtFic8qguxVPB/alwP6d4KlIe1fE1/v+4zGn1nO2sEHGLvL/PCcfkipELZk1QkiFOG5cgzSzrV7a25UqDVlGJ/PI939bmjr+r4+UhzhzhryD/EQaO5EAABEAABEDg8AjsuVUZ2bGTwys4zswPApD/oF7BjwuMUhxLFO71Np2qK0h5pArl9qR3QJWqK+Al3oyGk/aFOVX6AQxTJye398579yf/4bD1y/+3T8+cvuFe3v5buepoj6JLA/kP51JiHxAAARAAARCICQJ7bVXGRKGQyU+HAOQf8s9/Anu9Tadeqg4I+E/ITUvITePeF1I8FamXqrlbuJ/j47NzG5yD42edbq91ckatKk5m+n0zGk463d6emuLiztlRl9c6M9ehKkhgvkpIrCjvmR2aOuvwnB2x2+sKM+kJEwTK+kH3qMvr8Jw1jY+1KkLtHx8nKxu5YDs5UyNrbDYtWT1nR8wDshO5+eppktzUZFMpOS11cvukNi2BXP3UEzqDx+uwtwsShHEJGcW6C/Y5szxRmJphNnm85oH6vBrn0CTJbaey4ESGutuybJ1dNg63SpOYwwudTrfXPOgf3peUTzvd3qHOotQ8m83jdbrJn3XRVpIi3FMZwwn7p/K/fs+aEb9LNS4f/X7Tt3XW2Df61c8PNhYV/5vB9XprfX2lu/HmtRdvzvZIjyUKj2dozWee3Xq+teF7c+v+HWd7SRJzOQKOLYnznz/hWH7bqT9u+N4s9WTTC5RRfP2eb+vhrZGMeOGJ7NGxL1/ef761+eKn61eWGrNJBwor/50FY3N3fn706s2tr5bqpAfQt8KtcvgMAiAAAiAAAiAQAQJ7bVVGIEtIAgTCJwD538UZwseHPWOCwF5v00lPG7ij+gm5aWS1f18z1/9TdQVJTxuDFV9SPm3zeM0mfVm5ut1MJq63FpIo+ow6j9PtNU3O9fd1VDY4DR6v7eRMdbogPj5bPrDi8JzVa1vLykYGZr32WXthqjA+TlZuXLUvzHe0NheXq5uMK/RUQfePz64g8+SXR+1jzXX9HfYLTrd31Obq79dUd8yaPF77jDEnKZT8J/2mon78Au0ISE0bGfF4xyYWNDpNddu0yeN1zM3rLWONtYPd9gsOz1mtkghwahD5jxNWlHeQ8tpM+pKqcmHcnsv4wTn/oeW/yPTdpm/r1saLK5cvOGf68v9nIv8bL3+49eiJZ261WylOTdLOPn678erHc55Znfbc2W/err/+YUFNChVwLLdzIbOK2P7aJe1x0leSphx/veF7c6Y/K/UfOuxP3j753fMFw3C35dE939ajm6RXgsr/xvfPv/p6fWn24vL9P2z6tu6vqGkvQ7AqhO0gAAIgAAIgAAJRSGCvrcooLAKy9CkTgPxD/vlPYK+36bDlvyHYveNEfmNpdQOdrJ6umHW6vXo1WT+Pyr91WJXKjLEXaFcdnrM9FaL4+Oy0ypYSZY00yT/27phfbJOfoCpu94xVZJG4g7gUeXpWfmqyMNj+dLTc6fZqVcRghQUTTrfXPqnLjBcmfV7VNM70NYgFIUb+U+LeBepT+af9BYmflzYwwt9TRQbMhczwPh3tDyb/7/oFmDn/wfIcooxhyn/AnP+1n293Sci4eomRyD8dk2dH4Ndf/zCl8tf5oq5N4uHnu48zERDU6jcZYw84lnuhqeQ/fnW9SSBI/V9bzE/ePn51vf2EIDFFpeobUXfUShKEx//3numXZHtzooDK//rrH+bq0o8lCtOzz9/0ba1veNhoAu7J8RkEQAAEQAAEQCCaCey1VRnNZUHePkECkH/+q+8nWK0DirzX2/THh/0npjW2GNwjsyTsn/4NdRax8k87Ao4lCmXNp5xur6aW6LSoUNdtXTJtH+KYX+4oPBGXIM1p9dDgedvEXK9uoLQol04T2HV/NlS+TU5WyKdx+84hVXKiMOGYXGm+QCfzh5D/E0yov7Y+gxzOjPw7LI2pCSQGoWzkgn1hvlFGvPpENgnpt+mVCcFH/gPkf69lZMsSYrX/Xef8u865qoXv5P/GtH92BpXwtd9fa08g38YlpDXN/3HTt3XekE8rjODE2OqrrScvzyu/8HccsMdya1RcQlqp4/uNVz/Ot6dJ0lauvvJ3HyQcy68y3fSu//T4O/8ahGs/324/4Zd/2hFAIPzGevrV1pNnKxXHcPMBARAAARAAARCIMQJ7bVVymxD4DAJHTgDyH2N3nCOvMbGYgb3eppkF/0Iu5s+8DoA7NYCLJfHzUpWdhPr31JVJ0/PzGkno+/vyL6P7Z7f45T85ub1v1utwTaoKCsXS0iomdL+jkAh8XIJUnNdS1+Xoty7ZPF7H/HJneWaw/QOEOSVzxOTxOodUCYz8V1oY+c9+N/KfyUyVT5G8m/MvUcyyb9fzy7/JL/8VBkb+sz4k/0ykAy2vPyiAGfkPludgZQwoC5cw+zl02D8dvWdX/mfn3tNX7oUj/+yxbIr0g0jkucQ4v6Jrc+PVj3NNJC4jV3XrkW/r0cMzjeVV8kzr3Mu378u//1V/gi9GF15D/nHjBQEQAAEQAIGYJLDXVmVAEwL/BYGjJQD5j8n7ztFWmphLfc+3abqY/2RpsJKmnlGEeB1Aymet3fNkibsiRt1lXSsflH86kO6wtKQmCBPjaN8BHfnPEGRWZGWQcHESuJ5jHiEr8FUJmIH3nfsHCHNQ+U8gOaSr+pGx6JIJ0q1gbxfGS+S9q7bFsZIUkly48s8s7Odg+gjiEjLyF65ZxQAAIABJREFU+96VlzsjYK9lTIzPDjPsP9iCf6Hln0zsfz/sP6uS2PvGTbJ0X8CxATUh6bNy7YU/rT+/ffr82/Vvz9ckkQ6RKtvrTd/WVSbQgAYRQP4DuOG/IAACIAACIBDrBPbcqmSacLFeauSfNwQg/5B//hPYx206uSYrydccsOY/+dmLxanuiiRfc3JNVrC7AJ1d75hf1rQ2lDQ49dYFk8drterk2el0zr9eHTjyn3pCN+jx2t0zzeUNin6X3rFElgnQ1GeJVeopEhHQVNsgr2hRaDxWz9n+Jlmw/TMEWVxhDib/CV8UkdgEz1m9TlOpHO63LpHF/Ozt4s+LyNSASS2NCAhT/ukkAsf8Ynd7W4V6fJDJ/FAvmebgF/6psfq6uizJ3soY0JGxK+1dw/7dyzfmZjokCYECHzDyT3o3mAX/1l//sDJr79te8I8O44eWfzLO33TvkY+E99852UyX7itoJSsIbD7w9rZbHDe/vXWXLB84r2uT/YPW9Xrr8SuM/PP/VrNrLcVGEAABEAABPhHYR6uST8VHWWKdAOQf7VH+E9jfbZr4/9OGlEd1qZOlKd15x3WFqe6KlEd1KY9UIcyf3hGEMqNm/Kxzdlln1OSIisqGyEr+g+qiYPIfl5CR0zBhdJHl9Ht7qsXCRvX4WccceUdASo5aPbRgpq/6m5xpV1fSF/Ltun9bwXuj5cHkn7ziLr2ry7Hs8JwdNQ0VZ6t75732sb6MX6k6Zr3WYSV9MWGY8h+XIM0os+mmSYYHBppyC5w2j3e0n8RNJH5RoRw6ZfN4LdOWQkH6rnkOVsY9yD8j4dxl/2gsQIDA75R/EkyRZnCsMK/6e/Xj7VtfDTcX0CsYcOzOG73gV4a5l2Rt/7Ey8h4H8gLFL+q7zrwki/xvPpntrpSXXr7+fOvBt192JfVD/ncCxBYQAAEQAAEQiEUC+2tVxmJJkWdeEoD88199eVlx91So/d+mxeJUXUHqLSV51d/TBrIQoK7gmFi8p9SxMy8JSE4sXXq1tb42XRCHewgIgAAIgAAIgMCnQmD/rUrE/4NAFBCA/H8qtypeCliYhcJtOkxQ2C0cAkmSnv6x1dOP3268+nFBTV6piD8QAAEQAAEQAIFPhABalZ/IheZrMSH/aLjznwBu03y9fx1JuUS55PV+G98/Xx5rPZ7A/5/PkUBGoiAAAiAAAiAQnQTQqozO64JchUkA8o+2O/8J4DYd5u0Au4EACIAACIAACIAACIQggFZlCDj4KvoJQP75r77RXwsPO4e4TR82YZwfBEAABEAABEAABD4FAmhVfgpXmcdlhPxD/vlPALdpHt/CUDQQAAEQAAEQAAEQiBgBtCojhhoJHQYByD//1fcw6k1snRO36di6XsgtCIAACIAACIAACEQnAbQqo/O6IFdhEoD8Q/75TwC36TBvB9gNBEAABEAABEAABEAgBAG0KkPAwVfRTwDyz3/1jf5aeNg5xG36sAnj/CAAAiAAAiAAAiDwKRBAq/JTuMo8LiPkH/LPfwK4TfP4FoaigQAIgAAIgAAIgEDECKBVGTHUSOgwCED++a++h1FvYuucuE3H1vVCbkEABEAABEAABEAgOgmgVRmd1wW5CpMA5B/yz38CuE2HeTvAbiAAAiAAAiAAAiAAAiEIoFUZAg6+in4CkH/+q2/018LDziFu04dNGOcHARAAARAAARAAgU+BAFqVn8JV5nEZIf+Qf/4TwG2ax7cwFA0EQAAEQAAEQAAEIkYArcqIoUZCh0EA8s9/9T2MehNb5zyS23RKqbFOJkj8vLS2tzY5USjM1HbZFvTWBaPDXlWQFmGAKQKtxtoqSHhX2+MSMjLKbHr3nCpbcCxRGJcgze9bMU8s6G1uvc3dry6LZA6F5dP6LvkhpRgfJysZcdNifnwSWY2evvoM9jzJv65vHtfnxL8Dy36FDyAAAiAAAiAAAvwjcCStSv5hRImOigDkH612/hM4ktt0utogTxQmpbTWN+clHJMXDY9XZYuPJQoFOeZhS2sqx8Mj8OPfKf/iMltfd5vK4mLlP2/wZFPBiQhkZmcSsSv/O8uCLSAAAiAAAiAAAjwmcCStSh7zRNEiTADyz3/1jXCVisLkInybTkxWKjpMffap9g5D66B70KAv3x7qj0uQSkqdusGq5MR3FS8pQ90+7NIapwYs9ipZWsIxeZnF3dU+rNY6NOapptLMY4nCJGlLG7OPZtRRJUuLj5MVj7o6Gg3tfdZes6u1Ypd9jiUKRVlGjd3Vp3O0qR0D74/8xydL6Emo/MfHZxcO+TsCAq5gXII0o9KpMU9ph10DRk32cWFCYkWldqp/ZFxjnmpXFiQkki1KnWvQ5NJaLWXZ4rgEaVqRWWOe6ht2aUcHcoXC5F/Xt0xaGlqH27XjZJ8MQVxCRmbDhM4+1WUYbdK49F3yhGPywt6pweGpfrOrt6ea2z8izNb1ml39w1MDo+RYtmj9Q462FhMNagjAyJaCjvx3tZu6jVO6MVdTaebxzBHDcD09//Ecs2G4nr0c8fHZeeqJQZNr0DzVWpWX1XKyvymbRkbktpzUqrLpyH9cgjSzfnqgv0LwRVOra0j2BXM5Wg2kdA57Zbm6hbku7cx1YXOCDyAAAiAAAiAAArFOIMKtyljHhfxHGwHI/zsHi7Zrg/wcFIHI36aTP1PW9VUeSxSK6wzlEiKrxxKFyVlG/fhZq3MoX/iu1lHVb5KToIDj6cYBe5/0mKx0dFWrIs6ZItBqx7QZn8vLR/xmniLQ9tv7pHHZJUMrGiWzT7rRYG468UXgPmmfFVXZ3Y0ykrqkfNpqeS/s/1iikCv/Ccfk5aYlrW580LqgGx0tY4IUaLaTfl1VN2MvTCV5PlHUkpcpyGr00KSTPq9STYyXCwRZLSd1jbJjicLUDF1nb6UgvrVr0iJnDklXzA71lJLweI8/9l6qmh1Uy5OT27tdo7JEYXx8dpF2Rd8lTz2hoz0U8fHZ6co6aZKfEukxqeiUM84vLJgY1VQkfEGLRnoZsho9Vkur6AvSY8LFKNmOrYiPIzxp9k6IjITnb0qrnePlEkFcgjS7x9NeKmJrGukLMDelJgiT4pV1w5pciT9LiV9UKGlJGz2a+mxpgVNrqBckCJMZ+c89Ri8HmQ6Q3XDSZFAmJwpPpI0YzE1stwKbBD6AAAiAAAiAAAjELoHItypjlxVyHoUEIP/vNCwKLw+ydCAEIn+bTj7e1dCQQ9yyyyDjTAgnHlto03MG4ZN/Xd/qtshp78Bnyia3vTgut2TEL+3JzJbSX6va3cuG4an+YTL8rp0cyovPKjL69yEh/Y526a8C9yn4jYo9c8q2xHJ5cuU/LiEjrbIlLzud9BTkm/Vj2rRteY5LyMjt8BgtlsaGhqxMEi9QblwdtU320/yMuVQ5uSXDC9wpAymZI8MmotCk/yLdqLe2Sn+lanKNUhSikomh3iLuPuIqMuc/Ma60xrygNwzV1iikx9/7YZ7I7lTrxrv11k7jkk2vTOVASxX5z88WlkIr2o6toCP/tBMk+df1TW57UaJQqprtb5KRPe1DOdu9DMcShemNnkH1u9UHEr4oqnFMVUoEKenGAaZTIKvRY9BbtJNDMnrJtuWfvRziqml6hp1TLbjw8RkEQAAEQAAEQCAWCUS+VRmLlJDnqCUA+X/PMaL2OiFjH0MgwrfpFFmn2uDW60dbuxwD9qm2Xo1cmJtRWkJlOPnX9Y3btk/CATgeS631PflnZLX01yqqrCwEMlpudDdmkVF9Kv8ZvwrcJ+VXTawPp4qMAWH/ASP/7JlJlj5T1jOG/N5GUam82tAz5m4ukJUOnWqTv1sdgNj1h+Rf9OtA+U/NMLMdBBLFLF3wLy5BmpKjLGtxDExYCrfjI0h8wbSrOp0ER6Tm2UwG5fH3i0Y7F9jChiP/ycntXY6+3GyzpquIW0wi/+0khIH9S1fNauqzc1o9PVXbA/vWoVbDQo8ih7Diyj9zOYj8M2eA/LMM8QEEQAAEQAAEeEMgwq1K3nBDQaKEAOT/XSs/Si4JsnHgBCJ/m5a0GEpSiBmq2ovJjP3fVNSOu5vlZJF/oXREyxlXDwj71zrauWH/xyU6f9i/aam9QnosUZggalQ1lSXukH/pFyRun7tP8melShL2T5xZqpoNHfaf+HlplclRwYTWC9JJbDw78p+QWFHSVEN7LpgB8+zshpNDPaVkqn98UWFnszRJmNVyclAtT2DC/vsG64UJjertsH+panaot4gMub8/8v8u7D9OVqInYf9J0pbaijzSK0FLx0xYoP0jtO8jPj5b3nfKNKxM/qy0ZpxMIggW9q91tAeE/dNpFJRnWoIwLiFDriMT+6vT/ZMyaK0jYf8mMj8iKV5Zb9HLmL6VgeHRZqd/4gOd85+UpGqZGKvIEED+D/zXihOCAAiAAAiAQDQTiHyrMpppIG8xRwDyD/nnP4EI36aJu3b3pyUIkzN0TdvzyVOzO7tsC0POXV71lyxp9y/4N2qpyBbTMPWeLlOHbnzAPtVUuL2Yn9k9OMwsCliQtnPkX5LALArI2Yesipc7MjDm7h8a71Bbua/6i0uQylo9euuCafas2ekesA/kxAvFBcZ+K3nVn85qqcgjXQb0j66BN2BzkRkHzOp9ZME/xpzfW/DP6NabXORYZr0AafEIXfCvb4isEbhT/uMSMrKbp4dsLs2wpbFjSt9ZRFcN1JvJgn8aDZlRTzMQl5Aha5odsk92GYYqZC2dY+7WihxJvnlgzK0ZtjS3mAas5O0JARjf5T9ORhdQ7BmcYnmS1y7k2UZ3WwchXz2tt7kG7FPtVXmkg+OYvHJ0lU7jP5YoZF/1J8oxD1jas+IaW11DucfeBWJg5J8ljw8gAAIgAAIgwD8CEW5V8g8gSnS0BCD//Fffo61h0ZB6bN2mqfwf1Hvpo4H/gechLkEqzm/MkpIfr1DmNA5WJWx3VYSZVlxCRl6Pp5MJpgjzkF13S/mstXNyKIezrMOuu2EjCIAACIAACIAAPwjEVquSH8xRigMkAPmH/POfQGzdpiH/4dzghDKjxubuN7sGTKPFzGyFcI6i+yQeb2wzLQz0v/c2wfAPZ/dM+ryqzrak01RjSX+WCT6AAAiAAAiAAL8JxFarkt/XAqXbBwHIP//Vdx/VgmeH4DbNswuK4oAACIAACIAACIDAkRBAq/JIsCPRgyIA+Yf8858AbtMHdb/AeUAABEAABEAABEDgUyaAVuWnfPV5UHbIP//VlwfV9COLgNv0RwLE4SAAAiAAAiAAAiAAAscShWhVohrENAHIP+Sf/wRwm47pmxQyDwIgAAIgAAIgAAJRQgCtyii5EMjG/ghA/vmvvvurGXw6CrdpPl1NlAUEQAAEQAAEQAAEjooAWpVHRR7pHggByD/kn/8EcJs+kJsFTgICIAACIAACIAACnzgBtCo/8QoQ68WH/PNffWO9jn58/nGb/niGOAMIgAAIgAAIgAAIgABalagDMU0A8g/55z8B3KZj+iaFzIMACIAACIAACIBAlBBAqzJKLgSysT8CkH/+q+/+agafjsJtmk9XE2UBARAAARAAARAAgaMigFblUZFHugdCAPIP+ec/gdLq1qz8SvyBAAiAAAiAAAiAAAiAwMcQgPwfiILiJEdFAPLPf/U9qroVPeniNh091wI5AQEQAAEQAAEQAIHYJYBWZexeO+T8WKIQ8g/55z8B3KZxswMBEAABEAABEAABEPh4AmhVfjxDnOEICUD++a++R1i9oiRp3Kaj5EIgGyAAAiAAAiAAAiAQ0wTQqozpy4fMQ/4h//wngNs07nQgAAIgAAIgAAIgAAIfTwCtyo9niDMcIQHIP//V9wirV5Qkjdt0lFwIZAMEQAAEQAAEQAAEYpoAWpUxffmQecg/5J//BHCbxp0OBEAABEAABEAABEDg4wmgVfnxDHGGIyQA+ee/+h5h9YqSpHGbjpILgWyAAAiAAAiAAAiAQEwTQKsypi8fMg/5h/zznwBu07jTgQAIgAAIgAAIgAAIfDwBtCo/niHOcIQEIP/8V98jrF5RkjRu01FyIZANEAABEAABEAABEIhpAmhVxvTlQ+Yh/5B//hPY/21aLD6uK0y5WZvka0562ph6qfq4rvCYWIwbBwiAAAiAAAiAAAiAwCdIYP+tykT+N7k/wfoQc0WG/ON3yH8C+7tNJzfnJj1tTHmkSp0sTenOT9UVkA+PVCmP6pJrsmLup44MgwAIgAAIgAAIgAAIfCSB/bUqPzJRHA4CB0UA8s9/9T2ouhK759nHbTq5JivJ15w6WRpYarE4xVOR5GsO3//jEqSF/Rcc88sdhScCz7bdBxwfn11muOCYX2wqCLpPsGP3ul1cPO2YX24tOvSEuBnLqPM43V69WsbdGHOfEz8v7r7wp/XXP0xVpUYy8yXG7zZ9W1fHy/eUaFb+5Zu+rXvXDRnx7+5yH1kEwS+1rtdbj19dbk4UhJ+ZgtbNTd/Wjenq8A/Z956RTGvfmTzUA4vUa498WzfcqqTt28uhJnckJ+de5f39Othsn/hfeiaevl37+Xb7ifeqdIiqLio8f9O3tXltRJLw7pfFnvCQPoTITzgpHkmew8kY9gGBWCSwj1ZlLBYTeeYrAch/5B7efK1D0V+uPd+mxeKUR3UpnopgRUvxVKQ8qgsz/j/a5D+n/ZTt5GS5gLR04+Ozc6pGekaXzC6v03V21DbZ1lYnTt7njyI+taK8a3xgfNnm8Tpnl4dGLXUleQmMgRyI/B/PMQ8vTlZK3mujB7tG4W8XfDF68uWbU+3ktIJfGVyvt7gmEJeQ1jT/x03f1nlDfnx8dnGb2+RwVOUccB5C53YfepP8q+qhq2+f/Ph0tOg49+QfWYT9GQhX1biZ4X4uH/1+07e1/tsngzJ/t9Tx/9Rhe/r2ycvzyi/2UCHDT2vTt7Xp2/rm+Zv7j56cnDOVpX/4mmYUX7/18/2+rAPoODvAU3ExHksUpvymxXr/7ZMfPjafpY7v1x95CuL2AD8gJ4f3X+5VTiu1GifmOmpIx2LSZ+Waa396cLI5/KT3If9Jkp5+28mhntpIdq/s76fHctif/O+DJ5virh+iuVLtmmFsBIFdCey5Vcnfrthd+WBjlBOA/EdjyybKK03MZW+vt+lUXUHKI1Uotye9A6pUXUE4KKJK/uPjZGUjF+wzupx4YcIxeenAKafb65hf1o+M9w27Rl1ep9trdeqyj+/5d5F4vLFrjBzumJnrHxrXji7ZPOTMWhVplH+8/MclSGVdK7aTBy//Gapbj3xb4ch/OJf7MPbZh/xLmcHJR9cMBzs4uT8D4apaMD5U/jd9W/cuaWmeD1v+1x49WFy+cfLiw682SS/A+vPbvcWhlvOIS0hTun7/+KePlepjicIDPNWuPPO3B/93/TacjSn/uX7k/tuYkH9ucUQJY6uvtg5b/rkpRuzz/n56bPb2J//74MmmuPNDlFeqnRnGFhAIRmCvrcpg58F2EDgSApD/PUvOkVwnJPoxBPZ6m069VB0Q8J+Qm5aQm8bNQ4qnIvVS0DDm+Pjs3JaJoUmvdWa+r6O2RvMu7D8hsaK8Z3Zo6qzDc3bE/v+zdyZOaSXt/v8TbtWt93d/93cnK3DYlKPghqK4oRiNiooiuAPKoiyyuIuCW2JiEjOZLDpZZjRjVEwmY/LeYGYyb5XzVpH5q37Vp/F4RDFqEqP4VFGpI5zT/fSn+3T62/30057KvHS8Ao/d/uuVldVd446RGUefp1IeyZEjVF4xUMp8ZNpqM+emidH63jm1bmzWM2DKlxqau6ddgRmbw5xDovbMJiSSApu+b6ZnZLqjU5ej7HEHZu0taAsD/2K5ZmjW61DxuWRSYT/S54OeAipBFpckBKXV3bd6/LOdLQqCSwrTnI7ArNOozm0I2ALDZckiDluWU9vfOTjjGh1rayxTNN7wBmYaC5PYRJq8/UaPf9bRpaYdB0RppvYRZGEmLyL+TfUludoh68iMa3i0QZWLnQIQq+qejr4ZNO8wMKxVFfCxs0D1RI9/1lBRprLfcPU76p13e/xocgGZ15jPrAvmNfdSwdWBn+dfbv7yz/Vb/lbd8L+Coc1xNVrUJYjics/jB8ubwdDm4sIzlxrN3ZT0v8crwEj+Lbiy/2e/lf8on/k9E+ReKtA/+nv5w3J3xei1lb8Wb2h5XDJRau+9/3ZxPbz25sPcg6ka6baXwerqjeaax4/ebM60SNhESk7l9PRPoaVQeOn1q+nB1lQhqlAs/u/1NFT3LT15s7n0+lXAXM7jkvlNyJ0eZ4HcFi7bJ998XHlzX50oLu97Hwxt3jREB6dgFoE21XlF75lF5i28eGYrzcI8+bw6YyA4/xLhevJstkWZhrJguP1jYbC6OllILQ4npU893EAM0zhI3GbX3p5Z+WvtzYf7d30NziDt9s8mUgrUt68//xOVcW0lYKvGUr/Y/s9gaPPZ8ubK7+uDpajUUeKfK1BpfT/j6ltYWxnta8DbGY6WF20PbhiaCdQMfllwZVJbJHbXF/9cmeXpR7qp/DhUFqmsZ6gga7+u35qwygU7/jehfUbop/DFTz5TVFLY32S7JTRnlPv+tRYKT7VI8EyBburv4MYfoyqU/p6tjvkKoGriu65vhOmqoX+NzohKP1nuGqYa54tXoZlpe0ESmXQBPY6tRflWSmLZQzchurWnyn9YCIWfXzdeaXp0/+Vm8O272WlrJkWGw5EqWu7dWvywFAqj77/37elBs9seDCFWi6KnxlJL0CweNhs778RixefVdd58vfBmc2ltZbjeub/bf2Nu7+izP5c2Np/MT1VK0JsbJaT3NFhMcfjlmr1m8PXzd8ifhXupoNTx+O7y5hrV8sfM1QnUrgE87TVjbbPP//k8iN6m/V+9KHsS/httW1j+sGxKjzikKLzIiSZql1DE5oeu6rbHzHrB81B7NrbdPOmGRNf7nl3Hnq9qdKOiGjOdIFwAgdNF4LCjytNVOrA27gmA+N8xXIv7+j6bBTxsN817Vc1c1SeyUlC0/1AtU/8LTbm8VzWxeG7p6l51VX2Fwef0oTXwhrxEDkcqb0eC2WzUFBXZkDYe8eQJkfs9Ev+BGWfPsK6uoVLvdwdm3aM2uZAkLueX2G95xyabNdX5Sot+MCKn+eerNGOz3tHJzm5PzdXGOvt0j3/W2V5KcEmByGhEq+6Tem1DmbbPNIR0NRbMQj76qbMxH+XYgeS0sRyJOvqTmOa0BWY9w9ZMDilMsdkCs719Ux1eT21zQxa5NV/gG1CrGqo6/I6BSLn456vqR2bdE8NlO32nuZIMptu/vcdv7rJr9D5HYPtmcfGQOzDrdJiLirU6Jwp8oMlLop0F7P3j5i57dX1NTrahqXfWMz6mq6rOlqbSBkdd5KgXlkLh1d8WB81e583Xz9bCSL3UIjla4kXycv6Wu17X43v01+r/Ipd4Sb6l5/u/0Fh5zF5bdyX5u4OK/1gJYnUd3Pjj6fM3dyZmPMYS4XcNnpWPK7+vj1u6mruXFkLhpcdIIZP/gfIKvn33ZGklMHqruTw5XYF26QdfPu3tGPXe2VgLhecna3lb4v/pL7/en7s7OPl6IRRe/rDcIUtMuuCafPNx9dc7V3lIk2RQ4mfxhjaRUqr4nig+UeK/+S5SlU+WVsY8Xvvoa4RudVLJQu7Thu//CoY2H94c63A8+uFNGLuRH1D8JyUFbm2EV35fn+z3tvf9fP8lEjx4z39W6dzjUPjFs5stjSbj5Nuljc2bhhwWl0Tif+OPgHHi3kb4l5+HMzk7xD/vYrH2zp9rofDcg6l20+jwHLrGcI6WF20P5oPnTTCxPesrnSUtvDJ57WWkHqtKZEnpU/c2UGW5W7ps06iydgc1UOhuD09+H/Xpqb8alVRUS2i5mhpLbMdqdVG1jJdYlz8sR+1QiMqouTxZxHdde/lx9bfF3hZTs+3nx6Hw4p1mklNcbnj0kCqdrdVUnLKf+MdNiG7tYjlqwy9X1+88mOpov359+SM9CZVK/bQ4d7Ol1dZkf/xwI/IiMI3f054Egtynlmnxz5U0NPhfr4XCL+antC3aNLZkz1eew5FWjKO5lcVnsx360aH5jaXQjp0+kSZBzXMF/7k+//Pq1Mj304uol8ATbUzxH8tgLP5frYTuPZ/vGRspSxHhWAyL81NN2p6hhY+r79/h2Zx8B4ro8ST45sEPd3uG26Tn93v19rCHSCl1o6mrOxb0Hgn+p8rxFM0F0NtncHGwzS9fhe7fn7F137q+jGay7nUV7yP+o3nuCh0Sq+vY81UVEjsa1UF22TAbBlwDgRNF4LCjyhNlPBgDBED8b8seaA3xSuCw3fSBxX/1nsRoJd9SihbuuJeV1Z7Iyj+HI00pqSssvyrhkWwircCEtG69HE0KFFmQFDeppWhxjyUvRzJ4WqdIwgrc210n4ok5fHFaZQB/j8W/Z3ysRoZ8lYWJpo7ArGfAmEKQKVR0PTwRwCbSctrQmjwW/wmyHldgpkUp4V5SqDx3qceRbqQ/fELTPDbrnuxVCiLiH09PbLsnBGb0pWi+gHtZWdUXKZeA12SkZitkjAEinSat5F3dGhGBZjoUplteZAYS+Yk5NYqy6iwJsiH1yggVF1Ae9QjKjjJ4f7d/gpWDpMjWirfgQp1n5SNeMhX9wzj09uPyxpw6UcwVSnAwvB/9Knrsy3T7j1qqxX/eseQwlXOsBPE9aDZhK74dV6BStdm0DRVigkz47xZsRi1XhIU0Ch+IV3RZObrb/w6GNvF6r4DT0Dr5cGSyM5cdWfnHUwYE4zYOR1p/7d84BTaRUjH+L6wo8Dbm5Y253WH5mEWgTb1nQ54Uwu8a8BJiW0ZiUtaNx6Ew7fWdXXvbf+OhrSrrgOIf6zGslGit9eNQ2XbuqlSuUJL8nWX07ccgJfXxyv9oTSbyWdj4Y6pFylz5F6fcQG4Fq5NKKiBF0gXXjTfh5Y0BUeTnAAAgAElEQVQ5XaLoaHlFaXW8sB/c+GNQRcaqry1FHXH75+c069psdVfzWFwSmxd8bGPGVmS2/6jrqKSiWgLdJnev/MdqdVHpczhSzcwekSmjMqKdSh72lnGFEgEXxbNcCT1tEosibh3Unv997KGbEN3aschceXtHRYWExDs+Fm9oWVwyu/oFmrKZ0KUK0WRcSp4qOyc7att8RMnvsidWLW8XgQqHmVqxsBaKuP3HYhX5fmupXMxFE1XMMB8YJs1qtBJNNaZKUZC/1WCgkL1j5T+WwREOb1ATxQmmltl1bbZSOfLbwj47D4aLaPt/eRJpPPu/eugF32WPOJGah6Kan5gbuLcRXqOmF5mtIqpe0kvnFkLh4M/DWeyYMzuo1AyezNToet/ddezzqjIbFTM1uAYCp47AYUeVp66AYHB8EwDxvy174rumz3LpDttNf6bbP/eSohrp6tGaDDTsi9rzn5RnanZNOUbQajzeb489ApjR/tmERN6K3O+NKmlSYT/t7k5fmGpkWPy7xzz5lHTHot0zbErniLMbI8/iShcXD9HiP616wjM+qpKKaPFfK/uE+EfzDpR76j7lOqD4NzchVc/ikpk6FGtAX0FNjqTU1Fn8ti0g26ZSUxidjZFHDiL+hf9FhTr7fd1djKLcsYkU2l86KYkaE295BUfk/SNLIicy9mWKf+Qg8PPq3ceRD94THiX+YyVIUicC0E7a1FROTqnj8ezqh+XfdvgkY3Xx4l+PdASqAuF/oamK3SH6aHlA6yu8VQG79KcVoEH8s4naJMr7d+X1DSU/4lOwZ6i8bfldKty+pmYfsABe+eOVIysB67QXPzRHaTNsM472H9Ptny2pHoqESMTVTe/5T/hP5AQRNbeyvPGDiivC4n9cLRJdtgdeIncG1UUdAkIF/IvYc8+I7WFUdNLR8ooS/3i9FJ/jQLD2rq8oxc7n1TVT2yJoV3O85eEgPW1UUlEtYR+xHavVYQdyOms2kaIaQxNJeMML/f3ujHAwS2aNrL5/11smZOq0fezBTYjZ2rHIDD6ORMKXlM6hdfU7qCElCu3XXqLaD278Mfd0vre3Iydpx/+/e26UQPaUxqzl7bdjl/iPxSqDoNxStgJJJvwnmvOKJf7pGTTstY7eLxZD/HMkMQHiEwEYIhzvJVl4g7xg8Ae7iuDpA9pt5FOvXmRGj2kPDsu38m5Rn5yY07QWDG1iLwC63umtCnS94CkP9HJdOrr4pycu9+g69nhVE5iNimkbXAOBU0fgsKPKU1dAMDi+CYD43zH4iO/KPrOlO2w3TQX82zeYP3UcAHNrAJPtPiKZz9e1jcx6fQOq3LxkiaIUHe8X2Q6wt/ivSsPi3+vUSbMKU7MU+CMmxVvi3ynfJf5zY4h/NpGWb77lHkOP4Gs8v8A0fsvt35S+5fbvddQIPyX+cSgBPK1Ap8YmJGRueRqJVrqiAv5J6yLiH0t679hkS2WRJDUnuwadCIidFKIeOZT49+Qh8c/hSKPE/8qbuTalOr+oFn/ycrJpYcMU/0wlQAuSPcX/7gS3FfXWcYBZVEDBpV9u1hSXytNdo28jSoMppPEW90+I/62j/rCXLxb/ER/11zcqpNMPN9ABbyxuRPyv/rpHnHymecxrFA+C2ixwZPEfWfFbcKWxJaqt8xFwY8ihYhP8OFSGxf/K7+ujTTV0LeSWFCUQlNv/lljN71xbCoXn+hwHEf9HyytK/EdcCahgfrHqi6nY2URK2QjytZ6fthbllRaVIV/3KPFPtxxa7OGLZ34VM6moSAp40orp9o+X8bHAxoJ2d6ujXzp8sb/4p09qpC2869fR1ZFXrEpJJpk6jX5HsCcC056oJkSLTPoYvLSCbfGP/HdEtfUd0/67q3hC7ZcltJBOGx/LntSkmC3qk+J/N6tt3UudInHAaP+iy/bx9+FY4n8PgDuPA8Q1vvr+3ZRJI88qu9qDXP2Z4p/eov8p8R85ZZNpD4tLohCPG5szeqXu9r+x7wZNFV/gSRm6XrYh7BT/zMr95Mo/nizbu+sA8c/wp4uqC/gzDggcdlQZB0WGIsQTARD/2yOPeKpXKAuTwKG7aRzMfwBFyNvzI7x5ZZ/jAHa7/dPu8YlSN4qx110nJEguGzneM8U/LcWJy/nY7b8hL+L27+ltw3HR+BJlujwvMZGMLf4jStvZoSQokU+7/fMuUI76Hh1OKimvx0EF/CtKjQQ5J7jKKhvyGjBTEfUiOw62xD+HI1VSgQno7Qx0uVDAvyYq4J9DI+FFoIlSrSioQaC3UBRT/Asuol0Grkl3PuUiIaMSObL4x1KE8pxHuyf2cPv/gBbH0LxActkVlTo7C8XYYwqt/Y/6Y0qdLefh6ASZ9+DGg7U6XrcXJaJo5HhyIUr8cy8VNN1D2+yxxBJ+19D1cPXOwzElP+L2T8sDpvjHu+VXfl+/Nv16Zcvl4VBu/3uO4MUMJ2cWl5Rr5mae/DLSImfaHFl7fHMfO3hnV6Pj5bEAjnLSrqG2WNNu/8HQ5pgOBbPkXirIrdTlFiLfb3rlH29AQPs13r6bXwvjlf8oX2Ic0A5t4hBFu/0fMC9aeuEQerU30Kb9pUfI9TpWfW0pdhRZjXexuPMh2lGCt2xk4UgTVLBDZo+x955/XSEzqd3in45DiWscz+/s2L2yqxkzM8XTXvu4/dPin1bOzyZQaAk2kSIp1RVSczER8U95ue9jz+7WHiUymeKfn1yWU1WJY1jy2Ogoyt1b03HL2W1PrBZFFwGzwm7qeJdBrDdU9A/j6NvtCHl4PoU534dhMps6qqM9xT8ReTd3GxzFAT/+4l+ParkiDkdaRQV0nA+URtmPtpAc4NWLsgf9eQ7toFm9Oz/55uOLe8YoTxB6UoaOD4Ld/vHbij2Jdjc2Wvxjnsw2FlXvzHnDfV7VqEbFTBCugcDpInDoUWWMweTpKjVYGzcEQPzvre7ipoKhICwueYRumn81gxeqjYr5j2AmJwv9Sl6oln81Oo46EzUOYucd7K0tr68y+XBgPJ0iMbIz3z9cW1x9xeAze6eQ0tZXpYkysK52DA5oqupLW0bcVNQ9GRcF/LvajXbId7Q2FJd1tPUiOV0sFu0j/gUiI9r/Pz7WsjPgH5/QtI7N4kkBpBDYsnzGUX/NVp8VH/XnbkunBHyU+EcDUyo4n3eACvhn2g5kiE7Y5qnq++ij/rxtjvGto/5QVP+oZXx65Z93qVTdh6IG6jXVhdU9Zte4IzDrcpnk0tSoRwiW/IoNxUQ0G3WK/EhEeiZzfI0POQuuPe+hAv4trlMB/1RI2FwdQEGwF+enWpt7+ub+DG78Ma5FcwRY7C3O3TS01EgPHO0/VoJRw2IWl8RO72vPZ1t13d7Hvz75CcX6GjPVy74z+t6HmUpMWoCC4QVfPu0xe13XkRx9NqFL2BIYscQ/XsRDpxW8GMKnsuOx+G5lhfV2893IbvAoU5kjeP65MuscFfBvytfivDf7kjo3PjuRqYiwgg2GNn+c8ekN9249Cy1Q4j+TQ+JNyNEB/yivhCy82fjlU1e7s92PQgz+6K+LEv8sLpmlerJAeUdj8c+7WIxnRuZnx1oNo8NPKduGVDzuEfNCYeGW0FF/k7d+ekAFYF9df9pGhc+IVV8Z7GLLUxS+7uGUr6WyvP4a2towf8ut003P/PRmbh0dFmhTX9mtu3a3Ut5FRlJVCiZVfDM+fnL1t0XUjGeCPy5vIvFPxa2M1YyZudCTC1EB/3ZnJOKj6AnBf64HvM42KgjfLz8P57K3tO7v61Meb0WOOJY9UU2IFpn0CjNT/Bc5fguGNh/M+BqazNq26RlqcweOVUkbH8uefVoUnhfAbwfOLvjyqbPTVEBK9mRFsHKqplHAv4VnNzv0o/75jcX1mHv+6dczlviPZXCU+McBNYIbf9z0djbZHz/46Q0K/PnTVHWBjGk/XkX/5Ku3W/zTkTWCG3/gmTUaKb7AgRjX3nx4MDvW1jGNAzHeMaNgH7EqF/1EOW5EeDL2aETVO7Pr2OdVjTDcalRRFsKfQOAUETjCqPIUlQ5MjXsCIP5B/Mc/gaN100j/v6oWLFUKBxSC5uwEU57QrxQsVQqWVPsrf6yrcxtH7D501F9z/daReEp0JF5mdb/VN+sdHWttKUsma7R9M97RyfpcWZENhQlQF9TVOqZcgRmHt1spixz1RwhKK6ij/tDpgC47/n4f8c8mJKnFzvYhdNSfyazLV0X2/AvSbY4AiiNA92scjjSz1NZin0LnEQRmnO6Bem0ZfVbfbvHPYcuY5brCOMIQlTpBodB5O7zT7sBsz8h0p727sjCbGe3frJXhrGnxj3zUZVZ8KqHJqs9Myi/qRKchdGjzo8Q/i0smFzhNIyjlDm3Mo/54F4urh4JP1sNLv65PD7bqJ3eckVbVH4k8v/Dieb+xBG8gJzNc44tITD5+5M77fweN9o9XjHcnGDUsRqP5y1VNN9+isf7aykhziVzxw9x6+Pmv95t4hijxzzwG70Xw1cRQKz4jLUoeRK384xxR7G4qbl/Eb5w66m+mebuuMXmmeczrKN9d9GdCg/4aIrn25sP83N3dR/2xuGSK3D/2/M9gaPPp/M3G3F50vBw1AcEmUgo1cyjI/5sP92+7q3QoDNuziVq8KJ2nu43Pe1t6/eq6P1JG5so/NqZtDsVXx+IfTVsIVA3DS/jowYUXz31dGuzAcrS8aFf8YGhzIfhqetxTmon2p+xTX1qxKLtq7oc3CMjDIRWZbB+iToBbeH6/tTjviuO3hVB44ZENHxZIv2KxLphJ7dbk28349aupLk0dVZtjOhQbgiCKd7e6qFxiHvXHOKmRfiS5oHdofgOFf3v77v5dX1kKlQsrp7I3iBrtr+sDtej0h8hrtdOeqCa0v/jHluOpFtQw7s80lOw4agSbtKc9+9Qy8+3g8+os91H0/ue/3teKRbFYCQQt3XeoIP9Lz/vUJtfix+UtZwoaS1SlxBL/VL+0B8Ao8Y/iHRbfoQ+/LJeo2n5AL87DoTKm/Tj3g7x6THvwU/gwhZUtTxy6IPgCnz7w4nubyo5OQg2+fXfL34rjU8aqXPQu7ORJpxlV70zxv8+rSuxsVHRqcAEETh2Bo40qT10xweB4JQDiP/6lb7y23YOX6+jddHKy0JQrfFKOjvp7VY0CAZpyWckRJ/mDG3DMd7IJCU8sT06LnIeXVj1Bbyj4TEvYvDRBan5SEpJJHDaesBjDcQ0/M+Uv9ThbIE2VlWWkUqEELxXoH/1NO8N/qSxOWjqRbf/vIlHosXkSasvx0iMLVsgnzWaw56sSwP4vOADEV80IEj85BHCl4w0IJ8cqsAQIxCWBo48qwf8fCJwAAiD+QfzHP4Gz1k3zE9DBex7/sKaiWlHa1TE46wkMFIt3RPU/2v/HSYX97sCsq6+7VFldXNtvC8x297alUOEAj5bgF38qh9p9/cvKfVurqbV3aSEU/oU6ruyLZ3QSEuSfK1O7r498v33oPW0V/xzaU73n2QH0PXARlwQEF6gzL3ZOBsVlSaFQmIC4zOXqfzy3Hl6BSj8Bo2polmeBwFkbVZ6FOj1TZQTxH//S90w16D0Lewa76eRsdKDglvu9vTg3fU8yh/0SbRMod7f3TaNDB4emOkz6LMnJeoMIVs4V56PZ1Q9rofDLV6HZu2MVmV9g1uOwoI7nfhzSLLjxxw/33AX86IrIyEEh6BfmLAc8fP54bIZcvjaBfC2KvPijHwVE+Np5QfongUA2dTrG0svnPerck2AP2AAE4p7AGRxVxn2dnqkCgviH4VH8E4Bu+kx1alBYIAAEgAAQAAJAAAh8JQIwqvxKYCHZ4yEA4j/+pe/xtKSTnAt00ye5dsA2IAAEgAAQAAJAAAicFgIwqjwtNQV27kkAxD+I//gnAN30ni8/fAkEgAAQAAJAAAgAASBwKAIwqjwULrj5pBEA8R//0vektbnjtwe66eNnDjkCASAABIAAEAACQCD+CMCoMv7q9EyVCMQ/iP/4JwDd9Jnq1KCwQAAIAAEgAASAABD4SgRgVPmVwEKyx0MAxH/8S9/jaUknORfopk9y7YBtQAAIAAEgAASAABA4LQRgVHlaagrs3JMAiH8Q//FPALrpPV9++BIIAAEgAASAABAAAkDgUARgVHkoXHDzSSMA4j/+pe9Ja3PHb8/J7KbZRIpu6u/gxh+jKpJ7qaD57t+r798NlgqPxicpferhRnh1wfXFD3Vn2nk02+ApIAAEgAAQAAJAAAjEB4GTOaqMD7ZQimMgAOIfxH/8EziZ3TRTVHM40oJ6v8PrLc0Usbik6LJ94u3mNR26PuAnjsW/wvvP1aVALvugKKKIHQFmVArwJxAAAkAACAABIAAEMIGTOaqE2gECByQA4v+IiuKAfOG2k0DgZHbTTPEfRSlN9WQpFAbxz+KSgv+psi1+/BzxfwSYUdUBfwIBIAAEgAAQAAJAABM4maNKqB0gcEACIP5B/Mc/gePvptlESoH69vXnfy6FwktrKwFbtZhAnLmXCircP8+vhZd+XZ8ebDVP7uH2X9L/fi0Uxh/sxs9PaOi8FnyyHl5782H+/s36bDF+vckMl39+Y2lj8/Hz+8b623u6/YvlPyyEws+vG680Pbr/cjP49t3stDVTEKn0rCK/f35jkUr5/v2ZhpI0nHIsO1lckiCKyz2PHyxvBkObiwvPXOrc3X0N91JBqePxXeqehRfPB1pKeJQLA8HKKWm5d2vxA8Ly6/rMdU9RKvJuIP/D4nsfXl2dVBf6J579ubSx+WR+qiJTlHTBdX0jggLvj4gFttj+z7VQeKa1WjOEQC29fhUwl/O45G6Yu62Fb4AAEAACQAAIAAEgcEACxz+qPKBhcBsQOAgBEP/xL30P0g7i+57j76azSuceh8Ivnt1saTQZJ98ubWzeNOSwuGSOemEpFA6uPe8xe503Xy+uh3fv+ZfkW3q+/2stFH44Zq+tu5J4rsw699fq+3eT3k6dbnrm5cfV1RtKPim4UOda/BgMbT6Y8bUZb99a+GsptMeef7H8h8eh8MvV9TsPpjrar19fRo/cNGSwuGR63p2HG+Hg6xWfx9ve9zOaO1h/2pSRuI+dbCKlxPvPYGhz/pa7Xtfje/TX6v++sucnMNsPm0gpcvy2FgovPpu1d0yML/4V3PhjXCtlEyn5nWtLofCLxTmXxeuafL0UCv/y83AumxT9w+h7Hw6+fTf3dN5t6Omb+xM9fqdZSBSXGx4hI18+tbWailJFscDmUzkuBF/dDoy02R8/3Agvf1jukCVGwcRzEExr4RoIAAEgAASAABAAAgcncPyjyoPbBncCgU8SAPEP4j/+CRxzN70dvU+VyhVKkr+zjL79GPx5WHYpp/nu38HQ5lSLFDm0Y/W+K+Afm0gp9/1rbcvtXyy98zgUDj62pQkkXKGkyPEb0tJqEf5+dXWykNoMn0VNK+wO+JeUhx5feXtHxUVr7LmaNaSrb2gJVo7u9r/piQCk6imPgx+HyghWTDtF/zAOvf24vDGnThRzhZKMHDSz8KNfxexoRP8wDr/6uPxhuY2aR0iUu4ZuPBy2VSf9d0v/q48rf7xyZKHJAv65MsvTj3juA4v/ld/Xe4uSWFwyEr8gGChkk0lE762NMHb7jwU2k0MWWtF0w9Iji5ggORxp/TVUtKkWSRRMpp1wDQSAABAAAkAACACBwxI45lHlYc2D+4HA/gRA/Me/9N2/BZyFX4+5m074zwbPykfadR9fLG/8oP6/ta7Fjyu/r7uLkfpl7vnflrWlwii9ml39IiqptVD4ni0/Tb2Avv/egFezYwX8w+I/+NiG9x1ISufQ2vudZvK/6jwrSIp78iLr9hkVKMGX31vE/wf5FOxpZ1JS4N6WH/62VY8sCdSmBtyWxFx0z8rrG+WXd7xcke/f3sHfs4mUKmqO454tH4v/5Y25WmqGIumCa/w9SkHJ2iH+Y4FVcUVY/D/sK8Y24ImMm4aMKJhnobVDGYEAEAACQAAIAIGvR+CYR5VfryCQ8tkkAOJ/hz45m40g7kt9zN001qgrv6+PNtXkF9XiT25JES2qsd7mcKR7HvUXpVcj4n9+uGgrqfyi2uwsyaHE/9qjiPhPK/iE+F/73rCPnVj8r7yZa1Oq6aLl5WQzm1DknkOI/+wt8f8DFv+iy/Z9xP9usAlEZOWfFv+lbhQ3AcQ/s17gGggAASAABIAAEPh8Asc8qvx8gyEFIMAkAOIfxH/8Ezjmbhov4wdDm2O6FBzkL7dSl1uYLbxUwHT7F36HHAR27/mnxf9Ui4TFJSPu/S+G8Fl3IqnuSmllSjKJl/Rpt/8c7Ys99/zj23aLf8Eut//yPiSYHwwX0fbj7QlMOyNu/x8W9ckoNAAnueyKSp2dheykP1v3RNz+hdm9Ew9Wb/lbU/4vcvvHW/Gx27/j6cfV9+8GVZE9/8sbscU/tQWANiwKLI/7afGPYdJGwgUQAAJAAAgAASAABI5A4JhHlUewEB4BAvsQAPG/LVr2wQQ/nWoCx99NZ5XOLYRQmDpXu7PdjyLb/eiv43FJLNEjAf9mgs/WqIB/tegUgOa7fyMlXCpkcUm8cL04d9PQUpP23yrzs7+Coc271z1NbdPXlz+uhFBYvogmpwL+6Q2REPqrC65Mzo4mHUv88xgB/wYszva+n1FogDdz9VIq4B81lbDbTjaRcnUAxdVfnJ9qbUaR+XAwP2bzwEEB10LhhWc3O9om/E9RwL+pFhTwT2n5DcX5f37fZuzpvvEWXT9GBu+z8h/xAvh9fcrjrcgRxwIb5fZPr/xHwcR7H5jWwjUQAAJAAAgAASAABA5O4PhHlQe3De4EAp8kAOJ/h1L6JC+44TQSOP5umsOR5uluR860e/3qur8Vn67Hu1hcjc+i+3X9Rm9Dy/C/KAcBUZT4JzNcKEh+aPPxI3cmhxQIWjpvvn6yHg6GNp88fdByNXIgX4rcP/b8T/Tls9nWEj8KjLflIEBX0z7in02kZF2ZRIcFhlCk/QezU/QhgrHsxEf9VfX/fP/lJpL3L573GyPH+NE5YmcH+jhA5j3oqD/DI/qov+vjjoIk9ALuI/4JVk5lb3CBOhpwoBYF89sT7D7iPwom0064BgJAAAgAASAABIDAoQgc/6jyUObBzUBgfwIg/kH8xz8B6Kb37wXgVyAABIAAEAACQAAIAIGDEIBR5UEowT0nlgCI//iXvie28R2bYdBNHxtqyAgIAAEgAASAABAAAnFMAEaVcVy5Z6FoIP5B/Mc/Aeimz0JfBmUEAkAACAABIAAEgMDXJgCjyq9NGNL/qgRA/Me/9P2qDehUJA7d9KmoJjASCAABIAAEgAAQAAInnACMKk94BYF5+xMA8Q/iP/4JQDe9fy8AvwIBIAAEgAAQAAJAAAgchACMKg9CCe45sQRA/Me/9D2xje/YDINu+thQQ0ZAAAgAASAABIAAEIhjAjCqjOPKPQtFA/EP4j/+CUA3fRb6MigjEAACQAAIAAEgAAS+NgEYVX5twpD+VyUA4j/+pe9XbUCnInHopk9FNYGRQAAIAAEgAASAABA44QRgVHnCKwjM258AiH8Q//FPALrp/XsB+BUIAAEgAASAABAAAkDgIARgVHkQSnDPiSUA4j/+pe+JbXzHZhh008eGGjICAkAACAABIAAEgEAcE4BRZRxX7lkoGoh/EP/xTwC66bPQl0EZgQAQAAJAAAgAASDwtQnAqPJrE4b0vyoBEP/xL32/agM6FYlDN30qqgmMBAJAAAgAASAABIDACScAo8oTXkFg3v4EQPyD+I9/AtBN798LwK9AAAgAASAABIAAEAACByEAo8qDUIJ7TiwBEP/xL31PbOM7NsOgmz421JAREAACQAAIAAEgAATimACMKuO4cs9C0UD8g/iPfwLfpJsWKKyVMhH3kqKitYLPJTmEPL91xOz2m1zdRdJkFpfkSerqHeOdPeNWr0eZjb4RpmkbHONdrnGTvT2LPO56EYiMepdGRGznS6Ybm9zjZheysDQ3hcUluYmq6i4/KoWjM0eyfecx9JVk8ZC5Sf6VMuKwZYU2v0oqOkj6fL6uZWxGX5pG3yzK63FODpSID/S4MM3ZZSsnuIegxxEqZbkZdHb7XHDYsgxlIZ9LCtJt1o7SQ+WyT7LwExAAAkAACAABIIAJfJNRJcAHAl+KAIj/QwzBvxR0SOeYCXyTbjpVa5FzSZ5AU1WbzeKSKaVDplYFwSUTpaampiIuW6bovNZYnM7ikknZ7i6HWnQpv9Tjr5UjjS1W9JgMymNWblHin2DJ87v6Sql5ClGms6tbk8BJyzEEaJutlnL+YRTsZ1b6iRL/+p5xi1MtpCZKOBxpXseEtfcriv+ETKf+YBMf/MtqnXPHDM5nYofHgQAQAAJAAAgAASaBbzKqZBoA10DgcwiA+AfxH/8Ejrmb5vLLrzQ42jyDugaLpsPfYTErc3IL7L6y1B0rwxxSiuW9QGwyenXiC+U1/m45Jaf5hKap15zO2a4aXppW1+UzWgfbuz2lshSCJS/q9jfpurRGr945qFagSQTkSkDdo7d7S2UpHLaswO5rqLHo2lytTp9Gucc9aOohw6r3+NpM3nqtt33nyj/uWdiEBE1GdJQmXiqt9m1ZeL5K7bPLtsQ/m5CklfTonYPGLl+7VS9NIAmussQ4aLD16Z2DuvJcgou+KTf5Ohw+I+X7wCYkKflOvXOwrctnpDwd+Oer6ga6qzVdOmMfuidNxCbS0qv7TZ7BJotdrfeZm+QES57XOtjRNWhw+lpbyrD8xnaSUlOr02foGmy3o2fpohk6vfV1DuzUEIWR7jrxyn+TztFsHTT1+tSK9IR0m6WrCqefkOm0dFXRMx18vq7N0am29+Glfj6haXTYNd2DJWIRhy3L1vZ3UIVqMVSICGoF3mYuaXFoTYMGh07CI+mVfzLdZuxuS+eRyXJbq3OwzTaotyKPj9SagPOjvTsAACAASURBVKlGhm3LqAm0q9TVrml374CuPJebqKq1+Tq6BvXOQY0yk7WTanF6dr5+wjU82mKoSEmN+BfwxTqdk8LepZMmkInpRkzJ6OpWUjM7NAS4AAJAAAgAASAABD5J4JhHlZ+0B24AAociAOJ/W18dChzcfIoIHH83zb9YXtlWwuKSyZWWYrGId0FZOdyrKXM0d/naHXbs9o8BcjjSHENAXy4lWPJi53hDIZLo4jy31W/DEwFI4FFSXy1HWwMSUq3tnjYJS6aw3zKqpCwuKRAZjb3GtEvyYpsPO64LREaDp03ClhZ23tCXU/ekWi1OdeLl6HtSLiJ3gxoZksri4iFXd/SiMT/Dau6bcfV05pCk4KKmcTAyJcG7oCzv71MKIq8P73xp5bAnT4j+TMyvy04XZdSgQqEpiUulqv6+YpEoo24Ca1phmqmxtUTE0TQNdMupR1KvjHS2KPjnq2oDEd97iWqkQyvn83XN1BQDhyPNN94wN8mFiSY8Q8HhSFPLKyW8iAFohkLZKKc0P5nbb9cricu4aMlsQpJRE3B1a5IuoxkTJkbx1h4HDhvxxOYlJlkRzwuKsp6+YrGITUikLQGdIolu8Mjt36WTlw4Z1KiASYX9+uqyUhcS/2iagPII4HCkhZZrjYVJwhRb50BnJo/kcKQF1ol6eSIW/4nJTc3uziyS5HHV2l5zJlUQcfEQ4pDQ1OJpSyFI7iVFWY+3UETSXg/8rLri/CwWl+QnNOl7jSkEGUWV3Nq7gXPhbbUcNNVS7q4rlea0X9PkobJwU1UKKim6XHABBIAAEAACQAAIfJLA8Y8qP2kS3AAEDk4AxD+I//gncPzdND+hqbo6E+nGJouMQ/LOl1b5phpL0VItWu/tQ9KORQUCyGkd0beW4FVlnqQOreva+hrLOxp8dtnWyj//fJWGdgq4WK72ewrYWYW2iGjnU98ozqt0/mlL16ChCy2/Gwc6szkZ+dbIPcil36uTnIu+J/eCik5ZII7o6qjuA+nqPLfZpUm5sEP8q/r7CrfEP5tIy2oIWLu7a6qrM9LFHLas2HrL7h4wYHt6farMrMKucXVuIp24IN3W5Yh4zgtSrWaXRnJOhbwJqFInFfZ3tuYz70kuRXv+uWzFVee42dJZcfWKJGFH002UNmpNfc1mV6N1ym0uFzKgCZMi6dOFxdDytzwX8Mo/ngThn69S+z35XFKiGjGoZehOD1LvtOVY/Et4usYenYQly+/quyLKU1DiP7Um0KGLLNpLVCNotiIFeRAQXJJNSLLbrukUScI0p727u77XX5OBZnME6Tbb8DgGZXD4rZaqBLYUVxxyCbGigBG0+CdE5eXtXlTGDl/nsFV2WRZNdaf4Z0LA9qN5pd4Bra5enpt1zPtKaIBwAQSAABAAAkDg9BI4/lHl6WUFlp9AAiD+t8f0J7B6wKQvQuCYu2mBrFFr8ZvNdk2Tt90zWN+qzxXml3jRyjBas/2uvNrXnU+t5xeYAvqaAtqfnC4sP6HJ4Gmj16U/If4psao4r8KSlU4ErZZb/TUZKFMs/tPORd8jOKem9bAwycp0++dwZWmKQuz3zj9fVePvzj+/y+1/a3oCZ8pPUsjLLC29/tpcFNGgXr4t9ZG6/pT4TzofLf7R8vXWBIH4CtLSLEpFCzLLi+q87f3deVthEZF/wZCvLJWKm5jtdljKE3YWDU8u0IU9iPjn83VN3rYsqVPflE9TRTVIrfyTbGlep686u7GJcqk4nPgf7K1t8Zk6SnFkvq5uDXP/AotLirLd5haltHYIr9Jj8c8m0nLar2F/CrTXYKDzCOIfARTIpQWNdZ1THdqvFUCRiQuugQAQAAJAAAjEE4FjHlXGEzooy0kgAOIfxH/8Ezj+blpcZykUkPzLapWuAL/n6ZqAXiVDAf+SrGjlnyNOV48YtPn06iubSJM1DanzUtiEJFMTYAqzKLd/oxctONNu/wliU8Tt3zGlU0rQNoGkGpW6iLtL/Esuy4t33sO/qChHbv9IM0tUI0y3f94FZUVfJAAhKbEZe40p7NTtgH95PVZKu+LSEVxlofoqVrDUgrlUWj3R2YICHBKc/LzGWgkPOah3aOUEOtTA1NZRRRI12i23f4lqpLM1Hy2571z533b7Z8sKzcjtnyepq1CiAIqRqQ1qwwIS5FvL9RyOVN52zdFVzr+ouNqHNhHEcvtHcRZ2uv3jbRSYZwpBsok0ucnX4RyMCtaAxb+IIJPyesxuf0tFGsGSY/G/7fbPlhVaqHX+vVb+u2zlPJZcYZ1oLE5Hbv9DvcXUxFBijrECh2+4VKp2+ozOyHaApMJ+c2M+hyNVdCKnfRRhobDfNmzN5ERTTRYZDS6diIhEFuBRe0nq5WjvQ2pZf0tlcWa1Vkp5TCSkWpmBDE7C/0ZgAxAAAkAACACBk0/g+EeVJ58JWHiKCID4j3/pe4qa41cy9Zi7aaRLmw0pBMlPM6m39oqjAHgd6JA8fGwe73xp9fCMswd9Y3b72z3tmRySl6ZFR+u5/UaLmt7NjpmgsG044J8dxWnDbuotTY4GU1+7Z1CdtxXMz+nv6KKCAuam7F75FxNUUEDGPWjLepatvddv6Oxr0LqijvoTShub3JHDCPFRf4SofOuoPzPzMEIOR5qt7W93+9COAyp6HyovpZx3BPyz+s0On2kr1JykwIYD/rV1ohiBu8U/m0iT1g51un36ru6ahkFzYz6OGmh2ooB/en0VfTAhmjpRj3R6BposnUpZXWOvX6PMFOc423v9+q7u2jpHuwutrkdhpNsbhy3DARRbOgZpnngF3r47DgK18i8i0OSOdthTKEBBGbD4xxw6ulAUQxyPcE+3f3zUH0+g0fV7CsSiZLlN79lGh70bMnXX6KMN+RKjcWDcoC0ic5zGXhSdsbbkqrJrvKOxJIGrLGdQ5V0qrXJPdXRppFsB/1CMQ6ff5PDjQIzJBU69hwqL2B05vpGGABdAAAgAASAABIDAJwkc86jyk/bADUDgUARA/IP4j38C8ddNY/F/wHPpD9UjxM3NbEKSnFOTIUHNm5QhPwXayeKAZWQTadktgUbKmeKAj3yp27iXlZWuyGkCXypNSAcIAAEgAASAABD4fALxN6r8fCaQwikiAOI//qXvKWqOX8nU+OumQfwfpKmQMqve7Tc40QkLBdRBAAd5Ct/DTaipd4y3G3acJnjwxz/nTlGGtb3X31iefdjZis/JFJ4FAkAACAABIAAEDkIg/kaVByk13BM3BED8g/iPfwLQTcdNhwUFAQJAAAgAASAABIDANyQAo8pvCB+y/nwCIP7jX/p+fis57SlAN33aaxDsBwJAAAgAASAABIDASSAAo8qTUAtgw5EJgPgH8R//BKCbPnIHAQ8CASAABIAAEAACQAAI0ARgVEmjgIvTSADEf/xL39PYLr+szdBNf1mekBoQAAJAAAgAASAABM4mARhVns16j5tSg/gH8R//BKCbjpsOCwoCBIAAEAACQAAIAIFvSABGld8QPmT9+QRA/Me/9P38VnLaU4Bu+rTXINgPBIAAEAACQAAIAIGTQABGlSehFsCGIxMA8Q/iP/4JQDd95A4CHgQCQAAIAAEgAASAABCgCcCokkYBF6eRAIj/+Je+p7FdflmboZv+sjwhNSAABIAAEAACQAAInE0CMKo8m/UeN6UG8Q/iP/4JQDcdNx0WFAQIAAEgAASAABAAAt+QAIwqvyF8yPrzCYD4j3/p+/mt5LSnoCjTZOSUwAcIAAEgAASAABAAAkAACHwOARD/p10XnHH7QfyD+I9/AtBNn/FuDooPBIAAEAACQAAIAIEvQgBGlV8EIyTyrQiA+I9/6fut2tbJyRe66ZNTF2AJEAACQAAIAAEgAAROLwEYVZ7eugPLWVwSxD+I//gnAN00dHZAAAgAASAABIAAEAACn08ARpWfzxBS+IYEQPzHv/T9hs3rhGQN3fQJqQgwAwgAASAABIAAEAACp5oAjCpPdfWB8SD+QfzHPwHopqGnAwJAAAgAASAABIAAEPh8AjCq/HyGkMI3JADiP/6l7zdsXicka+imT0hFgBlAAAgAASAABIAAEDjVBGBUeaqrD4wH8Q/iP/4JQDcNPR0QAAJAAAgAASAABIDA5xOAUeXnM4QUviEBEP/xL32/YfM6IVlDN31CKgLMAAJAAAgAASAABIDAqSYAo8pTXX1gPIh/EP/xTwC6aejpgAAQAAJAAAgAASAABD6fAIwqP58hpPANCYD4j3/p+w2b1wnJ+ujddHJygilP8LiCF6rlvaoR3itLMOWxkpNPSLnADCAABIAAEAACQAAIAIHjJHD0USUXRAcQ+PYEQPx/+zo4zg7rbOZ1tG6aX5vFe1UjWFIJBxSC5hyhKRddLKkES5X8qxlnkySUGggAASAABIAAEAACZ5nA0UaVZ5kYlP1EEQDxD+I//gkcoZvmX83ghWqFA4ro1zU5WRBQ8kK1p07/swmJvPWWe8yT/9UmnoUpNltg1uuoERInpVGlVQZ6/LNmrSy6HndC4HCkRZa73rFJdW4i83r/p77sr0npUw83wqsLrjRONL1czdpaKPzjUNmXzfFEpcbhSIvtP8+th4Mbf4yqogkc0NSkvDuPQ+G1RzbxiWmBB7QcbgMCQAAIAIHTQuAIo8rTUjSw8ywQAPF/xFHmWWgccVPGQ3fTycmCpUpBQBmLgCCgFCxV7uP/L62e6PHPdjbm4xTYRFp61ZAjMOvq6cwiv26T43Blcm1/5+CMNzBjc9kVshRsA3E5v9x519PblvLVdBGHLC2qM1SU5hI7pXUsjJ/5fUbdhLfHuH9xjiD+2YQkvchQrqnPkuxXUzyuunl0pkWZ9MlSEKwc3e1/r4XCyx+W2zISY91/RsS/wvvP1aVALjuareiyffLNx9X/fTVq7FJkiWJR2v/7o4l/0WX7xNvNa7pIpmkFc0/+XNynpva34Rv+yrtYrH/09/OJ2m9oA2QNBIAAEIh7AoceVR7LoCjusUMBvxQBEP/RY9AvRRbSOTkEDttNC025giXVPtqehWYHVEJTbqwyMsU/EpPHpfxZXBLLXbent7HDZwvMeoZsciFq5PzL6oaRWZel9HiUeSwyX+p77iWFynP3a4j/A1ooyutxB2YPIv5FfNeNN+GX65tLofA9W2Q+aHcuZ0H8C/6nyrb4cU/xL+YGbm2E9/xpN6tY3xxN/KepniyFwlj8s4mUct+/lj+cSvGfRPTe2giD+I/VPOB7IAAEgMAXIXDYUeUXyRQSAQJfigCIfxD/8U/gsN208F5ZlMM/kZVCZEWW0PG7JwgohfdiumHT4p9NSNJK91jzF6ZptZ3jTt+sa3hM366W8FAtCNOcjsCss70844q7o2/GOzrZ3l6VzP/ET8y+gHdBWdV31xPoLRaJ2IQkW3vNG5hpKZWgxJOslsCsqUbGYcuKbHfdE8NXZTW1jilXYMbmbJclZuVoh+y+WdfggFqRjtMkOPkF2n5zH3IicAwM67QlIiIyieAe8xQKIi0HF9bcJI9y+9+zjExryeKhHv+ssTwNzU3wda1js96xaU0eWkvH1tr1SoKQJOdam11T7sBsz9CYXo+A8AlN69hsjx99vGPTDXmJbEKSlGfCt7mGR5saK0QUNzwVYqovydUOWUdmXMOjDao9HBOYrv7MaxaXJETlVR1+u28WQejr1VxBj2fqruHckQEenWhfZwrstD/bM4JWtl8MMRe9yQyXf35jaWPz8fP7xvrbtNs/m0jJrr09s/LX2psP9+/6GpzBPd3+2URKTuX09E+hpVB46fWr6cHWVGqih8Uls4r8/vmNxfUwSuH+TEMJgsy9VKB/9Pfyh2XnVdsQle+T+amrSfnVQ8En6+GltZWe2syD34ZqLaGh8xp6du3Nh/n7N+uzxSwuSf6Hxfc+vLo6qS70Tzz7c2lj88n8VEWmKOmC6/pGeC2EPlG+/RHRjn8KbY6rRQQrp6Tl3q3FD6hov67PXPcUpaKVedE5nPiN5prHj95szrSgtk1/Iuk8dFW3Pb7/cjP49t3stDVTQGJJvxYKT1H3s4kU3dTf2IaS/vfYJPTvTwHX04/0n3ifRUKa0Xnz9ZP1cDC0+WTxWY+ukEflKJb/sBAKP79uvNL0iJkXbQy+KLb/cy0UvuPt0N98vbiOqilgLucx6qK7YvTayl+LN7Q8Lhkrr1iJMPNKLUFTGNj4F38+7dSjrSI4WcSNcqxYeXO/lp+vf/T3yh+v+uq7cRtYePHMVpqFk9qzQllcMr14uznNP3rQchU1J/gAASAABM4mgcOOKs8mJSj1iSUA4h9GMPFP4LDdNO9VNXNVn8hKQdH+Q7VM/S805fJe1cR6sbfEv0K6l/LnCTStg7Ne30B1WWVhdY8tMGuzlPK5JBbPvf3j7TZzSVlHWy8SnHpKG+/zE9MGLKE9A8Z0at+4qLAf7T5oRavNSYX9lE5O4nCkSrS/fdru6a2tNDR47vb4Z+1un8GgL2sYcQRmPcPWTB7JYcsKzTd6/LNWm7mszKC1T6OkWhQEJy3XeMsbmGlUIt0V2U0wPqqSipjiP1YZmdYKE00dgVlnh5LgkqSsxxWYcftmzU1yFpcUFw/hLPA93sHeyrLq0nYkuc1Ncg4hl111WwKz3kFPZVllWhKZlOpE4QYGe9WqBrUZ3YZM3fKDsPf4zV12jd7nCMy6J4bLKBnJtIQp+Hdcs2XF1lue8bEGTW1BsVZtveEdm9TkJQmlKrXlVo9/tqNNnZ+Xs48zBfbEXv6wrE+V6W7/e+X3dU9eAs5acKHOtfgxGNp8MONrM96+tfDXUiiy5z8pCS2Dr/y+Ptnvbe/7+f7LzT3Ff7rih8ehcPDl096OUe+djbVQeH6ylscl0/PuPNwIB1+v+DzocTSnsP60KSORe6mg+S4SvU8Wnw0ZJyYWkNB99tOvt675OgaDS6HwyusbV3miA97GP1dmnftr9f27SW+nTjc98/Lj6uoNJZ8U/cPoex8Ovn0393Tebejpm/sTqdA7zUKiuNzwCBn28qmt1YTFPEbBFdXWOB4/DoVXX82hnzLF+Z1rS6Hwi8U5l8Xrmny9FAr/8vNwLjsysxB8++7J0kpg9FZz+Y6jN7D4f/kqdP/+jK371vVlVMB7XcX7iH9JvqXn+7/WQuGHY/Y6dVXxlclrLz+u/L4+bumqKpEJecaR5Y/BjT9uB0ZMxtuojO/fjWulqInKEfyXq+t3Hkx1tF+/voyq8qYhOhRovuO3tVD4+f++Gu9oq65FlFZ+X+8tSqIhP33+5s7EjMdYsk9esRJhtmGupKHB/3otFH4xP6Vt0eacc6HJpl/vXOWhSZMMampg8YZWSLWBtVB4aXnOpmlS235+HAqvvLmvEoliVug5S+Dlx+DLp672rqa26evLH1fezGnFR9yawbQZroEAEAACp5HAYUeVp7GMYHMcEwDxH//SN46b7wGLdthu+sDivzqWAVj8O/umHAEk4I2qHQHnUiJR6OQcvphLyJQWtFZfKIqIf/eoTYaXFqmFcWcHCj2AdfWePzFtEIiMHQG0Fo0Dngmz3e5AxNU/U3fNPTFQIhZhcYuW3FVIw5C5aILAM2BK55C8S6XqPkoeJ4vw2jv6nvJK4BOalpFZ95gnT4iEuht5KKAdBEI+ytHT2yYmIkbigH+xysi0lneptGaIepYjztbe8Pbb6ztuebvrSI4YxSakrOWKy/PL6vJzkabCJnm764TElqcAteefw5EqTGg+ooWaj+BeVir1Lo2+NoWIbIJwdWtEBMm4LXqj/g7Bzwj+R3tSKDOQ3wdbIE/NyBFSPgWyJjQz8km3/6SkwL2N8NpjFMYvS72wFArPB0oxBLEURadbXZ0spDbA419xwL9CK1KMeNmWw5FWjP9rt/jHoQSCoU28mi3gNLROPhyZ7My7iEIM0EKUTaTgxe0fh8qw4EQL0ZYctENEvbC2ZYDwuwb3q4/LH5ZN6ZE5gk/ehu0PPralCSRcoaTI8Vtw449xtQiLfyxx0awTDmQYDBSySeyXvqdvP9PtP+G/W/pffVz545UjC02U8M+VWZ4iBT6qiswsrL5/N7hXUEAs/lfe3lFxkTRNL51bCIWDPw9nsSXlPsRw98o/PS+A3f7xxgTa7T+/iVo/v9OcQDl34ARxbUblhf07Fm9omS2cxSUjVbmVgsKLHAF+9Kvouni4Fcdxn7xiJRKVV2oFqlDs9s/hSOuv/RuDYhMpFeP/Wn3/blSFvD+a7/5NVy6enMIVF6tCI234p0BxCuVDlKXKK8jHQKIMgD+BABAAAmeBwGFHlWeBCZTxFBEA8Q/iP/4JHLab/lJu/97AjMXkNY3Mev2jNbLIEiWOuk87jW/5rk/WyrZWzilxy+KSidJt6R5ZVN/1E/+iQmkeNDh9BqdP31JG7iX+3e2lXDY1xTBszeQgDYwj29fLUfA5vNegp1PF55IES46CAo6PqlJFSZTXgKurHC9r4z32nvGxGpmIx1LVjyAHARmXFF8Z6fGj3QT0DAUl/pF636OMWcmy2iFsbZtdn8FOzTWiAwiKOGgDv8NSnn5lxD3mKaD+xPv5CZ6iuHWwc3AGuf1jP3/KzT6yTYAS/xGJTnkfRHW+kYB/lDcBa8tdX18h4V7awU3A3jvaP5uQZGoCOGt3/2irqV2Rn4WBHFD8F2Cvb0psR1yvX6PlcVp7r31vwG7k23v+2ZLqIRQgEEt0FpfcM9q/8L/qPCtIIdvzI64EuOz097SLQQalCV9+byEp4bf6/t1AlQCvXS+g2PiWBCIisHFqWB9+8rbs6he0hzx9cc+Wj8X/8sZcLaXAky64xt8jnwIl66DiX8xFMyYrb++UX0ag2ERKFSXd6cRf/OuRjthj5RkL8uDjSLR/PKGA0rl0FPHPJlLUYzsqQpSINtVjw6LykpTOIVeFO824Nul2iHX7w75i/A2ecFn73oBX4OntD/vnFSuRqLyY4h81sAI09/FsojYJT6ZQDY+u3N4yIWZLN7ZYFco/V9Y2h5wjgqHNhRfPJ0Y8FTmRnUF0MeECCAABIHB2CBx2VHl2yEBJTwUBEP/xL31PRUP8qkYetpumAv7tF8yfCvhXydwaEGU/Xvm3dSj5XFJS2I986Ye686g4/7T472goS81SRD6yPBF/x8r53uJ/6xQ9el5AcB4tnkdUsaNGxEGb4Xe7/fMvlmuGIofw0eJfnYvEvyDd5gjM9nSqCEr8l3RT4l+6n/hnE2k5bTc842O12TlKCwofUEL5ADPc/iPiP7qMPHGeAe0y6PHPuseccuzePzapVTS2jKENDoJUq3l8SlukbR6bxRv+s5qRD7+1vSo1Iyc1h/LtP4L43zrqT1qHUtNXSHg7ucUS/5Q6kiRn11U2eQ1U3AHv2HRjMVI+BxH/wv9Cjv20MMYX9Ko1rQN3i3/VTs2ZQ60/Rx31l/CfDYcS/2vfG2jxP1iKhB/etY5nH/DqepT43/+2iFacHy4qqs3f+mRnSbbE/w9Y/Isu27+c+M+OSjzqvcOCnD7qL5b453CkmpnInv99Vv73F+RReaUVHEj8Z1HeFi/uGbH4R42Bqov984oS/3Qi+4t/4XdUC3l9o0I6/XADuRvggA7Nd/9m5ks3tlgVinb3cAuKmv191396sIx2oKy8W2zLjnluRVSlwJ9AAAgAgTgjcNhRZZwVH4pz2gmA+AfxH/8EDt1N42D+A4pYr7fw5pX9jwPY2vOPNttzONKcZnTyn71bh6P3YZd4uwFtSmcTksTM0gxZDr3nH7vNH1D8R+02j6zPBwZwwL+sZhTwr1Ep4Sc0GQORzf8HFP/Rbv9UQD7s9o8W+bPdjsCstdncMjLr7a7DEe8Y4p+MVcYopAKxyRKYNTt8TmorPp6ksHT6HGPIbIIlv2JD4Qk0+UhpJMv73dSmBhR3kLLHM4CO+uNwpIVWyu2fCm3Iu1Sqsvra7PpMXsTt37xL/EeZwWTCvGYTaaJ0ZUZaKr5flIlmH/B+h4j4L4veQcBMOZVy7F8LrgQmvh+eRJ/APbQzH/vzY/VIu/3naF/Qe/4jbt5UEDgOR1qzl9s/91JB072/aLd/4XcNXQ9X7zwcK+FkR7n9l/ehmHYPhovoVd/9Vf0Bb4tsW9gKYSiS6q6UVqYkRzzzlzdii39qCwATFJqJYET7x27/yx+WO2So3vnnyhxP0Wb7wS23fzrxqEQiSLc2umMvfbyTAu99wCvwWBXjVXda/Ed2T1DnEeDtDywuGeWKj3fOo50OHPJQ4v/FPWMCQcUdpOpiPlAaBXn/vHB72J1IVPHxyj9z60Gx/Z8rv69fm3698vu6uxh5iOB8USgE6uAJzBahqCVjVShbVJCj0GVTkTI4HGkJtXPhpnFHqMUoS+BPIAAEgEAcEzj0qBIipAKBk0QAxH/8S9847n8PWLQjdNP8qxm8UG1UzH+UXXKy0K/khWr5V6MjezGNYYp/NOBmKyrsyA2+swX5AvAEaP+81z/aoKktru6xBGZd7raUnXvmjyb+WVwy9coI2pC/ddSftx9F7xNmu11bYf+Z4naflX8OW4Y30nda20uuGnQ2pK7Njfl4uoF/sVw7SAXbD8wYy1HsgJ1u/zHLyKTE4qIoAxrKc8EzjIIOINs6kGsA3vDPJlBwQbTyb9bkKTtaXeNW36xnpLcyN0fE0TSPzXrGxxrr6rPTRViWewd7q6vqq9vRVIvVgFBH3P6PKv55PJWWCs2orqiWK+uu6AOuwIxBjfY4YCcCp73zSmmxcK9o/2wipWwEqW7a5RsFXaeO/cPx1SISlAr4pzdEItuvLrgyOaQ4cQr5vUcF/KNWbpkApQVzOOBfj9nruo6mFZ5N6BKI7YB/AxZnex+O6DZXL41s5qdXfT9z5V/wP1XmZ2j24e51TyQOXAiFFYxanGeu/Eeuf1+f8ngrctDRAPSHKf7ZRIrS8huK8//8vs3Y033jLbp+jMhEJU4/ji9wvoMuIQAAIABJREFUEL61Nx8ezI61daDQdMHQ5h0zmoPD5/mt/rbYY/Y6Z4I/Lm9ixcvikqVuVE2LczcNLTWp54tRfIHQ5sMpX0uVAgfhW33/7saIp20r4N+oGgWAOJT4X/p1/bbP0+p+PLeOqtVdnLBb/O+TFxb/uxOJKj72Pgi+fOrsNBUkIbaYKorssDVHg/MNhjaX1lA8SPsoCqaI4wLGqtBUKrThi6ezxjaTpqXH9+gveiohygD4EwgAASBwFggcYVR5FrBAGU8LARD/26PP01JnYOdhCRytm0b6/1W1YKlSOKAQNGcnmPKEfqVgqVKwpNpf+SNlWI30Z2fj9qHuXJKK8D823XIFnaYmyNRq7VQ4wNHJdqs+i9oRwFw5P7L457BlmXU9pqEZ79i01dFZkIYkVmpNAG3Xz0DbpA8o/tGd/HxFU1/nIHXUX++AtqaIVrlsQpLThiLe4WMFcY1E2b9nGaPqjk2kFVDy3mFB4QNZ3IjLAN7wj1Z9k2q09mlXYMbh7VbKMjLV6DwCh0MjYUuz6tG1a3hMk5fEJiSSQmtb97Q7MOvujz7q78gr/5Gaog5lZJ53iAwT65o9iEyXQ4PDK0YVLWr5Gv9KR+m7pkUCMkXuH3v+JzpD7tlsa4kfHXRPiTQ2kVKomUNB/t98uH/bXaVDgdyeTdRGZcEmUgrUt68//xPtNg++mhhqzaTOX2QTKVlXJtEhgiEUdf/B7BQ+hC9KcH6m+EdwBC2d9DF4TyMnwEXpc6b4J1g5lb3BBer0voHaHX0vU/wjP3NWTonhEX3U3/VxB1azUYlHAcElevG9TWX/eZ466u+WvzWNOvmCd7E4cqLh61dTXZq6vvfB0OaYDr0RZIZrfBHNYjx+5M7kkNlVcz+8QYcXPhxCfvKiFIv3BnXU38YfT5/Md9Xm4kwPJf4fjVgNU9RRf2srPkMJPuqP6X6P04yVFxb/uxOJKj6fV2e5jyr9+a/3cTT+qHV+euUfTQA1d0WO+lucb1dGju7bs0I5HGme7vb0M9TMos47jDIA/gQCQAAInAUCRxtVngUyUMZTQQDE/44B6KmoMzDysASO3k0nJwtNucIn5eiov1fVKBCgKZeVvON0scMaA/cDASBwdghg3c70/jhC2Y+cSGTb/7vFtozIFv2oCaAjGAOPAAEgAATOOIGjjyoZ/m5nnCEU/xsSAPEP4j/+CUA3/Q27GMgaCJxlAkfW7UxoR0iEf65M7b4+8v2fa6Hw/GQtHRoQxD8TLFwDASAABI5AAEaVR4AGj5wcAiD+41/6npzW9q0sgW76W5GHfIHAGSdwBN2+m9gREhH9wzj09mNw448f7rkLqKMlcbIg/nfjhW+AABAAAociAKPKQ+GCm08aARD/IP7jnwB00yet3wF7gAAQAAJAAAgAASBwGgnAqPI01hrYTBMA8R//0peu7DN7Ad30ma16KDgQAAJAAAgAASAABL4gARhVfkGYkNTxEwDxD+I//glAN338PQvkCASAABAAAkAACACB+CMAo8r4q9MzVSIQ//Evfc9Ug96zsNBN74kFvgQCQAAIAAEgAASAABA4FAEYVR4KF9x80giA+AfxH/8EoJs+af0O2AMEgAAQAAJAAAgAgdNIAEaVp7HWwGaaAIj/+Je+dGWf2Qvops9s1UPBgQAQAAJAAAgAASDwBQnAqPILwoSkjp8AiH8Q//FPALrp4+9ZIEcgAASAABAAAkAACMQfARhVxl+dnqkSgfiPf+l7phr0noWFbnpPLPAlEAACQAAIAAEgAASAwKEIwKjyULjg5pNGAMQ/iP/4JwDd9Enrd8AeIAAEgAAQAAJAAAicRgIwqjyNtQY20wRA/Me/9KUr+8xeQDd9ZqseCg4EgAAQAAJAAAgAgS9IAEaVXxAmJHX8BED8g/iPfwLQTR9/zwI5AgEgAASAABAAAkAg/gjAqDL+6vRMlQjEf/xL3zPVoPcs7DfppgUKa6VMxL2kqGit4HNJobSxyekzdA22d3tKc1NYXFKYpm1wjHe5xk329izyuNuhQGTUuzQiYjtfMt3Y5B43u8atXmQhm5DktN1w9o+b3X6z22/QFu3J9it9SRYPmZvkXylxDltWaPOrpKKDpM/n65oHzekcBIrHU9V5fNVyVH2f+eEQ8vzWEbPbb/L0Vuelf2Zq8DgQAAJAAAgAASBwPAS+yajyeIoGuZwFAiD+P3cQfxZayWkv4zfpplO1FjmX5Ak0VbXZBEte1O2vkSWzuGRCqtXSrUu+lF/q8ddSMlKs6DEZlMRn68lDVVOU+CdY8vyuvlIpslCU6ezq1ggJcXbHhDo38VDJfqmbT6D4J7jKCqdfU/hlhHqyst9kUPC5JJ+va+rtzORBRwQEgAAQAAJAAAicAgLfZFT5pcZXkA4QAPF/CnoZaKafSeCYu2kuv/xKg6PNM6hrsGg6/B0Ws1KenWsK6AolWFpbuqrIC+U1/m45Jfj5hKapN7K2jEvKS9PqunxGK+UmIEvBcwdNui6t0at3DqoVSH/yJHX11D16u7dUlsJhywrsvoYai67N1er0aZR73MPikkkZVr3H12by1mu97TtX/nHWbEKCJiM6SgVsaV6nb8/lcTYhSSvp0TsHjV2+dqtemkASXGWJcdBg69M7B3XluQQXfVNu8nU4fEZXd5E0mU1IUvKdeudgW5fPSHk68M9X1Q10V2u6dMY+dE+aiE2kpVf3mzyDTRa7Wu8zN8kJljyvdbCja9Dg9LW2lAmZfgpSUyv2pLCjZ+miGTq99XUO7NQQhZFuRXjlv0nnaLYOmnp9akV6QrrN0lWF00/IdFq6qvhbczF45T+DLVdY/a1XsulEkuW2Vudgm21Qb0WOG7uLs/sb+lk2kZa3NbHC4UgLbf4a2YHcEOgU4AIIAAEgAASAABD4JgSOeVT5TcoImcYxARD/IP7jn8Dxd9P8i+WVbSUsLplcaSkWI13HJTWN/dNdrnH7YG9RmohgyYud4w3UMrI4z2312/BEAItLYqmvlkfcBNo9bRKWTGG/ZVRJWVxSIDIae41pl+TFtogyF4iMBk+bhC0t7LyhL6fuSbVanOrEy9H3pFxE7gZYZ4qLh1zdO9z+WVySn2E19824ejpzSGRGsWPKaOrrQBsT7EWUUwDuCnnnSyuHPXlC1HIS8+uy00UZNQGcNe9Sqaq/r1gkyqibMNXIqN0NpsbWEhFH0zTQLaceSb0y0tmi4J+vqg1EfO8lqpEOrRzJbJ9dxiU5HGm+8Ya5SS5MNOEZCg5HmlpeKdlaHkczFMpGOaX5ydx+u15JXMZFQ7MMGTUBV7cm6TLytmBiFG/NHXDYiCc2LzHJinheUJT19BWLRWxCIm0J6BRJdKfP5+ta+z21bROOLhU9+8DjqrW9ZrxcLy4e2rs4uwpIp0mw5IpuX1kqahh4ewUzR/o2uAACQAAIAAEgAAROGoHjH1WeNAJgz6kmAOI//qXvqW6gX8T44++m+QlN1dWZSEk2WWQcEqlNq78+D+0VJ9Nt7d06MYGW7mttvg5bX2N5R4PPLqN2lSMFfr5KQzsFXCxX+z0F7Cx6cZhPfaM4r9L5py1dg4YutPxuHOjM5mTkWyPCHrn0e3WSc9H35F5Q0SkLxBFdHUUY6eo8t9mlITlpKSV12dJUFpcU5zjNvcaULfHMJtKyGgLW7u6a6uqMdDGHLSu23rK7BwzYnl6fKjOrsGucuWVAkG7rcqixeBakWs0ujeScSr1V6qTC/s7WfOY9yaVozz+XrbjqHDdbOiuuXpEk7HhVE6WNWlNfs9nVaJ1ym8uFDGjCpEj6dGExtPytxXy88o8nQfjnq9R+Tz6XlKhGDGoZutOzwwmfz9e1+KdaVfUqd2SyBk3BpNtsw+O4vAaH32qpSjofXRyU8s4C0qhB/NMo4AIIAAEgAASAwOkicPyjytPFB6w94QRA/O9QFCe8tsC8oxE45m5aIGvUWvxms13T5G33DNa36vP5qm0n/4vlVZTapMvCT2gyeNrodelPiH9KrCrOq7BkpRNBq+VWf00GWkzG4j/tXPQ9gnNqWg8Lk6xMt38OV5amKMTinH++irYWp8/fZTOapEhSyMssLb3+2lyZovNavXw7OgBS158S/7vVsjDNSU8QiK+M4IB/bEIiyCwvqvO293fnbYVFRP4FQ76yVOQcIcx2OyzlCTuLhicX6MIeRPyjvffetiypU9+UT1NFxdwK+McT6Zr7e5WUuwGap0BhEbZ7j91Sf49v0kzt/VP2/nFNIXL7x8QiMxFUxTHzhWsgAASAABAAAkDgBBI45lHlCSQAJp1qAiD+t4fvp7oiwfh9CBx/Ny2usxQKSP5ltUpXgHz+Lymu9vlrMihPfpFR32vMYKfKmobUeSiofqYm0KHdjmwf5fZv9OqYbv8JYlPE7d8xpVOiIAJEUo1KXcTdJf4ll5HfPvMe/kVFOXL7R2ZIVCNMt3/eBWVFXyQAISmxYU/4UocXa11RKvKNp1f+Ca6yUH0VS19qwVwqrZ7obFGgrf6c/LzGWgmPzKib6NDKCXSogamto4okarRbbv8S1Uhna/4e2ph2+2fLCs3I7Z8nqatQom32kamNrY3x6FlqAoXDkcrbrjm6yvkXEWGVFPnt7+n2b/QibwvcSLDbP95GgXmmECSbSJObfB3OQeyNTzcnWvyjsALZbjPl7Y/c/od68YaOxBxjhSJ9j+LEXvlH/Av7TQYlCviX0NTSa07f2tFA5wsXQAAIAAEgAASAwAkkcPyjyhMIAUw6vQRA/IP4j38Cx9xNI6XabEghSH6aSb21ezwx3Rh11B8vTYuO1nP7jRY1vZsddyV8sS4S8M/erZQm48XhliZHg6mv3TOopk6GQwH/nP6OrbMDd6/8450FzHuQfM2ytff6DZ19DVpX1FF/6DBC93hnT+SoPxSwINdqcCELTa5uZTaaMsAfDkeare1vd/vQjgMqeh8K+Ecp5x0B/6x+s8OHnqXiBUgKbDjgX1snihG4Wy2ziTRp7VCn26fv6q5pGDQ35uOogWYnCvin11fRBxOyiTSZeqTTM9Bk6VTK6hp7/RplpjjH2d7r13d119Y52l1oWT4K47b9bFlRt79J19XSMUjzRLEYs9323XEQtlb+qf35aZmagNVSLiTIZLlN79kmsLs4u7+hDUDTGVtH/XVQBysyf4JrIAAEgAAQAAJA4MQSOOZR5YnlAIadUgIg/uNf+p7SpvkFzT7t3TQW/3sG3v+ClE51UmxCkpxTkyFBrzMp67F2lB726EQ2kZbdEmiknClONQowHggAASAABIAAEPh6BE77qPLrkYGUTwUBEP8g/uOfwGnvpkH8H6QzJWVWvdtvcPraHfYCamf+QZ7C93ATauod4+2GHacJHvxxuBMIAAEgAASAABA4IwRO+6jyjFQTFDMWARD/8S99Y9X92fkeuumzU9dQUiAABIAAEAACQAAIfD0CMKr8emwh5WMgAOIfxH/8E4Bu+hi6EsgCCAABIAAEgAAQAAJxTwBGlXFfxfFdQBD/8S9947sFH6R00E0fhBLcAwSAABAAAkAACAABILA/ARhV7s8Hfj3hBED8g/iPfwLQTZ/wbgjMAwL/n70z8Uor2ff9f/Due/edd+5d92QENpOyFZxwwgnFaIwoKoqzoojKIIIaBxQcozGJSTodTUxyWnOMU+y0SZ9gutO9lt1rkf6r3qpdsLMFMWqU4Pa3Fitru9m76lefKir1rfrVr4AAEAACQAAIAIEzQQBGlWeimsDIUARA/LNf+oaq+/NzH7rp81PXUFIgAASAABAAAkAACJweARhVnh5bSDkMBED8g/hnPwHopsPQlUAWQAAIAAEgAASAABBgPQEYVbK+itldQBD/7Je+7G7BhykddNOHoQTPAAEgAASAABAAAkAACBxMAEaVB/OBbyOcAIh/EP/sJwDddIR3Q2AeEAACQAAIAAEgAATOBAEYVZ6JagIjQxEA8c9+6Ruq7s/Pfeimz09dQ0mBABAAAkAACAABIHB6BGBUeXpsIeUwEADxD+Kf/QSUhdqk9Hz4AAEgAASAABAAAkAACACBryEA4j8MAhWyOD0CIP7ZL31Pr/WclZShmz4rNQV2AgEgAASAABAAAkAgkgnAqDKSawds+yIBEP8g/tlPALrpL3YE8AAQAAJAAAgAASAABIDAFwnAqPKLiOCBSCYA4p/90jeS2194bINuOjycIRcgAASAABAAAkAACLCbAIwq2V2/rC8diH8Q/+wnAN006zsyKCAQAAJAAAgAASAABMJAAEaVYYAMWZweARD/7Je+p9d6zkrK0E2flZoCO4EAEAACQAAIAAEgEMkEYFQZybUDtn2RAIh/EP/sJwDd9Bc7AngACAABIAAEgAAQAAJA4IsEYFT5RUTwQCQTAPHPfukbye0vPLZBNx0ezpALEAACQAAIAAEgAATYTQBGleyuX9aXDsQ/iH/2E4BumvUdGRQQCAABIAAEgAAQAAJhIACjyjBAhixOjwCIf/ZL39NrPWclZeimz0pNgZ1AAAgAASAABIAAEIhkAjCqjOTaAdu+SADEP4h/9hM4fjcdGxtlyBQt3hB4ygVbGvHDwihDJic29ou/K3gACAABIAAEgAAQAAJAgH0Ejj+q5LN/yM2+6mZfiUD8w++Q/QSO100Ly1MEWxrRilrcrxTVpYsNGehiRS1aKRZeT2JfXwAlAgJAAAgAASAABIAAEDiYwPFGlQenCd8CgbARAPHPfukbtsYUsRkdo5sWXk8SeMrF/crAQsXGitwqgaf8YP2fUOzucc21VaUGvv4Vk748njzXeN8xOlGWEX1AslxCpmi40z1qz/qKvA5I/9t+xSVkmc33HaPT1ZmBEJh8mNcHGCy8WKIdnesetSrOAivJ3/TOD97Vne/K+RJmodLLln7Y2X0yrpMS4evN+Fey6+7/tf7h/UCBmGnMsa9z2n/a9Hgf9+UdOwXmi0np3y16vEvztqZbv69/eD9SFsf8Fq6BABAAAkAACBybwDFGlcfOC14EAidOAMR/+IbLJ155kOAhCRy5m46NFa0Ui9yqUOmL3CrRSvEB/v/fUPwTV7OKrPftvY3xV1NzTfvrZOHVMt3onG2iO0dE4use15x9yJDI8/0cBJdUJX33e1y+Zzh8khAV3Gh1WZ1zjpGJljadnPQ9ySVkCdmm1oE5h3u2RhWDiQkuFmgH53pcnz84r1A8D3//kOKfS8gSc5uLtJUpsoN+4Ccl/vPMP296vIGfRVuCn+fhC3jAk8ILhTfs44abjcmMZKVpEw9//nhnsCIMyl9y1Tz+bndKh6YeDhD/kgtG54cgGh7vxqLpACPjlLb2myPV1w+aLxNczmua/+vlePkBlDh8UnihsOPxp7Vft8xZUZLo3rtvvesr7hzuQS3h4AThWyAABIAAEAACNIEjjyrPwgIDXTq4YD0BEP8wImQ/gaN202JDhmhFfYC256DZAbXYkBGqg/iG4l94tax6eM5mLOBzjyj+x0Y1qb4lZZHUYHQj6Y5FO4+bmtd+x+Ge7TB31XSMdbvnLJ1qMUESV7OULVMO9yyaFGCIf+HFEt3onMPZr6tsLalCH3VlqUxwAi3tkOI/VL0E3D9Z8f9q5eXE9FOX/zPSVx11ykvxXCIuudCsK1EKwjKwSFA/W/F4Dyn+1z+8f3jnMw3X9NORPu1XAokheu/seL8o/mWZ9xY93pV5o5QgeTy5ZurPjZ1fR8pPoPkFtB/4EwgAASAABM4hgaOOKs8hIihyJBMA8Q8jQvYTOGo3LX5YGODwT6TEESl7PIdFbpX4YWGo3zZT/KfWzvS45uoL0ao4U7vGa9DWgI6aLJwIFu3do/ZMMUnwVXn1wx0Dsw73rMluL85M5PCRjGG6/fP4qWkVPW19vmdKc5JxOuKYdqN7zqBJ5R1F/Pc6XEb3Z2PiNW772Gh7t0/8i4X6VvecvbdRSgn+Iuv97vGhfKlEeLGkrKdLpUhRNKCpAXrlX8TVNYzOOew6yYHqV5xgtbjnrC0ladd7OvrnbEMjNUUZ0QlVdV3TtuHp9k4tni/g8eQpFTepB0Ybq29cb9rfnYHJZ881xaF7fOh6SlGJcczqnLP09RYrUG0yxT/CpZ9xjE7XF6Vx+GS0vKbagh7uGZ7uMJtVqXtqP6De8cr/08HA9sAl4oqcv296vJP1Mqr243STfyEhqkYr503zf61+XLVea7LPvVve9i69emEqSPE1BkGF3r3x5PXuhmf32Yu5elUCh08GuP3zReoq5w/fr6JnljbXRvqqsaOBVPHdksf78pb+Wu38o9e7G+/ez023J4sCf+bY5nuO1qbbb5a3vStvttxtRXgSQSioaJry5/7yiakEWZV/8wPt2rC+ZEu67HP7762obb//buntLrK/kLKTWvl/9dtzXfSe7QkcPinm1PcsUWvyeejnIEuZebzjXV+fKSQlTLd/Abew3PnDo9e7mx7vq42tW66GZBEZn4+mHrANOHFRjN56+82zbS8i8OrlTX2+AP3E4or6Pmx4dm83+wJzJFEvLs9UhWeKJKBtwJ9AAAgAASDAMgJHHVWyrPhQnLNOAMR/4Jj4rNco2B9M4KjdtGCrlLmqT6TEoWj/nnKm/hcbMgRbmuC88J3DiH9xtAEr6jhKIZOpPWhF3Vgk4soVLTMO92ybXpuba2oZnrMPoxkBpqDlErKUinGHe9bQpsvOq9Ka7thdQ2o50loxOTepLfExRxL/PbYObed9R48+zi/ve7rMOut9vPIfRdlmbUX7IHBMAYd7Vqf0OfnTd2jxLxbq9e65nt7+OtukzT1rtffScxNMYuI4k8k913tzrMnQVFg5aHHPOUZG27p6NTda6+z3He5ZfZEcl6jbPecY6C0rqbzR7EReBkfZ88/jyVUoVsK0udtZpa0sqHN3u+fs/WiPAy3+M4j4FI3b5p5tq1EK+aSAo64aQDmW3ijNKWxt7PVVAdN45vXxxH/dfTQR8GxlbdTuMI+8WfF419cnVBxScDmv+cEfG57dx7dHWy3z3731rr1fbkyKZop/weW8qnu/bXq8C99PthhGhhbQ9ZOJcgGflCrQdvfX69v3vp9sbbl1a/UTUwnTZmdZ0B77l//eGmttLC2fnn39ae2X7d7cGIKTrr31+4Zn9/tbZl393btvvWtvF6qkElmWsefBH2hb/qi5vOKamNrzv7Hz65N//nh35r7zu51Nyv4cLond/vcV/xw+mZh57/GO919LtvRL6rYXf6BMC1BDYor/LMtPqPiTzuoaU4sLkXk8WMiXVVe73qDpgCeTVfVVSZezax+i190Oq7a+5+bD31AAAjXy+Tc+/7T6cbU11RcVIobovbXjXd8Az3/4zw4IAAEgAAROgMBRR5X0/7xwAQQigQCI/xPoBSKhIsGGAwgctZs+tPgvDZXpYcQ/3pzfPT5UGC/hErL0RrTsXJMTw+PJ4/IrcoquywQkl0jINqAgf5WKaKb4F14sqRxGkeoyRVKeUBqViFR0RwNyIkjWTXWP9+dLJUcS/47uxmy02j+ilkuEUbV695xRe6PIL/7JvMEe15y53hf+MFk31eOaaypAq9nM6YDP4p/yPnC4Z83W3ibzJBLbrqECam6CSQyLf/tQe7KA5F9RllKCv55KFudobVX5Su2exff5V1XosSOK/1wjil9gKENTCYIrBWV9cxiRX/zbC7N7TO45k7EEuypgTwdHtz4hBhVQGKOUxqcIQ7vWY/Ef4PbvbM4/eOW/7v5fmx7vQxOqNfE/qm9uIcnamBQdkzKz6EHb1DOobepp5XddM49NJSlM8S+Nw2vmEyohsjDmkm3mrXd1Z0EXLYmhnN7X3t1TU3EBM7Sbmx7v8kwVkzwttpfv1WFXfKUDhS146lLzr2Rn15oqm2sVIjTfVDOLZigG1NSKOuXFwHT7R3MBg4UCyithyG//vnv+Nzy7Y2VocorHk+c7fkba/smPlKpX4wV5Wvxzibiy0T/XP7wfrcsW8EmCk56Wp06KR40t/sYSmrCg9vyL/15hX/u09n65NRO5G/BiCzNUBXGxZPT/qkckdxbosIjBdwJQwJ9AAAgAASAABA5P4KijysOnDE8CgTAQAPEP4p/9BI7aTYfH7Z/DJ/EcgV4tF14u0g7OdY+YcNj5mExDnW3SMjyLY+ZhrcsU/1idMiPq9bjmHBaNmJOqMt5HcppHHk3823UJsWiff2uVIv7asH1spCQ+M7/Lt/Ifm3008c8TZslz1alZ6ULkKZCQ0Yg2PrRVKSQKU7PV2Wx1Npm7VHIJFv+OLo2Y8Flr98cdiJZ3d7vnutuKhJfRpIB9bESThKQjc98E/4pS1TbgS7C+UMT9vC2CyYq+rlSgpWCCo8DbFgrj0bYF7SiKVtBNeRPUFyAZiZ65mpVvvoOQumctvf3VddXpCdIDumMs/mmveHyxPFP1RfGPF6txjDrjc+QPb0mJSit9hda3v6sLcFNnin/fMw/1+Bnx3ytsy2jpvjsvCot/OrqerGBhxeN9dS8wNVps43IllCFdvfmgWUDEJRdPT//Ts/QWed1verx4nwJdFqb4x/MCAfZj8R+453/mcX1+FM5LdAlZizwFVtzZ1OQFPRmBo/2nFCws4qzfvZ97dL+rWYMjBTLFP5eIy3f8jDcCvNrYujM7VVeSKeCT5H+gcINr7+4VXfX1bOK/V1jXPr367XmtNHAbwgF1Cl8BASAABIAAENiXwFFHlfsmAjeBwLciAOKf/dL3W7WtyMn3qN00FfDvoGD+VMC/YubWgIDC7rPyTy1oc4mEHMaWdZEE7aW3WTSyBLR0b21VEXxSKNQ1DqNoeeqMzFiZsoByWa/O3LPy79uEP2zPTc+JT1H6PglJeBIBzQL45fS+i+TB0f4ddl3cVaXafr/Holcb79v79fFcBS3+xWlIiu9x+x+dPsDtP4CGFDsONCvxBTpZYGy0PNUv/v3WommLsVEs8g8j/gVgztfqAAAgAElEQVQXCzT+MwUcFs0XxT8+IpHgoHJhhwta/BsNDsPwnH3QlCr2dQg8fmpybrNG39fah6Zg7O5+VUJI6XhIt38eT66lFtLxnn/mUXnYWf0Exf/mvC+0fkL2ocR/CiX+Xz3Uy3i9M2+96z8tmzQ3klPUempvwkiIlX/6qD+m/Qe7/aN4CmLz1GtK/G8/r5T7nPMDJiMkafq6nocT371bomYBXozroog9K//YiUCutnU5n9554VmhJikm6+VY/K//COIf/msDAkAACACBUyFw1FFlwKAI/gQC35YAiP9T6Re+baVC7gEEjtxN42D+/T4v94DUkJP27WsHHwfAFP/YSb5Vh84w419FR+jRgty3Cj1q19ZMOUYntJlo8zPWvY6uCjFB8rlIkAev/Pvc/sf78yTUenh0VpIiRyqTYo997P9/1JV/KUEmUXEEuqnIf1gk+44DpDYC4IB//CvIpG5/1vu6/UuyrU3drqaaXIJa+U+nVv4NmsBT3Hwr/weKfz4Oc8hw+2cCZFYNvcJflrFnooR5H6/8B4j/7lFrBiGVl47j+IsEn+TxU2NSVFLK5x+HV2Buc2Bmiq9DiX86Th5e0Bb/o9q+9okO+BdK/EvlKFg9vUddoV2Yffav4XoFc+U/wO1fIrTd2kFu/2USn9v/IcX/q4f6KMIXJA9FDXAX4MmCjUVTAo/ES/Q4VD698o+DFwYc9Xd48c+/kl1177e1X7bH+54uerzLD404TiEt/rlEXGyKOrsoFzs1RIvNE28/ra9P5HB94h9vYeDx5PEZ5TlKFAuTwyfl2chZYHW6Khbc/kPvTwluunAHCAABIAAEjkrgyKNK6JaBQCQRAPEP4p/9BI7RTQuvJwk85QEx/9F/D7GxYpdK4CkXXvfFEt/3/wym+Jdkokh+Dmd/eVFlicHZ0TvrYCybxxWjmP9obZna+o5mFnAgQNdQeV7ptWZnm2MS+cw3lSRIkuho/1xCJtchsWq1tKkKqirM047RCZ1KJk7rtvl1Mhb/SNCa7NUtNvpTUZSx78q/lCBF8e0mt29Znin+eTx5lh7FIOzo6KppR3v4LcYiIZ8kBMqcCnSSX40VbarvaG8pqWq9pkwWRtUi54XR6bYO39GAKGYhGdjSDiP+CT4pzRvEAf8wQEs/Slmn9K0Y0/yZIj/UdSjxr/AH+bO7UAgGHEPBYutQqTQZeTUonqJ/PwKdHfPiAPGPj8db/2m5p81hnd14urqLtfQB4ll4obB9gQr4N+mstz6ce412tjemBQb8q32InnkyN9rQPDL0nHp+EO2fx27/hxT/Kz9u33XaG7oXF7a9vl0DiZMoAv+/13rrDc2Tb75/6dn0eL+fbs+KlxR0o4D/ywu3m+s1cf5o/wMF4kO5/U8/HbpnVwnJ9LKlJY/3+UyV5Gq6Zuz3jZ1fbzenM93+BZfzah/+sf7h/US/paK2rdb2w6LH++oBOrfPNzHx+rm1w6CKMbpff0JgWzq1NSbTxLuVnd2HpiwI+MdsmXANBIAAEAACJ07gGKPKE7cBEgQCxyYA4j9QkBwbJbwYsQSO100j/b9VKlopFvcrRXVpUYZMsUslWikWragPVv70Zv62KrTWzeOmZtQMm53oKLtqTW5G1RTzVDy8Vs8Mp8clEpJLb7Y7Uej7hvrCWFJT1TfrGJmozPi8px0lSyjSKnoMg8gp3dLbr72WQfBJfEQf9pynxX9AaABrkyqU+MeOCfYhFAmfKf6RZuarrjU7zciqiZYWbUIU+uEIhehIv8D0qUMB0FF55kmLGx2VZzC1Zcljg5vHIcU/A+BoXWWhsgZNQ9DBBelkQwl+5v0DxD/HP8tgtmhInjQuz9RoQ9Mc+LTFUlUaEXrW9gDxL7icVzq48Yw6S2+yU1tBnUI3qpMcIP4R2Kjqpin01ubbj08W7oc66q96aAUfB7j06qWzU4s3xh9J/M8PtzdPUkf9ba45m9FReQQnvaD7h4Vt78bP23dcDSmx5tG1PzbeoUD6ZJJtbBnNMizOd6de8h31F0r8B0RAQFEMfnteG2ubev0JHx+A/f/Rqv7289qkaHrlHwVllNa3z248p476W/lxe/aWPTceebgIBRXGRzsrHu/LHx9VSSWx2b1Dj9ApiczDDpGHAgV5tg7Fd+TwSTjqj/6NwAUQAAJAAAh8PYHjjSq/Pl9IAQicCAEQ/yD+2U/g+N10bKzYkCF+VoSO+tsqRYEADRmc2H107In8GiERIBA2AkyxHbZMw5ORjDrvYGUeOQvweHLN1J/Y2yI8uUMuQAAIAAEgwG4Cxx9Vhl5FYDcxKF1EEQDxz37pG1EN7psYA930N8EOmUYyARaLf+GFwo7H6OgEc1aUJLr37lt0rEAOdW5iJNcI2AYEgAAQAAJnggCMKs9ENYGRoQiA+Afxz34C0E2H+v3D/XNLgMXiH7n6p3+36PEuzduabv2+/uH9SFncua1oKDgQAAJAAAicLAEYVZ4sT0gtzARA/LNf+oa5SUVgdtBNR2ClgElAAAgAASAABIAAEDhzBGBUeeaqDAxmEgDxD+Kf/QSgm2b+5uEaCAABIAAEgAAQAAJA4HgEYFR5PG7wVoQQAPHPfukbIU3tG5oB3fQ3hA9ZAwEgAASAABAAAkCANQRgVMmaqjyfBQHxD+Kf/QSgmz6fvRuUGggAASAABIAAEAACJ0sARpUnyxNSCzMBEP/sl75hblIRmB100xFYKWASEAACQAAIAAEgAATOHAEYVZ65KgODmQRA/IP4Zz8B6KaZv3m4BgJAAAgAASAABIAAEDgeARhVHo8bvBUhBED8s1/6RkhT+4ZmQDf9DeFD1kAACAABIAAEgAAQYA0BGFWypirPZ0FA/IP4Zz8B6KbPZ+8GpQYCQAAIAAEgAASAwMkSgFHlyfKE1MJMAMQ/+6VvmJtUBGYH3XQEVgqYBASAABAAAkAACACBM0cARpVnrsrAYCYBEP8g/tlPALpp5m8eriOTQFa+pqNnLDJtA6uAABAAAkAACAABTABGldASzjQBEP/sl75nuoGeiPHQTZ8IRkjkVAlcL2vocc2dahaQOBAAAkAACAABIPCVBGBU+ZUA4fVvSwDEP4h/9hP4Jt20SNlenCrhX1HeaLgh5JNkor62e6zNNtbusBdkxIX5Zy+S6JtsWgkRWNdRUoPePVQYL6HtCb5Df3V6F2TeYFut4pTS53FTc0wutfxzGQ/ISJxg7TQVEfxAUAe8Qn+VpHE3liTQf37xgh8Vn5imoj/ltZ09rjn6z8Q0FT8qPiARcWaPbWSyw+Zqs4119LiqNblChqk8bmp250DB4UoakPJR//RZ0jPWQX2M1sZE3nGgxauH628cAdpR7YTngQAQAAJAAAicLIFvMqo82SJAaueZAIj/4wxYz3OLOYtl/ybddHyVUcEnBSJtSXkawVFkdfYVyGM5fFKSbO3s0oqDdPipgt1X/PO5ykLzQEu3kxb/wXdO1So68fMp/lstzh7X3AGfjp4xaVIWTYnDJ8WZPRZjAZ6b4BMFmt4xTeqhJjWYiZzINdOSE0kQEgECQAAIAAEgcCYIfJNR5ZkgA0aeCQIg/kH8s59AmLtpvrDoWrWl0T6gqzZqW12txrY8/1I/l5BJlT2G1gLmgq0goUrX6dS3D7R02QtS4wiOIrfLVavrrNI7mqwDZcpEDp8UyCoqqWeazI6C1Di0xmt2VmuMukZbg9WpVe3zDIdPxiS1N9mdjQZHZZWjZe/KP5eQJZYMNhTm5nT4xH/wHdyFcQlZQn5Pk3VA3+lsaW+SR5EEX5WvH2g29TVZB3RFGQQf3SkyOFstTr2tK1ceyyVkcVnWJutAY6dTb25JIUnhxZKK/q5SbadO34eeSZBwiYTE0psG+0Ct0VzW5GyrVRAcRWbDQGvnQLPV2VBfyJwfIeWGBquzuXOgxYzepYvW3OGorLBgp4YAjHT/i1f+a3WWuvYBQ6+zTJkYlWgydpbg9KOSrcbOEro68Mq/+GpZ5UBHMrWUHVsw2FqlSKoYby6Tc/gkl5ClVIzr1XJ+tLrc5GztHGiyDmhVyRw+Sa/8xypMDdaBRtNAUzsqO21JwAVa509XBdyk/+RHxTcY+3pcc2nZRfRNpuTmErL0xpn6whhRoqmjs6Pc5NTmKbCPA75zo85S3elqritTai1VhoFWiy5RsE/dxWvc+qa2eltXnlQSwDm46ve1BN8kOApllxN7WIikhhaLNpqzTysVSnU6K9VUOnXyKB+04AZDZwQXQAAIAAEgAAQiikCYR5URVXYwhgUEQPyHHJqzoHahCJhA+Ltp4eWi4sZ8Dp+MLTbmSX1rs8Kk9ra+WVtPRzpDEGKpX6ZATgFR8e0t9kYZJ1VpvqNXI6kpkuj1vfqEK4o8k19WSfTN9kYZV57TMdNURD0T3260lkVfDXwm7nJWgd2FV4aleYO2rj1u/2KZvs5URnLlmX7xH3wH0xNcLCgesmeK0S8lOqsiLVGSpHHjrAVXCtQ3+/IkkqSKcYMmFS1NJxhqGvIlPG1tf5eCeiX+2nBHvVJ4saTc7fO9l6mHW6sUQqGuzmlO5ZM8njxLP9NWqxBHG/AMBY8njy8qlgl8v000Y6KqUVCan8y4aW5SEVdx0dAsQ5LGbevSxlxFMyZMjFK/bwWPi3hi86Jj2hHPS8rCnr48qYRLyOT1bp0yhv6lhBL/SM1Ssyf8q6oiqsjClIq8rBQOnxRG1Tb16uMIn44V8MuqetuSKeOleYMd9Uo68YCLg8U/fri6xWbtn6FfZIp/gUBd3ocmbsRxpo4hs0JM0hsc0J1+Q6KAFF4tq6Sw83jynM6x8tR96i6h2G3pVIsJNK8RwDm46ve1BN8MFv9R+7VSXE1I7Rd1VxQm4hkTIRHYYOiM4AIIAAEgAASAQEQRCP+oMqKKD8acdQIg/kH8s59A+LtpYVRtaWky0pa1xlTGXmikrzK72xiL8MKLJVpXl4LauS28XFTmsmdzU3JMPtGO7ygvqnWuaWPnQHMnWn7X93ek8ZKy2n3PIJd+h052IfCZjEtqOmVau+IOi+BlFXQ6sqUSHs8n/oPv0F0bl0hIqXa3d3VpSkuTEqU8bmpe+x1zd38ztqfXqU5OyekcK8uIpl8RJZo6LWV4aV0U395m08ouqMucZowiJudmR0MW85nYArTnn89VXreOtRk7bly/Jova0yyj5TVVhr66NltN+2R3W5GYAU0c40ufLiyGluXfDI8lMZ4EEV4sKXPZs/ikTD3cXJaKnrR3YKGOjQ8l/omrWdcdA/lSiSi+vcWKikZIiopaHMikVmfHUHsyzyf+RYkm09AYhtNscbUbfS4GNBz64oviPytf0+OaU+ta6VfwTvu2bldbt8tg79UUpBF8UhxnMlrLhPw94t/YWULwScHFglInal3ITaBlqjIjOaDuilMlCcVuPDOCJnf2ciZ4e6qeNgNvQEDRB/x7/luNJdFXA1f+o7jy4FZKVxNODYt/ZmPADSY4PgUzd7gGAkAACAABIPCtCIR/VPmtSgr5spIAiP89GoOVdQyFCnM3LUqtqTK62trM2lpHi32gsqFJQaYkKHOwGBZeLNH41T5aN2bo2H3EPyVWlRfVWLLSVYlWy9tdmiTkU4DFf8KFwGdEF8pooSWOaWe6/aO5gF5Xq8VpsLhMw7MmR1d+RmvAHexdT+cojFEqCo31va7yjFRlx1Sl4rPUR+r6S+I/5mKg+Ecy2z9BIL02jAP+cQmZKLkot8LRcrMr0+8fgfwLBp2F8cg5QpzWbTEWRe0tGp5coAt7GPEvFOpqHY0pcmtT7d5N9VTAP6bbv/Qa8lPg8Ml49XBTiTxZ664vSOASCektU9j9QUhoa/rRHoHPOvZwMR26BqerW2zXSxv2/VS32AKUf8Cef7pqkPinpD5z5T9Y/CsakfgPqDtcLuxmEswZBxegq74sC1UB/jB9EPAd5sq/OKbdaNH6xP/eVkpXE37rMzR/Y8Din7npg84ULoAAEAACQAAIfHMCYR5VfvPyggEsIwDiH8Q/+wmEv5uWVhhzRMjpWq3LRjv2L6lu9LnKFSjIPykz6SkvcdyVBLj96x06pts/ir2P3f4tkzqVjMMniRiNuiyXHyT+ZVcVeXufEV5WFiG3fyTYZOrhALd/nDu98k/3a8F3CL4qp+w6FmPUgrlcXjreUa9EW/15WZk15TIBmVQx3lqlQKvQCYbG1hKS0FT53f5l6uGOhiy05L535f+z2z83NacNuf0LZBU3VGkcvBHA79eA50fw3AePJ1c0Tlk6i4SXldf70CaCUG7/eocuwO0f61vMMw65uCcoDM5W6wAd7BAT8K38I2vxgnmComWmjRL/Iom+pdNc3oN2QPB4cmXHlDYzBu2Kz7lpYqz8I7f/wV681yM6XX+DCtlA42VeZOVrqltsDcY+/OnoGetxzdF/Nhj7mLv9feYxAv7RSR1e/GuzooPrLl49jOHQbhE0Z0FQ1X/ONMgSHk+e3T6OHUDwNpNg8Y9aqXWsUoH2a8QX3qwrScXiH0Hb22BQM+CnxsjQeQdcQiaMV4iFqKfiilNjYqS0GXABBIAAEAACQCDMBMI/qgxzASE7dhMA8c9+6cvuFnyY0oW5m0bL8nXNcQQpTDCU+feTi+U1td3oXLTgo/5QCDQc8M/cpZLH4vXb+lpLtaGvxT5QlukP5md1tXZSQQEz4oJX/qUEFRSQ8QyKipdiaul1NXf0VVfZ9j3qL1jq73snrepmS7cT7TigovehgH+Uct4T8K/d1WZxGmyoCGi6IduEA/41dqAYgcHin0skyMsHO7qdTZ1dmuqBtposHDWwzYoC/jU1ldCO31wiIbVsuMPeX2vsUKVW1PS6tKpkabq1pdfV1NlVXmFpsaHTEwIw0g2Dx03FARTrWwdonujYhbRu8944CFTMAuqoP15Cavlgq8le1dSprhnAXgkER5FvvmMxFuHogGS6Vd+LgimW519XdY611uSn+o/6i1WYmuyfcdGWHHxxvayhxzV38DPB6+3I5kOv/GuzooPrjhb/wZwrc7MCqp42b19LyHRrS1dfdaOlnIrCGCz+UStNqNJZXQaLCwePxOI/uMH46oJyB+BfURY5fDEvpFQICdoMuAACQAAIAAEgEGYCYR5Vhrl0kB3rCYD4B/HPfgJnq5umnbdZ3/scu4BcQhabrkmSoaZLpva0t/pOvzt8glwiIa3eXUM5Uxz+rVN98jDi/1QNgMSBABAAAkAACACBLxI4W6PKLxYHHjhvBED8s1/6nrc2HVzes9VNg/gPrsHgO2Rqe1O3q9nqbLGYs6mDAIKfCXWHH6WptIy1NO85TTDUw2G7D+I/bKghIyAABIAAEAACxyZwtkaVxy4mvMhWAiD+QfyznwB002ztv9hULhD/bKpNKAsQAAJAAAiwlQCMKtlas+ekXCD+2S99z0lTPqCY0E0fAAe+ihACWfmajp6xCDEGzAACQAAIAAEgAAT2JQCjyn2xwM2zQgDEP4h/9hOAbvqs9EdgJxAAAkAACAABIAAEIpkAjCojuXbAti8SAPHPfun7xUbA+gegm2Z9FUMBgQAQAAJAAAgAASAQBgIwqgwDZMji9AiA+Afxz34C0E2fXg8CKQMBIAAEgAAQAAJA4PwQgFHl+alrVpYUxD/7pS8rG+6RCgXd9JFwwcNAAAgAASAABIAAEAAC+xKAUeW+WODmWSEA4h/EP/sJQDd9VvojsBMIAAEgAASAABAAApFMAEaVkVw7YNsXCYD4Z7/0/WIjYP0D0E2zvoqhgEAACAABIAAEgAAQCAMBGFWGATJkcXoEQPyD+Gc/AeimT68HgZSBABAAAkAACAABIHB+CMCo8vzUNStLCuKf/dKXlQ33SIVSFmqT0vPhAwSAABAAAkAACAABIAAEvoYAiP8jDcLh4UgjAOIfxD/7CUA3HWn9DtgDBIAAEAACQAAIAIGzSABGlWex1sBmmgCIf/ZLX7qyz+0FdNPntuqh4EAACAABIAAEgAAQOEECMKo8QZiQVPgJgPgH8c9+AtBNh79ngRyBABAAAkAACAABIMA+AjCqZF+dnqsSgfhnv/Q9Vw1638JCN70vFrgJBIAAEAACQAAIAAEgcCQCMKo8Ei54ONIIgPgH8c9+AtBNR1q/A/YAASAABIAAEAACQOAsEoBR5VmsNbCZJgDin/3Sl67sc3sB3fS5rXooOBAAAkAACAABIAAETpAAjCpPECYkFX4CIP5B/LOfAHTT4e9ZIEcgAASAABAAAkAACLCPAIwq2Ven56pEIP7ZL33PVYPet7DQTe+LBW4CASAABIAAEAACQAAIHIkAjCqPhAsejjQCIP5B/LOfAHTTkdbvgD1AAAgAASAABIAAEDiLBGBUeRZrDWymCYD4Z7/0pSv73F4cv5uOjY0yZIoWbwg85YItjfhhYZQhkxMbe25JQsGBABAAAkAACAABIHCeCRx/VMkH0QEEvj0BEP/fvg7OcwcanrIfr5sWlqcItjSiFbW4XymqSxcbMtDFilq0Uiy8nhQeyyEXIAAEgAAQAAJAAAgAgcghcLxRZeTYD5accwIg/kH8s5/AMbpp4fUkgadc3K8M7CBiY0VulcBTfqr6X3ixRDs61z1qVRxlklgk0be659pqFYE2HyWRb/huQrG7xzXXVpX6DW3AWR+P/7c1Oybz3qLHuzlvkhIn8Ivm8eR55h8Wtr0bO7+OqE8gQS4Rp5v866RS+7aow1MWyd/0zg/e1Z3vyvmS45U3PHYez7az+xb/Snbd/b/WP7wfKBBHSCmieUb360/rW4/0da9WPN6nLrXghPr8AxrhAV9FCBYwAwicHoFjjCpPzxhIGQgclQCI/xMY1x4VOjwfZgJH7qZjY0UrxSK3KpSdIrdKtFJ8sv7/An5Z3chsvSqGwycPFp/ihKpq82S3e842NFJbUyjxi72o1B6be7aGSiGU5V95n+AorpnuW5tCkjlq+kkV444efRxVBHFKxY2KZmVG3FETOZHnv55/sBkJ6mcrHu/KvBEL8qj/rr+59WnT430xXo4flvLdd3a8a+/uXRccU+DRmQqk9c3d4x31N05k3C+5ap54+2n931sj+k5lytfaxuGTkSxElY6f11fcGdzD/l9wemWRXDWPv9ud0iHgXy+uQtmJ5evqx+UmWW7T/F+rH5cbk6LphhRpF4LLeU3zf216vAGfV7/PH3taJFQZmS0hz/zzpsf7dLAw4GEeT55d6bI4HAXJB/0umFUZkMLJ/skl4vIdP294du8Z00WXKmzLn9be+yqU/A+j84N3fcWd93/NY9TF4Rs5NlJ4ofCGfdxwszGZh34dCdkLz37zJf717fNkOUBqQCCcBI48qjyh+bhwlhHyYjEBEP+HHfCxuBGwvmhH7abFhgzRivogbY9mB9RiQ8YJopNk9nS7574o/gUCddXAnGN0wtDW1WSddbhnDRrfUnlC6bh9bEQdf9CQ9CsNFgp1DaNzJyX++VeUavt9Wvx/pW1f+frX8w82IIbovcXQ9tK4mcc7SMOsvxrEo3A8O/DqoT7KP4MTnMg3uYNnJY4kiQ+2M5QQPfitMHwr+p8S0/KnI5X09MqC28Npi3+Ck14z+9er357rRGm6B9RF9Cl2Gl9ZibT4f/H4iWv6Kf0ZumfPOfR8zWFsCGgJocT/YZJCOpma+MNVechXjveY5AJa9l97+0gtQZWYXuVb/MfzR4PvPq0v2dL+jx5fYA1/vIy4RFyR83d6qgjE//EwwlvsIHDUUSU7Sg2lYA0BEP8g/tlP4KjdtPhhYYDDP5ESR6TsWZEWuVXih4GLQnS/wOPJU0p7Wvtme1xztv6hKnW2kJr3Ta2d6XHN1Rei5X0uIctsvu8Yna7OjE7WTfW45vDHYdfJLqix23+uvKq6a9rmnjVZ2tJJVFMxOTd7XHMd9UqCT2Ipbu9HK+dcIiHbcN8+gnYKiBOsFvecVV+WUe02uYcKYyVcQibLaW/smkb+Av1D1ZpcbE8oO7mELCbTUGej/QtuSISkOK272+0z0jbRnSPa03JEF8p0o3P2fkOWvLlur81cQhab0Y5T6xkcbWoqiRWSQkLbMOovMgWBdvuPSjSZ3HMOuw47NfC4qbmm+47RCW1mTKiC0OTxRahynR7/AAPwn1hOrP26Zc6KwuPy9Q/vF3/4Y83zvFaKRur5Nz9serz3jOn8K9kFlsX7q7ubHu/K5tpoWymeDsAKZLahVDu48Wzbu/Jmy91WJOCT/CvZ1JrtateNkam1P5ZnqmQMt3+p4rslj/flLf212vlHr3c33r2fm25PpuqLfyX7ev8PT17v/uvn7TuuBt3Q7xue3bGyPdrPt4OAWmvF3xKc9Pz6h3eWPyJHhh+3Z2/Zc6k5JskFamlxfaZOszj/dne2XsbkwL+SfaP7hyeb6JXpgYa2ic9u/1wiLrvs7q2Xv6EEN9fcplLsHIHLe8/R2nT7zfKB5RXwyViFbejRu+Vt76stz+y0OTvG1yBj5eZe6j4q+ANnYRwqHZeISy+enn6Bctz8cfvOeLtCRMZcst2ipmM2Pb4NDqEMO6AsdJHpSrFeNw0+2VnZ2X32ZPJ6TFYprrvNtZ7yZPwwQeQV2Re/X93d8OwuL72wlaFpRNwY8Po2FmzY7b8mo3fkxW84tWKZr6aiEvTW22+ebXs3PLvPll/06HKwx8dh7OQScZqpP1d3vishZLrJv/DOAtp4ukWFIuxvXe3XzVTlvtkabc5PTOsdf/HbytuPCw/NCn/PkJLrcj3ZWd72br79+OjRbHV+AodP4ip+4i7AKMj/Mo+8+7S6s6CLluyLBYv/fTeMYBcG9FW5r+rjlKjlby7aEnikMKq6Ywr9ajbffnzy6HZlmpTDJ32L4esTZTkuZDBVRzeSJcEtIZT4D3D7F8V8roilVy9v6vMFQVV5VGMwmX3tD/7FJeUj96LlmSrcACRC1KTX1ydyuGTUf1bb1z5tzud6DTkAACAASURBVJuS/gv5HG0s7tkThL9dezOj4qBfR3Hv76jtUegITrru7p+rH5dbYppxI9ReKDQ+R15L+PN0sJAW//u2T/pHARdAgJUEjjqqZCUEKNTZJQDif4+AObsVCZYfQOCo3bRgq5S5qk+kxKFo/55ypv4XGzIEW5pQmUrzBrvdc1ZLW25elc7qE64cPhlKfIrl6jLjnR7XXGtjWVZmupja8+8YGW3rdtbUWRrtaBLB2lJA8Mm0Kmr6oACpLP4VZUnf/e6J3hwRKbikKum7jwWzOA6J596+yVaHvbyuOoUkSXm3yT1nsXWoVJqCpnGbe7apSM7hk6HsjIm3Ivk90Fumri5rQxMTHfVKPqnKq0bb8rstbTkFefR2AwwBb1VwjEx0dNk112sqzNO0zeJoQyuVWnFhaUELSq2tVsEjFKnXu43ovr24sDghhqTFv+BKQVnfXPd4fx61luWb4xhqTxaELEhARYQq1+nxDzAA/0kPqW83J3GJuLLRP9c8z21tG1iuYFWz9uuWPTMqi1qvW34yWVvVM7j0af3De7zTPsvy06bHu7Sxddc93GhefLzjXf242poaTcue5y/f3huftevzmXv+pYrvFj3e1+vb976fbG25dWv104Zn93YzilKZXra04vGu/7Q80Oaw3n7zYpMSvX7thM3mS8o1lsVFj3d9a8HUYMhNlmZ1bK54vK+WF2xGh23izYrH+68fhjK4Pim18e79s5U198iduqI9B2HgvDY2X/ZQeS0zIgikFCwseryvXtyurzHoJ96t7Ozebk7n8Elc3pf/3hprbSwtn559/Wntl+3e3Jjg8kqEtqnXn9Z/Wu6tN9SZflj0eJfv1UURJN7/vPHz9sRNh3lgA02CvEKmxiROPtzxbrx+3l3faZrewR7dSG02zz+m7qOSxktCGXZAWeiqp418tvxiUD8+vkRt8fjnj3emnK0DGyse79qbmesCCe2n/eROd6Wuxzn/x/q/0fSQLMvY8+CPTY/38ai5vOJaLLXnf+Pn7Sc/rE8OP5heRl9hjScW6IdXP23s/HrXPWzQ3519jRrMWBX6RR/GTg6fzG1anLxnz+D6LnK4aDqp7j6anaFbVCjCdOuanR1rpQhv/Lz96NmLvhZUZOx/zuGTiZn3ENg3a067o6Xvh8c73vXt57VJ0dJoVBG0q4VPu96ri+bJsPt6AJYDxD+eUMP7aATU/E5R3wdsgPBCYfvCH+sf3k84OnQ61JDW12dUQt9mio137xeeP+lu7ulb+A1RvVcnDmoJhxH//CvZtQ//WPtl2+2waut7bj78DcUCUJMBVRl9RGMEfDKU/XjygvmLK+hGE4j4183hk3jCcfXjamNStOBynnb8h/E+bfSFQnzB3BPE48krp/5c/bhqSIzGb73a3sWzMFH/WX1zC7nD5P6HP/AENynn2sQU9XscM3aW5Kdi8b9v+6R/EXABBNhK4KijSrZygHKdUQIg/kH8s5/AUbtpFOqP4dIfWvyXhvrZR6drlIWlKTLENv7aMBXHDsXhCyU+P3/F2POP17o5fDIqvt3onkMr/Dxphv6Owz1bk4N8B4irWUXW+93jQ4XxEhH3s0M+Fv/2YXumGBnA48lzjb4JCJ5QKuKoK4fRurqUIPe1k8eTKw0ol3oVNcVwVaVqsmmbyuMIUpzZgyT9fnv+sfi3j41qUpECxIIfeyXwpUVZhRVZGUh8imNQWRxdFWLC57lAu/3T4p9LyJJ1Uw73bFMBWiqMybnZ7UazDwcUJKAi9i3XZ8hBnhefvzou/wAD6D/pdTny72g77sYPQzmJKDIfWjq7YBx592ntzUzRVTK+0KxrNBUo0OJkVu3mpsf7/VAuh0/mtCPxj6MG4MH6hmd3sl6GpRoSiv49yUzxj6/X3t1TU7HiMrQoweWZKoKTjgSefyJAdKnCvoY0ZHBIP6bbPw5VsPbrliUF+S8IqTVA/BYWAFjw0EXGF3Rek/VIlOLdyPgtbDz1VjxfLIv9B+Kw8cNQMs9XXizjOXxS6aD2XbvUweXFZB73FvLFMhEfCVfsT6GgiD2fKcf+Edcd88N3pjRyiTC9Ttdoqrieiea8qP0XG4umBB4ZQ/Te8WvRUIalXvFxCy4Ls9S0kfeMaCIjoWwJbfGg1mDF/6ju3vqEhZbkb8gHe3VnoSxayhfLktLRTM1Tlxq7VW96vEy3fzQNVByPuhE5ajbrG+4crq+F0JQSCxbwcnfS4exk2kxf08bTLSoUYdy61n9EgSrEuFX7W1R61Su6penu/km3NDTfQTm5PB0sFF4otDxHKFpTo3k8uWbs942dX0d1caGw0G7/9LIzvnjhUiPPdsZCt/jvqD3jZiClcKEqFsn4Ylmu5aeNnV/HyiS4xeIZJdS3JE6iWQmKKrMl0B4KwXv+PzeSArEvx/fLrZmop+LFFmaoCuJi0UJ6kRMtpOOqPIYxB79C/+J4PLl2dk/0weA7dBUHX2RoNzc8u6M6SQzRO/Vhd9b54PtfPo6oSSnf/XDH+3K8HM9AYd8Q/7TCnj3/+7bP4IzgDhBgGYGjjipZVnwozlknAOKf/dL3rLfRr7f/qN3017v98+M0FUaXaRit2ONPR03WZ4V5OPHZPWrPojYLCAlt3eicfciQGFr8R1Ou/voSNAbF4t/RVYEX57FTAG0JvsBHCexrJ34ehQ+Q7/EGRykzxD+f1Oo6nc1WZ5N1oKIg2R+kMNhmkhAo8xoGOgZm6V0D2EMBL+kHi38On4ymnBdsnUUirjyr7Y59bLQ8VRKqIJlXlKq2gWYrZUx9oZBP7luuU+UfqpX6xMmKO1eMRObzCbXkb3qkdRdNiuQZtPp9r07AJ6MpT/Wlt8jtn3aspcX/4748nD5WULebk7ACYer2YPFPe/nKChbQuv29OjwBsfbLdncekvEH7F1nin+sBNbe3Su6inpLLhFXQgmbh6YsLKVe/T6vI4KaCiUL983L543sLyku7+rOd2q+xCc4/eXF+nnzQbPYvy6N5ymwGwXNCl+sf3jfWxCjHv2T2kkReBinUFBR59548noXuf1Tn/Ul5BzOlHyhDCv7r3IUR+1L3GhZ2F8iQlMM1OaLzXljFOGbMcEbQGJikLIKMH5z3hjNkzEVI2a7urOAw9phv/S1NzP5V2VlvjKiKQYkgKNR00JzPf/rUHbu21YDWlRIwoVi3NJw68KbBZCWzkOh7+MpF3Tc0pAOp7xacHZJN9BUyOsHiAau5XvGdN+80ttHar4kFJaYS76Af3v2/M88vlmfQ3k/UWvvVEZ4TgfPlKWVommIgA/dYplUxz4gjwwVZ09LOKT4x04cuEW92ti6MztVV5Lp80FgiP9jGHPwK/QvDtcakzOXiFOPommXgL08+1Y6nvt4OliYon62/OtWV1rz0Nanp4OFKGDBzu5UFZqRoY+c2Ff8M0mi+CYUyX3zgptAgE0EjjqqZFPZoSwsIADiH8Q/+wkctZsWd2V/IZg/dRyAuCt73y7AF8dudKK+OFcWn56mQa7yHUzxTzntc4mEnCbfnv/PupSx8kwf9ccQ/ySODlBPpYDFMHb7l14bdoxOlGWgqN0+8W/RiKkwcn4xP6rNz4tPUeJPXGp61GUq3l6Qnf7nvyD+xdEGoz8EgEGT6hf/KOgAWh9mTFik1CFX//aWkvik9Ph0akMBtZ//APHPv4p2MdhHrFlCTfUw8npI5Pm2NtjHAgsSfaFAM+gPH2DRhCrXZ8inwH/flkCvk695nrfoFvF42jdef/vIUI0W5Oeak/Coev3D+0mDVpFSeL0HrfbjJccAMUy7+NI6kz5vLFj808f+JWQHin97JhL/PJ481PF7hxP/aUxtEEAArwmv/bIdnJdvs/Ev2yO1mqzccvzJyM+lZSE92ZFCLZ6/eqjH4h8teFLnq9HS9L5LR6eQmaeOjwkUxtgqLhFXOIy8o59Mt+dmFuQWosX2UOJ/Lcgw6f+jgqjvVxZmqQMqxSf+HzRjL27jcySGzVlRWOWuvV1oVJV9Nj49LWC5OICt5CoK2H5I8R/MnGnnvtcBxociHBdLMluarzH7p0WYLW1f8b/5oDmKIDGBlXljRjraoo/3MoTCcrDbP/b8X/F4H/Tl5ZlR0HvsneETz0+Gcv0NLCu3PC1FForq8cQ//hHJ1bYu59M7LzwrVOSIyXp5QFUew5hDvuLjz5hkOZL4950/8timG/odNa1Labq7f24u2qr7PuDAfkxcIcS/7yhKun2qOOwfUez7C4Kb54rAUUeV5woOFDbyCYD4h/+o2E/gqN008vPfKg2I+cf8MYv7lYKt0lDHAYguo4V620R3FlomlWFXfyz+sXRv1aH4/Fjf4oB/n3Up5RQQWkiTZAbygTc3o4B/IkGt3j1n722M40kVDXfwLECw+Pd5y6NTAJEbP4+bGpeZF5+QFBXCTh5PntNOuf3jKYYrBep2Z6O5KVngX/lv3eeov1A2y6+g0wEdo9PaLDQxEatA9jNX/vHWAOQmXYxmSdqqfIcXpJZPOUYnqqtsFjeKEYDH2Wj/QlBBCGq6ga6gb8A/dKx+7PC8sfPr/LwHe31jb/a1X7YXFv/AvvR43IyPLuPx5HhdHUdEO1nx71s/9wukI7n9Yz9tPJ1heY42mQ+oDzqODssSWoyJ/4FijzHd/il/YxREk38lO6NYl5GTJvBvc8DHHyAF1UcpdndBgDSlfSJejCP3fi4RJyvQ5TCmD55T8c8ITrp6aGVu/olBoex4jHIfUKPuLgUHPmCu/FOO37TNo7o9hgVwY5aFbnW4IMwT4EOJf59/+8flplj0i+DFFl5Tl6WlyGjFOEnFTWTqLrS87xf/Kk6g2z/eWrKxaEq6TO3b99dvKDuZNtPXhyd8GPEvoiLGMd3+cVXizSx458jqzoJzaIcObxEKyxfFf8wl28TbT6/nb/c98wUORG4XeJeE/1gNiVx3raA4LjawxTKp+nxAqJZwyJV/Hk8en1Geo0zEGOXZKJLF6nSVwO/2j6vyGMYc8pVgJ//gO3QVB1/4dhK9WXv4w6dlygVJ0f7T+r/X7i36zr9gNkK/+EcxAvBRArRTQED7DM4I7gABlhE46qiSZcWH4px1AiD+2S99z3ob/Xr7j9FNC8tT0M7/fmVg7rGxYpdK4CkXlqcEfuWXoDhenWN0uklbmlPa02Ybs7jnbDaDQh6Pz5NzOPvLiypLDM6O3lnH6LROiTbwyyvQ8rjV3HGtIC/moi/af9AqOingFVX2oaP+9Hpbox0d9ddUJMeb//HyeLD4R1tb07otOLReQXlBnRtvoRdRcfX2tzPZF/CvtKSytGUcrds3q4TIOx0F/HcM9JYUF8ui9vx2Qon/JG58hh7FMmxv02aqWhtsY+3OOftwb3FGuoRHbWcYG62pqExLlASIfxEV6aDHNcfcgLBvQQLEf/j5h2oJ+D72uqe3f+PjstEmbSoCnIpDiv+Bwmtt7Px629FRa178/p9vlzzelX9Olmannqz4F/hPAts3CB+zFMyVfy4RpzL+hMLyv3xk0vd0zbxD14u2ZF6glGKmQC/J+vKa3WAGF0yhtqlvvH5ua7G2uFAEwaeuClr8r/y4fddpb+heXNj2Ymf7YGkqEdpm3no3fkax1nAoRByDMFpsnnr9CQf8a+1dWfJ4/7XizuEnVU6h7QBP7nSj8G//fLuwjeLPmcquxV+hVtR/2Z60O26kS0MZhk9Q27csdKkDjAwl/rlE3PV+FMtg+clkQx2KOYe2o1Ph+rBnx/LC7eZ6jfw/P3tcB4grHPBv/cP7mWF7oz/g30gZmrA4jJ20wcyLAONRjiEIH0b8CxgB//qN1pY+FJFx7e1CpRzpRg6fxKEZ8E/gusB3HMO+WOg9/3vc/qefjtx+UJ2DUsOh6bGHPx0HQfQ/JW0v/tjw7N6/Za9tnL61SsUCSIpmqtkAqr6JAH9LwAH/Xq28nGCcLzjsbsAzLNgJBUeXXP9puaelU1tjMlGhKx+a0A4vZlUm/Lf6qMYc0n46o30D/jHrN9R1OhVhhJ6mwZMOmx604V/A3/MDF1zOMz5HAR0fTzrrS5QHkAyVF9wHAqwhcIxRJWvKDgVhAQEQ/3sEDAtqFIoQTOB43bTwepJgq1S0UizuV4rq0qIMmWKXSrRSLFpRC68H7igOyJRMbW/qm+0Znja0NyXHZOV2zDjcs61VWTxuakbNsNk5ZxsaqdbkZlShsHY12NVfqqujxHynRZvgP+ovWPxz+KRAVlFlRofwdd8c0VXlosh5F0uqh+dsnUX4AL8At398rGBCtqnRQR31NzRSW4OO7kMHX4Wwk3miXvfNz8/zr6qKOqa63XNdg12Z1NGDdMFDif9EHimM0VSZ0YGFFkeXKjUpuWzY4p6zWLQyrjylEl3bhka1mTEB4l9wSVVqv4/Ef28jPgfugILQZuCLUOU6Jf4BuQf8GXPJNvYBSX28vR/NxfhPmMOrbRw+mZZ3b3btD3Qi2n1nkUzd+N1vaJA9WHji4l9wOc938hx1/F4T4/g9ptlM8Y/1VX7zPH3U360xCz5XL0AAMFNADZWR10xvdT11rOCoDik9Hk+eqbvrS/DN1i1XAz6JEJd3fri9eZI66m9zzdmMzk4LlqbIiyS7d/DJzpLHu/Hu/aP7viP9KO8S3xGA6Ki/O777ZKx5kDrabenlo4a8zGuWn5Y83qV5U+qV9OJedCjAyo/b/eUhDTugLHSpA4wMJf4RTyKv5OYPj16jEA/0+XDo95hkG1tGknVxvjvzf4cU/0i1xhkdM9RRfzu/Pn/2pLMcHRZ4MHPazn0vAozHz+xL+JDin0vEpVybcD3ZQc7w795/PzeJD9vDKeMGhgL1U3H78M19sdDiP2ADPzPgBXblwIED6dKJRPUd9GmIz7+vv47ioQS0WObKP8HZ0xKw+A/IdH3FnXURuVfQO1Bis3vxeZMbnt2lzbWRvuoEHtW1MqoymUce1RgUI/MQ9nP4JB1SNPioPxrFARc4UAIdzhP7X2x40Ib/YFxpJQvfvUVHJz4eRLFLYOX/ALDwFbsJHG9UyW4mULozRADEP4h/9hM4fjcdGys2ZIifFaGj/rZKUSBAQ0Yob/8z9LMHU88tAa5IHp9amBSPj4rMbpr/i45jFwlMAiY7IsEksAEIRDIByQWj+/WntbeP1NTBqNj14yljSiWSjQfbgMAZJXD8UaXfRfSMFhzMZgcBEP/sl77saKlfUwropr+GHrzLJgL4HPh/rT0yNRga/F7xGdxI6QZB/LOpsUFZwkAAnziw4dm9Z0zHB2quvfedxheG3CELIHA+CcCo8nzWO2tKDeI/Uka9rGlSEVgQ6KYjsFLApG9CgOCkX7POz61/ROeubXnm7o/eSA48pe+bGIYzBfH/DeFD1meUgC/0wNYjfd0rKnyGGm8BOKPFAbOBQOQTgFFl5NcRWHgAARD/IP7ZTwC66QO6APgKCAABIAAEgAAQAAJA4JAEYFR5SFDwWGQSAPHPfukbmS0vnFZBNx1O2pAXEAACQAAIAAEgAATYSgBGlWyt2XNSLhD/IP7ZTwC66XPSnUExgQAQAAJAAAgAASBwqgRgVHmqeCHx0yYA4p/90ve021Dkpw/ddOTXEVgIBIAAEAACQAAIAIHIJwCjysivI7DwAAIg/kH8s58AdNMHdAHwFRAAAkAACAABIAAEgMAhCcCo8pCg4LHIJADin/3SNzJbXjitgm46nLQhLyAABIAAEAACQAAIsJUAjCrZWrPnpFwg/kH8s58AdNPnpDuDYgIBIAAEgAAQAAJA4FQJwKjyVPFC4qdNAMQ/+6XvabehyE8fuulj15Hkb3rnB+/qznfl/Ag6Df7YxYEXgQAQAAJAAAgAASDwNQRgVPk19ODdb04AxD+If/YTCH83nWf+ecOzO1UVp3T8vOnxTjZEn+pPPSF74dlvy41JJ5OL5Kp5/N3ulA6pfeGFwhv2ccPNxmTekdsJ+R9G5wfv+oo77/+ax6iLDO6eREI9EJvd63qys+Lxrvy4PT1YnbBf1gJpvfX2m2fb3o137x/dd+bGI2ulcTOPd7ybns+f9SVb8OsEkae2rSx6vKsfl5tifdCkiu+WPN4X4+VxSnSxPFN+qlUGiQMBIAAEgAAQAAJnkUD4R5VnkRLYHLEEQPzvUSMRW09g2NcQCH83rWj/aWPn15FyMsd/8TX2H/wul4grcv6++vHExH+C+tmKx4vF/8FZH/yt5G/6wXef1pdsaf/HdxEwg7DvA9E8o/v1p/UP7x/c/X56+Y8Nz+7DzryAjESXKizPP214dp8+eDIx/9umx7t8Vy8lSCzgV14+svaN409XsyaK2PMbF0uMA8t/bL79uLRX/MekzCx6vE/cBfHye4se71OXOiBT+BMIAAEgAASAABAAAuEfVQJzIHCCBED87xEGJ0gWkoocAuHvptOrXq1/eD9QQGZoN6kLMf9KdtP8X6sfV7tujEyt/bE8UyXgk8Ko6o6pjWfb3s23H588ul2ZJsXQouXm3kfvlqn7C99PauQ+l3uhoELv3njyenfDs/vsxVy9KkF4odD4/BO91v10sDAAe54ZuR7MNpRqB1FGK2+23G1FAj5q9kJBRdOUP7WXT0wlKRw+mX/zA50a1u3Y7b/iSlbd/b/wjAbOAq+Qby6ipfV9CxL1n9X2tU+b86ak/6q/ufVpY9Ek3avD930grfTVJrUCL+CTMUTvrR3v+oY7Z6/LQFI+mp54PlMVRZAEkVfQZiqvuBZFkPHU/SfuggAIzD9jMu/dezxaGq+zrn3as/IfPflwx/u4L0+WMPmYumC+BddAAAgAASAABIAAEODwyfCPKgE7EDhBAiD+Qfyzn0D4u+kY5cTYvfuV6dFx/gv+lWwsnp+/fHtvfNauzxdeKGxf+GP9w/sJR4dONz37+tP6+oxKSIr/gTTz2i/bY8bOuq6VJY93hRLYgst5zQ/QSvjj26Otlvnv3nrX3i83JSTmXJuYeu17viQ/NaB3yLL8tOnxLm1s3XUPN5oXH+94Vz+utqZGE5x07a3fNzy7398y6+rv3n3rXXu7UCWVyLKMPQ/+2PR4H4+ayyuuxTL2/KdXfZblyN2g78OGZ/eeMT1UQQSX87TjP4z3aaMvFOILPOlAW7jPA0Rcce/vaKNEvYzDJ8V/r7CufXr12/O6qD0RB/JvfkDTEJqMzIquhh6HrkSJU8YTB8+fvbi/urux8+vCk8/zKXSmXCKOTpkp/sUCve3uP3vKk0Uxvgv6FbgAAkAACAABIAAEgAAmEP5RJZAHAidIAMQ/+6XvCTaXM5pUJHTTWPwjUe1fnJdS7uUbi6YEkYwvluVa0E6BsTIJX6RWN5qqqm9ICTLqv+sH331a3Vko50uwX/r6ihvvnE8rv+uaeWwqSRH9T4lpGS1i77vnP6cdif+VeaOUIHk8eeXUnxue3cl6Gf9KdnatqbK5ViFC92tm0ar+gJrEmwg2/W7/zIB/EqENrcOvT+RwkSxHMxSe57VSSaiCHKO1cIk4DWXhWJkv4oDx+Sc8W0GnxiXidJN/IZ//5Y/YSQFNYbgqoggyq3Zz0+Pd2Pl1/sE/7yyhKYz19QmVcJ/fOJ5WYIp/On24AAJAAAgAASAABIBAKAKRMKoMZRvcBwJfJADifx9h8EVq8MDZIhAJ3TS98j+i9jU5vExN+9jji4emLIKTXmBZnFv/uPqTL3Ddq9+e66Il+PlX39UFrJ8zxT+XiCu0rdxfXL+/uH533qnioKADaMahz7dtHnv1325O4hJxycXT0//0LL3d9UnonV9HDhT//CvZtQ//WPt1y54ZhUPr4TmFUAU5RiM5jPjn8eTa2b+QO8O8SREjS06bQG4L75drpRKJXFdS2VxEuT+I/1Hds/QJz2gEWwLiP5gJ3AECQAAIAAEgAAS+SCASRpVfNBIeAAKhCID4B/HPfgKR0E1j8Y/3/+Nfo08zPxnKzS3P8n/SUmQpVLy9lX/d1uQVKBJtI++Q3/vhxb9uEgnjTQ86n0/NlwSI/4JutKX/dnNSDNE789a7/tOySXMjOUWtx/v5DxT/HD6ZXvVqxeN90JeHjzOYrJdz+GSogoTqdA6+X9SHLJwN7fbPJeJKnJ+3BuBgCmu/bPfmiZkp83hy7CCwb+RCEP9MVnANBIAAEAACQAAIHJJAJIwqD2kqPAYEggmA+Ge/9A2u9fN2JxK66WDxj73l118NYjd+iVx3raA4LpbE+hzvDpBE997Z8WLx73veH/1OoV2Yffav4XqFf+V/1ZC4z1F/ocR/QvbCiseLNh3wSNGlCtsyWiQfKf/s9o933TPd/jl8MuaSbeLtp9fzt/ueoc0IumjqgD1q/0JwQY7XzFLKllYYAf/u7KDDAjO4JFeSnZVbnpmexuGTydQcxJOJcgEfGW9HoftWW1MSb/StfP/Dj8M6tKtfdKmiZwmFQujNEzPfxVaB+D9e7cBbQAAIAAEgAATOOYFIGFWe8yqA4n8NARD/IP7ZTyASuulg8S/6n5K2FyiA3/1b9trG6Vur1Bb6pOgMLdq4vvlyrkHX5Vj88dk/0bl3o4ZK+VUUIBAF/Jt01lsfzr3+tPZ+uTEtWnA5z0ide4fulygDuoNQ4j8mEcW0X//3Wm+9oXnyzfcvPZse7/fT7VnxEjz7sLxwu7leI/9PPY72X85HOp/gpOvu/ok9C5bv1eFT9EIVJMCSQ/4p5tT3r6Ei3/Uf9XevLYvD9x3jh48MwM+gvf13vsdH/a0s2pJ5ZGrR0pLHu/Hz9r1bT6eX0Z5/fB8fAYjfFaQYrX3j3d3zd9961z+8n3GNWfvGtTmxhzQPHgMCQAAIAAEgAATOM4FIGFWeZ/5Q9q8kAOKf/dL3K5sIC16PhG46WPyj1WlRfcftN8+2vejovuff119PQCfwXS2pvf0OBfnfXBuuy1cov1vY9r788VGVVCKMqm6ijwZcuF+vQs8jx/uShe/eovMCHw8Gnk4fSvyjUZyregAAIABJREFUyALdPyxsI6l8x9WQEmseXftj4937ATVJJtnGltEsw+J8d+b/3iP+OXwSr8xv7Pw6Si2wYwP2LcixWw6ZZBt8srPi8b7a2Brv0+IDApkCnsMnJXFG+xw6DXHj3fu5B87CODQ3wePJlfUP7yx/XPF4V37cnp02Z8cgPsx34/Of4ckL5r/YzeHYBsOLQAAIAAEgAASAwDkhEAmjynOCGop5GgRA/IP4Zz8B6KZPo++ANIEAEAACQAAIAAEgcN4IwKjyvNU4y8oL4p/90pdlTfYYxYFu+hjQ4BUgAASAABAAAkAACACBAAIwqgwAAn+eLQIg/kH8s58AdNNnq1cCa4EAEAACQAAIAAEgEJkEYFQZmfUCVh2SAIh/9kvfQzYFFj8G3TSLKxeKBgSAABAAAkAACACBsBGAUWXYUENGp0EAxD+If/YTgG76NPoOSBMIAAEgAASAABAAAueNAIwqz1uNs6y8IP7ZL31Z1mSPURzopo8BDV4BAkAACAABIAAEgAAQCCAAo8oAIPDn2SIA4h/EP/sJQDd9tnolsBYIAAEgAASAABAAApFJAEaVkVkvYNUhCYD4Z7/0PWRTYPFj0E2zuHKhaEAACAABIAAEgAAQCBsBGFWGDTVkdBoEQPyD+Gc/AeimT6PvgDSBABAAAkAACAABIHDeCMCo8rzVOMvKC+Kf/dKXZU32GMWBbvoY0OAVIAAEgAAQAAJAAAgAgQACMKoMAAJ/ni0CIP5B/LOfAHTTZ6tXAmuBABAAAkAACAABIBCZBGBUGZn1AlYdkgCIf/ZL30M2BRY/Bt00iysXigYEgAAQAAJAAAgAgbARgFFl2FBDRqdBAMQ/iH/2E4Bu+jT6DkgTCAABIAAEgAAQAALnjQCMKs9bjbOsvCD+2S99WdZkj1Ec6KaPAQ1eAQJAAAgAASAABIAAEAggAKPKACDw59kiAOIfxD/7CXyTblqkbC9OlfCvKG803BDyfZCjpAa9e6gwXsLhk1wiISG3u801opajPzl8kh+tLu10tXW7DJaOdFm460Uk0TfZtBIiMF+mzdjO4Dth6PXIvMG2WsUpZcTjpuaYXHRFHDIXHjc1u3OgwF99h3zrgMcIjkJRO9hqHWi2OpuaSiQEGXzngNfhKyAABIAAEAACQOC0CXyTUeVpFwrSPz8EQPwHSp3zU/fnp6TfpJuOrzIq+KRApC0pT8Oo+VxloXmgpduJxX9sbndjXaW6y4k1J5dISG921+QlcvhkTFp3u7GInjIIT03tK/4DbEYzFHtLER7bOHwyAsX/iZc9KtnaaVWLCZLHk+cYp6ozo4PvnHimkCAQAAJAAAgAASBweALfZFR5ePPgSSBwMAEQ/yD+2U8gzN00X1h0rdrSaB/QVRu1ra5WY1teRhyXkCWWDDYU5uZ0+MQ/TyhFS8dmn/gXXCkodXYpKBcA4cWSMqc51e8vwOGTgoQqXadT3z7Q0mUvSI0jOIrcLletrrNK72iyDpQp0ZSBQFZRST3TZHYUpMbhxKs1Rl2jrcHq1Kr2eQZNNCS1N9mdjQZHZZWjZe/Kf7DNwXdw/8IlZAn5PU3WAX2ns6W9SR5FEnxVvn6g2dTXZB3QFWUQfHSnyOBstTj1tq5ceSyXkMVlWZusA42dTr25JYUkhRdLKvq7SrWdOn0feiZBwiUSEktvGuwDtUZzWZOzrVZBcBSZDQOtnWhtvKG+UMzwUyDlhgars7lzoMWM3qWL1tzhqKywYKeGAIx054hX/mt1lrr2AUOvs0yZGJVoMnaW4PSjkq3GzhJ6LkaUaOro7Cg3ObV5CuwvEJVsNVs6Shpt1e1OfadWJiCjkq0mYxFB+Xdkto5XKpCMD3iGx01Nq7rZShGob74hIUhxTHtLly5WSPIIRZ7JpUmVBN+hbYYLIAAEgAAQAAJAIPwEwjyqDH8BIUd2EwDxz37py+4WfJjShb+bFl4uKm7M5/DJ2GJjnhQJUbFMX2cqI7nyTL/45/BJpvgXXdbWDLQl8lCDFFxSFd3sU4l8jRNL/TJFLIdPRsW3t9gbZZxUpfmOXi3n8EmRRK/v1SdcUeSZfPMIIom+2d4o48pzOmaaiqhn4tuN1rLoq4HPxF3OKrAjkcnhk9K8QVvXHrf/YJuD72D+gosFxUP2TDEyODqrIi1RkqRx46wFVwrUN/vyJJKkinGDJhWhSDDUNORLeNra/i4F9Ur8teGOeqXwYkm52+d7L1MPt1YphEJdHTUJwuPJs/QzbbUKcbQBz1DwePL4omKZwIeIS8ikqhoFpfnJjJvmJhVxFRcNzTIkady2Lm3MVTRjwsQo9c8d8LiIJzYvOqYd8bykLOzpy5NKuIRMXu/WKWPoliaOM3UMmRViVH1Y/IsTrKah9lRK6qe3TNUXyILF/77PGK1l9Dp/TU4Ml0hI1bot/SNtfdNt9SohlWDAHdoMuAACQAAIAAEgAATCTyD8o8rwlxFyZDEBEP8+8cDiOoaihb+bFkbVlpYmI91Ya0zlkQQvq6DTkS2V8HiHFf/qm305fvEvvFiidfmdAi4Xlbns2dyUHGplmMMnhdQd5UW1zjVt7Bxo7kTL7/r+jjReUla7T9gjl36HTnYh8JmMS2o6ZZHUp6txgwm2OfgO3bS4REJKtbu9q0tTWpqUiDwa8trvmLv7m7E9vU51ckpO51hZRjT9iijR1GlB0hfNX8S3t9m0sgtq5O9ATX/E5NzsaMhiPhNbgPb887nK69axNmPHjevXZFF7frzR8poqQ19dm62mfbK7rUjMgCaO8aVPFxZDy/L7VmAZjydBkNuFy57FJ2Xq4eayVPSkvSPZP8uAJi/iTEZrmZCau/ks/jvV2DVAph5uq1XsL/73PhOvcbfq0GwIh8oLvZVoarFo8cq/st2lzYwJvkMDhAsgAASAABAAAkAg/ATCP6oMfxkhRxYTAPG/Rz+wuKbPc9HC3E2LUmuqjK62NrO21tFiH6hsaMqSG1p6Xa0Wp8HiMg3Pmhw+v3Tmyr/gYpDbPyWDkbxn6FisWveIf0qsKi+qsWSlKxqtlre7NEloVR+L/4QLgc+ILpTRehh5mDPc/tFcwF6b8zNaA+5g73o6R2GMUlForO91lWekKjumKhWfpT5S118S/zEXA8W/OMFKTxBIryFRTQVKlImSi3IrHC03uzJJ3+8X+RcMOgvjkXOEOK3bYiyK2ls0PLlAF/Yw4l8o1NU6GlPk1qbaLLqMPvHfWUKEEP8Jxe4A8Z/VglCglX+/+MfPBIv/eI0bex9w+GQ8Vd7gO0xL4BoIAAEgAASAABAIM4EwjyrDXDrIjvUEQPyD+Gc/gfB309IKY46IFF4tU+uymZ3IASv/ewL+Zfa0txbQm8wD3P71Dh3T7R/F3sdu/5ZJnUrG4ZNEjEZdlssPEv+yq4q8vc8ILyuLkNs/0swy9XCA2z+2PMBmtFthr/8CypGvyim7jpfxqQVzubx0vKNeibb687Iya8plAjKpYry1SkFQbv+NrSUkoanyu/3L1MMdDVm+SAeMlf/Pbv/c1Jw25PYvkFXcUKEAir6pDWrDAp4fwXMfPJ5c0Thl6SwSXlZe70ObCEK5/esdugC3f7yNAvOM+//tnXlTW0e6xu83uP9MzdyamUxspKMNECDALGITmzCL2RECzCIhJBZJoIV9k4QhwcaJPNjxEi8T8GAwhCSO51p47EyVM1V4vtS91aelYyGQWGwUdHhSqpTcnKXfXzcv/XS//TZDjmPIM073DE7QBI1cO5KV//3if4rkaCC1MnzRplbQ6AAZIxdfKK8fXvCL/73XkFQCNOxfoCzq/aKlOCmpYNg8QBL+kVd3ke0D+0u4auALCIAACIAACIBA9AlEf1QZfRvxRh4TgPjnv/Tlcfc9omlRdtNEAbbrUxm5JN3YELRXPFg2CxiFUuM22easM0uDwy6Dw5AllDOJVYGj/kzZgTVtaqMkpcWf8M8ypM5MpmHqHVetrcZRg2OioSCQzG/Q1TPAJgXMT92/8p/CsEkBg64hWfGyzYYRl75/tFVrO/Cov/1S/8CSHO2YwT5Ndhyw2ftIwj9WOe9J+NfnMlmnjTZiApluKDTThH9d/SRH4H7xL2DSMxsn++3TuoGh+tYJU5uKZg00BR2GR/mQ3fINM/2O8au9/WplU9uIS6POSskdNIy4dANDjU1Wg00jY+QhGLn+IxQoaQLFjp4JjmecSJ6YY7fszYMQbuXfYrHUGJy6flcPm/BPJChW97n0Jltzp66+d06jIiv/IdcIhZkk4d8ASXlIkxeGHOyXsu+oP262gqs5voAACIAACIAACESTQJRHldE0De86DwQg/iH++U+Af26aSzV3HpzUyWwUMIrk3PoMBeneciWJpGACO/yP+EABk57T4W5jgyki30K2J5hJbv8Ilx3lmgi340cgAAIgAAIgAAJngQD/RpVngSrqEDUCEP+RxutRawa86FQJ8M9NQ/wfpcPIlX06u0s/OG2wWgrZgwCOche9RhRf32ydM+j3nCYY7vajCPujXBPu+SgHARAAARAAARA4IwT4N6o8I2BRjegQgPiH+Oc/Abjp6HgTvAUEQAAEQAAEQAAE+E0Ao0p+ty/vrYP457/05X0nPtRAuOlDEeECEAABEAABEAABEACBQwlgVHkoIlxwlglA/EP8858A3PRZ9kGoGwiAAAiAAAiAAAjECgGMKmOlpVDPAwlA/PNf+h7Y8OeqEG76XDU3jAUBEAABEAABEACBUyKAUeUpgcVjo0MA4h/in/8E4Kaj403wFhAAARAAARAAARDgNwGMKvndvry3DuKf/9KX9534UAPhpg9FhAtAAARAAARAAARAAAQOJYBR5aGIcMFZJgDxD/HPfwJw02fZB6FuIAACIAACIAACIBArBDCqjJWWQj0PJADxz3/pe2DDn6tCuOlz1dwwFgRAAARAAARAAAROiQBGlacEFo+NDgGIf4h//hOAm46ON8FbQAAEQAAEQAAEQIDfBDCq5Hf78t46iH/+S1/ed+JDDSyu0GTkluEDAiAAAiAAAiAAAiAAAh9DAOL/0IE3LjjLBCD+If75TwBu+iz7INQNBEAABEAABEAABGKFAEaVsdJSqOeBBCD++S99D2z4c1UIN32umhvGggAIgAAIgAAIgMApEcCo8pTA4rHRIQDxD/HPfwJw09HxJngLCIAACIAACIAACPCbAEaV/G5f3lsH8c9/6cv7TnyogXDThyLCBSAAAiAAAiAAAiAAAocSwKjyUES44CwTgPiH+Oc/Abjps+yDUDcQAAEQAAEQAAEQiBUCGFXGSkuhngcSgPjnv/Q9sOHPVSHc9LlqbhgLAiAAAiAAAiAAAqdEAKPKUwKLx0aHAMQ/xD//CcBNR8eb4C0gAAIgAAIgAAIgwG8CGFXyu315bx3EP/+lL+878aEGwk0figgXgAAIgAAIgAAIgAAIHEoAo8pDEeGCs0wA4h/in/8E4KbPsg9C3UAABEAABEAABEAgVghgVBkrLYV6HkgA4p//0vfAhj9XhSd308nJ8cYC6cMrYl+jeLtetlwRbyyIS04+V/RgLAiAAAiAAAiAAAiAACVw8lGlCKIDBH57AhD/v30bwJmeNoGTuWlJY7Z4u166ViMbL5a258qM+eTLWo10rVpSmXHadcbzQQAEQAAEQAAEQAAEzhqBk40qz5oVqM+5JQDxD/HPfwIncNOSygyxr1E2XhzqGpKTpW612NcI/R9K5gjz2eLPyusnvbZ5e5FULvmsVuPx2j2DeUe4cf+7xH9R147ecg41JTKfpgNLPq9qnjl5ffbX8LcqETCKAv0tp2extSBBKMws6b3l9Mw35Cf8VvXh2XuL+n7a8u3eHS3lmV0wBwRAAARA4IgETjCqPOKTcRkIRIEAxP+nUQ5RaCq84sQEju2mk5Ola9VStzrcG6VutXStOnL8v1CkzGmwdtkWBqe9TveSxTHSVF/2qZRquIp9fLksfdDq9jodLVxVqcx2zM3WZCZ+5PM/ofiXSFo6PV6LvlhysaHF4x12ffhYx2evtl1JlhzvV5uJy8vW6Cu11Sknmk2IzxocmB8vSyGIBIwiraiva2jR7vbapjxdppZM+fEq8zGcfxPxzzCllUPLN5/41n/a3fS9e7zydHpAky6MntUnI5ZeeP/RL6tdGaEzIyl5t1d8u89XbPtNSC229Y3NtlYqI7xR/Hmp7t5/nl5rjHAN/34UDib/LIVFIAAC55zAsUeVJ1rkOOeQYf7pEYD4P+vD09Nr+/Pz5OO6aZkxX7pWE0nbk9mBGpkxPxxDRqgq678+7PI6Z+dN5lFdv8syTdSpeaCGE9Xh7v1ty2NF/CewkxS6qnQq/p2eeaNpqNVgazNO9FHUPeWSaP25FTAK5dXr9mt+8Z+YYycTKLOeLqNT71gadnlt1vqotXv0xb/kYm3X7V+2fLubL1/dvfvk+p0fVl/sbvl2H93u3i+ef9vuHfx2AZNaNf2v9bfHE//BTwj3PYkZubmze67EfwSY4SihHARAAARilMBxR5UxaiaqzVcCEP8Q//wncFw3LVuuCAn4Z7JTmezUYC8gdatlyxXBJcHfU0on7W6vc8ySr/DjZRKrGh23nC6yfi5gFMn5fe22BbvbOzzp0elq6TI1Fd6DhtqcyuH+ca9taratKj8hXds+tGibWewb0CjE/qfJ0rXa/rnBabKwrDM00HL/7d0N+a1us3uqIjlRwKRfKh/UO/1L0DqDhi5BS/9MVssd40ZVpp483L1ktppy2dXpQ8U/iWhoGjaNLjndS2aHo64oixrOiNSlHTP9E/7y6oJLXHlZj8s6s2SbGNeWaDVhwv6FMvVl/TSZIplZ7DOb8tNT6O3hytMuzzjmPI3KRCr+6VYCekt8YneP22v3OApk8vS6a8Mur/5KRY3l+tC48ZJQHo5JSNh/uPcSMzsnqJl9NotamcpcVFUN3uJCD/rbijLrhrv6ndX5JDGkVEAiFOxzZuW+mQghk1eoHTONktkB+xiJVkhkoxWEwszsuuEettw2PqWtKaSzGNSWjsrCwrYZC2n62daafIZ9LLmlaYztM56u1iuVutCw/2Z1dd3AnHVmyTrqqM7z92RGqKIVcLqXrONTLVoSmSIUZuZ3XXe6l7prMuNEcrGwqnnU63BN1WSEzXOZq3225tvdXL9Tn+lvNWlS9+TK++f/u21RxceJ5PHp3YM3fnz0ggQFPFp9MtxSJGarXWr5x5Zvd6lH077w4+qL3bVnTwylyiLN/Tvfv9t8+WpxtDaekYsuFOru/Wf97fpgpXnywc7azrtHDxYqk1R1k5uPXuyubW0MNwZ6IFNa5Xj4zfq7Td+71ZUntgYyN/fh9ss6h/fl6ovdlWdPzOXZkj9X9D5+v+UjkxRbvt1vJ/f8LkdY+Q8O+xcLKhqnv7vz/bst3+6zze0vXZ1ZUnla2aO1wGOf/fK4JWFPvIzoQmG59eEttpIrz56Od5RRFExcblnH8s3Vt2u+3bUfXix96ShJIzfK/7t3+vXu8+fz2tLFpY1ft35+673WkSVtHfS+fPbi3Xd/9zbnkrAF/2U/fN1V9xV5yM67+98uXMnyv/oQ/p11Ggrzx223qcpfn08Hk/5W4v8gAAIgwBsCxx1V8sZwGMIPAhD//Je+/OipH2PFcd20eLsueFWfyU4l2f59jcH6X2bMF2/XH1gr/0Zr95KuKj34AmGiUsaqO1mCscftdU6MVFfUlRu+GHZ5TVfz4kRyWarZ7PaOjM3pjLqK5km6emwaGqm/0tPuuEX0WBWrx6Sazgmvc3q8rqK6qG7Y7Paae8kqt//20YUep6OxvTVbLk+rmbG7vXbnUF1Na7XORaLQ7V2pjH+/vXN2vn/IUV/Z1mRZHHZ5Bw3ljEgeWfwLGEV20zWne8loaiks1WrMN4kszEwUCjPzDEQxmro1JSVmw4zXMUO0t4BJz+0iERBWW39FhV5rIfMd+/f8MxdVZZabTs98u6ZOpe7VTZCJiSyxPFy5gFHkdd60exwkdwAb9h8s/iWf1bbOeO3XxksTE9Or3cMur2VszjRgqdNWJzLhmQTt+Q/3XiYur7TvJjHTqKuotxIz3SOlyWlpud1XR7yOOU9LbV1OZhrX6AImPa3AbnZ7bUOa/Sv/afVup3upp7u1RN1U3u62u70mLekGdOZo0GoqKdW2DJId+5qCpDiRnNpiHZ/Vd7WW1Q33ur32a1MVrERMKhojk00TIw21zVf002SnSfCef/fS4PBUS5O/D9hnzXkyuVCgLDKRpukzm9imIX2gv6OYEcnF4pqWUdKCRclpmS2kubvrScUO/DBxue23/rPpe3dDvycLpkhRmCwjt8jE3TPr7zd33nzlnjF2f7X0/fvnr1/NaUlPVlnJ/vmVrY2FkZmhr3e2fLvbT7e//vZGj/Xe7Z93N96QuQPRhULy/J03j1afTHZfu7ZCFPuTv/1w84vpnonNNd/uxo/XK8WJAia1zPmPTd+7BzftzS3D0/d+pVMPH25f2/A4nJbZH9d8REuXXcgoujz/xffvN/75Yq53oLZsTxj/EcW/yvrTpu/d3YXp1jazwUWefHeyQqRobXX9SKYDHixoO7TBsQ8CJrWENXn1idfSc21u9dfNnTdz2kwBk6rq31rz7T5bvW/rddrmyaP+/t1UvkCe+Lvu6dckpOLB/VuWwb/e/nl3c+fNg++eL4zMOJdJtMXq1+3xTOAy37vHdxaaa/Ud8y+3fLtr93pTmCPw39z+yj3TZXl4d2d3/e16jzLh08I8sNugEARAAARil8BxR5WxaylqzksCEP8Hj2h52djn1qjjuukji/+6A5GKLhTXOG455jz1yj2LftzFopQqVUWTKp+IJVlSX6/b6xxqkjF+9e6Y6ssSy0UXiutYwd9RriAre6WTRJ/3kDQEqaygNWnzhJIUEaNU995yuEeKEgO3s6o7TiSXfF6lmfygD5m4vCqiJBc1BUk02R5bQ7KcSycjHOPdqYxf/HPr2NwXuudf8lktzYpXIE0RSlLiL5HZiv5OlVCYmVrWVFRVqRATwV9oJJK1OS/Bf/21KboZXhJ/tfsg8U+nLUj2PjF5bHq12+lZbClOCldOF9udw6TCIeJfIMrMLCfzJg52nZ8KZk57R2ISJP7DvVeaxjYW+944kVxR1NdssFarUmmLc2H/tKHl+WNk34dn0WjyB1xwHYDmBcjrJPMdbZdzGBFZb09WFiQlkZXzhNz64oq6bDZmJO3yDJkbYicF/LYM1MgYAjm/m0xDdKiTuMkm2lVEF9Wk5wSJ/2GX19hAxDbXBwhbtuMRSmw4iYTRdJB8h2TKJk4kT8oaNLu9Q9bpXnbmIkIeBNnvm2yrREKPlMqCDeS+q65ucRo1TiS/VH5/xbe79ZBsp6er6M+Wu+MZeYrIfTMgPoXCzOYv/k2CAjoUVL1v+Xa/7s0lMyANK1usei8SyGV/arVvv19/u268lJD4u+7Jl+/Xd+43JKSIZIqM3NsPfbvfumq425fNKtLV/9Q6xt7SlZEg/WOtefX9ccP+uZV/AZPa4Pn389evPO2FYsI2N6e0JiON/LamXSGV3B/2n/i77qnA20lD59kmr9+dMtcl/U/H2Pb7jTfb1mwSKEGjEjZ33szW+FX9xpttR0G8gEm9MvcvAvO6ViySpyQsLO+QiYyiwBwBnS4h7uIPltmX7zd8j6+mJB7Kn84RUOabvncLHYpPC5PrCfgCAiAAAvwgcNxRJT+shhW8IQDxD/HPfwLHddMfGfZ/qPhnxMU0dJyE/bOZ6miCvYDmrJcxZGG2xPxhBiEh007W8E1VDLvozWly/+2e+UZlYuB2fwJ8maS72+0lUwmBvGvKq2SlV9+QGci071Cxy7kSRtPu8TqmSFS8f+V/dt5kne5hP0bLHNHSbMI/mYRE1Ie+3VovEcmTCozttgXrDAlip6K3tSCBqn37bJ+SrUO4hH9JRUQnh3yM9cpw5ZKLDa0zXttAFSPyi/+Qe8kivJrsO6CCub/Nv3AdiUmQ+A/3XlpO3xv8N+BA8S/Oams1jvaMLjk9i3ptiYRJUTZO6gen9YPTXRbdJaFfYNPEEIYBy5XyIhmba1CUWt/U6zIHSJIF+TYiXKktdCIgTiRXNpKYEd0VBZ0ncszN1meQyaYIe/5pxMSwy9tdkxliS0inFTDpeVfJ8x3ucXX6wXNYlID0j7URxD9VyJx0jxPJExPIfviNl19XXfSLf5o5nwaub7z8uvYCeV3Z2Ost365Xn0HV+/PXr8ZrpSQsgk3Ft3WvN57xi2SqeJOS3Ms7/hh+Lph/616vnA0ceP761UQNcXRUV1OZ/ZHiP04kzy6//5CN8N98+cp759aQvp7OkoQT/ykiUsmNH69XXdzjdf3lLBO2BVNrp4nIXzar6Mr/+s79RhHBQjdK0ImMpL/YvmSfpo7zzxGs79yuYS/jZmQc+UkNHjKNQqdOIvDnmN/QZ3xamMG/KfgOAiAAAjwgcNxRJQ9Mhgl8IgDxv2cQxqemhS0cgeO6aTbhX8Rk/uxxAMFbA7h3xbGruMXGm0Ri7Q37l6SXZ2VmkMj5diKr+gy1aRm5ablkiXWP+Lf6xT9Z0p/zUEW3X/z3tFakZRf7P8qCRIl/5d/J3k4WOVmhvl/8d9dw4t9/zN4B4j9Mtn//M2ccJblFH96eniGRtHTNkJ0INfkFyYricnK8HDlqbr/4P3DPPxWizsGWzOwPj02Rp4Qrp6vWJi0J1Q5J+NdqsDa2NnOx9wHB7A/qjsRkn/jfX5/kQhJ/cUTxT7uE+EJ5wyiNv0gu0PtTA3AHHErSq0o11o5+Mr1CuoReLfmchI04PfMd1SWKtNycerJtYa/499uS2fQR4r82PbL4pxsf2Emc+ZYispod7sPE5bZ8tUde0isTctuvFCpPIP6pMC63h4r/iXISWeAX/3/Vi4OUvEUVT/Xqxs/3u9QNqpJG+inIzeHmDugIY+ZLAAAJhUlEQVTtn1b8Ey2d090+vDx/+yUJZ/DtPrnWEs+EXfn3V/IY4j8nIP5vB4t/quQTL1rmXpOphGDxTy+T/b5pcIOEEhxL/FPmnPj/VDDD9RyUgwAIgECMEjjuqDJGzUS1+Uqg+jj//RdfKcAufhM4tpumyfzHi8Nhkd24HPk4ALoH2zE5lJ/iT4HGJFZpaTB2Yd5lMxt+ryKZupLz2N3arNj2L91HFv+BsH+LnmzPFjCKhKzyDGUut+efE/+hIe5sXjo2Gj85sPJ/bPEfCOMn2+nJEmWCKiOvKEWRQucm6OYFkYDKV1b8020CgbB/KZuKb/+ef2q4Y6SLLpxKFOpLeQUJCYGNDPvKk4rG6L4ATvwH7/kPbrUQ8R+JSZD4j1wfut2AtF2JXTc40VKeFbzyz8TllfRfH5rza2bRRXXDKEkHQCdxuLoJGIU4TZWhzKUZ+8RSEnXvGDdmf0aiMGzzdhXbuDRYI7L43x/2XzsaGvZPs/f5t0uQeZl9Yf/s0Yk07F/AKC5dJtki+tpNnRNexyTJEcDVfP+X7IYVspF++442Y0/CPxK43pAaEnaewebD23xo5sL+Q1b+Tyb+/ZHqb1d1yeTXSphccbmmISfbv2uArPyzcwcHiX+yayDEqKPs+RcwqcnZNYVVJTRDXoLMMv/zexqET1f+V69rQx4bqOQ6PVxQljNy7ZvnN12dqX8gYf90vz0NT7A+JpkRJgJh/+s7RxL/G/98YS8lGwcSJWxQgI+kGzwi/ziRnBP/gXp+GpghEPBPEAABEIh1AsceVYafQI91FKh/LBI4jvavhviPNAKOxeY/J3U+gZuWVGaIfY0hOf8JruRkmUst9jVKKvekNwshycTl0Wxq9Ki/9j42jz171J9cSHZrk2Vek6ZA3dNpm+ub9jpmRqrzc+UKsoWeqnehgN3MHxCNH1b+RXIqFJ2u2VZNYymb+I2m8QueO6Dh3zThn81pqa5qrjZcI8n2hjQpgYR/H9af94f9h1n5FzCKzBaSP3/QalKXa5ssi07PfIta4c8a4JpqLK27rJ82ORfITnVdbbo8LX9vwr/Baa99foQk6vusVuPx0jowF1WVQ2QHe09na2lFT9cIm0gvJTFceVbLF/bAhELInv+QhggR/wJGEZZJkPgP915/IkD3Uq9ed7nK2jPhj4pn4tgJHZLvsKVYlZ3GKmfnrEff7z/qj9taz1VPKFCW9t10zHk6NI2FxfWlbOJG60CNnI0UcHoWdZq6orphk40EBdhsxrzMtBBbuJV/Lkegc2Kksaq51jhtHSe5BlqKE4TCTHUvSRVpnRjX1DaXdxBJ75jqU4rIvpJiI2He32coq9S3mNlEhm0qRiSPT+wmuQzZdAA0+6A54rmJ4s9LtV/vOervET3qb7k3XehPOPf89avrM46uQMK/2QZy4gC3f57LV0+3A3BCNDjsP/LKv4BJrRwnZwesPljobB8evf8LzaUXYeVf/Hlp7+P3NGNfR+2emT5/fMEP2ze+/Na16P/M3JyrkCdydRZ/Xnp1+dfnr1/Nj1ubrpqu2r576Nt99leSYy+98D45/uD7x4P9xsKkD381aCI9kuPwyY2ermuuxyTh30IHSfin7v2J5Pl/esfcPTx0/SX5/tCWJfwQz3+UlX9ymMLjb8zdw2NsLsCV5W4u4d+h/DnmN/QZnxYm1+fxBQRAAAT4QeAEo0p+GA4r+EEA4v/DyIwfLQor9hM4mZsm+n+7TrpWLRsvlrbnxBsLZC61dK1aulYTWfnTCggFyqxyc5dtgaRedy9ZHCNN9WV0U7ckqV5rIQfsWZ1DamVGVsOM1e21WjWXjib+yQFyWVqtZYE9DmDe0KfLpqf0sYcFcCv/dANC9mXuqL/ZTl2DIp50+GDhTf55ZPFPnsnk5TQNGyfJ3n7ryLjmMjltTsCkZ9WN9U2Tw+07OyqS5fXa0SXnLElTz0jLa3vn7G5ycWNRdZ3jFs3DH1IHRlp+hT3qj5wgyB6hRzHuL6fTIlwegWOJ/0hMgsQ/yY0Xpj7BRwD2W8hRf7SeyYWDxhlyTmGPlqQ/zKzyY3fOzhv6DLmBkwuDOyd9Rf8EIUmObOxupQcxypV9utGl4ZlFY58uK0lV0k+OUejRqiKIf6FAme8//8/T3lxR3EZuaVMnBTJHzDYUNjVaFwJdzl9noURVfHWUHltoHRnX1pfIGDkjVF1hT15oLiCXcQcfRA7+F10orOxeXvybb5U9z+/xytPpAQ2X6D4xtdd5nT3qb+fN40cPBhrJIXyfVvyTqjKltWP+g/dWnj0d6yan6EUQ/3EieU7t/ds/7279/PbuZE1w0/jFPxvJz2UQoKkBOfFPzkFM6ehb2nzMHvUXfD6fRNzUe2dnzbf79Ic72pQ9GRNEFwq58wi5SrK5GHPL9Pe4o/6+nLPSWYNjhv3fN1Qu3lwhcwr3v/FUpPpffRT+weL/08IMBovvIAACIMADAicbVfLAcJjADwIQ/xD//CdwcjednCwz5sseVZGj/rbrSCJAY35cctgDz/nhFM6nFdxBBnkIzwOBWCMQMkdwPn+FYTUIgAAIRIfAyUeVsfbHJTo88ZYoE4D457/0jXKXOoOvg5s+g41ypqrESMvVbewBgVNG7nCEM1VDVAYEIhCA+I8ABz8CARAAgU9LAKPKT8sTT4sygWDx/38H/Rd8Afb8Y6YgJgnATUfZrcTc66Qpxl631zk121KeE3OVR4VBAOIffQAEQAAEokYAo8qoocaLToNAsLavrq4Okf8hP4X4j0npexr9JraeCTcdW+2F2oIACIAACIAACIDA2SSAUeXZbBfU6ogEQuR9sP7f/yOIf4j/mCQAN31Ed4DLQAAEQAAEQAAEQAAEIhDAqDICHPzo7BPYr/Cp/j+wHOI/JqXv2e+Fp11DuOnTJozngwAIgAAIgAAIgMB5IIBR5XloZR7beKDID1cI8Q/xH5ME4KZ57MJgGgiAAAiAAAiAAAhEjQBGlVFDjRedBoFwOv/Acoj/mJS+p9FvYuuZcNOx1V6oLQiAAAiAAAiAAAicTQIYVZ7NdkGtjkjgQJEfrhDiH+I/JgnATR/RHeAyEAABEAABEAABEACBCAQwqowABz86+wTC6fwDyyH+Y1L6nv1eeNo1hJs+bcJ4PgiAAAiAAAiAAAicBwIYVZ6HVuaxjQeK/HCFEP8Q/zFJAG6axy4Mpp2YQFPHwLDLe+DHMDgtik878ZNxIwiAAAiAAAjwlQBGlXxt2XNiVzidf2D5/wNJnbDNXiVlHgAAAABJRU5ErkJggg==)\n", + "\n", + "Here, I have filtered the issues which have language as Javascript, you can use any language/tool you might want and would love to find some interesting projects to contribute and learn from.\n", + "\n", + "If you want to search by multiple programming languages you can separate the names of those programming languages by a comma ,.\n", + "\n", + "You can also separate programming languages with space and enclosing all of them under double quotes ```\"\"```.\n", + "\n", + "## Add labels\n", + "You can find issues as per labels marked on them, many issues have a label marked on them to improve their visibility and meta-information about the issue.\n", + "\n", + "We have some labels which GitHub has created already for common scenarios in projects.\n", + "\n", + "- bug\n", + "- documentation\n", + "- duplicate\n", + "- enhancement\n", + "- good first Issue\n", + "- help wanted\n", + "- invalid\n", + "- question\n", + "- wontfix\n", + "\n", + "We can even create our own labels by providing the label name and a description.\n", + "\n", + "To search for labels, you can use ```label:name``` of the label. You can any of the above 9 label tags or any other tag name that you think is popular other than those 9.\n", + "\n", + "You would have to use double quotes ```(\"\")``` to add certain labels with multiple words like ```good first issue``` or ```help wanted```.\n", + "\n", + "Now you can go ahead and start applying the filters on issues and make some contributions to Open-Source on GitHub. We covered some methods to find and filter out the issues on GitHub based on the programming languages/tools and the labels attached to them.\n", + "\n", + "This technique can be good for beginners as well as people who want to find quick issues to solve. Feel free to explore and try out different filters and find the issue you are confident to work on. Good Luck!\n", + "Happy Coding :)" + ] + } + ] +} \ No newline at end of file diff --git a/Open_Source/Section-3/3.9_Overview_of_Red_Hat_Open_Source.md b/Open_Source/Section-3/3.9_Overview_of_Red_Hat_Open_Source.md new file mode 100644 index 0000000000..bbcd1dae4e --- /dev/null +++ b/Open_Source/Section-3/3.9_Overview_of_Red_Hat_Open_Source.md @@ -0,0 +1,101 @@ +


+ +# Red Hat Open Source +Red Hat, Inc. is an American IBM subsidiary software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide. + +
+ +## What is open source? +Open source is a term that originally referred to open source software (OSS). Open source software is code that is designed to be publicly accessible—anyone can see, modify, and distribute the code as they see fit. +
+Open source software is developed in a decentralized and collaborative way, relying on peer review and community production. Open source software is often cheaper, more flexible, and has more longevity than its proprietary peers because it is developed by communities rather than a single author or company. + +
+ +## Why Red Hat for open source? +Red Hat is the largest open source company in the world. They build and support open source products from open source projects. They give back to the projects and communities They are engaged in. They defend open source licenses. With open source, They equip their customers for success. They take community-built code and harden its security, add features, and make it enterprise-ready and scalable. Then They push these improvements back out to the original project to benefit the community as a whole. + +
+ +## About Red Hat Research: +Red Hat Research connects Red Hat engineers with professors, researchers, and students to bring great research ideas into open source communities. Their activities around the world have produced grants from government and industry, papers at top conferences, and results that have landed in open source projects of all kinds. Red Hat Research welcomes participation from research-minded individuals around the world. + +
+ +## Open source participation guidelines: +The open source participation guidelines address topics relating to participation in open source development by Red Hat associates, such as the following: +1. Upstream first +2. Contributing to upstream projects not maintained by Red Hat +3. Starting new open source projects + +There’s more to learn about how to participate in open source +
+[Read the guidelines](https://www.redhat.com/en/resources/open-source-participation-guidelines-overview) + +
+ +## How Red Hat Contribute to Open Source Projects: +[RED HAT ON GITHUB](https://redhatofficial.github.io/#!/main) +
+ +- Participate - Red Hat participates in and creates community powered upstream projects. They contribute code, collaborate on content, steward projects, mentor leaders, and sponsor events. + +- Integrate - Red Hat integrates multiple upstream projects, fostering open source community platforms. And they work in multi-organizational projects, bringing industry-recognized standard technologies into their own projects. + +- Stabilize - Red Hat commercializes these platforms and projects together with a rich ecosystem of services and certifications, while continuing to contribute back to the upstream projects of which they are a part. + +
+ +# What is Red Hat Open Source Contest (RHOSC)? +It is an initiative of the Red Hat for students during which students understand how easy it is to participate and contribute to open-source projects. Participants work with one of the Red Hat mentors. Participants select the project as per their interest by selecting the mentor from the list of projects. +
+Students can also get feedback on their code and get it included in a real project. By participating in the Red Hat Open Source Contest students can win nice prizes. +
+Official Webpage: [Red Hat Open Source Contest](https://research.redhat.com/red-hat-open-source-contest/) +

+It is an Open Source contest held by the largest Open Source company, Redhat, to encourage students in contributing to Open Source projects at Redhat itself. +
+It’s generally a 2-month long contest but this time due to the Covid-19 pandemic it ended up going on for 4 months. Any student can participate in this contest by registering themselves and selecting a project of their choice. +
+
+ + +## What Would You Have To Do: +1. Pick one of the project tasks from the current list. +2. Contribute to an open source project under the supervision of an experienced mentor from Red Hat. +3. Present your project to the open source community, competitors and mentors. +4. Receive your fabulous prize. + +
+ +## Benefits: +In addition to the exposure that comes with public participation in an open source project, all successful participants receive Red Hat branded swag. Exceptional participants may receive offers for an internship at Red Hat. The overall contest winner receives an eshop coupon worth 10,000 CZK (or prize of equivalent value for students not able to use the voucher in Czech Republic). + +
+ +## Important Dates: +1. Project list available: 7th April 2021 +2. Registration for public students opens: 7th April 2021 +3. Finish projects: 1st July 2021 +4. Announcing the winner: Somewhere in August 2021 + +
+ +## How To Participate: +1. Pick one of the project tasks from the current [list](https://docs.google.com/spreadsheets/d/11guEXXk2yGr7ffBaErho0F9mRiSi93dNf4kvu_gUT7I/edit?usp=sharing). +2. Fill out the [Sign-up form](https://forms.gle/V81x5vRjn6YR8VDV6). +3. Wait for confirmation and initial instructions! + +
+ +# Red Hat Enterprise Linux +Red Hat¼ Enterprise Linux is the world’s leading enterprise Linux platform. It’s an open source operating system (OS). It’s the foundation from which you can scale existing apps—and roll out emerging technologies—across bare-metal, virtual, container, and all types of cloud environments. +
+Red Hat Enterprise Linux provides a consistent foundation across environments and the tools needed to deliver services and workloads faster for any application. Red Hat Enterprise Linux reduces deployment friction and costs while speeding time to value for critical workloads, enabling development and operations teams to innovate together in any environment.

+ +

+Red Hat Linux was one of the first and most popular Linux distributions. This was largely because, while a paid-for supported version was available, a freely downloadable version was also available. Since the only difference between the paid-for option and the free option was support, a great number of people chose to use the free version. +

+Red Hat made the decision to split its Red Hat Linux product into two: Red Hat Enterprise Linux for customers who were willing to pay for it, and Fedora that was made available free of charge but gets updates for every release for approximately 13 months. +

+Fedora has its own beta cycle and has some issues fixed by contributors who include Red Hat staff. However, its quick and nonconservative release cycle means it might not be suitable for some users. Fedora is somewhat a test-bed for Red Hat, allowing them to beta test their new features before they get included in Red Hat Enterprise Linux. Since the release of Fedora, Red Hat has no longer made binary versions of its commercial product available free-of-charge. diff --git a/Open_Source/Section-3/3._Blog_What_You_Do_And_Be_More_Social.md b/Open_Source/Section-3/3._Blog_What_You_Do_And_Be_More_Social.md new file mode 100644 index 0000000000..3d024a46c5 --- /dev/null +++ b/Open_Source/Section-3/3._Blog_What_You_Do_And_Be_More_Social.md @@ -0,0 +1,59 @@ +![blog](https://github.com/Ash-KODES/DATA/blob/main/blog.jpg?raw=true) +# **WHAT IS BLOGGING ?** +A Blog is an online journal where people write about things that matters to them. A lot of people use it as a diary and a lot of people who blog to make a profit out of it. + +Blogging refers to writing, photography, and other media that's self-published online. Blogging started as an opportunity for individuals to write diary-style entries, but it has since been incorporated into websites for many businesses. The hallmarks of blogging include frequent updates, informal language, and opportunities for readers to engage and start a conversation. + +--- +# **BLOGGING AND OPEN SOURCE** + +When a company decides to embrace open-source software development, releasing the code under a suitable license is only the tip of the iceberg. The real challenge that companies face is learning how to attract and collaborate with contributors. + +And this whewre BLOGGING comes in picture,by blogging a organization can not only gain audience but also maintain a good ecosystem for there project. + +By blogging one can introduce there projects to newcomer and untimately build audience for there projects who can contribute and enhance the project. + +--- +# **HOW TO INTRODUCE YOUR PROJECT** +**1.BREIF DESCRIPTION ABOUT THE PROJECT** + +The description is the first thing everyone sees before deep diving in documentation.Therefore a good description should answer in a short and informative manner the *what* question. + +**2.MAIN DOCUMENTATION** + +The documentation should contain a detailed description (which expands on the *what* question) and very detailed instructions on how to use you project. +The instructions should cover every single piece of public API, preferably with usage examples. + +**POINTS TO KEEP IN MIND** + +1.Keep it simple – The simpler the API and the example, the easier for a user to understand what it does on how to use it + +2.Keep it structured – Use the same template and visual structure for every API method. This way you’ll define your own language for communicating the API to the user. + +3.Be a user – Always write API description from the user's perspective. Assume that you know nothing about the internals and this documentation is all you have. + +4.Keep it up to date – As your project evolves, the APIs might change. Make sure that your README file always contains the most current APIs and examples. + +--- +# **HOW TO WRITE BLOG POSTS** + +FOLLOW THESE STEPS FOR WRITING A EYE CATCHING BLOG POST FOR YOUR OPEN SOURCE PROJECT + +**1. Understand your audience** +Before you start writing your blog post, make sure you have a clear understanding of your target audience. + +**2. Create your blog domain** +Next, you'll need a place to host this post and every other blog post you write. This requires choosing a content management system (CMS) and a website domain hosting service. + +**3. Customize your blog's theme** +Customize your theme according to yout open source project. + +**4. Write a good title and description** +Write a good descriptive documentation as mentioned above. + +**5. Write the main content** +Now you need to write the content of your blogpost and the outline of your project,and make sure you keep updating it with the project devlopment. + +--- +**SUMMARY** +![blog](https://github.com/Ash-KODES/DATA/blob/main/flow%20(1).jpeg?raw=true) diff --git a/Open_Source/Section-4/4.10_Free_Software_Foundation_Internship_Program.md b/Open_Source/Section-4/4.10_Free_Software_Foundation_Internship_Program.md new file mode 100644 index 0000000000..776f9bc3f5 --- /dev/null +++ b/Open_Source/Section-4/4.10_Free_Software_Foundation_Internship_Program.md @@ -0,0 +1,63 @@ +# Free Software Foundation (Internship) Program + +![FSF Logo](https://drive.google.com/uc?export=view&id=1OsjLurJaSwtsj7hdAR4z1CUKfsi87k4H) + +## What is Free Software Foundation (FSF)? + +The [Free Software Foundation (FSF)](https://www.fsf.org/) is a non-profit with a worldwide mission to promote computer user freedom. FSF aims to teach why free software matters, and how to use them, dig deep into software freedom issues like copyleft, Digital Restrictions Management (DRM), or surveillance and encryption. They promote the use of open-source free software by helping people learn about design, system administration and few other tasks. + +## FSF Internship Program: + +[FSF Internship](https://www.fsf.org/volunteer/internships) applications are open three times in a year i.e., in +* Summer (June to August) +* Fall (August to December) +* Spring (January to April) + +As an intern, interns work closely with FSF staff members in their area of interest, such as campaign and community organizing, free software licensing, systems and network administration, GNU Project support, or Web development. +These positions are unpaid unless you are doing your internship through Outreachy, but in either case, the FSF will provide any appropriate documentation you might need to receive funding and school credit from outside source. They place an emphasis on providing hands-on educational opportunities for interns, in which they work closely with staff mentors on projects that match their skills and interest. + +## Internship Positions: + +FSF looks for interns to spend their time contributing to work in one of three areas: campaigns, licensing, or with their tech team. + +‱ The **FSF Campaigns Team** is in charge of communicating with and expanding their audience of free software supporters, targeting important opportunities for free software adoption and development, and empowering people to act against specific threats to their freedom. Campaigns team interns might work on expanding and updating their resources on a particular area of the free software world. + +‱ The **FSF Licensing and Compliance Lab Team** works with developers to license their packages under one of the GNU General Public Licenses and to help organizations maintain compliance. They also field all licensing and copyleft inquiries. Licensing team interns might assist with the Respects Your Freedom certification program, or they might work to improve the Free Software Directory or analyse the compatibility of other licenses with the GPL. + +‱ The **FSF Tech Team** maintains and improves the infrastructure for the FSF and the GNU Project. Tech team interns may choose from their current list of projects, or suggest one of their own. We have plenty of opportunities, from updating our video streaming toolkit, to improving our data management systems. + +## Schedule : + +Each position lasts for one twelve-week term. There are three terms: summer, fall, and spring. There can be some flexibility with start and end dates if necessary. +Any of the terms can be worked as either full time (forty hours per week) or part-time (twenty hours per week) positions. We will prefer candidates able to work full time, particularly during the summer term. From time to time, remote internships are possible, but we prefer in-person internships. + + +## Application: + +### How to apply: + +Send a letter of interest and resume with two references by email to hiring@fsf.org. Make sure that your materials are in free software friendly formats (PDF and plain text work well) and include "Internship" in your subject line. If you can, please include links to sites you've made (personal blogs are okay!) designs or code you've done, and relevant writing. Please include these as URLs, though email attachments in free formats are acceptable, too. + +Their application form contains very simple questions, please refer the screenshot below taken from their official site. This is for [**Campaigns Intern Team**](https://www.fsf.org/volunteer/internships/campaigns-interns-questions). + +![FSF Application File](https://drive.google.com/uc?export=view&id=1UggTyH-MNR--qzkLj-9mZ9wMB10KqlhR) + +### Their basic qualifications are very minimal. All applicants must be: + +‱ open-minded and tolerant of others, + +‱ able to work as part of a team, and + +‱ interested in the ethical ramifications of computing. + +### But there are a few key points which an applicant should keep in their mind while applying: + +‱ FSF strongly prefer applicants able to work in-person at the FSF headquarters in downtown Boston, but applicants based elsewhere may also be considered. + +‱ Unfortunately, due to the complexities of US immigration law, applicants who are not US citizens or permanent residents and do not have a visa allowing them to work in the US must work remotely from outside the US. + +### Always apply to internships or open-source mentorship programs regardless your experience as these programs are seeking new minds and they are willing to give an opportunity to new comers. Good luck with your applications, Happy Coding :) + +**Note : The FSF office is currently closed due to the COVID-19 pandemic, so all internships will be remote until the office is formally reopened. Keep an eye out on their [site](https://www.fsf.org/volunteer/internships) for more info.** + + diff --git a/Open_Source/Section-4/4.11_HacktoberFest_Overview.md b/Open_Source/Section-4/4.11_HacktoberFest_Overview.md new file mode 100644 index 0000000000..be09876201 --- /dev/null +++ b/Open_Source/Section-4/4.11_HacktoberFest_Overview.md @@ -0,0 +1,46 @@ +### What is Hacktoberfest? + +The Hacktoberfest is hosted by DigitalOcean, and its main purpose is to encourage participation in the open-source community by giving people a platform to participate in events, helping them make their first pull request and give them an opportunity to make more exciting pull requests and to help out in open source projects. + +

+

+ +### Who is it for? + +Anyone from any part of the world can participate in the Hacktober fest, as every year, participants come from all over the world and represent thousands of unique skill sets. As you might have already guessed, this program welcomes everyone who is already a part of the open-source software community and beginners as well. + +### How long is the program for? + +The program starts on October 1st and ends on October 31st. Even though you will be working for one month, your participation will have a lasting effect on people and technology long after October. + +### Why should you contribute? + +In hacktober fest, there are mainly two kinds of contributors: 1. Participant 2. Maintainers + +#### Participants + +- Even if you are an expert or a beginner, there will always be new or unique projects which are beginner-friendly as well as something which can make you rack your brain. As we know, every year new technologies are coming up this will be your perfect chance to get your hands dirty on them. + +- Even if you are not interested in learning new technologies, open-source projects already have a huge amount of libraries and frameworks for you to work upon. By contributing to them, you will take your time to check how it works and how you use it and for a beginner, it helps you get accustomed to git and PR's (Pull Requests). + +This is the perfect opportunity to work on tech stacks such as MERN, LAMP stack, etc. It can also help you get over your fears regarding git, and you might build up great connections that you never might be handy in the future. + +#### Maintainer + +- As you are a maintainer, you might be thinking that " is there any use for me to do this it is not like I am contributing." That's the wrong notion which you have; by being a repository maintainer, you have a lot of advantages. + +- Firstly, if you are someone who wants to make a great project being a maintainer will help you in getting new developers who want to contribute to your repository, and if they have a great experience, they might visit your future repo's. You might find talented developers among them who might be helpful to you in the future. + +- At the end of the day, by allowing contributors to contribute to your repository, you are still contributing to the open-source community. + +#### Companies + +- Many companies can utilize this opportunity to find good developers for their company, and they can contribute to the company's repositories as well. + +- If you are someone who wants to create a start-up, it might be a great opportunity to get to know some great developers as well and some newbies who might one day be interested in joining your company. + +### Some cool facts about October Fest + +I am sure you might be thinking why every year over 100k people to contribute to hacktober fest, and its not just because of the advantages I told you above. If you successfully contribute 4 PR's you will win free swags such as a T-shirt which is something that even a beginner can get. The swags have encouraged a lot of beginners to contribute to open source, but it's not the main thing you should be looking forward to as what you learn,the connections you make, and the contributions you make will be with you and the community forever. + +If you want to participate in hacktober fest don't forget to check [here](https://hacktoberfest.digitalocean.com/resources) diff --git a/Open_Source/Section-4/4.13_FOSSEE_Summer_Fellowship.md b/Open_Source/Section-4/4.13_FOSSEE_Summer_Fellowship.md new file mode 100644 index 0000000000..1068cf0fb8 --- /dev/null +++ b/Open_Source/Section-4/4.13_FOSSEE_Summer_Fellowship.md @@ -0,0 +1,44 @@ +## All about FOSSEE Summer Fellowship +There are many free open source softwares available in today's world.These are known as FOSS.In order to provide a great exposure of FOSS to students, IIT Bombay conducts the **Free and Open Source Software (FOSSEE) Summer Fellowship**. +The main aim of the program is to educate students by using FOSS, ie. Free and Open Source Software tools.The FOSSEE Summer Fellowship is a unique and ambitious scheme initiated by the FOSSEE project, carried out at IIT Bombay. +FOSSEE Summer Fellowship started in the year 2018 and now continues to happen every year for a period of 6–8 weeks, during the summer. +
+ +## Eligibility +1. Students from any recognized college of India can apply for the FOSSEE fellowship program. +2. Students studying any subject from streams such as arts, science, commerce, etcetera can apply for the FOSEE fellowship program. +3. Students must have passed the minimum class 12th examination. One can be persuing any of the following degrees to pursue the FOSSEE Summer Fellowship:- Bachelors, Masters or PhD programs. +
+ +## Application process +1. Visit the official website. +2. Select the “Registration” option. +3. Fill the basic details as asked. On getting registered, candidates will receive the username and password. +4. Application form filling-Candidates will be required to provide important details such name, academic detail, course information, contact details and more. +5. Scholarship Selection- FOSSEE scholarship is offered in various domains. Candidates can choose their desired field by choosing the respective option. +6. Choose the screening option according to the project applied for (every project has its separate screening test) +7. Complete the respective screening test to apply. +
+ +## Selection Criteria +**project selection** and **academics(merit)** +
+ +## Few tips regarding FOSSEE Summer Fellowship +1. The maximum limit of the fellowship is eight weeks. +2. The selected candidates will get to work on the development of various Open Source (Hardware/Software). +3. The fellowship program is conducted in IIT Bombay. So the shortlisted students are supposed to port to college. +4. The final decision will be in the hands of the FOSSEE selection team. +5. Students desirous of getting selected for this Fellowship have to learn a Free/Libre and Open Source Software (FLOSS) and complete some screening tasks. + +## TimeLine +| Event | Date | +|------------|------------| +| Registrations and Submission opens on | 17 April 2021 | +| Last date for Registration | 05 May 2021 | +| Last date for Submission | 15 May 2021 | +| Announcement of the Fellowship results | Last Week of May 2021 | + +**Commencement of Fellowship will be tentatively from 01 June 2021.** + +**For more info** [Click Here](https://www.iitb.ac.in/en/event/fossee-summer-fellowship-2021) diff --git a/Open_Source/Section-4/4.14_Open_Mainframe_Project_Mentorship_Program.md b/Open_Source/Section-4/4.14_Open_Mainframe_Project_Mentorship_Program.md new file mode 100644 index 0000000000..a924f10811 --- /dev/null +++ b/Open_Source/Section-4/4.14_Open_Mainframe_Project_Mentorship_Program.md @@ -0,0 +1,39 @@ +## All About Open Mainframe Project Mentorship Program + +University students have many opportunities in the field of open source +nowadays. But this program is different. Let's have a deep knowledge +about this program.If you are into development or programming then you +might know about mainframe technology and open source in the mainframe computing environment. + +![Open-Mainframe-Project-Mentorship-Program-2021 (1)](https://user-images.githubusercontent.com/69195262/133732101-b360c5dd-676b-4656-b48e-0418ebbd1352.png) +
+ +## What is the program all about? +Open Mainframe Project Mentorship Program is the open-source program that is hosted by the Linux Foundation and aims to introduce everyone +to the mainframe community and development environment on Linux. Making you familiar with development and deployment on the Linux environment is among the top +goals of the Open Mainframe Project Mentorship Program, they want to invest in future developers so that the quality of mainframe engineers can improve over time + +
+ +## Eligibility Criteria +- The mentee must be aged 18 or older at the time of the program. +- The mentee should not be engaged in any other Linux Foundation mentorship program. +- The mentee should be legally able to work as per their country’s laws. +- Should not be a resident of a country which are prohibited by U.S. federal laws. +- Should not be a maintainer or contributor or somehow involved in the open-source project that offers any other mentorship program. +
+ +## Application Process +The application for the program generally starts after the announcement of the program between 15th January to 12th February for around 4 weeks. After you apply +for the program, the mentees are shortlisted and then the names of selected mentees for the program are announced. + +
+ +## Benefits of Applying to the Open Mainframe Project Mentorship Program +- It's a very unique program.Very few developers can work on mainframe projects. +- You are provided with stipend in this program. +- It's an awesome opportunity to network with passionate developers. +
+ +**You can find all the details about this program [here](https://www.openmainframeproject.org/projects/mentorship-program)** + diff --git a/Open_Source/Section-4/4.1_Explain_Everything_Related_to_the_MLH_Fellowship.md b/Open_Source/Section-4/4.1_Explain_Everything_Related_to_the_MLH_Fellowship.md new file mode 100644 index 0000000000..fec070f13a --- /dev/null +++ b/Open_Source/Section-4/4.1_Explain_Everything_Related_to_the_MLH_Fellowship.md @@ -0,0 +1,64 @@ +# What is MLH Fellowship? + +Major League Hacking (MLH) is an international student development community that began in 2013. It organises events such as career fests, workshops, and hackathons to help a +large number of student developers and engineers all around the world. +When COVID-19 hit and a pandemic broke out throughout the world, the IT industry took the brunt of the damage. Many organisations were not set up for remote work, and students, +particularly those searching for summer and fall internships, were the ones who suffered the most. During this difficult time, Major League Hacking (MLH) devised a Fellowship +Program that offered hope to students seeking real-world experience among the upheaval. + +The MLH Fellowship is a 12-week internship that seeks to provide students real-world experience by allowing them to contribute to open-source projects. +Mike Swift, CEO and Co-Founder of MLH, hailed the fellowship as "The Future of Tech" during Github Universe. +
+
+ +
+
+Students in this programme will work on Open Source projects that connect their own interests with industry demands. MLH provides three distinct programs, +each of which aids in various ways in levelling up. +
+
+ +### The following are the programs provided by MLH: + +- Explorer - By working in small groups on a series of short hackathon sprints, you may build up a portfolio of various personal ideas and try out new technologies. +- Open Source - Contributing to big projects on GitHub, which are utilised by many organisations across the world, will help you learn how to be a great Open Source contributor. +- Externship - This program seeks to offer students with real-world software engineering experience by allowing them to collaborate on projects with MLH's partner businesses. +
+ +### Furthermore, before participating, you must confirm that you meet the following qualifying criteria: + +- To participate in this program, you must be at least 18 years old or 13 years old with parental consent. +- You must be able to code. +- It is necessary to have access to a high-speed Internet connection. +- Must be a citizen of a nation that is not embargoed by the US. +- Able to devote the minimum weekly hours to this program. +- Excellent English Speaker + +Accepted students who require a stipend in order to participate in the fellowship can apply for a need-based stipend of up to $5,000 USD. + +## Application Process: + +- You must complete an application form that details your eligibility, experience, and motivation for participating in the program. +- If your application is chosen, you will be requested to participate in a 10-minute video interview during which the mentors will ask you some basic questions in order to assess your personality. +- If you are chosen after the general interview, you will be subjected to a technical interview in which you will be asked to explain a piece of code that you produced before. + +If you are rejected, you will not be able to apply for the same batch again, but you will be able to apply for subsequent batches. Your refusal will have no impact on future interviews. Also, keep +in mind that you will not be able to make modifications to your application if you make mistakes, so fill out the application form carefully. + +## Benefits of MLH Fellowship: + +- Expert Mentorship- If you are chosen, you will get full-time engineering mentorship. You will study a variety of industry best practises that will assist you in becoming a better software developer or engineer. +- Real-World Experience - During your fellowship, you will work on a variety of real-world initiatives that will provide you with invaluable experience. This is also something you may include in your CV. +Working hours are flexible, so you may work whenever you choose during the day. +- Expands network - Because MLH is a worldwide community, you will meet many great minds from all over the world during this fellowship, which will help you extend your network. +- Stipend - Stipends of up to $5,000 USD are available through this program. +- Intriguing Lectures - Because MLH is such a large community, you will hear a variety of interesting talks from a variety of people during the program. +- Other fun activities - MLH hosts a variety of events such as hackathons, coding competitions, and other competitions on a regular basis. You may take part in those activities and win a variety of prizes. + +So, whether you've lost your job or internship as a result of the pandemic, or if you're looking for a quality internship position, the MLH fellowship is one of the finest +options. It will assist you in learning new skills, which will allow you to expand your portfolio. However, obtaining an MLH fellowship is a difficult undertaking that requires +additional work - you must enhance your development and communication abilities in order to obtain an MLH fellowship. diff --git a/Open_Source/Section-4/4.3_Season_Of_KDE.md b/Open_Source/Section-4/4.3_Season_Of_KDE.md new file mode 100644 index 0000000000..c1f654f06c --- /dev/null +++ b/Open_Source/Section-4/4.3_Season_Of_KDE.md @@ -0,0 +1,45 @@ +# What is Season of KDE? + +Started in 2013, Season of KDE is a community outreach program that has been hosted by the KDE community as a program similar to, but not quite the same as Google Summer of Code, offering an opportunity to everyone +(not just students) to participate in both code and non-code projects that benefits the KDE ecosystem. +Through the Season of KDE, the participant gets familiar and comfortable with the KDE’s codebase and documentation. +In the past few years, SoK participants have not only contributed new application features but have also developed the KDE Continuous Integration System, statistical reports for +developers, a web framework, ported KDE Applications, created documentation and lots and lots of other work. +
+
+Season of KDE program spans about 3 months and student application and mentor application submission begins around December. The first month of the program is given to communicating period where students exchange ideas with the expected mentor, through IRCs and mailing lists and mentor verifies the feasibility of the idea. +
+
+ +
+
+For students thinking to get started for contributing in this program are recommended for to first go through some of the applications they like and look at the technologies used, mostly being C++, Qt, QML, and CMake. + +### Purpose of Season of KDE: + +Purpose of the SoK program is to support as many budding developers as interested to begin their journey in Free and Open-source Software world and also, to encourage those students who missed the change to get through the GSoC (Google Summer of Code). Season of KDE program support the students with perfect mentor-ship and deliver them the best experience of being a part of a big community like KDE, with exciting goodies like T-shirt and certificate. +
+ +### Criteria for applying to Season of KDE: + +Everyone and anyone around the world who is passionate about this program can take part in this program. + +## Why should one take part in Season of KDE? + +- Flexible timeline - The KDE organisation always holds the Season of KDE, keeping in mind the GSoC timeline. With GSoC right around the corner, taking part in Season of KDE is the best way for the student participants to get comfortable with the code base and the project community before they apply for GSoC if they plan to. +- Best Mentorship - The KDE community is very beginner-friendly where the enthusiastic and ever-helping members are always there to help with any queries and support. +- Experience - Experience of working on a project and completing it within a premeditated timeline is the best way to gain the workmanship and time management skills. +- Swags and Certificates + +### Where and When it is held? + +The Season of KDE program is completely online where the participants remotely work on their projects and contribute to the organisation and it generally starts in December/January lasting for 2-3 months. + + +## Application process: + +- Before Drafting Proposal - You should choose your favorite KDE project that you will like to help improve through your contributions, be it the KDE web framework, Plasma Mobile, Desktop based KDE projects like Krita, Kdenlive, etc or even KDE Documents. Each project has its own repository where many beginner-friendly issues and bugs are available to help the participant get started with contributing to KDE. +- Drafting Proposal - The proposal should primarily focus on the problem at hand, the project topic, and a basic idea of how they plan to solve it. The proposal should mention about the past contributions to KDE to ensure the mentors that the participants have basic knowledge of the project before the SoK begins. +- Getting Selected - Once the participant submits a proposal, they will be selected by their respective project mentors. The selected participants then begin their respective projects and work to complete it within the specified timeline and The participants have to stay in constant touch with their mentors and keep the KDE community updated with their progress through weekly or biweekly blog posts in the official KDE blog page and updating their respective status report pages. diff --git a/Open_Source/Section-4/4.4 Explain everything related to Linux Foundation Mentorship Programs.ipynb b/Open_Source/Section-4/4.4 Explain everything related to Linux Foundation Mentorship Programs.ipynb new file mode 100644 index 0000000000..94586bb86c --- /dev/null +++ b/Open_Source/Section-4/4.4 Explain everything related to Linux Foundation Mentorship Programs.ipynb @@ -0,0 +1,111 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled0.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "8dFQDXLpluf8" + }, + "source": [ + "# Linux Foundation Mentorship Program\n", + "### Giving Back to the Open Source Community is the Motto of the Program\n", + "\n", + "\n", + "The Open Source developers are given a chance to learn, experience and contribute effectively to Linux Mentorship Program.\n", + "The contributors can effectively learn and grab the internship or Job Opportunities at The Linux Foundation. There are various Projects hosted by the Linux Foundation for this Mentorship Program.\n", + "\n", + "#### Projects Open to contribute \n", + "\n", + "- Linux Kernel\n", + "\n", + "The Linux kernel is a free and open-source, multitasking, Unix-like operating system kernel. It was soon adopted as the kernel for the GNU operating system, which was created as a free replacement for UNIX.\n", + "- LF Networking\n", + "\n", + "LF Networking software and projects provide platforms and building blocks for Network Infrastructure and Services across Service Providers, Cloud Providers, Enterprises, Vendors, and System Integrators that enable rapid interoperability, deployment, and adoption.\n", + "- GraphQL\n", + "\n", + "GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.\n", + "- HyperLedger\n", + "\n", + "Hyperledger is an umbrella project of open source blockchains and related tools, started by the Linux Foundation\n", + "- CNCF\n", + "\n", + "The Cloud Native Computing Foundation is a Linux Foundation project that was founded to help advance container technology and align the tech industry around its evolution.\n", + "- OpenHPC\n", + "\n", + "Open Hosting Control Panel is free control panel for hosting started as a project by the Linux Foundation. It has many features like configuration in database, dovecot connected with postfix as authentication and delivery agent\n", + "simplified SQL schema with foreign keys and in InnoDB (XtraDB), \n", + "SSL/TLS security (but you have to provide cert/key for now),\n", + "amavis with support for policies in SQL,\n", + "pure-ftpd with virtual users in SQL,\n", + "config and chroot env for PHP-FPM,\n", + "apache config for http and https,\n", + "sieve global config to put SPAM in Junk mail directory,\n", + "\n", + "- Open Mainframe Project\n", + "\n", + "Open Mainframe Project is a Collaborative Project managed by the Linux Foundation to encourage the use of Linux-based operating systems and open source software on mainframe computers.\n", + "\n", + "You can register as either a Mentee or as Mentor. Both of them have different roles to play and also have benifits to be a part of the program.\n", + "\n", + "#### How to apply?\n", + "- Prospective mentees! Get started by creating mentee profile on LFX Mentorship.\n", + "- Prospective mentors! Get started by creating mentor profile on LFX Mentorship.\n", + "- Check Mentorship Program Schedule and pick a term that works the best for your work/school schedules and plan for participation.\n", + "- Complete the A Beginner’s Guide to Linux Kernel Development e-course. This is a free training course which is a prerequisite for the mentorship program. Once you complete the course, you get a certificate of completion which you can download. Keep it handy for applying for open projects.\n", + "- Subscribe to linux-kernel-mentees list\n", + "- Join #kernel-mentees IRC Channel on OFTC.\n", + "- You can register your Nick in the server tab with command: identify /msg NickServ identify \n", + "- You can configure your chat client to auto identify using NickServ(/MSG NickServ+password) option - works on hexchat\n", + "- Join LFX Mentorship Linux Kernel collaboration forum.\n", + "\n", + "\n", + "#### Perks of being Mentees In Linux Mentorship Program.\n", + "- Learn from experienced Linux Kernel developers/maintainers\n", + "- Learn to collaborate, communicate, and work with the Linux Kernel community\n", + "- Become a Linux Kernel contributor\n", + "- Opportunity to network with other open source communities and prospective employers\n", + "- Learn to speak and share experiences at Linux conferences (travel funding included)\n", + "- Receive a stipend for learning\n", + "- Opportunity to interview with employers\n", + "\n", + "#### Perks of being Mentor In Linux Mentorship Program.\n", + "- Opportunity to teach and share expertise\n", + "- Get help with work in your respective Kernel areas\n", + "- Opportunity to train and bring new talent into the project\n", + "- Get rewarded with an invite to a Linux conference \n", + "\n", + "#### Required Commitments\n", + "\n", + "- Mentors should expect to spend two to four hours per week during the entire duration of the Mentorship Program starting from the application process to the end of the program.\n", + "- Mentees are supposed to Work with mentor(s)\n", + "- Continue to send patches to linux-kernel-mentees.\n", + "- Follow the evaluation schedule as outlined. Evaluation tasks will be assigned to you in LFX Mentorship.\n", + "- Submit Evaluation Reports uploading your report to Evaluation Task in LFX Mentorship.\n", + "- Please stay subscribed to linux-kernel-mentees. Don't hesitate to contact with any questions.\n", + "\n", + "#### Program Schedule\n", + "\n", + "The LF Mentorship Program is hosted in three sections every year normally.\n", + "- Spring Term (March-May)\n", + "- Summer Term (June-August)\n", + "- Fall Term (September-November)\n" + ] + } + ] +} \ No newline at end of file diff --git a/Open_Source/Section-4/4.9_Explain_everything_related_to_Hyperledger_Mentorship_Program.md b/Open_Source/Section-4/4.9_Explain_everything_related_to_Hyperledger_Mentorship_Program.md new file mode 100644 index 0000000000..8fb2bbcc8e --- /dev/null +++ b/Open_Source/Section-4/4.9_Explain_everything_related_to_Hyperledger_Mentorship_Program.md @@ -0,0 +1,151 @@ +

Hyperledger Mentorship Program


+ +## Program Description +The Hyperledger mentorship program is aimed at creating a structured hands-on learning opportunity for new developers who may otherwise lack the opportunity to gain exposure to Hyperledger open source development and entry to the technical community. It also provides a more defined path for Hyperledger to connect with the next generation of student developers to inject more talent into its development community. Each mentee will apply and be matched with a mentor or mentors who are active developers in the Hyperledger community. Each mentee will work remotely from his/her location of choice. Regular evaluation and feedback will be provided. Mentees may have the opportunity to travel to a Hyperledger conference/event to meet their peers and mentors face-to-face and to present their work to the broader community.
+ + + The Hyperledger mentorship program is aimed at creating a structured hands-on learning opportunity for new developers who may otherwise lack the opportunity to gain exposure to Hyperledger open source development and entry to the technical community. +
+One of the largest tech companies in the world, Google hosts a Summer of Code mentoring program each year. ... The mentorship opportunity sees the students paired with mentors that can help them further develop their talent and advance their computing skill set. +A formal mentoring program is a structured, often one-to-one relationship in a work, organization or academic setting. ... Impactful mentoring programs train mentors and mentees to have productive conversations and meetings, providing them with career development tools and resources to accomplish set goals.
+ + +Hyperledger is an open source collaborative effort created to advance cross-industry blockchain technologies. It is a global collaboration, hosted by The Linux Foundation, including leaders in finance, banking, IoT, supply chain, manufacturing and technology. To learn more, check out the [About Hyperledger page.](https://www.hyperledger.org/about_) You can also find out more about Hyperledger's projects, labs, Working Groups, Special Interest Groups and other community activities at the links below. + +## Eligibility + +**Mentee Applicant Eligibility** + +- You must be at least 18 years of age by end of May. + +- The mentorship will be remote. However, you must be eligible to work in the country and jurisdiction where you reside in for the entire duration of the program. +- Please review any additional [eligibility requirements](https://docs.linuxfoundation.org/lfx/mentorship/mentee-guide/am-i-eligible) that may apply. + +# How to Apply + +Application Steps
+## Step 1: review eligibility
+The Hyperlegder Mentorship Program is aimed at providing a structured and guided learning opportunity for new developers, including college and university students, interested in becoming open source contributors to the Hyperledger community. Please first review the [eligibility requirements](https://docs.linuxfoundation.org/lfx/mentorship/mentee-guide/am-i-eligible) to determine if you're eligible to apply. + +## Step 2: discover projects + +Carefully review the Hyperledger mentorship projects that are open for applications in year and identify which project(s) you're interested in. + +- Ask yourself which projects you are the most excited or curious about exploring? The project descriptions, learning objectives and outcomes, and any additional information or links on the project page may give you some insight. +- Ask yourself which projects are a better fit for your profile. Be sure to read about the educational level and skills required or desired to evaluate if you are qualified. +- Lastly, some mentorships require Summer FT (full-time) commitment (40 hours a week for 12 consecutive weeks from June to August) or Summer PT (part-time) commitment (20 hours a week for 24 consecutive weeks from June to November) while others allow both options. Make sure the program timeline and schedule will fit into your schedule. +Each applicant may apply for multiple but no more than THREE projects. We recommend that you focus your effort on 2 projects and submit a quality application for those two projects. + +## Step 3: contact mentor(s) + +This step is optional. Feel free to contact the mentor(s) for the projects that you are interested in to learn more and to clarify any information that's unclear to you. + +- You may be able to discover more about the desirable background and skills of the mentee the mentor(s) are looking to work with. +- We have learned that the best applications are often from students who took the time to interact and discuss their ideas with the mentors before submitting an application. +- But be thoughtful with your questions as our mentors may be receiving a large volume of questions from interested applicants. + +## Step 4: prepare application materials + +Besides collecting standard demographic and contact information on the application, we will ask you to upload your resume and a cover letter.The cover letter will ask you to address the following questions: + +- How did you find out about our program? +- Why are you interested in the project(s) you're applying to? +- What experience and knowledge/skills do you have that are applicable to the requirements of the project(s) you're applying to? +- What do you hope to get out of this experience? +- Remember, your cover letter should demonstrate not only you're qualified but also passionate about becoming an active contributor in the Hyperledger open source community - through this experience. + +## Step 5: apply on LFX Mentorship Platform + +LFX Mentorship, developed by The Linux Foundation, of which Hyperledger is part of, is the portal where the Hyperledger mentorship projects are listed and mentee applications will be taken. + + - Go to [LFX Mentorship Platform](https://mentorship.lfx.linuxfoundation.org/#projects_all) +- Create Your Mentee Profile (you will need to create an [LFID first](https://docs.linuxfoundation.org/lfx/sso/create-an-account) you don't already have one +- View all projects and search by "Hyperledger" to see all 22 Hyperledger projects open for application +- Click on the specific Hyperledger projects to read about the project details +- Be sure to "View Site" to take you to the corresponding wiki page for complete project information +- When ready, click "Apply" (remember you can apply up to 3 projects) +-Complete the application prerequisites: latest resume and cover letter +- Please review detailed application instructions that may further assist your application on LFX Mentorship. + +## Benefits for Student Interns + +- Mentees gain exposure to real-world software development by working closely with active developers in the community. + +- Mentees get introduced to open source development infrastructure, tooling, and culture. + +- Mentees have the hands-on opportunity to do work related to their academic and professional interests and to further the pursuit of those interests. + +- Mentees develop close working relationships with open source professionals and industry business leaders to expand their professional network. + +## Benefits for Hyperledger Community + +- More source code gets written and used for the benefit of all. +- The mentorship program helps create a pipeline to a diverse, well-educated pool of developers. + +- The mentorship program helps spread the word about Hyperledger and its related technologies at academic institutions and increase academia’s interest in the teaching and research of the technologies. + +- The mentorship program helps Hyperledger gain valuable insight into new developer onboarding processes and how to lower the barriers to entry for new developers. + +- The mentorship program creates positive press for Hyperledger via testimonials, brand recognition, and peer-to-peer messaging + +## Mentee Stipend and Travel Funding + +Mentees will be eligible to receive a stipend. The total stipend amount will be calculated using a tiered structure based on the country where the mentee resides when participating in the program. The stipend will be paid in installments provided that regular interval evaluations show the intern is making satisfactory progress. The final installment will be paid upon successful project completion. + +Mentees who successfully complete the program may be invited and financially sponsored by Hyperledger to attend a technical event and present their work to the broader community (specific event TBD depending on the event schedule but will be during Q3 or Q4 of the program year or Q1 of the following year). + +## Summer FT (Full-Time) Mentee Schedule + +Full time program requires the commitment of 40 hours per week for 12 consecutive weeks from a mentee and this option is recommended for those who do not have other significant commitment such as school or work from June to August to dedicate full time to working on the internship project. + +- June 1: official start date + - June 18: 1st Quarter Evaluation at the end of week 3 +- July 9: Midterm Evaluation at the end of week 6 (midterm stipend will be paid to the mentee if the mentee is in good standing with the mentor following the midterm evaluation) +- July 30: 3rd Quarter Evaluation at the end of week 9 +- August 20-31: Final Evaluation upon conclusion of the internship at the end of week 12 (final stipend will be paid to the mentee if the mentor determines that the mentee has successfully completed the internship following the final evaluation) + +## Summer PT (Part-Time) Mentee Schedule + +Part time program requirements the commitment of 20 hours per week for 24 consecutive weeks and this option is recommended for those who are in school or have other significant commitments for the duration of the program. + +- June 1: official start date +- July 9: 1st Quarter Evaluation at the end of week 6 +- August 20: Midterm Quarter Evaluation at the end of week 12 (midterm stipend will be paid to the mentee if the mentee is in good standing with the mentor following the midterm evaluation) +- October 1: 3rd Quarter Evaluation at the end of week 18 +- November 12: Final Evaluation upon conclusion of the internship at the end of week 24 (final stipend stipend will be paid to the mentee if the mentor determines that the mentee has successfully completed the internship following the final evaluation) + +## Project Proposal + +- Project maintainers, active contributors and community members are welcome to submit a mentorship project proposal for consideration. +- Multiple mentors supervising one mentee per project would be desirable as this helps spread the workload and reduce the challenge of coverage caused by working remotely with a mentee in a different time zone. +- The mentor(s) need to be familiar with the project and is/are expected to directly supervise the hired mentee's technical work. + +- The proposed project needs to be clearly scoped and structured to be suitable for a mentorship project. + +- The project should be related to one of the current Hyperledger Projects or Labs. + +- The outcome of the project will benefit the existing Hyperledger Projects or Labs or advance the Hyperledger open source technical community's work at large. +- The mentor(s) should be ready to be the sponsor of the mentorship project as a Hyperleger Lab when the mentorship commences. This ensures that the project progress can be tracked and the project output can be publicly accessible to the community. + +## Proposal Review/Selection Process and Criteria + +- The TSC reviews all proposals and validate and/or select projects to open for applications on Linux Foundation LFX Mentorship in coordination with the mentorship program admin. +- General selection criteria are: +- The selected proposals have clearly scoped learning objectives and outcomes that are suitable for one mentee, either a student developer/researcher or a new contributor, to complete within 12 weeks if working full time or 24 weeks if working part time. +- The selected proposals will represent a nice mix of project difficulty levels. Some low, medium, and high difficulties. +- The selected proposals will maximize the diversity of the proposals, mentors, and mentees. +- The selected proposals should have a direct connection or relevance to an existing Hyperledger project or lab. +- The selected proposals will further increase the contributor/maintainer base of the related Hyperledger project or lab. +- The selected proposals are related to as many Hyperledger projects or lab as possible. +- The mentors of the selected proposals will represent a nice mix of experienced and new mentors. +-Review the current year program schedule including project proposal and selection period. + +## How to Get a Head Start + +- Review Hyperledger [Code of Conduct](https://wiki.hyperledger.org/display/HYP/Hyperledger+Code+of+Conduct) +- Browse and take Hyperledger training and tutorials that may be relevant to your interest and project +- Create LFID and familiarize yourself with the collaboration tools +- Peruse relevant documentations and mailing list archives +- Reach out to mentor(s) to schedule weekly check in meetings. Spend one of the 1st meetings aligning on expectations, communication channels/norms/tools, any vacation or - academic scheduling conflict +- Set up your development environment and tools and do some practice +- Start working on project plan with your mentor(s) that includes project objectives, milestones/deliverables, methodology, documentation. Project plan should be posted on the wiki for transparency and accountability by end of week diff --git a/Open_Source/Section-5/5.1_Deploying_to_Netlify.md b/Open_Source/Section-5/5.1_Deploying_to_Netlify.md new file mode 100644 index 0000000000..061a689e28 --- /dev/null +++ b/Open_Source/Section-5/5.1_Deploying_to_Netlify.md @@ -0,0 +1,69 @@ +# Deploying Site on Netlify + +![Netlify Page](https://miro.medium.com/max/560/1*WMA_NYFfvZIpx_uvQxQQEA.jpeg) + +`Netlify` is an all-in-one platform for automating modern web projects.It has **continuous integration**, and deployment pipeline with a **single workflow**. + +It Provides `Atomic Deploy` and inhibit `Mixed content` + +**_Atomic Deploy_** - Atomic Deployment is essentially a script that allows your web application to be updated from Git so that it continuously runs, while the code updates in the background, ensuring zero downtime on your server during the entire process. + +**_Mixed Content_** - This specific error occurs when both HTTP and HTTPS assets are being loaded from a particular web page, which was requested to be fetched as HTTPS. + +There are two ways to `Deploy Site on Netlify` + +1. Creating deploys by connecting a Git repository for `continuous deployment` +2. Publishing a site folder with `drag and drop` + +## First Step + +**_Create your account on Netlify_** +https://www.netlify.com/ + +![Create account](https://static-assets.codecademy.com/Courses/Deploy-with-Heroku-and-Netlify/netlify_email_signup2.jpeg) + +## First way + +### Using Git Repository + +On Dashboard go to Team Overview --> New site from Git +Follow Three easy steps now to get your site on Netlify. + +![Steps](https://cdn.netlify.com/0a36819500c2254f84301d10e6ecbd1e0f20f143/c7374/img/blog/create-new-site.png) + +1. Connect to git provider (for eg `Github` or `GitLab` or `Bitbucket` ). + `It will ask for authorization --> Enable that` +2. Pick a Repository +3. Keep the default Site settings and Deploy! + +Link for the site will be displayed as soon as you complete the above steps +Kudos! you have deployed your first site. + +`Perks` of Using `Git Repo Method` +Provides **_Continous Deployment_** ie. any changes pushed to Git Repo will be automatically deployed to site ensuring zero downtime on the server. + +## Second way + +### Using Drag and Drop + +![Drag and Drop](https://miro.medium.com/max/1838/1*54JxNQqYGbMh2fY-QVedJg.png) +On Dashboard +Go to `Sites` +Under the _search site_ panel you will see a blank space saying +`Drag abd Drop your site folder here` + +Click on it and select the folder from local files +Kudos! the **site is deployed** --> Link will be displayed on Dashboard itself. + +_Tip : Prefer 1st way instead 2nd because `continous deployment` is an ultimate feature. Hence it's good to have a Github Repo for your site but not necessary for just simple deploying_ + +# Domain name + +![Domain settings](https://cdn.netlify.com/7e78f0f9764d7ddec2dc53babcc40707b55ab5a1/c1b2f/img/blog/domains-settings@2x.png) +Once the site is deployed using any of the two ways! +Go to `Domain Settings` +By default we are provided with netlify as a subdomain. +We can have a custom domain under as a `paid perk`. + +We can change the name of Website for `complete free` +Under custom names select ...(3 dots) and edit the name of your website. `for eg my_first_website.netlify.app`. diff --git a/Open_Source/Section-5/5.7_Compare_github_vs_gitlab_vs_bit_bucket.md b/Open_Source/Section-5/5.7_Compare_github_vs_gitlab_vs_bit_bucket.md new file mode 100644 index 0000000000..d908b2924c --- /dev/null +++ b/Open_Source/Section-5/5.7_Compare_github_vs_gitlab_vs_bit_bucket.md @@ -0,0 +1,84 @@ +# Github vs Gitlab vs Bitbucket + +

+ +

+ +## [Github](https://github.com/) +
+

+ +

+
+ +- In 2008, GitHub was founded. It's a platform for hosting git repositories. +- Is only for projects that use the Git version control system. +- It is free for public repositories and costs money for private repositories. +- Ruby and Erlang are used to create GitHub. +- It comes with its own Wiki and bug tracking system, as well as Gists (a means to exchange code snippets). +- We may decide if someone has read or write access to a repository here. +- With over 38 million projects, it is the largest repository host. +- It is restricted in terms of size. The file size cannot exceed 100 MB, and the repository can only hold 1 GB of data. +- GitHub has a number of unique features: + 1. Commit History can be seen + 2. Graphs: pulse, contributors, commits, frequency of code, and members. + 3. Code review and comments are included in pull requests. + 4. Tracking Issues + 5. Notification by email + +## [Gitlab](https://about.gitlab.com/) +
+

+ +

+
+ +- GitLab began as a project in 2011, with the goal of offering an alternative to existing repository management solutions. GitLab.com, on the other hand, was launched in 2012. +- It is similar to GitHub in that it does virtually everything that GitHub does, but it also offers free private repositories that GitHub does not. +- GitLab Community Edition is open-source and free. +- We may establish and alter people's permissions based on their roles here. +- You may attach any file to any problem using this method. This isn't possible in GitHub. +- GitLab Community Edition source code is accessible on their website. +- It features a sluggish user interface. +- It has a Git import feature. +- GitLab has a number of unique features: + 1. Issue Tracker + 2. Commit graph and reporting tools + 3. Create new issues from the Issue Board + 4. Ease of migration from other providers + +## [Bitbucket](https://bitbucket.org/) +
+

+ +

+
+ +* Bitbucket was first released in 2008 to enable Mercurial Projects. It was bought by Atlassian in 2010, and it began to offer Git hosting in 2011. +* In addition to Git, it supports the Mercurial VCS (version control system). +* It is not open source, however if you purchase the self-hosted version, you will receive the complete source code. +* The Django web framework is used by Bitbucket, which is developed in Python. +* Bitbucket provides us with free private repositories. +* There are both paid and free accounts available. It provides unrestricted access to an infinite number of private repositories for free accounts. +* Existing Git projects from Excel, Github, and other sources are imported. +* Bitbucket has a number of unique features: + 1. BEST APIs are used to construct third-party apps that may be written in any programming language. + 2. It is feasible to conduct a code search. + 3. Code review and comments are included in pull requests. + 4. Developers can exchange code parts or files using snippets. +
+ +## So, which one should you pick and when should you pick it? + +Use GitHub if you only want to contribute to other open source projects. Nowadays, GitHub serves as an online portfolio for individuals, allowing them to submit their own work +and use their GitHub account in their CV. Having a GitHub account distinguishes oneself from others and demonstrates how much he has contributed to open source. + + +While GitLab is a good option, especially for Digital Ocean, GitLab is free for private projects, whereas GitHub requires a fee. Many businesses utilise GitLab when they need +to keep their codebase secret. Bitbucket only allows you to collaborate with 5 individuals for free, but GitLab.com is entirely free.So, if you want to work with Digital Ocean, +GitLab is the greatest option, and if you need a place to house your 1000 repositories and 100 coworkers, GitLab.com is the best option. + +When it comes to organisational use, Bitbucket is one of the most popular. Bitbucket is used by more companies than GitLab because of its user-friendly interface. +Mercurial is supported by Bitbucket Cloud. Bitbucket also provides free private repositories that are exclusively accessible to members. + +So, if you're a company looking to host a project, Bitbucket is the way to go, and you can even host individual projects there if you're not a company. diff --git a/Python/Contributing_On_GitHub/README.md b/Python/Contributing_On_GitHub/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/Contributing_On_GitHub/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/Datatypes/README.md b/Python/Datatypes/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/Datatypes/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/GitHub_Terminologies/README.md b/Python/GitHub_Terminologies/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/GitHub_Terminologies/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/Git_And_GitHub/README.md b/Python/Git_And_GitHub/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/Git_And_GitHub/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/History_Of_Python/README.md b/Python/History_Of_Python/README.md new file mode 100644 index 0000000000..816e91f745 --- /dev/null +++ b/Python/History_Of_Python/README.md @@ -0,0 +1,2 @@ +# Brief History of python +[![Brief history](https://res.cloudinary.com/marcomontalbano/image/upload/v1631865142/video_to_markdown/images/google-drive--1UlFpH0LBUs57MM-h0nHtYSCPHo1xwJsV-c05b58ac6eb4c4700831b2b3070cd403.jpg)](https://drive.google.com/file/d/1UlFpH0LBUs57MM-h0nHtYSCPHo1xwJsV/view?usp=sharing "Brief history") diff --git a/Python/How_To_Install/README.md b/Python/How_To_Install/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/How_To_Install/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/Installing_Software/README.md b/Python/Installing_Software/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/Installing_Software/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/List_&_Matrix/Readme.md b/Python/List_&_Matrix/Readme.md new file mode 100644 index 0000000000..885e69a198 --- /dev/null +++ b/Python/List_&_Matrix/Readme.md @@ -0,0 +1,614 @@ + +# Python: List & matrix #550 + +The Python **List** is a general data structure widely used in Python programs. They are found in other languages, +often referred to as *dynamic arrays*. They are both *mutable* and a *sequence* data type that allows them to be *indexed* +and *sliced*. The list can contain different types of objects, including other list objects. + +## 1. List methods and supported operators +Starting with a given list a: [1, 2, 3, 4, 5] +- append(value) – appends a new element to the end of the list. +```python +# Append values 6, 7, and 7 to the list +a.append(6) +a.append(7) +a.append(7) +# a: [1, 2, 3, 4, 5, 6, 7, 7] + +# Append another list +b = [8, 9] +a.append(b) +# a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9]] + +# Append an element of a different type, as list elements do not need to have the same type +my_string = "hello world" +a.append(my_string) +# a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9], "hello world"] +``` +**Note that** the append() method only appends one new element to the end of the list. If you append a list to +another list, the list that you append becomes a single element at the end of the first list. +```python +# Appending a list to another list +a = [1, 2, 3, 4, 5, 6, 7, 7] +b = [8, 9] +a.append(b) +# a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9]] +a[8] +# Returns: [8,9] +``` +- extend(enumerable) – extends the list by appending elements from another enumerable. +```python +a = [1, 2, 3, 4, 5, 6, 7, 7] +b = [8, 9, 10] + +# Extend list by appending all elements from b +a.extend(b) +# a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10] + +# Extend list with elements from a non-list enumerable: +a.extend(range(3)) +# a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 0, 1, 2] +``` +Lists can also be concatenated with the + operator. Note that this does not modify any of the original lists: +```python +a = [1, 2, 3, 4, 5, 6] + [7, 7] + b +# a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10] +``` +- index(value, [startIndex]) – gets the index of the first occurrence of the input value. If the input value is +not in the list a ValueError exception is raised. If a second argument is provided, the search is started at that +specified index. +```python +a.index(7) +# Returns: 6 + +a.index(49) # ValueError, because 49 is not in a. + +a.index(7, 7) +# Returns: 7 + +a.index(7, 8) # ValueError, because there is no 7 starting at index 8 +``` +- insert(index, value) – inserts value just before the specified index. Thus after the insertion the new +element occupies position index. +```python +a.insert(0, 0) # insert 0 at position 0 +a.insert(2, 5) # insert 5 at position 2 +# a: [0, 1, 5, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10] +``` +- pop([index]) – removes and returns the item at index. With no argument it removes and returns the last +element of the list. +```python +a.pop(2) +# Returns: 5 +# a: [0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10] +a.pop(8) +# Returns: 7 +# a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +# With no argument: +a.pop() +# Returns: 10 +# a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +``` +- remove(value) – removes the first occurrence of the specified value. If the provided value cannot be found, a +ValueError is raised. +```python +a.remove(0) +a.remove(9) +# a: [1, 2, 3, 4, 5, 6, 7, 8] +a.remove(10) +# ValueError, because 10 is not in a +``` +- reverse() – reverses the list in-place and returns None. +```python +a.reverse() +# a: [8, 7, 6, 5, 4, 3, 2, 1] +``` +There are also other ways of reversing a list. +- count(value) – counts the number of occurrences of some value in the list. +```python +a.count(7) +# Returns: 2 +``` +- sort() – sorts the list in numerical and lexicographical order and returns None. +```python +a.sort() +# a = [1, 2, 3, 4, 5, 6, 7, 8] +# Sorts the list in numerical order +``` +Lists can also be reversed when sorted using the reverse=True flag in the sort() method. +```python +a.sort(reverse=True) +# a = [8, 7, 6, 5, 4, 3, 2, 1] +``` +If you want to sort by attributes of items, you can use the key keyword argument: +```python +import datetime +class Person(object): + def __init__(self, name, birthday, height): + self.name = name + self.birthday = birthday + self.height = height + + def __repr__(self): + return self.name +l = [Person("John Cena", datetime.date(1992, 9, 12), 175), + Person("Chuck Norris", datetime.date(1990, 8, 28), 180), + Person("Jon Skeet", datetime.date(1991, 7, 6), 185)] + +l.sort(key=lambda item: item.name) +# l: [Chuck Norris, John Cena, Jon Skeet] + +l.sort(key=lambda item: item.birthday) +# l: [Chuck Norris, Jon Skeet, John Cena] + +l.sort(key=lambda item: item.height) +# l: [John Cena, Chuck Norris, Jon Skeet] +``` +In case of list of dicts the concept is the same: +```python +import datetime +l = [{'name':'John Cena', 'birthday': datetime.date(1992, 9, 12),'height': 175}, +{'name': 'Chuck Norris', 'birthday': datetime.date(1990, 8, 28),'height': 180}, +{'name': 'Jon Skeet', 'birthday': datetime.date(1991, 7, 6), 'height': 185}] + +l.sort(key=lambda item: item['name']) +# l: [Chuck Norris, John Cena, Jon Skeet] + +l.sort(key=lambda item: item['birthday']) +# l: [Chuck Norris, Jon Skeet, John Cena] + +l.sort(key=lambda item: item['height']) +# l: [John Cena, Chuck Norris, Jon Skeet] +``` +Sort by sub dict: +```python +import datetime +l = [{'name':'John Cena', 'birthday': datetime.date(1992, 9, 12),'size': {'height': 175, +'weight': 100}}, +{'name': 'Chuck Norris', 'birthday': datetime.date(1990, 8, 28),'size' : {'height': 180, +'weight': 90}}, +{'name': 'Jon Skeet', 'birthday': datetime.date(1991, 7, 6), 'size': {'height': 185, +'weight': 110}}] + +l.sort(key=lambda item: item['size']['height']) +# l: [John Cena, Chuck Norris, Jon Skeet] +``` +**Better way to sort using attrgetter and itemgetter** +
+Lists can also be sorted using attrgetter and itemgetter functions from the operator module. These can help +improve readability and reusability. Here are some examples, +```python +from operator import itemgetter,attrgetter +people = [{'name':'chandan','age':20,'salary':2000}, + {'name':'chetan','age':18,'salary':5000}, + {'name':'guru','age':30,'salary':3000}] +by_age = itemgetter('age') +by_salary = itemgetter('salary') + +people.sort(key=by_age) #in-place sorting by age +people.sort(key=by_salary) #in-place sorting by salary +``` +```itemgetter``` can also be given an index. This is helpful if you want to sort based on indices of a tuple. +```python +list_of_tuples = [(1,2), (3,4), (5,0)] +list_of_tuples.sort(key=itemgetter(1)) +print(list_of_tuples) #[(5, 0), (1, 2), (3, 4)] +``` +Use the attrgetter if you want to sort by attributes of an object, +```python +persons = [Person("John Cena", datetime.date(1992, 9, 12), 175), + Person("Chuck Norris", datetime.date(1990, 8, 28), 180), + Person("Jon Skeet", datetime.date(1991, 7, 6), 185)] #reusing Person class from above + +example + +person.sort(key=attrgetter('name')) #sort by name +by_birthday = attrgetter('birthday') +person.sort(key=by_birthday) #sort by birthday +``` +- clear() – removes all items from the list +```python +a.clear() +# a = [] +``` +- Replication – multiplying an existing list by an integer will produce a larger list consisting of that many copies +of the original. This can be useful for example for list initialization: +```python +b = ["blah"] * 3 +# b = ["blah", "blah", "blah"] +b = [1, 3, 5] * 5 +# [1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5] +``` +Take care doing this if your list contains references to objects (eg a list of lists), see Common Pitfalls - List +multiplication and common references. +- Element deletion – it is possible to delete multiple elements in the list using the del keyword and slice +notation: +```python +a = list(range(10)) +del a[::2] +# a = [1, 3, 5, 7, 9] +del a[-1] +# a = [1, 3, 5, 7] +del a[:] +# a = [] +``` +- Copying +The default assignment "=" assigns a reference of the original list to the new name. That is, the original name +and new name are both pointing to the same list object. Changes made through any of them will be reflected +in another. This is often not what you intended. +```python +b = a +a.append(6) +# b: [1, 2, 3, 4, 5, 6] +``` +If you want to create a copy of the list you have below options. +You can slice it: +``` +new_list = old_list[:] +``` +You can use the built in list() function: +``` +new_list = list(old_list) +``` +You can use generic copy.copy(): +```python +import copy +new_list = copy.copy(old_list) #inserts references to the objects found in the original. +``` +This is a little slower than list() because it has to find out the datatype of old_list first. +
+If the list contains objects and you want to copy them as well, use generic copy.deepcopy(): +```python +import copy +new_list = copy.deepcopy(old_list) #inserts copies of the objects found in the original. +``` +Obviously the slowest and most memory-needing method, but sometimes unavoidable. + +## 2. Accessing list values +Python lists are zero-indexed, and act like arrays in other languages. +```python +lst = [1, 2, 3, 4] +lst[0] # 1 +lst[1] # 2 +``` +Attempting to access an index outside the bounds of the list will raise an IndexError. +```python +lst[4] # IndexError: list index out of range +``` +Negative indices are interpreted as counting from the end of the list. +```python +lst[-1] # 4 +lst[-2] # 3 +lst[-5] # IndexError: list index out of range +``` +This is functionally equivalent to +```python +lst[len(lst)-1] # 4 +``` +Lists allow to use slice notation as lst[start:end:step]. The output of the slice notation is a new list containing +elements from index start to end-1. If options are omitted start defaults to beginning of list, end to end of list and +step to 1: +```python +lst[1:] # [2, 3, 4] +lst[:3] # [1, 2, 3] +lst[::2] # [1, 3] +lst[::-1] # [4, 3, 2, 1] +lst[-1:0:-1] # [4, 3, 2] +lst[5:8] # [] since starting index is greater than length of lst, returns empty list +lst[1:10] # [2, 3, 4] same as omitting ending index +``` +With this in mind, you can print a reversed version of the list by calling +```python +lst[::-1] # [4, 3, 2, 1] +``` +When using step lengths of negative amounts, the starting index has to be greater than the ending index otherwise +the result will be an empty list. +```python +lst[3:1:-1] # [4, 3] + +Using negative step indices are equivalent to the following code: +```python +reversed(lst)[0:2] # 0 = 1 -1 + # 2 = 3 -1 +``` +The indices used are 1 less than those used in negative indexing and are reversed. + +## 3. Checking if list is empty +The emptiness of a list is associated to the boolean ```False```, so you don't have to check ```len(lst) == 0```, but just ```lst``` or ```not lst``` +```python +lst = [] +if not lst: + print("list is empty") +# Output: list is empty +``` + +## 4. : Iterating over a list +Python supports using a ```for``` loop directly on a list: +```python +my_list = ['foo', 'bar', 'baz'] +for item in my_list: + print(item) + +# Output: foo +# Output: bar +# Output: baz +``` +You can also get the position of each item at the same time: +```python +for (index, item) in enumerate(my_list): + print('The item in position {} is: {}'.format(index, item)) + +# Output: The item in position 0 is: foo +# Output: The item in position 1 is: bar +# Output: The item in position 2 is: baz +``` +The other way of iterating a list based on the index value: +```python +for i in range(0,len(my_list)): + print(my_list[i]) + +#output: +>>> +foo +bar +baz +``` +Note that changing items in a list while iterating on it may have unexpected results: +```python +for item in my_list: + if item == 'foo': + del my_list[0] + print(item) + +# Output: foo +# Output: baz +``` +In this last example, we deleted the first item at the first iteration, but that caused bar to be skipped. + +## 5. Checking whether an item is in a list +```python +lst = ['test', 'twest', 'tweast', 'treast'] +'test' in lst +# Out: True +'toast' in lst +# Out: False +slst = set(lst) +'test' in slst +# Out: True +``` + +## 6. Any and All +You can use ```all()``` to determine if all the values in an iterable evaluate to True +```python +nums = [1, 1, 0, 1] +all(nums) +# False +chars = ['a', 'b', 'c', 'd'] +all(chars) +# True +``` +Likewise, ```any()``` determines if one or more values in an iterable evaluate to True +```python +nums = [1, 1, 0, 1] +any(nums) +# True +vals = [None, None, None, False] +any(vals) +# False +``` +While this example uses a list, it is important to note these built-ins work with any iterable, including generators. +```python +vals = [1, 2, 3, 4] +any(val > 12 for val in vals) +# False +any((val * 2) > 6 for val in vals) +# True +``` + +## 7. Reversing list elements +You can use the ```reversed``` function which returns an iterator to the reversed list: +```python +In [3]: rev = reversed(numbers) + +In [4]: rev +Out[4]: [9, 8, 7, 6, 5, 4, 3, 2, 1] +``` +Note that the list "numbers" remains unchanged by this operation, and remains in the same order it was originally. +
+To reverse in place, you can also use the reverse method. +
+You can also reverse a list (actually obtaining a copy, the original list is unaffected) by using the slicing syntax, +setting the third argument (the step) as -1: +```python +In [1]: numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] + +In [2]: numbers[::-1] +Out[2]: [9, 8, 7, 6, 5, 4, 3, 2, 1] +``` + +## 8. Concatenate and Merge lists +1. **The simplest way to concatenate** list1 and list2: +``` +merged = list1 + list2 +``` +2. ```zip``` **returns a list of tuples**, where the i-th tuple contains the i-th element from each of the argument +sequences or iterables: +```python +alist = ['a1', 'a2', 'a3'] +blist = ['b1', 'b2', 'b3'] + +for a, b in zip(alist, blist): + print(a, b) + +# Output: +# a1 b1 +# a2 b2 +# a3 b3 +``` +If the lists have different lengths then the result will include only as many elements as the shortest one: +```python +alist = ['a1', 'a2', 'a3'] +blist = ['b1', 'b2', 'b3', 'b4'] +for a, b in zip(alist, blist): + print(a, b) + +# Output: +# a1 b1 +# a2 b2 +# a3 b3 + +alist = [] +len(list(zip(alist, blist))) + +# Output: +# 0 +``` +For padding lists of unequal length to the longest one with ```Nones``` use ```itertools.zip_longest(itertools.izip_longest in Python 2)``` +```python +alist = ['a1', 'a2', 'a3'] +blist = ['b1'] +clist = ['c1', 'c2', 'c3', 'c4'] + +for a,b,c in itertools.zip_longest(alist, blist, clist): + print(a, b, c) + +# Output: +# a1 b1 c1 +# a2 None c2 +# a3 None c3 +# None None c4 +``` +3. **Insert to a specific index values:** +```python + alist = [123, 'xyz', 'zara', 'abc'] + alist.insert(3, [2009]) + print("Final List :", alist) +``` +Output: + ``` + Final List : [123, 'xyz', 'zara', 2009, 'abc'] + ``` + + ## 9. Length of a list + Use ```len()``` to get the one-dimensional length of a list. +```python +len(['one', 'two']) # returns 2 +len(['one', [2, 3], 'four']) # returns 3, not 4 +``` +```len()``` also works on strings, dictionaries, and other data structures similar to lists. +Note that ```len()``` is a built-in function, not a method of a list object. +Also note that the cost of ```len()``` is ```O(1)```, meaning it will take the same amount of time to get the length of a list +regardless of its length. + +## 10. Remove duplicate values in list +Removing duplicate values in a list can be done by converting the list to a set (that is an unordered collection of +distinct objects). If a ```list``` data structure is needed, then the set can be converted back to a list using the function +```list()```: +```python +names = ["aixk", "duke", "edik", "tofp", "duke"] +list(set(names)) +# Out: ['duke', 'tofp', 'aixk', 'edik'] +``` +Note that by converting a list to a set the original ordering is lost. +
+To preserve the order of the list one can use an OrderedDict +```python +import collections +>>> collections.OrderedDict.fromkeys(names).keys() +# Out: ['aixk', 'duke', 'edik', 'tofp'] +``` + +## 11. Comparison of lists +It's possible to compare lists and other sequences lexicographically using comparison operators. Both operands +must be of the same type. +```python +[1, 10, 100] < [2, 10, 100] +# True, because 1 < 2 +[1, 10, 100] < [1, 10, 100] +# False, because the lists are equal +[1, 10, 100] <= [1, 10, 100] +# True, because the lists are equal +[1, 10, 100] < [1, 10, 101] +# True, because 100 < 101 +[1, 10, 100] < [0, 10, 100] +# False, because 0 < 1 +``` +If one of the lists is contained at the start of the other, the shortest list wins. +```python +[1, 10] < [1, 10, 100] +# True +``` +## 12. Matrix +Starting with a three-dimensional list: +```python +alist = [[[1,2],[3,4]], [[5,6,7],[8,9,10], [12, 13, 14]]] +``` +Accessing items in the list: +```python +print(alist[0][0][1]) +#2 +#Accesses second element in the first list in the first list + +print(alist[1][1][2]) +#10 +#Accesses the third element in the second list in the second list +``` +Performing support operations: +```python +alist[0][0].append(11) +print(alist[0][0][2]) +#11 +#Appends 11 to the end of the first list in the first list +``` +Using nested for loops to print the list: +```python +for row in alist: #One way to loop through nested lists + for col in row: + print(col) +#[1, 2, 11] +#[3, 4] +#[5, 6, 7] +#[8, 9, 10] +#[12, 13, 14] +``` +Note that this operation can be used in a list comprehension or even as a generator to produce efficiencies, e.g.: +```python +[col for row in alist for col in row] +#[[1, 2, 11], [3, 4], [5, 6, 7], [8, 9, 10], [12, 13, 14]] +``` +Not all items in the outer lists have to be lists themselves: +```python +alist[1].insert(2, 15) +#Inserts 15 into the third position in the second list +``` +Another way to use nested for loops. The other way is better but I've needed to use this on occasion: +```python +for row in range(len(alist)): #A less Pythonic way to loop through lists + for col in range(len(alist[row])): + print(alist[row][col]) +#[1, 2, 11] +#[3, 4] +#[5, 6, 7] +#[8, 9, 10] +#15 +#[12, 13, 14] +``` +Using slices in nested list: +```python +print(alist[1][1:]) +#[[8, 9, 10], 15, [12, 13, 14]] +#Slices still work +``` +The final list: +```python +print(alist) +#[[[1, 2, 11], [3, 4]], [[5, 6, 7], [8, 9, 10], 15, [12, 13, 14]]] +``` + + + + + + + diff --git a/Python/Operators/1. Arithmetic Operators.ipynb b/Python/Operators/1. Arithmetic Operators.ipynb new file mode 100644 index 0000000000..0462df0096 --- /dev/null +++ b/Python/Operators/1. Arithmetic Operators.ipynb @@ -0,0 +1,289 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2f2f2a45-f886-408e-9dfa-8380481dc09c", + "metadata": {}, + "source": [ + "# Arithmetic Operators\n", + "Arithmetic operations are widely used for mathematical calculations." + ] + }, + { + "cell_type": "markdown", + "id": "88741106-c070-44df-b536-73479d9df689", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "c40f9e97-2506-4bb0-b5df-1ba82a440b37", + "metadata": {}, + "source": [ + " ## Types of Arithmetic Operators" + ] + }, + { + "cell_type": "markdown", + "id": "ae9c4626-fd6b-4fd6-83c2-f5a883b5042a", + "metadata": {}, + "source": [ + "#### 1. Addition Operator ( + ) :\n", + "It adds two operands together, or acts as a sign for a single operand." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "065254e4-2c6b-486d-b628-1c1c543cddf4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a + b = 15\n" + ] + } + ], + "source": [ + "a = 5\n", + "b = 10\n", + "\n", + "print(\"a + b =\", a + b)" + ] + }, + { + "cell_type": "markdown", + "id": "6f0cb251-e53d-4eed-a147-8415b8d689f4", + "metadata": {}, + "source": [ + "#### 2. Subtraction Operator ( - ) : \n", + "It subtracts two operands or acts as a sign for a single operand." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4975f0ea-66c0-44b5-ab74-7656aac8dd6e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a - b = 20\n" + ] + } + ], + "source": [ + "a = 30\n", + "b = 10\n", + "\n", + "print(\"a - b =\", a - b)" + ] + }, + { + "cell_type": "markdown", + "id": "9cbc1684-b54c-46b0-b481-b0e664481651", + "metadata": {}, + "source": [ + "#### 3. Multiplication Operator ( * ) :\n", + "It multiplies two operands." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "68fd55aa-8599-4a80-93f3-1074f7192076", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a * b = 75\n" + ] + } + ], + "source": [ + "a = 5\n", + "b = 15\n", + "print (\"a * b = \", a * b)" + ] + }, + { + "cell_type": "markdown", + "id": "f2464509-4e00-4e91-89ed-179565404116", + "metadata": {}, + "source": [ + "#### 4. Division Operator ( / ) :\n", + "It divides left operand with right operand." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "455cc46d-5aa7-4824-b0c0-164540df264f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a / b = 3.0\n" + ] + } + ], + "source": [ + "a = 15\n", + "b = 5\n", + "print (\"a / b = \", a / b)" + ] + }, + { + "cell_type": "markdown", + "id": "452bfb9c-43ce-4c4e-9417-43046cc8dfb6", + "metadata": {}, + "source": [ + "#### 5. Modulus Operator ( % ) :\n", + "It returns a remainder after dividing two operands." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2037ac5a-1575-4f4b-bf51-ca195c1c0570", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a % b = 5\n" + ] + } + ], + "source": [ + "a = 50\n", + "b = 15\n", + "print (\"a % b = \", a % b)" + ] + }, + { + "cell_type": "markdown", + "id": "7003faa5-8d7d-4520-81f0-5b9c93cf66c5", + "metadata": {}, + "source": [ + "#### 6. Floor Division Operator ( // ) :\n", + "Floor division is a normal division operation except that it returns the largest possible integer. This integer is either less than or equal to the normal division result." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ef7225b0-e7b1-43a7-a3b7-d7a661f27500", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a // b = 5\n" + ] + } + ], + "source": [ + "a = 22\n", + "b = 4\n", + "\n", + "print (\"a // b = \", a // b)" + ] + }, + { + "cell_type": "markdown", + "id": "3f19f93a-9d2d-45d4-9404-e4e2de6edca4", + "metadata": {}, + "source": [ + "#### 7. Exponentiation Operator ( ** ) :\n", + "It returns left operand raised to the power of right operand." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ad79e690-8869-49b3-a54e-f56c7ec59d1f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a ** b = 32\n" + ] + } + ], + "source": [ + "a = 2\n", + "b = 5\n", + "\n", + "print (\"a ** b = \", a ** b)" + ] + }, + { + "cell_type": "markdown", + "id": "10fde0db-1264-4001-a315-5cdd6858c40a", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "722f5042-cbea-43b8-87d0-b7d07af7b70f", + "metadata": {}, + "source": [ + "## Summary" + ] + }, + { + "cell_type": "markdown", + "id": "b8ba8898-5a39-4a7c-b0e9-b04850bdb3eb", + "metadata": {}, + "source": [ + "| Operator \t| Function \t| Expression \t| Example \t| Example Output \t|\n", + "|:--------:\t|:----------------------------------------------------:\t|:----------:\t|:--------:\t|:--------------:\t|\n", + "| + \t| Addition \t| a+b \t| 6 + 5 \t| 11 \t|\n", + "| - \t| Subtraction \t| a-b \t| 6 - 5 \t| 1 \t|\n", + "| * \t| Multiplication \t| a*b \t| 6 * 5 \t| 30 \t|\n", + "| / \t| Division \t| a/b \t| 60 / 5 \t| 12 \t|\n", + "| % \t| Modulus (Remainder) \t| a%b \t| 6 % 5 \t| 1 \t|\n", + "| // \t| Floor Division (Round Down whole number) \t| a//b \t| 7.2 // 2 \t| 3.0 \t|\n", + "| ** \t| Left operand raised to the power of right (Exponent) \t| a**b \t| 2.5 ** 3 \t| 15.625 \t|" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Python/Operators/2. Assignment Operators.ipynb b/Python/Operators/2. Assignment Operators.ipynb new file mode 100644 index 0000000000..932228faf0 --- /dev/null +++ b/Python/Operators/2. Assignment Operators.ipynb @@ -0,0 +1,337 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "082fb6e3-832b-41cb-a9d3-229eb304a719", + "metadata": {}, + "source": [ + "# Assignment Operators\n", + "Assignment operators are used to assign values to variables." + ] + }, + { + "cell_type": "markdown", + "id": "b02a0cc5-f82e-4b11-b353-a3930f7022ef", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "00bf77bd-b1a9-40b1-bb5e-2bf7b7c8cc0b", + "metadata": {}, + "source": [ + "## Types of Assignment Operators" + ] + }, + { + "cell_type": "markdown", + "id": "90649f1a-5ad9-49ed-b969-74398f3e2637", + "metadata": {}, + "source": [ + "#### 1. Simple assignment operator ( = ) : \n", + "It assigns the right side operand expression or value to the left side operand." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "192e3730-3043-4578-994d-85526c27e433", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 5\n" + ] + } + ], + "source": [ + "a = 5 # assign value \n", + "b = a # assign the expression/value to the left operand \n", + "\n", + "print( \"Output = \", b) " + ] + }, + { + "cell_type": "markdown", + "id": "a17550b2-e681-4cde-b19b-1643ea64873f", + "metadata": {}, + "source": [ + "#### 2. Add and Assignment Operator ( += ) :\n", + "It adds the right side operand or value to the left operand before assigning the result to the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d62b2c93-631a-4755-a95b-43955eaaafce", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 8\n" + ] + } + ], + "source": [ + "a = 5 # assign value of a\n", + "b = 3 # assign value of b\n", + "\n", + "a += b # this is same as a = a + b\n", + " \n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "2423f0ed-6157-473e-a906-3b8d7ffcc433", + "metadata": {}, + "source": [ + "#### 3. Subtract and Assignment Operator ( -= ) :\n", + "It subtracts the right side operand or value from the left operand and stores the value to the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4b220f2e-a289-4033-b32d-1d97327df2e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 2\n" + ] + } + ], + "source": [ + "a = 5 # assign value of a\n", + "b = 3 # assign value of b\n", + "\n", + "a -= b # this is same as a = a - b\n", + "\n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "f5d2d40e-06f7-461c-aa4c-c8c0fd063048", + "metadata": {}, + "source": [ + "#### 4. Multiply and Assignment Operator ( *= ) : \n", + "It multiplies the right side operand or value to the left operand and stores the product to the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0aa9f8fa-1587-49f4-8f1f-ebb35d5a9f2a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 60\n" + ] + } + ], + "source": [ + "a = 15 # assign value of a\n", + "b = 4 # assign value of b\n", + "\n", + "a *= b # this is same as a = a * b\n", + "\n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "cec31082-ce1c-476e-9f3a-5b39009b5ed9", + "metadata": {}, + "source": [ + "#### 5. Divide and Assignment Operator ( /= ) :\n", + "It divides the left operand by the right operand before assigning the result to the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0096169d-f67a-4bc0-8050-141d37ca7215", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 20.0\n" + ] + } + ], + "source": [ + "a = 80 # assign value of a\n", + "b = 4 # assign value of b\n", + "\n", + "a /= b # this is same as a = a / b\n", + "\n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "842d7a48-4fbf-440a-b8c2-239cf55230ef", + "metadata": {}, + "source": [ + "#### 6. Modulus and Assignment Operator ( %= ) :\n", + "Itr divides the left operand by the right side operand or value and places the remainder to the left side operand." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "0765a349-d881-48bb-91d8-e24864eab263", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 2\n" + ] + } + ], + "source": [ + "a = 80 # assign value of a\n", + "b = 6 # assign value of b\n", + " \n", + "a %= b # this is same as a = a % b \n", + "\n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "2ba5dba9-5c2e-4322-97bb-7e0a6f1f3803", + "metadata": {}, + "source": [ + "#### 7. Floor division and Assignment Operator ( //= ) :\n", + "It divides the left operand by the right side operand or value and then assigns floor (value) to the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b56188a9-50a3-4982-92ca-b004c5bb993f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 21\n" + ] + } + ], + "source": [ + "a = 131 # assign value of a \n", + "b = 6 # assign value of b \n", + "\n", + "a //= b # this is same as a = a // b\n", + " \n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "46825d89-9eed-4962-a8b3-7663c9a53e84", + "metadata": {}, + "source": [ + "#### 8. Exponent and Assignment Operator ( **= ) : \n", + "It is used to get the exponent value using both operands and assign the result into the left operand." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "55bb1bda-a7dc-484b-8e32-378cd7806a2e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output = 64\n" + ] + } + ], + "source": [ + "a = 4 # assign value of a \n", + "b = 3 # assign value of b\n", + " \n", + "a **= b # this is same as a = a ** b\n", + "\n", + "print( \"Output = \", a) " + ] + }, + { + "cell_type": "markdown", + "id": "d7fcb254-361f-47b4-ae83-d555cbd4e20a", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "aa6e160b-3da7-4549-9b29-382d5e708335", + "metadata": {}, + "source": [ + "## Summary" + ] + }, + { + "cell_type": "markdown", + "id": "9a88a1ad-86c4-4463-b16e-49e539f69704", + "metadata": {}, + "source": [ + "| Operator \t| Expression \t| Same as \t|\n", + "|:--------:\t|:----------:\t|:----------:\t|\n", + "| = \t| x = y \t| x = y \t|\n", + "| += \t| x += y \t| x = x + y \t|\n", + "| -= \t| x -= y \t| x = x - y \t|\n", + "| *= \t| x *= y \t| x = x * y \t|\n", + "| /= \t| x /= y \t| x = x / y \t|\n", + "| %= \t| x %= y \t| x = x % y \t|\n", + "| //= \t| x //= y \t| x = x // y \t|\n", + "| **= \t| x **= y \t| x = x ** y \t|" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Python/Operators/Python_3_3_What_are_Membership_and_Identity_Operators_.ipynb b/Python/Operators/Python_3_3_What_are_Membership_and_Identity_Operators_.ipynb new file mode 100644 index 0000000000..eff99994ad --- /dev/null +++ b/Python/Operators/Python_3_3_What_are_Membership_and_Identity_Operators_.ipynb @@ -0,0 +1,207 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Python 3.3: What are Membership and Identity Operators?.ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "UyOeoIVvDS-I" + }, + "source": [ + "# **Membership Operator in Python🐍**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TNxg6_-IDeSO" + }, + "source": [ + "Python **Membership operators** are used to validate the membership of a value. It tests for memberships in sequences, for example, strings, lists and tuples.\n", + "\n", + "**In simple words**, *Membership operators are used to test if a sequence is present in an object*. \n", + "\n", + "\n", + "\n", + "* `in` operator checks whether an element is present in a sequence or not. It evaluates to `True` if the element is present, else it evaluates to `False`.\n", + "\n", + "* Whereas, the `not in` operator evaluates to `True` if the element is not present in the sequence, else it evaluates to `False`.\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "YEZRDjG0CVaY", + "outputId": "0715e897-6599-4254-83ab-ab1c1c0307bf" + }, + "source": [ + "# Example of in operator\n", + "x = 'Participant'\n", + "gwoc_list = ['Contributor','Mentor','Supervisor']\n", + "\n", + "print(x in gwoc_list)\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "earHgoGyGfGX", + "outputId": "edadd055-1488-4f8b-f8e9-6d05e42a7251" + }, + "source": [ + "# Example of not in operator\n", + "x = 'Participant'\n", + "gwoc_list = ['Contributor','Mentor','Supervisor']\n", + "\n", + "print(x not in gwoc_list)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "d0eb-IC4G10G" + }, + "source": [ + "# **Identity Operators in Python**🐍\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-id1PavqLkD7" + }, + "source": [ + "Before learning about **Identity Operators** in Python, we should keep something in mind.\n", + "\n", + "***Everything in Python is an object, and each object is stored in a specific memory location.***\n", + "\n", + "\n", + "* `is` operator checks whether two variables refer to the same object in memory or not. It evaluates to `True` if both operands refer to the same object, else it evaluates to `False`.\n", + "\n", + "* Whereas, the `is not` operator evaluates to `False` if both operands refer to the same object, else it evaluates to `True`\n", + "\n", + "The `is` and `is not` operators can be used to \n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "kmjnD52bIxAK", + "outputId": "db51c7fd-79ef-42d0-cf1f-f52b7d5a89ba" + }, + "source": [ + " #Example of is operator\n", + " a = 5\n", + " if type(a) is int:\n", + " print(\"Yes\")\n", + " else:\n", + " print(\"No\")\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Yes\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TnopwDYWNzwt", + "outputId": "fc453384-18ed-4417-8215-7edc2ee93fca" + }, + "source": [ + "#Example of is not operator\n", + "a = 5.5\n", + "if type(a) is not int:\n", + " print(\"not int\")\n", + "else:\n", + " print(\"int\")\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "not int\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QsUI-UAFOiCP" + }, + "source": [ + "\n", + "**What is the difference between `==` , `!=` and `is` and `is not` operator?**\n", + "\n", + "\n", + "\n", + "* When do we use `==` and `!=`?\n", + "\n", + " In this case, we are checking for the **equality** of two objects.\n", + " We are not concerned about the memory addresses of the objects in question.\n", + "* When do we use `is` and `is not`?\n", + "\n", + " In this case, we check whether or not two variables point to the same object in **memory**. \n", + "\n", + " *The main use case for these operators is when you’re comparing to `None`.*\n" + ] + } + ] +} \ No newline at end of file diff --git a/Python/Operators/README.md b/Python/Operators/README.md new file mode 100644 index 0000000000..7036b2c799 --- /dev/null +++ b/Python/Operators/README.md @@ -0,0 +1,12 @@ +# Operators +Operators are special symbols in Python that carry out arithmetic or logical computation. The value that the operator operates on is called the operand. + +### Types of Operators : + +1. [**Arithmetic Operators**](./1.%20Arithmetic%20Operators.ipynb) +2. [**Assignment Operators**](./2.%20Assignment%20Operators.ipynb) +3. [**Comparison Operators**]() +4. [**Logical Operators**]() +5. [**Identity operators**](https://github.com/SHAIMA-HAQUE/winter-of-contributing/blob/Python/Python/Operators/Python_3_3_What_are_Membership_and_Identity_Operators_.ipynb) +6. [**Membership operators**](https://github.com/SHAIMA-HAQUE/winter-of-contributing/blob/Python/Python/Operators/Python_3_3_What_are_Membership_and_Identity_Operators_.ipynb) +7. [**Bitwise operators**]() diff --git a/Python/README.md b/Python/README.md new file mode 100644 index 0000000000..c6281e8fe8 --- /dev/null +++ b/Python/README.md @@ -0,0 +1,27 @@ + + +# Title (name of the field) + +## Index +- [GitHub](./Git_And_GitHub) +- [Brief History of Python](./History_Of_Python) +- [What_Is_Programming_Language](./What_Is_Programming_Language) +- [What is type conversion ?](./Type_Conversion) +- [Use_Cases](./Use_Cases) +- [Virtual Environment](./Virtual_Environment) +- [Operators](./Operators) +- [List_&_Matrix](./List_&_Matrix) +- [What_is_an_object_in_Python](./What_is_an_object_in_Python) +## Learning path +1. Git & GitHub +2. Brief history of python +3. What is a programming language? +4. What is type conversion ? +5. Use cases of Python +6. Virtual Environment +7. Operators +8. List_&_Matrix diff --git a/Python/Type_Conversion/README.md b/Python/Type_Conversion/README.md new file mode 100644 index 0000000000..13c0850eed --- /dev/null +++ b/Python/Type_Conversion/README.md @@ -0,0 +1,75 @@ + # Type Conversion in Python + + +The process of converting the value of one data type (integer, string, float) to another data type is called type conversion + +There are two types of Type Conversion in Python: + +1)Implicit Type Conversion + +2)Explicit Type Conversion + + +## Implicit Type Conversion +In Implicit type conversion of data types in Python, the Python interpreter automatically converts one data type to another without any user involvement.The data type conversion takes place during compilation or during the run time. + +```bash + + +a = 4 + +print("a is of type:",type(a)) + +b = 10.6 +print("b is of type:",type(b)) + +a = a + b + +print(a) +print("a is of type:",type(a)) + + + +```` + +Output + +![image](https://user-images.githubusercontent.com/66876387/133757298-f88c191f-e0a2-436a-b580-80779c8f47b7.jpg) + +As we can see the type od ‘a’ got automatically changed to the “float” type from the “integer” type. this is a simple case of Implicit type conversion in python. + + +## Explicit Type Conversion + +In Explicit Type Conversion, users convert the data type of an object to required data type. We use the predefined functions like int(), float(), str(), etc to perform explicit type conversion. + + +This is also known as typecasting as here user casts the data type of the objects + + +```bash + +# initializing string +a = "56" + +# printing string converting +b = int(a) +print (f"After converting to integer: {c}") + +# printing string converting to float +c = float(a) +print (f"After converting to float : {c}") + + +``` + +![image](https://user-images.githubusercontent.com/66876387/133761854-f7f36cca-a9bc-4f00-903d-ce4654dec5af.jpg) + + +Some common Explicit Type conversion in python + +1. int(a): This function converts any data type to integer. +2. float(): This function is used to convert any data type to a floating-point number +4. tuple() : This function is used to convert to a tuple. +5. set() : This function returns the type after converting to set. +6. list() : This function is used to convert any data type to a list type. \ No newline at end of file diff --git a/Python/Use_Cases/README.md b/Python/Use_Cases/README.md new file mode 100644 index 0000000000..c91b10544b --- /dev/null +++ b/Python/Use_Cases/README.md @@ -0,0 +1,115 @@ +# Use cases of Python + +An overview of major use cases of python programming language. + +## Major Use Cases + +From simple web application development to big data analysis and infrastructure automations, python has several frameworks and libraries to provide support for various tasks and is utilized by several roles in the IT industry such as developers, data analysts, IT infrastructure specialists, etc. A few of the use cases are listed below: + +- Web development +- Data Science +- Machine Learning +- DevOps +- Internet of Things +- Web Scraping + +![use_cases_final](https://user-images.githubusercontent.com/48587119/133889048-36d85537-ffdd-419b-94fa-99df4cf78679.png) + +## Web Development + +- Python is mainly used for server-side web development. +- Python has a proven track record in software development, testing and scripting. +- Python has been used for web development in a variety of spheres such as travel, healthcare, transport, finance and many others. +- Some of the most popular web development frameworks used for Python are as follows: + - **Django**: + - It came across as the most popular full stack web development python framework in 2021. + - Open-Source. + - This framework follows DRY (Don't Repeat Yourself) principle. + - Has authentication support. + - Object-relational mapper support. + - **Flask**: + - Lightweight extensible framework with module design support. + - Open-Source. + - Supports secure cookies for managing client sessions. + - Unit testing supported. + - **Web2Py**: + - Scalable full stack framework + - Open-Source. + - Can run on any hosting platform for Python or Java + - Follows MVC pattern + - Backward compatible + - Role based identity and access management support provided + - **CherryPy**: + - Object oriented microframework. + - Open-Source. + - Inbuilt support for testing, profile and code coverage calculation. + - Compatible with Android. + +## Data Science + +- Python being an easy to use and having a relatively simpler syntax as compared to other programming languages, has been widely used in the field of data science. +- Operations in data science for which python is used include data collection, cleaning, exploration, modelling and visualization. +- Python provides functionality to deal with statistics, mathematics and scientific functions. +- Python provides a variety of libraries which support big data operations: + - **NumPy**: + - It stands for Numerical Python. + - It is used for mathematical operations on large dimensional arrays. + - Enhanced performance through vectorization support on operations. + - **Pandas**: + - It is a library used for data visualization and manipulation. + - Provides functions that takes raw data (dictionaries or spreadsheets) and converts it into a tabular format. + - **Matplotlib**: + - It is a library used for data visualization. + - Outputs the result in a variety of formats like line graphs, pie-charts, histograms, etc. + - **Scipy **: + - It is used for scientific and mathematical computing. + - Provides modules for linear algebra, image processing, optimization, etc. + +## Machine Learning + +- Python being easy to experiment with new ideas and to create prototypes, has been widely used in field of Machine Learning. +- Python provides a huge amount of inbuilt libraries that support machine learning. +- Major libraries provided by python for machine learning: + - **TensorFlow**: + - Tensor is a mathematical concept that specifies relationship between objects related to vector space. + - TensorFlow, as the name suggests, is a framework for running operations around tensors. + - Open-Source. + - It was developed by Google. + - Has been widely used for deep learning researches. + - **Scikit-learn**: + - Scikit-learn was originally developed as a Google Summer of Code project. + - It is one of the most popular open source machine learning libraries. + - It is based on NumPy and SciPy libraries. + - It supports supervised and unsupervised algorithms. + - **Keras**: + - It provides APIs for highly neural networks. + - It is built on top of libraries like TensorFlow. + - It is good for design and building neural networks for beginners. + +## DevOps + +- Python being compatible with any major OS, provides DevOps Engineers, the ability to automate a number of tasks. +- Python being simple to learn, is easy to adapt for non-programmers. +- Python provides libraries for infrastructure automation within various cloud providers. +- It can be used to create serverless functions within services provided by cloud providers. +- Some of the services for which python can be used as runtime are as follows: + - **AWS Lambda**: It is a serverless application building and deployment service provided by Amazon Web Services. + - **Azure Functions**: It is a serverless application building and deployment service provided by Microsoft Azure. + - **Google Cloud Functions**: It is a serverless application building and deployment service provided by Google Cloud Platform. +- Cloud providers also provide libraries and SDK support for python such as the boto library used in AWS, to interact with infrastructure. +- Python can be utilized by Continuous Integration and Continuous deployment tools like Jenkins and TeamCity to automate Software Development LifeCycle. + +## Internet of Things (IoT) + +- Python is mainly used for data intensive operations for IoT edge devices. +- Python, being a language with simple syntax, allows to create light-weight code with complex functionalities. +- Python, being a large provider of machine learning libraries, helps integrate ML tools with data provided by IoT devices. +- IoT Cloud provider services such AWS IoT Core, provide python SDKs for their services. +- Python libraries like GPIO Zero integrates with Raspberry Pi and can be used to control I/O operations. +- Python provides protocols like MQTT for connecting IoT devices. + +## Web Scraping + +- Python provides support to extract and process large amounts of data for a specific purpose. +- Python scripting can be used in tools like Selenium which are primarily used for automations involving web scraping. +- Python has a large number of libraries that support extraction and manipulation of data. diff --git a/Python/Virtual_Environment/README.md b/Python/Virtual_Environment/README.md new file mode 100644 index 0000000000..30eed0bca8 --- /dev/null +++ b/Python/Virtual_Environment/README.md @@ -0,0 +1,45 @@ + + + + + + +# Virtual environment + + +# + +## What is it? +### A cooperatively isolated runtime environment that allows Python users and applications to install and upgrade Python distribution packages without interfering with the behaviour of other Python applications running on the same system. +---- +## Python Virtual environment +### Python applications may often use packages and modules that don’t come as part of the standard library. This might require the installation of the packages and modules needed. +### On installation, the older versions of the packages/modules get deleted.In order to prevent this, a Virtual environment is created that contains a Python installation for a particular version of Python, plus a number of additional packages. +
+---- +## Creating a Virtual environment +### The module used to create and manage virtual environments is called *venv*. *venv* will usually install the most recent version of Python available. If you have multiple versions on your system, you can select a specific Python version by running the version you want.
To create a virtual environment, decide upon a directory where you want to place it, and run the venv module as a script with the directory path: +``` +python3 -m venv project-env +``` +### This creates the *project-env* directory if it doesn’t exist, along with the directories containing a copy of the Python interpreter, the standard library, and various supporting files. A common directory location for a virtual environment is *.venv*.

Once you’ve created a virtual environment, you may activate it.
On Windows: +``` +project-env\Scripts\activate.bat +``` +### On Unix/MacOS: +``` +source project-env/bin/activate +``` + +--- +### A virtual environment can be extremely useful when developing multiple projects that require different dependencies, developing across multiple computers, and making it easier to collaborate with others on projects.
There is no limit to the number of environments you can have since they’re just directories containing a few scripts. + + diff --git a/Python/Virtual_Environment/img/venv.jpeg b/Python/Virtual_Environment/img/venv.jpeg new file mode 100644 index 0000000000..318086a641 Binary files /dev/null and b/Python/Virtual_Environment/img/venv.jpeg differ diff --git a/Python/What_Is_Interpreter/README.md b/Python/What_Is_Interpreter/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/What_Is_Interpreter/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/Python/What_Is_Programming_Language/README.md b/Python/What_Is_Programming_Language/README.md new file mode 100644 index 0000000000..a5776b7594 --- /dev/null +++ b/Python/What_Is_Programming_Language/README.md @@ -0,0 +1,92 @@ + +# Python: 1.4 What is a programming language? #77 + +## **Programming Language** +▶ A programming language is a set of rules that +provides a way of telling a computer what +operations to perform. + +▶ A programming language is a set of rules for +communicating an algorithm + +▶ It provides a linguistic framework for +describing computations + +▶ English is a natural language. +It has +words, symbols and grammatical rules. + +▶ A programming language also has words, +symbols and rules of grammar. + +▶ The grammatical rules are called syntax. + +▶ Each programming language has a different set +of syntax rules. +## **1. Monolithic programming paradigm:** +- monolithic means a single block of statements. +- monolithic paradigm consists of sequence of statements uses global data. +- Useful for developing high level language (Basic) and assembly language (languages related to micro processors). +- Global data defined on top of the all the statements. +- Global data can be accessed by any sections of a program. +- How big the program all the statements should be in a same program +- There is no subroutines. +- We can jump from one section to another section within program using goto and jump instructions. +### **Drawbacks** +- no security for the data +- since all statements embedded in single program, debugging is difficult. +- no reusability. + +## **2. Procedural programming/imperative paradigm:** +- Main program task is sub divided into sub task, each sub task implement as a separate procedure. +- Each procedure perform a specific task. +- Each procedure is also called as modules. +- The sequence of execution of instructions can be altered. +- There is no repetition of the code. +- Portan and cobol languages developed with this paradigm. + +![3](https://user-images.githubusercontent.com/86145099/133547760-96782e21-9843-4c51-ab3b-6a7f750cc757.PNG) + +### **Advantages:** +- Program can be controlled better than monolithic paradigm. +- Debugging is easy. +- global data can be accessed by the all the sub tasks of a program so no security for the data. +### **Disadvantages:** +- Global data can be accessed by the all the sub tasks of a program so no security for the data. +- No reusability. +## **3. Structured programming/modular programming:** +- Entire program is divided into modules. +- Each module has set of functions each function performs single identifiable sub task. +- Each function has a local data and can also access global data if required. +- Local data of one function cannot access from another function. +- Follows the top down approach. +- Removes the goto statement is replaced with else if etc. +Ex: C,C++,java, C# + +![2](https://user-images.githubusercontent.com/86145099/133547137-3e5d5436-1327-4956-90a7-22e1003ee93f.PNG) + +### **Advantages:** +- Larger programs are implemented easilly. +- Debugging is easy. +- Security for the data as local data cannot access outside of the function. +- Reusability. +- Control of the project is easy +- Maintenance is easy +### **Disadvantages:** +- Global data can be shared among the modules. +- Main focus on functions than the data +## **4. Object oriented programming paradigm:** +- Models real world objects +- Uses bottom up approach +- Problem is decomposed into objects and build the data and functions around these objects. +- Program organized around the objects , grouped into classes. +- Data of the objects can be accessed only with the function associated with that objects. +- Objects can communicate with each other +- Empasize more on data. +Ex: c++,java, python, ruby and php. + +![1](https://user-images.githubusercontent.com/86145099/133546964-cb4f795d-4676-409c-9502-f7312151d989.PNG) +### **Advantages:** +- Provides security to data +- Reusability. +- Models the real world diff --git a/Python/What_is_an_object_in_Python/What_is_an_object_in_Python.md b/Python/What_is_an_object_in_Python/What_is_an_object_in_Python.md new file mode 100644 index 0000000000..6bf35f8475 --- /dev/null +++ b/Python/What_is_an_object_in_Python/What_is_an_object_in_Python.md @@ -0,0 +1,23 @@ +# What is an object in Python + +Python is an object-oriented programming language. Everything is in Python treated as an object, including variable, function, list, tuple, dictionary, set, etc. Every object belongs to its class. For example - An integer variable belongs to integer class. An object is a real-life entity. An object is the collection of various data and functions that operate on those data. An object contains the following properties. + +- State - The attributes of an object represents its state. It also reflects the properties of an object. +- Behavior - The method of an object represents its behavior. +- Identity - Each object must be uniquely identified and allow interacting with the other objects. +Let's understand the object in the aspect of classes. + +The classes and objects are the essential key to the object-oriented programming. Classes are the blueprint of the object. Classes are used to bundling the data and functionality together. Each newly created class must have its object. Let's understand real-life example of class and object. + +A human is a class which may have may attributes such as walking, sleeping, thinking, etc. Suppose we want to name and age of 100 humans, so we don't need to create a class for every person. We just need to instantiate the multiple objects of that perticular class. + +The class contains the user-defined data structure that holds the own data members such as variables, constructs, and member functions, which can be accessed by creating an object of the class. + +Classes are a fundamental part of modern programming languages. Python makes it easy to make a class and use it to create objects. Today you will learn the essentials of programming with classes: how to initialize them, write methods, store fields, and more. + + + + + +https://user-images.githubusercontent.com/85386116/133895461-d1206716-045a-4026-9588-ad6fd526115b.mp4 + diff --git a/Python/Why_Python/README.md b/Python/Why_Python/README.md new file mode 100644 index 0000000000..c48dddab1d --- /dev/null +++ b/Python/Why_Python/README.md @@ -0,0 +1 @@ +# Title (name of the topic) \ No newline at end of file diff --git a/README.md b/README.md index 6564c8725e..d48b54b2dc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@

-**GirlScript Winter of Contributing** is a three-month newly established initiative by **[GirlScript Foundation](https://www.girlscript.tech/home)** to be conducted during winters. GWOC encourages individuals to share their knowledge and ideas to develop technical skills and gain valuable experience in the field of tech education. Over the course of the program, participants can contribute to a variety of themes under the guidance of an expert facilitator. GWOC aims to create world's largest multilingual repository + +**GirlScript Winter of Contributing** is a three-month newly established initiative by **[GirlScript Foundation](https://www.girlscript.tech/home)** that will take place over the winter months. GWOC invites people to contribute their expertise and ideas in order to improve their technical abilities and obtain significant experience in the field of tech education.Throughout the program, the participants can contribute to a range of themes while being guided by an expert facilitator.The goal of GWOC is to develop the world's largest multilingual repository.🧡 + +- [ ] Audio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion) +- [ ] Video (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc) +- [x] Documentation (Content Creation in the form of codes or tutorials) +- [ ] Other (If you choose other, Please mention changes below) +- [x] Screenshots and Explaination + +
+ +## Domain of Contribution 📊 + + + +- [x] UI/UX + +
+ +## Checklist ✅ + + + +- [x] I follow [Contributing Guidelines](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CONTRIBUTING.md) & [Code of conduct](https://github.com/girlscript/winter-of-contributing/blob/main/.github/CODE_OF_CONDUCT.md) of this project. +- [x] I have performed a self-review of my own code or work. +- [x] I have commented my code, particularly in hard-to-understand areas. +- [x] My changes generates no new warnings. +- [x] I'm GWOC'21 contributor + +
+ + + +## Screenshots / Gif (Optional) 📾 + +
diff --git a/UI_UX/Essential_Screens/Calendar_Screen/Screens/Desc.md b/UI_UX/Essential_Screens/Calendar_Screen/Screens/Desc.md new file mode 100644 index 0000000000..63943fe8d1 --- /dev/null +++ b/UI_UX/Essential_Screens/Calendar_Screen/Screens/Desc.md @@ -0,0 +1,45 @@ +# Calendar Screen + +A calender app design with following screens + +- Splash Screen + +![image](https://user-images.githubusercontent.com/55156585/133896747-79462cab-ec31-41e9-a7f9-3a730fbdc7b1.png) + +This is the pop-up screen for app start-up + ``click`` to continue + + +- Monthly view + +![image](https://user-images.githubusercontent.com/55156585/133896781-3ae2e739-acc5-408d-8e10-6096b4f89ee3.png) + +This is the home page or default screen on starting the app. +Navigation + - Clicking ``18`` navigates to "Daily view" + - clicking ``+ Add event`` navigates to "Event Addition" screen + + +- Event Addition + +![image](https://user-images.githubusercontent.com/55156585/133896794-92b21ae0-6ffa-4a82-a4a3-347f7281967d.png) + +This is the event addition screen + ``click`` to continue + + +- Daily View + +![image](https://user-images.githubusercontent.com/55156585/133896808-88b9c503-0f77-4f71-bac1-288a9c025121.png) + +The daily schedule with all the events and vacant time is diplayed here. +Navigation + - Clicking ``+`` navigates to "Event Addition" screen + - clicking ``18th Sept`` navigates to "Monthly view" + +
+ +This is the [Figma Protype](https://www.figma.com/proto/yPdKVuRAFNUeikCTRdcEIw/Calendar_GWOC?node-id=2%3A67&scaling=scale-down&page-id=0%3A1&starting-point-node-id=2%3A67), check out the link. + + +Made by [Saksham](https://www.linkedin.com/in/sakshammishra/) :+1: diff --git a/UI_UX/Introduction_to_Figma/Part_1_What_is_Figma_.ipynb b/UI_UX/Introduction_to_Figma/Part_1_What_is_Figma_.ipynb new file mode 100644 index 0000000000..bf1a8bfd40 --- /dev/null +++ b/UI_UX/Introduction_to_Figma/Part_1_What_is_Figma_.ipynb @@ -0,0 +1,276 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Part 1-What is Figma?.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "BAM7qCZYD31w" + }, + "source": [ + "## What is Figma?\n", + "\n", + "Figma is a web-based graphics editing and user interface design app. You can use it to do all kinds of graphic design work from wireframing websites, designing mobile app interfaces, prototyping designs, crafting social media posts, and everything in between.\n", + "\n", + "Figma is different from other graphics editing tools. Mainly because it works directly on your browser. This means you get to access your projects and start designing from any computer or platform without having to buy multiple licenses or install software.\n", + "\n", + "![picture](https://drive.google.com/uc?export=view&id=1uXghCED5MJaEDh_0Tgo06tT1qTg3tUfR)\n", + "\n", + "---\n", + "## Key features of Figma \n", + "\n", + "* Modern pen tool that lets you draw in any direction and instant arc designs\n", + "\n", + "* Open Type font features\n", + "* Automated tasks via plugins for repeated elements to speed up projects\n", + "* Smart selection tool with auto adjustments for spacing, arrangement, and organizing\n", + "* Create design systems and components\n", + "* Drag and drop accessible libraries\n", + "* Inspect design files and grab code snippets\n", + "* Easy export feature, that has a live link (not a flat PDF)\n", + "* Design interactions and mobile optimized prototypes\n", + "* Smart animation to connect objects and transitions\n", + "* Edit together with teams in real-time in shared design spaces\n", + "* Version history that lets you know everything that has changed, and who did it\n", + "* Create design systems with searchable assets, shareable styles, and everything in one location\n", + "* Create reusable components with the ability to override them when necessary\n", + "\n", + "\n", + "## Before we get started\n", + "\n", + "Take a second to look at the objectives we are going to complete.\n", + "\n", + "* Find our way around Figma’s interface\n", + "\n", + "* Learn important keyboard shortcuts\n", + "\n", + "\n", + "---\n", + "\n", + "\n", + "### 1. Setup your Figma Account\n", + "\n", + "Getting started in Figma is as simple as going to www.figma.com, clicking “Sign up”, and entering your details. Once you’ve done that, Figma will open up with a start screen like this. Click on “New File” and we’ll get started!\n", + "\n", + "![picture](https://drive.google.com/uc?export=view&id=1Q_K6wS0F-bVuL57z9BRr-jP1JDC-i4Xg)\n", + "\n", + "### 2. Take a look around the Figma interface\n", + "\n", + "![picture](https://drive.google.com/uc?export=view&id=1tLR09W1hrAudeBicNpk_d9zej0r1f7ti)\n", + "\n", + "Here’s an explanation of the interface’s main areas (labeled above):\n", + "\n", + "**Menu:**\n", + "\n", + "Unlike regular desktop design apps, Figma’s menus can be found by clicking the hamburger button in the top-left of the screen. Take a minute to browse around these menus and see what’s there! You can also search for the specific command you need. Start typing in “line” and you’ll quickly find the Line Tool, complete with a handy reminder of its keyboard shortcut. And these are the options available in the menu:\n", + "\n", + "* **Back to Files:** Open the file Browser in the current location.\n", + "\n", + "* **File:** Perform file-level permissions, including importing and exporting.\n", + "* **Edit:** Access undo/redo, copy/paste, and advanced selection functions.\n", + "* **View:** Control view settings for layout grids and rulers, perform zoom functions, and navigate within a file.\n", + "* **Object:** Apply object-level functions like grouping, framing, rotating, and more.\n", + "* **Text:** Format text with bolds or italics, and set size, height, and spacing.\n", + "* **Arrange:** Tidy up objects with alignment and distribution functions.\n", + "* **Plugins:** View, manage, and run any plugins you have installed.\n", + "* **Integrations:** View, manage, and use any applications you have connected.\n", + "* **Preferences:** Adjust your preferences.\n", + "* **Libraries:** Open the Library modal.\n", + "\n", + "**Tools:**\n", + "\n", + "![picture](https://drive.google.com/uc?export=view&id=1bNEqieR0v1c1Fc7pAtQ2R20WjetCjbMM)\n", + "\n", + "Here you can quickly access the tools you’re likely to use most often: frames, shapes, text, etc.\n", + "\n", + "* **Move and Scale Tools:** \n", + "When you open files in the Editor, Figma will select the Move Tool **`V`** by default. The Move tool allows you to select and reorder layers in the Layers Panel, or move objects around on the canvas.\n", + "\n", + "* **Frame and Slice tools:** \n", + "Use the keyboard shortcuts **`A`** or **`F`** to select the frame tool. Create a frame with your own dimensions in the canvas, or select a frame size from Figma's presets in the right-hand panel. \n", + "\n", + " The Slice tool allows you to specify a region of the screen you want to export.\n", + "Use the keyboard shortcut **`S`** to select the Slice tool.\n", + "\n", + "* **Shape tools:** \n", + "In addition to drawing your own shapes using the Pen Tool, there are a number of default shapes you can use in Figma.\n", + "\n", + "* **Pen and Pencil tools:**\n", + "The Pen tool **`P`** allows you create custom shapes and icons. Build complex Vector Networks using vector paths, anchor points, and bezier curves.\n", + "The Pencil tool allows you to add freehand drawings or annotations to your design files.\n", + "\n", + "* **Text tool:**\n", + "Text is one of the crucial components of interface design. Everything from the placement and arrangement of text, to the choice of font, has a part to play.\n", + "\n", + " Select the Text tool from the Toolbar, or press the **`T`** key to add text layers to your file.\n", + "\n", + " * Click once in the canvas to add a text layer that grows horizontally\n", + " * Click and drag to create a text layer that is fixed in size\n", + "\n", + "* **Hand tool:**\n", + "The Hand Tool allows you to click around within a file without accidentally activating hover outlines, making selections, or moving objects.\n", + "\n", + " If you're using Figma on a device with a touch screen, the Hand Tool allows you to pan around a file using your fingers.\n", + " Press and hold the **`Space bar`** to activate the Hand Tool.\n", + "\n", + "* **Comment tool:**\n", + "The Comment tool allows you to quickly exchange ideas with collaborators. Use comments to respond to feedback, tweak your designs and iterate faster - all from the original design file.\n", + "\n", + " Comments are accessible to anyone with view or edit permissions to the file.\n", + "\n", + "**Options:**\n", + "\n", + "This area shows extra options for whichever tool you have selected. When no object is selected (as shown above), Figma displays the file name. When an object is selected, contextual options appear here.\n", + "\n", + "* **Edit Object:** \n", + "Click the **`Edit Object`** icon to enter Vector Edit mode. This allows you to add, remove, or adjust the individual anchor points within a vector path.\n", + "\n", + " Click the **`Enter`** / **`Return`** key to enter Vector Edit mode.\n", + "\n", + "* **Create Components:**\n", + "Components are elements that you can reuse across your designs. They help to create and manage consistent designs across projects. Click the **`Create Component`** icon to create a Component out of your selection.\n", + "\n", + " If you select more than one layer or frames, use the arrow next to the icon to choose how to create Components:\n", + "\n", + " * Create Component: Create a single Component from your selection.\n", + "\n", + " * Create Multiple Components: Create a Component for each layer or frame in your selection.\n", + "\n", + " MacOS: **`Control`** + **`Commmand`** + **`K`**\n", + "\n", + " Windows: **`Ctrl`** + **`Alt`** + **`K`**\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1tjNA2DecUi7qyepzMs868p-DBxjHzu7T)\n", + "\n", + "* **Use as Mask:**\n", + "Masks let you show or hide specific portions of a layer or object. Click the **`Mask icon`** to create a mask out of the current selection.\n", + "\n", + " When you create a mask, Figma will place every layer within that selection inside a Mask group. Figma will use the outline of the current layer to determine what you can see of any layers underneath.\n", + "\n", + " MacOS: **`Control`** + **`Commmand`** + **`M`**\n", + "\n", + " Windows: **`Ctrl`** + **`Alt`** + **`M`**\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1ndNTJ3GZwenHXG1WtGKvGkrwe7wlSj8n)\n", + "\n", + "\n", + "**Share and view settings:**\n", + "\n", + "* **Multiplayer and observation mode:**\n", + "See who else is active on the file. This includes anyone who is currently viewing or editing the file.\n", + "\n", + " Click on a users' avatar to enter observation mode and view their actions in real-time. This is great for presentations and design critiques.\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1mrhRttCQ-Mrsgf3ODCjvl89tkiitsXcw)\n", + "\n", + "* **Share:**\n", + " Click the Share button to open the share modal. This lets you manage who has access to your file. From the share modal you can:\n", + "\n", + " * Invite Viewers or Editors to a file\n", + "\n", + " * Share files with others using Link Sharing\n", + " * Transfer ownership of a file\n", + " * Adjust permissions on a file\n", + " * Remove a collaborator from a file\n", + " * Prevent Viewers from copying, sharing, or export from files\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1u-DOULHlGY4V1Q5hMdBW0Hv1uST_nePE)\n", + "\n", + "* **Present:**\n", + " Click the Present icon to open the file in Presentation View. This lets you preview your designs and interact with any prototypes you've created.\n", + "\n", + " Use Presentation view while you build and test your prototype, or when you're ready to share your prototype with others.\n", + "\n", + "* Preview static designs on specific devices\n", + "* Present slides for presentations\n", + "* Build and test interactions and animations\n", + "* Run usability tests with users\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1aJxbEw1kI6lbUQQnLucv-QweJ5iT8vN2)\n", + "\n", + "* **View Settings:** \n", + "Adjust your view settings on your file, including:\n", + "\n", + " * Zoom Settings\n", + "\n", + " * Pixel Preview\n", + " * Pixel Grid\n", + " * Layout Grids\n", + " * Multiplayer Cursors\n", + "\n", + "**Layers:**\n", + "\n", + "Any Frames, Groups or Objects you add to the canvas will be visible in the Layers panel. You can determine if a Layer is a Frame, Group or a specific type of Object by the icon next to it\n", + "\n", + "Every object in the canvas will have a corresponding layer in the Layers Panel.\n", + "\n", + "Click the Layers tab in the left sidebar to open the layers panel. Or, use the keyboard shortcut:\n", + "If you hover over the layer in the panel, a blue box will highlight that layer’s location on the Canvas.\n", + "\n", + "Click on the layer name in the layers panel to select it.\n", + "\n", + "If there are any Frames or Groups on the canvas, we will nest the child objects within the parent. Click the arrow next to a Frame, Group, or Component to view any child layers.\n", + "\n", + "![picture](https://drive.google.com/uc?export=view&id=1H5Yfiw5CS9pX4vG3r-EzMU_R_XPQbyih)\n", + "\n", + "As you can see in the image above, the selected frame is highlighted in bluw with it's corresponding layers \n", + "\n", + "**Canvas:**\n", + "\n", + "This is where you create and review all your work. If you like having rulers visible on your canvas, you can use the **`Shift`** + **`R`** shortcut to enable them. You can also use the search feature under the menu icon to search for rulers. \n", + "\n", + "**Inspector:**\n", + "\n", + "The Inspector shows contextual information and settings for whatever object is selected. In the image above, we’re seeing options for the Canvas itself. Note that Figma gives us separate tabs in the Inspector (Design, Prototype, and Inspect).\n", + "\n", + "* **Design :**\n", + "The Design tab allows you to view, add, remove or change the properties of objects within your design. It has properties such as frame, layers, color fills, typefaces, stroke effects, etc.\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=17Qg_uRWWNJSOoJG-6VL0m3KiMGSBWR6R)\n", + "\n", + "* **Prototype :**\n", + " The Prototype tab gives you access to all the prototyping functionality.\n", + "\n", + " This allows you to establish connections between frames in your design. You can then apply transitions that simulate how a user might interact with them.\n", + "\n", + " The Prototype tab consists of five sections: \n", + " * Choose an Interaction\n", + "\n", + " * Apply an Animation\n", + "\n", + " * Customize an Overlay\n", + "\n", + " * Define the Overflow Behavior\n", + "\n", + " * Adjust the Prototype Settings\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=18la8uRJRFpQy6Qf6ynoDl3_GB70qUwlG)\n", + "\n", + "* **Inspect :**\n", + " The third option in the right sidebar is the Inspect tab. This allows you to see how to express elements of your design in code.\n", + "\n", + " You can choose from the following formats:\n", + "\n", + " * CSS (Web Development)\n", + " * iOS (Swift)\n", + " * Android (XML)\n", + "\n", + " ![picture](https://drive.google.com/uc?export=view&id=1UoeIyOBZHeCrLD_4_J4T8xXgDLhKBRvS)" + ] + } + ] +} \ No newline at end of file diff --git a/UI_UX/Introduction_to_Figma/Part_5_Introduction_to_Figma_Plugin_Unsplash.md b/UI_UX/Introduction_to_Figma/Part_5_Introduction_to_Figma_Plugin_Unsplash.md new file mode 100644 index 0000000000..79c85fe21f --- /dev/null +++ b/UI_UX/Introduction_to_Figma/Part_5_Introduction_to_Figma_Plugin_Unsplash.md @@ -0,0 +1,73 @@ +# Introduction to Figma Plugin - Unsplash + +![jgf](https://unsplash.com/blog/content/images/max/2560/1-ebsayXxlAfSUWvMJKZHS7A.jpeg)
+ +Figma plugins are a designing platform that provides additional tools to UI designers, and the plugins collections of it built by different communities. With Figma, you can extend your working capacity for designing work, and it also provides helpful features in the form of exciting plugins with their time to time update format. If you explore Figma on the internet, you will find a number of the plugin in it, and here we will see some of them with their proper explains. You will get knowledge about how you can connect with these plugins and use them in the right way for your design work. + +Like Figma and FigJam, plugins are powered by web technologies. You’ll need an understanding of these technologies to develop plugins. You’ll write plugins in JavaScript and build any UI using HTML. Explore [required knowledge →](https://www.figma.com/plugin-docs/prerequisites/) + +Plugins interact with the Figma application via a dedicated Plugin API. They can also leverage external Web APIs. You can build plugins that run immediately, or build plugins that require user’s to input information via a user interface (UI). [Explore how plugins are run →](https://www.figma.com/plugin-docs/how-plugins-run/) + +The [API reference](https://www.figma.com/plugin-docs/api/api-reference/) and this accompanying documentation has the information you need to build plugins for Figma and FigJam. To ask questions, give feedback, or connect with other plugin developers: [Join the Figma Plugins Slack →](https://figmaplugins.slack.com/join/shared_invite/zt-8sv6h6hy-vJ0t3G8uT7l~g2KuY_6WvQ#/shared-invite/email) + +So let us go through these plugin :point_down: + + +# Unsplash + +

+ Unsplash is internet’s source of freely usable images. +

+ +![g](https://s3-alpha-sig.figma.com/plugins/738454987945972471/19142/2a243e76-3bca-4f3a-a775-6fb98b4b78db-cover?Expires=1632700800&Signature=eKe71L9MzwgGSVaID1DyCBZxjImeu31PTGl9iJJYZsMFEK~381~vMHEpjCu-Jk~VTD2GhKo0~uXLlZYWZjJEf3mKwkURXe5By4zffNVQ01ISvZ88mi5AVd8teoOPPit75ofZdWebFTcxSnOjy-uIoRUH2fsyKT5zKZHmiDNI7JYK7qCh5WFws3Zw53B6A9iDKCER2zQoJcakGqniG7xPWWmAIUjCRl1K9-dKf6~T04uz3T~6msLYKBNHrB2dXFKX6ayyX9pZmIZ-l6lEKM2GjvYTjgkWj7wz3sc-0zv9Al6b4zRePKdU-Beke4bYB9Ou0DNGr21ceKuU6PxLXBq9FA__&Key-Pair-Id=APKAINTVSUGEWH5XD5UA) + +## Make something awesome + +Unsplash was born from the pain we had in finding great, usable imagery. And we weren’t alone. Which is why, today—millions of creators from around the world have downloaded over 2 billion Unsplash images to create presentations, artwork, mockups, and more. + +## Is it really free? Yes. + +Unsplash is a platform powered by an amazing community that has gifted hundreds of thousands of their own photos to fuel creativity around the world. So sign up for free, or don’t. Either way, you’ve got access to over a million photos under the Unsplash license—which makes them free to do-whatever-you-want with. + +

+ Anyone can join the Unsplash community +

+You don’t need to know someone, or have an agent, or have a name to contribute to Unsplash. We’re the place where creators meet their audience, where individuals become a community and where anyone can become a source for creativity. So whether you’re new to photography or consider yourself a pro—your images are welcome here. +(https://unsplash.com/community) + +
+ + +Making its way from a photography website to a Figma plugin, Unsplash is one of the most celebrated Figma plugins amongst UI/UX designers. What makes it efficient is, however, the drag and drop function of using any image that you like directly to your frames. Unsplash consists of more than 1 million high-quality images from different categories like nature, technology, portrait, creatures, designs, and whatnot. + +![Screenshot 2021-09-17 190040](https://user-images.githubusercontent.com/85386116/133790366-5717b903-8d81-4bf5-b18f-4824be210ecb.png) + + + +Our setup guide takes you through the process of setting up your environment and running a sample plugin. Get started with the plugin API + +# How to Install Figma Plugins? + +Now we will see the installation process of Figma plugins. You will find many plugins on Figm.com, but we will show you by installing of one plugin for your knowledge and by the same way, you can install other plugins of Figma.com according to your requirement. + +The first thing you have to do is search for Figma.Com on any search engine, and you will find this website page, which is the Figma plugins home page. + +![f](https://cdn.educba.com/academy/wp-content/uploads/2021/01/Figma-Plugins-1.jpg.webp)
+ +Now go to the community tab of this page and click on the scroll down box’s plugins option. + +![vd](https://cdn.educba.com/academy/wp-content/uploads/2021/01/Figma-Plugins-2.jpg.webp) + +Now here you will find a number of list of plugins. We will install Unsplash for your understanding so click on the Install button of it. + +![fj](https://cdn.educba.com/academy/wp-content/uploads/2021/01/Figma-Plugins-3.jpg.webp) + +After login, you have to once again click on your desired plugin’s install button. + +![f](https://cdn.educba.com/academy/wp-content/uploads/2021/01/Figma-Plugins-5.jpg.webp) + +And once it installed, there will be an Installed button in place of the Install button. + +![h](https://cdn.educba.com/academy/wp-content/uploads/2021/01/Figma-Plugins-6.jpg.webp) + +This way, you can install any plugin of Figma for using it for your designing purpose. \ No newline at end of file