МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ЛЬВІВСЬКА ПОЛІТЕХНІКА
КУРСОВА РОБОТА
з дисципліни:
«Технології проектування комп'ютерних систем»
на тему:
«Розробка, конструювання та технологія виготовлення комп’ютерних систем засобами САПР»
ЗАВДАННЯ
Розробити мобільний гоночний робот, призначений для участі в змаганнях Roborace. Основним завданням роботи є проїхати задану кількість кіл траси за найкоротший термін часу. Траса представляє собою набір концентричних ліній чорного кольору на білому фоні, обмежених бортами. Основні функції, які повинен виконувати мобільний гоночний робот:
керування рухом повинне здійснюватися в автоматичному режимі;
під час руху забороняються зіткнення робота з іншими роботами та бортами траси;
об’їзд перешкод на трасі (інших роботів) може здійснюватися з будь якої сторони.
Мобільний гоночний робот будується за класичним, для автомобілів, компонуванням і складається з наступних підсистем:
виконавчі механізми;
вимірювальна підсистема;
підсистема керування.
Виконавчі механізми призначені для забезпечення керованого руху робота і складаються з:
курсового колекторного двигуна призначеного для забезпечення обертання ведучих коліс з заданою швидкістю та у заданому напрямку;
сервопривода або колекторного двигуна призначеного для встановлення направляючих коліс під заданим кутом до осі робота для забезпечення руху по заданій траєкторії.
Вимірювальна підсистема призначена для визначення параметрів руху робота, положення робота відносно смуг траси, її бортів та інших роботів і складається з:
контактних вимикачів призначених для визначення зіткнень з перешкодами, які не були виявлені дальномірами;
спідометр призначений для вимірювання швидкості руху;
сенсор положення направляючих коліс призначений для визначення куту повороту направляючих коліс;
кінцеві вимикачі повороту направляючих коліс призначені для захисту механічної частини рульового приводу при спробі повороту направляючих на кут більший ніж допустимий.
Мобільний робот може комплектуватися системою технічного зору. В цьому випадку склад вимірювальної підсистеми може бути оптимізований.
Підсистема керування призначена для задання траєкторії та швидкості руху робота шляхом формування сигналів керування для виконавчих механізмів на базі даних отриманих від вимірювальної підсистеми і містить:
схем підключення сенсорів;
драйверів виконавчих механізмів;
система прийняття рішення.
В конструкції робота повинен бути передбачений роз’єм, на який виводиться напруга живлення +5 В, спільний провідник та сигнал керування стартом для підключення блоку прийому команд від суддів.
Живлення робота повинно здійснюватися від двох незалежних джерел. Одне для виконавчих механізмів, інше – для решти модулів.
Табл.1 Варіант завдання на виконання курсової роботи
Варіант №
Кількість комірок детекторів лінії
Детектори запобігання зіткнення (дальноміри)
Детектори факту зіткнення (контакти, кнопки)
К-сть
Тип дальноміру
17
3
-
-
+
АНОТАЦІЯ
У даній курсовій роботі розроблено проект автономного мобільного гоночного робота, який призначений для участі у перегонах роботів – змаганнях Roborace.
Для побудови цього робота за основу був обраний програмований мікроконтролер ATmega8. Також було використано два електромотори для здійснення поворотів, пари інфрачервоних світлодіодів та фототранзисторів для орієнтації робота на гоночній трасі.
В процесі проектування було проведено розробку схем, друкованих плат, а також розроблено алгоритм поведінки робота, який був реалізований на мові програмування micro С в середовищі проектування Arduino.
Результатом виконання є проект мобільного гоночного робота, який може взяти участь у змаганні роботів та використовуватись як засіб для випробування алгоритмів автономної навігації.
ЗМІСТ
ВСТУП 6
1. РОЗРОБКА СТРУКТУРИ АВТОМАТИЗОВАНОГО РОБОТА 7
1.1. Лінійка інфрачервоних детекторів лінії траси 8
1.2 Система бамперів 9
1.3. Система визначення положення повороту коліс 10
1.4. Драйвери двигунів 10
1.5. Приймач команд від суддів 11
1.6. Керуючий вузол 11
1.7 Вибір мікроконтролера 12
1.8. Вибір світлодіодів та фототранзисторів 14
1.9 Вибір резисторів, конденсаторів, генератора тактових імпульсів 15
1.10 Вибір сервоприводу 16
2. РОЗРОБКА ПРИНЦИПОВОЇ ЕЛЕКТРИЧНОЇ СХЕМИ ТА ДРУКОВАНОЇ ПЛАТИ 17
2.1 Розробка принципової електричної схеми 17
2.2 Розробка друкованої плати 18
2.3 Апаратна реалізація та розробка програми 18
ВИСНОВОК 20
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 21
ДОДАТОК 22
ВСТУП
Сьогодні все частіше можна зустріти інформацію в засобах масової інформації про машини, якими ніхто не керує. Google, Toyota, BMW, Mercedes-Benz і це лише невелика частина компаній які займаються автоматизацією управління машиною. Тому немає нічого дивного в тому, що робототехніка в цілому, а особливо питання автономних транспортних засобів, з кожним роком набувають все більшої і більшої популярності.
Однак, окрім ніші транспортних засобів, є ще ніша автономних мобільних роботів, які за розмірами співставні із звичайною дитячою іграшкою. Роботи такого розміру можуть використовуватись для різних цілей – від шпигунства до платформи для тестування алгоритмів орієнтації у просторі.
Саме машинки такого рівня приймають участь у змаганнях Roborace. Метою цих змагань є забезпечення обміну ідеями та досвідом, залучення молоді до занять робототехнікою, активне пропагування технічної творчості у сфері високих технологій. Але основне – це отримання задоволення від змагань, адже будь-які змагання повинні в першу чергу подобатись його учасникам.
Метою даної курсовій роботі є розробка системи керування мобільним гоночним роботом, що відповідає заданим умовам. Головне призначення цієї системи керування це участь в змаганнях безпілотних, автономних мобільних роботів.
РОЗРОБКА СТРУКТУРИ АВТОМАТИЗОВАНОГО РОБОТА
Завданням розроблюваного гоночного робота є участь у змаганнях – перегонах роботів, виходячи з цього перед ним ставляться наступні вимоги: пересування в просторі, моніторинг зовнішнього середовища і реакція на подразники (наявність перешкоди, наявність доріжки).
Аналізуючи висунуті вимоги можна конкретизувати структурні одиниці робота та відповідальне за їх функціонування апаратне забезпечення. Перш за все це система приводів, які дозволяють пересуватися у горизонтальній площині в довільному напрямі. По-друге, це система виявлення перешкод, яка б дозволяла роботу своєчасно виявляти, отже, і оминати їх. По-третє, мусить бути система детектування доріжок траси, що дозволятиме безперервно слідкувати і слідувати по одній з них. По-четверте, необхідна наявність мусить бути IRDA приймача команд від суддів. Таким чином виділено такі апаратні складові робота: двигун приводу і відповідний йому драйвер; двигун керма і драйвер даного двигуна; система бамперів для виявлення перешкод; система відслідковування доріжок траси; IRDA приймач команд від суддів; вузол керування пересуванням і реагування на подразники. Загальна структурна схема робота представлена на рис.1.
Рис.1.1. Загальна структурна схема автоматизованого робота
Як базу для побудови робота був обраний іграшковий автомобіль, оскільки його платформа задовільняє висунутим вимогам функціональності в просторовому пересуванні. Із штатного обладнання іграшки використано:
механічна частина;
двигун приводу;
рульовий двигун;
акумуляторна батарея.
Для забезпечення автономності керування розроблено наступні засоби:
лінійка інфрачервоних детекторів лінії траси;
система бамперів;
керуючий вузол;
Лінійка інфрачервоних детекторів лінії траси
Лінійка інфрачервоних детекторів вказує поточне відносне місце розташування лінії траси, на якій знаходиться гоночний робот, шляхом визначення різниці відбивання світла на контрастних об’єктах(лініях розмітки).
Рис. 1.2. Принципова схема оптопари детекторів розмітки траси
Рис. 1.3. Принципова схема системи детекторів розмітки траси
Вона складається з 7-ми пар фото-транзисторів і інфрачервоних випромінювачів, що дозволяє детектувати відповідну кількість положень пристрою відносно доріжки.
Ширина бампера більша ніж відстань між лініями розмітки, тому на трасі принаймні одна з оптопар гарантовано детектує лінію. Ширина однієї оптопари забезпечують гарантоване детектування лінії у випадку, коли лінія є між двома сусідніми оптопарами.
Вихідний сигнал кожної оптопари є лог. 1”, якщо лінія детектується, інакше лог. “0” .
1.2 Система бамперів
Система бамперів забезпечує інформування центрального вузла про наявність різноманітних об’єктів в зоні контакту. Вона складається з керуючого пристрою та необхідної кількості контактних вимикачів (кнопка).
Також до вищезгаданої системи входять боковий та курсовий дальноміри (оптичні інфрачервоні дальноміри фірми Sharp), які повідомлятимуть про перешкоду спереду та з боків авто.
Система визначення положення повороту коліс
Оскільки система керування переміщення пристрою в просторі передбачає використання рульового керування, то постає необхідність моніторингу поточного положення рульового механізму. Оскільки для керування колесами ми використовуємо сервопривід, необхідно забезпечити відповідні керуючі сигнали.
Більшість наявних на ринку сервоприводів керуються ШІМ модульованими сигналами із мевною тривалістю позитивного імпульсу: 1мс – крайнє ліве положення,: 2мс – крайнє праве положення.
1.4. Драйвери двигунів
В базовій машині є два колекторних двигуна, які забезпечують рух вперед/назад та поворот коліс ліворуч/праворуч.
Для керування двигунами необхідно забезпечити подачу напруги живлення на 12В на двигуни. Крім того необхідно забезпечити режим реверсу(коли напруга -12В).
Рис. 1.4. Драйвер привідного мотору
Пускові струми двигунів складають 1.3А і 0.6А, робочі струми складають 0,4А та 0,3А. А тому для керування електричним приводом пристрою постає необхідність в потужному драйвері двигунів, який дозволяв би керувати частотою обертання. Для рульового двигуна можна задовільним є використання мікросхеми L298, яка цілком відповідає висунутим параметрам
1.5. Приймач команд від суддів
Для отримання команд від суддів використовується інфарчервоний приймач, який забезпечується організаторами змагань. Нам необхідно лише розмістити дану схему у коло живлення нашого робота.
1.6. Керуючий вузол
Основним алгоритмічним вузлом системи є керуючий вузол, який реалізований на PSoC фірми Cypress.
Рис. 1.5. Структура взаємодії модулів робота і вузла керування
1.7 Вибір мікроконтролера
Вибір мікроконтролера – це мабуть одне з найважливіших завдань при проектуванні робота, адже саме від цього вибору залежить подальша робота, її складність та успіх.
Гоночний мобільний робот повинен мати стійку конструкцію, низьке споживання електроенергії та мінімально можливі габарити. Усе це дозволяє реалізувати серія мікроконтролерів AVR ATmega 8.
Мікроконтролери AVR мають гарвардську архітектуру і систему команд, близьку до ідеології RISC. Процесори AVR мають 32 8-бітових регістри загального призначення. Максимальна тактова частота — 20 мегагерц (XMEGA AVR — до 32 МГц), короткі команди виконуються за один такт. Мікроконтролер має широкий набір модулів, і може бути використаний у великій кількості пристроїв, різного призначення, від таймерів та реостатів до генератора спеціальних сигналів, тощо.
Рис. 1.6 Умовне графічне позначення ATmega 8 у корпусі DIP 28
Рис. 1.7 Зовнішній вигляд ATmega 8 у корпусі DIP 28
Середовище розробки програми Arduino — це апаратна обчислювальна платформа, основними компонентами якої є плата вводу/виводу та середовище розробки власне програми. Arduino може використовуватися як для створення автономних інтерактивних об'єктів, так і підключатися до програмного забезпечення, яке виконується на комп'ютері (наприклад: Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider). Інтегроване середовище розробки Arduino це багатоплатформний додаток на Java, що включає в себе редактор коду, компілятор і модуль передачі прошивки в плату.
Мова програмування аналогічна мові Wiring. Строго кажучи, це C++, доповнений деякими бібліотеками. Програми обробляються за допомогою препроцесора, а потім компілюються за допомогою AVR-GCC.
Рис. 1.8 Середовище розробки програми Arduino 1.0.5
1.8. Вибір світлодіодів та фототранзисторів
Якщо обрати світлодіод, який працює у видимому спектрі світла, то рівень завад буде дуже великим, а рівень відбитого від перешкоди світла – малим. Тому, кращим варіантом буде вибір оптопар, які працюють в інфрачервоному діапазоні. Було вибрано світлодіод, який випромінює світло з довжиною хвилі 940нм з кутом випромінювання 60о - L-934F3C (у корпусі SMD). Відповідно до світлодіода було підібрано і фототранзистор (ELPT15-21C).
Рис. 1.9 Інфрачервоний світлодіод серії L-934F3C (SMD)
Рис. 1.10 Інфрачервоний фототранзистор серії ELPT15-21C
Вибір резисторів, конденсаторів, генератора тактових імпульсів
Згідно закону Ома було визначено необхідний номінал резисторів. У даному випаду необхідні резистори в 1 кОм – 6 шт., 33 Ом – 1 шт.
Для злагодженої роботи та управління електромоторами буде використовуватися драйвер електромоторів L293D, що не є програмованим.
Для генерації тактових імпульсів буде використовуватися кварцовий генератор на 16 МГц. Кварцовий генератор - генератор змінної напруги, стабілізуючим елементом частоти якого є кварцовий резонатор чи п'єзоелемент.
Також будуть потрібні декілька конденсаторів ємністю в 100 нФ – 2 шт. та 220 пФ – 2шт. для фільтрації завад.
Окрім цього, буде використано декілька індикаційних світлофіодів для перевірки роботи відповідних оптопар та регулятор напруги на 5 В; 0,5 А.
Рис. 1.11 Елементи для даного проекту
Вибір сервоприводу
До вибору сервоприводу потрібно підходити дуже ретельно, оскільки це одна з найделікатніших деталей, причому досить дорога. Оскільки даний робот повинен бути досить компактним, тому було вибрано сервопривід з серії “мікро-”. Також, через можливі зіткнення потрібно вибирати сервопривід лише з металевим редуктором.
Рис.1.12 Сервопривід
2. РОЗРОБКА ПРИНЦИПОВОЇ ЕЛЕКТРИЧНОЇ СХЕМИ ТА ДРУКОВАНОЇ ПЛАТИ
2.1 Розробка принципової електричної схеми
Рис. 2.1 Загальна електрична принципова схема
2.2 Розробка друкованої плати
Рис. 2.2 Основна друкована плата робота
Рис. 2.3 Друкована плата сенсорної частини робота
Апаратна реалізація та розробка програми
Після проектування необхідних компонентів потрібно скласти та спаяти схеми, приєднати мотори та живлення (у даному випадку – це 4 батарейки по 1,5 В). Відповідно до цього, пайка елементів відбувалась за допомогою паяльника, каніфолі та припою.
Для того, щоб перевірити чи не відбулось замикання доріжок, обрив провідників та вимірювання фізичних параметрів схеми, використовувався цифровий мультиметр UNIT, що дозволяє виміряти постійний та змінний струм, опір, індуктивність.
Для можливості вдосконалення даного проекту було вирішено не припаювати мікроконтролер безпосередньо на виготовлену плату, а припаяти підставку на 28 ніжок для вибраної мікросхеми. Таким чином буде можливість в будь-який час перепрограмувати мікроконтролер використовуючи USB-програматор і при цьому зберегти його естетичний вигляд. Лістинг програми наведено в Додатку.
Рис. 2.8 Розробка програми в Arduino 1.0.5
ВИСНОВОК
Під час виконання даної роботи було розглянуто процес створення гоночного мобільного робота, що відповідає заданим параметрам. Детально описані кроки, які повинен пройти розробник та наведено приклади САПР, якими можна користуватись на різних етапах розробки. Наведено перелік обладнання, порядок та особливості його використання.
Відповідно до завдання були розроблені електрична функціональна та принципова схеми.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
Line Following Robot: http://radiomaster.com.ua/index.php/newid=548
RoboRace – http://www.roborace.te.ua.
Розрахунок резистора: http://myrobot.ru/stepbystep/el_simple_robot.php
http://www.instructables.com/id/Line-Follower-Robot-2/#intro
Сборка и програмирование мобильных роботов в домашних условиях / Ф.Жимарши ; пер. с фр. М.А.Комаров. – М.: НТ Прес, 2007. – 288 с .
Создание роботов в домашних условиях / Брага Ньютон : пер. с англ. Е.А.Добролежина. – М.: НТ Прес, 2007. – 368 с.
Бишоп О. Настольная книга разработчика роботов. – К. : «МК-Пресс», СПб.: «Корона-Век», 2010. – 400 с.
Д. Ловин. Создаем робота-андроида своими руками.: Пер. с анг. Мельникова Г. — М.: Издательский дом ДМК-пресс, 2007 — 312 с.
Mario Ferrari, Giulio Ferrari, Ralph Hempel. Building Robots with LEGO MINDSTORMS.
Гололобов В.Н. С чего начинаются роботы? О проекте Arduino для школьников (и не только).
Программируемые роботы. Создаем робота для своей домашней мастерской / Дж. Вильямс : пер. с англ. А.Ю.Карцева. – М.: НТ Прес, 2006. – 240 с .
ДОДАТОК
Лістинг програми:
const int p1 = 80;
const int p2 = 0;
const int p3 = 60;
const int p4 = 130;
const int p5 = 220;
const int p6 = 255;
const int m1 = 10;
const int m2 = 9;
const int dif = 150;
int i,j,v[5],a[5],n,val,x,l[5],nr;
int s[] = {A0,A1,A2,A3,A4};
void setup()
{
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
digitalWrite(5,HIGH);
digitalWrite(7,HIGH);
}
int fun (int x,int y)
{
int r;
r=x-y;
if (abs(r)<dif)
return(1);
else
return(0);
}
int digwr ()
{
for (i=0;i<=4;i++)
if(l[i]==1)
digitalWrite(i,HIGH);
else
digitalWrite(i,LOW);
}
int inz()
{
analogWrite(m1,p6);
analogWrite(m2,p6);
}
int st1()
{
analogWrite(m1,p5);
analogWrite(m2,p6);
}
int st2()
{
analogWrite(m1,p4);
analogWrite(m2,p6);
}
int st3()
{
analogWrite(m1,p3);
analogWrite(m2,p6);
}
int st4()
{
analogWrite(m1,p2);
analogWrite(m2,p6);
}
int dr1()
{
analogWrite(m1,p6);
analogWrite(m2,p5);
}
int dr2()
{
analogWrite(m1,p6);
analogWrite(m2,p4);
}
int dr3()
{
analogWrite(m1,p6);
analogWrite(m2,p3);
}
int dr4()
{
analogWrite(m1,p6);
analogWrite(m2,p2);
}
void main()
{
for (i=0;i<=4;i++)
{
a[i]=l[i];
v[i]=analogRead(s[i]);
}
nr=0;
for (i=0;i<=4;i++)
if (v[i]<dif)
{
l[i]=1;
nr++;
}
else
l[i]=0;
digwr ();
if (nr>2) inainte();
if (nr>0)
{
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
}
if (nr==0)
{
if (a[0]==1)
{
analogWrite(m1,p1);
digitalWrite(8,HIGH);
digitalWrite(7,LOW);
}
if (a[0]==0 and a[4]==0)
{
}
if (a[4]==1)
{
analogWrite(m2,p1);
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
}
}
if (nr<=2)
{
if (l[2]==1 and l[1]==0 and l[3]==0)
inainte();
if (l[1]==1 and l[2]==1)
st1();
if (l[1]==1 and l[2]==0 and l[0]==0)
st2();
if (l[0]==1 and l[1]==1)
st3();
if (l[0]==1 and nr==1)
st4();
if (l[3]==1 and l[2]==1)
dr1();
if (l[3]==1 and nr==1)
dr2();
if (l[3]==1 and l[4]==1)
dr3();
if (l[4]==1 and nr==1)
dr4();
}
}
Hex file:
:100000003FC059C058C057C056C055C054C053C057
:1000100052C0C0C250C04FC04EC04DC04CC04BC0FB
:100020004AC049C048C00000000037003400310019
:1000300000000000380035003200000000003600EB
:100040003300300004040404040404040202020225
:10005000020203030303030301020408102040808B
:100060000102040810200102040810200000000012
:100070000000000000030405000000000000000074
:1000800011241FBECFE5D4E0DEBFCDBF10E0A0E657
:10009000B0E0E8E6F6E002C005900D92AC36B1079C
:1000A000D9F710E0ACE6B0E001C01D92A739B10766
:1000B000E1F76CD2D7C2A4CF10926D0010926C0001
:1000C00018C0F901EE0FFF1FEE57FF4F808191819D
:1000D000019719F4822F61E002C0822F60E019D2EB
:1000E00080916C0090916D00019690936D008093CB
:1000F0006C0020916C0030916D00253031050CF3BF
:1001000008958AE06FEF70E0A9D189E060E070E0C7
:10011000A5D108958AE06FEF70E0A0D189E06CE38B
:1001200070E09CD108958AE06FEF70E097D189E08C
:1001300062E870E093D108958AE06FEF70E08ED1AD
:1001400089E06CED70E08AD108958AE060E070E0AB
:1001500085D189E06FEF70E081D108958AE06CE38A
:1001600070E07CD189E06FEF70E078D108958AE08B
:1001700062E870E073D189E06FEF70E06FD10895AD
:100180008AE06CED70E06AD189E06FEF70E066D1D3
:1001900008958AE06FEF70E061D189E06FEF70E061
:1001A0005DD108950F931F9310926D0010926C0013
:1001B00020C08C01000F111FD801A858BF4FF801B3
:1001C000EE57FF4F808191818D939C93F801E05A07
:1001D000FF4F80812AD102591F4FF80191838083FC
:1001E00080916C0090916D00019690936D008093CA
:1001F0006C0080916C0090916D0085309105CCF27F
:10020000E2E8F0E0AEE6B0E040E050E020E030E0D0
:1002100061E070E011C08D919C9111978639910534
:100220002CF4718360834F5F5F4F02C01182108294
:100230002F5F3F4F329612962530310564F350936D
:100240008D0040938C0030936D0020936C0034DF60
:1002500080918C0090918D0003970CF09ADF809133
:100260008C0090918D001816190664F485E061E009
:1002700050D186E060E04DD187E061E04AD188E06E
:1002800060E047D180918C0090918D00892B01F521
:100290008091780090917900019751F48AE060E5AF
:1002A00070E0DCD088E061E034D187E060E031D1FB
:1002B0008091800090918100019751F489E060E580
:1002C00070E0CCD086E061E024D185E060E021D10F
:1002D00080918C0090918D0003970CF081C08091EB
:1002E000860090918700019769F480918400909135
:1002F0008500892B39F48091880090918900892BA1
:1003000009F447DF8091840090918500019739F4CA
:100310008091860090918700019709F431DF8091E8
:10032000840090918500019769F4809186009091F6
:100330008700892B39F48091820090918300892B6A
:1003400009F415DF8091820090918300019739F4C0
:100350008091840090918500019709F4FFDE8091DF
:10036000820090918300019739F480918C009091E4
:100370008D00019709F4E9DE809188009091890051
:10038000019739F48091860090918700019709F4D4
:10039000D3DE8091880090918900019739F4809193
:1003A0008C0090918D00019709F4BDDE809188004A
:1003B00090918900019739F480918A0090918B0087
:1003C000019709F4A7DE80918A0090918B00019734
:1003D00039F480918C0090918D00019709F491DEA1
:1003E0001F910F91089580E061E06DD081E061E0A0
:1003F0006AD082E061E067D083E061E064D084E0AD
:1004000061E061D085E061E05ED086E061E05BD0D4
:1004100087E061E058D088E061E055D089E061E094
:1004200052D08AE061E04FD00895982F8E3008F0C6
:100430009E50977080916A008295880F880F807C0B
:10044000892B87B9369A3699FECF24B145B1942FBE
:1004500080E030E0282B392BC90108951F93CF93FA
:10046000DF93182FEB0161E02ED0209711F1CF3FE1
:10047000D10511F1E12FF0E0E459FF4F8491843070
:1004800051F0853071F0833089F48FB580688FBD6D
:10049000DBBDCABD14C08FB580628FBDD9BDC8BDDC
:1004A0000EC085B5806285BDC3BD09C0C038D10509
:1004B0001CF4812F60E002C0812F61E02AD0DF911F
:1004C000CF911F910895482F50E0CA01885A9F4F3D
:1004D000FC0124914C5B5F4FFA0184918823C1F0A9
:1004E000E82FF0E0EE0FFF1FEA5DFF4FA591B491FA
:1004F000662341F49FB7F8948C91209582238C93C6
:100500009FBF08959FB7F8948C91822B8C939FBFC7
:100510000895482F50E0CA0184599F4FFC0124914F
:10052000CA01885A9F4FFC0134914C5B5F4FFA011E
:100530009491992351F1222381F0243039F0253010
:1005400049F0233051F48FB58F7702C08FB58F7D7E
:100550008FBD03C085B58F7D85BDE92FF0E0EE0F1F
:10056000FF1FE05DFF4FA591B491662341F49FB753
:10057000F8948C91309583238C939FBF08959FB7F7
:10058000F8948C91832B8C939FBF08954BD02BDFD5
:1005900009DEFECF1F920F920FB60F9211242F93F8
:1005A0003F938F939F93AF93BF93809192009091CD
:1005B0009300A0919400B09195003091960001961F
:1005C000A11DB11D232F2D5F2D3720F02D57019632
:1005D000A11DB11D209396008093920090939300EB
:1005E000A0939400B093950080918E0090918F001D
:1005F000A0919000B09191000196A11DB11D809332
:100600008E0090938F00A0939000B0939100BF91C3
:10061000AF919F918F913F912F910F900FBE0F90AF
:100620001F901895789483B7826083BF83B78160E9
:1006300083BF89B7816089BF1EBC8EB582608EBDC5
:100640008EB581608EBD8FB581608FBD85B58460AC
:1006500085BD85B5806485BD329A319A309A379AC6
:080660001AB80895F894FFCFC9
:0C0668000E000F00100011001200010035
:00000001FF