From 15b13c86a4f62c03852ba1ce127c759d1b1e9ed7 Mon Sep 17 00:00:00 2001 From: miumoin Date: Tue, 26 Aug 2014 06:43:49 +0600 Subject: [PATCH 01/55] Update installation.md --- installation.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/installation.md b/installation.md index 3ded72d..6ca174e 100644 --- a/installation.md +++ b/installation.md @@ -16,10 +16,23 @@ sudo apt-get install lamp-server^ ``` -লিনাক্সের জন্যও XAMPP এর একটি ভার্সন আছে । কিন্তু সবকিছু রিপোজিটরি থেকে সেটাপ করে নেওয়াটাই বুদ্ধিমানের কাজ । এত ঝামেলা কম হয়, পরে প্রয়োজন হলে ট্রাবলশুটিং এও সমস্যা কম হবে । এছাড়া পিএইচপি রিলেটেড প্রচুর প্যাকেজ পাওয়া যাবে উবুন্টু সফটওয়্যার রিপোজিটরি থেকে যেগুলোও খুব সহজে ইনস্টল করে নিতে পারবেন । +লিনাক্সের জন্যও XAMPP এর একটি ভার্সন আছে । কিন্তু সবকিছু রিপোজিটরি থেকে সেটাপ করে নেওয়াটাই বুদ্ধিমানের কাজ । এত ঝামেলা কম হয়, পরে প্রয়োজন হলে ট্রাবলশুটিং এও সমস্যা কম হবে । এছাড়া পিএইচপি রিলেটেড প্রচুর প্যাকেজ পাওয়া যাবে উবুন্টু সফটওয়্যার রিপোজিটরি থেকে যেগুলোও খুব সহজে ইনস্টল করে নিতে পারব + +উবুন্টু বা ডেবিয়ান লিনাক্স বেইজড অপারেটিং সিস্টেমে লিনাক্স ইন্সটলেশনের জন্যে টার্মিনাল ওপেন করে নিচের কমান্ডগুলো একে একে একজিকিউট করতে হবে। + +-Apache2 সার্ভার ইন্সটলেশন: +sudo apt-get install apache2 + +-MySQL (ডাটাবেইজ) সার্ভার ইন্সটলেশন: +sudo apt-get install mysql-server + +-PhpMyAdmin (ডাটাবেইজ ভিজুয়াল এডিটর) ইন্সটলেশন: +sudo apt-get install phpmyadmin + + ### ম্যাক ওএস এক্স ওসএক্স এ বাই ডিফল্ট এ্যাপাচি থাকে । পিএইচপি এবং মাইসিকুয়েল টা হোমব্রু এর মাধ্যমে ইনস্টল করে নেওয়া ভালো । বিস্তারিত ইন্সট্রাকশন পাওয়া যাবে এখানে - https://github.com/Homebrew/homebrew-php । -এছাড়াও উইন্ডোজের মতই সবকিছু একই প্যাকেজে পাওয়া যাবে MAMP এর মাধ্যমে । তবে হোমব্রু এর মাধ্যমে সেটাপ করাটাই আমি রিকমেন্ড করি । প্রথমে একটু ঝামেলা মনে হলেও পরবর্তীতে এক্সটেনশন ইন্সটল করা কিংবা কমান্ড লাইন থেকে পিএইচপি রান করার জন্য হোমব্রু পিএইচপিই বেটার অপশন । সেই তুলনায় MAMP ব্যবহার করা সহজ কিন্তু কাস্টোমাইজেশন এর জন্য বেশ রেস্ট্রিক্টিভ । \ No newline at end of file +এছাড়াও উইন্ডোজের মতই সবকিছু একই প্যাকেজে পাওয়া যাবে MAMP এর মাধ্যমে । তবে হোমব্রু এর মাধ্যমে সেটাপ করাটাই আমি রিকমেন্ড করি । প্রথমে একটু ঝামেলা মনে হলেও পরবর্তীতে এক্সটেনশন ইন্সটল করা কিংবা কমান্ড লাইন থেকে পিএইচপি রান করার জন্য হোমব্রু পিএইচপিই বেটার অপশন । সেই তুলনায় MAMP ব্যবহার করা সহজ কিন্তু কাস্টোমাইজেশন এর জন্য বেশ রেস্ট্রিক্টিভ । From 5bf5be5eaa8d3ad8b245a84ac9d1f5a304017ca1 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Fri, 26 Sep 2014 13:00:29 +0600 Subject: [PATCH 02/55] added oop intro --- oop.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/oop.md b/oop.md index 1e11611..0f2f288 100644 --- a/oop.md +++ b/oop.md @@ -1 +1,11 @@ # অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং + +(অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর ভূমিকা, কিছু সাধারন ধারনা এবং কিছু টেকনিক্যাল কনসেপ্ট এখানে পরবর্তীতে যোগ করা হবে ) + + +### টপিক লিস্ট + +* [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) +* [মেথড এবং প্রোপার্টি](oop-method-and-property.md) +* [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](static-and-non-static-context.md) +* [ইনহেরিট্যান্স](inheritance.md) From c713c35d2f41d25403618f660f655d8387e6514a Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 10:59:45 +0600 Subject: [PATCH 03/55] OOP: Visibility added --- SUMMARY.md | 5 +- inheritance.md => oop-inheritance.md | 0 ...md => oop-static-and-non-static-context.md | 0 oop-visibility.md | 62 +++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) rename inheritance.md => oop-inheritance.md (100%) rename static-and-non-static-context.md => oop-static-and-non-static-context.md (100%) create mode 100644 oop-visibility.md diff --git a/SUMMARY.md b/SUMMARY.md index 8492eb7..dc0c431 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -12,7 +12,8 @@ * [অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং](oop.md) * [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) * [মেথড এবং প্রোপার্টি](oop-method-and-property.md) - * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](static-and-non-static-context.md) - * [ইনহেরিট্যান্স](inheritance.md) + * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) + * [ইনহেরিট্যান্স](oop-inheritance.md) + * [ভিজিবিলিটি](oop-visibility.md) * [অবদান](contributions.md) diff --git a/inheritance.md b/oop-inheritance.md similarity index 100% rename from inheritance.md rename to oop-inheritance.md diff --git a/static-and-non-static-context.md b/oop-static-and-non-static-context.md similarity index 100% rename from static-and-non-static-context.md rename to oop-static-and-non-static-context.md diff --git a/oop-visibility.md b/oop-visibility.md new file mode 100644 index 0000000..d2a86b6 --- /dev/null +++ b/oop-visibility.md @@ -0,0 +1,62 @@ +# ভিজিবিলিটি + +আমরা যদি এর আগে অবজেক্ট ওরিয়েন্টেড পিএইচপি কোড দেখে থাকি তাহলে হয়তো `public`, `protected` এবং `private` কিওয়ার্ডগুলোর ব্যবহার দেখেছি । আজকে আমরা এগুলো কেন ব্যবহার করা হয় তা জানবো । + +কিওয়ার্ড গুলোর আভিধানিক অর্থ চিন্তা করলে কিছুটা পরিষ্কার হয়েই যায় । যেটা `public` সেটা সবার জন্যই উন্মুক্ত । যেটা `private` সেটা ব্যক্তিগত, অর্থাৎ শুধুই আমার জন্য । তাহলে `protected` টা কি হবে? যেটা `protected` সেটা শুধুই আমার এবং আমার উত্তরাধিকারীদের জন্য । + +কোন ক্লাসের যে মেথড ও প্রোপার্টিগুলো পাবলিক হয় সেগুলো অন্য যে কোন জায়গা থেকেই এ্যাক্সেস করা সম্ভব । প্রটেক্টেড হলে শুধু মাত্র ঐ ক্লাস এবং যে সব ক্লাস ঐ ক্লাস কে ইনহেরিট করে তারাই শুধু এ্যাক্সেস করতে পারবে । প্রাইভেট হলে শুধু মাত্র ঐ ক্লাসের ভিতর থেকেই এটা এ্যক্সেস করা যাবে, বাইরের কেউ বা কোন চাইল্ড ক্লাসও এটার এ্যাক্সেস পাবে না । + +আমরা পিএইচপি ম্যানুয়ালের এই উদাহরন টা দেখি: + +```php +public; + echo $this->protected; + echo $this->private; + } +} + +$obj = new MyClass(); +echo $obj->public; // Works +echo $obj->protected; // Fatal Error +echo $obj->private; // Fatal Error +$obj->printHello(); // Shows Public, Protected and Private +``` + +এখানে দেখুন, `$obj->public` টা আমরা ক্লাসের বাইরে থেকেও অবজেক্টের প্রোপার্টি হিসাবে ব্যবহার করতে পারছি কিন্তু বাকি দুটো এ্যাক্সেস করতে গেলে আমরা ফ্যাটাল এরর পাবো । অন্যদিকে `$obj->printHello()` যেহেতু ঐ ক্লাসের ভিতরেই ডিফাইন করা, তাই ক্লাসের ভিতরে আমরা প্রাইভেট এবং প্রটেক্টেড প্রোপার্টিরও এ্যক্সেস পাচ্ছি । + +এবার দেখি ইনহেরিট্যান্সের বেলায় কি হয় । আমরা এখন আগের ক্লাস টাকে এক্সটেন্ড করে আরেকটা ক্লাস বানাবো: + +```php +class MyClass2 extends MyClass +{ + + function printHello() + { + echo $this->public; + echo $this->protected; + echo $this->private; + } +} + +$obj2 = new MyClass2(); +$obj2->printHello(); +``` +এখানে আমরা দেখছি আমাদের চাইল্ড ক্লাসে আমরা প্যারেন্ট এর প্রটেক্টেড প্রোপার্টি এ্যাক্সেস করতে পারলেও প্রাইভেট প্রোপার্টি আনডিফাইনড থেকে যাচ্ছে । + +# কুইক নোটস + +* `var` কিওয়ার্ড ব্যবহার করে প্রোপার্টি ডিফাইন করলে তা সবসময়ই পাবলিক হবে । +* ফাংশনের ক্ষেত্রে ভিজিবিলিটি কিওয়ার্ড মিস করলে সেটা পাবলিক হিসেবে গন্য হবে । +* একই ক্লাস থেকে তৈরি করা অবজেক্ট গুলো একে অপরের প্রাইভেট এবং প্রটেক্টেড মেম্বার গুলো এ্যাক্সেস করতে পারবে । কারন তারা যেহেতু একই ক্লাস থেকে তৈরি হয়েছে তাই তারা জানে ইন্সট্যান্সগুলোর প্রোপার্টি ও মেথড কিভাবে ডিফাইন করা হয়েছে । From b278817be9b336acf0709e7c3b5ec2a21badd81e Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 11:32:39 +0600 Subject: [PATCH 04/55] OOP: Constructors & Destructors --- SUMMARY.md | 1 + oop-constructors-and-destructors.md | 62 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 oop-constructors-and-destructors.md diff --git a/SUMMARY.md b/SUMMARY.md index dc0c431..d926906 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -15,5 +15,6 @@ * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) * [ইনহেরিট্যান্স](oop-inheritance.md) * [ভিজিবিলিটি](oop-visibility.md) + * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) * [অবদান](contributions.md) diff --git a/oop-constructors-and-destructors.md b/oop-constructors-and-destructors.md new file mode 100644 index 0000000..2c58adf --- /dev/null +++ b/oop-constructors-and-destructors.md @@ -0,0 +1,62 @@ +# কন্সট্রাক্টরস + +যে কোন ক্লাসে আমরা একটি বিশেষ মেথড ডিফাইন করে দিতে পারি । পিএইচপি যখন একটি ক্লাস থেকে অবজেক্ট ইন্সট্যান্স তৈরি করবে তখন নতুন তৈরি হওয়া অবজেক্টটির এই বিশেষ মেথডটি কল করবে । প্রত্যেকটি ইন্সট্যান্স তৈরি হওয়র পরপরই পিএইচপি এই মেথডটি কল করে বিধায় অবজেক্টের নানা বিধ ইনিশিয়ালাইজেশনের কাজ এই মেথডে করা সম্ভব । এই মেথডটি অবজেক্ট তৈরি করার সময় গুরুত্বপূর্ন ভূমিকা পালন করে বিধায় এটাকে কন্সট্রাক্টর ফাংশন বা মেথড বলে । + +আমরা একটি উদাহরন দেখি: + +```php +name = "MyDestructableClass"; + } + + function __destruct() { + print "Destroying " . $this->name . "\n"; + } +} + +$obj = new MyDestructableClass(); +``` + +সাধারনত অবজেক্ট এ ব্যবহৃত গুরুত্বপূর্ন রিসোর্স ডি-এ্যালোকেট করার জন্য ডেস্ট্রাক্টর মেথড বেশ কাজে দেয় । কনস্ট্রাক্টর এর মত ডেস্ট্রাক্টরের বেলায় প্যারেন্ট এর ডেস্ট্রাক্টর এক্সপ্লিসিটলি কল করতে হয় । \ No newline at end of file From 8c61ea3916adf580a0f0700c24bf41a2e9f1a756 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 19:00:45 +0600 Subject: [PATCH 05/55] OOP Summary Page updated --- oop.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/oop.md b/oop.md index 0f2f288..0930672 100644 --- a/oop.md +++ b/oop.md @@ -7,5 +7,7 @@ * [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) * [মেথড এবং প্রোপার্টি](oop-method-and-property.md) -* [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](static-and-non-static-context.md) -* [ইনহেরিট্যান্স](inheritance.md) +* [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) +* [ইনহেরিট্যান্স](oop-inheritance.md) +* [ভিজিবিলিটি](oop-visibility.md) +* [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) From 3524f5f2db4297ecdb204e67703782cbd674f349 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 21:54:21 +0600 Subject: [PATCH 06/55] OOP: Abstraction --- oop-abstraction.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 oop-abstraction.md diff --git a/oop-abstraction.md b/oop-abstraction.md new file mode 100644 index 0000000..a82496d --- /dev/null +++ b/oop-abstraction.md @@ -0,0 +1,55 @@ +# এ্যাবস্ট্রাকশন + +কিছু ক্লাসকে আমরা এ্যাবস্ট্রাক্ট হিসেবে ডিক্লেয়ার করতে পারি । এসব ক্লাস থেকে সরাসরি অবজেক্ট ইনস্ট্যান্স তৈরি করা সম্ভব হয় না । কিন্তু এদের কে ইনহেরিট করা সম্ভব । কোন ক্লাসের একটি মেথড এ্যাবস্ট্রাক্ট হলে সেটিকে এ্যাবস্ট্রাক্ট ক্লাস হিসেবে ডিক্লেয়ার করতে হবে । + +এ্যাবস্ট্রাক্ট মেথড গুলোর বেলায় শুধুই মেথড সিগনেচার ডিফাইন করে দিতে হয় । মূল ইম্প্লিমেন্টেশন দেওয়া হয় না । প্যারেন্ট ক্লাসে ডিফাইন করা সকল এ্যাবস্ট্রাক্ট মেথড অবশ্যই চাইল্ড ক্লাসে ইম্প্লিমেন্ট করতে হবে । এসময় ভিজিবিলিটি একই অথবা বেশী ওপেন (প্রাইভেট থাকলে প্রাইভেট কিংবা প্রটেক্টেড, প্রটেক্টেড থাকলে প্রটেক্টেড কিংবা পাবলিক) রাখা আবশ্যক । একই সাথে ফাংশনের সিগনেচারও ম্যাচ করতে হবে, আপনি চাইলেই চাইল্ড ক্লাসে কোন মেথডের একটি প্যারামিটার যোগ বা বাদ দিতে পারবেন না । + +এ্যাবস্ট্রাক্ট ক্লাস অনেকটা ইন্টারফেইসের মত শুধু এখানে শুধু মাত্র নির্দিষ্ট মেথড গুলো আমরা এ্যাবস্ট্রাক্ট রেখে বাকি মেথডগুলোর ইম্প্লিমেন্টেশন তৈরি করে দিতে পারি । + +```php +getValue() . "\n"; + } +} + +class ConcreteClass1 extends AbstractClass +{ + protected function getValue() { + return "ConcreteClass1"; + } + + public function prefixValue($prefix) { + return "{$prefix}ConcreteClass1"; + } +} + +class ConcreteClass2 extends AbstractClass +{ + public function getValue() { + return "ConcreteClass2"; + } + + public function prefixValue($prefix) { + return "{$prefix}ConcreteClass2"; + } +} + +$class1 = new ConcreteClass1; +$class1->printOut(); +echo $class1->prefixValue('FOO_') ."\n"; + +$class2 = new ConcreteClass2; +$class2->printOut(); +echo $class2->prefixValue('FOO_') ."\n"; +?> +``` + +এখানে একই এ্যাবস্ট্রাক্ট ক্লাস থেকে আমরা দুটি ক্লাস তৈরি করেছি । এবং প্রত্যেকটি সাবক্লাসে আমরা এ্যাবস্ট্রাক্ট মেথডগুলো নিজেদের মত করে ইম্প্লিমেন্ট করেছি । কিন্তু `printOut()` মেথডটি মূল ক্লাসেই ডিফাইন করা । From ee8c9ddff8c936766169c59602fa78341917d390 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 23:06:34 +0600 Subject: [PATCH 07/55] interface done --- SUMMARY.md | 2 ++ oop-interface.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ oop.md | 2 ++ 3 files changed, 53 insertions(+) create mode 100644 oop-interface.md diff --git a/SUMMARY.md b/SUMMARY.md index d926906..526877b 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -16,5 +16,7 @@ * [ইনহেরিট্যান্স](oop-inheritance.md) * [ভিজিবিলিটি](oop-visibility.md) * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) + * [ইন্টারফেইস](oop-interface.md) + * [এ্যাবস্ট্রাকশন](oop-abstraction.md) * [অবদান](contributions.md) diff --git a/oop-interface.md b/oop-interface.md new file mode 100644 index 0000000..eff6cb1 --- /dev/null +++ b/oop-interface.md @@ -0,0 +1,49 @@ +# ইন্টারফেইস + +ইন্টারফেইসের মাধ্যমে আমরা বলে দেই একটা ক্লাসের কোন কোন মেথড অবশ্যই থাকা লাগবে । কিন্তু আমরা এর মূল ইম্প্লিমেন্টেশনটা নির্দিষ্ট করে দেই না । + +আমরা একটা ইন্টারফেইস ডিফাইন করি `interface` কিওয়ার্ডটি দিয়ে । এবং যে সব ক্লাস এই ইন্টারফেইস মেনে চলে তারা এই ইন্টারফেইসকে `implement` করে । + +ইন্টারফেইস ডিফাইন করা হয় সাধারনভাবে ক্লাসের মত করেই । ইন্টারফেইসের মেথডগুলোর শুধু সিগনেচার (কি কি প্যারামিটার নেয়) ডিফাইন করে দেওয়া হয় কিন্তু এই মেথডগুলোর বডি ডিফাইন করা হয় না । + +পিএইচপি ম্যানুয়াল থেকে একটি উদাহরন দেখে নেই: + +```php +vars[$name] = $var; + } + + public function getHtml($template) + { + foreach($this->vars as $name => $value) { + $template = str_replace('{' . $name . '}', $value, $template); + } + + return $template; + } +} +``` + +এখানে আমরা `iTemplate` নামে একটি ইন্টারফেইস ডিফাইন করেছি । আমাদের `Template` ক্লাসটি এই ইন্টারফেইস ইম্প্লিমেন্ট করে । খেয়াল করুন আমরা দেখছি কিভাবে ইন্টারফেইসে শুধু মেথড সিগনেচার এবং আমাদের মূল ক্লাসে তার ইম্প্লিমেন্টেশন তৈরি করা হয়েছে । + +আমরা যদি ইম্প্লিমেন্টেশন ক্লাসে ইন্টারফেইসের কোন মেথড ডিফাইন করতে ভুলে যাই সেক্ষেত্রে আমরা ফ্যাটাল এরর পাবো । + +পিএইচপিতে একটি ক্লাস অনেকগুলো ইন্টারফেইস ইম্প্লিমেন্ট করতে পারে তবে যদি দুইটি ইন্টারফেইসের একই নামের মেথড থাকে তাহলে সঙ্গত কারনেই কোন ক্লাস এই দুটি ইন্টারফেইস একই সাথে ইম্প্লিমেন্ট করতে পারবে না । সেটা করলে ঐ মেথডের নাম নিয়ে কনফ্লিক্ট তৈরি হবে । + +ইন্টারফেইস হলো অনেকটা ডেভেলপারের সাথে চুক্তি করার মতো । আমাদের চুক্তি মেনে নিতে হলে তাকে অবশ্যই আমাদের বলে দেওয়া মেথড ইম্প্লিমেন্ট করতে হবে । যখন কোন ক্লাস আমাদের ডিফাইন করা ইন্টারফেইস ইম্প্লিমেন্ট করে তখন আমরা ধরে নিতে পারি আমাদের বলে দেওয়া মেথডগুলো ঐ ক্লাসে আছে । এর ফলে আমরা ক্লাসের প্রয়োজনীয় ডিজাইন সম্পর্কে নিশ্চিত হতে পারি । \ No newline at end of file diff --git a/oop.md b/oop.md index 0930672..89d7cae 100644 --- a/oop.md +++ b/oop.md @@ -11,3 +11,5 @@ * [ইনহেরিট্যান্স](oop-inheritance.md) * [ভিজিবিলিটি](oop-visibility.md) * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) +* [ইন্টারফেইস](oop-interface.md) +* [এ্যাবস্ট্রাকশন](oop-abstraction.md) \ No newline at end of file From 15ea679d6165f2ed4735fee519cd64638b601245 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 5 Oct 2014 23:26:02 +0600 Subject: [PATCH 08/55] traits done --- SUMMARY.md | 1 + oop-traits.md | 36 ++++++++++++++++++++++++++++++++++++ oop.md | 3 ++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 oop-traits.md diff --git a/SUMMARY.md b/SUMMARY.md index 526877b..4d6d0ca 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -18,5 +18,6 @@ * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) * [ইন্টারফেইস](oop-interface.md) * [এ্যাবস্ট্রাকশন](oop-abstraction.md) + * [ট্রেইটস](oop-traits.md) * [অবদান](contributions.md) diff --git a/oop-traits.md b/oop-traits.md new file mode 100644 index 0000000..e51a3de --- /dev/null +++ b/oop-traits.md @@ -0,0 +1,36 @@ +# ট্রেইটস + +আমরা দেখেছি ক্লাস ইনহেরিট্যান্সের মাধ্যমে আমরা প্যারেন্ট ক্লাস থেকে চাইল্ড ক্লাসে মেথড ইনহেরিট করতে পারি । অর্থাৎ প্যারেন্ট ক্লাসে কোন মেথড তৈরি করা থাকলে আমরা সেটা চাইল্ড ক্লাসে ব্যবহার করতে পারি । কিন্তু অনেক সময় দেখা যায় একই ক্লাস হায়ারার্কিতে নেই এমন দুটি ক্লাসের কিছু কমন মেথড থাকতে পারে । অর্থাৎ এমন দুটি ক্লাস যারা একটি আরেকটিকে এক্সটেন্ড করে না কিন্তু দুটি ক্লাসেরই কমন মেথড থাকছে `getName()` নামে যেটা একই কাজ করে । এসব ক্ষেত্রে কোড রিইউজে সহায়তা করতে পিএইচপি 5.4.0 ভার্সন থেকে ট্রেইটস এর প্রচলন । + +ট্রেইটস ডিফাইন করা হয় ক্লাসের মত করেই তবে `trait` কিওয়ার্ডটি ব্যবহার করে । একটি ট্রেইটের ভিতরে একই ধরনের কিছু ফাংশনালিটি সম্পন্ন মেথড ডিফাইন করা থাকে । এরপরে কোন ক্লাসের ভিতরে আমরা ঐ ট্রেইটটি ইনক্লুড করলে ঐ মেথডগুলো আমরা এ্যাক্সেস করতে পারি ঠিক যেন ঐ ক্লাসেই মেথডগুলো ডিফাইন করা হয়েছিলো । + +উদাহরন: + +```php +name; + } +} + +class TestClass { + use CommonMethods; + private $name = "test class"; +} + +class AnotherClass { + use CommonMethods; + private $name = "another class"; +} + +$tc = new TestClass(); +var_dump($tc->getName()); + +$ac = new AnotherClass(); +var_dump($ac->getName()); +``` + +এখানে `TestClass` এবং `AnotherClass` সম্পূর্ন ইনডিপেন্ডেন্ট দুটি ক্লাস । তারা `CommonMethods` ট্রেইটটি ব্যবহার করে । ফলে এই ট্রেইটের মেথডটি তারা সরাসরি ব্যবহার করতে পারে । + +পিএইচপিতে যেহেতু মাল্টিপল ইনহেরিট্যান্স নেই, অর্থাৎ কোন ক্লাস শুধুমাত্র একটা ক্লাসকেই এক্সটেন্ড করতে পারে তাই এক্ষেত্রে কমন মেথডগুলো গ্রুপিং এর জন্য ট্রেইট বেশ কার্যকর ভূমিকা পালন করতে পারে । \ No newline at end of file diff --git a/oop.md b/oop.md index 89d7cae..25477b8 100644 --- a/oop.md +++ b/oop.md @@ -12,4 +12,5 @@ * [ভিজিবিলিটি](oop-visibility.md) * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) * [ইন্টারফেইস](oop-interface.md) -* [এ্যাবস্ট্রাকশন](oop-abstraction.md) \ No newline at end of file +* [এ্যাবস্ট্রাকশন](oop-abstraction.md) +* [ট্রেইটস](oop-traits.md) \ No newline at end of file From ea603ec49dd6013de44702c38d855939ce6e4808 Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Mon, 6 Oct 2014 13:03:08 +0600 Subject: [PATCH 09/55] namespacing added --- SUMMARY.md | 1 + namespace.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 namespace.md diff --git a/SUMMARY.md b/SUMMARY.md index 4d6d0ca..7bac10d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -19,5 +19,6 @@ * [ইন্টারফেইস](oop-interface.md) * [এ্যাবস্ট্রাকশন](oop-abstraction.md) * [ট্রেইটস](oop-traits.md) +* [নেইমস্পেইস](namespace.md) * [অবদান](contributions.md) diff --git a/namespace.md b/namespace.md new file mode 100644 index 0000000..0d90b79 --- /dev/null +++ b/namespace.md @@ -0,0 +1,61 @@ +# নেইমস্পেইস + +আমাদের ক্লাস, ফাংশন বা কনস্ট্যান্ট নাম নিয়ে প্রায়শই সমস্যায় পড়তে হয় । দেখা যায় আমি যেই নাম ব্যবহার করেছি সেই নামে আরেকটি লাইব্রেরীতে একই নামের কিছু একটা রয়েছে । ফলাফল - নাম নিয়ে কনফ্লিক্ট । এই সমস্যা থেকে সমাধান দিতে পারে নেইমস্পেইস । + +নেইমস্পেইসের ধারনাটা খুবই সাধারন । আমরা যেমন আমাদের ফাইল পত্র গুলো নানা ফোল্ডারে সাজিয়ে রাখি, নেইমস্পেইসও এই ফোল্ডারগুলোর মত । আমাদের ক্লাস, ফাংশন, কনস্ট্যান্ট গুলো আমরা আলাদা আলাদা নেইমস্পেইসে সাজিয়ে রাখি । এতে এক নেইমস্পেইসের সাথে আরেক নেইমস্পেইসের জিনিসপত্রের নাম নিয়ে কোন কনফ্লিক্ট হয় না । + +এর আগে এই ধরনের নাম সংক্রান্ত জটিলতা এড়াতে ডেভেলপাররা আন্ডারস্কোর ব্যবহার করে নেইমস্পেস এর কাজ চালাতো । পুরোনো ফ্রেমওয়ার্কগুলোত এই ধরনের আন্ডারস্কোর বেইজড নেইমস্পেসিং এর প্রচেষ্টা দেখা যায় । পিএইপি ৫.৩ থেকে নেইমস্পেইস ল্যাঙ্গুয়েজ ফিচার হিসেবে যোগ করা হয় । + + +### নেইমস্পেইস তৈরি করা + +নেইমস্পেইসের ভিতরে যে কোন ভ্যালিড পিএইচপি কোডই রাখা যায় । তবে নেইমস্পেইসের প্রকৃত ইফেক্ট পড়ে শুধুমাত্র ক্লাস, ইন্টারফেইস, কন্সট্যান্ট এবং ফাংশনের উপর । অর্থাৎ এগুলোকেই শুধু নেইমস্পেইসে আটকানো যায় । + +আমাদের নেইমস্পেইস ডিফাইন করতে প্রথমে `namespace` কিওয়ার্ড এবং তারপর নেইমস্পেইস এর নাম দিতে হয় । নেইমস্পেইস ডিক্লেয়ার করা শুরু হতে হবে পিএইচপি ফাইলের একেবারে উপর থেকে অর্থাৎ অন্য যে কোন কোডের আগে । একমাত্র বিকল্প শুধু `declare` কিওয়ার্ডটি, এটিই শুধু নেইমস্পেস ডিক্লেয়ারেশনের আগে আসতে পারে । একই ফাইলে একাধিক নেইমস্পেইস ডিক্লেয়ার করা সম্ভব । পরবর্তী নেইমস্পেইস এর আগ পর্যন্ত সব কোডই প্রথম নেইমস্পেইস এর অন্তর্গত । + +উদাহরণ: + +```php + +``` + +আমরা চাইলে নেইমস্পেইস এর পর কার্লি ব্রেইস (সেকেন্ড ব্রাকেট) ব্যবহার করেও নেইমস্পেইসগুলোকে আলাদা করতে পারি । নেইমস্পেইসের নাম দেওয়া না হলে সেটি গ্লোবাল নেইমস্পেইস হিসেবে বিবেচ্য হয় । অর্থাৎ নামহীন নেইমস্পেইসে আমরা যাই ডিফাইন করি তা গ্লোবাল নেইমস্পেইস থেকেই এ্যাক্সেস করা যায় । + +### নেইমস্পেইস ব্যবহার করা + +প্রথমেই নিশ্চিত হতে হবে আমাদের কোড যে নেইমস্পেইসে আছে তা বর্তমান ফাইল থেকে এ্যাক্সেস করা যায় কিনা । যেমন: যদি নেইমস্পেইসটি অন্য কোন ফাইলে হয় তবে অবশ্যই সেটি ইনক্লুড করে নিতে হবে । তবে বাস্তবে বেশীরভাগ ক্ষেত্রেই আমরা অটোলোডার ব্যবহার করে নেইমস্পেইস থেকে কোড ইম্পোর্ট করতে পারবো । সেক্ষেত্রে ম্যানুয়ালি ইনক্লুড করা লাগবে না । + +এরপর আমরা `use` কিওয়ার্ডটি ব্যবহার করে তারপর নেইমস্পেইস সহ পুরো নাম উল্লেখ করবো । উদাহরণ: + +```php + +``` + +এই উদাহরনে আমরা দেখছি কিভাবে কোন নেইমস্পেইস থেকে আমরা ক্লাস ইম্পোর্ট করলাম । `as` কিওয়ার্ডটি ব্যবহার করে আমরা ইম্পোর্ট করার সময় প্রয়োজনমত নাম পরিবর্তন করে দিতে পারি । + +### নেইমস্পেইস থেকে গ্লোবাল কোড এ্যাক্সেস করা + +আমরা কোন নেইমস্পেইস থেকে যদি কোন ক্লাস বা ফাংশন এর পুরো নেইমস্পেইসড নাম ব্যবহার না করে শুধু নাম উল্লেখ করি তাহলে পিএইচপি ধরে নেয় ঐ ক্লাস বা ফাংশনও একই নেইমস্পেইসেরই অংশ । যেমন আমরা যদি `MyProject` নেইমস্পেইসে থেকে `strlen` ফাংশনটি কল করি তাহলে পিএইচপি লোবাল `strlen` ফাংশনটি ব্যবহার না করে `MyProject\strlen()` ফাংশনটি খুজঁবে । তাই কোন নেইমস্পেইসের ভিতর থেকে গ্লোবাল নেইমস্পেইসের ক্লাস, ফাংশন ইত্যাদি এ্যাক্সেস করার সময় নামের শুরুতে একটি `\` ব্যবহার করতে হয় । যেমন: + +```php + Date: Sat, 29 Nov 2014 22:14:25 +0600 Subject: [PATCH 10/55] Basic filesystem added --- SUMMARY.md | 1 + filesystem.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 filesystem.md diff --git a/SUMMARY.md b/SUMMARY.md index 7bac10d..eaa51bc 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -20,5 +20,6 @@ * [এ্যাবস্ট্রাকশন](oop-abstraction.md) * [ট্রেইটস](oop-traits.md) * [নেইমস্পেইস](namespace.md) +* [ফাইলসিস্টেম](filesystem.md) * [অবদান](contributions.md) diff --git a/filesystem.md b/filesystem.md new file mode 100644 index 0000000..8ef4cc6 --- /dev/null +++ b/filesystem.md @@ -0,0 +1,99 @@ +## ফাইলসিস্টেম +এই চ্যাপ্টারে আমরা পিএইচপির ডিরেক্টরী এবং ফাইল সম্পর্কিত কিছু ব্যাসিক অপারেশন দেখবো । এখানে দেখানো পদ্ধতি ছাড়াও আরো নানা পদ্ধতিতে একই কাজ করা যেতে পারে । আপাতত আমরা একটি করে পদ্ধতি দেখবো । পরবর্তীতে আমরা আরো এ্যাডভান্সড ব্যবহার দেখবো । + +### ডিরেক্টরী তৈরি করা + +আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি `mkdir` ফাংশনটি ব্যবহার করে । + +```php + Date: Sat, 29 Nov 2014 22:40:39 +0600 Subject: [PATCH 11/55] Fixed header in filesystem --- filesystem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filesystem.md b/filesystem.md index 8ef4cc6..cc8fb94 100644 --- a/filesystem.md +++ b/filesystem.md @@ -20,7 +20,7 @@ $success = mkdir("my_dir/sub_dir/another_dir", 0755, true); var_dump($success); ``` -# ডিরেক্টরী ব্রাউজ করা +### ডিরেক্টরী ব্রাউজ করা আমরা কোন ডিরেক্টরী এর কন্টেন্ট ব্রাউজ করার জন্য `scandir` ফাংশনটি ব্যবহার করতে পারি । From 4ea075b195d4e679882805b68ce7e1dd6555fd40 Mon Sep 17 00:00:00 2001 From: "Md. Al-Amin opu" Date: Sun, 30 Nov 2014 01:31:31 +0600 Subject: [PATCH 12/55] added exercise for control-structure chapter --- control-structures.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/control-structures.md b/control-structures.md index 3fcd9cb..94f6701 100644 --- a/control-structures.md +++ b/control-structures.md @@ -191,5 +191,14 @@ for ($i = 0; $i < 5; ++$i) { ``` এই কোডটি রান করলে 2 আউটপুটে আসবে না, কারণ যখনই `$i` এর ভ্যালু ২ হবে তখনই পিএইচপি কন্টিনিউ স্টেটমেন্টটি দেখবে । তখন আর কোড ব্লকের বাকি অংশ রান না করেই পরবর্তী লুপে প্রবেশ করবে । তাই `print "$i\n";` এই অংশটি ২ এর বেলায় এক্সিকিউট করা হবে না, আউটপুটেও তাই ২ আসবে না । অর্থাৎ লুপিং এর সময় কন্টিনিউ ব্যবহার করলে পিএইচপি সাথে সাথে ব্লকের বাকি অংশ স্কিপ করে পরবর্তী আইটেমে চলে যায় । +##এক্সারসাইজ +১। একটা স্ক্রিপ্ট লিখেন যেটা চলতি মাসের নাম নিবে এবং তার উপর ভিত্তি করে নিচের মেসেজ প্রিন্ট করবে। + + যদি মাসের নাম November হয় তাহলে প্রিন্ট করবে, Winter is comming. ++ যদি November না হয়, তাহলে প্রিন্ট করবে, You better stay in South. + +হিন্টস : date('F', time()) এইটা ব্যবহার করে অাপনি, মাসের নাম নিতে পারবেন। + + +অামরা পরবর্তিতে অারোও এক্সারসাইজ দেয়ার চেষ্টা করব। From 6513da366b3e9e812e097b5df05c55f8db0063e7 Mon Sep 17 00:00:00 2001 From: "Md. Al-Amin opu" Date: Sun, 14 Dec 2014 00:40:33 +0600 Subject: [PATCH 13/55] Excercise no. 2 added --- control-structures.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/control-structures.md b/control-structures.md index 94f6701..5d8aa88 100644 --- a/control-structures.md +++ b/control-structures.md @@ -193,12 +193,17 @@ for ($i = 0; $i < 5; ++$i) { ##এক্সারসাইজ -১। একটা স্ক্রিপ্ট লিখেন যেটা চলতি মাসের নাম নিবে এবং তার উপর ভিত্তি করে নিচের মেসেজ প্রিন্ট করবে। +1. একটা স্ক্রিপ্ট লিখেন যেটা চলতি মাসের নাম নিবে এবং তার উপর ভিত্তি করে নিচের মেসেজ প্রিন্ট করবে। + যদি মাসের নাম November হয় তাহলে প্রিন্ট করবে, Winter is comming. + যদি November না হয়, তাহলে প্রিন্ট করবে, You better stay in South. -হিন্টস : date('F', time()) এইটা ব্যবহার করে অাপনি, মাসের নাম নিতে পারবেন। +**** হিন্টস : ****date('F', time()) এইটা ব্যবহার করে অাপনি, মাসের নাম নিতে পারবেন। +2.ধরুন অাপনি Zimbabwe এর একজন বাসিন্দা । অাপনার বন্ধু বিভিন্ন দেশে ঘুরে ঘুরে খেলা দেখে । সে অাপনাকে একদিন বলল, " ওমুক দেশটা খুব সুন্দর "। বন্ধুর কথা শুনে, অাপনার ঐদেশে ঘুরতে যেতে ইচ্ছে হল। কিন্তু সে অাপনাকে দেশেটির নাম বলেনি। বরং অাপনাকে একটি চিরকুট দিল। যাতে লেখা - "Bangladesh is beautiful country" । এবং সে অাপনাকে কতগুলো দেশের নামের লিস্ট দিল যেগুলো হল -"England", "Bangladesh", "Sri Lanka", "India" । + +এখন এই দুটো তথ্যের উপর ভিত্তি করে অাপনাকে ঐদেশের নাম কি সেটা বলতে হবে। + +**** হিন্টস : **** স্ট্রিং কে অ্যারেতে কনভার্ট করার জন্য explode() ফাংশনটি ব্যবহার করতে পারেন। ডিটেইলস : http://php.net/manual/en/function.explode.php অামরা পরবর্তিতে অারোও এক্সারসাইজ দেয়ার চেষ্টা করব। From 1805b6fe86e4be04429b881951b287806c296a8b Mon Sep 17 00:00:00 2001 From: "Md. Al-Amin opu" Date: Thu, 8 Jan 2015 20:43:52 +0600 Subject: [PATCH 14/55] removed extra php tag andcorrected spelling --- namespace.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/namespace.md b/namespace.md index 0d90b79..79dfd7a 100644 --- a/namespace.md +++ b/namespace.md @@ -17,7 +17,6 @@ ```php Date: Fri, 9 Jan 2015 17:31:23 +0600 Subject: [PATCH 15/55] Contributions test --- README.md | 14 ++------------ SUMMARY.md | 1 - contributions.md | 5 ----- cover.jpg | Bin 691039 -> 0 bytes cover_small.jpg | Bin 54470 -> 0 bytes 5 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 contributions.md delete mode 100644 cover.jpg delete mode 100644 cover_small.jpg diff --git a/README.md b/README.md index 3b12473..b01a7d5 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,8 @@ # বাংলায় পিএইচপি -#### আবু আশরাফ মাসনুন -
- -cover + ## প্রারম্ভিকা @@ -18,16 +15,9 @@ (১) http://php.net/usage.php -## ট্রেইনিং ম্যাটেরিয়াল - -এই বইটি লেখার প্রয়োজনীয়তা প্রথম অনুভব করি রাইটসাইট - ট্রান্সেন্ডিও পিএইচপি ট্রেইনিং এর প্রথম সেশন চলাকালীন সময় । মূলত এই কোর্সের সিলেবাস থেকেই বইটি লেখা । আমাদের দেশে গতানুগতিক ধারার ট্রেইনিং এর বাইরে কিছু করার ইচ্ছা থেকেই আমি এই ট্রেইনিং সেশন শুরু করি । এখানে শিক্ষার্থীদের কে সপ্তাহে ৮ঘন্টা ক্লাসের পাশাপাশি আরো প্রায় ২০ ঘন্টার হোমওয়ার্ক করতে হয় । করতে হয় প্রেজেন্টেশন ও গ্রুপ ডিসকাশন । এসবের জন্য দরকার হয় নানা ধরনের রিসোর্স, সময় দিতে হয় হ্যাকার নিউজ, রেডিট কিংবা স্ট্যাক ওভারফ্লোতে । আমার প্রথম ব্যাচের শিক্ষার্থীদের জন্য এই সব এক্সটার্নাল রিসোর্স এর পাশাপাশি একটি হ্যান্ডবুক প্রোভাইড করার ইচ্ছা থেকেই এই বইটি লেখা । - -আশা করি আমার ট্রেইনিং এ অংশগ্রহনকারীদের বাইরেও আরও অনেকে উপকৃত হবেন এই বইয়ের কন্টেন্ট থেকে । - ## ওপেন সোর্স -বইটির কন্টেন্ট ওপেন সোর্স । আপনিও অবদান রাখতে পারেন গিটহাব রিপোজিটরিতে । আপনার অবদানও অবদান কারীদের তালিকায় যুক্ত করা হবে । +বইটির কন্টেন্ট ওপেন সোর্স । আপনিও অবদান রাখতে পারেন গিটহাব রিপোজিটরিতে । -এছাড়া যে কোন ধরনের সাজেশন বা ফিডব্যাক ইমেইল করতে পারেন: `masnun [at] transcendio.net` এই ঠিকানায় । diff --git a/SUMMARY.md b/SUMMARY.md index eaa51bc..8fdb2f2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -21,5 +21,4 @@ * [ট্রেইটস](oop-traits.md) * [নেইমস্পেইস](namespace.md) * [ফাইলসিস্টেম](filesystem.md) -* [অবদান](contributions.md) diff --git a/contributions.md b/contributions.md deleted file mode 100644 index 1a95622..0000000 --- a/contributions.md +++ /dev/null @@ -1,5 +0,0 @@ -# অবদান - -এই বইয়ে বিভিন্নভাবে যারা অবদান রেখেছেন তাদের তালিকা: - -* সাইফুল ইসলাম (http://saiful.im/) বইটির কাভার তৈরি করে দিয়েছেন । এছাড়াও তিনি ফাংশনস চ্যাপ্টারটির প্রাথমিক সংস্করন তৈরি করেন । diff --git a/cover.jpg b/cover.jpg deleted file mode 100644 index 80c75350e7fe3f6f9b8bcf139c42fe09621d2139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691039 zcmeFacU)7;)&ROgm#Ttbp+pc7l`dVn2#S;g(xeF?6oCW?A@pG7*g#Q1q$(&P0s_*T zih_#t-UXyrks2Vp*#SMCd+&Ge_q*@+y?-7PviF*qH8ZQtnn|*lz23IocVJZ0$Jqgb zbakP_5Ckzm%m@gg1`vXt0bCFp@HROBQ&C{JE)GGrQ4Udo@|~M7Xo%Rg2?H#|UWgX% z2fULI`+mVM5r=+jD*^Wa@q+hjgd_##0B}QyGeiUKaN7}ZLjtt*kcJeVMtP3;+TTCoPv}%Qd~ko3jTvYqPYV>^zdC= zQc@yelRtQ*1gf87(laDb|Ab-ADTxk2y-7FS@4O)}fANO!{+%}}#LqquK~%r`7C>$G zrw#5ff0X-r+j>8<*(nVT8v{fAlc&yT!jgxWwa++XuvFV2$PMG=X{e=+G&4Vkq^|*T z+6K`;Vo;v%9^U zJq*7G@SomzG=Qnk0Qj1>GnxS4CIBCB#k)BJcnQE9ZfIK^P#rT|?uAA;?U zQUmMeZj14SpbehkR?tpZwn!jk83}nA84*cQiZxNH{zK&^&VRbWy4}F}@drg`2+l8m zmHpNFuQKct2$GuzvbpnDnOzhF`7#Z z!$uU^UdsVdPkw=D*qI<|%Q#Sj_@%cq+e{#M=9%&hZ`eJ6K|SUAw+mGm$Wq~)9g%Rc zhT&Nx3h(I+!(dLp7g~rBVuLuKJ;2inK!+d^ND`8T6d_ee6FLp)LuVm#$QnXHPLLbq z2@#+G=pu9tx(VHZ9zc(vcqj=8QW}pRV1%W`& zBUljZh&>2CgdpMwLJ}c|P)2AX&L9jC=7{qMN8l;(hycW8#7#sv;t}F8A_b9&C_ubL zd_vSC+7W$-QN%2QL`6--OvORPLv@f!j7pA5jY@~=ER_|NBb5i0AJrAAP^yPiPpDo} zBdDKHr&AYFS5h}p zf2E$FUZ$a=VW&aTh|nm~Xww+eplCd3f@p5hJfe9{lS}iSrje$PW`>4L%R2A@*(q+)Sp{u7G zpqrICI&tRNrsaQ=NK>ymlz@#UNDq0 zG%yS^tZdu9O>mpSHvMh(+kCf$ZA;o#xUF{E;Ij2MY_!K^9e( zb1Ysgp)4sZuz)Yz=q{MaJcve|0cCbn0Aw5i@W#jR^5%>ePegV?&jU3J;*(pdtCP1-IKSc zdoRu2!+ZbOOV}H?_ruYT_sE(3-21in6nq+q4s;z6Nby)ha)8XjDwMVFq$Q*G# z5__cnDD6@CqnM*lj<$+0i>Qfsi=>M5iE@gb5xpduCpsl|K%P%X)D0nGkDNHMhD7q-VP#iffbR2y= z>G*&Wzml!eW2LXkNagd&3Cdqp_N&;cJW=Ua6;QQTeWp6BCaiWr?WNk3y12ThdXD;{ zhJr?*#+wt=C$vu7I8mdyQ`1=Uk!H_H{*#U;Q%}xlNo)CQz0s!C*3rJJ-Fk}W6zWvU zshQKVrvp#F*J0K%(s`uQf9CKR&ohO(RJx~i@9B2w3F=|=^7JA7Q~LMxyA6a4JPeBd zp!>t%kLW*!3?&Q$3@eS;jcklw7%iMtKO1(o)A*1v-uRsfn~9}Kipiqs3Da=XuV!Lq zfo4_ad(EBA^Uu+rGdcI{+`NUR#RH2$OKHn%mMvC7Rz6mrtoK^GT9??c+1T1-pQk-< zdj7@vRa<@AC${r;r|e?vW>6ZaNYuE!s{MWYQM3{|96juyZ znDNx{e1=2dtZ?~W9AGo`1%C*C72oHr>>cgBL@*&_`|R++_fVc{Q(yP`U2Gg9|s|V?1J7A1&CLOgTY$C&o44wbh%i4N&HgyrMb(dmkY1(TnWB1 za8>JS>NVDDp4VDK6hq?wr1{hN&zkE}*Q2hJZ`j}Xd{g{p#Ld-Ps9T?JOWb~Vdp*=4 zv?fd@Ebb279n77UyDE2|hwljY3m>?rdoTAs^8Stca}R7De2O?05g*AIiI4pH@XW*f zr~^@VqE;U{J!+0tkIsnUj=3JQ7;7Kf5T_cK9?uhhGoF;-oY3}I>v8UrgHIw7=@PvY zhmuT^Dxb`}Yp-j+M^fF50de-P^k(dboR@^a}T8e3kiH z(s!coOTSTn=KyM8{2T7u>fn_jmZ6AYzTuP+$&upGlcRNG7Gs0s?&B*H*CuyN#!MZW zdOfW={bj~%X7Ib`_x0IZKlc1co;x=8Zr)(NXTfb@W%0(+o~7r@a?6z@Q_}DXVU>RM z;hOMTAz6pqweGgQzCH;tQ$8u#Xy`(S^(lyzl7sAn!Oj4&-U(fSm>C!twlOeo+s3?u ziIHi?E;eRnwq3i~*>|zC@7}>oNt?Hg%s*ZcEKE!+tSsAES+{erva)i(7gmmqCOiH& z9jw2Bb}&E*kRLUIAEMfUpx%L4?*@AphV}Od6+k5|*j|7H2!<0i_$*38OGnSJjgblQ zkCh0Biuz~eb_hX(pr)dsqNS%}prvM(0+l( zzO|D&=6R`JgI+M)Xr}Kw3Mb9^Bj&?fzRf+&`OrK#Z{py6E#g^jMa$5Ftd^-GAtW+6ud;P`aR)?21*oN=&_qv1D@`F` zzr;=&K!FE8JFVo!yBshDZw>2bqz>5id0q{=Uej2{ z3*G;Vg#VcWp}$C2?|_)8DP!({RG@_L8XnKc?Jf1rqT-Oqfp{o-VL^qoPd?P5_EOoD zMiJY#iP2}~CC6!A|vS}Zn;E}ZyOV= z9_Ppm|KW1M7iaF=v3vNKbc;k7NfhsvRk99!zfr+cv05Bbm|WLqCD8aXrO{ZRo|HEm0A8Xq#*!wGoMnIBI<4(3o)>DfVtyX?9Lu&NTGCf|L=6Ay-8V z$?81&LKy6+u&e7bX-7wy6uf-dHm$|}9Ob9pDP@HlE$wYz=5tJK%6fTjF?;UMf`@W} zhKuve`zj6bQ6ik?I=6lGx~;ziaLui_R8~BTR8H%~%q!{ZG?T6V+;f7rR3T*uldZ_t zm{n=)rkDAkttIn|JDcL(q3}hrXF=ZVyT?sg=RA6*^&43V!ggJ?4Yn_R8TI~I*cvFmk%sqe=gNZ-bY-?k5ps>oZyxNh(Q>Pgca&p~NF% zq!06HHMrEu^hiX2;!pS$7XN3N>Ro z+7~Y5k)}T4JEOEll?d%)Dx;~4*=ci9)+>8#(>osSL+u_89@-}>L4JsfUhUW5uv6nq z=hsw>lB*O-kTcv}m3iAd@70ZQT*v2(7uC0uM{Sa^_?Fi3`0Q5iBQk-ZU&4}O1C3ir`omI(tKVfDj0tI23Ea2Gq4E!V zMby=}=ymACw9CTt`7^7>yN16F^cC$2-7%V*Tx9NntGdduCbAA`HEQ4fa6=(2{dMzL zMlLCa$Kvp-VsT?*x0HnFZSAAkos<4+Dukh+nO#avWnzYDMpQeL}eQlG(r!(HMeCBRX_VFuuq_ zEq6s446Ny`5 zJln@56ANA!-?N^o&59qI#HqX`6|ITQTxhTz(skM?QR)(1Cz%p>w)2W#U|x}fbh1E8 zWmfr|N1A`s*nkybEjfER)oqRKSz7Zv^~<8=&hIalxQf@ICc`4@l;E1g#w_tTRI9Cv zO?Spns>N!dTe}N~f+(&qM0){SP=L&_mM|N!C`+myK;phH zAIb4&*P-`C>yQr8W}g0~$+jn}{sTYs#y%}M5*{XAkbyep0CQm==CS_~5etu)S4zb0Jv(39__M(UjDEXV}4o~!F>w_^1u`U7v zPv;b0jy6qa^V~*D=REB^k(*)Eh%K0WQr1AUH6f)mE5sX?XMG_l$+Ud!!0fM{KjGg! z+P)IH4l&l&o0Hj=bMha%zi#@j^QcN&IXbRkAtcB-&<(HWPrNr~^87pN&Lf6F4i{S1 zAvz~{`G*g0aiV*z6}i20T1sBh)>*xlA1s|rGcHt|#XReZiKgyF=SrlV=g-ZJEZXho zhKrkSAX%5KdEmfY*U2b)>b1aw&42jg;7f15wTFJ7^|^DctRY!Cbm{$ zL)P__=h0E2Po9h6W{%JHYnMNhIoYQ5tSd3hBJW&lc4Mc*+PLXBeRD?YQprBCgT)T0 zPF+l(iTE8t*ickWt6#2LhTUMH^%1{xg3f3p#!UpBCRoUGwSA9rPr#mY(HyoX)j!f( z?_bFbZ)f)+>6+&g%Fwc{F3TO2Ih9k+#+BA1_S$1|NyJLib?Ba@tm&vvEK|mS6m9L= zE*oc2U)pMc7Lu5Y`CQcL7E=5??x};9$+uy#rfadOd+-B+R}+T_^vhtv~OIHoei z`j7r&c9TuM{QR2xXs8#`>3W4oRlzm!tvHF)eHTQz&h|iViA^27-?Dm*Zk{|V zIY}_gpGZqneDS=d*FvU(C~It^JHHMo%-603jJK{OE{Gnf#^+pY4|PW7mn|2&m9O$8 zlPt;_NDrh&{EC)HNAq@$%}TH(2C}j}o!r67w^$j-v}bw#xkTTq13{OU((jMd1%^=X z$TvINFa4oELi*~|;CnWFDA_7>vBcBHY%DJ&(4+iKWl>#jp_*HLQKQd%7U7ysVCRJt ze5|5G)Y9(dm-{U48HunA$p%lBwHvOma&?rpFZh)g$rc$T4CN!?ZK#Bfk)1#Z~tCqS*V)yZNBnbxGPE`wXy@+ck_bB zJRxWxJ$pp3ft-df@-vYd88@*r!s}+{PrNLrz1-Y6CNtIx_C2TYQF0Fp@Fa7u*1Kkk zx##K@KCVt?u%1BevDjO2OyU+I&E*6{cQFm2*mIm;Ny}YEi=oJ~G-J);{m6r|Mvt;}0!?^{SDDtcpy~v8! zSzOa!lJ-B8zhkw`_nKmUnOTo3>1~rGUbz7KDGiMxKXy#hPdj!aC<{-=%92K0o^Qsk z8AY6vSVn#0jIE6xD>FV3Xfc{d9&ZU+_}px1qc^_4TP!i~TBUrqbOiINyLOlkJJMt# zLYCZU?!RZGYr5VqE`AA}+(6Dl+2=+$WY-lo-Za3e;rP6bRh&C2Zr7&gD$e=8B&(+! z^~}0JA|HLHez}f^Cf$f{6*YHrH;=cBu3*O+=W#9UV~1%H(@SeX(;sKZ&-Ka~s&0@B zh4>H0pCl~38xa`E7VJ@fz7D10Os3C_am*iQ#ErN_8Bcaqv_bCdd0l(0dwPqD1MzG0 zFIt0yG~Pb@uG=OrSm0Io)|%8+HJ&oThEr~;Y&&8MXPp}eu0 zpaFI>r=@~w7nMaeQ95AlJz8**b*xk0PneI0=g!q?4E5v&Wp%9(}y?u5&j!^!h<+t@@7MC%u@a zW2SlTcR#A@zEIP-e#ay0#YdLz(Qxke+h5$JEvtJ!r%ZLO=479=(R9ntHGW8n($f=} zNlh)_KT5PpUzs#yX_9NLlqUDvL>P>@Vi&k2zw&%Gmj*QM(uJkmtD7V~bYdC== zMXYG-v{n!DgP=_kGiCSA_z-g3EV`IWmt0o(^n&ttWzi2szZGwTP~e( zsYull;7aP_LZJt(Co1To<3m5khnf3ZxVWr|#wPxmO(%J0gV7~6ep_nL?=;RbIj z)wC0;ZQ3x;bhNbS;frtL1D4JOU)T`owCQXvj}~qo&Q0B|bM!?=cWGYEk&#E{2Lkqb zWYI3#+cQdd?Cuo9L4hIuSEY@^&gS7GIws>1!Dn%;CHr>1Y-u?{TSK?*9^2cm!g^kG z5lW*~`r|(Hk;7U}&p+LNO7YQNKr?A&Ts#Chgc zhr!{}NDUI+^wCx6SJ&1O#kxEvD?7~A+H(ACfSTVOr9Iq>Hpv=`aVbouZ$H&VC)m=UfYl)}k8BAWI{Hb7OCN ztNWijt?suww(;D(<-iE2Rt9A!(8(_seK08N~xknDZUu-Ki5!VLGiUeXdVSD{NMOjFbJF<{EvDC3P0u zZO+);(j104IVL6HF^ykbdzu@<9Pup=HST78JIv+9f^5UbXN4kjDLG29S}zq!OW#HZ z_Bs|W*!3BHl{^=y^=NjysFT<(@u)iPD)B-u$)=7>7CnOF3q#8_DYW?ISoT*$y5SYq zR1%ltlNVFIWvet-eahZ0(-p$C&$7JmrYJGP>S4rG@6Eeoe9e<2r`>F{=BC!4KW4vF z7{JA%@dJC)x>Jd2nk%V3B$a2Gi$trjnK9zv8B|OkI=9bGCT4ts?}fr=bBvzLKD=o& zdYVwyOXgY?8jZ`&9vxdQFd6!0XD0Gmyv@QKipVP5yO2lbLIs6PlW(6~)l0pLBJ`W_ z=}H@(YuUq`a_LblO1}=*_Wrp6U2c+j_Rxq$w4S#}v*BWP^XIqkt7@}dc6_FfO!GJd)Di-F%H#+1kaqOn@uduHF_StuK~+=Eit# zv=eGKsf3;=OTO8Vy_}i-Vz55G*-XmQQ$k`U{(Q!y;D<2L_w!MD_C)#X=saV+leJ6T z>rj&Une3OXkq!>XBHk~NrH!L}E>CL;Cgy5Lvqw^ibvY4_O=E;#+oOz(G5$Q(nzR>} zYF%zxO@1K!z?Zr3t`dh*3)ALYGv{RUp&I?Iub5{=h`1{n`!UZMzSDaJawo+O|0KooWFdEHMW+d;^0tS zmYBM_%T+_kXn#{_v}#W7_Tfl&QSX+sD?H#^lv;hlsLHtYqn+%XdqWxN1hQTxmpvb} z-^(RwqXV#tWBhW+2ogf`eFVieboyb_uc=mL~NT5kZI;Um$Qm6MZS)5+2VeZ3j zO%oFF>5JR9h;?MQv!@t&?xKsyY5ou2Y{PX`M_EJ}xLr&DTbhQH&?ki!WEKM|8Xuuk zNT}T;Df|?N@PY7C`s?lMlShmH3Kfz9-+#)fpVFnF{5}q`aU;$_)cXXrxT(M|>A@hZ z0R`#yxLq@xO&2QHcDF~XCD|t-PsFn16ObKiT2d9bwi)k zG=rmNHU`^hVBm?xIvAn7@b3C{7vRt$W)L#q31Pv@0YXAX5E}A=@Q^#)6~yTN3mfDp z-Ke{IVKymZw!=HSdO2e#U4r^;6l@J$bDa%oD8gM(iGa&r9Pj*%V|{lxgaU-;KwL1U zhPxN$Cli24JI`MkLr0wMuZ)H#M&qvx#_O-l89P_puNpl^FYjL&O*hvQzcN6Me|4>n za&g=g#DPuNlo!_Xgsqn?%mIZ+14jegPpg1o7#ZAQ zvY|6*hmCIjVc4@E-0fctYlL#$C^zs#{Wk1&lqc5R)Cmog3oI1Gy!;d&D_mg+Xi~>| zd12jLu^2~qSdf^1*1#nER?hOX+z^hT`mKWLX9b|`S1~+Ss3$2MZihg47qB|2pLfbU zI!LKwrCcc&mEeupM?Fi)GC~me2@9mnImtpPg=eh~rTv~?d0xs`KPdTalqJ5WC3>#c!Lm>9PnfyQT!VvFHXr*AvS7Zx?##; z3#6gcGf+x4=Qfop=m@+wr49#Z{@&MKI7Y=9zo$h z*fXU5%kDSGF#KiK6lUmfuFfbl&cyW$JTVb}8;6!s2a0!sH$5eD>cnqj(K~u#@$P>s zqQipNL+4*USJMdYU7u10`e3oedttTE7__IY7aR=FqaS2m!dw8|~@!FVIbX7XKZc$<9#kA5Cfpqx z{i|#JssK$OJuC*6^)@f8J6P6n=->SvqbqQX|5VCsM{%V8RL(>RIsJ!X%Dg)S4+Pe2 zV9qKt6nJC3<)FZ@32)3#7y}X@f(tx*{J=W_fbI}91V9j0yc_(OzZFKj6-K-jM!Xe9 z3>?E&81YsZ@m3h|Rv7VC81YsZ@m3h|Rv7VC81X+w3U7rGQzDtS!iYgY^Hvz~Rv7VC z81YsZ@m3h|Rv7VC81YsZ@m3h|Rv7VC81YsZ@m3h|Rv7VC81YsZ@m3h|Rv7VC81YsZ zar;JW&VCSb13|{%O*xc;4N?O^jabMIguEd^0Im~&y}%nsfk223#Qq;JkdOul)|G)f z+!$darjQ1?mWZz`=TuIsLWc5>GC^F$l@>77OSxuE3j`BjvW$9)uh+}z#JUbaXd zH&+Z!!AFUo(zybF;bJj@1m}zKvh@+c-~@j5Z~`1e=;=&}Hb%ldf=F7tml8jqbb|#q_g~%qOIiJf zsH^+$QQh2N0Z_Wdd1-osQU0A0aBw`Cm?0VmPP0RyHNDXoFM*%U?NPtlx`T*13a9oc zF|;e%4WQwG5+!~O<^JcN}iss<~+!ZuD(Y7G2_$-Ji{;8b$`lco6OoiZDx|+oYXiWaZ*!8LRwB< z?q}PLa7$a)|E>>vl!61+)6EtbgR`5hBUN;i&;62;`#ej01MyyE)m6&>owR zt22^f!3wr0I80xO9|c8!= zZkUwVKU&*g=Kph6sezdd+ahjLlj^pPzjUe$Pj`6AYMeZwE(?;H^v0BxJ1H%$sU{_^ zdE%H9a7${(DPy`igO(I%qZ6@zKNEV}mISsWuqA;l z32aH=|3?z|>r*ot1GZ}f@R|7kS4q8!k_brAp7LHyv0uK)5x{r|EV z81VPBbrAp7LHt_>@oyc(zjYA*)`KJRl!~aJWp&pH5K*7 z4}F_^6Uu4)8)x1B>nk|E15Q+bOVoc)8z=~X3Ld6IMfLZ}|4nZF9XO4Dn;bm@H3A%8 zzi}G>djxnW75FKVh8kRdCIllDIE0^;j)|HE3=02$&CeQeN6^EE^fOR{V>_rAXc06F zv@}%kN%Y{~Znp2(PdTI?DWL}1i>vNrH<04kCC#~;@x0_Q87_BOxjpiG`2`LL9uztx ztiA&rH9|*2O-)D3z`hMUKZhOg1?|`mI+sxUgWlHT;@!tPXENW`vomb(`_9jSRF(A1 z+9eYqZlG=$F3@&_a{cEdne8w6f)iY z?sB62mHV$XPntMrIUY(fMqhhY{{HIIkPq67I|1i3RN%=7v~++6AW`rrydC?gC1|!I z#o<%@FW$}EsrvYBJ-?)9I6JLDpSq#llPoaOv6)K(_c+eKOU(A7bJs9J9r)gVc~^O( zJ?B|L>4Djellc+gfdqg-sJ|?4rgeC(869Dc4mMVQ!l;VSMxY}YGmmDyIhvqzH0!Mz zqx$m`ugr~iRvqOy{Yo$bqP?#p%ycvhoS44z62zEv^t50Eqbk!ObA*YYq59`6PII(b zg!%cbDq6GqS9exHRG&H3UxJRF|9SZFABW#_8axk1sG0>EUpGPS(mtzm_=!0f`>gu= zU3N@IUl|`b6k&E~=L=-k_4D9Bmk2W`bvr_hX|ME{Fd&wZ0ixX0?{EY|2yKWK2_6vz zCxkYmDma${sQl<@2s(s>sO~_Zgm%9+FoH`k23!vkC^zH?28f{bMiPdE5o+KOZ@~X%+U$hEAPL}e+LPHsDpdF3P3~fVpP9F zDWs(V6oOU;3=kCu7@G>v4JZdpv?l7^_5%>i51IyeFEifpbAi6 z5`^JSC@7S2_`(s4V1y+=OS4h5Nhc-45cKHSNb7S7(Md4l5G*W1sypiNcz{Jp8SQ>m zB;4r+Yj8iXG#~_A3Mf(s^d>VQyyBsQ7eP&MG2>JFzM=zyXeN_7(86Ogwt z{8b=bSbvb{+xc{@=M($812{Xup~-(w2)(zSM2iV_A^aWaC)=>TFTr9;2;N{0jF1q# zX*IwyVPk+Tk(LJH*vT8dHGnf z!V_blE-GLq5X~Wo!2o#(S{=YHRo6ZR&sVqrDf-kX9SOI}z5%iLQ4|h1hvf}xf@x@~21&I0?JXc-M)kWFH1}&Wp7!W`F>7_cZ>l*r=Hv+Lsf8M` zynum*iyOxNk-{=;L?8jFFl^Z0hQ)FO!&76^2mw{FbifQ`RNcT;rGONjL57GH?*o%D z2P=zbzVSH?6kV?AmLicKX(ErF7KTJrq3wVj1J#`U=MU4SaGc!{sDoM9 zEV3+CmegvaO2jv4x~L8F4A8*^)&^ygz%~H{Mj4wjFJKZk%o;|csB@FVjX4TR@YnzJ zCon6}%fBcpo6|bc&FbiEtIEK{7@Wj-TGdckEs5V@gKoV87FVUW(>%uB;oxq*Az?In0E&bQOaT6ZU_iU2u=uwL0THPhN3#q z9DV_kSu-WrFnuAa!?O3{+6h)8dbjw)|9qgGvtM<;-8ly66N-kw`Xf`w{(V(lAp46m zvE?p;91*)9VWyoIPpNUlf0%8q6N~cXn;j{wDq1Eqj-J6Sk3OZgz71S4JQ_uh@Zbar>u_+16Ot5mOLOgbMyxrxj7i&DRdEWzz9F-p( z0_3SNG48manh<|Gkh54bLRJhlKWb5me~B#Ny15t<^(`VuqszUv2pF=y3 znijjs(**fYjTPy!Bm?y(hWoTM2z+~8@1t4z4;+ay0B_Ln#bK%9lcqR}GF2On_+i)iPb zQolocRSl&{q^~?#J+n$kc3pTwv@Ws8{5-wLcDLu;#S07w?Ie+KgH|h+Q2B;D zdGA-AI~GjwbZ2324G&8p3tT7!0>vLfLcraE7mzck-B{v))EVGO1iTJKws0c~1TcP? zro3Y3QfaqTyj}`byCBDXh~FSdnCjl0)q~R#Sc%0c+&r&N^6}_5ww)u~gv@=siXQ?> z&-=3uOcuw~3QQ=*7aR&s0#>JC4kj zm@?h8%SVIfu%L+&`;(Jfq(o(IN$;S)I$C8j9O>DZJlq8-U3-H z&vLlYR+}R@hrek%aD!^h?*l4(i$W`oFYOK*<|fpoqsLV~CF*s2FA}R!(|!Mq5S>{+xg}{13dmVTHSfYST#3``O zC&3VSBh+Aj2y;U*3h3&Fsemf==dk<%%Er9Y`{@HV1dWT=y$W6848N0f?h;sd&U`%{ zeRqX-WcAhVoWZHsU2!_TBSkzJ&nIQR5-}wfIaQv#>(EEcV2&`yrAxxn ztr|ftA9>?nt@w*h5BBOOeQzE9ZRG*O!?p^>r#WPx3giY83_F5LU{A3hkPOJ9=wZVt z&>Uh!z#PH5DAx?2%1Zo-CgX z+mrP@UhE-nZQ;r^y~M}mwaO-hHq*{BjmH@>_H6oXfh8MW`QiAF254hX2rq~fM%3?6 z<^T=tfx}=Df+DIrV7hLI8*Kkz;=wEczc?I%w}t=!2{wC1HE^IL;5`YLkp^r=@~{~l z$vZRLc=h_(8)|FkFxF(}>FA4Dq`nWMmVx5|S2(U|o5|+c7hPQO`D)|bKeKl}^yp%o z2H_JXukf3rCJ8UwUN}{Q%`IB1m{tx`w*0aZ`+8*^;!U}jmzb$~2;`v`#QM{r8DuMVUB_svDF25QSgZuwefJGYvqH;CZqE zQ8=Zg+0+@Bh=-7{BH>C{lOTbDzfJY@Zd|2cj1uZ;YWzs;IbZ|Fp$g9j%~< zm;7Iz0%n-U>8FY}mQM)mv^Mp&X~r-ka7wrebW2Gv|CE)2V&oK7fu+NYGpZ`Qf3H+@ zjfXns+cdU+1z!_*jKS~_aw=@+0vpSl$wG;bJf=sAWqa4K{>gh?7n_JdMx%E*cTD<% z$6bC?=%3`4t#xeN?O)>R+bN~-cF&QHQWf2>!Q3_l(&fD#mvNPW+mA;_5**R_-~Hyk zN{@8uHpjbvmDewy-DB9#x{}$QJRF*SZgg$gHnh4~%yqom!kbLvZ!+#t98fDT6a*g6 zp#CT{+--6f=GQ4@|{hcT-EcV8E<`TLTWL<2BPSS2x8$qQ;|nX*K*EX(7U$UekV}n zC(ox*8MWGoM)J0)-rG&keoZ7G4N3@xKN5jMh7;f`oWQgN9|$OxyiowQG%&z;SM_I} z770VtE=z&E@Mb)SvNV7>?R4EK1){wbJ;Uemv22_7+mLJ6O1W=?ypieM^@FlKz@1J3 zSM_+j+NLJzNOTPSL5SzbVolDq8n23;l(zXGu!F|b&NL>=+@im)*j*X;{5)jH3; zjS^a7(UGx|=OMOtHOFWD^)qaB*Hbk`2 zKWVl^@mmk|^N9y<35_8|CrwJdrxIBCZ~@*DzAlMgX}t3G-=5!v6_|~_wUF$ z^C7SiCll{ZUn|fkN6ZMVF1OFQ;a{dw*eg~SadIs18Nyg;XI1!mi4|0>SUi zbwrVwd7Vursb7gCH`Z3QEd2QPPi!MT5+l-`+)88d)5;dUFMh8_bfi~KzFLQ@xcR%l zNHmH@ZEHSj^NsH&Yl4674|O?!^PME{;G!P;x*)^)o0WaZFWv{FG=3Tu9<;nqr?9M; zY{wNX(V7}qdLCl>s4V3hjiLIq_F|6gs9KC(4!#wN&TAkV?#(yZz{UtaA{>ex%+ zEX!+kkctjLAiRg@UE+_baP@ofw%w-HyC?yoChaB0J_m#%A}SF@@8jb;Hi%}<^x^3d zvRtTx=pFpU(iZ}9ygq#jP${+9bAFSnKn(?b!O0G66<4uG@Mf8!V_RTRLqB=R)>|oZ zQ=UM;hcN8;xx-@?y?2L$2IK?_mw)2J&Dchj8_WhG-zUa(o+os8BOz!t?DawU!SDNr z7xKlt1MhIhPOjQuqH3SjsR#3$2AC1E(f-5MQ*^YYH$QM=2EA2Is)!B!5i0t}XujXj zDi-b%y&Nd@_D8PiB=Omg6{*tBfDdbqm$N>Vn^PaM)anUd{zwX8aZilz4~E!;=Si4I z;gV68+9v(4r1{`wj>rC!}{T9u~T zW%ttMd_iSk@`VfQ-vqYShVeNUmMK}?btOL>n_a;wiFp-cJ3U`p=MmzSnJ}fOhed%w z)z230Ws>F}lq|c85q?aS-&&b=teJEBwCWu)nuM5_8d;5dzvlI|wtXS6-y`1bWvfKZ zkj#qoT!TC@ueF!BYjKf9Hi@h=&~j~Yu&TSXwAR~3@20Ox*vkts@k=g~DAe58J>ri6 zzRr^)PR-r=`xg3pdrvw9;s~AT<>Nn|Pj<4V%l0Y(Axu=E=cmeUlSr6kwc?EOKcjC` zf6@xFG#Plsl3o%;I^*LTSjI;#B!ms8BIAUnKh}n(zm)A&jwlcd8Dbe&9-CgdzA_s< zkouY>to2|V*Yx-I9|NpE1bX4L+~%gUZ?5=ui{2{GkF>TZy90Sf_hleOk4zW#Dz>uz z7zWS75T0r9j>;r0%2x*Fj-MT2k67|>oPNTy^xYy90X`C4a#N0(>lm+WeX!(bQgByg zM}AxHvl#b+*s?S;`fQzrKP$O&=B^dEU#V>IyAs`X1y2#%Z3nWGfeTHfNT zWZ`>-i0-hBZ_7OoJ1eWgVdYpR#*5m26ezN#W32T)77vUSN9x87r=Kqyu{7?bAURyFFJq%(_yp_7 zC&nJ?I~Jb@Gw(&=>v!^wt=`dKIxgzJRb4X;SK+a=UKyF)5zz}KB@s+Y$?mVRK5;)f zZOohHC1zT~<5}|G`^R^9U(Y1{5Wvn=mPK~@p7PB2N-(R$`D2IAB;_l$94?+}ZIG^+ zmn$p%7R37XnreIw4G~=VzcU*^Z2x? zaPOP4a@DiJ#5b7lXNSF`9p_>{eJ{hxi|GVJmMf;Gl~r7R)QOk)7~py1>!S7WvjP1t zleyEDRf)mf{j_Z|=hxAOuk%%j8un`QI`Y}=N9x#0*IPgGI73|3>vFEliP`&K z7tO!o1BcjRqn)Ee&ULRiL|R9e@F~>vW`1l9SsBV}Sq$WwCGx7R=6G9VkpgOp;`tiH zgl0%Ob3IyRyVZz@tLn>`MzUxdUjtMpRiiD6x#}f%Zrf=R{8Myf+K$#F*6gHvg zJWsmr6{>+&&VG`vKhPOeKHf1^KKkA3$}`|{TD(fzvUKLj&|N%_E(PnVLcV#?a71ke;8uj?WOfOz}Ix9xlOdu=8I$D z_cawyKC#!Ka)bHFi!p91P7@l=8Ls#ml{LrUriof~2D5c#&O4#3iQw+(xQwg_#X-NX zJx*g~fwPlkw(~=|oi*)vF1zM77fdOIb)chcghuKeV4 z*n^q^51MQi(L}Y&&StjDk38&$*^DdSlrILkRu$jsUwkM*V&j}k>-EbA_A5-M z?{lvN{oq;_y>WN>#kW#*OR04P6_z)hfeYjKnP#vhq!{iVV7Tx)vgo|JH<*)pbcgYTMDdEI-c9xoO9-7zDSR7@l+jQ`~ybeY42+O zr-eGYKVl9}bBSV|9|>9Z^!c_eXuJ-L>*_t$s?Q{JNXzewQxS zx1wI3>b%zE(Or!Nywgjy85PO=-&L$*h@WTp@QFi;-9Fty^=!|lXW9CJjqba3{X?L> zf~;Wk!F6abc=1Bpnzsk|@SV+fDl^_qMND+EV$DE7MX1ReR9{SXZd*I5;3!bWr(`1% zG+p7TGmtT{FRb8To!TfCEn>J_AgB@G_qnR zOXDrmFMjG1Zufo&mg@NM$nnc{zIr8j@hXoNJ=y{vd(<8Y#Y)U9zgc8ekxkDj`7)4> zDK$|V4jsEm{JtWHDz(@*h3fn9eKH!7*ZkhPz*eQ?kxM!JWr}zeI{RA zR=%gl1v@uBY8g^Po$m@SN~?)WE-Q2cQ%1v)o!)Y9fB2vOwfmu}cr-Q5zMz!f6X192 zQw*1~A3?Y$j(?&=a8R$HRm-p6-?DVjm}*F3WX;L|69B@@0bnx*5SE#va7S|qqzn&7Qx{_;X> z0EVn_D2N?@vr;yPdO3AMFwEEbs=R(!ZAk6}eO*xscBQJH+DFARj$2M`6wzy-=*B>4uOa5{$JOSdh;qJA3ykvJ62&_c1L*m; z{@D|ycVj^hdDF)UhTuDyKlx0ju7CER_edNfb}jYwVs|Z)Z0Bk;hW2&)fM=Ii8uX%a zs#e8WC;fNCa~b#A$ChK1WtQ2muOJ6XEz;M9Yq_ma*rk>~$JZf3;*&U|uk?*oPdyde zXIp04>fbR9bLP1(M?F>EC9{t{bq$mwr+_lAS))>^|>_)(=s)Ip8e?``5c z95P!L3!?GWtsjO3zAH=CX7wlxX6g-lw~51B%9hSRh~Q*rVzm{nBQ+U6|Ioot;e9 z=!ZTFfHuR`lSB$c-&XwuKVg=t6e*Go6aEM;5b((&LupOsj#9ksv~q! zuB^;*rJ7r@E1<&Al6RW32j@ipqqV(=dv+-lw_?esDDyE;ppYQYrq^imDY4XpX#Iuw zdH!C>@@m6MJkQ$y!`XYlHPw56z_$!hR6s-=Y!v|od2q3zq9`~3Q2}KOhzpQCN{9L& zDk4J!kz|n9r z*2(1Q;s|xmLYM6GB`n_T48F?sCYd@XUg`Zqdt5*^-2kkA?OoS;*7TmNb9@{^*j379*;1J|~st9gJDnIz)@}P&LPfaP=%H0nahRB#R8N0 zvQ4@#r=y+J(25+7Xm4iCbQc3cQ#^XTFA}40Q&r~o$!_DWbH|FQSaz?_pO7ed-}v;t z$z^j9wS1SzsW!S=4wmC-Nk+!_AA@7cs!P-xv|$&n^MW|5?>_O?ZCFoWR*{(L8;=mY zoL8Ies%nLOhG)-RtnD+Cs5w3V1Sqcj^nmNW99P=hDpF}bbX{ZcoKZ$(GvVA+>j>GNsmq&weSZ`*DLU6QzUFRerdy&E9M=G z``#KUmy1}0M9?Bf`n$d;1t=*!0|J$`Tk}c)$@fM2f;z2R_MSXx%2rpX_g$aj%&t(Z`}KSXQgwZVnV5Dz8BPgWq@SUwOSCVD%u;<9%+zBT zy5H1DQ4+xuH=oev?ts}+qMRcX8ivZRCBB=WdGx87^t9ictD@rE?UnB<6Nz5~;-*!9 zLXPV8i8((ZRSLB`OxB|}@9>Xe-TluhY5eiq7&MG^3-*tF$VX=)xSLT8SH8Hw^FIn{NC)XZz%w>0m{S zn4@>t;tilIN1t4*%L94R7xMquGH$$~OQ~+*fKE~Va83}_jU%%;YsX-9cfnLUeY$bZ zXUIFOt~uwHWB5RJ_fh-!;>v&rOUw375}OOVWz227-K)Nhw`M;dbQZwBYd+e?@TBKh zmDDx`BoMXwyqI5`cY-wf#_6kH=(A*6HRWGyOeD54*9@HO13EnkT#*)U#hKW-Zh=;THN61TzM{IHT<}&a; zJf%BH;#QQs6~UddF=vNDQ0`}C)mAJ%a8w>MEf}^qI-X=XH#MkN=v#3`EgwBl-fk|% z*g<>Pr>0)xTyb-@&$hx)Z`rqEnq#+`(vn{Bu79Yp!&Yc+p;JD|ZlU^qgg=YWeLJ-%zcEIX(InZt z#o=VNp~2E*U_VEN`HceZ_`Kml{iWd%?!d+A((frRFm|S=92mHrbw|Ck+~z9ig_*AY zzy=cG{7UE!Cp7-qOK+|&Ju&36P+h(e4uPkJWJL8NX@5&X&9<3;ao zsTCgT7;2%!MN{U@%~Mjg*i_YDG7j#jWk#Jw>ipvp^g%uRTI^zZf+cf)>S~q+{UX6oO*y$eMgB2jpjpTQK zJh?R283(LpjQhmF8}N(&{{si&!;f}>AFML_GS!?OLC>ivXxgSe zysrOkeZGKhaV=|O?#cJ`L%@~|p;{;P2g!GYZ&g2E?u(A`=QkV{(MMV02)5yxL%5elvG{myK_}hlpU21CM+j9E5{Jsu)kE$P2KX?^YW@cqM zV=<@0M;C>lf2=w#%dkJ^|0{&HuH*oCmf!L+#R}}M)sw!fC#C$btnepvy(J~IqI9jjhoD|DC zo6{!}Ypo2Qc^R4(5q)5&Qlsf*OTmoMg0r6?)KVs6=VPW*FHM92*{ z<+yOYvoo|ejxp2xhu-WFspVS`BrkAtfhOYlRL+^>&pwZcnlUBUNg;>rf*D_C*ghx< zWSYg)Ez_|39w=DVO@W58UR?DXn77VG0%OV<7R{pc0o*g-UWOg|fDM7`5P_%w_dkpU zMAReTQi}z>gm}$?BUKON;v*oQHh?1m{0Wdi*(g}uJ{R@BtChu!80H(So6|BQK z-n#Ewa(BSI_K4B_fid@X-?L*Tf`bagmto<~9QodAxweC6>;eqV48MmCHQ9TxN-iV@ zV06vs5f4gqKj$W;;<9R7n!ECwzm!(z5nrfqixcEy914&VSjqLQNUH^hw$ z8u%O5!Ew`G0M)YT9!RE+>V}F(KOQO~0L3~nTKBDu6fo!MDufkY*%IM6c&q4Os=L@1 zjEG@T!96O&>ogAm>X+rN#7e59ytps7{btN`{Qd5QsDJ{U_0fNpMcsCb-W=q8b>Yv* zpU~FXhtqY}O9$nxl7lfnA%m4gyB{pt_C-&D$^TAaFgr+Eh?qLH%0wYtvFBCkM z0Dl6&N)Q2Q4Dx`Hh9E@}aIOXnO+vu8z=bb5%7DBu(1H~4^YIlxW&JI`kF zNJ&Ae2W@iNghifAnadJGX>@tN@IIGM86D~(J!EqQJy7$&~(I4$f?U- zb?d!W`jKT!gi15T@HBn$-Q3OgMUjEVcvPlks^=>69~Z+1wL#b3WkfY zi}Jn&c>pB$cWi{89tr>&W6$ZHY_W3-c-UKLTYWNOiSB7P-w%8x2dYb7lNXwDIa(E> z4^OwtJnlOZFD2Gt?}TLE+>`=))=+1liuY=N8Q zV{_NBr&N5SmdpK(QJ?G-WLrFvGnUNPH4obKDEQV+b!;C~(Va0u>V&x_7jVr0;F^eH zB8=eNapR- z@+g}7`*a(5v*jGiRNZYxt$f17aC0Hq-#fC$y(6S2r_iK-UPJ+Z?)&XulrjyXzxZ2e zl~Oc3{s<3nqJd-p(hmHGLu}|JGz5kn3CM~D*dLaTXgCIzBk!D*wU=%rzX}?H$<|K0c`A_HtwBgLm5%qEb85c0U-~f8k=$MQbquH4$ z*`8LIM?$7vhpxe=05pIE060wqkqI*_JeJ7v%5oR!*A*q$ul zTE`6uIldS2!z&u$O?oWq%)ZaB;*}rz*prXJjC## zxZfhq8{I=4=S@^(04luG{^gw_m6^KCrP#-+2U|Gfl#=(*S^br!^9*u>6 zfxea$W#I$lahNQoWd4vBaNAV4%&5-onEP5dF*tbqRGLfz8>hx+FhoZdp0tji+?>Xc z*|Ad09G5z#nP2P^ne}F#z|(3w%!k<%>VceRnP7jI9?%)^vcnu=pn`xA`fgh)@S3l8;*g&fLA9D)9wD%deu+6zq=_&S+&g+} zVc-}6=@}+V!LtJ<+US`U+=XmOAOab8So4ERM_3ewlEZ9>3~`B}qI3Eb8UWS*tjFJUBtuzSN%mFH=IP63!N0tLlwaJU)F$R4GQoD)F`hu1@d z7ElXwEJ6E#P6;>)j)psgT@)@E1P}qp1JaWd4fh_Rp&~zo1-{RYa&XUg?Qw~=X6F6d zvs1^`wyo*<@KRpw82T5AlzCbQl)2JWWB~#AVbBMw&DTT29RMnmWP@qY(*V7JER1lJ zD3UD}2K)+~|1jycFWE_W-}kq0y(9uMBcSylO^Q>u+oW^9)%8j)N;!`9rxfQ=<{=pr z8Wah)39cWOqo7bE0!$n+SSElZFkHy72XN{K=3Jo5iGsobBTI4a)C0QiT^6uEL2z=h zO!*PWcNYPLA`=pjuJIIx-;audN|2*X2ycR+Mrr~Nk`F8!H4;~4H=F`^7A&jaAN&LK z65Mo<&I91J1Q<}x2U-Ug0Mu%b1tt{!&AtMehC2`fS(pJ}rD3w+h+n6iz`(($m_Rc? z?=a6Dt?23?0#S;PcbQE_n#F88CR8DE#{;1WG`_#J8gTAfX2*d<_<+Mof5Bq_TCGkzU1o>FKAyEV^4 zQC1(0Y*z4UmY}y?gY2Fx^fns0f6L$YiEf-E`0xY9eqo%}1_)xZ)k+JIYC$_!&PE}$ zAv&i90kAmeX=Y#^r2-8A^AGOjwajRQ^;UWfOjE#9-^rI19U5}zQ&-F=o%Tv&5i?~I zMe5EoqhW=Ps#te5Szn5&Z!s-L7{!6-*9b zw>-gaO&?}NU0@-gfu_!6K?F&Qj6cg=po)R6CGmhHKqymi!)<~C;D@!$4Gh9%2(@t6 zAq)iG0^JAV;E~bO!mnx8y`@keSxMn`V^q+5<+4?LE8^cqym#q*y2zEYMA`hEkuND` zA<6YAUqUw2FtUI$Z#Te(ODKy@Y-xKB$}p8$941oYa64?jzou$0PvdvLuv%icS1)II z0?*G_J>E{{TwL)+-Tp=u`Fh<4v|$E!Z2cSjsh^Mrqb+52q_{EpCuCM+{thrXpbge9 z09|@8xA2f)F$%kw28s-`EoGsVMewQt4zB-C5{uYokJ5iyOdk6JlYjoKQ+{ zwDTcunLa`DnUmV(_vB~0#pW9GBMrMFI(38l7mT}S9NtZP*Nk=q$a!#`^j7Gs%Y}(r z2`aMny6hPF?M?BH-@QIhsK{R~>b~EuX5K%5Yg;BZ8<609V9tR-0RbLWgk8ZG_(Twp z$joCdVA8>7UIB}PV<8BmB0LXELcp$IBaRQyi9SCkG-+eH{`pL?km-b#+LzkoyiYCx z&+;dZQ0o(>3ZmM0vcz(YWpgZq4nFOtTi%bDZtmWzdcZ;`%5caUIyiNpUjhg zI~9{YuIlSN%NX~1z{~{G4ya+S^l*znkQ7~A=T??a<~jpL4p~x>Jgkej^95&4wxknF zu)Q80^!Gg#maSJRhIGOjg^z!0P~1{7u~hvr>S@jyJBqX6n`y+Lfoe26_T6#aY|gPZ z^2zU9`g7y+UTSKeqU&>-nAH63iJ~@NGOhL*IxjJ2|9slkw7$|@exX?l9LUl@G+RWR zgZ$u3wWKKcWCxFx6$By?Km?=@EFfUrMMg(#@j8+6ntE1g=ZRpRoklW;VPEctX!`=(4PN_?2~WdAsk z6ZWKILWeRwrY?g!tvS8J6;OSCpZ!O!Ct@jC_UBHwmX+xoxvy z$9uM3ZQ1IYJDGiEaci!7%!4J_Ai!8iV7)6;{J12kDYyFrJ#*qj>G&-7RH%LjHlTr- z{*Nat*H2v%c-N~Pu4KEp;A(a2g1LFq9WVpH^Z;!G+iQ4!AW{mR9DyWodYQQ=K!bu} z;k^(Xz&`Lu*dyw-=4_{k~RI0{Cx^kqpmi@I<0&9KK6zlL>0WVr<_54Z~q6=(z^y&!$&#AZrfI2IfvTyC=+ zOpo$&u{Y0r;#=$HT(3yR%;Cc$Qb_=*cX5Msf3-yMe!E3!)7ptA~_2@l2nC zLFdBY1Lc!m+b9_m^QDfTwN zqn0-0NeBO7Yd_w;VC% znx&i_JmiVbPDSP~=xJbyKokYk;;_8~``ko3-@Mwlw4adW;DSLvHvW5x58dxcNkIMc ziq8c{qFg}pn_pdPMnj0n7AUjqqO5HIWfiBhZGG+n^-+QO+lfQKZ243{I3ZnjT@wfX zd(ltGX12zv2Ky5tM#(?@MVHX2J{&h+fTl}yEsa~Q^TfU}RpP9$t;w$p5Hv;9o|&J& zy1#ewaOSwJkhAA2>P@k~rT^{g5np^x8Rf7`w9j<6!90K>G}B!5U`~Rq2Y^gAus+1@ z;CA_*)o1CW?51H9k&TJ&9)h-Ap$Q1NxjO*{jiO z4lA}NSUE(}0v4_pAEj*VSDo#V7hO&L$0w?};%1K{CnfhMblmc6Q_*oFDCl+P@IE0bz07>xP4NM_0sH&=&R$T6Tr8jpenwLz1 zF3!eK0&3M;JZ#S;0xk*a@KjGG>95>80puIAB2;kG`iV<>EGD}BY)Sc7)jVU~JUVuO zDBH)?nUQ zC|hUid*+6xh-cMghgIB))RavaLe3Q<(aOW|WmpOSW)aOBa)BXF4$al{W8Z>$QS8bIYS>^1FIYgo zrFgs2IaO?*&7XYMZecgJ!FHKO^6Qw88JuCAQOEuV%@8Y}xu(mL`xzXUrqxx=j|Xh- zw<~XtF^HVD8hY7;JO8xb7SYn@Rhh~w~mo?XLmnuz@t;oO&`hN=? zb-S7s@B!Y*pD)k*ch|SeZr^PZ+BJ))m>oY6n9`vW#b z;w^i}O0M5)6Vx9wmS!mm@|#OO_WXR74F^Gag~NW&`|lX;NWDd~dhWZ)7t zB|9Cl$BeAzM0qz?8-9@}3%5-)2`cFk7&d!wbbQGakEU$zm+9+SSk3p_CwDp7)vUct zz>~ZZTcEqgx;Wq?z)3c?0IqI#+{)h=P7Q6u)aC{)v z42Dnb0HxpC-zRArbU8TS4f0ql#TJ(;dacp*X>&e+_HAmaG_;lYW z;lFdEsD{0^Q#XheZ}41+y;+p+jq2B?cO3Rq-MS>s7~e`0r<0g3qaKyp54AK6a79Qy zv^+}x2^r_AJQe@jQscbLL0QO zyT0VBRjWEorMwDzcz`?%KnE7gYJY!n=y7%3)4(9h9dILr?<_8saLk1-7X;+^boc2aXesJI@dP}|f!K{l=Jt*Z!J zBQuWaFSkbni5xOlF4~Ki$;kBaS!Y3DM;MF&hs@%LX~&IvvPH$Gu7g zzsjm9xl2T;2c^S0(Eko7|8nOMg$7&P%dN@|VtvUjbHe|b85LXd6Z)z^Nx&_==apfT zjAhq~m1McAnUJlG4p9Zj)x5`;mg!R;g(`@u<{^OO@;Th@?+X^apT*u(>Yq}r#?H^1 zXTRGqhZx=99VR3tPxR}cb9tMG$^}!f%0g#48$KLJnW=D_EasZO{l7^Dv8=C65}VW3 zgH6izP*04gTfcwa=l{&yD{(NL+D|Ly^&+-wroMzU?r3FS4{dnlrkuinM*ERz41DhkvIGK+_+Fm0 zO-lyfj5@v~tf{3tg*;rQIjycdduYn+LT9r4#D7u*xmI*3M2cW-o`^joMimrepJOuq zJ9F9Kq1nhQGqR_AG#==)5Y}5ivjlf<>^9ai;?d*iePdK_{x<(5*h1}W*x1}J58wH+ zvUO$OV-W2%soHp@t70Z=zD|-M;}jJ#t79c^E@`dz-}N~Xquadc*l<7B@ZA>V&S3Jo z@o)c``$)Iv6t&5VvdL}@Fx)4yw1jB1gg_9u&L@MO%k@TCK&N_J~{6Qy!LQG z?4l5K$N<}=TIH=ZREQUw63THRVrLxF?EmFO5g~lj*L49&7gmK502PieNgsvS^c3| zpI~E4{Vi9FZls@zZu1p8vCTyR?!vJC{5MK&pNq0Z=#Y43&< zziyJ!RTXN|oBEj)lJ8@uu-&;bEudgl|H6rSzRBY*(aBES>$}y2$68N&&gA2-zW85s za7Rhx$eri{u8#^U;gaXR;mSj-+>>Wq)Sf$qnJ4mX4#V2wi4sqy|Mx^-wOv@kM;0f` zam3LX7T_8SHkshd?CV(kcnL3ewuGQB^KP+#AcIjR)52=2C?G9Pweig@poO+ve~Hl4!zW0lvmlayl~#S%VP4|zusg1MEUBH_0|_q`O9&=;J!DQm%w}c;%hFb;U`5#Lf>$Fl25-(Y}+vJkyQFB!CQp664-(T+ta7!g=#wYK7lb{>aF3>|z~{`E;$Z z&OYW--`4xeCtaRrq!O4^{Nq{T*Rm@yh~H6sp8< zx)qXcb2$CutzSR5(v`#3-)W9_bbHBPd*Czh$ocSO`dtmb2J|vQwzyGaIPs`=ckg8R-@LTf&K9PTY1L-I1VZ;gsAjcfg%AjznJN z{pEqNlKzK-a6IGT3g2{ke%1Wfmu&{L7-3i2Ko2vkxhKa|@xpzd6~=4Fao%J~88Hzu z-g61(G^sk=qgMIXJAeNs;_p2~zxhCcQZx35M>B!{6AV6(4)(JSZ3zK}5v^ArD*2vW z3F4n9mVhS+)4~SZ*tz9qnr9uS_LvM6%gnt!kKO$B&5eMUlaHLTC#Q&jjZp#Fwj(W> zH10S((CYZ%?F$~gl1>@Pljy%!&-}j4k>*aCU3#j(rFUBZpqC48hCm|}vD>)@G@`JK zkJg4B@9>}{{$at?-`|B}HXL_uMpsbw&h5_H`9Kd~YQ)fqTlj-dC)};l*3x5>6gM&o zkrGI$vOfgw9zrY!d;~}_yh%}TzVKd%oYXA-#8A7;TvcTG$nt%Ru<9ogDAbZ;bc1Wt zr04erqmbio(0NZheT&^W9#g-8w10&)d!qe^==?TaS;gK*Mu$%JjK!@{%OfWBG!ChS zNTFV;JtXg`7D%f2We)k*`>q?iy%^kG!R60(l7I^ibw!U&MwEwiAvB1c|I^;!Ef$g* zf%4`d9WZ2osr5tdhJKhm=D1svxx!vcJ8lPLJI0U&kG4*eXX4#J9@fFRu|m^wd;C>V zJv7@vziBhAF~itt(!VMOKR1}qES#q({zb8lJ7;%e@o}A&V{HdW`2V9*RSUnbt zD4!?G6hW{4&oHanTs@F9CMe&-c%gLx%vS)sOBC0>CTe_T?M1CuA5$|4>u#RO4%*m) zELez*7A&YdsE}l6fg zTf*Anf3^XFyy>dv9w~^mF22!(FVNe`AIPtb<`0%Z8(r`@$4lU2k$GX0`P7wqwhp-; z5>^ZN2v?W-Rh~^4%eC3J~1ArxgD+Td?+J>)``xIRlPr}U}x)90=okG-(>{j=li+?iYi zj2p0xBbFuQOTb5}Lwrs6`<~Oo!jE+^t#q89@UE(#P-`3kOyWg@{kS{B9?Ms8@2Ka{ z64w=$UQ{jBMRh+F@6grKXa9s}onOBHBmRay-zNG2s(ENi7rZDi#EYIq|RPG1eEhNctWew5GcQR9JF zzy)LwY3;K!_J{*+1jC}w#{#rdhPIlbDi=XPJ%GSQ%^T4k_ z5Lsuzdq5U)9&LA19Gp>@S))-B04um%!)3?BHpsN42h1!uua^C{Pt=p9TO-d)Z6{u^ zfo1zz^8Mai;$uar%U|&`uj%-h;tdn&etN0u&ny-xB7Q@g%RNX1OR(g;>{P zIK=S(l59L`p(+0G0t*Ycs!}xe@(Z2*DZFJ3YYlyp=JI*9Hb;jSt=_{$Hy@~L@CCQ; zBx%GN!}1Z#(O8W~Y#I&hm&El?u^(z0bAnZNu+2x95EUG^Vd9dgC0FN6#Qgl8IlH<$ zp$ie1W)B5o8ez3)_*4C!34_ju#ISBE)^;%qI#6K(Wr+gaqcT=9RWw#vqhh(~Ci!Be z)s9=^4RU#PQO5!5YbW6pnkD#ScHBjr`$Q-8dl%)N!#l@fGt*|j#Pz&BI~&%rTt2FW zvec`psO#(|kEym2kUGGe`mXi@XCwUSLw9W=`q3k4pWVj#du4)+^!Y@M^-qy}*q|+( zqQ*NbnQHVa7zYN+n++82;vi4c=7pAxn629`?s4rp{>fx&MDY1avB(E2o2*%{3A|bs z)!&>&qSkB_&MK#SyX#1y(XRlgh5y;kU~uIsx9U{$tiqJe#g3?eW-g+Ri*QuBJCF$a z`s`cS&H)kPqr7j(yWC#wTxGGcy4@B3lUQtjrJw+@K=f(?SA#A{zb7XdMvT}aS`Vd4<)?TB1xZOd)LypfLvDzypbA#5XYeT zQOXV*`y%C(Exwev{O#&FgE)UPv1+w1|MWv~2vBR|DLJhz8S31EHo})&Ylo1U)jXn` z$}qs(9klmef#CU;rSa0D=lqwh7(QuM-ReHwtE-wh;=b!P_FSJCS17p8@V*84>SR&v zm5Gu&hN+HW8!@`V0CU6V0|Yg@RIY!&A^8T6hP zV3|^OCQ}_xrrpZ7uM)zikO#|*o?W@P=AJTMtdH#K`q!3PM9KVekFe~F@|G;N3(^`5 zn{GhRg-1!djr94ec|QZ6qxjCRD~ciPi-DVBS^-Y)`l(4)d%Oo;$ACRINA3YxgD2`f zak~Ahlff6(SKb9pX@_SWPSSQQ68G763oy+?M`D5&m&fQ?kJOFUhCY>6S6q0qAjfS3 z-Vi$6$6)1gI6bQ_G+U3-Ixl)guFdJedm+l8$i#-z-x&E9IoFcze$0*q01W;8)G2|; zVwEr5e+16CDTzb(Z=0R1q(7O(8G)*&-#X8@pD#bJIy-(`^5OLZ^)tSnlLvX-(5nP` z)3E0sE-JR>=IWom72Ga*LHZO43ewPgt$l-!kjQ#YTH5c*MYdHnAK0W}mlOnG4eAFY zIYQD;@T$G5Ftv5>60W$dKq1z+*O)G@77cKC9N}$qmVvou6fcg0pSZZ)IASIk9=mCi zJM7m`#-rSWoIqJ1DD_VY>TsK-R~+U^Fse8=KG@e%rfDpl4X@Cp1b>ui|kN6hId#c<*F(7^BHp?tW3X7L8^Co zyS#&>wV9LaerB%-Z3Y_ZLrRR7>dru%D==OdTiT%FP|_GPXvc+vP5@h z2ZHk^(tZ}kJ4tKx{PZ+FdIN>_5S715?q<#N@Cq86UUbYSW$T&#)gr;?#)7Wp?111!2mF@Y67%M5 z?cHv8lR=fI!OT2sw&Gq_bn5q+ZP0i>Ch>Z@wTilL7XhSkzk_DKo1mBbR@d;3T#bi2-aa}`@=0V* zmlS*RNzy1pgP`HZd53e|1+jDa%kkYOiY$Rp6a+~M%{gpCqk zY(IKhIUP~gW3~=?qGqz^>!ijaUQJVjsP~EqNaO}K)quweFI(n!Lhb<%F?)=K9VSIV z3Th^LenMhaXtFBkR&ZWk169_u4XZRVv3&NS-O*NGje&#q)1jK6d(5#Ezmlg-iyeg6 zxXZZPlSbiQ@~;>>eA4%BSFzaNAEd@RZUM^M7}kH}C!`{BvnOTfL2RsYW|?Zh{^G+6 zB#?##3xSa{7n_T3^k@XW(m$mMT>z$baCi)ixK<_sx_n$}qk(;nL>_FBg3)FGktbL` zvK;M&)A-b4>*Xslw=3A=fP?y$Jer_K(%#il;ZJVX`T7~cg7EIj)9c;dz5*MAj`v8q z3P-zcopOgl#G>nUJ)Z*(@3GZ8mv;eH1}2BCqw$05CR9!@=aXKE7X{6l8Q+hJ324Ke z{-&=li`(X$VPih{WDH2@u=FtVkL&A&z-7JLojo&(dJYb&fxj3Kd+^Bgz|rw|L1zLe zj!VqV^a*QpS^16!`mDt!ifsqp%v8971SD`!L>d>vd<%aW z?lniTvY$b|L)(`Z+a;aiQykEsIHA4$Izj!(L znsobrLYKSYBso}G!j|~=e7-IU8L6{HA+#S!yn(eDRf;PsCM%b$&a5yo-2oEQa+1H- zx$y2m!Ty8cgYl2V%uWv`4NWc3|_XWp7^xR{Dgoj%+KG$}lVdVZ(dozIGa2nAq4 zD8(LHt}1%!Qyg#(oV9rqq_2N@uO=E`eqV~N2Nz)JON4E)@G{{e;=|B9%h)Sr~5E4a*mw zxtBid06AIIEqnJ1&*Rjf*l}Z_nFwMkZ8j%_HY>r&C>7gPK!K=|iPj2>@X?y< z%h{4>%>Cx!S2#(1XbN(m~9qpk}gOdayC9U5D_>Xxjx}yb%20oW>^^ zwo_~}NBN*l_A4e_VEl(6J6mTmhHmz5NUP7*`6g#JD|;%|B)71=3sdxw{&=NmrqIF+;Rkq#542gK%Zvu#VqX1A|e5p3~$zhne1~CLIvXs%cp^+;yjc>&&++ z!GZBd@`>VYN7M%#yKAxfmror79$MWP-3JFK<3Ql~(R3pnavf#w(}rWEw(fkqtBqD% zDJajrj|bloP!dfVUv% zn#RW@-Uh#0ceFx|>0iGr1ziaJQwow!lL z`!wsKYt3aW`&SxUO_2$w*fAN3yn8Zf+MKE{(f_- zLc!(t`uok)ZcKU*y<}s6@ph1Nr*V)DxF%THLahhXrYh??Q(9eby8ex{e+hvn!B(KJ zFsLO=yC02^0vN?l=jQOX+5w$VpSx9Bm+NJ=fQ_rBW-N*~5$wW&sdqhZRm0u=OddeC z1T1&C>heVnN7z0~SK~CxFYnkmA!w?;Yv_DWM`E#wTHi{+@CU1JXM`o;CzK`^fZ67k z-v4xP{|_V?K=hoG*Ok4VDGawB@#VLq*p6<+iFW49@w913@>? z=bsj?Sx}=0T92{Q{U3W2wH(pX^L6paNVB01Jedc={mrzg7hcq!uA;78rJ9w^ z;p`PgNX=v`3mW8$zP6!JpxFFXxtOqaIpQr zA`A?BFWvyRrar%YF;hQ)?Ki-j*N1dRFU4rvzVk8Tj_X!4hW?w$IRM< zDRpWY)tf|qlh5P)ZdU)u_m!8{THw+F{z*wufZ2BXc8*G99D z@}t@^ni_8dC5?PY1o8Fjci!b=1CF4*cg3!A9+$UTwR!{auFslV!j~!;FY~|L&q;7x z6pC~awmsq?)%UANP&8MNQ?cpCn_sb;Q-#B;237kWukeJ@x*Dw27W}c<1YTfvgCwEj zFSR(26{gMPWuQh3JAKfHd_qg40hujr%GBRcdWJ$`hx*Ou}HUK8o^9o zt9MFsy_C5AX?pk)bHM%EvD&|DWQ6a*W?TEWuL9AW z&>cx&Vi4}nqFH~rg9*U5+|0!NkgI{0&NB=3uYy0Ow3){^fE6;^E{g#1P+OO5`Nkb~ z{fNCBe@{cL4bHF_g|9yp4acIrd6y|ZV_h{$Ry>f4+sDX+5@e?|$ zu3&ERogUWb*7QkwuMApm%kK0y;unK2?oN_EwGPdbkj3dk06Hym&-*G6Mn;0g?nk4V zUoxMWs(kCUW0s$10b7?0mXQTC8nh>3%09w{|w?`0%m4b8S2^ zz?MBTB+x7U3MlT$;2s$zbNeg!HcqX~>aCzp1-u6vj_i8g&KKe%cIDg+6hFyFEI-n{ zyEsz5b$UaoP?BTz-!>jf7L{0MPIb**tbz9Nq@BTuoC!M{9vx3&-<@5lFR7WZlaKc; zd$6(Add{=WeGBk;EYNl^=9?+rWTKWjk4*JiBSqe}obZ&e3pU~dO#LOdK1Ow+hX) z%v}{<9tM004qrWxu2faTA;brawy~^{MY=Yf zHW9O49dHEki0q*4=VRrHr-Qxu!R~1#z&o_Z1D?Z+(*wy#FSjgRzxusj(7*MhX8(I; zj&J6-d;hpF*L0Y~vOUhzN^CwpK#{ca^2!J5YuEYFmb*0bmjoZ2?PreiyptiScp#4d z5&l@BgZA*DD(eA3fvqBjsk5 z2!&qB%z&!rKR3FF_p*HniBX$BtHa$8`L}Lh=CV?bR=TfnsXCD-Ha^{3jd-G)yFXz3 z%dbk9xfI%KZZX^#X&=ps=f47=3D`L9zW9Iy{?d-0b;x=P-it^11KET^d|JA$@wZ7|R-@B0M=H(<>OuEEwoySslI=J8n%jC~dD1vRXV` zav|!$>=R>ob;&;S!_zAh3o5TxauvLpk)!7$s#;(-OFQIoPa3cDZ%^bO-Lnhm5!OAo z#nVp-HjYF-@iaq!BCOWL{AA@V9Q~ZuTCI8K$g*8QyJY)!De z55MKu_bSM>=XULJI~(xbcDI5|mvfiaC*|Ich^7u+VCB|5>#{%MfUmiqK5KZCaUeyv zqV>?Pl9*pMaAJKP=Q^}0Eb1N06Etr*$TcI2{a2n|cexB|r&q-$T6Z&=hh+3jo4+za zj~~o-F?6=pxf?sBWki8#!zh$*#rqEa0t<}mxUZ>TnBzX`yQE7AYhBEk<#5i;NgZGx zz%8y+AYfdy=(@SvgDbPZcVlUENdkjEYFXR-seJWp?&e$qQacCRa1Ob_74PV0+j123Qfr}hm^J#kSVqep3bUs^z?_4QH< zQa(+i&5|E#}AucCjfIvVCHT;7QXcsemh&W z_X4NA>m_kf{fj$Uz5?IwF{TCSB^sp#|LLd$i!%=R4pn0NhT?O*BfAa~_gf3MI#Lvn zQn_}_3oEZvKWSwqG_&l&i4(I|IEHcerGU%h zfT4<#?;fOJ*OK-{Zy~z)^sW zo+=TASU$w=4c5~H#^=4UA<}%C&fNm&pb)TEXXllK_v-N9bVEXIQWbUAVW+bJHtbd%08U8$j7s6|)Z|r{q*9#7K>9BOYD)Z(T z7u5f>KWX=?FNdmcrSa|M+sT&mX{h*Eu|$8J!4J&0{}YjLrVaRM;)Rb})vSK(Hs*aB z+?FV=kJ|Zl$6G*Q2+(>S0{jcRm__Ub4T2OaQ_c~IE_k;oO{6}ErlkWZE z_@TN;i6t=efidp`y}hwM=`vtN31JrnvtADp^$~~IwO-|zKSj_{z*g>q(gym5Re7HA z%fgZ-$EMm&oeBvLp-G@6g`+_|sM6$;ie+li#fOC=^;&>&P+BbFdTH!Fq6?}y?ZX^> zXG(J;bQAuAqTi$CwCjYn3KSOAztq&qWP$XKOG2EQTKuhI*VtsV62Rt=GeJyS@|ndd zWS5TsP8f3Znja%>?SG6pXn3(A;?SJ2$(NDBC!S<=L|@pjn=a(nlqj5CFjM z9uoQztgYMceUrY|9k+iR{W~515mR7=lp5AD5#2yeg28; zAa&%{xtCk6TnKHrgHDqKuI<=o=m)Y_qm*Az1ZplF{|}OWkKUFvFyZfSZ!t_lak4+O zkQ6%=WN`jWcB~$hULE&l3#Z1Loj_&P1P~UxAZxu<1P|CZ@{oMg!!FR|7K!_v2lO(8Uo1NEsVV8?fmGbY3UDLYAgW^opOqUVgO~PNmN*3b7-IZ;C zRqOv4?wtLG%Jr=JFP>s_bXG~hcjz$im|KY^VtFd1ol2$D%Z#q?gj^?`u; z2D>bf9In1`+fg?u~kbUx%a*2J>xmg zdEVC-k4?_pcxqSIvKT(uRcEGagg5p^c`TslDU-uY!$r6l;sf^^K2xu~ee9Q$9e>r9 z=AO1b`#)YJf;_&cHR^jTPv%bnWMdE{15qIpae76iKwQ-_f?0qMVdUZ?xyX+?3QlCGnyzaT`;NZ)lsV8&h9+}}&B`|G;18{;f<#f54g%FM*dk>Y5j;Xs^AzlQ-DztuCHx z2rM9qeliP>kV!Q)FXcUEbG|wH{?7}z(eC)>RlA$g!2le<dkaqM4So9b8AZkQLt$Ktsh!sG( zIv^qNSkvL#38wu&z7`+O(>1J;*gSfJ2T9ipQ!6o3ES@K=T3AbkhNJ+U0+k{>2YnA= z?9VhGB8)hacp(+e_j!EZG3nByHzx`k;^~@44@t*9EvmD?LwP0lWa!z6&vkPKa4H?W z5|5GAlUBR!Oh(jG-4!K7J&Qi|#r%&K2=}|>`U5k~sZ^l>hZH6sY{F!z#_;ncO-L_@ zG@*t#$=s5};i(wnjpUr&iqxQGY=X9n0mj)mEqnIm`qP=wJI6O&A52~P$lG{*Tx{ep z4WMxu>&PlUhGz$cYynV|er}eeG*dR8E>LGAwYll^SrkrHt8)L>OI-2zlUr<9)v+&l zj2_AkLlXpg5}gm10R~)^O0oZP z_TJGlJ{=&pO-@KBX8eDKrnQ&~ZTGrR*f*pvsx@_WhbUo9gV zBOU*H=-c?PzEl_gXZLehE>a5~1dyY!3UKi0Ll#Ahhi3mcL{uOawG8a<&E?YzR6xvf zoh!;8m6A8vh+iu7{_>$?VBM+FjWCLYURtGhkIc|SOv__Nu9O}@0L)7wxNN?Zv!Nh- zb|}F4i8Auxe|9p9l%J%&-Y5y3Qwm75y|#}57AXy}$W0GpYFGDXcpb0bmxUX*ZUj7}-Rc1DB%eF7Wmg8AoVo5p<4 zZ1&uLar8?$^U4y3@&SONWE#rs=IbiT)_u7xj#kZ1F`*0tXKXDMkCEpx@2`5luPa7t z@!;YAz7R#}5A$~}UI?guu*7lWgMW~09}3hmz6p)&|b;n{y2c|G(#=lqct!j$a$~(83C%_37Z{3R1ROkg?cT zVQfUeR*)t`um^rHAkO+l08Iiakwk;LQ^V{T`I^X(QEek zo6J3@3S_D0{!Frobldl`zs7oUv3w=PPW?+67r)<)DLr?eYs-97X^+WIM^@)u!xuXC2&@%_x zCwCM4HeQkyYCzIJRgHFl><^gMTtq%g%1nX8)i81aMui@R{9^(QeYRMBfL7}B)XMv( zR=a$8bz<!qzI;*vw|&$ zs4s}*;xDC%V$asv$$0+uUsr;-E(NaIh~@awRrB#$Sgx9Ep?N4e;wgldi2(=Wb+zff za?+Kklh6L^$Bw(h3C%iJOyBz$5R!!jSOr3ogQ}YP!ze`TmrT;D$ch#wfst$EA}+7a z;T9VF7&SoO0<)(p!%unk_t>1+#zR18Y2dGuwz-|o ze0rcukcqUuAp-7(m&TH;UnJpK5}vdC_!&1E?6?!#aPG~$i=%QbTvR|&f%K4#hc;0p$DAirgXkqR zrLgFgg@2PRpzYiPZD+{tp?8Khr>-Or;UPFCBwe|1>}%zQ{YpLq*B5mqz#_Q}5{ss? zXBI69_#kjJE;aIC(YHPRHSTzi|6WeyZ2PHCyZTDjPlig0g|U+K zq09?pQ$zGA0>D>Jt;-(P{au;zQSe`PfNEHM^67KgI4372)PN-UJcXacb6)HETkGjLG7K&W0@!D)-M&7idqBNW0t~;TEEOMPlRKB5{ z^IPMXQ${-B55N^#6o90YY~YFmh8A|YW}gJ#XZCUFcTe^2^~g>|%&eC_tC?~QhmcxT zt#CYOX2Dc8Lq*c^Q^27QWjud&y~@Ae4u1hE!jr2l+pQ}6wgkH97vLCs*PA#?vU1cg zW-6k5o@^3m`NI4SBuy1CY=ibzLTTvFD?iQfQ`pUk8Jc)9XSL?f?pI0sK5q0p{AB%; z_E7{GgN>MYeO;~y$b-j1T!RdA`G(BGit`jPD^*e9(QQ3_AszD@`++X2S?}k5E#5Jp z+0pP{QU?0|I!EWL9_ie?KV=?NQ4tIiOzaJrTkgmKIaP>AXgwGt!){KnKxF=CpBI1wkr=m`AF{}cefe*Hfa6$}oT%h|W&!xAjX3(N- z36NLfZg9*PKXKNDgmr!)wT)uym+b2Ph$2^)ZDr5|Npd< zw<;ewawo6D*O|e~p1Cf8@B32A+q6C- z$U~r5r*h*nLn3)mFR27F58*_r;Vo}CBy(YE>&Ci-P1`)0yWwtC%3?nIQ62V`9IV>? zxU=|T)xmH7?{0ODcRYAB>;F+JRLltM4IBcQ6sm`VpoEP{22XO*=DR2PyXeim?(7Y{ zm9cql=bjvW`EhsfFWC9VRl5!PZb}`x0s@ZckeqAQ2c7Nl)0=P2G`#GME{`uR%IhEF zE_|GCU#Uaz z$dMbG|5*X+*w22N4jW3TPxe3Yo48kE*LXSoga2x3UH??T8_#zO*N6Tl6E|@uM`Gpu z%h%G{L5I}Ek{r7Ba;fIh-r=UYr`eaYbyoZ0w zW91~hRvn)#&KQsN$LDDS~=9<_zL;W6&QTIjSq%ceNBRq9R*&-B*=cK0F1vtHG&Xi6$xZ4J_x9<2oiBDhl1l%iAU@$e*zW23jjg( zjt14fmZMWmrRax+jvL3cvdXHzy&l~PQwwdbAb|FZuGjty+hqwklP2;N=PhNak!*1S z0oV?LP{YkjAMTJYdt&pJwn$dlXjCUQH_;~jTH>{ti4$k56RSrypYgTOmU@xYP?l8N z6QPPkHd+PqoP5FQg zX*-txJun}rv$;-J$Jp_G`-M*)w?zKYbv+wDWbx5Yo@xS(g(0h(&8DFuJkY@jj2xFp zs8Wdzq!-Z6p*NeVkzN5&k|wRT{JUL+N+Mu&$c~YhQwMu}qp$u}IHsljHIsBam{r%) zP}*H~P#0)dXNVn>ixsukU8;y=B=f~puobT&Gw50LP)Re>vwKQDWM3@iBesja_+NZ6 zzQ6bJzq_n!@JqtQmw%Y_K5kOpb7kqrgq^2u{wb&JbvaXR&MR=YtKd*6f;d zBiT2L?w?o}KJB!+=g~mfc^%Cj(fOAznv?QluhUvo`rMtKEiU4P1)((JC7 zl8FWSiSmvBtM^N_Mpkcud}!~cU^o?`1&InZB(U`XbjV=j8X_25bC#N_rP{9mh22^8 zg}K0)ijEH++W;q7XgV0bLARq_5-_J9d_$LPVLNt_zqXxuW%9tY`o|Xg zS0DWH%3JA)qJ!c`TkHCm)VN&_VO`LdOkC5Q9GO-3<0E7_zzbrFQ2>#^qelS93b)l? zZkzjMcV>)d_2ss}^UJd~Hd?j!1}k1ay}?ndQO#a&s_AKK+r6t*aKs^Kg4xiOmpf?Q zOuV17Zsco(mrR9Q-gcnn|GlWGxgmJo)%cbpFuY3pb-3`czU_Wq7d>>Zwvw>V#0&*t zN2AkB>CYH>hF>GCNY4P`ghccRD~U}3ELHfubJ42;0S|DIU+n!IY7W-+?hapM{kRGn z{L-RnY8m-db=t|pn4;qH*r(FX_w2?)sJRpx527Mp!9J9rlA%w%zNxFMH|j2a;N4={ z9B`Zt*7^CT*!tTIwmi>immK8@sEf zcAu&3*q)G{yH2W=u%l-e%sYKgaU`BjG@T8w-LW^$R82mEY#zjugIQ-7GNbUIC`hgt zmwUa#WwhjPNQyqD*_M8`j($dP_}ZPH<@5AY`bXdMx;v+eePZR$cBVuQrpn!)mYpnC z^KF}Z8lrpCG!->HN2P-`+f`u99_vr=TQv)%lbr>E6?=Hmt+eIg|aZZ z?2PbGZ4MZ7q#$Bp&I~b%0x3-Gwx``fdkRo#h=okH=jux{OYL-y)~wh%-L&RRZ~NJ6 z1rnZT6LUURf9e0^l=$lb6MC54e763t`!d{#JBdwz{jSM* zsPysiyPn=Z-QR-}rSF*@;)jwejXH_nnJSAGAnJmd&JcMn_B@44WMB=TB0#yxJk!Xl zBDc)?4?e-gS3Cd>b_t*sKHB!`(4s2`-@H`o)b`xhopS~FbKjS9Fa-!iI&fGYMA4B` z6I!bCuI#uAUE93kyiTdSI|u9t9C+MOmv7^i6Q!xoU_D*kCb~!1DgaLS1%kulUx zG)5;}#fK71I?I$#BFfuk4jt(~|4~b*4q@maOFV=Qvb%;ba-p^^eyVry<#La*p`q-f zePL;*fTz1*xwNvWUER^a53>u@tZ!js{yTg3mkx=|W`5?pFG&wvp0hE$&3*p23B~M} zpWC};^DZ={PD`*_Gy^3E&Jo7fl$ShTn6W@4eQW2g^5%SclbAsnfHi`)exZSbxoIGT zKOTtYTwZrX@jy)NI$6&RJsW#$=jXOylD~)C&0kV({>K+;f-ihzx`%l7P=}+=PlH68 zHhGU)96QDnX<%A!0#0;^wv3Kb)1v8&WO6#5!W7_g85c6;phBjDs0W_KgqZ`rAk0MC zKK465A`sjm77Cr^`8wyG9=-oD?lO!B?$l-6_q>B&MsgvyZt{9~s1ngRHD6G<+u@T3 zO%2C0*pMtuQ5Dc%i07(9b4D(0V6F1_ns`yunOoC@XCggY;p3l@r6HF*Is=AM@AdmH(7ocsOD|vAeziqQUvuMwDv&QvRI*2{0SJoz zZ~g5%YAfC_^Kmq&TX@N2EC*s#gk#=i8Wrep2n z{vF$D-=PckOU+3u_nYq7qMku1MlKzO#$0p}T zevL~8jZZHXoOE2Y&t$BBAV6tbo$_{@6Sg*oWY~dBs~US6zh><%wCW7jr=$a6Ak04cusX1uu|gA2sE26|w37>cdQ|*oK}rifrUMM^ zs!6O&oX>=Zd3KK7#)Jp{+AXOWli4W|{DEctUbJ^gA0(39%51h6+a5`5sLY5kG0+zm zrGX$#s|G_QrWw#@pu}@d+Fj`IAikOkH~2R5B>S7YPle{|=H5HjQ;!}EXD8W&4yTCe zR95YBFQ1HU^LQ|SxkI^LSGU~Z{rskp8Ol=5nWy9aW!t~6nS^BVy454^$E?X}SYX`f zITPu49u7(w9>T@TVVEXNUYO_HN%%-BGVcp#-b9Uh#)d54bM&cf`SHB%_gQDtM zXSPoNnHhRCu!j{t!L3;I!n`KU!a##6h36@d_|V_rK^-I% zrQ!4x$RnNFHhVi)eTpNM+JrxNJ?Ojr|2s7>HT{2`+Q`hfwPv@bZmyiy{wB}+GiN*3 zap77JMN`jkY4Jv*ZXEC%XeQzz&WH)fX<^hW(X#?@A{s~Ra6|zt zSP(%m6lNL88gi{OyT8PBenFPpZ=XGmPTamzKK7oMYp8B$m_s3xU~8*d21?tqpaKVo z1!e(WUah*GDWz-HU6w!7xmZ`xILSC{Q;Jx^qpDr5<&!TLW~4kJooXCxIa_|IWWEmn zanHd{$Nuh13Fz`5r`JX8EL2)Kqtq(TBSNoO4Z1tvKA<(r6aLPL&<}Ky72y6D9-4{k z@@>7kOZKa;Xi>$FP#Sh~A&h4j z;h_9^A4-ExGc|Ic{s;ZqK->zdjBwDqr-T-X)u>n|s0^p4gW0x$LITon5mz|8Ai`*h1T23w3|rLMu4l z>(`tvh}hYJ;gCWVRFl}^Y3$nDt|2rYGoMFfs9JJ!D+{1Wkd6&qH}Uy(o%J%m+}ZF} zmx*#I&EwEVMm?b4y$)aR(7`wf>0QfLFI>xqNfEL+HkqGJ%{9VVk%VC`_?J}ZAEJXu zQ5uF4YWEHexci@~y|-h!b&dCik)E0anKPrZpi2Hw8fN4!`JHn#{tJ$)5BFF4kIz*# z`fu;iGVr_mNYdC{;^^MS8bp)^X&taQ<($;W*cL(!DN7y3zk=B?V}df$)#S5yDUm|R zsUb_j;M6es!YDaskfLOUFF- zEDBGO6+shl(Qw5DcvfE>uO=;@!T7~uQnSqC`YW%2d%GItT7TW%vt#SS!QUoF8|hze zQN|{VQ>*>TLK1$hYnGppS$VuSuTScG!1UKz00uF$mMIElq1B3;>^Bq<&WppT8F2g^ zdd5>Ad_)LSz{@q#V{3>52ApKewhWcWixb&u(uWNt*#taWK?VE{B37UPZaSGGD@x;` zhb@2}3=W|OyDd00a}~6V#?hcJrzVl<>TjK%J4K0bu~Lb)m3D~)_K1qOY+AHFF2WQj zq?H-SNgrOv+%L1~F`g2CjV-#{(Es@GM6bq)+39$ZU4r}Oe-Joif;k6Tr@QO5T?%&i zyzyE*>Farw28*`F`(xoX564-bSA*W~n5u;#fW;{|kdm=UOcpWYZ!rN1b@DJElWC>O zQ4OQPz&?$YgXB=a9kU@jjz} zU+0$C58V0s58_JTMM5c)2C95HsP#i4DT4oSuDuP+VZg%>S)sTj$e@tXISC_!!)fM( z8U+OOBH7&=3euQYSHd$0L7Y@%rW^cJ~Z!a2}eP^+E z(_0AeuR^K($hW|y)G$&%53L~-A|#rrl=*zjEbVi6dvfGq=|9Ny=(ArQpPX^KvuU|> zNr_o^{u95a0sf)735|Q&X2%^PT2J&wzdZqT`JrVA&Bs^g4;?x-p|sp_$C9!%QVRh+ zGlET|iJ(8gA+n+B&5C@5Rinrz1KI}sX!*1#c^1?Uf_qZ| zXN-uF83_5#re}t)Raw*sd-j`a0?;~R!xRVwQqOiZn)Egxgns@Zmxmf6l-_C*+}7E- z^>*K&ILGpH>oG2JdaB7UBnx10gdz(DCo5nR8O-4any&H7MDD38?{_P2&iy*`;9J7l zFG8Yyl*tkFyo+=s)DTDnJU+OOg$ZRu8fQQiQVvM?5j_~EhkBW%K)RhS4h+;BanRC?!bK*( zGQ{8*Qq&xctrmFDOU9|m3aN7Hl|l-Zkl_?<8o>|?qhm-smTBZ;vM3GviWdwTR9L%v-v*~xnr3p~VU?EYr3M+~cj4s{g+U*bNmXsOfm$FIH8b^E3D`a+}hh=n^voD)bkSl*$qm2sHv8&0PKwTkn_@0mhC<969icU>2yf8hkcA=IN$Z zSx%4acf zaJL>cWtoNij9{4Ys?1c)hm-4Rg-)?1 zK!xOn(V^Id@%3~u5gtyNc8RRu${Cme+g`{L2l-iu#$32cAtKIK#jI@0_cSMBB@`%4tw}1cm{aokdlrE zHntGH-4eDjKL;rH)JU9|x&j@D@>n4Z{N#hyC1hAYdgt<@*_HXQ3kB*71{o;&PNqLJ zXwhUEQqYC#L|rkSTc+H7>-qNn5(e8)s19h15RM{FCxFcYNFz;p4j~GE{t%N$&d1^d zVei4Vs?1;(fHO}g1J@zq7*8e41cX+>JHqt5P+S~ZPKb%UDI|UxkKBOgJatwL~8o41460qrMsy}q;1ZdDgFKgjX z$O-o(otSZ#8+z^#1vnXWAJgH2SdR^XxY&Dg|0v9P_y=mkt4GJ() zkI=Bdi(yj%iWH=!DIn@8(aCWA@GB#Njt9p^K}n|Mbn2ar40;mS1P=$4G7S3-(DJxI z3y3g--6hFF@Nz$)F(@U_VMTE<*s$7Zy5prn%r{x7)A{~%#^#;bOFRw zgL{O8Bm^7Of)6p3T}T?tL6FasE6^99QOdxXU~yQ5f_)f+upo(|FgZLfSr)X`VHZHq zz@>$_gu)ys99zeMu{fNQrDg#I%s*(;&rSY1$HIeL&U7^dUd00N5ASh6|l5242d12POcgc>4^ zNBrww+6D_owYhXI0 z>i9@1MA=nl4|&PvF@dB&X4;)itzvK@1^8{CnZhOp3r7H_|Be1pvKc44z zTN8?_?$)i|lYHVI1h91hSAlfi5?o~=M0A#@Kve`&yc!}>D~T_F9ypK6g!vU&fd!!g z+J9^q?_i?q0Z9{pg-j@HqJb(29Sx2F6~Pkt#B{)K>8}kaIQ@(maxx=Fy&@S8FGNf?Z<_g5F!oYA%^tIk_%89@SOmr;tCBJlEC$WJQ3^z<~{Td|0 z%!Cld;h1VmSs@KDMEEPPyVS60IR20Eur%}vz)vh37zX(k7Y}bCJF27W{$6J%7Csdo zAP*m5V9L+XhwNFTKnhJ)fGQOaiOwquS4ibWFr*+Lv?vgS6nM&z2LmK=Oe8cCcZP9j zghgV3U1X?$%i|cR;e;CMXb8fM{x<~){#d?&h8_hfTG5f80EVF!ZEqgThGqboR6uB{XZ=tRnO*AUY{3>}I9ps)hA zfpJh300lFW$0KoqDhr{JouLA84iCyoYVr}TOfnEO)$r!>5E&pWxj=ACS0DvqT=Y03 zpyGm%OFQlLPH~YLG>DjjI?>wf(^%*>9hy&G{21WtcQ3yQ)dOCax zo`;TriL0o?s-cs4K&TC*h?(dIGA$t_GZEqfXqIAyX1t_Vm?eKi7cvDG(C-aWK+!cE zJqw~W3r33RT(oTiefkVOmC1p%7pDiyqn>|31{$hjxH173JR%o%5+cb~faFX%No(SA z>pzG@y#Y=jD-s$CxZuemoDul~RdDBMI*68_0xX;|0I zJQi*5{#ZHq5%k4F=Czl(pKUMd7Usw~gBQhflgWU13ebPVOaaa|H-)l;jh6&$8Jv*- zArM_7ErC736%)_pi%X%d0K7%B1uh2>PghVNbFe`5gKWYas5cQVY$#xe=qa6$)<7o! zrgjBk0POI8)O2W|{Qd;dJo@{!f#K;P-^!OLT^6<0nn|gr$*LRX;M5J%oB`|v5CAeG z81FVjU>p>xUg&3oDfB~e*l29xMf)HLqO&+pLHX{wTDtHtu@Wvd>L7|?Dx^@Cy3NZoy2>=EU z*y!^0(6F)OqO$Lhn5ak=J`6h?38_!kDhC1N9FicG%BC!YlOM(f`xjjyc;UI=Cd5$J z0e2_}QsPzj&l*?nWs)JQ18E}pG%)}XlF1fiA=NaJ2YDeh56MK+KpYpYw-6v5L>5?N zXo<|shnZ8{xk*f9cFWUZKoFj$0IXW^nn@;9GDy$#lMHYGy+c`6nIT!o zWJ%G3Q11eF17IXvDpwd43Oidi8Bkc1lMAt)$Py7v82Vty4ETZxWK{ALs1BHDK1+jI z3cyNR%Nu4d@R85LNH6xnPFxUiK>gRkdZA7X9wqb@02rVL$*dfH`FV{;2Qvu|5?Hv< z$hXXVBE1rlEewt!mO->f*>(mOx+TsxwHDJZ6D?D4?oQfc;|V;MSal@(>u&q-z1${jlJT`cAaB*P#Xs!<~89{8A&Hb~4PMRK0%9%hWv-Clj$i$ZPi~?JWkH=s+ z3$d4DKmiSd5PAqXS!f9^9FSP?D1c)C1O&{FVyaH&L4rYzFp*|&l}9rmaS{p&;Prvs zs%}IVqspei`|!jdfn_0}bb?NMaba1|*Y`_7R}8H?;0l+I>@5Sk`g=H($-l1TgwDc6CSC&@}P zhqeO36(gV24es!8dg*niwb^g{ALPu)d-q+{-(>QKtds6dHG^se99@$kiAFO>cIlz= z;y?5jP4v)e6TKx+HiY{TC!&}xEHwJ1v&I*$>}hs=7b=-4P71+8ssqFP7UTjF*EEzs zmVIqY7Rz8}uf1iazdf+|8xC6muX^+4yN zfDp9SqUnERl0JH!^XdHk`mW65H*AMZN+lOAV)P;2QV5Hx9&i zc9o9TKKJVU9EIuaJfvvtX}wHYBlFd?-{73jw;V_X5k@Wra1v82fWj9tNdrITufcxN z8-#EI#q@$X!xzwdlVP{amOB15%qN(?D8Rk|gvAO=3S(pIq#)0Plq27Q^eQSgV6ya$ z>-_OrzYAyfnJ>xg^xfIj-=@39%P%p<_sp=(#g38GtYM$Pf*HHwn4RIjwImAr$9q4B zlEBD9a}e;&YET~t3nOq|g9+KU;7Hfa%b%WusTxypW|Fl0Tkdy+1x_h>`M z`bWyCzmMFN2BJz(`^`&Z#^sG?x6f5?JiBzy4QE3{)T) zM1xXaw;ml$O$Td`UFj0Fr8KQr-1y>wN^QGUlg?XNVSuT})fZlESB91!|FjNM)8+Ho z_f(UOOIHQtr_gw#qSO#|*e{u?9IS!U$1Tp&2PX$N+x~siTWjY^_cU|%FQKz8b9SRF zF6>Z_N(@d!WOBS5nf;q$Q3rhg861{)S?DWx& z6U6~NFH`VgkTA))?%nj&yNh<^<;+a~+Vk=8U3a@CW7qdP?LlBM+q$XpD{Oaw zz95aWk9O4YE}|wT#tdgqIF((wKh;(GS;O=}w1i?| zC^KJQ*KP!;AcXT8Dc7C$?=3_pybv_}iru9T?JB?J88Q41GHUetALMk`ajVfX%^_VT zPgZCM@TpN>xuTcRk$po|;f@aBZ!ErQDa^gq{Ps1bCJg{<0vBjJklTMM^UnS95Oi6~ zciX%zXTsCD$n;u!=SXj2&R~k0&S9(?ypv00p!!3|Ph#JQ)vQF`H#E(@IsE90i^FTj zv+wxSAbl$)agUwfo@=#6G7}o~ybj%FH{-vIU(MZ~w@LwpRT=?%UXA#3QWKs!Yy&WR z@X#<5z3RHo;eEZA%)GwPfc6am7Y5@@xk9D9f~o14`gdt*xViu-&$t7d-5GNR8Wfl- zgHixeXlxSO5@LKt#9Ns^KaD&X`IV)tt!wt)dd2vLokBnkqM2B;bh78lE5*yL=dwe( zJJ;v0T>W0B3zq6k*LJzL+X3Z8gP@ukkYP;qGayl2vQFng`TCBs&HaioqXUis_ez_- zIp1_Ine4wX(Os~5@M5x?|5h*ehl5iSucxeoH@P2pl=^H%pMU}a>u?4iX;sLPQ>7zH zCVdkrrw)6c%$_!S@j9DnXsTf`gA+>H%~&&sHDbtMkxh!}L3%vm}@FU1`i!WZ%ly{eVFCBUBe}jgu8zgt=zlgT-k#FA;Wv+$U zhsD|4+;o&^F(^2ZdaXIymZitcpb=_Rk`)L7ah_zGHV}neKQ6vsJR?*7q_w#jR0wI1 zCjoUA;jL7DzoGk!&y^UR>sIOK#Y2wJ77%Du@`|I+kS5J*{dMJ;I`Y!d*>7z^!>Ok` zwtX7xeWIP`8~(-+&lQ7*g40)v{6l46hsBYlW1&Znf40?iT(MVGf562abp?wQuhzBSZsnY~_xPwAoc1U#qLCHI_&^F;s^aCIE-kI;IrPaT zDfohS_1t#*r6nShOu8G?#Bq79_){!$)*7uqXK8RmAh)>{bu9W*PC+6 zMpx6+Hk6G6tp-TBGsw}C7NeJk33h)=ygXZcVeVo$k4J=@9ndxU&F|X#XdaAN9Ch6N zL|^KylON&!;2uxJCbW$DML*~~sMvX-VNcyk&Fk$p{C7<*-QH$(hdh&K^WNa}N=lCQ zh^(*IP5*;*8e1P~3>l^NRG)#f?#nE!&kR}>RJ*~O!Am!BU!vlzeSZ(%w2nQw?%bXJg|Pd_W1AHZxwl@ zzS!}!s%7qhcCEJKioT~W<_`3aq?lYgP&{t&a_Sn6pFyuw+kGM4x4O6O!q`x2#6#=n zk6p_~-r=B10}8DrADgwWX6Kd7O`Xo~eU)Dt|Gq;v^R!jubY&)nt$nd4Q)Hc9KeCAX zVYfun9-Bj%Azg!qyR)c&+|&t9*jHbCD|corzU{1a7$`t|d8BftMUQ-EefpNF3_fsI zzDu647K~HIz145C&2Yn>K0D#?!-X|gj<#L-MTyt;>9;=ZyLJu7{Ry^vKX+Vy-f*CI z<0hF$hw|3>O1I5j>`rqH{|D&~b`(BXzTaY5;HPr44|z_*WqUf@G>K1M~@+iJ(-QvydyL%eVuDVYIzzHRDJE!}7&7}Qff$3a4=~LAS z6xSOk1MKH?ul=~@?|)!sAEYSVpHV)&`Ra78!h;!^GNyUhy$`EHi;sSF@qf4U?o6sw zaGBTVH5>bOA744^<*q(1{@Uxv`+_eO_0P9=r}*-k^l$>MWWf*OU?@}tkPvPgZn{4s zlS2dfAVD}= z_DD-!TuN(MiQe0jB_q{m*PQq?9?!J*m+(Cs-{jid6aRPKn-xug+U21W@!3snh2@|E z!vVDTzDn29&dv_S{uRF72Lxk}+b6@FPCuQePdXNQSiQWT5Iel?;6U-3agg`CGbE8c zciK&>vH$9?YX;)GyWO6CocF#s?0oI%C!On8Hkg0aGB?%yb-U|;ztX|F_-!AQN`tk0 zsz*oXs_Wf7ZB#NMrPsH5fRc69TR)?y3km~sv$h?tFGwT}HJY_IonM#aR%RW2Z_4N5 zqu$szi)s`<+wE)EZT!;M%&+zQdu8qFDVz9yJK?F4oOeZY`#kSTNd1E_x&xSPv&B2V zl)O2sWLLM{&U?AynIr9!r2eXruCIx%06hsb#+9$U++w`j-tFUwL0iSW6L%%#cMm?h z=hZmW9(TIIeRugrhc(WpWcEIG*BZ6;>P#qo-8}dA5n~Wh+^jtUhOeA)vU!iU?y9lQ z*6qhp1%gyiAeO0LX;V43<=wik8l0?9NOf`NPI&|bBz0aL?nK}$rE`hGp(vY*r%@j~ zUZGcg|Jqb9Y4FPG`)dw=Dm--96Ey2VaCxcOai4+qoy&FMw6Nnjqx-ghT~;Ra>|Zj>@X_W3fXpn9Kg1;UBR$L8N)6rU>WpWWBaQ z_;gmyZbI~^|1Q_qJ&C*iLAQmwMR_?JOL zyA8LCo3I40@|cpIl9yMDA%-=-n{eppVvu!IACn59|_wXawmM;pxlf0sp8DohN>0#yi$x5>0IL z)%Un7%7~6O^{l!2Nyocf{qccqrw_VACO^N6vIFw0gPp$ZkrTJV+upT<^7rcik9Q-- zN5Ty|2iALXW7CFM7lbeJ0qcS~>4(-1>W+Tefd1h_GGB~KHwJ(k%YAb8zH}uvn z$hi28gu^8_iD^1$ufA5d95Z2kd`xGLgV&+*y)E0ayPe{^JzCw%c9-<}Ua*)yJ?H}; z?tP-RG+>o)&&yn!zYo=u+SFQq%NqN2*VjCiZ@*9FH-6~S3Hak5g!pMmeal>#gHCNl zN72|zoW`mHIo7wI*u(r=!0E}}T)W2T=@`|O-GYi*uo3>Wn%CwHrz0Y!-z-nKSgj7o zMbIl2@A|QK33Czqe(i7G=DmOA7`01=PkD;z}SWQ9u?D^AaC^HVGFyEfh1 zU-HKy>*U9DqkA*PMbG!tUiUnEZ|-4L(Ql{QIC%ko^s6G+)Nvoia4;Rnx3OI8QNcz5Yh>G%Wp0uYlYU=jx!Hd>!Ju#A_K3}rIsjqRO`Mvuu`8L$AD0zwk2c?G`N58zjuAF#M*{k_w-WA2W0cJNZTuj>d=4gj^ z&AnaTMk~h@JH6+EMdJbCWsp^EeBF4aOU`9(v@@wQYEut&QgQw&R+sg@;r=d985NCB z*#|%BoG;s7uSon5UT{GsDW{GvmbWQU`-AmpPO2l~GC?frHr|-mqigYD_QK8QzwZ4y zdCFTt$$yKw6v)>I}m2w68%zgx!j zoeP$sll0hDv2t|jqnojDn^;O=_ovRBYCrqu_R>Y+<6-W*vm^sp#Iebsb`-%dnKx7#LGY-f};5Y_v**xO{Dg*ZMOYczYrPyx=P7GSf zkGq39yTtI1`3~o%s zoYZwvTy$e9%4ePQbWamq$ojoqNBPgj-9r(@Vbycz{kM*ckLgg}B_4f0wZFoBKGgcp z`gm2eEbUAhs)7C)U@I$+y(^oE*hl`?Z`>1SKHb&OqWqxkObhYh-RF<{?~Zi0xbOSq z@1>Mo8E5`!d?nv&g5-JY@~-W@^#w!QExp&RIrQG;#JJxc&jy5N zwr_>wgOSFplh^i6Z(D7y7&4{u>dd z6*?EHrCEeiO_{@;G-C}1XXH11^zg!ekO#-(hI-eec<4CPt%gneen-O2rP?d4(%}#Y za`}w~&!U~#oh_kj(55qrEo_;^z!|Kj=_W45Vd;d?y^Ojx4JG>mpI)g z^ErwqSJ{i--RN`3Mnh`Y02xFFI=FvTiy^iHGQAF~d258EzHnQ-J7@zgK|SF+mZ>Sj zC7%l?JE#Ux?i{-+$})D^J}k4)JD0fZ=PRE&^V;J?e=SAFbW z-t|c+u}j02ue8wo#;Gz`ba=mVs*AuKm;9x!$`$ z~^m@6voh5rb)8K z2qyQtyK_nsrESlKXPIWI;=9c9TY(Fcx6_q`in6qK$tu-*3atD;lWaD5tu-`_6gQ2P zY&z9*Z$*kPx>OI@!~05sz2ke=)0*L38ojSSQHGOzu3b=hw|ml2k;5S8c?Duzyj;C= z=DTHot;vLi@@6OJQ1w{bi)#C@T>{5D7aVI7a;aRIp6!OL#$mT`#(Z=OrIu{hwAjU? zwgry+-G*{feYcV4p9xk|{f58SBXTd>Y^~0~AbQuV67Pz@Eb}H4AT7<4FxtjlawQ4Q zmcm~>dCu-}N7YuC7^VEI9gR?}hQ98peAzcw8(ixz+&nY-qZha#tldf*@R_py2&^wP z0*9tLHTChCHVO7u-TCjwcMQ6E3=+$k28^1`jX*6(PV$2y+pB_!>AWFDG}^AEe(#L? zG;{rL2st&e*Y4}A=IAWeIrWdtj_B|&m8*|aZ~17X6uz~sF={;*U9{&;ob@z1nQQFE z4s&hjVr(nc zzQF7aE#23X!tqXKAJ&JIc#PLSNG}0h(1s|lqJ=&U!B#hLBTML>nRXxllsVhGl&hYH z3LLdNzchGFPh`Hr#eKl^!`^g&Z?b@>%#PygC!N%}xkFp>SWi`DSmoWOxY0i%3m*--gfYW+p#8{yky&)9>6OV&7|XOf zUQK66#~INm%JVu%2dC@By&C5yNr{f&o|QR6^ZK46xU?a2vMm$IoTFucEJ`0fvoo_F-F5i7&HN{dyn@Qbu7(*`^rpdas9w9T%0-D4 zS~>rLDico^QGfTwPKClKwX z)IU*Xp!59Eg|$Ez_5od(Li720z315M@^n>BMJ!F(gfD+VU2jiJmoKnkQnT3+eByUG za4C(t(Mi;=>8@9S&@@;T#wqF!+Of?x6l%#fp5PrH)V#%}O4 z=XP7=dyl!2?Z-wtZ7<(dz!phuRP*#isRy0U?#1p48u*n5flmmIXO)M!o%?lRf~HNB zbChJu!$#+I0_LhtE?3<{ohfoOU<67<$HdsoGAyw$_)GHz%b;{b#uhUgVSBpxp-P@wr15Q^Ht%P+6xlT??JV_=Y`0J%SZYg zMT(rqjt6%>TF{QN(J@YR6^;5Z%V+bIyKN)idDWcE?(rW3ij?)Q$hq2OI&nO15GE^k zCT~SQYuxHfE3lR=os*9#S|>_2F;`i-NA)s#a|t}`V*yluWL-6qVieOi0{=gzNsYC&H$k3SgOVj1e@57%FW44 z3l;THOE2>2?Vh7Tk*m7#RgYQ3A1PSY*&FYjbz2-Q+U|bxc&RPJ+HrCxge4@N_q8R- zsq*;n(92qzM(fx0zUK$m#%e%m{pQ2$9y_kSau?4+4bznzDmzh&p#vd}Ud8sGsDT*c z&o#S8!K?BUC2LM&q)-7#vL0Qp3U5PQ*sgliGM@e&yJ;aghoX6m`o_3gzz$6z}i4Mg^3-3-Y>vm;7^0@n^ zYH_r3xFJ6FALSU!8a!>+F&hwXzWD@=cp{1PyND>RiJwsK)KfHo5n#MP)uq zYes_%`HA|Mxv%LAr zAz}{g&EeJMovIlTpb^2lTV3h*F1q(e(YH5opBJm5yCYg1jnjm}K3lxs6yXnVJsTlA zKqz)(lSgACLmGe(?1U>v_G?T=-_^UZ&nG3Hy_lHF8_q*g;$pl1rP|e3G)0S?B9))> z%GBr=0Z!qhoj3%p#eQstSJkj=SJh#UYpZ|A;n`8wYXM(5q$w)-=Houw92&PAn$PC^ zC_!}L5CP5>*L#MHsXHZ#=`LFjptXX{bQ{9EJC=a8K>1SbI@Wf}_%o4sfh@1pFAK(P#{&n2zWa8W-xpjuk zYxr!PbZK^t7N@YJ@yeHLYOj%;HgtRO#$BhO>!bF`OFvPU?-S2h`rbS8lqxmkU1EP( zMQE~B>qfrQs`dXO2{2=?v-e>0AiAml>KI4YzzWam`i%PY*pb@(#q`JipVx-kgm1jo znS8%Mr=a@H#rLCJ%M0tYXCa>psy0RVFlf=5(HxYg5I0KoA2-SvwwN06JAqP;=nS0I z1J5m;JNYZ08j;A>z2eHBC{GIVBMgsahPfN+;#U!gppd$^s!JyLtm(k_DkuL`Vk}<4 zrI`V95pwz=(W2{l6BT&(W_-1$?9N3F+4zR-c4eB0+`rRdR^H-DAe8ys=~@ew@iCff zlaZ%}YG`g|7DPMF-=W{CDcy5Fo)o3@Rzd#T&{9!>uItJ*8oLug3A*zGuVxMdaNlsw zBwlxCG$MKQV{xY#00)5*>J1xH;KcIW@k$eN zwupXJ()NK*4Khwpmp@!&vAJ0)_NDWh8KPInVDt(a zM6Vzr*z!hr$)Z0v>H-z?&gLFFxrql)$of;cCEc|35vOetcES*q$@q%VeK8dAwk6Gj zHs;Qe*;hgl@0JqT->#;Tezy>qSlL$~9?kpUf%RM?-g(S9CZgz`*1}EuPe$TjJzE`kpGGL zJ3lHnuk#laQWUo#F|W33xb{l{mYimFm9Ud%>1@3Nbk3tMXKL?Gy*(NEW%=Ts8Dv+c z+%b}iv92%_^xpgM+t?YcVXSId+z;t)YvnijgYa@W>BKFjSL$^CHU&&z3K&GuY4P66 zn~yXiU)jTLHFcU_t`a5Z?+E^E?j{&kyt|Q~yB?pmnPA>J*C$ZCGJKwtI_!g6;`UA! zmhN9eXXex568`}gQ<|W`-0*j+!$&Qt)RcvNg$$h|IM;0L?u7iS+R2v-)eOsH$6b0B zs}gk&a-eJphr*Rt$mC@i(_mQ@j_ZwpDEd$oD;m<#{uDhx3=#$(>)^Jzel>ga>LiI> z!bD-B-UQA4fqUl`a?K0l-u7ecm9E`C_6qpcXyRQ7T#TcBqI_>9V*DrN(*KNm{gdk2 zXYYAFX^xqfCXy-$&P3T|JD+9 zK}$TnMa-TASwcyEk7!Yc%e?a~lQ%#0_dlAjAlss513N)7AmEAgKfERoqJ#uL(rg0u zLgJ{lnNu?fKT&Vb0VC=0gu)Lmq8$V2zW?9#K){6db=FZjeX@K{WK45$vE0((#%|8J zUAx&SLNUCGWw+|sO%dbBxTAX}@KNGy?o)V0loN@GFP|$>Z47-!=>Bq**CA%y;JQp{AxkAAa z2ATB%fJ;Kr{M$SLr^avdV0V`g7&USI^>B}>XlhhWeFP<+xCZf3Y4ebr8(Q^5-9Khzaf{fFF^s;^svl`a3G6T51;{kHY@2lO)DEs3GO~px1yQ)3sS1lh zoD{#-E?MeU^yNgsDYHec{`;pVr#qAVSFGo(P$SxZwEus`6?Hyjsr?nZG zK^r%8T=V@wV#j1baTYB;U{w5}Fh;g=$Sgr&)$Cti<#T75N~o;NKUqt8eX*F@t9}2s zpHt?4n0?48xC)$KBa1%Djb zV#g2;$GsbKl>HrxLqB|h?h{2_ShC~vyldil-wD_es2pGI3^Ceq^f|gPRZ|5OecCvx z@;k;s5-jm963}Xtxj)uv@6pG}4HcMeX7DWBskR^#rw9lG=NwZOTe#sh@5;||e9q;1 zi}M$Z``lf>l9Hcfe?~RNE#4qp56KdM_>l2855Mo;cG%$Fng)Fmr}{=f zGGu&tzVeWG|10GG86Rrz@KFf55DGP|s5@q?JeB(*%U&^L?~eys?0;^YsDtU|B0{^R z=ihWKHfT7s*{3g7`*EgK;LYm6+l%2GxsWfgU9-)_Z1g_AFJ>`&*sIRtuOWq~Pn=>%V-2vngE7Vnl?b z(#2WNpAxPPq9@Eoyv)*ZsJs`ol=w^i<+E4Yja|Mw1AsG|d5{XB-YW3Pn+qI4+ z{;w_+aP`ds8P;?W@x~4JsV>~A4^8~G#~v0X%ER*@qw|cRV}JE_xxe7mKmL(pJ{TE@ z(4yvpLbFB!R0b%b9hoSaxV^XHrxQzpO9Xw7KQYf-Gb@{+!D@EJ+AoYcs5jsICtfHW zC5|OdD9PPZ=eqr8EpabsR9jr8C6t4LQXn~}AB?8PTiqd=2p;k(O)E@PKG@E0f!g-S zk9R_f_V#GnbW>K`bfU|44htV1fryR~p2r&!=a{x)WN(_ODIk~_~4>*h{A1JTy`wedF&4NfG z;Ncvj19nFeP*7nXg!Thm@{WRv|?+G<5{iu5|Dp2`&-=LXDqfN+_u62V8(Z)$^D_3+QX4P?Bro!RfSkj4i8a6hi2>Sf4f7_#`gc_drV*fskS z+0`Ob9<%M^tCqMpch1Pq-1M5Q5hzsXI5n9AGTYA!vL=faq8@iVFAnq z8$`aL+Nk+0ljfN#_iE-l6e?TpL5SNb4T}HBO3uHK;uozqxBC9>1zwRzZ2P$IT)Sys zlhaoT?|_GbGV?C8EDrLkc+Q+>`kNk2nEFUGB&G^77`Z}HWU(vdV&k_XnQizNK^ z?Ft7cK0-uNl0~@QbgPZCvwD$~M%L!I1#~9v8IG?tlMOm81@rbSwg3wyvvnMl7uo}gfEUvaOQ(>Cd80?v+}mz;S?m1 zme58)s-R?5#yIcb^?PQkPmPngKB2>Np_YzGvO*fEk_(7$W$B}q zgr5#%9CA$Ql#xQ7EmS8%jkIRejN9#f-d<@Gzzm?o2(hM$bZF0j$P@^~xFN|8jQj{_CCj|0LUNHmntXQxF;Q+|Q$eM23W=0wpD)rlYr zsA>VY5gb-rz?CP3$Fe}KJx4+K9eqM5RO~+Sh{^0%l?+sEVHyB{dYEzq5Dg$;G07Ic z8+Ag9mvngbtlG+FDrv^X@5PfHpQ3Do_6Dk*2umL&-3IX5u z^^~yUK&m>z=&pq(E$JjKX|ZgJ{$gsh{gw8LR)+FJKyZPAR~0B=lL*hE_W->EuoHaJ zd_2-vjsge?&}l*8lnfzC3Ci>_S>`Z3aA{eaJ}9uJhTuF3kAaAGUaxgmU2 zXvqSgG=eW=%)xmc-~;0VpCV0?gz`KrDJbiQN-t=!7>*jDECr;3lD+SPltr`;lO`$J z2f}#);tyznv=sV)74=Yia9U&+SZd)Zu=^uphn$AE9~2xwQY)sfFh8Jeq?@L`_3xKA zp$<1m6HpoezyUyhpq3RoH@pXddWC|n98&sj(rkZ2C{+yiQ{JRg86t%Np$KAaq;Gn z<9PQcexhgr6_4~S@Nw#~p$KU{rFV(sw|*lkUc1!-#)=pzl$TtPdqf9Sc|^cX3smGD zNj@l#q)31lkmNvNx&;^DZ~TZ$+;Y$ zZc$j1ww<|e@CYJxuve-dZs(mwp%xZvEvlrJ;vAMwC2ho2EIO}#-I?E7E^RJmRC5!^ z)I8|&X)z(*76FQ+<2(6UBW*rkeT^q}w%|oIE$$pfTJhfQ3TzwHNZSwk>>jPgf^wps zoi3_+I`(EIzJ0AWW-$4l82*-NQ&;li#7|XbWx=zBvj$V5)tvU0Va$q~$aCWZ#@#EmE zV^GibPgK0cwIWNW_T+D+_8-`JHWTJ7$L>#+9p7EzhXkqu%&1 zYGC~FDgfU3+KT8VT}b~#n?|hmE%vZ&*Pf>jQs2Hh*L@g?^{$S1Hj&9&2)2Pe33KW# z=E1JyWuW6)(&ca){I+Xqw>_RGu(Rxr9syB@9Iui#?bG-HXTH`z>-adYAoarR-ywZGqC~llF7jr6$vJzx0^@O z4Gv8*pGCjh+8Qp4v**!J?x<}YWG6^eoivmE<~$sGNz}T2uP0{zS|N3G+mx>Np8cbN z?bwEMJ+4FARYcfT^5u9Hz`*q#@d{~(7PO(9bNL8pz(8+} zAd!2`+)RDqn`vpv?NBe=&%Dny@)pY0_V^L}Ay=3r3sJ}}?Y)3BJ?agyU+9 zpP%rlVO)8x%JhSqfw4+obm(23McOL$A;*@_R5@igi2EjM4 zwUHoGcc+)HUe>(yOl7Mzf&H_`)_4lvLxK^X9OV>L$OxP<$>caF&ib(s*9jg;cZbrF z36r>8(gS&`pQx)@tt%w%;R>`XeBQIUZWw$ES{6XOgNiwbQ)K}Fei|06jbd>o6jXXj zLlN&AIi$c8DfNbJpEMiR4P1vM1BVLKe1oik^SCGv+1B1J;YD=UH5>C3#entB*(H&I z^SeW5wmF_T6N{XQ&Nkeb8U2a!?#fzwJO21^PN!I(bFQ74`%JOxuy;)#JJtx#Sc+l80*~-T0fLrN=>!;VX=FX8iF0Yg)Rw0jE}{K z3p6)BTpI!)C`Mefr$O$ak;SE8H)_~=nqk-E)XMX=<;c;K ztHQhbE1!C1Bp2ha*^eHHb2SNXG~l%{8?PYI8@tG3+kIVS;bnR&C*iisi*K_w^$d`Z zl1QZ+g}C?KPi*#%&2TI`#LtTO;3Qvj__6#!rp&8cKQT_=qIr#3i-QoPdF=?F;!nJC zf9Vv2zHUJS%9t~{*TWYscJ!?l1O2B{a$piY2hou#udLmzVhkK-Mpdv z;Mqnq>bAvtw~nSMJYPW#-GiopmJnQfq4TbaL8U~-+pRxQod>fdW3o2KTB=$?E1Bl@ zYlz+QKU9e?#kt#*)xL4R5)Z>xhC&j^snRD8&8hEx?AtNz=RI)ze#lU8)4XMUFW*YI z!=SUtvo?dvE}+vLk`#{W${7%w+14lubzOpdH!END<-kdujef$_B zrPQ#+cGtjm>f@--R;6_#0M0&MKYhZdvXrviHG}vt;sYI9UFcP|?CFT{#KaN z64>0Z_FfrB&s<0!bXSy9k{g_hZQ7 zt^4Er{ngQe!_5rQu^I;Z$n)4Maixo~`?sp`didGvR^6X>#;m*FMO8d*TkU}Kh$r#2 zfpa%FZQY%}xLVC@xVy|xR@#ovu8rNV)9pQ7DGw{~8D<5B?st6@z0&7))!1a_ZmMT= zhNXStj!7E>?)GT2fG<~2hTeP?dTChKX`riEzcAK`*P{AJ!D{BY^0{*?TRI<|ba|1Q zD|2~%qPz+7xLpeA7~gVR-qA8j|3Y4~`4BqWPJeFuTfkU2W%FqF@sFX)JI7D;*Hm1x z0Uu{`Ezm_%LlV>e^T4>Smv8KdYMy@(9-VaShzLHr61)1rtj4V-vyt-tjGcCq!C_-7 z^(oijr+4OetiGE4M1|(DF2|J5G^K?D zI}GbrR=pH0viHGYA>#)|7h-xK2eL4cgz6c~8A{)dysT!3XvBty7%x-}EL4TOH9d?G zbgDdSM$xqlVW9ZE&orZvP1DRp`ywyEYMtJbs}mV&+-!>2okwvNFKxaOm`-}Uupax zrS?R|NF_$K%1)+tC(iuMw!%sX)prGJ+dS3T)dd&%sbZ5(;|?ue+%Y)=0`o`03~>X& ziYD*Pnm!B(5-hmX-mkv)vgsO!&05XA(V_vraQ=+-cFubB%%nn>f1b^p74O)yk;m@L zCHtx`g`FdsBTm{aNmzdtr3hndU;$)7v_~;)MYLf#stQqQ8?SZj#hVs)hRdoZ$1I+1 z>0BA+NF0K!RKe|BQCHTGIb0s}hKR(%4F(J03x*fp5{g~!zbsJ8wEq@BrY%Ru-|o&D zPCbj=Xxh3(->cQ-n98izG5^>=pM^;Dq!1^!;RVuzD}i!@i3&4C85<%BJBv=GWZSyI z&R3@%AC~1Btpp7-i!BMxe^_zCYZX>kr{BvMnor1&;Z8Vx=+ktUW9hCbiV*+Ez~Swp zt_@<dus>SW<)YWsJlzMW?_++zxbxJ;ufyw(v4lq+SC#yY^g zt$d&|o$Oh;!uVn+>5CWuvmuyhny|emk-hRGl7`yiG}vIURB#atMwHJRS=`?UQP69D ztRAG}VE$qbOCLu+}R+LwukEW1R<@~D@oV=H#H+{emv zyrA6Z7TkEGmQwUf;ro_qo*kQqtzHE7xtcuY*9#wqaTKP!8Lgw*BNJNgzCI3Nuc67{ zj*my>7rq1^tl6716|rqyd|d)mDa=!UGgA3jC;LF9c z)ZR@>*e`#Du5VgrN>G4pizUXSge~&`fcya2#0LkUIuNW1F#x2J0CsP%wSGhG>Z^lm z0rppzQJ5u;ENocta1PO!V9x1YS^qTdR)M$5Iet$D$zv7~I+K|-Ej2s3+*D(10<~;T z#O>>`dSG<#)IQHws}-)9d^?usyV3m?Ka1#~!hFpnoFz@|@I}tfW15dNU9SSdB#U-! z#%B8@8d3(yvF^E7Ui)#S{cksk^dk`=&Sq9+Has;DeRaC`u-CSWJx;Nq}JrFepO zAkp2i%tloIKxLvlU#je*m{p`Ba zypEtwC>GekZ%Z3;yg)Ud(FhRDCF=b@^4X4*`Nck}XD>hKrU20~p}GFI+%4VA7Pq zgO3Y@kF+c~=cCkrL$fQve8ooG7Z|(a7sLe&8W_#U3xUrI$?C&lU5!=D-_Xb~s}Ylc z-Ihdd(8c9w|1=s9cbEYB1gsn^`ao$Qu6hEs=nsL17_?-GEJnzN28U?)VaASS>}&t2 z?{7j`a99b!Mg?qIfb|EaDO$1Hq2P@|k-{7jC-hMYz3qwqZL1=)CJD1O{F+0E7X~w# zP+;LAeU8~apo8(RAz(%!I}Jcz3^p<1i~;Ym#1nmRe&jH!sMDS>4QBy#o)Y>YM&RB_ zg4gm$0=r9093h@&#Zt;4^I%d2gdswYLbkNq5nKuk3U7SmHBb_LPh{>Cwyaz>>4V7y9+zLU3LpXgIbb~@ z*i)GQ2S+&MMIorn3ZiB>QTl*J0^kB_EVL)o!iQ+do~W=W15OZNLQ_b|sVHTK%A!eO z9{}+1K)}_elO!^G!Gc!1az3gL5O>&M{t*_YrQxPfh$R8=q#V{CBM2L8pES(#KqUU| z49sr?1{XPxIS1`>%Ilq8s8kHcVZjG>^@nWDINGi-mjQCL z$l(V7)eb8Li$C0%NvmYb1>-!Vo;0PwT_n1Ho=4UqapJpU! z5<>dRl$HL79I`}0amB!)Lnp1q0^s-n_!XK4!0QiDVkOAjfn^G@H|TW4dnXAP!GBdN zcoH%z(b!0%VEv?luMXL;eytfXj6{YDDp({m8wg!U@k4Oa;wu5Lc;tl(0f63#ost3w zcDDfgMcoI88=C=UhyxgCX_duEvHPAtihc&_L3pt&!TUUOQ2MNs(5;exDRRL?}%G3AdpD zvM5f79~r<(-_0f?j*bNSbTABnoERJ8)3h8Qi~$ahmQc0;dO`(UnBcPn{39G(#C;3Q zD2NOO(TzDUK3ilTqQg8o$pab<&G_9qq_1!{tDld(Gp(`sg@FBww637oM=e0?b~x}} zamaw%8$e%QsR4EohYuMWhZq1$Vuz*M(t03pmnkw2nCR1#AA#EkkdOg}6hG&Ln8drk zsWI>@Tv}vw0O%8bgG_;8!88uEFy#M!{S7}apL6}Nyzky6p_Il7i5T>Q1T1HBd)@+h zg9rZGaB@|E-i7wi17fHL8c4&z_C>%qeQ@y8ial_U_aX)8CtBdHAQA_-7c3Ax-S~e( z&d5jr951p>VYVu80Va7MOBW_Ez}R613)#V-sqiSFnTJI5pQKX|xsryW1^+mRcCg50Uz!3~i;Oe~eL5)|6yU+&;4*2VWFbNH zH@hzKw#XF4c$1az5r>Kg<^(()3C6&~;3r&0MvYKRh!;RO*M=ODrB$SpZi~@D936|o zTUM$dEqsV93kBXArs6Q^NCc7wF$rd>L*Q&TV{UF*?2QZhR$(JYt{CeR3aMB4|GtH2}f}x(A@p0|AJV2ybHx1w2bY z^D+hH_W~Jg+Q6=xeCtoF7B*~z?*!xP`ZFPrnE?ml_rhXpg*HLsek~=KS3hJ*XX5WAL8al-@7nKDHZZ1Ax5K92MA=x`+ zDE#oi$w4swadEDxNJZUK`Qv^-p7Uqf!jpf^VE6+wRKT!-9LUfiO+jHTR+=YfK6WF^ zqI-l14i}`cp?v@}P)X0n8EsHO>d+ft*4{3pudFksTScz+s|LM-={Wpn4k! zbXz`8(*QFcl_UcOIgvO;b28RF6>=GhfR}PCgk-=0!)I z*oI4|>6KE@U@0e|J%AH31(FnSILPE+sb)ju6DS+u!2rVV7YW2(wBg;L3`+wT?%7nC zhlqS2Vg!eOwm&FuKfj>xv0zKWMfn`>VsCpYRA$g-;b_tH{OkHK^&PJ^3kOQ%7v}um z9~O>gBo|MwkB4y7O_vFk;zb|(*IVFkIDz@ZF!f!ozn{RIgePt;g<|%l{?SH@T z-!CFffQ!GMgZcb_eBu&jOoHFT+L+%2Hai{!w z;WkT&WZ90+n_V|HebVh}Hhv_-*~`OytgN@a_ZtE{>ED*G_P?ATgeM#dA9E)AXZJH;;r1K*DxHiWZN_?*vP*6~+L zxgj4VWM#W_saj(*)>4-zi~e)zXkO=gA3_{aslKe95-owo^G1O}0e5BzGad_(Vm>Bv z0Y7LmNhK~-Wshm%!u9KU%dS1GPLcj3{na}K5?i`Gru9ESyVs7(|2}AU?nzlu0kh%C z*`?e@AGi2=oM#Ca*q0~8?Tn5|8xzuo9ypK1;&5sloF5hqBqG=4wpZ!QA`~JF9rCkG zEKh20^q`f0AM(WYT~YQ4@|)6b)vFzznD?S-^arxiK zlWTN-mUNBwWzTJO0|@@DO@;23+lFWS3iO&-{aHdS`1ZbyMkm^SYqXPkqF0pd@;|@6 zsJF0;z31u(_t)Bs=R6t0Cf~dD4KJjhzrY=q-PY(uM%40zhYYLkr4MDLI(BEy8W-K} zcI{PsnD_E!?i3W9D+*0IP2v@w{35p5?B3*%@0?cco&e}3z2=e2ZCy2AeNQy!%@01e zRrLRt&TIHlQ0Q)DuiX?G$nKE&C_Tl|^H{s)QN`9Sv?E^u!KDdNf;nk5ZVo;-x@6;UVNVxJ>ci+Ga;mGsSz+ zwEK0R(VTOvRnH7-3BPP{!tpN^40Wy)Q62n`KQS$kPNbASR5Bwy?7#D-kae@wl?^{v zExCs^qPO=7Yr$d{-7B%|I?~<$BjZ>dN()6rV+mt z?*Hi4M5J3q-j6?_Hu4OlM>{&}${@_f;m4Iad}*S=d$VdIjO)M6 z8!J0rkx$L)8Cik`%uHOOqD<1^uU1@dUATRIq0exJ_0vPyXIPb2iyb4Rvdo&w*zQY8 zx#*B6Q^v%ETtTa_N8Ltu&_1otn|MWJ^VbMf-|g1f2@IJ+5_gO(!VSLX3P?J6L^%;YQ*tX z-siBADE$2TC;SxnUesu-Jk!_ZT7h^bb1GqmhD`VMZe_3c3D_)6IeC9Em3y-1l*6RV z;G>?bl;?0#Q1ONjMTm*=gX=-{iT=D+43D!TPRxbQ(%rBV^6K=`I*Z>PjP&weemIdp zCT7xgVd-d`gXFhn5$kfiPJ7y&&M6xHVXs-iP?uRNlDHM||Hm&){{PLO{1uVa${^pZKfAc!@ifMn=F);>nw&<`_VJ!WVb@Z1x$6~Z}}c| z4Z9!bx40rQS#QOvY{>qg;K5qfWjgFf7mkP;Ca|m*>goAVFrG?MycXbzh>PRf$&!Md zQ(XTx2M?n(Ys=QAu1Gdi5xgRIO$ZO9hQZhQ9r@hR zFn=R7A*$*4_PD6zD=L++U`owU9jiw=h69`1!|xV9EPgt|oB0!!0TS=B;lSOYLU#F= z_V#(<{twO6uZ{=sJ||lJSfKp+ONkv5=i@Au_X^SSnF2+Z&&ej6+}YyJF|}@3T6#7u zV1WCAVD4)93jy`&4j)cx>e;&&YafsHoI3JDPeID_c#GCV2nPk0XQ%U4b@z-O+HGp7 z9WT`&L@mk#;1Kl$s2ux8Rtk;NAoM69%WxPLM18EXW+T(jk}_a6>0p+Ywo|rUbYQPj zOgt_s#_=k$=~*vYzWV-!(s7o$*o-ycHHpRe`z$U0;>XO{O4HL{WyPA*Q+sn%w&fEA z%^DVzp?ww&ga4XQtfNzns>{=8$dE&S*4Wm&iqNol--`@`t&iTV=%=hdknG zHn}|gSB*}`qAuR1Bv7U2re~I`_;g4oYu~7}(pz$x`~0#Mqvps=?XEce>QlMy8)38N z6=frVKT!!|oCjI3wb}``u#+*73%atC-5#hIW9CTHy!uSQ*O(gT%qw1>9I}x(bZNX@ zhT}?Zt|I@{;wqUt)|4zCY2*0)9Sc=$;~8vWKzu7B5?r8~9!$y|5Rti1KGu3wi9;=U)(|NN)=)$-#l zj<0wWGSXEdVJ@SbRQiBL+Cv?@7$`| zk}EI%GKg(2bjEd6ku;?~`tmAt7I9Esw1#q>rw9DGLZ0Cl3j}R-N2z!$$B5}L3`>cDkk=M6!YTxlv)4R zGi{2k9r__W*joLI>zyy|l6qI`sOZz5XH&8IuvLc>)Vf*Jgl(i_*yp?;Ca2KW5!q;@ zaHP>f{BH47)lkt%C8oPhwNP|tr9xK$T0nHn*K~z<;UsrSr3H1Pd7|T=zhrF6ZV}@t zqYbsIMb#BALpZV#CaKV|dbNz!Tddnxl5f2=YRtdi_1U1_vRT1QU4im7`gR}l3Slve zQj)~dLSM_HMv+uHF1Z8-Zb7@(#3eU!dkjr%c1Oz9l5d_k6Q5|Ppk`D_2Fqt8?aTwR zsiLE)%*kjUjUxs3ZoIBo%p+^R5$(l2RrHZH!qd$n?Q2V~-&64k=72|93)bHz_|H;G z2TNG#5N&A&^G)&I(zlD7($DO4zK^9~DziQObUaeFL4(rjod0W-;c_W8J!iV@s z{t2OZ{*{G1!WVgNw+!bs#^vPY&ux}(Jt}rL8fLOh}rn2+$Y!r^Pcn+inJw$V@u;jq=$%oC|JO z&6t*@yfH2+pTIhB{{7Y12rjy|a`^n{Z z*MZ_QEap{;0=5-PKG-USw_;!S9UWCZ7`nD>FA=)fEtP81SbBbH){u?tgQOv`tnA5y zFk|7}(Jw+vxdr}YLQWY3D%$t1G!e}6aS07@`DNs=1|3UzpWMKk&Td}4^ewsa=vl*` zsGUWLc=Bdd#;My?H?(b=EHsX*TqKJ-G0alZaLa&_pY;I~=f&ud<~#yE9n**8qTR~L zXnq_u8QTjdXUYeq@p!n1&xPI#=wrU8P{-6LG&333-f>=iFe~lWbi5bOQM&g5*RQMd zQFrl+KT~Mpp=T|d<>5K2G%nj?;K=hnlV_PH@{F|;%WI+XUFC~O=k<5EXN-&`qL>qo zN*XFfvp%f2Y2YQS{LF&UhgiAC@=93~ncZ!o-V@_xQ_Q$_+WkoZE(RgYw?k$+W#y`` zAWcaQ^!_r=v34uiGV@^*)?lrZYEw1qgzcQ7e0L&uoV*iPEzj|$6v-!8Ef1vQgO=9I z1JF4&r1urkQzS+&Q>FN>~kqvAfPZikybWbvj0#$^11c(@|Q#jti>8Z*5ThXH~wr?>Bvu1&&4AqX{C`V z7bad#3_&(iAx}mY*EMc_w4#urf--#Wt3w@GyPuzr)Vh_VQi}>J?BRMb%$=H_Z^*IC zs(A5IV67Zm(poILv%!_lp0MF`{n*m*!<`1xhOC=+s|(KtPe!q_tzU3@cH6b(b_m(+ z;Gpaf(u|e&0e0O*gnBD3xN$#Gik2cz#gzuz%VUQxCOZB4ji-X|r!l)`4U_l6d-!p{upAqW^dcYVj^Ox- z`gH5UJR9Gu+?QGF_p>CWOl=wIX#$vPbaztTnj~h1&q@v-c^;D{U&+pWtT`a_s;afh zC1Rro^6yw*JoX-*?7j3r<&bZ+O!=;BujRadQ>yI8^s1d=HN{5Z>kjdWCofg)STisr z%U3KgT=&JMY`4!a_{h}B_(|c!hcL8E6Y*ISB?Zc*H0$RvmfQ4Y?AE~zj!o2l`&IPO zPek#*cB;(8N5wKQu!K>1PYu^~+>{NUDaoqiJ6SxK68VyW*`Md+B}47)5+T05LdrY| zUS>K;C$#2?@%HzUODAI@(X6FH*g_6g-%_QVF5gC%*K+Z>oe>v1U@0T{iF$m#QK-G| zx{08R*J|bQE@#z-s&<0RN9VInNW8Rc^4=T@w>Z|``2^LR^DSsjLgL|Ix#itBn`ULX zpQtWGiXN31|B|hJ%gRfyckZN@#qz_LBJB6YMhx;Fyq6qQ*Ojw+Uwvshb!&OGRA%Tk z1=U54>*IlhlnxpkuZ7KTzW1WgX9{}Um?T}bm|rRS7Cq=6Xx5#1$Je7M;lSMZs=4aI zrIh;M@dEy{=o|j4z%Xn|*2&Z2{h~tJQQuOG}LX$1`K1u6z#N z3vRT+(JYP$1qE>NgF@tp_*@ec%TgS6XMh{?i8}{49x(IKU7PX|j#+~Cy zGrDfex?x9@F?IGe>ugY(nR@1Uq+^zU#Pi4yUNV(ilxbKh8MQ1sXTr)=6Q3#@&oZDZ z6YdfW@>v%cF-^)zM#sH~I`Jstqc%NnaMVpFtbl6%`EYJ-KAw&6m4=vDfM%7RiVuJM zHLLgF?YVDb-uqSi!&y{Tj>_353mfo+UY)`M+#s^X@#l#Vc6K-qxM(GPs4wFMzgFT- zZ3yBLVk<7Kk~Eqxzm;e?u)#H>6B!Z2Pj>q@W$s!3Y)K_h%%6d7X4h-V}cs8N^D4eo#Q;mMOCL zW}UM!8g1^I0k&np1$@g^eOX2{l}Li6vd!SSJ(_=zHQT29OQ~PBcJ(r8$_V{fsc{}_ zD+if`*LiB&{*fmPOl;eFT3v3XMXpWs0$cQwUBl~7nWmYhrPKA$E~JJ@a&eCQ55rdc zm9gWQFRmN3wzWrBFyZsdhS@ax_ee@xOjOwTGeyzMTO_^r_{z<|LiWutUR+kLl8P%m z>E>C==U&9zx|Yqs)zaZSY?3d(zVo`cKr2`G-1fv*i5HeV%-Z5|Vl49x{B$)qr-uX*& zt2^lpX=Uo&buH==m@GMyn(#`d^+w{$6y@{>YKy^#p(!7tM`YFmCG%Aw>C_(-ud#V> zC5IH2u@Uz?h&Xv7BQ-!}LYTM%_ zdFWwZlQP@cM^VZpoPsktDkmP@`oe<#5hdF)J3wLm6P0%ugLrY-n@kPO2)u@fUNnDh zjAAlB^Wud1EODwD`ipl5o0Gp*WWMU2;OLB%uVTkJQ^BQv{Ia(b==}z&H)a2aviA;) zDp~%AT~`dKC`gc~3huU0q$Lx~sa6RX7M;a}1`j0jwGM-P-1CabvzUjCOKI zyVdtl8m!f=^d7EQ?V)KFKYDaznx6H-!VQ#nn2kF=UO_~E*{lAmWW&OJq`3__2 zzhL~|7{>f>gu(v+ul%om0kZxi0kZzx<-f`LgW;bruKuBoe<1vKtAB$3FCG57)&C2L z_3!FEhw%^a=Y#T}T|Ni@XRH4t{S)Coy8JiNKU)1)m;V9&T-L>M<&2z8V8cplz@w73 z)X(H7H6<2uu#r}zj3`U<|D98`v7BV;yVpLy_@|1(RiT$Jw_jvtBp0fgQ+1WT$>E0V z+kIjaZOo@!tx+YV%wO@=HdxaW;r{LdbE+Zu#ZLX4Be%1g=(s11uig5`_yWnrJWSX& zVDbwabd=A(x>8Zwu`YnPV;9Cb)+lOL7V4aXW5o_lbEvXTzeOJfu}`b|iXOu23_# z^OjPzF$vdRqc`TBPsOHw-L4?77t&n@HD=JIJ_}*B!+5QZc#?Iijjin_A_y%F9L~bT z-+{=*?Vp)4nnM<<7_aiXV=B~)88rQznO?I7lq_;V50}>MWh@HYFvkUK&X%|!uzm&7 z)N(N)+QIz2oeTVt3 z@aQY=5+g%}k?Wf_a z7au6+DpD3pk#|YZH+SSn(R;I9Wm+-huzYQRZ3N1urc|LU{eke8YWl4pvO#&$gq0s3fCBG^4~O<;jg>^N7IhPr9mLt z2x`xniobO7m+dVQZ#66sI}1^(j~)rJCm6pHywuXPViErl?AsQHE(&FbETiMO6di}c zCo=q}7XdHb@Lwq%gi>+{LqR_4Q}?BB!O_Q-g(^xd6-BKwU2Yn0tM8EaPZhwX5!fDy z&GEmb4S}3%RaC^n=R(&8qZ+e->M)lgcV-FTS4#}5f7;IZFla|!_W(`ttR=kQ@5qS4 zrsvC9R@T(0^lK8zJAp9neMRjECR;I;8)^=|C0}@IsaCw`v+PL7HmcPhk>qsb?u(#U_L4F9kRzP@&R{n{e}9; z`8`^FU$RmaFPkryDvkV{PZi%^jPbBIB$LR6&?WonIwOFT&*C3AX~q{~%;PQ}vdY6;B0QsN zjF+`S1R{VecESLr#x#DY?jY_6xaUdb)h<#2#CZoaxt1T=(RA z7RKpoR&7t}zWPo|7$0Wky}5cr!0?;uN`{+adf3hGig`@UoE|PBSXai^e2l{Xa9$=< zD_2%40FJ05+`UEVmu za4{xM+zIUZSO8g!*yUdnPy2H9L!7=f@G9Bac~GWh=&`dpIP1&B*VSb_c>4OHNq^g; zhPs292F3=0UwM_p(@Jf#kv+BE3{#b;D5S`HG3)R4<6=VwTN)%qHz2)%gb8q_< z;KNz@H(rk|sW3XJgtf3Kx3FDlUVLhl_u7bEgG!D3O@6m(v+Og3d!*ClFs6IT#AjrYJCB$?_{aIi%w$qbrsP)PH8&NKPLtImm4Lr zn!Rr*(uXXWb|dD^Y9&;|n4rI;-WDHx%h3Di$|I+g((djA*f{o$Cw+`ltN3yG6SoEM zA_Y0rsc0*_(O77ne;!wLNqu_#EsOaCrOv5k`E407;csHouuq(s_cwamUU%nf-SwES zY`eWFRdPG1A=!oeS8woLdjaGdGcQoXyy;;b$E8|1hMs(3#+2aanckbNKuO7L(4+gh z41#oalr-R*L-}2ab_-?3^XfglnqNME*iF4wA+@A9&jzAqh4*(ZjPpl{hsSxIY@E(} z_=|8X+{S#l-Y#i24d>VURH%XG<=51*v6Wv^QxCuC=KLO@bkN9l>D|UCbGS@@ogK;J zdS)H(sa&$o;H{CZmw=7Y9^%|eq4{JH?uSlE$|v>AOU4!GvDOoDca|1ckc{aEuB0() zTu3M+U#kEigBXAHJ_a?KtR}jrbr5_CcOD_h+Bwh=St06UhF@U=)K*6!oPziCHErzR z=5bmmWO`NCS%4zmIA3*wdqT5P*4aRYS*@{j&sqZ)Z^44k8NW6a&+5S%b9NO7e|~9? zT4ZU2O6sW?lq8a(y1A&E?3Q9cpmMTc)iSJ?+9k;^+o;B-bx)(?ko<;3GdI1GVX9(E z3+lb5K4o}f466v9LWnirs-BOl2$Q9pA)yv5k;1PbemLu3Svs_Q98C6rh3OSD;dWR} zE7QnTmjOJglMwIh;RSZm1zCn9ADi8P6=9EnBNExfyz&pqap$iYYB&A}WY^I4-z&f{ei zd3?t=Qks&zr_Bo=7FzFnvat*xE@|MrRP|G^FeCC#oZp={qC{~yeuBaDEpTn?^FyuW zhp=3)yD|ff8cfSLCE0lXs*_~zn8nhMf$SDRM;sgXy2PHJsUnqkG|{qg;Lj(CkXryz z79sYcUqeF~9u;Z&wakLN9HSQP@`P@5ZLeFncA#FQWz;6!P9lr}o4V4oI^-_ZNG2_s>Dgo> z^#vFR`(6WANABDafOa!B88#FUq*#)jpVCIgyK#xGB3vcMhVC>yji$EbD|C}XIJ}w5 zldsf$@ibh3e&muJ9&;RPl%GMinrF=DVLNhZc+W9aQd>iwnZmP&rR0h4ik;Q{1!6n2 zDr6103v7-VgVz*Ey8G7#l<(}DMjLUtch1XbejGT`!n3lw&X{S~!KqeI{ zL%rMIU#-l>*66;na}V;BLcu zkJlW$@OV!nmEPXtJ+7+ziuKO7*Y}bes_D{ zmeh9pvzWFtRtvU|Vn_F0Nj+Os1~rhsx-u!ZZ?S_gi~XQt4wX?`h6i1K&~9e$(6z!n z+UU)3k>4y%Zn9v)xt2a6dwRNIeL!7$cc5vNFTD(PzH#H=y=Jy&I#38Y{!$IjK=|l^ zX{>wiOoyapCM5*96U)TNvh}k{dSBGw&o=5Wp{&SX0HcA$Vo|~66Q2F%`&@4GO5xU% zI((C=B?gPDqsK|}8Hkds-yW18hQKe_?@rU{_KeHOkg=%<@@4cz-^8n~>drPCS6x%0 z^gm-WwvL2*6er}CVZ9?xv|2Mry3*c+kCLY{aAm$|$o8u^L?+*v7OWk2jvK~5IAqz7 z+}GctD%C&iXcXf~FqG2XBDuIyf~i_Oltf4Ko5eca<@-{5gL)1fdfkmrpCrI^ne?dc z2Gu&~E^jyXp>YW6c}4dxZyFs!Ntg2O@`k27FO9oQTE+3aByL$|=_;)I?qQVR=G_<5 z4?9uTF+Ocf+o3WGH(+1>ddz>zrvZ3iyqTtW$y{vA33d4Lyyz_3Lk_{M;=T(k@HjKt zu8%>B!{0uN+fPe(>eK75pGNTZH?F@c^x_Z79R|LAwn0!H$bI`UyH~FGYkR?HAT?T~ zzDT6~bL3J}=3UFuCUE`>-1sEg?;f&LCD`KI#QEe9v2KKEQN$LTi68UKe) zKc~=Cp9X8cihU%Nm_69kE6OS1Bq5#dRT|W9mJ7JD<24^QkVM7yvC{WxZ+8JrdRn;U zKVKF|Q3Xb@*Jo?#xj~_gK?%L8DmNxXsQNwkj(16!AI^A-wUWM4pQAenxJROyI3R^~m5nrLr#2!;J3Y@Z`o=+3U2wL%PaDl=KKmOROdxzwBalbh8;{p^j5Cu0s*_zX|3JvU;r<*{7L zZzRpoy053FAd_V9`pIwd-J$ZWtIthBP}17B?zFXUZA()-Y&AZgYkTN+|E`3I{uNf1 z=lIc)D{A?7CHd}t9(1r{MIS7-b30!iNemaUGu?G7rPtdgO{6PUj+``Gxv?q}jIz4+ z*0K~u{=kY#zz-+os=eWSjdu5TfgsA)&qpl{q50m zG$ot#RWciO4VX1oBp;h%B-tgp4kdQW;&1oBtVc9yVo6ut)PAFPc3uv6&Fb@}xASdJ zEinFHwnksAH9b;dSIZ^4^WHkweXT>SR`!zV2vd&-E!UU5&n5wv-)E*2^bfB++V_Lz z0&|h5Db<|2X$E&HZpL{R`jj;L>(}K>Cd;^Ym1iTKt2ZwU&g`M`^k0k2a}J?Co)~CQ zpJtdNKK!^qIsNOmf~|WUV!xenqpoZ#&a)6en2R)pq9rwjr;LC#`JKw+4CIA`rc!_P zP`$+O1Rsm|al!FvJOW`+`tV!6Ov z+e8`OdQ`~Fv$wY=uJy#7zEfXZxVe9zb{Sk!{y2+MJ^tOI%6nTEbxTvWyARp1+tMuJ zi}pMas$xUlLgzIvdl|m^s#oj6U`p9Xy{hCWuOs`Hiw`#yK2rkcTzIO6!HRyOG$q8t z#m#yg(w&`9{|2g;OQ^TE<>qDbvm2{hDv!{T4qbk>l^KM$s0i$^yFNC04d7l)8i1{u8epRlUmysx(m!v&~3Y#J?j=patUpH4Yaf z_1&^fW9ku>NpgTa7(6if;IaLczLLheeta*n%kn=Z{|W1FlK+Hd{3k2`b4CA^T2bGy zx};$rg{gJWoM1JDE0w$hSi+`Qk0;?RZqu;0#^}qJCm&(9ha?b-ile z3Z-5h-)xQ2aT#?vsfT+&rN&!h8bG`lstP^GJHFc9rc16^}m$G z4Cyo(drzB;w}zfLe2VMu>Sp!fKw)AAL&#YBp^RCH;-V{1>^FUKmqiy;aeUK&Chmh2 zw=O-DdjkTsu5?TjbHZ?QpKSxxF;VN&FPb9&=UjpBKQ_eKt1;{k*UVJs%Rs+VVCwP~ zL8^G;MSEE2v^r&N+VrN704dnAn3*n7mtLKFPv^~Mhc*PTh?$v68 z6z6k#UgyxCESJ85<^QV4G?}f&aOyCMl1hadt&X(-4Fj1iUmTI{{*5am7B)0=#cT7f zGBc`{%N}f%bo%u`I^iG3 zSm69JN3wTFYwXxhy0YFdTEPeU?)khil2^!mW!1Gcl2rPESs#b?h_$?*u!#>@chAD( z@mb>r(P4dbJ#ntGWg!@gNH#`Ji<2THxC9@}#mNxn&y|5G)tY%6cl z73{o<#T@r)TopbiFdf(Ir#gXt2XfHZ63|$o!5tWXeLloeHr3UXQpypXsH7Ip?qlI; zY@y!ZvRDYWY&DrE==ZCin)Ey)BHh841VsDL2#**ao95-yPsGl8@5xc;WY)HZs&10h zYKq{Ecb7>=Cq51#HFJw)cs=H)#RGU@DA0Dr(4GO{4#gmz0|-7mYte+Jy3&>=gIP>7 z@H%=ybfKA(_y5|@)wZmI^I#LNFjz@1&(Ug&ZG#75;rg_VU$H49YiM;i0%lp}rB zBOMU`l7m`$Vr7_*-AQR+ZK2d`!CZ6ZmdUXvmj}ejAi4*BU?%nvGv(@pdOC-rnJ$`s z*RUbxwkbUk;aZc8TqtkKWSk9bb2*G;Z1Wg7*Ex36ao~CFk z?lfPV_KkzcH}rh=v$J8~d@kSCbmx+%Ox{&(<(QkT!OM(Y(Th_FzS`D#*3+sj{4tXt z%EBx!8{b2xV??C4UANsP;lb1kcw_QwhiQj)gLm6b@;l{Oioj}f0Lu9)(#3SAxdW8z zUeFZRw?|dTO{f>FIZU$eG$D!_WNTYEIyi~hxT5)|huaE|y9oo-^I0`&Og_SZs7KY4 zE~uRJ))QrGi8`>1Uh~6vt&Q}9V|Wc((z*|uQlI9MRRoPNV0o?nvww$io}Idd-RXNr z;u~VR$n6v4i$OCJE`4Jk9Bri|3ifWe8>Toetgf-i-2!ezYG!6Lh>KU;U6E~=-6EP# z^;uekj;K*K6^1USar1iGF4556a0t14LnTHr91ZfPEQa*+^<_dJTg0vGbcYIY9qb=c zAG;K|-fW0Fz;s9rJ$kwFq0UCty{pixFMYoY3$fJyae>X@?T|%s5EJjv0>sPDyu+zb zv#>`mPtZg^@FAF=#=zbZF0nRaZQGrYSRCe6D3dgR=GJDJY=dgTs4CGWkcC4L_fCee zTR>?U&#QE7ugO%!rnB0y?HAwgJT#?5#f$*AHL9kxc&%Ll`)?a(N59&YhqSCFf1 z_KW=_sF0hTsR!_$L5YY=LB@xE7G0~m< z42{sXuMznipqY@7J!$H3Hs(pMO-AT#67l-lBgM%c=DU3I2$zr$wWMU%US(}|+nq?_ zk9o7ONw3OLWEmNjO=481 zS&DFFo0HIXpUCpd;@OCL!?7U6$F=+Ac>48JqeS{sWFiY3Ar+0}^4wn#$)um|NJkb1 zhH`dpp}w8bWZi4sUHE46K{jNi4K5&#xS5&#yQCpPE<4%!JyyMRnWr7a8uM^b>^TBZ z%LM($sc>yZ`Rjn!!!-wcOKnmO)#)End498e6?lChX3lr}L_p^!N6T08Q@&YLvJT}4 z{X#u%uea9EmY0_n*}**#G6N=?6k9ABo$-ktO4>ufj2V9dTs`C@N z`L*{%rr${Jap<(~iUrS@;`b)220~O}ttGeB%jPx(us31Dts|S8F!8jWdP6gz12gHe zQJDCo&0F*MW^J`crma0~bpz3MW66lq7gOSj;&)X7yhD#?0h!EFEk))Cl+!ck$jJT! zq;6EQT)}ET(9^W3$1Xo3psLb7***Y#gXh;O7KP~BAdPGd+@v>Zxv6e#LzJjLxv?Qt zD7G;k(5L3Z&DbftnDIN-_?~AI$l_uC>RA*JAtmDPq4}Fqe$&?G^x+_5M66!7!DJxT z5*p1D>7IZIp6E4PkDcwcZm`8T1frF}2O*aAPWrB7`O*vWAff~wZ*bakFu~!SDS2uM z(VS$vnm#Xquwcq%dV;^T+%$hMAKcenJQ3L>7eXOzswm0GlDhiUva$hrR8rNHQ(S%f zYH{&&c#u`#he0PXDmhFY{-8tLu*74}$z=~X4Y%TfKC-f_My6x2`HxB3kO_FbGIOek z6BqiY9B!bjYcbc`TDP`P(gN2DZ1MEYAM<+BafU0}9dkZDmP|BZ!JQ#4cP;v-5)SC0KmlYUw`jY-Qsk4s2d2Ls*$m$6q5kdcSq;@mmBX!n zK9!lOQ7IIQi@8w(tM=4NSUlO6iTbi(wQ*gOlhh9)1N0Yy-w@g zU@o%7W?C1MO}phrqE9FYZc$#o7R zLV_zCQVGFT{n~db8lFLc_eilHPe;N*5Aw1D_9#9D)kNhqlv!zf^=;%&p3ON&qQ6x! z`%?Q|O@c}f)MEXKmX^|^&dN^dNj^Z~uJmq&R3MJs(+HLk#7#(kvki`#shNHp0r>I9 ztF4++6|R^HE1(FM3eRJIzD2Tt7iHhb@%Ij!(4Q-Q0BDVnCqj9SKN)o-dAPhE3^ zzSsvQ&5y6qTcKW~V+*(U>^t`FSS?RZFpw6~#U&=Z1=fyxnwMkgkVdaBQkLCP2If;I zl;sG5py)Tcm&g;DB++BmvT8BOT;r)dvu0hTkZJf{3UY(<-voKB3)9x(jfr_H6~ zi>Rbs?FP1bkI57Y!&B2t-q(R9+)VTsS-JAYR)#Au`q z=^3C{x|(*AgWaQ2K;W{T)gS!rzvlB5S^Bs8=0fdW!Oa@G^qr`jf5e-2C;}P#j+q-oFl1{LAw4Z1{Kv~7Eu8~5zYdjZS0 z?vxLd&K-n5xmoC4+62>5qADw#y8N1h0S9E4ktGq)f;YYXA z?YFI#HzBx1JLLaKlT8Ncm?51ivV}cI&cdo!Z(&6WXtH~%0iXG9U3LL^5HdhD3jZ#a z<#TY5kt^Y;sb4&7kg7F@sOwVe4G{jw1=d}C9C!ZfW!VMP0jOhQP*W;Gtj74*S!*l} zQJ9yP@A#?d3q;K_o6{n9Q^kQ9#b#A193i)Vo9&nx<6Lc?x=E}Ap9amNqVmdPI;zOkweA_ejmTA0_M5ve>C zw*`3w_br`ut0+iCB0*@AU?yHuAc+HuCK5Fp)C-jn`7ZBvLK^S4e1;45-? zaR37~RBBo(#s#pCJ*JE9g|*opz^s)ec*J~t zJ8h(N;{&pEPONGI3;+6|z}t<^Hr>X{r2?M{R1`}L*z-Sh^+3zNBpjGkZU+oyoyDB@ z{PRqo&S^mJD?$1Kr)n5qX#rBuWD{1;uQe)5LjZD@e@eYI@sn9rHIlEsAR(l7`VdUc z5H^3BvmX!-3~5kSX8tx~vh0rwGW4a#QdO@>j#75w1{d>T)9VuR9|8o>0$o3KD0Ng4 zT$0&y7EWKFUJaus)hGm495wQPE05_oR!sJD^*v|SlJ-%pbOZ6@!Y-?qD#YqV%}%DR zRWsPEwDufRKC@r*?B;Ssawy`{fFOO^W<<{hB+cxz+9o{VrBN1u>0}zfbo|=h13A}F zXR>(~4CZa-6{^BGu#=8#!qc2;0|7QGKf89-qW>E>I>pzJ(n`x`?#~I8_&8mZY+b_vZ0EyNIq&^!USwR@`LfD_szQyUaV=2=WmRjz{e2oUa}tmkCWj zE__~vQ+$=IUQ|$E(kJ$tLa^W9XbeO=4Xs+J@MX&4p_WZ|V}7t7NXZO=BxRjv!2Hy>J! zV7seNm2B=o-}I)pTR1rQYosGaFc{QSWAhenkfr0r%VU{oV4I^6O zHgR}Z9?QvZ#AV&{cs!IDGkW!D*R`upCoH^tGBt@S??(3cak8_> zzp!Xb=uW)>%wVv}=g9%AkRjZsF!Kbr3$^@lp=XGa6D3k#y?OZBr#w(@($$B5^G|zz z?3_6j6I$qT|41xT(uBX@aCsBn7X^?>l-0=O8@h$3c8A*{NeVV%DY>ogeyz>F-m3=d3xTsU>abp=X} zb^fw>$-Am207HS%d! zZ-hdh@gNEKjJWz9bp}en7<*kRae!xj%6?2ZqdoZmF2*EhvJ=iXBc}7?!kKCqxQO2v zEbmaRH#?5kr`Wc&lletUWCVG-aBN1_ubX}3Fil7Q-cFyFS5Qh&4t?#e$07BQJmiw{ zy)k5U^NiBRs+ozjnp?X*7ZI@lm4{;^Rgyyh4AdVc3@4=ljL? z0X)iqsB4fq#_Hd6T-w3uG&WPkQ{R6LT@!P{d1UDk$MF?2Ka~gNxb_)!kSUf3Wq&hQ z$jE_s*A+vcE_{U(z z^aHm6qPtHny4DEy_~z%DJ;yGf)-9YibHRmUf>=)Tj0ROq!X zFY|Yl>Ruqm7BbV6=(+5MMFn8_NE;h_P*+K){3*ycKT$|I^?;|U*bygbt&L7OhQ3N-5VV^xR`sxxMS;f}UCKe=7TeYH zK3*5MET*~gJIQ5Lv^V+NmPKr44N2Hbg+@Ea(FhBco0hnoiRaVQ>0`xu1U^@c#p-eU zc~}!_xSGH$m(CMHE~GbTZ(HI)UhI9tOj~fa?67ab-Ec!n{@8@R{^1>4Qrff9m+p?mfChpPrJ z!6c06zH&5h6RYRBX}h=NX$1_?n@M^?LT}FGq?emfW4>@1+rPqfK_l$R2G7Qo2xkO( zWiB1Qm-N9$nsVZIM9VMo^_a!RCKRY?b#;&0f{(#`m8Qh;3Bt@1a5VXmY39xIG3Y-{ zc+*c)qWF31imX&iER6sG^Vnjlv`|RCUy5q#ZGc9ny(>-V>z^^jmp6;;v_~olM})NE z_^K_dQRC92FT6@GrYc?`m)7MZPp^K(Nz=<8Kf4PINUlo;r%MgB_YS8sQdWiAPfpD5 zy}p4K0h}EAdX=<;$Fx?fblBb@9*=RTX#X^X$V2jxqzf2ChRu=%KxJ9@tuS>0#64h@ zcdv3|wc;Ds+4)3CTGMNKvs}Z=G~Y1wTgblLQNThQGyT*`bm5G^G4pEW^FOU27bI(Y zzq%nn)=rHwu_Urirw|luMtu{!;&xzZ*46kxa;##-J%=VVa+SVu>a~adi{GR9Xz8Vl z!l=`thaxt3MSemF`Uez;&E=wimQTIv@;mwd*OQ%r{5ao8_Hq9VeV`f7Qgsld$W?pD zT}@%vR%-70_o0AD@r+cs_jgk1PKBoJh(;YxUMU z6k8m#mg8;Xwe}7A7F+uMByLlq&QV0Z`Vu|!M~@__oIGZV2L(#~TKGiVbY7-o)u&1N z$o~hxKXg_6k<2c~$tn+60xeN6hz}AQZ>W19>Y-1~YEgF{4cfD>?*V!3FLd;0wlvLO zUSGDmY35WsB7haubed+a^Pb?EU{$4$mtNeT6&*P+y)G5Du-6ij1KVSDD%Mgl#p4EktW?%dJEA%CWj_y=0&SmvP2V3o z4`&cF2eIZgof*Cpb^Uuh>7VGLXFo8g+yxCAw#@Xt?MBuMOBOYh(>2vVh{PsdPSa@t zQIo@&x8E?@Q}Xxa0R0KfIb@z*tdMze(8xe$%2X{&-3KPg|nVaIPC1BE#&0Dsp1(wM|1WsG_`>) z1)Hbkn4#>WF=&fePQB^7Z3TM6XFSn0k)I^gO&6Ucp1tc#RQ#%5UuK2Fd+r*@T1^fX z#V3A`mXxzhW<6I-BUe=A@nt@i2ja2!+p7=t7_2V~)2684dR!KM*GQ-yi4Vq0TD~dM z;ig*E0{MSjKMb8w&yWTcZq!giuXN%AuPYp`DwZDGia`mM(*r>(IHt(r5!;fz?*uZx znIe-zX_!%^Mv4CVqY_#OoO8SqK%K9+ZibR24Rh3cr=Jz=-|P2S4W4hS}Fsnds^jS&vs{ZcwK6+h}E zt$aG8Ev^p{DHZ29$cd&jCPb7Y8N?U1t$5{D#a^H%7-}fHyL+{I<QE)$M8zZYJanl8JCw@M(8~_ zQG%+o90oef=N>(}G%mV4Q_=x*$oZCE7pFUtZCYdI(N)gz1-z@(S6YD|<2Ceuk!UwJg!-hWrnD$21nchsEPE1NxMpvO;wRR1GTqUgt-E zubAq5_>H-y)yb{~GWX78dFPN&JAw$^)kuX66HWodJJs4nB9N3zNmqBlZ5 zQ*ca}_qVXu>_3aqcPRzKxdolfJa6+mtL1}wImT)^!6sjY*Su=PtlQjtGOr7rXbe07 zEaAJf0Ii=E8<%eO0HL-@@))Tt&l-zCnyRkqWIqWzy#`qBiI3&IHK1bu-1R;X3O(FA zqbc3{l}M><>4k-T_rE^ocUf3Ka0b68V7SWtR{bnXZr?KKT$y`2z(SY4KfZ&!E%b1X z;aD`_UdUS0HELP~udl$@P6~CJjI&>~ZqxXTe3u8f&`Aqi18QNc{VL^w)2h$xZ*Jm& zkZKi*<$8z0Hv|seXc7Q^#qv`Y3LvDuwThbjCu;)-ilRA!R0se-&qM=6)dhg`T#fMgNMLAA1%bzmqZIo4b zEr8G%->`+ca>@oY6n&|rYn?9ElIPZBT*&f=kW+eUHu2jlhZo1+i^HpxSv?^R%j}1u z<56rCW&t@)d%OdU3vu2hib|Z>PKIkD_Y0tE*f)Va2DP7YX8yYgEg;n@J~3X&6@P%g z6cbJK^irWuI0XYIKi^-~pCK$k{tC$5$>Ic3Pj zBPzaUbkROCK!>QYWnysp3dE7|-W-r->uMSX^XZw^aEZY}5R-6?nXBjWeTIa+L^Z3H z&Iq0R3=1P7+T=2;4>}ea!212d4kLm(z@-+VpgtWgDPy;G&brJx#d|LNZxuxx%!gm@ zR*LUmUN6H8@%7BdxIxb`OuZfKr=JchHGEn0iH5`vGGCMvuT*Tb>_BhL%%Qilv-AGr z@sf{%r)4Yj7j?Y=T zs?F9PELR#)Iva(^L8V3L_&CazT%FP%6%DT$IKs6(Sk3f2Wmy*~0yj`T-$=)k2KT&D$xv>GFK#?-CZDk?dMoNFlNe>b?5)(0r&_Ys(IS z>O6Rgk59`=t$lEfhgqzuNI%c%(*)CGpITxi)PT<<&B92jnjHt2{!`$7C7M@}*L#5} zyiFc^xJGz_H?YqX%cQm_Iqi`prQ~{e3|x`r+d!j){*p+oc|>sK{IU{*`Vw^62FQx- zCd|Hk>7Q8H;JFu+08h$FBEm}b{AA35rCgJ(sayFJ)9`Y&Bb4<$3s%bAICpHZH14Vp zr|JaOe|iC!{MTms>~JF2q*|JLbp%gh?u|ffVc5}SY5r@ zY+c>*!?SU0f1+GB0$-6z%Y-%G=H5LWaC;RfcC$KHLa+Q_jMOX9NbmKNv})p|$CjL; zXRAeBV^UFogJJ0}6{3ju1@!nB`#*mcB3MawhB0uIqj_M?xT zYY(Ho=YgxIVXqkqUz7DW3CUy;V)iwySsRn+oDMx@@mdqESZbtR-=2%kixJq!_?qS+ z*firof2-l#xi&K&8AB$pT80i8dtak+ZR9o>R--ynlOBoy0HQ@?dmNQa#Hbll=h>Z%LZ!XierVe?z>V3Ajxm<=^ z8t3!FHU-3Bf&Fy!UWwHKYGOxoSvJm9@FX6nCxZ6|vQ57@;@AZaO{AQu0>wuEB(eiF zL;oPMiTTa`wvPxL1apSYBj-@~TJAN46`<7vzShH@Ngk0B#rwI${A?1uMSu0OWn7Vp z!5nE>%^o(|Xcx=Fw)r3Y|A%m((&s3FZU2hWU|Btv05U*KuHa^!F;!XH| zlEjGtju?a}UrE>ot)PVXg9ZmnY zj_#1pq()ypZCslDae>*QwYzz4T%FQqi#@x4rmifu9q06Gp+F;K(YW|fv&o>tOMZta zX=|FRoN}hs_=?(aowVgj9T0Fhc1f59=P%jzqeuMPqi`~HsOj<^aDpt!e3+$gXWiKu zMK3qaGKU?<0t?)rNROioeqg!mWdTVK8Do8xJIbYhIs)cD?B*bf7oV*>tr!4K z>CwN*a95o#)q7d0C&peY1JatWtq4cjK~fFgm#Kbu+u?VXtxMu`+~EAAw|9h9C$pfl z?(i|?i}QPPqPsmi9Sa7L1?9yE?kTmXN}FS%yvG{0<=U5MIvXBRIo}naZjWpX$q7nD zTsuq%OdgJ)x|{y_`OuW1AK=sel1b1ke;N)e|%N>2?B4- zKsinH;jaO{EOkSj=is$P5E@vzpnPs~Si>ShWjf@U=Cfnmbvhf0USJIbi9B}?sc!t8 z@MS^$_e5kcDdX)~O^~N1p(v{%Pk7F z@*p6ARI0{@a8-uX*NKiUBvVD3)Tg^2&b9cBGgc0@lZr4bo%Sf*8Sl85&1Zq(DSO=! zLVZa=95}@7h#S2&L^KsY97Iz2q(y9-VS@>~iaf+$?b8J2Y3j$+3n?j^_aQl4!^d3#1l8nav^6I&?GLa1L3 zZCctPShJr@S_K*}(!MUY53jfB>Q@_OSDJ0x3zfs`sd?NlYroTs9(E zfqiMXr&w+?3Z}?26P9GnjLoROJTi6xbPwg2z#3p z!pUw(epxZ2tVWb(362N1;D?0x1SA9kOa@FxwhL@}C0qg)q=$qAN%c%ibz_W+ue0>T zcx$SvbnDydLiMxtDnM0bP3nk`MZL7Kw6RGHtx@r)9~VmKt&W9h$=`0N4mD7}lvM8& zqQdJ6eD@mT@=6;?WGsx2*th9z;41!9dAQgc6&3FpfTcG(hS%aM!=vj@^HPSg)jy-a z_{cbS>b@!&Pp!f7G)*LlptW2K*&b%|dFTUVqXjw`uJ{`l(=NDaRb zWc5d@g3&yu9h;R#?t_{TdpEFOyQ*2mQd|HQhjNQOzb($pg%|qr%IV5XP;ONIaqie6#$t4^5nC|AILi*1}KZ$hlJ< z-QAa1jZv-+yriELq~sJY^R!$IOW8N#ZOj*a zTn$7=7CgM#a}ehmp1fR< zcYa9)tA}xM%(Z3}+KLHF?`i{_Tc6I`6TxlsP zIn%onY}%`~Z%b`>p@>q0CXnD>n}zrouQX>-IcEP*Ww^v!Y{A6X;HqoG31>&lD}_7- z;PmG;d$*GS_+^GZrTLuB55SRB+BNgO>)s54+9moWACaV4Z6uM$wNk0H-;6#z@9$TS z`2QGt3$Ut|E?`(eLb{Qb4(S8ZAl(NzbV^AarQy(c>5%U3Zlp`PLAtv^S`<)F{|$J( z_kG{*`~UxW_H*`}y=K;|Su<;9O|8YcF}q)78OO)p62iJzt}z!=sAkSoZ8U4(xk*i3 zb*x$Tz3z}#Ql|>ok8%cjg(h{TsRicRfu{5GKw?45#G>1)o#Klm(WRQ|IAqPbH~`aS z&Fy}!*NNDrTZAE!b`y`V3K5jlIVf-2;HiDG=K}6mpQbeJN-a!~7cVnVy6IuFGJR*P zftDH22)%E~u!nUwo056-EPf>VW0kXFLu0Pe207-u9DYUH+3vzQJ}W*%F#S#aS2 zw^+w7jvExss(MTbEx*q0&TZCcbm(&aIZL8_or1ot<`rRWw79Ri&B9@?6FU^GQ=piV zJBnV_ke(Xbsl6mZk#l2kTDyI$O%&|%IjZ|{(C2Z+lwb$d@TkTw+LH;1-aJU?O6xw| zKNeCt-x0LF017WmvwuGQr1JU4{V=8QB+M9E^vuNT@E8j?KoNBDK7v3z7@l#;$Ui!LdIiVUnT@>&_w{FXkJU1Gg-3F$xXwxdu^wPVzSS3jdLRa$e1+-&qlB22z^56{+0uxDP;KFan; ztpgwKduw{Bgk%ZyquwN7mo9cd)KQsI&oOb#c&LZO>ROS*xXT-*MERY1kyQ_9`C`Hu zYPg(Fnobe}#B3J%1e(L8D`E*fo>$%0t0<2JUnbhqtKXfM5Ou!>kRPe+}#%F>`xvs7o2 z=w$pd|Gl*5U48i2OYo^QFYIcO#A;#WHJSx`KBd7-jl4lcHEZKx@G^=AA8MtQ^WhRn z+I7E}?UJ`oo9$%TJpT_buZ@g5{)c=OoV*`ZGk%Y%d2`mfABCK{O2MMJ*)zbJp=IM^ zB01A!XSwLDG((_g;#!Rfq=oVxjJDA;AEqWdJI%H{A#+*gS6i*0#Qs|l1|;pFCWZ z*#h|7A_1tlmo`T3Et_?@v6B;^I26BSi0$p_cGa5%i^@rRNJy;e)W7gPPZ|=uC$5e{SMj4j~$>}07rk^{Lyu*otzF24uQpz7KivP_dOe`U#-SO zMHh5-w1g*3NX-raW^#jziY$p<2f}u#Bz+rsQt9_}KPZW?fZ*(3+V5jb9a&|@6%BTS zPj5W_a5O-LmYmvg+>rhQ@g;v$YzRV>G?3vx^Cg^ zen?p9kCBiP$-J30=><0~>8PM%680) z@{s&lOLR`|;L%ZG3>QgaBWgc<^{8?i(da&@pg8>eZ}X$=t68%>sVF z2KMVIS^0nj%{;IQ6Xk3Ro9=Zza68pXBSkB|>%SUhvKbEsKJlSH0jY&&z`l$SpJiBm zB1|Zm$Ey*4Klg~Xhk$hPW7BzAM~eu>pKf3^KLWK^W~mtMFiqt-Sy;%OL08U@yB&wbAzS72Hd8k z$X}$KtEh8b@=W-fpb~%Df48&AhSgT)=I{3NZgMb<9L8`M7+nf{Yc@P%VW=3N^UZ)b zEO(>53HOz>o55k%e{d!b7b`X-Oc+u^Yp+aKHkb%lbO7&Y?r)2IVBntY_@n){-D=2c6nJ?uqj0&wIdF6H^{)qJ zYfC39V!B^4fpxLY&ntxLwJZ*R#cwkjGga$jGJ|l(km={mOz%=I_7+x`mdlTB?nKno zjA zNR;*K;jRC-FglZ5X0wod@S097m@@tJUh9PHeSA^s4}Px%_9Q;OV!x3v3-Q{bxjQbk z-7`t^OQC0{=j<{MIU#MBd?TI7(UY`A)Of9eB6TK{jX2Fh6|*COCdh6)A&W2x1-X#>UT8MzW**Q$|TdM%E;47Yz%eOLI() zd-za~FR5-GJAATyjaL^lb3{ULj~;9B1_uKAX~dax8>czlb}p^8&P`8`8rG86vx{wF zGQ{xYJN>l2;R7__tnA=-Pyaz|zp99ki|K2dYCXNxvts+1!v0aYsjW+%%fy5q{PF@3 zm*`d3q34QU>p|+l14Y_N413kq-b{FF0|U;9yQ3RT{Nq(k%~=CicG3LPUPY8|D)W0 zxK-{G?3Mw$&kKOqrK1nlzbu-J!eEwRlV6%eD};S-)~68G@3>w$^bmqAo%l4CQ@QEf zG;M=ZnnBiNGe&(~HQ+xJ0%qWUbcH2n+g}g9BLX8>doAipXBZ-@J}|vs)D2U~Yt=96S1%pEou|wc z*}hh53RqnFEM_m}mVwRb5Cg#_sM{J+^5Nt>ygNAZ_Fd~Y-&+lQ`}4N!lv4N~66!IB>g=u-SB2tUrm^X02}3SXHN4C9w3L z(%)b}CuUJ05VEEv`0$3qLHVhkV^NXTXH{xIgSlv~KjWzT^`NFX{7A5=5*U9y zy=$^n_s_gl_AyfVWMxFnO0hFL6a78rdL$@;x^89)qf62B*ItMQ6+xhCK^rTLOwX5= z+w3OGWfk1xtlCtfyTJJ$r}K|UpYcgviEMkW`VhjxfqS6#e>|I7g2%D=Ox-Dq!#lJmxa=9^7f`!|IBYx&|> zp#1Ye7tm#0G8Sp!PD~G~L1{H_*L`B5Ih}~ye$Mb0HS!fb4$+6WMesrOCp5V}F!vl8 zNks;w!1_y$}9!3 z4|Ut$WmSuD9g7akTH&^GE*9HlGJ?78h@Pr7m$Q}kO2NN=6*vBjn-N6Keh?x2)!TGf zMoM9-=JEXNfG}cjjk_^weWBW^A5lvBzADzV&++TY9hZe_e-tcT8b|Lp-f|wg+$PsR zdz?a$V?&y|G#uKK<|e;nTQyyZYF$P^KBY{?|0>1`l5uF#0W(GzvIZ}zUI1gyrU)%! z9<_rm?#$HDZ}B<}6SpgkaOm~^?tvR^U;9}5fFC;3q9pwB=VG>PUBpG36#*XaX~oEg zU`hAaz(4{R<>qT3pq}D=zna%4q>w+g?EfNH^<|g4&he7ta)r|_Yxu%t<@#uI{i9cw z&d*kQ>`RZAc)ti}HZD0mtxLh%Tr6|-u# zDi{$@_1LB>5Vrv^+2~JUo8h#p*w==vS2r9sMEi_Q2&%W6kq2z+cUEP&hNp-iFB44V z4JqYctEk?dOz1lizM$ASz>PSwuOC}kF=153VOjO@y81g&?u6Pdr! z*i=7@Vm=bc`+jK9`KeSoOBH$9r8(!|RC~IA`a2!nPb|QU+XMA_egqu%Z_%+LNsQFr zqN7EUEXBXY-~JQ7|42oCHg4dSV34~sbxrrfZOZ#*NRDE-ChKNEmSQ+I>+T=$8jvFx znN(~t9k*W%*O|-!BH+4Ma*+Mh$;aGoGW_?e*pOu*uiP6pZcXiN*Hd#M0>E#-_&Tew zQsW|Mk~=QL;F3QUtd$zb zJoe!CWcvn96p1hL{bv2YFCSf}!n2&NU<_t14QE6$MEAcV-6q-hy-T_8y}Xc{G*&Jr z)V*B|lc*^c8FK8nsaK#FQtP;>1zy0v|9$<20k7XN|CQk1=?H%GC^gdj5CQ7&LBmlK zy4$1t#krVMk&v-qoZL~;g02ABhg(c%f)AM{n zEtOCtATDx>y5$v=%c>$@qCf@KSwwjCahjqRmf5&(A6pX7I=3*|{PO*$nNUrG*hU+X zO#x-{`GtU^X*0zIo3;j%eVn?*^b=Hz zFkrke6~el@7~32oBo8gZ&XNdLtIK=yOzNF2J{MV_?6+vv`77e9zs zD_P`(x)^WFp_ucB(O`T1rEsZ15MNKHm3C$(+R3_TJ{7J>nedm{N_~hR?A2$rOTo^ zV_NsCoSF#iFR;${O+yA zE}gs`%OEY>RMcc(6Q(U}S2IFN)jpl&?n1eC50~2m)!lY}G}o*W-#i35i-*gD z@aOghocPhUk_|0<=2~~uXC+mH4DiDKEw7W zK{K^X%lVT5$6hmcjDz#};kC4oQcj9fILY|c(v<{mykJ;(U&7hWq?r+V#36L-zIj>X z^D*s5H=z|Vt(z}-igH|HHS8zzF#mRucIL1)fx47^_JKjoq9^)z=14b|UcikmUBqj- z!FSCUAI5(cTALp!7F<198j8+BF}^h)Ae3gtja8tJM7Cl=@%R&f|Vt z%45k^lqj_Yr9jm0f-;wei%k1UvdiwSY+PHYF*~S)mcmp#IL0*YHCCR^3x@jc&Wy_T zX?Cr;)z4ElU;af22rb8&Xp*m;N->PA>&>w`LCt3V!SM{M4jBsivVCt8^a5Qc0aAY_ zyG0&67QY@ihI}P}0AAj#Xh&ENYkKC5l@}Dq7Bnr?h67k83OZbSn zfjhtXR;WJ>>YSaA!g78nFO4pwD4lY+FCy4Ys)HDDyc^ZsEGM8}zAvQ%?J!B!SFdvC z`OLmA$E!Iz29OpN$uD2S(7(nmi`<95quv3i{X^x>??IexgJ2^5}gWlassE>ltR%2#=72 zE?C5+oLSy0^St9B6zI}Br)4bb6eLTL*G4I^@#*o+7oT!OJ^QPSd|g%qNNn<7+f|@) z!iJO5ixo7WeM#ovpBu)`=Qncyg|pN>Yj^R;{3TfKk0c%eHCU}v>$miq zW=~)n@RYiF!PV@oLDf@|V?OMG6vWZwV8yyZJm;Ri7qN|u8VaSZB&TX0NNV0T*|J-67sC#Z z$Au4OdikzdXNtNbtF54KL$b0g_lb03b6JXV_;?V} z7+p9rJCl43$9EXi&zw{!8W>VuF@h)+y1d3-mMfPL=#r(cPqa8xc$rwL99a%QZ+h$? zLf4XuM10APc*}$|Wz|Z-9xF}^pBLja?Ny-zn~m&Ig;wrAU-j(4eR%|Ev{W?6*ao6a z`^nC9cou}YA2zfhU#`n*+3aR%O!VCygrrMlG;;+QPM<1tzC+9AH#Idos371;wY%{m z^pK&~r|v!|Z_)=&kz-Ghl(){|@sN26)T4;h>F{`#DAk`d=cm~Y%T69c(P~SaWS1sf zj37m0fHAlSfSGaMV*!mANBQpgq=@J9i=SBPabR+gJf@p4`PT=47qIl?sgV-Wf z8t7+-6q$w^#rL_BIf4fj0``lz8l^`#6)gJsUI>6f{dkIo7HSXSEbkwHMXkFiP3%a# zlFc0)&jXA&0{VWC!u{#y%{haTGu*q=&CBj*TR`E%Z%-UcQmiuo0GjT*v*H_CV=eV< zWB`4^29D`4>VVDFa3i;h?s217X@$^;vu+?+I&iYuixUM>uVw&*udVu`) z*TMtjhwu*`B0R90^&m%*_8wnzbRoM9bgbFB=#e8K0fFCNeuM751OgH7;6RFXM;B6Z zLL~otIHC0Kz;7IP$ZjL+-($Uv3}EfL{h7WE-{xt1nR)=Re5)1pcP$4!xb%-Rq7RQNXScuOLPQyl>}5%k8Uu?UY{-0~0={eeVu{di&)r zM#w$D7Xa|L-NE?vvS#lJ~pxw~Qv$yyM0lTPDZ}(QXq+`*#2=1_Gk|w>bbA-;>H(0p!snhye%WVJEeD zPxc*IxAX&n+`mh6SFGY&>Tc8ihTg?T??dwc&0}frvGrdMHo`!np_L4b%pF;V#$4^? zLy9_{(}~>jVjUMKhl_I-5@~kna28`Acr43lmSZB{!>It81;b`Iv0xP9b>Sg3Hf#i* zhj3s^19}m9t8!W+U4f98e1x^hCM-ePMGk}@--pJt4|7jHg${!%M~E)8VQxmOLkc>y ziC?8Wy+g;k*=ig<(=(%qoe>B|plU{dKd*ENO0=M%9lM2gHluSq5hS9OrNOc9&Sf`E z?P8Cjb*VZ227BadF^vW;?aIc4nreDXIU6K90uWN#lx67hqa9j zhp?YLgguJ8_)eQ>-`-sfFOVL%=X2}^LdDJ6NsZjyI&x&Tl7|<7N0BuegFa@KTZjt? zSR40D*K(8vkr1H1=agO35+urOhC6aJH}=fRk=RPIlsUH<8hgqQp4dMoY|cgcpGW$i zFI)eD-iGf%eZKVhWbskZ)n{2TP=%WdE;+HbVd&0C_Arf8B`1H!7YMM>a}(ShLB zfX18`p1~JHKBG9jt=?;b{KO!!>pGX2fXfXjExa_`au8})wC0>@(TS3TKMEe95T$w^ zzvN$IyIbAj%zWso8HVlMmfqqLrePf1#D=pNT1oTFz|OkGWM6SJ!6n==LRf1HgH2x; z+#@~<#tE9OT*?zUm&-gs_lb0&eI@cQ1rctOfWywsmDscY0DJ`ix1K!z2XLF>{{v9- zH>#OGdEBPhARTVeQ+E}MOCmxS7te^a2zzJ(6deDnPL;lvoQ=eB2TnFdsC+x#h*H@TaFU(!YI z#t($xotB&!U?iyU2+tSEU&c(xU5eJoMS-2-RWzsA#4z)b@b7 zW|R(_CQ0Uy*fUvCz;ux(Ka2<_-?=1rm?<61LZD$ry7Wk)Nl6}8IoD!$Yl=Yh)f@*O zJzyz|fW@vJ!!vlTpU`<6k-IONQ#31>vcMMN1eTetn>u9)NJiR+e{?u7qOd;so>`uC zyfux$d>~okt+Ff#4Z}+h(Q`V@CvFY|S7{Mu_Y598n=p{w$TS|-6mm_nWsV|;P3FEIS9t8L=+0~~va_uztIv+Hu)wqi~FNM?Zo|8VB$TpKK)Ug%wEF-@qk^hTttO`*srfXXg73 z%+Jr@#j2iFGXs5|2AR7MUYI*II4e=9o;^P^CAi2KFU$_tjvVJ`es0hA5QK7DiKRCp zb~}z~U|i`^_q}%0wtCpS-=j(Og}NG0fONuvDKRPAoDM zaJ;vdni?PFtzOusmWKC9;;YK#n}i$CR7f1-Y^GSa3S}GGB#P0MF`hY9JO~k!(dL$s zVZpkjHw{{$&5&*x82AoLB zkug&`(xCm$(D--O>6_glwS0r2rF_}0IFsk^jfKW_ZSxE03XD-aQqIq#Cr)2Ig{N{U zC$?##&l(mFQh6m>8VX^IVycd0`6P(+EY<=i`nctwn;;A~w{73=tx6_M<2UZk_7-_5 z{rJ$suTm}`u$EJ|B{T758P4?OG9)*}9S$K`ePJgJ8}OT2<{?BIAbV-_k!mAk^J{~u z+2akD0I}fpOC7Tt;aL=88V*Jbu2Z*nYV>BN6n^I)Tht4937`B{}KhRRw=QMa=vh|ARf^6Dn#(Oy%hNQEZyil3HtOq|gqdmxdoZ zjLc9e^J!`QFe|y@>5?6Y(FG7Mk_z*LN5KlLbkTSnsJy1Tz@}0GhI#O0=AVLR-k&O?djOx&Ds;aj@ad5aJ z^)GVQS+WLb`82&Ge+oz~g3Wx=sFCl@H{11?Q)=;+^nh)Hwd4{UN(B)#@sKS@7t41e zim7;U8lbxzdYBnmewN_@{oLu|cnBgkG^0AigjY>46V-nQn3fP8a7pp;{w}J0<$9q) z*@#uf_r(5lVJoek)1E3@7lwpArTi?DeYk@DvX-WbowB6qToBp z4Jc&aCQnq;6BA(0j8sB zAOKj#TR(RDR|){|52}9y{v!_nAo+jH{659M^8l#2%>$qcNb!fNe=@%(_y40Df2jIR z?jKZt%5hure`o&Ru{D?U!Z$9#EXP;#R67y2?fbr%y1F`2{ zdwDs1*Jsj+V+&}u5i7=<3f&f_;j4}L{83nm-#W3TAT>f!a$E!hmP-i?5+YO(JdXzsI$;8SN)ldi7M)JB z7GDa;+*WghZ5g@djS>v6!zEy}C=poeDva!4A>stiBjBu(=zwM7XS=);t@1{drriR{ z+<0k}H~ks$fp{5qyXfrsF9S#cX#_UTd2TbSKK`)w(0!&A|2^QsDH^Lt#=D)h0WZhBf;;w zq%vDj8j+GPSKn@Tv_AwbZ1M|56rRxIOVla`Yy~0o%g5XqffrnlrRfSHft^GR?1@hr zUxw1p6=6G!JlQ?($m#f){FeDyh+Ek->@Zuvd<4(Nv**8D($T5h?uQoSg@YX)6Ge5U zXnAS(4O|-7ZoQQZTOC^9nRkzsk~j7_388Tw*&X-`@E%i2p^hJUUBgR{)tWTn+%ovn zj&Q~exf)mc*MmS~ZACA&887l-ImHU>S+f|&UKop6fRvM;-q+bY)c5`bG{~{UlW`Vs zwqg5Xg9D+vvB^uCCeu}o*jHwU7JxZIDwrloTLOF~RpN!iQ~Q&^G}p;?aLY}jys%Je z$51zAw7%VCUv&$H{^@xIzXcVDGr^;;I?;{fn2vtG1G~kh%XJvbNCK!is+3VNPv8I* z52@dc=;7$opy5INb2fAK8~P>LE|*k$+>;117m>%8SdcR`chD!-*)%~cPc;WMdP?Cd zMpc!;7ILRubPRFNQ%D7T9Q)0aa7w`KxYr045z!O7z6=pFz!>Z<8vlNa*9e{~hoCa4 zYo7sa^OhtgAO`km(j9V%e44(et9CR}M)MW{La`kHLdPZcg9<^iIFG*fiCzZO4P;Kc zp?Mjc7pho>sUXbcRSdD)+!(eEFgrZ~^X9jIFki8MX+Dl7^~F9r%*Rk)JCA6{Fbkpx z_`-hJBJDkx=tXima!c2s(Y|>xqa)-{9n|jD2 zm+0|ars(R^9<%khf-XSCcN>fG;(nn41y5|f^t`ILum?q1orEeZF(qIldu z-%RtD(L(&5&7wW#6$+0Q$p*xr{ru#E$x|iQN_LXo!>XiYK>I}h4CCTJp-B89(@)Kb zwaUFD~Ff|3Sh0hj{-Zus{k^2n_4RxWdLa=K2qPMnH6%|)(oa2??6?qYV^bsVvGMUi?C zF-rw*w1pmvo zrwQ_b>u#p8H&t)9&R6K80YhK*8=!n^qGnbpGjku^^VUSiY35*O4;3n*O;6fi4^k_G z&SIOMy3PCQNr;+~V*SuPaUpZvbm>M4+cS@}TZOO6IOPp?z5x?4hXp=9A>~WZSjQRZ z^T25OCU|4+q1;U`h@tSIKmzX9gK3g!B-HM!B#(Y?b}{$fEdaXKyb(nAk~?32THNJ^ zH7TW+HiJ9p|^LoH__hyBl&6BtREdA52cN?d!*wRsWyzlKz6VN$77Iksso}`>m z;eO!tdG!T535ooyku+#s;G199&Zdvr@G^D=&#EQdpy{s%U-L#k(!J$%+O*r?RN zN^tJJN({0Qr2O8&{cTeF$}4yRyp)(22+5L)^kJ-Nn5GYzi#}D`=P1f&tig1Rtto9u zrR3v0%*`2X#Xg=%;<8u$mYpLPQ!G{jF=GV5#aZ^I29gg)yOG}bjXVb~pSbSpvKrGc zwYG7~GINS#0g@wM-tsM#!L~1TGi$Gk0&AYlhw<&cLVel011hgH8ah8r^}mvsD1x_B zEucNmzKyb*7MaSw@}b!8wowZruj46`crL%@{CPMzD_eJ3=$qb6=W80dGSQO}rt_E1 z-G@k;Si@-yY#FIm47Rg)l5dASL`@lf7RrAg2OVIu%K3e7!C9%4{#q3HY4dxo{Pzxy z1O1z7V5zzcr@Mf>U*MZ@H?Q@zYS%(K`P6AJ=>~ryc`;iFKpn1dEtWP4PqAG^aE?V> zKe^%iqqN^QkSiaPLKF?1qzkYwhPO8pR^2aZS z1KSjWO{hFSpSC0b)!mLu5r^}$j;&O@G_GBNv0^aTUX3BWl=m`tZtNqqF9*UXd=&X9 zFJ!jgzjempH~!3k*n{QDoy%VWxih1LTfOk*i@ z0qyhzk7xO;$<#VAA;3Cb^s+@s+`W6tT+o_P>LCC8BR`n`avLlCOgv;atc#i%qv3q_ z@JuwS$$pfTD0%=eju7?u z*>E2CC;?BQ!AuMf6m**G8ePF98DK3;o0UXmK0{Z1`nl_w-AB2O620nLWUA>hQ5bS# zNoCfHfN!0_EF2h6eZritZFd`Ja0J`W*EGgXb-iQ86Pv&ajmH-2)3(sPmmm;(_o@5I$^$7WC9!}j7)dxhCsi29 zFqf!%51O=l50)74RuI_;3Sz?@>x)CTNg_F=#_{g(J8Rl3$31CUm+;sSeA>g{hk*t{ zK<^XZ-SEN_4*>LpZ-7U;K*KI4>`m;*gb;Anp0(iPSyFl`ycfS7Y++G-GXpXdw>vvL z^{rfTln}xF+!&Pp9!PpdBq+5nXrMqz8ayY4X3vR)h@Dd2v@d*JIY_;Wy+_lK{rWuE z_}7COS0v)oWUN+;;UDm}xRP?fd^Ue&HRoA|-zEscI{$={0%r0s-O8(Qt zuSLMx2kvPqF#XO5h4%qOcf@h(=qb=WZhCP<$D_Yi{uDUGC5;eWzzzeLAPz3;4yDOfoAI<~J z%q)0Tcpy@yULMLf(yOvkLHnc@5jbR?mk$-Xkw92oqb)y?jD^?EH$uk_HJ8|gS&?44 zc3mX?wL_Jx{|>wJE|du32_u4w0C0CBao|lHjPk$Y09Z7xm6%S=V)yS_tJKwkvt=7a)TpQ^wWIC5 z(&qN5zmr=3e7P@azJ66J;phCSKxSYAds95Y2Qd17F;1j{u&T%l5-KZE;A6ygkNO7t zG8rA`sJ4?D6FFIRC%1Q#n;S`=B>i{P=+||z>l)UKAw>+sTd#h^D<}?jq$L!oZcfrQ z3)qK$m9ivsY)g~HE2-VLP+>!nFIPWsP&dCOqj@V1DE>bffEJ3_kYU$1$eb(v7`RCz z-xmmai0`HV_==kJN9h?@qbX>e*J^s zKa#?e-$dR$e=z^SPlMD3JomZWllbTN-?aY5{Z!~1@F>0fC(WNo|HQa20YJbX+s3(I4yfI7tPB1jt(FF;{X?Hh zvBQx@Jhj3zDNze!CGrMLjNmCA{JZtxp929b!40NjC#iub8H{jdW}ulc)xoIr)NC+d z3db0^nUR)-f~;1O5gD#o_y>Q=GkO8_q{Ny}W0WoXQ4{o(qpJQx0w}N&LO>+wX@jRqW2sKiNhd;CbMaM z^0jF9$B1Q}V_#R#{e&BPxnqseGR2D(F6c@`X#;ovrlDgY)2nnDqnOtq6FIgKESR;hF8=NWMKW6W^Z?knGO}F zIi!PDYYvk@ONM}!GSQxRbE;Vt*gD*s?8-2Tgrad1ty^Sz#cF&Y*H7t|Qh9|3EVy6+ z%SdEiq~^whPdIrLe<=t*&_37?JcSZK1ytj~k!P)4Ht4rQMSD=4JGCm!p_+_BGBJ|ku<*+@qx z^g8;KnUUy%ndpLs`;aJ1X0mb?Q5@U_0tazXm=qXgj^klYgaCUy%%?qZPNz3K>xqFx zSLT#FXgg6Nj+41263z5EK`}gjdjillF5AP#b6j??j!ENvElqK=dMPjy*OSYbn?w@@ zr-fS%(7t=B1tR{A{#QV2cp`G;CrpkEuC} zq@;3eXZAwuId?f6#`C&+4%d-qtqcrBP8R;+QJg%szi+Erls{i+VdA=@yOXJ8pB@C# zFqnH=j$-7cQ^~VKQ=8G6J@MyxY9{MPtE}m0y4bfu?l}1)ykUV#G!ReZ;hs`-ES*)d z>C&)(**i4x+{vebl;QzQ=jk0_8^`;40`?LJTI*zA8f8vaaWR{FTN!X3a&r|C!y(M= z&Q&3T4!LDbv~=+2qP=0nMTy*paSO^Ka==DmM~+xCT1+7)p4_|Y_YF40F%cOK6Ebl$ zz!p-w=;**aTa5j0R$k-Zj3lHU8Q#BYLmv zx(4$^?k9a8zO1%)Ob}vHbI@55j1)vl|@EK7|qPfjz zr%#3u(>?^5p(ASHdwYgA%=&`+n3+4u5i-vhScnQ}4!m6)nQ6k<8FVV*HJm!Xy{y1n-7doIyt|#vp4mvK$ZLd@P{M`IpWwkgVdubk7vH^w;pH0lT3ly3W z5`irpA~T{z3S;d`LZ~9x0us;=L7d_%Jm48FV{W=cykYDh&(5LHA(O;tIW^MXo(40E z;$bzD+OK{;fGXE-QDYjI=5%R1*s?e688TK`)3A9)9$i;Jotm545=%3iFWdh_@5Wb= z%UHglay-%it=Crqng;2imS98l%pnMP8vS9Xl({P&1aTB+uOc>_CN?r-kxC?)BfwQ; z%2bW46u}@BJ+$|o%k8U@jWCWO@1YY4QETvw_PVdK3g9WOHTBH3SgpU zM4B&{FMQ%g>FfrP=Pk|8zYY{0Py~CX=ZA5C;I1#U91n?n@U$Y0WoDiZe;2cMGfy3m4c#t-8^C1=QYx+EZR+fMB8v$y`}g!T){Q2^K3;h3&`8NiX_5Uk!jI~5Ho$eb5PuM0>@M!P<#aHDaS?cNE}By6Mv$&$=dK4U*DwIQ-hVB;gMuHuszNZqSKi z7%N5e>4;YJ^a7Jy5$1p*YBF{mpda5lNwedR zcE*C%F3#G=+S33!RQEfx^kvtt!g&IE6mKNx3S00;x7!VTp&yWW%7BARAg;g{DDu=8 z@8i`H|C(@zzAuO6JPuwAVr6wlRu1dXi($Y$9kJm!@l(JOK;&fglm&^evbaPQAmlLf z6?q|GsCi+e-*l~kxTf=1{6)Jl`lzCQZF^u4^ zh1?9F6vs{{t$adD&AM!1ZZV8B$3_CVWf_hONNz%0!h%~WXbA4qEc%$%`$d%*w-#-l zVWf-(T1N}m$797!$5$f-XC}7V2Z11g898{Oi`d{%SM~E&PCg~wxW_LJrGv0bN&O*0Ph8qm>Syji(s->6u^6MQcQl@cBP& zrbD|?43Kr(RRQ=5GZ$!tM!&QA-rXg_hDL&o>d`J%aIE48uCngsi# z6Zg(#Tyrtl&lPab(6FW1m3Kn%h`PuX_I_vuK_@M(YJwUizl11n148GfW~@ zx%sqYKBhNmLbHHz%IXA~8mg4Skx>epWCnFilVn2frviBWq!3D!M~Cf!)-%+|8ljV& z_<2-&{x*O^DF`Ie6Ye}*SY^+#$eVmT-bJdmII`Q-a$cMvGsAHh^xhC~{e=(fMXj1e zEM(SMGt_C;Bwn)+?(a1mD}CixSy2fk0meL8L%j)H$9#nP8MS2^S4q zSq-4|i&hpqt>Fcv293mB&*yX}Mp<}cNjgw6M_J#mrltE($Eu!%$(7Elk&%YJI3{M- zM<+?>`BR+}BKdL4_iI6Eti9F|l+WqQz7-iO)C_COeEIH2>_;J^IAM974IQK8Rw$Gq zl4MuHog0u5lt}FrP4iXFhab`6KGL3lMv@VQh!;Su&(7BHI<%SAWDHbkY~T{4YSoyO z#qx}e{xNRcV{Ih*gK7sCT2s1RgSgs$c}Om;fWKTYn;_k*963ozVHl0yFmJeI;67>h zGF;Mghq{`>hgdl;JhJ&+&e1xO)|E$_l8Hk{YoWgErfJH%TcfxF1kSjqT@{A!$$5~% zCdf^Ehn>7kfTrpi9>Fob^INLO$Y19Q0>IpRA=9Idj!Z2QQOuH6od7H-!gB0_qNt=i zaUAy>FLRIP`Rtu$^;x$?loATXQsTns$q1&-lH4F>5FM+512AqUR0@`UUZwHGVzvPq za8cZmU{cNvvj#>a^iC7y?!-w%&vz>6xGq7i;qajnWNyqawuOtH@LA6oBe5`E`o_Bk zT0MqfET~N&Kq37eC2|O_Au{+CvXq~Do_bWvP%uv*4RLvY9{E50d8o_f!)v?VX@`$e zQzkV3DR%05Q`^99GO}PIEp?65%eTau|^_6O{@%L@GMFQ~lq4KA+$J@qO51 z50}|{m$&P>UZ>~t`KmMkguO30JxcJk+BJf=`F#ET!5=MO1v&jCRil% z8+4peV=AC{8kx7Do%@7u7CN+tC9(WT$;?@MwrqVgHQ7WpVz27kQNh9JyRAWtFfa98 z2QDT7Q)Q}otd8xpd|UnEB><%1&pLrZH&bvcyxQl@LAziZA?4rF(~6c4rjyT{y+BTQ zo>e5*n#MTzB5l_bC!4PlGg)5&|F+hqv2L^#^M>_z<~>LcC^7!lSnp!CNwnoT`wQX^ zPZYquUQw6P#&CB6u2cS{qLO@0ipO<4K?UP5UaNJ5Vc^aCa3OB`RBR>c^OYG+p@l_l zK+LyzqhPF;63ykWT55}Mx`c&g#vYq#Q6Z))MW9*A#~tL4^GsudSrr8$CiKK|dhv-w z@yi=<2Mi2~8@&bWR2SO|6_K&U5>f%)zFwWc$#~(u<&F!>dFEx-1g@B)!6(n_M{5t6 znyEw{;6(FR=hcqp_!Z< zWvl30PABhr0j$S#r2L-!jW})f!;h@xv0N_KLPzn_IQ281cJcmNGcl6)w&}E1h0}A- zEchTsR&Rj#WxH9k@1bYR^eShf&@ zP`jczH{@cU*%o*=yxjKkvQoo~3)RpiH98J}b?&cPd7)VyG;+MwQl14bBAOyHuMpt zWIJaNy|5(W&;o0laRa8EpO>GLa`mQBl$X)#x2UyzYgJ#2lZ-znv6`-Cn}Bf)IiPSr zbX2bKiJqaWRY4rR#k~qu?%?!mNB!VM0yF6;cXRLpaO}oEtG)^SNU!L;#M4T(WT=?U zQKobq#|!4;zWK}lxDZRP;@^t?c5!#g%M^o2bus0OeMg0PB2o$VtL$XVG7*o4gUR+C z>T~r{=I{s6Pc?WapOYO!G{Lk4twwUsK)-Jq}&P9 zn2q76EH%h{J4Q;mOItiV?JeP4e~nZx^Hnzs@mRR)B4*>D=@qN?3Khg<{{Q)^n|JT7 zy!H$DN!{z;JLtc6yhQ0JAX7c-Ob8#>GgyyX@D~aWBw6py%F3Jql2Aew1=Va060`2d z{Cr|5et{b8KGr7%sC8ZYZX9goa?QAFxm)ED zOl8vGaE0Ha60t6OW>DW7pYvhN_PsOzmT|`3zLfJpDsLxSfwA}drY_gHTDcrjF`bkh zuQqV2s(L8u_gpAS@hQtv>aY5N44*hTC#AQ0bQb$-lZj>8iKwd#39U zGhJ#yks5URCDCZ{x|#v@|MEBiba!=W2IeHv1=%!)bUQj0R>N4qC0Le~lq}sYf_kO9 zC>cA~Hb>VC>eZG}F}*ZyoATrOO*{vc*Wv0Pq+d zWEIL_8#{DSc!p6~jbAuQH?W1|mAq?4|? zl}Ssf3w0#7>Yh)ufa0RO6mxwf7^qpo**@%0ICFt!0*3U|oeQjplG5ueo~$Qe#LPN} z;KF?-6?(?o|8jJ0{hB)b%&UIHv-}a4Z3@pn#&&~EctlEF#5Vy=K|T-TUP0|oF4xyc z4!ItvVauMi+Z5hE6!Taf(G8WD(GE@qqKjliY#bAY%$2ZK#ZaH$AnH?85R`FAc@3a4 z2^UB!KRWGMXW^2^Mxq5LASDU<vNq{w=o%YqS6@}|<^ev-sOh;(he<$* ziH2^*&1P4%WWTPuU`BN!4s|0L)k?`mu3kfhB#sUw;?PJ?Mpot^_^R^p+34cPH|g`a z5U6QxlE=pvxuck~N3nNU!sylPV$SF4{%E&pu| zf%$^T!#dH2e(#uRR;QIXkIQZ6@yP6{&^rdA+hd;;PUYp?1*DW_P)`pOm46wU&q-Nv z{x<=m71R~i!~Dff)k-$1f)SZe5boqo(SCEO#CoB{)}dr$-=+?e&3)Quk8BF!ft4ec za@sd3oEFb)ZQoNb7i@oQ)v5Z`PqOD1>P^8XT`t9K`*H1@*{0bT|z^7Edc+FS$aESL57I61cH(IJnC<`oT3{sw>S zuwJxfyYc>~t)upzYQvu!ZF|1DY%rs;`~5VAl9!P=3x+y{(=rBuEbE<{63Yi=9z&E0 z4U_DtBC>rM_V)e-SqQH>X*<)vR*HP8r1I?iK>whF-Dk1SQF+;0X*Ea4{A=9$pk>{% z{|xG-xwPc}GpJ8qM*jDe|NRuS}}M(Rf?f8+kS*^k$XTR&IL`(14;s!BA7ldXtz zi|P%#`!;jCKWHdCF7pw0?vpa$@(bRKHr;UP&C1?l)*T@OAM)qA+^sZV@aMX~C;oTv z-&g+6;BuobSC3OAxx!PET1``(y=BOfGx=oj?cReuX>JsHbmuKeWULsIDQ@0;Ql?cV z>Z9rgVqr?_@-W#}_Bd~k{VDm!+HRMgm7X!fbBbkeoQJ&pM~n61A1%C1Te(bLb-&{U zsrl5onxNBxm7*{}yZO_XIPOPVZh&r@p1W0jsF}Eo8ws#B{c@u+vE;z9C6}_f#7Ng} zSj-lpVUN>Vl4ACw8W4#ANAFq9muB_%4|dFEc09H<^KjThtKv9>rP#w1O90kUFtQ}v z6daD!?+*yUdoOIYVSLB(l_sX~$86u#+qRE21=vZ+cQL(ZyFc=C5AwVYW9R|SreoQkHp#+r zd+nxs3_vv3q;4$!0k=5*`?=1Hb-~U^`%R&3k4OAfVx6&zf*W4&DbyXvBkqSosh^H( z9mL-HAg4K3;P?ZcjGNmpK7Wc7NT2^@e_Mt7+5U?4e#gc1rAcPv-E;S$-6_&zQJX&t zT^(s7rL+4N;wCA>ApI>w+@qg^PAW^)*P=WgwNry;Tbtke62EC`A3itnQua*h@wCXq z!@5MJr03U`J$t>iiaa{wwERMnioYe5o68O4qM0^!C^wy3*(SXIU4tJqEBwzj^wE2z zasuC8$lG9tb<$nkS5S7aS;-J}07P}K*ZGyWgW@T&olS)qw2xvm73(9OV!a=vMwgFI z7i%><5~LR0>qqdI-)h@u>o+O3Sl;lbz2Ch!E)Ug~wk#JaYH z`a^v#cYmzN{+hOmJawZ{@Nt!17rtE&6b!GA`I|>Pm$mZnU-%~gS&tJ>!I+_ON}gpJ zb~0sUt;psZ1_^kuO*zr$a`sWiikJ8W!y->Nx7%v;wZmV}Mv7(ZF^Jp4%j4w~q59IL z#B?*>e)>d6H7(}7SLo;YqjkW}pndsH>+gNkBR&_NS=lyo%sI8cG*9;!%=?1tQepU3 zXz>xBTIoD$&r%_ME0m}4Y=j;f67=|3r@+&HQ+SrnL+IOP)c~h)uHn<^sx*&_3V`au zulR)rjty$`90v-CLPUo>DpXXsa?1lkQ{GOb4x`MRE`q)Hq!|^YMJ$^hYgl;o;kNSi zPcS^dmM}cYcVeA)QujBYpQc4ct%wAmhkQdU_gYGXw=d9xH+UZ5+XVq5%@U(Em4tDg zIV~UjOEOf~-deZl>h1lDLZ+?~&$4<_HX_QU9+tWNv~glFaoGW+^!i>wnM!TPKK$xG{})ZK0!Ymx5Jc!kf?6-uP8l$hgX zmAZg6mngQZ(eD|;-}u1>K4C)WWcR7&(D4^qvp|8;TpR^7h}EkBP20~(sa`3|o|$1?XZHQxQTfuqI)hRYkxwqKkS7xINLE=KW$SHe z5Z6_ORoQcpFvv8_$J_S8_vPb1Y^om3kStNfE^52=dVSdI$XdC|pKaW;?PY~=NI2u! zcGdA3Gj~&urprg4oIGkr9HVXmbiS7qo+~V*BYhcF#2dw}j*p)z#wsE#zc0PGk>5IXV zXX>)h=()_c=lzB#zu5UI*jh|KFT`CJ=@z(^>(bpOH(0%Jd$7M+sc&-*eS<<{JaaCr zcG5RGDc1gLGvH$HiE%`&TKU|lWM6x%c%n@mWm?Ln_d8;y*I?X}(T!;8-i==CZ|cgS1OUFUi>JbthTy8RX3FxYzcFEX&)!WddzXA_xbsE(e+h+Ra>@AjA39tt z&nb-J0eaTY>t4}%eSz%JaZB+M?_5R~`UKlH~ zWnS~lUqlz5ZzCZ=?T$V2pp{~<*oa{_2E_a{z#9*3m-CWbHaK#(jt@f@)#%@yxwXjv$AM+(Tqg7Js;O* zmOJM&YoiC-sN@4m$iEZVL=A=-2&zPsX-L1WgO0A-|%vY96 zVt@?Zu}`Nrp1W;({$z9kJFSus?9sd4sy>K^4_QM}NPkkKkqgw_Bis? z;^kTGU-2hVr&GB@!EA4)hE1lB7I=9~@J2ot(*soG?*L`EGeoD1Pke}4tb7h;7v$_YRc~Nlu1#^-9$QYrSg5v8U0oH7-*Me$msA(r~FBKTvf}|%Y z^VxO1AA`Z_$Bai!D&NSNsMih4FTTYuk>p!%N8IcMENLDX_QO(KZCAS&+o9MrFNMe;#-d zDWk5A@;CO9#;eHD=MTEgf0YAH{@i(BG3j5>Dj?uueKhbU6D@LCI;}c!N51|TxwF1F zIGIf(Fk*eRto~Y8NWsun7HyxI_2$8o9|N6u?@#>ux@Ib(lXlSLr+O5QJ*e5Hk>?HhdN#)9n#Z}MJyLz;|$41hT} ze9cs*{}s#NM82Eztre!-Lsy~Z>PGG98m-sr&oVdc-bZa(t&Z2rqxhc`Bp#gPOXus_ zEj`ZMI$L$*Bwz1;-}&*S^Va_NW3^|W40m6Qw3T6iYpFUsetM<(nU%vJmN!r@Z8$3A^w%3#cY2Dd%-84&(AP`K@3 z$_T@n=9hVvDP6UIzWfm}BLBi^=U0g8$ZVH*5IQ>#NDCNOFiB&rFkfl$!>^RT-wD|C z0wrBpNy>jki>ZTYs*o{51kc4&r3K8_nZ@tjOSRqdPNzL#)~Tdj7kuRNNyG9IyC0vb zsBfuu%`!E$>Lccu+K3>^?-yOf-c%~hmfWPV?Zgq233YnX-`6O{YSNE6AI?2kG^d@H zeSi(+XqZ-d{!BX2{)8My7;0)dxv_osR7E3^Cz+s-cFA!6@$nOcO>7~K5lD`dv}v{! zl@u#6fd-`8WH3{wMZ@j3OZr~K#JF4i-f=Zf>h3wKRk_A*{C`_-Sk0mT#|qbE?rW z>P}hi1rpiE{IaZK&=^+28Q1X>{&qv`#6Zdb7;`$=pg)snhNbva8g(}8|KpyMC}a$> z(wMdf;GduFkYPP>sIXY}IyAJT?h^m~Nr%LhleG9Qc)oj*%E`JcPP(a2$9k{RIKZVss`at~YxCxMP2~!n+)qvX3s-sUwMX|@ z>$1J{Es|TmV$?@bZ0ad;u>SGCzf8T{m{ctC8QuO-{L>d(>^W`qc|gG0K5k%n zyH&Wm|FCd~RdFPO9N1R=d&kNf{&yfBB)5n8EUL%l^D&p0XP2@^t$qyI$#UQbhCQ4( zlLV&8w=ViWIssszBnnO^QpjfT>-E`UJ4z*Bwb| zAV`*I@?c;W3JtS9god3=$H-V+0G0Rr-qEwWlAwbN0RNTi)b31J9DlLldFaA@GSonR zXeh3~$4d=J>>*H-VN+5V>%M%*)`-x=#lD&2oiQOWlx!-5Wb>4>c^chh1dxl*jb$I( zk?Yt#>_IU#!yTH-epmm6LbxOQy00KT5jTLGqmcm752S6R^7hTw7PlXxo|YwxVk?aR zfM~dWgQSatX06L`5Ly!3^n1sChZ8hP1&n_JSMOgpbnpXXnJ#GcJ;Mf<{aq~2VM6MH@%T?t5oeA7tv;>2E)v?AOpu63Wg1vfo zDt_kd)Y>`W^1Wkbx}ASISRDwjU3{qcB0GUl2nA#&cFqm!yU?8xRWpnv!7R$A9G9}? zo=L*cO5Db9H8B3PdyUsC`RTA|FUU)mkh*bQK~-=@UtZO>eBPaq>yui)Gl=Rt-X$WNda@#pKeVh>N0IkLAD{Ri(T!C{0Aln_w&PXS(X6>}Yi8Z8aDBh+)G-y9AkOI*Z}rQYGS1rl zl1Yn|k@+D-x2f{KaC02j=vAd%v#jCjX6*T^w&+GeI5JZCY=*# zsRWm~IGZo#t~Ze<-_^%@y3gk3rz?El4A-|qTZ+EBap&b3tE1h|+DB?uPZX!0Unoica1Yww9B@rR^Gb7z z6cGo{s{b39G|y_2mJ1+{T1hB65Lbq*zt4W95QRe_BXL@ou$kbZpoQN%(mz0$#DV)v))3}2gHQV*&M5n{NQi@= z`#Fh?*fqnSl=4F0og;wlYh-99o37uo1Cd5Slzv~q-J1(PdOpsL?*5AJCQS(Sk(B{m zbRuAML~S=sLFB@)+80O4<&!srKaihZ>fU9RaXRd!5h8Y2ej6^v6^L*Do@XRdP^S}} zyF17H@7W5G@(c|ttlBT^g79=|YSs3ERqLPHHOTtIY~r>TmOPHyt=q#vGDOA73-wL> zoi^iNI^{!bd)zYzWp4l&HZiBKb686#U zsFj&ucFdU3n4tA^B3&O)vH7rl>O5c@cad=j64{wDxjS&|`IV%JG8--;)eZxIRrZ># z^B4Kxy2)Krdz!fydyN#U-Y~z$snwlTI{NV6p9+L_<;=poc7B!s!KWr|i^p(Q69enq zh~9hUxE?W11S&BUUT)7&yI)zFb(BLzgKac0I9S#D%HKPN#m;E>1oa;YyEK6t%h(gz zN|RRYv~vP3dsyyNqkK_K*nuP;W#oMqKij)&MgqMDvaIvRG&iMgcI27BL!erimq zS@M&fqBcrg|D0lfKeEVt-`H&%0|2!p3Tw{Oa5|)J!}Z+_?&VHd?BBQO!Xg9UJgTl^ z-raZ##j5({=HTl~!eu(f$p|h!?=459p+ElKF*+`H^Pv>}rTH~brCWs*9&ZOkc~>P2 zEPKkI*Vnz#yBnPtAlrXwZevUEXv9#oLqqi5a@UJCQHdBY$ll=-Mqhe}^us>atyK7g zQxe8T8>Z$-tW0te?fSp)#q+(#*YhBI0_z6$BO!3jN+X=Fscl~Y;QvQ7s%CRXcZ$zj zmBGsVkF;Z^x1+ZshTWXdnT`T%Zo_~c4bxNq7qDa>jmrtzVFP-$O{=LC8c@`&G`ar9 zcgx@^(!pCftHKn^cbn2mw?fw9q1{s%$)%Yg&p26C`@Ew6{XF(^)1!Gfft%OB@$Vd) zMVaVXJ^XS(oszHXqk0cc_LNT^uJe^=mSr6e@f>T*zeK1~fh3|nhMHnSeO?Ecsnz$C zjYA}jRuP?cK8l08`4-1nX~;~ou2`CN?_u!XSIV&cK^VT}*EEPz_{vNu#xe6x zu}iBy~?THP`RC+~Xm1f1uCAP{P$*{5&Jb zIKL>j(iGYL#`8~aUos8k!gFsx5t{K#E`r6e!y`i#7|u~2Ntm0rGOgv=6Q};2wEMe@ zu&$n;q}!d@+8SEoU@j?S&I@7V)NMoP+3>|h`-Z`ZY^fvb#}DtsI2Hx*|;-I=u zLNrj6tJp2MPBoTg%B#okdt=h8@Ab5-tK>4FTct7*z}+zPK(qy3#&+%_v)$h# zl+#us>TlIRLU*BQ<&`p3I-tC-Y28g!qw2t+Kk$CDz(MG(-#gNZe4>V`GqTU%<2dy9 z+yu$`uH>FZ`i#7p3-R44Mqv8`b-4aRW`)(z?h~48k#erz9%t!Rvc_hSr2bGiW>6%n zo_bBL4Q)1>R*|?#5SW^et8U)2GVpm+ah#@~+7c&3WW{~~NUUFAVK!tmWSy9cN(SAL z7U{Y{84G6nZI|S6@xIr7?^r8HSsr{-bb&M{jCipzrR0YonP4+q=$LhVYsP&01J(3% z^A%R7HRnb~u%&;RKkao`ss8c8IoIkmFUTg-Xx69PCea2*!gT&U$Y!>065NjH0u*ga z)I(n__2RgH)YIkX3BBZocSn@t3R3fzYHODE)er)Oq}be3sdb^r2E#VQ&+BYSmx4eK z2%@^r;wjhaK&x$RxQp#aEg7=%@pAh_#8cM6#y1H%@-T%NinNkjXIZNeqw3@8%-M4+ z_2=Iy?aR=9u{5iJ$3j_S3q5U*Pq(t;7p`w&sEI^xAzEKEPk}_kWTmeR%r#zemzPch zguzBq4WFnS-vU|+@=Voro@N&n9fMPrXosuaraf%|W6#t=tt9(dd;>w5? z8}W3v!*~V$*nf0V23BaW`_Jm0aYG?Zrbr>?ba338bZ>g4BQQCyKa=}<1ehDoH8fRv znoxQ$`lD-l_u0b>Q7v`v5JeXcII!MotliwD%`tq=gh;kTWR5bXl+Nu5Offl|v-kKC^V%7`@km4Eu@ zudWn`s?)$b^$}%FNT-(D*Q-`Zz$$~B{2Qw9A+1c1|7I;qO8;1;?_aLEWvTxPsuH&+ zfbCLB%&FTKQEDx}Sxacs?`&DmfWw(wb%jp8(4tTJdcQV!EA$0zg$l0 z(}S6dwdy4>&UP~Y;-?CyFDY5e0*8dVH#Y=4xA+qwCck&&8u-XiFxOj#(VhN@bK_Lh zvOL@9;NRa-Zw#T2i$ui>UmgNiU=hYaeYY!z+#e*%JnbR*eM%QM=1Qf-*N-Il{ zc*A6&Un)%QV}9_EIdy6PnWi^!+Dxsi-1Z=*E8u&5@WbP#|K`|y>0aO-oDzE;F`^7; z!?QN;%Y@212$9YfY|jcjmEo{o94e>gTj%*0yPR1d)$z8M@!vhfJ6`yon;ZyKrO^Al zp8CoDP;CeKnnC`%W)LgL=&SHjm-AbOX8NzTAp(MjN7N{{YC$ytgZJ-0RcrlJZ}8&6=1q` z-_k0QO?%|v}nUc0CFPgJiAmDP8-yZJ_9Vqg`q1)J9CU^Je$UlX8xv8x&P z8TY+4v;ZO!?eqCX6})1z>akp)_wgyQw=XROD-0H?-%yG&iAaV>Qq^rEHIL8&$nrw@ z=?A)O;HCi6z1%D@EqP5~>TKMm@-pIsSb4~0CXsD%ULgrYR6Lp)|9h5`wG`gG%*Hjp1hxl7aG86aT`P75}(rC3nvjjU0w9p7dONJHVDH>oWCWaQfnTHWbv-a~$Ec z&WFP>UMjKd2>Y*Dz*4|)ekwm&^JN{mLr74C%8#;Qzocy64bUW^^L9htTWZ-f-q8#t z?M>7}2NS8`r zIa9Kh#v_O2@1w(>QZP1wfQ)J-J`~V&`QKbe*JS^5W99JQubqpuo~v9+C$y1zKzBi8 zPj7f}(`pTiG=&h~EqSH)z+sacdW1-nwmWWsO2?+Xz^p9sw2I@BUSuVp`|AgabKdkH zobQdFzGSda#LLNwtc>o<0MrFu+JRV_YLqdwju@OVFQhQ$eD6V+RNv?!iiurmHZr{x z#m&6oJSoWSaxOv4UsHj!>h?OXRZZ+kBmrlQTZaW{0Fh)BhxFg>zQ0LO@iBxS71j*6C|hb8Anv|x z%&haABaj}I3ComnXhkc4E2F0bd2zM~rPaviR>M#ZqjTfX^;_MoYfQB}yOJ`4(E2@@ z(;xs&VbE(6pVcCETwZfcZX!uxk`S)&;(*QD2Y=b$t-rRL|FnI&i4$q!lImgFO`$TX zHWzJr)GuZ5^sXY>J#4c7|1DR!DK>dT?fFaTxp6$mL_m)cl#P{h2S6rH;cE;wC`i?F zawNZXh(0%6KW49VH)7ni-jPtA!i$-(>_uPQ>s_Sqxi?)3Vt#X%{kfO28OQF@vcxW2 z`8=VN?l;M^`T+%{+a&jJqPxmPhiH^3eCNXU&O6d7cZwKHpsy50o05CG1;C>_jD@A3 zXcVK_14~D1QD?cJvutUd)0beA)_nVYe!AAO&ZY~8?@#U<=Ff*7(DDP@f$qd~_ht@= z=P8J1bZKYtl}7g6r=88A78K+R__ZO9OKwECpZ#6~K&hT(F-W8VeO#Fk4B|$0zU)n( z7HJ0P-hxawW9g6Z_@{LyTCDyTM;>9!VNEn})2K+(8xzauZQs9!j)%OJfAgp1FU;iT z$Z)p!u~CCER=}T)RCrEsh|1?iMsB{g=VqAL8Q+EjtV^P)O>CGgz!J9sD4d!8NzI`E zLPXmLO=CyUGBStuCw0|hNYv`lfn=Nf;9em5zt+Bh(gQh+J@c72MONCm6wC?X8lB@6 z`Z_n2JH8lrlVlAOGgZ=iP9_AiNJ#i_@w*Es>74Y#FJx!voe<`KgW0sPQS~JIx zV`YNV$;S0w&#p_=jf*kV67PJLdl|}cHyuS z7?kX7NHD@|Do%=I@%D;>MU7xcMYGN-GqhL+=fQA!eBK?ObSz}T2}_y0WzGOgFxzB@zG-VGHdJ}$N(B)vPAh8&nP$br$I$={FbHQql-51?xqn}+4 z;npz|FJ#Ytv%grum&dy}4{<{egV;9ZcT8OFIO$&$b)lXkl?iXd`nYCx;rfU`Un0Z| zS#}LXK_f^3nzi<8C9tuT#hym1=9^7!aTAx=B}wtN z8H%Nwq4mK6|2*PJHn%7lzY)q50ZN4#dVeT((@m#o0{aNcIZ~J}SjAyzPhf>9K*ys; zBeN<|cR!82%x|yH-1UC-%kg&I@qurz;+M;s>tIezLb$jVDwHiho9xkg`Va)vNSjkdGksJcKO`m$PNqeIW<%MsnO0C2 zx}s7lF-j`I*=QwW<4qp7-%t(*h++cTNpx=oHcm5W5YBfy9mpL7H8>fY?&gC#fu^MJ zD-Gx_o~R@mz5eG!fM4&=sxU7KL@J_&_$E5$wm_{cYGCdn{h*?l8NP`1FV)# zLD;j9E15qYs9X644(r(jP9aGoK)6?-nl&uh*{UPXzzv9%L_4|jZ-`YhUXu~Y=rEV~ ztEt3OBtb~J5mC{fNo*U0*O8@_!U1eN_sjazAOLYF z(P3CmED14h&{c=RAiWiy7GaZ*`e-J5AVgd!o)i`s;GJ87A$=E$H#A%yIp^Wj zW;8Z3j2mp3LaG5r9Q9dnGIX66%~LBgv5RN{1#*#q8@gN9Zns_^mF8sh@{v))1LQT1j~sClHTn2A>Y9AFn_r1CESjXM+=#Ug&T@wTU|*W`@+^8+48K1JWfO2+d0S z77!6924`JuxTn8Uq^EIjxbc2ds7E%}$YB^T`p$r8xn01cfJqE2bF6G+*rsj(++9U| zzMR1s5}z@`>>&vZMK6kUkC8Ho@+sEpe^|^^Rbi{55aw-)KQ3=(qgDksTaUES6M5E3 zO-&}WNR?dm|A**3UK>ne(jn%c)B#B-h*8$Z@)o~gQBAe-Aq}ANVxhows>~pr-CaC| zihWCN{S-KG*=CFC} zcGaM-$--5hfT-#XRc0d=67XUzJqmbmI!ZzLBI&b}O zj`IXPBZDo8Wli5!Z92Na2e0QeHTYySp(%>&@Y}FS9(-IRndV(C?o5>gWLl z152Y{wpJZzBcV@kvAwnv#76})45jEqB?fi0WeSw^9-9OdSfFyHr|UU1CwH!@eIOmc zP4S5Grh>*Ezphy0y$BwNp;?LAcab;@1+PPcymZir0@V%PUJz~^iB{2<<2cYbT@}*J zljs*vX}SJZOef+{hpPl!RAK@oF*Fw!l9Ez`I52MtKyo411Epwc3oqZ^9D`;j-W z6k1Hb;*?(ZluUovH7_WTY26L>@Jg*T5F~MIh?q$uikk;U(y{5ronhn+B-Fj`tSAuM zAOYOM0WO8)YX+)nHJ1bG@Xh)N)y(mFPV4GZ6%BQuF?J2&N)yb?3HG3?Zcwt%=FYIB z?F4ZcnURWA!}aTlV(EKkR<618U;-*FS_sUun)vL&G^*8zmNCGM>ERCRug`8Xp4R

7%hnqCF2|hLC4db<+v!m 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

((H-|nt$MEUJiP*x%f?4C}KfjXiKOb6) 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

  • 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

    _R)*hyrKPU1U81(OkemD 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 diff --git a/cover_small.jpg b/cover_small.jpg deleted file mode 100644 index 5227efc55be3130bd819da75f79314d4629f63ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54470 zcmeEvXINBCvhbN1a#nKAAd+)Vk~5Ms!Z2iJNCOB0W<&)9B!ehXP(VO(Qc;2+D3XJK zj4>$_|03JXD z0RR{XL4YSU>X4gC((ma$){R&nW=_H`&jtvJ=V?!D8r&@<;i( zqP$sDj3rpkn7bjJP=S6tfQXQ=n2eB=jHnQckg$xXh>WNN00yjk0Dz0R3WRXYn3f+090=@(+!$T_Y8wRkSKA-~zqbtv`Bg?3^jF!`EiXH$tS_MdsQ-ITD4BycRa2+7R!^6YJBf`fgIz>o8c#4vgh=`Pu zhMb&|oSfzq(Q){3IZ6Cu3?U{YBqkvyBOxK9AR!^4z(gbzCs|JYZwfei0i41E9sNz0>Qt6>s`xHq4v@ zZYJhcw)D?#N@|$91V$v~SG5kzZJh$3P*7T|W0`Pqu*Hu>U===%1xnzc2YBy@JD?9CBpwK0ry`b91R0R zu;V&U0g6CYTnEZp(9fzTBz+Si@kTIsWn@M|rr%*gR3pvq4uu zaYALzx{-3U^^LF*MIG~s@dXOo0fyE@MUs|=d^ZOUDcYgu&-&^DjsTa9o-Kzl8}9PQ zab1BXZxM}mcF`+Uz3ZVOOpJ?{8RtFM1B3T$>pmR%oR!JbSF13N`M6p+8Z&D##Q8Y@ zS+Z_7i`uO1o*hi8BUzl3&!9-OmKpgpE1Ya5y-D0xnv*1*LyaoBTGTJ<5tc?CUGDKv z5@(KDOun?bgTW!O^6a785s>2YUS})}ATda??irZBD;vUtb(|8AEtP3r z_3H8p%ci4YV8Xc^AsG?o5g!`yWH&6?%gb%|ymQX7)LvuKE_WEJ)H5fkoSD)m@d1u` zKQeu+`oSHXJ$~6+{7euLu(r%Y%|n02;pMDi9knE1VT&4) z#|eIZ1UxF|N^3hT+Njv5ZRmYw!MG?L&F`1KyV_DY_G;XD_nYLdcyQ2tTT_WCxbY!b zJLj^>8yf_%yz!De^-#Q;MZ!4xOMA%c%${NQ0F?&G(M6k)#%>*n#-OLLdEL4+1C5?xHsA=pnYy)0Kca_Rw={l&sO~zjUoj}} zeOK5$e*{bx9N2mRPH5iZg5;Il?Gd}pt4Dy1Xun|bOP9qBcqTg0*ek3ldzZI?*TY1i z&umt1>XRPQV?<0U(v5UrM_}ZO`ckL`+U83o5uxy?s+34ob(~SWKOyR?iaqGZNircP!@%H9ev1((;T#D<`qeI{GyjAyPim5ZLM6n zCwl})ss+fqJ`*3^6l+e0$U)JnUglCd?iJ0i&Aut(6z?q}X`~dNN9ndY+t-m(Mgisq z+tk)>OpW?_?+!R?sE3b$Z9z4Ecl_@R9MSY8l%J^t#@VxB5?hG_DlPp8%SGQT>%M!U72jEGhF?S9J)qteM@ZPTvn$0$eNR6Eo(xI7Eb3@30W2nM zrJs*`4SpVAeE#u4XN=LJdt3N?*ns(W$zbaPHTROQp}k}Ko3@k}g-gm0AHT1&S(fp8 z_T^PQGM}x=?CbPom74kDA)=;%nw;&sWa_4!L5K&}o$iAM>-Ssv&2T-}jUynZ7=n^M z0;2jdcJCblm5N)FI7h(OkX|}P^Ul1FlW<1+11?$i!$*NyTzfmRhY-0_%R3t9=f}+R zh=&Hdic1e^8+RK6%6FP}w{i*u;Vh?c4KEU=FWR54wX^+H$vbvgzf$BOvCEELLG!x) z5pdh6IR$qX)M|1-5LV*Aa#LX}`w{?F+`7dhnsZ<*h&%$G^7CbS6T|VD2fSq|8mBLX zzlj_Ewr9h!RJ1$rF__w5w?St&gx6!aw&~n#%=yhI+Y15aHGA^>o2c=f2dUHY>ft5R zdRq~slytS`B;a&C>d7iv-?fK}$}7$>>-d~ipmH8DqsrWfm@d47TI_>%rqgvxGpbxX zET)oAIs)eQTln$mA{9H-A$23@5Z_>wO3j!^JYsO8;=Wmbk`i{sm-UhL13K`IP`*Qu z*(Z?Q_x-Dvy!th3UVblX>0DFF|XC8ZMk0L^@ zr7awmbx86T*KGJLZYpYYG*nl>8&mCeS6nJyPBvw2g#|3h*D1adP{}u1&5i8|wte*J zR_H672dy;&W93JH!>7DAH0ETrxOReg?Vgb%-$J>fvp=o|72YlMdbZYYF(B3Y&1%N} z(8nL2eKT6(Ch3A@+hNb=-8qeg1Nx#1rdRFo?nb1MeEw*?Wi~4#8GfzQ^+0DnLsBt! zBtA3BPGv0Q8YA49uD@LU2p9-e{dgNH7vS;L{8Vjly?*w`?}4E)Tu-B7>rFNrxuZt# zho2VH=fmL+2VqiUvLn$g4J960tPgwn$_frz#^?9KMc#}){-&gQd+-YXC36@m>A?3T zlDeP18O!{B|MYW`H#41e`%8tPO&fi8cpo1DG&h<5$XeQi6Tx*+T-YBR&7kd2JVJHMqYx$%yhW>Xl8l%+*5SNmTgRLURaHFQ(#^n z^GN%pn0k;kX3phEom&4;5aqG#mliBQ}b`Ba#+1f<@vZnH%N# z{)_zUUX-{Z9}0@z^xH1p>VYwR&Wi4ousxUobZ=Vt;ciF1YO4Ft- zyIoK7(y&7KXLM?Cg5)WE@pGxd0k>R<*7N%^z63UoFz(lxEow28%h+p=)K;sshx#ti zs~wOrjNl>4!>&+P7Ea*0^73}LOjqmaK(y~M~c|Js59bS5qj!9=d#H(bX zYh!R44o8@{wHGAyYI4=lF%8i@U%6DFU%OOT*=MYVeuh&T1&9~Xi5Gc<-LXm+Jq2NU zxXFB0N^K-|BYd$%P))*$FF@b6+2c!4jOUjjYx$ADx^d^ZAw-Nd4`27w0ZWa(!$)2k z9wRZ%1H^cVE2E0{leN+-WbV(y=IkwH(t`7?+uuH2eUx)P`XY8h+o$pA5s#wMrZ&rh z%ftXN@Sc<m7_kRT2X;Q>Ei?YwHTukARXR0H*{&4W)tC#crfFyYvfWO%-fh3)3yG zZ9UL_XVqkVmNFEvNX#I;9KN$*G8f)sso6RcbI&SJ0rmL6;M9go{!X9bMZd(iQ!;`k zUKzYu#t|NO);#@!Zx9JtwZLb*0#q~(ax1^+e5@INv>`9J)}fIb>iwoYD?WX^+!`(n z@lFyRKvZ;lpc3P<++(U@%+6Mun%&&Joj42c==ox;73=dp|T>kQ5 z(Dn#WLwmfDt=sK70t(MeUPrtMy(g>|wpb#e=#fu)A)?^<01_ z#m6VbJL_A&tD(B*`Rp>sWtwphnAJGkFqUcTl?E%ZL;g|`=yj28IgB*hjG zs#V`T9S5>jqbF6|y4Gn;t5HKK)*~03={<|b`lm$pT}J%u2Bu15wvGU?XFW=H48^u~ znx;r|%aTHGJ}DDqUw2quA0&+`F8A0x0^XEf+*9wrBFd0SvA~L_PHk(;26WD zQ0s!{qLQ5bCLj49Jv6t7vfh=s7P!3MZQg4Vr*b`jpnOb=Bkrsb7-b&yXT@nV71=kA z*Yk7XxCTgmk9em`X2pQV&+Y2ni-h@j9&YxwyloY5%{+bDh$CLQF9H~NzAE${kIP^- z51ml)rZ~iEHjbf3i6x3*0IOF-OQYAhXKli2ObaK-e5LtC%ZQmBd?ayJq_t0tZPtj- z16fc*Ewd=E!)QF@vN*CC{)*E-FHYOc{8=1RhX)n}?Q9WFx=j3`(q-D(xG10Y9qN06NcZ;4 z^#@P*@@Ab3r))P;5Z7Y&GiS_>fNTVE)1uq){e4d%n1M<{f>%j_(D7{pNz;n?R>2NOrkGmCnp3W_d@=bZ80|(+nPwPb91$>f3 z2ziAW3hmM14D0QMC93fsFb{{P*Jc{@A9@6%aPFrClm{pDP0seWS|SFk;Kt#@BQYNO zTXrI@>x->LX@REmBZmnOG7^F%P^tka6LdpZt8HUCua}qUN4)@NvEArB*#%ko>V(!M zYJ@2JdRW=Z+=0-zefL7Yk&p!+Kb4G%-ZX}mJ>^5ceqSz?Z;S~EY0j*OA*Sr5(sv=Y z(R=oblI(QvdHn>6j)2Yv7-TS9fYO?zC_Z%P`S4bReDz?7$6$Ze=%QO&NNZmI>R4z@ zh3iO$ZOxe22A3q~fd8_CY0P?xt)z|3h+nbC(mHZIdHj5W?Jl#+cMn17ouL%cjw;&a zu(u<~;ZYiSE|CaD4~zcZf#4AE9YHUCv$Lce*Ku%Mg|6ONg(*;?XwR#!No(X_zW>?_ zwk`jX_LlN|G>&7nB5RXVYsVraq0h{q03C&ndR<&ucJuuHm?iN6|KJg@QD^E9K&|t7 zQLwe6_(6G8qR)cYid!}O`7Sby-wfB(PObYec%?GfKkUvSrK!vCQfu2wscuCtG(T%+ zP}ri)p0zD{<$(R^26JPD-)2>RN!i_SYo5UsdKG)6XJr0F75(qGtXe}EE1N#uxM;d% zS}S!?@bzNo`3E=E&8R51L`h-vjFl!{e&ZCMHcb(OeId!a;V;8S?BY2gJ0o&4FY;QIq1eBn=Gn%3>R z;3J1Pr7tHW^bV09MR%jXSEk~u<)^xxd`pk1KIjEh^qRxN4Xk~zY?h`+eP)87tSeNt4j4SE57k;?ZyjSlvBNnNzvbo4$e zPK%!lJ3c2)+jC-W?CO?GWo64C5W-{w0V2G(@`XnjnR7~Z>L@bPM})o!f3h2}a7Q~l zB-0BC49yyQS9%1zJ1p9j+*QmmJ$>%Ra8X^LWrrUx>!Tz?E03C-I6^{3`}v{`w-MvT zaa(?u-2KlqOBV&G(yo+sbTFbHy^Qfo4vd?!#+j9ozkdXXYJ5*Hd%`OJ%*oqOm@xrS z8fe_!SRWuK7Mk)dL`T`P=1PU=e6>Q}u6Su;u)zWM_wg?Fu;F?qqT7qb`MNbvv7SNQ z(NV3%&2YEz`LOV!h2YGr1MUT?U`_Anwz6>-W6Hj0i@qqUl?eL?aqZO9UzqSiR1%v>pb6R>>n5_l? zAZ3790Wf+_4F+&a0(u!Zp>ZD5$T}>Edm{0ch-_3tUQ*ZYojJ}Yb4;57V>0lE`Irv? zgxm>5o7l(Owt=2F6@fJbf`~(&N0wZb2B1 zb8h~aJQ(sxnFwEf2QP$)nuQ67I;rd=gP|`9GWFK#e(T+BI7f8-B|h#b*wp8jsg<03&i{xP?To~6!-He@kHK>5Mw zuNI&Ft;Gi3{%$CwA4sRhaH@FwBY!pmY^0;_uY{3{pWd&8iZ4>-uLRQnuY|6nr{6D% zzKegruY{VHr|Pc+sK>vGJ_q-3`JsptEdfRv=Ttyxz&$AdFmhsHaYCUTl~5Cy42Co>g0bPXiNiqLWtqHj0^{=WmhI^ji4SnIiRZ9l?jBf@ujjYMj6r-01juJ)TEg$25}T_&8F$d@}oB-;R?60C031e#}YYV=QLY1|8?8 z{gq}quIu}88vi&3BgpaC1-A_`f#Ao~0f+H1@5V7!6A*NE1}UCke6ryO`GI+qlKKlH z0`futD=_}aBYup*%!ePC<1)9wG=Q0JCsO}o3%c8?1VLD)R(soP|INmO8 z0|7z+4z51|;M(I0*aLom7vKPRf`1qd{&V;p2j>2@>H3TFcZQ$HA7WyXNVF%WXiRf) z98qYblixqA0C0a{kanyH%(VG6HbLY+jBViDuQ_lchS6U`9MdoyKTkI}!q3c87c)sA zf2#-kmX`BqR`%dL*bx&-CW#$t-orc7abOw54rqUr1_Fuj zb?`@ErVe0o(fjA^gW!Z2gTYX=yj)no%l~!zVQ62^zukn6mH&5)o}bI#Z&WxAp8h5d zE`Q@9fg?OUO%Or;T7H@)db&TCLcE{ozcJ&xqI`puJ>6V>YKruv@tQx;V9Rlx5Y7(h zZh^6Y8}hCo><|9@jv??fJwW~+I9LD`aPuB>Xz^qR6YFH3 z4Hv)zD**o;O_FB0`uls!2nr(o1ROAjAqC(lFTo%OZ$V)JAwfV+G058i?t$=UaYTT7 zO!91B>YCVC+??du%*FMD^t@FNu5Oyaz6j%BeG_=F2VB~TO;LeGE=VTG%i9a#@4yn| z<%#r@36f_!E?fqLF=#Tu4}$MM6SASWH|( zLYR*QJclVFCE1ST_^Zq_LKyT5Pm4MFC3v3fI#}Q|IF?L|CQGp z+*LbnsS{if;fe49+5Esx6#i9}_s>(Vzq0(T9lyxOJ&&otTSmnf;Q-nhn1D70KRfC# zKXXZeMs_(h~mge7Fez{9h`yh0K(LP963df+f{0__+6&MYcq z^7Ewa-`SkGFnJKe+MKSp`|L%1~x*#&CN+hTu4e;O+-pmSyDt@O-xw$ zoTRX*y0EI4vWUpJbJ9Y}$1;I=RZ(y>Msq*&I)QoBq$E`(C4?j-q)+lHOR1=+tEdXA zgZ5S8QqodC^PX(EI(YtfWjMiQoKe1B4&Y#L^Kx)O2)cVCT-aEC^@@xx!o>l8QOnRo zMb*s(;Ro^w{re#Nd+y^sNIjGj*fFBNC8}r<%mS@8;if9+z=a zz2Lu>^O*Cu`wLj@F$%nCVZdK^ONF0zwLjNC8u+7uKN|R>fj=7fqk;dAH1OB^HUbGg z=mmmr(?_3)EWoF9dqX1wbuC@B<4*%bn!0XC6cjXH^#bkIF^}yQmR2mdU7-0YK4?n| z8mcii4$ zSI)n1s4URp8njD?-TMpYm;wM*HvoWU_%9sCL+~rpbpWXB{;fS!nDO%42NX91TmYlc zU*SJ8{Nntdf#2#Az|{Baos&iN!~~ZGGpgaBNiEu!#Si=jg<#?T$3gsGXZ%g9-{jyk zLO3IQ5#aj;iy1h|z~c>IcO#wLFfX<&ZpgpA8UI$of0^yK5-{M&xCR08oI`-ZUH~BL zrT}0ood6a&Apo;^08${o`b`(#4E!7j0OrhdC*vN3LHcq0w+I>oCZT?A$7bDtijfHm z9PJx$!h(glV1uU_NC66f7IdJ-4x9n_0TDnFkOh0@_GE@g@0=0#@Kz*RW(Cg4>XfiYl`V?9TeF^P= z_CY70OVAC_-x?u|3dRcKhe^RyU?iea^|R@g__1Z)|$gN1`d zj>Uq-k0pzxiDilf$MV4n!@7%=iuD+)66-bAN32P#HLOEyVr&L%UThg`Eo=*H7wkan zo7joidDs=$Z?OBYXRtSMaB!$_xN#(LG;u6(+;Kv1?&4(Nl;FI;`G7Npvw@3?ON+~k zE01e{>wxQzdlNSW_bF}@ZV&DZ?lvAF9y6W@o;sct9un^=ULsy0UL#%)-W=W@J{dkI zz6`zrz7zgM{22Tk{962O{2BZ`f>Q+C1o8wX1nvY^2$Bhk3EmKl5_~5lBxEC$COl8* zMtGSpneZ858{s734$*0%vqUOHHbiKmXrg?g7eqru--(HdxrmjBt%&`JqlpWMn~6UW zZtq>)sT^pLEQ;*)ZcDwEog29qX|mXmgqE|cMtagnKzIgo{srIFQ; z4Ulb|B0nX3%HWjOsk^5NPqm+#KaG2u>$KWwr_+!A+q>;ZAXfqKKl4VvX`Nr5L3dWe{Z=Wdr2|6^x3DN{h;qDu$|zs-J3?nvq(W z8bKXNT}<6Wy+uP$qeO$CxlL0-(?_#Q%R;M0>p>e!TSYrYhedam?mS%}-2=Kebj$P< z^s@AD`rGtn^ur8LhO-Pt3?U5J44n)cj7*FgjNXhXjLnS8OjJxtOzuqgnHrfEn8}$H znBAD~GdD3WvQV-pvv{&3v%F?mV`X5~WJR++V(ntxW8-EsWxL8&!ZyZEz%Iq^%zmH! z75f?oGlw3>C5|T?!<_h>Qk<@wNt~^mTU^{+=3Eh6Rb2DjG~8O;!Q4-{N6!$SQ9R>w zChJTu4-StMj|Wc%&-=5`v*Kr6&!(O2=7sV~@VfD4@P6RK=9A__@@4T2@DuSX^9S%h z;hz+s63`X6Do`b`D##&dB^WE%DtIU)F61ecBQzp>T3B27s&K9FH<7aOBO&82Qzr98mS5IGworCnj#~~Pmm@bN&nE96|44p9fkokh!b61#MOH-z z#Vp0oO6*EbN_k3i$~?;M%1@P7&k3FLJy&sVOGQQ{RON*#OjSemwrZE!X*E-|RJBj) zZ0auRPt?~m#5F=RUT9)#>S)Gl4rnoI!LJJ+s|{;4>jdi=8*!VP zHvP8Twn4V-c64^0b`AEV_73*t7qBmwUnsn=?_l7N<*?zX<(Tfc23LV6!IzwrobEd< zAmkBoh&g9@=Q!ti7kQU>mjzcv*F@K4Hx;*3x3BJ+?wRge9tIxy9!H+$o+Vy*UKhM- zkf)Iz$k!+)R1oTeH?Q|i?+G6np9G&ZUmf2(KZu{LU$s94_%PLpK7+o2o(xb3NDJ5w zGz%;bIu(Qr>b!XNV&uiSVD;eK5Udb*$g4}Nm#$oz3{?(&6b1=%40{#M9)3N1=Ca1+ z$5#lhcwBjRRp@Hm)%9!U*J`gbUcY>O>W0RRCpSrM`raIfkd4T^g>}pAR#&8GWJ=`W zZKvCB?+D#Vyt987e)nyZa8z>CQM7Y(SByl=gL^plkoWpy6=NUAor(*Nn~K+que{H4 z|Mva$1p9>cM6txoB!VP#(nPXua&-zv%Dt5RRM*tLv~y`C=?v+S>023289fh_9u#LX zX5Pu%edzXZ@R7!&$}Fy|#B7}Gfb7{Evz*pksoa7*y1YAi2l>eSiN{8dUl&Lg6cjQP z#yo*OK|fh|YV-7ck!n$OF@N!+5~`9r&wyv>XN#p5O8d)n%3hUAl@~wfe4buGUU9n; zQhBj*t;)4(qS~_hLydOLt6JIGiaLS1{Cd{y1ZE!A%=4yk9K8ba^@T z%Kp_zvqf|7>+`R>-srq(Yf*1$ZdGn=YLjoPZi5#`Yd^?+XzWq!dHGTGV@t1AZ%3bg--mwF{=os8fr&w&2NR@1?!vn=7YQ(pS%{KL4WhrE|?ipG z@T?jP^4oI{w5t8YN*$0%bOK4si)FPA+M>Q($EfC=3ERPsJi2fPwlt@jnXs zGX?p{Sk{D<&-+qPI{1{bl_gL~;0s-eee_a<{bOGuwWLu`63vInujd@&M2$Jbl(OLQ z<^H{#;!C#>cm%lEIM~>r)KJ(dEU-vnWo)uz&!H?}L8T&bI6@!J8TGKo zQ;3Nxy_|IPEfZb4n&n6N>a%fnIY;x96P3hQ75GOk+!IHj5YYcAC^1lBP+k3na21sH z+(UqXGIpx$jB_3PVu&T+lk3b^Lbp|_wpKe~0=?n*l;VuZBcscYtN6`~W&`Hm@ZOWh zF`!Mm%Q2J@>$a;}!F0KE%IYgyV5XETNg0-M8-tQ8{%J|}v$mNgUEH*TOA=K}?0Z2= zLj!0&^nx{-W;RW*v7|zK*WcJa1e>IME{lWWEI>70sBLp|h!H#G z?zCv?@)sEmN~bgOjaz|((bT<<&k)>abdP=k0N?774~Kh`(7lWl`E+K5x}SUTi4>^q zfW;!2_AjLU8yjwX5pHok(WY^zs)WxT(i^^#<4d`2Vi7lGt2EP%*EOZX+1>-#(nI>x zqk@X&u|sLsRwYLsx9^3STX%lq_rB9!vNmL+tGfP}q2AAO0(8+DG~6FZtVqnLV!K`J z-zWQd*Ci&_b9ZQSOmTLz>c&R;*U$j^DQjd012+l)gxPy8l#RX1R{{tv(_X%0*6YjC z{iKjW)te_4vum6hY^;zjShVQ=&02J=sH1UsIPcB1XW`VtmthpPROIw~o$4?4;cmqr zXjve$PA?Uis_$Bu2yFvaSX*E@BV$d2}LxUHfR&b`{`EuTN2 z^LxGi?A}aj<4jfU z`eJ`(-CH=aNoAT^_kM=3yjbRLNyh4%Z~3Y{vWu&Jv%$u0%$b3DXTu8SLeB4hud@p% zV!aaG{B$M!d)}&8VHCsoyl6lnql}uQ|W79BSRp*W?%lm}==Z#rM<+ zdXIG=NGPk`N6Oh=44%!6jk0qQl=~dQuvf3IAgNgtv7Ofs^uiWGNj)>uw<1T#-xJv) zp9OOshBmj_iEAl>TTbm-|C{uZ^z0%lz0kNe7S!zuC*Scwf0n$?1@&X4RQ1j|DHy4MG=# zlQ9)FrS;U2eJ!e;-XMxnlKmo2jlgED&cvUuA|*^f2d{ef!^_-)t2P^Glt!zr_(uxp zccfhId>bL3+NV=BUps?-C&PjfVy&@;=wqI!S{wHU@Wo~=bkkhHX27fLV2e;{G|6cY z7Uf0vYBQAEg6Tt!Ds@pw`*f3a#=|r!h0$>dl-2dX=+IkUTXtl}J@;zwkwyghBn~^+)TV5YZzgN5lWEZUOMRexYe4kG)3JS5We8lbZEad@uy{bK3 zC-?HZq<+mX1!lU$z-Jof^G{2z?gj_gYB~webX#+MA=SOISk`N#LBCX4W@eBXAKJK; z(7zxU5tC8OR`3>q9t(RZhjM=w`buD)#n0$sXh&xJ44{VxNO({H;QQ*oBRF|cSHkS9*NMZ9NMPlHc~NSTa@DrPIxMy%DY za(;L*yB${9Me`{!w)BFHr+|HCD3^tMPabzWn*WtOX_PrXahe=Fc=JB!3#dZFsW)9P zME^ld{5QFURr{zmmD!QIjf|%E-%g@mJTf!_m%p=_SH7ss2z%g^EOoS>-MiQsWyj*R=#{j=OVT3+Ei0wpt?6@gk_Ma=hZtj=sJ zs)$w;w}yW@fEjcze0bYtbH1LQ-$S=KHsZo=w9EzrdQobr*Jt4IRLS{PyX@!&4aQ&) zP4h3&=oI_~@q?|4c997UXBV!hJ*(wlC0F{GrCO=B&zIA2XOgkxD_Y`)!>9`Js_cHp zpakU&$3EbNZQv`GYNC>zM9Sil8QQI@d}(JP*G@ko=(k|atu1>E6!Q^ZW=yP(>a8us zdVJ3${VKt|a?4JhoPmaMNc24$rVN%6{d?y5n!F!#C>MGN))%mY{jWC2DBJx-$lLt~ ztZ}bAyNK*|CVNK$-Dq(9hq%u5`3BCX6ptKO4>j$tt&5(wAmXI6y4qr>TmD+$94)iX zfKIP#Pj@`^`ay(#g~y=XOKo4udo*ww{^{A^Z+`L@h2u(yoEp+-M~2!37ryy7Tw=>z zimk|do-;>rXZn2_ac(n%EW>161T*bW0(w=hiM^pYDW|{Ivu&EbV#cCplG7}~M{edo zf#898p~=oYC+@St2kRfgg}&&a=3}ocDy^`bx35r0mF5#oD4O|@yxn4^UA7sFXs{g1 z+t`0%%O5K&nHSK>eQ7=7;H~drhJcxMFwfQR$t>w>X_ijm59E3?7J3G6_gzv`cjTnP zdnjULUX{;Z$`h`iJErgPHd--+uT_|%2l0J5ETNz-iEjL}|C{su70bSmdy-v7owVvA z)k8zs_nNS!j)1m!dA_vHO-C-j2w4x-W zLx9TjqQz)=+^gwk{yZ2Ae@>@sQBtn9cus3#xfa&Q9#$+-{VSWWDoZig6MvG5y_ul$!&2VWug2W*?UDFW7#U~8K%i5qe ztGi2l^Gi&6?t#$W4RO&NY&PS>f|yc{7>Rxz1ne5~^EX(R`7Y&d^Y6V2UGsFhdp2j3 z`2{&mLmtl&&|0Ij8_=ZFd1t${pOd(F;gzc3RmJw0DPmvN%*fP;aLp^dG_k}58}*e* z(Nf8wmeM+FxSzOtVYYXCls92>_!{>7uj%MVEtB5ZjdV=jDmnae`aQRGg4N{H;xc2O zC)FKN@#Gnig5l3*1YfF0ibB>vzw%Ramx%aquIO6Ke+)rfL;K=&h=7{CMZNTtX~HtL{jgG{yyc5BreYdM3f7CAn6ZE)hz zt9WYgsiy?U*aj%zN4>sHL`9=Yf7vDj^>HL=;oPX?4iQcJXfI*5{P)sYcD5G8uG-7fk3@4W&qczV?&)^q zYQvY$auhG$P$xFaz7npVs9}~H+oFEIolZ?F7M|B{<~JCBuO|3Qg>LGl9<5n=a<&zL zXHEOQexQTpVogdcbv89Ivda!^FgE?p?Nu0|jOXGKi4J%4>4}2T%DjApC)7|1?t_)y zO&dvEp{i6CsjPM&Q&qb{q$*k~Bp#KKOO9v7u=^p(nLxdNP+|k8)qwnN=+hSGq|KN0 z&el79Si>~z5S=oL5VEaru@$B z+4&oKnKpb0&;fBh<%aP4EHCi@k=JaxiP5^O6bV2ia%mvFDStVd zch-71X=2l5keT}V@qGsTPbjbf(ukO*_hGvV%i_CNmx+l~AC zlj2J1rwhJY{oLK(;ogfC5%~~zcq`Yu=_?Rp_43=slaBrpL7e&q_it++Cty9@574R} z1VM(EC4yEMhK&MVwOCq@^_=OmMmgUG-vo-~6KlQgjnX!8@O8u0Ph9wTAdbx74-edR zKafESY&P6}V)MlQpfQ7RyXf08>m}-nMv}~x;pUydidEYMwUuvIeEDGAWYz`A&ARU1 zwX*5WVMVO>GS_yl?|z4D%)*vBaR-tON`#p0E-2K$3cdJGXonwY^=0?wrkDCWcj(I6 zd6c7x+u|}qMyEY)-nh>+5gyGL`p zwTy)qYx;fQZv89lFgQDlspwlB?LQjDRb)bCHWw#yAP>iBLN)(EY_-_ zob30>h@LFnTaEZICzABS^LZAyG()ckMtCYhYc?E7vtoJWUVregp>Ako*>;U9zWDC? z6?l_u$)3)|QPbob{IlY2Q83uM%wIH|Raf0LpW}b?#ZLavv!NOYmC5_YH zIN#!%MK_n}pT}Y+m>y6szsIx|wyAe`9bbEgCrL8T8%mYqwUwn0naszPWS(BdS9=PN z`x?16p1R<&r8Jnop`N3ir&RftLNoS8WN+W(%AEgQqbZAt`^i4 z=GTUj>7tb#crFH2LkCHHgFb}ALY}?A8LU>@y2R;NF}eep$WdCHdE@rNs5p`KTO5ng zBih+UIXbFYv^hDHQmrH$(jxibd}N#Y>gQPL*}A%@N44+TtL1pgS_PDXP``)_r|aV=oMa#7JJmr=%cl;eogf4dpdWj?|Hi&0p)&1J_M0InnBgNml(9A z5b6{%XZ5cO78H5kVkc@o0?xl>#)eH<;p6v9$6Qur!54kcKzhFaO_tr`*4pITV^Z1v z@;uB6-S~-IhCm*fwi>%PYjBt0b`S%*S{N(kD;9>)`umj}Nh(fJ*f(Z+RtqokhYZiu zNKtC=80Of#SQ}_8@gR6r(Hv$FXpdyZ{qp+7C9?w-!Nb%ob32@C>zCJjlSx6>=vlZ1 z*Ah3E9B?L^sHS1wa!W$cxl@iyn-fZewEfZG|5p-Qs4Am+w{Ot^hEFXm?LgW%3R#7m z`t z-8qBt%Bm}dBs@U81e@jr<;`qu%L4k#Q8mVh#Ctu)cdmHd8X)e)N^-}I*uP&LZzyH) z;-OeJNvL6wAr+C+J%di67IQ+_M4;$ukNgoZByBkqW9==G; zN-QKOeIGhGz4VgKza`1v=~8o>E;f#2HXkROCmEq?{Pg`RtPfT16GTB(uZhf)f9gka zZ5`~qoS51hsJl!o^yKb$qOuCWi1)F=MCnZ`Z%QW105OM(>ntB4QoVo?3ym|+dcR+5 zMmb$j;0*yg-9CQYd|GsJ>D`yv;}sqAWe^Zu42$3}u=2Sto+jWa7FpHHpHyO4XgacRt0woC&CNdLR+WalSanBry+Q8`7Dv=~aaw;bwIvKOxh(OiFR*IPv6f`Lm?olu z_YN}%gIVk|ZqJX+`mk8iy9^*SC+^m$Pjs56ey{XsCo3NGV5L)Y1PS*JbJ88l>(oJ zwCNK$8%q7;wnEF8^`Da|5>s^ScvAI5Ven!e@A#-5G zE7)6e<$><*gBQ)(TmxdyQo6QVK5)9Sn+nq@9SS-w?%TcT+b)Pa6P$fZogw`0Ba4^M zy9?Ub+XRk);ONpyxeRBXApeXi>Mr4cge_=YK+tQ(e(%>Ps?8u-SF&eEfL)ugGIE)` zP?akC88R!`rfPS4N{w^&LHkJNo%pw(eXAL+rFR#+qAj8M#!fgu@^Lr0o!G56!`xBN z%WL35zfGUz^LJs5?wcfi^SOAeH0aURn@A+O&Iy3!UA=lLqXit;nb<8vn3$G*juH(N) zv)Q~FBmVB9by8iaJv(vWv*G%8cQ<9tV>L%Mni6I*idDOx(_A(TEHd9tlDU7sqF|JQx3kAZaMHkIPBO(Xz zeOAS%;ELjt!pArR^7ki3Qaaa}*9xu)BXGPaVKEXD#)Xv;B3 z%jZC9RgxvLRV?rsy-MUBYjab4nd#n8n@exQiid}oW>v=8RK-OJ*>s7sm5y!;{k02+ zzMXVK2`-@nd&vgyU9AyWc|rf>r9#?W=4#u?sT~E6d}(W@F7H*o{=;eOqT(QXzG=JZ z(6*e0YX1a<`;$zJuSMf*BgdFj6hMdbJpRFFsEb#`pVbLpuW-bF9=ek~L?S-4L@=?P z2P<9{SY6p=9F(NcbnL9pSg`gr(;s{4LM1>PEwzOjDcdkMenAh&-3(QOY`3jU4>@c} zw;8v!2wX*S4LfTGywk2;0bI5oEA3%^dTy6v_X zR~hEvc>aPYs|y~8v8dVzXjg?w7iuY6|1!eY)<4f;{Jf~07ZRN^OfS2CR$`*`;l zYh!)4Cm5&OgX}454eo7GzZ~JdF0yY~h1F25v;nX08k-_689X#r$o1dq%<(h-zKzan z<)$*1C{RfC3J`ozIvN;NcSXPM{pQ+@%0Q-1xph;iHRNYaZfzIOtxU7rjY<~jy5Kh} zy6A0juOf#@xgcsP#A>sK(X69V+_*jm9pRp4B zEoJJn5K(E*RYD`}*EiV=S%~V^KCYO?dG-H4&fYR8uISqrY}~zZ3GVJr*%Nn4+st8nsmhm(s8 zi;luQ{SDflKk4(c``156(FpW+`;jb92~V$s;%u7KKdtKSIxkAdx6L?w^l2AMqG~S{ zFRJs8glQMNcB~SKjC5G3YFU*TrM|bH+(0Yb6X9So!%sc?YswcbKq$)Vv^?m5=`C5iK`XL; z_@1b;FPL|78O7T)3czc&`m!+o*rMM!J$`iV=QEyzMCcsm{mq9t-|>QP^l?I&d=0&Y zO#wCP)3r0-)%i$NZ~XA(V> z-u@1WW5mNa*sq0?3>s<6kT_%6^_^bUVk*r~nHwI{C4naEfOzo_SJwdiWy?!@u52y< zjQ~@9Bcu?#Cer@8V#ZSN&sU1a`3Ta1N zJ0#AkpPjbhonc#E7sfhXO2A}q5)!hfNQsBuAeZkH|L+CmA7FjVeu{hd6vY{xaF${n z&tzX)8y(O1}AHq>dh^bQ<(&2ribEU6)mobH>C+ynA8VXM|+I_TWZ;o zyQK6?Fj?>hGlq6bN-^n^kl0~SxkdEDnBk86lhpeZgy_IX3C54D64D>iIo3ZECruEZ zW6h2puzbAvuLbQc>e%u+;#vAH*Q3&F@e|QYap3GLdZ5O4yZY%@l7ip*Fmt{uGL{cDTX+K0F zXnzs9)kipk9X_q()ETE;?y_A<wNU)&9TwrMoXsZ+UzF2#@9=2PW>nZrY zQA&EdxRRSs+Euj>!BPXdKAX;X+prIom7B_2TOrRkynplwa{lVpI$t@i()-{?!^&sO z|B*qJo1r!&-&NlyJY4HX)z?ry=C>2WMCWwDe6q$fT&CVepyUhvHz!85`+fU5-i3qT zCmRb&?;|NW{2Mwz+=hiGHwUU2yeES+F-pKMycH#mvRG4V*OxP>WSz3*0K?E?M4eTV zwvBxI9zxa<(32z4q;U^ zRCONtDtv#vh;@D`({+c=Z$=xB)%oD|5N&AENiE`hs9ATw>+Wo>#cs>khc}55#_Ne$ zQK{_@tt|_#Gi-wKsAsh-Sf3Z+i;k6nE&>vNOG5FPa%h)ZD_%ZoUw+&-eve{m6`DOV zB|(qwz#npE&MG8$3fEKuZ6%tsU#5esxgPW0CM<7+UeiYpJ)ZwRk)Z@(oYnv4wTK5| zE`;=mI{!@S`%_PTuc+FegU=hI<;+%h!8}Zk1|aMfLK2Rgi__~1mmfkm>op72={RGc zY4w1Uj{8P6T$`>e`dOq)!44OPQ*0J_9olMoWm@du;2~sGy?)P(4MQOhf(`Mft(VST zAhRL9px`2*fh{6gWSs6)D?WZj*?g)ImAOSCQvBumrxQZMDY=$COwKYjEu6^F`5iMA zv9;670&2_+D8kkOEwwO{kkzO-jX?beS=p+^&k^J%LSbfV$rv>L2H?y~RtoehJ9}XJ zl4+)&(LCE=&c({HJaPQGRSYT|Ns% z)=@9T8MZ;Q0WT~h^O3nc*exG)#ZHX z{|9)3V)gy8BlkJBl|EXDNc^L0PxZK`<*%qEJP{Jn)zYQtJUt?ZE?V*(kS{$q`Ng__ zH(1`mUJSZ_&&5d+%UnkyFFW1FDyW|)&p7Gf_r zwSYInTB!UXck{L8l@;w9gEI%tuARDPS{MISVZo%`cygO|Pthw$67|f1Bu*RtP%u^>UVC zj#0~+7_!lUzXG_#FR&W;lm)b^VC0RsPS>JsguS?#c=_-t$r7)iKJg41`@P@4K4}bH zQPrfbFB;1G1pi{ZAk6 zMH>7?viu5gKa8q}oLfXnDi|Be+ z_b{AM<(=CM9pxgZ@#*&Vw|eJ!X>)Dw{^m%^D}Z%gtkdxJ%T_W8GBG!9(I(>DOVsq8_xd+Kw}jQIGfN+tivoK z%RbbJv}mIY%K;ulpuFW>b3`ZqJojZ<6cW4IHG4yfpjDooZl2zjI9VC~rSHlT=WpK$ zR+;CXM0dwWjo7T=q;se$@SN!E?CVMI8;VzCfC>e}2E!x+V3PacT-eVe4Ow@Cz1qXY z9j;y5yAXn^cYBh1IK^aiq9p4DV@DP>ZD!E8E!+w1f#!G@RA>0dK3tG!@aA`TR|1MkQ^u zl-;#hksN;Za!CC0kK@?7;udwPHl-}OOvGn_8WVie8Eb-yHh|gcpJ}E~qRqx~s3WIC z)Ta)~WwY9h*XA6)31=G8KwRv3P7Q-#5DcxY9DP1fUr%FiqQ7>e;2;g6iA+x;1X72p z?PYNpbA`!4y)`CRjwb_qq7e+xP66@bwRdKovK(v484^>-rs|Sf!&? zFknV_%2YbD=z5dF32k*E5YJbpMXYttn^SaQ^QC929FA0A-!u|ntfBxNjr~S-{DK?$^mG0A34A$u=!I#}tES83M(v95tkNe_S z_@XKby7-`CBQ+PJHsc!-J4EP|kJ(oj7T2(xj1SYimN$Fq*FiU2w|NfWC6Xj%GB*lR zV8mXeR#C2YNbdp%Tude3Qb1F~@Xot>H^a=6fwW~#*wB6|15e^T;1h@WuBKdkS zK7w|nNN5VUJulBUaNjgX6tVex2dxHSt;yeug2RLllD(o$0LQk#FDb387Po-EF=;5(F;Blmo4{2zU{E}dzzPEjA^YrvVo((2$t061X zD31)2t1pj`I(AJ!(|W;+bZ@M8R&u;*{+RXDYc8M;fj4I>))V zq+8^ko~i?kvU43YSq$hXkLp0ibm@Rv@t978b}U66XGcc@{x^r}mHJ@4e%~^~k^WGj zA3&NB?&0#Sso>sUx|x^o7TXnj(m=-Pc)5}iUb$Isos+l^UP!1tAAOZ8mxyw6rCWZl zsFEnqe367uYIUM+3d(#JmIon4<8Fi8=vvfhyEAST`ZXO8VCy_ej&h)>s)*7*<|k19 z#>Oix{4vtC7qi@gFjN%5VkuDWST;4s0%7wb;Mg0P1FRnG7sbfR)llb#XP~fu1%7Ql^Ighu(5SCgbKbMrFpd&xdb&jtTQcgByI4~pg zk!696q_>UBoOA*`016+8CjqKM2G-jZOwvr-MD}B0-Ib$ZZi5`Sb|J;(lHgA6WYiTe zIsYzp!HiXU+H#`@ zL?vggK154@A!%_fQa)5-v05RM8C?-wMwC{0N%cb-|MC zXQbt&BoO>x%h>Ozd%9WtcL@~9cOz8dMT&q(HVOxATnq;kfOWKQX?Rzvfeing{ruPz z%SaVXWNC&KkNYkUA{nI(+o?Cy~eaeVcT#pUoT(?4hlolK!h8)($Z%aD+I_{uE@6AB**}06Go0LMB)`e$#eC3;D-=${Z8UfK zX?=T_WmFn%w9bDD*|@e1B4=SB2?lvkS0oK|W)Zcw?iM*{^B?aj+&LyJgGkc(v|vc> zWbHT}@}XM9=zu$2h+X2qudvp+ zV8KYo=ds*H2mNPZC1w#hIPp4m%oMpIk(P}(3gSWM@E4c!=mZQY2&q+a{NF^U8tH5} zLNdhrXsLT=+n;6Q1S!Oqyg)|%7=o@)&o*XEPimqI!SlQq#few_X00cbit1CLmnB+) zO*wYK8T9+=)d>xm-}jsmo~b`f#mu7M^VTaOgBQq@L#Hmq$^=}6BbJ;1=|Ej!7D{{* z5PlUe<>h4bxc{hgStMh8ci<`TG~Q9GZrfWQC#Cq5hSl}?g86F8jim_PT(8@7zJ}bU z7N80u04`}JLlZv?37&0=8=*x4*t$F@;q?r04Xkx2nt&TAP;@uNh%>D}4Si5*7=IAq z3Ph0C+Sw1bjqJG#58`feRruLAU{fy)vDT%Qv`e+k-&|^xyVVYmKw5;-XycbHui)3c;XmZvV>7=kE5?=9WQuMJaOk+P4}3U*K6@C)3M)V|BQv522xE}qnN(h<``r^yQ#9AX*pw|x<`4Fu@g3@*_`9yw8+fQy z<;IACQZGr9tWCrJ!%$mO_bW!>W7_)|=QJ{-2k=|9gRYpy|RbErdvPWa>kPBpv!@?S1Q0BK1e2negP5Xytx{u9dAmYD(qk9QSkfBt!;Y=y z7o8%k#=`C@e*%L4o=qZClTnF8VvE|O%SJ(x3 zl!#sGp#wSiwRYv|3XC44lB8TC^`9QnW(L@289QiN2%sz6Fu=16z~bU!u-m6WtE^tT zb+wgg3>xmVd1(w2zTtcHM2%FXl6YAV^Ta?Ok}4LTV*!F6Tc>d|YyNhVq1BK4Y;BSY z2b}CWIZH%ve_dPJM?DUk?toP?zHHam(IJp%+>;*T>&mbwTXp+1euIvdo8uO zH2_(Hy{2>lyRTTIzL~#wj2$;l}yN}feKDnUr-8|M8e1wqAS#D_ceNWxT{yRn4}a8Lor!7 za^HxY4KhCV%CQbd$a}+Sa6&VjAjpfz)Bcsa-c`6V6m@vmKMk1eNvs&a@Fd6(+7Q)@ z7#EeMNxJ?R@WoCZ9*KhT{1+PfiSV@M40w1+Pm=u&lxnsaPy9lurJnUezmQ_;)?pN= zul=GZpK_1g0q94tmo6Y791$_x<9wt>|G6Eezv9QXcsr%j)U&B`b}n&)$g4XspB=K7 zKwWAoqaBu*V`r=*0T*p|P8)M|Dzr9UQ3GYMRgN;}R^@MUkv3H@Hg#E29fo)P~Dm_1G35!`!8; z##0~-jkE<|y@t7=x!~Nd>Z-0~U}w>8s&Xw^|{TSQcL7y*k9fB10TX&plmSmf4P(5+XDt17;-tk?NvwpJ|6 zB~tk|PrK-Hru-&Rh**POJmncLS43YPbw(enmXwPH+0M3 z73P6r-)84=DhF$!l9e6*<;YExagmY*2V6!nx(Ev4Hd%lx7T5<`A{ zfGfrS;&{JLT8$3=rN zMKV@NHXF8q-n}YT@&Z&1-My4G%#Jc_Uo^+v^8syX64>E%o3@z1R2N}~!axVV&rN${ zZtBmq?Lok%))!px8P&rg&KCRa^!;CD4V-w<=i1u`J!I)kPXk+C23=yaf(zyOQYr< z@9@+T3p`N!aI*Ou2<125116TMfRc7WB=7-+y|m*J)<)LOzV}Q-;ID0bXVAkxz}85B z#7oe{FULkRVWJOwNR?Q;KFnlHR7Ui5+`xyL7#A`Om*E6{?c6*zp)Lw{?pTH(BH+g> zoaoJ`Yc9)U3iFQ?H2OhxRPPR#R%L@Q7CY{QU3-{Z6$9&Zb*if0y;Hd;i`-#n{Nprr zELs$ZrmC2RTU`J&+~GT1cClP`s8|t*M}t}gq{$;QUeAx-$E+J2S4a39#ekD_z#lyt zpDAuV+$+HcxJG9-W;)9a#Xuh9MOKOOcmv_vVvMW3-mLGA-~{b zirfODuEixj4KH@-Nu`Gu{L>$Ug%7Tb{{XO9%YNu9S`q3(qW#Vci0`$`EZ2~-g(5xn z?{XMW9-mYNf7NfL`^g^gpN@piD(NOlQl})7>*rYx>pAE=DN~EIahfZGK8EU8SX9R% zz=(Lf`o>D+7WpBFA|Wpps7*ZF6=L5k444)l@9#$CXnz)GRpgCKsZRYINwEuFTP=03 z-?_>^O1r2HtZ?eiw!wZ_ZJJr4hbDH=93M5O+7e*SW)mILR5RH}IsH#LM{0;E&el`efraMf^3DUa#Mi07ZLJ zFI;iaKsbrLe*hoyufVG&35dn|!6Kq3d`OD~>{8e6U#^E2+V{^wAeN&Y6oVg?2PU`< zSd-7AFv7aYT1W(@h~XcWdd5eHz8M=cPat_d8Fr!OMW7t(R`QwEFYe4 zoH^qXbh!ht-=3&|Oq!H?X)w2*QtbS?X3D2lrx6{1llsVFd(2Ck=mRu>4Tew!M`3vKAf5dY1wu$SrNY4X9H23>ciDi<>!>#0{ znWog!$%l6HQfM10sQdAtDA0#SB_r6ciEYK?h+V(ry-?&tSiVEzlW4sgXL+0%%;31y z^$Km!QCD!sxY^64R*G=4-I8wGkqOn5)cXCHdB;23Xp_ zYq;hVsF_pU+`0c2Y$xPTEuA1~P1B9VQC)OyqZuxs*u*2L{+&{z0n!+PRLHDU7Gx{0 z?qr-3PuSa_t_Q<&GGj=-`)cwyEv`b4eVE%e=ow@oD=}ZtkG<1r>^F6t$i!2BK4?D5 znkf#(?GtPCY*?LPl&U_Pp1BzUrlpO(QIDgLO=}$*3TlRnjaHW@NlF+(ty(vz&Pd0L z(OjjP$?#KyocIYVx~a7_D_O916)k@8;aDiv@2<{hQE#quik>v36XOW=IA7x3Lp4IO z(<^6Od#a=?t!GTH5&Rqc)1gk5nN$(p z6XV%qxb51ttAH4orl@Wa9%4E^w%{V|&6bHqtg|(+(g!Ier!Q5r6wB@moik*yt0qdT z-B&o<$57=b&pWbVXM6Z;OgCh)sqnw0HF`Ia^NR_Zj!(wQ`Wh1*G7V{7^hdv@}47^pAO}2=9;iEJ1SK% zkdc>bSrYt)z)9&D>E`ne$Pd`W|9M!h;2R$n2QxuK<{A$jTUB3}UgF}!+uw8tY9^^S zP7y+LabXT2@HcueY%sBNq*@^l6|1OO_)b53*FDbMPQhi#MPkWI*KxKpwaH+IQ)>R#19baU1B?OI~!dfZ8E~?{yT%iz=DOhEx%r z`-sV!xxQrC6%)gaQMWSd6RNP)f@@rDk50&L0fa@8l`|mGpAv_|_FD^PU1$3v|dc zy{Y?X3s=IT$*4>?ODNiakl*{J4XD{RUv*^VbZGNhV*&PtdE*uGurS1zUW`-62-;0E z>au`xHKS>&7{{$f{3;r5g>4uBPOs-d=o2k-w003PyKd8N~F&$ z8HT#D8Pk&(BlxsxExJ5It#THm+hCo|?p%f%`&7!+8xPtQFul<={Bf&bxX1{=_2yb+ zGQ^3CM(F7+!tK`A&^W4L9htz{7gW$)*0mV2+AVEP0PC#sksC20I6@C8<7+6Iw|3Be z;}@N29}0x*R}lA9%h1ies?AY4@RBekpPY^uiSnJ2rH=%{aE(o<8Q^jsP6AWf(7zAx z#^1fin#KuY84Y#2Fur;;oK~O`XV(FWX+xxt$Igo3$dBJDN&;-rNW`$Q?Im0Ji`0dX z{I)WoO4VCgK=aO{j|xBLhe*Jzz4~H%+RJS}4PlPquBq)SwM3J*F46AG2(3E30K z;3=kQQW<{_xU%547^efil1OzQVU}ZDfhmdBF>}!jAo+bQcUG}7UKC{!#P9p z3xt+kUU%(fg?@|d@nm#32x2H%(Cszhvt<0M4@r>Es)_v2hasXVKi|Kv0%@iaPmgG? zMI(VdVO6i&7U{=~UyDi4+^Y*gE9Jb=kbLQ+WVq}ri|EvPVaUd*BfTO-0FC?y48E>G zgHvc6<NlQiX(C!qMb(MMGD%V33j$b#0T4Aqz!4AYoDECLt0 z<~|*lyd)N*s~G^mB%`E(3DU|+0l|$S0A>Xh>4!82Y9KNiid~q^HMLbgXj5cqW4-Wo zWK|HDlwd81JOMa+K5MDe5}(dWAa@G*2Zz@@DC&D(6u7END{Hy5efq7k7t@;CvsH_8 zzo|?rk>P_P;9}+AEzh9jdREIWVd;|3J{TloPAAm$OB%Ax!J}O&-a!E?SQyNb2hs!&HFgxM!?C3 zo+^YpZx|oG1Yt$;e?bMY8ou4uJ!6Fr8|&tRn$4Q2>vHBn&GdM{8fu0RM&_7!Nq~?S zV>B}0nnEIzE$H*|Yt)a#0IS(@MwEC46L^qe6kF7lNA40su1d$*!J@!(;R%He5he zW$Exml>;26u@c)*rZIP-{|3cCN;-)9xZU>M{OYC2@p-x9O#J_W?#Btx%|*h+0a4%S zDL|O2HH4L5@I$B~_`sY*6${cpkhBK5Z&DST6f)vGLGHp(1+4YtetenCpdPBgdzY_P zSr06Im?!NeF=>rMGVgvm#u5lCq9FDVQ>q{%n5-HmO$eY2MTgbIBC;Pr_}0INl>Pn7 zAOl<1q_^IT21J+tF}bnNE6lAh5!4utnd|p-nZhJu}kPxYFP~%S8v~Mo6R>=RYTPR)rc^nX;Y`&f~bn zU{^urybqa@f?BQb%AC{bSRIQ~n5P}l8AoGV1}V1@mBcc<`QjZJ2~`pZP^woNRbHD^ zEJGH#5`~n;=39A&n?`gk5x$PY4OI_8OLnt_pccIT>!htJiVMYl9xLPh%BIFE`2!uD zi!_J7(^wYuS=%(Bsfny<5$SF0?1m$)Nua4ERvtaA3QaA~SOC1xQn;=%NxbjT15*z? z#+7ebexi`Ieh|f*H=ADsj%TU&`A^m@sZnO`O8pa5TF&5@&sk4|FKoILnfQdM zroYO1aa*E);>P;?txA`&BDS(YZ&qwn;;n;@Z8es7Y?`yPyS1RlS;mLkO@-4ul)F7$ zL(h|}nUyyXOU|JNxs8%YX2)mC$DkTn#uxOgI!6H*cBQh|m^8*!iyc-BEl-w>&?c$q za&h-md6ni!hbz5FZkMifyOKI>yyPJ`;Dmzus6`jEwC_XKqPKNmNTrQ+&inzz1aD6< zIb}iyVuMW@@Fx`|M$EaSLmUQak^nLd8Ym%KnRJ#m0*Wr>)_my>7w727`YUG++~U-% zTLsCOwo>B7v+nx~tx-2WXCjYScT~Zo=Cf?D4=$|Hh;!nxqqr zaAIKk%aVRwPZ`OiZseXD%f6$Es?}7X(!Mr?F0Q=E?mG0K_S*3qQ7S)axJR_dT!fYa zYm@!hRC$%Wiah)3(8IKana)?60dh3CAx7&zCT04w${20@l-U4XsFB)Cq?5+-MI0mw1SOlrGrhF1Mc^4>l zc_UY(o}K#vD_j{Iz=-RY@`U}mYjb4SXfdLQ0N z>q&?u-vw5MK36)WV1z0lgZdMK6d~{89VB!5&p|<253vjvUvralpESXJhu~J3@HnB4 zRXGD)J(GT}fdH)Z$|*|4T$Rxnnr|~v^ex-4sgXxkUEQ>$cHWoV)fLixGAcet_I*{f zq$XA2s&4&+!CaWZQ0_rjC$leE=Ny`Y=+no>+3P?^XG=k6>p~8DP z$U;UroXiqseJqu}+z2pe2}j#14^huRrmazP9X-qFDFkc_cbmlzDsC`H3H1KFt!>!~ zr|KV$YODoX_F1maaldj4^TXl`9d$(PX**pEdDKv@&Ot+@+PGp_U{K$izs|y4C3fH7 z;80i|P;k#wZ*s?D8muo{S=?KI^_S6I?yax4O-4F^wSvNZYRQ%?#C8?yr6syvY-H7- zZK1EDxUil|KWlkdr=;$?jJDM?#v0v~Rc)#xlxhzZ|HdmH5jVO6{Xc3H#B>kuo8Nk4 zd~H!JHp16pYLK$!D;niWbhZGfc%Z~n>g!);fr(_~K^SnGzjg(F+w|G2D6FdTosxSl zh6=mgK5g7MF`Pa;y*fX(<2~hl32cAaKzUUY|85lM68`$}!^gVs`~!gvNe#FPfKw}SrxxDEIZz|*(?1_=A#0N&L=)&Gr9v-kV8X7c4jJa9f>k#l#pwJ*a|$hwodeF6Jz14YFwpgACKdWJ^2$DFsmO|w$_u6Y`_kJzWyU=^ey9>n-Iv88Ry z0Uv{HK!el0KbGPfx<;4G8SgwT#Y1`^@W=g(c#V029Vy1MJ4v6DkRylIgI|A`+Qz#E z49T^I3y~)JHPvjrmbC;`^mR*?X4n}UUw_-VM%*cPRhg8zp~)eOF;%CK*|AVF)~;6S zhlEw7@mjCZ)ObRz8?a3FdEGbG&}4@4A~jvMy{Zjhl{D8=xxEKET3XF56c)HKGqn4! zfLXtB@CdWr(x|Nu4=Cruq8k)TT8+G2fUc#PO=r;5a$hj8D*ZbVeDCeAx14Vp_isU6 z-JV6HO}4IOBE|}uf+_F}$(qu38aU(tUM#_Aq^!s^9L$u|_*6-T_>Vjq^`t^hzan(# z@N~GitH*-%?irPJ~=4Q{<*mN+4vS2jobT4MZJqHlIhl)7#7) z4!)7ct5R3Wq=j~U&uyHXmV$nv&2z0{K5|gRR@?|1z1v@s#@5BNvxImKRcah*3^Nib zff>yO(@W@JaMR^Mftr%?-2}tI*$0r>R9;QuY*03=tcA780A0M+g`Acw zDw^OG-0!B+VWTl4k8v<1f4tJX8`;ssI(RDZo-i5*l*o_4DwMFI_%w`C)kR)7G(@Py zlNEh3RIOZ-mFav~oeH2C`Hu9c3@7hYbaJ3dSUM)9OA2m`nso939QFZjUKD^!1|Hzc zt)l2<7MynqXCqK`H#KINSUR8T7>xMMZE^4bXYb9H@;%$DE3tC*55Sik)GG4ftu*N$ z!0+|B;Pn$C)ws71CM-DlK4&m_m_iB+oIp|0yg_z7WY5CHfqc_Xq$R7}@tMb3QYeu@ z*f?SkuEyy?H&Y3j&k>H23eJ{MKOxlGL!YmaBL&LAK<5JRZ%Tkl>&m-_yZNy#@=&kxqv*#VtM(@qmV9!fW2D zHk{LbAC4cm9ZQd8o;d$RD;>+uY!@{`eZ)my#*5jS8*8B>OGp~D!M=HCkGs=Mxjh)@ zgOJMebsxaToaR%LC#TvtEUxjBSSEWERH3<#oTUn@w9u)qWO~t<=ODFvW009tWp(VX zr$wZI%qyonjkMZm-(keyzw~sqCvotO-r#*xhtPW1 zb4hj&x5_coIkJ%`wuk?M%3S>`bM|jpu)2?=t_kVb`$g-JxL~ZpVimWd zHwr>AEO!H3oIvRA8tE6|8VAP>JL()gQRdcBvFNYKF)}JJM>|91OywLRQXPu6s9#{R zcj9zN_vf3 zY?4s3e~-PwN+WUNV0C_25SX~w%Zut9?+vzHOQHR_quRHVeH=E`VbM+n)V=GnjCRh0Y);k@j$g{`RmqCK8M@SeT6ie*W)#1I@Az_lSd{( z&J2{b{ina)HX3!=6%Z7ha|J-vf<0dQCgw1FECQA0P^)+mZ18&tnJ*r*+pMS!XY^H( znJ6pFA-aJaRw!BoM@9-qIN^vuNuE_M3=<=rSNnx!L|0w zJwuJSNhz1@Yd1}hiEOv|{8k*V0!)$PPbRG?-}RQj*t10%x`P}T`W>L2Bv180Le5w9 z71NOSptRKiTw*SAv;&#q&-QW}j?9yUXT48uo^xMG8712}G^hUBNCMa8f96tZ?5~cu zrNbV>BUK|`JsH#Fq~3&fmQvDFT_96*Yr_Np67IRA38kB^+|(LiIAddS4^pXfFjSp`53o2M!J6L9_&B^Ti(ZY_Aver9?V+)MA@W>i7y2HO?evf8j25TD9Utl#%0Ibbkf6+?7r?+ukFcB=SEP-QH2Xm5y@)0dO!T6oavY9 z^vtekS?|h&&yaoWms!ubHF@Tf@xsOtyqZj6c=WIQJ9Qn^)w?kc|AWc*ONjT?M@9!t zW2fau;|2$nsD-`Yq21-Gydu$wM#nL~om!Vzvuw?#2$Dt!z<%-K{cgkfX$c9^h{>)J z*_Q<@Y%k+U9CpZ3S>D7_ZAOfx~(lYWXoVpM-R4#!!^7$O~)}1O(cth2Y~kjeOIo>HQf`e%EKregG`p`?#G(fq(QaFt;*2; z_k6s+h?-8enK@r)TG*Wlq(Za1%Yu4QeI>-BUwvroY~Hg{pC0>HcDj%uiG3~&3jyEK zyvS-@#AOXZsT%FB%z!4qL^$}xmO*7&&xvKUTyr(nf`z`>>&cj?2fkZotJ+~w!mWrf zrR`vl-)_sEb#Jw3Elx&zNN41HUb5Rtvd1F2C>elH4J-#>Qy6z{@yf1kx%Xu&%qNKr~-q#7X{u!i|3LdLja z8@pwvNyBIZ!sEbwHj7f@q}V?4I@K0#KuM`&c;Rq(X)ROkgC160W`%Btwc&KjD}?6W zACqm-Te&>!EGc-=!#H~xsHwJ|DD)+fOn?Co0LC+^jb};z0lMP{95ZLnZfpxb7(-wA0|*d)DR{dhLOeSht7_b1FblO=j)EsS>lZ zgqWmMeKPXHUq+w*2xOy^Xf-Xzed2a`12vRd&E?|?^Md{cI*8nAFef)fy-Y0op$#vo zuy?#CrFy-&4~}1Y&ce>?q}Dm3{;w`igA>0uer}jDEjoOUe$Jk}s$o>)ZyBI~11(p) zX)@bK@_F;M{-sklw%w9aqU2#&YKFy{EL3tZV^3BpmX79N#*)yA>khcO7+MT9=Z@mU z4rfaAAo65V(!e7cc{h;(BuPMj_g6JUThaZ^v0LdR``KmS@^dLq-r%InX4w*VQl4^U zT3623MO|k`_bl>-{YXxwMh>^6N=fO7Q6#GmWhqvFz*bGtVEh4k$`^}hx7ZI#d`O=@ z*mkk>PI^t~p;W8~#}B6;=)c|JeC#^znz&d?&? z;=2?B6diVE^~*Jd0>f0AHB95Gk5sa~YAJO5Vi>)Ax(!@!9707QM@@$vR#;=w7**A#7*i+p;C`H+)#impuD3)R6fyikU;psD}vUoG(age7Z$dWoybald4&* z>=-by3nDy_U7cCm7tNh1>K&R&ol=lM=M4-a$=zNT8-_h|E}7Vj^#=yzF|{N|MHEDl z4y=x>jTk*JA4Jwou&$Ye1v3=D1_}Mr=lUI*8Y>*ZTXIbw9oiYcdy{hJQH+X{nyalN zT2r>1Z62MNi9Ikq0=|`c2_{rbl8Pz9IUg@!+?|giYFN7L^$EM(E_SxYO3!0j7QR+3 zUdyv=lZh2rN4=F?4he?Y|a3!X)=U2;VZI!YRmT$HlOG_OOvcWiqm>7+|{ zE1<-WYweISh5#p8ww;LVfA!HX&cPKd;?BVOpVkva`)6+)EBH7R| zS^FuD#X&Dg$FHP$4-}k1i*QwLR*hF{BD5^TrXtF6(lZ3GOvu?B$-9+@onadyE}csp zQ&kj-K}VniPz^>7mp6{D^KmhWG( zS4`&wK%!#-maa}bj+)B%=@cyaK6W##@x*?EQELrVhH$b-xN`|sW}(PMPC|=^OSoJL zLaI^|xu0@$Q?#E}*10K9r@KH*E#1`d^G4LzckTLs2eFv;LXV5*^{so;`eyh?hbI1u zb%&Rn6EOZxEbhdC*x~)8;^qy=A*eQ3m`4QD6HPri5XDMe$OwC;?kkZqmF_Z?UlmTy zF(t~o>DwfsQ|(C)Sg*&V=3aJ8<~yLXGs7>n8~i&t4)-DZg` zXe>gd6qgF@1BMNV%7iGqCbd&K?=eh&phxuim*AAfl~|)WODYi?77aO-(O#E5-SpV zsE;un z1K;mY>6_sm7AN%5P@n4*N*@m!`;qAlASrn2u8Fk&0A`4^tG6O$^B1$N6PNlS=Hla$ zF0v`aRA`l{t7VQ!PMsP6_&b2Qc`GQ84?(=0Auy`$!TUI@~3S-lguKvo)3j2b`i; zWc)lxRwEu6tBkvoX%q+LAbyd=196kPOt%Ag$eWT>Q$kScHNHJ+6czb9nxUcNV@6NTFbf=YG4KO^dl}D{DH>ZVAVI^1pD2-rGnL|$Gph1*N0X~OFewHPS!q{%D4@n8?jl- zR9m%_TFzx$E<+W`eN{51aumvSAdTB^n2OG_Wg%91U9sEg#&9JK45z9-Ey*N~e;>s^ zNDq^M0NN{GTGQhgb5fqI)$SMgXWHqnyTSd9wak9c$JvagOR>o5=Ibj;q+d|`!W?02 z-C>7}ug&D@6fL$=78zGd#YQ}nNXJ>D1)mts)NGN9p+!Lxh_e!6$ zZo90VhOxFttB|JVRehs15LRgO(90}P4t%)8cI1EsI*xdZYU|EM_KHoxkq_tT_0~v~ zebWaX9zN#Lg<$|s`@~|Np)lwgjj}ul0zNH8K>!bTkF&<1L9@AlfXjQ2J!c`uw?(Rn z+H0P#0}t#s=5T_?1|myB%YY^%FgZyT0NSP;W_Y+;>j*)>`5~4py~y1aXH$myQ7HMu zL_e`5Wu79=Qa);Zi>UU80})3L8mL01B@~ROb7+fsevoElzVO83!~7-gkA}Rw+*I-& zFtfa^THrS4R*Q(ULAV5EAmoPK9Zj27IoUdl%2|M{=^`p!6>hnDi=oIGeVVtp8Hm}d zhHrCE9H%#8i)kk6*9i$30F=~Hrd)zn53OgJDvlqb1ag{*36n8I=Hqn3lprh=D&E`j ztUfehF2}dGNaQ0-&DpC-NJqf1j%Ma5%XvC%gN0j}MaoF>kxtjN)jlC?&<|3Rg0V!$ zPQu9{)!0Zx%dt!Ld9>pR+OW)uf8P6T75d#g^m9nDVP?woOmQxG zd`FORn7>(~c8jJyXrUoyVF;n57msGm(^4!@T!g6IE;X6lb#=U6aT3R%Tw&yEHfTG% ze3P?VpwA09-JGDO5=i+Tg?m1gnvkm$M29GkaxQiXN$fP_9FrNCS%}96X(bac7U?I^ zvT^Q{5K*(%4^Seh966Na0pn*;yS$hTS$x~JXQ$d}xe}FBm$g9VNhvqA_!Ctv)wW85 zngsmB+ZIlZFoE2~kuO*$s-Pm4yW?tAR7k6DTBGYp5aI+;R!=uRyKz2)p~bV3^^ke! zU;z$c#p?rDuMZ@#3u-is1XUSy8Vp=Q)Ve)ZWsQN7zOU=yJtX~iMtZT9FfLajQ79EO zfShd>3=}B3E1b_TWOew(Z|eBri4+j=^qE5#0DRy*<=1XjIK~-YY}q6olH-YIq@*Dp zFj7UsM^7d(<<>8?lci1r)=9e{3J+t<@SUoSOmiH@+IB12-Y;IQZrX-ZYhIMXa@i6( z(Qr!-$hN99gUe{xW|&lyu)wf;5_YqOK@%+==|UXIf-59EeW8+5xYF+*63=#YsXuHl zSeYbK$f=7Kczqi$7X0jrgrrlZR*2;R%W+W>74jWMD5y{z8!LF0ji$xGV7yopvNpHP zYph{Kr49u*K`iQ7R)|L#vWb|g0>&pnfIxH*;-VO8aF)6bBci&flHS!NQ;4!z=4V!x zusW}(xe`(I8y3x(H%-tK6L7H=GD38_H4ohT-Yz^j`<=u3X81?AQvjH!OyyBCkj70^ zlpyMwsH#CKi7J`7l;sdHN0Wn-35f=0(d+d)Z2=TKECLBr-* zt=0YFAU&KOKcihHB%Pc*L~iOz5*7fO{{Ts6sVDxI5f_GaR}_i`3cTi}kE^l{(tSFk z7qUYoFJiH*)W%?p#N(180@=BgMXPq{r`jrhwN2g;(7t#W{)Kc^ zNHye8<-@s*t&?w=7D4l~KX9eS)iXHT*31PC*}P-NYDKXUfj|mY=p;fE015yB-gtYy zZahC1aQ>OTQ1?!PoVDgdfP7@mADVFYyrJa*;OHz~l?XZyn8E&O%05z0Ra#Y5YRwFkbr>m0Ra!WczyxB&UL^G+WChmd$EC_|Dh^&%`tdY!;sH~aNStS!Nl<6vxfK?MwGXQ~#U;!wGf*SWI70ca}wAxJl z&a(?{w;TXTSgpy-Gi5V8po&fkno(>PI>$Jsp;IXY;!^=cqT$773_#3R)KO*OZ1LHH z6h5s_MI7ck2^bla?WGw;FIx#rlA?-2a37394y6Y4%j+)Wamy2t6GL=q>YZ# zGGv4mI~aK6gusym6mYqdM1lrT1Qy0{)BCv3_IO1cMp`pwIh@8-Ix*(k9LPI0GP7uh zcAbJDvw|23ZqQL!1N2W;D1w|Vd&5}}GNv<4bP7j~X5ac1; zKc;V#JVQz3dQ&S3sZ!k) zI~V6%lebHDNVwp$W4wuxV(57_8{KvaF4YNpsoQAKl5w*2nb^l`vvnBdf{U|!+{6Wh z#wZq(H8J*5?sOU7?LSkH zMbow}RS`&3BBGHMbBXXx8uw35r2$WWWqEGMWxg@7sd=K+ud&O;qT&WJP65m^Rx>eN zr*i2BK#5f$Q81XMOK*3aQ+1cIZWgtaab>3SUdz%|%G91Pm!M5g$kpvQ=+H7PWnH&< zUjwp!(eoACuh^;q)RFsa%a!QtGFBbh#vn~4rYmfg4CR`pClQ4-yQ&5{EOZ1ZtWr+f zAPT18(-jp%*APS#ba64snk}0brtX@hXu-*8DFwJQ(PXPxRzWrTLWNkLs*)+ye=s&N zdsLxUMdNi;Q8Z4YWfe@uvDR@OG`zvy-xj-L$VFPjy|Oy*YQIn_c@5l^TAmOnPg9(; zUUkVGvKLR0FpyLsQ0Xx^%GujEUEgB;s_pVMq@Gc^!#8T~*JhZIDO82W81=i-s?A$O z?`V-bWfNG48Pj3{XHmgAY1_5Mcz+~TG1La-LvPp2DRs;4EK*qt5OL{m%`TDG*vKgP z41H#D)T*{{%_2%LO>s>`#Ka4=W1`NJdvC6+ZNEuj+gBaf zDLEAiJj^`3IqL>!0oun4bc*3JDCH8aI`M>eLs-~;;xZ;a%GJ5~yI;|L(#*Vbh@He- zC#un{ZOJgl5>G}J#+7|{4P}nqt1wk1TbMxUl*(avyk)ff+exzD?{HY3=>v_~I z4QS0VtlW%Skz{H;`J`J|D-I;G+TFJ}#-!k`go25^WwA(^)FuP0sf+H^eZY?0a8$No znU}Ny;AG^QQB$P3fpd?ZLlyO6(_e8-O*amakva~?uc^2jMLUP|&G3%~0-L15Q39Jl z5h#cV0kj@MAUsj92Fmh|KiL-GoW{3ne5g*>9>9)Yv?hQuGisjWB@F3|1&YY+5LK(0 zGYiuh*%||;#Y|K-$Re^rHdfd8r@PCIxiz?~{d-GW8ywdh-chvj(u%JANfccW#W|EY z#NIG4lt4zwQOB7sBNX2x@%2mSjgrR7K31Z-JaoUBU>%cZTPA4=nT&W3|ou$w`_@z<&$eQaH`dm9@)v- z1EaHe3cq{{8>PZIG{q1Q8h!;35D*X$9lzrp1Ozz<4;yv=0PwbxmYNnl@%3ob0`~$sWOm{VUaRU zBfZgae58w(@y*MbFFQbsh^P@K>lr5Tk~5MoR$|p{N(s7nPLToAjJ>t|z4l#Z%;5uP zv&&uK(sPYoyo7H&`nwejqgygBYm;%3v9Yco8#!e5IYnG0slhN21dbC>HVAo03Fwcs zRkJxrIk@NW^3jgd+k&EIkK<(#LP3(n0S}6?0R18Z&s}(}V;!?*i~%jREVW#ne)d)C zx3sK_QDJ6(B5b3M>{5=PWKAC0KEyIDBou6SD=LVn2`oeu1jB1vF~_-TzqmVY1DnbA z+wN7RnC|i13(SE07A7#qa|(%uUJfyGnPtw2g#w)fM?$EfkwfggwC%dXHyM!U_Vrc~cW{E1gMwM>Ns~pRi>Ns7J?M$kN_=Cpf*+bl})d)*Qa?236 zU!fDS5bvgIKgBBo<IE&Ppwu*J4hk8@G6;tBT+qLQoSA4KOy_A#B*&0F{keOCn8J zL6m-3&-Z%$Vg?Bd23C`VbmSeO5Y_>rMN8IJ7w%e-%Ess;WKqDjJ4~CYt2KjUJ58Lh zOg>OneJwF7kCc4=N$SQPrJg)+xTvYena*Jm<~(?E^6-C5-za;AA<70Rz)E76H7SZA zpn-rxK>-dn>yPe-kde4xnB0+7THO6oxl++pvb(A|r>OmN99_AbfM*P|2Ma5y+#rK> z40EVu2a672h=+eyC59UuCG3|@({S=8UZ0O@bvNg0BGeM?QTDZcMVhV!NnXgr5h)G= z0Ub@xY~(IEXBi;Lt{ToM9R)59s>hH-vpBmfxo~1FZ>^%uWnV+e7{`;3e2}E4Y>TB% zK{ymTgftU$hfsid1a#CuG~(&ERpI14yF0i#K4^`wrlJRm_G}FT&r6krc!7kDo4zX2 zZJZ#XK}6Lcs8e(a3My^N4Xi7;cbH2BN8#C395_YGX}2*Ko3)j!?0J&{sEQ9GZ3vM> zR45rG(l`N*PLmGVpzzKNt71&;fNnBY$$iDZyG2_zL0Q;7DI({Yk~OoZu=7QDQpvS` z>FZOZkEyrePNb2Kc5H zLYGlWZAuucIZIdGT4HFD^6JXLM>|D~i^$srUUI1USoaP{qhWm>-gM4VO-_<5bU`y5 zfNrv?CDck~RWU?Eq(r7r#wdttIu3)(H61ts00Rj`rT`s4rV@x40CeUB5e|G_v)z6g zQkGkp=<-eB){!dGRq2Y|7O7r%4CUDRxs@Yns1+4v+rU^}9Ouc)@P7`0ZRfH7llUC#p)^o`#5Om=Ub9 zM4NcKmWmx#>Lc5o6-8tRv*L@n8_S7IjccyvN~U48Eh{7mOWdU(ZISj_B%Dc^6^PNq zm@*WTFeE8A0VzsAOn^|zH|VC$*~Q+nMegYu&G;e@*~i+gQnSpOJ_hP4-`5*9eo`yY zV-vI}^oWLo!HKS&MKN{p^y&f{{q13CAzEJn`lUWTrn|BaKmy05_)hu=ydCRNQ z!v6pc>1}Ft>Ws&-&2vrr&_+q)v>A!wTqXi4iA%#wQ5i;*VUV0&XmsbUFB$EXR-G8? z!HMUx1o_5&Y+x^p3}3=5)uUfiRom{A2!Tby-HEZi7POU_P^*)J(nUBvX< z)q=L7X{BJPMo&{=q9$SrQyxW`oEZ@nl}Qe1m1{52jK4PxUoJU=x~`=3-7t_DKG}80 za5hYT9BYO#Otzv^BCc)$)3O6XsQsd3C+JrNNR7&0CKxg!{IfSmkJ}`6R*RIi$JT3> z>y!bkmJ_K*i=TAj%9IOn77bKD(DCbppgDWWJk%S--Wtj6e1N7Eor9>*GRoH&_H=xs zk}GsqFKrj)v3zwkJDgXyh<6o+E4Ywm0s!?^XE6#mn#P4n{ZcMbMvZCF>8>S*vDp@kJ|=xp0|8y|bYfC1&{Ui+Cz$QG z<8FFR8iw(MJf(2PEhA};BychoDK#8ORthSp>5FFV`o&YM4UU4UNJ%Y3c^^n&nj zq@ebRBxSoafny{?015gD)FH1(YoK_0{CEc*9v(hCJb#Ce4*}!DpMY?GOy4Mb_i}W5 zeX5rwAspfz{Dn%zF zJ*p;E{Gn(SbJ8oQJ(kp8oDixgEX;nfIe?@%h@7B2SL_g2_}JvN>ZDZ>yb4x#w%FBc zPz7B`RZRX}t7#%hpsa(G6e#teW~FWg0-TBpi`U*{%cRUQu=U6kA}p3knS1=_yPaX`pEpNrIkg#;XqMyCBXTC@3_MT1u&UCP#sllwAn)UQWwL+6p39 zPn2-r85miC!LSh`-XfzVmuV4_BTo}`i6(}Oo@O&FEC~aqM*|>NEhVE7Q3Z+svPA}st0J5(qpH-`L*U#Qalcm$8UcgkCq_0_rv^frO_{tw#aJBlWACW0|^(RrJ zqq}sh6M3iy(^Hl=Q7>iVl2O+=+XC(ia}iJw0;F=8AnD=WYNb`vp-DZNLdHtRwH;Vt z;H6rZ)RAiuBJ3K=JccxDWHlq96^f~qFIkDv!3bZ?Or;@1%u;{=YxjeXgWu!B@Nxb> zzvu3Io*#?2e@x#9{m->X1J+Uxi~j&>PZ*>=@07mpFE1SR0S-a~s0e$41L6?xd_C^x zhvM#jEk7^0uLI{F4LJV*4{-jGzEJl(JYRA#+p1AmOeJ!N6#4?5KG3J>?8HaJU;**{ d{sY7CcfKBeJUrjv?s$8ji;wdE0E5Nd|Jmk0wqF1M From e8e6edb2e82603f7ff14f816b0a48b814c15a76a Mon Sep 17 00:00:00 2001 From: Abu Ashraf Masnun Date: Sun, 11 Jan 2015 04:16:41 +0600 Subject: [PATCH 16/55] Updated contribution API URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b01a7d5..5665098 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ # বাংলায় পিএইচপি - + ## প্রারম্ভিকা From 2f0f4b669a0867a457707a3d164f54a4ef8dc6bd Mon Sep 17 00:00:00 2001 From: Nuhil Mehdy Date: Sat, 24 Jan 2015 22:42:49 +0600 Subject: [PATCH 17/55] Download link added --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5665098..fde1f7d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) +[কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-ios) # বাংলায় পিএইচপি From 0fec2b155d26c7f76e92e1a4ca79c697646caa3f Mon Sep 17 00:00:00 2001 From: Nuhil Mehdy Date: Sat, 24 Jan 2015 22:44:47 +0600 Subject: [PATCH 18/55] Correct Download link added --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fde1f7d..a45225b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-ios) +[কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php) # বাংলায় পিএইচপি From 6b985d375a0d3a0bbb41affd0c973715fe85f594 Mon Sep 17 00:00:00 2001 From: The Gitter Badger Date: Sun, 8 Mar 2015 20:10:45 +0000 Subject: [PATCH 19/55] Added Gitter badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a45225b..5c3c9fd 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ # বাংলায় পিএইচপি +[![Join the chat at https://gitter.im/howtocode-com-bd/php.howtocode.com.bd](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/howtocode-com-bd/php.howtocode.com.bd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + From d10178e9979f9a385da13c7d10009d03a688e3aa Mon Sep 17 00:00:00 2001 From: Nuhil Mehdy Date: Sun, 20 Dec 2015 17:20:30 -0600 Subject: [PATCH 20/55] Like box updated --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c3c9fd..747a99c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + [কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php) From e7326b76a3ee7426d506d5d137b4c02a2138ed27 Mon Sep 17 00:00:00 2001 From: Saiful Islam Date: Thu, 14 Jul 2016 19:50:29 +0600 Subject: [PATCH 21/55] Update oop-static-and-non-static-context.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit স্কোপ রেসুলেশন অপারেটর --- oop-static-and-non-static-context.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oop-static-and-non-static-context.md b/oop-static-and-non-static-context.md index ea6f1f5..b3471ba 100644 --- a/oop-static-and-non-static-context.md +++ b/oop-static-and-non-static-context.md @@ -81,9 +81,10 @@ var_dump($anotherPerson->getCount()); * স্ট্যাটিক মেথড কিংবা প্রোপার্টি কোন ইনস্ট্যান্স তৈরি না করেই সরাসরি ক্লাস এর নাম দিয়েই এ্যাক্সেস করা যায় । * স্ট্যাটিক প্রোপার্টি বা মেথড ঐ ক্লাসের সব ইনস্ট্যান্সই এ্যাক্সেস করতে পারে । এর ভ্যালু সব ইনস্ট্যান্সেই একই থাকে । এটা নন-স্ট্যাটিক কনটেক্সট এ (যেমন ইনস্ট্যান্স এর ভিতর থেকে) পরিবর্তন করা যায় না । +এই সিম্বল টি (`::`) স্কোপ রেসুলেশন অপারেটর নামে পরিচিত। নন-স্ট্যাটিক কনটেক্সট থেকে স্ট্যাটিক কনটেক্সট এ্যাক্সেস করা যায় কারন স্ট্যাটিক কনটেক্সট সবার জন্য একই । কিন্তু স্বাভাবিকভাবেই এর উল্টোটা করা সম্ভব হয় না । ## `$this` এবং `self` - এতক্ষনে আমরা বুঝে ফেলেছি এ দুটোর পার্থক্য । তবু বলি - `$this` নির্দেশ করে অবজেক্ট ইনস্ট্যান্স কে, `self` নির্দেশ করে ঐ ক্লাস কে । \ No newline at end of file + এতক্ষনে আমরা বুঝে ফেলেছি এ দুটোর পার্থক্য । তবু বলি - `$this` নির্দেশ করে অবজেক্ট ইনস্ট্যান্স কে, `self` নির্দেশ করে ঐ ক্লাস কে । From 9d02f71b4f281a007bd4530a0f99b71c97cb4c84 Mon Sep 17 00:00:00 2001 From: Saiful Islam Date: Thu, 14 Jul 2016 19:54:29 +0600 Subject: [PATCH 22/55] Update oop-method-and-property.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit অবজেক্ট অপারেটর --- oop-method-and-property.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oop-method-and-property.md b/oop-method-and-property.md index 69d2d73..d8c23a9 100644 --- a/oop-method-and-property.md +++ b/oop-method-and-property.md @@ -25,6 +25,8 @@ var_dump($anotherPerson->age); এখানে আমরা `age` নামে একটি প্রোপার্টি ডিফাইন করলাম । পরবর্তীতে ঐ ক্লাসের দুটো ইনস্ট্যান্স তৈরি করে নিলাম এবং তাদের বয়স সেট করে দিলাম । লক্ষ্য করুন, কোন অবজেক্ট ইনস্ট্যান্স থেকে তার প্রোপার্টি এ্যাক্সেস করার জন্য আমরা `->` সিম্বলটি ব্যবহার করছি । এবং যখন প্রোপার্টি এ্যাক্সেস করছি তখন প্রোপার্টির নামের আগে ভ্যারিয়েবল সাইন নেই । অর্থাৎ, `$person->$age` নয়, বরং `$person->age` এর মাধ্যমে আমরা `age` প্রোপার্টি এ্যাক্সেস করতে পারি । +এই অপারেটর (`->`) টি অবজেক্ট অপারেটর নামে পরিচিত। + যদি আমরা প্রোপার্টির নামের আগে ভ্যারিয়েবল সাইন ব্যবহার করে এ্যাক্সেস করি তখন সেটি ভ্যারিয়েবল ভ্যারিয়েবল এর মত করে কাজ করবে । প্রথমে `$age` এর ভ্যালু বের করে নিয়ে এরপর `$person->(value of $age)` এভাবে কল করা হবে । এভাবে আমরা একটি অবজেক্ট ইন্সট্যান্স থেকে ডাইনামিক্যালি তার প্রোপার্টি এ্যাক্সেস করতে পারি । আমরা চাইলে প্রোপার্টির একটি ইনিশিয়াল ভ্যালুও দিয়ে দিতে পারি । তবে এই ইনিশিয়াল ভ্যালু অবশ্যই কন্সট্যান্সট এক্সপ্রেশন হতে হবে (অর্থাৎ কোন ভ্যারিয়েবল বা ফাংশন ব্যবহার করা চলবে না) । যে কোন ফিক্সড ভ্যালু (যেমন: স্ট্রিং বা ইন্টিজার) কিংবা কোন কনস্ট্যান্ট ব্যবহার করা যেতে পারে । From b6ee418d66d63d7fc5c52a2bb2248f46f56be5a1 Mon Sep 17 00:00:00 2001 From: Saiful Islam Date: Thu, 14 Jul 2016 21:16:18 +0600 Subject: [PATCH 23/55] Create oop-magic-methods.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ম্যাজিক মেথড সম্পর্কে লেখা হচ্ছে। ...চলমান --- oop-magic-methods.md | 136 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 oop-magic-methods.md diff --git a/oop-magic-methods.md b/oop-magic-methods.md new file mode 100644 index 0000000..b2b5534 --- /dev/null +++ b/oop-magic-methods.md @@ -0,0 +1,136 @@ + +# ম্যাজিক মেথড + +পিএইচপির ক্লাসে কিছু মেথড থাকে যেগুলো দুইটি আন্ডারস্কোর দিয়ে শুরু হয়, এই মেথড গুলোকে সাধারণত ম্যাজিক মেথড বলা হয়। যদিও এই মেথডগুলো আগেথেকে ক্লাসে থাকে না, এই মেথড গুলো সাধারনত প্রোগ্রামাররাই লিখে থাকে। কিন্তু এই মেথড গুলো অন্যান্য মেথডের মত আচরন করে না। + +`__construct()`,` __destruct()`, `__call()`, `__callStatic()`, `__get()`, `__set()`, `__isset()`, `__unset()`, `__sleep()`,` __wakeup()`,` __toString()`, `__invoke()`, `__set_state()`, `__clone()` এবং `__debugInfo()` এই মেথড গুলোকে ম্যাজিক মেথড বলা হয়ে থাকে। + + __construct(), __destruct() এই মেথড গুলো সম্পর্কে [পূর্বে](http://php.howtocode.com.bd/oop-constructors-and-destructors.html) আলোচনা করা হয়েছে। + + +##গেট মেথড +এই মেথড এর মাধ্যমে ক্লাসের প্রোপার্টি এক্সেস করা যায়। নিচের উদাহরণটিতে গেট মেথড ইমপ্লিমেন্ট করে দেখানো হয়েছে। + +```php +public function __get($property) +{ + if (property_exists($this, $property)) { + return $this->$property; + } +} +``` + +ধরা যাক আমাদের ক্লাসের নাম Tweet যার একটি প্রোপার্টি (username) আছে । কেউ যদি username প্রোপার্টি টি এক্সেস করতে চায় তবে সে নিচের উদাহরন এর মত করে প্রোপার্টিটি এক্সেস করতে পারবে। + +```php +$tweet = new Tweet(); +echo $tweet->username; // এটি username প্রোপার্টিটি রিটার্ন করবে, এমনকি প্রাইভেট প্রোপার্টি হলেও। +``` + +## সেট মেথড +এই মেথড এর মাধ্যমে ক্লাসের প্রোপার্টির ভ্যালু সেট করা যায়। নিচের উদাহরণটিতে সেট মেথড ইমপ্লিমেন্ট করে দেখানো হয়েছে। + +```php +public function __set($property, $value) +{ + if (property_exists($this, $property)) { + $this->$property = $value; + } +} +``` + +Tweet ক্লাসে username এর ভ্যালু সেট করতে চাইলে নিচের উদাহরন অনুসরন করলেই হবে। + +```php +$tweet = new Tweet(); +$tweet->username = 'saaiful'; // এটি username প্রোপার্টর ভ্যালু সেট করবে। +``` + +##ইজসেট মেথড +কোন প্রোপার্টি ক্লাসের মধ্যে আছে কিনা তা জানতে এই মেথড ব্যবহার করা হয়। এই মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না। + +```php +public function __isset($property) +{ + return isset($this->$property); +} +``` + +ক্লাসের যেকোন মেথড থেকে নিচের মত করে এই মেথডটি ব্যবহার করা যাবে + +```php +isset($tweet->username); +``` + +##আনসেট মেথড +ক্লাসের কোন প্রোপার্টি সরিয়ে দিতে এই মেথড ব্যবহার করা হয়। এই মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না। +```php +public function __unset($property) +{ + unset($this->$property); +} +``` + +ক্লাসের যেকোন মেথড থেকে নিচের মত করে এই মেথডটি ব্যবহার করা যাবে + +```php +unset($tweet->username); +``` + +##কল মেথড +যখন কোন মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না অথবা যখন কল করা মেথডটি ক্লাসে থাকে না তখন এই মেথড কাজ শুরু করে। +```php +public function __call($method, $parameters) +{ + var_dump($method); + var_dump($parameters); +} +``` +নিচের উদাহরনে post মেথড ব্যবহার করা হয়েছে , যদিও Tweet ক্লাসে এই মেথডটি নেই। কিন্তু আউটপুট লক্ষ করলে দেখা যাবে মেথডের নাম আর প্যারামিটারের var_dump করা হয়েছে। __call মেথডের মধ্যে প্রয়োজনীয় কোড লিখে এই মেথডের চমৎকার ব্যবহার করা যাবে। +```php +$tweet = new Tweet(); +$tweet->post("this is a test"); +``` +উদাহরনঃ +```php +username = "saaiful"; + $this->api = "https://api.twitter.com/1.1/"; + $this->param['user_timeline'] = "statuses/user_timeline.json"; + $this->param['home_timeline'] = "statuses/home_timeline.json"; + $this->param['retweets'] = "statuses/retweets"; + } + + public function fetch($url) + { + // send get request to $url + var_dump($url); + } + + public function __call($method, $parameters='') + { + if(array_key_exists($method, $this->param)){ + $url = $this->api . $this->param[$method]; + if(!empty($parameters)){ + $url .= "/".$parameters[0].".json"; + } + return $this->fetch($url); + }else{ + return false; + } + + } +} + +$tweet = new Tweet(); +$tweet->retweets('abc'); +$tweet->ppp('abc'); +``` + + +...চলমান From 2c1ff5092638893eec901624fe20d50e2ffa2aea Mon Sep 17 00:00:00 2001 From: Saiful Islam Date: Thu, 14 Jul 2016 21:18:08 +0600 Subject: [PATCH 24/55] Update SUMMARY.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ম্যাজিক মেথড যুক্ত করা হয়েছে --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 8fdb2f2..df89b32 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -19,6 +19,7 @@ * [ইন্টারফেইস](oop-interface.md) * [এ্যাবস্ট্রাকশন](oop-abstraction.md) * [ট্রেইটস](oop-traits.md) + * [ম্যাজিক মেথডস](oop-magic-methods.md) * [নেইমস্পেইস](namespace.md) * [ফাইলসিস্টেম](filesystem.md) From 3fd3572915485231443e66f10819dc0eac1d7e7c Mon Sep 17 00:00:00 2001 From: Nuhil Mehdy Date: Thu, 14 Jul 2016 22:00:47 +0600 Subject: [PATCH 25/55] gitbook builder, fb like box, contribution api book.json updated for using gitbook 2.x.x builder facebook likebox updated to new snippet Contribution API changed to JS version --- README.md | 4 ++-- book.json | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 747a99c..4ee0401 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + [কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php) @@ -7,7 +7,7 @@ [![Join the chat at https://gitter.im/howtocode-com-bd/php.howtocode.com.bd](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/howtocode-com-bd/php.howtocode.com.bd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - + ## প্রারম্ভিকা diff --git a/book.json b/book.json index 51d6e7b..3523193 100644 --- a/book.json +++ b/book.json @@ -1,13 +1,14 @@ { - "plugins": ["disqus"], - "pluginsConfig": { - "disqus": { - "shortName": "howtocode-com-bd" - } - }, - "links": { - "sidebar": { - "সব কোর্স লিস্ট দেখুন": "http://www.howtocode.com.bd" - } - } + "gitbook": "2.x.x", + "plugins": ["disqus"], + "pluginsConfig": { + "disqus": { + "shortName": "howtocode-com-bd" + } + }, + "links": { + "sidebar": { + "সব কোর্স লিস্ট দেখুন": "http://www.howtocode.com.bd" + } + } } \ No newline at end of file From 78fe8ca854d2f97f1d38a503cb74c9507771a88a Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 17 Jul 2016 23:08:31 +0600 Subject: [PATCH 26/55] Design Patterns chapter added --- SUMMARY.md | 24 +++++++++++++----------- design-patterns.md | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 design-patterns.md diff --git a/SUMMARY.md b/SUMMARY.md index df89b32..4b52e60 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -10,16 +10,18 @@ * [মাস্টারিং এ্যারে](mastering-array.md) * [কমন এ্যারে ফাংশনস](common-array-functions.md) * [অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং](oop.md) - * [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) - * [মেথড এবং প্রোপার্টি](oop-method-and-property.md) - * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) - * [ইনহেরিট্যান্স](oop-inheritance.md) - * [ভিজিবিলিটি](oop-visibility.md) - * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) - * [ইন্টারফেইস](oop-interface.md) - * [এ্যাবস্ট্রাকশন](oop-abstraction.md) - * [ট্রেইটস](oop-traits.md) - * [ম্যাজিক মেথডস](oop-magic-methods.md) + * [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) + * [মেথড এবং প্রোপার্টি](oop-method-and-property.md) + * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) + * [ইনহেরিট্যান্স](oop-inheritance.md) + * [ভিজিবিলিটি](oop-visibility.md) + * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) + * [ইন্টারফেইস](oop-interface.md) + * [এ্যাবস্ট্রাকশন](oop-abstraction.md) + * [ট্রেইটস](oop-traits.md) + * [ম্যাজিক মেথডস](oop-magic-methods.md) * [নেইমস্পেইস](namespace.md) * [ফাইলসিস্টেম](filesystem.md) - +* [ডিজাইন প্যাটার্ন](design-patterns.md) + * [সিঙ্গেলটোন](singleton-pattern.md) + * [অবজার্ভার](observer-pattern.md) diff --git a/design-patterns.md b/design-patterns.md new file mode 100644 index 0000000..8cbcefa --- /dev/null +++ b/design-patterns.md @@ -0,0 +1,16 @@ +# ডিজাইন প্যাটার্ন + +সফটওয়্যার ইঞ্জিনিয়ারিং এ ডিজাইন প্যাটার্ন হল কোডের সাধারণ সমস্যার রি-ইউজিবিলিটি বাড়ানোর জন্য এক প্রকারের নিয়মনীতি অথবা টেম্পলেট। যাতে করে সফটওয়্যার একটা নির্দিষ্ট আর্কিটেকচার এ তৈরি করা যায় আর কোডের পুনুরাব্রিত্তি ঠেকান যায়। + +ডিজাইন প্যাটার্ন সাধারণত নিম্মলিখিত ক্যাটাগরীর হয়ে থাকেঃ + +1. Creational +2. Structural +3. Behavioural + +আমরা বহুল ব্যাবহ্রিত গুলো নিয়ে আলোচনা করব। + +### টপিকস লিস্ট + +* [সিঙ্গেলটোন](singleton-pattern.md) +* [অবজার্ভার](observer-pattern.md) From c2fb0fb1ca5afdbb066a4616be2b9facc6aa9144 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 17 Jul 2016 23:09:04 +0600 Subject: [PATCH 27/55] Singleton design pattern chapter added --- singleton-pattern.md | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 singleton-pattern.md diff --git a/singleton-pattern.md b/singleton-pattern.md new file mode 100644 index 0000000..ca14fc8 --- /dev/null +++ b/singleton-pattern.md @@ -0,0 +1,69 @@ +# সিঙ্গেলটোন ডিজাইন প্যাটার্নঃ + +সিঙ্গেলটোন ডিজাইন প্যাটার্ন **ক্রিয়েশনাল ডিজাইন প্যাটার্ন** ক্যাটাগরির মধ্যে পরে। +এই প্যাটার্নের মুল উদ্দেশ্য হল প্রতিটি ক্লাসের শুধু মাত্র একটিই **ইন্সট্যান্স/অবজেক্ট** থাকা। + +ধরুন, **Singleton** নামে আমাদের একটা ক্লাস আছে তাহলে সিঙ্গেলটোন প্যাটার্নে এই ক্লাসকে এমনভাবে ব্যবহার করতে হবে যেন নতুন কোন **ইন্সট্যান্স/অবজেক্ট** তৈরি না হয়ে একটিই থাকে আর এই কাজটি আমরা নিচের মত করে করতে পারিঃ + +```php +sayHi(); + +``` + +এখানে ক্লাসটি বাইরে থেকে ইন্সট্যান্সিয়েট না করে ```getInstance()``` স্ট্যাটিক মেথডটি ডিক্লেয়ার করা হয়েছে যাতে ক্লাসের ইন্সট্যান্সটা রিটার্ন করে। + +অর্থাৎ, +```php +$singleton = new Singleton(); +``` +এর পরিবর্তে +```php +$singleton = Singleton::getInstance(); +``` +ব্যবহার করা হয়েছে। + +আর ক্লাসের ইন্সট্যান্স ```$instance``` নামে ভ্যারিয়েবল এ রাখা হয়েছে। + +যেমনঃ +```php +private static $instance; + +public static function getInstance() +{ + if (null === self::$instance) { + self::$instance = new self(); + } + + return self::$instance; +} +``` + +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Singleton.php) থেকে কোডটি পাবেন। \ No newline at end of file From c22eeb83854b33ab20244ce8ca0200eca8f4a8df Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 17 Jul 2016 23:09:29 +0600 Subject: [PATCH 28/55] Observer design pattern chapter added --- observer-pattern.md | 180 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 observer-pattern.md diff --git a/observer-pattern.md b/observer-pattern.md new file mode 100644 index 0000000..93cf985 --- /dev/null +++ b/observer-pattern.md @@ -0,0 +1,180 @@ +# অবজার্ভার ডিজাইন প্যাটার্নঃ + +অবজার্ভার ডিজাইন প্যাটার্ন বিহাভিওরাল টাইপের মধ্যে পরে। +এটা **pub/sub** এর নিয়মে কাজ করে অর্থাৎ কোন অবজেক্ট কিংবা সাবজেক্ট এ পরিবর্তন হলে সেটা **Publisher** তৎক্ষন্যাত **Subscriber** দেরকে জানায় দিবে কিংবা নটিফাই করবে। + +পিএইসপিতে অবজার্ভার প্যাটার্নটি প্রয়োগ করতে হলে যথাক্রমে ```SplSubject``` ও ```SplObserver``` ইন্টারফেইস ইমপ্লিমেন্ট করে সাবজেক্ট ও অবজার্ভার ২ টা ক্লাস লিখতে হয়। আর সাবস্ক্রাইব করা অবজার্ভারদেরকে স্টোর করে রাখার জন্য ```SplObjectStorage``` এই ক্লাসটিকে ব্যাবহার করা যেতে পারে। + +উপরে উল্লেখিত **SplSubject, SplObserver, SplObjectStorage** হল পিএইসপির **Standard PHP Library (SPL)** + +নিচে একটি ```Model``` নামক ক্লাস ও দুইটি অবজার্ভার ক্লাসের উধাহরন দেয়া হলঃ + +```php + +observers = new SplObjectStorage(); + } + + public function attach(SplObserver $observer) + { + $this->observers->attach($observer); + } + + public function detach(SplObserver $observer) + { + $this->observers->detach($observer); + } + + public function notify() + { + foreach ($this->observers as $observer) { + $observer->update($this); + } + } + + public function __set($name, $value) + { + $this->data[$name] = $value; + // notify the observers, that model has been updated + $this->notify(); + } +} + +class ModelObserver implements SplObserver +{ + public function update(SplSubject $subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +class Observer2 implements SplObserver +{ + public function update(SplSubject $subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +// Instantiate the model class for 2 different objects +$model1 = new Model(); +$model2 = new Model(); + +// Instantiate the observers +$modelObserver = new ModelObserver(); +$observer2 = new Observer2(); + +// Attach the observers to $model1 +$model1->attach($modelObserver); +$model1->attach($observer2); + +// Attach the observers to $model2 +$model2->attach($observer2); + +// Changing the subject properties +$model1->title = 'Hello World'; +$model2->body = 'Lorem ipsum............'; + +``` + +উপরে ```Model``` ক্লাসটি হল সাবজেক্ট ```ModelObserver``` ও ```Observer2``` হল অবজার্ভার। + +```Model``` ক্লাসটি যেহেতু ```SplSubject``` ইন্টারফেইস ইমপ্লিমেন্ট করে লেখা হয়েছে কাজেই ```attach()```, ```detach()``` ও ```notify()``` মেথডগুলা অবশ্যই থাকতে হবে। + +অপরদিকে যেহেতু ```ModelObserver``` ও ```Observer2``` ক্লাসগুলা ```SplObserver``` ইন্টারফেইস ইমপ্লিমেন্ট করে লেখা হয়েছে সেহেতু ```update()``` মেথডটি ক্লাসগুলাতে থাকতে হবে। + +এবার আপনারা যদি ```SplSubject``` ও ```SplObserver``` ইন্টারফেইস ব্যাবহার না করে অবজার্ভার ডিজাইন প্যাটার্ন এর প্রয়োগ করতে চান সেটাও করতে পারবেন শুধুমাত্র আপনার বিষয় বস্তু ঠিক থাকলেই হল। + +নিচে একটা উধাহরন দেয়া হলঃ + +```php + +observers = new SplObjectStorage(); + } + + public function notify() + { + foreach ($this->observers as $observer) { + $observer->update($this); + } + } + + public function setObservers($observers = []) + { + foreach ($observers as $observer) { + $this->observers->attach($observer); + } + } + + public function __set($name, $value) + { + $this->data[$name] = $value; + // notify the observers, that model has been updated + $this->notify(); + } +} + +class Post extends Model +{ + public function insert($data) + { + // Store the data + // Notify to observers + $this->notify(); + } + + public function update($data) + { + // Update the model + // Notify to observers + $this->notify(); + } + + public function delete($id) + { + // Delete the model + // Notify to observers + $this->notify(); + } +} + +class PostModelObserver +{ + public function update($subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +class Observer2 +{ + public function update($subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +$post = new Post(); + +$post->setObservers([new PostModelObserver, new Observer2]); + +$post->title = 'Hello World'; + +``` + +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Observer.php) থেকে আরও ধারনা পেতে পারেন। \ No newline at end of file From be8dc1009b4940bf4db074a6431d14c6d011d6ba Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Mon, 18 Jul 2016 07:45:58 +0600 Subject: [PATCH 29/55] made singleton constructor as private to not let user instantiate from outside --- singleton-pattern.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/singleton-pattern.md b/singleton-pattern.md index ca14fc8..89b6a89 100644 --- a/singleton-pattern.md +++ b/singleton-pattern.md @@ -21,7 +21,7 @@ class Singleton return self::$instance; } - public function __construct() + private function __construct() { } From 75ac4c4a11f0a31e072fc3b7b34ccf0f18cef457 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Tue, 19 Jul 2016 23:49:21 +0600 Subject: [PATCH 30/55] Adapter design pattern added --- SUMMARY.md | 1 + adapter-pattern.md | 150 +++++++++++++++++++++++++++++++++++++++++++++ design-patterns.md | 1 + 3 files changed, 152 insertions(+) create mode 100644 adapter-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index 4b52e60..3df0ee1 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -25,3 +25,4 @@ * [ডিজাইন প্যাটার্ন](design-patterns.md) * [সিঙ্গেলটোন](singleton-pattern.md) * [অবজার্ভার](observer-pattern.md) + * [অ্যাডাপ্টার](adapter-pattern.md) diff --git a/adapter-pattern.md b/adapter-pattern.md new file mode 100644 index 0000000..c5712be --- /dev/null +++ b/adapter-pattern.md @@ -0,0 +1,150 @@ +# অ্যাডাপ্টার ডিজাইন প্যাটার্নঃ + +সফটওয়ার ইঞ্জিনিয়ারিং এ আরেকটি বহুল প্রচলিত ডিজাইন প্যাটার্ন হল অ্যাডাপ্টার ডিজাইন প্যাটার্ন। এটি **স্ট্রাকচারাল** প্যাটার্নের মধ্যে পরে। + +আমরা বাস্তব জীবনে সবাই অ্যাডাপ্টার শব্দটির সাথে পরিচিত। +যেমনঃ মোবাইলের চার্জিং অ্যাডাপ্টার, কম্পিউটারের গ্রাফিক্স অ্যাডাপ্টার। + +আর অ্যাডাপ্টার ডিজাইন প্যাটার্ন অনেকটা এই অ্যাডাপ্টারের ন্যায় কাজ করে অর্থাৎ আমরা যদি কম্পিউটারের গ্রাফিক্স কিংবা ভিজিএ অ্যাডাপ্টারের কথা চিন্তা করি তাহলে বলা যায় আমরা গেইম খেলার জন্য এক বিশেষ ধরনের অ্যাডাপ্টার ব্যবহার করি আবার সাধারণ কোন কাজের জন্য সাধারণ অ্যাডাপ্টার হলেই চলে কিন্তু বিষয়বস্তু দুইটারি সমান ভিডিও আউটপুট করা দুইটিই একটা কমন প্যাটার্নে তৈরি। আর মজার বিষয় হল এই অ্যাডাপ্টার গুলো আমাদের খুশি মত আমরা পরিবর্তন করতে পারি। + +এবার ইমপ্লিমেন্টেশনের পরিভাষায়, ধরুন আমরা একটা পিএইচপি প্রজেক্ট কিংবা অ্যাপ্লিকেশন বানাবো যেখানে আমরা ডাটাবেস অ্যাডাপ্টার হিসেবে **MySQL Adapter** আর **PDO Adapter** ব্যাবহার করব যাতে করে ক্লাইন্ট সহজেই তার পছন্দের অ্যাডাপ্টারটি ব্যাবহার করতে পারে **Database** নামে আরেকটি অ্যাডাপ্টারের মাধ্যমে। এতে করে **MySQL Adapter** আর **PDO Adapter** গুলো খুব সহজেই পরিবর্তন করা যাবে। + +নিচে একটা সম্পূর্ণ উধাহরন দেয়া হলঃ + +```php +connection = new mysqli($host, $username, $password, $dbname); + } + + public function query($sql) + { + $this->result = $this->connection->query($sql); + + return $this; + } + + public function result() + { + if (gettype($this->result) === 'boolean') { + return $this->result; + } elseif ($this->result->num_rows > 0) { + $result = []; + + while ($row = $this->result->fetch_assoc()) { + $result[] = $row; + } + + return $result; + } else { + return []; + } + } +} + +class PDOAdapter implements AdapterInterface +{ + protected $connection; + + protected $result; + + public function __construct($host, $username, $password, $dbname) + { + $this->connection = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); + } + + public function query($sql) + { + $query = $this->connection->prepare($sql); + $exec = $query->execute(); + + if ($query->columnCount() == 0) { + $this->result = $exec; + } else { + $this->result = $query; + } + + return $this; + } + + public function result() + { + if (gettype($this->result) === 'boolean') { + return $this->result; + } else { + $data = []; + + while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) { + $data[] = $row; + } + + return $data; + } + } +} + +class Database +{ + protected $adapter; + + public function __construct(AdapterInterface $adapter) + { + $this->adapter = $adapter; + } + + public function query($sql) + { + return $this->adapter->query($sql); + } + + public function result() + { + return $this->adapter->result(); + } +} + +$mysql = new MySQLAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($mysql); + +$query = $db->query("SELECT * FROM users"); +$result = $query->result(); +var_dump($result); +``` + + +এখানে ```AdapterInterface``` ইন্টারফেইস ব্যবহার করা হয়েছে যেটিকে ইমপ্লিমেন্ট করে যথাক্রমে ```MySQLAdapter``` ও ```PDOAdapter``` ডিক্লেয়ার করা হয়েছে যাতে দুইটারি ন্যাচার কিংবা কোডবেইস একই থাকে। + +আবার ডাটাবেসকে অ্যাকসেস করার জন্য ও অ্যাডাপ্টারগুলাকে ব্যবহার করার জন্য ```Database``` নামে একটা ক্লাস ডিফাইন করা হয়েছে। +আর এর ডিপেন্ডেন্সি ইনজেকশন হিসেবে ```AdapterInterface``` ব্যবহার করা হয়েছে যাতে করে কেবল মাত্র ```AdapterInterface``` ইমপ্লিমেন্ট করা ক্লাসের ইন্সটান্সই কন্সটারক্টরে পাস করা যায়। + +এখানে আমরা ```MySQLAdapter``` কে ব্যবহার করেছি। + +```php +$mysql = new MySQLAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($mysql); +``` + +আমরা চাইলে PDOAdapter ও ব্যবহার করতে পারি নিচের মত করে। +```php +$mysql = new PDOAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($mysql); +``` + +এতে করে অ্যাডাপ্টার গুলা **Loosly Coupled/Highly Decoupled** থাকে আর বর্তমানে এই টার্মটাকে খুবই প্রাধান্য দেয়া হয় বড় কোন অ্যাপ্লিকেশন কিংবা ফ্রেমওয়ার্ক তৈরি করতে গেলে। + +নিচের [লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Adapter.php) থেকে সোর্স কোডটি পাবেন। diff --git a/design-patterns.md b/design-patterns.md index 8cbcefa..98e3c18 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -14,3 +14,4 @@ * [সিঙ্গেলটোন](singleton-pattern.md) * [অবজার্ভার](observer-pattern.md) +* [অ্যাডাপ্টার](adapter-pattern.md) From 1d6f8e5f671889400076731bb5c7e97a73977ebc Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Tue, 19 Jul 2016 23:57:19 +0600 Subject: [PATCH 31/55] Typo fix --- adapter-pattern.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adapter-pattern.md b/adapter-pattern.md index c5712be..0554a0c 100644 --- a/adapter-pattern.md +++ b/adapter-pattern.md @@ -141,8 +141,8 @@ $db = new Database($mysql); আমরা চাইলে PDOAdapter ও ব্যবহার করতে পারি নিচের মত করে। ```php -$mysql = new PDOAdapter('localhost', 'root', '1234', 'demo'); -$db = new Database($mysql); +$pdo = new PDOAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($pdo); ``` এতে করে অ্যাডাপ্টার গুলা **Loosly Coupled/Highly Decoupled** থাকে আর বর্তমানে এই টার্মটাকে খুবই প্রাধান্য দেয়া হয় বড় কোন অ্যাপ্লিকেশন কিংবা ফ্রেমওয়ার্ক তৈরি করতে গেলে। From 55f970e17ab37195fb1f62f246d21237fda44fa4 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sat, 3 Sep 2016 12:40:25 +0600 Subject: [PATCH 32/55] Design pattern Url changes --- adapter-pattern.md | 2 +- observer-pattern.md | 2 +- singleton-pattern.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/adapter-pattern.md b/adapter-pattern.md index 0554a0c..04d692c 100644 --- a/adapter-pattern.md +++ b/adapter-pattern.md @@ -147,4 +147,4 @@ $db = new Database($pdo); এতে করে অ্যাডাপ্টার গুলা **Loosly Coupled/Highly Decoupled** থাকে আর বর্তমানে এই টার্মটাকে খুবই প্রাধান্য দেয়া হয় বড় কোন অ্যাপ্লিকেশন কিংবা ফ্রেমওয়ার্ক তৈরি করতে গেলে। -নিচের [লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Adapter.php) থেকে সোর্স কোডটি পাবেন। +নিচের [লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে সোর্স কোডটি পাবেন। diff --git a/observer-pattern.md b/observer-pattern.md index 93cf985..9109bfa 100644 --- a/observer-pattern.md +++ b/observer-pattern.md @@ -177,4 +177,4 @@ $post->title = 'Hello World'; ``` -[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Observer.php) থেকে আরও ধারনা পেতে পারেন। \ No newline at end of file +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে আরও ধারনা পেতে পারেন। \ No newline at end of file diff --git a/singleton-pattern.md b/singleton-pattern.md index 89b6a89..3a85c9c 100644 --- a/singleton-pattern.md +++ b/singleton-pattern.md @@ -66,4 +66,4 @@ public static function getInstance() } ``` -[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns/blob/master/Singleton.php) থেকে কোডটি পাবেন। \ No newline at end of file +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে কোডটি পাবেন। \ No newline at end of file From a4deabc7fc0df6c5c1ea5bc38f1ff58e21e66514 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Mon, 5 Sep 2016 23:24:26 +0600 Subject: [PATCH 33/55] Factory design pattern added --- SUMMARY.md | 1 + design-patterns.md | 1 + factory-pattern.md | 514 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 516 insertions(+) create mode 100644 factory-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index 3df0ee1..cbd4808 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -26,3 +26,4 @@ * [সিঙ্গেলটোন](singleton-pattern.md) * [অবজার্ভার](observer-pattern.md) * [অ্যাডাপ্টার](adapter-pattern.md) + * [ফ্যাক্টরী](factory-pattern.md) diff --git a/design-patterns.md b/design-patterns.md index 98e3c18..63331a9 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -15,3 +15,4 @@ * [সিঙ্গেলটোন](singleton-pattern.md) * [অবজার্ভার](observer-pattern.md) * [অ্যাডাপ্টার](adapter-pattern.md) +* [ফ্যাক্টরী](factory-pattern.md) diff --git a/factory-pattern.md b/factory-pattern.md new file mode 100644 index 0000000..e8883b5 --- /dev/null +++ b/factory-pattern.md @@ -0,0 +1,514 @@ +# ফ্যাক্টরী ডিজাইন প্যাটার্নঃ + +ফ্যাক্টরী প্যাটার্ন এমন একটি প্যাটার্ন যা কম বেশি সব ধরনের অ্যাপ্লিকেশনে ব্যাবহৃত হয়ে থাকে এইটা ক্রিয়েশনাল প্যাটার্ন ক্যাটাগরীর মধ্যে পরে। + +ফ্যাক্টরী প্যাটার্নের মূল উদ্দেশ্যই হল এর প্রোডাক্ট কিংবা চাইল্ড ক্লাসের অবজেক্ট তৈরি করে দেয়া। যেমন বাস্তব জীবনে যেভাবে ফ্যাক্টরীতে প্রোডাক্ট তৈরি হয়ে থাকে। + +এই প্যাটার্ন ক্লাইন্টের কাছে অবজেক্ট ইনস্টানশিয়েট করার লজিক অদৃশ্যমান রাখে। আর অবজেক্টের ক্লাস গুলা একটা কমন ইন্টারফেইস কে ফলো করে বানানো থাকে। + +এই প্যাটার্ন সাধারণত ৩ প্রকারেরঃ +১। সিম্পল ফ্যাক্টরী। +২। ফ্যাক্টরী মেথড। +৩। অ্যাবস্ট্রাক্ট ফ্যাক্টরী। + +## ১। সিম্পল ফ্যাক্টরীঃ +ফ্যাক্টরী প্যাটার্নের মধ্যে সিম্পল ফ্যাক্টরী হচ্ছে সবচেয়ে সহজ প্যাটার্ন যদিও অফিশিয়ালি এই প্যাটার্ন ডিজাইন প্যাটার্ন হিসেবে স্বীকৃত না। + +এই প্যাটার্নের নিয়ম মতে এর একটি ফ্যাক্টরী থাকবে আর একটি ফ্যাক্টরী একই সময় শুধুমাত্র একটাই প্রোডাক্ট তৈরি করবে অর্থাৎ একটিই ইনস্টান্স কিংবা অবজেক্ট রিটার্ন করবে। + +নিচে একটা উধাহরন দেয়া হলঃ + +```php +class CarFactory +{ + protected $brands = []; + + public function __construct() + { + $this->brands = [ + 'mercedes' => 'MercedesCar', + 'toyota' => 'ToyotaCar', + ]; + } + + public function make($brand) + { + if (!array_key_exists($brand, $this->brands)) { + return new Exception('Not available this car'); + } + + $className = $this->brands[$brand]; + + return new $className(); + } +} + +interface CarInterface +{ + public function design(); + public function assemble(); + public function paint(); +} + +class MercedesCar implements CarInterface +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar implements CarInterface +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +$carFactory = new CarFactory; + +$mercedes = $carFactory->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactory->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; +``` + +এখানে ```CarFactory``` নামে মূল ফ্যাক্টরী ক্লাস ডিফাইন করা হয়েছে যেটির মাধ্যমে একটা ```Car``` ইনস্টান্স তৈরি করা হবে। +```Car``` এর জন্য ২ টি ক্লাস যথাক্রমে ```MercedesCar``` ও ```ToyotaCar``` ডিফাইন করা হয়েছে যেগুলো ```CarInterface``` কে ফলো করেছে। + +এবার চলুন ```CarFactory``` ক্লাসটিকে ইনস্টানশিয়েট করি। + +```php +$carFactory = new CarFactory; +``` + +এরপর ধরুন ```MercedesCar``` ক্লাসকে ফ্যাক্টরির মাধ্যমে ইনস্টানশিয়েট করব তাহলে টাইপ/প্যারামিটার হিসেবে ```mercedes``` দিতে হবে নিচের মত করে। + +```php +$mercedes = $carFactory->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; +``` + +অনুরূপ ভাবে ```ToyotaCar``` ক্লাসকে ইনস্টানশিয়েট করতে হলে + +```php +$toyota = $carFactory->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . ‘
    '; +``` + +আর ডিফাইন না করা কোন ক্লাসের টাইপ দিলে সেটি এরর দেখাবে। + +## ২। ফ্যাক্টরী মেথডঃ + +ফ্যাক্টরী মেথড প্যাটার্ন অনেকখানি সিম্পল ফ্যাক্টরী প্যাটার্নের মতই শুধুমাত্র এর মূল পার্থক্য হল এটি তার সাব ক্লাস গুলোকে ক্লাস ইনস্টানশিয়েট করার স্বাধীনতা দিয়ে দেয়। আর এর একাধিক ফ্যাক্টরী থাকতে পারে। + +নিচে একটা উদাহরণ দেয়া হলঃ + +``` +abstract class VehicleFactoryMethod +{ + abstract public function make($brand); +} + +class CarFactory extends VehicleFactoryMethod +{ + public function make($brand) + { + $car = null; + + switch ($brand) { + case "mercedes": + $car = new MercedesCar; + break; + case "toyota": + $car = new ToyotaCar; + break; + } + + return $car; + } +} + +class BikeFactory extends VehicleFactoryMethod +{ + public function make($brand) + { + $bike = null; + + switch ($brand) { + case "yamaha": + $bike = new YamahaBike; + break; + case "ducati": + $bike = new DucatiBike; + break; + } + + return $bike; + } +} + +interface CarInterface +{ + public function design(); + + public function assemble(); + + public function paint(); +} + +interface BikeInterface +{ + public function design(); + + public function assemble(); + + public function paint(); +} + +class MercedesCar implements CarInterface +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar implements CarInterface +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +class YamahaBike implements BikeInterface +{ + public function design() + { + return 'Designing Yamaha Bike'; + } + + public function assemble() + { + return 'Assembling Yamaha Bike'; + } + + public function paint() + { + return 'Painting Yamaha Bike'; + } +} + +class DucatiBike implements BikeInterface +{ + public function design() + { + return 'Designing Ducati Bike'; + } + + public function assemble() + { + return 'Assembling Ducati Bike'; + } + + public function paint() + { + return 'Painting Ducati Bike'; + } +} + +$carFactoryInstance = new CarFactory; + +$mercedes = $carFactoryInstance->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactoryInstance->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; + +echo '
    '; + +$bikeFactoryInstance = new BikeFactory; + +$yamaha = $bikeFactoryInstance->make('yamaha'); +echo $yamaha->design() . '
    '; +echo $yamaha->assemble() . '
    '; +echo $yamaha->paint() . '
    '; + +echo '
    '; + +$ducati = $bikeFactoryInstance->make('ducati'); +echo $ducati->design() . '
    '; +echo $ducati->assemble() . '
    '; +echo $ducati->paint() . '
    '; +``` + +এখানে ফ্যাক্টরী মেথডের জন্য ```VehicleFactoryMethod``` নামে একটা অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করা হয়েছে যেটির সাব ক্লাস যথাক্রমে ```CarFactory``` ও ```BikeFactory``` আছে যেগুলা ভিন্ন ভিন্ন একক ফ্যাক্টরী। +আবার প্রতিটি ফ্যাক্টরীর জন্য সিম্পল ফ্যাক্টরী প্যাটার্নের ন্যায় ইন্টারফেইস ```CarInterface``` ও ```BikeInterface``` ডিফাইন করা হয়েছে যেগুলোকে ইমপ্লিমেন্ট করে কংক্রিট ক্লাস অর্থাৎ ইনস্টানশিয়েট যোগ্য ক্লাস যথাক্রমে ```CarFactory``` এর আওতায় ```MercedesCar``` ও ```ToyotaCar``` এবং ```BikeFactory``` এর আওতায় ```YamahaBike``` ও ```DucatiBike``` ডিফাইন করা হয়েছে। + +সুতরাং ```CarFactory``` ও ```BikeFactory``` ক্লাসগুলো নির্ধারণ করতে পারবে সে কোন ক্লাসকে ইনস্টানশিয়েট করবে। + +নিচের কোডটি খেয়াল করলে বুঝতে পারবেন ২ টি আলাদা ফ্যাক্টরীর মাধ্যমে প্যারামিটার কিংবা ```Car``` এর ব্র্যান্ড পাস করে কাঙ্ক্ষিত অবজেক্ট কে পাওয়া যায়। + +```php +$carFactoryInstance = new CarFactory; + +$mercedes = $carFactoryInstance->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactoryInstance->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; + +echo '
    '; + +$bikeFactoryInstance = new BikeFactory; + +$yamaha = $bikeFactoryInstance->make('yamaha'); +echo $yamaha->design() . '
    '; +echo $yamaha->assemble() . '
    '; +echo $yamaha->paint() . '
    '; + +echo '
    '; + +$ducati = $bikeFactoryInstance->make('ducati'); +echo $ducati->design() . '
    '; +echo $ducati->assemble() . '
    '; +echo $ducati->paint() . ‘
    '; +``` + +## ৩। অ্যাবস্ট্রাক্ট ফ্যাক্টরীঃ + +অ্যাবস্ট্রাক্ট ফ্যাক্টরী এমন একটি পদ্ধতি প্রদান করে যেখানে একটি মূল (অ্যাবস্ট্রাক্ট) ফ্যাক্টরী অনেকগুলো একক ফ্যাক্টরীকে একত্রিত করে রাখে। + +এক কথায়, প্রথমে একটি অ্যাবস্ট্রাক্ট ফ্যাক্টরী অনেকগুলো প্রোডাক্ট ফ্যাক্টরী তৈরি করে এরপর প্রতিটি ফ্যাক্টরী একাধিক প্রোডাক্ট কিংবা অবজেক্ট তৈরি করে। + +উল্লেখ্য, প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসকে একটা কমন অ্যাবস্ট্রাক্ট ক্লাসকে এক্সটেন্ড করতে হবে অথবা একটা কমন ইন্টারফেইসকে ইমপ্লিমেন্ট করতে হবে। +আবার প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসে একাধিক আর একই মেথড থাকতে হবে। + +নিচে একটা উধাহরণ দেয়া হলঃ + +```php +abstract class AbstractVehicleFactory +{ + abstract public function makeCar(); + abstract public function makeBike(); +} + +class BangladeshiFactory extends AbstractVehicleFactory +{ + public function makeCar() + { + return new ToyotaCar(); + } + + public function makeBike() + { + return new YamahaBike(); + } +} + +class USAFactory extends AbstractVehicleFactory +{ + public function makeCar() + { + return new MercedesCar(); + } + + public function makeBike() + { + return new DucatiBike(); + } +} + +abstract class AbstractVehicle +{ + abstract public function design(); + abstract public function assemble(); + abstract public function paint(); +} + +abstract class AbstractCarVehicle extends AbstractVehicle +{ + +} + +abstract class AbstractBikeVehicle extends AbstractVehicle +{ + +} + +class MercedesCar extends AbstractCarVehicle +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar extends AbstractCarVehicle +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +class YamahaBike extends AbstractBikeVehicle +{ + public function design() + { + return 'Designing Yamaha Bike'; + } + + public function assemble() + { + return 'Assembling Yamaha Bike'; + } + + public function paint() + { + return 'Painting Yamaha Bike'; + } +} + +class DucatiBike extends AbstractBikeVehicle +{ + public function design() + { + return 'Designing Ducati Bike'; + } + + public function assemble() + { + return 'Assembling Ducati Bike'; + } + + public function paint() + { + return 'Painting Ducati Bike'; + } +} + +$bangladeshiFactoryInstance = new BangladeshiFactory; +$car = $bangladeshiFactoryInstance->makeCar(); +echo $car->design() . '
    '; +echo $car->assemble() . '
    '; +echo $car->paint() . '
    '; + +echo '
    '; + +$bike = $bangladeshiFactoryInstance->makeBike(); +echo $bike->design() . '
    '; +echo $bike->assemble() . '
    '; +echo $bike->paint() . '
    '; + +echo '
    '; + +$usaFactoryInstance = new USAFactory; +$car = $usaFactoryInstance->makeCar(); +echo $car->design() . '
    '; +echo $car->assemble() . '
    '; +echo $car->paint() . '
    '; + +echo '
    '; + +$bike = $usaFactoryInstance->makeBike(); +echo $bike->design() . '
    '; +echo $bike->assemble() . '
    '; +echo $bike->paint() . ‘
    '; +``` + +উপরের কোডে ```AbstractVehicleFactory``` নামে একটা অ্যাবস্ট্রাক্ট ফ্যাক্টরী ক্লাস ডিফাইন করা হয়েছে যেখানে ```makeCar()``` ও ```makeBike()``` ২টা মেথড দেয়া আছে যাতে সাব ফ্যাক্টরী গুলো ওই মেথড গুলো ডিফাইন করে। + +এখানে একটি মেথড ```Car``` অবজেক্ট তৈরি করতে আরেকটি ```Bike``` অবজেক্ট তৈরি করতে ব্যবহৃত হয়েছে যা সব গুলা ফ্যাক্টরীকেই করতে হবে। +আর মূল বিষয় হল একেক ফ্যাক্টরী একেক ব্র্যান্ডের ```Car``` ও ```Bike``` অবজেক্ট তৈরি করবে। + +যেমন এখানে আমরা ```BangladeshiFactory``` ফ্যাক্টরী ব্যাবহার করেছি যেটি ```ToyotaCar``` ও ```YamahaBike``` ক্লাসের অবজেক্ট তৈরি করবে। অনুরূপ ভাবে, ```USAFactory``` ফ্যাক্টরী ```MercedesCar``` ও ```DucatiBike``` ক্লাসের অবজেক্ট তৈরি করবে। + +আবার আপনি চাইলে একটা ফ্যাক্টরীতে একাধিক ব্রান্ডের ```Car``` কিংবা ```Bike``` এর অবজেক্ট তৈরি করতে পারেন সেক্ষেত্রে র‍্যান্ডমলি কিংবা লজিক্যালি করতে হবে। + +এই [লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে সোর্স কোডটি পাবেন। \ No newline at end of file From b4941b95cf7c3b72691df4e46dc35547b4af2acb Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Mon, 5 Sep 2016 23:28:51 +0600 Subject: [PATCH 34/55] List order fix --- factory-pattern.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/factory-pattern.md b/factory-pattern.md index e8883b5..9304e94 100644 --- a/factory-pattern.md +++ b/factory-pattern.md @@ -7,11 +7,11 @@ এই প্যাটার্ন ক্লাইন্টের কাছে অবজেক্ট ইনস্টানশিয়েট করার লজিক অদৃশ্যমান রাখে। আর অবজেক্টের ক্লাস গুলা একটা কমন ইন্টারফেইস কে ফলো করে বানানো থাকে। এই প্যাটার্ন সাধারণত ৩ প্রকারেরঃ -১। সিম্পল ফ্যাক্টরী। -২। ফ্যাক্টরী মেথড। -৩। অ্যাবস্ট্রাক্ট ফ্যাক্টরী। +১. সিম্পল ফ্যাক্টরী। +২. ফ্যাক্টরী মেথড। +৩. অ্যাবস্ট্রাক্ট ফ্যাক্টরী। -## ১। সিম্পল ফ্যাক্টরীঃ +## ১. সিম্পল ফ্যাক্টরীঃ ফ্যাক্টরী প্যাটার্নের মধ্যে সিম্পল ফ্যাক্টরী হচ্ছে সবচেয়ে সহজ প্যাটার্ন যদিও অফিশিয়ালি এই প্যাটার্ন ডিজাইন প্যাটার্ন হিসেবে স্বীকৃত না। এই প্যাটার্নের নিয়ম মতে এর একটি ফ্যাক্টরী থাকবে আর একটি ফ্যাক্টরী একই সময় শুধুমাত্র একটাই প্রোডাক্ট তৈরি করবে অর্থাৎ একটিই ইনস্টান্স কিংবা অবজেক্ট রিটার্ন করবে। @@ -130,13 +130,13 @@ echo $toyota->paint() . ‘
    '; আর ডিফাইন না করা কোন ক্লাসের টাইপ দিলে সেটি এরর দেখাবে। -## ২। ফ্যাক্টরী মেথডঃ +## ২. ফ্যাক্টরী মেথডঃ ফ্যাক্টরী মেথড প্যাটার্ন অনেকখানি সিম্পল ফ্যাক্টরী প্যাটার্নের মতই শুধুমাত্র এর মূল পার্থক্য হল এটি তার সাব ক্লাস গুলোকে ক্লাস ইনস্টানশিয়েট করার স্বাধীনতা দিয়ে দেয়। আর এর একাধিক ফ্যাক্টরী থাকতে পারে। নিচে একটা উদাহরণ দেয়া হলঃ -``` +```php abstract class VehicleFactoryMethod { abstract public function make($brand); @@ -340,7 +340,7 @@ echo $ducati->assemble() . '
    '; echo $ducati->paint() . ‘
    '; ``` -## ৩। অ্যাবস্ট্রাক্ট ফ্যাক্টরীঃ +## ৩. অ্যাবস্ট্রাক্ট ফ্যাক্টরীঃ অ্যাবস্ট্রাক্ট ফ্যাক্টরী এমন একটি পদ্ধতি প্রদান করে যেখানে একটি মূল (অ্যাবস্ট্রাক্ট) ফ্যাক্টরী অনেকগুলো একক ফ্যাক্টরীকে একত্রিত করে রাখে। From a061b00db1602c435c89ece5b29174f47611cd41 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Wed, 21 Sep 2016 22:05:09 +0600 Subject: [PATCH 35/55] DI Design Pattern Added --- SUMMARY.md | 1 + dependency-injection-pattern.md | 95 +++++++++++++++++++++++++++++++++ design-patterns.md | 1 + 3 files changed, 97 insertions(+) create mode 100644 dependency-injection-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index cbd4808..80c41bb 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -27,3 +27,4 @@ * [অবজার্ভার](observer-pattern.md) * [অ্যাডাপ্টার](adapter-pattern.md) * [ফ্যাক্টরী](factory-pattern.md) + * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) diff --git a/dependency-injection-pattern.md b/dependency-injection-pattern.md new file mode 100644 index 0000000..eff6675 --- /dev/null +++ b/dependency-injection-pattern.md @@ -0,0 +1,95 @@ +# ডিপেন্ডেন্সি ইনজেকশন ডিজাইন প্যাটার্নঃ + +ডিপেন্ডেন্সি ইনজেকশন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। এইটা এমন একটা ডিজাইন প্যাটার্ন যা কোন ক্লাসের ডিপেন্ডেন্সি অর্থাৎ প্রয়োজনীয় অবজেক্ট গুলোকে রান টাইম কিংবা কম্পাইল টাইমে সহজে পরিবর্তনে সহায়তা করে। + +এই প্যাটার্নের মূল উদ্দেশ্যই হল লুজলি কাপল আর্কিটেকচার ইমপ্লিমেন্ট করা যাতে করে একটা ভাল মানের অ্যাপ তৈরি করা যায়। + +ডিপেন্ডেন্সি ইনজেকশন ডিজাইন প্যাটার্ন হল ```S.O.L.I.D Principle``` এর ```D``` যার পূর্ণ অর্থ ```Dependency Inversion Principle (DIP)``` যেটি ```Inversion of Control (IoC)``` কে অনুসরণ করে। + +এখানে ```Dependency Inversion Principle``` বলতে ```Decoupling``` করাকে বুঝানো হয় আর ```Inversion of Control``` বলতে কিভাবে ডিপেন্ডেন্সি রিজল্ভ করা হবে সেটিকে বুঝায়। ডিপেন্ডেন্সি রিজল্ভ করতে ```Dependency Injection (DI) Container``` বা ```Inversion of Control (IoC) Container``` ব্যাবহৃত হয়ে থাকে। + +আমরা সাধারণত একটি ক্লাসে অন্য ক্লাসের অবজেক্ট ব্যাবহার করলে নিচের মত করে হার্ডকোড করি যা হাইলি কাপল্ড থাকে। + +```php +class Database +{ + protected $adapter; + + public function __construct() + { + $this->adapter = new MySqlAdapter; + } +} + +class MysqlAdapter +{ + +} +``` + +আর ডিপেন্ডেন্সি ইনজেকশন ডিজাইন প্যাটার্নে কোন ক্লাস কিংবা ইন্টারফেইসকে টাইপ হিন্ট করে কনস্ট্রাক্টর কিংবা মেথডে ইঞ্জেক্ট করতে হয় নিচের মত করে। + +```php +class Database +{ + protected $adapter; + + public function __construct(MySqlAdapter $adapter) + { + $this->adapter = $adapter; + } +} + +class MysqlAdapter +{ + +} +``` + +উপরে ```MySqlAdapter``` ক্লাসকে ডিপেন্ডেন্সি হিসেবে রাখা হয়েছে। আর এই ডিপেন্ডেন্সি রিজল্ভ করতে হলে অবশ্যই ```MySqlAdapter``` এর অবজেক্ট কন্সট্রাক্টরের প্যারামিটারে দিতে হবে। + +যেমনঃ +```php +$mysqlAdapter = new MysqlAdapter; +$database = new Database($mysqlAdapter); +``` + +ডিপেন্ডেন্সি প্রধানত তিন ভাবে ইনজেক্ট করা যায়। + +## ১. কন্সট্রাক্টর ইনজেকশনঃ +যা কনস্ট্রাক্টরের মাধ্যমে ইঞ্জেক্ট করা হয়। + +```php +public function __construct(MySqlAdapter $adapter) +{ + $this->adapter = $adapter; +} +``` + +## ২. সেটার ইনজেকশনঃ +যা কোন মেথডের প্যারামিটারে ইঞ্জেক্ট করা হয়। + +```php +public function setterMethod(MySqlAdapter $adapter) +{ + $this->adapter = $adapter; +} +``` + +## ৩. ইন্টারফেইস ইনজেকশনঃ +ইন্টারফেইসকে কোন কনস্ট্রাক্টরে অথবা সেটার মেথডে ইঞ্জেক্ট করা হয়। + +```php +public function __construct(AdapterInterface $adapter) +{ + $this->adapter = $adapter; +} +``` + +আমরা আমাদের প্রজেক্টে ডিপেন্ডেন্সি গুলোকে স্বয়ংক্রিয় ভাবে ইঞ্জেক্ট কিংবা রিজল্ভ করতে ডিপেন্ডেন্সি ইনজেকশন কন্টেইনার ব্যাবহার করব যা আগেই উল্লেখ করেছি। +অনেক ফ্রেমওয়ার্কে এই কন্টেইনার সাধারণত বিল্ট-ইন দেয়া থাকে যেমনঃ ```Symfony```, ```Laravel```, ```Yii``` + +আমরা সাধারণ প্রজেক্টের ক্ষেত্রে ```Pimple``` নামে কন্টেইনারটি ব্যাবহার করতে পারি। +আবার আমি আমার কাজের জন্য খুব সহজ এবং অপ্টিমাইজ একটা কন্টেইনার বানিয়েছিলাম আপনারা চাইলে সেটি দেখতে পারেন [এই লিঙ্ক](https://github.com/appzcoder/container) থেকে। আশাকরি সোর্স কোড ও ডকুমেন্টেশন থেকে আপনারা ভাল ধারণা পাবেন। + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। \ No newline at end of file diff --git a/design-patterns.md b/design-patterns.md index 63331a9..37bcffc 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -16,3 +16,4 @@ * [অবজার্ভার](observer-pattern.md) * [অ্যাডাপ্টার](adapter-pattern.md) * [ফ্যাক্টরী](factory-pattern.md) +* [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) From b1b66b57b86521af370ee7c86f71c8999ec3f6c3 Mon Sep 17 00:00:00 2001 From: "howtocode.com.bd" Date: Wed, 16 Nov 2016 01:39:56 -0600 Subject: [PATCH 36/55] Update book.json --- book.json | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/book.json b/book.json index 3523193..5da14e1 100644 --- a/book.json +++ b/book.json @@ -1,14 +1,23 @@ { "gitbook": "2.x.x", - "plugins": ["disqus"], + "plugins": ["disqus", "github", "edit-link"], "pluginsConfig": { "disqus": { "shortName": "howtocode-com-bd" - } + }, + "github": { + "url": "https://github.com/howtocode-com-bd/php.howtocode.com.bd" + }, + "edit-link": { + "base": "https://github.com/howtocode-com-bd/php.howtocode.com.bd/blob/master", + "label": "চ্যাপ্টারটি আপডেট করুন" + } }, "links": { "sidebar": { - "সব কোর্স লিস্ট দেখুন": "http://www.howtocode.com.bd" + "অন্যান্য কোর্স": "http://www.howtocode.com.bd", + "আমাদের ব্লগ": "https://blog.howtocode.com.bd/", + "পিডিএফ ডাউনলোড": "https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php" } - } -} \ No newline at end of file + } +} From b6e9c43d62a6d9bdcfe7ea1c2e6657347ad5151d Mon Sep 17 00:00:00 2001 From: "howtocode.com.bd" Date: Fri, 2 Dec 2016 01:48:40 -0600 Subject: [PATCH 37/55] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ee0401..664124b 100644 --- a/README.md +++ b/README.md @@ -22,4 +22,7 @@ বইটির কন্টেন্ট ওপেন সোর্স । আপনিও অবদান রাখতে পারেন
    গিটহাব রিপোজিটরিতে । - + + +Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + From 3b29670f8fecd38f78502b0c3bcc9cc85d222539 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 25 Dec 2016 10:44:27 +0600 Subject: [PATCH 38/55] Facade design pattern added --- SUMMARY.md | 1 + design-patterns.md | 1 + facade-pattern.md | 175 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 facade-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index 80c41bb..c3fde9d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -28,3 +28,4 @@ * [অ্যাডাপ্টার](adapter-pattern.md) * [ফ্যাক্টরী](factory-pattern.md) * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) + * [ফ্যাসাড](facade-pattern.md) diff --git a/design-patterns.md b/design-patterns.md index 37bcffc..99dde95 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -17,3 +17,4 @@ * [অ্যাডাপ্টার](adapter-pattern.md) * [ফ্যাক্টরী](factory-pattern.md) * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) +* [ফ্যাসাড](facade-pattern.md) diff --git a/facade-pattern.md b/facade-pattern.md new file mode 100644 index 0000000..9acdc46 --- /dev/null +++ b/facade-pattern.md @@ -0,0 +1,175 @@ +# ফ্যাসাড ডিজাইন প্যাটার্নঃ + +```Facade``` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। +ফ্যাসাড ডিজাইন প্যাটার্ন এর কাজ হল ক্লায়েন্ট এর কাছে একটা কমপ্লেক্স সিস্টেম বা ইন্টারফেইস হতে একটা সহজ ইন্টারফেইস প্রদান করা যাতে কমপ্লেক্স কিংবা আগলি কোড গুলো হিডেন অবস্থায় থাকে। + +লেগাসি কিংবা কমপ্লেক্স কোন সিস্টেম এর কোডকে সহজ ভাবে উপস্থাপন করার দরকার হলে এই প্যাটার্ন ব্যাবহার করা হয়। + +ধরুন আপনার সিস্টেম কিংবা অ্যাপ্লিকেশনে একটা কমপ্লেক্স লাইব্রেরি ব্যাবহার করার দরকার পরতেছে আর আপনি উক্ত কমপ্লেক্স পার্টকে সহজ করে তোলার জন্য একটা ```Wrapper``` বানিয়ে সেইটা করতে পারেন। + +এবার নিচে একটা উধাহরনের মাধ্যমে প্যাটার্নটি বোঝানোর চেষ্টা করা হলঃ + +```php +cart = new Cart; + $this->order = new Order; + $this->payment = new Payment; + $this->shipping = new Shipping; + } + + public function addToCart($products) + { + $this->cart->addProducts($products); + } + + public function checkout() + { + $products = $this->cart->getProducts(); + + $this->totalAmount = $this->order->process($products); + } + + public function makePayment() + { + $charge = $this->shipping->calculateCharge(); + $this->payment->charge($charge); + + $isCompleted = $this->payment->makePayment(); + + if ($isCompleted) { + $this->shipping->shipProducts(); + } + } +} + +$customer = new CustomerFacade; + +$products = [ + [ + 'name' => 'Polo T-Shirt', + 'price' => 40, + ], + [ + 'name' => 'Smart Watch', + 'price' => 400, + ], +]; + +$customer->addToCart($products); +$customer->checkout(); +$customer->makePayment(); +``` + +উপরের কোডটি খেয়াল করলে দেখতে পারবেন এখানে একটা ই-কমার্স অ্যাপ্লিকেশনের প্রসেস দেখানো হয়েছে। +এর জন্য আমরা যথাক্রমে ```Cart```, ```Order```, ```Payment```, ```Shipping``` ক্লাসগুলো ব্যাবহার করেছি আর ফ্যাসাড হিসেবে ```CustomerFacade``` ক্লাস ব্যাবহার করেছি।
 +এখানে কোন প্রোডাক্টকে কার্টে যুক্ত করার জন্য ```Cart``` ক্লাসটি, অর্ডার প্রসেস করার জন্য ```Order``` ক্লাসটি, পেমেন্ট প্রসেস করার জন্য ```Payment``` ক্লাসটি আর প্রডাক্ট এর শিপিং হ্যান্ডল করার জন্য ```Shipping``` ক্লাসটি ব্যাবহার করেছি। + +এখন মুল কথা হল আমরা যদি এসব কাজের জন্য প্রতিবার উক্ত ক্লাস গুলোকে বার বার কল করি তাহলে অনেক সময় সাপেক্ষ বেপার হয়ে পরবে আর স্ট্রাকচারটিও ভাল হবেনা। আর তাই এখানে ফ্যাসাড প্যাটার্নটি ব্যাবহার করা হয়েছে। যাতে ডেভেলপার কিংবা ক্লায়েন্ট হিসেবে সুধু মাত্র ```CustomerFacade``` ক্লাসটিকে ব্যাবহার করে উপরে উল্লেখিত সবগুলো কাজ অনায়াসে করা সম্ভব। + + +## অতিরিক্ত বিষয় (লারাভেল ফ্যাসাড) ঃ +আমরা যারা লারাভেল ব্যাবহার করি তারা কম বেশি সবাই জানি লারাভেল এ অনেকগুলো বিল্ড-ইন ফ্যাসাড আছে কিংবা ব্যাবহার হয়। যেমনঃ ```DB```, ```View```, ```Event```, ```Queue```, ```Mail``` ইত্যাদি। + +আমরা মূলত যেটা জানি তা হল লারাভেল এ ফ্যাসাড ```Statically``` কোন ক্লাসকে কল করার জন্য ব্যাবহার হয়। আসলে বিষয়টি ঠিক তেমন নয়। +এখানে অনেক কমপ্লেক্স সিস্টেমকে হাইড করে আমাদের কাছে সহজ ভাবে উপস্থাপন করা হয়েছে তার সাথে লারাভেল ফ্যাসাড প্যাটার্নের সাথে ```__callStatic``` ম্যাজিক মেথডটি ব্যাবহার করা হয়েছে। +যাতে ডেভেলপার কিংবা ক্লায়েন্টকে আলাদাভাবে ক্লাস ইন্সট্যানশিয়েট করতে না হয়। + +নিচে একটা উধাহরন দেয়া হলঃ + +```php +$method(); + case 1: + return $instance->$method($args[0]); + case 2: + return $instance->$method($args[0], $args[1]); + case 3: + return $instance->$method($args[0], $args[1], $args[2]); + case 4: + return $instance->$method($args[0], $args[1], $args[2], $args[3]); + default: + return call_user_func_array([$instance, $method], $args); + } + + } +} + +var_dump(PersonFacade::getFullName()); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। From b2dfc10e9091c99297ce3d1511a943401cf59355 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 25 Dec 2016 10:45:32 +0600 Subject: [PATCH 39/55] gitignore file added --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file From 5da67eff084cc2e60cc4d3a5595e7c3d4830e9c8 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sun, 25 Dec 2016 18:15:39 +0600 Subject: [PATCH 40/55] gitignore file removed --- .gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 496ee2c..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file From 02fdc66ebd043238e7233c32fecb74a0a644f684 Mon Sep 17 00:00:00 2001 From: Zulfikar Date: Thu, 23 Mar 2017 19:52:41 +0600 Subject: [PATCH 41/55] Justify my proposal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit replace("এ্যারে এর ইনডেক্স বা কি এর ভ্যালু শুধুমাত্র স্ট্রিং বা ইন্টিজার হবে । তবে ভ্যালু যে কোন টাইপের হতে পারে ।", "এ্যারে এর ইনডেক্স বা কি শুধুমাত্র স্ট্রিং বা ইন্টিজার হবে । তবে ইনডেক্স এর ভ্যালু যে কোন টাইপের হতে পারে ।"); --- variables-data-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables-data-types.md b/variables-data-types.md index fbcd251..b1f77dc 100644 --- a/variables-data-types.md +++ b/variables-data-types.md @@ -110,7 +110,7 @@ $array = array( এখানে `$array` একটি এ্যারে যার `foo` ইনডেক্স বা কি এর ভ্যালু `bar` এবং `bar` এর ভ্যালু `foo` । উদাহরণটি পিএইচপি ম্যানুয়াল থেকে নেওয়া । -লক্ষ্যনীয় বিষয়: এ্যারে এর ইনডেক্স বা কি এর ভ্যালু শুধুমাত্র স্ট্রিং বা ইন্টিজার হবে । তবে ভ্যালু যে কোন টাইপের হতে পারে । +লক্ষ্যনীয় বিষয়: এ্যারে এর ইনডেক্স বা কি শুধুমাত্র স্ট্রিং বা ইন্টিজার হবে । তবে ইনডেক্স এর ভ্যালু যে কোন টাইপের হতে পারে । আমরা চাইলে, ইনডেক্স এর ভ্যালু স্কিপ করতে পারতাম । সেক্ষেত্রে পিএইচপি নিজে থেকেই ইনডেক্স এর ভ্যালু হিসেবে ক্রমিক সংখ্যা ব্যবহার করতো । From b4fabea1d7ee815659ff5d43e1776793637ce19c Mon Sep 17 00:00:00 2001 From: "howtocode.com.bd" Date: Thu, 1 Jun 2017 02:37:31 -0500 Subject: [PATCH 42/55] Update facade-pattern.md --- facade-pattern.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/facade-pattern.md b/facade-pattern.md index 9acdc46..c48d2f2 100644 --- a/facade-pattern.md +++ b/facade-pattern.md @@ -9,7 +9,7 @@ এবার নিচে একটা উধাহরনের মাধ্যমে প্যাটার্নটি বোঝানোর চেষ্টা করা হলঃ -```php +```php addToCart($products); $customer->checkout(); $customer->makePayment(); -``` +``` উপরের কোডটি খেয়াল করলে দেখতে পারবেন এখানে একটা ই-কমার্স অ্যাপ্লিকেশনের প্রসেস দেখানো হয়েছে। -এর জন্য আমরা যথাক্রমে ```Cart```, ```Order```, ```Payment```, ```Shipping``` ক্লাসগুলো ব্যাবহার করেছি আর ফ্যাসাড হিসেবে ```CustomerFacade``` ক্লাস ব্যাবহার করেছি।
 +এর জন্য আমরা যথাক্রমে ```Cart```, ```Order```, ```Payment```, ```Shipping``` ক্লাসগুলো ব্যাবহার করেছি আর ফ্যাসাড হিসেবে ```CustomerFacade``` ক্লাস ব্যাবহার করেছি। এখানে কোন প্রোডাক্টকে কার্টে যুক্ত করার জন্য ```Cart``` ক্লাসটি, অর্ডার প্রসেস করার জন্য ```Order``` ক্লাসটি, পেমেন্ট প্রসেস করার জন্য ```Payment``` ক্লাসটি আর প্রডাক্ট এর শিপিং হ্যান্ডল করার জন্য ```Shipping``` ক্লাসটি ব্যাবহার করেছি। এখন মুল কথা হল আমরা যদি এসব কাজের জন্য প্রতিবার উক্ত ক্লাস গুলোকে বার বার কল করি তাহলে অনেক সময় সাপেক্ষ বেপার হয়ে পরবে আর স্ট্রাকচারটিও ভাল হবেনা। আর তাই এখানে ফ্যাসাড প্যাটার্নটি ব্যাবহার করা হয়েছে। যাতে ডেভেলপার কিংবা ক্লায়েন্ট হিসেবে সুধু মাত্র ```CustomerFacade``` ক্লাসটিকে ব্যাবহার করে উপরে উল্লেখিত সবগুলো কাজ অনায়াসে করা সম্ভব। From 915026e34ca8115b6ce2d05e110ff3a6c082e46e Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Mon, 28 Aug 2017 14:49:03 +0600 Subject: [PATCH 43/55] Add __clone & __wakeup method to the singleton pattern --- singleton-pattern.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/singleton-pattern.md b/singleton-pattern.md index 3a85c9c..14cc2d0 100644 --- a/singleton-pattern.md +++ b/singleton-pattern.md @@ -3,12 +3,12 @@ সিঙ্গেলটোন ডিজাইন প্যাটার্ন **ক্রিয়েশনাল ডিজাইন প্যাটার্ন** ক্যাটাগরির মধ্যে পরে। এই প্যাটার্নের মুল উদ্দেশ্য হল প্রতিটি ক্লাসের শুধু মাত্র একটিই **ইন্সট্যান্স/অবজেক্ট** থাকা। -ধরুন, **Singleton** নামে আমাদের একটা ক্লাস আছে তাহলে সিঙ্গেলটোন প্যাটার্নে এই ক্লাসকে এমনভাবে ব্যবহার করতে হবে যেন নতুন কোন **ইন্সট্যান্স/অবজেক্ট** তৈরি না হয়ে একটিই থাকে আর এই কাজটি আমরা নিচের মত করে করতে পারিঃ +ধরুন, Singleton নামে আমাদের একটা ফাইনাল ক্লাস আছে তাহলে সিঙ্গেলটোন প্যাটার্নে এই ক্লাসকে এমনভাবে ব্যবহার করতে হবে যেন নতুন কোন ইন্সট্যান্স/অবজেক্ট তৈরি না হয়ে একটিই থাকে আর ক্লাসটিকে ইনহেরিট ও করা না যায়, যা আমরা নিচের মত করে করতে পারিঃ ```php Date: Sat, 9 Dec 2017 21:11:01 +0600 Subject: [PATCH 44/55] Fix typo --- adapter-pattern.md | 2 +- facade-pattern.md | 4 ++-- factory-pattern.md | 4 ++-- observer-pattern.md | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/adapter-pattern.md b/adapter-pattern.md index 04d692c..906932e 100644 --- a/adapter-pattern.md +++ b/adapter-pattern.md @@ -9,7 +9,7 @@ এবার ইমপ্লিমেন্টেশনের পরিভাষায়, ধরুন আমরা একটা পিএইচপি প্রজেক্ট কিংবা অ্যাপ্লিকেশন বানাবো যেখানে আমরা ডাটাবেস অ্যাডাপ্টার হিসেবে **MySQL Adapter** আর **PDO Adapter** ব্যাবহার করব যাতে করে ক্লাইন্ট সহজেই তার পছন্দের অ্যাডাপ্টারটি ব্যাবহার করতে পারে **Database** নামে আরেকটি অ্যাডাপ্টারের মাধ্যমে। এতে করে **MySQL Adapter** আর **PDO Adapter** গুলো খুব সহজেই পরিবর্তন করা যাবে। -নিচে একটা সম্পূর্ণ উধাহরন দেয়া হলঃ +নিচে একটা সম্পূর্ণ উদাহরণ দেয়া হলঃ ```php makePayment(); এখানে অনেক কমপ্লেক্স সিস্টেমকে হাইড করে আমাদের কাছে সহজ ভাবে উপস্থাপন করা হয়েছে তার সাথে লারাভেল ফ্যাসাড প্যাটার্নের সাথে ```__callStatic``` ম্যাজিক মেথডটি ব্যাবহার করা হয়েছে। যাতে ডেভেলপার কিংবা ক্লায়েন্টকে আলাদাভাবে ক্লাস ইন্সট্যানশিয়েট করতে না হয়। -নিচে একটা উধাহরন দেয়া হলঃ +নিচে একটা উদাহরণ দেয়া হলঃ ```php paint() . ‘
    '; উল্লেখ্য, প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসকে একটা কমন অ্যাবস্ট্রাক্ট ক্লাসকে এক্সটেন্ড করতে হবে অথবা একটা কমন ইন্টারফেইসকে ইমপ্লিমেন্ট করতে হবে। আবার প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসে একাধিক আর একই মেথড থাকতে হবে। -নিচে একটা উধাহরণ দেয়া হলঃ +নিচে একটা উদাহরণ দেয়া হলঃ ```php abstract class AbstractVehicleFactory diff --git a/observer-pattern.md b/observer-pattern.md index 9109bfa..04b0cf6 100644 --- a/observer-pattern.md +++ b/observer-pattern.md @@ -1,13 +1,13 @@ # অবজার্ভার ডিজাইন প্যাটার্নঃ -অবজার্ভার ডিজাইন প্যাটার্ন বিহাভিওরাল টাইপের মধ্যে পরে। +অবজার্ভার ডিজাইন প্যাটার্ন বিহেভিওরাল টাইপের মধ্যে পরে। এটা **pub/sub** এর নিয়মে কাজ করে অর্থাৎ কোন অবজেক্ট কিংবা সাবজেক্ট এ পরিবর্তন হলে সেটা **Publisher** তৎক্ষন্যাত **Subscriber** দেরকে জানায় দিবে কিংবা নটিফাই করবে। পিএইসপিতে অবজার্ভার প্যাটার্নটি প্রয়োগ করতে হলে যথাক্রমে ```SplSubject``` ও ```SplObserver``` ইন্টারফেইস ইমপ্লিমেন্ট করে সাবজেক্ট ও অবজার্ভার ২ টা ক্লাস লিখতে হয়। আর সাবস্ক্রাইব করা অবজার্ভারদেরকে স্টোর করে রাখার জন্য ```SplObjectStorage``` এই ক্লাসটিকে ব্যাবহার করা যেতে পারে। উপরে উল্লেখিত **SplSubject, SplObserver, SplObjectStorage** হল পিএইসপির **Standard PHP Library (SPL)** -নিচে একটি ```Model``` নামক ক্লাস ও দুইটি অবজার্ভার ক্লাসের উধাহরন দেয়া হলঃ +নিচে একটি ```Model``` নামক ক্লাস ও দুইটি অবজার্ভার ক্লাসের উদাহরণ দেয়া হলঃ ```php @@ -92,7 +92,7 @@ $model2->body = 'Lorem ipsum............'; এবার আপনারা যদি ```SplSubject``` ও ```SplObserver``` ইন্টারফেইস ব্যাবহার না করে অবজার্ভার ডিজাইন প্যাটার্ন এর প্রয়োগ করতে চান সেটাও করতে পারবেন শুধুমাত্র আপনার বিষয় বস্তু ঠিক থাকলেই হল। -নিচে একটা উধাহরন দেয়া হলঃ +নিচে একটা উদাহরণ দেয়া হলঃ ```php From e675a7d8054991453b2a17f88df251501b19923a Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sat, 9 Dec 2017 21:16:46 +0600 Subject: [PATCH 45/55] Strategy Pattern added --- SUMMARY.md | 1 + design-patterns.md | 1 + strategy-pattern.md | 74 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 strategy-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index c3fde9d..3b473eb 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -29,3 +29,4 @@ * [ফ্যাক্টরী](factory-pattern.md) * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) * [ফ্যাসাড](facade-pattern.md) + * [স্ট্রাটেজি](strategy-pattern.md) diff --git a/design-patterns.md b/design-patterns.md index 99dde95..bf4befd 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -18,3 +18,4 @@ * [ফ্যাক্টরী](factory-pattern.md) * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) * [ফ্যাসাড](facade-pattern.md) +* [স্ট্রাটেজি](strategy-pattern.md) diff --git a/strategy-pattern.md b/strategy-pattern.md new file mode 100644 index 0000000..b57f86a --- /dev/null +++ b/strategy-pattern.md @@ -0,0 +1,74 @@ +# স্ট্রাটেজি ডিজাইন প্যাটার্নঃ + +`Strategy` ডিজাইন প্যাটার্ন বিহেভিওরাল ডিজাইন প্যাটার্নের মধ্যে পরে। +`Strategy` এর অর্থ হল কৌশল, কোন কিছু করতে গেলে তার জন্য কৌশল কিংবা এক গুচ্ছ পদক্ষেপ গ্রহণ করাই হল স্ট্রাটেজি। + +প্রোগ্রামিং এর পরিভাষায়, একটি নির্দিষ্ট কাজ সম্পন্ন করতে ভিন্ন ভিন্ন অ্যালগরিদম নির্ধারণ করার স্বাধীনতা থাকাই স্ট্রাটেজি প্যাটার্ন। এই প্যটার্নকে আবার পলিসি প্যাটার্নও বলা হয়ে থাকে। + +ধরুন, আপনি ঢাকা থেকে চট্টগ্রাম যাইতে চাচ্ছেন এরজন্য আপনি চাইলে বাস, ট্রেন কিংবা প্লেন এ করে যাইতে পারেন। এইক্ষেত্রে গন্তব্যস্থল একটিই কিন্তু এটা সম্পন্ন করতে ভিন্ন ভিন্ন স্ট্রাটেজি অনুসরণ করা যায়। + +এবার চলুন একটা বাস্তব ভিত্তিক উদাহরণের মাধ্যমে প্যাটার্নটি বুঝা যাক। +প্রথমে চলুন একটা ইন্টারফেইস বানিয়ে ভিন্ন ভিন্ন স্ট্রাটেজি ইমপ্লিমেন্ট করি নিচের মত করে। + +```php +interface TravelStrategy +{ + public function travel(); +} + +class BusTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Bus travel strategy will goes here + } +} + +class TrainTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Train travel strategy will goes here + } +} + +class PlaneTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Plane travel strategy will goes here + } +} +``` + +এবার মেইন কনটেক্সট ক্লাস হিসেবে `Traveler` নামক একটা ক্লাস ডিফাইন করি। + +```php +class Traveler +{ + protected $traveler; + + public function __construct(TravelStrategy $traveler) + { + $this->traveler = $traveler; + } + + public function travel() + { + $this->traveler->travel(); + } +} +``` + +পরিশেষে, স্ট্রাটেজি পরিবর্তন করে সহজে আমরা আমাদের কার্য সম্পন্ন করতে পারি। + +```php + +$traveler = new Traveler(new BusTravelStrategy()); +$traveler->travel(); + +$traveler1 = new Traveler(new PlaneTravelStrategy()); +$traveler1->travel(); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। From c3221cc4c744d80c14b03ac524262f61ded22e2d Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Sat, 27 Jan 2018 19:28:22 +0600 Subject: [PATCH 46/55] Iterator design pattern added --- SUMMARY.md | 1 + design-patterns.md | 1 + iterator-pattern.md | 105 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 iterator-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index 3b473eb..ed6e5d0 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -30,3 +30,4 @@ * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) * [ফ্যাসাড](facade-pattern.md) * [স্ট্রাটেজি](strategy-pattern.md) + * [ইটারেটর](iterator-pattern.md) diff --git a/design-patterns.md b/design-patterns.md index bf4befd..30a77b5 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -19,3 +19,4 @@ * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) * [ফ্যাসাড](facade-pattern.md) * [স্ট্রাটেজি](strategy-pattern.md) +* [ইটারেটর](iterator-pattern.md) diff --git a/iterator-pattern.md b/iterator-pattern.md new file mode 100644 index 0000000..b778ba2 --- /dev/null +++ b/iterator-pattern.md @@ -0,0 +1,105 @@ +# ইটারেটর ডিজাইন প্যাটার্নঃ + +ইটারেটর ডিজাইন প্যাটার্ন বিহেভিওরাল টাইপের মধ্যে পরে। +এই প্যাটার্ন এর মুল উদ্দেশ্যই হচ্ছে ইটারেটরের ব্যাবহার করা। +ইটারেটর একটা কন্টেইনার কিংবা অবজেক্ট এর ইলিমেন্টকে ট্রাভার্স করার জন্য সহায়তা করে আর এতে ভিতরের লজিক গুলো লুকানো অবস্থায় থাকে। +যারফলে, আমরা কন্টেইনারে আমাদের পছন্দের মত ডাটা স্ট্রাকচার ব্যাবহার করতে পারি। + +এবার চলুন আমরা কিভাবে এই প্যাটার্নটি ইমপ্লিমেন্ট করতে পারি। +পিএইচপির একটা বিল্ড-ইন `Iterator` ইন্টারফেইস আছে আমরা সেটি ব্যাবহার করব। + +সর্বপ্রথমে, আমরা ইলিমেন্ট বা আইটেম এর জন্য `Book` নামে একটা ক্লাস ডিফাইন করব। + +```php +class Book +{ + private $title; + + public function __construct($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} +``` + +এবার কন্টেইনার এর জন্য `BookList` নামে একটা ক্লাস ডিফাইন করব। + +```php +class BookList implements Iterator, Countable +{ + private $books = []; + + private $currentIndex = 0; + + public function current() + { + return $this->books[$this->currentIndex]; + } + + public function key() + { + return $this->currentIndex; + } + + public function next() + { + $this->currentIndex++; + } + + public function rewind() + { + $this->currentIndex = 0; + } + + public function valid() + { + return isset($this->books[$this->currentIndex]); + } + + public function count() + { + return count($this->books); + } + + public function addBook(Book $book) + { + $this->books[] = $book; + } + + public function removeBook(Book $bookToRemove) + { + foreach ($this->books as $key => $book) { + if ($book->getTitle() === $bookToRemove->getTitle()) { + unset($this->books[$key]); + } + } + + $this->books = array_values($this->books); + } +} +``` + +এখানে `Iterator` ইন্টারফেসের জন্য যথাক্রমে `current()`, `key()`, `next()`, `rewind()` ও `valid()` মেথডগুলি ইমপ্লিমেন্ট করা হয়েছে আর `Countable` ইন্টারফেইসের এর জন্য `count()` মেথডটি ইমপ্লিমেন্ট করা হয়েছে যা ইলেমেন্ট কাউন্ট করতে সাহায্য করবে। আর ইলিমেন্ট অ্যাড আর রিমুভ করার জন্য `addBook()` ও `removeBook()` কাস্টম মেথডগুলি ব্যাবহার করা হয়েছে। + +এবার কন্টেইনার ক্লাসটি ইন্সটানশিয়েট করে কিছু ইলিমেন্ট অ্যাড করে আমরা নিচের ন্যায় লুপের মাধ্যমে ইলিমেন্ট ট্রাভার্স করে অ্যাকসেস করতে পারি। + +```php +$bookList = new BookList(); +$bookList->addBook(new Book('Design Pattern')); +$bookList->addBook(new Book('Head First Design Pattern')); +$bookList->addBook(new Book('Clean Code')); +$bookList->addBook(new Book('The Pragmatic Programmer')); + +$bookList->removeBook(new Book('Design Pattern')); + +foreach ($bookList as $book) { + echo $book->getTitle() . PHP_EOL; +} +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। From ad720a5282e3280a2003ceaee34fb10c8963bdf6 Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Tue, 20 Feb 2018 23:28:29 +0600 Subject: [PATCH 47/55] Proxy pattern added --- SUMMARY.md | 2 + design-patterns.md | 2 + proxy-pattern.md | 109 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 proxy-pattern.md diff --git a/SUMMARY.md b/SUMMARY.md index ed6e5d0..daa3f94 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -31,3 +31,5 @@ * [ফ্যাসাড](facade-pattern.md) * [স্ট্রাটেজি](strategy-pattern.md) * [ইটারেটর](iterator-pattern.md) + * [প্রক্সি](proxy-pattern.md) + * [ডেকোরেটর](decorator-pattern.md) diff --git a/design-patterns.md b/design-patterns.md index 30a77b5..323af91 100644 --- a/design-patterns.md +++ b/design-patterns.md @@ -20,3 +20,5 @@ * [ফ্যাসাড](facade-pattern.md) * [স্ট্রাটেজি](strategy-pattern.md) * [ইটারেটর](iterator-pattern.md) +* [প্রক্সি](proxy-pattern.md) +* [ডেকোরেটর](decorator-pattern.md) diff --git a/proxy-pattern.md b/proxy-pattern.md new file mode 100644 index 0000000..68cd9d1 --- /dev/null +++ b/proxy-pattern.md @@ -0,0 +1,109 @@ +# প্রক্সি ডিজাইন প্যাটার্নঃ + +`Proxy` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। +এই প্যাটার্ন শুরুর আগে আসুন আমরা “প্রক্সি” শব্দের অর্থ জেনে নেই। +প্রক্সি এমন একটি প্রতিনিধি বা বস্তু যা অন্য বিষয় বস্তুর হয়ে কাজ করে। + +অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এ প্রক্সি হলঃ একটি অবজেক্ট অন্য কোন অবজেক্টের হয়ে কাজ করা বা তাকে কন্ট্রোল করা। + +প্রক্সি সাধারণত ৩ প্রকারেরঃ +1. Virtual Proxy: এই প্রক্সি মুল অবজেক্টকে ইন্সটানশিয়েট বা ইনিশিয়ালাইজ করতে বিলম্ব করে যতক্ষণ না দরকার পরে। +2. Remote Proxy: এই প্রক্সি কোন রিমুট লোকেশনে অবস্থিত কোন অবজেক্টকে রিপ্রেজেন্ট করে। যেমনঃ সার্ভার থেকে কোন অবজেক্টকে অ্যাকসেস করা। +3. Protection Proxy: এই প্রক্সি মুল অবজেক্টকে অ্যাকসেস করার আগে সেকুরিটি চেক করে। +4. Smart Proxy: এই প্রক্সি মুল অবজেক্টের রেফারেন্স নাম্বার ট্রাক করে এবং প্রয়োজন মত মেমোরি থেকে লোডিং অথবা ফ্রি করতে সহয়তা করে। + + +এখানে আমরা `Virtual Proxy` এর একটি উদাহরণ দেখব। + +```php + +interface FileInterface +{ + public function content(); +} + +class RealFile implements FileInterface +{ + private $fileName; + + private $fileContent; + + public function __construct($fileName) + { + $this->fileName = $fileName; + + $this->readFile(); + } + + private function readFile() + { + $this->fileContent = file_get_contents($this->fileName); + } + + public function content() + { + return $this->fileContent; + } +} + +class ProxyFile implements FileInterface +{ + private $fileName; + + private $realFileObject; + + public function __construct($fileName) + { + $this->fileName = $fileName; + } + + public function content() + { + // Lazy load the file using the RealFile class + if (!$this->realFileObject) { + $this->realFileObject = new RealFile($this->fileName); + } + + return $this->realFileObject->content(); + } +} +``` + +উপরের কোডটি খেয়াল করলে আমরা দেখতে পাব একই ইন্টারফেইস `FileInterface` ব্যাবহার করে রিয়েল অবজেক্ট এর জন্য `RealFile` ও প্রক্সি অবজেক্টের জন্য `ProxyFile` নামক ক্লাস ইমপ্লিমেন্ট করা হয়েছে। + +`ProxyFile` এর `content()` মেথডটি দেখলে বুঝতে পাব যে এর মাধ্যমে মুল `RealFile` ক্লাস এর ইন্সটানশিয়েট করা হয়েছে লেজিলোডিং পদ্ধতির মাধ্যমে যাতে অ্যাকসেস না করা পর্যন্ত ইন্সটানশিয়েট না করা হয়। + + +```php +public function content() +{ + // Lazy load the file using the RealFile class + if (!$this->realFileObject) { + $this->realFileObject = new RealFile($this->fileName); + } + + return $this->realFileObject->content(); +} +``` + +এবার নিচের মত করে উভয় ক্লাসকে ইন্সটানশিয়েট করে কল করা হলে প্রথমে ভিন্ন ভিন্ন মেমোরি দখল করবে। + +```php +$realFile = new RealFile('/path/to/file.jpg'); +var_dump(memory_get_usage()); // ~5Mb +$realFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$realFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$proxyFile = new ProxyFile('/path/to/file.jpg'); +var_dump(memory_get_usage()); // ~350Kb +$proxyFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$proxyFile->content(); +var_dump(memory_get_usage()); // ~5Mb +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। From b8471af8f95d0f1adb26d9ae783341f8baf0fd3f Mon Sep 17 00:00:00 2001 From: Sohel Amin Date: Tue, 20 Feb 2018 23:29:23 +0600 Subject: [PATCH 48/55] Decorator pattern added --- decorator-pattern.md | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 decorator-pattern.md diff --git a/decorator-pattern.md b/decorator-pattern.md new file mode 100644 index 0000000..3705e1f --- /dev/null +++ b/decorator-pattern.md @@ -0,0 +1,67 @@ +# ডেকোরেটর ডিজাইন প্যাটার্নঃ + +`Decorator` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। +`Decorator` শব্দটি শুনলেই আমরা বুঝতে পারছি যে এটি কোন কিছুর প্রসাধক হিসেবে কাজ করে থাকে। + +অবজেক্ট ওরিয়েন্টেডের ক্ষেত্রে ডেকোরেটর একটি নির্দিষ্ট অবজেক্টকে স্টাটিক্যালি অথবা ডায়নামিক্যালি সংযুক্তি বা পরিবর্তন করে থাকে। + +এখন প্রশ্ন আসতে পারে আমরা কোন ক্লাসকে ইনহেরিট করেই তো এই কাজটি করতে পারি তাহলে কেন ডেকোরেটর ব্যাবহার করবো? +ইনহেরিট্যান্স এর মাধ্যমে আমরা একটা ক্লাসকে পরিবর্তন করে থাকি তার মানে সাবক্লাস দিয়ে আমরা যতগুলো অবজেক্ট তৈরি করবো সবগুলাই সেইম হবে। অন্যদিকে ডেকোরেটর আমাদেরকে এই ক্ষেত্রে শুধুমাত্র কোন নির্দিষ্ট অবজেক্টে পরিবর্তন করতে ফ্লেক্সিবিলিটি দিয়ে থাকে। + +এবার চলুন একটা উদাহরণ দেখা যাক। + +```php + +interface EmailInterface +{ + public function body(); +} + +class Email implements EmailInterface +{ + public function body() + { + return 'Simple email body.'; + } +} + +abstract class EmailDecorator implements EmailInterface +{ + public $email; + + public function __construct(EmailInterface $email) + { + $this->email = $email; + } + + abstract public function body(); +} + +class NewYearEmailDecorator extends EmailDecorator +{ + public function body() + { + return $this->email->body() . ' Additional text from deocorator.'; + } +} +``` + +উপরের কোডে খেয়াল করলে দেখতে পাবেন ইমেইল পাঠানোর জন্য একটি মুল ইন্টারফেইস `EmailInterface` আর এর কনক্রিট ক্লাস `Email` ইমপ্লিমেন্ট করা হয়েছে যা দিয়ে আমরা সিম্পল ইমেইল করতে পারি। + +এবার ডেকোরেটর এর জন্য `EmailDecorator` অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করেছি আর এইটা কে ইনহেরিট করে `NewYearEmailDecorator` কনক্রিট ক্লাস ডিফাইন করেছি যার মাধ্যমে আমরা খুব সহজেই ইমেইলের অবজেক্টকে পরিবর্তন/সংযুক্তি করতে পারবো। + +আমরা চাইলে `EmailDecorator` অ্যাবস্ট্রাক্ট ক্লাসটি ইনহেরিট করে আরও ক্লাস ডিফাইন করতে পারি। + +এবার নিচের কোডটি দেখলে বুঝতে পারবেন কিভাবে অবজেক্টকে ডেকোরেট করা হয়েছে। + +```php +// Simple Email +$email = new Email(); +var_dump($email->body()); + +// Decorated Email +$emailNewYearDecorator = new NewYearEmailDecorator($email); +var_dump($emailNewYearDecorator->body()); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। From b6759ceaf14c6efb436907050996fc723716feac Mon Sep 17 00:00:00 2001 From: "howtocode.com.bd" Date: Fri, 21 Sep 2018 15:45:09 -0600 Subject: [PATCH 49/55] Delete book.json --- book.json | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 book.json diff --git a/book.json b/book.json deleted file mode 100644 index 5da14e1..0000000 --- a/book.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "gitbook": "2.x.x", - "plugins": ["disqus", "github", "edit-link"], - "pluginsConfig": { - "disqus": { - "shortName": "howtocode-com-bd" - }, - "github": { - "url": "https://github.com/howtocode-com-bd/php.howtocode.com.bd" - }, - "edit-link": { - "base": "https://github.com/howtocode-com-bd/php.howtocode.com.bd/blob/master", - "label": "চ্যাপ্টারটি আপডেট করুন" - } - }, - "links": { - "sidebar": { - "অন্যান্য কোর্স": "http://www.howtocode.com.bd", - "আমাদের ব্লগ": "https://blog.howtocode.com.bd/", - "পিডিএফ ডাউনলোড": "https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php" - } - } -} From f795f9096a7e4352a3c326be6353415b2c563556 Mon Sep 17 00:00:00 2001 From: "howtocode.com.bd" Date: Fri, 21 Sep 2018 15:47:34 -0600 Subject: [PATCH 50/55] Update README.md --- README.md | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 664124b..ae2ae95 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,25 @@ - + -[কোর্স এর মুল পাতা](http://php.howtocode.com.bd/) | [HowToCode মুল সাইট](http://www.howtocode.com.bd/) | [সবার জন্য প্রোগ্রামিং ব্লগ](http://blog.howtocode.com.bd/) | [পিডিএফ ডাউনলোড](https://www.gitbook.com/download/pdf/book/howtocode-com-bd/-php) +**স্বয়ংক্রিয় কন্ট্রিবিউটরের তালিকা** +(প্রথম ৫ জন) + -# বাংলায় পিএইচপি - -[![Join the chat at https://gitter.im/howtocode-com-bd/php.howtocode.com.bd](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/howtocode-com-bd/php.howtocode.com.bd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - - - - - -## প্রারম্ভিকা বর্তমান যুগে ওয়েব অটোমেশনের জন্য একটি বিশ্বস্ত নাম - পিএইচপি । পিএইচপি একটি জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ যার সূচনাই হয়েছিলো ওয়েব ডেভেলপমেন্ট এর জন্য । দিনে দিনে পিএইচপির জনপ্রিয়তা বাড়তে বাড়তে ওয়েব আজ তার আধিপত্য অদ্বিতীয় । বিশ্বের প্রায় ৮২% (রেফ: ১) ওয়েবসাইটই কোন না কোনভাবে পিএইচপির উপর নির্ভরশীল । ফেইসবুকের একটা বিরাট অংশ ডেভেলপ করা পিএইচপিতে । তারা পিএইচপির উপর এতটাই নির্ভরশীল যে ফেইসবুক নিজেরাই পিএইচপির উন্নয়নের জন্য নতুন পিএইচপি ইনজিন (HHVM) রিলিজ করে । উইকিপিডিয়াও কিন্তু ডেভেলপ করা পিএইচপিতে । পিএইচপির প্রবল জনপ্রিয়তা আর চাহিদার কথা চিন্তা করে গুগল সম্প্রতি তাদের এ্যাপ ইনজিন প্ল্যাটফর্মে পিএইচপি সাপোর্ট যোগ করে । আসলে যেখানে ওয়েবের ৮২%-ই পিএইচপি ব্যবহার করে সেখানে উদাহরণ খুজঁতে গেলে হাজার হাজার নমুনা পাওয়া যাবে । ওয়েব নির্ভর প্রজেক্টগুলোতে তাই পিএইচপি ডেভেলপারদের চাহিদাও ব্যাপক । রেফারেন্স: (১) http://php.net/usage.php -## ওপেন সোর্স +### ওপেন সোর্স + +এই বইটি মূলত স্বেচ্ছাশ্রমে লেখা এবং বইটি সম্পূর্ন ওপেন সোর্স । এখানে তাই আপনিও অবদান রাখতে পারেন লেখক হিসেবে । আপনার কন্ট্রিবিউশান গৃহীত হলে অবদানকারীদের তালিকায় আপনার নাম যোগ করে দেওয়া হবে । -বইটির কন্টেন্ট ওপেন সোর্স । আপনিও অবদান রাখতে পারেন গিটহাব রিপোজিটরিতে । +এটি মূলত একটি [গিটহাব রিপোজিটোরি](https://github.com/howtocode-com-bd/php.howtocode.com.bd) যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে । রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন । +> **বর্তমানে বইটির কন্টেন্ট বিভিন্ন কন্ট্রিবিউটর এবং নানা রকম সোর্স থেকে সংগৃহীত এবং সংকলিত।** -Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. +[![Join the chat at https://gitter.im/howtocode-com-bd/php.howtocode.com.bd](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/howtocode-com-bd/php.howtocode.com.bd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. From 4c43a618ebe98a61f83eb523b8f0b28500f979de Mon Sep 17 00:00:00 2001 From: "howtocode.dev" Date: Mon, 6 Jul 2020 16:36:07 -0600 Subject: [PATCH 51/55] Update README.md --- README.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ae2ae95..55ec7b5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@ - - -**স্বয়ংক্রিয় কন্ট্রিবিউটরের তালিকা** -(প্রথম ৫ জন) - +**লেখক ও কন্ট্রিবিউটরদের তালিকা** +[বিস্তারিত এখানে](https://github.com/howtocode-dev/php.howtocode.dev/graphs/contributors?type=a) বর্তমান যুগে ওয়েব অটোমেশনের জন্য একটি বিশ্বস্ত নাম - পিএইচপি । পিএইচপি একটি জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ যার সূচনাই হয়েছিলো ওয়েব ডেভেলপমেন্ট এর জন্য । দিনে দিনে পিএইচপির জনপ্রিয়তা বাড়তে বাড়তে ওয়েব আজ তার আধিপত্য অদ্বিতীয় । বিশ্বের প্রায় ৮২% (রেফ: ১) ওয়েবসাইটই কোন না কোনভাবে পিএইচপির উপর নির্ভরশীল । ফেইসবুকের একটা বিরাট অংশ ডেভেলপ করা পিএইচপিতে । তারা পিএইচপির উপর এতটাই নির্ভরশীল যে ফেইসবুক নিজেরাই পিএইচপির উন্নয়নের জন্য নতুন পিএইচপি ইনজিন (HHVM) রিলিজ করে । উইকিপিডিয়াও কিন্তু ডেভেলপ করা পিএইচপিতে । পিএইচপির প্রবল জনপ্রিয়তা আর চাহিদার কথা চিন্তা করে গুগল সম্প্রতি তাদের এ্যাপ ইনজিন প্ল্যাটফর্মে পিএইচপি সাপোর্ট যোগ করে । আসলে যেখানে ওয়েবের ৮২%-ই পিএইচপি ব্যবহার করে সেখানে উদাহরণ খুজঁতে গেলে হাজার হাজার নমুনা পাওয়া যাবে । ওয়েব নির্ভর প্রজেক্টগুলোতে তাই পিএইচপি ডেভেলপারদের চাহিদাও ব্যাপক । @@ -14,12 +11,8 @@ এই বইটি মূলত স্বেচ্ছাশ্রমে লেখা এবং বইটি সম্পূর্ন ওপেন সোর্স । এখানে তাই আপনিও অবদান রাখতে পারেন লেখক হিসেবে । আপনার কন্ট্রিবিউশান গৃহীত হলে অবদানকারীদের তালিকায় আপনার নাম যোগ করে দেওয়া হবে । -এটি মূলত একটি [গিটহাব রিপোজিটোরি](https://github.com/howtocode-com-bd/php.howtocode.com.bd) যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে । রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন । - -> **বর্তমানে বইটির কন্টেন্ট বিভিন্ন কন্ট্রিবিউটর এবং নানা রকম সোর্স থেকে সংগৃহীত এবং সংকলিত।** - - +এটি মূলত একটি [গিটহাব রিপোজিটোরি](https://github.com/howtocode-dev/php.howtocode.dev) যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে । রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন । -[![Join the chat at https://gitter.im/howtocode-com-bd/php.howtocode.com.bd](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/howtocode-com-bd/php.howtocode.com.bd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +> **বর্তমানে বইটির কন্টেন্ট বিভিন্ন কন্ট্রিবিউটর এবং নানা রকম সোর্স থেকে সংগৃহীত এবং সংকলিত।** -Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. +Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. From ddb9d6671bcfea3bee31bbe983e4f1419575abd4 Mon Sep 17 00:00:00 2001 From: "howtocode.dev" Date: Tue, 7 Jul 2020 00:04:11 +0000 Subject: [PATCH 52/55] GitBook: [master] 34 pages modified --- README.md | 20 +- SUMMARY.md | 47 +- basics.md | 29 +- common-array-functions.md | 79 ++- constants-expressions-operators.md | 75 +-- control-structures.md | 103 ++-- design-patterns/README.md | 25 + design-patterns/adapter-pattern.md | 149 +++++ design-patterns/decorator-pattern.md | 65 +++ .../dependency-injection-pattern.md | 98 ++++ design-patterns/facade-pattern.md | 171 ++++++ design-patterns/factory-pattern.md | 509 ++++++++++++++++++ design-patterns/iterator-pattern.md | 102 ++++ design-patterns/observer-pattern.md | 176 ++++++ design-patterns/proxy-pattern.md | 101 ++++ design-patterns/singleton-pattern.md | 85 +++ design-patterns/strategy-pattern.md | 72 +++ filesystem.md | 58 +- functions.md | 126 +++-- installation.md | 30 +- mastering-array.md | 90 ++-- namespace.md | 33 +- oop/README.md | 16 + oop/oop-abstraction.md | 56 ++ oop/oop-class-and-objects.md | 36 ++ oop/oop-constructors-and-destructors.md | 65 +++ oop/oop-inheritance.md | 58 ++ oop/oop-interface.md | 50 ++ oop/oop-magic-methods.md | 145 +++++ oop/oop-method-and-property.md | 79 +++ oop/oop-static-and-non-static-context.md | 91 ++++ oop/oop-traits.md | 37 ++ oop/oop-visibility.md | 66 +++ variables-data-types.md | 93 ++-- 34 files changed, 2656 insertions(+), 379 deletions(-) create mode 100644 design-patterns/README.md create mode 100644 design-patterns/adapter-pattern.md create mode 100644 design-patterns/decorator-pattern.md create mode 100644 design-patterns/dependency-injection-pattern.md create mode 100644 design-patterns/facade-pattern.md create mode 100644 design-patterns/factory-pattern.md create mode 100644 design-patterns/iterator-pattern.md create mode 100644 design-patterns/observer-pattern.md create mode 100644 design-patterns/proxy-pattern.md create mode 100644 design-patterns/singleton-pattern.md create mode 100644 design-patterns/strategy-pattern.md create mode 100644 oop/README.md create mode 100644 oop/oop-abstraction.md create mode 100644 oop/oop-class-and-objects.md create mode 100644 oop/oop-constructors-and-destructors.md create mode 100644 oop/oop-inheritance.md create mode 100644 oop/oop-interface.md create mode 100644 oop/oop-magic-methods.md create mode 100644 oop/oop-method-and-property.md create mode 100644 oop/oop-static-and-non-static-context.md create mode 100644 oop/oop-traits.md create mode 100644 oop/oop-visibility.md diff --git a/README.md b/README.md index 55ec7b5..6baac1a 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,20 @@ -**লেখক ও কন্ট্রিবিউটরদের তালিকা** -[বিস্তারিত এখানে](https://github.com/howtocode-dev/php.howtocode.dev/graphs/contributors?type=a) +# শুরুর আগে -বর্তমান যুগে ওয়েব অটোমেশনের জন্য একটি বিশ্বস্ত নাম - পিএইচপি । পিএইচপি একটি জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ যার সূচনাই হয়েছিলো ওয়েব ডেভেলপমেন্ট এর জন্য । দিনে দিনে পিএইচপির জনপ্রিয়তা বাড়তে বাড়তে ওয়েব আজ তার আধিপত্য অদ্বিতীয় । বিশ্বের প্রায় ৮২% (রেফ: ১) ওয়েবসাইটই কোন না কোনভাবে পিএইচপির উপর নির্ভরশীল । ফেইসবুকের একটা বিরাট অংশ ডেভেলপ করা পিএইচপিতে । তারা পিএইচপির উপর এতটাই নির্ভরশীল যে ফেইসবুক নিজেরাই পিএইচপির উন্নয়নের জন্য নতুন পিএইচপি ইনজিন (HHVM) রিলিজ করে । উইকিপিডিয়াও কিন্তু ডেভেলপ করা পিএইচপিতে । পিএইচপির প্রবল জনপ্রিয়তা আর চাহিদার কথা চিন্তা করে গুগল সম্প্রতি তাদের এ্যাপ ইনজিন প্ল্যাটফর্মে পিএইচপি সাপোর্ট যোগ করে । আসলে যেখানে ওয়েবের ৮২%-ই পিএইচপি ব্যবহার করে সেখানে উদাহরণ খুজঁতে গেলে হাজার হাজার নমুনা পাওয়া যাবে । ওয়েব নির্ভর প্রজেক্টগুলোতে তাই পিএইচপি ডেভেলপারদের চাহিদাও ব্যাপক । +**লেখক ও কন্ট্রিবিউটরদের তালিকা** +[বিস্তারিত এখানে](https://github.com/howtocode-dev/php.howtocode.dev/graphs/contributors?type=a) -রেফারেন্স: -(১) http://php.net/usage.php +বর্তমান যুগে ওয়েব অটোমেশনের জন্য একটি বিশ্বস্ত নাম - পিএইচপি । পিএইচপি একটি জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ যার সূচনাই হয়েছিলো ওয়েব ডেভেলপমেন্ট এর জন্য । দিনে দিনে পিএইচপির জনপ্রিয়তা বাড়তে বাড়তে ওয়েব আজ তার আধিপত্য অদ্বিতীয় । বিশ্বের প্রায় ৮২% \(রেফ: ১\) ওয়েবসাইটই কোন না কোনভাবে পিএইচপির উপর নির্ভরশীল । ফেইসবুকের একটা বিরাট অংশ ডেভেলপ করা পিএইচপিতে । তারা পিএইচপির উপর এতটাই নির্ভরশীল যে ফেইসবুক নিজেরাই পিএইচপির উন্নয়নের জন্য নতুন পিএইচপি ইনজিন \(HHVM\) রিলিজ করে । উইকিপিডিয়াও কিন্তু ডেভেলপ করা পিএইচপিতে । পিএইচপির প্রবল জনপ্রিয়তা আর চাহিদার কথা চিন্তা করে গুগল সম্প্রতি তাদের এ্যাপ ইনজিন প্ল্যাটফর্মে পিএইচপি সাপোর্ট যোগ করে । আসলে যেখানে ওয়েবের ৮২%-ই পিএইচপি ব্যবহার করে সেখানে উদাহরণ খুজঁতে গেলে হাজার হাজার নমুনা পাওয়া যাবে । ওয়েব নির্ভর প্রজেক্টগুলোতে তাই পিএইচপি ডেভেলপারদের চাহিদাও ব্যাপক । +রেফারেন্স: \(১\) [http://php.net/usage.php](http://php.net/usage.php) -### ওপেন সোর্স +## ওপেন সোর্স এই বইটি মূলত স্বেচ্ছাশ্রমে লেখা এবং বইটি সম্পূর্ন ওপেন সোর্স । এখানে তাই আপনিও অবদান রাখতে পারেন লেখক হিসেবে । আপনার কন্ট্রিবিউশান গৃহীত হলে অবদানকারীদের তালিকায় আপনার নাম যোগ করে দেওয়া হবে । -এটি মূলত একটি [গিটহাব রিপোজিটোরি](https://github.com/howtocode-dev/php.howtocode.dev) যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে । রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন । +এটি মূলত একটি [গিটহাব রিপোজিটোরি](https://github.com/howtocode-dev/php.howtocode.dev) যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে । রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন । + +> **বর্তমানে বইটির কন্টেন্ট বিভিন্ন কন্ট্রিবিউটর এবং নানা রকম সোর্স থেকে সংগৃহীত এবং সংকলিত।** -> **বর্তমানে বইটির কন্টেন্ট বিভিন্ন কন্ট্রিবিউটর এবং নানা রকম সোর্স থেকে সংগৃহীত এবং সংকলিত।** + +This work is licensed under a [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License](http://creativecommons.org/licenses/by-nc-nd/4.0/). -Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. diff --git a/SUMMARY.md b/SUMMARY.md index daa3f94..08045a4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,4 +1,4 @@ -# Summary +# Table of contents * [শুরুর আগে](README.md) * [ইনস্টলেশন](installation.md) @@ -9,27 +9,28 @@ * [ফাংশনস](functions.md) * [মাস্টারিং এ্যারে](mastering-array.md) * [কমন এ্যারে ফাংশনস](common-array-functions.md) -* [অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং](oop.md) - * [ক্লাস এবং অবজেক্ট](oop-class-and-objects.md) - * [মেথড এবং প্রোপার্টি](oop-method-and-property.md) - * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop-static-and-non-static-context.md) - * [ইনহেরিট্যান্স](oop-inheritance.md) - * [ভিজিবিলিটি](oop-visibility.md) - * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop-constructors-and-destructors.md) - * [ইন্টারফেইস](oop-interface.md) - * [এ্যাবস্ট্রাকশন](oop-abstraction.md) - * [ট্রেইটস](oop-traits.md) - * [ম্যাজিক মেথডস](oop-magic-methods.md) +* [অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং](oop/README.md) + * [ক্লাস এবং অবজেক্ট](oop/oop-class-and-objects.md) + * [মেথড এবং প্রোপার্টি](oop/oop-method-and-property.md) + * [স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট](oop/oop-static-and-non-static-context.md) + * [ইনহেরিট্যান্স](oop/oop-inheritance.md) + * [ভিজিবিলিটি](oop/oop-visibility.md) + * [কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর](oop/oop-constructors-and-destructors.md) + * [ইন্টারফেইস](oop/oop-interface.md) + * [এ্যাবস্ট্রাকশন](oop/oop-abstraction.md) + * [ট্রেইটস](oop/oop-traits.md) + * [ম্যাজিক মেথডস](oop/oop-magic-methods.md) * [নেইমস্পেইস](namespace.md) * [ফাইলসিস্টেম](filesystem.md) -* [ডিজাইন প্যাটার্ন](design-patterns.md) - * [সিঙ্গেলটোন](singleton-pattern.md) - * [অবজার্ভার](observer-pattern.md) - * [অ্যাডাপ্টার](adapter-pattern.md) - * [ফ্যাক্টরী](factory-pattern.md) - * [ডিপেন্ডেন্সি ইনজেকশন](dependency-injection-pattern.md) - * [ফ্যাসাড](facade-pattern.md) - * [স্ট্রাটেজি](strategy-pattern.md) - * [ইটারেটর](iterator-pattern.md) - * [প্রক্সি](proxy-pattern.md) - * [ডেকোরেটর](decorator-pattern.md) +* [ডিজাইন প্যাটার্ন](design-patterns/README.md) + * [সিঙ্গেলটোন](design-patterns/singleton-pattern.md) + * [অবজার্ভার](design-patterns/observer-pattern.md) + * [অ্যাডাপ্টার](design-patterns/adapter-pattern.md) + * [ফ্যাক্টরী](design-patterns/factory-pattern.md) + * [ডিপেন্ডেন্সি ইনজেকশন](design-patterns/dependency-injection-pattern.md) + * [ফ্যাসাড](design-patterns/facade-pattern.md) + * [স্ট্রাটেজি](design-patterns/strategy-pattern.md) + * [ইটারেটর](design-patterns/iterator-pattern.md) + * [প্রক্সি](design-patterns/proxy-pattern.md) + * [ডেকোরেটর](design-patterns/decorator-pattern.md) + diff --git a/basics.md b/basics.md index 8a4ff7c..78d2b22 100644 --- a/basics.md +++ b/basics.md @@ -1,29 +1,30 @@ # ল্যাঙ্গুয়েজ ব্যাসিকস -### পিএইচপি কিভাবে কাজ করে? +## পিএইচপি কিভাবে কাজ করে? -পিএইচপি ইনজিন পিএইচপি ফাইল পড়ে লাইন বাই লাইন কোড এক্সিকিউট করে এবং আউটপুট দেয় । পিএইচপি ট্যাগের মধ্যে থাকা সব কোডই এই ইনজিনটি প্রসেস করে । প্রত্যেকটি ইনস্ট্রাকশন এর পর সেমিকোলন ব্যবহার করা হয় । সেমিকোলন দেখে পিএইচপি বুঝে নেয় তার বর্তমান কাজটি কোথায় এসে শেষ হবে । +পিএইচপি ইনজিন পিএইচপি ফাইল পড়ে লাইন বাই লাইন কোড এক্সিকিউট করে এবং আউটপুট দেয় । পিএইচপি ট্যাগের মধ্যে থাকা সব কোডই এই ইনজিনটি প্রসেস করে । প্রত্যেকটি ইনস্ট্রাকশন এর পর সেমিকোলন ব্যবহার করা হয় । সেমিকোলন দেখে পিএইচপি বুঝে নেয় তার বর্তমান কাজটি কোথায় এসে শেষ হবে । -### পিএইচপি ট্যাগ -যে কোন পিএইচপি ফাইল শুরুই করতে হয় বিশেষ একটি ট্যাগ ব্যবহার করে । এই ট্যাগটি দেখেই পিএইচপি ইনজিন বুঝতে পারে যে এই জায়গা থেকে পিএইচপি কোড শুরু । তখন সে ঐ ট্যাগের মধ্যবর্তী অংশ লাইন বাই লাইন এক্সিকিউট করে । আবার ট্যাগ শেষ হয়ে গেলে সে ধরে নেয় তার কাজ শেষ, আবার ট্যাগ না আসা পর্যন্ত ফাইলে যা আছে তা ঠিক তেমনভাবেই আউটপুট দিয়ে দেয় । +## পিএইচপি ট্যাগ -পিএইচপি ট্যাগ শুরু করতে হয় `` লিখে । ফাইলটিতে যদি শুধু পিএইচপি কোডই থাকে তবে ট্যাগ ক্লোজ না করলেও সমস্যা হয় না । তবে যদি আমরা পিএইচপি দিয়ে ডাইনামিক প্রসেসিং এর পাশাপাশি কিছু স্ট্যাটিক অংশও রাখতে চাই সেক্ষেত্রে আমরা পিএইচপি ট্যাগ ওপেন এবং ক্লোজ করে নির্ধারন করে দিতে পারি কোন অংশটুকু ডাইনামিকালি পিএইচপি জেনারেট করবে আর কোন অংশ সবসময়ই একই থাকবে । +যে কোন পিএইচপি ফাইল শুরুই করতে হয় বিশেষ একটি ট্যাগ ব্যবহার করে । এই ট্যাগটি দেখেই পিএইচপি ইনজিন বুঝতে পারে যে এই জায়গা থেকে পিএইচপি কোড শুরু । তখন সে ঐ ট্যাগের মধ্যবর্তী অংশ লাইন বাই লাইন এক্সিকিউট করে । আবার ট্যাগ শেষ হয়ে গেলে সে ধরে নেয় তার কাজ শেষ, আবার ট্যাগ না আসা পর্যন্ত ফাইলে যা আছে তা ঠিক তেমনভাবেই আউটপুট দিয়ে দেয় । -যেমন: +পিএইচপি ট্যাগ শুরু করতে হয় `` লিখে । ফাইলটিতে যদি শুধু পিএইচপি কোডই থাকে তবে ট্যাগ ক্লোজ না করলেও সমস্যা হয় না । তবে যদি আমরা পিএইচপি দিয়ে ডাইনামিক প্রসেসিং এর পাশাপাশি কিছু স্ট্যাটিক অংশও রাখতে চাই সেক্ষেত্রে আমরা পিএইচপি ট্যাগ ওপেন এবং ক্লোজ করে নির্ধারন করে দিতে পারি কোন অংশটুকু ডাইনামিকালি পিএইচপি জেনারেট করবে আর কোন অংশ সবসময়ই একই থাকবে । -``` +যেমন: + +```text

    This is going to be ignored by PHP and displayed by the browser.

    This will also be ignored by PHP and displayed by the browser.

    ``` -এখানে আমরা প্রথমে এইচটিএমএল আউটপুট করলাম, এরপর একটা পিএইচপি ব্লক তারপর আবার আগের মতই এইচটিএমএল । +এখানে আমরা প্রথমে এইচটিএমএল আউটপুট করলাম, এরপর একটা পিএইচপি ব্লক তারপর আবার আগের মতই এইচটিএমএল । -### কমেন্টস +## কমেন্টস -কমেন্টস হলো কোড এর সেই অংশ যেটা পিএইচপি ইনজিন ইগনোর করে যায় । কমেন্টস এ কোন ইনস্ট্রাকশন থাকে না । মূলত কোড এ কমেন্ট করা হয় ছোট ছোট নোট আকারে । এই নোটগুলো কোড এর বিভিন্ন বিষয় ব্যখ্যা করে । যেমন একটি ভ্যারিয়েবল কি কাজ করে এটা আমরা ঐ ভ্যারিয়েবল এর পাশে কমেন্ট আকারে লিখে দিতে পারি । +কমেন্টস হলো কোড এর সেই অংশ যেটা পিএইচপি ইনজিন ইগনোর করে যায় । কমেন্টস এ কোন ইনস্ট্রাকশন থাকে না । মূলত কোড এ কমেন্ট করা হয় ছোট ছোট নোট আকারে । এই নোটগুলো কোড এর বিভিন্ন বিষয় ব্যখ্যা করে । যেমন একটি ভ্যারিয়েবল কি কাজ করে এটা আমরা ঐ ভ্যারিয়েবল এর পাশে কমেন্ট আকারে লিখে দিতে পারি । -পিএইচপিতে ৩ ধরনের কমেন্টস করা সম্ভব: +পিএইচপিতে ৩ ধরনের কমেন্টস করা সম্ভব: ```php Array Functions সেকশনে । এই চ্যাপ্টারে আমরা বেশি প্রচলিত কিছু এ্যারে সংশ্লিষ্ট ফাংশন সম্পর্কে জানবো । পরবর্তীতে বাকি এ্যারে ফাংশনগুলোও কাভার করা হবে এখানে । +পিএইচপিতে এ্যারে নিয়ে কাজ করার জন্য প্রচুর ফাংশন রয়েছে । এগুলোর পূর্নাঙ্গ তালিকা পাওয়া যাবে ম্যানুয়ালে - [Array Functions](http://php.net/manual/en/ref.array.php) সেকশনে । এই চ্যাপ্টারে আমরা বেশি প্রচলিত কিছু এ্যারে সংশ্লিষ্ট ফাংশন সম্পর্কে জানবো । পরবর্তীতে বাকি এ্যারে ফাংশনগুলোও কাভার করা হবে এখানে । -এই চ্যাপ্টারটির বেশীরভাগ কন্টেন্ট, বিশেষ করে উদাহরণগুলো পিএইচপি ম্যানুয়াল থেকে নেওয়া । এখানে বাংলায় ব্যখ্যা করা হয়েছে ফাংশনগুলো । নবীনদের জন্য যতটুকু প্রয়োজন ঠিক ততটুকু রাখা হয়েছে । এ্যাডভান্সড কিছু জিনিস ইচ্ছাকৃতভাবেই সংযোজন করা হয়নি । +এই চ্যাপ্টারটির বেশীরভাগ কন্টেন্ট, বিশেষ করে উদাহরণগুলো পিএইচপি ম্যানুয়াল থেকে নেওয়া । এখানে বাংলায় ব্যখ্যা করা হয়েছে ফাংশনগুলো । নবীনদের জন্য যতটুকু প্রয়োজন ঠিক ততটুকু রাখা হয়েছে । এ্যাডভান্সড কিছু জিনিস ইচ্ছাকৃতভাবেই সংযোজন করা হয়নি । -উদাহরণগুলোর আউটপুট ইচ্ছাকৃতভাবেই বইতে দেখানো হয়নি । কোড নিজে থেকে রান করে আউটপুট দেখে বোঝার চেষ্টা করার সুযোগ দেওয়ার জন্যই এমনটি করা হয়েছে । +উদাহরণগুলোর আউটপুট ইচ্ছাকৃতভাবেই বইতে দেখানো হয়নি । কোড নিজে থেকে রান করে আউটপুট দেখে বোঝার চেষ্টা করার সুযোগ দেওয়ার জন্যই এমনটি করা হয়েছে । +## count\(\) -### count() - -একটি এ্যারেতে কতগুলি এলিমেন্ট আছে তা জানতে আমরা এই ফাংশনটি ব্যবহার করে থাকি । +একটি এ্যারেতে কতগুলি এলিমেন্ট আছে তা জানতে আমরা এই ফাংশনটি ব্যবহার করে থাকি । ```php "XL", "color" => "gold"); print_r(array_values($array)); ``` -### in_array +## in\_array -এই ফাংশনটি একটি এ্যারেতে একটি নির্দিষ্ট ভ্যালু আছে কিনা তা জানায় । ৩য় প্যারামিটারটি অপশনাল । বুলিয়ান `true` পাস করলে সার্চ করার সময় টাইপও ম্যাচ করে । +এই ফাংশনটি একটি এ্যারেতে একটি নির্দিষ্ট ভ্যালু আছে কিনা তা জানায় । ৩য় প্যারামিটারটি অপশনাল । বুলিয়ান `true` পাস করলে সার্চ করার সময় টাইপও ম্যাচ করে । ```php 1, "b" => 1, "c" => 2); $trans = array_flip($trans); print_r($trans); ``` -### array_reverse -এই ফাংশনটি এ্যারের আইটেমগুলোর অর্ডার বা ক্রমিক উল্টো করে দেয় । অর্থাৎ প্রথম আইটেমটি শেষে আর শেষের আইটেমটি শুরুতে আসে । এবং অন্যান্য আইটেমগুলিও একইভাবে উল্টো অর্ডারে নিয়ে আসা হয় । +## array\_reverse -আমরা যদি আইটেমের অর্ডার পরিবর্তন হলেও তার আগের কি এর ভ্যালু ঠিক রাখতে চাই তাহলে ২য় আর্গুমেন্টটির ভ্যালু বুলিয়ান `true` পাস করলেই হবে । +এই ফাংশনটি এ্যারের আইটেমগুলোর অর্ডার বা ক্রমিক উল্টো করে দেয় । অর্থাৎ প্রথম আইটেমটি শেষে আর শেষের আইটেমটি শুরুতে আসে । এবং অন্যান্য আইটেমগুলিও একইভাবে উল্টো অর্ডারে নিয়ে আসা হয় । +আমরা যদি আইটেমের অর্ডার পরিবর্তন হলেও তার আগের কি এর ভ্যালু ঠিক রাখতে চাই তাহলে ২য় আর্গুমেন্টটির ভ্যালু বুলিয়ান `true` পাস করলেই হবে । ```php http://php.net/manual/en/language.operators.precedence.php - পরবর্তীতে এই কন্টেন্টও বাংলায় বিশদভাবে ব্যখ্যা করে লেখার ইচ্ছা আছে । +বলুনতো এটার ফল কেন `10` হবে? কারণ আমরা জানি এখানে সবার আগে ভাগ এবং গুন এর কাজ করতে হবে এরপর যোগ বিয়োগ । এটাই গনিতের নিয়ম, এখানে এই যে আমরা ভাগ এবং গুনকে অগ্রাধিকার দিলাম, এটাই অপারেটর প্রিসিডেন্স । যখন পিএইচপিতে একাধিক এক্সপ্রেশনের মধ্যে আমরা এমন করে অপারেটর ব্যবহার করি তখন কোন কোন অপারেটর অগ্রাধিকার পায় - তাই সঠিক ফলাফল পেতে আমাদেরকে অপারেটর প্রিসিডেন্স সম্পর্কে বিস্তারিত জানতে হবে । +অপারেটর প্রিসিডেন্স সম্পর্কে আরো বিস্তারিত জানতে পিএইচপি ম্যানুয়ালের এই চ্যাপ্টারটি দ্রষ্টব্য - [http://php.net/manual/en/language.operators.precedence.php](http://php.net/manual/en/language.operators.precedence.php) - পরবর্তীতে এই কন্টেন্টও বাংলায় বিশদভাবে ব্যখ্যা করে লেখার ইচ্ছা আছে । -#### কমন অপারেটরস +### কমন অপারেটরস -গানিতিক অপারেটরগুলো আমরা সবাই কমবেশী চিনি: +গানিতিক অপারেটরগুলো আমরা সবাই কমবেশী চিনি: ```php = $b; // TRUE যদি $a, $b এর সমান অথবা $b থেকে বড় হয় ``` -মনে রাখতে হবে, যদি আমরা স্ট্রিং এর সাথে নাম্বার কম্পেয়ার করি তবে পিএইচপি অটোমেটিক্যালি স্ট্রিংকে নাম্বারে কনভার্ট করবে । এরপর দুই নাম্বার ভ্যালু কম্পেয়ার করবে । তবে `===` বা `!==` এর বেলায়, যেখানে টাইপ সহ কম্পেয়ার করা হয় - এসব ক্ষেত্রে টাইপ কনভার্শন অটোমেটিক্যালি হয় না । +মনে রাখতে হবে, যদি আমরা স্ট্রিং এর সাথে নাম্বার কম্পেয়ার করি তবে পিএইচপি অটোমেটিক্যালি স্ট্রিংকে নাম্বারে কনভার্ট করবে । এরপর দুই নাম্বার ভ্যালু কম্পেয়ার করবে । তবে `===` বা `!==` এর বেলায়, যেখানে টাইপ সহ কম্পেয়ার করা হয় - এসব ক্ষেত্রে টাইপ কনভার্শন অটোমেটিক্যালি হয় না । -ইনক্রিমেন্টাল ও ডিক্রিমেন্টাল অপারেটরস: +ইনক্রিমেন্টাল ও ডিক্রিমেন্টাল অপারেটরস: ```php = $b; // TRUE যদি $a, $b এর সমান অথবা $b থেক $a++ // আগে $a এর ভ্যালু রিটার্ন করে তারপর $a এর ভ্যালু এক বাড়িয়ে দেয় --$a // ‌আগে $a এর ভ্যালু এক কমিয়ে নেয় তারপর $a এর ভ্যালু রিটার্ন করে -$a-- // আগে $a এর ভ্যালু রিটার্ন করে তারপর $a এর ভ্যালু এক কমিয়ে দেয় +$a-- // আগে $a এর ভ্যালু রিটার্ন করে তারপর $a এর ভ্যালু এক কমিয়ে দেয় ``` -লজিকাল অপারেটরস: +লজিকাল অপারেটরস: ```php 18) { - echo "You are an adult!"; + echo "You are an adult!"; } else { - echo "You are not an adult yet!"; + echo "You are not an adult yet!"; } ``` -এখানে আমরা একটি ভ্যারিয়েবল নিয়েছি `$age` এরপর ইফ ব্লকে আমরা চেক করছি এই ভ্যারিয়েবল এর মান ১৮ অপেক্ষা বেশি কিনা । যদি ১৮ অপেক্ষা বেশি হয় তাহলে প্রথম ব্লক রান করবে । যদি না হয় তবে দ্বিতীয় ব্লক । উপরের কোডটি রান করলে আমরা দেখবো এলস ব্লক রান করেছে কারন এই ভ্যারিয়েবল এর মান আমরা শুরুতেই ১০ নির্ধারণ করে দিয়েছি যেটা নি:সন্দেহে ১৮ থেকে বড় না । -আমরা চাইলে একাধিক শর্তও যোগ করতে পারি `elseif` ব্যবহার করে । এসব ক্ষেত্রে প্রথমে ইফ ব্লক চেক করা হবে, এটা যদি সত্য না হয় তাহলে এলসইফ ব্লকগুলো একটা একটা করে চেক করা হবে । যদি কোনটাই `true` না হয় তাহলেই এলস ব্লকের কোড রান করবে । যেমন: +এখানে আমরা একটি ভ্যারিয়েবল নিয়েছি `$age` এরপর ইফ ব্লকে আমরা চেক করছি এই ভ্যারিয়েবল এর মান ১৮ অপেক্ষা বেশি কিনা । যদি ১৮ অপেক্ষা বেশি হয় তাহলে প্রথম ব্লক রান করবে । যদি না হয় তবে দ্বিতীয় ব্লক । উপরের কোডটি রান করলে আমরা দেখবো এলস ব্লক রান করেছে কারন এই ভ্যারিয়েবল এর মান আমরা শুরুতেই ১০ নির্ধারণ করে দিয়েছি যেটা নি:সন্দেহে ১৮ থেকে বড় না । + +আমরা চাইলে একাধিক শর্তও যোগ করতে পারি `elseif` ব্যবহার করে । এসব ক্ষেত্রে প্রথমে ইফ ব্লক চেক করা হবে, এটা যদি সত্য না হয় তাহলে এলসইফ ব্লকগুলো একটা একটা করে চেক করা হবে । যদি কোনটাই `true` না হয় তাহলেই এলস ব্লকের কোড রান করবে । যেমন: ```php $b) { } ``` -পুনশ্চ: একটি ইফ বা এলস কোড ব্লকের মধ্যে চাইলে আরো ইফ এলস ব্লক যোগ করা যায় । এটাকে নেস্টেড ব্লক বলা হয় । +পুনশ্চ: একটি ইফ বা এলস কোড ব্লকের মধ্যে চাইলে আরো ইফ এলস ব্লক যোগ করা যায় । এটাকে নেস্টেড ব্লক বলা হয় । -### হোয়াইল লুপ (While) +### হোয়াইল লুপ \(While\) -লুপ কি জিনিস তা আমরা সবাই কম বেশি জানি । হোয়াইল লুপের কাজ হচ্ছে আমাদের দিয়ে দেওয়া এক্সপ্রেশন যতক্ষণ পর্যন্ত সত্য হবে ততক্ষন পর্যন্ত সাথে দেওয়া কোড ব্লকটি এক্সিকিউট করা । প্রতিবার লুপ এর শুরুতে ঐ এক্সপ্রেশনটি পিএইচপি চেক করবে, যদি সত্য হয় তাহলে কোড ব্লকটি রান করবে, কোড ব্লক রান করা শেষ হলে সে আবার এক্সপ্রেশনটি চেক করবে - এভাবে চলতেই থাকবে যতক্ষণ পর্যন্ত ঐ এক্সপ্রেশন `true` রিটার্ন করবে । সুতরাং আমরা বুঝতে পারছি যদি আমাদের লুপ ভেঙ্গে বের হতে হয় তাহলে এমন কোন পরিবর্তন আনতে হবে যাতে ঐ এক্সপ্রেশন এর ভ্যালু আর সত্য না হয় । উদাহরণ দেখে নেই: +লুপ কি জিনিস তা আমরা সবাই কম বেশি জানি । হোয়াইল লুপের কাজ হচ্ছে আমাদের দিয়ে দেওয়া এক্সপ্রেশন যতক্ষণ পর্যন্ত সত্য হবে ততক্ষন পর্যন্ত সাথে দেওয়া কোড ব্লকটি এক্সিকিউট করা । প্রতিবার লুপ এর শুরুতে ঐ এক্সপ্রেশনটি পিএইচপি চেক করবে, যদি সত্য হয় তাহলে কোড ব্লকটি রান করবে, কোড ব্লক রান করা শেষ হলে সে আবার এক্সপ্রেশনটি চেক করবে - এভাবে চলতেই থাকবে যতক্ষণ পর্যন্ত ঐ এক্সপ্রেশন `true` রিটার্ন করবে । সুতরাং আমরা বুঝতে পারছি যদি আমাদের লুপ ভেঙ্গে বের হতে হয় তাহলে এমন কোন পরিবর্তন আনতে হবে যাতে ঐ এক্সপ্রেশন এর ভ্যালু আর সত্য না হয় । উদাহরণ দেখে নেই: ```php 0); ``` -দেখুন এখানে `$i` এর ভ্যালু ০ অপেক্ষা বেশি না হলেও কোড ব্লকটি রান করে এবং ০ আউটপুট দেয় । +দেখুন এখানে `$i` এর ভ্যালু ০ অপেক্ষা বেশি না হলেও কোড ব্লকটি রান করে এবং ০ আউটপুট দেয় । -### ফর লুপ (for) +### ফর লুপ \(for\) -এটা একটু তুলনামূলকভাবে জটিল লুপ । এখানে আমরা ৩টা এক্সপ্রেশন দিয়ে দেই - +এটা একটু তুলনামূলকভাবে জটিল লুপ । এখানে আমরা ৩টা এক্সপ্রেশন দিয়ে দেই - * প্রথমটা যখন প্রথমবার লুপ শুরু হবে তখন রান করা হবে । * ২য় টা হচ্ছে লুপের মূল শর্ত, হোয়াইল লুপের মত প্রতিবার লুপ শুরু হওয়ার সময় এটা চেক করা হবে । এটার বুলিয়ান ভ্যালু `true` হলেই কেবল লুপটি চলবে । * ৩য়টা প্রতিবার কোড ব্লক শেষ করে রান করা হয় । -আমরা খুব সিম্পল একটা উদাহরণ দেখে নেই: +আমরা খুব সিম্পল একটা উদাহরণ দেখে নেই: ```php "abdullah", "b" => "bahar"); foreach($arr2 as $k => $v) { - echo $k. "=". $v; + echo $k. "=". $v; } ``` -প্রথম উদাহরণে আমরা পিএইচপিকে বলে দিচ্ছি `$arr` এ্যারে থেকে একেকটি আইটেম নিয়ে সেটিকে `$value` ভ্যারিয়েবলে রাখতে । এরপর কোড ব্লকটি রান করতে । ২য় উদাহরণে, আমরা বলে দিচ্ছি ইনডেক্স এর ভ্যালু টা `$k` এবং আইটেম এর ভ্যালুটা `$v` ভ্যারিয়েবলে রেখে কোড ব্লকটি রান করাতে । +প্রথম উদাহরণে আমরা পিএইচপিকে বলে দিচ্ছি `$arr` এ্যারে থেকে একেকটি আইটেম নিয়ে সেটিকে `$value` ভ্যারিয়েবলে রাখতে । এরপর কোড ব্লকটি রান করতে । ২য় উদাহরণে, আমরা বলে দিচ্ছি ইনডেক্স এর ভ্যালু টা `$k` এবং আইটেম এর ভ্যালুটা `$v` ভ্যারিয়েবলে রেখে কোড ব্লকটি রান করাতে । -### সুইচ (switch) +### সুইচ \(switch\) -সুইচ ব্যবহার করে আমরা খুব সহজে কোন একটা এক্সপ্রেশন এর ভ্যালুর উপর নির্ভর করে অনেকগুলো সিদ্ধান্ত থেকে এক বা একাধিক বেছে নিতে পারি । এর আগে আমরা ইফ-এলস, এলস-ইফ এর ব্যবহার দেখেছি । যখন অনেকগুলো শর্ত পরপর চেক করার প্রয়োজন হয় তখন আমরা এলস-ইফ ব্যবহার করি, অনেকটা নিচের মত করে - +সুইচ ব্যবহার করে আমরা খুব সহজে কোন একটা এক্সপ্রেশন এর ভ্যালুর উপর নির্ভর করে অনেকগুলো সিদ্ধান্ত থেকে এক বা একাধিক বেছে নিতে পারি । এর আগে আমরা ইফ-এলস, এলস-ইফ এর ব্যবহার দেখেছি । যখন অনেকগুলো শর্ত পরপর চেক করার প্রয়োজন হয় তখন আমরা এলস-ইফ ব্যবহার করি, অনেকটা নিচের মত করে - ```php connection = new mysqli($host, $username, $password, $dbname); + } + + public function query($sql) + { + $this->result = $this->connection->query($sql); + + return $this; + } + + public function result() + { + if (gettype($this->result) === 'boolean') { + return $this->result; + } elseif ($this->result->num_rows > 0) { + $result = []; + + while ($row = $this->result->fetch_assoc()) { + $result[] = $row; + } + + return $result; + } else { + return []; + } + } +} + +class PDOAdapter implements AdapterInterface +{ + protected $connection; + + protected $result; + + public function __construct($host, $username, $password, $dbname) + { + $this->connection = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); + } + + public function query($sql) + { + $query = $this->connection->prepare($sql); + $exec = $query->execute(); + + if ($query->columnCount() == 0) { + $this->result = $exec; + } else { + $this->result = $query; + } + + return $this; + } + + public function result() + { + if (gettype($this->result) === 'boolean') { + return $this->result; + } else { + $data = []; + + while ($row = $this->result->fetch(PDO::FETCH_ASSOC)) { + $data[] = $row; + } + + return $data; + } + } +} + +class Database +{ + protected $adapter; + + public function __construct(AdapterInterface $adapter) + { + $this->adapter = $adapter; + } + + public function query($sql) + { + return $this->adapter->query($sql); + } + + public function result() + { + return $this->adapter->result(); + } +} + +$mysql = new MySQLAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($mysql); + +$query = $db->query("SELECT * FROM users"); +$result = $query->result(); +var_dump($result); +``` + +এখানে `AdapterInterface` ইন্টারফেইস ব্যবহার করা হয়েছে যেটিকে ইমপ্লিমেন্ট করে যথাক্রমে `MySQLAdapter` ও `PDOAdapter` ডিক্লেয়ার করা হয়েছে যাতে দুইটারি ন্যাচার কিংবা কোডবেইস একই থাকে। + +আবার ডাটাবেসকে অ্যাকসেস করার জন্য ও অ্যাডাপ্টারগুলাকে ব্যবহার করার জন্য `Database` নামে একটা ক্লাস ডিফাইন করা হয়েছে। আর এর ডিপেন্ডেন্সি ইনজেকশন হিসেবে `AdapterInterface` ব্যবহার করা হয়েছে যাতে করে কেবল মাত্র `AdapterInterface` ইমপ্লিমেন্ট করা ক্লাসের ইন্সটান্সই কন্সটারক্টরে পাস করা যায়। + +এখানে আমরা `MySQLAdapter` কে ব্যবহার করেছি। + +```php +$mysql = new MySQLAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($mysql); +``` + +আমরা চাইলে PDOAdapter ও ব্যবহার করতে পারি নিচের মত করে। + +```php +$pdo = new PDOAdapter('localhost', 'root', '1234', 'demo'); +$db = new Database($pdo); +``` + +এতে করে অ্যাডাপ্টার গুলা **Loosly Coupled/Highly Decoupled** থাকে আর বর্তমানে এই টার্মটাকে খুবই প্রাধান্য দেয়া হয় বড় কোন অ্যাপ্লিকেশন কিংবা ফ্রেমওয়ার্ক তৈরি করতে গেলে। + +নিচের [লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে সোর্স কোডটি পাবেন। + diff --git a/design-patterns/decorator-pattern.md b/design-patterns/decorator-pattern.md new file mode 100644 index 0000000..e102fec --- /dev/null +++ b/design-patterns/decorator-pattern.md @@ -0,0 +1,65 @@ +# ডেকোরেটর + +`Decorator` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। `Decorator` শব্দটি শুনলেই আমরা বুঝতে পারছি যে এটি কোন কিছুর প্রসাধক হিসেবে কাজ করে থাকে। + +অবজেক্ট ওরিয়েন্টেডের ক্ষেত্রে ডেকোরেটর একটি নির্দিষ্ট অবজেক্টকে স্টাটিক্যালি অথবা ডায়নামিক্যালি সংযুক্তি বা পরিবর্তন করে থাকে। + +এখন প্রশ্ন আসতে পারে আমরা কোন ক্লাসকে ইনহেরিট করেই তো এই কাজটি করতে পারি তাহলে কেন ডেকোরেটর ব্যাবহার করবো? ইনহেরিট্যান্স এর মাধ্যমে আমরা একটা ক্লাসকে পরিবর্তন করে থাকি তার মানে সাবক্লাস দিয়ে আমরা যতগুলো অবজেক্ট তৈরি করবো সবগুলাই সেইম হবে। অন্যদিকে ডেকোরেটর আমাদেরকে এই ক্ষেত্রে শুধুমাত্র কোন নির্দিষ্ট অবজেক্টে পরিবর্তন করতে ফ্লেক্সিবিলিটি দিয়ে থাকে। + +এবার চলুন একটা উদাহরণ দেখা যাক। + +```php +interface EmailInterface +{ + public function body(); +} + +class Email implements EmailInterface +{ + public function body() + { + return 'Simple email body.'; + } +} + +abstract class EmailDecorator implements EmailInterface +{ + public $email; + + public function __construct(EmailInterface $email) + { + $this->email = $email; + } + + abstract public function body(); +} + +class NewYearEmailDecorator extends EmailDecorator +{ + public function body() + { + return $this->email->body() . ' Additional text from deocorator.'; + } +} +``` + +উপরের কোডে খেয়াল করলে দেখতে পাবেন ইমেইল পাঠানোর জন্য একটি মুল ইন্টারফেইস `EmailInterface` আর এর কনক্রিট ক্লাস `Email` ইমপ্লিমেন্ট করা হয়েছে যা দিয়ে আমরা সিম্পল ইমেইল করতে পারি। + +এবার ডেকোরেটর এর জন্য `EmailDecorator` অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করেছি আর এইটা কে ইনহেরিট করে `NewYearEmailDecorator` কনক্রিট ক্লাস ডিফাইন করেছি যার মাধ্যমে আমরা খুব সহজেই ইমেইলের অবজেক্টকে পরিবর্তন/সংযুক্তি করতে পারবো। + +আমরা চাইলে `EmailDecorator` অ্যাবস্ট্রাক্ট ক্লাসটি ইনহেরিট করে আরও ক্লাস ডিফাইন করতে পারি। + +এবার নিচের কোডটি দেখলে বুঝতে পারবেন কিভাবে অবজেক্টকে ডেকোরেট করা হয়েছে। + +```php +// Simple Email +$email = new Email(); +var_dump($email->body()); + +// Decorated Email +$emailNewYearDecorator = new NewYearEmailDecorator($email); +var_dump($emailNewYearDecorator->body()); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/design-patterns/dependency-injection-pattern.md b/design-patterns/dependency-injection-pattern.md new file mode 100644 index 0000000..d5bfad2 --- /dev/null +++ b/design-patterns/dependency-injection-pattern.md @@ -0,0 +1,98 @@ +# ডিপেন্ডেন্সি ইনজেকশন + +ডিপেন্ডেন্সি ইনজেকশন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। এইটা এমন একটা ডিজাইন প্যাটার্ন যা কোন ক্লাসের ডিপেন্ডেন্সি অর্থাৎ প্রয়োজনীয় অবজেক্ট গুলোকে রান টাইম কিংবা কম্পাইল টাইমে সহজে পরিবর্তনে সহায়তা করে। + +এই প্যাটার্নের মূল উদ্দেশ্যই হল লুজলি কাপল আর্কিটেকচার ইমপ্লিমেন্ট করা যাতে করে একটা ভাল মানের অ্যাপ তৈরি করা যায়। + +ডিপেন্ডেন্সি ইনজেকশন ডিজাইন প্যাটার্ন হল `S.O.L.I.D Principle` এর `D` যার পূর্ণ অর্থ `Dependency Inversion Principle (DIP)` যেটি `Inversion of Control (IoC)` কে অনুসরণ করে। + +এখানে `Dependency Inversion Principle` বলতে `Decoupling` করাকে বুঝানো হয় আর `Inversion of Control` বলতে কিভাবে ডিপেন্ডেন্সি রিজল্ভ করা হবে সেটিকে বুঝায়। ডিপেন্ডেন্সি রিজল্ভ করতে `Dependency Injection (DI) Container` বা `Inversion of Control (IoC) Container` ব্যাবহৃত হয়ে থাকে। + +আমরা সাধারণত একটি ক্লাসে অন্য ক্লাসের অবজেক্ট ব্যাবহার করলে নিচের মত করে হার্ডকোড করি যা হাইলি কাপল্ড থাকে। + +```php +class Database +{ + protected $adapter; + + public function __construct() + { + $this->adapter = new MySqlAdapter; + } +} + +class MysqlAdapter +{ + +} +``` + +আর ডিপেন্ডেন্সি ইনজেকশন ডিজাইন প্যাটার্নে কোন ক্লাস কিংবা ইন্টারফেইসকে টাইপ হিন্ট করে কনস্ট্রাক্টর কিংবা মেথডে ইঞ্জেক্ট করতে হয় নিচের মত করে। + +```php +class Database +{ + protected $adapter; + + public function __construct(MySqlAdapter $adapter) + { + $this->adapter = $adapter; + } +} + +class MysqlAdapter +{ + +} +``` + +উপরে `MySqlAdapter` ক্লাসকে ডিপেন্ডেন্সি হিসেবে রাখা হয়েছে। আর এই ডিপেন্ডেন্সি রিজল্ভ করতে হলে অবশ্যই `MySqlAdapter` এর অবজেক্ট কন্সট্রাক্টরের প্যারামিটারে দিতে হবে। + +যেমনঃ + +```php +$mysqlAdapter = new MysqlAdapter; +$database = new Database($mysqlAdapter); +``` + +ডিপেন্ডেন্সি প্রধানত তিন ভাবে ইনজেক্ট করা যায়। + +## ১. কন্সট্রাক্টর ইনজেকশনঃ + +যা কনস্ট্রাক্টরের মাধ্যমে ইঞ্জেক্ট করা হয়। + +```php +public function __construct(MySqlAdapter $adapter) +{ + $this->adapter = $adapter; +} +``` + +## ২. সেটার ইনজেকশনঃ + +যা কোন মেথডের প্যারামিটারে ইঞ্জেক্ট করা হয়। + +```php +public function setterMethod(MySqlAdapter $adapter) +{ + $this->adapter = $adapter; +} +``` + +## ৩. ইন্টারফেইস ইনজেকশনঃ + +ইন্টারফেইসকে কোন কনস্ট্রাক্টরে অথবা সেটার মেথডে ইঞ্জেক্ট করা হয়। + +```php +public function __construct(AdapterInterface $adapter) +{ + $this->adapter = $adapter; +} +``` + +আমরা আমাদের প্রজেক্টে ডিপেন্ডেন্সি গুলোকে স্বয়ংক্রিয় ভাবে ইঞ্জেক্ট কিংবা রিজল্ভ করতে ডিপেন্ডেন্সি ইনজেকশন কন্টেইনার ব্যাবহার করব যা আগেই উল্লেখ করেছি। অনেক ফ্রেমওয়ার্কে এই কন্টেইনার সাধারণত বিল্ট-ইন দেয়া থাকে যেমনঃ `Symfony`, `Laravel`, `Yii` + +আমরা সাধারণ প্রজেক্টের ক্ষেত্রে `Pimple` নামে কন্টেইনারটি ব্যাবহার করতে পারি। আবার আমি আমার কাজের জন্য খুব সহজ এবং অপ্টিমাইজ একটা কন্টেইনার বানিয়েছিলাম আপনারা চাইলে সেটি দেখতে পারেন [এই লিঙ্ক](https://github.com/appzcoder/container) থেকে। আশাকরি সোর্স কোড ও ডকুমেন্টেশন থেকে আপনারা ভাল ধারণা পাবেন। + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/design-patterns/facade-pattern.md b/design-patterns/facade-pattern.md new file mode 100644 index 0000000..acf4823 --- /dev/null +++ b/design-patterns/facade-pattern.md @@ -0,0 +1,171 @@ +# ফ্যাসাড + +`Facade` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। ফ্যাসাড ডিজাইন প্যাটার্ন এর কাজ হল ক্লায়েন্ট এর কাছে একটা কমপ্লেক্স সিস্টেম বা ইন্টারফেইস হতে একটা সহজ ইন্টারফেইস প্রদান করা যাতে কমপ্লেক্স কিংবা আগলি কোড গুলো হিডেন অবস্থায় থাকে। + +লেগাসি কিংবা কমপ্লেক্স কোন সিস্টেম এর কোডকে সহজ ভাবে উপস্থাপন করার দরকার হলে এই প্যাটার্ন ব্যাবহার করা হয়। + +ধরুন আপনার সিস্টেম কিংবা অ্যাপ্লিকেশনে একটা কমপ্লেক্স লাইব্রেরি ব্যাবহার করার দরকার পরতেছে আর আপনি উক্ত কমপ্লেক্স পার্টকে সহজ করে তোলার জন্য একটা `Wrapper` বানিয়ে সেইটা করতে পারেন। + +এবার নিচে একটা উদাহরণের মাধ্যমে প্যাটার্নটি বোঝানোর চেষ্টা করা হলঃ + +```php +cart = new Cart; + $this->order = new Order; + $this->payment = new Payment; + $this->shipping = new Shipping; + } + + public function addToCart($products) + { + $this->cart->addProducts($products); + } + + public function checkout() + { + $products = $this->cart->getProducts(); + + $this->totalAmount = $this->order->process($products); + } + + public function makePayment() + { + $charge = $this->shipping->calculateCharge(); + $this->payment->charge($charge); + + $isCompleted = $this->payment->makePayment(); + + if ($isCompleted) { + $this->shipping->shipProducts(); + } + } +} + +$customer = new CustomerFacade; + +$products = [ + [ + 'name' => 'Polo T-Shirt', + 'price' => 40, + ], + [ + 'name' => 'Smart Watch', + 'price' => 400, + ], +]; + +$customer->addToCart($products); +$customer->checkout(); +$customer->makePayment(); +``` + +উপরের কোডটি খেয়াল করলে দেখতে পারবেন এখানে একটা ই-কমার্স অ্যাপ্লিকেশনের প্রসেস দেখানো হয়েছে। এর জন্য আমরা যথাক্রমে `Cart`, `Order`, `Payment`, `Shipping` ক্লাসগুলো ব্যাবহার করেছি আর ফ্যাসাড হিসেবে `CustomerFacade` ক্লাস ব্যাবহার করেছি। এখানে কোন প্রোডাক্টকে কার্টে যুক্ত করার জন্য `Cart` ক্লাসটি, অর্ডার প্রসেস করার জন্য `Order` ক্লাসটি, পেমেন্ট প্রসেস করার জন্য `Payment` ক্লাসটি আর প্রডাক্ট এর শিপিং হ্যান্ডল করার জন্য `Shipping` ক্লাসটি ব্যাবহার করেছি। + +এখন মুল কথা হল আমরা যদি এসব কাজের জন্য প্রতিবার উক্ত ক্লাস গুলোকে বার বার কল করি তাহলে অনেক সময় সাপেক্ষ বেপার হয়ে পরবে আর স্ট্রাকচারটিও ভাল হবেনা। আর তাই এখানে ফ্যাসাড প্যাটার্নটি ব্যাবহার করা হয়েছে। যাতে ডেভেলপার কিংবা ক্লায়েন্ট হিসেবে সুধু মাত্র `CustomerFacade` ক্লাসটিকে ব্যাবহার করে উপরে উল্লেখিত সবগুলো কাজ অনায়াসে করা সম্ভব। + +## অতিরিক্ত বিষয় \(লারাভেল ফ্যাসাড\) ঃ + +আমরা যারা লারাভেল ব্যাবহার করি তারা কম বেশি সবাই জানি লারাভেল এ অনেকগুলো বিল্ড-ইন ফ্যাসাড আছে কিংবা ব্যাবহার হয়। যেমনঃ `DB`, `View`, `Event`, `Queue`, `Mail` ইত্যাদি। + +আমরা মূলত যেটা জানি তা হল লারাভেল এ ফ্যাসাড `Statically` কোন ক্লাসকে কল করার জন্য ব্যাবহার হয়। আসলে বিষয়টি ঠিক তেমন নয়। এখানে অনেক কমপ্লেক্স সিস্টেমকে হাইড করে আমাদের কাছে সহজ ভাবে উপস্থাপন করা হয়েছে তার সাথে লারাভেল ফ্যাসাড প্যাটার্নের সাথে `__callStatic` ম্যাজিক মেথডটি ব্যাবহার করা হয়েছে। যাতে ডেভেলপার কিংবা ক্লায়েন্টকে আলাদাভাবে ক্লাস ইন্সট্যানশিয়েট করতে না হয়। + +নিচে একটা উদাহরণ দেয়া হলঃ + +```php +$method(); + case 1: + return $instance->$method($args[0]); + case 2: + return $instance->$method($args[0], $args[1]); + case 3: + return $instance->$method($args[0], $args[1], $args[2]); + case 4: + return $instance->$method($args[0], $args[1], $args[2], $args[3]); + default: + return call_user_func_array([$instance, $method], $args); + } + + } +} + +var_dump(PersonFacade::getFullName()); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/design-patterns/factory-pattern.md b/design-patterns/factory-pattern.md new file mode 100644 index 0000000..5919432 --- /dev/null +++ b/design-patterns/factory-pattern.md @@ -0,0 +1,509 @@ +# ফ্যাক্টরী + +ফ্যাক্টরী প্যাটার্ন এমন একটি প্যাটার্ন যা কম বেশি সব ধরনের অ্যাপ্লিকেশনে ব্যাবহৃত হয়ে থাকে এইটা ক্রিয়েশনাল প্যাটার্ন ক্যাটাগরীর মধ্যে পরে। + +ফ্যাক্টরী প্যাটার্নের মূল উদ্দেশ্যই হল এর প্রোডাক্ট কিংবা চাইল্ড ক্লাসের অবজেক্ট তৈরি করে দেয়া। যেমন বাস্তব জীবনে যেভাবে ফ্যাক্টরীতে প্রোডাক্ট তৈরি হয়ে থাকে। + +এই প্যাটার্ন ক্লাইন্টের কাছে অবজেক্ট ইনস্টানশিয়েট করার লজিক অদৃশ্যমান রাখে। আর অবজেক্টের ক্লাস গুলা একটা কমন ইন্টারফেইস কে ফলো করে বানানো থাকে। + +এই প্যাটার্ন সাধারণত ৩ প্রকারেরঃ ১. সিম্পল ফ্যাক্টরী। ২. ফ্যাক্টরী মেথড। ৩. অ্যাবস্ট্রাক্ট ফ্যাক্টরী। + +## ১. সিম্পল ফ্যাক্টরীঃ + +ফ্যাক্টরী প্যাটার্নের মধ্যে সিম্পল ফ্যাক্টরী হচ্ছে সবচেয়ে সহজ প্যাটার্ন যদিও অফিশিয়ালি এই প্যাটার্ন ডিজাইন প্যাটার্ন হিসেবে স্বীকৃত না। + +এই প্যাটার্নের নিয়ম মতে এর একটি ফ্যাক্টরী থাকবে আর একটি ফ্যাক্টরী একই সময় শুধুমাত্র একটাই প্রোডাক্ট তৈরি করবে অর্থাৎ একটিই ইনস্টান্স কিংবা অবজেক্ট রিটার্ন করবে। + +নিচে একটা উদাহরণ দেয়া হলঃ + +```php +class CarFactory +{ + protected $brands = []; + + public function __construct() + { + $this->brands = [ + 'mercedes' => 'MercedesCar', + 'toyota' => 'ToyotaCar', + ]; + } + + public function make($brand) + { + if (!array_key_exists($brand, $this->brands)) { + return new Exception('Not available this car'); + } + + $className = $this->brands[$brand]; + + return new $className(); + } +} + +interface CarInterface +{ + public function design(); + public function assemble(); + public function paint(); +} + +class MercedesCar implements CarInterface +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar implements CarInterface +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +$carFactory = new CarFactory; + +$mercedes = $carFactory->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactory->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; +``` + +এখানে `CarFactory` নামে মূল ফ্যাক্টরী ক্লাস ডিফাইন করা হয়েছে যেটির মাধ্যমে একটা `Car` ইনস্টান্স তৈরি করা হবে। `Car` এর জন্য ২ টি ক্লাস যথাক্রমে `MercedesCar` ও `ToyotaCar` ডিফাইন করা হয়েছে যেগুলো `CarInterface` কে ফলো করেছে। + +এবার চলুন `CarFactory` ক্লাসটিকে ইনস্টানশিয়েট করি। + +```php +$carFactory = new CarFactory; +``` + +এরপর ধরুন `MercedesCar` ক্লাসকে ফ্যাক্টরির মাধ্যমে ইনস্টানশিয়েট করব তাহলে টাইপ/প্যারামিটার হিসেবে `mercedes` দিতে হবে নিচের মত করে। + +```php +$mercedes = $carFactory->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; +``` + +অনুরূপ ভাবে `ToyotaCar` ক্লাসকে ইনস্টানশিয়েট করতে হলে + +```php +$toyota = $carFactory->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . ‘
    '; +``` + +আর ডিফাইন না করা কোন ক্লাসের টাইপ দিলে সেটি এরর দেখাবে। + +## ২. ফ্যাক্টরী মেথডঃ + +ফ্যাক্টরী মেথড প্যাটার্ন অনেকখানি সিম্পল ফ্যাক্টরী প্যাটার্নের মতই শুধুমাত্র এর মূল পার্থক্য হল এটি তার সাব ক্লাস গুলোকে ক্লাস ইনস্টানশিয়েট করার স্বাধীনতা দিয়ে দেয়। আর এর একাধিক ফ্যাক্টরী থাকতে পারে। + +নিচে একটা উদাহরণ দেয়া হলঃ + +```php +abstract class VehicleFactoryMethod +{ + abstract public function make($brand); +} + +class CarFactory extends VehicleFactoryMethod +{ + public function make($brand) + { + $car = null; + + switch ($brand) { + case "mercedes": + $car = new MercedesCar; + break; + case "toyota": + $car = new ToyotaCar; + break; + } + + return $car; + } +} + +class BikeFactory extends VehicleFactoryMethod +{ + public function make($brand) + { + $bike = null; + + switch ($brand) { + case "yamaha": + $bike = new YamahaBike; + break; + case "ducati": + $bike = new DucatiBike; + break; + } + + return $bike; + } +} + +interface CarInterface +{ + public function design(); + + public function assemble(); + + public function paint(); +} + +interface BikeInterface +{ + public function design(); + + public function assemble(); + + public function paint(); +} + +class MercedesCar implements CarInterface +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar implements CarInterface +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +class YamahaBike implements BikeInterface +{ + public function design() + { + return 'Designing Yamaha Bike'; + } + + public function assemble() + { + return 'Assembling Yamaha Bike'; + } + + public function paint() + { + return 'Painting Yamaha Bike'; + } +} + +class DucatiBike implements BikeInterface +{ + public function design() + { + return 'Designing Ducati Bike'; + } + + public function assemble() + { + return 'Assembling Ducati Bike'; + } + + public function paint() + { + return 'Painting Ducati Bike'; + } +} + +$carFactoryInstance = new CarFactory; + +$mercedes = $carFactoryInstance->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactoryInstance->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; + +echo '
    '; + +$bikeFactoryInstance = new BikeFactory; + +$yamaha = $bikeFactoryInstance->make('yamaha'); +echo $yamaha->design() . '
    '; +echo $yamaha->assemble() . '
    '; +echo $yamaha->paint() . '
    '; + +echo '
    '; + +$ducati = $bikeFactoryInstance->make('ducati'); +echo $ducati->design() . '
    '; +echo $ducati->assemble() . '
    '; +echo $ducati->paint() . '
    '; +``` + +এখানে ফ্যাক্টরী মেথডের জন্য `VehicleFactoryMethod` নামে একটা অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করা হয়েছে যেটির সাব ক্লাস যথাক্রমে `CarFactory` ও `BikeFactory` আছে যেগুলা ভিন্ন ভিন্ন একক ফ্যাক্টরী। আবার প্রতিটি ফ্যাক্টরীর জন্য সিম্পল ফ্যাক্টরী প্যাটার্নের ন্যায় ইন্টারফেইস `CarInterface` ও `BikeInterface` ডিফাইন করা হয়েছে যেগুলোকে ইমপ্লিমেন্ট করে কংক্রিট ক্লাস অর্থাৎ ইনস্টানশিয়েট যোগ্য ক্লাস যথাক্রমে `CarFactory` এর আওতায় `MercedesCar` ও `ToyotaCar` এবং `BikeFactory` এর আওতায় `YamahaBike` ও `DucatiBike` ডিফাইন করা হয়েছে। + +সুতরাং `CarFactory` ও `BikeFactory` ক্লাসগুলো নির্ধারণ করতে পারবে সে কোন ক্লাসকে ইনস্টানশিয়েট করবে। + +নিচের কোডটি খেয়াল করলে বুঝতে পারবেন ২ টি আলাদা ফ্যাক্টরীর মাধ্যমে প্যারামিটার কিংবা `Car` এর ব্র্যান্ড পাস করে কাঙ্ক্ষিত অবজেক্ট কে পাওয়া যায়। + +```php +$carFactoryInstance = new CarFactory; + +$mercedes = $carFactoryInstance->make('mercedes'); +echo $mercedes->design() . '
    '; +echo $mercedes->assemble() . '
    '; +echo $mercedes->paint() . '
    '; + +echo '
    '; + +$toyota = $carFactoryInstance->make('toyota'); +echo $toyota->design() . '
    '; +echo $toyota->assemble() . '
    '; +echo $toyota->paint() . '
    '; + +echo '
    '; + +$bikeFactoryInstance = new BikeFactory; + +$yamaha = $bikeFactoryInstance->make('yamaha'); +echo $yamaha->design() . '
    '; +echo $yamaha->assemble() . '
    '; +echo $yamaha->paint() . '
    '; + +echo '
    '; + +$ducati = $bikeFactoryInstance->make('ducati'); +echo $ducati->design() . '
    '; +echo $ducati->assemble() . '
    '; +echo $ducati->paint() . ‘
    '; +``` + +## ৩. অ্যাবস্ট্রাক্ট ফ্যাক্টরীঃ + +অ্যাবস্ট্রাক্ট ফ্যাক্টরী এমন একটি পদ্ধতি প্রদান করে যেখানে একটি মূল \(অ্যাবস্ট্রাক্ট\) ফ্যাক্টরী অনেকগুলো একক ফ্যাক্টরীকে একত্রিত করে রাখে। + +এক কথায়, প্রথমে একটি অ্যাবস্ট্রাক্ট ফ্যাক্টরী অনেকগুলো প্রোডাক্ট ফ্যাক্টরী তৈরি করে এরপর প্রতিটি ফ্যাক্টরী একাধিক প্রোডাক্ট কিংবা অবজেক্ট তৈরি করে। + +উল্লেখ্য, প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসকে একটা কমন অ্যাবস্ট্রাক্ট ক্লাসকে এক্সটেন্ড করতে হবে অথবা একটা কমন ইন্টারফেইসকে ইমপ্লিমেন্ট করতে হবে। আবার প্রতিটি প্রোডাক্ট ফ্যাক্টরী ক্লাসে একাধিক আর একই মেথড থাকতে হবে। + +নিচে একটা উদাহরণ দেয়া হলঃ + +```php +abstract class AbstractVehicleFactory +{ + abstract public function makeCar(); + abstract public function makeBike(); +} + +class BangladeshiFactory extends AbstractVehicleFactory +{ + public function makeCar() + { + return new ToyotaCar(); + } + + public function makeBike() + { + return new YamahaBike(); + } +} + +class USAFactory extends AbstractVehicleFactory +{ + public function makeCar() + { + return new MercedesCar(); + } + + public function makeBike() + { + return new DucatiBike(); + } +} + +abstract class AbstractVehicle +{ + abstract public function design(); + abstract public function assemble(); + abstract public function paint(); +} + +abstract class AbstractCarVehicle extends AbstractVehicle +{ + +} + +abstract class AbstractBikeVehicle extends AbstractVehicle +{ + +} + +class MercedesCar extends AbstractCarVehicle +{ + public function design() + { + return 'Designing Mercedes Car'; + } + + public function assemble() + { + return 'Assembling Mercedes Car'; + } + + public function paint() + { + return 'Painting Mercedes Car'; + } +} + +class ToyotaCar extends AbstractCarVehicle +{ + public function design() + { + return 'Designing Toyota Car'; + } + + public function assemble() + { + return 'Assembling Toyota Car'; + } + + public function paint() + { + return 'Painting Toyota Car'; + } +} + +class YamahaBike extends AbstractBikeVehicle +{ + public function design() + { + return 'Designing Yamaha Bike'; + } + + public function assemble() + { + return 'Assembling Yamaha Bike'; + } + + public function paint() + { + return 'Painting Yamaha Bike'; + } +} + +class DucatiBike extends AbstractBikeVehicle +{ + public function design() + { + return 'Designing Ducati Bike'; + } + + public function assemble() + { + return 'Assembling Ducati Bike'; + } + + public function paint() + { + return 'Painting Ducati Bike'; + } +} + +$bangladeshiFactoryInstance = new BangladeshiFactory; +$car = $bangladeshiFactoryInstance->makeCar(); +echo $car->design() . '
    '; +echo $car->assemble() . '
    '; +echo $car->paint() . '
    '; + +echo '
    '; + +$bike = $bangladeshiFactoryInstance->makeBike(); +echo $bike->design() . '
    '; +echo $bike->assemble() . '
    '; +echo $bike->paint() . '
    '; + +echo '
    '; + +$usaFactoryInstance = new USAFactory; +$car = $usaFactoryInstance->makeCar(); +echo $car->design() . '
    '; +echo $car->assemble() . '
    '; +echo $car->paint() . '
    '; + +echo '
    '; + +$bike = $usaFactoryInstance->makeBike(); +echo $bike->design() . '
    '; +echo $bike->assemble() . '
    '; +echo $bike->paint() . ‘
    '; +``` + +উপরের কোডে `AbstractVehicleFactory` নামে একটা অ্যাবস্ট্রাক্ট ফ্যাক্টরী ক্লাস ডিফাইন করা হয়েছে যেখানে `makeCar()` ও `makeBike()` ২টা মেথড দেয়া আছে যাতে সাব ফ্যাক্টরী গুলো ওই মেথড গুলো ডিফাইন করে। + +এখানে একটি মেথড `Car` অবজেক্ট তৈরি করতে আরেকটি `Bike` অবজেক্ট তৈরি করতে ব্যবহৃত হয়েছে যা সব গুলা ফ্যাক্টরীকেই করতে হবে। আর মূল বিষয় হল একেক ফ্যাক্টরী একেক ব্র্যান্ডের `Car` ও `Bike` অবজেক্ট তৈরি করবে। + +যেমন এখানে আমরা `BangladeshiFactory` ফ্যাক্টরী ব্যাবহার করেছি যেটি `ToyotaCar` ও `YamahaBike` ক্লাসের অবজেক্ট তৈরি করবে। অনুরূপ ভাবে, `USAFactory` ফ্যাক্টরী `MercedesCar` ও `DucatiBike` ক্লাসের অবজেক্ট তৈরি করবে। + +আবার আপনি চাইলে একটা ফ্যাক্টরীতে একাধিক ব্রান্ডের `Car` কিংবা `Bike` এর অবজেক্ট তৈরি করতে পারেন সেক্ষেত্রে র‍্যান্ডমলি কিংবা লজিক্যালি করতে হবে। + +এই [লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে সোর্স কোডটি পাবেন। + diff --git a/design-patterns/iterator-pattern.md b/design-patterns/iterator-pattern.md new file mode 100644 index 0000000..c9344d6 --- /dev/null +++ b/design-patterns/iterator-pattern.md @@ -0,0 +1,102 @@ +# ইটারেটর + +ইটারেটর ডিজাইন প্যাটার্ন বিহেভিওরাল টাইপের মধ্যে পরে। এই প্যাটার্ন এর মুল উদ্দেশ্যই হচ্ছে ইটারেটরের ব্যাবহার করা। ইটারেটর একটা কন্টেইনার কিংবা অবজেক্ট এর ইলিমেন্টকে ট্রাভার্স করার জন্য সহায়তা করে আর এতে ভিতরের লজিক গুলো লুকানো অবস্থায় থাকে। যারফলে, আমরা কন্টেইনারে আমাদের পছন্দের মত ডাটা স্ট্রাকচার ব্যাবহার করতে পারি। + +এবার চলুন আমরা কিভাবে এই প্যাটার্নটি ইমপ্লিমেন্ট করতে পারি। পিএইচপির একটা বিল্ড-ইন `Iterator` ইন্টারফেইস আছে আমরা সেটি ব্যাবহার করব। + +সর্বপ্রথমে, আমরা ইলিমেন্ট বা আইটেম এর জন্য `Book` নামে একটা ক্লাস ডিফাইন করব। + +```php +class Book +{ + private $title; + + public function __construct($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } +} +``` + +এবার কন্টেইনার এর জন্য `BookList` নামে একটা ক্লাস ডিফাইন করব। + +```php +class BookList implements Iterator, Countable +{ + private $books = []; + + private $currentIndex = 0; + + public function current() + { + return $this->books[$this->currentIndex]; + } + + public function key() + { + return $this->currentIndex; + } + + public function next() + { + $this->currentIndex++; + } + + public function rewind() + { + $this->currentIndex = 0; + } + + public function valid() + { + return isset($this->books[$this->currentIndex]); + } + + public function count() + { + return count($this->books); + } + + public function addBook(Book $book) + { + $this->books[] = $book; + } + + public function removeBook(Book $bookToRemove) + { + foreach ($this->books as $key => $book) { + if ($book->getTitle() === $bookToRemove->getTitle()) { + unset($this->books[$key]); + } + } + + $this->books = array_values($this->books); + } +} +``` + +এখানে `Iterator` ইন্টারফেসের জন্য যথাক্রমে `current()`, `key()`, `next()`, `rewind()` ও `valid()` মেথডগুলি ইমপ্লিমেন্ট করা হয়েছে আর `Countable` ইন্টারফেইসের এর জন্য `count()` মেথডটি ইমপ্লিমেন্ট করা হয়েছে যা ইলেমেন্ট কাউন্ট করতে সাহায্য করবে। আর ইলিমেন্ট অ্যাড আর রিমুভ করার জন্য `addBook()` ও `removeBook()` কাস্টম মেথডগুলি ব্যাবহার করা হয়েছে। + +এবার কন্টেইনার ক্লাসটি ইন্সটানশিয়েট করে কিছু ইলিমেন্ট অ্যাড করে আমরা নিচের ন্যায় লুপের মাধ্যমে ইলিমেন্ট ট্রাভার্স করে অ্যাকসেস করতে পারি। + +```php +$bookList = new BookList(); +$bookList->addBook(new Book('Design Pattern')); +$bookList->addBook(new Book('Head First Design Pattern')); +$bookList->addBook(new Book('Clean Code')); +$bookList->addBook(new Book('The Pragmatic Programmer')); + +$bookList->removeBook(new Book('Design Pattern')); + +foreach ($bookList as $book) { + echo $book->getTitle() . PHP_EOL; +} +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/design-patterns/observer-pattern.md b/design-patterns/observer-pattern.md new file mode 100644 index 0000000..6a97c84 --- /dev/null +++ b/design-patterns/observer-pattern.md @@ -0,0 +1,176 @@ +# অবজার্ভার + +অবজার্ভার ডিজাইন প্যাটার্ন বিহেভিওরাল টাইপের মধ্যে পরে। এটা **pub/sub** এর নিয়মে কাজ করে অর্থাৎ কোন অবজেক্ট কিংবা সাবজেক্ট এ পরিবর্তন হলে সেটা **Publisher** তৎক্ষন্যাত **Subscriber** দেরকে জানায় দিবে কিংবা নটিফাই করবে। + +পিএইসপিতে অবজার্ভার প্যাটার্নটি প্রয়োগ করতে হলে যথাক্রমে `SplSubject` ও `SplObserver` ইন্টারফেইস ইমপ্লিমেন্ট করে সাবজেক্ট ও অবজার্ভার ২ টা ক্লাস লিখতে হয়। আর সাবস্ক্রাইব করা অবজার্ভারদেরকে স্টোর করে রাখার জন্য `SplObjectStorage` এই ক্লাসটিকে ব্যাবহার করা যেতে পারে। + +উপরে উল্লেখিত **SplSubject, SplObserver, SplObjectStorage** হল পিএইসপির **Standard PHP Library \(SPL\)** + +নিচে একটি `Model` নামক ক্লাস ও দুইটি অবজার্ভার ক্লাসের উদাহরণ দেয়া হলঃ + +```php +observers = new SplObjectStorage(); + } + + public function attach(SplObserver $observer) + { + $this->observers->attach($observer); + } + + public function detach(SplObserver $observer) + { + $this->observers->detach($observer); + } + + public function notify() + { + foreach ($this->observers as $observer) { + $observer->update($this); + } + } + + public function __set($name, $value) + { + $this->data[$name] = $value; + // notify the observers, that model has been updated + $this->notify(); + } +} + +class ModelObserver implements SplObserver +{ + public function update(SplSubject $subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +class Observer2 implements SplObserver +{ + public function update(SplSubject $subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +// Instantiate the model class for 2 different objects +$model1 = new Model(); +$model2 = new Model(); + +// Instantiate the observers +$modelObserver = new ModelObserver(); +$observer2 = new Observer2(); + +// Attach the observers to $model1 +$model1->attach($modelObserver); +$model1->attach($observer2); + +// Attach the observers to $model2 +$model2->attach($observer2); + +// Changing the subject properties +$model1->title = 'Hello World'; +$model2->body = 'Lorem ipsum............'; +``` + +উপরে `Model` ক্লাসটি হল সাবজেক্ট `ModelObserver` ও `Observer2` হল অবজার্ভার। + +`Model` ক্লাসটি যেহেতু `SplSubject` ইন্টারফেইস ইমপ্লিমেন্ট করে লেখা হয়েছে কাজেই `attach()`, `detach()` ও `notify()` মেথডগুলা অবশ্যই থাকতে হবে। + +অপরদিকে যেহেতু `ModelObserver` ও `Observer2` ক্লাসগুলা `SplObserver` ইন্টারফেইস ইমপ্লিমেন্ট করে লেখা হয়েছে সেহেতু `update()` মেথডটি ক্লাসগুলাতে থাকতে হবে। + +এবার আপনারা যদি `SplSubject` ও `SplObserver` ইন্টারফেইস ব্যাবহার না করে অবজার্ভার ডিজাইন প্যাটার্ন এর প্রয়োগ করতে চান সেটাও করতে পারবেন শুধুমাত্র আপনার বিষয় বস্তু ঠিক থাকলেই হল। + +নিচে একটা উদাহরণ দেয়া হলঃ + +```php +observers = new SplObjectStorage(); + } + + public function notify() + { + foreach ($this->observers as $observer) { + $observer->update($this); + } + } + + public function setObservers($observers = []) + { + foreach ($observers as $observer) { + $this->observers->attach($observer); + } + } + + public function __set($name, $value) + { + $this->data[$name] = $value; + // notify the observers, that model has been updated + $this->notify(); + } +} + +class Post extends Model +{ + public function insert($data) + { + // Store the data + // Notify to observers + $this->notify(); + } + + public function update($data) + { + // Update the model + // Notify to observers + $this->notify(); + } + + public function delete($id) + { + // Delete the model + // Notify to observers + $this->notify(); + } +} + +class PostModelObserver +{ + public function update($subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +class Observer2 +{ + public function update($subject) + { + echo get_class($subject) . ' has been updated' . '
    '; + } +} + +$post = new Post(); + +$post->setObservers([new PostModelObserver, new Observer2]); + +$post->title = 'Hello World'; +``` + +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে আরও ধারনা পেতে পারেন। + diff --git a/design-patterns/proxy-pattern.md b/design-patterns/proxy-pattern.md new file mode 100644 index 0000000..e00ab3d --- /dev/null +++ b/design-patterns/proxy-pattern.md @@ -0,0 +1,101 @@ +# প্রক্সি + +`Proxy` ডিজাইন প্যাটার্ন স্ট্রাকচারাল ডিজাইন প্যাটার্নের মধ্যে পরে। এই প্যাটার্ন শুরুর আগে আসুন আমরা “প্রক্সি” শব্দের অর্থ জেনে নেই। প্রক্সি এমন একটি প্রতিনিধি বা বস্তু যা অন্য বিষয় বস্তুর হয়ে কাজ করে। + +অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এ প্রক্সি হলঃ একটি অবজেক্ট অন্য কোন অবজেক্টের হয়ে কাজ করা বা তাকে কন্ট্রোল করা। + +প্রক্সি সাধারণত ৩ প্রকারেরঃ 1. Virtual Proxy: এই প্রক্সি মুল অবজেক্টকে ইন্সটানশিয়েট বা ইনিশিয়ালাইজ করতে বিলম্ব করে যতক্ষণ না দরকার পরে। 2. Remote Proxy: এই প্রক্সি কোন রিমুট লোকেশনে অবস্থিত কোন অবজেক্টকে রিপ্রেজেন্ট করে। যেমনঃ সার্ভার থেকে কোন অবজেক্টকে অ্যাকসেস করা। 3. Protection Proxy: এই প্রক্সি মুল অবজেক্টকে অ্যাকসেস করার আগে সেকুরিটি চেক করে। 4. Smart Proxy: এই প্রক্সি মুল অবজেক্টের রেফারেন্স নাম্বার ট্রাক করে এবং প্রয়োজন মত মেমোরি থেকে লোডিং অথবা ফ্রি করতে সহয়তা করে। + +এখানে আমরা `Virtual Proxy` এর একটি উদাহরণ দেখব। + +```php +interface FileInterface +{ + public function content(); +} + +class RealFile implements FileInterface +{ + private $fileName; + + private $fileContent; + + public function __construct($fileName) + { + $this->fileName = $fileName; + + $this->readFile(); + } + + private function readFile() + { + $this->fileContent = file_get_contents($this->fileName); + } + + public function content() + { + return $this->fileContent; + } +} + +class ProxyFile implements FileInterface +{ + private $fileName; + + private $realFileObject; + + public function __construct($fileName) + { + $this->fileName = $fileName; + } + + public function content() + { + // Lazy load the file using the RealFile class + if (!$this->realFileObject) { + $this->realFileObject = new RealFile($this->fileName); + } + + return $this->realFileObject->content(); + } +} +``` + +উপরের কোডটি খেয়াল করলে আমরা দেখতে পাব একই ইন্টারফেইস `FileInterface` ব্যাবহার করে রিয়েল অবজেক্ট এর জন্য `RealFile` ও প্রক্সি অবজেক্টের জন্য `ProxyFile` নামক ক্লাস ইমপ্লিমেন্ট করা হয়েছে। + +`ProxyFile` এর `content()` মেথডটি দেখলে বুঝতে পাব যে এর মাধ্যমে মুল `RealFile` ক্লাস এর ইন্সটানশিয়েট করা হয়েছে লেজিলোডিং পদ্ধতির মাধ্যমে যাতে অ্যাকসেস না করা পর্যন্ত ইন্সটানশিয়েট না করা হয়। + +```php +public function content() +{ + // Lazy load the file using the RealFile class + if (!$this->realFileObject) { + $this->realFileObject = new RealFile($this->fileName); + } + + return $this->realFileObject->content(); +} +``` + +এবার নিচের মত করে উভয় ক্লাসকে ইন্সটানশিয়েট করে কল করা হলে প্রথমে ভিন্ন ভিন্ন মেমোরি দখল করবে। + +```php +$realFile = new RealFile('/path/to/file.jpg'); +var_dump(memory_get_usage()); // ~5Mb +$realFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$realFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$proxyFile = new ProxyFile('/path/to/file.jpg'); +var_dump(memory_get_usage()); // ~350Kb +$proxyFile->content(); +var_dump(memory_get_usage()); // ~5Mb + +$proxyFile->content(); +var_dump(memory_get_usage()); // ~5Mb +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/design-patterns/singleton-pattern.md b/design-patterns/singleton-pattern.md new file mode 100644 index 0000000..7192676 --- /dev/null +++ b/design-patterns/singleton-pattern.md @@ -0,0 +1,85 @@ +# সিঙ্গেলটোন + +সিঙ্গেলটোন ডিজাইন প্যাটার্ন **ক্রিয়েশনাল ডিজাইন প্যাটার্ন** ক্যাটাগরির মধ্যে পরে। এই প্যাটার্নের মুল উদ্দেশ্য হল প্রতিটি ক্লাসের শুধু মাত্র একটিই **ইন্সট্যান্স/অবজেক্ট** থাকা। + +ধরুন, **Singleton** নামে আমাদের একটা ফাইনাল ক্লাস আছে তাহলে সিঙ্গেলটোন প্যাটার্নে এই ক্লাসকে এমনভাবে ব্যবহার করতে হবে যেন নতুন কোন **ইন্সট্যান্স/অবজেক্ট** তৈরি না হয়ে একটিই থাকে আর ক্লাসটিকে ইনহেরিট ও করা না যায়, যা আমরা নিচের মত করে করতে পারিঃ + +```php +sayHi(); +``` + +এখানে ক্লাসটি বাইরে থেকে ইন্সট্যান্সিয়েট না করে `getInstance()` স্ট্যাটিক মেথডটি ডিক্লেয়ার করা হয়েছে যাতে ক্লাসের ইন্সট্যান্সটা রিটার্ন করে। + +অর্থাৎ, + +```php +$singleton = new Singleton(); +``` + +এর পরিবর্তে + +```php +$singleton = Singleton::getInstance(); +``` + +ব্যবহার করা হয়েছে। + +আর ক্লাসের ইন্সট্যান্স `$instance` নামে ভ্যারিয়েবল এ রাখা হয়েছে। + +যেমনঃ + +```php +private static $instance; + +public static function getInstance() +{ + if (null === self::$instance) { + self::$instance = new self(); + } + + return self::$instance; +} +``` + +আবার ক্লাসের একাধিক ইন্সস্ট্যান্স তৈরিতে বাধা দিতে আমরা `__clone()` ও `__wakeup()` ম্যাজিক মেথডগুলি ব্যাবহার করেছি। + +[এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে কোডটি পাবেন। + diff --git a/design-patterns/strategy-pattern.md b/design-patterns/strategy-pattern.md new file mode 100644 index 0000000..254484e --- /dev/null +++ b/design-patterns/strategy-pattern.md @@ -0,0 +1,72 @@ +# স্ট্রাটেজি + +`Strategy` ডিজাইন প্যাটার্ন বিহেভিওরাল ডিজাইন প্যাটার্নের মধ্যে পরে। `Strategy` এর অর্থ হল কৌশল, কোন কিছু করতে গেলে তার জন্য কৌশল কিংবা এক গুচ্ছ পদক্ষেপ গ্রহণ করাই হল স্ট্রাটেজি। + +প্রোগ্রামিং এর পরিভাষায়, একটি নির্দিষ্ট কাজ সম্পন্ন করতে ভিন্ন ভিন্ন অ্যালগরিদম নির্ধারণ করার স্বাধীনতা থাকাই স্ট্রাটেজি প্যাটার্ন। এই প্যটার্নকে আবার পলিসি প্যাটার্নও বলা হয়ে থাকে। + +ধরুন, আপনি ঢাকা থেকে চট্টগ্রাম যাইতে চাচ্ছেন এরজন্য আপনি চাইলে বাস, ট্রেন কিংবা প্লেন এ করে যাইতে পারেন। এইক্ষেত্রে গন্তব্যস্থল একটিই কিন্তু এটা সম্পন্ন করতে ভিন্ন ভিন্ন স্ট্রাটেজি অনুসরণ করা যায়। + +এবার চলুন একটা বাস্তব ভিত্তিক উদাহরণের মাধ্যমে প্যাটার্নটি বুঝা যাক। প্রথমে চলুন একটা ইন্টারফেইস বানিয়ে ভিন্ন ভিন্ন স্ট্রাটেজি ইমপ্লিমেন্ট করি নিচের মত করে। + +```php +interface TravelStrategy +{ + public function travel(); +} + +class BusTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Bus travel strategy will goes here + } +} + +class TrainTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Train travel strategy will goes here + } +} + +class PlaneTravelStrategy implements TravelStrategy +{ + public function travel() + { + // Plane travel strategy will goes here + } +} +``` + +এবার মেইন কনটেক্সট ক্লাস হিসেবে `Traveler` নামক একটা ক্লাস ডিফাইন করি। + +```php +class Traveler +{ + protected $traveler; + + public function __construct(TravelStrategy $traveler) + { + $this->traveler = $traveler; + } + + public function travel() + { + $this->traveler->travel(); + } +} +``` + +পরিশেষে, স্ট্রাটেজি পরিবর্তন করে সহজে আমরা আমাদের কার্য সম্পন্ন করতে পারি। + +```php +$traveler = new Traveler(new BusTravelStrategy()); +$traveler->travel(); + +$traveler1 = new Traveler(new PlaneTravelStrategy()); +$traveler1->travel(); +``` + +এই চ্যাপ্টারের সোর্স কোডটি [এই লিঙ্ক](https://github.com/sohelamin/php-design-patterns) থেকে পাবেন। + diff --git a/filesystem.md b/filesystem.md index cc8fb94..c133957 100644 --- a/filesystem.md +++ b/filesystem.md @@ -1,18 +1,20 @@ -## ফাইলসিস্টেম -এই চ্যাপ্টারে আমরা পিএইচপির ডিরেক্টরী এবং ফাইল সম্পর্কিত কিছু ব্যাসিক অপারেশন দেখবো । এখানে দেখানো পদ্ধতি ছাড়াও আরো নানা পদ্ধতিতে একই কাজ করা যেতে পারে । আপাতত আমরা একটি করে পদ্ধতি দেখবো । পরবর্তীতে আমরা আরো এ্যাডভান্সড ব্যবহার দেখবো । +# ফাইলসিস্টেম -### ডিরেক্টরী তৈরি করা +এই চ্যাপ্টারে আমরা পিএইচপির ডিরেক্টরী এবং ফাইল সম্পর্কিত কিছু ব্যাসিক অপারেশন দেখবো । এখানে দেখানো পদ্ধতি ছাড়াও আরো নানা পদ্ধতিতে একই কাজ করা যেতে পারে । আপাতত আমরা একটি করে পদ্ধতি দেখবো । পরবর্তীতে আমরা আরো এ্যাডভান্সড ব্যবহার দেখবো । -আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি `mkdir` ফাংশনটি ব্যবহার করে । +## ডিরেক্টরী তৈরি করা + +আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি `mkdir` ফাংশনটি ব্যবহার করে । ```php ``` -### ইউজার ডিফাইনড ফাংশন +## ইউজার ডিফাইনড ফাংশন -আমাদের নানা কাজে নানা ধরণের ফাংশন প্রয়োজন হয়, এই সব ক্ষেত্রে আমরা নিজেরাই ফাংশন তৈরি করে নিতে পারি বা অন্যের তৈরি করা ফাংশন ব্যবহার করতে পারি । যে সব ফাংশন ইউজার অর্থাৎ আমাদের (আমার নিজের বা অন্য কোন ডেভেলপারের) তৈরি করা সেগুলোকে ইউজার ডিফাইনড ফাংশন বলা হয় । +আমাদের নানা কাজে নানা ধরণের ফাংশন প্রয়োজন হয়, এই সব ক্ষেত্রে আমরা নিজেরাই ফাংশন তৈরি করে নিতে পারি বা অন্যের তৈরি করা ফাংশন ব্যবহার করতে পারি । যে সব ফাংশন ইউজার অর্থাৎ আমাদের \(আমার নিজের বা অন্য কোন ডেভেলপারের\) তৈরি করা সেগুলোকে ইউজার ডিফাইনড ফাংশন বলা হয় । ```php ``` -এখানে আমরা একটি ইউজার ডিফাইনড ফাংশন দেখছি, এই ফাংশনটি একটি নাম এ্যাক্সেপ্ট করে একটি সুন্দর গ্রিটিং রিটার্ন করে । +এখানে আমরা একটি ইউজার ডিফাইনড ফাংশন দেখছি, এই ফাংশনটি একটি নাম এ্যাক্সেপ্ট করে একটি সুন্দর গ্রিটিং রিটার্ন করে । + +## ডিফাইনিং ফাংশন -### ডিফাইনিং ফাংশন -যেকোন ইউজার ডিফাইনড ফাংশন লিখতে হলে আপনাকে নিচের সিনট্যাক্স অনুসরণ করতে হবে: +যেকোন ইউজার ডিফাইনড ফাংশন লিখতে হলে আপনাকে নিচের সিনট্যাক্স অনুসরণ করতে হবে: ```php ``` -প্রথমে ফাংশন কিওয়ার্ড, তারপর ফাংশনের নাম, এরপর ব্রাকেটে প্যারামিটার লিস্ট, এরপর ফাংশনের মূল বডি যেটি কিনা একটি কোড ব্লক । +প্রথমে ফাংশন কিওয়ার্ড, তারপর ফাংশনের নাম, এরপর ব্রাকেটে প্যারামিটার লিস্ট, এরপর ফাংশনের মূল বডি যেটি কিনা একটি কোড ব্লক । -ফাংশনের নাম অবশ্যই ইউনিক হতে হবে, নাম করনের ক্ষেত্রে পিএইচপির সচারচার নিয়মগুলোই অনুসরন করা হয় । ফাংশনের প্যারামিটার ফাকা থাকতে পারে । অধিকাংশ ফাংশনই প্রসেসিং এর পর একটা ভ্যালু রিটার্ন করে, এটাকে রিটার্ন ভ্যালু বলা হয় । তবে কখনো কখনো ফাংশন ভ্যালু নাও রিটার্ন করতে পারে । এই ধরনের ফাংশনকে ভয়েড ফাংশন বলা হয় । +ফাংশনের নাম অবশ্যই ইউনিক হতে হবে, নাম করনের ক্ষেত্রে পিএইচপির সচারচার নিয়মগুলোই অনুসরন করা হয় । ফাংশনের প্যারামিটার ফাকা থাকতে পারে । অধিকাংশ ফাংশনই প্রসেসিং এর পর একটা ভ্যালু রিটার্ন করে, এটাকে রিটার্ন ভ্যালু বলা হয় । তবে কখনো কখনো ফাংশন ভ্যালু নাও রিটার্ন করতে পারে । এই ধরনের ফাংশনকে ভয়েড ফাংশন বলা হয় । -### প্যারামিটার ও আর্গুমেন্ট +## প্যারামিটার ও আর্গুমেন্ট -একটি ফাংশন যেসব ইনপুট গ্রহন করে এগুলোই হলো প্যারামিটার । প্যারামিটার গুলো ভ্যারিয়েবল হিসেবে ডিফাইন করা হয় এবং ফাংশন বডির ভিতরে ঐ প্যারামিটারগুলোর ভ্যালু আমরা ঐ ভ্যারিয়েবলগুলো থেকে পাই । +একটি ফাংশন যেসব ইনপুট গ্রহন করে এগুলোই হলো প্যারামিটার । প্যারামিটার গুলো ভ্যারিয়েবল হিসেবে ডিফাইন করা হয় এবং ফাংশন বডির ভিতরে ঐ প্যারামিটারগুলোর ভ্যালু আমরা ঐ ভ্যারিয়েবলগুলো থেকে পাই । -আর ফাংশন কল করার সময় ঐ প্যারামিটারগুলোর জন্য ভ্যালু পাস করার জন্য যে এক্সপ্রেশন ব্যবহার করি সেটাই হলো আর্গুমেন্ট । +আর ফাংশন কল করার সময় ঐ প্যারামিটারগুলোর জন্য ভ্যালু পাস করার জন্য যে এক্সপ্রেশন ব্যবহার করি সেটাই হলো আর্গুমেন্ট । -সহজ ভাষায়, ফাংশন ডিফাইন করার সময় ব্যবহৃত ভ্যারিয়েবলগুলো প্যারামিটার, কল করার সময় ফাংশন টাকে যেই ভ্যালু পাস করে কল করি তা হলো আর্গুমেন্ট । +সহজ ভাষায়, ফাংশন ডিফাইন করার সময় ব্যবহৃত ভ্যারিয়েবলগুলো প্যারামিটার, কল করার সময় ফাংশন টাকে যেই ভ্যালু পাস করে কল করি তা হলো আর্গুমেন্ট । -উদাহরণ: +উদাহরণ: ```php ``` -এই ফাংশনটিতে কোন প্যারামিটার নেই। অর্থাৎ একে কল করার সময় কোন আর্গুমেন্ট পাস করাতে হবে না। অনেকটা এই রকম করে `functionName();` । প্যারামিটার না নিলে প্যারামিটার লিস্ট এর ব্রাকেট টা আমরা এভাবে ফাকাই রাখবো । -### প্যারামিটার সহ ফাংশন +এই ফাংশনটিতে কোন প্যারামিটার নেই। অর্থাৎ একে কল করার সময় কোন আর্গুমেন্ট পাস করাতে হবে না। অনেকটা এই রকম করে `functionName();` । প্যারামিটার না নিলে প্যারামিটার লিস্ট এর ব্রাকেট টা আমরা এভাবে ফাকাই রাখবো । + +## প্যারামিটার সহ ফাংশন + ```php ``` -প্যারামিটার গুলো ব্রাকেটের মধ্যে কমা দিয়ে আলাদা করা হয় । এই ফাংশনটিতে দুইটি প্যারামিটার আছে `$arg1` এবং `$arg2` , এই ফাংশনটিকে কল করতে হলে ফাংশনের মধ্যে এই দুইটি প্যারামিটার এর জন্য আর্গুমেন্ট পাস করাতে হবে। অনেকটা এই রকম করে `functionName('This is arg 1','This is 2');`, যদি ফাংশনটি কল করার সময় আর্গুমেন্টগুলো না থাকে তবে আর্গুমেন্ট মিসিং এরর দেখাবে। তাই এগুলো রিকোয়ারড আর্গুমেন্ট । + +প্যারামিটার গুলো ব্রাকেটের মধ্যে কমা দিয়ে আলাদা করা হয় । এই ফাংশনটিতে দুইটি প্যারামিটার আছে `$arg1` এবং `$arg2` , এই ফাংশনটিকে কল করতে হলে ফাংশনের মধ্যে এই দুইটি প্যারামিটার এর জন্য আর্গুমেন্ট পাস করাতে হবে। অনেকটা এই রকম করে `functionName('This is arg 1','This is 2');`, যদি ফাংশনটি কল করার সময় আর্গুমেন্টগুলো না থাকে তবে আর্গুমেন্ট মিসিং এরর দেখাবে। তাই এগুলো রিকোয়ারড আর্গুমেন্ট । পিএইচপি ফাংশনে একটি প্যারামিটারের ডিফল্ট ভ্যালু ডিফাইন করে দেওয়া যায় । যেমন: @@ -97,14 +102,15 @@ function functionName($arg1="default value") echo $arg1; } ?> -``` -এই ফাংশনটি কল করার সময় কোন আর্গুমেন্টের ভ্যালু না দিলেও চলবে (`functionName();`) । সেক্ষেত্রে `$arg1` এর ভ্যালু হবে তার ডিফল্ট ভ্যালু । এভাবেই আমরা যে কোন প্যারামিটারের ডিফল্ট ভ্যালু ডিফাইন করে দিয়ে সেই প্যারামিটারটিকে অপশনাল প্যারামিটারে পরিনত করতে পারি । +``` + +এই ফাংশনটি কল করার সময় কোন আর্গুমেন্টের ভ্যালু না দিলেও চলবে \(`functionName();`\) । সেক্ষেত্রে `$arg1` এর ভ্যালু হবে তার ডিফল্ট ভ্যালু । এভাবেই আমরা যে কোন প্যারামিটারের ডিফল্ট ভ্যালু ডিফাইন করে দিয়ে সেই প্যারামিটারটিকে অপশনাল প্যারামিটারে পরিনত করতে পারি । -### রিটার্ন ভ্যালু +## রিটার্ন ভ্যালু -পূর্বে ব্যবহৃত ইউজার ডিফাইনড ফাংশনগুলোতে কোন ভ্যালু রিটার্ন করা হয় নি, সরাসরি আউটপুট দেওয়া হয়েছে। সরাসরি আউটপুট দেখানোর পাশাপাশি ফাংশনগুলো ভ্যালু রিটার্ন করতে পারে যেগুলো আমরা কোন এক্সপ্রেশনে ব্যবহার করতে পারি । +পূর্বে ব্যবহৃত ইউজার ডিফাইনড ফাংশনগুলোতে কোন ভ্যালু রিটার্ন করা হয় নি, সরাসরি আউটপুট দেওয়া হয়েছে। সরাসরি আউটপুট দেখানোর পাশাপাশি ফাংশনগুলো ভ্যালু রিটার্ন করতে পারে যেগুলো আমরা কোন এক্সপ্রেশনে ব্যবহার করতে পারি । -`return` কিওয়ার্ডটি ব্যবহার করে ভ্যালু রিটার্ন করা হয়। +`return` কিওয়ার্ডটি ব্যবহার করে ভ্যালু রিটার্ন করা হয়। ```php ``` +## ভ্যারিয়েবল ফাংশন -### ভ্যারিয়েবল ফাংশন -আমরা চাইলে একটি ফাংশনকে ভ্যারিয়েবল ব্যবহার করে কল করতে পারি । এক্ষেত্রে আমরা ফাংশনটির নাম একটি ভ্যারিয়েবল এ এ্যাসাইন করি । এরপর ঐ ভ্যারিয়েবলটির পর `()` ব্যবহার করে ফাংশনটি কল করি । উদাহরণ দেখি: - +আমরা চাইলে একটি ফাংশনকে ভ্যারিয়েবল ব্যবহার করে কল করতে পারি । এক্ষেত্রে আমরা ফাংশনটির নাম একটি ভ্যারিয়েবল এ এ্যাসাইন করি । এরপর ঐ ভ্যারিয়েবলটির পর `()` ব্যবহার করে ফাংশনটি কল করি । উদাহরণ দেখি: ```php ``` -[উদাহরনটি পিএইচপি ম্যানুয়াল থেকে নেওয়া] -### ফাংশনে ভ্যারিয়েবলের ব্যবহার - -ইতোমধ্যে আমরা দেখেছি ফাংশনে কিভাবে আর্গুমেন্ট পাস করতে হয়। মুলত এই আর্গুমেন্ট গুলো সংরক্ষণ করা হয় লোকাল ভ্যারিয়েবল এ। এই ভ্যারিয়েবলগুলোকে ফাংশনের বাইরে থেকে এক্সেস করা যায় না। ফাংশনটি যখন কল করা হবে তখন এই ভ্যারিয়েবলগুলো মেমোরিতে সংরক্ষিত হবে। ফাংশন শেষে এই ভ্যারিয়েবলগুলোর আর কোন অস্বিত্ব থাকবে না । +\[উদাহরনটি পিএইচপি ম্যানুয়াল থেকে নেওয়া\] + +## ফাংশনে ভ্যারিয়েবলের ব্যবহার -পিএইচপিতে মুলত দুই ধরনের ভ্যারিয়েবল এর ধারণা প্রচলিত, একটি হচ্ছে `global` ভ্যারিয়েবল আর অন্যটি `local` ভ্যারিয়েবল। সাধারণত কোড ব্লকের বাইরের পিএইচপিতে ভ্যারিয়েবল গুলো গ্লোবাল হয়, এসব ক্ষেত্রে আপনার প্রোগ্রামে একই নামে দুটি ভ্যারিয়েবল লিখলে ২য় টির দ্বারা প্রথমটির ভ্যালু প্রতিস্থাপিত হবে। অন্যদিকে ফাংশন / মেথডে ব্যবহারিত ভ্যারিয়েবলগুলো সাধারনত লোকাল ভ্যারিয়েবল হয়। ঐ ভ্যারিয়েবলগুলোকে শুধুমাত্র ওই মেথড / ফাংশনের মধ্যে ব্যবহার করা যাবে। +ইতোমধ্যে আমরা দেখেছি ফাংশনে কিভাবে আর্গুমেন্ট পাস করতে হয়। মুলত এই আর্গুমেন্ট গুলো সংরক্ষণ করা হয় লোকাল ভ্যারিয়েবল এ। এই ভ্যারিয়েবলগুলোকে ফাংশনের বাইরে থেকে এক্সেস করা যায় না। ফাংশনটি যখন কল করা হবে তখন এই ভ্যারিয়েবলগুলো মেমোরিতে সংরক্ষিত হবে। ফাংশন শেষে এই ভ্যারিয়েবলগুলোর আর কোন অস্বিত্ব থাকবে না । +পিএইচপিতে মুলত দুই ধরনের ভ্যারিয়েবল এর ধারণা প্রচলিত, একটি হচ্ছে `global` ভ্যারিয়েবল আর অন্যটি `local` ভ্যারিয়েবল। সাধারণত কোড ব্লকের বাইরের পিএইচপিতে ভ্যারিয়েবল গুলো গ্লোবাল হয়, এসব ক্ষেত্রে আপনার প্রোগ্রামে একই নামে দুটি ভ্যারিয়েবল লিখলে ২য় টির দ্বারা প্রথমটির ভ্যালু প্রতিস্থাপিত হবে। অন্যদিকে ফাংশন / মেথডে ব্যবহারিত ভ্যারিয়েবলগুলো সাধারনত লোকাল ভ্যারিয়েবল হয়। ঐ ভ্যারিয়েবলগুলোকে শুধুমাত্র ওই মেথড / ফাংশনের মধ্যে ব্যবহার করা যাবে। ```php ``` -চাইলে গ্লোবাল ভ্যারিয়েবলগুলোকে সরাসির ফাংশন / মেথডের ভেতরে ব্যবহার করা যায়। এর জন্য `global` স্টেটমেন্ট ব্যবহার করতে হবে। নিচের উদাহরনটি দেখুনঃ +চাইলে গ্লোবাল ভ্যারিয়েবলগুলোকে সরাসির ফাংশন / মেথডের ভেতরে ব্যবহার করা যায়। এর জন্য `global` স্টেটমেন্ট ব্যবহার করতে হবে। নিচের উদাহরনটি দেখুনঃ + ```php ``` -এখানে আমরা ফাংশনের ভিতর থেকেও গ্লোবাল `$myvar` ভ্যারিয়েবলটি এ্যাক্সেস করেছি । -পিএইচপিতে যখন কোন ফাংশনে / মেথডে কোন লোকাল ভ্যারিয়েবল ব্যবহার করা হয় তখন ফাংশনটি কল হওয়ার সময় ভ্যারিয়েবলটি তৈরি হয় এবং কল শেষ হলে ধ্বংস হয়ে যায়। অনেক সময় আমাদের ওই ফাংশনটি পরবর্তীতে কল করা হলে ভ্যারিয়েবলটির আগের মান জানার দরকার হতে পারে। `static` স্টেটমেন্ট ব্যবহার করে ওই ভ্যারিয়েবলটির ভ্যালু পরবর্তী কলের জন্য সংরক্ষন করা সম্ভব । নিচে একটি উদাহরন দেওয়া হল । +এখানে আমরা ফাংশনের ভিতর থেকেও গ্লোবাল `$myvar` ভ্যারিয়েবলটি এ্যাক্সেস করেছি । + +পিএইচপিতে যখন কোন ফাংশনে / মেথডে কোন লোকাল ভ্যারিয়েবল ব্যবহার করা হয় তখন ফাংশনটি কল হওয়ার সময় ভ্যারিয়েবলটি তৈরি হয় এবং কল শেষ হলে ধ্বংস হয়ে যায়। অনেক সময় আমাদের ওই ফাংশনটি পরবর্তীতে কল করা হলে ভ্যারিয়েবলটির আগের মান জানার দরকার হতে পারে। `static` স্টেটমেন্ট ব্যবহার করে ওই ভ্যারিয়েবলটির ভ্যালু পরবর্তী কলের জন্য সংরক্ষন করা সম্ভব । নিচে একটি উদাহরন দেওয়া হল । -মনে করা যাক আমাদের একটি ফাংশন আছে যার নাম `query()` এখন আমাদের পুরো প্রোগ্রামে সকল ডাটাবেস কুয়েরির জন্য আমরা এই ফাংশনটি ব্যবহার করব। এই কারনে আমারা ফাংশনের মধ্যে একটি `static` ভ্যারিয়েবল ব্যবহার করব। যা কতবার এই ফাংশনটিকে কল করা হয়ে তার হিসাব রাখবে। +মনে করা যাক আমাদের একটি ফাংশন আছে যার নাম `query()` এখন আমাদের পুরো প্রোগ্রামে সকল ডাটাবেস কুয়েরির জন্য আমরা এই ফাংশনটি ব্যবহার করব। এই কারনে আমারা ফাংশনের মধ্যে একটি `static` ভ্যারিয়েবল ব্যবহার করব। যা কতবার এই ফাংশনটিকে কল করা হয়ে তার হিসাব রাখবে। ```php $queryResult, 'count' => $count); + static $count; + $count += 1; + $queryResult = "This is Query Result"; + return array('query' => $queryResult, 'count' => $count); } // চারবার কল করা হয়েছে। var_dump(query()); @@ -201,8 +208,10 @@ var_dump(query()); var_dump(query()); ?> ``` -আউটপুটঃ -``` + +আউটপুটঃ + +```text array (size=2) 'query' => string 'This is Query Result' (length=20) 'count' => int 1 @@ -216,8 +225,11 @@ array (size=2) 'query' => string 'This is Query Result' (length=20) 'count' => int 4 ``` -### এনোনিমাস ফাংশন -এই জাতীয় ফাংশনগুলোর কোন স্পেসিফিক নাম থাকে না। উদাহরন হিসাবে নিচের কোডটি দেখুন। + +## এনোনিমাস ফাংশন + +এই জাতীয় ফাংশনগুলোর কোন স্পেসিফিক নাম থাকে না। উদাহরন হিসাবে নিচের কোডটি দেখুন। + ```php ``` -এখানে আমরা ফাংশনটির কোন নাম দেইনি কিন্তু বাকি অংশগুলো ঠিক রেখেছি । এই ফাংশনটির কোন নাম না থাকলেও আমরা `$data` ভ্যারিয়েবলটি ব্যবহার করে ফাংশনটি কল করতে পারি । -এনোনিমাস ফাংশনে স্বাভাবিক ফাংশনের মত করেই আর্গুমেন্ট ব্যবহার করা যায়, নিচের কোড দেখুনঃ +এখানে আমরা ফাংশনটির কোন নাম দেইনি কিন্তু বাকি অংশগুলো ঠিক রেখেছি । এই ফাংশনটির কোন নাম না থাকলেও আমরা `$data` ভ্যারিয়েবলটি ব্যবহার করে ফাংশনটি কল করতে পারি । + +এনোনিমাস ফাংশনে স্বাভাবিক ফাংশনের মত করেই আর্গুমেন্ট ব্যবহার করা যায়, নিচের কোড দেখুনঃ ```php ``` -### রিকার্সিভ ফাংশন -কোন ফাংশন যখন নিজে নিজেকে কল করে তখন তাকে রিকার্সিভ ফাংশন বলা হয়ে থাকে। নিচে ফ্যাক্টোরিয়াল এর উদাহরন দেওয়া হলো । এখানে `$n` এর ভ্যালু কমিয়ে কমিয়ে ফাংশনটি রিকার্সিভলি কল করা হয় । যখন `$n` এর ভ্যালু শূন্য হয় তখনই সে থেমে যায় । যে শর্তের উপর নির্ভর করে ফাংশনটি নিজেকে আবার কল করে বা থেমে যায় এটাকে বেইজ কন্ডিশন বা বেইজ কেইস বলা হয় । রিকার্সিভ ফাংশনে বেইজ কেইস সেট করে দেওয়া জরুরী নাহলে এই রিকার্শন থিওরেটিক্যালি থামবে না । প্র্যাক্টিকালি পিএইচপি একটি নির্দিষ্ট লেভেল এর রিকার্শন এর পর ইরর থ্রো করবে । +## রিকার্সিভ ফাংশন -যদি রিকার্সিভ ফাংশন থেকে ডাটা রিটার্ন করতে হয় তবে মূল ফাংশনের ভেতরে নিজেকে আবার কল করার সময় ফাংশনের সামনে `return` লাগিয়ে কল করতে হবে। +কোন ফাংশন যখন নিজে নিজেকে কল করে তখন তাকে রিকার্সিভ ফাংশন বলা হয়ে থাকে। নিচে ফ্যাক্টোরিয়াল এর উদাহরন দেওয়া হলো । এখানে `$n` এর ভ্যালু কমিয়ে কমিয়ে ফাংশনটি রিকার্সিভলি কল করা হয় । যখন `$n` এর ভ্যালু শূন্য হয় তখনই সে থেমে যায় । যে শর্তের উপর নির্ভর করে ফাংশনটি নিজেকে আবার কল করে বা থেমে যায় এটাকে বেইজ কন্ডিশন বা বেইজ কেইস বলা হয় । রিকার্সিভ ফাংশনে বেইজ কেইস সেট করে দেওয়া জরুরী নাহলে এই রিকার্শন থিওরেটিক্যালি থামবে না । প্র্যাক্টিকালি পিএইচপি একটি নির্দিষ্ট লেভেল এর রিকার্শন এর পর ইরর থ্রো করবে । +যদি রিকার্সিভ ফাংশন থেকে ডাটা রিটার্ন করতে হয় তবে মূল ফাংশনের ভেতরে নিজেকে আবার কল করার সময় ফাংশনের সামনে `return` লাগিয়ে কল করতে হবে। ```php ``` -এখানে ফাংশনটি নিজেকে কল করে অপেক্ষা করতে থাকে সেটির রিটার্ন ভ্যালুর জন্য । সেই ফাংশনটি আবার নিজেকে কল করে অপেক্ষা করতে তাকে । এভাবে একটা নেস্টেড অবস্থা তৈরি হয় । এবং সাধারনত সব শেষে কল করা ফাংশন (যেটি বেইজ কেইস ম্যাচ করে) সেটি আগে ভ্যালু রিটার্ন করে এবং কন্ট্রোল তার আগের কলারকে ফিরিয়ে দেয় । এভাবেই রিকার্শন কাজ করে । +এখানে ফাংশনটি নিজেকে কল করে অপেক্ষা করতে থাকে সেটির রিটার্ন ভ্যালুর জন্য । সেই ফাংশনটি আবার নিজেকে কল করে অপেক্ষা করতে তাকে । এভাবে একটা নেস্টেড অবস্থা তৈরি হয় । এবং সাধারনত সব শেষে কল করা ফাংশন \(যেটি বেইজ কেইস ম্যাচ করে\) সেটি আগে ভ্যালু রিটার্ন করে এবং কন্ট্রোল তার আগের কলারকে ফিরিয়ে দেয় । এভাবেই রিকার্শন কাজ করে । + +সাধারণত ফাংশন নেস্টিং ৯৯ বার পর্যন্ত লিমিট করা থাকে। তাই Fibonacci জাতীয় প্রোগ্রাম for / while / if দিয়ে করা উচিত। -সাধারণত ফাংশন নেস্টিং ৯৯ বার পর্যন্ত লিমিট করা থাকে। তাই Fibonacci জাতীয় প্রোগ্রাম for / while / if দিয়ে করা উচিত। diff --git a/installation.md b/installation.md index 6ca174e..f16256a 100644 --- a/installation.md +++ b/installation.md @@ -1,16 +1,16 @@ # ইনস্টলেশন -আর দশটা প্রোগ্রামিং ল্যাঙ্গুয়েজের মত পিএইচপিও কমান্ড লাইন থেকে চালানো সম্ভব । কিন্তু পিএইচপির জন্ম হয়েছিলো ওয়েব অটোমেশনের জন্য, পিএইচপির ব্যবহারও তাই মূলত সার্ভার কেন্দ্রিক । পিএইচপি ভালো করে শিখতে হলে সার্ভার এনভায়রনমেন্ট সম্পর্কে ভালো ধারণা থাকাটা জরুরী । নবীনদের জন্য পিএইচপির সাথে এ্যাপাচি হবে সার্ভার হিসেবে ভালো চয়েস । একই সাথে আমাদের আরও শিখে রাখা দরকার একটি ডাটাবেইজ সিস্টেম । অন্যান্য অধিকাংশ ডাটাবেইজ সিস্টেমের জন্য সাপোর্ট থাকলেও, পিএইচপির সাথে মাইসিকুয়েল (MySQL) এর প্রবল জনপ্রিয়তা চোখে পড়ার মত । তাই আমাদের ইন্সটলেশন সেকশনে আমরা দেখবো কিভাবে পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল ইন্সটল করা যায় । +আর দশটা প্রোগ্রামিং ল্যাঙ্গুয়েজের মত পিএইচপিও কমান্ড লাইন থেকে চালানো সম্ভব । কিন্তু পিএইচপির জন্ম হয়েছিলো ওয়েব অটোমেশনের জন্য, পিএইচপির ব্যবহারও তাই মূলত সার্ভার কেন্দ্রিক । পিএইচপি ভালো করে শিখতে হলে সার্ভার এনভায়রনমেন্ট সম্পর্কে ভালো ধারণা থাকাটা জরুরী । নবীনদের জন্য পিএইচপির সাথে এ্যাপাচি হবে সার্ভার হিসেবে ভালো চয়েস । একই সাথে আমাদের আরও শিখে রাখা দরকার একটি ডাটাবেইজ সিস্টেম । অন্যান্য অধিকাংশ ডাটাবেইজ সিস্টেমের জন্য সাপোর্ট থাকলেও, পিএইচপির সাথে মাইসিকুয়েল \(MySQL\) এর প্রবল জনপ্রিয়তা চোখে পড়ার মত । তাই আমাদের ইন্সটলেশন সেকশনে আমরা দেখবো কিভাবে পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল ইন্সটল করা যায় । -### উইন্ডোজ +## উইন্ডোজ -আমি ব্যক্তিগতভাবে বিশ্বাস করি মাইক্রোসফটের নিজেদের ডেভেলপমেন্ট প্ল্যাটফর্ম ডট নেট ছাড়া বাকি যে কোন ধরনের প্রোগ্রামিং এর জন্যই উইন্ডোজ একটি বাজে চয়েস । লিনাক্স বা ইউনিক্স এনভায়রনমেন্ট পিএইচপি ডেভেলপমেন্ট এর জন্য উৎকৃষ্ট । ইন ফ্যাক্ট, আপনি উইন্ডোজে পিএইচপির সব ফিচার পাবেন ও না । তাই আমি রিকমেন্ড করি পিএইচপির জন্য উবুন্টু বা ম্যাক ওস এক্স ব্যবহার করার জন্য । সেটা সম্ভব না হলে ভার্চুয়াল বক্সে লিনাক্স চালানোর জন্য । একেবারে নিরুপায় হলেই উইন্ডোজে পিএইচপি চালানো উচিৎ । উইন্ডোজে হয়তো আপনার কাজ চলে যাবে কিন্তু পিএইচপি ট্র্যাকে ক্যারিয়ারে উপরে উঠতে গেলে আপনাকে আজ হোক কাল হোক উইন্ডোজ ছাড়তেই হবে । বলাই বাহূল্য, আপনার ডেভেলপ করা এ্যাপ্লিকেশন ৯৯% ক্ষেত্রেই লিনাক্স হোস্টিং এ চলবে । সুতরাং, এগিয়ে থাকতে চাইলে এখনই সময় পিএইচপির জন্য অন্য কোন অপারেটিং সিস্টেম ব্যবহার করা । +আমি ব্যক্তিগতভাবে বিশ্বাস করি মাইক্রোসফটের নিজেদের ডেভেলপমেন্ট প্ল্যাটফর্ম ডট নেট ছাড়া বাকি যে কোন ধরনের প্রোগ্রামিং এর জন্যই উইন্ডোজ একটি বাজে চয়েস । লিনাক্স বা ইউনিক্স এনভায়রনমেন্ট পিএইচপি ডেভেলপমেন্ট এর জন্য উৎকৃষ্ট । ইন ফ্যাক্ট, আপনি উইন্ডোজে পিএইচপির সব ফিচার পাবেন ও না । তাই আমি রিকমেন্ড করি পিএইচপির জন্য উবুন্টু বা ম্যাক ওস এক্স ব্যবহার করার জন্য । সেটা সম্ভব না হলে ভার্চুয়াল বক্সে লিনাক্স চালানোর জন্য । একেবারে নিরুপায় হলেই উইন্ডোজে পিএইচপি চালানো উচিৎ । উইন্ডোজে হয়তো আপনার কাজ চলে যাবে কিন্তু পিএইচপি ট্র্যাকে ক্যারিয়ারে উপরে উঠতে গেলে আপনাকে আজ হোক কাল হোক উইন্ডোজ ছাড়তেই হবে । বলাই বাহূল্য, আপনার ডেভেলপ করা এ্যাপ্লিকেশন ৯৯% ক্ষেত্রেই লিনাক্স হোস্টিং এ চলবে । সুতরাং, এগিয়ে থাকতে চাইলে এখনই সময় পিএইচপির জন্য অন্য কোন অপারেটিং সিস্টেম ব্যবহার করা । -উইন্ডোজে পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল সেটাপ করার জন্য XAMPP জনপ্রিয় । এটি ডাউনলোড করে ইন্সটল করে নিলেই পেয়ে যাবেন আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট । +উইন্ডোজে পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল সেটাপ করার জন্য [XAMPP](https://www.apachefriends.org/index.html) জনপ্রিয় । এটি ডাউনলোড করে ইন্সটল করে নিলেই পেয়ে যাবেন আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট । -### লিনাক্স +## লিনাক্স -পিএইচপি ডেভেলপমেন্টের আসল মজাটা পাওয়া যায় লিনাক্সে । পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল সেটাপ করার জন্য আপনার লিনাক্স ডিস্ট্রোর প্যাকেজ ম্যানেজার ব্যবহার করুন । যারা উবুন্টু কিংবা উবুন্টু এর কোন ভ্যারিয়ান্ট ব্যবহার করছেন, তাদের জন্য এই ছোট্ট কমান্ডটি টার্মিনালে টাইপ করে এন্টার চাপলেই হবে: +পিএইচপি ডেভেলপমেন্টের আসল মজাটা পাওয়া যায় লিনাক্সে । পিএইচপি, এ্যাপাচি এবং মাইসিকুয়েল সেটাপ করার জন্য আপনার লিনাক্স ডিস্ট্রোর প্যাকেজ ম্যানেজার ব্যবহার করুন । যারা উবুন্টু কিংবা উবুন্টু এর কোন ভ্যারিয়ান্ট ব্যবহার করছেন, তাদের জন্য এই ছোট্ট কমান্ডটি টার্মিনালে টাইপ করে এন্টার চাপলেই হবে: ```bash sudo apt-get install lamp-server^ @@ -18,21 +18,17 @@ sudo apt-get install lamp-server^ লিনাক্সের জন্যও XAMPP এর একটি ভার্সন আছে । কিন্তু সবকিছু রিপোজিটরি থেকে সেটাপ করে নেওয়াটাই বুদ্ধিমানের কাজ । এত ঝামেলা কম হয়, পরে প্রয়োজন হলে ট্রাবলশুটিং এও সমস্যা কম হবে । এছাড়া পিএইচপি রিলেটেড প্রচুর প্যাকেজ পাওয়া যাবে উবুন্টু সফটওয়্যার রিপোজিটরি থেকে যেগুলোও খুব সহজে ইনস্টল করে নিতে পারব -উবুন্টু বা ডেবিয়ান লিনাক্স বেইজড অপারেটিং সিস্টেমে লিনাক্স ইন্সটলেশনের জন্যে টার্মিনাল ওপেন করে নিচের কমান্ডগুলো একে একে একজিকিউট করতে হবে। +উবুন্টু বা ডেবিয়ান লিনাক্স বেইজড অপারেটিং সিস্টেমে লিনাক্স ইন্সটলেশনের জন্যে টার্মিনাল ওপেন করে নিচের কমান্ডগুলো একে একে একজিকিউট করতে হবে। --Apache2 সার্ভার ইন্সটলেশন: -sudo apt-get install apache2 +-Apache2 সার্ভার ইন্সটলেশন: sudo apt-get install apache2 --MySQL (ডাটাবেইজ) সার্ভার ইন্সটলেশন: -sudo apt-get install mysql-server +-MySQL \(ডাটাবেইজ\) সার্ভার ইন্সটলেশন: sudo apt-get install mysql-server --PhpMyAdmin (ডাটাবেইজ ভিজুয়াল এডিটর) ইন্সটলেশন: -sudo apt-get install phpmyadmin +-PhpMyAdmin \(ডাটাবেইজ ভিজুয়াল এডিটর\) ইন্সটলেশন: sudo apt-get install phpmyadmin +## ম্যাক ওএস এক্স +ওসএক্স এ বাই ডিফল্ট এ্যাপাচি থাকে । পিএইচপি এবং মাইসিকুয়েল টা [হোমব্রু](http://brew.sh) এর মাধ্যমে ইনস্টল করে নেওয়া ভালো । বিস্তারিত ইন্সট্রাকশন পাওয়া যাবে এখানে - [https://github.com/Homebrew/homebrew-php](https://github.com/Homebrew/homebrew-php) । -### ম্যাক ওএস এক্স +এছাড়াও উইন্ডোজের মতই সবকিছু একই প্যাকেজে পাওয়া যাবে [MAMP](http://www.mamp.info/en/) এর মাধ্যমে । তবে হোমব্রু এর মাধ্যমে সেটাপ করাটাই আমি রিকমেন্ড করি । প্রথমে একটু ঝামেলা মনে হলেও পরবর্তীতে এক্সটেনশন ইন্সটল করা কিংবা কমান্ড লাইন থেকে পিএইচপি রান করার জন্য হোমব্রু পিএইচপিই বেটার অপশন । সেই তুলনায় MAMP ব্যবহার করা সহজ কিন্তু কাস্টোমাইজেশন এর জন্য বেশ রেস্ট্রিক্টিভ । -ওসএক্স এ বাই ডিফল্ট এ্যাপাচি থাকে । পিএইচপি এবং মাইসিকুয়েল টা হোমব্রু এর মাধ্যমে ইনস্টল করে নেওয়া ভালো । বিস্তারিত ইন্সট্রাকশন পাওয়া যাবে এখানে - https://github.com/Homebrew/homebrew-php । - -এছাড়াও উইন্ডোজের মতই সবকিছু একই প্যাকেজে পাওয়া যাবে MAMP এর মাধ্যমে । তবে হোমব্রু এর মাধ্যমে সেটাপ করাটাই আমি রিকমেন্ড করি । প্রথমে একটু ঝামেলা মনে হলেও পরবর্তীতে এক্সটেনশন ইন্সটল করা কিংবা কমান্ড লাইন থেকে পিএইচপি রান করার জন্য হোমব্রু পিএইচপিই বেটার অপশন । সেই তুলনায় MAMP ব্যবহার করা সহজ কিন্তু কাস্টোমাইজেশন এর জন্য বেশ রেস্ট্রিক্টিভ । diff --git a/mastering-array.md b/mastering-array.md index 9261218..2e4de7b 100644 --- a/mastering-array.md +++ b/mastering-array.md @@ -1,13 +1,14 @@ # মাস্টারিং এ্যারে -আমরা ডাটাটাইপ চ্যাপ্টারে প্রথম এ্যারে এর সাথে পরিচিত হই । পিএইচপিতে এ্যারে খুবই গুরুত্বপূর্ন কনসেপ্টগুলোর মধ্যে অন্যতম । এই চ্যাপ্টারে তাই আমরা এ্যারে সংশ্লিষ্ট বিষয়গুলো দেখবো । +আমরা ডাটাটাইপ চ্যাপ্টারে প্রথম এ্যারে এর সাথে পরিচিত হই । পিএইচপিতে এ্যারে খুবই গুরুত্বপূর্ন কনসেপ্টগুলোর মধ্যে অন্যতম । এই চ্যাপ্টারে তাই আমরা এ্যারে সংশ্লিষ্ট বিষয়গুলো দেখবো । -### ডিফাইনিং এ্যারে +## ডিফাইনিং এ্যারে -ডাটা টাইপ চ্যাপ্টারে আমরা এ্যারে কিভাবে ডিফাইন করতে হয় তা দেখেছি । আবারো একবার দ্রুত দেখে নেই: +ডাটা টাইপ চ্যাপ্টারে আমরা এ্যারে কিভাবে ডিফাইন করতে হয় তা দেখেছি । আবারো একবার দ্রুত দেখে নেই: -#### এ্যাসোসিয়েটিভ এ্যারে -এই এ্যারেতে একটা কি (key) এর বিপরীতে একটা ভ্যালু স্টোর করা হয় । +### এ্যাসোসিয়েটিভ এ্যারে + +এই এ্যারেতে একটা কি \(key\) এর বিপরীতে একটা ভ্যালু স্টোর করা হয় । ```php ``` -#### ইনডেক্সেড এ্যারে +### ইনডেক্সেড এ্যারে -এখানে আমরা কোন কি ডিফাইন করি না । পিএইচপি নিজে থেকেই ক্রমিক সংখ্যা ব্যবহার করে ইনডেক্স এর জন্য । +এখানে আমরা কোন কি ডিফাইন করি না । পিএইচপি নিজে থেকেই ক্রমিক সংখ্যা ব্যবহার করে ইনডেক্স এর জন্য । ```php "masnun", 43); ``` -এখানে পিএইচপি প্রথম ৩টি আইটেমের ক্ষেত্রে ইন্টিজার ব্যবহার করবে । `name` কি টি স্ট্রিং । এরপর আবার পরের আইটেমটির জন্য আগের ইন্টিজার ভ্যালুর পরবর্তী ক্রমিক সংখ্যাটি ব্যবহার করবে । +এখানে পিএইচপি প্রথম ৩টি আইটেমের ক্ষেত্রে ইন্টিজার ব্যবহার করবে । `name` কি টি স্ট্রিং । এরপর আবার পরের আইটেমটির জন্য আগের ইন্টিজার ভ্যালুর পরবর্তী ক্রমিক সংখ্যাটি ব্যবহার করবে । -#### কুইক নোটস +### কুইক নোটস * এ্যারে তে লাস্ট আইটেম এর পর কমা দেওয়া অপশনাল । তবে মাল্টিলাইনে শেষ লাইনের শেষে কমা দেওয়া রিকমন্ডেড । -* এ্যারের ভ্যালু যে কোন টাইপ হতে পারে । কিন্তু কি (key) এর টাইপ অবশ্যই স্ট্রিং অথবা ইন্টিজার হতে হবে । +* এ্যারের ভ্যালু যে কোন টাইপ হতে পারে । কিন্তু কি \(key\) এর টাইপ অবশ্যই স্ট্রিং অথবা ইন্টিজার হতে হবে । * কি এর টাইপ যদি স্ট্রিং হয় এবং ঐ স্ট্রিং যদি ভ্যালিড ইন্টিজারে কনভার্ট করা সম্ভব হয় তাহলে পিএইচপি ঐ কি এর টাইপ অটোমেটিক্যালি ইন্টিজার করে ফেলে । অর্থাৎ আপনার কি যদি হয় `"3"` তাহলে পিএইচপি ওটাকে `3` এ কনভার্ট করে ব্যবহার করবে । * ফ্লোটিং পয়েন্ট নাম্বার কিংবা বুলিয়ান হলে সেটা ইন্টিজারে কনভার্ট করে নেয় অনুরূপভাবে । * Null হলে সেটা এম্পটি স্ট্রিং এ পরিবর্তন করে নিবে । * অন্য কিছু কি হিসেবে ব্যবহার করতে গেলে Illegal key offset এরর পাওয়া যাবে । -* কি (key) অপশনাল । যদি কি এর কোন ভ্যালু না দেওয়া হয় তাহলে পিএইচপি আগে ব্যবহার করা সবচেয়ে বড় ইন্টিজার কি এর ভ্যালু এক বাড়িয়ে নতুন কি তৈরি করে নেয় । কোন ইন্টিজার কি না থাকলে শূন্য থেকে শুরু করে । ইনডেক্সেড এ্যারে তে আমরা একই ঘটনা দেখেছি । -* -* এ্যারে গুলো জিরো বেইজড ইনডেক্স ব্যবহার করে । অর্থাৎ কি ডিফাইন না করে দিলে, প্রথম কি এর ভ্যালু হয় `0` । এরপর প্রতিবার এক এক করে বাড়ে । +* কি \(key\) অপশনাল । যদি কি এর কোন ভ্যালু না দেওয়া হয় তাহলে পিএইচপি আগে ব্যবহার করা সবচেয়ে বড় ইন্টিজার কি এর ভ্যালু এক বাড়িয়ে নতুন কি তৈরি করে নেয় । কোন ইন্টিজার কি না থাকলে শূন্য থেকে শুরু করে । ইনডেক্সেড এ্যারে তে আমরা একই ঘটনা দেখেছি । +* * এ্যারে গুলো জিরো বেইজড ইনডেক্স ব্যবহার করে । অর্থাৎ কি ডিফাইন না করে দিলে, প্রথম কি এর ভ্যালু হয় `0` । এরপর প্রতিবার এক এক করে বাড়ে । উদাহরণ: @@ -70,9 +70,9 @@ $array = array( var_dump($array); ``` -### এ্যাক্সেসিং এ্যারে +## এ্যাক্সেসিং এ্যারে -আমরা এ্যারে ডিফাইন করলাম। এবার ব্যবহার করার পালা । এ্যারে থেকে কোন এলিমেন্ট এর ভ্যালু পাওয়ার জন্য সেটার কি (key) দিয়ে আমরা নিচের মত করে এ্যাক্সেস করতে পারি: +আমরা এ্যারে ডিফাইন করলাম। এবার ব্যবহার করার পালা । এ্যারে থেকে কোন এলিমেন্ট এর ভ্যালু পাওয়ার জন্য সেটার কি \(key\) দিয়ে আমরা নিচের মত করে এ্যাক্সেস করতে পারি: ```php "masnun", 23 => 'blah'); $array[] = 'aha'; var_dump($array); ``` -এখানে সবচেয়ে বড় ইন্টিজার কি এর ভ্যালু ছিলো `23`, তাই `aha` এর কি হবে `24` (23 + 1) । এ্যারে ইনডেক্সিং এর ক্ষেত্রে পিএইচপির এই বিহ্যাভিয়র টা আমাদের মনে রাখা জরুরী । -#### ভ্যালু পরিবর্তন করা +এখানে সবচেয়ে বড় ইন্টিজার কি এর ভ্যালু ছিলো `23`, তাই `aha` এর কি হবে `24` \(23 + 1\) । এ্যারে ইনডেক্সিং এর ক্ষেত্রে পিএইচপির এই বিহ্যাভিয়র টা আমাদের মনে রাখা জরুরী । -কি দিয়ে এ্যাক্সেস করে আমরা একটি এলিমেন্ট পাই । ঐ এলিমেন্ট এর ভ্যালু আমরা নতুন করে এ্যাসাইন করতে পারি যেমন করে আমরা ভ্যারিয়েবল এর মান পরিবর্তন করি । +### ভ্যালু পরিবর্তন করা + +কি দিয়ে এ্যাক্সেস করে আমরা একটি এলিমেন্ট পাই । ঐ এলিমেন্ট এর ভ্যালু আমরা নতুন করে এ্যাসাইন করতে পারি যেমন করে আমরা ভ্যারিয়েবল এর মান পরিবর্তন করি । ```php "masnun"); $array['name'] = "new name"; ``` -এখানে আমরা `name` কি এর ভ্যালু পরিবর্তন করে দিলাম । ইনডেক্সেড এ্যারের ক্ষেত্রেও ঠিক একইভাবে আমরা ভ্যালু পরিবর্তন করি তাদের নিউমেরিক ইনডেক্স ব্যবহার করে: + +এখানে আমরা `name` কি এর ভ্যালু পরিবর্তন করে দিলাম । ইনডেক্সেড এ্যারের ক্ষেত্রেও ঠিক একইভাবে আমরা ভ্যালু পরিবর্তন করি তাদের নিউমেরিক ইনডেক্স ব্যবহার করে: ```php ``` -আমরা চাইলে নেইমস্পেইস এর পর কার্লি ব্রেইস (সেকেন্ড ব্রাকেট) ব্যবহার করেও নেইমস্পেইসগুলোকে আলাদা করতে পারি । নেইমস্পেইসের নাম দেওয়া না হলে সেটি গ্লোবাল নেইমস্পেইস হিসেবে বিবেচ্য হয় । অর্থাৎ নামহীন নেইমস্পেইসে আমরা যাই ডিফাইন করি তা গ্লোবাল নেইমস্পেইস থেকেই এ্যাক্সেস করা যায় । +আমরা চাইলে নেইমস্পেইস এর পর কার্লি ব্রেইস \(সেকেন্ড ব্রাকেট\) ব্যবহার করেও নেইমস্পেইসগুলোকে আলাদা করতে পারি । নেইমস্পেইসের নাম দেওয়া না হলে সেটি গ্লোবাল নেইমস্পেইস হিসেবে বিবেচ্য হয় । অর্থাৎ নামহীন নেইমস্পেইসে আমরা যাই ডিফাইন করি তা গ্লোবাল নেইমস্পেইস থেকেই এ্যাক্সেস করা যায় । -### নেইমস্পেইস ব্যবহার করা +## নেইমস্পেইস ব্যবহার করা -প্রথমেই নিশ্চিত হতে হবে আমাদের কোড যে নেইমস্পেইসে আছে তা বর্তমান ফাইল থেকে এ্যাক্সেস করা যায় কিনা । যেমন: যদি নেইমস্পেইসটি অন্য কোন ফাইলে হয় তবে অবশ্যই সেটি ইনক্লুড করে নিতে হবে । তবে বাস্তবে বেশীরভাগ ক্ষেত্রেই আমরা অটোলোডার ব্যবহার করে নেইমস্পেইস থেকে কোড ইম্পোর্ট করতে পারবো । সেক্ষেত্রে ম্যানুয়ালি ইনক্লুড করা লাগবে না । +প্রথমেই নিশ্চিত হতে হবে আমাদের কোড যে নেইমস্পেইসে আছে তা বর্তমান ফাইল থেকে এ্যাক্সেস করা যায় কিনা । যেমন: যদি নেইমস্পেইসটি অন্য কোন ফাইলে হয় তবে অবশ্যই সেটি ইনক্লুড করে নিতে হবে । তবে বাস্তবে বেশীরভাগ ক্ষেত্রেই আমরা অটোলোডার ব্যবহার করে নেইমস্পেইস থেকে কোড ইম্পোর্ট করতে পারবো । সেক্ষেত্রে ম্যানুয়ালি ইনক্লুড করা লাগবে না । -এরপর আমরা `use` কিওয়ার্ডটি ব্যবহার করে তারপর নেইমস্পেইস সহ পুরো নাম উল্লেখ করবো । উদাহরণ: +এরপর আমরা `use` কিওয়ার্ডটি ব্যবহার করে তারপর নেইমস্পেইস সহ পুরো নাম উল্লেখ করবো । উদাহরণ: ```php ``` -এই উদাহরনে আমরা দেখছি কিভাবে কোন নেইমস্পেইস থেকে আমরা ক্লাস ইম্পোর্ট করলাম । `as` কিওয়ার্ডটি ব্যবহার করে আমরা ইম্পোর্ট করার সময় প্রয়োজনমত নাম পরিবর্তন করে দিতে পারি । +এই উদাহরনে আমরা দেখছি কিভাবে কোন নেইমস্পেইস থেকে আমরা ক্লাস ইম্পোর্ট করলাম । `as` কিওয়ার্ডটি ব্যবহার করে আমরা ইম্পোর্ট করার সময় প্রয়োজনমত নাম পরিবর্তন করে দিতে পারি । -### নেইমস্পেইস থেকে গ্লোবাল কোড এ্যাক্সেস করা +## নেইমস্পেইস থেকে গ্লোবাল কোড এ্যাক্সেস করা -আমরা কোন নেইমস্পেইস থেকে যদি কোন ক্লাস বা ফাংশন এর পুরো নেইমস্পেইসড নাম ব্যবহার না করে শুধু নাম উল্লেখ করি তাহলে পিএইচপি ধরে নেয় ঐ ক্লাস বা ফাংশনও একই নেইমস্পেইসেরই অংশ । যেমন আমরা যদি `MyProject` নেইমস্পেইসে থেকে `strlen` ফাংশনটি কল করি তাহলে পিএইচপি গ্লোবাল `strlen()` ফাংশনটি ব্যবহার না করে `MyProject\strlen()` ফাংশনটি খুজঁবে । তাই কোন নেইমস্পেইসের ভিতর থেকে গ্লোবাল নেইমস্পেইসের ক্লাস, ফাংশন ইত্যাদি এ্যাক্সেস করার সময় নামের শুরুতে একটি `\` ব্যবহার করতে হয় । যেমন: +আমরা কোন নেইমস্পেইস থেকে যদি কোন ক্লাস বা ফাংশন এর পুরো নেইমস্পেইসড নাম ব্যবহার না করে শুধু নাম উল্লেখ করি তাহলে পিএইচপি ধরে নেয় ঐ ক্লাস বা ফাংশনও একই নেইমস্পেইসেরই অংশ । যেমন আমরা যদি `MyProject` নেইমস্পেইসে থেকে `strlen` ফাংশনটি কল করি তাহলে পিএইচপি গ্লোবাল `strlen()` ফাংশনটি ব্যবহার না করে `MyProject\strlen()` ফাংশনটি খুজঁবে । তাই কোন নেইমস্পেইসের ভিতর থেকে গ্লোবাল নেইমস্পেইসের ক্লাস, ফাংশন ইত্যাদি এ্যাক্সেস করার সময় নামের শুরুতে একটি `\` ব্যবহার করতে হয় । যেমন: ```php getValue() . "\n"; + } +} + +class ConcreteClass1 extends AbstractClass +{ + protected function getValue() { + return "ConcreteClass1"; + } + + public function prefixValue($prefix) { + return "{$prefix}ConcreteClass1"; + } +} + +class ConcreteClass2 extends AbstractClass +{ + public function getValue() { + return "ConcreteClass2"; + } + + public function prefixValue($prefix) { + return "{$prefix}ConcreteClass2"; + } +} + +$class1 = new ConcreteClass1; +$class1->printOut(); +echo $class1->prefixValue('FOO_') ."\n"; + +$class2 = new ConcreteClass2; +$class2->printOut(); +echo $class2->prefixValue('FOO_') ."\n"; +?> +``` + +এখানে একই এ্যাবস্ট্রাক্ট ক্লাস থেকে আমরা দুটি ক্লাস তৈরি করেছি । এবং প্রত্যেকটি সাবক্লাসে আমরা এ্যাবস্ট্রাক্ট মেথডগুলো নিজেদের মত করে ইম্প্লিমেন্ট করেছি । কিন্তু `printOut()` মেথডটি মূল ক্লাসেই ডিফাইন করা । + diff --git a/oop/oop-class-and-objects.md b/oop/oop-class-and-objects.md new file mode 100644 index 0000000..f38b2df --- /dev/null +++ b/oop/oop-class-and-objects.md @@ -0,0 +1,36 @@ +# ক্লাস এবং অবজেক্ট + +## ক্লাস এবং অবজেক্ট এর পার্থক্য + +একটি বাড়ি তৈরি করতে গেলে যেমন আমরা শুরুতে একটি নকশা বা ব্লু প্রিন্ট তৈরি করে নেই, পিএইচপিতেও তেমনি কোন অবজেক্ট কেমন হবে তা ডিফাইন করে দেওয়া হয় ক্লাস এর মাধ্যমে । অর্থাৎ অবজেক্ট এর ব্লু প্রিন্ট হলো ক্লাস, ক্লাস থেকে তৈরি করা হয় অবজেক্ট । একই ক্লাস থেকে তৈরি করা অবজেক্টগুলোর প্রত্যেকটি হলো ঐ ক্লাসের অবজেক্ট এর একটি ইন্সট্যান্স । + +## ক্লাস ডিফাইন করা + +ক্লাস ডিফাইন করা খুবই সহজ, প্রথমে `class` কিওয়ার্ড, এরপর ক্লাসের নাম এরপর কোড ব্লকে থাকবে ক্লাস বডি । খুব সিম্পল একটি ক্লাসের উদাহরণ হতে পারে এরকম: + +```php +name = "MyDestructableClass"; + } + + function __destruct() { + print "Destroying " . $this->name . "\n"; + } +} + +$obj = new MyDestructableClass(); +``` + +সাধারনত অবজেক্ট এ ব্যবহৃত গুরুত্বপূর্ন রিসোর্স ডি-এ্যালোকেট করার জন্য ডেস্ট্রাক্টর মেথড বেশ কাজে দেয় । কনস্ট্রাক্টর এর মত ডেস্ট্রাক্টরের বেলায় প্যারেন্ট এর ডেস্ট্রাক্টর এক্সপ্লিসিটলি কল করতে হয় । + diff --git a/oop/oop-inheritance.md b/oop/oop-inheritance.md new file mode 100644 index 0000000..4b9ff08 --- /dev/null +++ b/oop/oop-inheritance.md @@ -0,0 +1,58 @@ +# ইনহেরিট্যান্স + +আমরা যেমন আমাদের বাবা-মার গুনাবলী বংশানুক্রমিকভাবে পাই, তেমনি ভাবে পিএইচপিতে ও একটি ক্লাস অন্য আরেকটি ক্লাস কে এক্সটেন্ড করে তার সব প্রোপার্টি বা মেথড ব্যবহার করতে পারে । এটাই ইনহেরিট্যান্স । একটি সহজ উদাহরন দেখি: + +```php +name; + } +} + + +class ChildClass extends ParentClass +{ + +} + +$child = new ChildClass(); +$child->name = "Abul"; + +var_dump($child->getName()); +``` + +এখানে লক্ষ্য করুন `ChildClass` টি `ParentClass` কে এক্সটেন্ড করেছে । এর ফলে `ChildClass` এ আমরা `name` বা `getName()` ডিফাইন না করলেও `ParentClass` থেকে সে এই প্রোপার্টি এবং মেথড এ্যাক্সেস করতে পারছে । এটাই সহজ ভাষায় ইনহেরিট্যান্স । এক্ষেত্রে আমরা বলতে পারি, `ChildClass` টি `ParentClass` কে ইনহেরিট করেছে । এখানে আমরা `extends` কিওয়ার্ডটি ব্যবহার করে বলে দেই কোন ক্লাসটি এক্সটেন্ড করছে আর কোনটি থেকে এক্সটেন্ড করা হচ্ছে । যেই ক্লাস টি এক্সটেন্ড করে, সেটিকে চাইল্ড ক্লাস এবং যেটি থেকে এক্সটেন্ড করা হয় সেটিকে প্যারেন্ট ক্লাস বলি আমরা । একটি ক্লাস যখন আরেকটি ক্লাস কে এক্সটেন্ড করে তখন প্যারেন্ট ক্লাস এর সব প্রোপার্টি এবং মেথডই চাইল্ড ক্লাস না ডিফাইন করলেও এ্যাক্সেস করতে পারবে । + +এখানে `ChildClass` এর `name` এবং `getName()` যে `ParentClass` থেকেই এসেছে তা এই উদহরনটি থেকে আরও পরিস্কারভাবে বোঝা যাবে: + +```php +name; + } +} + + +class ChildClass extends ParentClass +{ + +} + +$child = new ChildClass(); +var_dump($child->getName()); +``` + +এখানে দেখুন, আমরা `$name` এর ভ্যালু `ParentClass` এ ইনিশিয়ালাইজ করেছি । `ChildClass` হুবহু সেই ভ্যালুই গ্রহন করেছে । সুতরাং কোন সন্দেহ নেই যে এটি ইনহেরিটেন্স এরই ফল! + diff --git a/oop/oop-interface.md b/oop/oop-interface.md new file mode 100644 index 0000000..99562b9 --- /dev/null +++ b/oop/oop-interface.md @@ -0,0 +1,50 @@ +# ইন্টারফেইস + +ইন্টারফেইসের মাধ্যমে আমরা বলে দেই একটা ক্লাসের কোন কোন মেথড অবশ্যই থাকা লাগবে । কিন্তু আমরা এর মূল ইম্প্লিমেন্টেশনটা নির্দিষ্ট করে দেই না । + +আমরা একটা ইন্টারফেইস ডিফাইন করি `interface` কিওয়ার্ডটি দিয়ে । এবং যে সব ক্লাস এই ইন্টারফেইস মেনে চলে তারা এই ইন্টারফেইসকে `implement` করে । + +ইন্টারফেইস ডিফাইন করা হয় সাধারনভাবে ক্লাসের মত করেই । ইন্টারফেইসের মেথডগুলোর শুধু সিগনেচার \(কি কি প্যারামিটার নেয়\) ডিফাইন করে দেওয়া হয় কিন্তু এই মেথডগুলোর বডি ডিফাইন করা হয় না । + +পিএইচপি ম্যানুয়াল থেকে একটি উদাহরন দেখে নেই: + +```php +vars[$name] = $var; + } + + public function getHtml($template) + { + foreach($this->vars as $name => $value) { + $template = str_replace('{' . $name . '}', $value, $template); + } + + return $template; + } +} +``` + +এখানে আমরা `iTemplate` নামে একটি ইন্টারফেইস ডিফাইন করেছি । আমাদের `Template` ক্লাসটি এই ইন্টারফেইস ইম্প্লিমেন্ট করে । খেয়াল করুন আমরা দেখছি কিভাবে ইন্টারফেইসে শুধু মেথড সিগনেচার এবং আমাদের মূল ক্লাসে তার ইম্প্লিমেন্টেশন তৈরি করা হয়েছে । + +আমরা যদি ইম্প্লিমেন্টেশন ক্লাসে ইন্টারফেইসের কোন মেথড ডিফাইন করতে ভুলে যাই সেক্ষেত্রে আমরা ফ্যাটাল এরর পাবো । + +পিএইচপিতে একটি ক্লাস অনেকগুলো ইন্টারফেইস ইম্প্লিমেন্ট করতে পারে তবে যদি দুইটি ইন্টারফেইসের একই নামের মেথড থাকে তাহলে সঙ্গত কারনেই কোন ক্লাস এই দুটি ইন্টারফেইস একই সাথে ইম্প্লিমেন্ট করতে পারবে না । সেটা করলে ঐ মেথডের নাম নিয়ে কনফ্লিক্ট তৈরি হবে । + +ইন্টারফেইস হলো অনেকটা ডেভেলপারের সাথে চুক্তি করার মতো । আমাদের চুক্তি মেনে নিতে হলে তাকে অবশ্যই আমাদের বলে দেওয়া মেথড ইম্প্লিমেন্ট করতে হবে । যখন কোন ক্লাস আমাদের ডিফাইন করা ইন্টারফেইস ইম্প্লিমেন্ট করে তখন আমরা ধরে নিতে পারি আমাদের বলে দেওয়া মেথডগুলো ঐ ক্লাসে আছে । এর ফলে আমরা ক্লাসের প্রয়োজনীয় ডিজাইন সম্পর্কে নিশ্চিত হতে পারি । + diff --git a/oop/oop-magic-methods.md b/oop/oop-magic-methods.md new file mode 100644 index 0000000..b83a2ee --- /dev/null +++ b/oop/oop-magic-methods.md @@ -0,0 +1,145 @@ +# ম্যাজিক মেথডস + +পিএইচপির ক্লাসে কিছু মেথড থাকে যেগুলো দুইটি আন্ডারস্কোর দিয়ে শুরু হয়, এই মেথড গুলোকে সাধারণত ম্যাজিক মেথড বলা হয়। যদিও এই মেথডগুলো আগেথেকে ক্লাসে থাকে না, এই মেথড গুলো সাধারনত প্রোগ্রামাররাই লিখে থাকে। কিন্তু এই মেথড গুলো অন্যান্য মেথডের মত আচরন করে না। + +`__construct()`,`__destruct()`, `__call()`, `__callStatic()`, `__get()`, `__set()`, `__isset()`, `__unset()`, `__sleep()`,`__wakeup()`,`__toString()`, `__invoke()`, `__set_state()`, `__clone()` এবং `__debugInfo()` এই মেথড গুলোকে ম্যাজিক মেথড বলা হয়ে থাকে। + +**construct\(\),** destruct\(\) এই মেথড গুলো সম্পর্কে [পূর্বে](http://php.howtocode.com.bd/oop-constructors-and-destructors.html) আলোচনা করা হয়েছে। + +## গেট মেথড + +এই মেথড এর মাধ্যমে ক্লাসের প্রোপার্টি এক্সেস করা যায়। নিচের উদাহরণটিতে গেট মেথড ইমপ্লিমেন্ট করে দেখানো হয়েছে। + +```php +public function __get($property) +{ + if (property_exists($this, $property)) { + return $this->$property; + } +} +``` + +ধরা যাক আমাদের ক্লাসের নাম Tweet যার একটি প্রোপার্টি \(username\) আছে । কেউ যদি username প্রোপার্টি টি এক্সেস করতে চায় তবে সে নিচের উদাহরন এর মত করে প্রোপার্টিটি এক্সেস করতে পারবে। + +```php +$tweet = new Tweet(); +echo $tweet->username; // এটি username প্রোপার্টিটি রিটার্ন করবে, এমনকি প্রাইভেট প্রোপার্টি হলেও। +``` + +## সেট মেথড + +এই মেথড এর মাধ্যমে ক্লাসের প্রোপার্টির ভ্যালু সেট করা যায়। নিচের উদাহরণটিতে সেট মেথড ইমপ্লিমেন্ট করে দেখানো হয়েছে। + +```php +public function __set($property, $value) +{ + if (property_exists($this, $property)) { + $this->$property = $value; + } +} +``` + +Tweet ক্লাসে username এর ভ্যালু সেট করতে চাইলে নিচের উদাহরন অনুসরন করলেই হবে। + +```php +$tweet = new Tweet(); +$tweet->username = 'saaiful'; // এটি username প্রোপার্টর ভ্যালু সেট করবে। +``` + +## ইজসেট মেথড + +কোন প্রোপার্টি ক্লাসের মধ্যে আছে কিনা তা জানতে এই মেথড ব্যবহার করা হয়। এই মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না। + +```php +public function __isset($property) +{ + return isset($this->$property); +} +``` + +ক্লাসের যেকোন মেথড থেকে নিচের মত করে এই মেথডটি ব্যবহার করা যাবে + +```php +isset($tweet->username); +``` + +## আনসেট মেথড + +ক্লাসের কোন প্রোপার্টি সরিয়ে দিতে এই মেথড ব্যবহার করা হয়। এই মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না। + +```php +public function __unset($property) +{ + unset($this->$property); +} +``` + +ক্লাসের যেকোন মেথড থেকে নিচের মত করে এই মেথডটি ব্যবহার করা যাবে + +```php +unset($tweet->username); +``` + +## কল মেথড + +যখন কোন মেথড ক্লাসের বাইরে থেকে এক্সেস করা যায় না অথবা যখন কল করা মেথডটি ক্লাসে থাকে না তখন এই মেথড কাজ শুরু করে। + +```php +public function __call($method, $parameters) +{ + var_dump($method); + var_dump($parameters); +} +``` + +নিচের উদাহরনে post মেথড ব্যবহার করা হয়েছে , যদিও Tweet ক্লাসে এই মেথডটি নেই। কিন্তু আউটপুট লক্ষ করলে দেখা যাবে মেথডের নাম আর প্যারামিটারের var\_dump করা হয়েছে। \_\_call মেথডের মধ্যে প্রয়োজনীয় কোড লিখে এই মেথডের চমৎকার ব্যবহার করা যাবে। + +```php +$tweet = new Tweet(); +$tweet->post("this is a test"); +``` + +উদাহরনঃ + +```php +username = "saaiful"; + $this->api = "https://api.twitter.com/1.1/"; + $this->param['user_timeline'] = "statuses/user_timeline.json"; + $this->param['home_timeline'] = "statuses/home_timeline.json"; + $this->param['retweets'] = "statuses/retweets"; + } + + public function fetch($url) + { + // send get request to $url + var_dump($url); + } + + public function __call($method, $parameters='') + { + if(array_key_exists($method, $this->param)){ + $url = $this->api . $this->param[$method]; + if(!empty($parameters)){ + $url .= "/".$parameters[0].".json"; + } + return $this->fetch($url); + }else{ + return false; + } + + } +} + +$tweet = new Tweet(); +$tweet->retweets('abc'); +$tweet->ppp('abc'); +``` + +...চলমান + diff --git a/oop/oop-method-and-property.md b/oop/oop-method-and-property.md new file mode 100644 index 0000000..6820a0b --- /dev/null +++ b/oop/oop-method-and-property.md @@ -0,0 +1,79 @@ +# মেথড এবং প্রোপার্টি + +## প্রোপার্টি + +কোন ফিচার বা বৈশিষ্ট্য বোঝাতে আমরা প্রোপার্টি ব্যবহার করতে পারি । যেমন: একজন মানুষের উচ্চতা বোঝানোর জন্য আমরা `Person` ক্লাস এ `height` নামে একটি প্রোপার্টি তৈরি করতে পারি । + +প্রোপার্টি গুলোকে সচরাচর ফিল্ড বা এ্যাট্রিবিউট নামেও ডাকা হয় । প্রোপার্টি ডিফাইন করা খুবই সহজ, প্রথমে ভিজিবিলিটি কিওয়ার্ড \(`public`, `protected` কিংবা `private`\) এর যে কোন একটি লিখতে হবে এবং তারপর আমরা যেভাবে ভ্যারিয়েবল ডিক্লেয়ার করি সেভাবেই আমাদের প্রোপার্টি ডিফাইন করবো । ভিজিবিলিটি নিয়ে আমরা পরবর্তীতে কোন চ্যাপ্টারে আলোকপাত করবো । আসুন আমরা দেখে নেই প্রোপার্টি কিভাবে ব্যবহার করা যায়: + +```php +age = 32; + +$anotherPerson = new Person(); +$anotherPerson->age = 45; + +var_dump($person->age); +var_dump($anotherPerson->age); +``` + +এখানে আমরা `age` নামে একটি প্রোপার্টি ডিফাইন করলাম । পরবর্তীতে ঐ ক্লাসের দুটো ইনস্ট্যান্স তৈরি করে নিলাম এবং তাদের বয়স সেট করে দিলাম । লক্ষ্য করুন, কোন অবজেক্ট ইনস্ট্যান্স থেকে তার প্রোপার্টি এ্যাক্সেস করার জন্য আমরা `->` সিম্বলটি ব্যবহার করছি । এবং যখন প্রোপার্টি এ্যাক্সেস করছি তখন প্রোপার্টির নামের আগে ভ্যারিয়েবল সাইন নেই । অর্থাৎ, `$person->$age` নয়, বরং `$person->age` এর মাধ্যমে আমরা `age` প্রোপার্টি এ্যাক্সেস করতে পারি । + +এই অপারেটর \(`->`\) টি অবজেক্ট অপারেটর নামে পরিচিত। + +যদি আমরা প্রোপার্টির নামের আগে ভ্যারিয়েবল সাইন ব্যবহার করে এ্যাক্সেস করি তখন সেটি ভ্যারিয়েবল ভ্যারিয়েবল এর মত করে কাজ করবে । প্রথমে `$age` এর ভ্যালু বের করে নিয়ে এরপর `$person->(value of $age)` এভাবে কল করা হবে । এভাবে আমরা একটি অবজেক্ট ইন্সট্যান্স থেকে ডাইনামিক্যালি তার প্রোপার্টি এ্যাক্সেস করতে পারি । + +আমরা চাইলে প্রোপার্টির একটি ইনিশিয়াল ভ্যালুও দিয়ে দিতে পারি । তবে এই ইনিশিয়াল ভ্যালু অবশ্যই কন্সট্যান্সট এক্সপ্রেশন হতে হবে \(অর্থাৎ কোন ভ্যারিয়েবল বা ফাংশন ব্যবহার করা চলবে না\) । যে কোন ফিক্সড ভ্যালু \(যেমন: স্ট্রিং বা ইন্টিজার\) কিংবা কোন কনস্ট্যান্ট ব্যবহার করা যেতে পারে । + +```php +age; + } +} + + +$person = new Person(); +$person->age = 32; + +$anotherPerson = new Person(); +$anotherPerson->age = 45; + +var_dump($person->getAge()); +var_dump($anotherPerson->getAge()); +``` + +এখানে আমরা `getAge()` নামে একটি মেথড ডিফাইন করেছি যেটার কাজই হচ্ছে ঐ অবজেক্ট ইন্সট্যান্স এর `age` প্রোপার্টির ভ্যালু রিটার্ন করা । + +আমরা দেখলাম `$this` এই ভ্যারিয়েবলটির মাধ্যমে আমরা ঐ অবজেক্ট ইনস্ট্যান্সটি এ্যাক্সেস করেছি । এটি সম্পর্কে আমরা আরো বিস্তারিত জানবো "স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট" সেকশনে । আপাতত আমাদের মনে রাখতে হবে `$this` ভ্যারিয়েবলটি যে ক্লাসে ব্যবহার করা হয়, এটি তার প্রত্যেকটি ইনস্ট্যান্সে নিজ নিজ ইনস্ট্যান্স কে পয়েন্ট করে । + diff --git a/oop/oop-static-and-non-static-context.md b/oop/oop-static-and-non-static-context.md new file mode 100644 index 0000000..f2447b1 --- /dev/null +++ b/oop/oop-static-and-non-static-context.md @@ -0,0 +1,91 @@ +# স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট + +## নন স্ট্যাটিক কনটেক্সট + +আমরা আগের সেকশনে প্রোপার্টি দেখার সময় দেখেছি `$this` এর ব্যবহার । আমরা জেনেছি কোন ক্লাসের ভিতর যদি এই ভ্যারিয়েবলটি ব্যবহার করা হয় তাহলে ঐ ক্লাসের যতগুলো ইনস্ট্যান্স তৈরি করবো আমরা প্রতে্যকটির ভিতরে `$this` কিওয়ার্ড ঐ অবজেক্ট এ পয়েন্ট করবে । + +আগের উদাহরনটিই আরেকবার দেখে নেই: + +```php +age; + } +} + + +$person = new Person(); +$person->age = 32; + +$anotherPerson = new Person(); +$anotherPerson->age = 45; + +var_dump($person->getAge()); +var_dump($anotherPerson->getAge()); +``` + +এখানে দেখুন, আমরা যখন `$person->getAge()` কল করছি তখন আমরা `$person` এর `age` প্রোপার্টি পাচ্ছি, আবার যখন `$anotherPerson->getAge()` কল করছি তখন পাচ্ছি `$anotherPerson` এর বয়স । অর্থাৎ, একই `$this` ভ্যারিয়েবলটি `$person` অবজেক্টের ভিতর `$person` কে এবং `$anotherPerson` ভিতরে `$anotherPerson` কে নির্দেশ করছে । + +এর ফলে, একটি ক্লাস থেকে তৈরি করা সব ইনস্ট্যান্সই তার নিজের প্রোপার্টি বা মেথড এ্যাক্সেস করতে পারে এই `$this` ভ্যারিয়েবল এর মাধ্যমে । তাই আলাদা আলাদা ইনস্ট্যান্সে একই প্রোপার্টির ভিন্ন ভিন্ন ভ্যালু থাকলেও আমরা এই ভ্যারিয়েবলটির মাধ্যমে ঐ ইনস্ট্যান্সের ভ্যালুটি জেনে নিতে পারছি খুব সহজেই! + +এই যে একই ক্লাস থেকে তৈরি করা অবজেক্ট ইনস্ট্যান্স গুলোর ভ্যালু আলাদা আলাদা হতে পারে এটাই হলো নন-স্ট্যাটিক কনটেক্সট । এই কনটেক্সট এ কোন প্রোপার্টি বা মেথড শুধু ঐ ইনস্ট্যান্স স্পেসিফিক হয় । + +## স্ট্যাটিক কনটেক্সট + +কখনো কখনো কিছু প্রোপার্টি বা মেথড আমাদের সব ইনস্ট্যান্সের জন্যই কমন হয় । এই প্রোপার্টি গুলো বা মেথড গুলো আলাদা আলাদা ইনস্ট্যান্স এর জন্য আলাদা হওয়ার দরকার নেই, বরং ঐ ক্লাসের সবার জন্যই একই । এই মেথড বা প্রোপার্টি তাই সবাই এক সাথে শেয়ার করতে পারে । যেমন ধরুন, আমি চাই একটি `$count` প্রোপার্টি যেটির ভ্যালু সব অবজেক্ট ইনস্ট্যান্স শেয়ার করুক । অর্থাৎ যে কোন ইনস্ট্যান্স থেকেই আমি এই প্রোপার্টির ভ্যালু একই পাই । এক্ষেত্রে আমাকে এই প্রোপার্টি-টিকে স্ট্যাটিক হিসেবে ডিক্লেয়ার করতে হবে । তখন আমার ঐ ক্লাস থেকেই আমি সরাসরি এটি এ্যাক্সেস করতে পারবো, আমার অবজেক্ট ইনস্ট্যান্স তৈরি না করলেও চলবে । এটাই হচ্ছে স্ট্যাটিক কনটেক্সট । একটি উদাহরন দেখলে আরো ভালো বোঝা যাবে -- + +```php +getCount()); + +Person::$count = 23; +var_dump(Person::$count); + +var_dump($person->getCount()); + + +$anotherPerson = new Person(); +var_dump($anotherPerson->getCount()); +``` + +উদাহরনটি একটু জটিল, তাই কয়েকবার ভালো করে পড়ুন । কোড রান করে আউটপুট ভালো করে মিলিয়ে নিন । + +দেখুন, এখানে `Person` ক্লাসে `$count` একটি স্ট্যাটিক প্রোপার্টি এবং `getCount()` একটি স্ট্যাটিক মেথড । এখান থেকে লক্ষ্যনীয়: + +* স্ট্যাটিক মেথড বা প্রোপার্টি ডিফাইন করতে আমরা `static` কিওয়ার্ডটি ব্যবহার করি । +* `$this` এর মত `self` এর মাধ্যমে আমরা স্ট্যাটিক কনটেক্সট এ প্রোপার্টি বা মেথড এ্যাক্সেস করি । +* নন স্ট্যাটিক কনটেক্সট এ `->` ব্যবহার করা হয় এ্যাক্সেস করার জন্য । স্ট্যাটিক কনটেক্সট এ `::` । +* স্ট্যাটিক কনটেক্সট এ প্রোপার্টির নামের আগে ভ্যারিয়েবল সাইন থাকে । নন-স্ট্যাটিক কনটেক্সট এ থাকে না । স্ট্যাটিক কনটেক্সট এ তাই ভ্যারিয়েবল ভ্যারিয়েবল এর মত করে এ্যাক্সেস করতে চাইলে আরেকটি ভ্যারিয়েবল সাইন যোগ করতে হয় । +* স্ট্যাটিক মেথড কিংবা প্রোপার্টি কোন ইনস্ট্যান্স তৈরি না করেই সরাসরি ক্লাস এর নাম দিয়েই এ্যাক্সেস করা যায় । +* স্ট্যাটিক প্রোপার্টি বা মেথড ঐ ক্লাসের সব ইনস্ট্যান্সই এ্যাক্সেস করতে পারে । এর ভ্যালু সব ইনস্ট্যান্সেই একই থাকে । এটা নন-স্ট্যাটিক কনটেক্সট এ \(যেমন ইনস্ট্যান্স এর ভিতর থেকে\) পরিবর্তন করা যায় না । + +এই সিম্বল টি \(`::`\) স্কোপ রেসুলেশন অপারেটর নামে পরিচিত। + +নন-স্ট্যাটিক কনটেক্সট থেকে স্ট্যাটিক কনটেক্সট এ্যাক্সেস করা যায় কারন স্ট্যাটিক কনটেক্সট সবার জন্য একই । কিন্তু স্বাভাবিকভাবেই এর উল্টোটা করা সম্ভব হয় না । + +## `$this` এবং `self` + +এতক্ষনে আমরা বুঝে ফেলেছি এ দুটোর পার্থক্য । তবু বলি - `$this` নির্দেশ করে অবজেক্ট ইনস্ট্যান্স কে, `self` নির্দেশ করে ঐ ক্লাস কে । + diff --git a/oop/oop-traits.md b/oop/oop-traits.md new file mode 100644 index 0000000..2ecc208 --- /dev/null +++ b/oop/oop-traits.md @@ -0,0 +1,37 @@ +# ট্রেইটস + +আমরা দেখেছি ক্লাস ইনহেরিট্যান্সের মাধ্যমে আমরা প্যারেন্ট ক্লাস থেকে চাইল্ড ক্লাসে মেথড ইনহেরিট করতে পারি । অর্থাৎ প্যারেন্ট ক্লাসে কোন মেথড তৈরি করা থাকলে আমরা সেটা চাইল্ড ক্লাসে ব্যবহার করতে পারি । কিন্তু অনেক সময় দেখা যায় একই ক্লাস হায়ারার্কিতে নেই এমন দুটি ক্লাসের কিছু কমন মেথড থাকতে পারে । অর্থাৎ এমন দুটি ক্লাস যারা একটি আরেকটিকে এক্সটেন্ড করে না কিন্তু দুটি ক্লাসেরই কমন মেথড থাকছে `getName()` নামে যেটা একই কাজ করে । এসব ক্ষেত্রে কোড রিইউজে সহায়তা করতে পিএইচপি 5.4.0 ভার্সন থেকে ট্রেইটস এর প্রচলন । + +ট্রেইটস ডিফাইন করা হয় ক্লাসের মত করেই তবে `trait` কিওয়ার্ডটি ব্যবহার করে । একটি ট্রেইটের ভিতরে একই ধরনের কিছু ফাংশনালিটি সম্পন্ন মেথড ডিফাইন করা থাকে । এরপরে কোন ক্লাসের ভিতরে আমরা ঐ ট্রেইটটি ইনক্লুড করলে ঐ মেথডগুলো আমরা এ্যাক্সেস করতে পারি ঠিক যেন ঐ ক্লাসেই মেথডগুলো ডিফাইন করা হয়েছিলো । + +উদাহরন: + +```php +name; + } +} + +class TestClass { + use CommonMethods; + private $name = "test class"; +} + +class AnotherClass { + use CommonMethods; + private $name = "another class"; +} + +$tc = new TestClass(); +var_dump($tc->getName()); + +$ac = new AnotherClass(); +var_dump($ac->getName()); +``` + +এখানে `TestClass` এবং `AnotherClass` সম্পূর্ন ইনডিপেন্ডেন্ট দুটি ক্লাস । তারা `CommonMethods` ট্রেইটটি ব্যবহার করে । ফলে এই ট্রেইটের মেথডটি তারা সরাসরি ব্যবহার করতে পারে । + +পিএইচপিতে যেহেতু মাল্টিপল ইনহেরিট্যান্স নেই, অর্থাৎ কোন ক্লাস শুধুমাত্র একটা ক্লাসকেই এক্সটেন্ড করতে পারে তাই এক্ষেত্রে কমন মেথডগুলো গ্রুপিং এর জন্য ট্রেইট বেশ কার্যকর ভূমিকা পালন করতে পারে । + diff --git a/oop/oop-visibility.md b/oop/oop-visibility.md new file mode 100644 index 0000000..2053b3e --- /dev/null +++ b/oop/oop-visibility.md @@ -0,0 +1,66 @@ +# ভিজিবিলিটি + +## ভিজিবিলিটি + +আমরা যদি এর আগে অবজেক্ট ওরিয়েন্টেড পিএইচপি কোড দেখে থাকি তাহলে হয়তো `public`, `protected` এবং `private` কিওয়ার্ডগুলোর ব্যবহার দেখেছি । আজকে আমরা এগুলো কেন ব্যবহার করা হয় তা জানবো । + +কিওয়ার্ড গুলোর আভিধানিক অর্থ চিন্তা করলে কিছুটা পরিষ্কার হয়েই যায় । যেটা `public` সেটা সবার জন্যই উন্মুক্ত । যেটা `private` সেটা ব্যক্তিগত, অর্থাৎ শুধুই আমার জন্য । তাহলে `protected` টা কি হবে? যেটা `protected` সেটা শুধুই আমার এবং আমার উত্তরাধিকারীদের জন্য । + +কোন ক্লাসের যে মেথড ও প্রোপার্টিগুলো পাবলিক হয় সেগুলো অন্য যে কোন জায়গা থেকেই এ্যাক্সেস করা সম্ভব । প্রটেক্টেড হলে শুধু মাত্র ঐ ক্লাস এবং যে সব ক্লাস ঐ ক্লাস কে ইনহেরিট করে তারাই শুধু এ্যাক্সেস করতে পারবে । প্রাইভেট হলে শুধু মাত্র ঐ ক্লাসের ভিতর থেকেই এটা এ্যক্সেস করা যাবে, বাইরের কেউ বা কোন চাইল্ড ক্লাসও এটার এ্যাক্সেস পাবে না । + +আমরা পিএইচপি ম্যানুয়ালের এই উদাহরন টা দেখি: + +```php +public; + echo $this->protected; + echo $this->private; + } +} + +$obj = new MyClass(); +echo $obj->public; // Works +echo $obj->protected; // Fatal Error +echo $obj->private; // Fatal Error +$obj->printHello(); // Shows Public, Protected and Private +``` + +এখানে দেখুন, `$obj->public` টা আমরা ক্লাসের বাইরে থেকেও অবজেক্টের প্রোপার্টি হিসাবে ব্যবহার করতে পারছি কিন্তু বাকি দুটো এ্যাক্সেস করতে গেলে আমরা ফ্যাটাল এরর পাবো । অন্যদিকে `$obj->printHello()` যেহেতু ঐ ক্লাসের ভিতরেই ডিফাইন করা, তাই ক্লাসের ভিতরে আমরা প্রাইভেট এবং প্রটেক্টেড প্রোপার্টিরও এ্যক্সেস পাচ্ছি । + +এবার দেখি ইনহেরিট্যান্সের বেলায় কি হয় । আমরা এখন আগের ক্লাস টাকে এক্সটেন্ড করে আরেকটা ক্লাস বানাবো: + +```php +class MyClass2 extends MyClass +{ + + function printHello() + { + echo $this->public; + echo $this->protected; + echo $this->private; + } +} + +$obj2 = new MyClass2(); +$obj2->printHello(); +``` + +এখানে আমরা দেখছি আমাদের চাইল্ড ক্লাসে আমরা প্যারেন্ট এর প্রটেক্টেড প্রোপার্টি এ্যাক্সেস করতে পারলেও প্রাইভেট প্রোপার্টি আনডিফাইনড থেকে যাচ্ছে । + +## কুইক নোটস + +* `var` কিওয়ার্ড ব্যবহার করে প্রোপার্টি ডিফাইন করলে তা সবসময়ই পাবলিক হবে । +* ফাংশনের ক্ষেত্রে ভিজিবিলিটি কিওয়ার্ড মিস করলে সেটা পাবলিক হিসেবে গন্য হবে । +* একই ক্লাস থেকে তৈরি করা অবজেক্ট গুলো একে অপরের প্রাইভেট এবং প্রটেক্টেড মেম্বার গুলো এ্যাক্সেস করতে পারবে । কারন তারা যেহেতু একই ক্লাস থেকে তৈরি হয়েছে তাই তারা জানে ইন্সট্যান্সগুলোর প্রোপার্টি ও মেথড কিভাবে ডিফাইন করা হয়েছে । + diff --git a/variables-data-types.md b/variables-data-types.md index b1f77dc..4564fb9 100644 --- a/variables-data-types.md +++ b/variables-data-types.md @@ -1,8 +1,8 @@ # ভ্যারিয়েবল ও ডাটা টাইপস -### ভ্যারিয়েবল +## ভ্যারিয়েবল -প্রোগ্রামিং করতে গেলে প্রায়শই আমাদের বিভিন্ন ধরনের তথ্য উপাত্ত সংরক্ষণ করা লাগে । এই তথ্যগুলো আমরা কম্পিউটারের মেমোরীতে সংরক্ষন করে থাকি । ভ্যারিয়েবল হলো কম্পিউটার এর মেমোরীতে থাকা ছোট ছোট ব্লক যেখানে আমরা আমাদের প্রয়োজনমত ডাটা রাখতে পারি । এই মেমোরী ব্লকগুলোতে সংরক্ষিত ডাটা পরে এ্যাক্সেস করার জন্য আমরা আমাদের সুবিধামত নাম দিয়ে দেই । পিএইচপিতে ভ্যারিয়েবল তৈরি করা খুবই সহজ । সব ভ্যারিয়েবলই শুরু হবে ডলার সাইন (`$`) দিয়ে, ডলার সাইনের পরপরই ভ্যারিয়েবল এর নাম । এরপর ইকুয়াল সাইন (`=`) এর পর ঐ ভ্যারিয়েবল এর ভ্যালু । +প্রোগ্রামিং করতে গেলে প্রায়শই আমাদের বিভিন্ন ধরনের তথ্য উপাত্ত সংরক্ষণ করা লাগে । এই তথ্যগুলো আমরা কম্পিউটারের মেমোরীতে সংরক্ষন করে থাকি । ভ্যারিয়েবল হলো কম্পিউটার এর মেমোরীতে থাকা ছোট ছোট ব্লক যেখানে আমরা আমাদের প্রয়োজনমত ডাটা রাখতে পারি । এই মেমোরী ব্লকগুলোতে সংরক্ষিত ডাটা পরে এ্যাক্সেস করার জন্য আমরা আমাদের সুবিধামত নাম দিয়ে দেই । পিএইচপিতে ভ্যারিয়েবল তৈরি করা খুবই সহজ । সব ভ্যারিয়েবলই শুরু হবে ডলার সাইন \(`$`\) দিয়ে, ডলার সাইনের পরপরই ভ্যারিয়েবল এর নাম । এরপর ইকুয়াল সাইন \(`=`\) এর পর ঐ ভ্যারিয়েবল এর ভ্যালু । যেমন: @@ -11,39 +11,40 @@ $name = "Abu Ashraf Masnun"; ``` -এখানে আমরা একটি ভ্যারিয়েবল তৈরি করলাম `$name` । ভ্যারিয়েবল এর নাম অবশ্যই আন্ডারস্কোর অথবা কোন এ্যালফাবেট দিয়ে শুরু হতে হবে । নামের শুরুতেই সংখ্যা ব্যবহার করা যাবে না । নামটি কেইস সেনসিটিভ । অর্থাৎ `$name` আর `$Name` সম্পূর্ণ আলাদা ভ্যারিয়েবল নাম । +এখানে আমরা একটি ভ্যারিয়েবল তৈরি করলাম `$name` । ভ্যারিয়েবল এর নাম অবশ্যই আন্ডারস্কোর অথবা কোন এ্যালফাবেট দিয়ে শুরু হতে হবে । নামের শুরুতেই সংখ্যা ব্যবহার করা যাবে না । নামটি কেইস সেনসিটিভ । অর্থাৎ `$name` আর `$Name` সম্পূর্ণ আলাদা ভ্যারিয়েবল নাম । -### ডাটা টাইপ +## ডাটা টাইপ -আমাদের দৈনন্দিন জীবনে ব্যবহৃত ডাটা নানা ধরনের হয়ে থাকে । কোনটা টেক্সট, কোনটা সংখ্যা, সংখ্যার ভিতরে আবার কোনটা পূর্ণ সংখ্যা, কোনটা ভগ্নাংশ - এই সব ডাটার একেকটা কম্পিউটার একেক ভাবে সংরক্ষণ করে । এখান থেকেই মূলত ডাটা টাইপ কনসেপ্ট এর উৎপত্তি । +আমাদের দৈনন্দিন জীবনে ব্যবহৃত ডাটা নানা ধরনের হয়ে থাকে । কোনটা টেক্সট, কোনটা সংখ্যা, সংখ্যার ভিতরে আবার কোনটা পূর্ণ সংখ্যা, কোনটা ভগ্নাংশ - এই সব ডাটার একেকটা কম্পিউটার একেক ভাবে সংরক্ষণ করে । এখান থেকেই মূলত ডাটা টাইপ কনসেপ্ট এর উৎপত্তি । -পিএইচপিতে আমরা কোন ভ্যারিয়েবল এর টাইপ জানতে `gettype()` ফাংশনটি ব্যবহার করতে পারি । যেমন: +পিএইচপিতে আমরা কোন ভ্যারিয়েবল এর টাইপ জানতে `gettype()` ফাংশনটি ব্যবহার করতে পারি । যেমন: -```php +```php ` সিম্বল ব্যবহার করি । +এ্যারে হলো একটি তালিকা । যেখানে একটি ইনডেক্স এর বিপরীতে আমরা একটি ভ্যালু সংরক্ষণ করি । এ্যারে তৈরি করার জন্য আমরা বিল্ট ইন `array` কন্সট্র্যাক্ট ব্যবহার করি । ইনডেক্স এর বিপরীতে ভ্যালু ডিফাইন করার জন্য আমরা `=>` সিম্বল ব্যবহার করি । ```php "bar", "bar" => "foo", @@ -133,32 +134,32 @@ $list = array('a', 'c', 3, 'wow', 5); $list = ['a', 'z', 2, 10]; ``` -এখানে আমরা `array` এর পরিবর্তে `[` এবং `]` এর মধ্যে কি-ভ্যালু ডিফাইন করি । -পিএইচপির এ্যারে ডাটা টাইপটি একই সাথে এ্যারে, লিস্ট, ডিকশনারী, স্ট্যাক, কিউ, কালেকশান প্রভৃতির কাজ করতে পারে । এ্যারে নিয়ে বিস্তারিত আলোচনা থাকছে `মাস্টারিং এ্যারে` চ্যাপ্টারে । +এখানে আমরা `array` এর পরিবর্তে `[` এবং `]` এর মধ্যে কি-ভ্যালু ডিফাইন করি । -##### অবজেক্ট টাইপ +পিএইচপির এ্যারে ডাটা টাইপটি একই সাথে এ্যারে, লিস্ট, ডিকশনারী, স্ট্যাক, কিউ, কালেকশান প্রভৃতির কাজ করতে পারে । এ্যারে নিয়ে বিস্তারিত আলোচনা থাকছে `মাস্টারিং এ্যারে` চ্যাপ্টারে । -পিএইচপি ক্লাস থেকে `new` কিওয়ার্ড ব্যবহার করে অবজেক্ট ইন্সট্যান্স তৈরি করা যায় । অবজেক্ট সম্পর্কে আরো বিস্তারিত আমরা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং চ্যাপ্টারে দেখবো । +#### অবজেক্ট টাইপ -##### নাল টাইপ +পিএইচপি ক্লাস থেকে `new` কিওয়ার্ড ব্যবহার করে অবজেক্ট ইন্সট্যান্স তৈরি করা যায় । অবজেক্ট সম্পর্কে আরো বিস্তারিত আমরা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং চ্যাপ্টারে দেখবো । -যখন কোন ভ্যারিয়েবলের কোন ভ্যালু থাকে না তখন সেটা নাল টাইপ এর হয় । এই টাইপের একমাত্র গ্রহনযোগ্য ভ্যালু হলো - `null` - যার মানে ঐ ভ্যারিয়েবল এর কোন ভ্যালু নেই । +#### নাল টাইপ -### টাইপ কনভার্শন +যখন কোন ভ্যারিয়েবলের কোন ভ্যালু থাকে না তখন সেটা নাল টাইপ এর হয় । এই টাইপের একমাত্র গ্রহনযোগ্য ভ্যালু হলো - `null` - যার মানে ঐ ভ্যারিয়েবল এর কোন ভ্যালু নেই । -#### অটোমেটিক কনভার্শন +## টাইপ কনভার্শন -পিএইচপিতে আমরা ভ্যারিয়েবল ডিক্লেয়ার করার সময় এর টাইপ নির্ধারণ করে দিতে পারি না । ভ্যারিয়েবল এর ভ্যালুর উপর নির্ভর করে পিএইচপি নিজে থেকেই ডাটা টাইপ নির্বাচন করে নেয় । যেমন `$var` এর ভ্যালু হিসেবে যদি আমরা `hello world` পাস করি, তাহলে `$var` হবে স্ট্রিং, পরবর্তীতে যদি `$var` এর ভ্যালু হিসেবে `23` হয় তবে সেটি হবে ইন্টিজার । +### অটোমেটিক কনভার্শন -পিএইচপি কনটেক্সট অনুযায়ী ভ্যারিয়েবল এর টাইপ স্বয়ংক্রিয়ভাবে পরিবর্তন করে নেয় । যেমন, আমরা যখন যোগ করি তখন যদি উভয় পাশই ডাবল ভ্যালু হয় তখন রেজাল্ট ও হবে ডাবল । কিন্তু যে কোন একটি যদি ডাবল না হয় তাহলে রেজাল্ট হবে ইন্টিজার । +পিএইচপিতে আমরা ভ্যারিয়েবল ডিক্লেয়ার করার সময় এর টাইপ নির্ধারণ করে দিতে পারি না । ভ্যারিয়েবল এর ভ্যালুর উপর নির্ভর করে পিএইচপি নিজে থেকেই ডাটা টাইপ নির্বাচন করে নেয় । যেমন `$var` এর ভ্যালু হিসেবে যদি আমরা `hello world` পাস করি, তাহলে `$var` হবে স্ট্রিং, পরবর্তীতে যদি `$var` এর ভ্যালু হিসেবে `23` হয় তবে সেটি হবে ইন্টিজার । +পিএইচপি কনটেক্সট অনুযায়ী ভ্যারিয়েবল এর টাইপ স্বয়ংক্রিয়ভাবে পরিবর্তন করে নেয় । যেমন, আমরা যখন যোগ করি তখন যদি উভয় পাশই ডাবল ভ্যালু হয় তখন রেজাল্ট ও হবে ডাবল । কিন্তু যে কোন একটি যদি ডাবল না হয় তাহলে রেজাল্ট হবে ইন্টিজার । -এসব ক্ষেত্রে মূল ভ্যারিয়েবল এর টাইপ পরিবর্তন হয় না কিন্তু ফলাফলের পরিবর্তন হয় । পিএইচপির এই অটোমেটিক টাইপ কনভার্শন এর ব্যাপারে খেয়াল রাখা জরুরী । নাহলে অনাকাঙ্ক্ষিত ফলাফল পাওয়া অসম্ভব কিছুই না । +এসব ক্ষেত্রে মূল ভ্যারিয়েবল এর টাইপ পরিবর্তন হয় না কিন্তু ফলাফলের পরিবর্তন হয় । পিএইচপির এই অটোমেটিক টাইপ কনভার্শন এর ব্যাপারে খেয়াল রাখা জরুরী । নাহলে অনাকাঙ্ক্ষিত ফলাফল পাওয়া অসম্ভব কিছুই না । -#### ম্যানুয়াল টাইপ কনভার্শন +### ম্যানুয়াল টাইপ কনভার্শন -ম্যানুয়ালি টাইপ কনভার্ট করতে আমরা `settype()` ফাংশনটি ব্যবহার করি । এটি ঐ ভ্যারিয়েবল এর টাইপ এবং ভ্যালু দুটোই পরিবর্তন করতে পারে । +ম্যানুয়ালি টাইপ কনভার্ট করতে আমরা `settype()` ফাংশনটি ব্যবহার করি । এটি ঐ ভ্যারিয়েবল এর টাইপ এবং ভ্যালু দুটোই পরিবর্তন করতে পারে । ```php Date: Wed, 7 Apr 2021 08:07:28 +0600 Subject: [PATCH 53/55] =?UTF-8?q?=E0=A6=AA=E0=A6=BF=E0=A6=8F=E0=A6=87?= =?UTF-8?q?=E0=A6=9A=E0=A6=AA=E0=A6=BF=E0=A6=A4=E0=A7=87=20=E0=A6=8F?= =?UTF-8?q?=E0=A6=96=E0=A6=A8=20=E0=A6=87=E0=A6=89=E0=A6=A8=E0=A6=BF?= =?UTF-8?q?=E0=A6=95=E0=A7=8B=E0=A6=A1=20=E0=A6=8F=E0=A6=B0=20=E0=A6=B8?= =?UTF-8?q?=E0=A6=BE=E0=A6=AA=E0=A7=8B=E0=A6=B0=E0=A7=8D=E0=A6=9F=20?= =?UTF-8?q?=E0=A6=86=E0=A6=9B=E0=A7=87=E0=A5=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- variables-data-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables-data-types.md b/variables-data-types.md index 4564fb9..9a93051 100644 --- a/variables-data-types.md +++ b/variables-data-types.md @@ -77,7 +77,7 @@ $temperature = 30.45; #### স্ট্রিংস -স্ট্রিংস হলো অনেকগুলো ক্যারেক্টারের সমষ্টি । পিএইচপিতে এখনো ইউনিকোড এর সাপোর্ট আসে নি । স্ট্রিং ভ্যারিয়েবল তৈরি করতে হলে সাধারনত ডাবল কিংবা সিঙ্গল কোট ব্যবহার করা হয় । +স্ট্রিংস হলো অনেকগুলো ক্যারেক্টারের সমষ্টি । স্ট্রিং ভ্যারিয়েবল তৈরি করতে হলে সাধারনত ডাবল কিংবা সিঙ্গল কোট ব্যবহার করা হয় । ```php Date: Wed, 7 Apr 2021 09:44:55 +0600 Subject: [PATCH 54/55] Update variables-data-types.md --- variables-data-types.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/variables-data-types.md b/variables-data-types.md index 9a93051..fa600c6 100644 --- a/variables-data-types.md +++ b/variables-data-types.md @@ -85,17 +85,23 @@ $name = "The Doctor"; $planet = 'Gallifrey'; ``` -এছাড়াও `heredoc` ফরম্যাটেও স্ট্রিং তৈরি করা যায়: +এছাড়াও `heredoc` এবং `nowdoc` ফরম্যাটেও স্ট্রিং তৈরি করা যায়: ```php Date: Wed, 7 Apr 2021 10:14:20 +0600 Subject: [PATCH 55/55] Update variables-data-types.md --- variables-data-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables-data-types.md b/variables-data-types.md index 9a93051..3f30ef6 100644 --- a/variables-data-types.md +++ b/variables-data-types.md @@ -153,7 +153,7 @@ $list = ['a', 'z', 2, 10]; পিএইচপিতে আমরা ভ্যারিয়েবল ডিক্লেয়ার করার সময় এর টাইপ নির্ধারণ করে দিতে পারি না । ভ্যারিয়েবল এর ভ্যালুর উপর নির্ভর করে পিএইচপি নিজে থেকেই ডাটা টাইপ নির্বাচন করে নেয় । যেমন `$var` এর ভ্যালু হিসেবে যদি আমরা `hello world` পাস করি, তাহলে `$var` হবে স্ট্রিং, পরবর্তীতে যদি `$var` এর ভ্যালু হিসেবে `23` হয় তবে সেটি হবে ইন্টিজার । -পিএইচপি কনটেক্সট অনুযায়ী ভ্যারিয়েবল এর টাইপ স্বয়ংক্রিয়ভাবে পরিবর্তন করে নেয় । যেমন, আমরা যখন যোগ করি তখন যদি উভয় পাশই ডাবল ভ্যালু হয় তখন রেজাল্ট ও হবে ডাবল । কিন্তু যে কোন একটি যদি ডাবল না হয় তাহলে রেজাল্ট হবে ইন্টিজার । +পিএইচপি কনটেক্সট অনুযায়ী ভ্যারিয়েবল এর টাইপ স্বয়ংক্রিয়ভাবে পরিবর্তন করে নেয় । যেমন, আমরা যখন যোগ করি তখন যদি উভয় পাশই ইন্টিজার ভ্যালু হয় তখন রেজাল্ট ও হবে ইন্টিজার । কিন্তু যে কোন একটি যদি ডাবল হয় তাহলে রেজাল্ট হবে ডাবল । এসব ক্ষেত্রে মূল ভ্যারিয়েবল এর টাইপ পরিবর্তন হয় না কিন্তু ফলাফলের পরিবর্তন হয় । পিএইচপির এই অটোমেটিক টাইপ কনভার্শন এর ব্যাপারে খেয়াল রাখা জরুরী । নাহলে অনাকাঙ্ক্ষিত ফলাফল পাওয়া অসম্ভব কিছুই না ।
  • uS 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 Ka_8+!vH8mEM6Z#Ryk5|b{7gih5QKY3E1c| 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%0D1I|_n@0d# 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