PKDmeta.xml'XMind3.4.1.201401221918595486#F3F4F9PK,'PKD content.xml/Непрерывная интеграцияВводнаяСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Изолированные проверкиmock-объектыАвтоматизируй проверки компонента (component)Проверка интеграцииСвязь с внешними объектамиАвтоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Приемочные тестыКатегоризируйте проверки разработчикапо типамfunctionsystemcomponentunitсхема именованиястратегия каталогаВыполняйте быстрые проверки сначалаМодульныеКомпонентныеСистемныепишите проверки для дефектовДля снижения числаРазработка через устранение (defect-driven)Сделайте проверки компонента воспроизводимымиМоскОграничьте проверку одним методом assertОдна проверка - один assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionНепрерывное развертываниеВыпускайте работоспособное ПО в любое время и в любом местеМаркируйте элементы в хранилищеТегиВерсииПоддерживайте чистоту средыОСНастройки ОССтороннее ПО и его настройкиНастройки сервераИнструменты сторонних производителейСПОМаркируйте каждое построениеВеткиТегиЗапускайте все проверкиСоздавайте отчеты обратной связи построенияПозаботьтесь о возможности отката выпускаНепрерывная обратная связь4 ППравильная информацияПонять что не так?Понять где не так?Правильным людямРуководитель проектаАрхитекторРазработчикТестировщикПравильное времяПравильный способЕ-почтаSMS<title>ЗвукиПанель виндыОценка инструментальных средств для CIФункциональные возхможностиИнструменты построенияКомпиляция кодаУпаковка компонентовВыполнение программыМанипулирование файламиДополнительные возможностиВыполнение проверок разработчикаИнтеграция инструментов контроля версийСоздание документацииФункциональные возможности развертыванияАнализ качества кодаРасширяемостьМногоплатформенное построениеУскоренное построениеПланирование построенияЗапуск построенияСобытийное управлениеИнтеграция с системой контроля версийИнтеграция инструмента построенияОбратная связьМаркировка построенияДополнительные возможностиЗависимости между проектамиПользовательский интерфейсПубликация артефактовЗащитаСовместимость со средойНадежностьДолговечностьПрименимостьЛист 1PKPؒPKD2Revisions/22aknbe3se7rr0pq0b58fdv76e/revisions.xml pPK+kM PK}nD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-1-1394797490330.xmltНепрерывная интеграцияЛист 1PK?:ytPKe{D=Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-10-1395938110018.xmldZНепрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Автоматизируй проверки компонента (component)Автоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Категоризируйте проверки разработчикаВыполняйте быстрые проверки сначалапишите проверки для дефектовСделайте проверки компонента воспроизводимымиОграничьте проверку одним методом assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionЛист 1PK{sddPK{D=Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-11-1395938402827.xmloНепрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Изолированные проверкиmock-объектыАвтоматизируй проверки компонента (component)Проверка интеграцииСвязь с внешними объектамиАвтоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Приемочные тестыКатегоризируйте проверки разработчикапо типамfunctionsystemcomponentunitсхема именованиястратегия каталогаВыполняйте быстрые проверки сначалаМодульныеКомпонентныеСистемныепишите проверки для дефектовДля снижения числаРазработка через устранение (defect-driven)Сделайте проверки компонента воспроизводимымиМоскОграничьте проверку одним методом assertОдна проверка - один assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionЛист 1PK, ooPK0{D=Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-12-1395938492972.xml pНепрерывная интеграцияВводнаяСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Изолированные проверкиmock-объектыАвтоматизируй проверки компонента (component)Проверка интеграцииСвязь с внешними объектамиАвтоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Приемочные тестыКатегоризируйте проверки разработчикапо типамfunctionsystemcomponentunitсхема именованиястратегия каталогаВыполняйте быстрые проверки сначалаМодульныеКомпонентныеСистемныепишите проверки для дефектовДля снижения числаРазработка через устранение (defect-driven)Сделайте проверки компонента воспроизводимымиМоскОграничьте проверку одним методом assertОдна проверка - один assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionНепрерывное развертываниеНепрерывная обратная связьЛист 1PKeCp pPKɁD=Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-13-1396268059798.xmlНепрерывная интеграцияВводнаяСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Изолированные проверкиmock-объектыАвтоматизируй проверки компонента (component)Проверка интеграцииСвязь с внешними объектамиАвтоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Приемочные тестыКатегоризируйте проверки разработчикапо типамfunctionsystemcomponentunitсхема именованиястратегия каталогаВыполняйте быстрые проверки сначалаМодульныеКомпонентныеСистемныепишите проверки для дефектовДля снижения числаРазработка через устранение (defect-driven)Сделайте проверки компонента воспроизводимымиМоскОграничьте проверку одним методом assertОдна проверка - один assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionНепрерывное развертываниеВыпускайте работоспособное ПО в любое время и в любом местеМаркируйте элементы в хранилищеТегиВерсииПоддерживайте чистоту средыОСНастройки ОССтороннее ПО и его настройкиНастройки сервераИнструменты сторонних производителейСПОМаркируйте каждое построениеВеткиТегиЗапускайте все проверкиСоздавайте отчеты обратной связи построенияПозаботьтесь о возможности отката выпускаНепрерывная обратная связь4 ППравильная информацияПонять что не так?Понять где не так?Правильным людямРуководитель проектаАрхитекторРазработчикТестировщикПравильное времяПравильный способЕ-почтаSMSЗвукиПанель виндыЛист 1PK(PKD=Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-14-1396268477739.xmlНепрерывная интеграцияВводнаяСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Изолированные проверкиmock-объектыАвтоматизируй проверки компонента (component)Проверка интеграцииСвязь с внешними объектамиАвтоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Приемочные тестыКатегоризируйте проверки разработчикапо типамfunctionsystemcomponentunitсхема именованиястратегия каталогаВыполняйте быстрые проверки сначалаМодульныеКомпонентныеСистемныепишите проверки для дефектовДля снижения числаРазработка через устранение (defect-driven)Сделайте проверки компонента воспроизводимымиМоскОграничьте проверку одним методом assertОдна проверка - один assertНепрерывная инспекцияСнижайте сложность кодаЦикломатическая сложностьГлубина методовОсуществляйте обзоры кода непрерывноЦентростремительная связьЦентробежная связьКоэффициент разветвления по входуКоэффициент разветвления по выходуНеустойчивостьЦентростремительная связьЦентробежная связьПоддерживайте организационные стандарты при проверке кодаСнижайте количество двойного кодаБаза данныхСценарии построенияСам кодфайлы данныхОценивайте покрытие кодаоператорное покрытиеconditiondecisionРегулярно оценивайте качество кодаhttp://en.wikipedia.org/wiki/Fagan_inspectionhttp://en.wikipedia.org/wiki/Fagan_inspectionНепрерывное развертываниеВыпускайте работоспособное ПО в любое время и в любом местеМаркируйте элементы в хранилищеТегиВерсииПоддерживайте чистоту средыОСНастройки ОССтороннее ПО и его настройкиНастройки сервераИнструменты сторонних производителейСПОМаркируйте каждое построениеВеткиТегиЗапускайте все проверкиСоздавайте отчеты обратной связи построенияПозаботьтесь о возможности отката выпускаНепрерывная обратная связь4 ППравильная информацияПонять что не так?Понять где не так?Правильным людямРуководитель проектаАрхитекторРазработчикТестировщикПравильное времяПравильный способЕ-почтаSMSЗвукиПанель виндыОценка инструментальных средств для CIФункциональные возхможностиИнструменты построенияКомпиляция кодаУпаковка компонентовВыполнение программыМанипулирование файламиДополнительные возможностиВыполнение проверок разработчикаИнтеграция инструментов контроля версийСоздание документацииФункциональные возможности развертыванияАнализ качества кодаРасширяемостьМногоплатформенное построениеУскоренное построениеПланирование построенияЗапуск построенияСобытийное управлениеИнтеграция с системой контроля версийИнтеграция инструмента построенияОбратная связьМаркировка построенияДополнительные возможностиЗависимости между проектамиПользовательский интерфейсПубликация артефактовЗащитаСовместимость со средойНадежностьДолговечностьПрименимостьЛист 1PKTPKnD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-2-1394798658518.xml Непрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаЛист 1PKh$F$  PKnD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-3-1394799339442.xml"Непрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIЛист 1PKu""PKnD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-4-1394802251787.xmlj,Непрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииЛист 1PKs>o,j,PK݈nD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-5-1394802419922.xml3'Непрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыИспользуйте выделенную машину для построенияИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеВыполняйте поэтапное построениеЛист 1PK+d033PK`nD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-6-1394802660944.xml/<Непрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияАнализПодготовка усовершенствованийПо второму кругуВыполняйте поэтапное построениеЛист 1PKAX4</<PKnD<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-7-1394802964424.xmlHKНепрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьНекоторые умные словаПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаЛист 1PK)MKHKPK {D<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-8-1395937467339.xmlНепрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаЛист 1PK}s AQНепрерывная интеграцияКрупными мазкамиСтройте ПО при каждом измененииАртефакты CIРазработчикСистема контроля версийСервер CIСценарий построенияМеханизм обратной связиСредства интеграционного построенияКомпиляция исходного кодаИнтеграция БДПроверкаИнспекцияРазвертываниеДокументированиеОбратная связьБаза данныхАвтоматизируйте интеграцию базы данныхИспользуйте локальное пространство базы данныхПрименяйте хранилище с контролем версийСделайте DBA участником разработкиПроверкиИнспекцииРазвертываниеОбратная связь и документацияОбеспечьте возможность внесения изменений в базу данныхПодготовка к внедрению CIПреимущества CIСнижение рискаБыстрее выявляются дефектыСнижение числа предположенийКонтроль состояния проекта Уменьшение числа ручных перацийПроцесс каждый раз выполняется одинакогоПоддерживается упорядоченностьПовторение по изменению состояния хранилищаПостроение ПО в любой моментОбеспечение лучшего качестваЭффективные решенияОтслеживание тенденцийСбор статистикиПовышение доверия к програмному кодуЧто может помешатьУвеличение дополнительных затрат на поддержкуСлишком много измененийСлишком много неудачных построенийДополнительные издержки на аппаратные средстваВсе это будут делать разработчикиКак добиться CIИдентификацияПостроениеСовместное использованиеНепрерывность7 практик CIПередавайте код частоДелайте небольшие измененияПередавайте после решения каждой задачиНе передавайте сбойный кодЛиквидируйте проблемы построения немедленноПишите автоматизированные проверкиВсе проверки и инспекции должны быть пройденыВыполняйте закрытое построениеИзбегайте получение сбойного кодаСнижение риска с использование CIОтсутствие развертываемого программного обеспеченияНа моей машине это работаетсинхронизация с базой данныхБаза данных должна быть объектом разработкиошибочный щелчокпозднее выявление дефектоврегрессионная проверкапокрытие проверкамиплохой контроль проектавы получали сообщение?неспособность предоставить программное обеспечениенизкокачественное программное обеспечениесоблюдение стандартов программированиясоответствие архитектурысдвоенный кодПостроение при каждом измененииАвтоматизируйте построенияВыполняйте построение одной командойОтделяйте построение от IDEЦентрализуйте элементы программного обеспеченияСоздайте строгую структуру каталогаОрганизуйте ранний сбор построенияОсуществляйте построение для каждой средыТипы построенияЗакрытое построениеИнтеграционное построениеФинальное построениеМеханизмы построенияПо требованиюПо расписаниюОпрос измененийУправляемое событиемИспользуйте выделенную машину для построенияЧистая средаРекомендуемые системные ресурсыИспользуйте сервер CIВыполняйте интеграционное построение вручнуюВыполняйте быстрое построениеСбор показателей построенияВремя компиляцииКоличество строк кодаКоличество и типы инспекцийСреднее время создания проверокВремя проверкиСоотношение успешных и неуспешных построенийВремя развертыванияВремя построения БДСистемные ресурсы и их использованиеЗагрузка системы контроля версийАнализПодготовка усовершенствованийВыделенная машина для интеграционных построенийУвеличение аппаратных мощностейПовышение производительности проверкиРационализация интеграционного построенияОптимизация инфрастркутурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииРаспределенное интеграционное построениеПо второму кругуВыполняйте поэтапное построениеИсследование инфраструктурыОптимизация процесса построенияРаздельное построение компонентовПовышение производительности инспекцииОсуществление распределенного интеграционного построенияПереоценкаНепрерывная проверкаАвтоматизируй проверки модуля (unit)Автоматизируй проверки компонента (component)Автоматизируйте проверки системы (system)Автоматизируйте проверки функции (functional)Категоризируйте проверки разработчикаВыполняйте быстрые проверки сначалапишите проверки для дефектовСделайте проверки компонента воспроизводимымиОграничьте проверку одним методом assertЛист 1PKK WWPKDThumbnails/thumbnail.pngPNG  IHDRYiIDATxsW5ϻg5Ϭ;"&, @Qh"mc[`ll 62Hia XjiF+3ySI Uթ)8uS]YW9?`1c1#0c13c,uc1S`,uc1S`,uc1S`,uc1S`,uc1S`,uc1S`,uc1S`,uU_sȉ#1c1K]ٲeƍݨ* G]dOP쫯ۻTP {TJQQnoc1Ƙ2a"r ^;PDK5* mp?![SYJֶ|e*H6UW+W ʅӀ~~`46h1c1.X~K/K$r3./u GTN8<5ԩFqHX"w[1c#:3CfOgal1cLc1cLUoo~w׭oLc1Sh,u&<==;7mڼ{c1cLqԙHFF/'1c1Rgs熒c1Ƙb3c13,ub - :c1cfT w>rB偁d r>ƍ$z罰hU)Y9Nש.ZSR/?~wa~̖:c1cflbɣX=3閤z5^ޥjk[N'ڪ]Q@ۢ+RRΝ7_e5c0:P"GBc1Ƙ`+4TV{dǖ'lTY{] GTv޽~h,RB-)SP*eB ƮӪO1c#:K1Ɣz0Ƙb+ c13#Gɑ#E򷈓L3Tl erR'_tez pK7LPꄮPGd`y I焲A:gRUۡ@ Ƙc3fo~s 01 I:.c00pZmD6,jxI*"~b)^e!E/BK-#ІR-(F`"15TH`82ݏUh},uS&pLi1URWlپd2r dTOV GڼXF;0R-)GzOng@Ԇ\zRd!wRB>W؅mf3a861cL(cLE-[KH}  \[5w|WU4jCEU``ـPmm˳jO$Wz4'*=Ttve+V^ Pȿ/K1ݻo7!#ǒecy #X YBBdeBgz:*%]؝%c~ԩXӘr,@_kzC ,[3y_:c) u2۶^t뱱?%1$RWb&$kdKvEMV\J*xzFo1URh/cڤ^jWnz]ߗc D+HcZK]iAҦ5X\]i3Ƙ Rӳ寓cZKIc DJ[cf]_jٹRg1EՖGNÙeYMEqX*#;E gt\~޽uYm{4f-QJusR5J4cԙܾs}˖-Gb1ihM#E ے3|O'M{%W4hUerҰTeEr`Ԫ!X4zBs1<"Qi1Rgz͚7J> c1OCkJΑ]W%3 TYeOxF"qo'u!6FE`jLxlƘz VDM, L>`3ƘњRh$c3 cLiԭX*n/n#:c)Ք:ciq$u$Fcf91=3_b˖Lag~BLv.Wh6{fjNTP?*>ږ3B-c6,KC u rs8Ԍw"i`~҉x )w b3Ƙ"Rǎ~BƘY Cf6(K.rDH5QI3⁘T"HhXĹB7 Rüy=򢨚p˼|#u4z&гu1:0YNy&nA,uS ZA~_#;cɚ#uϭ;d8*K^*\XeS)b1KUV6Łf IJT.) j@{ 3r jiUr8ˬF*\SY9-:c) uUc'cZD&^O8ŦAX1@ԭ]gɇa1CyK1iO8*?%,g 5ǧGk|<*g}GY6SD+uo?}2I,uS$^"u#`r5`i`ʪX Jʻ\7O\|ޱoE"oVsR:/t.c)~RGK1R#-" ZV][2ʍfSHv_>8xS?84Inb*uBz4r܏>ydw}/']m|k'u~([g'uV4&Rg1BWWo;~`ߧ%xիWvW]~I<1!<r%A&o-Y*H~;δxBjϊلtq}zw^j˰(չ )li.sKph0c6-uc \[mG~ԜNmwP֮䟉1$g&R^EіߪʨXY_EaLIFjCts j- 9<"neiĵ;P},Xzc>$à>)z,uc \x1LR~l3e ",Ըakx3YZ2K1VrY1f~V4&GRccC='s,1pVȈpk :f;]8cx6ifooڼy >> H>r=Չ,d1ho[[X ,xA偺06x63UGuNZ$Β˘9YqYi7ˢʹqcJL+\J+,}ceۛ|=-"%=.p.ɯIaO\&fI]_cO¥19NRwl^Է-ԴReծ!岯HnˁjI[bDGКuMXK7sMb/|T&ī Q9i1 \SN|{Gd5}7wF'¤#壩El6\N6'r/cOv,7ƘaKI+\#CN\>E=W]O"`b\tsfAni7M oZFК};NmDQK"p޸K|fE1@•k{X_̼D y]|SfE>rRǽBNNH3-L' )"H87hƘrcKI+\3@)aP)mؘc1&h+JjSy֨f=cA᥎dOneZҘG4Ƙ Wu@acLPx#cxV[ͼqc7,]1AA2/=ik[S)0c$O':3cFDž# -&AΕdO(L|+\zꎎ$[omݺ=y<٠] {1•뭷޸M|^V寓tƘRxxo$`g>0̛g|#&YM?j1)I#"2b5@yct>cV4&g;>FH>9McH+\zzv|) &1$RG0zI"J&-3"-ڊ,Y!u@qHЁ: A0hjO?& .hsCɇ :;;S&Z%+@c#>SޥrlO.)ԽccJ> cpc$J+u.ɱcLh+T#hV zYL߬DظA11( Ncflڴy˖T+\c3Ƙ WR'"EI '"h~-:P/96"i_8B3rܑ#LZ>* :T сCt8/YY4ƔJ]q!Q4$3piLc D+\Jj-Y3K,xa}jY-ΙRIM6hu7pjdh$'L$t6O爎 ҞGv=%KIKmԉ^x3K,uɸq+\c3Ƙ WiNFja%QK.n2+mgXk< RA-uE$BekYmRA&QAoNen ¥19:c)pj~ȟd1ɓHqͱ X1f| vm۶Ok+^n>1$IRǤ}8)L]` Dmf> b9+{gYnzU ږC,\^1 %!TT`Hs'|@RrZgTcfë%m"8&eD̘ש9Y3d,\CZҘK1̆7nn޼gϞӵ•KW۶@ˑKƘ$0=$0*33%dI.KgKIR2b:}.£XŮ9s'QzHYL.r'U7]jlb2FޘhY-M̡[&kFymY]b A+\c3Ƙp0:ݿ7ȟW.ciA~bM2XT&na0D" 'yjT,߀ &(pV .S5*?8Dy.GHbԅ+WV3@p< q$BH'j F#ayjT.wvvjؘjR jj;>>.'\t}y/_Wv#K]YrXؒVd1 XɯqezVh \ PGah*YfB@n\C&P1PÕ]KI5^=Rw/7džE ^YoR&ś{ŚF}ūXFQj+w=+ C`t|Ӭ`0t61||IcfÞ=O}R?T=zo^dRi;22JW:Kݺu+ZRWwP/BV<}/Y,]RpE9NF%'^akR𫃛D`Tw$pj4 ^HaSY,uɸ._<2xs< c7ykleܓ^4< _$Eό;q tdDK1̆z{$urqWsN݅œ::\^{MONd'/?僣C~RWtŗM{X;/uL9zU֬|;~1QĹJ>'5Ё SdFMD;e=ϳxL{idD6!fh,u3֯_?)PL呑q3y]̽ɖRGy0n_]ɋ/#_;1뾶h@oU 4 ,A| b1RK˘IxM2gYL$,13IbN't3 K/L~`҂:&,)ΣK'}>̿,1GÏThm$3 Rgi(otbėucZJV\%;o>eVLUd,Uc5@P2L9,8Vo\VuDU#ńrzpqDbO 8IꆇGzMgz Rgi(C~{ɓ'-uEA?yxOήmv$J<ǘRB'tk|s6207=*y@GIyZɞ/xǓ:∠y#c34C:yoԝ={+l}瞮 徛iIB u煛/Rgi(,KÝ6_w[۶m%+lt랞ɇa)dܾsϗc34N]MyF_fôRG )f symK2ƔRI]O}}i,=:cLڵ|R_fôR'"E;,!UI^}YMޘ40p"S.M 74RI]!O|nd/RgiWغٿ} ?&uU#E7tpm96¶ށэݖ:cJ.%4K1qlPO+lVoQ#vVS{ڛK91IވN("8=jǃ;cLԥėc34<55P=$/nTfSb.u+Xz,uƘƱuWo4r͆Dȥbi},u/Gf{{/\V/ICw/HgJ7n*R:iĞRDvX1cu7W\) 1 Rs?mm׭@}Mw f*hWN8-4VjCz+UM$4|i,=:cL}^ggg+luuuNի_Mёs0ԝKenyOvaUfٱR8X*ԡxRSuKcc?hy} "krjAcL=u_aKccDG5r͆S 6?1 Xqc_K pp+lVH)>0p:1ťRwM27:|TݻX1 bӦͺ5r͆i.x G = C :1Rɡþ4K1XnmO+lxX/m#umUB0io{{!u%K%kƘXRKcc77mڜԾr͆:ilMdt -N:'SU[cwUoK]J|i,=:cL#:?o߇IN+lVddYm%+ewjs<&^/1Y#V&.}֫&Kcc#O%9\/oI=ӏӂ$GN,XB6Y$yno imfK.SKޡ~*q*7`wrnwQ^]Yg.0idT(aQgas_KhS5 Hsq+WQ 1<ۘkN'E %]~?lઑɲPA1 Ld^ F,7}HR8SA%5PAPi|i,=:cL#H+lԽ/1Yjz?ڟ=cFD[rI̲& YDP8óeGjr;: ,;X1u5>oɇa)%"rc_K_n7Gj­cL)<{ラ>؝QT,uƘTw.]qjWThHN^|0xԗYԿ8_Ķ&~P=wF{UrͬG{#*Z4tJB UfV-j&[]Yrk;}}N}6S\ C]!0MB _q@cc9*#1mRPxCX.2_z؉{~|#KSN2w]c 5\ONRWz$uޖwر d5)W0ږw K.۸<͓-\!!}X_J?  ,tȊBR~bQ +N@@3ypA=S&DPߘR+.%>ʕ_nW-/¡Qׅ/jͱ~KXu2AUroRr&BԨ:KX{ך:V_WUϘukD |2VGt}xhpй崙:襾I2=GESel ;Ƙ$XRb+=GQf+w {Z1w|]RGA:\Թ@~ %vQoEt"~.G-06zƯ'JSJ֮]7Tgz>KIJ`\څá&%Y&86\H_b!uܮ*u:vE8MܓRiV7ot»4}9G$t֑Ͽ;tTӗd yc. :RgLeԥRWz$uЕ?{ڀ@Ojdsν΄Ejݓ&`3)r H*-L7)L:UDy24)MFL:y1W3^f9sNkH|!NCLѡGąR'É" oc =~Ϩ4Yڃ cPxHG2,u'_zcyFF/n<5Z_cV~r_SuJ5~SxcGL @]>D2]LjFWPAs $Y> s=G=k;p6mvƘQx/͝7?=0u>&c< dV| j, #a!Dǟ_ I9i'|DY!O' UK]q񀸯ɇaLB'uƘQxI *2K]i$1EÓ /u DAYvb+=RgwYWh,uƘQTa3cW(;~r߾XK1gxxKsĴRb%KO{S*uK]`3f>rTacRq-[|D_#1ږ]zIșNsU.@91%RgL:cfϞ?M> 3c:\K.C7ɛMGvZ,nbiWQb`j:ڪNƘa3XK1ۛ%1JryԸOE]2 HD*8Λ K]֝''RL7nn۶]k?C2 3f(ejb$c ,uG:+#n!:UrO BF{{&ϵ'A=uuM?z b J ZOGI1߸i0v'0K]dVҭ ^`Q5U`R~Vsi] lb?AAsgMvQXrU>`mذ!o2g||00l8`GGGgggOoߡBٽ䟃1Xmoee[׮d4qxRR'c6SjRG*7yo `Խ V 0lпڵn߹wWH>cLiԕY=)[cVOQ*kfߞK]˽+gΜٹsH2ũkvс7oL}^a`34K]i_\Ӷ:k-uRw_ۉٵ[ O]]]C?L~Vjxؘ$ʕ+{QY{'*jʟ*j~QT̨^)v||\>8JK]eUReY.]O&*է:/Ќ>~5 ԭvI>"9'ڪjXő>0,1{ICg13RWZ7پ}ƍoKZQ_]zॏ8rίkDIR'_RIK^G)*9.萼àU:΋TFUYuN$Ύ>QI1=Laz/eH:`4 /Qj$03,Wk ôT3 S>dK]Q%`Z;I4n Ě޸s<ʅ\5D S4夶kk[^Ր(~U:1RgpcNY>ypg_G$1 X$m3INKIOtƶ6*4Ñ;cQ=S%W/@JO;0yw|hH9h:$9 OnE$}}̒iNZ%"8}BKbb*Vҥgj-r:›h:pe9SA[K1Rgӳ寓Xn =:w5(E!iax"`O3FΣz8TD4VGX ,LI[C~Xt)6/hNyt2*F>ԋ!ԡv;橆9|1۩R&LOSJjŲ,Id_Y%oR[yc٫rxzZLH$˺zbc 𽜯I5pq$2ΥRW5|O4܏pӸs='O>e7hZTn%`TBNc{ &MI&nQw㴥mx`&~(j*zը p8{9P'RW5f uk*UNsqxd͚5ɇa))v)UjifgS0Ѭ^^7RPyڪ=h/HSLf[T۰aCj?]n{i-e·aïooڶmGfSq{c NBkobt* f1;In^*H&E(BlM5:HT ț DiaDb17c3yNjLm۶x/9 -?H> 3{tON1ƔK]a J5CYMbdLԁNSYM̥zγ\MuKgjuLqNjL:ol߾cZO~'E`LSK> 3{0ƔK-[OZ+3RW5JiMٷáɇaf ,u& a+ ?Gˤۛ%=J7nv{{4Ƙ'c+ Z5k:tww[*@lڴ)[wtt$ JXb*I#u{{K'YC芵5vi$Sv`Lԙs֬YWGh,u@~ܹ0 f' J N1Y1#ْTen -F #W:$ڙvQXi!̒ƘF`3iXv]&[K]<{ɇa`}& O~)Cc%O(Kœ:W#rFn%~<鋒ƘF` -7R=tU K]𣡖P-+JṜ1<%@ȹ%)H?I\PH!r$*\ꖄzЖB 6v1vM0 hi봋$Ejo?*?NK]հ o9L81AXx̊mE.jo`ڨA̞%ʫ ,w8Y/Ljoإ3ժ1T4 V]` :N_`]VË[S3URfǤq4OIjXEEw%}(Q?vdoo>Jf3<<0K]}!`,DYM$B؎ Q3SI~deyS=%%^55DD,xM]Q2RgQK ókR dI~jx 1ؕ:E3_'8uejXꊅS0a1i mn݉Slq'f',KR5\H51Q Ymfc<i%j(=0zt_s,7Ε/N(TffF QL̏w5uRW,GAaWolUc~K]S/<3me*kQa+~@"{Paciq,u& a+8ɇa1ű iɫ{իWkkU K]p V`WH> c1-$߽ۛjoO'IsKcy,u& Wh4RW8<9L> c1DpRW5,uEɇQYcSbk,ŗ^IK2 cFK!!VثcvB4JdR//\j7d-[r^5 qRR1hÎv`"i?uȱ0X m-#V/׭߰V\I괕襶=32qjc.Z~g2I @"qܒH.C[@Ud!WY#QYPڨ@smΥzHhl*0*OHnRW5,uEP,}8t~801ƴ>"dT!uR&DxNzbI6 Rmi*OǓ և!xfV:ČL:C 2t~x߾cL!5 ]{zv<۶VAjX Sc# ,n(*o[cIEOS>,u\z寇$Ogn۞|H]` dio i"˶UE 1b\j^H,B]bEYm}gy#$ 5 V=pSx,YW'BHp ؛/0TY~M1XL۫URX u$!2!Ĉ#t3:$&؅Gm@MgҹN{ΛρdK֢Qmm1Ud2$sV B&Ku s#R7E~aB٬C$4ҩ>OʢpƘXL,uURW\n~è?K'F`wĐ:@lBy^mdGr$LeaU8-bz;@!PEϲڃ5]XHGtH]!R6a( ګDΞK]u!93@p2?9Xꪆ8yi̙gk?R.DK]H"g@?zQQtGSϒͧ1d*Ps2E͝7qrU$z)BtiT82'd;a+.|`aP:=kD c1"j @핡<  dkL[,䴑IT1E>6jXꊋɇQ)*tۛ]#5_,B$1I""DޕnڋEgZ?R{ AF2tvK]հw%Fu٩ɇT7U"cLԙAjX Mebu7os*$ҹ0Ƙ`3iG'.8:(m}/BO ֭ߠDpq0b1/ĒV=@dzU=aXwo/Au0!0.?Qi&#w~70T(IkA,.Xt*;2Ki*WЯC]ӳ{?r D Xd_% $h1S JF"H&2E$+YbWd&dx1)„bd =K]qGpGATTf 50pZ_ڪR_ګrV[N *n.ND2.V lrf54KI~o߱c4:S i?O+usj F]21!f ^: OJvێ!1$Q4SgztyͲ)uj1(@->~0T5V":UjR|bcԱ$]It@:aI'30K]Qї8ON>g.R𸳳 !K]qLQlcӮO) Ib/Bɜ)-\qJ/ήр61ݑtQ&*C8/s{Ԥe*+>)x1 S:2K34XJL䈩ܛd2 &0ł$L =]5d & }s/:$ 9ȉ"I}d!$kF ޴mێT\ވގ ]]"Xη7ɇQz*9N寃iYPiiBO@n߹/+"f⫕1%RWT"se\YS/"|+{!!=d%j+,X@Ϭe,{P!,YAǯ_^S),u%)ț#Ǫ_R[==;ڱ'TjRƔK] 㴻SdYꪆ;~R$F9?޿n0Ƙ`3ix'ip)OWWwu76ٕ|S,uc$13o߱in۾~.ky20õk%FZRGx>Xq05kh!\YSY,u&R;K]ԕPK>[}ɇ4JZ0%y"@d5&Ra7, Do& ;g58' S 0|ƌ3RС^ydq *B"82KIjXAGϝJ>28xiHјNX8"m!ڇIe!Iz&IBŘq3.jR՞:1!l"DO)]["9mVcLZBRW5,uj^N>1:&%7LdڡjО(02jGd/q3ԑuhI61+2&jF"[c|sY~e61C2REvC"R9& x :4?1& -!u/`S5zu7kKfXܖ.wHF{RyΥ1H2T&' &Q&kLg<b?RW5,u)Ggg;i<9eゝ̲S1c&R֡[ -fZ'b*͖,]u3-!}e15df:& lbuF_ ΝN5'p۶ãXGNDNcL&qMnӦU;-a+NA:::?xܸGF/o޲ݻc[ojCb;%D|*D.|ZHg)fﺺRW9,uebp쁏&Fh¥TFǹr,uu$NA#Ռ;BG ^pcٌa2K]ԕ ;M?so& 䥎d.lHDpz2iBy~;Y).-'uމoM 3{05f&ymlK]հԕF9SXM~%R[ 00pZ Cy1R{=ҘBrRBH|+i ZtY)g6ȩmI^Rq`d^jF;!%ї:Ku".-u`˾}n)Rt͛7 Yʇ'Meb)+u,V1p6_R:J8yՌb*Sj\.B[r8DbƁQzc#o+S pj*KaհԕGJ>ЄyQxΝ;{{{U޳g?jFFFBW^Q!v]r̙3OUV Rs^>zG'-uSZNɘd e AMemhi~ḾՌk<+4Q`A~T.1V$sjXʇ|%`}6SHK622"CY 7SA>&7cN~3Rڥz|K ?Ctˋ_?>:УOn|+_8t5401-EH~|r#GW/sgk>n^Vj2 J ѬVW!AJUP*SjA;H^(u:@&jU%/cCg'1H\-uURW>ۣ"4aYKڤŒ&JoXf3Vң`n7W>s{aE3,eioT#)b^V_zYe]r-YjCLotb!bpEͨ!Cg:{]ҹGVd(2D\t٤RW5,ug}}冞B_[lm1Ա_W3$RlG׬Ys£3'ug>bΜIs'5P5zɬxte5 EB؈]3j<+N!C,x!О4q^h*3f لa>K]հԕ k\?)k+?&uo8)ȗ,]ՙۯ/ 5抯6Cc\r}:o>{YPn,uURW>Dƥ`^'OGl0fJy֤p%ʬnIlB$ƘgRb3UaM8;fv,RLmۯ^|iXJG=16?wn{oFoGM{{6mڜ `Jdb<ݣ_Gd$g;eU%w8ES,*u.j ׋/io@2uA`xDƂ#Hh̒6“JzS4=Cc4Oc]]+2RWJЄk׮!é麬 gfpT}X)eu7H.\!@Y0Ã;R t,XxFEhO,꿽"J,]Λjk8,vϣiΝ;7lU[?$ԕ =>>88xq7IVbyOkMωKOn]ӥO*ϙ|whxϴk!ą~iDN~l*`wb62@82PF CTJ OJ!i#t:Ž5k t542H݌c̘L,uXʞ?M>rνR: چwx"iYmIX,g=|68-ֳ4(N?+ %E9]1*ϓHy8y*8*md>ztFGL5I7/]p\.6RWV|64zQsCp KYx֝[&W<?$1(P?qb ,ueFG5z>,+SD0TK]i04K]Yq ٰo߇CyӜ;7{zv5Ӳuz+^q-⾰`0yo`EUػwU&"h\՞O|,uRgĴr(ݻMC~$_274(/[k! * =! CN&P1q8cLC=DWތ{ԙjb+1NA>c:::$]Z|_2ue,AԖ'rmvL/,]ac@e"Ө%"j GUNƘX "eEsba N/l9|&߃TK]OqM676rflx1eR0Aƌfs3ymm˳|oe`3RWb63a:w]] ^XfbX v}r6˅3!xR4*1RWnA>rT:ot\ͺ`._Z%zzvvw}niTK3'ͫ6ͭ;j,uXMoMg~'OR73#*\z#x1bJ1uRWn \hܚvvvr2 '4LRsy|9]%;4K]gE5X?ICWKnƘX1RWn(3i.ȔKObJ]dS9c ,u)ȟ>>ؠ΋R73: & ƍݷ4?Gq՜ Y-Eqݴ%-Sdc"*Օ,8#e ǩ@sQJ[ ŗ^;zSB(05?|cZK1XJE|Eq XfNz&5!r!9sjAݴK&&صd2y;ѡOvR,xAmT8 -B|r6s`%#7:} *[fTq1-ΘaPrV|3ѸǎffƴR'SZV{%_Ixh-x015qQɯx^Jej(K1 gU y}I[r=쑳P1RgL˞]u|2l)JkXʹ6YN-uȤ\DgR[2|psqRWzh ̓͌/5}iwf) RƘRgL[bfˋ/t^Ι󼮦dM68Q[n.YL7XjUYY1k0X!7q-jb`EYʕwuvv6bB @1LRgL#Ų%Be֝˩WR'Rک% $XnԩFyc*cy=¦|L{RWv~wdra>Y5biRFRy۶ܴy;T e̴X)2(G2E/enYmD%:c:cZ2tsy,u)ȟ2)T[1^XiQ'_0{ڲekRW z1!xָw bZ#a#FĚZwa{{sS2,uƘfp—*Рeq _㍱?%OT#o6#m9!DlE~-KihRd .Ă.ѳF5 =hȪj$c$ 7HڦC7UIbnkWD1*8B8WA]VfxxtԽ"VHB2J[j3%>wВXJ^x$Emd|ΛO'D d="OL<9j!'UtKznD~pTD2 ^ҧkΜ%Tzkf0tȨ?,)h>Ӡ_]*#uțjtݪjn1OI'4gS/,uƘZٸ"\qsӦɇ>rTݻU9{&~_1ojOxGt1?GUx{%Z(ϬЪB'uq e\1H˩U?Ë'u!q: saMGyI"1%i'ɛjxp)(вZHh'&=d2*>ESe,uƘkIg~0&Q 0ٛnB;iZ9U 2 :ӳ寓gRZ ď2ҘYjiq,uƘږΛ|F܎^͘T(X1-;SXCtuu{),P2hLTc :c?IX!He.O*u**#EG:4hza9wuttԽۡ}Ӑ~?Mzc`35u1 gj++e_؃czOa~AG1X1ӀaquRW 4(:1cLűc'iK4O֌1$RgLxWk;*'9x6{#' 5c1 c+-ug}}}^}ܴiu)m1X1RW)|ZplOFf1&-:c*Y›|RK]piݻ߭om1&SA^|ʔE˯*# El" f>A4DT g]K]p 4bV?M֌1ƤRgLqɻl.Z~N57vT$fKU{{RmDv*?GrԱ+VR{t^K]hDǢsッgءcK1B%]~S%pqD?MEo*?jo[y-uU)ȧuWoԱF4SD,uT+W!] ֘Q-&%{2=fc]j4I/O8c Xꌩy7ky-u)|{󻮮nc ~ӯZafy>h1Xꌩ>|5ի)lڼ׿u4 cܡ1Ƙb34H Wغm{a}8t~:i)4[l9-W_]mcf ,utuu{z6N|dIP^.wolJehKY/#ګQLL05 OC4TR5$eoĘTXꌩ:r)XɦM߸|ɑ}uttԱá}}3c.Z,Ud7 qj%/ySyo@zF5_t]Y-Yv.ի2Ψ=sGm?U>ԀNrOTK1B(]teĔ-OɌmKh@j0-u1Af+c?wn(2fȯdkHtKe|-Y`lpWZd^6(/,Tj6 K$㊩:d$څgԩR ,u&-:cWF\2IǴ^$;Q9Y+yN3eYꪉ(5sXvM}nLid~frRUcZK1"/u6İ;*14i,.NNL,Q)1qU?9^9Q5y13RgLYDX~ș]I{{Uu6OdAjXΔΩ5㾲tvv޾s/0Ҳ{#۱'E7nOVTi_ֺ+f][7B‹]0uut⌢ՔrT XM 4 6ǔ6 u=4k2sg/29N*3x_c愮.~ֶ*buƴ/iFcQ׶8yRoek3p?pH7nz뭞 6*Ѫl~g۴'uƘfzkyZS8nݾ'E0im,i2ygӻnz%깅o02KNhGeL"`L3@p=6wzfsV3'pߟu'8 a#1âcLci5`;w>YkABdI'nXA-%ǤKYع),嫊ʡ5%DxՒh5ǾLϡtg[ "&PqEQ R5%ˊ1r *.ExUpNhGGp, ]OR[cD8(p 屨3X<u/_Z_TS9VXDHRApyO=H }񥗉mOJD">MЦMjExo Eݔc#8vԦ@o"3FC4pU!!;QhʧpAuAY!N:%]Jpfl='!諆Ǖiy,146_V@m.\ C oqĉPDH="SyғOI95Kk488=:4rS]&blԋҴdczl?CTH92W$VuQ37-WC%3uǔc)T 屨3X]Ӧ/͕+o{e fee&*@Ҵ dXpBD, E$3,ớyt]򧯿rMv1$#I/GDp&k3KJ1&1j>or. 2DfX 屨3p8[U,FGopk]jgml@$/c2}W)ucNlc>G3%ΘV¢cL9t|ͧșѺ4b=g~D&Hwu-_xegYti%KHalY}VgGbZ:c1 m_+݇f`{o\O#7Xci8zZ0Oggg]ș-yNy1-E1ƘfІ!u2hǩS#-yNS-|Kf>^J~#h%h&Xcim|CGkok9x"o !QDo Ed*mۀ%vܻdIًT#~ZXWŤ܊@4J.x~ tⒿKNsե:!Ӎ:c1͠E^w":5mΞC2)lC*K hBi*i%LC)eui_L m9Yԩ_.`j?i:UO1u#LG&n6o\yko #R8Q"?+,!UvJ뾬(Vf9BSa~ud*tn2aB62LJ4 :ڮZ՛I겞+~ 73Օ|MhHkr)Y(qᘜS8Q7+%u)ua.)QXXY Ď{ ;*b-X$s tWx~ *47`Lh+3z-kõ ,ꈡWYkctXԙv'-X]uڲ:_|Ӯu*eN+RZZXJLDiyFGopkh'wS{;ZgZ< Vnůֹu?y LcQg *4va1Lڧm)uӶi*~19{3mB[ ߻wc56rc/7ME1XSnȥWXvܛy0-FOO73F±7o~?c1ǢΘ6Ǣδ/Y?cn%NgOȹG %|IɌSr q;yY_I߉/N3UH]ſB|\?+m_aU4ohab4H ˙&WOti, z5JP -yf#kGǢQ* J\lxS V>ج*/mfiI̟ȡ@Dk%x5BEB%a4[uwwގK E&W^bQgL_(~$XRsLŔLe?fBe%9KTQb4L^abFN J2dx1h IM^~I֦Xд6yIfQ [\X't7ăZƃLyLUd+by'],W Vkk7\<p+ z7)Sh- >gg NT?3&rkG\9bJBWc=eBrp2?S,j!-XMD`?ug?+_@꠯cWh'zHGՕZC]U)Dx$b)TόR^8p̀a ~R׫tBl46'*XLzYi+´C,leE]-ĴU>IY1&¢IeWT51e %0vGX04K!TT~,AS 9^Ѳ?)8vD#9,WF2ʼnG4u]Rrmj 9\@@-^Pq9ɋ.vqe/WF܍h\9ٛog'Ceqጝm2gCG3FC[}jM^>n)MS/,tcAh2ypa^Wh,q^|el$%&x#AkRiXզ~~ =+-\gy3ɖvA^șQʱ3ͱ3_בKtzғ Qѱ(m6逸#~@†Kt:bʫgn6u^0R/ϐ.N' us:Wk׭_xku.]2}:cj"Cշu-|hrZϠ.Su sg qwwW31ŢΘ<-|hr| Ez\2mEik2 RMd߾Jݻ,L!ȷ|ut|--pM@LV)/O^>剺3D0XcEIZ}&PLnL)֬YV?Gcߗ("-u2R8Jt2!%C4J]tV-t?CF"=$t:cLS3IiYKWBt:;;kiA 7@LRIHK_|8 eE@%K: *%;:Ʉ0(uHHk0$)ѽ#+bњzQ!UDc$O<+:8N={O<4r~ bDh8TKM;|\*0逸Ոjʼn"5 \F[mPUxp9p'd9q9 O9Ce:cLS3vUpյpԈ=ș2åsR*!Axk=- ZB鉟YR,*&A.W IJhPCRvqN$gQ1P3&DyBA^>܂{|}7 ֡ߔP)z9QʨNrPJhlRPJp\d­N#7)M!Jj<|qg;46^aʟDS5Θ "GXػwcÙ ܹkO--Ծ$ϴ!S.Ӄ>1#V|J`(GZa``N*@I}ȐLȐXߚ&ܘ|K[ 6$cxgύ  C a> =7Q$77NɄ%"ME^F9t2k )%DFN#$r+r J3Qp#XQU9cHA 2L3[SG,z$)ÈΥK6AӽDTLEL/Ө.5UF^FM N%s):uZ5yb SMCɿdT#rГ($,-)):sRQ ffJ,@J{xg '%,ڱo@OM Xq\TZF#fځvHjk`ov|U^#2a޻53f PeXՆ魡E Zo݇]]ki :uԩ;(C$8zlXZtKj2mE1FkocH1S;oB`KӪX W^O3Id~ҪâtUL<̏ iˎ1`QgL3F==E\dQgsמUWuq״!.kZ/V<[\C#{4J,z#̇gLXST RߢΤ[Jj>~awww+IܖqE_zY€@5(=4RxCL\g{#7^_8p?޵)Eai5+~8.~o6% D N׾qu4(CN٦Hαgn#,̎36ӻJ p $-~q#䈫Wp7 ŢΘrG;2\3iZcgggժlhTNZ&!^V(NOAVK?os/;uϢfudt}'@ H/9aBD (`ն2 qNH,a#p͟:0)9NoIjm#.%UGu&I㴌r?{DkiQGyM}ZUdQQu$ۥN>ah$JR_J ~>h˒I/ѝ{$RYԊ їFfsR]Z: f]+GL0f?oF;WFOOX@x\ u"&VbxX> [ԙ4|tV]]Owf~ \I`%K:u=O\(BjtRuR!`6MΘF|G"^;W^aCXY`F X;@:eW׮kXUVŢΘF:kY7鬱Fa@9H;1z}:L#gF{!I&!mx睾bŊ%Kd~ 9u:ioΆ 3)ۇ͛/`QgL3TunQgZq]Y]ڒTb09[N0ؖ,]1YaQgL3]ʔէuxU>:SFkqggguu[iaa Shov]jQgLcQgL|jj}?k{u{>o?{D W+ X Yxيi_^?+ (>NE)cX ɾ-{kE1mE1&===K+:Vzkw=~~s=-"402D3-TyO=M,QB໅ar_+%RG1mNNL&a-QZfUakkהq/;rK{$Cٺqc̜3N}t&Wn'iQGtQ;$甩ԚJ" JLaCUu*LyZԕ8A A )ɫs`d2a='3F-?phph?xյi5 wDUe5'p6w.J qL6%CFXg$} ?aɄZCE={(oaUf$8V-*cQgLQosG=ÔejtR9qdL&XEERof%׮E /:^%$ѐJKMEd*Q ŎE:JoaK&nL;cQgL ~|HIe߬gቄbh9`AJ/݇zf>7>"2Fu ܹkO[&z;sQwҥKh 7 /j7npo*!kșQ 4 3I"zaQ^؟>+W,JB _nW8n3( uu=;o|$sԩlIgܿw+J`랞kof>*K-M3:cF_&̽tuu?aC{Wm7|tgdddWU˽3\u^wwwobQW\ΊtP;3E1E+6mzZ73::QANv7-|ІXo/Nwt,BI1>ܒ)jpO_,T~Dc<WJC0}T).U!̺1`QgLQK 4~)H4yu,`¢ ͤ뤩eN )eDݳ-4%U YL%'D]'lDUBRkC66'ug:c Q榲AX%)Q7R({nǗ-[644dQW9E>rft~pX&/פ3u*bL*u:*iNTQ"DaT_+W7֠qkBdE1&ydI4 k>@=4J3}ؽ˼ r44UWqESwAK p4}wDooo:o~%^p reːvPh-I/$>j}E;RJ5o;66\FA!$hGiUTftUzgT*G(k]и2 C]뫆fVdFdWf>99װR :cL3NCg䓿޶m@? ȶE*,a#B<`?yuqEݡǾ|pl=u&3:ɕ}B~gʙ:ɰJslQ_j 4 4ԑ2u,"M;j_Q!ʨY}YP\*!И %bc/h6lGkƦj7D{_TŚQ&+ Կpkt:c2V#u8J){˘5&t1݇5u7?vb~?qΩ^zŦɜeZA^ S/,)$z"><|2̕ZDݵ7OiQS׷B:gYQŜԵ4v#7sŢxi[,ꌩ7nZܬϲ_׶s=xF/cɒ%yʏn/DϦ{|+<*::c#7snh8޶Ғw q6~:{ȥdQwg!2gh\^33uƘR8uϲM`y`Np9bo WgDgRe'C:ޕDNi(NZ$DW@XcJ}Eݭ$V^?S}tf֭[3-Y%g/_]nn])iMNI$eu-rhɒNi&"΋/*>YG["(H,:R;"|8At N鈮[R |Ԏj)xK7L ٳ5Nߛ,pТN &0QxW Y `YvBWDg:逸i?HT{:cZ^m<|r=s28xtCTAD]Rl$Q$HLgύIihďhT#Ϊ U9+UW -|2X[DR9Hu؂yh3b !${WHG9>|zdQ(FvfSR.@X>!Kl;Fab(=r'i0]aQgLˢ{t&)UW2[pW.,m"b/V%KJT8-^ڧY:\`Q-z*Ũ&)7UQ3Ua*FeQ9o|3P3d m2@\}wue>̱KӶXӲE$[j!-^x!={n5 H]arXU!E]HTfRDzs m\]rr..\fٲe:tyw&|@_'og>ɿ uƴ,Ojt cl6$0WI`~ɚUbʡ)/lTuy rtwwϩG;N|:r7)Qn݆ڶτ݇i c^{-'3XĂ3yܬX儜{L𒪄\gLȿ۸qSȜSw,1COK,_3u߹}saL+um38ujdq>K.նko"/jK1X6UcQWu![cE1ౄӕ@Cөky7r~)EݪU3x8iFNغ%K:UX%'a4E X2ccE1`UPggg&a-@ί]y_n&Sf7VD@pMx合QX?bS љ nXcJڐ#gF3d==?ujdBί]u0۱sm 'a{uk$aWun QK/k!nSOQ|0E1ǝv6$SmJί]u0Yq/2Xeww@|{HJscėcwî 90jOj2&szr~L՘bQgL,c3uƺC*NMۡ/:?)kî 90jOr1EgzD|[CJˢ.#:!FǴ1MâΘ x߉&ʔޓV[Ӣ4|ȭbOO7+,Łrr~3ͱ34?3s Iǝspm 翣E1mE1u^OOsꕫVWXx~2Mn+,ƘaQgLSM֭۠D%pT%ɛǔΉ5;wp>'M5#jaXS0._ș|?x9sa3_u ԆGJ$(Bi^UCKqߥqˬ2Py5K$[:" Uo\W##cSyzWy髊E>-ir,ZIJTdzNҌG+S_:cJAs`dd[v3<|2aټ+)9~awww_5[Wf+HKhKk(q¬@*s pE46Ej%<~@j3޿^UkXC2wt,.Qh<ڥ| igЄ/|+cSǢԈE1EŢ4\SF>ڑ0Th!\kfQ'"p!E.lC?hyO=MBŤԠԚTT2RB*ƥUZH0CEccx!ꔉ,T3eOX HӔ` y<,-Ab4F,둤d@)N>nQgK_˛WX8EMLG)hdB4N Ssy6Cws%M[pm{iZ:crDFy{:4t|ra:8 HD'"jFr~ʛ*d՝)_q{Jc1crE19 mW3 e/_|IBW 4MunT73):crKca+q5ٔŢ4xL9t|P\ N]#lpn oճa#'^kE19C\<1eEi4s8dh*a0S vcE1EE9ӳ?#'~zu$Is].Q7s)sMh*\&?rg>ZSG|2:cgh!mx>%vڳnC#?/yE!̮ZKUAdb WI&E` Jpcl%8+AljQIDzU3'ԑvF@)-A1âΘbdž_O%q(NMMJlⴾZdI'~dD"RI2I ʍ < 6"" J˖DIK[ȃǔ=í̕sSZEnk+.N AD$+?,L.<^LA,> ZH7E:iC%DE&&N=^q`us~mR1!)"nH4}f8Wх1ƢΘ]q!m Eԩ/|!3uę3u2]@b-Õץ?xr258xtCӹZ3u]oFѱH|^vt(]BW'VaUՔn"aO|pPQHjN)D8ݧ`#~PDkJjI]5Nd٩!&MnJGޓj^tqjg[vΘƙX 2g`d1%'8X 0Sy!C)8!Td:H zn;~zΘǢcL5[4G:O Ӓ EtphK.AIIG㩌 0EfT޴ MK>Va1DB TKPQKd$b$Ji!f dM]ԝl~KW2âΘǢcLiB|8e>#P70M4.$2%p3n'Ԡx h;JYtioII3ԎE1Ƙhņn3N8tTW}o4kOˋ:BxQHR^(#FrJ"#@ ! _UXUH=7&҃!AZ&Gr3]Hcxi һB xiucϭV7ԗIՈr% <q>uLbQg1Q4t.ԩv4nnΪ!v2Eb3\ȑ#g::e[L!TSU4̡iKt9*=`ԙT _զDS̕I`ƩfFXB*1xb0j"-c8L4/Hʢ}5 S=*¡ t]\L#Q`2LQj/9 pt":iu*Yq۶]+,Ke̺>k1?xէ{zFR *.2϶wCxʤ|6o~͉P_6n4@z`SOcK1#ٶm@ r0ZPa.T7))C$ZYyع¬V&NhZt$Pb#ƔFшZP&1g1EX&/tt,"CbꝄ`kc3!'ͺXK@53ȉB 'jӢ蝅G6+G acéSkj䁆zLit Z#'9QhQko^iI,LQIbQV(d"7bm& foıIF=!'9ъl*itC a/#f~ON.13=HHH\Q2*;uJ3KJgR&}eXnWlCCwvvNg`ʕEy2./hL ̇aiuaaXuuds 2~aWF ==sݕ7t%z-}3:S0 w7zԅ,6(j-nre~>gE8G2F:Vu}M.#bm ,LCaKMsx_V-~Du5jwVo2?33vuSGZRᩋ5ެNJ+XM88*C0_zdIɀ'rmY;M$:Dy HGo@[1 ֓[, dv?1wl]3+#gF׷yaίdRwww΃Hi9dh=Q\+?Lm$,)Im(Jq%PT/{dƃdW2P] iNȴ3E1&4wi>ujj)MKFhEZLNF[Ę=CH)-n?3r 2xB&GhbVMԲ1ILL)]Tg$Ļ2`9 O1Ű3VguAuvvN+'46iN+FbF4b T悋]*c:c mvi&cQbcXg#Oi(uEc:c rع̇WDb͕+1!ȇOܵgrW׮ߔ& ТNn;e+s,qMaQgLAԱ|\nVxg>"bQz0 ֒녝 5B:cLcQgLau2+ۙXԵ$u{֠x5"9ObXcE1Yn~gaٺ 3XuusE]KrMizYeutwwOqo\y+CG3F;`Qg3udW?|:>w|ӎEIhSHI%%bbf&ͦ-"0xs?Դ@bj]IRwI5K>#2Bm% ƀ)d~)C ,ZKѹt~9;̹+(_zy ƘaQgL}\<ϛ+W^z}[\S1$γ-`Kk/(mۀnP5HUr"B+\.Ԏ**A(!I?Q_IRO 9BBK TSChx,/$2l%VrTF%6Ӧ.ctM`͛ߟ?]8N]v+fR Q5<X!/_[--wG??s^mUwb+Eҽ](7t6ц.&2i*Xs#WBLiӢPI!$Z&lZ)^H(SґE#/ka㤎!ȏ޻w_YDTW0tFΌf>(xq_'0块q3]rs)<smu$uj]#JlI,ɖŋ_ݵ?a-Df:%7o,!-%Mi#T>UQ&֞}l)62p{#A˘b*F8=%XԵ6쬋ڹkɲqL%Em6VVl(vܫ-\\xߧRhJcl_P7}8 )C6$uԂgjC->LXxwγE]ks{zzkc7npdzv˗e=`zu}YeBQD]++2y6㽞1&WXS=,9x$O&;H`Nmky^nWK;erggIpaL6pVXS=5?cB}Q_z"-SBu&m?^|m{zzkTMuYwM&s=+lɭ/_W62S uTOxY8D)E|Ş:=d> Pj_VS*H]ފ.[)FΌoC.~d1&C,ꌩXSG5m_|pR]i SF?޹ꭞ̇aMSj7Rk^u4?gN>E{1&35ثE]%XԵ nߓ*cJOna\z}Vty .7Ƙ`QgLf.aFC)C͉kos29RtzdKpvS;Eu_ft1-E1PG o\E2`Q>ouCβ́v:5SdEQD ^Zn;՝7VY|6?ę3Q ګgύ,1yǢS+UյjS)5k׭ulRegWHu::z~&kک=4)E̿D2. 'K/+=4t\[):^ٔN-<K)G&H8pQw>᳏zgG2?9Ƙ̱3{==sn=ɝ#T\}ꘓ 05=ݵxCU{2ƴuƘcQTЪt'E']__ܼFG;m"Q?g>2ugύe>6cL33&>xOWW}}cg,ڜnm/_FKMV,_oVٳ.Ic鯒ey2O!Du|%i*:37`K4E/dˋpnM۲:cre\$C,ڜ*QF"PR cNB8`Z"~\4MŤ47)ku%h3skL3aIuXY r3#߿Bm;J]YsS"RTtG,!%0 K4PDR-GSDޓTEҬ F_RoH[]I0ϭ1¢Θ9Ȥ䁺Z7n/<*uu&rf7Lmܸ!>\n]Aɧ[c9uɭyO=-EѱRkĜ=iGfYlDe0nQfDU E]o۫V{>}K0c*ǢΘ9C$.cYB,!d'M HJeruu*,XS'ul&==np{߷3if-Vc %ڤ R]_0 &EE$}x xHq|wޫVXn u=V=:z~ٴ:S3`:0dyڥʜlZ0w&s"f`we13Dw&lBՠZ{=0i­+y9s1::3%Օe3ʜBM7$+V%n_|Ƙ̱3~!Fp|$>6'rTAS7LV FRfG"zT4~]$DžM2J<Г)gBٛT::3NS;<|r=IiO =vԈD]OQ/蘶P"cLC3$D]Z;`iHF\HI\r$ ̭D^B] MN.Zŗ^NJ0T-Xԙcʬ,cmI]L7Mɧ33yvx[֖91dR8b.)hcE#w&!}h _ߙf5a2qARXA}0|!Y89|EEt@*b+ӡXѵ<uƘ؉G =|\O'.W0S-t 81^#ixJҺ%RH-+{عCe"GfɐI6E1yGnÆƃ[KR6]Y.&Lj/ aĔnE͔\~3?&#;ct!YnWIt/[>ܪ*i2u " P2,0 dNKR6S 'KN,3L(Ee/iKƜ1ƢΘ\a/ЁU.Zɢ[>gOom(<2ueggDZ冔(V%WNW_-Wc kό:c &cb<.F"B4C2yam]>v !G`ҥz *WYfm\b>,u+Vٟ?wmG.I)-3txeuږ\zDpK9֝*DI%t▇>6D, D/51;T qvX),}hE_}}I6Aim,'iQ-v.vc[ ɌW}jAzami/&,.{[ٹ@:ؑ3]]]+#wZ4xnIrS'-IY?ƍ `ځ܊:ӈ:bŪiz_#H&!?bg$rcoRO<+DcrH(<=~~Wwu&O(/L5XO&f& ~\r혩-u#TZ<#;jE>KuG[UiOQL`%37x=+:[Qǚ48^ywLI!i؛+H\RcSOb|BƢ2U;ǐ| _f22OçgɎ'iuTJ2C[$sB޽ĦM2Oyq_2W11Ԝ!49uLDN;i?2l*--# !Lhl$$}{s>>rؕb:c믿`ot?LDիIҥKȼեϣGO? ܸq|4(U,eD݆9/k{/C7AIIHHI l˖-CH(_uVu*>*Veai&Uaq42R?>j_9j_cP- O.40F]j=LSD >hZ҇oQLqǝy+W]>id.nݾWr.}~̉^S&UAױ~ N@(@`)D2aÔz@=2Bxh$20ΘM:mWzwf> YjՇ{um^a䙺1$Z(DdZCCCa*DC Ђ"(Q^e|fĉTF9c .TCO4S2UQ-ǃ;#W#ᇨӧwMҟnjPOz )e!:(F2?uֿ&zgÆ{' 8U CKE8[3֜?iJQ@[lAUL5 լ-āʊ5*vMUg-ˋh.T%漧f#9=*AV ^4pq&))=UXQA Y9bg20Θꭞ6uz&xMG}~7tkjlIJIOBI??rT@He:::H3Æ#f$ӎJSTKmbZIB :u&DԡߋAF2w> L_K=l59rz'LGJJF<ܵGR5.q9zlo>u3>إeǮ= WfeZIHH(2 OpBI+ܪ,&"vNDsrg7vlÙ턋dQ>Z0)DK?OI#1 -%$e ɮp0_k: JbXx%/1$c᥆&)n]äL)*J4,Lرs.@=d>|ҙu5)V9J͵V0gk?xL`@s٫k㏗v&\ٙ?i;`QW*~=3 LA3CbL&0'ШĽ4xTQyrz.)KI'("fĠz{hS*敡5Jj8uI X*aƂiQԵ^R^{[u&xsUE]]fHbi2P}<ӂv֢H55lS>8ډI)*XCzdYJ +|T1B*8Qꎎ8@NC%PlYMuogI{E]οW6Ţ9Xɏ{4eժ25cQgdSH$iPJrH6+fJ׈R}1S|c΂caL[ ,L3-aQ &Ҟ K\vMϐ{{O˲ƘbQgC9{^m8׏Gl;ןc޼y~=iu!o.b%)߸͢n2]> ]5)8`pU xKJiYQ@{CEFH9iLXSE#}z;&׺OvIH%2ESO>o%e$ mw}*v+Z UG)!ݓcSz4إ|z=ګ8°9WE"vpTKyO`QW&bNz IJ!p$? 2s9+3iDRřRM fCWET#"[H,;uu"Q7ՏCCZ焴/7)Si%zK|%$Q(ĉ?=u%UN(֎^~[Gs]N*Ք2W{@U]uUVyRgvT@[vp[I[ %??߬WŴUZ Y#_1B*+W(кt~W,BD]7Je+/鷰{8-"L+$1$E"3iD[G6.cTF//5J;1 E1yǢ΢.[$N^aH~ ɏM$o-//nRBۿ?s$TF }Py7\U2?mU*T =Gu{?$vo{S_)4UQjY{"TQM^%$vǩ1h$tʰ*!+~Rڥ2O`QWjTc:c2`Ӧ(ID3O#c?>oo*T_w?Ү727}($S=w{z >i {եM5H*N* mվo|JvQB_՝ TbJ)%#QEWZH WثbQZl~ưtuh`hO1&XWK D&Ê [YeD/^X۹o_xV ^PbmWzyE]5P77ڞ0:cEE]H-u!.{|{랚"|YX-cLy3z\|9r =I4ՍE]HԽMn9u=a$ "'ň@@>(T2D2:$4uHF"]5ZWš8(⸢ILORТQ hIgL3l{& yu$"θTҥOM["fY9MM+UWx-  |gTR*Jt@TTG$9e4 ]qU!5Z 25ZԂƠc=ԝv]%կ('$#A 5XcE]HԽ&XU: tşzzQ/dɣH#UaLIO m[(Z&͒`2QQ[uN#qc#SM֢;R>d3]!Wg slHM" &j0FULoϘR3lٸo՜I#+QĤtKo A1=44r0SItT faS[Ԏʠ(Ca~ 3fU-P̌QGa~cej?i1L7 :cLޱ˖CO&~rw[4E xҲEz%jKڅ)*"*xy0n3ۧYur׻7ǿ29џ"wte5}h(XԂHL 0$RR/\~pcC;v! 1cQgLeAaz=K<8E]wwQCljggmb[6n8J{{kK?u;ۆU/Cł.ul= ktei%MM+cVzQY4~G8rV \fͺuSOkkk̎E1%"%-g>Lhmm12lM)biҁ]ՕrO`cx1I/ ˷|%3`3u;Ûd^XԙrО9EOm8:ck==w>@L~(%]o3]aQ.7-ƘZǢΘJqi|| myn8yr%J_B[dO>/³3ohVE:G 6u x߬/I¬B$T|j$j-QhoLZ 5ϤEczN)e}H>wf,4 ΎI3gW&@v\ f`qie-%Up}wth<(' ~Hv9 dԊ13SƘ*cQgL^z=~nqN(e"Ē|EP)|3&iB }8C@eRxfO=F.}A,B65LRqi͘ZHVBYAEuf^LWkF/?W;zm\gf⋕17wnEI\ӯtG kru$_)tfA_*)=F#iXQB ɴ!7 aP)Z.ʣ Nk,y4 Ii(,#ڮӷgGÊav،K83)flaz ִp/ۛUL 3EbدwYԙҙFnLi/%fbL՘i FaHNĒ-4"ᄳDJFa>*Jp3B%&VDiR%ajKӘXGJ\HJ-LHIM?T{{ǜn4dN\jSXS $VVơsT~?.JGҲ~c:;49bwTk׾01yƢΘ*1$ XB@+)*K/m޼)o{NɌ 璇O%?ןY)KIe~1ٶWUkkڮqw00zŢΘ*GY+Hie~Yۘ47'ofw8E86v-#5 @_\ncΘ*$1)̛*.E={=;4-[&Ʈho( ;M1Yk1fN,#ui@cfg3O\mL5B=73\1 Rۡsí#^rTrvCd*z24ȧ# #Jg*L]]ʐ모9E=:330fv,1yǢ<;wllkeۜm3ovb̌?[W4IZ}Q)LjlGY4&%S(%Ս .}2&S:P[DiA;A-ZKjSGqmjjHiDj"#2T]mGj:ǫމBČE?uƘcQg,-a#GϷ_ek0(\4 -LVZEe*xS3LjG{H.TjdQmdQm$cʉ + k E5 uqFwsPW$)=RG鳡.(0ҝNoUL\_9u3;u9ʼH߼Ţ]-ݽ7"a%F/7fIS}| d.ke#ܘvH<c*E1uD/b~;]$W*/>B*q`=Ri xJt- C*ufFvY NOoSvxWj|Ƙ/% bBtTE eIAa#dF,PTv(0beNzQ`LX(uE-]#GKo_-/9)"=c١W^yeޮ۶(Ѱͬ13bQgbAHXͪtN&U$t L(g0I $}..D/)1G"S1D:Re%骥Q@zktYϘ9(v,RHH::?3HRh]V RSFXM:6vem31&XSߗ f1[QƖR8?ajȖe崩]bI&( L S21DX9R gI2IOQiIdNFҝ2bbN/mҤR= rQ cLbQgLuن֩#A.FfS^ {BQcfĢ3'uƘݽks0p.WBl.[tQ'&{LʯyC_MY6ֱ3fp?[D{3M9y{c[|,lu7Ga)fLuz w$b˒y,T. O,$SXLd*ҒdEqbLK iI!!XemV㝋u|M\+ΎYN~Zc,1yǦG v<ܫ8-[4,E6xQF5,x+.| #Y-+E-_YxBF\E˱46D+*p$<"S%~(=|Mg,1yǢ1YK{zz֣W\ Jѩq;M1 cFKI ~Œ0-eFii$؅çWeSk3uzL1/0m՝rp윞 fL!~#S:(ڌӘΘ+kLfE5lBc)fdx tVPĘaQgLyeإ<,u%bQ׀H\Ib-b-)˼0F.m|Ƙ+v&hK@9Ĥ*X\_V V#U4< κ b iT:qȣ {zzLC[b,.|Fw;nN^@Ŭ[f\號aSslڭ'?7Ș̱3oXxau8qMKɑ^*L-(QX,WS,obU-ǖ$ dx$SEBbɔk5S*K-*UPqD|Ei<u>K{E^-Chpߐ\pqRz]d~1uƔIHXR'|t8tm0s+W"I=nڔuc2HN}4x2 ΋Q4ŘZdn޺ƛo}Ř~=190pZ}.)@;r(!2J*B%꒓ԣYzWBU_.uJTZ/o0WyPZ3uc͝;ʥ[Ynh_ ص^;M1XM%$Դ2)+@R`*bI3j*f@)A:RU)&Ջ$C)~YmՂƠ*T.}RN#a䛜cQg1ڔ7ƶkݜښ)cjCqID%QbLB ͆.-[Ru%%(@dʐ~eRe<:BI%8}M VrɔڤR UT0`ʳ6mPLMS7=xcrK=UVh:+'d7'owvv->81Bܹ勿RۺE1?ud98DdՒ%*ͺgCb4Weiyvj:RczHV%ň)F.$]<20Ԭb/ B䖲DO8J4Ř3rqtc[C_[o2t lĢΘ`1ˑQnL!K$_RpCbM KBfi%2}*fi}t3ubVx%wWcFٕRÎeQy3Ɣ2fXWxM1wT^KB=NuvvUh xƘf͚` Xܻϯ<8=\_iүFpplN0*JQ%A4Mo K+KE3Wqo\糌EitΞ:~d]w>mOML||p~'/9XŧK xCC 9Vګ)ۤQJvcTB2$Frl_Z\6ekw$H4_$vRUu]M_3q7_ȌxOʏgV]dRK\N]\uGTNA0pK>e3Bd:=E-&~Q1}P&H'33Fbh3|S q\t?w<ɌNGU7cQR{ 1,g5N2iL#n/TZWEq?nH"Ah}ǁf6N;b2't8'HȏTDTL .Iw1EprϊS HØ:c=J9z;靃y~iSW]8t5݋n O=,)<^<\ȔrxTd''뫪(_MųW1$ O2POS4F/LiJ]kp%EOW< ҙncq5^.*4M)œ%߼>SuMKD}Eo^h7bAS*|3v-Y򨶺#pJ_Ipk%|6)/GN&JL_q02s8!kpEw AS:v&54<]kA \C,ꌩ`zǣ?8~ _S\1q͕{'N.!(W[*qK b2JR7)\'dظ6/qFPUS: %WeoCwڝ+&[xOLѹfKkF"MRQ,LUj)Vi (f5*n ~1BZ1>~C#NG|\AayIrd-fxE։< (_X-%=0D_ `H QޣI_$~n^(?B GEvâΘ 1<#: 2?1?uJ\:iJ^3V t ]W8JY`*CTL<󰟻,ꌩ w`4}D^@ "^: 릦4BcfNS;:^KP9xp~\cJE)mmE ;7[vi1ْCa3L,@aW+"0~v0tؑKa± :)RN뫣GOwP>S狎9W>wʖڊiJsf5?_|1uݺuE *)΢Θ Sm,'` :˙cy,eIAԱ<|U]rr?2ֲjc|{ܮ}jpƮm:۪Pi*g;Z4v&DSex:c¬ b=ullk|.~JѾ홟Y\ 2Y$u&?XST7C,rHO,ܹ`0n(,ꃅ}y4f,)?;%ggQ7n}wOuu +;;r>HSE]}0_QNJcv&<̱3<uyСç>\;f4z7aұ7| +ǂy?2i;0p:f:"l*FpGv'ϮZUD%S,15E]zm m5[NSj ` qU$p-% 4 \:.yԴog$5zbRB0*@wU]6i,15E]ܒh| %vRCXEc%Z"]vC$"5"ZKed6Oвt]p*4ϒu&b(E]~w*KtcP ]YjhE]}KK53:kO{`4mjZePI¸-_ UQ3L׿A`@pv&}Ki5ZjGQ7Չ0aE]Bw%ɹK¡4 gk:rFE 56qOb,&_[q*Ɋz+IA-Yh'͘XRw|uE]^{{G՜Cf(c1ĿK Y%&Ŏꌙ4AP_4%5Mc X ?j]xVaBXpud@7urS VT L=43 ufsڎL=aQg3|҉wUXek[vWsh5Î :cjt^]Qdc0LǢ!w.)H;&Ļ@/P~R~cA -TK[gV^:562#bvFmiQW^,겢u]Ӥ4%?LuwjNLU馣ooSBP@_թK*TRNSHΐ"͖[gt*IgG?qo7.3uHZ-]m쩧=ϔZgm%ðG-_ ޴{ ;D2QMM+Z.Bskd~Oe_)E6-ʋE]&T_d#Q^ Q뺴Θ.tC7 $rx \w􋷓w7k \eXƚ1\##@ݩ TQ)ך'j.Iݿ?'/ןbggך5kZZZFZMbQgnu.ݟq9mu.>U*!➇Qn)wYrt{6XU;wW? Ty^YY~5?fu ׅ܀Lb&'tۢ:7&>R@#~K;ˤߏ:JpkS]f䔩]@"W"I_wJ}p.U5iL#`QgFaR+maR,fF;#uŢd"v<͖cc2?󋤯ȯaaJ s '/%PMIaM k5BDkbсi &SQYVb<>$Qz,b25wNJh Fqta~QuAEUbQWenN $888i'e/^~ݽoJps^kKݪC+w)}3BXԙB%yw_WV^,L&.3 ;nK^!]:vůghhuC|aMapL ݓ3er9TX]dTqrhWF"m|&31Y Ɣ:cG)=qjƍ;w|rwsX:*(NqԩW$uP 0I/TENtl+5q{ )I:SXMg>jd8]ZegC )uU7mok"mRqO,Leڌ3Fc,ʋE]uD'3ב4%-ꆆv!zLEP ˮv%~_Y$nthVxI1¢TgW^ 0m'؎+ruio!j;wWva/6 xh5tsH*fONRĸLVZG.̓B 89+79y{2 7tnxWf(\6ekwOO/NBnݺu!N$b+}={Tf```9s̟@2T/ % ;v,ZV ӾWU2P]$T ֭[ R]+5ULi]*@yzAѾJ:mX b~Q6%bEn?{w5?̇aLaQg*˿Wl$upK-QG챂0'ҥO*!'csN+Ԕ '1Iq˒)S{,UXڥH *ɒGQ$:\iڵjJ]#B8rS@huuŢ 鿳+s?`(/̛6mBIH hAW -|Z[[ORMV*DWW2U e(ji4N+VRS*|Ե FюzQ$KPaL)OhdLWSKͦUOE.ͱ~}7VxN:âT:AIh˄) x&4'S3l!$h\.$TLCE,f}6b6WY*Jne;a5*WZBc/:-uŢ zIlmx2=Su3-ɘu*#T$T]T0MZ~S)\$T5S|u]WaՕ<+uQ^$BRPkQQQeRI"QbDJ Dd1ku7DOƍ31uEJFo)i* 4<,3͌X79XuÌF|4+/u~sAK*:H ^!k꘶ˆiVd J`rS͙iD 1wwaT-knTڋ 3-%+bjQ%Seb?[&*%T 5II}4*ڕnVưza*G |}44T: Ts`}"t*~8,5X:kmaQWQdtz3E8od>R}iQ1Xԙt\_~yU[=Jumqӿm`oX)G)=䷷!N J VG)xQTZIdֿLLB[:Eg*$$P?Y6I*ΖLmc"&YNR1<CwE]EѓhadvX+)]X % c!邕 LVr/fYg 5R JCƱMi 5`QW9nNֹ1W:*np*|\ԱԜKz[iVo} 4>Uu_D_,_ 9q'w42i-|)3?uƔE1ٵu'fib.bҢi4I!HVVP Cԅ$S(CJinDw=/DҥOE&4I-S4aZԩ8 )+T^cN!*vyTqg~* b}Y:?p١8&Z&4ڎV\Lj#Tf[Rk!ꨮC)G[^ҢNu[N`[3udm=_npi{Jx{68M 2=l&1$FyFp~ J,!a^%C.T{U\ydGNt hfi,*ĥ=Y?wޜښho|M'OП|w:VsxeQWɐUQxYɽWiռL ,;SW*c̒7cJǢΔg4ZuYC<4u/R[59'iU },O¢Btvvq?1pf98ˋO~ҔOo}W+M3U%hSXԙ-&x֏7g/goBmz٪-^@bJIA0e4d] ^=ҳ[x Q#2C .L)XU'I4yкY Z>;g}}S,LijZrc2D>g#wR0[IkW,JRR.U_ě'vH"df홶(g5YcV9 :U9 ;~EWuk/gM^mݰaafFnNޖt0Amٵkй̇ajpn:pE*{aEtR0/ĿH܃XKj4az32)pQ [Dz'*+1MTS˧zpݏw̱_K"ٳw_0̉E)?&]%םOCxM)ӝG~cejpRQ GH(_UX0,cc?.p@s?V"bλ8xy9su:Cr2?ir2ij颎;8n(;|YII#:iXɔ*s#ƉqnbҍwD֮_D>O'7?aHNɘڅKEDȘc׊zXMy%lC;`>[li?MĂ@sX;)lj ><j=X;P4!54R:qK((xV:@h3dAj-НZceC2$4G)udE]y+ 7'oolkˏ\183]rLNԅ"WD"f~4B0c #>DHb2 EɔcF%F8AQp\ 9cbWRFc-{1!Czs&)M0u'·$M+/ueA J:*aG?0fdlږݙ.&겂tNț2|]'4u'" ޼ Do?* HE^i>FSI!"@RI@SJS. uŢn ZJ$?υɳi [ڵ{p03?uD5X`kˋ.@JBJ0j]°aɒGa{|3 -hjZrǓck6TE#N_ 8Xg~2KX-ή-ɹ:q15A}:]Lra{9Xg|5,OEv:%")lCiQnؚe<5W,2fu/wVcNETVڥrru,bQHr.aZ cL`Qg~BJ 'H̒AcR*62d oa\ If4+1L4SbG{ KL7q'E1/cErD$+/umɧ1{"?,1Ţ5Mhײ`QW^,C>6x0tnx׮ݙ(uƘbQg꟏>O>|pwLӝb3E]y[0rZ9u&38+!cjFСk{m8x}'*7`!k]-WUhN_bn*ڪ)):uŢndMԵEOX?S[Xoo݋qn t78p ^eʨAm#aO8P`q|G^iN<1贋R#^ ;\ap|@t|Vp, ,) e,:SaR3c]t2QRtY퇖%pZ N$Sqh?O,ʋEmt}}3Ɯ:϶vG/n<<(= rV&OWzHnmqHN#ASyljH''rYO-<;.:bow<*|)Af`Nc3 Xԙz[/ @)8 _ P&/"xIVdaQW^,6? qS+3N t7WB#6}+\12ã6AJS^գ5’(zPu3.&4C2<&hC'"ia%/5"Qy.?Xԙ N@)I`QW^,@)\|s"y4^"ffI|'V\¢,.^kӦ] &ꪌ~,#umm]AnWM3Ɣ:pҢi$>0pWVOqp(zqOLM L,1^%vڴU5Z+X͗<ξ>~#a7ƙ"uS:{0$qq:pҢĤ&ڱTƲc钐v-_r6|xUZQDzD^>D(-*=ԙbQ7/rQ[ɵ2hE]V\6:}e3 wIG5\R>~Y{H<*e.~d&Cv|`W.2=œ?raQ7/rqf>ٲ{lZ05E]V:tJ.3e N'[Hu Œ١z{hp$k4gYȹ,$uYg>21eǢ3Cwڝ0L.N8֎/_?{_oNޖdgi/M>+Չ?`FQw8>[oo;r􃁁Ә%V[̅}DǛ%۴-i¤6Guc,<ޡ햭ڮtJ3]ԵnHG~s놿6ʿQͮ܀MN.bODĎu ,A[XWr! JTV+ĝg^fK3BтJbwC31<|E$ճ"=S cKƢΘElEuuu/څLZ ]\|5u1TD@u|u:Jű3ƨf~&Mn3 'MM+2d{Dݗ_~cǎ!%֭[ٳ端ӟ(cǎ)Jޑ/ [n)bbBV9s&]K-Sאa*#vت"8 :2 gvlJԵmlklRJECb'++u!ی/[,G*[I%f#Yirs:)}8d/F#?U ,L6**Ĥ`KFEBh<ڥ`E Vҍ,N`: HP>Lw¢ #?cQ{>k,i%Lx#,YAΒ#.&|R/$PiBeJ±=yMMMJhZ+al2^htZ| + h j' VX:dz]N_&j+x`/fܜuG'a*MmouqRɀEixx ),W !Ɍ R$Q%Dv̒4qkt>Bi AYa  KcX$ ԲeԊ󀦍Uh-6CőLIRJ0CrtSy YLg8 XXsrҿo;$wooda3uzk4b QW_iNiQLk:7Ң.ƓuV-5U$ҭi,U|}_v׿ӡrKNyՄCCy@6{iOٙz¢4B臘#KÍ2ξP8Sgػ1cYsJZBPCHe4ËicI TI b)VZG ɜJʠKY>q18TDnD 069rN 3#}?S?WcUH#)"T2U@I*𑄓,5<^_kJ_)_Haq,*tdR@_-aQRP%R[+?%~KŽ͙S 64EiPڤ. CܞWqz|b( BagQΙˡgz~LOM:I5184&3E19yňʧ|~jBtZ`LcR9Q 1 >u1+]7oQbuu QWk.f1 ˌ /EtM! _&ecaQgUn}wO]"QvΝT.>%z3椦'j% 1f_Z2]Xo7/֟Pi`x'͚2 zŢS?yk|oy9imm$q}F{{G0tQ- +#LQSJuxiTF;]FBg8 Sj @c*E1.ص偑@sRa477רc/õ5nM9um$/2X`[&qM,cLٱ3f~pѷY|Qԙk41?|Ɣ:c/۾un_|1Jܹ0IaErsvkkk0ӘXcjn [Z^0ӀXS*}}{zz+JWW{yaQWڵ{pX c1EWok;9|]t]25͈dv}0"$/xQrXLLlG.70HJN+,NCTN֔qeJ.mU* b-j ;V yH9B]>1UƢΘBRGBUc-6>5bqQ][IerPSE~bN<ͨg+ɊD娵q-Fca*fQWkή*do]\tP.(,/\0y Ρ<%K Ҽh37+'d 4=$᫶$ȉ1,#۶:qp?LnRV1 C?O)(ǟޟ]< X^Fy\j2'{UlgWCB%KUZf/P{pOӎ.\RPL03RUT˒ǘ>]uH=OksÙT.\y%''dګ+!2\tI^):L*ꎠb\nr&ЎP|^PynIꆢ43um=~x9ɢ=L'|زE]-RހO9z5rwb*7uƔpd F5oK>xEy F8!:=]/LG焓/b1Saԫ^5[,)'82$+Xi_BWŚk'{pJ6_~yբtBl=6v-aqCKYfݺuk#cĢΘ,2Bu¢樿iWZ3;5:cHw73F`QWsw04I0"uƔXܵH{}---q uEƮmZPeuiߕϙXx4Ɣ:cru;tCxUڢ׽j5EcعsO5hb ƘcQgL9^q+E]mޭ7'og> S!fuRtO SRG~@o|KH<  W%xxW?3|FtrT"M\J01ĉ'Jwm ˉah H5ϣj{qH@Hi% U? X1ŢΘ<OeĢ;3FE>rq4a 1K 2F`6h3x!i~#aJwӦW/^vsjuMZ Zv=tn8aJf0ƘΘdxzlohٌ`QW+ϻ7aTSG|K]:^ƘĢSX s/ẋa*nD+[-Dc7 EJocLα3<uB#$xCc2] 9)x?޹s#'=jdڵʔLz'Mn™U^ PF *H98^4NT%s'8쒩8ڥ4u! t$cE1汨!x#o0]&):m%u$5$O{ZJH%YBMQ^u$ϐjRnPe!ԎZ n`*/_Ƙ3<u572F5ٲ{lZ0egFKs_D%UiR_ȹ'&UeӁ Ck N a];UvH5Z2ifTIň N5B_1E1sQf=r"-(պAtJ /D1+|TĒ}%r8aD T橧5ட`]3F5i| H)RL5TBq{X1Ƥ3fn$tW2u[EJ>!'Sf-HJ!6DG1A!t]J#iܢCh0aT:aƘaQgH,I 杫\`rˆ25L_WK)y%L$wX*`Q65ңOjg힫ҶdGgpDy ')ֲC'[0(_4 )HD Lv?\| +k̵ֵWs19sk{wQ)'=M+U}fMYT&ƍ/=vsWmϝ^#!HA#Z~Err=jmB(p;#UulV L~'X'lXSB׵p3*p!@=L/Ent2p45fXӰ;~B$7X&L;\vc-0erQ̐Yl9+VƳ ҋd9R2dQ r@YIA!~BQ3dW 5GT rH zD # :;ס '5RM&X;t>_S[Ϋ[MPhc:cID~0|>wFx=30pq{'7# ?lmmMn._GT0]FvS2Qb}eZL̉Q9Ņ D#%[^sJ ጠd<'u^V4k^2a6g%e;Pؠ6af aX&_Wٹ[0Ud@)Hi.!CwR1.3@e.^jRtr9,`MBR&Qwo{O}y{* p)l/H:;|*,0:O֊T[Zx N>č' N-bi~a#+8۶1<|-h 1 _cE1".rD\I*dO_q;?zp~rCiv.|:/ KќjƩC1)X/qQ!7TK̐ /a>.+2͙v<#N< SE$^}sO[l=MØ$XS buk(#\F,5f"&>k?8'5YS5ٸP_K44-nYkH.U҃pg|؆RgG_E]qf^Rب[u]فKC[k)u4,~9 `QWd6xaȋ/q0ƘΘܻj!CaϞE{.CC[.LHOHKkkk3;6k_|W;a1E1O*(j']7oIࡊl֭TxW^y%LHӦϣzWd1:O'[ K_13a)̹ vtt$7#9l0*Eѡ( F 鳉EaYӪB>9ǒums &6&ndca:x:D{IEfz#1XӰXԙ8FxaaQ)㒕D\b܅8O+V"e˳X8C@tmsB<7x b)%-^D" cp=Y)-ja& AȣCtuEN\S3,iX,Lr/uw S-&tFb^BQ Q'jl9N.t Sa(I<#VJ7̭]j=HalI?ԩ2&TIF0`uiN,)(6Oo$Xԙtu4t9ɱj1@)y6#*FDe~$c :cHxa==+6[R^^Wd3qǠ}DZfƘaQgL8w~4;/Yly~CUjrӋEIӎٶk0UAnÆ'O35y՘cQgL` 7HH-]hϿҷǢΤAV$7T#c3a3i3gQܷ@r3LUXfK/ c ,iL}kšbٹ[(׶m: JΑo1¢Θںz֟6m;::ˢ8֞܌HL(6aiBVP,9r;_9͘Ƙ:ŢSXDJo5fTd#W8 ĊH NDۀ$o#GyVRbQ?:X*.dw. N!ZZG5'3TXSOhRC)4eU(_y){m;k~QrjFϜ16gq`ްʹ̢8v%gzzv'7̞tOr4:c pY /΁7+VZl9o׮=Q%tclfomq Tj-^Q*V@[z 7o֓D6XЖLU+:PV%⍼bQW4vܷqKcLѰ3@}bDVr $uZm<] QJ>h>9 ~8,@7+: NNPڲ)8DU3 vn ,4rƮ]{F?d*'+.[N̰G>!N{H74]]3Pݲ0KI!H.A 3SMvCGL35ufHDII\z%D"J[9l<YiF|WxAfM+ 9t~ERsϫpBfρjtFP] UYYڅG:ugL3đB$|TӅo-/忾>pWqL%u…%KSIeA/| ]RtCniC<ѣ ^碟lܳ| $hJhzwƤEc|[[G30pq{'7<uGzk!=K_lݴ5ڕ1qcq,5Hը Ba"VYh3<|mv_oܔ dX՘{Jэ8ܒIIE13&ԲO'vc&ԧ}JnF}:ŢEp]::cn|3C?W'97@@82btr x ~1u-PcjEij=vDwG~B].?}_+#QGTI/rJiQ,T YX@)_l$*%;Jo'BD΢ڇw+KYCj8˝ѱPV\C Gdq&h\ ;=r~odKo/S,jL:-]\CҎQ2_!I͑,ź j^J17rSϰP'֔m :c xw9vow?piG@!jcX7Og*DR>+%HE;TR=6h] >ܬ<?GBg~"(SXЈ *C]#22ĚV3&5u{g~1uuhjƠ(,$-^+NP}+ "x[da[Gn^PFl|\1QD_03k f,N~챨3wakkN ?]s-F2ƻ=CP.&Rqb'x4/^%{6D73u1aHW2ALjI$ƚC^[2Ŕ"%d ^~' 1u*4ԡfc4iǟoHny,jLɑ9r[6J(+Fe~/4x\'ޱ3& <ǥ4f󐭥3&s̷Y^(fB,jLC9/+:cx/`/.Yi@;7r.;D]>ʇKǥ|owKž)N;>8 3S,jL]S얮~{B`WE1s/`1û%di{BPGB>LCԆp De̙䷢h0ֽڷ@g&qڍ͛$7NjbQWcBi8|XWq=M~l3fǖ~Re̼I^™ $ZZ%j%%YHFijP%g7i!4qafE] QgLZ,ꌙ+$lY) ʍD4Rk _2 liS{+;El^m0<|m7afE]3fJ,i(Hi܌Ţn8lq=fL(Mn 8w~Po|Br̾fu,g4ѿ3E1Gq>8t*tu8|X;PXkٹ[03RIѭY*ZhᲾfX{ѭpE2G^ !k?G< B8|meA* v+HT'eo\BちX"3zKO; /HU?4)oL'GƝ%Dk7R!3ƘGX=03RŔD{sdӬUe/x:_r~vڵXY= +U&cu6_X]O" Aą߾ 2Ivֱjo+YPt> .ǞypET0P{&UOőw}m*Q*veۺET;oF5$wgXc#,f#N<܌p̪!uav%i=J?ES Sh~]^~s flC).b(^{Dڒ0KKTq0C{CT.됸{pاk*QǟL!4l^߀%Q?i$,1u3 v==af1Y?`TP8XW,-{0fn>dJ>)GJ A2eUr81S4 vV숺w_Nɹ/𢎿~Qи'ܢ,+nxQ^AK6Ţ4--> p3fX͈V%NWL'eD*U]3#,B i1CM\v<]3J1 Ei4ۆٺ\˖㷰fMkoi;h)T2tVG@u!} E›Q5|6ʄrXMjam\w8A3fJ,Lovڃ9_ =zqg㒏(R+ 2T}3V3l86rĂ/J:SX,ꦏgW ic)f#Q/.}֭[ڟ9?Uz~>~4 u@hIȱp\_Ŕ$V?ƓB墳 TI6i7 %|% }TJO7&Xʜ)=N^wڵ/&7yh:~SXԙOKqMa2}`Zd%73Cp %* H\Á$x1-ٛɍ(J3 !7NGA^X@]1JRKoO&Vg6[5#2)Vkay$׫Dߎ>+iWUf=l n,E4q*0Ǣ4c<(1"?j3@Hq?9 HD,:cjcHM|̽;n~̑ݍ6$%4 ^#1+YGN[=П{RzHXrR8EDӬJ33jKO #s…ϠELQIv&Sİdрki0(Œ)" Պ* Hh2/Yi?f4 mmz8$7Llt ⌘ dD-]<n~ D`ӿWA_w`E13u!R< QD`OIMڥDdV q"1uRBH27(hE[ TjuG=4äȮuA E5^M h6 cQ7M8܌a7%7LlN]-?-UQnyQ\|X4hhd5nێi$,IFW׎Nzaof*ބKL'4N¢nxffibQWcA6хmR`u%+ٛV3qBRcސX3@bou%99uiǫu5fBQ 9]C`Qg }ә8_fAWزeO`M9?pQkuAH7*m^ǝ33:Fl\!b2 FH9K,Bٸn5l̃E`8c>*NɹXcE)(xCN'˟_1KNؠ6/!7EX'kXd9hNcb媬45ۗ.[N"ecBhhڪ}V g)Ɨ^x]];oߝ]2BE~/@;T]"1: ʱf{テh"b3kl YFD1ց-2gy9)H+vӛ:%_$Ͽ>zǟs{Wnkk[cF¢#|zhIS=(6>\^JHV岜3zGXzGgaD' 3E`ɲkL~i&G'7wk2y:E]P1cpGkSD ț2QQx72|GV%@ 0(%> $yot<+H.|v0 $ ˰-:?oT:c ĢnJ. ]ڑ܌c'OJnu5P/:PcM,,4uE)?%1\gwvnwa{nj-&N;>Gٝ 3,jJ:ITʱxv ϣcQ{bfE1<¢nJvf4NQGX՞Yvm"Tƛ] ܻ >u# Sh˖ME2TbH,ԁ,'9 f6Xc#,i{Z' ufT5T!Z&4`k ,ÉbtӒqh.*GԢޱ3ƘGXM:;7%7QѽNn:3K&kP_Ds![Dl#[V F"<)-G#bHj~(H9&m1ΘFO|bӹ@A%E WbQ79N;>?; 3%ufLsA%u7xY9ÑCY\={{%_ dS/iS]퉔]d e!cՏv!8iOv UjkE)TNdQjິwHKnFrG%7LE%[mfF¢Θ:7zR-+irXyI)UچC?#XcM=4Hغb*΅XBF'tў$%/A4RC? @VJ>iYIs A@Pn >#(]f6DE820pq{'7LE%wٹItuԶ IYIi!SRAh<y#HW^E,&ѐ\_LuB}UD`j ]ճdzBe]2zj]b&K뙺Hs, uf`3/ir#j0 3atğ0=cg%ɬ+5ڀn8?6ejT֗ MU 95@R+E%fF¢ߐBzI&NB)UYM\fI8i=sm 39ufJ9Kc`QgL]}.jͥƢnvfɱ3RԑUowS33Xdޱ3.I`+6[=oMnFcк̒ gX-]7ofmi,_G>QQ/Y_’\ywT,tg>Kٳ欱\l$ڰFwLE1M5EiRIH-)2FUx|$xYlB+N! PxG΀ x}rn7|r>r$vVvx?IH>|iojhIL:,T!dԘ!7pb!ba'*zh_2o%㨼Ua|K5?+,e7ߢq8*c~gPr3$XԙYճXԙ&%/4:Zr*-^p3r*H:Ys2Y.(tq3:m(4+m7N]Ȣ~g3R]2'ӿguXZ<9PeNjOrpy}Q$ᚏmd3缔ue0i`vQ{ 7SlTwt O_G!esurövO ->uf|ngm߈H]uDZ'FǢ4)yQ'oyH -p1RO]yoc5:]Ҷ|:xcD:(΋<@+j'"OS 2ТqRNGنS=];g^jo:h6FKz`.W6G*_3udx~|$7Ir0`Qg)u; TYeji<0j}{OރũllG1xZ;".H٬GZ:Wx<ҹ@c%#o壩_+.e\#0wm-!:\q8yp: ӢnS\vc-0`Qg)uLWk5pFls4KƢnBvܻЂXcE1<¢nB^ٰadf4߸ 8,ONn14Yvm׭[U՟9i_i/E]߾ё܌SǢ{,=hiyKW\E5n.pqv,͋b*ژaQg1e37.1T>rS0âʒa"\ %Ҙ]Vf~Orv+D,SE1u!0=wa_ߗ]];lٺe6j3)X3=Q`tY i 5ue8x*zzvHn E,AE}E|K$UK˳*hB 4֠gTVZJRxjcE K;.]<+iE_B1B0B!8 4#,Z$BDF?L.2S'9.Y;oHpz.;{o/siq,cjE1fc-5hlcܥ{SXԕ烽~"3e,IMsc`]Dg XLs19v u?ԑz T#S|N9z$cR.f겒R*LʹK-տNW& cNl{%%Ș#Z T (~x9{>Ʌ+??{fwec,1ue8x*/uw 3! QOxU“U&w6q%҈셪xt3wX3'觘ᑿX)" γo 4gC:~gPr3̽ڵMn3#14\z뫤9ߴ,V\_=h_Ro%$2*# b=2:c:c抍v~tLFq<u!o{zfڵgNwAs׬i,u߾rw|򮞞#G{xcѨuHZ3fS,LR%ef$ lٹK8?g<~ޕ;!^IDr[Xr4*ɐm|UAXUhv $Hګ,BUO^-iO_xwYHAJmTI\rGRuL69Wj4NCڐՏ:Q"< KLԝK{{qӾ%7N!'8GdaavVzSF.fU/噦-y(VAxJj N..b8KD~Vz=flAuj@nd^$˧fXK0ą'`L3\v呑|6ȗDݱ~ݿE]]_E2L_5R2keFiJN+$Ju(H%9Tz^#Y3o~p$3TOf^iȼYdy )%T)fs"Y{qL~>;00Zmzj/* -:= CF[DOX陓1k)=xrxVzp1gz&Y+ulͻ3: ^EA x*:?a!r4AIZڋ7 DŔ2H8˅ťtؖG) ô7AcLu5u_E ۄ`:8q3Sæc8Q722G sb0P@)YƔPz`pHW$:cfѲ#QgoN!QǬܝUm:f!-̄ab@yc:cfVꎈ ej#U/CG(HwI#I;C2I$Ņ#.)|#%{]wT{up{MݪZkB,avNe%0oQWd^yf@%7c:cf͑WV*._kf2?w2OM3.ZXښ uƘaQg\QueNکrttd42cfZd:;7]q+&3Ӄ,0ME1cSxͮ^-N[$j`E]uq8vf̢Ld3:F"u) FJU%kyR^$ZZ:z@^VQ S4,ꌩo,K;i eYGqU"K-nt gNu7uեLԍ8&#]&曟:Jxa2:3=zwai >ZVZ݅$R N_ULIC!=]-*QJR$($XSXU2Q'}ԧ}ɓ2.8oܔ YԙRKY%zM,ꌩo,K38޻0ƢS4,ꌙ}=غ;ckִj۾eR ]Cz]!X 7nR,lUje+-ꪋE)27ozFr3Eo߽4t7 ?:5Tʫ:cftEHh= ĤjiyVK{Qn8Z(Ji;{`br3:Sƍ߾ӴXyB&Xԙsȱ'O%73e|յk&743u7yW],L?;ӳ;͌E)cBQ;ͫ,In:cbi+Eʆ ^\E,Lz[Xԙ2&u=BuOXrmhFkRD, +kB( AT{聕 Q2J#ՒyXc#,L]zf4-u E_evoDGCG͛@Ji׮=DJ[l9T/В,TA{I>R{$!Yաjl cF7¶\&[}jj/ ATxӉI~̈́Xc#,L]yn$7i3ejCVm :S ^~'ME)QE#,ꌩuHdˎûJ):|%--Ϣ 񤧟]$â߾ё܌ŢΔ!QlؠRws䱨3F޾eVK $~Ŋd)1SGԬT:S/8܌ĢΔ7'qƭ䖘ŢΘĄS[d13¶o _KnFsbQg8wIXc#,Lo/ќXԙ2'Ν$X1sE1sΥǎ#>zQQ,L E']܌ĢΔ1c 7 g2 i4jIIUM>@e$3lJ/RYiա/K~@BsƼٜ UCPPkQ :cꛫn:;7tIP[r9c@Nx Y/?c :蓜BR**y[!qeТJ$Xԙ2$ǢΘ*#ATBe |_]7W}!-^WP^)H4>ϼgQcu 4#8W4,PG=tNp3ٸ9GEJK^t׊YwH0rǰ08+Dݱ_Ģs Au?;ӳ;ME)Qmڮ]v?Oi,ꌩ2,8fp61F3ɫg[8ͫ@+*9JJ=@􏝹}6K׏f#ggs豼jb=7ۘ@#!'B1kPVrrNALN)Wxg%oXbnQK=3uk76oޒ܌&ĢΔ4t9%i3釗 K$!KL87"?"S 5.| X.QF~O{"lUiq:SG8m*,L}IX8pD*鴔ܭAD:S_tvn~{?U$?`nr[ԙ2&uLni,ꌩWݸ4t\ P^]\=u ̙~V۶m{KL}ٰag>_500aÆ{m3eL(bPI! G0FJN h̶lAi*,ꌩo߸յ4DY`or+غu~ͮ3MN<㭷=Z4g׮q-Lg-^"trBSbu2 ex'ٮ]{(1QXUΒuRn\_oIE1d̞?Yԙ:BJs_Ԫ??s?nE)cBQG2$ ;"!>+ Q&|4"<%-O_P4u41{,L}qƭ[ǢL3b*FwJ=\(5/2e/%KÙI^X8G챨3uڵku###˖-۲eKGGG}Z5Ǣ*LrH̬f6y˙n&ۘ¢ΘҾh?2fE;^_BIQ_wܩ>ӟTUfve5P?(CjN֭[TAݳgݪ1iNoVmXG{Uڥf:{UsQYVjدfz]ڥ-ਸad~C'@RmIZ3tV &_ãĉ/IE1#<1<ꎤ=¢KH:˹ׇ<2{,Lݱe E2Fj'F $ujW]T*?і%f1X֡ΫS2 iGӲjҳN$fyűeS*s*4%H\j6jݐ:!":DRDݾ}|ș>|wKT-QL[F1mib*AKUJ>DcDV1hU5R`LdWFUU2N9QFb{Z5:VuBYGhM'ƛ_;7rCgDw;ڮ]v97q&ĢΘځ3=˖k``(3kՊB$kB x_Ƣ{}4bȑ:)`jzLNoV9U5LԩONJ(:t 'YAy"S#T$^ڄW_0̞LQڢny:UVҽ{^z)H)Q`Ӱh&UPjM,\Ri| SGijnΑȫcX2+h5Y蟠\&!R1u$A K5hAJ{B xIYƛ-fE;?LBlޏ8+ U}P-٢(K 2Kz 7+EϨ,,і F}JWIɰ:CFԞ7]:QYU(Nq*䯑Q_~~/c؏P/@H{lf- IhLlIj ꬲsbAU{u88JAM~ylbQgLeXԙ#D݌> *~&fch^l|Ӣn @U,^ }Ar3bQgL-zƥsůԧ}۶;dbQg'ucQg&gBQJ`8~RET $ˉ%@¡pBԡPPOTҒh?5Σ l Q'I0%:%`O^In7…p60;.Fm ,#1RH9N_EB,1uw[wwvwuH5 /yRA81!^$2.k0-.aM-FLi! "g&k# f3@9P&9{ibPΙʣ 3a3FK5Sd,Lvf.8Tv-*4tkGr3R0PJH~5.E)urQ i'p$2 z{OI5wFǢLARG zR ﱢ>gosM%uƘ)Eݧ$ӴXS g@ΪbޮÊ׿LK{q=VHJ,1SbQWI>RC7^۶\/{HE1stĘW{̋:#TO^bL55"2DC!؋K: z۔aQgJ,$꾿})1ME1szн,km2/u~]x`U%ˬqK<-{T9uâ3%uX9IE1sN7[r{ba=uƘ)Ģ΢ΤŢΘ9$<1PiɗNp=\z0v%JFKXGcѓiO Q^2YI~YEO?{ZJeA`akH#wMU wJhՔe~ڻw˖ӿz<,c̰G\[Y@m|U*]&$e2:c̔XUbQW)zw:ҋk"8c_|ppPN_Uy #&G<fax͏ +{1Su,1e d D}~0`ADi8a7A^/2 5DS9UUPh6~j/CQVO=x0ôWd5ULX_#+a?1L*H :c̔XUbQW)4Z.*e H,TF4^ejˋNxdz#Ն\޼d8cdԘKR^@$%D͢!3:2+6\/Y((Hy Ѕc#LJx#T %5/5;f1fbu""PCW6m?0FuƘ)ĢRԡٲY)6q,@1eN PkX+ى(YwJd~1fl@I};fEc惉\rOHN(BʈmDT7~lb{ZcĢIHMi6QK@d)(r~+/ptY𙸢l< %ؐb*|s*݇_lݹcE]%M.Dݽ[b:SH _p='+K׬ie0> Ug\(u+:g->+i$Vsў( YEV1bJE_zD\mGGc&Ǣ&u]`Mx۷<t?;֙jaQgP&!VgtH=13yEvN[<C[F$| #H1 V c:13&\L"X]~`-h3U@QJyj+#U@e3ucJ,$41(= 3uL,eLz2~P\-i0:c;ih'v&lCp oQy?g<7*o>GsZx ZũW[ '*rjl 2F.SVoK˳#9ɷ-gYl9n!kִ""y>9'JZ+u % 5PA[AtU(6n爫x߳F5餬ԀD>~\>a fП&`5E2f(Ipdf/QŚeѧ,32,&uƘ)Ģ6RX'i`:h_ 3Ix?-Ct%_u+*YYJ!e v@23tTDt^׹9ȟCLX*Ԝb:7Y_Ւ3LE]%M.._ǚ5ka:hǃ[XrUVzqEv2 %>dE#e6__ly,x;{%F}EHX^G^tF$S?`Svю2|u㾛B9wṎż أoO {Yrz M}K˳Her1$XRHPvq Fx2_Dq[ds,1D ,13Ţ&u##?[g'>#G`sW :h ɄBiGwvOzo+\g8IR9I*'S9 &$!# k9. 1*H,#AUUsvͤ;̕kq~,Kv>kt+gҗ-Ч%uhU`e9s:X I)D?j}r/mhKҴ;Jd"6+i %-bY3)q'y/TL#6s({kM9Z#/XC'XYσ_3zA-{JRE{DڧW{De(u@-xcw]"ώYH*}Cw'U2ȊAZ=HLj2 0Ce!_PQD,i5ncM6&&uauY33xCWeMk[z,,L 2PoO>+Z҉F湵hB/4脵 ޘI +u""J].R74d3Ɇb͊R l =r3-AɖCLTo}tJRESd\:ϳ~/.> Y(u]Ա%Y.R'x'>|#>zX]Zv*rO?s.J]7|ugɑ]K y.SՖl7#_$k&kX >` ٫/3ɚQ9*[ 0/ QDDDDuQRI[zv&>gGzVȫ>5l|6p-mk7l>駞m.c|h! l' J.J]W9jKْ@Z"u4ѕԱ 4RFek^dh"I@q/j bk1)7K@H6&k HѤԍR'"""2RwT 1;[/sg.PDDDDuR|Glf:(u]65͓O=WNK/& f@kR'"""2R'2.J.Jȸ(u""""P(u"ԉ +uo?ŮBKDŏ:QDDDDЕHbwԤpLd可\MdT3$)Jx&G2D-Yr5a@\e21Vפ2K05)d',WS.o/o^{xg앺vgd"NDDDdR7;Ϙ雹DCĔЪmw ssY ͒ #W;PrY3(5h[;OWdh™BIgzq'RJ=;z]8J]42%'y ʺ?NDDDdR!'Q1P> & U[{5&8O,++C0F 2*\JOLP&]Q2nnճ G2팛ԔSH?h*9OnJe:R>wqӿ~ݕ:/"X,cU'KSsR'"""2Ç|}EL4,~)2.JGbLsܜ<|k[ڧGE>_(u""""8񝓧N}gqWN6|F!QNV&(u""""'>u?|s߾OCdӢԉ @ԉR'"""2RwUƐ#?3Y :(u]| =)=7d C.|*>rHdӴ%&jX#5g*bN~傔)TpCLzRϬҖH@HR(gK4 IIYҼ0=R'"""2RwCƶ;(-QUevv]#'iDV!f/+6HBRؓx1G>077emL,mL5a"QdT&,ҕQnN2ݧ7F11p\e̤]H}LK )̳.1hn'yh'cÜ4F3X :(u]$y-hFqXFNx ciEYIzCÒ@1Wc_\iHYzK9=D?ѧ\]I*Uˑ372MXb 41CP,^p9mntNxZR$uLs=)F\kJ.J-c-Uuo^Fo&9{G(c4oOm=A ZTDDDDuQ&Mr >QDDDDuQn¯ruB~0R'"""2Ro.xcǎ>|$GY?G "J.J]/oxif@REر_pif@RE+ul7޾rr d#ԉ @+uqKŗ^e~<'(4ܮ̱6ϑ'ȱ]`4L<Ξ;_ sN,hОO;82[\R'"""2RKKk;vbn2nmh>FDqrm;!ƛԥܛכLܱ=);lR{@!=W^'=mCDd 'igJc|ffˆDRE+u1'N.-[n5Ŏy1\"mk8X"+kQ<j+ol` _&ua0%  !{SR'"""2RKK+k^WY9mRP^J[kF6EXJjraz(\;ef]J+$$LR'"""2Rzr5gS J.J]/Mdԉ @O>N={{H(u""""P(u|_=q⻣OC6J.J]/y&y2OC6J.J]/]cg-2-:(u]^RGH]K+@\jZ**@徫Rp kT$IW &UnZHL4Rg,}5,f PDDDDuQz?P|v}j8Vnz'fnn4$O‰Ty.?O(S(lw>6;'Dԓ"0.km,+63r K@"Ojꮹtսg&'e>p,_NDDDdJ]K:QnHK–#srˤ.aT08Xf©ҐfI0%"ur9⢼C긅kn9f>3I'e+Mn_sԉ @ҕ:U9p%ixDrYZ$Y+YX"<)bPYZ i Mjg WK4S*ͦֈs^ךoVnR'"""2R(_"TC4KsPDDDDuQz1J.J]/{GM-J.J]/ǎ> (u""""P(u<ѧ!NDDDdJ]Unԉ @ҕ: I̝w}Oq'ImUlM!ܵtqTw;sr^., 9ɲ1$ i~I -BN3yL?5\ h4J .J]/]Cݡ^%uBv *E`>_f_"f%u_I=WMM瘱՘d][n#e92 gL/V!u/j7;G+:(u]^RWɵYHaEbD%~ºZX/sDՌ,DbV䤦ir f1S/Q)$,t K&^]tN &oV,퇰?G(u""""P(ui ZukZSfQQDDDDuQz1J.J]/Gz޽{ou֣ԉ @277wȑkݗ:J.J]/o> (u""""Plf=*֕ԭN'2"J.RG=OoU=s?}9seRG /,Xy>S&(u""""PJݽd)(MIEM鹹@Rԟ"&G12hzix̱4&Ge" ]L!:UT6)d}ӿ_^ﯯ˗?4Ki'#rw\x29ŸW5:ύOx>tEs v1=c^uRr;&GR&7JAp[#jQ o 5.QʠOJ;p"zY)7DNDDDdJ]sӟ6LjK(u""""P꺼Cy;~'<&GOݻy,Oo cԉ @_z |3<"RѣpFl`:(u]ѧpJ.J]/JJ.J]/]#uܼ9d(u""""P(utr ~2@R4gpvvOMHNRHX3M< &m+{*w|e(u""""P(ut.RD7NeD5vQ/#_!u(JN޿O>U?0OT0]ttꦢRz(u""""P(utky9#w(RNU9Rkj&#N1"ޤOW铀t #RS%{`"9c&2Aۘ3YSHo6NfbHpTseԉ @H-4"JARE%R3ώ> (u""""P(u<_d£=FAR'"""2RK_ R'"""2RK&2]:(u]^:Y3:(u]^Rw}:tdas R'"""2RK}tr O|q[K<}|*IMf)ixI7/.ՐInNr3h.*ͧ@?۹kw3IV^Y3IHfrtEJVNQ=mw!Yd*(u""""P(uJ]&M G/5dN#fHMN6O]1ds1ó/tO k2~[:XeM&gZ)uSDRE+u]V *t R=[R5b-],%OMyF!ĥ:>QHdbRH#o5#i̹F/g20$;y0[.eʎTPDDDDuQzRJVi&Qџ*J.J]/_};OC6J.J]/_Kr'tyoKm:(u]^_˥_"J.J]/:_Cڠԉ @ɚԉ @ҕ:ӓR'"""2RKWȾ] rJuH!)+<6ؾiB3$Bb¡CGAG!ħ-d gf DfVOT$y]́i<3!Ӯ 9MLUb2C2K.Tatݢԉ @rcCN)u=9M aqH2Nj @ۨ!7}ONsX#QS&ќxV$™ӌa}Ld CҊ|k' 7:(u]^L~ӟ!(u""""P(ur6(u""""P(u(uf(u""""P(utg!҅LNDDDdJ]ԑn{nn!S\jND^|U 9B.=w>f"4?tHHT NBFi&yRNC\v SrUd3II7GtUK54wW*ow`rUJjG!Oҩ7:(u]^R dDub/͒#,WoR;w]WI IWU@jffkjbD&cH'.|H?% AĤKL&3¶; ca! QRn6t2-' 5LR(u""""P(ut^1Efb2Z\pU2CD4R_얽ch^ оyOH|RuµOdDNDDDdJ7:(u"PDDDDԉzCRw ;_ѥ˕|'0CY=:(u?uwCGH,ӓ^qcʩIpէUd,[<4<\%CɛKvgHMN;F_\tԤ&LReԉ @bJHT< tnn>bJ)$,a ʥ8Ulq]wߓ'>9&FxZa8җ3f)KHL N1e vȸ9VtWLX̭{7Ӊڣԉ @I~sw_…q03MR'"""2nE;v#7 ~}y/NDDDdJ݊o> ̓R'"""2nE^9Z}"NDDDdJ݊J[JgGR"]幹y獄u)$ruqLSf.TԿҫh8͑S-1gϝOD.kNJ:tø9f>tNJN!C0I GQdcԉ @[ElHpW>:l;La=(©O+-}&mIJ^v]{PRg4L9͛74=J<Ơ.ȓNtn3 q-[nKv3ԉ @[mxJ]B'a!2J_ER&RFBWBQH nSST92en 4[\J?xGo$XN8\"PDDDDԭ?(ރGѪvEG"]㴙' ,{t1J}K$mU!QDDDDԭRw޿~u)G &CR"/|Ǿǎ?Fidԉ @[oǡG}"NDDDdJ݊=voDNDDDdJ݊t+Wd0D6$JJ]\]gΞ;K)Ye.@|4l9")gSIW@3IPJ*]FPDDDDԭH7ucA#"sF+!k5f %tˊf0Jiռy23_UĖM)5Z^~ kt_C@W_e JQo/m)0D]Sd^Un9.ճ޼_$(u"""":/إgKann~aS/i&k8],N1z6;'͛%`lȑJ 05Z*xH931X-wd*䃅l.235MARg92OxW߾+_}}ݻz]ecԉ Wbh֎vJ5: 숈,5K{*'X|-ce-"ulӴ(9H3ٶm$L|se`:LaD7r<}~y?]?&A@7u]BNX"{:R%ҠUz˜*l:Rjאqɒn=\%9l&97U/Ұڻ~7~y>8/%yPDDDDw,I|"2]:7uOc=ӕ_>y,mRH'Po2,(dDWe (ej Mڛ4|T.;͔WpMY@e^/Bkg+VY(u""""oŗqwX~h|״҈?]ws} {7ħ> ;cP9DA`jX:77o۾l(lN% $1vICֵcQbfemuMW- W+]y|]H]e=ԉ4}SזfGKL Qmcc8JhaOQ<-u\B -DrDJff攡RdžCk. 6p.#hPeRͦ֌zFiM]jFR) KyV%YX/+Q+BJ*.*Sc-j^IՕi7~ʏћ\~Ip{ Fw^ QDDDDdtn Gn7dYuz:&G|mOCdԉ4y豯<Ҏ)ݲe#;v?O:&G?~!JLNdQDDDDd3sUBi+uss '*LNDDDDIWz^h&?t9>s1=2q{ ?8Wꮻ1B8;+WSΧa Q8$<5VbҖ3\ $O9gZm۾#atzBzK$I:'\$?ӌKḯJ>3,|tEb*-$l )x=Ñ| ^6tP zeH9H?INDDDDIW"xN!FBPRmiF$FoҶ 1iZ0:l4&muSeLl+mPVl]WqUqY:<*́$ewxt$XF[{M`<&Sꛚ4}QL(u""""2Mz_QB

>rÇ(̤R'""""ӯ\?rGdãԉ4AFAiԉ1JLԑtQDDDDdJ]%'u= 'RMnnn4t_'^9HXGe D6-JLKD{%u\JeOyffk\٣OQDDDDdt|;qy.RI[X88s\M7+PDDDDdF)"N&QDDDDdO=ѧ!yPDDDDd\>Sǎr\U^|oYd\:1JNDDDDDsR'"""""9Fԉ|C6IENDB`PKDMI5PKDMETA-INF/manifest.xml0PK50PKD,'meta.xmlPKDPؒ bcontent.xmlPKD+kM 2}Revisions/22aknbe3se7rr0pq0b58fdv76e/revisions.xmlPK}nD?:yt<qRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-1-1394797490330.xmlPKe{D{sdd=TRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-10-1395938110018.xmlPK{D, oo=iRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-11-1395938402827.xmlPK0{DeCp p=vRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-12-1395938492972.xmlPKɁD(=YRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-13-1396268059798.xmlPKDT=hRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-14-1396268477739.xmlPKnDh$F$  <BRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-2-1394798658518.xmlPKnDu""<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-3-1394799339442.xmlPKnDs>o,j,<V?Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-4-1394802251787.xmlPK݈nD+d033</lRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-5-1394802419922.xmlPK`nDAX4</<<vRevisions/22aknbe3se7rr0pq0b58fdv76e/rev-6-1394802660944.xmlPKnD)MKHK<Revisions/22aknbe3se7rr0pq0b58fdv76e/rev-7-1394802964424.xmlPK {D}s AQ