<?php
'Me' => 500,
'Ma' => 400,
'En' => 200,
'An' => 800
);
'Me' => 20,
'Ma' => 15,
'En' => 5,
'An' => 50
);
'Me' => 200,
'Ma' => 150,
'En' => 50,
'An' => 5
);
class Employees
{
public $department;
public $position;
public $rank;
public $boss;
public $salary;
public $quantity;
public function __construct($department, $position, $rank, $boss, $quantity, $rates)
{
if ($rank == 1) {
$factor = 1;
} elseif ($rank == 2) {
$factor = 1.25;
} elseif ($rank == 3) {
$factor = 1.5;
}
$this->department = $department;
$this->position = $position;
$this->rank = $rank;
$this->boss = $boss;
if ($this->boss == true) {
$this->salary = ($rates[$position] * $factor) * 1.5 * $quantity;
} else {
$this->salary = ($rates[$position] * $factor) * $quantity;
}
$this->quantity = $quantity;
}
}
class Department
{
public $departmentName;
public $personelAmount;
public $departmentSalary;
public $departmentCoffe;
public $departmentDocumentation;
public $salaryPerPages;
public function __construct($employees, $coffe, $documentation)
{
foreach ($employees as $employee) {
$this->departmentName = $employee->department;
$this->personelAmount = $employee->quantity + $this->personelAmount;
$this->departmentSalary = $employee->salary + $this->departmentSalary;
if ($employee->boss == true) {
$this->departmentCoffe = ($coffe[$employee->position] * 2) * $employee->quantity + $this->departmentCoffe;
$this->departmentDocumentation = 0 + $this->departmentDocumentation;
} else {
$this->departmentCoffe = ($coffe[$employee->position] * $employee->quantity) + $this->departmentCoffe;
$this->departmentDocumentation = ($documentation[$employee->position] * $employee->quantity) + $this->departmentDocumentation;
}
}
$this->salaryPerPages = round($this->departmentSalary / $this->departmentDocumentation, 2); }
}
class Company
{
public $total = 'Всего';
public $totalPersonelAmount;
public $totalSalary;
public $totalCoffe;
public $totalDocumentation;
public $totalSalaryPerPages;
public $average = 'Среднее';
public $averagePersonelAmount;
public $averageSalary;
public $averageCoffe;
public $averageDocumentation;
public $averageSalaryPerPages;
public function __construct($departments)
{
foreach ($departments as $department) {
$this->totalPersonelAmount = $department->personelAmount + $this->totalPersonelAmount;
$this->totalSalary = $department->departmentSalary + $this->totalSalary;
$this->totalCoffe = $department->departmentCoffe + $this->totalCoffe;
$this->totalDocumentation = $department->departmentDocumentation + $this->totalDocumentation;
$this->totalSalaryPerPages = $department->salaryPerPages + $this->totalSalaryPerPages;
}
$this->averagePersonelAmount = $this->totalPersonelAmount / count($departments); $this->averageSalary = round($this->totalSalary / count($departments), 2); $this->averageCoffe = round($this->totalCoffe / count($departments), 2); $this->averageDocumentation = round($this->totalDocumentation / count($departments), 2); $this->averageSalaryPerPages = round($this->totalSalaryPerPages / count($departments), 2); }
}
function padRight($q, $w)
{
}
function padLeft($q, $w)
{
}
new Employees('Закупок', 'Me', 1, false, 9, $rates),
new Employees('Закупок', 'Me', 2, false, 3, $rates),
new Employees('Закупок', 'Me', 3, false, 2, $rates),
new Employees('Закупок', 'Ma', 1, false, 2, $rates),
new Employees('Закупок', 'Me', 2, true, 1, $rates)
);
new Employees('Продаж', 'Me', 1, false, 12, $rates),
new Employees('Продаж', 'Ma', 1, false, 6, $rates),
new Employees('Продаж', 'An', 1, false, 3, $rates),
new Employees('Продаж', 'An', 2, false, 2, $rates),
new Employees('Продаж', 'Ma', 2, true, 1, $rates)
);
new Employees('Рекламы', 'Ma', 1, false, 15, $rates),
new Employees('Рекламы', 'Ma', 2, false, 10, $rates),
new Employees('Рекламы', 'Me', 1, false, 8, $rates),
new Employees('Рекламы', 'En', 1, false, 2, $rates),
new Employees('Рекламы', 'Ma', 3, true, 1, $rates)
);
new Employees('Логистики', 'Me', 1, false, 13, $rates),
new Employees('Логистики', 'Me', 2, false, 5, $rates),
new Employees('Логистики', 'En', 1, false, 5, $rates),
new Employees('Логистики', 'Me', 1, true, 1, $rates)
);
new Department($workers1, $coffe, $documentation),
new Department($workers2, $coffe, $documentation),
new Department($workers3, $coffe, $documentation),
new Department($workers4, $coffe, $documentation)
);
$company = new Company($departments);
$col1 = 20;
$col2 = 8;
$col3 = 12;
$col4 = 12;
$col5 = 12;
$col6 = 12;
echo padRight("Департамент", $col1) .
padLeft("сотр.", $col2) .
padLeft("тугр.", $col3) .
padLeft("кофе", $col4) .
padLeft("стр.", $col5) .
padLeft("тугр./стр.", $col6) . "\n" .
foreach ($departments as $department) {
echo padRight($department->departmentName, $col1) .
padLeft($department->personelAmount, $col2) .
padLeft($department->departmentSalary, $col3) .
padLeft($department->departmentCoffe, $col4) .
padLeft($department->departmentDocumentation, $col5) .
padLeft($department->salaryPerPages, $col6) . "\n" ;
echo padRight($company->average, $col1) .
padLeft($company->averagePersonelAmount, $col2) .
padLeft($company->averageSalary, $col3) .
padLeft($company->averageCoffe, $col4) .
padLeft($company->averageDocumentation, $col5) .
padLeft($company->averageSalaryPerPages, $col6) . "\n";
echo padRight($company->total, $col1) .
padLeft($company->totalPersonelAmount, $col2) .
padLeft($company->totalSalary, $col3) .
padLeft($company->totalCoffe, $col4) .
padLeft($company->totalDocumentation, $col5) .
padLeft($company->totalSalaryPerPages, $col6);
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKJHJhdGVzICAgICAgICAgPSBhcnJheSgKICAgICdNZScgPT4gNTAwLAogICAgJ01hJyA9PiA0MDAsCiAgICAnRW4nID0+IDIwMCwKICAgICdBbicgPT4gODAwCik7CiRjb2ZmZSAgICAgICAgID0gYXJyYXkoCiAgICAnTWUnID0+IDIwLAogICAgJ01hJyA9PiAxNSwKICAgICdFbicgPT4gNSwKICAgICdBbicgPT4gNTAKKTsKJGRvY3VtZW50YXRpb24gPSBhcnJheSgKICAgICdNZScgPT4gMjAwLAogICAgJ01hJyA9PiAxNTAsCiAgICAnRW4nID0+IDUwLAogICAgJ0FuJyA9PiA1Cik7CgpjbGFzcyBFbXBsb3llZXMKewogICAgcHVibGljICRkZXBhcnRtZW50OwogICAgcHVibGljICRwb3NpdGlvbjsKICAgIHB1YmxpYyAkcmFuazsKICAgIHB1YmxpYyAkYm9zczsKICAgIHB1YmxpYyAkc2FsYXJ5OwogICAgcHVibGljICRxdWFudGl0eTsKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkZXBhcnRtZW50LCAkcG9zaXRpb24sICRyYW5rLCAkYm9zcywgJHF1YW50aXR5LCAkcmF0ZXMpCiAgICB7CiAgICAgICAgaWYgKCRyYW5rID09IDEpIHsKICAgICAgICAgICAgJGZhY3RvciA9IDE7CiAgICAgICAgfSBlbHNlaWYgKCRyYW5rID09IDIpIHsKICAgICAgICAgICAgJGZhY3RvciA9IDEuMjU7CiAgICAgICAgfSBlbHNlaWYgKCRyYW5rID09IDMpIHsKICAgICAgICAgICAgJGZhY3RvciA9IDEuNTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmRlcGFydG1lbnQgPSAkZGVwYXJ0bWVudDsKICAgICAgICAkdGhpcy0+cG9zaXRpb24gICA9ICRwb3NpdGlvbjsKICAgICAgICAkdGhpcy0+cmFuayAgICAgICA9ICRyYW5rOwogICAgICAgICR0aGlzLT5ib3NzICAgICAgID0gJGJvc3M7CiAgICAgICAgaWYgKCR0aGlzLT5ib3NzID09IHRydWUpIHsKICAgICAgICAgICAgJHRoaXMtPnNhbGFyeSA9ICgkcmF0ZXNbJHBvc2l0aW9uXSAqICRmYWN0b3IpICogMS41ICogJHF1YW50aXR5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5zYWxhcnkgPSAoJHJhdGVzWyRwb3NpdGlvbl0gKiAkZmFjdG9yKSAqICRxdWFudGl0eTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnF1YW50aXR5ID0gJHF1YW50aXR5OwogICAgfQp9CgpjbGFzcyBEZXBhcnRtZW50CnsKICAgIHB1YmxpYyAkZGVwYXJ0bWVudE5hbWU7CiAgICBwdWJsaWMgJHBlcnNvbmVsQW1vdW50OwogICAgcHVibGljICRkZXBhcnRtZW50U2FsYXJ5OwogICAgcHVibGljICRkZXBhcnRtZW50Q29mZmU7CiAgICBwdWJsaWMgJGRlcGFydG1lbnREb2N1bWVudGF0aW9uOwogICAgcHVibGljICRzYWxhcnlQZXJQYWdlczsKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRlbXBsb3llZXMsICRjb2ZmZSwgJGRvY3VtZW50YXRpb24pCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGVtcGxveWVlcyBhcyAkZW1wbG95ZWUpIHsKICAgICAgICAgICAgJHRoaXMtPmRlcGFydG1lbnROYW1lID0gJGVtcGxveWVlLT5kZXBhcnRtZW50OwogICAgICAgICAgICAKICAgICAgICAgICAgJHRoaXMtPnBlcnNvbmVsQW1vdW50ICAgPSAkZW1wbG95ZWUtPnF1YW50aXR5ICsgJHRoaXMtPnBlcnNvbmVsQW1vdW50OwogICAgICAgICAgICAkdGhpcy0+ZGVwYXJ0bWVudFNhbGFyeSA9ICRlbXBsb3llZS0+c2FsYXJ5ICsgJHRoaXMtPmRlcGFydG1lbnRTYWxhcnk7CiAgICAgICAgICAgIGlmICgkZW1wbG95ZWUtPmJvc3MgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmRlcGFydG1lbnRDb2ZmZSAgICAgICAgID0gKCRjb2ZmZVskZW1wbG95ZWUtPnBvc2l0aW9uXSAqIDIpICogJGVtcGxveWVlLT5xdWFudGl0eSArICR0aGlzLT5kZXBhcnRtZW50Q29mZmU7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGVwYXJ0bWVudERvY3VtZW50YXRpb24gPSAwICsgJHRoaXMtPmRlcGFydG1lbnREb2N1bWVudGF0aW9uOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPmRlcGFydG1lbnRDb2ZmZSAgICAgICAgID0gKCRjb2ZmZVskZW1wbG95ZWUtPnBvc2l0aW9uXSAqICRlbXBsb3llZS0+cXVhbnRpdHkpICsgJHRoaXMtPmRlcGFydG1lbnRDb2ZmZTsKICAgICAgICAgICAgICAgICR0aGlzLT5kZXBhcnRtZW50RG9jdW1lbnRhdGlvbiA9ICgkZG9jdW1lbnRhdGlvblskZW1wbG95ZWUtPnBvc2l0aW9uXSAqICRlbXBsb3llZS0+cXVhbnRpdHkpICsgJHRoaXMtPmRlcGFydG1lbnREb2N1bWVudGF0aW9uOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0aGlzLT5zYWxhcnlQZXJQYWdlcyA9IHJvdW5kKCR0aGlzLT5kZXBhcnRtZW50U2FsYXJ5IC8gJHRoaXMtPmRlcGFydG1lbnREb2N1bWVudGF0aW9uLCAyKTsKICAgIH0KfQoKY2xhc3MgQ29tcGFueQp7CiAgICBwdWJsaWMgJHRvdGFsID0gJ9CS0YHQtdCz0L4nOwogICAgcHVibGljICR0b3RhbFBlcnNvbmVsQW1vdW50OwogICAgcHVibGljICR0b3RhbFNhbGFyeTsKICAgIHB1YmxpYyAkdG90YWxDb2ZmZTsKICAgIHB1YmxpYyAkdG90YWxEb2N1bWVudGF0aW9uOwogICAgcHVibGljICR0b3RhbFNhbGFyeVBlclBhZ2VzOwogICAgCiAgICBwdWJsaWMgJGF2ZXJhZ2UgPSAn0KHRgNC10LTQvdC10LUnOwogICAgcHVibGljICRhdmVyYWdlUGVyc29uZWxBbW91bnQ7CiAgICBwdWJsaWMgJGF2ZXJhZ2VTYWxhcnk7CiAgICBwdWJsaWMgJGF2ZXJhZ2VDb2ZmZTsKICAgIHB1YmxpYyAkYXZlcmFnZURvY3VtZW50YXRpb247CiAgICBwdWJsaWMgJGF2ZXJhZ2VTYWxhcnlQZXJQYWdlczsKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkZXBhcnRtZW50cykKICAgIHsKICAgICAgICBmb3JlYWNoICgkZGVwYXJ0bWVudHMgYXMgJGRlcGFydG1lbnQpIHsKICAgICAgICAgICAgJHRoaXMtPnRvdGFsUGVyc29uZWxBbW91bnQgPSAkZGVwYXJ0bWVudC0+cGVyc29uZWxBbW91bnQgKyAkdGhpcy0+dG90YWxQZXJzb25lbEFtb3VudDsKICAgICAgICAgICAgJHRoaXMtPnRvdGFsU2FsYXJ5ICAgICAgICAgPSAkZGVwYXJ0bWVudC0+ZGVwYXJ0bWVudFNhbGFyeSArICR0aGlzLT50b3RhbFNhbGFyeTsKICAgICAgICAgICAgJHRoaXMtPnRvdGFsQ29mZmUgICAgICAgICAgPSAkZGVwYXJ0bWVudC0+ZGVwYXJ0bWVudENvZmZlICsgJHRoaXMtPnRvdGFsQ29mZmU7CiAgICAgICAgICAgICR0aGlzLT50b3RhbERvY3VtZW50YXRpb24gID0gJGRlcGFydG1lbnQtPmRlcGFydG1lbnREb2N1bWVudGF0aW9uICsgJHRoaXMtPnRvdGFsRG9jdW1lbnRhdGlvbjsKICAgICAgICAgICAgJHRoaXMtPnRvdGFsU2FsYXJ5UGVyUGFnZXMgPSAkZGVwYXJ0bWVudC0+c2FsYXJ5UGVyUGFnZXMgKyAkdGhpcy0+dG90YWxTYWxhcnlQZXJQYWdlczsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmF2ZXJhZ2VQZXJzb25lbEFtb3VudCA9ICR0aGlzLT50b3RhbFBlcnNvbmVsQW1vdW50IC8gY291bnQoJGRlcGFydG1lbnRzKTsKICAgICAgICAkdGhpcy0+YXZlcmFnZVNhbGFyeSAgICAgICAgID0gcm91bmQoJHRoaXMtPnRvdGFsU2FsYXJ5IC8gY291bnQoJGRlcGFydG1lbnRzKSwgMik7CiAgICAgICAgJHRoaXMtPmF2ZXJhZ2VDb2ZmZSAgICAgICAgICA9IHJvdW5kKCR0aGlzLT50b3RhbENvZmZlIC8gY291bnQoJGRlcGFydG1lbnRzKSwgMik7CiAgICAgICAgJHRoaXMtPmF2ZXJhZ2VEb2N1bWVudGF0aW9uICA9IHJvdW5kKCR0aGlzLT50b3RhbERvY3VtZW50YXRpb24gLyBjb3VudCgkZGVwYXJ0bWVudHMpLCAyKTsKICAgICAgICAkdGhpcy0+YXZlcmFnZVNhbGFyeVBlclBhZ2VzID0gcm91bmQoJHRoaXMtPnRvdGFsU2FsYXJ5UGVyUGFnZXMgLyBjb3VudCgkZGVwYXJ0bWVudHMpLCAyKTsKICAgIH0KfQoKZnVuY3Rpb24gcGFkUmlnaHQoJHEsICR3KQp7CiAgICByZXR1cm4gaW1wbG9kZSgiIiwgKGFycmF5X21lcmdlKHByZWdfc3BsaXQoJy8vdScsICRxLCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKSwgYXJyYXlfZmlsbCgwLCAkdyAtIG1iX3N0cmxlbigkcSksICIgIikpKSk7Cn0KZnVuY3Rpb24gcGFkTGVmdCgkcSwgJHcpCnsKICAgIHJldHVybiBpbXBsb2RlKCIiLCAoYXJyYXlfbWVyZ2UoYXJyYXlfZmlsbCgwLCAkdyAtIG1iX3N0cmxlbigkcSksICIgIiksIHByZWdfc3BsaXQoJy8vdScsICRxLCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKSkpKTsKfQoKJHdvcmtlcnMxID0gYXJyYXkoCiAgICBuZXcgRW1wbG95ZWVzKCfQl9Cw0LrRg9C/0L7QuicsICdNZScsIDEsIGZhbHNlLCA5LCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0JfQsNC60YPQv9C+0LonLCAnTWUnLCAyLCBmYWxzZSwgMywgJHJhdGVzKSwKICAgIG5ldyBFbXBsb3llZXMoJ9CX0LDQutGD0L/QvtC6JywgJ01lJywgMywgZmFsc2UsIDIsICRyYXRlcyksCiAgICBuZXcgRW1wbG95ZWVzKCfQl9Cw0LrRg9C/0L7QuicsICdNYScsIDEsIGZhbHNlLCAyLCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0JfQsNC60YPQv9C+0LonLCAnTWUnLCAyLCB0cnVlLCAxLCAkcmF0ZXMpCik7CiR3b3JrZXJzMiA9IGFycmF5KAogICAgbmV3IEVtcGxveWVlcygn0J/RgNC+0LTQsNC2JywgJ01lJywgMSwgZmFsc2UsIDEyLCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0J/RgNC+0LTQsNC2JywgJ01hJywgMSwgZmFsc2UsIDYsICRyYXRlcyksCiAgICBuZXcgRW1wbG95ZWVzKCfQn9GA0L7QtNCw0LYnLCAnQW4nLCAxLCBmYWxzZSwgMywgJHJhdGVzKSwKICAgIG5ldyBFbXBsb3llZXMoJ9Cf0YDQvtC00LDQticsICdBbicsIDIsIGZhbHNlLCAyLCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0J/RgNC+0LTQsNC2JywgJ01hJywgMiwgdHJ1ZSwgMSwgJHJhdGVzKQopOwokd29ya2VyczMgPSBhcnJheSgKICAgIG5ldyBFbXBsb3llZXMoJ9Cg0LXQutC70LDQvNGLJywgJ01hJywgMSwgZmFsc2UsIDE1LCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0KDQtdC60LvQsNC80YsnLCAnTWEnLCAyLCBmYWxzZSwgMTAsICRyYXRlcyksCiAgICBuZXcgRW1wbG95ZWVzKCfQoNC10LrQu9Cw0LzRiycsICdNZScsIDEsIGZhbHNlLCA4LCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0KDQtdC60LvQsNC80YsnLCAnRW4nLCAxLCBmYWxzZSwgMiwgJHJhdGVzKSwKICAgIG5ldyBFbXBsb3llZXMoJ9Cg0LXQutC70LDQvNGLJywgJ01hJywgMywgdHJ1ZSwgMSwgJHJhdGVzKQopOwokd29ya2VyczQgPSBhcnJheSgKICAgIG5ldyBFbXBsb3llZXMoJ9Cb0L7Qs9C40YHRgtC40LrQuCcsICdNZScsIDEsIGZhbHNlLCAxMywgJHJhdGVzKSwKICAgIG5ldyBFbXBsb3llZXMoJ9Cb0L7Qs9C40YHRgtC40LrQuCcsICdNZScsIDIsIGZhbHNlLCA1LCAkcmF0ZXMpLAogICAgbmV3IEVtcGxveWVlcygn0JvQvtCz0LjRgdGC0LjQutC4JywgJ0VuJywgMSwgZmFsc2UsIDUsICRyYXRlcyksCiAgICBuZXcgRW1wbG95ZWVzKCfQm9C+0LPQuNGB0YLQuNC60LgnLCAnTWUnLCAxLCB0cnVlLCAxLCAkcmF0ZXMpCik7CgokZGVwYXJ0bWVudHMgPSBhcnJheSgKICAgIG5ldyBEZXBhcnRtZW50KCR3b3JrZXJzMSwgJGNvZmZlLCAkZG9jdW1lbnRhdGlvbiksCiAgICBuZXcgRGVwYXJ0bWVudCgkd29ya2VyczIsICRjb2ZmZSwgJGRvY3VtZW50YXRpb24pLAogICAgbmV3IERlcGFydG1lbnQoJHdvcmtlcnMzLCAkY29mZmUsICRkb2N1bWVudGF0aW9uKSwKICAgIG5ldyBEZXBhcnRtZW50KCR3b3JrZXJzNCwgJGNvZmZlLCAkZG9jdW1lbnRhdGlvbikKKTsKJGNvbXBhbnkgICAgID0gbmV3IENvbXBhbnkoJGRlcGFydG1lbnRzKTsKCiRjb2wxID0gMjA7CiRjb2wyID0gODsKJGNvbDMgPSAxMjsKJGNvbDQgPSAxMjsKJGNvbDUgPSAxMjsKJGNvbDYgPSAxMjsKCmVjaG8gcGFkUmlnaHQoItCU0LXQv9Cw0YDRgtCw0LzQtdC90YIiLCAkY29sMSkgLgogICAgIHBhZExlZnQoItGB0L7RgtGALiIsICRjb2wyKSAuIAogICAgIHBhZExlZnQoItGC0YPQs9GALiIsICRjb2wzKSAuIAogICAgIHBhZExlZnQoItC60L7RhNC1IiwgJGNvbDQpIC4KICAgICBwYWRMZWZ0KCLRgdGC0YAuIiwgJGNvbDUpIC4KICAgICBwYWRMZWZ0KCLRgtGD0LPRgC4v0YHRgtGALiIsICRjb2w2KSAuICJcbiIgLiAKICAgICBpbXBsb2RlKCIiLCBhcnJheV9maWxsKDAsIDQwLCAnLS0nKSkgLiAiXG4iOwoKZm9yZWFjaCAoJGRlcGFydG1lbnRzIGFzICRkZXBhcnRtZW50KSB7CiAgICBlY2hvIHBhZFJpZ2h0KCRkZXBhcnRtZW50LT5kZXBhcnRtZW50TmFtZSwgJGNvbDEpIC4KICAgICAgICAgcGFkTGVmdCgkZGVwYXJ0bWVudC0+cGVyc29uZWxBbW91bnQsICRjb2wyKSAuIAogICAgICAgICBwYWRMZWZ0KCRkZXBhcnRtZW50LT5kZXBhcnRtZW50U2FsYXJ5LCAkY29sMykgLiAKICAgICAgICAgcGFkTGVmdCgkZGVwYXJ0bWVudC0+ZGVwYXJ0bWVudENvZmZlLCAkY29sNCkgLiAKICAgICAgICAgcGFkTGVmdCgkZGVwYXJ0bWVudC0+ZGVwYXJ0bWVudERvY3VtZW50YXRpb24sICRjb2w1KSAuCiAgICAgICAgIHBhZExlZnQoJGRlcGFydG1lbnQtPnNhbGFyeVBlclBhZ2VzLCAkY29sNikgLiAiXG4iIDsKICAgICAgICAgCn0gICBlY2hvIGltcGxvZGUoIiIsIGFycmF5X2ZpbGwoMCwgNDAsICctLScpKSAuICJcbiI7CgogICAgZWNobyBwYWRSaWdodCgkY29tcGFueS0+YXZlcmFnZSwgJGNvbDEpIC4KICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+YXZlcmFnZVBlcnNvbmVsQW1vdW50LCAkY29sMikgLiAKICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+YXZlcmFnZVNhbGFyeSwgJGNvbDMpIC4gCiAgICAgICAgIHBhZExlZnQoJGNvbXBhbnktPmF2ZXJhZ2VDb2ZmZSwgJGNvbDQpIC4KICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+YXZlcmFnZURvY3VtZW50YXRpb24sICRjb2w1KSAuCiAgICAgICAgIHBhZExlZnQoJGNvbXBhbnktPmF2ZXJhZ2VTYWxhcnlQZXJQYWdlcywgJGNvbDYpIC4gIlxuIjsKICAgICAgICAgCiAgICBlY2hvIHBhZFJpZ2h0KCRjb21wYW55LT50b3RhbCwgJGNvbDEpIC4KICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+dG90YWxQZXJzb25lbEFtb3VudCwgJGNvbDIpIC4gCiAgICAgICAgIHBhZExlZnQoJGNvbXBhbnktPnRvdGFsU2FsYXJ5LCAkY29sMykgLiAKICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+dG90YWxDb2ZmZSwgJGNvbDQpIC4KICAgICAgICAgcGFkTGVmdCgkY29tcGFueS0+dG90YWxEb2N1bWVudGF0aW9uLCAkY29sNSkgLgogICAgICAgICBwYWRMZWZ0KCRjb21wYW55LT50b3RhbFNhbGFyeVBlclBhZ2VzLCAkY29sNik7Cg==