From 8a9dc9239e9f9c999951f9c2d7ac1fb9f9363250 Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Tue, 13 Mar 2018 16:07:23 +0800 Subject: [PATCH 01/19] Update yours.sol MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第一次作业 --- Lesson-1/assignment/yours.sol | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/Lesson-1/assignment/yours.sol b/Lesson-1/assignment/yours.sol index dfdb2c4..85e18f1 100644 --- a/Lesson-1/assignment/yours.sol +++ b/Lesson-1/assignment/yours.sol @@ -1 +1,66 @@ /*作业请提交在这个目录下*/ + +pragma solidity ^0.4.14; + +contract Payroll { + uint salary = 1 ether; //工资 + address employee; //员工地址 + address owner; //老板地址 + uint lastPayday ; // 上次发薪水的时间 + + uint constant payDuration = 10 seconds;// 发薪水的时间间隔 + + //设置老板地址 + function Payroll() public { + owner = msg.sender; + } + + + function updateEmployeeAddressSalary(address e, uint s){ + require(msg.sender == owner); + assert(s>0); + + //修改前先结余 + if(e != 0x0 ){ + uint shouldPay = salary*(now-lastPayday)/payDuration; + employee.transfer(shouldPay); + } + + employee = e; + salary = s * 1 ether; + lastPayday = now; + + } + + + + + //给智能合约打钱 + function addFund() payable returns (uint) { + return this.balance; + } + + //计算智能合约的钱能支付薪水多少次 + function calculateRunway() returns (uint) { + return this.balance/salary; + } + + //智能合约的钱是否足够支付薪水 + function hasEnoughFund() returns (bool) { + return calculateRunway() > 0; + } + + //获得薪水 + function getPaid() { + require(msg.sender == employee); + + uint nextPayday = lastPayday + payDuration; + + assert(nextPayday Date: Tue, 13 Mar 2018 16:23:01 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E4=BF=AE=E6=AD=A3require=20=E5=92=8Casse?= =?UTF-8?q?rt=E7=9A=84=E7=94=A8=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit require 用于检查输入 assert用于检查内部错误 --- Lesson-1/assignment/yours.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lesson-1/assignment/yours.sol b/Lesson-1/assignment/yours.sol index 85e18f1..4903f9a 100644 --- a/Lesson-1/assignment/yours.sol +++ b/Lesson-1/assignment/yours.sol @@ -18,7 +18,7 @@ contract Payroll { function updateEmployeeAddressSalary(address e, uint s){ require(msg.sender == owner); - assert(s>0); + require(s>0); //修改前先结余 if(e != 0x0 ){ From 0e67468b38d2417531aa20406a730202976027e2 Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Wed, 14 Mar 2018 13:27:42 +0800 Subject: [PATCH 03/19] Update yours.sol fix bug --- Lesson-1/assignment/yours.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lesson-1/assignment/yours.sol b/Lesson-1/assignment/yours.sol index 4903f9a..49a3a3c 100644 --- a/Lesson-1/assignment/yours.sol +++ b/Lesson-1/assignment/yours.sol @@ -21,7 +21,7 @@ contract Payroll { require(s>0); //修改前先结余 - if(e != 0x0 ){ + if(employee != 0x0 ){ uint shouldPay = salary*(now-lastPayday)/payDuration; employee.transfer(shouldPay); } From 23a28fb7c0ad780c4a5ae02e47b64c0f41fcdc32 Mon Sep 17 00:00:00 2001 From: aceRunqi Date: Wed, 14 Mar 2018 07:28:05 -0500 Subject: [PATCH 04/19] =?UTF-8?q?Update=20and=20rename=20yours.sol=20to=20?= =?UTF-8?q?56=5F=E8=83=A1=E9=97=B0=E7=A5=BA=5F=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A.sol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\346\254\241\344\275\234\344\270\232.sol" | 54 +++++++++++++++++++ Lesson-1/assignment/yours.sol | 1 - 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 "Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" delete mode 100644 Lesson-1/assignment/yours.sol diff --git "a/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" "b/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" new file mode 100644 index 0000000..f4ef42e --- /dev/null +++ "b/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" @@ -0,0 +1,54 @@ +/*作业请提交在这个目录下*/ +pragma solidity ^0.4.14; + +contract Payroll { + + uint constant payDuration = 10 seconds; + uint lastPayday = now; + + uint salary; + + address owner = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c; + address employee = 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c; + + function Payroll() { + owner = msg.sender; + } + + // 修改员工地址: + function chgEmployeeAddr(address e) returns (address) { + require(msg.sender == owner); + employee = e; + return employee; + } + + // 修改员工薪酬: + function chgEmployeeSalary(uint s) returns (uint) { + require(msg.sender == owner); + salary = s; + return salary; + } + + function addFund() payable returns (uint) { + return this.balance; + } + + function calculateRunway() returns (uint) { + return this.balance / salary; + } + + function hasEnoughFund() returns (bool) { + return calculateRunway() > 0; + } + + function getPaid() { + require(msg.sender == owner); + + uint nextPayday = lastPayday + payDuration; + assert(nextPayday < now); + + lastPayday = nextPayday; + employee.transfer(salary); + } + +} diff --git a/Lesson-1/assignment/yours.sol b/Lesson-1/assignment/yours.sol deleted file mode 100644 index dfdb2c4..0000000 --- a/Lesson-1/assignment/yours.sol +++ /dev/null @@ -1 +0,0 @@ -/*作业请提交在这个目录下*/ From 06831bf8d23a0199b9e963858d826d13d9eb73ab Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Fri, 16 Mar 2018 11:00:45 +0800 Subject: [PATCH 05/19] Update yours.sol MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交初始化文件 --- Lesson-2/assignment/yours.sol | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/Lesson-2/assignment/yours.sol b/Lesson-2/assignment/yours.sol index dfdb2c4..91d97fe 100644 --- a/Lesson-2/assignment/yours.sol +++ b/Lesson-2/assignment/yours.sol @@ -1 +1,90 @@ /*作业请提交在这个目录下*/ + +pragma solidity ^0.4.14; + +contract Payroll { + struct Employee { + address id; + uint salary; + uint lastPayday; + } + + uint constant payDuration = 10 seconds; + + address owner; + Employee[] employees; + + function Payroll() { + owner = msg.sender; + } + + + function _partialPaid(Employee employee) private { + uint payment = employee.salary * (now-employee.lastPayday)/payDuration; + employee.id.transfer(payment); + } + + function _findEmployee(address employeeId) private returns (Employee, uint) { + for (uint i = 0; i < employees.length; i++) { + if( employeeId == employees[i].id ){ + return (employees[i],i); + } + } + } + + function addEmployee(address employeeId, uint salary) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id == 0x0); + employees.push(Employee(employeeId, salary* 1 ether, now)); + } + + function removeEmployee(address employeeId) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id != 0x0); + _partialPaid(employee); + delete employees[index]; + employees[index] = employees[employees.length-1]; + employees.length -=1; + + } + + function updateEmployee(address employeeId, uint salary) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id != 0x0); + _partialPaid(employee); + employee.lastPayday = now; + employee.salary = salary; + } + + function addFund() payable returns (uint) { + return this.balance; + } + + function calculateRunway() returns (uint) { + uint totalSalary = 0; + for (uint i = 0; i < employees.length; i++) { + totalSalary += employees[i].salary; + } + return this.balance / totalSalary; + } + + function hasEnoughFund() returns (bool) { + return calculateRunway()>0; + } + + function getPaid() { + + var (employee,index) = _findEmployee(msg.sender); + require(employee.id == msg.sender); + + uint nextPayday = employee.lastPayday+payDuration; + require(nextPayday Date: Fri, 16 Mar 2018 11:13:22 +0800 Subject: [PATCH 06/19] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交实验数据 --- Lesson-2/assignment/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Lesson-2/assignment/README.md b/Lesson-2/assignment/README.md index a1fa2d0..ec3a4d8 100644 --- a/Lesson-2/assignment/README.md +++ b/Lesson-2/assignment/README.md @@ -8,3 +8,21 @@ - 如何优化calculateRunway这个函数来减少gas的消耗? 提交:智能合约代码,gas变化的记录,calculateRunway函数的优化 +### 回答: +加入员工时,calculateRunway这个函数gas变化如下: + + transaction cost, execution cost + 22966 1694 + 23747 2475 + 23528 3256 + 25309 4037 + 26090 4818 + 26871 5599 + 27652 6380 + 28433 7161 + 29214 7942 + 29995 8723 + + 可以看到,在calculateRunway函数中,因为employees数组的长度不断增大,遍历这个数组所需要的gas也不断增大,所以需要把计算salary放在别的地方。 + + From 8efa7ed20eeb118881a27a95425c38488a39f48d Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Fri, 16 Mar 2018 11:49:35 +0800 Subject: [PATCH 07/19] Update README.md --- Lesson-2/assignment/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Lesson-2/assignment/README.md b/Lesson-2/assignment/README.md index ec3a4d8..dd321f2 100644 --- a/Lesson-2/assignment/README.md +++ b/Lesson-2/assignment/README.md @@ -12,17 +12,28 @@ 加入员工时,calculateRunway这个函数gas变化如下: transaction cost, execution cost + 22966 1694 + 23747 2475 + 23528 3256 + 25309 4037 + 26090 4818 + 26871 5599 + 27652 6380 + 28433 7161 + 29214 7942 + 29995 8723 + 可以看到,在calculateRunway函数中,因为employees数组的长度不断增大,遍历这个数组所需要的gas也不断增大,所以需要把计算salary放在别的地方。 From 119f3f136f922d929fb7565524ae4603c9dc8b4c Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Fri, 16 Mar 2018 16:06:14 +0800 Subject: [PATCH 08/19] Create answer.sol --- Lesson-2/assignment/answer.sol | 119 +++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Lesson-2/assignment/answer.sol diff --git a/Lesson-2/assignment/answer.sol b/Lesson-2/assignment/answer.sol new file mode 100644 index 0000000..935b358 --- /dev/null +++ b/Lesson-2/assignment/answer.sol @@ -0,0 +1,119 @@ +/* +加入员工时,calculateRunway这个函数gas变化如下: + +transaction cost, execution cost + +22966 1694 + +23747 2475 + +23528 3256 + +25309 4037 + +26090 4818 + +26871 5599 + +27652 6380 + +28433 7161 + +29214 7942 + +29995 8723 + +可以看到,在calculateRunway函数中,因为employees数组的长度不断增大,遍历这个数组所需要的gas也不断增大,所以需要把计算salary放在别的地方。 + +*/ + +pragma solidity ^0.4.14; + +contract Payroll { + struct Employee { + address id; + uint salary; + uint lastPayday; + } + + uint constant payDuration = 10 seconds; + + address owner; + Employee[] employees; + uint totalSalary =0; + + function Payroll() { + owner = msg.sender; + } + + + function _partialPaid(Employee employee) private { + uint payment = employee.salary * (now-employee.lastPayday)/payDuration; + employee.id.transfer(payment); + } + + function _findEmployee(address employeeId) private returns (Employee, uint) { + for (uint i = 0; i < employees.length; i++) { + if( employeeId == employees[i].id ){ + return (employees[i],i); + } + } + } + + function addEmployee(address employeeId, uint salary) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id == 0x0); + totalSalary += salary* 1 ether; + employees.push(Employee(employeeId, salary* 1 ether, now)); + + } + + function removeEmployee(address employeeId) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id != 0x0); + totalSalary += employee.salary* 1 ether; + _partialPaid(employee); + delete employees[index]; + employees[index] = employees[employees.length-1]; + employees.length -=1; + + } + + function updateEmployee(address employeeId, uint salary) { + require(owner == msg.sender); + var (employee,index) = _findEmployee(employeeId); + assert(employee.id != 0x0); + totalSalary -= employee.salary* 1 ether; + _partialPaid(employee); + totalSalary += salary * 1 ether; + employee.lastPayday = now; + employee.salary = salary; + } + + function addFund() payable returns (uint) { + return this.balance; + } + + function calculateRunway() returns (uint) { + return this.balance / totalSalary; + } + + function hasEnoughFund() returns (bool) { + return calculateRunway()>0; + } + + function getPaid() { + + var (employee,index) = _findEmployee(msg.sender); + require(employee.id == msg.sender); + + uint nextPayday = employee.lastPayday+payDuration; + require(nextPayday Date: Fri, 16 Mar 2018 16:07:12 +0800 Subject: [PATCH 09/19] Update README.md --- Lesson-2/assignment/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lesson-2/assignment/README.md b/Lesson-2/assignment/README.md index dd321f2..53fd8bc 100644 --- a/Lesson-2/assignment/README.md +++ b/Lesson-2/assignment/README.md @@ -36,4 +36,4 @@ 可以看到,在calculateRunway函数中,因为employees数组的长度不断增大,遍历这个数组所需要的gas也不断增大,所以需要把计算salary放在别的地方。 - + 优化后的程序写在answer.sol From 50a188d631dc47f00369f87a75247e944c4d8527 Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Fri, 16 Mar 2018 16:12:31 +0800 Subject: [PATCH 10/19] Update yours.sol --- Lesson-2/assignment/yours.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lesson-2/assignment/yours.sol b/Lesson-2/assignment/yours.sol index 91d97fe..6d6ac43 100644 --- a/Lesson-2/assignment/yours.sol +++ b/Lesson-2/assignment/yours.sol @@ -1,5 +1,5 @@ /*作业请提交在这个目录下*/ - + pragma solidity ^0.4.14; contract Payroll { From c38345ba2cee5a76e267d23187a87ac1bf0b56f1 Mon Sep 17 00:00:00 2001 From: aceRunqi Date: Sat, 17 Mar 2018 08:56:17 -0500 Subject: [PATCH 11/19] =?UTF-8?q?Update=20and=20rename=20yours.sol=20to=20?= =?UTF-8?q?56=5F=E8=83=A1=E9=97=B0=E7=A5=BA=5F=E7=AC=AC=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A.sol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\346\254\241\344\275\234\344\270\232.sol" | 101 ++++++++++++++++++ Lesson-2/assignment/yours.sol | 1 - 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 "Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" delete mode 100644 Lesson-2/assignment/yours.sol diff --git "a/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" "b/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" new file mode 100644 index 0000000..2041b4e --- /dev/null +++ "b/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" @@ -0,0 +1,101 @@ +/*作业请提交在这个目录下*/ + +Question 1. 每增加一个员工address, execution cost由最初的1628每次增加780, 同时transaction cost也由最初的22960逐次增加780. +原因是calculateRunway函数利用for循环,每次遍历每一个employee,因此每增加一个employee,运行的cost也会线性增加。 + +Question 2. 解决的方法之一是将总的total_Salary作为一个全局变量,取代之前calculateRunway函数里的局部变量totalSalary. +这样,每增加一个员工,只会增加一次计算量,从而减少cost。 + +优化后的代码为: +------------------------------- +pragma solidity ^0.4.14; + +contract Payroll { + struct Employee { + address id; + uint salary; + uint lastPayday; + } + + uint constant payDuration = 10 seconds; + + uint total_Salary = 0; + + address owner; + Employee[] employees; + + function Payroll() { + owner = msg.sender; + } + + function _partialPaid(Employee employee) private { + if(employee.id != 0x0){ + uint payment = employee.salary * (now - employee.lastPayday) / payDuration; + employee.id.transfer(payment); + } + } + + function _findEmployee(address employeeId) private returns (Employee, uint) { + uint total_employee = employees.length; + for (uint i=0; i < total_employee; i++){ + if (employees[i].id == employeeId){ + return (employees[i], i); + } + } + } + + function addEmployee(address employeeId, uint salary) { + require(msg.sender == owner); + var (employee,ind) = _findEmployee(employeeId); + assert(employee.id == 0x0); + employees.push(Employee(employeeId, salary * 1 ether, now)); + total_Salary = total_Salary + salary * 1 ether; + } + + function removeEmployee(address employeeId) { + require(msg.sender == owner); + var (employee, ind) = _findEmployee(employeeId); + assert(employee.id != 0x0); + _partialPaid(employee); + delete employees[ind]; + uint total_employee = employees.length; + employees[ind] = employees[total_employee - 1]; + employees.length = employees.length - 1; + } + + function updateEmployee(address employeeId, uint salary) { + require(msg.sender == owner); + var (employee, ind) = _findEmployee(employeeId); + assert(employee.id != 0x0); + employees[ind].lastPayday = now; + _partialPaid(employee); + employees[ind].salary = salary * 1 ether; + } + + function addFund() payable returns (uint) { + return this.balance; + } + + function calculateRunway() returns (uint) { + uint total_employee = employees.length; + for (uint i = 0; i < total_employee; i++) { + total_Salary = total_Salary + employees[i].salary; + } + return this.balance / total_Salary; + } + + function hasEnoughFund() returns (bool) { + return this.calculateRunway() > 0; + } + + function getPaid() { + var(employee,ind) = _findEmployee(msg.sender); + assert(employee.id != 0x0); + assert(now - employee.lastPayday > payDuration); + employees[ind].lastPayday = employee.lastPayday + payDuration; + employee.id.transfer(employee.salary); + } +} +---------------------------- + +经过修改,每次运行的transaction cost都变为22196,execution cost都变为852,不在对employees人数敏感。 diff --git a/Lesson-2/assignment/yours.sol b/Lesson-2/assignment/yours.sol deleted file mode 100644 index dfdb2c4..0000000 --- a/Lesson-2/assignment/yours.sol +++ /dev/null @@ -1 +0,0 @@ -/*作业请提交在这个目录下*/ From 2e9dc31c208270adcea66ee191e3644cb5ce942b Mon Sep 17 00:00:00 2001 From: Zhicheng Cai Date: Sun, 18 Mar 2018 20:24:05 -0500 Subject: [PATCH 12/19] =?UTF-8?q?Revert=20"56=5F=E8=83=A1=E9=97=B0?= =?UTF-8?q?=E7=A5=BA=5F=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C=E4=B8=9A"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\346\254\241\344\275\234\344\270\232.sol" | 54 ---------- Lesson-1/assignment/yours.sol | 1 + ...4\346\254\241\344\275\234\344\270\232.sol" | 101 ------------------ Lesson-2/assignment/yours.sol | 1 + 4 files changed, 2 insertions(+), 155 deletions(-) delete mode 100644 "Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" create mode 100644 Lesson-1/assignment/yours.sol delete mode 100644 "Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" create mode 100644 Lesson-2/assignment/yours.sol diff --git "a/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" "b/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" deleted file mode 100644 index f4ef42e..0000000 --- "a/Lesson-1/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.sol" +++ /dev/null @@ -1,54 +0,0 @@ -/*作业请提交在这个目录下*/ -pragma solidity ^0.4.14; - -contract Payroll { - - uint constant payDuration = 10 seconds; - uint lastPayday = now; - - uint salary; - - address owner = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c; - address employee = 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c; - - function Payroll() { - owner = msg.sender; - } - - // 修改员工地址: - function chgEmployeeAddr(address e) returns (address) { - require(msg.sender == owner); - employee = e; - return employee; - } - - // 修改员工薪酬: - function chgEmployeeSalary(uint s) returns (uint) { - require(msg.sender == owner); - salary = s; - return salary; - } - - function addFund() payable returns (uint) { - return this.balance; - } - - function calculateRunway() returns (uint) { - return this.balance / salary; - } - - function hasEnoughFund() returns (bool) { - return calculateRunway() > 0; - } - - function getPaid() { - require(msg.sender == owner); - - uint nextPayday = lastPayday + payDuration; - assert(nextPayday < now); - - lastPayday = nextPayday; - employee.transfer(salary); - } - -} diff --git a/Lesson-1/assignment/yours.sol b/Lesson-1/assignment/yours.sol new file mode 100644 index 0000000..dfdb2c4 --- /dev/null +++ b/Lesson-1/assignment/yours.sol @@ -0,0 +1 @@ +/*作业请提交在这个目录下*/ diff --git "a/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" "b/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" deleted file mode 100644 index 2041b4e..0000000 --- "a/Lesson-2/assignment/56_\350\203\241\351\227\260\347\245\272_\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sol" +++ /dev/null @@ -1,101 +0,0 @@ -/*作业请提交在这个目录下*/ - -Question 1. 每增加一个员工address, execution cost由最初的1628每次增加780, 同时transaction cost也由最初的22960逐次增加780. -原因是calculateRunway函数利用for循环,每次遍历每一个employee,因此每增加一个employee,运行的cost也会线性增加。 - -Question 2. 解决的方法之一是将总的total_Salary作为一个全局变量,取代之前calculateRunway函数里的局部变量totalSalary. -这样,每增加一个员工,只会增加一次计算量,从而减少cost。 - -优化后的代码为: -------------------------------- -pragma solidity ^0.4.14; - -contract Payroll { - struct Employee { - address id; - uint salary; - uint lastPayday; - } - - uint constant payDuration = 10 seconds; - - uint total_Salary = 0; - - address owner; - Employee[] employees; - - function Payroll() { - owner = msg.sender; - } - - function _partialPaid(Employee employee) private { - if(employee.id != 0x0){ - uint payment = employee.salary * (now - employee.lastPayday) / payDuration; - employee.id.transfer(payment); - } - } - - function _findEmployee(address employeeId) private returns (Employee, uint) { - uint total_employee = employees.length; - for (uint i=0; i < total_employee; i++){ - if (employees[i].id == employeeId){ - return (employees[i], i); - } - } - } - - function addEmployee(address employeeId, uint salary) { - require(msg.sender == owner); - var (employee,ind) = _findEmployee(employeeId); - assert(employee.id == 0x0); - employees.push(Employee(employeeId, salary * 1 ether, now)); - total_Salary = total_Salary + salary * 1 ether; - } - - function removeEmployee(address employeeId) { - require(msg.sender == owner); - var (employee, ind) = _findEmployee(employeeId); - assert(employee.id != 0x0); - _partialPaid(employee); - delete employees[ind]; - uint total_employee = employees.length; - employees[ind] = employees[total_employee - 1]; - employees.length = employees.length - 1; - } - - function updateEmployee(address employeeId, uint salary) { - require(msg.sender == owner); - var (employee, ind) = _findEmployee(employeeId); - assert(employee.id != 0x0); - employees[ind].lastPayday = now; - _partialPaid(employee); - employees[ind].salary = salary * 1 ether; - } - - function addFund() payable returns (uint) { - return this.balance; - } - - function calculateRunway() returns (uint) { - uint total_employee = employees.length; - for (uint i = 0; i < total_employee; i++) { - total_Salary = total_Salary + employees[i].salary; - } - return this.balance / total_Salary; - } - - function hasEnoughFund() returns (bool) { - return this.calculateRunway() > 0; - } - - function getPaid() { - var(employee,ind) = _findEmployee(msg.sender); - assert(employee.id != 0x0); - assert(now - employee.lastPayday > payDuration); - employees[ind].lastPayday = employee.lastPayday + payDuration; - employee.id.transfer(employee.salary); - } -} ----------------------------- - -经过修改,每次运行的transaction cost都变为22196,execution cost都变为852,不在对employees人数敏感。 diff --git a/Lesson-2/assignment/yours.sol b/Lesson-2/assignment/yours.sol new file mode 100644 index 0000000..dfdb2c4 --- /dev/null +++ b/Lesson-2/assignment/yours.sol @@ -0,0 +1 @@ +/*作业请提交在这个目录下*/ From 8f7d92c4c9ea46ab3c2e44de668ed1f221700914 Mon Sep 17 00:00:00 2001 From: zengjiansheng Date: Tue, 20 Mar 2018 15:14:24 +0800 Subject: [PATCH 13/19] Update answer.sol --- Lesson-2/assignment/answer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lesson-2/assignment/answer.sol b/Lesson-2/assignment/answer.sol index 935b358..2e626cb 100644 --- a/Lesson-2/assignment/answer.sol +++ b/Lesson-2/assignment/answer.sol @@ -73,7 +73,7 @@ contract Payroll { require(owner == msg.sender); var (employee,index) = _findEmployee(employeeId); assert(employee.id != 0x0); - totalSalary += employee.salary* 1 ether; + totalSalary -= employee.salary* 1 ether; _partialPaid(employee); delete employees[index]; employees[index] = employees[employees.length-1]; From a23520a5550dfaac8dde51c4de906d0fc163f9df Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 Mar 2018 18:14:20 +0800 Subject: [PATCH 14/19] finish class --- Lesson-3/assignment/Ownable.sol | 23 +++++++ Lesson-3/assignment/SafeMath.sol | 48 +++++++++++++ Lesson-3/assignment/addEmployee.png | Bin 0 -> 26432 bytes Lesson-3/assignment/addFund.png | Bin 0 -> 21678 bytes Lesson-3/assignment/calculateRunway.png | Bin 0 -> 19378 bytes Lesson-3/assignment/getPaid.png | Bin 0 -> 18445 bytes Lesson-3/assignment/hasEnoughFund.png | Bin 0 -> 18320 bytes Lesson-3/assignment/removeEmployee.png | Bin 0 -> 21325 bytes Lesson-3/assignment/updateEmployee.png | Bin 0 -> 25581 bytes Lesson-3/assignment/yours.sol | 87 ++++++++++++++++++++++++ 10 files changed, 158 insertions(+) create mode 100644 Lesson-3/assignment/Ownable.sol create mode 100644 Lesson-3/assignment/SafeMath.sol create mode 100644 Lesson-3/assignment/addEmployee.png create mode 100644 Lesson-3/assignment/addFund.png create mode 100644 Lesson-3/assignment/calculateRunway.png create mode 100644 Lesson-3/assignment/getPaid.png create mode 100644 Lesson-3/assignment/hasEnoughFund.png create mode 100644 Lesson-3/assignment/removeEmployee.png create mode 100644 Lesson-3/assignment/updateEmployee.png diff --git a/Lesson-3/assignment/Ownable.sol b/Lesson-3/assignment/Ownable.sol new file mode 100644 index 0000000..58fb3fc --- /dev/null +++ b/Lesson-3/assignment/Ownable.sol @@ -0,0 +1,23 @@ +pragma solidity ^0.4.14; + +contract Ownable { + address public owner; + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + function Ownable() public { + owner = msg.sender; + } + + modifier onlyOwner() { + require(msg.sender == owner); + _; + } + + function transferOwnership(address newOwner) public onlyOwner { + require(newOwner != address(0)); + OwnershipTransferred(owner, newOwner); + owner = newOwner; + } + +} diff --git a/Lesson-3/assignment/SafeMath.sol b/Lesson-3/assignment/SafeMath.sol new file mode 100644 index 0000000..c108f65 --- /dev/null +++ b/Lesson-3/assignment/SafeMath.sol @@ -0,0 +1,48 @@ +pragma solidity ^0.4.14; + + +/** + * @title SafeMath + * @dev Math operations with safety checks that throw on error + */ +library SafeMath { + + /** + * @dev Multiplies two numbers, throws on overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + if (a == 0) { + return 0; + } + uint256 c = a * b; + assert(c / a == b); + return c; + } + + /** + * @dev Integer division of two numbers, truncating the quotient. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // assert(b > 0); // Solidity automatically throws when dividing by 0 + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return c; + } + + /** + * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + /** + * @dev Adds two numbers, throws on overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} diff --git a/Lesson-3/assignment/addEmployee.png b/Lesson-3/assignment/addEmployee.png new file mode 100644 index 0000000000000000000000000000000000000000..309003d03f82d27dd0fe15a370408cb6b2293f6a GIT binary patch literal 26432 zcmb5WbwHHg);27|h?G*&NQZQnbVwsDAl;2p(y53@cjv%}G)fI2A>G~G-JS0}_&eu$ z&wIY-k8l1Fhdb6@d+%#q>so6Qto%m$DJl`_qeqXP%F0NpK6(VEfAk39EiwrBrh7v9 z)1yb^k7Omq)ZGwv>%~Gz#-q+BpVO#P)|$D&8ZGt$n?Y->uYCMcI1$68AY-8mA@0K@ zQlf~Q=I!HPF_+ zJXw3 z9}gg>5Z#S>l!fvik1ZGXn}XmLf&>3~%m4p}9=HvK_ZAfuO-O$Ek7tl8r!}svnRBre z2$?2mNh_HmGZ7U z+y^`e))7-1A3p!bo6N~Yci9n{6#nx8Q-BYwA%C#`$AiGL6a61mw4;}@1&WF<%>2>J zR!aUU$5nR8)<$+uhQX}N((j($VlB-hdhBfXTd_4s1m|_0A|z_g=E)}RpD9S=--p%E z4an`Ptd>~ertCQkP=WJt2DrU$7YkNASol}G=|fFDUCk22(@i})N5XZd*(oN~Q>ks^ z%o9=zR@A1={n2gKL#ZC-^u%A3u|k>*N$MHq28#cWU*(pVtLZCBMBTCrcemFDUWcuY z;b|%oaG!{Jf}uB+3nSsn<8C~59AR_IOkJ_XvbHyQXj|i^@{KRPuYE!Q*pLQ%dUtMPtuteA1(xnpD;w| zZtQglh95=9Y11l>%Y1Dc>@lrZ$~Hn-VS&1`+O)YkIdDcS1iWzM#Nd{t`s8`OH(T#{ zzWF`lO~A`o&sLJif1Iy@%=KYj!Z&xv>{d43a34BI#=v>dpcNcOT)U9fGniZ_k+}|D zdQ7saJ2aTx_J|M|>2X zVoMS;!U=gfl#d;cxrKgu##uUVbh9>i9W3}y%dkn0yODtZt}js+(DB^)z&y`&%JcgU zn%P>#Y}WTRnzAcL$RvTH=ir?hyOnIk0IiiHELhle4Xvwl%FRGCxA1ULx@@OR!4vlG z9M_Q41v%Tgkd~g)B2?ishWd3Lm6!;|@$y%A0S{BySdG%7}03ua3$k<^Y7S2G|hYHEW8O@hQI+?!-E(F;$*xi)7hJ-xaq%IIYa zQzSawOJ;v8?d&GX#2dJX(^B95ljuyvv<7*#r0u2HxLnorn}H05+mXbf6xXKnf^1$LI75tRxiSV)leO*?h<>G z8Dt$%jbf@!Wx@9F{s9UAV4fKb;{yBB|2OtPiF@q#v&;321mX|R{{jhH9DpF|k_2$1 zBH%}uJxuh_kzo9JLd1{!<;eqpG2>*OSrW1>!gs_;x@f0$L83sFFy+&~R^*8pcI|sw zI(dX;R*M=If-fXPPkT66{snWd$k}qw60fdFU*yQ(!%^Xe-$6(=l#5(B#ji3^$>U3$ zhzT#s@5;)LCmVy3vN(T@ip1$?C^zfXc!Tm3Znzl*n@foMGh@}FXq{~TzgS5Pz#%p{ z7u+Z&G=B!29w$88SN%zu55M;R28I^G@(CVuKG;D(;{Q#j=h(q&_!37+u&k<9=R$YR z#KxxGiHz%?X^O+O#wZ5CukMx+tzt#>ZLLEM`DF0wzTtj4Q2=ITIG zbB_PEjg{3d^_4oM*k6Dr#Ww66mB79s1MF`c!c;y~zJ>;g)i_z~cjq>>iavlzCOxQk z=A6%UFO|mm_UaVMLG=uLrIfi8$NK9AvM7gPyv!}HSz}V%dAY&^qdiZ~>GX!scCiO+ z(uGmJOHOU?0f9l;p#4m}zrSgcwsQ^gj$f#t$b!4y%2mm(Snl(X zwsXT0q{FeW`OD}-@#2E7bD-aOJ4LSqZAVrdal>5jnT7mKbB5N5c;hq4=SE&ctfzbS z$vrFKrEZ~YF+1-Hd=in@*Kl?`-e;3L8lgH&;kk3yqRga!XsXN|KFZ3H47$Hr7p{jA*{W*%x}7L>Oj4 zULmmg!T30*v2-0Mn0!{_z!IPA4a@F{ih_{JXeFi(a_$N=I_kjdXq zn=9V-I)xc}3_m`1?B!s$D1^`$;#WRp^#L#W6&M`Da$B9fSz5xW+r4g-_i(w*&BGm# z1Bp1p_tq#C=Vqx*_FI>$OVE5es5A#x_&r7OjY*V*QSBF4uyr@Z=QN9>OhQQzlXnJ< z@!d&yVW12l}R&p^Cb;cPXnGdGmWkfi0Yjwf+kCg_R_ULcdoh>LfF zIbi2}n)w0k}s zDDp_P-hk<^b4p2PPtDfOF*^pi}tLcsu#-BL&TQbwcA zl{n#ZMYgmB;o0@{h;Z*2x7{@bE5<-_y)&_ic@GviKIE=6FVG;x=oZdzSQ7c3gR>Ps z@fSd3qg-B|?fqPhcUyJHPP(Smm;J@|b$UfC-|{&puT$=me(tqZB!?eyp{L0?lhf0~ zDh76OvsV|U*S?n-cM0Hls}k0`bLqPJpFf>;m(DijO9YA4zdnFosX7p6 zhU+TYRToW4<=>Fs-!SoGei0!Dx$e)^`}*G7K(|;6gczpoMecXQ?)Ure$MNri=sw-{ zdA|Sc`elj=Qw&a9OKsuNit$<~{wd=!oOKUafZkbi+bptgf4CdIzsR`jzrSkG^Sp^_ zptrFwaCaFKo%kE(@=yeiT#ZMl%s#-)iH{ZCWnLR~zjeL8^!2$FDG|K8SS~0i7_BdT zV8{MuRE_$_W&+Eh_#jLz7SI(<6His52uRJ_%3+*}f#@F`7xkN>Y7~Xv!S)LDV&>#) z&)y6SBAqDtl;eS-iZ-Gsd-9<^a0?Tvfm=P~Sre5@cAoIiCl8^Ah?32$A&BQY?+BI= zIU5qli?Zzl9wFl2dmn+&DE|p(XmTm`6s3;L31@iC%zxy&}j@yBw8BS38EKyik(3QBiEk5f^I9)c4lf;9#UBK$`x>VZSN<5cpL zJ||kshaAbUE1B`pLx^cyKz42bZZu8l%kbFxaf3;OTrOw$-nHsLw!eLBEWB!py@}$H zKPnIv8AO}G@G$fNd4sNJ`VRN_8(X=_%0!uobOdRUWdtEOnf$}@R>=J2A#cNN{V8YA zpuP7+0potE&vHTn&zlzvQ2;K!#smTyW!^9ym|Qum5$3d>PskEAs!ls)Ge|~~;d|%q z8%=@pV80e0!k#D7&GX1cWt0~Bh12bEVv;Y?XQeQ6=w8n(q;s5`bP^<$63sGGknJs- z7cH@sEBHI2`O^xK$Vep{_p~5F_gfEQC~q%^$}3b98t+NGV|eHasJq^)b#H+FFg_lV zXH7bse&4X`kfV?c3nQL}9*f)`i|~d;G(XuU;*|Lk&&$|$2&P`~23T82CpFJpC`vWQ ztG42TlRYux6>1qHl3(<$=a6)x;zK@rlUW)?PN&rzK67&{-FU-rm}W6M>t;P`2wn=i zW7*9etIvs#hw1+vA_tiLk*p(D$iCVif9FMJ3iZ3gylUMSr<$bp&B5gy?-_~8CDPM1 zX)ZjpsEE+hj4dEPRdMUlT@ISU3zc%op9;$+!Bc3aH$&WczLkKRZt~d^QCeK#bw9_F1ft$YD}vfn7un+45O}6%g@~ zw{gr-{Z7SvXKlxWc*nQnTU)>8y|iq86SLp%hFDc7%wk$9*=W z4LBHgwp9ws<2+Z1j%5SrdM%exzNcx}<0EA(dAqLm1cnfc)L*Ps$cs$y3AHBv0a9TB z@LG}34q4_!#Me9iQYhN4=^J(AlK|1Wi?~RGGg@jg%zMk~q_CzGmJ#BVT6|P@gSn8^ zBrYL$eA9)f*@?#@rs5~jVabC+?BPLznP@a^uT0GcrHHm?<6vQ{Ch;Ff=5HfyvJInh z9VnvetsDfO{Nl}haspY4+nyDESEK!0t}@Ycl;Ya0{g3G=F>E1f8<+I0OJa#B<7+{4 zl8{c7W%FQ6JK9diLkVm_aYvS%er|h`Pt=a(?EJwvo~-_kBca!I!>>@ScH}uSK?Ab2B?PcEp9_%&R!kCi=5Y1S6UHP=fTwZrvE_ zVM9&|P9@W6V}0zVt_Ur+SmNnHqQD@5wu`slQu!R3dDGe<(JyLOl1gIugus`YPt%pK-vk% zu%Ueh8Re0`XyY2;VZYIh8WFk<*72Oh7H!gY&x($vF5gG`-BlJ0T$~JCp7rWFDin7E zXs}5?H@mpn&!-GhA^eiJ>XVg;2`Q7kPYqO8#e+3>n%bhtR;%#msr7LZhJ<)Xtnubf~>aD`d zl7bjUWUM^Si-cGr7T6Wpyjx3UF}r)0HuR*0-e8YmxPzrvSOPDp&&EQ|UmEa6sx}y> z-y~)x;QdaNGyk~#2V76bGej-NTPl%HLw&JDZ-Zy;nCnUZ}szWB~J0 z5$IXA+1+6*Y2yKy%)j#b(IYGwXfWbq<@e7|>#n}!twR!PTI=2m#zoBL@qgUW!f>L> zJ;dUxxVx3#UM9w)3TX60DIND}q>C5<*n%0YvRR0`$mPaZQ1rfqz3E?twg?-@_iTg{)^egl)*e9?@sHv`fa8B7uQR3_wt2&W2WTEQ;4ihUf+D=G zdoxDE?%|Ig!~!fpt{^zPh5By&@PaubGLW44h)2p^$V#4WIXgVO3Y$&lK0`yW!TvVq=8YUpl>-1`3 zTsS(!&j_CL5b*ia_rr)THe|>^yV&qt-{r&Yl?zVINVxz{_IYSyVrAmGWyR(VoQ{Q) zbYf)v)hpPs0HcQ|O_|cLm6NdKpLOb4zk0!tcIxMM_WFc8q*7Jc%;oxQH-=8BaumVg zZ$d%_)^Zw+I2Of2q+SSYf8<2B>W?*$pYsHR6rE|4aCr1Bp3kP2lzAfD-vp%oNPC_a zlsI8?<|fd?ByD>(!8fMp{wUz+0`C9~*R7l7c+*5;=L8a=Q5v=`<~4qFyH^G}I^C!L z5K%68jN*zo^e~Ag*U}FPMIu4;_rsE5xo$OHJg(NdV?HfzHi-pP7~RUvRD)Ojoex3` z8xb7Llig_M^K04&VQuDC#nOP|lW8J-$8?upz`pcDI5&S~=9~O@OIfyA*RM$hgHKXo zMq^z?kZ=FikLosS?BQvqb_^Ih2>eApGicl?J=%tv&ssPlJo~=68koJCN#}Gafu2 zqM0;K&v?$0wyrSnF!4|P-EA-woul`)+nWMaL=C@!m(~vrd~UaAXJ@^h!zuduJFZ)* zQbE8+Xa82J*q*^1l)W(jEBq5O#IG?EMes&&?qU*#?|akx-uL}&&*F#wmz{ga8UoQ{ zoz7ozoge2xzmgL5o5v$*k~IbJtZ@RFX&UeN=4KLltQ+xnR7i@M{@0|RNJTm&412(H z_pK3gO6^rOzkXFYelydgPY|w1a0+qvL7MotCpW;=`|Ky2GIyAH;tMx6BKN0v+xz!t z%LOF{b9a^{-*9-)C`-$Mq0CJ=r!x-1Jpd#eKx&14J`=?cHYd+yUb`+C9kpn<9t%t( zQ}yX-EY=w|n=?+2sZ?Btk-|3{0y26mu%SeiNUS6>S^R4mEm(ACE~>`o>(2IFBo@Z; z5P(sdR&45OISTzvl?W(-%}bHa?f6Ah4`g8AYjo~9J>77*@mG2%Bt~k8M=os@eA4~z z?CK8si50{{>`G4`S9h3{ufE` z?IMHxVV(*>9Ii$-8YAbOX(_ZzY@D9$PD{wd{H^O4q5`JS`|+Xs8)0kdUAM8}7>pHO zSGMZ98hTW8i(l^S9=cVU-MX>a1M5-}*s0vvF`dffA7mDi&_rN9i$=$7{VYCpwY8o* zMxOWgwM^CD`0yBQjAt`aNafmm3?(aq^rfHahpd{^+dQb2hZ81VW@ACW#Gb*|sWpJn zc_`0#k{MY)DA`(`M*# zG)@ZzJlp$3-q^b>mP#89hd_Bl|AHd*Hhl{=(`p4al^h#6&N)_kBJ68 zz`<>R42TrB{P?CIK&gG<|JshdDqo_0dNx!W###zeX|{cpaq4A+0qoyQ5jdh{IEm2$ zZg<2Q;HtS!A+4;-*YAup%REscR6nWa~^@)Br`vazGWaS+}enqZhBS7f@i$x zUOPgnm#%#k03RkY!dWtJKomLrVqpDC%UgvDfBF*&&41;r_PWI5oW*>ns8JW9Hf|T8 zLM(!MCG|Jj3eh%tN04TasD2V%2cLZm@!h|fn3_85iy^cL`Y4c{JIGxf=XHlZ{rib= zN?!!2&@113N#G4Yif#{76rKMh>65b|gLsR7U!;-w9#7Bfh&Uzg6=C?gtfmdWzd0Ie z`yoLyL;`jeFn+dgtl4|CZMXIE*?8U<17@J@a>Ag7&w>1USUO7p9Cs}f9#u%!dIdiN z{7a5Kz!PCUE_Mpr`ihufi}?N{=T%eJPfyz$8RcQPzA~T#qAC>XOA~Mf#Oyh2y0R!N znPOgUJHL-u9-Is`37$z}OUAt{bMp^ybFDo)IjO_n`m-RmduJD^Dsg(M$eb~0@(I^3 z>1DLC^39vWb}~&_PA3Mw2QUGgL6j#Ht*zcJ(cx)eyBM`T%#K;J9qsqVb%!P0JK-43 zF+bs&!7bLrAgyEF;QG>Ly<%wV4nx7MJu!u zdd~kgc*t&L$sAe^ottgrnk$^BO`_SCHJGb?;)?hpIaUcfW(^zrV7sLx^&2KC>srhB zCwVef@qI>K8A^4#IX!--#iceS*5B^CLl``7G*6pZFcU38VCL)fvvQM9iKd9 zwiE&eYXz2296dqD^8R|qul{DUVBkey=GC`)fx8Px5mcrI3|;Ex%$>2uUSyfHhsT{Y ziv5+1*nof;(R>mE3r|ia#(h^aWH&R;ZND5aT@4k=%3px2*A`Wf_duD%^)yboO=I_=hYg>%Cbdg^_nV5H$P0WsMXZdCXUVSoEL zdvUw|>Z@tV5u`>a{_m0z@~65=xQ)@d);SS|YrwbvXuwRiQ|k0@pG8B=7InLJ_1N&w z!}OufVbdM0p03*BxSuvG_1e$tN?PWg%GHD*L`la)Ib$saU>b^D>3 zaZ0B}+BR_9Ou%v20=~sL>rV@OS`VV?8zeWWM}$T%guf5e82h@6&WQ_~@;6(WO!V17_5S zC#jrV9NE7p22<*zb0It*R2cx?2q+MWa)ub6^{jQN;=M_L&^Wq)0;~jM0=3R`$fmAU zgr5I1%?N;^>HH{(1$bF5Ri@q(VROas(UJOR_0y7*7!+KuMGa%7$!D%CzcD+&X$+T) zVVA4;RO+0e#pi&=0hEJaf-6F5-+zT7JQ*MqsT=}k@I9*eB5DCXT5oX~<9_k5ctg>{2b5#7zK@EybT;b&XEn?SQmvDi;f(zr}=l&4s zh;%{s=yhH0))+qci;^itcL$%#E{Pg`0Nd+&9}0-vtyMKt`K+;>>X6-SbqRc*zgW!; zQwx&InMASNtF5WYZ`G_kH#vLcHbR$~FX5W8b-nzzb*Bi(eJr0c`vVDSE?p+Kh{q<< z*Ke5V#nVlz1T2uG8%kpgvbZBr>HW* zF45mpY#e#vMI)u1eHN`FRVe;G_+e$@lUSPX?s`euxLg57NuAf`X}8V$`l}*~mmhzo&6cqIP zoEM=9h}6~H4(gxFhSo?6-OGva9E%Y2-^vGN^T`*MTFvb0%584=MrWPk!CJTX`S1R^n{r`XNu*rj|aOVRWhPFuy0mCJD2Qcxx3CXZD6HJOFShJip zwqD>xT*;gsRg>N`(0&8V+iB?ri}=;)~M+4H6wnDE9R%cB*#RAB52n^A4n<;)?-i`N~h4KrRO93#Se z6GE-*c9@`RHR{w`B0KJeIo>n63=bh0LSJG36c3k#D0?JC)hw8shW0bJ`RfE97f{Nk zn`&S^H-|6sE7?r{DXOH^i5bQue;S@!(1TT5|r?2eLnhGc>)Nfwk`iMeaY#gPJe}>=W z)g15zA`Nn+qo4mob|vXSannQns>mEKr@`uV#d?$WyK+dwU4aX93W_*2yk-gg#V zcU=#skWo**|JytxmyD_P4is`L+0sSbrI;4}UtvMlV|7yEsp>Yk94ucVtWNITAy%zz zI(o$|{RHlrcT|!6X>0ZSgYWXeK${#X1?IkE>^!M^OOfO9$>gvmi@}V~h!0$@63)-! zj`RCHkhG3fQwf$ALCmJnlK+h&d2Iy15&QZVM-64$jSP=LV*p4+GdY1=AuS6^h1?^b z85aG=>D7aBH7A}J(l}e|da6cR!HCIk-B(1Tl`pzCKi|MwZ_BFl87e?}jIO&;9&8}O zAfkln^;aL!2AL`?+LD0jeI@5k_WlTWwMJT=HG96IzGPVzXUvOIp?{5aDxcO2Qz z$U8~yq+uVsr4$<;;>IPNIgwcyfYaPkE#NUBt4csW4HXBNc=BWa z?sVuWCN2fUARt#&(X(s45U=i?8kf(0-C1A|yeG~-9(m+GWI|Q^GrTm)1_ChwBu z2UEBSVFjk0NqfjY^0s#m@KYw{_V#A8(Zh?1Ua$^9;5{A#NI<5}lZX9~%u^s}AiuRD z$$ypu1>i-zghuO~cdRC#Yy_GuYQUaMk2b-@u@l;pY?ja22bf)Pam1PiH+>Nem%IB# z8T>g8+kXu7+}BTt8|um(wv>axaJMJ|>%(q{h6iptA}IfgU;r2w-+Pv=}zOPZT>%8|k*wgp!a$Rr#XM0A4D|3@0 zKHBx!^m}=?&D;dklt4MBG6|3Sv8vyzj?XKrs!WE>suKM1#BNs&?sCbZF@x5Ao}__d&yzh>g7%%`^No!rlP`PG zFHKzSf3eoxhmh6Ze-#h=8=+^|ZT3Q+LRbsU^X z5<6^Hfh}$A$}@X0T^{21v_@#lTAy$9#B`Iu<@(XTQSAi9X;c3f62T$&5?C*5D1u{N zGL*n#AVkQhFqQ5CRQxVVmJ_Y^KbzIHj^**8JZS~xiKbSMgMsDR%$(Bv_+5-wZp8Aa z9iH7L%cOyk+F7*aG070Y_}G~9leU1C7D3yrp$NHw1Ci^UUn^KO`h2hDT{Q2MXZh$O z!c~fmady#Go5gS$&}Jcy*21UFZ7k)jUiTF>S39orHKoUYx~Iu@TmL*{$iTFWdt=DU z-b>1Ty?;haWRqN$Lc_Bg8lH!_5$k6#%97{VaCf`pYF0c*p|++E4URhI3*_NAP6$|! za^cdXeF0N6>LYD1Cc)sKC&RD|2n?gAdEqX)srM!zFUhTSA$pemW9*Y){XLFOra_$* zw_ypS%032_{2zf*!L__G=*JGP!_Ja!mPPI$_F{>ig|C*>=T23u3cl~m?)fAZD*JFs zI;!6RtpLADSVFvFRc)`d6b7=WEv{jrwcU#_8hz_z|IY+7602uWhff=E#3|Y^#VpO> z5Hi&d3AmQ^RS%`^7pKBLI4pn1pRfD4`GolUFyx^pj!O;*{eSLGPkg1E#8BFO zjhOFS3I@fn&_N*-$`@7htUmXaFJUWJ=MvaVr!(CFwZh3T&n!jL#dy^klE<9kMB8P$ zF`lc*)W{2sP1HgWbXBa-YRnT@x10%r}E{$pRgTUxXpd4%QbA4S4E0 znVEm=IEn6F))Mths9oJr92Y#Fak@WIy3fHis7b<@2Rd8qWEhz;m`%h1I51$denKtmRa!53d zVh&isN6w(|ygF(hF(j2XezZrdl)B3;Lx&D@AAAx!?Ei=z#usiRAox?u2 zB+`PVq#BFQrV>2t+NIb$_IbWhL(MsZ%~gk&J2Gn$q@B)_yetxJ-Ic@+-h8rW8AQYj z7w`UDUYRfVr;F1L=^g@2?R%2GZ2m@sb+X2(UeH+T}jT1w`#2S?Odl>PyNdwdk)aLwn(q}C%H5ADFn?e0umg?cUK=g0HOoq>+ zqZ-^Aoz+8u41qx)f6V8)$#-^soCy}Ce!3XlQ#YXqft20%oc>_f-`Ede=%g`Pq?{mb+0D=Vzi-NW_$d#kg$`zNgnx^S~7>n<#y(S*)TKk_Jpy%w9C~ zaqJLIe4CxmamxHl!qZh0H#rVQmEY%co>R5^4yd0P1GamIk^}YAN2yb0fDRVS{Sgxn z+C9oJMjFZb+7w4s;kDH^b{Ta!--D}v>a-W76^_E!uba|r@T-&zJXW=N#o+lL8?V3D z9+&1WyQ?tRuQ3vNB_o5vOsV*mDsx@?2k1vsg1v662uFcjPc!$M!9n{<$*}I4Zj~cU zW?n{o=$)=%aIHPbj~#mU1!aE!{~^3nyLIPlo)&pR&-}@OboePIAafkg(Yz<87k}VE za-cJlbsDuBS@o6d@0wOm;}{~ncE_koBuhY2r+*4X0*m)nxYr|Mw|#17-DFksC)C%T zlj3SCatL^zoy2wH$IO4x6}avyh#?t(mliC)0vf9XIm$!9>LZAORQ+|&Ue$iqH4=lk zGn#mb2i6LW!7XNxW2wbdeEVQTY`@56zb{K^-SAD`w+!82b6U{%u?Al&Z(58{IM3yh z$hV3Nf=o+lBYs6q}6)a;Ij;uhZ2wI=fkYT&N8kP$p`~0PiSQ(_`}kjyzP5!E`19$K*CY%IyMq zP+MW~h)~RpbXP&`dOT70&GgK1>ECi@rUqPAak3+^<<@*S%%H^p>WxQDzO{KVo>RYE z6rj-%D59!gt2V0goU~$d5gEQYHNnuC^9_w+>W8VD0hjBT+&!JdiaHCQrj4{uf10Z* zT_vD?)}qhlf4F303beuLsNHhUbTy zb5<>GWYrw+q_dg=eHjna@EVu~m6c8Sq=+K;Ujie;bT(@RSOB)j`mp2ig43OhJ1LvB zdg!6@EHao7K3fCu`r9pfG@z2P@qidGPIRYuq|5+s`)`cOc+IK|?uEDEYirvJs#irh zNn*m&=z7Y5#*B=ABo$2vB_Tk(MDZJ3)NiR4SYQycBTHzRxlj3rP!1EgCe4efef305}20XMC*(pg51CL)`R7T%E^Dm>N^S&t>&KkgUF$n6KI0}XBsaw8#&mQC2u$6IZ8frp{;W=Ts;L)tmw zr~Mr~G{ZEF;ipNu9Q>bFwJ7;EjSQp)1+ANeV2@K zZW&AMHsm!D|8^c_BdS(I^+YwNrFx((_8q&%PcgxU&xMpn%@S#CwRrBos0&t${xlH)+5jV5*V!<5nRVz3E3_(A z;FpC!2FFe7J@d-2Ep(}97ZS?RcqVe_%^ZKEh#8yrI_d_?XF1@eh)c(Y&=`uKB^H*d zHbq)8$*SRv5eR=1C*FO2PNS6!Xf7@cD$cc#rLkwVpRl^4Wr>tnQ9bhPTMb^9f0k!) zyicJ_d8y-Ctinm8^=m+?tEIbVXO@G$+=2C1*}3GV;_H`OFV*AST4#*ke#5E9{`Eug z{FDzSCB`&8u|LuQKdAztV|x!|4E8r<_)R~dx5TFR)QUsZWfbA&kf6Rt?Q)GQCJi}? z2MxU}D}VY+e0k%^uL&k+Az|pc8OR?y!eSs?*9xNRZvy>i6O>mC1B37hpk+6Tgxr_a za<=L!maerkzSq<9)#do=ScP-PRnmh%bukrZ7YuBr8S6%$x5 z5oen;koic-8qQ6b#3~a!2V3L3OeNdcci8pY+wkoWN824W7sN zr8U(Ne4Vt0lBNVY;u5=#q~UdXgvRYv-L(7O1g#{YV(93s4l0yR6FH!~HO_>FCyRB` z>}Ei)Q>cG>D`fv%?hm9T~y5kJpM?c$G6%L`_Yf=2}cpo#)H0yHUW zFQ7RM-1YB9`n!m<+do7pwDM$edwX(LH)Lk64xC`*lOQE_eF_vxj>uSCM;W|7}_ zz$PZEZ4X6)LD~-&EGf&xhQG=e?KE5JLQ2czRA?3gKWjYZ$on1~9?hH_TGRCM)AKU%bDujQf21*}Xsy zljI@1T}c4PbVb$!6p*CI`;HX#3#Be%Ma{ncZ-v~h6FjRt9q@~N(0iA1+v9(Ar=5g7 zvMIj$DAn-7#G_&?1+~43~VOXjs5s z#1{Tby#6DT%%oXrOdcC0+RXy6+9phbBDgF2mD1WxF|RK15kJDv0dX6QB?lzJ~);ET-7 z&U%}6H?p7=lP(bs-Me5IX^DI+4%)JAnux@VVSFHFT++at^2bXC04EPpg*~sjRzs#E zXzM%x(rBQvCfSX=V3-HD5VF^dL73MUVy|_Y?7g=0xd3%N5F+AZ{ECW}t?;Uq< z0B$p*9tg6~2kbVhJ0jqOJJJeR&rqx-KKRdBSZ`m5L;uwau>pcycK6PS3 z=Re{4y|pR*@S{vMBVMg^p~edKbkhY`9#Yc)H_1jtq@rTpQ8lGxFibaQ}$mB%c2cQmk77&vIjfkGpcGhz!D4k!U6&sAz=r z*BC)e8*r#z_HYnBbS-Sq)F+4gyW6w3@TsMNMH0}$&E-cSxjgD-6#=@sRp8wR*fzk& z$%#{Ct=G-9Isfsv+aa6mG7{=GPxSXThZJfujA-dni6J^3yrwwzpS9HW1G;ZOF~V3i zZDQ2Cl#RdGfh6n?`h* z4&j-8D=9Iu0!=1S9ES@74f>U+C?kYuJ~}IG$0PPFnUwTHPaFAwFX$xo(5qQFEsIa9-of&V3k8tPK#bD^5g@&=e2iGFuI+kNTv39fcH0dB-> z$x-lf5YBccElfGQ~37=5e0xu4RxG8lGOJ^Zf5Brt-1@@p@K=qxc41 z6qmp;>hWuM_TySV;ylU4T7NPG98$7#%yvKOq{F4_rz4V{WLiEDqTvLVLu^_5%i4Mr z6j9BZ5F6@h4v$v#-U((%Qfy%S-jaS`{FsXoxW7xBhR0{*RD&x%v{q|HQk&+D@p5ls ze(YAqTs;+#P8xOs`<3bPapOTkte+zC(t?wsV2$V`t!!rxG|EfxCkngyGS|`xV^^74 zr!4K@(257q>v)qL`6}U)I=y;zE3L~cpnRN*ijkoBAqhn zE0p~Ez*1ZzN^!YOrPL=z9ZfpQ^YyQnwPxxyf!phj+5O#qq(y zmR3@a!yh_e4SR9Nfd&ML#=A34M9Z^KJk>C#isn7kdQ@f$)wlexKpq%}fqUG{p|Wx3 z3ykrNDDBE#DhwS5K8GV~7WcdvsPTd0uR5wKR(|04vvNOU1ZNEN<9C>ed@47|Hsihn zG|Cu2&CpPwpF`@SIN>v}Du_ou-1klqXE(bI=(*``hQ9c@z%H}H@{yXqty9lYaS32^ zd|SNZ?WRjA7;(t#K`W8GCJLH;)NZsa9kaES7s4bjz6nVs$fmui800y;k!sJe3>J3J zv!5HMR>Za#g9i3~@+A3Ao$@lp-)1BfX^g2nisO)j)3Zte)o!NSc1K9XLk$b{DQX;z zK6_PS+>&HTi>>vrx6qqn70hm)GXZW6BmlFpfnH6m=9s?7gs*=6xTud2u`pyI+JRif zJ$7DGivfte+&-47B-?%SdXe7I66mWz3Sad()HrMC+76XNtsJ@ffa+CQDsv`{?LPZc zC8@5Lbcjqn*7;$NM=+3uffO_lOD?uk!X@Un;HbEmk)FZO>#VR>3?p<7*9{k^>aTirK9U$1gXX5@bdD`vITeBCcg$m50GSeExQL)siuxXnW&05>zi z+vI8Z2hp8mQ6|u#Z41i^%`@EnUmXO0>Z~PO?mJ?)pN1hjaOC*88^EAZKHHDkjh~h3 zNAlN4GZR!mX6Ha{rg~BnFBU;!M51B*;fjoIkIgJ)#}SAN`*^?D9J52?qnXzwwdX?hbinnDWqiQ#-`*b8 zeGhIk90}QQjJltS>+ix>l`4RLfzu7=%#?vL=f?tW?$Ops55*K(BvSq_a<)hRr>!dw zgsN@dOcF`9WFKUZC9-9gD6;QsNRegm3T0m!`@RnvOG0+plI(=+*-a#}@0303_sppG zd*AQ(^QW0}&U2n~pXa%+`@XJgN~)S*bR=}*o7+Y&ZDto0iPly2I7|7c>Q?3=W9L>> zqGo6Xf_bWXU@Dh1$>oE#`OS#tA{7R?-#j~qcEux1i(-h_aO4)Hy#Zhs!U0p*9D>e> zl!s>!L4Gadgqb83M~#)ojYW2~eK2jw7Xgb%-8H>m4nSl45xOnltKLA1a1=)9}P9)}8 zfcN{uC8nF4kOK=1a1jmS!V%Nu{@iJu)@u4E5HZwVn~wR;k-L$0%KzWUO1*#P}^&dC(R z?!Q)X`|_H8n8l@{N4A&gr@u}FtoQwO8!*1|65JKD$BUWiE8Pi5Q z+vzmz^9)gzrFCshR|k>|@6Ve23U*BXveEZMvR9FpE+E0snt7y8{w|ivg&|HKX)Iwo z;eyJI^P{NiHR+c#R#jHMu#Z|~?wQA~p%#-|m!fUBZ9Oa7vmFGq+y%yJ=Q{ex)Ipi>IL9Uec0$1(S*pP^Wu4?t@-kYl?lHY>atkV zppnnWEaU3|1;@#Z#5^O4Z^q6K2le$ilxoT8Xu8nISQWF4iFf<8XqI%O9=lpv;X)V{ zNKP>6EIDA!DPQvgj3E)2DaCQKvvG$_xITNlHp57iN9$jbGTOJ0mf=+?j#KA~6DZDS zVlWF10-x~dWagbDK%5gHoTWI(8=>Aw5yr=iTdrI(XZpFNnuv%sBIG2&XE_^L|<=AK;()oIz>TmT9j4L=azb77~TUOEFt)cZ-$OUx8;;%VF(2dh+`HdWXT^HwF zUDeW6&N-R07X?gsDaH5twlBRmXI6+1TgAsm=)+>*aS~Nr@9lP&SyvB}gPvUylb*5w zOvr%9rX#Ql`*mXTd}nl{{`sSYpm;_j@;_e!CRp$&j4Z$M5o9pYc#h#WQ@Nq;WWK_u zm*kIM3&@hqSOIbw5$O6Lb}juFS}tk6^nbuJ!y5(RKWCOU{fYO*rheZ^8o%q__x;g` z#9rtnw}r8dN+KT|^Qsp&fm#&YI|i)y@K+LH;ae}W?q)OF z|DIYGQdosTQtyITRX>=4_8RSX>=2RI*<%EJH8nMD(D!?%4PCwk!RIigb!?>eV}xbL z92PHbkmuHS9sQv>2_{yQ7uO!-23|dT55SP9`M{izy)p_MVL5Bo)XD#f#`I^fV1aZo z4QzGQma0*I4+k8hF9+tj%XNeX1LMxV2QFL94&b1q(;1}t{oh7@@}#m!U|(ZHlXugC zK$)qL{V{|Zm6(z|1@tvZSJ_q%8wD#eg$>@Y$AW8o| z3Nw?9+F%S?WRL!Peas03fu}+yZm|EK^PkOmHpps{LJ6?O1%IC;9T%K{SQ^$6OCjR& zgP%ad#F6_F#uMjkXfQlfo+JuouM?ux%0>fIA$X_q{a|NhB!I|n@BZJ?4W^qS7$m6D zQ<>kA_gG*@F!#kvcpTl(R_Dx_yU(9_ASVY1Q(xxkr9Y48?1LoGAey{dNY2$jXNq$5 z`)Frm@OUOwx75LmDkHIrryUr9J>VY^+{=wInx6Z{%q@!B5S`*@Eb4rtiX8Xvu}Wh| z{I`CF4sxTvv=|2)&wMZz$ceb{j5%aAq>4!?&Ui+JFhR|+-M8lDUH}d**^jPI)?e-| z{&B6s-Y^RW71F=ayVAk@YLNXvp+~`iZ8Q_qV*l}k-IdajV`d|?X5^{a)5@VyVEO#V zL@$On#_%>AZN@#=8=l0tU%7u98yg!RSB`fRm`E*wHwl?YC=YxvStVo%Z%y=vCpBiN`M(WyRe<%7oqJ^U_vzF9rKMcp-|OX5o*PUW!#DeN zmyAt93lB(*zu#V?AqmOV}$?td;;$QqIAI{;y_#GJ|~Dr zO^r*KrUbSm%WF)WNEoAzf$Z2PhB%L5z5O6eKYViS-v%3*_5UuwO2orI(2KEPfb!Xq zCV&FHIK0I4a*7P=59I|kql5}ht~1PLf7UprK3YT-oFvSunh!ouR)D1Cu_nQCSg@;O<1}G+1=?tkJK6e%H@!Iy0$c((LHN|29vn6t z?=P<;R^A>Hk z9_*V%F^IZvFPcRW&wr(lmQ3Eb|&h0%{@;~P7ampDQoU`bNBiwY&8{%ihA}9X=oMf zs-Jf}+W#3D77da-&L9@~NaZy{oW0#$wo40XByXD#i`)e@AE9r;C8dCGOJ?&(^~KCQ=@>O*uKgQtp&9>i|$*Q!~PW!O;(E4 zl`iOYLhbNkiJjO?c=YG_faRY+qLntKr6vhDeJ!1e@wq85#&9zqCREJrU$b#L%ec>T z5@l4DS(l$!>{e4}>#FxVsQv;{M_tGg=fM4ia5k3+neog1#~$Kws`6`*c%8S!#Wu8V zi&uz$#MnnlE8$h=N*>|gr}rCX4hYJi0qXRdQV`T_gQ?fA75ZlF2P!|84dHcJ1O?Db zs802}cjl$45*LKtqqy61$3|^D$9W3>)?kGN^L1uT{(vBfcGw*gpZ#XWNJbycH$$*w zBi7VCsX1<9X5RXld+~$vf2g<>tT<^fSt4oq^kZe2r;4upJlfk5w z;7xTJhUU}Ty0YnuYPhO3->92i6r~#QlP1E`Mc0>>ZB8j8Y(8{f@!|V~N>*Ld-{LH~ zJP=+oUN)h($;vmpFflP@=ijoqXm)tosw$LlVQ=qLiFpN~pf zn}T9JFQcb{2q|vA;K6JMg^n(1hoD$2 ziw=F^QiQlaICLG1__2a9ET>oe9%dN;#z|n%y7y#mnR{)bKa(fE)Hd~twX2M+j_Ys>>Y{&h-7j!a+gb#Thx&gM@sG5 z5pAytZ4(ockcs8{e> zf6|U&XtOrn>!%SJJrBEG1+mN#V{+>5!NnSXnTKH8l_9X&q_wo|Y|3^3o>&Z2P?Vqz z)X1YOH}Cbh5N-r@(NVj7(cNS@^8!+d_`X!5BDbz5lY9Mi3rr z-{J_@(pt`v@2T2?=6o_JLz8stA%VCkYV70@q7nAa^eLOf@QF`VKFa zruI$GR6s}{8-!5t|$pvy%mkHty&v_lFNoQyg%KFV&{eyh0d@Ny|yE=GC$>&ewqQ-{xt zE=Ao2=l1XGT!Nif=Dr29@m~Fukw|^`dRayzD(K;nUR1es*U|c2387&MrP^nzJNfI8 ztYD8v)RO_Ck+Y3Wfjvze35NNk)&iLt6#BFM%VG%kpvgmjK+wSmQ6W>GYGThIOEUDy zU}tl??iEE>$x$GBO0@v>j7=|I-dWAt52#BhdskVnv|=}12l3)~tHSO6D&FLIT|E_= zs}kK=if{k@y0=XC?z{aB-v@7tu zisv<67ZvR7yQ16tlVERy@#Iqg*CB82Zg6JOK`rh#>JYAN!N#noYp2m2q+pgBVUVKJ zs?;GqcT8{*BL32SkT)o@)T`tRE5J`yh#3T#5(wUX`YeUkN1MametpwVr^$=)YZjT} zbxm67+{JcS%@lMWgsj0<8O&9wFnIzxiCNexb_@nM9HePo1`{r9&wGMHx|-Nq1s9Q?WO|# zH!R?2Bqe-TUpqBk<@9L|z#&<@yPrv~GxvR;D^gcFp|Q5#M5Q#DZ;DxyX-p4m3(#c8 zTHnI$aoB-#ewB!9jcQG{74+X-uJlhzFlI$bba=zH=a!$XJXs2Py?X@PJ5Z+CQhT2d zWYm~j2)v)ZGuE7~C3TPP8Vj&dU`FWQxLeidn(x>_MABoGoa&p1v)A#;cI+!H9|vxP zcIttwo*93fk;Oozp{qVy^-c`vd{dnZofOG^nS1L=VbJU+cJY;~L4nzcZRlIu`};!Q zelC9Zci$kuTuqFrZyIgJV6FzHuTg}cWl67qWgtuR^V+nDukK+)lUa^p_Nc*5mXHP? zLUhja*7%*Av@Pk%5)edQmId?j4BN2e^@y{_xq%`Gqhd`3--$%DPnHoQ|$ znPZ$Zfe-H}tY@5z7}(87>s2^LZrt*pg{z_b=;n_IU35KQ0_e{N5y7#laUKNyWq~PF z_(Hzjvl&pp|L+>J$Sy_S967FY4O0sUk{sYPutVx`2pxPpk9pBZ2!T4|3n$q_uIa7< z*y59|BF}Cyb49A5_@DK?=EV}1!R{O{?On0b$+)PGQWSp~DNK1QDo%O(YntE!;r+O0 zsCd}`o?+zLT1`^CEPslE#bT=TW}}g$y)^H!OfB7g(+Zs|1g5DG(m2IG=qC5Xi6czC z#yd&7pgWGbo>ZS3_f({%H&}BT9<}hMtHUN`(M9)1OB1S)*@JRc=`Y7}TGZvg$Y92> z9$Hb}RP2L<5DU$z|R*%HTOz?^@LkS-?B zuCnT3E9JJ|g@>~!Su9c}b{dG*zbkXEm;TpGA%n2wgHOMuDc^BHcS+95r}c`9O3Bh+te`KM02X9n0qZ5k zg%r#eKV)oXrC|;ov~#1{y3xz8jN;aW8K=a>4aY?){O3qVo$$SG0e%8*aZCxV0YZJ6 zM2MBhyo$8P`VVSP0t$_R^T0^AJtAs!%{=(ofEI+cSG4bm+u`m)K>@o5O3WIA!jhsI zjT&xw>n&Q-@nE$-stMx&e?owpTo(iSZ2Cf8)W^-GgNGN!?EU0s2l^JEu>d z`l%*cCTJ|^Zn`$Bw3c`;%CbCbk}p8&@vvZEEHyEhqW%;`dX%RD)!X{E4rtf}>LHTdAe2-cg2}-0tz&9LhGG`w7F5ixGpoqCKacD?F@x7(cuqj|HHdWT1+|s*F)nXEH~3&rU;<`om)o+tDvBhPakmJ5?3E z56#QJqTs#3%AuFRhjAiBFoXIT^|S$tCFqNnRPRRQ-BN<5k2UL65gmZ1{NHz^R7JV&z!0YT6|kid-O>*497@fc0z zMG}>b+S$JG$cM3!diaiXc(D;Pzu*O5^8WH#yc|+oJFt`IYfxN^=7`@bWilIdhSq_%LdV!t6tRFj?AnHS>O5W zh?z9aDLB_{&O3=2ol(8FZ+m`5>YAiVxRoU<30nAKE(44ShM*BFtW0?B^52IJ_IQi- zcnZ$5W$Emo4h|!oyqXF}AC-NskJ#3B-B*3w@yqe_mKf{&W5UJDfp6a?H3LpmzZ^P; z{+N7tIAe1rFDEq7`kp)>2>>ZKd!u($+AF33p!YLmPFG~{4lDf1B-Ly4rU6N*BVyv3 zOXO{s#rnDKVnN(n6mxbK5wF{O9Y6za(L`H*O|)8Nz$_mC$%0>*fGFvMp`!7$U160B zg7QO^U2Ckzqn4Fk=NsJn%eB6)gtbdDKP?$s{*f_|MqIR4kd$0h8~UmG?hNY{60Ctc zHO3m~bqdEO!1c6j(MR#g7SG2>#|Oq$ZT4nDeZ01ey)KXaC?P~s;@&`oehu9;d?C<3jHcDukb*xpYi0!1x80d zbWYnD?4toKt>=NLND#$R?N<51r(^C#mHqRZSwH%=!f3fA4hZ5?bagMk z514c!7t(!DRg7nx;b2eBReX&e!|iwqrW@a-6F9?>S|v%Fc;}wextuROt%n}=K%&7l z4NU4l>6$NZnD6ose=%_^yY4V`BAn!yGgzEWT)`*`Q_cHF5=m;6`U1)59wli_o`)33 zm(~u_cEd}s@Xr@Ef3?b8nPdpRH%0a{Qb!f8N}1x`bNkDz-ko=si#mlweHza0iyOh= z(UZIuZiSgA&gW^v7DxQw zpQrN9t9|%r^%SRlO6-Kw8eS2;?t0yk(#$qcReG;}npFFSpzHE;W{!H7DVbF=Y^3&r zO6B$uUJMjZ?!I(I5SzJkqVz`yqoWRip78bf*b##zp(S0p*Jj#qqtMKb$6o_x6DnSc4NZL)YI7H-_KB~m~?ICwrCT}alsrqjKMi(kRpwfUVMQxomO1u=ZalZqzq zTRY#g`o_-FF=1D`pok{xTXCOWm&@MzgipyS($Lc%Yed&8+{*H~I! zn1bvmozd~R<^>SOQ~&?~ literal 0 HcmV?d00001 diff --git a/Lesson-3/assignment/addFund.png b/Lesson-3/assignment/addFund.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4897762b0e837af53a26405e5d446207e7fbc8 GIT binary patch literal 21678 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 G*gpWc7@=hV literal 0 HcmV?d00001 diff --git a/Lesson-3/assignment/calculateRunway.png b/Lesson-3/assignment/calculateRunway.png new file mode 100644 index 0000000000000000000000000000000000000000..ba015338822a8136ccc563383364d48d260a19ac GIT binary patch literal 19378 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

9{#7qU7m4;r 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 literal 0 HcmV?d00001 diff --git a/Lesson-3/assignment/removeEmployee.png b/Lesson-3/assignment/removeEmployee.png new file mode 100644 index 0000000000000000000000000000000000000000..0c33cdfe4aa8751507b1a648f97726e12f053204 GIT binary patch literal 21325 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 N%uOv#DvfY4{{!>fTps`c literal 0 HcmV?d00001 diff --git a/Lesson-3/assignment/updateEmployee.png b/Lesson-3/assignment/updateEmployee.png new file mode 100644 index 0000000000000000000000000000000000000000..c80749851b6f2d8ebf4e4d6e7f0652a089096c82 GIT binary patch literal 25581 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 public employees; + + uint totalSalary =0; + + modifier employeeExists(address employeeId) { + var employee = employees[employeeId]; + assert(employee.id != 0x0); + _; + } + + modifier employeeNotExists(address employeeId) { + var employee = employees[employeeId]; + assert(employee.id == 0x0); + _; + } + + function _partialPaid(Employee employee) private { + uint payment = employee.salary.mul(now.sub(employee.lastPayday)).div(payDuration); + employee.id.transfer(payment); + } + + function addEmployee(address employeeId, uint salary) onlyOwner employeeNotExists(employeeId) { + totalSalary = totalSalary.add(salary.mul(1 ether)); + employees[employeeId]=Employee(employeeId, salary.mul(1 ether), now); + } + + function removeEmployee(address employeeId) onlyOwner employeeExists(employeeId) { + var employee = employees[employeeId]; + totalSalary = totalSalary.sub(employee.salary); + _partialPaid(employee); + delete employees[employeeId]; + } + + + function updateEmployee(address employeeId, uint salary) onlyOwner employeeExists(employeeId) { + var employee = employees[employeeId]; + totalSalary = totalSalary.sub(employee.salary); + _partialPaid(employee); + totalSalary = totalSalary.add(salary.mul(1 ether)); + employee.lastPayday = now; + employee.salary = salary.mul(1 ether); + } + + function changePayAddress(address employeeId) employeeExists(msg.sender) employeeNotExists(employeeId) { + var employee = employees[msg.sender]; + employees[employeeId]=Employee(employeeId, employee.salary.mul(1 ether), employee.lastPayday); + delete employees[msg.sender]; + } + + function addFund() payable returns (uint) { + return this.balance; + } + + function calculateRunway() returns (uint) { + return this.balance.div(totalSalary); + } + + function hasEnoughFund() returns (bool) { + return calculateRunway()>0; + } + + function getPaid() employeeExists(msg.sender) { + var employee = employees[msg.sender]; + uint nextPayday = employee.lastPayday.add(payDuration); + require(nextPayday Date: Thu, 22 Mar 2018 23:17:18 +0000 Subject: [PATCH 15/19] finish --- Lesson-4/assignment/README.md | 7 + Lesson-4/assignment/answer.png | Bin 0 -> 16670 bytes Lesson-4/assignment/payroll/.gitignore | 17 + Lesson-4/assignment/payroll/README.md | 55 + Lesson-4/assignment/payroll/box-img-lg.png | Bin 0 -> 113830 bytes Lesson-4/assignment/payroll/box-img-sm.png | Bin 0 -> 5412 bytes Lesson-4/assignment/payroll/config/env.js | 28 + .../payroll/config/jest/cssTransform.js | 12 + .../payroll/config/jest/fileTransform.js | 10 + Lesson-4/assignment/payroll/config/paths.js | 46 + .../assignment/payroll/config/polyfills.js | 14 + .../payroll/config/webpack.config.dev.js | 242 +++ .../payroll/config/webpack.config.prod.js | 269 +++ .../payroll/contracts/Migrations.sol | 23 + .../assignment/payroll/contracts/Ownable.sol | 23 + .../assignment/payroll/contracts/Payroll.sol | 88 + .../assignment/payroll/contracts/SafeMath.sol | 48 + .../payroll/contracts/SimpleStorage.sol | 13 + .../payroll/migrations/1_initial_migration.js | 5 + .../payroll/migrations/2_deploy_contracts.js | 7 + Lesson-4/assignment/payroll/package.json | 101 + .../assignment/payroll/public/favicon.ico | Bin 0 -> 32038 bytes Lesson-4/assignment/payroll/public/index.html | 31 + Lesson-4/assignment/payroll/scripts/build.js | 224 +++ Lesson-4/assignment/payroll/scripts/start.js | 315 ++++ Lesson-4/assignment/payroll/scripts/test.js | 31 + Lesson-4/assignment/payroll/src/App.css | 68 + Lesson-4/assignment/payroll/src/App.js | 94 + Lesson-4/assignment/payroll/src/App.test.js | 8 + .../assignment/payroll/src/css/open-sans.css | 13 + .../assignment/payroll/src/css/oswald.css | 27 + .../assignment/payroll/src/css/pure-min.css | 11 + .../src/fonts/Open-Sans-regular/LICENSE.txt | 202 ++ .../Open-Sans-regular/Open-Sans-regular.eot | Bin 0 -> 18233 bytes .../Open-Sans-regular/Open-Sans-regular.svg | 1637 +++++++++++++++++ .../Open-Sans-regular/Open-Sans-regular.ttf | Bin 0 -> 34156 bytes .../Open-Sans-regular/Open-Sans-regular.woff | Bin 0 -> 14260 bytes .../Open-Sans-regular/Open-Sans-regular.woff2 | Bin 0 -> 10352 bytes .../payroll/src/fonts/Oswald-300/LICENSE.txt | 93 + .../src/fonts/Oswald-300/Oswald-300.eot | Bin 0 -> 16752 bytes .../src/fonts/Oswald-300/Oswald-300.svg | 335 ++++ .../src/fonts/Oswald-300/Oswald-300.ttf | Bin 0 -> 30704 bytes .../src/fonts/Oswald-300/Oswald-300.woff | Bin 0 -> 12864 bytes .../src/fonts/Oswald-300/Oswald-300.woff2 | Bin 0 -> 10056 bytes .../src/fonts/Oswald-regular/LICENSE.txt | 93 + .../fonts/Oswald-regular/Oswald-regular.eot | Bin 0 -> 17937 bytes .../fonts/Oswald-regular/Oswald-regular.svg | 347 ++++ .../fonts/Oswald-regular/Oswald-regular.ttf | Bin 0 -> 34408 bytes .../fonts/Oswald-regular/Oswald-regular.woff | Bin 0 -> 12732 bytes .../fonts/Oswald-regular/Oswald-regular.woff2 | Bin 0 -> 9964 bytes Lesson-4/assignment/payroll/src/index.css | 5 + Lesson-4/assignment/payroll/src/index.js | 8 + .../assignment/payroll/src/utils/getWeb3.js | 38 + .../payroll/test/TestSimpleStorage.sol | 19 + Lesson-4/assignment/payroll/test/payroll.js | 31 + .../assignment/payroll/test/simplestorage.js | 17 + Lesson-4/assignment/payroll/truffle-box.json | 17 + Lesson-4/assignment/payroll/truffle-config.js | 10 + Lesson-4/assignment/payroll/truffle.js | 10 + 59 files changed, 4692 insertions(+) create mode 100644 Lesson-4/assignment/answer.png create mode 100644 Lesson-4/assignment/payroll/.gitignore create mode 100644 Lesson-4/assignment/payroll/README.md create mode 100644 Lesson-4/assignment/payroll/box-img-lg.png create mode 100644 Lesson-4/assignment/payroll/box-img-sm.png create mode 100644 Lesson-4/assignment/payroll/config/env.js create mode 100644 Lesson-4/assignment/payroll/config/jest/cssTransform.js create mode 100644 Lesson-4/assignment/payroll/config/jest/fileTransform.js create mode 100644 Lesson-4/assignment/payroll/config/paths.js create mode 100644 Lesson-4/assignment/payroll/config/polyfills.js create mode 100644 Lesson-4/assignment/payroll/config/webpack.config.dev.js create mode 100644 Lesson-4/assignment/payroll/config/webpack.config.prod.js create mode 100644 Lesson-4/assignment/payroll/contracts/Migrations.sol create mode 100644 Lesson-4/assignment/payroll/contracts/Ownable.sol create mode 100644 Lesson-4/assignment/payroll/contracts/Payroll.sol create mode 100644 Lesson-4/assignment/payroll/contracts/SafeMath.sol create mode 100644 Lesson-4/assignment/payroll/contracts/SimpleStorage.sol create mode 100644 Lesson-4/assignment/payroll/migrations/1_initial_migration.js create mode 100644 Lesson-4/assignment/payroll/migrations/2_deploy_contracts.js create mode 100644 Lesson-4/assignment/payroll/package.json create mode 100644 Lesson-4/assignment/payroll/public/favicon.ico create mode 100644 Lesson-4/assignment/payroll/public/index.html create mode 100644 Lesson-4/assignment/payroll/scripts/build.js create mode 100644 Lesson-4/assignment/payroll/scripts/start.js create mode 100644 Lesson-4/assignment/payroll/scripts/test.js create mode 100644 Lesson-4/assignment/payroll/src/App.css create mode 100644 Lesson-4/assignment/payroll/src/App.js create mode 100644 Lesson-4/assignment/payroll/src/App.test.js create mode 100644 Lesson-4/assignment/payroll/src/css/open-sans.css create mode 100644 Lesson-4/assignment/payroll/src/css/oswald.css create mode 100644 Lesson-4/assignment/payroll/src/css/pure-min.css create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/LICENSE.txt create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/Open-Sans-regular.eot create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/Open-Sans-regular.svg create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/Open-Sans-regular.ttf create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/Open-Sans-regular.woff create mode 100644 Lesson-4/assignment/payroll/src/fonts/Open-Sans-regular/Open-Sans-regular.woff2 create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/LICENSE.txt create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/Oswald-300.eot create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/Oswald-300.svg create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/Oswald-300.ttf create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/Oswald-300.woff create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-300/Oswald-300.woff2 create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/LICENSE.txt create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/Oswald-regular.eot create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/Oswald-regular.svg create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/Oswald-regular.ttf create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/Oswald-regular.woff create mode 100644 Lesson-4/assignment/payroll/src/fonts/Oswald-regular/Oswald-regular.woff2 create mode 100644 Lesson-4/assignment/payroll/src/index.css create mode 100644 Lesson-4/assignment/payroll/src/index.js create mode 100644 Lesson-4/assignment/payroll/src/utils/getWeb3.js create mode 100644 Lesson-4/assignment/payroll/test/TestSimpleStorage.sol create mode 100644 Lesson-4/assignment/payroll/test/payroll.js create mode 100644 Lesson-4/assignment/payroll/test/simplestorage.js create mode 100644 Lesson-4/assignment/payroll/truffle-box.json create mode 100644 Lesson-4/assignment/payroll/truffle-config.js create mode 100644 Lesson-4/assignment/payroll/truffle.js diff --git a/Lesson-4/assignment/README.md b/Lesson-4/assignment/README.md index 871e6be..4961cff 100644 --- a/Lesson-4/assignment/README.md +++ b/Lesson-4/assignment/README.md @@ -10,3 +10,10 @@ - (加分题,选作) - 写出对以下函数的基于solidity或javascript的单元测试 function getPaid() employeeExist(msg.sender) - Hint:思考如何对timestamp进行修改,是否需要对所测试的合约进行修改来达到测试的目的? + + +### 回答 + +测试的文件在payroll/Test/payroll.js中 + +测试结果的截图![](./answer.png) diff --git a/Lesson-4/assignment/answer.png b/Lesson-4/assignment/answer.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee5fe1f15cf7f30fbdc579511fffab6893b0acf GIT binary patch literal 16670 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 literal 0 HcmV?d00001 diff --git a/Lesson-4/assignment/payroll/.gitignore b/Lesson-4/assignment/payroll/.gitignore new file mode 100644 index 0000000..b5ecb53 --- /dev/null +++ b/Lesson-4/assignment/payroll/.gitignore @@ -0,0 +1,17 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +build_webpack + +# misc +.DS_Store +.env +npm-debug.log +.truffle-solidity-loader diff --git a/Lesson-4/assignment/payroll/README.md b/Lesson-4/assignment/payroll/README.md new file mode 100644 index 0000000..cf635ef --- /dev/null +++ b/Lesson-4/assignment/payroll/README.md @@ -0,0 +1,55 @@ +# React Truffle Box + +This box comes with everything you need to start using smart contracts from a react app. This is as barebones as it gets, so nothing stands in your way. + +## Installation + +1. Install truffle and an ethereum client. For local development, try EthereumJS TestRPC. + ```javascript + npm install -g truffle // Version 3.0.5+ required. + npm install -g ethereumjs-testrpc + ``` + +2. Download box. + ```javascript + truffle unbox react + ``` + +3. Compile and migrate the contracts. + ```javascript + truffle compile + truffle migrate + ``` + +4. Run the webpack server for front-end hot reloading. For now, smart contract changes must be manually recompiled and migrated. + ```javascript + npm run start + ``` + +5. Jest is included for testing React components and Truffle's own suite is incldued for smart contracts. Be sure you've compile your contracts before running jest, or you'll receive some file not found errors. + ```javascript + // Runs Jest for component tests. + npm run test + + // Runs Truffle's test suite for smart contract tests. + truffle test + ``` + +6. To build the application for production, use the build command. A production build will be in the build_webpack folder. + ```javascript + npm run build + ``` + +## FAQ + +* __Why is there both a truffle.js file and a truffle-config.js file?__ + + Truffle requires the truffle.js file be named truffle-config on Windows machines. Feel free to delete the file that doesn't correspond to your platform. + +* __Where is my production build?__ + + The production build will be in the build_webpack folder. This is because Truffle outputs contract compilations to the build folder. + +* __Where can I find more documentation?__ + + All truffle boxes are a marriage of [Truffle](http://truffleframework.com/) and a React setup created with [create-react-app](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md). Either one would be a great place to start! diff --git a/Lesson-4/assignment/payroll/box-img-lg.png b/Lesson-4/assignment/payroll/box-img-lg.png new file mode 100644 index 0000000000000000000000000000000000000000..60c19962ad5846379c8f2a985e21fb518e7dcaa6 GIT binary patch literal 113830 zcmeEtWm8;1*X_XIPH?y2?(V^YhhV|o-Ccq^Awhy$aCaZv-FJYdQe{ zh@U<_5L2tZ&+iurJilu=f46Y9HUR+OQs|jv7-$*i7zb%abS(!5RO1P?R)^JCLDD7+Z_{?RP3-Y^>8fSU1p)6{wSf?hg$6@`oa)x;Rzu zZTao7)*E!KXHrD^YSI0osfZgE#HwJd({Q~j1Or~tc z|M}P8#|X~;J6uh&Ct_l`m|(z_s9ACE-B(|Y^G*IX3D^#KyDAe)h49ocy9Xb zJ$5^*(+9?^kppWW+#^dBM?!~1nD>O8-<~x@C{2QImo&^OlA_Bw(nHqkde-#hP~|=Q z?=%0cU@RxPMJrxKyj8SJJo>;Kve%Z>zh%c_w$oAb$>y&Kr|&N)zT>}eO28uE**FJ= z3-3N3$vpcl`;XADW+E4}o#x9(gI-J@H5d z@KV!mEEfN9-L3STYg|94r|KOHs7B<}+ z4dV}nM{n8FlCieu1OjXUY)S44--CKmau21w(;w=$>bqv@oSxWqTF+vc!8*Q2Y_@n* z1XJ4DK~7FXaH$!WJ4HiN^GO~F!hg50qCnR60*J$wLXu+!?-P7K`!T`l>|FQ#WB%$q zYGh?1FRsgxK2w_}k-f5!cxcRt*ws|7du+iB){_s?NPl5XoUE)TdJTT+na@?OGI!2- ztPz%BRBEQR)VukwCO|c}>ug3+_@yW8@D?^xZwf#f0OQl#etff&7nq z<|9S>vVp|5T*Ci^q3kIjBE}`sr=#GpFuI2@>Cb@OCzKWyh`LdZr&^||Qrmrgr|t}2 zcG=jk@OrugdSEdW8)ASZTtw&FJF$}LNZ`}rS3L6g`NE4LK%T?&}ViFqgbwa@TlDl>%=l zU5O6$3X+Ex4rbiCu+qApy+3zMQi?NYjrq5xWn0FN(k*)k=kd+;u)0eUiL~@r(5bui zkI5kAt>yDcc}*Zz*ZzUxz1{fI@)TD7e(oF&IfbIQk3 z?z>hw|Kz#+Ng@5V?LlmgglOBt`t9Nc$bd^Qy_n=1y~-AfKVrdlUc}Bq;IH^{J=V($ zELd*W0c#@FvdpkFWY&?oYs)HEz%%gBcvi9g!`>kA76#}cLr_ot(Dqyz<1iJ1>8%a? zVTyUHn`aqtiHkQiVuMj9wwHK{s5RrNzUt??w7a%pukm7zDv@|fytiUe8_ &IIu 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%0A5D*17g&GCtGr;&jPHo!?qH&fEO{R*_sF;J2 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�u#E#U?@(Pm35v%6xj_5KU*tys@5M~A`WvvhrtMQ!hRf3$lWneNQJLuo znxgb3J1+2(oIVKb2K+Yv@}Pf^C|2OLfh6tqqu=rxqq^!lx!pqFg^P%AW!%d}MA#Vb zjsYg*e4|SjN?s{PW~Vm92F$WC#Mv$+ZKCWxC5|CPKrHhQK*6yXQ;$#LKaLv+9MxF?*FXFtTJ!GIMVM|l7750 z{GKEyfxFf^L6bi1Vk;gQ36+4%`Q6-?A63<9V6z32i9zu$f^eL}S0A#+D$x=Ud?|aw zY6s!ig{L>w1H2{=_a}znhR>y;ZpOkmTtwq8-I|HKVi*@ywqqSz*U-505F$Q!DaVdx zWuv+2E4dy9Fp7*o>ck7I6yr;?3pEYQxuD))5HMz`Q?bV|w#-2o37mXk*7(xHj&d1@ z@eGI<{Hh08X-F;}MCpfvIflD)5NmnoY6no<#kj81M?{#nPID*^w*9IL0 zcj`iZ))MW}fjNaZ(rH+Un+HAw26RxjM%j-5((fyBeFE@fZ9j?MJdPi5@Ay@`98J8y zW@Z#Syv&6;*(bFii;!hH$#S}5dHI}NqvW52by?#jNcx01dDd1u4hbjPTwVLd(tsKx zDnN60V+^x7T*H{U)X&NY7W@_30F)RzY8v2dml8kRr}SqCD5q?HOe&2Kxg`qYg1W*p zp6I(K2h3%uV`FwyF@`i^&)3kDUOhVaF;3fW6*F(kTN(O+*>K1}Mtv#6H$GS9CuT7= z%r%f8#v3!SgpYFe++sA$C-ke(Cz}_5i>@Hcz(bkbp_fE}Ap;Gf|yn^dx7WFn4n~0TF-6Z{6kFMPZb1|E~F=4acbez*L!?DNWS!mRCh!n zt9%JoFT1F!sf=;K4PFOpcC$AC!%nO6(MA|!l7=As<0&13#d2~*pBJUkHHZEch`5Ge zY&y^}3}bj3qsBqyCW^0h!T1blIMVTxBW1^1IO@N3vDOhNOQ){GSCESHU=bN9tZo7H zJ06VBeWn4;i1UO_OeP7ttL2Em639ydiC9mmY#TsjtJ5@<_YAAMq1u}uL=w&%MDtli zo6kbN1&!^-I{^fTWThKdM0a0lFJiAaFlEd;os>J1f>qF&o9Tk@s$H>Xjx}xtCpMjL z@1hZG6wftst^KlVgRKNuHC8#(ZuWPw;F_rB(g<`v6_?;=FRY%y^=1G^*z;YVjT1Uv z^*eJ8Z2cJ-f@KVvHKxtH(={gK2zMQWh)f-AIL0pfpe-Qf5T^ZL7m+wBPK`aCjv&`` z7!$>f$(1p59QB>iYB#n!F71LFzVasacnWLV+x4g0CV9>$(Et?MJ?bvclZ467qZIFa6yuBx$;w;g+*+@mCZ zN+7nnKwK{u?PM_UKPbx0LPeCI}8^Z{aF}gFEM;V9x5VJM*bgz2*5C`o{mR!TLINSazp-a2yF(ilwP+} zT_4uQ^(Gq#MMyfv**R7&#n=O*IW}IZQf6~1&33L{e7U^@=waxt5!JT39*T8x_yd62 zhil@6;p_vg2N2b9CMtdOv||^N=_+ZM!v`nO>w=l~#z7n31R@X}!uF6h$Q4JaGc^O+ zoizJN`{dri1xH_aZ9!e`s&p4<2R4lXU}kD^h2;7)Q^Ca2c5nQ_BtFcYW6jdhzYN+K zDH!!r9sh-U4k0^S!vmM{u;fbD3fu)o`m2<`>n8wjMo5la#N?UI<|dh%RqB>^R-+7H zZ>aP-@y+jTb|mR`ZqloRk{Qr4#z8pi#8tS?cpj% z<)F`)((bxKw>)j05Jqf1oFA~1C@O4sYWbpy_q>mzp3d+9GykWb#%ZIaj9vVxqKoY1 z9m187sNbW(?C)HNmvHwzlykSj4e}aPkaim7G*@!+bOgYg6UL6%)U5t~Wi3H~$zU-M z;^eBjRik8KZBdl<15Mhci|2t3n-{I9!oB-Ivxd+$7ejZU;2ZY!9seN%<9F@Oo6i6u z*H0k+*kSzGU7sef9oNdp&pT4U_woA6YBC(Zld!#vG8dB(LPH_owEeCVw+3j(f}(On zo5y}aSkQ@SakBxvDo8yc zZ~s1q@6N|~hcOLu0-9)y=){GTExK#bR0bj(B}l%B7oiH);OMwe9{mNL$cEz`D56;h zC6NfBU30j(GB~&=uh@RF6!%H>&#Bmu!+DLk!sZrd^ofZ_1g=wdY;;HbD(a0D037AL zZi2`uF=m0f_KT@_+t(cLQwn>*Ova(hJw5mKhL;DgT@Sks@iP&u*Xa{NG~@2p6i4O0 zQICTG&c%L$;EP~t-?$_Qj{lu*alHIr{lrmebzU~x~w0ul1p&2LzAzG2cw3MU$ChZ z&-8`|FC?lsK&IuYZGjSHg1$JW}b0&k1GhF=G3{{vfo@;Wk z8M|D%@aRYC2t}85ngfikUII7D{N1~$pfA)Zr7v1BA>E$L%@0gg7_3WD2}Af0dXN7)P+PM5%?pa za}|tS5I0h_DlXikh3@AnuYSLem+=IDGr2Wmh&~r{+cjd>tRS!Y@-TcThG_XV|3i2# zw?_SGc&wzxXXD@scV|U;L|0_I;Q-3IT5PVC3r$yyS4{91{X%GL2!JW87PEV^D(dr~ zb2td(bYh)@eE^0$S464A)>!H@Mh({vRj|SFB?A>w zD6v(V0(NTDL5cAp?3olwF-OcYPiI#I^4KX8Yj*-^#0C|Kv+gBEvAMa56wYoT zR|fsOCbWu>#HhZiX^m}^DJLw2hzoteAQW3P_oh{jA;1AX7%{v5Xd(pnM`{1Y#@gI+Vn)jWl=V@MQR9e zD{jqi-xF)-TWHjsjr#+_!GN>_5T3l4cfTOsLa#?HFE zR0*P;-D@J3C+_V7$?IBgtdY&atmQ&d&pYJXdL_t3v$)!xAaa>jK!f6P4AM@g>z{Vl z=j#27tB5JP*l7E%bZ8h4A}as6b1ruuDn<~fUGO$|cZ=64HU>Mu4V$r#D>=Hn0~(yl z2<>hjMlEd(f~Qx7Xbdv8wwcW_GOD!4u5s+#kh6&!d&^}tBCU4*;7EQf$7Mib*)Bb25@#=Y$z0&+}(qk@3#i)I0l3 z&}E~7$;j84a2x`WOUn@y$6|u2boe7KNwCBr#(bBaE-^^8aRNla1z8#a01-Czj#py{ zBJd$7_>K$P#)FAG+7=62xp5Snacw)I6nYa}JIg~zyhh*gh}NfIgcjmTV`4l{!+~q3 zSpXqy{J|nybK-Qc74WXbY=qC;0mK$5obutga;|-MpZ@S_FQT$qW79$(KEAb4e260^ zcPY8yvz(?^)W8@nMV>YjTi+Sl9sScsEiRwaAA7Oez6KfzK@df}#s3xQfZqs~5reh&T^L`}O+`XiI}kggf-DgFQ= zimsu17M3{INqQM;w{_QQdtEogo3aapICMJJk=wfK!#`33IBTlFkjc1C25ZpO1y^<& z_tkngT~Is;h7+&pG+_6u9RYxfA%0CF!MN@CS>f2DUSNIP`B5e}hkLOx?g0|&;T~SS zZtj!?JN9%tEt9**PdvI3K}!?O3@$k1r5cRf?LlG`BRl`DAMDyeme)X(8>{l61uIwm z3yNL}Y}1&P65wyA{3ag&u0)ZzSwx)!6KOJ&>?YURtoP=esbK+=bmovrUFcdFr~K`4rb z+n6I`j9^#anDK$l@E#(J%Maq*oav;XwGP?MwI-_IY-7PgchHXIW`L75HO_}_yvR8N zU_4j3#c`sG{sfWsz>jE*Yl-y2BRdZs+L5C`0_!!6m9LW(va0WOY4$q2z)b$N%tlyI@>8EwiIG#Oo`f9p;#(jg6xmBH5 zZhB#+S4^BzTeAa;7etJP5WWVpyF{rC` zZ(!4rE1#Z}Ew~UGtBzor!nk51PQK1><3?~_*K73Kxc(*|0It+96G@;G!i}zz=maW6 z$70$U!?MXoJ#&%9Z4!j0kLfr<`zq+VsvX*0OntCeOXRhd4Nkk28RtS1!#3fwM9>9g z-GEgi$xtBszm#+wj&59F zd5fU79YDDH(P*Q9yCI#vey2Bl6I!M+tP?&myJC}iac`MqvxT8MRhJ2kZ<}KqD-D0?| z-Fx^8x7xj~=02>Iy5j!4W=u(G} zZngs8001BWNklcku|k*uy)jcTrPT&RpL-)H@+@434iGgL|SH5_L<96%KL z7K5zc=c?Hn34*dGhru0NXx3QG8PsuAQ|fDL-#D?dD<@oLY=lv690LS<<}x zr5rBlDgtxX2S6>={T8d=)Gq;kUxIpwpJmxSL2mQ%Vy-9I+fJ9}P8joY7=!}oB&`XP z*IQSR8bhFA9YLo&`sIklnRBq`0HRr2p-{!PG0>>4#OeEuY!UFbjVXEyc2nfHjd8J6 z55_@Ed+c5MksoGU9zq&-0qq*Lj@9tg=&%e9ro5UYo5W>Gs;LY&bj_FHa z-^aB^>){>jC7J;&_9tD-_J-+=0P?4h-ihU<<2rnp1Q769562MDOF3?Cq|Ec$u;wy7?~B#`YpQ z<5&=WQ-;sBm|er*#vk&6<*}*l`iqV0ax|~L&?Pv|VG&2qc@PONay7ARtg5ik2#2@_ z+t$GcxDdk-nF{D~j>(eAtq~Q38NNl+>-WKZg(NQtktO~lFtWF#Z&XIuN1O&$w za~6B9;?{U{8_Rh@4EviO4d5{Z@}f76#zGT6ENuAOLB}_CegmuB)C3$z@my2vw|N%1 z+#|a%IBd^%?ujjul&y!m4kqr=Hxb8I4=qdqU-^_O11@uPas`5{Zt89L9=;D?a)N8n z*f~+iM`k}NY=&3WcC@jIcY<2pa zjwZ}S8kz5%)5BBN*akx^nk~_CjAAbLJr15V_h#84GY&ZC-Lm~iZ$7$HqJSWUGvlu3 zJU~;f)PpNngF8HJ(0SFMaMvalk)!q(5vM!ujQ^Iv+4xt9207(dJGIR9Jak(`ghiyw;C*?kN>Fz&CRv+%@hMmSq>1#a9b4^my zh+X$<+EwVw`vPiU%9(q>1hH+Qzl-X3^8j#VlSEHR(oOqWNRg|a1$5gC&QGd==6cO) zb+L_X%+H*AlhMhc2511<)lAvh(7~6JRZ{r!vU0SJ!0S|QsCpl66~^0^;*zD_hmbQM zWHPqy&|`TwPJ3fUaoPhbbnE2SpzF8sRcHGQC`@hj4`-y0955L~PGaG^Qh749m=juZMoXb6abu-XjGFP*XUEc~* z4Tgt>t^))(^gHd8d61|{V^}i@5MhmQ6<)8K`1y1&a#foj9BI8(Y#8wHI4lv#I=w<9m6j1+FgI-bP)$=20{bDr)Y5iWx@8(AU?1mzjKS8Wx|HN)?}<97!o5m3#Ocpj{`Rr2>3oh>P=qwm(PaI z>cCiljz2Djj6iN9SfQlNN9E^tCA7o(Eq-~fVHnZF=VBC2EIOO^$!h2;N}X|(3E_*; z4h(tPJBM&K9}}l+;kkm-?Ko+h&YeC|t%m{?=5mNbQ3LBXhifj{t|FaB{KX9Y(=H~H zy(8Z>w5dOeTjL%2n|7NU&-Q=it7&{U3s+!Ke=j0KI{CS*vLxPGozbJ(j<6TO>TY}l zAyirM_%QExU2HG&;(8z~S+p;)?ZXEMEpB{rz2I*SCMYs6W%jiF8ej0yi4-tagd{5c zeorJB%Rovpot1&IO_j6m2KFO(l(RqexygzXRGOlgM%VCkPOJcXjw+IZX%hCpDkrCamjphTwVQLn;LjIp)ZD3iax?Kt`N=gr@{0i0%yuuLg$ZRyf7GOwxVF8TOC*c^+- zNnM~wxjLG{sRMiJ?H-v%t%6m26Kw$Z+@S{dDtnmi+Ik3|9qjM(^VI%Iy$sB_-pRy? zNKAUS^?7tOl4|pVp2n1GJ=}zV0o@a!F-Erx?>Y~>@7z^u4bl=0(hehh=SMsW6jq6^ zen&XU@$Vav$nHa9Z-BZ-{pg?{nx)$=UiTw;UAV@Tj_dn7{Yzdx-qBa~SefQ0iqRe4 zfg0%v^uE3>uHCbm^9hA^Tg^BpAG7hrVAo8<&(VXwViBnS`rFugZNS|ccbm4=PVD=z zxNgc@d)?V2@0DHK{K7QoE7pxg&Xc1@X4m9*cm16|0KCn&Pjy)--F#=Zvf4Vq-P|kB zLWd&w^YJ~a#KHted+aJj+r^BI#hPn`^4x7JaL))B#IkfTOO|REQ<;rQ+G`^YUCpsj zz(Ri9zL!wIK*nac80(@A#}$ENx$mB|jc(F%#!o|BNY+tgm#Ki;s1vI={Fm*$<9B6G z)GZv_HaoU$b!^+Vt&ZL4*hzP6baY}T9pl7KPHgk$_df6aAMS@|f2&br@7iP4tXZq7 zR;~Fb>_LNWgwXHlS;>FfQv*QYRT`rs*wK=79XpXuP?M243sDce(|{1g+*melv%AYX zMClQ+?ur-S8M^p4*Yxd>r*YBupn%xW02MnA-nU8R{c(E>?QK0wcFrg_Rr&QOAjlX{ z_Y8j>YQ3;mMpFAevJQ_~&tTK%pXWOXg)QJ}h8cDW-uZNhw|h6T9Z*aS)#;+3vK^s| zm>H<2pcn>LfH&+Ajz>C(BeWfu2Xn@8>#2dVN1AOQ&6O~QP82X;n`PrYAiZhj8h0Z% z>is&Px{$^b`cfekYHd8L2zD>=3qYZPhC0v*B=2~re9?#-c#m;xD=yJABDDRfdR9$| z)X$}oMH|j|E&SU@IXZ8rp@L@Wp7pHfbmH>ui=aT=h)1jO0}0DOo_*Q z1xdEvwCUt}Ew&p#LS&}DPqIwVKHzH5Ms884smWHnS zx4cgH4#XYUx2f$Q6Ptgtvf=S-apWBaQ!hb7D31paYpY$2Cs5mSYYL$5i_d4*N&gILC zAehhkv~h?@o~3UL@OLk6XIJ3`{*F@`U~X>;dDttf?WVBHF7vEkty`kB1IP6DK{ z)UbaPJ#Q9_Ks`f!@@;rK-tgWvpK{*SzdeMpH8ZfR-9L?enPb_9FefF@k9BRm{NVrpc-52Fv{C+voR5ir-o?oh<#45XAiC9Qjt z2!goU!9RV9vwK z5}soYHep^haj@X+X$CX$C)qD2a21V;)+K+7or@)sdVTnDaAmXJrV1P42#- zC!`JkV{gekLZicG#D0BS90ln2?{po8T*>vB;Gly>XRaaGq8g2g_7_}`2Rq40Vz7#)9eZym6S!Hkbe>sd-dIl8&wd{$PFkMvFYTkT z&g1Lg#3m+gAd4r%1o}%|cf7*Zez2l~0g0vt4|f$2qz>P!p>nfw-H6jWZ}g!a=RhT!e>_y(E!NnIZlDyQ=d^S1ZZG9$tqZ0_O1J zM}=lxY?bUCNAM=>=+=r7n1v`gFywZ(7D_~z%fnG9gm`pcIjvXf&xP%OKTr`CB6-GZ z+CtAZ!rAnis5!lUwPe? zj?-7o=Ls!n9rpb5H&BVRS67wOFgIjZ8?PT_;yM3*x???!QYG8$(*7?`!-oXlOA7H}i1gI2)x++K}o%85}VcVC{F6Kq@%eKRgHbzGZNdY>ug8 zhK%a=CQ`%2g%w*xzX*CT8;#srne>T%b3tNo?YEd3&Xik6Yj<42*S5mz_z4~ED1xYM zRILwI5eOe|Bi-ex=Qr0TV@(Hj=-y$Hgn{oe9Wl3=Oy8OLWt#lkFkEL7 zUc`5xp69*t>U1S+mom&5tN6=i4oYJ6iPPG3R7Yd>d`czo`+PbPHALtk0rJeBl?KZ4 z2J20@x==Kc5?tjxZwb%6f3G7wuzPkrVejzgIBlC$p~U60nN(THMz z&}>8OgmGqDCeu9SxCiMt=Fmy_&92&p%d&|~dC2=;eKVjls|5B^2Zkr;Y)s1jtt@yGp3z|Q zINJMEi*+4pAd{N~hKCxcqVzkjuF76AVVk;|jFD#a+AZ#&_qyw#pHkHc`&rS`o>}fp zUHDRm`Ns3+!!w}=7Ioi$;qo>p>8|OCyOwa;5r>727rvl+kYPwuXrvzUhW==mvFLq5 zkcr=%XHA^NY~4d%&%}E#6He|=>?yJTDFw;d3JfKO&5f%`KNW-Z3*zVsan7L3A{STNLUjoQk$k|FgR=JSQeVJ`lfkq> z5n`3+u;G0`S?faE>YimD>j8=iIU~K0sDp6QEoZk7c083Zhg!xn_|84t@iMR&dfsM*)?%^K#%yI-Z$wYb7xtQ90z|9&r>~A&-|wQ8NkC^Vz+>Mm4k&FAh@>8$C2?*= zZbgMKoS1-sJ_p3R?t8_AOkQr!9fpFD`eb`)o-0FzyzHUW|8lAx#tMU3l@H@ z{+^@t?#kuml3pCi{L`{u#<92Vb6|dqfRFnCy#0ASi9X{s;10#(M~mK%l@zo4KV7ae z{zd8EUh)QtjD~+2J}C2T%Y($L`T{vqLVV5nMq4uo_w)~xlLJ_`Bz%XSsaJ_Xs)9(? z9vMQWB!k=?N7hi))01-GOPx!J1?-bGj6q=-yxK00Q8wE8tZw%$%+=Y#2TcahJjfOFO_oX4KmMuTM@E}WlrS`X?^g+C1Q7=VybL<5r| zUUD&WNin0cP2%~s%?Zz-ZH1?9qDGe4EaI2d6_va4u$9Zme4|R-)0H%$CE@VIEPe$R z^4?B)wCHTxPvH$%DQ5kWJKX>8fs2BQ#=7uk>cSd6uR)XRjUg zpDr0T01;^~9a7ucaE^R|K^CUM=TEb$*F4wZ=3#uyws$5R{o{l#=QhUV3WQ=jq0vptbGI6;K`_41W2$MwJ!@^l|EPB{GMpthz`uu#Tm6CTN0_MGbegZ(dVrpt>uPL&P;}$!|%NX!soQz{9 zCrZOK$ksAra7wRIy+ngMGZw0djwTk)M&SIl6u%VAyNcUX+O4pA5fl`~O*vP@)D4$m zw&5X-NkK`7IJgXu_g={}xp{wV7wh~@dY@*ghZtGB(A3r)%O%^YFYS=_CXa&#$3dD8 zz&MN)W#n8>*oewPIqjeQz-RcitJ35e3V5^@c3OwH^U_|KAA5gqRh<8h9D?P%NebyJ z|MT{r#?H83d6uqmgB3{V^Ib2o!}-txv;+tK4NHklj1lukKHG(Tg#{oz23*k+F!S%v zn@b^bDfBB18-yMIe&O}8xP_ZvcH*tOy0(;#HnRH`*v6)cN7Zv}g9D3MxqC?6E9Oyg z&bYYY%34Ek2F%I~6rv*rvLI7}v)=y9%eB#PGCc7;nh)#e4Gh0)2bh;b|I@0n0i#xX z(EwC=1O&G#s{|L0H{J)BkjZh`Il5R(T_RXOUe%7}422UzDpDdt%ERTeS)8hSwwV4z zO&!)2vzzTL95h+Dsu`O~s^kPh)#~77hud=X5m7OC&z;3+I{=*+C850w6 z5DN8XX0PIO$rAf*H%)^+j^edcyDPOkG`;)#hQ5`#kUsfF{g+zF5}~FU`+VmH(Mbad zd#BP!>hg+?;N`5sFm?n|Xi}ih*%|Ib_$w1sqja7UF^yUkX3gyoj6a-moDf zY=`N;A<)|aTV|?aOA!8>c}SojKuU?&Ip4B8^j?kbZNiM;&RWTnm+flzCSA^)Sc?xw z`N8Bl99NLDuh46ARM4MNlxIJI*$mimUA&)8y8UwdQ#t zsPCB#ESDu`Xje}$;`W{#{-+VBvvP*~ zlV>X!`3!zJE0m$D!PhfCou+!mn3_q^^5(B?_;%)d{@X=j}$C zKP@i=R6;qU9V}MFnn5M96{$KJW@<&z6C3LjGRT;En!2Ppbg-*5p^!M?Sr92x29#MY zK|eaLh8sLR+UOW1_)m?`HCD+7(j1Q7O=(`gKdt9&XE-hDvvmk&dOfzTrq%vs-a>dL zYGxC%x%WLge81WpzaH(1AK|cFb;E_Mb{eZL)e|q6hAQ=COhg~Wl$sR2?;H)vf1f+? z6~>>zlk2l7ga(2a2~0;Z^T(rGcp|IMq7p^#7TxzM&MLHx+Ehv#Le;z(;u^k{Foq9s zeC0;RLJ~FgK!@@3AgX0Qx0r-1Fm$jC{n6Z3aiHKt2e z2J2S)N{unB-}Cn_PmsDYicH$sInn>y1h@yPgAptXg>vKr!<2*2jAkT^@LBJ@bfNWx zgR~try`C?gZrYMraZH)P)Q(4LfZ|)W?<)m+YKpf$&u>mlqjn{8+X1!ARK&=->M5Qd z9CVA$r0uajPar2EEiR8A@w-Qug3+3MlZ(uFNm5R3-o%_}8r9!scdUgrxKGFBj8KE+ z77$rosS_;cwv5 zkRjF~_DyPf(>s9*m0_a~qzZt1%N71AlM&j)E}jV;2`JyBd2LcjM)`Vr+f7T$N69;Ja7%zG6dYd+v9Y*21nr&%=wSOM5A1EJ5Y#5 znDVlcM^6drV&zH6<7JUwYFPxF5vEc~--xKwMvhgLH&EkwL-2zb>^kqw0kj%WYZ5ki z1CPNW(N1PV6(~s9^M{Yq1^5f){c*kAJf@fCU1yd>!S-#hYSvp8625_Zj^^PcV1e?f zO$}@JT=$1+x8ci_`XD|t)WIE7>n?yd5T^vd5AV`kX=VI3GY{cBo5=<|e55|oqv5zX zYsXp}(0o)Lmy1Ue3Cv_UL-O%?J!s;F<6<@hKO`OD;E#87qVC_nX8~`7lzELY1$$Q) zY=|eviGq6__cWo2B<7v2$s zrBt2gNHnSHHT27nhf7oxUzvpSS39l0(qob_{uKW&rM%oA>CiX0ZR>?s&ZVXh^MIfz zlYzSDMr11j{L-=Q0|oNZo5ITkQFl)TMR+kOr;zMubS5P)Y?A?3h{n!I*~Rl00sPB9 zYc?8&jkI{a``X+&h}>~fp_;Q4_G(l|Ho*Y8e&+Q!rL6SX9rMl8VtEvQ|1tB+5JlFV zqhC$-u91h8B)Q71CeG+i0P4Wt+5to4NCiikH-?|@N#IeSbLspx?zPAQJ?=-lpbJBu zT{#iSl4Z@y^xPO~8v+KQ4HlO@M?r({Ds@~V&L012m`DA(ne&m=@-?X3jJtGZ*Qy{+7dT`;NmG)A$SfaTy-+>4%UbLgB zLv69M3ccGPPr|obxBGyKc1<>}1AgN=@qCTfESBRJtX`{YUf^GRF*_}3;l5wFHSBl$ z+MG1>XRyu(gF{5M>a7M1yF3b3Zl|PYCd|PV2z&ybTZOxc+q*7ZpuCxbp+QYD6k~mf zV-r;{FhWOJNihwntGfK|wQ|8`Ve1ufzZS;otR?SoR_CadrKSx7{dpqZ%Q44w6^DzE z4Jyx!B6E>2o<`Tehz&&;r{Q4{LsIwUC-Q-7VgXqm3@+cB!{hCc$a;Wg2iv6JR*({@$z%xs_vtwqzeblB07#bOi0A;=t}WO z={RxZ{JvDMkssb@aDE-lV`Nl>sTi}Iq&XTv#s;vnjM2eHx8$x_Fne@HP6rACfl=Z*>*WcH@m2HYlXSVUlMH8eotHJTIx8aooNnFTj zkEV7wiyz~t94<!R z{MoX#h}E;stLcqXs$TEKLsyHUbLLP((p43uC#^%M#l{0TSBrmnzq ziK&U8JBm&R!mu}rxw!)?NW$Ui=!v~t7O-sxk*?bF#lQ62@-((eMz;P*Yv?_#hR;Ap zQmJ4A{9U7bZCED>)Yj6JYW=GXk)alZt9MxZ>y~1)N>Q1raHtbaR}vaS+dVv>`^5B` z7$Y>E>m6eJOyZsvAeZX7n~YQLLe)?|W{)E=>JOZlgde4D^BqC{ zS$UdSdM#j_`YZ%z{^#J3tn0kVx7bSS*X})(YjrWxIAN^9T2)5#0sc2)&g+Aep(+n7gLX3J$jChmE z>c@NrwMQ1932euGp&VoprU-Xw7k5HWsTCAkvUYAW)6picv%ePNw_zSIQ7JkNygMI2 z>GrdP#WXy^6ZVLdwc81jMFFxw1!C6p!1ZX$PI*)FAym8F<*PD>t7rLkL;PvZ-K6gx zdbQ0TaL_mKy`jQ92G)B`6`R;eL!*50ltF{F~aFVUw z7^ebI7!7HCk`p0;k9ZT;-+-p;pw355egQ<;bA`|vymTOLhRklvA5e#Vlm%Cx>+ zpI8yYIv%l7>2=o)dj@qdh?2dI3_G>w$oyb10K8mO(Vromu0l<)*D#ei5?+V=9ad2^ z=j(wp>~(G?IqHeMsR2N(9?iIQkriH64Fz^BzvREfM!5=)04vc13Y1*VC|r)piW-*H z~?80jV8C2g}1{*JRzM@P(tR5nX_TU<6MOqjk5)nLcb6N2(Z>z75F2;_x_& z{z}i<*p`yC!6Lt$Ep_!ut}S8khjyhEcm+Ro@;gR2?qw>6piWHSnTh;VoE-ba{?yvy zxl}$Od6Ti0kEUT8==Js4+*FN-z~1vh%P~-9@q!Ko_V9?Z-mtbMU2LzmtezwJmD^0U zS#*xrgP2iF2kl{?j~!7cb1n1OXfw_fp(JfxTwL=jJ(kL24TRtsHofqcY0);+Vq?DR zFdN-F+a%*2R#f*VP{K#dqQXjgA3N)N#%${-Un_&t z+$!EXc>#wzi!#F8BVA3mR*B4(vG0;k!fiYLT6&y+TPD>gOK z!bxqaweUnw7v@F7+)}$>^b)cy|L~X9AOqX}$y!17QPoq zuDHQnT>iDwOfyO-@eZ*lHl+G=%sYN;sqxwUj3z-pQAO`i9gZVpIl5|_ET{p&UZ#-f z?ueA~6Yw+}{t;RJfIsZo9s`>%P@( z&OmSL>5zJiJvje+J;#rs;h?^lHeeR`s6<&X$xx2m_5dj}ua%#*E+qXjP<2uQCtSw2 z@B><#+@;Zb2SimzxGilZ3PuQ0l)LSh<}lrtT6dW%Ox)9n(%U~IeM&nVHT~79^34LR zfjGXFmpmU6LYyd6n3sLpc(a5UZ`b_|`@cODZNcFV_(^#sl}FE6IW6ibM+KuEx0&ls z(&3Mb5OjlY0JuAfN~zyw37RtYu^epw8Vn@kX_Rpxs^})Ph!_5*^DWzGArS!F*miNV z6)nS?vh%F>v@l++nJA%x`7;1}oPVcHZi=nl9`63EZZCATpz<7)7Ay1}dgX4Qd@D3R zp=#~iXTVs6*X)8V2Wty3F$yuB<-e4SXBE<6z!##eJ{6HG?+wc=;SX=}9G?8r#Hq=Y z8?bw6c!@xavT@l>!!@;(j4G!NS5$m~!wBEAF(pUX!~TeDV7{&oEjh+g_9E#0BM;s1 zJ;${u;T?f7mpNiqkq*Wt0>>Csf*u7jymsL8py50vIm=KqtxcZ2!ODOutKDs81ND6W zT2g)#M?L#6y!Q7;zrn$I+;-54*45#FiWiaEQl1EG8f_u zbm1d{(=pvNxuIw0``Q}mSZkg5=Ym_tQ(#hnROkDtGQKgH(%9c~)GuHT)QBxar;R~O z3~nNeW+JlZ>fSvmLKby0vZ!SO&C}NqW`>%(q8}5;3DAdv7oBldp`=&~58Vh}9wuTv zBbQ2$93yo}-A-UHs!2Wmj(C(N8jOxMXdHsv_#3$Zeyi5UBwT7NG?MXNTM$+l`khZ7bmVV-Y}e>S*(t*~Gg1dHyZW_MWPSd#Ak4SF>En;@@=!!x!}$e}qi0 zodSh$zbV}0gM7q%*{&#dwy1i=!8^AMjW~Ulrf0Ebg4LHV6Tms#(6I;{Up>xCtGg=5 z0K_ePF;iL$y{;uoM5*{+{iEpjWa7-Otgt!9Tp6HXoD)<+^xh`lG@plx)Ll7Z9xa7RM!m?D408W*9Ld} zN3r)wPlP$4tpq%?3y@w}ewXSsFFF!K<9p26 z0)PG3(*nyj_HsUU=@#t;!Z0Cf`SlrvAI2TfV# z_G-35!7D!W!@flV<17KW_DIB7Lp7kDBtsQ^BO8>*Vr?PTSLZ^&CN$9<`MsYP>-MKe zubHb?n%&dX56cPy<9hHiUkQap1@BAJhtDRe^UAL8oPVo+lN`M5_hv;~;zJ=tWAS~A zV2{FV2M2%&ZUl8b07kh(NU@j9C{u&l(I#SX7!2y=#u9}0R)A&$ar$6m$5dZoNf&q! z4BOF^1sTjNhexAHZT)mIAd9lMO1qmSx9?kCEPCJl({NK50f_U_&ho#7X-C;)s<;$S5% z4vHd~2$A&?9LU?)Fp#yJr(6IbYpK3j?Hy#1qjz+{@1rzIOXAX`cAnZ^me~y}BJ3)5 z!^$X0{tai}hAipB7~m9_^n^UtDRP4?Th+8`;YTBmb zACuCl5E=lA{;*N;xK6ym2B56KiZshIq_08GxkiegU*(31V z8^a62eZ&EMc+{t)TTH-70Ni_9H&erN94u}pj%ZCu^iAJz`mjMlUF}Z16)R(omSt#r zijUeW?@_=#&PG8GWp-V@>pa=CYAlBDKVK-vX`L_aLe3>7n}i(v)NN0gErw59^EBO- zi><{|Ox`6i(vLf)WC0nhr^GL;2gv*}A;G@N)<8rBk`=y;z#0VmR!cothW3k}wp3*Z zga}A0vJ~qrKuLb;*p4M8!+`A}$5gw`fU=J)qO@PJhpCfJp2C_~9j&6c4G@7L#f@EN zN9G5RnqmBo(oGNou7gB*LN_+2c@3__Q^$gk`8Ak#QYELSr!Xw3%%~U0?Ofp1VR*&3 zuTIO!4t|5pa%qF1#G2@=>1z-IF;o25^VC5DiYnJsoPnpf*U{xqm4>WTj1pAdZCOKo z-#uL`aru!sjIx!z_pa*<&fjBoU@BLUdNll`H51!`j~vOx;Z4ek{sdJ#XauuE0B(EoTddf ztkS`S`s*^V*r*MaIZWtzlyZs&ba)h?%(~JImFwFL{>i#{$T~@5;o;c218XslE`Y@# zYAVQt2?6UP2%OXd2ULqb11lzUT09e?uSc8vtfA;}as^8_2q6hVzUg!~DtlYOGjh%) z3HBn?s#x=nn640|xnn)qLN|gx*}_X)5ktSEh8XoX&)BwyOCdHf1za|s_QZ%bpP#C| z8>PRly-_op^xzIxQ$zud4LWY>hO`kMV?vtj`S9aT6PR#SwhpXLO3xpe$V2GG zG+G&_ggg#tu5s}nrmG6Fb*9Hd-~_v=B0`4wrOa|UCC2eHPML;(W?P;ld~OdTH2z$X zdcBJ(6D{(qGkSFY+p=xyEeh7^MKomcZb5t41u^5wek6+4q_yn&QO?d1tMb8240+ui zLr+tsS23g9dABBb*5XbyvPH7|iX~2rFtN8ZM?XsIo9&LG6h|@hK0RUV-njf5Pyi04 z9`?As(Kx5r)%ohc(^gmZbuS#(*mH}L2Qg>v3BZ<>Q_F2Pb)d~=IKW=?UhH_u8w-z~ z>YP;xZR`%&jEWUuO4K!TKcRn(*L2sk@X-K1(jUK;p))L)S^A5!xc5?nj4))Y!l^A- zDOArE2(iLcJ7{1UsEXlX>+)S7{?V8T%Ve?1`w@GCfhYRWGVs&LRkeD_foUA-X1C0` zxHF)*qYF6upsnBVG8Y#NE3P=K{;gAAJ7XCYh3eU14V(xD)?j`Vg3)vPvU8k3=QnDUglAHk7@2(d#Yj^hydNc-Mgduur-6KdstR3Tu|E@m z=VGA;x{iO*G(^Og`<1@~@7cDYKUXccqwh~7KN&tHMtKxZgAcBLN<0?No2_=#6p)0X zCE{B2VB-Nc?95Z@<4n3{)~HCln_0F4J5}>z5B}`_K^~rPKt^SbIKYDb(EQKqtn)LV zd$5Q0(;Qwj#+)PR`D|<4OIq^vTYo?#IsZ6~hw#{Ed>`OT*xiwGAZ7>S{8418!fZLB zLEO^AC)iUv|Li?XhcevNWgb+#@hh-~Xdau(pK2ZU1s@!gYCL;>#6Z#JzAbZ$gaNM1 zYXg!uX7MCg1}%;(z0J%m8|WXX%4YZ0o$7kjNw-=Fy1`Gc zXD557f{$PVZWaB!xpRtre>#K0c9vDsoFTe3ZA4YK>(swM({qt>7#S1?@rq~>9L%}` zu)jNW_4|OJOnm;{!GqQkZqvagU?+fjY_*p2?;e&&A7B5rsNTBnQ+MNMGU+^}Tiz=y zvp%C2*r|KwJsC<%;*# zMa0{Ux86HK1weu)14F2=-pC=WXU(fWL~ZgRTjjL1f_`f`XNf4*6a0S+1AmP{03Fl{ zaSA=I077(Sygb}8TmrpmPV2sc$gibCX|J}l3xidjx2ALBRml(}Lut{Vi+j1gUTvce z#E|*_ilSI;{~__QS^4n4T2ZWM2;kRbx}AL|OY}cQ)$RPR>1KUiIP0t7Xo#;58T@A= z`#Bod|0zm_`hTItMfuet@xR)yW?U4%dahQsVDSI8dO`Q)s0y8@^8N2m{I4bcee2B=MSsD*9$6_R$y#xfu>S*`K+{72 literal 0 HcmV?d00001 diff --git a/Lesson-4/assignment/payroll/box-img-sm.png b/Lesson-4/assignment/payroll/box-img-sm.png new file mode 100644 index 0000000000000000000000000000000000000000..466e7097e3d2a107209588dc65c5412000467e1a GIT binary patch literal 5412 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 literal 0 HcmV?d00001 diff --git a/Lesson-4/assignment/payroll/config/env.js b/Lesson-4/assignment/payroll/config/env.js new file mode 100644 index 0000000..5d0ab7b --- /dev/null +++ b/Lesson-4/assignment/payroll/config/env.js @@ -0,0 +1,28 @@ +// Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be +// injected into the application via DefinePlugin in Webpack configuration. + +var REACT_APP = /^REACT_APP_/i; + +function getClientEnvironment(publicUrl) { + var processEnv = Object + .keys(process.env) + .filter(key => REACT_APP.test(key)) + .reduce((env, key) => { + env[key] = JSON.stringify(process.env[key]); + return env; + }, { + // Useful for determining whether we’re running in production mode. + // Most importantly, it switches React into the correct mode. + 'NODE_ENV': JSON.stringify( + process.env.NODE_ENV || 'development' + ), + // Useful for resolving the correct path to static assets in `public`. + // For example, . + // This should only be used as an escape hatch. Normally you would put + // images into the `src` and `import` them in code to get their paths. + 'PUBLIC_URL': JSON.stringify(publicUrl) + }); + return {'process.env': processEnv}; +} + +module.exports = getClientEnvironment; diff --git a/Lesson-4/assignment/payroll/config/jest/cssTransform.js b/Lesson-4/assignment/payroll/config/jest/cssTransform.js new file mode 100644 index 0000000..aa17d12 --- /dev/null +++ b/Lesson-4/assignment/payroll/config/jest/cssTransform.js @@ -0,0 +1,12 @@ +// This is a custom Jest transformer turning style imports into empty objects. +// http://facebook.github.io/jest/docs/tutorial-webpack.html + +module.exports = { + process() { + return 'module.exports = {};'; + }, + getCacheKey(fileData, filename) { + // The output is always the same. + return 'cssTransform'; + }, +}; diff --git a/Lesson-4/assignment/payroll/config/jest/fileTransform.js b/Lesson-4/assignment/payroll/config/jest/fileTransform.js new file mode 100644 index 0000000..927eb30 --- /dev/null +++ b/Lesson-4/assignment/payroll/config/jest/fileTransform.js @@ -0,0 +1,10 @@ +const path = require('path'); + +// This is a custom Jest transformer turning file imports into filenames. +// http://facebook.github.io/jest/docs/tutorial-webpack.html + +module.exports = { + process(src, filename) { + return 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';'; + }, +}; diff --git a/Lesson-4/assignment/payroll/config/paths.js b/Lesson-4/assignment/payroll/config/paths.js new file mode 100644 index 0000000..96c3dfb --- /dev/null +++ b/Lesson-4/assignment/payroll/config/paths.js @@ -0,0 +1,46 @@ +var path = require('path'); +var fs = require('fs'); + +// Make sure any symlinks in the project folder are resolved: +// https://github.com/facebookincubator/create-react-app/issues/637 +var appDirectory = fs.realpathSync(process.cwd()); +function resolveApp(relativePath) { + return path.resolve(appDirectory, relativePath); +} + +// We support resolving modules according to `NODE_PATH`. +// This lets you use absolute paths in imports inside large monorepos: +// https://github.com/facebookincubator/create-react-app/issues/253. + +// It works similar to `NODE_PATH` in Node itself: +// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders + +// We will export `nodePaths` as an array of absolute paths. +// It will then be used by Webpack configs. +// Jest doesn’t need this because it already handles `NODE_PATH` out of the box. + +// Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored. +// Otherwise, we risk importing Node.js core modules into an app instead of Webpack shims. +// https://github.com/facebookincubator/create-react-app/issues/1023#issuecomment-265344421 + +var nodePaths = (process.env.NODE_PATH || '') + .split(process.platform === 'win32' ? ';' : ':') + .filter(Boolean) + .filter(folder => !path.isAbsolute(folder)) + .map(resolveApp); + +// config after eject: we're in ./config/ +module.exports = { + // Changed from build to build_webpack so smart contract compilations are not overwritten. + appBuild: resolveApp('build_webpack'), + appPublic: resolveApp('public'), + appHtml: resolveApp('public/index.html'), + appIndexJs: resolveApp('src/index.js'), + appPackageJson: resolveApp('package.json'), + appSrc: resolveApp('src'), + yarnLockFile: resolveApp('yarn.lock'), + testsSetup: resolveApp('src/setupTests.js'), + appNodeModules: resolveApp('node_modules'), + ownNodeModules: resolveApp('node_modules'), + nodePaths: nodePaths +}; diff --git a/Lesson-4/assignment/payroll/config/polyfills.js b/Lesson-4/assignment/payroll/config/polyfills.js new file mode 100644 index 0000000..7e60150 --- /dev/null +++ b/Lesson-4/assignment/payroll/config/polyfills.js @@ -0,0 +1,14 @@ +if (typeof Promise === 'undefined') { + // Rejection tracking prevents a common issue where React gets into an + // inconsistent state due to an error, but it gets swallowed by a Promise, + // and the user has no idea what causes React's erratic future behavior. + require('promise/lib/rejection-tracking').enable(); + window.Promise = require('promise/lib/es6-extensions.js'); +} + +// fetch() polyfill for making API calls. +require('whatwg-fetch'); + +// Object.assign() is commonly used with React. +// It will use the native implementation if it's present and isn't buggy. +Object.assign = require('object-assign'); diff --git a/Lesson-4/assignment/payroll/config/webpack.config.dev.js b/Lesson-4/assignment/payroll/config/webpack.config.dev.js new file mode 100644 index 0000000..821743a --- /dev/null +++ b/Lesson-4/assignment/payroll/config/webpack.config.dev.js @@ -0,0 +1,242 @@ +var autoprefixer = require('autoprefixer'); +var webpack = require('webpack'); +var HtmlWebpackPlugin = require('html-webpack-plugin'); +var CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); +var InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); +var WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); +var getClientEnvironment = require('./env'); +var paths = require('./paths'); + + + +// Webpack uses `publicPath` to determine where the app is being served from. +// In development, we always serve from the root. This makes config easier. +var publicPath = '/'; +// `publicUrl` is just like `publicPath`, but we will provide it to our app +// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. +// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz. +var publicUrl = ''; +// Get environment variables to inject into our app. +var env = getClientEnvironment(publicUrl); + +// This is the development configuration. +// It is focused on developer experience and fast rebuilds. +// The production configuration is different and lives in a separate file. +module.exports = { + // You may want 'eval' instead if you prefer to see the compiled output in DevTools. + // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343. + devtool: 'cheap-module-source-map', + // These are the "entry points" to our application. + // This means they will be the "root" imports that are included in JS bundle. + // The first two entry points enable "hot" CSS and auto-refreshes for JS. + entry: [ + // Include an alternative client for WebpackDevServer. A client's job is to + // connect to WebpackDevServer by a socket and get notified about changes. + // When you save a file, the client will either apply hot updates (in case + // of CSS changes), or refresh the page (in case of JS changes). When you + // make a syntax error, this client will display a syntax error overlay. + // Note: instead of the default WebpackDevServer client, we use a custom one + // to bring better experience for Create React App users. You can replace + // the line below with these two lines if you prefer the stock client: + // require.resolve('webpack-dev-server/client') + '?/', + // require.resolve('webpack/hot/dev-server'), + require.resolve('react-dev-utils/webpackHotDevClient'), + // We ship a few polyfills by default: + require.resolve('./polyfills'), + // Finally, this is your app's code: + paths.appIndexJs + // We include the app code last so that if there is a runtime error during + // initialization, it doesn't blow up the WebpackDevServer client, and + // changing JS code would still trigger a refresh. + ], + output: { + // Next line is not used in dev but WebpackDevServer crashes without it: + path: paths.appBuild, + // Add /* filename */ comments to generated require()s in the output. + pathinfo: true, + // This does not produce a real file. It's just the virtual path that is + // served by WebpackDevServer in development. This is the JS bundle + // containing code from all our entry points, and the Webpack runtime. + filename: 'static/js/bundle.js', + // This is the URL that app is served from. We use "/" in development. + publicPath: publicPath + }, + resolve: { + // This allows you to set a fallback for where Webpack should look for modules. + // We read `NODE_PATH` environment variable in `paths.js` and pass paths here. + // We use `fallback` instead of `root` because we want `node_modules` to "win" + // if there any conflicts. This matches Node resolution mechanism. + // https://github.com/facebookincubator/create-react-app/issues/253 + fallback: paths.nodePaths, + // These are the reasonable defaults supported by the Node ecosystem. + // We also include JSX as a common component filename extension to support + // some tools, although we do not recommend using it, see: + // https://github.com/facebookincubator/create-react-app/issues/290 + extensions: ['.js', '.json', '.jsx', ''], + alias: { + // Support React Native Web + // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ + 'react-native': 'react-native-web' + } + }, + + module: { + // First, run the linter. + // It's important to do this before Babel processes the JS. + preLoaders: [ + { + test: /\.(js|jsx)$/, + loader: 'eslint', + include: paths.appSrc, + } + ], + loaders: [ + // Default loader: load all assets that are not handled + // by other loaders with the url loader. + // Note: This list needs to be updated with every change of extensions + // the other loaders match. + // E.g., when adding a loader for a new supported file extension, + // we need to add the supported extension to this loader too. + // Add one new line in `exclude` for each loader. + // + // "file" loader makes sure those assets get served by WebpackDevServer. + // When you `import` an asset, you get its (virtual) filename. + // In production, they would get copied to the `build` folder. + // "url" loader works like "file" loader except that it embeds assets + // smaller than specified limit in bytes as data URLs to avoid requests. + // A missing `test` is equivalent to a match. + { + exclude: [ + /\.html$/, + /\.(js|jsx)$/, + /\.css$/, + /\.json$/, + /\.woff$/, + /\.woff2$/, + /\.(ttf|svg|eot)$/ + ], + loader: 'url', + query: { + limit: 10000, + name: 'static/media/[name].[hash:8].[ext]' + } + }, + // Process JS with Babel. + { + test: /\.(js|jsx)$/, + include: paths.appSrc, + loader: 'babel', + query: { + + // This is a feature of `babel-loader` for webpack (not Babel itself). + // It enables caching results in ./node_modules/.cache/babel-loader/ + // directory for faster rebuilds. + cacheDirectory: true + } + }, + // "postcss" loader applies autoprefixer to our CSS. + // "css" loader resolves paths in CSS and adds assets as dependencies. + // "style" loader turns CSS into JS modules that inject