[Beignet] [PATCH 4/5] Move libva sharing example under examples/libva
Zhenyu Wang
zhenyuw at linux.intel.com
Tue May 12 00:33:01 PDT 2015
To be easy to allow more examples under examples directory.
Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
---
CMakeLists.txt | 14 +-
examples/CMakeLists.txt | 35 --
examples/libva/CMakeLists.txt | 35 ++
examples/libva/libva_buffer_sharing/256_128.nv12 | 1 +
.../libva_buffer_sharing/libva_buffer_sharing.cpp | 465 +++++++++++++++++++++
examples/libva/thirdparty/libva | 1 +
examples/libva_buffer_sharing/256_128.nv12 | 1 -
.../libva_buffer_sharing/libva_buffer_sharing.cpp | 465 ---------------------
examples/thirdparty/libva | 1 -
9 files changed, 509 insertions(+), 509 deletions(-)
delete mode 100644 examples/CMakeLists.txt
create mode 100644 examples/libva/CMakeLists.txt
create mode 100644 examples/libva/libva_buffer_sharing/256_128.nv12
create mode 100644 examples/libva/libva_buffer_sharing/libva_buffer_sharing.cpp
create mode 160000 examples/libva/thirdparty/libva
delete mode 100644 examples/libva_buffer_sharing/256_128.nv12
delete mode 100644 examples/libva_buffer_sharing/libva_buffer_sharing.cpp
delete mode 160000 examples/thirdparty/libva
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5474447..6270269 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -211,10 +211,10 @@ ENDIF(OCLIcd_FOUND)
Find_Package(PythonInterp)
-OPTION(BUILD_EXAMPLES "Build examples" OFF)
-IF(BUILD_EXAMPLES)
+OPTION(BUILD_LIBVA_EXAMPLES "Build libva examples" OFF)
+IF(BUILD_LIBVA_EXAMPLES)
IF(NOT X11_FOUND)
- MESSAGE(FATAL_ERROR "XLib is necessary for examples - not found")
+ MESSAGE(FATAL_ERROR "XLib is necessary for libva examples - not found")
ENDIF(NOT X11_FOUND)
# libva
pkg_check_modules(LIBVA REQUIRED libva>=0.36.0)
@@ -233,7 +233,7 @@ IF(LIBVA-X11_FOUND)
ELSE(LIBVA-X11_FOUND)
MESSAGE(STATUS "Looking for LIBVA-X11 (>= 0.36.0) - not found")
ENDIF(LIBVA-X11_FOUND)
-ENDIF(BUILD_EXAMPLES)
+ENDIF(BUILD_LIBVA_EXAMPLES)
ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(backend)
@@ -245,9 +245,9 @@ IF (NOT (USE_STANDALONE_GBE_COMPILER STREQUAL "true"))
ADD_SUBDIRECTORY(benchmark)
ENDIF (NOT (USE_STANDALONE_GBE_COMPILER STREQUAL "true"))
-IF(BUILD_EXAMPLES)
-ADD_SUBDIRECTORY(examples)
-ENDIF(BUILD_EXAMPLES)
+IF(BUILD_LIBVA_EXAMPLES)
+ADD_SUBDIRECTORY(examples/libva)
+ENDIF(BUILD_LIBVA_EXAMPLES)
SET(CPACK_SET_DESTDIR ON)
SET(CPACK_PACKAGE_VERSION_MAJOR "${LIBCL_DRIVER_VERSION_MAJOR}")
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
deleted file mode 100644
index 904f259..0000000
--- a/examples/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-EXEC_PROGRAM(ls ARGS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" OUTPUT_VARIABLE LS_OUTPUT)
-IF(NOT LS_OUTPUT)
-EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule init")
-EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule update")
-EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" ARGS "checkout master")
-ENDIF(NOT LS_OUTPUT)
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/../utests
- ${CMAKE_CURRENT_SOURCE_DIR}/../include
- ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/va
- ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/test/common
- ${X11_INCLUDE_DIR})
-
-link_directories (${LIBVA_LIBDIR}
- ${LIBVA-X11_LIBDIR})
-
-set (examples_sources
- ../utests/utest_error.c
- ../utests/utest_assert.cpp
- ../utests/utest_file_map.cpp
- ../utests/utest_helper.cpp
- ./thirdparty/libva/test/common/va_display.c
- ./thirdparty/libva/test/common/va_display_x11.c)
-
-
-ADD_DEFINITIONS(-DHAVE_VA_X11)
-ADD_DEFINITIONS(-DINPUT_NV12_DEFAULT="${CMAKE_CURRENT_SOURCE_DIR}/libva_buffer_sharing/256_128.nv12")
-
-ADD_LIBRARY(va_ocl_basic SHARED ${examples_sources})
-
-TARGET_LINK_LIBRARIES(va_ocl_basic cl m va va-x11 ${X11_X11_LIB})
-
-ADD_EXECUTABLE(example-libva_buffer_sharing ./libva_buffer_sharing/libva_buffer_sharing.cpp)
-TARGET_LINK_LIBRARIES(example-libva_buffer_sharing va_ocl_basic)
diff --git a/examples/libva/CMakeLists.txt b/examples/libva/CMakeLists.txt
new file mode 100644
index 0000000..904f259
--- /dev/null
+++ b/examples/libva/CMakeLists.txt
@@ -0,0 +1,35 @@
+EXEC_PROGRAM(ls ARGS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" OUTPUT_VARIABLE LS_OUTPUT)
+IF(NOT LS_OUTPUT)
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule init")
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule update")
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" ARGS "checkout master")
+ENDIF(NOT LS_OUTPUT)
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../utests
+ ${CMAKE_CURRENT_SOURCE_DIR}/../include
+ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/va
+ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/test/common
+ ${X11_INCLUDE_DIR})
+
+link_directories (${LIBVA_LIBDIR}
+ ${LIBVA-X11_LIBDIR})
+
+set (examples_sources
+ ../utests/utest_error.c
+ ../utests/utest_assert.cpp
+ ../utests/utest_file_map.cpp
+ ../utests/utest_helper.cpp
+ ./thirdparty/libva/test/common/va_display.c
+ ./thirdparty/libva/test/common/va_display_x11.c)
+
+
+ADD_DEFINITIONS(-DHAVE_VA_X11)
+ADD_DEFINITIONS(-DINPUT_NV12_DEFAULT="${CMAKE_CURRENT_SOURCE_DIR}/libva_buffer_sharing/256_128.nv12")
+
+ADD_LIBRARY(va_ocl_basic SHARED ${examples_sources})
+
+TARGET_LINK_LIBRARIES(va_ocl_basic cl m va va-x11 ${X11_X11_LIB})
+
+ADD_EXECUTABLE(example-libva_buffer_sharing ./libva_buffer_sharing/libva_buffer_sharing.cpp)
+TARGET_LINK_LIBRARIES(example-libva_buffer_sharing va_ocl_basic)
diff --git a/examples/libva/libva_buffer_sharing/256_128.nv12 b/examples/libva/libva_buffer_sharing/256_128.nv12
new file mode 100644
index 0000000..230f4cf
--- /dev/null
+++ b/examples/libva/libva_buffer_sharing/256_128.nv12
@@ -0,0 +1 @@
+FDFGGGGIIIJHKLKLNLLOMOOOPRA)BNQPRRRSRRUTVXVTUVXWWYVXWXWYXXZYZYYYZZ[[[\[ZZ\[Z\\^]]]]]^]^^^^^____`_`_`_```a``acaaacbcbdcabdbccbdcdcdcadcdbccdbccdbdddccddcdcdabcbcbcbccbbcaabdcbbLhiututtuuusqomknopsqrstuuututsrqoponnmlkkkjj°vWY[ZZZZZ[YZYXXYWWWWX[YSg_[CGGEHGHHIJHILJLLLNNMMOPOPO:(EPPRQRSSSTUTTTVWVVVVXWXVYXXXYXYYZYZZZZY[[Z[Z[[]\[[[]\\^]]^_]__^^^____a``aabaabababbaabaabcacbbabbcccddddcbcddbdcddccdddcdccdcdbdbccbcdcccbbcbcbbdb`Lhiuuuurqopqrsqtttuuuutvsrrqpoonmmlijiihfddb`²
wXX[Z[ZYZYZYXXXXXWWWWWYYQ_FFDFHGFGIJIIHHLJLLLLOOOOPP3+HOQPRRQSTSTUUUVTVUWXXWWYYYYYYXXYYYZZ[Z[[[[Z[[Z[\[^][]^]^]_^^^]^]__^```_aa``aaababccccbdccdcccdccddddddddecdcdddccdcddddcddedccdcdcddccdeccbbabbcddaKggqsttuvwvwxxwxvvssrqponommlkkjjhgfc`]ZUROLKx·wYX[[[ZZZYYYXYXXXXXWVWVXVeZECFGFGFHIHIIIJJKMLMNMOONOP,-KOQOQRSRUSUUUVWVVWXUWXVXYYYYXYYXXZYZZ[ZZZ[[\[[[[\\Z\]]]\^^_]_^^^___a_`a`a``baab`cbbbbcbbcdccccacddcbccdddddcddddddddddcddddedbdcdbcddcccbbbbabccccaIghwyy{yyzyxvussrqpopnnmmmiihfda^YURNLJJMOQTUw½yZU[\\ZZZYZYXYXXWWVVUVVVUQOCCEFEGEGHHIJIIJJKLLMOOOPPL%/KNPQQRRSSTTRUUVVXVVVWWYWYYYZYYZYZ[ZZ[Z[ZZ[Z[[\Z\\^]]\]^^]^]__^_______a`_a`bb_cabacbccbcccbcbcdcdddccbddcddddddddeddddddddddcddcdcccdcdbcababcbbbbdbKfhy|zyxvutrsqppnommljihec_[WRNKKNORUUVUTTTVVvÃ}~
z\UZ[Z\ZZZZZYXXXWWWUVVTTUSOCDDEGFFFGIHJHIJJKLLLMNONOL"0LPQQRSSSSUUTWTUVWVWWVWYYWYVXYYYYYZYYZZ[[Z\[\[\\\\\]\\^]^]^^]______``___`a`aa`cbcccbcbbbbdccdcddddbedddddddddddddddedefeeddedddcdccdddddddcdbbbbbcccMefvwtttrqpppnmljifc`[WSPLNNQTVWVVTUVWVWYZZZ[uÀ~}{^SZ[[Z[ZZZYXYWXWWVWVVVTTTSCBDFDEEDFEHHIJIJLKLNLNNMQL 4NOQPRRSTSSUUUWUVVUVXWWXXYXYYYYZXZZZZY[[[Z[[[[\[\[\]]__]^^^^]^^]___``b`_babb_`bcbcbccbdbcdddcccdddddedeedddddeedeeeeeeeedeeddddcddddcdddfdccdccbcbcbJefrsrrqooljfe`\XSPNNPTWYZXUWVWXYYZ[[\\\\^^^_qÄ~}}|`S[[Z[ZZZZZZYXXWXVVWUUTUTTBBDDCFFHGFIHHHIKJKJKMMNNNF!5LOOQSRSSTTTTWRUWUVVWWWYXXYZYYZYZYYZ[ZZ[[[[[\\\[\\]^^^^]`____^__`_``_```b``abbcdbcbccbccddddddddcdedddeddeefeefffeegeddgdedddefdfcddddedddcddcbcccdcLdfoonlhc[SSRONQVY[ZYYXXYYZZ[]\]^^^^^^_____``nÁ~}}{bO\ZZ[ZZZZZYYYXWXWSVUUTTTSEBBCDFEIFGFGIGIJJKJJHKMMMF$:NNPPRSRSSTUTTVUVWWWWVXWYYXYYYZYX[Z[Z[ZZ[[[[^[]\\]\\]_^^^_^\___]__a_aa`ababbbbabcbbccbbddcdcdcddddeddddeddfeeefedeffedfeefeeededdddddddddccdddcddcdcOcdb^YUQNPSZ]][Z\[Y\]]_^__`____``a`_`b_``baaci½}}}}dT[[Z\[ZZZYZYYXXXWWVTWfVTT56<L>&17 at CEGHHGIIJJKKLNNMA&>NONQRSRSTTTTUUUVWTWXXVXYXXZYZZZYZZ[[ZYZ[[[Z]\[]\\]]]^_`__^___^_``_```aaaabbbaccbccbddcddcdddeddddededeeeeeefeeeefdgefgedeffeedeeeedededdddcdcccccddOcdVV[aa]VQ\^^^__aabb`aabaaabbabbbbbcacaccbcdkº ~}}|gTZ\\[[[Z[ZYYXYXXVWVQcfbUT *+%,: "#"#&)-149 at CHKKLNL=&?MMPOOQRRSSSSTTUVVWVWXWYYYZYYZZZYZYZZZ[[Z[\Z\[[]]^]^]]]]^^`]____^`````aabbbbcbbbcccccddddceddedddddddeefefeeeddegeefefffefffeeedfeddeeddeedddcdddcddQcda`^__`\Tbddedfcedddcddddcddcdcddddddddddeej³£}{~|iU[[\\\[Z[ZZYXYYYXWWM\EWUU"%.$"( !"!"#""#$$&$%&+/373',BLOPOPQPRRRTTTUUUVWVXWWYXYXXYYYZZ[\Z[\Z[\[\\[[\]]]^\^^^^`]_______````aaa`cbccadccbcccddddddedddddcdfeegeefeeefegfgfffffefffeeeffefffdedeeddddddecccdR`eefhhhhcYeghffffggfeeeffgedededeedeefefeffgl¬¥~{|}zjV[\]]\][[ZZYZYYXXXVKQCJ_T" !""$"" ""#"#$$%$$$%$$%%&'''*.26;AHPRRRSSRTVWVUWVY[XZYYZXZZZZZ[[[[Z[[\]][\]]]^^]^^^___^__`_a_a``ab`aabbbcbccdcddbedddgdedeeddedeeefffgffgdffegggegfggfghffffeeededddeedddddcdccQ`dkklllki\ijjjiiiiiiihghihhghggggghggghhhiigl¨¥
~{|}{kXZ]^\\\\[ZYZYYXYXWWKYHEbV"!""%$""""""##$$%$$$$$$%%$&&%%&&'(()+),28<AJPQWVVXXWXXYYZYXZZZ[\[[\Z]]Z\\]\]^]^]_`]__^^__`_``a^`baabbbcddcccccbcbddeeedddededeffeeefgfeffgggfghghgggggghfgfgffffedeceeefededcdddSadmnoonnm_imllkklklkijjjjijihiiiihihhiiiijjjm¡©
~|||{lYZ\\^\\\\[Z[ZYXYXWWL\]@VV+*-))(&&%%$$%$$#$$$$%&%%%%&&%&&&&&&'(''(()*+,+.4EVXXWYYYZXZY[ZZ[[[Z]\[[[[\\]]]]_^\^_^___`````__`aa`bbcccccbccccccddddeefddfeeffeeebfffgggffgghhhggggggffgghigfffieeefefefeeeccddV^dmrqqqpqclnonnnlmmmllkllkkkljjjjjjklkkkllllm°|z{zl[Z]]]]]\\[[[ZZYYYVXOTuKkY+++++*+++*++-++*+)''&%&&%&&&&&&'''&(()'))())+)++5VYXXY[YZYZ[ZZ[ZZ\[\\\\[\[]^\\^^^__^^____``a``a`a``aaccbbbdbddccdddddfeeeeeeefefefefhgfegffgghhhggghfgihehhggfggfffffeefeeeeeeedV^dotstsssiopqqppponponmmmmmmklmllllmlmmmmmmop®
|zzzm[Z]^]^\]\\[\ZYZYYXVQMsnx\+,++++,,,,,-,,...-.....-.--+*)(('((((())))(*)**+3VWXYZYYZZYZZZZZY[Z[Z[[[\]\^^_]^_^^_____``__a_a``aabaabcddcdccddddedfeeeddefffefeeggfggdghggghghhhhhghhiighggfgehfhggdffeeeeeeddX`dqwxvuvulttsrsrqqqrqpoonnnnonlnnnmononnmoopq²{yyzn]Y]^\^\]]]\[[ZZYYXXSHrz|[+*+++*+,+,----..//./.0//0//11/0010/./-,+++))*+++/PWYXXYZZZZZ[[[Z[\Z\]Y\\]]^^^^^^_^__^___^_`aba```abacbcccdbbcdddddceededdedeeffffffgefffhhhhhgghhhhhghihhhhhhgghghgggfgffedfeeefX^eqyzyxxxjswvuussrstrqqqqrrppoooonopppprrwy}¶|zy{o\W^]]]]\^Z\\[]ZZXYXUI^}|Y+++,,,,,-,,-.-././/1/00/0101111212223433332211/-/KYYXXXZZYY\ZZ[Z\\\]Z\[]]]]]]^^]__^__^`_`_a`aa``baabcbcbccccbddeedddeegeefffefffheeegfghhgfhhhhihhihhhhhhhiehhgggghhggffffeddeee[_dr}||zzzpvwxxvuvtuuutssrsrrrprqquy}µ
}yyzoZW^_]]^]^]\^[[[[ZXXXNPz|Z+++,,-+-,....-../00///0011112313343344445454653,.GWXYXXZZ[[\[]^^]]^\^^_^^^___^^^`__``__^_aa`a`abbaabcabcddcddddedddeecdffedffffffhffghhihhhhhihiiiiiiihigjgiiggihhhhfggfffeedeeeZZdr~}}||oxyzyyvxwvvwvvtttssssrss´}zxyp[W^]^^]]^]]\\[Z[ZYXXSRwxW++++,,,,,,...././000010011221322445446555566665..AYX[DtÃÔÕª¢¢§°ÁÊƦdJ\b`_____````ba``cb`b`cbcbccdccddcdedfeeeeeggefgeeegfgigghghgihihiiijiiiiiihhhhhiighihgggfgfhefff[Yds}ku{|{{zyxxxxxvvtvtvutttvµ
~xxyq[U]_]_^]]]^\\\[\[YYYWSjjS,,,+,,-..-.-.-.0/00/0102121224333435555555566760-º¤~~~~
Ïó¬K_``a`aa`aaababcccccbcdeeeddddefeefefffefgggghggghhihifiiijijiiiiiihiiiighihihhhggihggggedf\Xdrju}~}~|zyzzyzxxwuxvwwvuv²~ywyp\T^]^^^]^]]\\\[[[ZZYYVSKS+++++,,.--..//000/0011112323333444345567866779¨}{ywwwvvvwy{|{
ÓXa``_`aaaaabbbbccdccddddgfceefffffefgghgghigghiiiihiiiihiiijiijjjiijjhhijihhhhihihggfgff]Wcr
ou~~~||{zz{yxvrqljedhl»Ey}yvwp]T_]^_^^]]]]]\\[ZZZYYXROU,+,,,---,...//0//0101222222334344445665778878|~{yxvutwuuuxxyz{|}¢b`abaaaabbcdbcccccdddddeeedefgffgegegfgghgihhhihhiiijjjijjjiijijiiihiijhiihihhhgggffff]Vbr
pv}zxrmgefhjknoqsuwwxj_ at yyvvq^R__^^]^^]]]\\[[[ZZYZXXWV+,-,,---.../0///00021212222344545655579787987
}v}|xwvvxuuvxxxx{|
r`aaaababbcccbcccddddeedeeefeefffgfehhgiihhhgiiiiihijiijikkjkikjjijijkijijiihighiggggf_Vcqzkdgddggikloqruuvxxzyz{x|iQM}yuuq_S^___^^^^^]]][\\[ZYYYYXX+,,,-,-.-....1//11112233424354545777676777898gy}zxxutwuuwuyxz|}
a``aa`abbbaccbcdddddeedfeeefdfhgghgighhhhhhiikhhiijijkjiijkikkkkjjjlijjihiiiiiiihghff_Tbdhffghhijkmnpopqstuvwxyyyz{||||k4eztuq_R^____^]]]]\\[\\[ZYYYYXW+,,-,--......1001111333333335355567798767798:|}w|zxvvuwuuuwyyz{}Nkva_`aa`aabbdbdcdccddddeefegfefgggffggghgghhihjjijjjjkjjjjijkjkkkkkkjjjkjjiijjijigighgh_Sbceikkllmmononppprstvyyz{{|}~}}}¬g[;qusp`S_`_`_]_^]^]][\[ZXYYYXWW,,,-.../.../0/002113233443545565777897778798:}y{yyvuuvuuuvxyz|}
nmynkf]ma`abaaabb`bbcbcddddedddffgffdfgggghggiighhhihhihjkjjkkkkkkkkkkjiljkjkkjjjkiiiiijhfhgeaPbbbfhjlmlmmnooppoqsuvyy{}}~§cNGptqaT^``a__^^^\\\]\\[ZZYXYXW,,,--..//..//11111123444544456657678887788:8<zx|zxvuuuuvwvyyz|}
r~n{+.6ma`aabababcacdcddbddeeeeffefggfheggghhhhiihhiiijhjkjjjjjkkkkkkklklkjkkhjkjjjjjijiihhhi`Rbaacdfhklmnnooqprstvxy{}£ib7VrqbT_```___^^^]]][Z[ZZZYXWX,,--.-../.0000112333345445556666678898887898;
wzzywvvvuuuxwyzz|~
>W
q]Z,.30nk`aaa`aabacbbdcddededddefdefdegggffhighhhiiiiijhiijjjjjlljlkkjlllklllkkkkkkjjijiiihiihbQa`aabdffhjmooopqqstwy{}{g£w`X=aqcV`aa```__^^^]\][[ZZYXXXX,,-.-..///1/111121334364455656678889:9:998::8~yzzxwvtwuvuvxyz{}
Q|iva<-.4:faa`aa`baaccbbddddddeeeeedfefeggfgghiiihhghihijikjjjkkjjjlklkklllllljlllkljkjjjjijihhh`ObaadbddefhjlmnoqqstwzsixpaHIkfZ_caaa`_`_^_]]Z[\ZZYXYWW--...////0/0112222344555565677788989:989899;<v
sz{ywxuwuuvwxyyz}~;Sj]n2,13@{fa`aabbbacabbccdcedfdddeffgfehfffghigigihijjhjjkjkjjcl^himkllklklllklkklllkkkiljijiihhcOa`aaccdeffhilmpvyy~~zz~lQbrgxvf\5Se[`bbabaa`_^^^^\\[ZZZYXXX-../..0000011222333545566566678999::::999:;:=wr
fyzyxvvvvvvwxxz{}
tv{qv}:G.SS>d`aa_a`acccabcccceg
rsuritnigigbb_`^Z]\XYYYWXUSZYUVWUURMPow
nllllllmklklmlmkkljjiiiiicLaa`bddfeffghh~Äű©º¾½½ÂE_nqcXxws_S;TZ`baabaaa``^^^]\\[ZZYXXW-2..00//01/11223334366666687779::::;;989::::@sxx|~gxzxvuvuvuvxxzx{|
L0=QPso0/4>e`aa`aababacd|rOIF=OLMOONNOOQPPQQQQPQQTRQRPSRQRQPOQOQONPMQXcmyrmmmnmmlllllljkjjijjiicMaa_bddffgfe_Uqtmnfgi_]WQG3 at atdJ{wutj]@>V`ccbbaaaa`__^]]\[[[ZYXX/.../0/001013334454465557878898::;:;;:;::<;;@quvxvoonoqrsstuwwyyz{y~|ymYeErxxH7:y
_`````baan¥L5--P²¶iVNLNOOONORPONUG at HHHKEDGMRRVc\^dam`fT];=ADHMUcymlmklimmlkkjjjkkjjifMbbc`cfggfXI>7>FAAF;313,)).)'5^rcFwvtsp`Y2B_ccccbaaa`__^\]\][[YYXW./.0000/11212243464667677879899::;;;;;;:;<;<<suwxvonjjiijkmortvwy{{z{{{zyvwxywibkt|zJ]Te_`_`ahiJª·¨sqlyDS ¢¢¢¤¤¤¤¥¥¦¦¥¤¦¦¦¥¤¤¤£¤¢£¢¡U[eiI:><BXnmlmllmllllljjjijjeNab`]adghge_VHD-(',*()((-CV<,5]qdFy¢£wrrql`O5Rcdcbbaa`__^__]^][[[ZXY/..00/0001223334656768787999:::;;;;<;;<<<;;<@rwwxupmjighiiiijlmpswuqijuxyy{|~c_ayEqtc```abYHLkggvG at I¡{uzIHI||{^afnmmmmlmlmmjjljjjigLab][^bdffbbge`<**@=6310Eim[=;\oeE´¹²£vsrpof\67adedcbba``__^^]][[[YYY.//0111101134455667789879:99:;;:<<<<=<;;=<==>rwxzxppSfidnoonmoqvxxk>--y
}|~ysgba```a[JPhfgtDA at BiklkkQSRRRjhiiiDBACGiiiiiPQQRWqrqyFIH~||^`_}|rmmmmnmmmmlkkjjljieOaaa\\bedbbfhhpY+-QG:654BghM67WhdTÂÊÎÎÍ̦vronmj]T4Adddcca_a`a__^_]\[ZZXY./101211123334585878889:99::;;;;;==<==<==>>?9{q{aqiYY^jlnstvx{zwE))-w
~
c``__`ZJQgggqDA at DifgggPQOQPgffggEA?@FhhfhhRQQSXooqxFHI||]``}}nmmmmmlmllllkkjjjiePag|pvq~gfgmncNWhaY[adinlQAFOPLM_ÀÏËÎ̪
{tronmkc[F5Vdddcaba```_`]][[[ZXY//2121112334656788899:::;;;;<;=<<=>=>>?>>>??;sk{f.^4-epsuvvxz|{zs[Agaxb`_```XKO
gffoHIIFhggffRRQTQhfgghDBADHffgfgQRTUXnoqxXHH|}da`}}xmnnmllmmmllklkkjkfLbg
|smlflihgggdccabc^J?<>@CEGAJ|¡o]XUOiqsqpnlkcZY06bedccbba``__^]][\[ZZ/012331233556677888;::;;<<<===>?>>=?????>?@@9Jsyxtoa4*5lsuuvxyy{|}}wH/*7``a_abYLOL>UN66558lihiZ555559liiCQ44444ShjSWQ3564FzHHQhy{d`_~|ummmnmmlnmllkklkjkfPbafb`[YX\\]_adginnpqtstrjA559@?C?:6@?=31/+3?BcqtqonmkcW[Q3Idedebcaaa`_^^^\[[ZY100232334467677899::;;<<====>????@@@A@@@A at AA:*wwvtad4(:Mclqtvxz{}~~zH,-r
}w}aa`c`aF<I
?_zE<^dZVWXO5RjH9[UUVYF6bj5>[VSU[44nX6=cXZb:8K[90;:j_i:3|pnnlmollllllljjjifPabfhieagifeb_\YWRQKIFDB??9217;><:529>M311+/7;\jtpnnmkdWY\;5`cdccbaa```_^\\\[ZZ/01244344466779::;:;;>>==?>??@@@A?AABAACABBB<'w|}k+]jllgV+Kmswzz|~|ulrL}
wmiv``_`a`Z[Fy6fjkgk\lkM=ASWX5~YW\I9DWUZ3PZV\FANYUM;3YWaUU_XfL6`a`f8a:pl]mnmnmnmmllllkkjiifOa^IFC?><9754321001012112874661001024=U756/-13?XqpmmlkdV^\W2>eddcbac`___^^\[[[Z213344456678989:;;<==><>>@?@AAAABABCBCBBCCDC:"zlWwyyxutspc(bty{}}T+*U
zmhek_`ba`aBF^iC at A>j<88847T5569766Y~637873:b\648743b@==Ycm_lhkmnmmllmmlmlllkkjieM`\;43554442101121033434472042-,-////8G8651-211KqpmmkjdX_d]H3Reddcbbb`__^[]\\Z[223445576789::;;=<==>?@@?AAABCBCCCDEDDCEDDED;#~R}}|zywxxvsm9]tz}s1-~
yLx}rhedj__`aaa?:4>BB=ol¥;:8775W6567765rS/5686745988852:?=;|39=`mmlnnnmmllllllkjjfOa_PLJGFCEF8.02233344544;C7122/-/1.-.6M9662-430LpnllkjcW_i_Y39bedccbaa`_^]]\[[Z3444566778::;;<===?>?@AAABBCDDDDEDEFEGGFFFFE<(x2|~|zxwwwwun0gw}
(.a
xmfdcja`aa`a=<YTiquxedxiab``__^_^^b`Cb``__`b_fdfiu
~vT959V=;almmmnlnmlmllllkkigQ`qÏÍÆÀ¹¬¦v614554555768JiAC?83461.9[Y9864/440KomlkkjcX_if]P2Efcdcbba__^\\]\[Z44466677::;;<==>??@@BBABCCDEFFGGHFGGGHHGGHHH=%zj}yxwxwxxul(pz}vUTzrjecbk```_aasGVLMQ]PRRZZ¡]]^a^^]\]\]^6]]^]^]^fbe_^
INdGHaNNMOSglllmmmmlkllmnnkmfPazøúùùùøöïÑF4677678689;Af_f\TRKA9Q|]<:950562LomlkkicY^iha[<4Yeedbb`__^^^]\[Y45667889:;==>>>?AABBCEDDEFGGHIHHIIHHJJIIJIJJ=%w~
}}{ywuquwxt]Vx}
..||wmheebn_`_`aasHIZSNXQ[UU]£
_]b]e^af^\\^6]]]]_aaa_^_`
MMO]IbLJMKAtlllllmllmls¾ÀÅÔÕuPbmõûûúúùøóØE698989::::;=XtrPToR=;;92753MomkjijcZ^ijg[U0;bddcbaabd]^^\\[556789::<=<?>?AAABCEEFFHHHHJJJJKKKJKMLKKKLLK?&-
mt}}{yuU<_vywr&s}zfgtrkgedbn``_`a`nJLOLLZPQV\Wq\_[^_^]^]]]7^]]^^]``d^a
GKMNNcLPQNVslllklmmos£Ê¼©ÎÙ½RbxõúúúùöôðÕG8;:;;;<<===?GprPOF=>?;3:55MokkjjjcY`jiid\I2Nddcb``de^^[\[Z47779::<<>>@A at BBDEFHHIHJJIJLLKMMNMMMNNMNMNNM@28*j}|{zu38rxxyt6l}
_/lmihdc`h_aa_``mJLNKN[TSW]Y_c]c`c^_^]_7^^]]_d_i_`_
LXJMcLKLX
mklknlsÌ»¡¬¿¼¹°±¼WbpóúùøøöóïÔD:>=AKQLMDCA at Dy|d\UPNW[RHA>A@<4<39NnljjiicZ_kiii_X/8bddcablf^]][\[78799;<=>??ABCCCFFHIIJKKLLNNNOOOPPPQORPPRPPP at Ga
i||{ywsrwyyyv_bz
wgnhWcb`[e`_`_`amFGHOM\QZQS|l`cb^_a^]]^5\\^^bb^_`fy
WKGR`LRMLgkp»vmk©Ç Xqóùù÷÷ôñîÕG:?OP_efj^cYTR[_QB@@@ACFGGHEFJNe`;8KpljiiibZ`kkkjh]O2Abccfwk]]\]\Z889:;<=?@AACCDFFHHJJLMMNNOPPQRRRSSSSTTSRSSSR at kq~|{wwwxxxyywhIpvwx{}
yslc\_YXR\_`````l^MLQR\\WZ\¡^ab]UZa]]_6___dcbcde`
MQRVaNYO[r´Å¿lhiii¡»°¨¹²zpóø÷öôóñîÔB;@FmQbTP\`OgjOC>>>==?ABBACBBH_£ANnkjiihd]`llkkjcZ95Xchuzf]\\[[9:;;==?@BBEEFGHIKKMNOQQQSSTTUUUUVWXWWWWVWUVTBrx
zneiotxxzzzxl>koqrruvwxyzyxvsnhbXT<:DLS_`__``hkEMIM\NOeV~t_c_Qcf[__8^]_^_`e`_|
DLMK`NKQ^ÏÊĽ
u§¨«ª¸µ¨«©|eoò÷öôóòïíÑW`TQdZLb]NBX
ym?>>=;=?@CWdJmllihhb]alnllkk^S/=j|r_\[[\:;<<>?@ABDEHHIKLMNPPSSTTVWWXXYYYZZZYZ[YYYXYWAtz
nrxwuoVtxyyzxk at loqqstuuvxywtsold`Y>:@BDO______knONPL[PVNOXGCNMfa]]7_^__d`^_f
Z]^`JXLZ¹Á½²°µ±§µ´Äº«gs}èóòóñðîëÊG28CGDRyaIBVx@?>?>>>>@Rt
fYmkjiiid`annnmnlg\B7[~~}m\VY_;=>>?AACEFHIKLNOQRSTUWXYYZ\\\\]]]]]]^^]]]]\\Vuurz{zxtlVuyyzymNloostuvuvxwutrojda^YXTSNW__^`_`if?WNOZQWPJMDKIHbW`8_____e]`
s\~PcPNK¹ÅÇÁ·¨¢§¸À½Ë©ZX[^dfimovnzI:?LWJs
sQb
|y{wrnd^jxf`mkhhhgdacnoponmlaV.=}}}^e{=>>@ADDEFIJLNOQQTTXYYZ\]^^_``_aaaaaacbb`a`_^hvg;rwwsk4:vyzzvW]npqruwvwxyxvtroiea`][YVRW^___^ZjI;GbKXOMP]MCDtFcH_^7_^_``__
VdfpkSNPÖʼ¥ «¾ÅÆÆÈ«¤¦SRRLKLLKKIKKYJTDYab~zWY~|{z{vwtmX\liihhgdedoqqrpoooZJ6Q|ywx
¡¢ >?ABCDFHIKNOPSTUYY[\^``abddfeeffffffefefcccbewF+,IU<,+fv{zzr$forqrutvxxyyxurpjfcb`_^\WK__VKLHl=:F?MZNSeEKQHTEKZ9`]^_ga
qcgmdOV^Õ©¥½¼¶¯ª¨¤©µTROIIKFC>>GHOJ`jdgjw}o=Zc^cihkehhda^[S>HljfggeegdpqsrrrsqX4<ky¬¶¾«=ACCEGHJLNPRUVXY[]_`cceehhijjjkkkkkjkijihgggWx1r)))*9itxyzwi=lrrsuuxyy{{{{zxwsnkjheb^UOMHLE>;l\pOCW\XL`GBjDb5_^_j_Zo|
pccaQN«¤¢©¦{UQLIII at 9<CGGGuO]BScjinjhPTBDJKPPKNMOPTPA8Gjihfffdhfpprrrr|^P7I§®´¼¿´ª@BDEGIKLOQSVXY\^acdfghkllnoppppppqqpooonmmlkuR
yqnpuuxxyxn-nvz|}~
{wqnlifb\XQME:533mnqJ at ddtU_`}OgGGpYjkiRSS`d]{
mcldawɦ¸ÎÍ°tgigpRNJHC=:?FGHHJtWfkNgotpwI4X}758:=??@778;=87FiigffedifqppootY;Lz·ÂÑͼ¡BEFFIKLOQTVZ\^bcfgjlmpprstuvvwuuwuxuvuutssqqzy
~|zxyywwuo1jx}
}xrplif`]YPB636=MjnoJ?pZx?
UQTfKYjYXXqJIz_SPZ
}picfkÒÓÆÓÈtfynkkpn^QMD>=C at FGHHGLuS[CPcp^y]3Xx333567<?1-,+)47BiihededfepsqpoyeRDt±ÃÈÅø³¦DFIJLNQTVXZ^`bfhkmrrtwwz{||}~~~~}~}|{zzywt}+}|yxyusnX-oy}
}xsolhe`]W\=BVcbbjnq<@GKC;PGhCFGEG[orKeFMTOLZifgqipÙ×ƱkfflsyxrvSE=?EE at DFFFGDIqM^krjfJip3Vf:KOVSSJ;8/+(*8:Pjihffddicorsqs¥\C}·»¼¿¿²ªFHJKNQTWY\_cehknqxxz|~
~{%ltwsqoi]9.brx}}
|ysokge`]VW=?DGNUjmG<]E?>eNKHGGD[EHMHNYaNNh
hkwr~|׫r`cd^SSSPwkI:EMGCCEFGDCBESL\cDemPis7WT09BCHJD:453/*07Jjihedddhbkoqo~§®°wVAx¸´»½¤GJLNQSW[^achknrv{}
<*+! .C-Zkrx{|}~
~wtolhea\VK/0//12lm<<DJVCDBeDEGHFXHFJG\gF|z
¢mk^qanu¡¢j_dd^OEBI`~~D:7<A3PÍðîæäåìíïììéNY^bms[tr8WE,09?@CB82/-+'/:Kihgdeccd^hgiq££§²«\M\²²¶¾½ºJJNRSWZ\aegmqu{|
|Gfi*`hY*U0mvz{|}
xrmkhda[UL<99998la=EEJWJJEjIL\J[]]9_^WEKFI
ur\Yn[]n¡vrrkjac`XSV[PTSZU@¿äÕÑÑÊÊÜçïòõõõõòðëäÊ`Jgf[eo9U>,,37:;;;2++();CKiigfedb\[a`\Xa~ÅÄ°¹¥x¥79:==@CFIJMPUX\_dgkmoqqqqpqqrrtututroqonmmljvHV*VD[Q8\Qty|||
xrmkgd_ZSL@?=;:<hXmDDIRJKRJKH[]^^^:_^]^[GNG
pYYp\Z¥u WW[^_YSQc_^[[hØ¿¼¼½¼Á¿Ùìõøø÷öõóðïíêçâØn`Tfzd6T1+,.00002/)'('1?Liheded_WW\XQB39Lncuxrnw9 at MVQGEFJNQTZ\bfjpuw{{yyxxyyz}}~|ywvuuuutsx'otn$PL,kxz|}
xqnjgc^ZUJ6:.-9>gkmCDHQJKwfUQ]\]_^_5^__^^_]L
YWq\Z
SZ]\``UaZWhi¾°¬ª¯µ·ºÑåíóõøøùøõòîéääáÜÙÖÍ·vqwmT4Uw@<@?GHKK=5.'&%+3Gihfedc`TQXVMB74@qie}¡£¢¥50+%'*1=J[X[`chotz
}|}|zx;b7\oD=Gwz|}
yrnjfb^YSI:;9448hkmDEIOJJV|Xa^_^___9______hp]v
WUwYUTttxwvvuuw¨«¦ £¨°ÍåëïñõõòðïîåáÙ×ÕÑÑÒÎÍÌžHXZF4X¤¥¨©¹¹qVK<74.,/9Qjkjfdd_QIo{}~|K4-2gqposqrlt::>?AIKD,$$).6CQdy|vvljedgirujaYOHHGHIOQOGGv||)b3kvuoqxz|
wqmhe`]XRH6;77CSfjcBDGSHKO__`_^_a;^^____`
[WVtVUS_rnlrpr¦ £ÚæêìíìëêæáÛÖÒÍÆÆÆÇÆÃÁÄÃÂÆÆcMB4f¢£¢¢¡¬
®ec_N at s
~M*((,KSVX[\>7e///00002223433.*%&''08?GPYhb\OFA=:;;::;;;;;;>+V}}u<r\hvxxyyxyx|{|
vpkgc_\VCG;;?JG at ehGACGQHIKa_^^^^__:`^_____h
YUSqUTTEJKHIF£âèçéèçãÝØÔÒ¾ÈÁººº¸¹º»½ÅÇÉÈÑÖ×L7x¤}~uyzywy}zfcM>[lqy|~~x@''((/+((++%%+..0011114453588;;=>ABAA>;0,'%'')+*+++-257=@D@{)NvugOjdYouvvuUPnj1q|ysmgc_\VM=HnWE@??cfC at BGPHHJ^^_`_`^_8`__`^``a
TRSoSQPpqrkp¢
~ßçæåáàÝØÓÐËÈ»±ª ¬²¶¸»ÀÃÌÒ×Üà̧KkÑþòetjx
xm¤ ¢*(((,,%'*****:05<966577>763;<=B:555A2:72005;5105458221<.4:o(Nun'1cC-7fkml`mkqcirtvuxxxyxxwtrnhc^[WRPERIÄ5468bf at CBEQHGJdp__`^__]`<`_____``{
QPNiPNOLMO\¡~
xssbÞååäßÜÙÓÍÊÇÁ¼·µ··¿Â½¾ÃÆÍÔÚÛÖÉK`©¯~Z2345457677:<=BBCIHMQX^fllqry at 677A:9?HP?%&+&&)'-77*-0<`]T1310957./1//8A223708:447:<494?+pruqb^c_#bdjkhToxzhRlqtuvwwwwwtrqmfa]YVRNIJKu<7-,+TKZ[KMTZ^nv~heeeffgffHhgghillqr
vxYT[iKU©srojgceßåâãáÞÚÔÐÍÄĺ¼¼½³»ÁÁÌÍ×ÚÑÍ·¤Pfivxrtx|x=88765124231/.//022122223457?>932425200//.+30/..,--.-././1244579999:;<<<>=<<;:68#+04DH2+uxvsmknl]hkkiIakutgO8qtrvvvvvvurrlf`[XSPMHBIPJ1/..SLXampuy|o|r}~~}~nnYeor
pqrq
c~~zwefdcb`ZÈÒÑØÜàààÜÙÖÑÐÒÌÐÎËÑØØÙØ͵~}Pdcabbbdv\E=5,../202234333323343222232211111/007r,)AGXdgijcYSEBBB?;:98:8:9<;:<:=:;<==9<:<<=:=?(sxxusqpnmlllkfd^cIhjnrtsvuuvwvuspjd_ZVROJHEA:7447<]UW>DnqrKit|r]XmpYrnW{oXp~
qsRdSjMu]J
ylbaba^^_b¯µÁÆÊÏÒÕÛáâáàßÞÛÛÙÎή
KR[cw¤©¨¨¦¢
vnf\N@:2.&'+*+++,-,-+(*+2Lu¢0011257877655579:;;;;<<==<>?>???@??@@BA at ABBCFdwywvsqppnmllklljG^moqsssvvuwvvusojc]POIEHFB9+**-CHGK4bD@@CR{mqHFIJOJHGLopmw[GHNLJLJIxyprqLJNKJIIK~LMJDB:\\]^_^\[UU\®ÂÀÆÌÐÓÑÒÌÈ¿°¥
´·µµ¶··º¹¹¸¶··¶¶´³²±±¯¬¬ª©¨©¨¨§©¥£¡ ¢ ¢¢¦¥11////123:;;;;;;;::;;<<<>@=;<;:9577<CJMV]W_UMvxzywsqponmlmllmmklnppqssuvvuutsqoia[OGDDEFE9))(((-///2ejmsw?7>AjPLYv`:eH;~aSYt;DG<S
vx}<7;{887:\\\\^_^XVIP`NWw
~
¹¹»¾¿½¼»»¹·····¶¶¶µ³´²±±®®®®««««ª«ª«©©ª§§¥¥¥©§¦¥¦¦¤¥¥58;9<<;<=<943321.--*+)&'''''&&&&'&''(')('*(),uyzywtqqoomlmlkmnnmppqsrsrsutvtrpoh_ZPCP1CDG2()(((6/./0145764779:8t~q?::9::::9T}~C:;;<;;;<3KlpS2=<99;8:977668^^[[YY[FGHDKEEElz|{vx{{}|z}~}~
¸·¸¿½º··¸¹µ¶¶¶µ³´´´²±´´±²³´¯¯¯¬««¬©ª¨§§¦¥¦¥§¦§§¦¤¢£!! !!! !! ""! """!"#""#####$##$$$$$$$&(s{|ywurppnllkmmlmnooooqqrrtttrrpnle]WGOM9BBG++,+..6//./113546879:8999:99CB999:;;:9;9;;::<;:;;<;?;<:;:98:<:9998786w¢bZ@=F7;A?IZjmqruxwz{y|||}~º¹·»À¿¼»·º¹¶¶µµ´µ´³²²±±²±±±°¯¬«¬«««ªªª©¨¨§¦¦¦¦¥¥¥¤¢ "!""!###$$$&u|}|ywtqpnmlkllllmonopqqqrrrrrpoljc[UHACA@@Evtvtqp`1-./1125676689998888KG9999:::<9:9;:;:;::<:=?=9;::9799:8777878:µ··¹º¼¼ºUKC<8:EYhostrwwwwxyyxyw{|}¸¶µ¸¾½º¹¸·µµ´µµ´³³³²°¯±¯¯¯®®ªªª©¨©©¨¦¦¥¥¤£¢££¢¤¢£¡ !!!!"#$$%'*v}zxuqpnmlklllmnmnopompppqnollkhbZSLH2A@=C
/../011345678989799IEGYGPSM<9>AAKPSG@;D9?;A8;::99979;878767668³®²´»¶·¸¼nH@@MGclppqtstqstuvvvvxxz}|~~
µ¶µ³´»¸¶´µ´³³´²´³²²²±±¯¯°¯¯««ªª©©©¨§§¤¦¥¤£¢¢¡¤££!"!#"&(*)("&'(/;T`v|xvrqmmmlmlmlnmnnmnnooononkjif_YQLHC@>;A-.../0012446897898??;:BA:;CH9AM<<:7:;>=;>9;::9999:7<;<<;<<;:89d_debfea`\^IHKTkoqnorrrpppopnpqsuuxvxz|´´®¯³¸¸¶´³³²³³³²³°°°²°®¯¯°°««ªª¨¨§ª¨¨§¥¤¥¤¤&'(*)&'# %,5;Qiw
}yxusrrqqppoooopononnoonllig`ZTMJGCA?GzuqeZL/-././0033357777888897989=<9;;8988888898:8888899999;===<<=>>>Bxl\XUQQM`q}rlmoppommbklihilnoqssuvx{~ «¬®°°°±°°°°°±¯°®¬®¯¬¬¬«««©©§§¨§§¦§¦§
~~}}{yxxwvttsrrqqqopnqonmlkfaZTMIGC>;>USMIGEE at 94.-.//0245776887788698798898877767787676766566689:9984-H[MgvlbWRMrmldiihYahcehddhjjmlnpst£§ª«®¬®¯¬ª«ª§§¨§§¦¦¦¨
wofgHAR]jfjiijgggeddedcbccddaa]XPFA;>@DHHHGMNMMKJHB>;40049=B6:9=788776776677677777557665866666676977C?%,06>DIR`v~zk^]g^^_]Uaaabccbdefhhklnimr}§©«¯®¯®¯®ª¯°¬«¬ª¨ª¨¨ª©«
lcZTQ¢£¢¢
}~||{yvsqpnkjihikmnljihbbbbdcdfeegb`PJKIGGEFFFGIJKKKKKONORTPRTSYZYZZZZZ\\]^^_`cfkrxytndLMRVWXZ\^^_``a`db[fjlptx~¤©«®°°°°±®¯®¬¬ªª©ªª«©
yja[TOLHC ¡ ¢¤¥¤¦¤££¡¢
¡«¬¬¬¬«¬«««©§ ~pcXPHCA at HLOQSTVVTPLXbimnpsw|
£§ª®±±±²±±¯¯¯¯®®°®°¬ªª«¬®
|tg_TOJID?<;
¡¡¡¢¢££¥£¥¦¦§¨©©©¨©¨§¨§¨§¦££ ¢¥¦¨§«²´¶·´¶¶¶´³¬¦¡wk^ROKFB=:723438=ISX]beimoty ¦©«¯³µ¶´µ´´³±²²±±±²°°¯®¬«ª¬¬
|of^NC at A?=:76
£¤¥¥¤¦§§¨¨¨©©©¨«ª««ª¬¬¬«ª¨¦¥££ ¡ £¤¥¥¨©©©¬³´´¶¶³°«¥xha\ZYWURPNPPOSUX[^abijpz¤ª«²¶µ´´³²´´µ´³²´´³´±²³±±±±±¯®®®±|tj]LGA>>:9767£§©ª±¬¬¬¬¯®¯®®®¬¬®¯¯°¯¯°±¯®¬ª¦¢¡¢¢£¥¤¥¦¦§©ª¬¬°²±²´µ³µ»¼¹·³¨¢
¥§¬¯³¶·º¸¶µ´´¶¶µ´¶´³´µ´µ´³³²³²²²²³±±±®¯¯°«yvcMA>:;::87::¡¢¢¥©¬®®¯°¯°¯¯°²²³³³´³²°±°®±°±±°±±²±°¯¬«©§¤£¡ ¡¢£££¢¡¡ ¡ ¡¢¢£¤£¥¥¤¥§¨§©©«««®®¯°±²´³¶µ¸¸·¹º¿¿¿¿º¹µ²¯®¬ª©§¦¦§¨§§§¥§©ª«¯¯¯±³´·»··¸¹ºº»¼ºº·¶µµ·¶µµµ´¶´¶µ¸µ´µ³´µ´³³´³³°°®«°£zpYB98689:98::¡¡¢¢¤¤¥¦¦§©©«®±³³´³³´´´´´´¶·¶··¸·¸¸·¶¶¶¶µµ³µ´µµ´³²±°®¯¯®«««ªª¨¨¨¨§¨©¨««««ª«ª«¬«««¬«¨©ªª«««¬®®®¯¯¯°±±²²³²³¶´··¸¸¸º»¼¼¼¼¿ÁÂÂÁÁÀ¿ÀÀ¾À¿½½½¾¾¼»ºº¸º··¸¹¹¸ººº¹»¼»º¼½½¾¿½¼¹··¶¸¸··¶··¶··¶µ´µ¶µµ³¶´µ²´±±¯¯®¯±zrL=53989:8:6* ¡¡¢¡¢¢¢££¥£¥¥¦¦§¨¨¨©ª««®°³µµ··¶¶µ¶µ¶¶··¶···¶¹¸¹ºº»»¹¹º¹¹¹¶¶¶´±±°®°±¯²´³´³²¬²±°°°±±±²³³³³µ´´´³´µ³³²±²³²²´´³´µ·¶···¶¸¸º¹»¹»»»¼¼¼¼º»¼¼½½¾½ÀÁÀÁÀÀÀ¿¾ÀÃÀÂÂÁÂÀÀÀÀ¿¾½¾¿¾¿¾½¼»»»»¼»½½½¾¿¾¿¾½º··¸º··´·····¸¶¸¶·¶¶¶µ´µµ´´²²°¯°°°«z{tP526899;+ ¡ ¡£££££¤¤£¥¥¦¨¨§¨¨©ª©©ª«ª«¬¬¬®¯²µ¶¸¸···¶¶·¸·¹º¼¶¶·µ¸¹ºº»»º»»¼¼¼¼¼¹¹¶·¶·¶·µ¶¶¶··¶¶²²µµµµ¶µµµ·¸¸¸º¹¹ºº»º»¹¹···µ¶¶¹¸¸¸¹¹¹¸¹ººº»»»¾¾¿ÁÁÂÁÂÀÀÀÀ¿ÁÁÁÁÃÅÅÃÃÀÀ¿¿À¿¿½½¼¾¿À¿ÀÀÀ¿ÀÀ½¿¾ÀÀ¿À¿½ÀÀ¿¿¿À¿¿¿¾¾º¸¸¸¸¸·¸·¶¹¸···¸¸·¶··¶µ·µµµ´³²±±°±²~|{Z25794#¡¡¢¢¢££¤¥¥¦¦§§§©©ª©ªª«««¬«««¬¬¬¬¬¯°³µ¶··¶·¶µ¸¶·¸·¹¸¸¸¹¹»»¼½½½¾¹¼½¿½½½½¼»º¹¹¸¶··¸»ºº¹¹º··¶µµµ¶¶¸¸¹º»»»»¼½»½¾»»º¹º»º¹»º»º¼»ºº¼»»¼¼¾¿ÁÂÂÃÃÂÄÅÄÂÂÂÂÁÃÂÄÆÅÅÂÃÀÀÀÁÀÀ¿¾½¾ÀÁÁÁÃÃÁÁÂÀÂÃÂÂÁÀÁÁÁÁÁÀÀÀÂÀÁÁ¿¿½º¸º¹¹¸¹¸¹¸¸¸¸¹¸¸··¹¶··¸·µµ³³³²°¯°²±
}zv86/¢¡¡¡¢¢¢£¤¤¤¦¦¦¨¦¨¨¨©ªªªª««¬¬««¬¬¬¬®¯®¯±³µ¶·¸¹·¸¸¸··¹¹ºº»¼¼¾¾½½¿¾¿¿¿¾¿¿¾¾¾¾¼¼»¹ºº¹¸¹¸¹º¹¸¸¹¶¸·¶¶¸¸¸º¹º½½½½½¾½¾¿¾¾½»»»»ºº¼»¼¼¼¼¼¾¼½¼¾¾À¿ÀÁÂÂÂÃÃÃÂÁÀÂÁÁÁÃÂÃÄÃÄÂÂÂÁÀÀÀÀÀ¿¿ÁÂÃÄÄÃÄÆÆÃÅÄÆÅÄÄÄÃÃÂÃÁÃÃÂÁÁÁ¾¾½º»»ººº¹¸¸º¸¹¹º¹¹¸¹¹¸¸···¶¶µ´³³³±²³±µ|{yb$ ¡¢¢£¤¤¥¦¥¦¦¥¦§§©©ª©ªª««««««««¬«®°°²µµ¶··¸·¶¶·¸¸¹¹¹¼¼¼¼½¼½½¾¿¾¿¿¾¿¿¾¾¾½½»»»¹¹º¸¹¹ºº»º¹º¹¸¸¸¸¹¸º¹¼½¾¾¾¿¾À¿½¾¾¾½½½¾½¼¼¼½½½½»¼½½¾¿ÁÂÂÂÁÂÂÂÂÄÃÃÁ¿ÁÂÁÁÂÂÃÃÄÅÂÃÂÁÂÁÀÀ¿¾ÁÂÅÅÆÆÇÇÆÅÆÇÆÆÆÆÆÅÅÄÄÄÃÃÃÁÃÂÁÀÁ½¼»»¼»»»¹ºº¹º¹º»»º¹¸»·¹¸º¸¶¶¶¶´±³´³³³°£¥wysU¡ ¡¡¡¢¡££¢¦¤¥¥¥¦§¦¨©©ªªªª««¬««¬¬¬¯®¯°¯°¯°±±²´¶·¸»¶·····¸¹¹º»¼»¼½½¼¾¾¿¾¾¿¾¿¿¾¾¾¾¼»¼»º¹¹º»º»ºº¼¼º»º¹º¹¹¹¹»¼¾¿¿À¿À¿¿À¾¿¾½¼¼¼¼¼¼½½¾½¾¼½¾¾¿ÀÀÁÁÁÃÃÃÃÃÄÄÄÂÂÁÂÁÂÁÃÄÅÅÅÉÅÅÅÅÂÃÄÂÂÂÂÅÆÈÉÊÊÉÉÉËÊÊÈÈÉÇÈÅÅÅÄÄÄÂÃÁÂÁÀÀ¼¼½»ººººº¹ºº»¼º»¼º¹ººº»»¹¹º¸¸¶·µ´²²²³²³§ yspW! ¡¡£¢£¤£¤¤¥¥¦¦¦¨¨©©©ªª«©««¯®®®¯¯¯¯°°°°±³³´¶·¸¹¶µ¶··¸»¹º»º»¼¼½¼¾¿½¿¿¿¿¿ÀÀ¿¿¾¾¿½½¾½¼»»¹ººº»»º»»»¹¹»¹»¼¼½¾¿ÀÁÀ¿ÀÀ¿¿À¿¿¾À¼½½¼½¾½½¿ÀÀ¿¿¿ÀÁÂÃÄÄÄÅÅÅÆÆÅÄÃÃÃÂÃÃÄÄÄÆÇÈÇÆÆÆÅÄÅÃÄÅÅÆÈÉËÌËËÌËÊÊÊËÊÉÈÇÇÆÆÅÅÄÃÄÁÂÀÀ¿¾½¼¼¼º¼»¼¼¿½½½½¾¼½¼¼¼¼»»ºº¸··µ¶´´µ´²±³²´«¡
rmT$¢¡¢££¢££¤¥¥¥¦§§¨©©ªªª«««ª¬¬¬®®®®®°±²±²³´¶·¸¹¹¸¸¹¸¸¸º»»¼»¼¼½½¼¿¾¿¿À¿ÀÀÁÀÀÂÀÁÀÀ½½½¼½¼½½»¼¼¼¼½¼¼¼º»»»¼¼½¾ÀÀÀÁÁÀÁÁÁÁÂÁÀ¿¾¾¿¾½¿¿¿ÀÀÀ¿ÀÀÁÂÃÃÃÆÅÅÃÆÇÆÅÆÄÂÃÂÂÃÄÄÅÄÅÅÅÄÅÃÃÃÂÂÃÄÄÉÉÌÌÌÍÍÎÍÍÎÌÌÌËÌÊÉÉÉÈÇÆÆÃÃÁÂÀÀÁ¿¾À¿¾¿¾¿¾¿ÀÁ¿¿¾½»»ººº¹ºº¹¸¸¶¶µ´´³´±±³²´¶³¥ªym[+¢¢¢¢££¤¤¤¤¥¦§§¨¨©©§ª«««««¬¬¬®®®®®°¯¯°±±²²³´¶¸¸¹º¹¹¸¸¹º¹»º¼¼¼½¼½½½¿¿¿ÀÀÀÀÁÁ¿¿ÁÁ¿¿¾½¼¼¼½¼½½½½½¼½¼½¼º¼½½¾¾ÀÀÁÂÁÂÁÂÃÂÂÁÂÂÁ¿¿¿¿¿ÀÀ¿¿ÀÀ¿ÀÁÁÁÂÃÅÆÆÆÆÇÈÉÇÆÆÄÄÄÄÃÃÃÅÅÅÅÅÄÅÅÃÅÅÄÃÅÆÆÉÊËËÎÎÏÎÏÏÎÍÍÍÍÍËÊÊÉÉÇÈÆÆÅÄÄÃÃÂÁÀÂÀÁ¿À¿¿¿ÁÀÀ¿¿½»»½º¼º»»¹¹¸···µµµµ´´´²³µ´µª¢¡mhA!¢¢¢£££¥¥¥¥¥§¦§©©©©©©«««««¬®®®®¯¯¯°°®±°²²³³µ·¸¹º¸¹¹¸»ºº»»»»»¼¼½¾¾¿¿ÀÁÁÀÂÀÂÁÁÁÀ¿¿¿¿¾¾½½½½¼½¾½½¼½¼½¼¼½½¾¾ÀÁÂÂÂÂÂÄÄÄÃÂÂÂÁÀÁ¿ÀÁÁ¿ÀÁÁÀÁÂÂÂÃÃÅÅÇÆÇÆÈÈÉÈÇÇÆÅÅÆÄÄÆÇÇÈÇÇÆÅÄÅÄÄÄÄÅÄÆÉËÌÍÏÎÍÏÏÐÎÎÏÎÍÌËËÊÊÊÉÇÇÇÆÄÄÃÂÁÂÀÁÀÁ¿ÀÀ¾¿¿À¿¾¾½½½¾¼»½»»»º¸¸¹¸¶¶¶µµ¶´´´´µ¶¶±¦}gQ-¢£££¤¤¥¤¤¥¦¦§¨¨©©©©ªª¬«¬¬®®®¯¯¯¯±±°°²²±³´µ·¹¹¹»¹¹»¹¹¹º»¼»»½½¼½¿¿ÀÀÁÀÀÁÂÁÁÀÀÀÀÀ¿À¿¿¾½À½½½¾½½½¾½¼¼¼¼¾¾¿¿ÂÂÂÂÃÄÃÄÃÂÄÃÃÂÂÁÁÁÁÀÁÁÂÁÂÂÂÃÂÂÃÅÆÇÇÇÈÈÉÉÉÈÈÆÅÄÃÇÆÈÇÈÇÈÇÆÆÆÅÆÄÃÄÄÆÈÉÊÌÍÎÎÎÏÐÐÏÏÏÏÍÌÌËÊÉÊÉÈÈÈÇÆÆÄÃÃÁÀÁ¿À¿¿¿¿¿¿¿¿¿¿¾¾¾½½¼¼»¼»»¹¸º¹·¹·¶·µµ´´µµ´µ´´¬£r[?$¤£¤£¤¥¥¥¥¥¥¦§§©¨¨©ª««¬¬®®®®®®¯®°°°±°²±²³³´µµ·¸¹¹¹ºº¸º¹º¹º»»º¼¼¾¼½¿¿¾¿¿ÀÀÁÁÂÀÁÁÀÀÀ¿¿¾¾¾¼½½¾¾¾¾¾¾¾¿¾½¾½¾¾¿ÀÁÂÄÃÃÃÅÄÄÄÃÃÂÃÂÃÃÁÁÁÂÁÁÁÂÁÂÃÂÅÆÇÆÈÈÉÉÉÈÉÉÊÉÆÆÆÆÆÆÇÈÈÉÉÈÈÇÇÇÆÅÅÄÅÇÈÊËÌÌÏÏÏÏÐÏÏÎÏÏÏÍËËËÊÊÊÉÈÈÇÆÆÄÄÂÁÀÁÁÀÀ¿¿¿À¿À¾¿ÀÀ¾¾¿¿¼¼¿¾¼»»º¹¹ºº··¶µµ¶¶¶¶µ´´´¶±¨iM££¤¦¥¥¦¥¦¦§§¨¨§§ªªª«««¬¬®®®¯®¯¯¯°°±²³²³²³´´¶··¹¹¹»»¹º¹ºº¹º»¼¼¼¼¼¾¾¾¿¿À¿ÁÁÁÁÁÂÁÀÀÀ¿¾¾¾½½¾¼¾¾¾¿¿¿¾¿¾¾½¼¿¿¿ÁÀÂÄÄÃÃÄÄÃÅÅÃÄÂÂÂÂÂÂÂÂÁÂÃÃÃÃÃÅÅÆÇÇÇÈÉÉÉÈÉÉÊÉÈÇÆÆÅÅÆÇÈÊÊÈÈÈÈÇÆÆÆÇÆÇÈÉÊËÎÎÎÏÏÏÏÏÏÏÎÍÌÍËÊËÊÊÊÈÇÇÅÅÄÃÂÂÂÀÁÁÀÀÀÁÁÁÂÁÁÁÁÁÀÀ¿¿¿¿¿¾½¾½º»º¸····¸¸¸·µ¶·´´µµ¶°¦£££¥¥¦¦¦§§¨¨©©©ªª««««««®®®®¯®°°±±²²²³³³³´´µ¶·¸¹ºº»ººº»º»º»½½½½¾¾¾¿¿¿¿ÁÀÀÁÂÁÁÁÀÁÁ¿¿À¿¾¾¿¾¿¿¾¿¿À¾¾¿¿¿¿¿ÀÁÀÁÂÃÄÅÅÃÅÄÅÅÅÄÃÃÃÃÄÃÄÃÂÃÃÅÃÄÄÄÅÅÄÅÈÈÈÉÊÊÊÊÊÊÉÉÈÈÇÇÇÇÇÈÇÉÈÈÇÆÇÈÈÉÈÈÇÉËÌÎÏÏÐÏÏÏÏÏÐÎÎÍÌÌËËÊÊÊÉÈÇÇÆÅÄÄÂÁÂÀ¿¾ÀÀÁÁÂÂÁÁÂÂÂÁÀÀÁÀÁ¿¾¾½¾¾»»º¹¸¹¸¸···¶¶¶µµ´µµµµ²¬¥¤£¤¤¥¥¦¨§¨§¨©ª©©««««¬¬®¯®¯°°°°°²²²²´³²³´³´¶·º¹ºº»º»¹º»ºº¼½¼½¾¾½¾¿½À¿ÀÁÂÂÂÁÁÂÂÁÁÁÀÀÀ¿¿¿¿¿¿¿¿¾À¿½¿À¿¿ÀÀÀÁÂÂÄÅÅÄÅÅÄÅÆÅÅÅÅÃÃÃÄÃÄÄÅÅÆÃÄÅÅÆÆÇÇÉÇÉÊÉÊËÊÊÊÊÊÈÉÈÇÉÇÉÊÉÈÊÉÈÇÉÈÈÉÉÈÉÊÊÍÍÏÏÏÐÏÐÏÐÏÎÏÍÍÌÌÊÊËÊÉÉÈÇÆÆÄÃÃÁÁÁÀÀÀÀ¿¿ÀÀÁÁÁÁÂÁÀÀÀÀÀ¿¾¿½½¼»»»ººº¹¹·¹¸¶µ·¶³´¶³´´µ¶²«¢¢¢£¥¤¦§§§¨¨ªªª««««¬®®¯¯¯±°°±±²²²³±²³´´´µ·¸¹ºº¼»ºº¸¹º¼»½½¼»½¾½¾¿¿¿ÀÁÁÁÁÁÂÂÂÁ¿ÂÁ¿À¿À¿¿¿¿¿¿¿ÀÀ¿¿¿¾ÀÀÀÁÁÂÄÄÅÅÆÆÅÆÅÆÅÄÄÄÃÄÃÄÃÅÅÄÅÄÄÄÅÅÆÆÆÇÈÉÉÉÊÊÊÊËÊÊÊÉÊÊÈÉÊËËÊËÊÊËËÊÉÉÊÈÊËËÌÍÎÎÐÐÐÐÐÏÏÏÏÏÏÍÍËÊËËÊÉÉÈÈÅÆÅÄÃÃÂÁÀ¿¿À¿¿¿¿À¿¿ÀÀÀ¿¿¿¾¿¾½¿½¼½º»»»º¹¹º··¸¸¸··¶¶¶µ³´·¶µ¶¢¡¡¢¢£¤¥§¦¦¨¨¨¨©ª«ª«¬®¬¬¯¯¯®¯°°±²²²²²±³²³³µµ¶·¸¹ºº¼¼ººº»»»¼½½½½½¿¾¿À¿ÀÀÁÁ¿ÂÂÂÂÂÂÁÁ¿¿¾ÀÀ¿¿¿¿Á½ÁÀÀÀÀÀÀÀÁÂÃÃÄÅÆÆÆÅÆÆÆÆÅÂÄÄÄÄÃÃÃÄÄÃÅÅÅÄÅÇÇÇÈÉÊÈÊÊÊËËËÌÊÊÊÉÉÉÈÊÊÊËËÊÊÊÊÊÊÉÊÊËËËÌÍÎÏÏÏÎÏÎÏÏÏÎÏÍÌÌÊÊÊÊÊÈÇÇÇÅÅÄÂÂÂÁÀÀ¿¾¾¾¿¿À¿¾¿¿¿À¿¾½¿¾¾¾¿½»¼»»¼»¹¹¸·¹¶¹¸¸¸¸·¸··¶¶µµ´´ ¡¡¡¢¢¢££¥¥¦¦¦§§©¨©ªª««¬¬®¯°°²±±²±³²³´´µ¶¶¸¹¹¹ºº»»ººº»»¼¼¼¼½½¾¾¿¿¿ÀÀÁÁÁÂÃÂÂÂÁÂÁÀÁÁÀÁ¿À¿ÀÁÀ¿ÀÀÁÀÁÁÀÁÀÁÂÃÃÄÅÅÆÆÆÆÆÅÆÅÅÅÅÅÆÅÄÄÄÄÄÅÅÄÆÇÇÈÈÉÊÊÊÊÊÊËËËËËÊËÉÉÈÊÊËÊËÌÊÊÊÉÉÉÊÊÊÊËËÊÌÌÍÎÍÎÎÍÎÎÍÍÍÌÊËÊÊÉÈÉÈÆÇÆÅÄÃÃÂÁÀÀ¿À¿¾¾¿¾À¾¿¿¾¾¾¿½¾½¾¾¼½¾½¼»»»¹º¹¹¸¸¸¸··¸¸··¸·¶·´³³³ ¡£¢££¥¦¥¦¦§¨§¨©ª««¬¬«¬®®¯¯¯°±±²²²³´µ´¶·¸·¸¸ººººº¹º»»¼½º¼¾¼¾¾¿ÀÀÀÁÁÁÀÁÂÂÁÂÂÁÀÁÀÀÁÀÀÀÀÀÁÀÀÁÀÁÁÁ¿ÁÁÁÂÂÃÃÄÅÆÆÆÅÆÇÆÆÅÅÄÆÆÅÄÄÄÄÄÆÆÆÇÇÇÈÇÈÈÉÉËËËËËËÊËÊÊÉÉÉÉËÊÊÊÊÊÊÉÈÈÈÈÉÈÉÊËÊËÌËÍÍÍÍÎÍÍÍÌËÌÊÊËÉÉÉÈÇÈÆÆÅÃÁÀÁÀÀ¿ÁÁ¿¿¿½¾¾¾¾¾¾¿¾¼¼½¾¾¿½¾½½½»»»¹¸¹»¹¸¹····¶µ·µµµµ´²³±¡ ¢££¤¤¤¥¥¦§§¨¨ªª©ª«¬««¬®®¯¯¯°±°±²´´´µµ¶·¸¸¹¹¹¹¹ººº»»¼»½½¿¾¾¿¿ÀÁÁÀÀÁÁÁÁÁÂÁÀÁÀ¾¿À¿ÀÀÁÀÀÁÀÀÀÀÀÁÁÂÁÃÂÃÄÅÅÆÆÅÅÆÆÆÆÆÅÄÆÆÅÅÄÅÆÆÆÇÇÇÆÇÈÉÉÉÈÊÊÊËÊÊËÊËÊÊÊÉÉÉÊËËÊÊÊÉÈÈÈÇÈÈÈÉÉÊÊÉÊÊËÌÌÌÌËÌÌËËÌÊÉÊÈÉÈÈÈÈÇÆÅÃÂÂÁÁÀÀÀ¿¿À¿¿¿¾¿¿¾½¿½½½½½¾¾½½½¼º»ºº¹º·¹··¸·¶···µ··µ´´³³³± ¡¢¢¢£¤¤¤¦¦¦¦¨¨©¨§ªªª«ª«¬«¬®¯®¯¯°°±±²´´µµ¶·¸·¸¹¸¹¸º¹ºº»¼¼¼½½¾½¿¿¿¿ÀÀÁÀÀÁÁÁÀÀ¿¿À¿À¿¿ÀÀÀÁ¿¿ÀÀ¿ÀÀÁÁÂÀÄÄÄÄÄÅÅÅÅÅÆÆÅÆÆÄÅÆÅÄÅÅÆÆÇÇÆÆÇÈÈÉÉÊËÊËÊÊÉÊÉÊÉÉÉÈÉÈÈËÉÉÈÊÉÇÈÈÇÇÈÇÈÇÇÈÈÈÈÉÊÊËÌËËËÌÌËÊÊÊÊÉÊÉÉÉÇÇÆÅÃÃÃÁÁÁÁÁÁÀ¿ÀÀ¿¿¿À¿¿¿¿¾¿¿¿¿½¼½¼º»º»ºººº¹¸¹¹¸¸····¸¶·´³´´²± ¡¢¢¢££££¤¥¥¦§§¨§¨¨©©ªª««««¬«¬®®®¯°°²²´µµ¶¶·¶¶··¸¸¸ºººº»»¼¼½¾¾¾¾¿¿ÀÀÀ¿¿À¿À¿À¾½¾¿¿¾¿¿¿¿ÀÀ¿¾À¾ÀÀÀÀÁÁÂÃÃÄÄÅÆÅÅÅÆÅÅÅÄÆÆÅÅÅÅÅÅÅÅÆÅÇÇÇÈÈÉÊÊÊÉÉÊÊÉÉÊÉÉÈÈÈÈÈÈÈÉÈÈÇÇÇÈÇÇÈÈÆÈÈÈÇÉÊÉÊÊËËÊÊÊÊÊÊÉÊÉÉÉÈÇÇÆÅÅÄÄÂÂÁÁÁÁÁÀÀ¿¿À¿¿¿¿¾¾¿¾½¾¾¿¾½¼½½¼½¼»ºº»º»ºº¹¹¹¶º¸·¸·¶µµ´³±± ¡¡£¢£££¤¤¤¥¦¥¥§§§§¨©©¨««ª«¬«¬®¯¯°°±³³³´µ¶¶¶¶¶···¸¸¹¹ºº»¼»¼½½½¾¿¾¾¿¿¿¿¿¾¾½½¾½½¼¾¾½¾½¿¿¿¾¾¾À¿¿ÁÀÁÂÂÃÃÃÄÄÅÄÄÄÄÄÃÃÄÄÄÄÄÃÄÄÄÅÅÅÅÆÆÇÇÈÈÉÉÉÉÉÊÉÊÉÉÇÈÈÈÇÇÇÇÈÈÇÆÈÈÈÈÇÈÈÈÈÉÉÉÉÊÊÊÊËÊËÊÊÊÊÉÉÈÉÇÆÆÆÅÄÃÃÃÂÂÁ¿ÀÀ¿À¿¿¿¾¾¿¿¿¾¿½½¾¼½¼½¼»º½¼¼¼¼¼º»»ºº¹¹ºº··¸¸···¶µµ´³³² ¢¡¡¡¡¢¤¤¤¥¥¤¥¨§§§¨©ª©©ª¬«««¬¬®®®°±±²³´³´µµµµ¶µ¶·¸·¸¹¹¹ººº»¼»¼¼½½½¾¼½¼¾½½½¼¼¼¼½¼¼½½½¼½½½¾¾¾¿¿¿¿ÀÁÂÂÃÃÃÄÄÄÃÃÁÃÃÂÃÃÃÃÃÄÄÃÄÅÄÅÆÇÇÆÇÉÇÈÉÉÈÉÈÉÈÇÈÇÆÇÆÆÇÇÇÇÇÆÈÉÈÈÇÇÇÇÈÉÉÉÉÉÉÉÊÉÉÉÊÊÉÇÈÈÆÆÆÄÆÅÄÃÃÂÂÂÂÀÁÀ¿¾¾¾¾¾½¾¾¿¾½¾¾¾¾½½¾¿½¼½½¼¼½»»»º¹ººº¹»¹¸¶·····´·¶µ³´³¡¡¢¡£¢¤¤¤¦¤¥¦¦§¦§¦¨©©¨ªªª«¬¬«®®°°²±²³´´³µµµµ··¶·¸¹¹¹¹¹»¼»»»»»½¼½¼½¼¼¼»¼¼½½¼½¼¼¼½¼½¼¾¾¾¾¾Á¿¿ÀÀÁÂÁ¿ÂÃÂÂÃÂÂÂÂÂÂÂÂÂÂÃÄÄÅÆÅÅÆÆÇÆÈÇÈÇÈÉÈÇÇÉÈÈÆÇÅÆÆÆÆÇÇÆÈÇÇÈÇÆÆÅÆÆÇÇÈÈÇÉÇÈÈÈÈÈÈÇÈÇÆÇÇÆÅÄÃÄÄÃÃÃÁÁÁÀÀÀÀ¿¾½¾¾¼¼¿½¿¾¾¾½½¾¿¾¿½¾½¿½»¼»º»º»¸¹ºº¹¸¹·¸¹····¶¶´´³² ¡ ¡¢¢££¤¥¥¥¥¥¦§§¦§¨©¨©©ªª««¬®°°±²±²´³´´´µµµ¶¶¶····¸¸¹¹ºº¹ºº»»¼»º»»»»»¼»»»¼»¼¼½½½¼½½¾½¿¿¾¾¿ÀÁÀÀÀÀÂÂÂÂÂÁÁÂÂÁÂÃÃÄÅÄÅÄÆÆÅÆÆÇÇÇÇÇÇÈÇÇÈÈÉÇÆÆÆÆÆÅÆÇÇÆÈÈÇÇÇÆÇÆÆÅÆÅÆÈÇÇÇÇÈÈÈÈÇÇÆÄÅÅÆÆÆÄÄÄÃÃÂÁÂÁÁÀÀÁÀ¿¿¾¾¾¾¾¾¾¾½½½¾¾¾¿¾¿¾½¼¼¼»»¼»»º»ºº»º¹¹¸¸¸ºº¸····µ´µ´´ ¡¡¢£¢¤££¥¤¤¤¦¥¦¦¨¨¨¨©©©ªª««®¯±±²²±²³³³´µµ´´µµ¶¶¶···¹¸¹¸¹¹»ººº¹º¹ºººº»ºº»»»¼»½¼¼½½½¾¾¿¿À¾¿¿À¿¿¿ÁÂÀÁÁÂÁÁÁÂÃÃÄÃÃÄÅÅÅÅÅÆÆÅÆÇÆÇÇÇÇÇÇÇÇÇÆÆÅÆÆÇÇÇÆÆÆÇÇÆÇÇÆÆÆÇÆÆÆÇÆÆÆÆÈÇÇÆÆÆÅÄÄÅÅÃÄÃÂÂÃÂÂÁÂÁÁ¿¿ÀÀ¾¿¿¾¾½¾½¼¾½½½½¾½¾½½½¼½¼¼»»¼¼º»»º¹»º¸º¸¹¹¸¸¸·µ¶··µ·µ´ ¡¡¡¢¢¢£¤£¤¤¥¤¦¦¦¦¨¨©©ªª«««¬¬®®°°±²²²²³²´³³³´µ¶µ¶·¶····¸¹º¹¹¹¹¹¹º¹¸¸¹¹¹ºº»º¼»»»»»½¼¼¼¿½¾¾¿À¿À¿¿ÀÀÁÁÀ¿ÀÂÁÂÃÃÃÃÃÄÄÄÄÃÄÅÅÅÅÇÆÆÆÆÇÈÇÇÈÆÆÆÆÅÆÆÆÆÆÅÆÅÆÆÅÆÅÆÅÅÆÅÅÅÆÅÅÆÆÆÅÆÆÅÅÄÅÅÄÅÂÂÁÁÃÀÂÁÁÁÀÀÀÀ¿¿¿¿¿½¾¿½½¾¾¼½½¾¾¾½½¾½½½¼¼¼»½¼¼½¼»»¹¹»¹º»º¹¹¸¸¸··¶·µ´ ¡ ¡¢¢£££££¤¥¥¦¥§§§¨©ªª©ª««¬®¯®¯°°°°±±²²³´³´µµµµµ¶···¸¹¸¸¹¹¹¸¸¸¹¹¸¹¹¹¹º¹ººº»º»¼»»¼¼¼½¾½¿¿¿¿¿¿ÀÁÀÁÁÁÁÁÁÂÂÂÄÂÂÂÃÃÃÃÃÄÃÆÄÅÆÆÆÆÇÆÆÇÇÆÆÆÅÆÆÅÆÅÅÄÅÅÄÄÅÄÅÄÄÅÄÄÅÆÅÅÅÃÅÅÅÄÆÅÄÃÅÅÅÄÄÃÃÂÂÂÁÂÂÁÀÁÁÁ¿À¿¿¾¾¾½¿¿¿¾¾½½½¾½¾¾¾¾¾¾½¼¼½½½½½½½»ºº»º»¹º¹¸¸¹¸···¶¶µ ¢¢¡¢¢££¤¤¥¥¥§§§§©©©ªª«¬¬®¯®¯°°°±°²±²³´³´µµµµ¶¶··¸¸···¸¶·¹¸¸¸¸¹¸¸¹¹¹¹º¹ºººº¼¼½½¾¾¾½½¾¿¿ÀÀ¿¿ÁÁÀÁÁÁÁÁÁÁÁÁÂÂÂÂÁÂÃÄÃÄÄÄÅÅÆÆÅÆÅÅÅÄÅÆÄÅÅÅÄÄÅÅÄÃÄÄÂÄÃÃÅÄÄÅÃÆÃÄÃÄÅÅÄÅÄÃÃÄÄÄÅÅÄÄÃÃÁÁÁÁÂÁÁÁÁÁÀÁÀÀ¾¾¿¾¾¿¾¾¾¿¾¿¿½¾¼½¾½½¾¾¿¾¾¾¼¼½¼»»¼»¼»º¹º»¹¹¸¸¸·µµ ¡¡¡¡¢£¤¤¥¥¦¥¦¨§¨©©ªª«¬¬¬®¯®®¯°¯°±±±²°³³´´´µ¶µµ¶·········¸···¸¸¸·¸¸¸¸¹¹ºº»»»»»½¼½½¿¿À¿¿¿¿¿ÂÁÁÁÀÀÀÀÁÁÁÁÁÂÁÁÁÂÂÃÃÄÃÃÄÅÄÅÅÄÄÄÃÄÄÄÃÃÃÃÃÄÃÄÄÄÃÂÃÃÄÅÅÅÅÅÄÅÄÄÄÅÃÄÃÃÄÃÄÄÅÅÅÄÄÂÂÁÂÁÁÂÀÁÀÁÀÁÀÁÁ¿¿¿¾¿¾¾¾¿¿¿¿ÀÀ¼¿½¾¿¿¾¾¾¾¾½½¼¼»¼¼½»¼»ººº»»º¹¸¹··µµ ¡¡¡££¤¥¥¥¥§¦§§©¨«ª««®®¯¯¯¯¯¯°¯±±²³´´´´´µµµµ¶··¶¶¶··¶¶··¸··¸¸¸¹¹¸¹ºº»ºº¼»½½¾¾¿¿¿¿¾¿¿ÀÀÀÀÀÁ¿ÀÀÁÀÀ¿ÁÁÁÂÁÁÂÃÁÂÃÂÃÃÃÂÂÂÃÃÃÄÄÃÃÂÃÁÂÃÃÂÃÂÃÃÃÄÅÅÄÅÅÄÄÃÄÅÃÃÃÃÄÄÃÄÄÃÃÃÂÃÂÁÂÁÁÁÁÁÁÁÁÀÁÀÀÀÁÀÀ¿¿¿¿¾¾¾¿¿¾¿¿½¿¿¾¿¿¾¾½¾¾½½½¼½¼¼¼¾»»º¼»¹º¸·¸¸··¶ ¡¡¢£¤£¦¥¦¦§§§¨©ª©««¬¬®®®®¯®®¯°²±±³³´´´´´´µµ¶µ¶µ¶¶¶¶·¶¶·¶··¸¸¸¸·¸¸»º»¼»»¼½¾½¾¿¾¾¿¿¿¿ÀÀ¿Á¿¿ÀÀ¿ÀÀÀÁÁÁÁÁÁÀÁÂÁÂÁÂÂÁÁÃÃÃÂÂÃÂÁÂÂÂÃÂÄÃÂÂÂÂÃÃÄÃÄÄÅÅÅÄÅÄÄÄÃÃÄÄÃÃÄÃÃÂÂÂÃÂÁÁÁÁÁÁÁÁÁÀÀÀ¿ÁÁÁ¿¿¾¿½¾¿¾À¿½¾¾¿¿¾¿¿¿À¿¾½½½½¾¼½½½¼½¼»»»»º¹¸¸¸¸··¶ ¡ ¡¢¢££¤¥¥¦§§¨¨¨©«¬«¬«««¬¬®®®®°°±±²²³´³´³´´´´µµµµµ¶¶µ¶µ¶···¸··¸¹¸ººº¹»»»½¼½¾½¾½¾¿¾¾¿¿¿½¿¿¿¾¿ÀÀÁÀÁÁÁÁÁÀÁÁÁÂÁÀÀÂÁÃÁÁÂÀÀÁÀÁÂÂÃÃÁÃÂÃÃÄÂÃÃÄÃÄÄÄÅÄÄÃÄÅÄÃÃÄÃÄÃÃÃÂÃÂÁÁÂÂÁÁÀÀ¿ÀÀ¿¿ÁÁ¿¿¾¾¾¾¾½¾¿¾¿¾½¾¾¿¾¾¿¾¾½¾¾¼¼¼½¾¾¾¼½¼»»¼¼»º¸¹·¸··¶¶ ¢¡¢¡¤£¤¥¤¦¦§¨¨©«ª«ª««¬«««¬¬¬®®®°¯¯±±±²²³³³³³´´´´µ´µµ´´¶¶¶¶·¶··¸¸¸¹ºº¹º»»¼¼½½¼½½¼¾½¾½¾¾¾¾¾¾¿¿¿ÀÀÁÁÁÀÀÀÁÀÀÀÀÁÀÂÁÁÀÀ¿ÀÀÀÀ¿ÁÁÂÂÂÁÁÁÁÃÂÂÂÃÄÄÄÃÃÂÄÃÂÃÂÃÄÂÃÃÃÃÃÂÃÁÁÂÁÁÀÀÀ¿ÀÀ¿¿¿½¿¿¿¾½¾½½½¾¾½½½¼¼½½¾¾¾¾¾¼¾¾¾½½¼½¾¾¾¼½¼¼½»»ºº¹¸¸¹¸·¶¶ ¡¡¡£££¥¥¥¦§§¨©©©«ªªª«ª«¬¬¬¬®®¯°°°°°±²²²²³²´³´´´´´´µ´µµ¶¶¶¶··¸¸¸¹º¹ººº»º»»¼¼¼¼½½½½½¾½½¾¿¾¿¿ÀÀÀÂÁÀÀÀÁÀÁÀÁÀÀÀÁÀ¾¿¿À¾ÀÀÀÁÂÁÁÁÁÁÂÁÂÂÂÂÃÂÂÂÃÂÂÁÁÂÂÂÂÂÁÂÃÃÁÃÂÀÂÁ¿ÂÀÀÀ¿¾¿¾½¾½¾¾½½¼¼¼½¾½½½½¼½»¼¼»½½¾½¼½½¿¾½¾¼½¾¾½¼¼»¼»º¸¸¹¹¹¹¸·¶¶¡¡¡¢£¤¥¥¦¦§¨¨¨©©¨©ª©ªª««¬¬«¬®¯¯¯¯¯°±²±²±²²²³³´´´´³´´µ´´µµ¶··¸¸¹¸¹ºº¹»ºº»»ºº»»º»¼¼¼¼½¾½¾¾¿¾¾ÀÀÀÀÀÀ¿¿¿À¿ÀÀÀÀ¿¾¾¾¾À¿À¿¿ÀÀÀÁÁÀÁÀÁÁÃÂÁÁÁÁÀÁÀÁÂÂÀÂÂÁÃÂÁÂÁÁÀÀÀÀÀ¾¿¿¾½½½¼¼½½½½¼»¼¼¼»½¾¼»¼»»½½¼¼½½¼½½¼½¾¼½½½½¾¼º»ºººº¹¸·¸¸¸¸·¶¶}~~~~~~~~~~~~~~~~~~~~~~~~}}~~~~~~x}}~}~~~~~}~}~~~~~~~~~~~~}~}}{
z}~|~~~}~~~}~~~}~~}~~~~~~~~~~~~~~}~~~~}~}||~w~}}~~}~~~~}~~~~~~~~~~~~~~~~~~~~}}~~~z
{~}}}~~~~~~~~}~~~~~~~~|~{~}}~~~~}~~~~~~~~~~}~~~}~|~~~~~~~}~~~~~~~~~~~~~~~~~~}z{~~~~~~~}}~}~~~~|~~~~~~~}z~{~~~~~~~~~~~~~~~~~~~~~~z~~~|}~~~~~~}~~~~~~~~~~~~~~~{}{}~|~~~~~~~~~}~}}yy{}|{}y{z|v||{~~~~~~~~~~|~}~~|~|~}~~}~}~~}}~~~~~{~|||{zzzvt~~~|~~~~~~}|~~~~~~~}~~~~~~~~
|~~~~~}}~~}yxsq~~~~~~~}~~~~~~}|||}}}~~}~|}~}~~~~}~}~~~~~~~~~}|~~~|~~}||{wu~~~~~~~~~}~~}|||}}|}}}}~}|}~~}~~~~~~~~~~~}~~~~}~|~v~~}}~}||~~}||}|||~~}}~~~}}~}~~~~~~}~~~}~|~{}~|~~~~~|}}|~~}}~{z
z{~}~|}~|~~}~~~~~~~~~~~~~~~~}~|~|{||}}vrs¸r¹sºt½r¹s½tºuºv»s¹q¸s¸v¹wµt¶t³u²t¯mkr~}{{||~{|{}{~|}|}|}|}}}~~~~~~~~~~}~~}|~~~}~~~wx}`t«u²uu§u¦t¨t¦olpqtnonmnmmvrsrou}ry
z}~~{}}~}~|}~~}~~~~}~}}~~~~~~~~~~~}~~}}~zs«a¤b~wzcv§s£onptttnnrupmozzqhgrªhw}zi~}©]{{|{|}{w~~~~~||}|~~~~~}~~~~~~~~~~{~~~~~}~}~}~|{{|}v©pc~{zet§v¥sjh}}}xlkx£t¤qll~|~{qkjt«hs|zd~~~uz}}~~}||x}}||}~~}}}~}~~~~~~~~~~}~~~~~~~~~}~|~}~{|{z{yngze~pl|{jx~~m}}mt{n|{h~~}~~{|~}}~}~~~~~~}~~~~~~~}~~
{}~|}|~}~}|~~~{~z{{~{}~}z~~~~~}~~~}~z~~{~|~~~~~~~}|~~~~~~}~~~~}~}~}}~~}|}}|z}y{~|{y~|}~}{}}~xx~|
~t}{
|y}
~{{||}}|~~}~~~~~~~}~~}~~~~~~~~~~~~}}~|}~|}|}~}z|||usq
pghighxhfihigqpqtn£u¬qt«x¨~~|~~wxv
srmsnrwr~~~~~~}}~}}~}~~~}}~~~~~~~|~|~~~}{~}~~|}z
}z|{{stutgifjfxgigieloqnmj p«rpªq|uM\v}~uuuqu~y
wvtt~}}}~~~~~~~~~~}~~~~~~~~}}~}~~~~~~}}~|}v{|~|~usrrliijizgfigkqqnphn¦n¤ts¨b~~Sf
vQk}uurov~rtwus
~~~}x~~~}~~~}{~~~~}}}}}~~}~~}}~~}}~|}~~~~~v
}||~stsrr
smksky
hfiilronngs§q§rpªg{{x
r
Jjvt
Nt~
sqqo~~~wv£t£yw§{{~}wx~~~~}z|}~}}~~}}}|}}}}|}}~}}}~}~~}~~}}~w|{yyprsrqrqt¥rsziggipoqonhyzxso£cut:Hu
xtxWttttrqz|~{y|xy~|~~~~zx~}|}~~}~|}{||}~}~}|~~|}}~{z{{}|~~~~~~~~~~~}~~~~|{}{
z{|psq
trrqrtv¥y
ihgopponour{}tk¡dL1@?JJYD|uwt|zxw~zxsvt~|~~~~~~|~}~}||{{~}}~}|{}~}||~|{|zz~|}{~|}|}}}~~}~}~~~~~~}||||u{wzvwuq
srrqq
sv¨x~y~nlrspqmleez}utfuh}irhZ{
ux{
wtuf}{xyvw~}~~~~~~~~}~||~y}|z
z|~~~~|}}{|~{}z|{}x}z}y~yy~z}|zy~y~|~~~}~~{|}|}~|||}|~w
zxzvytusrt
q
qu¦v¦t¢ru§rpt¡nprmfky|x|ojm
onr
qcc|y{uytsva|~|ywpw~~~~~}}~}~}
{
|z~zzy{}{}|{{{}y~{}y|y|yx|wyw|xzxzx|xxx{y~~}~~~|~}}|~}~~~|}~{}x
{}z{pstsrtsvu¨svmv¦x¤npqonn`v|j¬lv\s
fq{y}|x
ZOOV]``]wzxxw~~~~}~}}}zy~~wwx~}}}}|{{~|~|}yy|y{z}||z~|}{}}}{}|~~~~~~~~~~~~{z~}}}}~}t
z}~~ptrsrtspij{hghr¥mqnnjedd°md¢\~bHFCGTZdb`\YY^xwt~~~~~yz{{~}~~~}{|}}zyx~x}yy{x{x|v~x~z|~{~z}~}~~~~|}y~|}}~x|||~rrqtr
qqgiizhegloonkmdak±ik¬`TPQPIJQXYXTTTWWVYtr~tst
~~xvuzy~}|~|~~~~~~~}}}|}}}~}}~}}~}~~~~~}~}}y
}}vuqrrqshkjy
ghhipqmmkbqi®ij¯]uU`]WOINOQLPOPUSTVYYfx|vvykkiihir~~{yz}~}~~}
~~}}~~~~~~}~~~xz|}|vttsuv
miihziiihpoqnmdm¢m£sfk[c`cf=HMMGKLPOQOQSX[n_usx{~~~~}|wz~}~~~~|zy~~~~vuuuvwuv~~~~~|}~~~uu~|w{q|||zj|}nyy{x
ix
hw
y
xvadmlk¡h[kfijUVTQOROQUVWU[\[X]f|tw~~|{||{|~}~~~~~~~~}}}~~~{~xxzpx
wy xv{nyvy¢vuxmzvv t¡qz|
ok~{iilnttrWRPPPSSWYTXXY^ao
~~~~}~}~~~~~||~}~w~}~~}}y
~|}}yljj|z}t]`]X[[XZ\]^a`c~~~~~~~~~}~~~}|~~}|}{|}|}}{{|~|{}|{|zz||sb```]^^_`Z`]ah}}}~~~|~~~~||~||||{z}}~~~~~~~}~~~~}~~~|}}|~}}ww
x
xx
sid`babbcgccaddh~}~~}~~~~~~yzz{~~~~~{~~|~~~~}~~~~~}}|||{||zxzxx
y
x
x
hilfhfhieel~|~~|~~~~}{}||~~}~}|~}}}{|z{{z{{{z{||}}}|}{|{z{zwy
zy
zw
y
z
xy
y
y
y
y
z
zw{x
y
x
xy
z{v
w
w
vv
u
tvttwwuqonmoo
w|~~~}~|}~~{z{~~~~}~}~}|~~|~}{~~|~~|}|~||~~|{|z|y{z{z{{{|x
z{z{{|yx
z{zy
y
{x
{zyyx
x
wvvutrtyz{yzw
s
vu
uy}|}}|~~~~}~~~~~~~~~~~~}|}~}~|{|~|}~~|}{|||~~{}}{{zzz{zzz{{zy
{y
z|yzz{zzzy
{zy
yyzyzzvywvtvsvu
yx
ut
ttut
u{}~}}}~~{~}~~~~~~~~~~}}}|~~}}}}}}|}~||~||||{z{z|{|{z{|zz{{{z{zyxzzz|y
zyzzy
{zz{z|zxyxx
xwxzvzwwvvut
xy}~~~~~~~}|}~~~~~~~~}~~}}~}}}}{}|||||}z}}||||||z{{{|{z{{zz
zz{{zy{zyzzzxzz
zz}z{{zzyyvtxxwwvwwvuvvx|~~~~}~z}~~~~~~~~~}~~}}~~~}{|}}{}|}||~}{{|}|{|z
{z|zz{zyzy
|x
z|zzy
yzz{wy
yzzxz{{{}}ywxuxxww
x
x
wwxxzz|~~~~~~~|~~~~~~}~~~~~~~~~~}}}}{||{{}{z{|}{~||{|||{zy
yz{zyzzz{zzzzy|z{x{z{xyz||||}{yyywwwxuzx
xwzyy{|}~}~~~~}{}~~~~~~}~~}~}~}|~}}}~{}|{}}|}|}}||{{{{{z{zyy}{yxy
y{{y{|y{zzy{z
zx
z
z||{||}||yyvwxwwxvz{xy|}~}}~~~}~z~~}~~~~~}~|~}}|}~|}~~|}}|}~{}}{{{|z|z{{z{z|x
z|{{|z{{{zz{zzyzzz{{}~{~}{|{yzzxyyyy{z{{}~}~~~}~~~~~}~~~}~~~~}~~}~~}~~}|~}~|||}}~}}}}}}{{|}|{|{{|{|z|z{z|{y|z{{{y{{z{z{|||||{}}{zyyzzzwyyz{}|}~~~~~{}~~~}~~}~~~~~}~}}}}}|||}}}}}~|}|}|z}||||{|{|z{|{{|{|y
zz{|{|z|z{z{|{}}}~|}~|zyyz{{{z||y|~}|~}~~~~~}|~}~~}}}~~}~{}~}{}~~}|||}~|||||||{|{||{z{|{{|zzy{|}{z{}|}}|~}}~~}||x{{|y|}|{~~{~~}~~~~~~~}~}~~~~~~}|}}~|}~|~|}}}|~{}||{{{z{{z|z}|{||z|{}{z}z}}}z}}}~}}~}}|{}{|z|||||{}~}~~~~~}~~~}}~~}~}|}~}~~}}}}}}}}|{|{||}z}{}||}}{{|z}{|||}|}}~}~~~|}~~||{|~}}}~~~}}~}~~~~~~~~~~~~|}|}||}{}}|~}}~}}}||{{{||}}~|}||{|{}}|}|}{}~}||~}~~}~|~|{|}{}}}~}}~~~~~~~~~}~~~~}~~}~~~}~}||}{|~}}|~}~||}{{|}}}|{}||}|}|}|{}|}|}||}|~}~~~~}}}|}||}}|~}~~~~~~~~~~~~}}}}}~~}~|~~~}}}||}|||||{||||{}}||{|{||~|||{~~~~}}}~|~|}}}~}~~|~~~~~~~~~~~~~}~~~~}~~}}}~|}{}z}}}~||}|}}|{||}}}|~~~~~}|~~}~~~}}~~~~~~~~}~~~|~}}~~}}|}~}|}}||z}~}~}|}}|}}|~}~}~~~~~}}~~}~}~~}}~~~~}~~|~~~~~~~~|}}~~~~}}~~}{~~~|~~~~}}}~|||~}}~}|~~~~~~~}~~~~~~~~~~~}~}~~~~~~}~~}}~}}|}}}~}~~|{}}~~~~}}|}|}}~~~~~~~~}}~~~~}~~}~~~~~~~~}~~~~}~~|~|~}}}~~}~~}}~~|}}}~~~~~~~|~~
\ No newline at end of file
diff --git a/examples/libva/libva_buffer_sharing/libva_buffer_sharing.cpp b/examples/libva/libva_buffer_sharing/libva_buffer_sharing.cpp
new file mode 100644
index 0000000..88084fb
--- /dev/null
+++ b/examples/libva/libva_buffer_sharing/libva_buffer_sharing.cpp
@@ -0,0 +1,465 @@
+/*
+ * Copyright (c) 2012, 2015 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <errno.h>
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <va/va.h>
+#include "va_display.h"
+
+#include <va/va_drmcommon.h>
+#include "utest_helper.hpp"
+
+#include <getopt.h> /* getopt_long() */
+
+typedef cl_mem (OCLCREATEIMAGEFROMLIBVAINTEL)(cl_context, const cl_libva_image *, cl_int *);
+OCLCREATEIMAGEFROMLIBVAINTEL *oclCreateImageFromLibvaIntel = NULL;
+
+const char *input_nv12;
+const char *output_nv12;
+int frame_size;
+int picture_width, picture_height;
+unsigned char *newImageBuffer;
+VADisplay va_dpy;
+cl_int cl_status;
+VAStatus va_status;
+bool putsurface=true;
+
+static const char short_options[] = "i:r:o:h";
+
+static const struct option
+long_options[] = {
+ { "input", required_argument, NULL, 'i' },
+ { "help", no_argument, NULL, 'h' },
+ { "resolution", required_argument, NULL, 'r' },
+ { "output", required_argument, NULL, 'o' },
+ { 0, 0, 0, 0 }
+};
+
+#define WIDTH_DEFAULT 256
+#define HEIGHT_DEFAULT 128
+
+#define CHECK_VASTATUS(va_status,func) \
+ if (va_status != VA_STATUS_SUCCESS) { \
+ fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n",va_status, __func__, func, __LINE__); \
+ exit(1); \
+ }
+
+#define CHECK_CLSTATUS(status,func) \
+ if (status != CL_SUCCESS) { \
+ fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n", status, __func__, func, __LINE__); \
+ exit(1); \
+ }
+
+static void usage(FILE *fp, int argc, char **argv)
+{
+ fprintf(fp,
+ "\n"
+ "This example aims to demostrate the usage of gpu buffer sharing between libva and Beignet.\n"
+ "The result will be shown on screen if you haven't specified -o option.\n"
+ "The input and output file are nv12 format.\n"
+ "Please use the following command to see these files:\n"
+ "gst-launch-1.0 filesrc location=file_name ! videoparse format=nv12 width=xxx height=xxx ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n"
+ "(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad, \n"
+ " gstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n"
+ "For more details, please read docs/howto/libva-buffer-sharing-howto.mdwn.\n"
+ "\nUsage: %s [options]\n\n"
+ "Options:\n"
+ "-i | --input=<file_name> Specify input nv12 file name like /home/xxx/in.nv12\n"
+ "-h | --help Print this message\n"
+ "-r | --resolution=<width,height> Set input resolution\n"
+ "-o | --output=<file_name> Specify input nv12 file name like /home/xxx/out.nv12\n"
+ "",
+ argv[0]);
+}
+
+static void analyse_args(int argc, char *argv[])
+{
+ input_nv12 = NULL;
+ picture_width = 0;
+ picture_height = 0;
+ output_nv12 = NULL;
+ putsurface = true;
+
+ int c, idx;
+ for (;;) {
+
+ c = getopt_long(argc, argv,
+ short_options, long_options, &idx);
+
+ if (-1 == c)
+ break;
+
+ switch (c) {
+ case 0: /* getopt_long() flag */
+ break;
+
+ case 'i':
+ input_nv12 = optarg;
+ break;
+
+ case '?':
+ case 'h':
+ usage(stdout, argc, argv);
+ exit(0);
+
+ case 'r':
+ sscanf(optarg, "%d,%d", &picture_width, &picture_height);
+ break;
+
+ case 'o':
+ output_nv12 = optarg;
+ putsurface = false;
+ break;
+
+ default:
+ usage(stderr, argc, argv);
+ exit(1);
+ }
+ }
+
+ if(!input_nv12){
+ input_nv12 = INPUT_NV12_DEFAULT;
+ }
+ if(picture_width == 0 && picture_height == 0){
+ picture_width = WIDTH_DEFAULT;
+ picture_height = HEIGHT_DEFAULT;
+ }
+ return;
+}
+
+
+static void initialize_va_ocl(){
+ int major_ver, minor_ver;
+
+ printf("\n***********************libva info: ***********************\n");
+ fflush(stdout);
+ va_dpy = va_open_display();
+ va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+ CHECK_VASTATUS(va_status, "vaInitialize");
+
+ //ocl initialization: basic & create kernel & get extension
+ printf("\n***********************OpenCL info: ***********************\n");
+ if ((cl_status = cl_test_init("runtime_mirror_effect.cl", "runtime_mirror_effect", SOURCE)) != 0){
+ fprintf(stderr, "cl_test_init error\n");
+ exit(1);
+ }
+
+#ifdef CL_VERSION_1_2
+ oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddressForPlatform(platform, "clCreateImageFromLibvaIntel");
+#else
+ oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddress("clCreateImageFromLibvaIntel");
+#endif
+ if(!oclCreateImageFromLibvaIntel){
+ fprintf(stderr, "Failed to get extension clCreateImageFromLibvaIntel\n");
+ exit(1);
+ }
+}
+
+static void upload_nv12_to_surface(FILE *nv12_fp, VASurfaceID surface_id)
+{
+ VAImage surface_image;
+ void *surface_p = NULL;
+ unsigned char *y_src, *u_src;
+ unsigned char *y_dst, *u_dst;
+ int y_size = picture_width * picture_height;
+ int row, col;
+ size_t n_items;
+
+ n_items = fread(newImageBuffer, frame_size, 1, nv12_fp);
+ if(n_items != 1){
+ fprintf(stderr, "Haven't read expected size data from file\n");
+ exit(1);
+ }
+
+ va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+ CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+ va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+ CHECK_VASTATUS(va_status,"vaMapBuffer");
+
+ y_src = newImageBuffer;
+ u_src = newImageBuffer + y_size; /* U offset for NV12 */
+
+ y_dst = (unsigned char *)surface_p + surface_image.offsets[0];
+ u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
+
+ /* Y plane */
+ for (row = 0; row < surface_image.height; row++) {
+ memcpy(y_dst, y_src, surface_image.width);
+ y_dst += surface_image.pitches[0];
+ y_src += picture_width;
+ }
+
+ assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
+ for (row = 0; row < surface_image.height / 2; row++) {
+ for (col = 0; col < surface_image.width / 2; col++) {
+ u_dst[col * 2] = u_src[col * 2];
+ u_dst[col * 2 + 1] = u_src[col * 2 + 1];
+ }
+ u_dst += surface_image.pitches[1];
+ u_src += picture_width;
+ }
+
+ vaUnmapBuffer(va_dpy, surface_image.buf);
+ vaDestroyImage(va_dpy, surface_image.image_id);
+}
+
+static void create_y_image_object_from_libva(VAImage *surface_image,
+ VABufferInfo *buf_info,
+ cl_mem *yio_p)
+{
+ cl_libva_image info_image;
+ info_image.bo_name = buf_info->handle;
+ info_image.offset = surface_image->offsets[0];
+ info_image.width = surface_image->width;
+ info_image.height = surface_image->height;
+ info_image.fmt.image_channel_order = CL_R;
+ info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT8;
+ info_image.row_pitch = surface_image->pitches[0];
+ *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
+ CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
+ printf("\nSuccessfully create ocl image object from y plane of VASurface...\n");
+}
+
+static void create_uv_image_object_from_libva(VAImage *surface_image,
+ VABufferInfo *buf_info,
+ cl_mem *yio_p)
+{
+ cl_libva_image info_image;
+ info_image.bo_name = buf_info->handle;
+ info_image.offset = surface_image->offsets[1];
+ info_image.width = surface_image->width / 2;
+ info_image.height = surface_image->height / 2;
+ info_image.fmt.image_channel_order = CL_R;
+ info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT16;
+ info_image.row_pitch = surface_image->pitches[1];
+ *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
+ CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
+ printf("\nSuccessfully create ocl image object from uv plane of VASurface...\n");
+}
+
+static void store_surface_to_nv12(VASurfaceID surface_id, FILE *nv12_fp)
+{
+ VAImage surface_image;
+ void *surface_p = NULL;
+ unsigned char *y_src, *u_src;
+ unsigned char *y_dst, *u_dst;
+ int y_size = picture_width * picture_height;
+ int row, col;
+
+ va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+ CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+ va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+ CHECK_VASTATUS(va_status,"vaMapBuffer");
+
+ y_src = (unsigned char *)surface_p + surface_image.offsets[0];
+ u_src = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
+
+ y_dst = newImageBuffer;
+ u_dst = newImageBuffer + y_size; /* U offset for NV12 */
+
+ /* Y plane */
+ for (row = 0; row < surface_image.height; row++) {
+ memcpy(y_dst, y_src, surface_image.width);
+ y_src += surface_image.pitches[0];
+ y_dst += picture_width;
+ }
+
+ assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
+ for (row = 0; row < surface_image.height / 2; row++) {
+ for (col = 0; col < surface_image.width / 2; col++) {
+ u_dst[col * 2] = u_src[col * 2];
+ u_dst[col * 2 + 1] = u_src[col * 2 + 1];
+ }
+ u_src += surface_image.pitches[1];
+ u_dst += picture_width;
+ }
+
+ fwrite(newImageBuffer, frame_size, 1, nv12_fp);
+
+ vaUnmapBuffer(va_dpy, surface_image.buf);
+ vaDestroyImage(va_dpy, surface_image.image_id);
+}
+
+static void load_process_store_nv12()
+{
+ frame_size = picture_width * picture_height + ((picture_width * picture_height) >> 1) ;
+ newImageBuffer = (unsigned char *)malloc(frame_size);
+
+ VASurfaceID src_surface_id;
+ VASurfaceAttrib forcc;
+ forcc.type =VASurfaceAttribPixelFormat;
+ forcc.flags=VA_SURFACE_ATTRIB_SETTABLE;
+ forcc.value.type=VAGenericValueTypeInteger;
+ forcc.value.value.i = VA_FOURCC_NV12;
+ va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420,
+ picture_width, picture_height,
+ &src_surface_id, 1, &forcc, 1);
+ CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+ //load
+ FILE *in_nv12_fp;
+ in_nv12_fp = fopen(input_nv12, "rb");
+ if (in_nv12_fp == NULL){
+ fprintf(stderr, "Can't open input nv12 file\n");
+ exit(1);
+ }
+ fseek(in_nv12_fp, 0l, SEEK_END);
+ off_t file_size = ftell(in_nv12_fp);
+
+ if ((file_size < frame_size) || (file_size % frame_size) ) {
+ fclose(in_nv12_fp);
+ fprintf(stderr, "The nv12 file's size is not correct\n");
+ exit(1);
+ }
+ fseek(in_nv12_fp, 0l, SEEK_SET);
+ upload_nv12_to_surface(in_nv12_fp, src_surface_id);
+ fclose(in_nv12_fp);
+ printf("\nSuccessfully load source nv12 file(\"%s\") to VASurface...\n", input_nv12);
+
+
+ //create two corresponding ocl image objects from source VASurface
+ VAImage src_surface_image;
+ va_status = vaDeriveImage(va_dpy, src_surface_id, &src_surface_image);
+ CHECK_VASTATUS(va_status,"vaDeriveImage");
+ VABufferInfo buf_info;
+ buf_info.mem_type = VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM;
+ va_status = vaAcquireBufferHandle(va_dpy, src_surface_image.buf, &buf_info);
+ CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
+ cl_mem src_y, src_uv;
+ create_y_image_object_from_libva(&src_surface_image, &buf_info, &src_y);
+ OCL_CALL (clSetKernelArg, kernel, 0, sizeof(cl_mem), &src_y);
+
+ create_uv_image_object_from_libva(&src_surface_image, &buf_info, &src_uv);
+ OCL_CALL (clSetKernelArg, kernel, 1, sizeof(cl_mem), &src_uv);
+
+
+ //create one target VASurface & create corresponding target ocl image object from it
+ VASurfaceID dst_surface_id;
+ va_status = vaCreateSurfaces(va_dpy,VA_RT_FORMAT_YUV420,
+ picture_width,picture_height,
+ &dst_surface_id, 1, &forcc, 1);
+ CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+ VAImage dst_surface_image;
+ va_status = vaDeriveImage(va_dpy, dst_surface_id, &dst_surface_image);
+ CHECK_VASTATUS(va_status,"vaDeriveImage");
+ va_status = vaAcquireBufferHandle(va_dpy, dst_surface_image.buf, &buf_info);
+ CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
+ cl_mem dst_y, dst_uv;
+ create_y_image_object_from_libva(&dst_surface_image, &buf_info, &dst_y);
+ OCL_CALL (clSetKernelArg, kernel, 2, sizeof(cl_mem), &dst_y);
+ create_uv_image_object_from_libva(&dst_surface_image, &buf_info, &dst_uv);
+ OCL_CALL (clSetKernelArg, kernel, 3, sizeof(cl_mem), &dst_uv);
+ OCL_CALL (clSetKernelArg, kernel, 4, sizeof(int), &picture_height);
+
+
+ size_t global_size[2];
+ global_size[0] = picture_width;
+ global_size[1] = picture_height;
+ OCL_CALL (clEnqueueNDRangeKernel, queue, kernel, 2, NULL,
+ global_size, NULL, 0, NULL, NULL);
+ OCL_CALL (clFinish, queue);
+ printf("\nSuccessfully use ocl to do processing...\n");
+
+ va_status = vaReleaseBufferHandle(va_dpy, src_surface_image.buf);
+ CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
+ va_status = vaReleaseBufferHandle(va_dpy, dst_surface_image.buf);
+ CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
+
+ OCL_CALL (clReleaseMemObject, src_y);
+ OCL_CALL (clReleaseMemObject, src_uv);
+ OCL_CALL (clReleaseMemObject, dst_y);
+ OCL_CALL (clReleaseMemObject, dst_uv);
+ vaDestroyImage(va_dpy, src_surface_image.image_id);
+ vaDestroyImage(va_dpy, dst_surface_image.image_id);
+ cl_kernel_destroy();
+ cl_ocl_destroy();
+
+
+ if (putsurface) {
+ VARectangle src_rect, dst_rect;
+
+ src_rect.x = 0;
+ src_rect.y = 0;
+ src_rect.width = picture_width;
+ src_rect.height = picture_height;
+ dst_rect = src_rect;
+
+ //XXX There is a bug of X server which will cause va_put_surface showing
+ //incorrect result. So call va_put_surface twice times to workaround this
+ //bug.
+ va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
+ va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
+ CHECK_VASTATUS(va_status, "vaPutSurface");
+ printf("press any key to exit\n");
+ getchar();
+ }
+ else{
+ //store
+ FILE *out_nv12_fp;
+ out_nv12_fp = fopen(output_nv12,"wb");
+ if ( out_nv12_fp == NULL){
+ fprintf(stderr, "Can't open output nv12 file\n");
+ exit(1);
+ }
+ store_surface_to_nv12(dst_surface_id, out_nv12_fp);
+ fclose(out_nv12_fp);
+ printf("\nSuccessfully store VASurface to dst nv12 file(\"%s\")...\n", output_nv12);
+ printf("\nNote: The input and output file are nv12 format.\n");
+ printf("Please use the following command to see the result:\n");
+ printf("gst-launch-1.0 filesrc location=%s ! videoparse format=nv12 width=%d height=%d ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n", output_nv12, picture_width, picture_height);
+ printf("(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad,\ngstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n");
+ }
+
+ //release resources
+ vaDestroySurfaces(va_dpy,&src_surface_id,1);
+ vaDestroySurfaces(va_dpy,&dst_surface_id,1);
+
+ vaTerminate(va_dpy);
+ va_close_display(va_dpy);
+}
+
+
+int main(int argc, char *argv[])
+{
+ analyse_args(argc, argv);
+
+ initialize_va_ocl();
+
+ load_process_store_nv12();
+
+ printf("\nExample run successfully!\n");
+
+ return 0;
+}
diff --git a/examples/libva/thirdparty/libva b/examples/libva/thirdparty/libva
new file mode 160000
index 0000000..f974172
--- /dev/null
+++ b/examples/libva/thirdparty/libva
@@ -0,0 +1 @@
+Subproject commit f9741725839ea144e9a6a1827f74503ee39946c3
diff --git a/examples/libva_buffer_sharing/256_128.nv12 b/examples/libva_buffer_sharing/256_128.nv12
deleted file mode 100644
index 230f4cf..0000000
--- a/examples/libva_buffer_sharing/256_128.nv12
+++ /dev/null
@@ -1 +0,0 @@
-FDFGGGGIIIJHKLKLNLLOMOOOPRA)BNQPRRRSRRUTVXVTUVXWWYVXWXWYXXZYZYYYZZ[[[\[ZZ\[Z\\^]]]]]^]^^^^^____`_`_`_```a``acaaacbcbdcabdbccbdcdcdcadcdbccdbccdbdddccddcdcdabcbcbcbccbbcaabdcbbLhiututtuuusqomknopsqrstuuututsrqoponnmlkkkjj°vWY[ZZZZZ[YZYXXYWWWWX[YSg_[CGGEHGHHIJHILJLLLNNMMOPOPO:(EPPRQRSSSTUTTTVWVVVVXWXVYXXXYXYYZYZZZZY[[Z[Z[[]\[[[]\\^]]^_]__^^^____a``aabaabababbaabaabcacbbabbcccddddcbcddbdcddccdddcdccdcdbdbccbcdcccbbcbcbbdb`Lhiuuuurqopqrsqtttuuuutvsrrqpoonmmlijiihfddb`²
wXX[Z[ZYZYZYXXXXXWWWWWYYQ_FFDFHGFGIJIIHHLJLLLLOOOOPP3+HOQPRRQSTSTUUUVTVUWXXWWYYYYYYXXYYYZZ[Z[[[[Z[[Z[\[^][]^]^]_^^^]^]__^```_aa``aaababccccbdccdcccdccddddddddecdcdddccdcddddcddedccdcdcddccdeccbbabbcddaKggqsttuvwvwxxwxvvssrqponommlkkjjhgfc`]ZUROLKx·wYX[[[ZZZYYYXYXXXXXWVWVXVeZECFGFGFHIHIIIJJKMLMNMOONOP,-KOQOQRSRUSUUUVWVVWXUWXVXYYYYXYYXXZYZZ[ZZZ[[\[[[[\\Z\]]]\^^_]_^^^___a_`a`a``baab`cbbbbcbbcdccccacddcbccdddddcddddddddddcddddedbdcdbcddcccbbbbabccccaIghwyy{yyzyxvussrqpopnnmmmiihfda^YURNLJJMOQTUw½yZU[\\ZZZYZYXYXXWWVVUVVVUQOCCEFEGEGHHIJIIJJKLLMOOOPPL%/KNPQQRRSSTTRUUVVXVVVWWYWYYYZYYZYZ[ZZ[Z[ZZ[Z[[\Z\\^]]\]^^]^]__^_______a`_a`bb_cabacbccbcccbcbcdcdddccbddcddddddddeddddddddddcddcdcccdcdbcababcbbbbdbKfhy|zyxvutrsqppnommljihec_[WRNKKNORUUVUTTTVVvÃ}~
z\UZ[Z\ZZZZZYXXXWWWUVVTTUSOCDDEGFFFGIHJHIJJKLLLMNONOL"0LPQQRSSSSUUTWTUVWVWWVWYYWYVXYYYYYZYYZZ[[Z\[\[\\\\\]\\^]^]^^]______``___`a`aa`cbcccbcbbbbdccdcddddbedddddddddddddddedefeeddedddcdccdddddddcdbbbbbcccMefvwtttrqpppnmljifc`[WSPLNNQTVWVVTUVWVWYZZZ[uÀ~}{^SZ[[Z[ZZZYXYWXWWVWVVVTTTSCBDFDEEDFEHHIJIJLKLNLNNMQL 4NOQPRRSTSSUUUWUVVUVXWWXXYXYYYYZXZZZZY[[[Z[[[[\[\[\]]__]^^^^]^^]___``b`_babb_`bcbcbccbdbcdddcccdddddedeedddddeedeeeeeeeedeeddddcddddcdddfdccdccbcbcbJefrsrrqooljfe`\XSPNNPTWYZXUWVWXYYZ[[\\\\^^^_qÄ~}}|`S[[Z[ZZZZZZYXXWXVVWUUTUTTBBDDCFFHGFIHHHIKJKJKMMNNNF!5LOOQSRSSTTTTWRUWUVVWWWYXXYZYYZYZYYZ[ZZ[[[[[\\\[\\]^^^^]`____^__`_``_```b``abbcdbcbccbccddddddddcdedddeddeefeefffeegeddgdedddefdfcddddedddcddcbcccdcLdfoonlhc[SSRONQVY[ZYYXXYYZZ[]\]^^^^^^_____``nÁ~}}{bO\ZZ[ZZZZZYYYXWXWSVUUTTTSEBBCDFEIFGFGIGIJJKJJHKMMMF$:NNPPRSRSSTUTTVUVWWWWVXWYYXYYYZYX[Z[Z[ZZ[[[[^[]\\]\\]_^^^_^\___]__a_aa`ababbbbabcbbccbbddcdcdcddddeddddeddfeeefedeffedfeefeeededdddddddddccdddcddcdcOcdb^YUQNPSZ]][Z\[Y\]]_^__`____``a`_`b_``baaci½}}}}dT[[Z\[ZZZYZYYXXXWWVTWfVTT56<L>&17 at CEGHHGIIJJKKLNNMA&>NONQRSRSTTTTUUUVWTWXXVXYXXZYZZZYZZ[[ZYZ[[[Z]\[]\\]]]^_`__^___^_``_```aaaabbbaccbccbddcddcdddeddddededeeeeeefeeeefdgefgedeffeedeeeedededdddcdcccccddOcdVV[aa]VQ\^^^__aabb`aabaaabbabbbbbcacaccbcdkº ~}}|gTZ\\[[[Z[ZYYXYXXVWVQcfbUT *+%,: "#"#&)-149 at CHKKLNL=&?MMPOOQRRSSSSTTUVVWVWXWYYYZYYZZZYZYZZZ[[Z[\Z\[[]]^]^]]]]^^`]____^`````aabbbbcbbbcccccddddceddedddddddeefefeeeddegeefefffefffeeedfeddeeddeedddcdddcddQcda`^__`\Tbddedfcedddcddddcddcdcddddddddddeej³£}{~|iU[[\\\[Z[ZZYXYYYXWWM\EWUU"%.$"( !"!"#""#$$&$%&+/373',BLOPOPQPRRRTTTUUUVWVXWWYXYXXYYYZZ[\Z[\Z[\[\\[[\]]]^\^^^^`]_______````aaa`cbccadccbcccddddddedddddcdfeegeefeeefegfgfffffefffeeeffefffdedeeddddddecccdR`eefhhhhcYeghffffggfeeeffgedededeedeefefeffgl¬¥~{|}zjV[\]]\][[ZZYZYYXXXVKQCJ_T" !""$"" ""#"#$$%$$$%$$%%&'''*.26;AHPRRRSSRTVWVUWVY[XZYYZXZZZZZ[[[[Z[[\]][\]]]^^]^^^___^__`_a_a``ab`aabbbcbccdcddbedddgdedeeddedeeefffgffgdffegggegfggfghffffeeededddeedddddcdccQ`dkklllki\ijjjiiiiiiihghihhghggggghggghhhiigl¨¥
~{|}{kXZ]^\\\\[ZYZYYXYXWWKYHEbV"!""%$""""""##$$%$$$$$$%%$&&%%&&'(()+),28<AJPQWVVXXWXXYYZYXZZZ[\[[\Z]]Z\\]\]^]^]_`]__^^__`_``a^`baabbbcddcccccbcbddeeedddededeffeeefgfeffgggfghghgggggghfgfgffffedeceeefededcdddSadmnoonnm_imllkklklkijjjjijihiiiihihhiiiijjjm¡©
~|||{lYZ\\^\\\\[Z[ZYXYXWWL\]@VV+*-))(&&%%$$%$$#$$$$%&%%%%&&%&&&&&&'(''(()*+,+.4EVXXWYYYZXZY[ZZ[[[Z]\[[[[\\]]]]_^\^_^___`````__`aa`bbcccccbccccccddddeefddfeeffeeebfffgggffgghhhggggggffgghigfffieeefefefeeeccddV^dmrqqqpqclnonnnlmmmllkllkkkljjjjjjklkkkllllm°|z{zl[Z]]]]]\\[[[ZZYYYVXOTuKkY+++++*+++*++-++*+)''&%&&%&&&&&&'''&(()'))())+)++5VYXXY[YZYZ[ZZ[ZZ\[\\\\[\[]^\\^^^__^^____``a``a`a``aaccbbbdbddccdddddfeeeeeeefefefefhgfegffgghhhggghfgihehhggfggfffffeefeeeeeeedV^dotstsssiopqqppponponmmmmmmklmllllmlmmmmmmop®
|zzzm[Z]^]^\]\\[\ZYZYYXVQMsnx\+,++++,,,,,-,,...-.....-.--+*)(('((((())))(*)**+3VWXYZYYZZYZZZZZY[Z[Z[[[\]\^^_]^_^^_____``__a_a``aabaabcddcdccddddedfeeeddefffefeeggfggdghggghghhhhhghhiighggfgehfhggdffeeeeeeddX`dqwxvuvulttsrsrqqqrqpoonnnnonlnnnmononnmoopq²{yyzn]Y]^\^\]]]\[[ZZYYXXSHrz|[+*+++*+,+,----..//./.0//0//11/0010/./-,+++))*+++/PWYXXYZZZZZ[[[Z[\Z\]Y\\]]^^^^^^_^__^___^_`aba```abacbcccdbbcdddddceededdedeeffffffgefffhhhhhgghhhhhghihhhhhhgghghgggfgffedfeeefX^eqyzyxxxjswvuussrstrqqqqrrppoooonopppprrwy}¶|zy{o\W^]]]]\^Z\\[]ZZXYXUI^}|Y+++,,,,,-,,-.-././/1/00/0101111212223433332211/-/KYYXXXZZYY\ZZ[Z\\\]Z\[]]]]]]^^]__^__^`_`_a`aa``baabcbcbccccbddeedddeegeefffefffheeegfghhgfhhhhihhihhhhhhhiehhgggghhggffffeddeee[_dr}||zzzpvwxxvuvtuuutssrsrrrprqquy}µ
}yyzoZW^_]]^]^]\^[[[[ZXXXNPz|Z+++,,-+-,....-../00///0011112313343344445454653,.GWXYXXZZ[[\[]^^]]^\^^_^^^___^^^`__``__^_aa`a`abbaabcabcddcddddedddeecdffedffffffhffghhihhhhhihiiiiiiihigjgiiggihhhhfggfffeedeeeZZdr~}}||oxyzyyvxwvvwvvtttssssrss´}zxyp[W^]^^]]^]]\\[Z[ZYXXSRwxW++++,,,,,,...././000010011221322445446555566665..AYX[DtÃÔÕª¢¢§°ÁÊƦdJ\b`_____````ba``cb`b`cbcbccdccddcdedfeeeeeggefgeeegfgigghghgihihiiijiiiiiihhhhhiighihgggfgfhefff[Yds}ku{|{{zyxxxxxvvtvtvutttvµ
~xxyq[U]_]_^]]]^\\\[\[YYYWSjjS,,,+,,-..-.-.-.0/00/0102121224333435555555566760-º¤~~~~
Ïó¬K_``a`aa`aaababcccccbcdeeeddddefeefefffefgggghggghhihifiiijijiiiiiihiiiighihihhhggihggggedf\Xdrju}~}~|zyzzyzxxwuxvwwvuv²~ywyp\T^]^^^]^]]\\\[[[ZZYYVSKS+++++,,.--..//000/0011112323333444345567866779¨}{ywwwvvvwy{|{
ÓXa``_`aaaaabbbbccdccddddgfceefffffefgghgghigghiiiihiiiihiiijiijjjiijjhhijihhhhihihggfgff]Wcr
ou~~~||{zz{yxvrqljedhl»Ey}yvwp]T_]^_^^]]]]]\\[ZZZYYXROU,+,,,---,...//0//0101222222334344445665778878|~{yxvutwuuuxxyz{|}¢b`abaaaabbcdbcccccdddddeeedefgffgegegfgghgihhhihhiiijjjijjjiijijiiihiijhiihihhhgggffff]Vbr
pv}zxrmgefhjknoqsuwwxj_ at yyvvq^R__^^]^^]]]\\[[[ZZYZXXWV+,-,,---.../0///00021212222344545655579787987
}v}|xwvvxuuvxxxx{|
r`aaaababbcccbcccddddeedeeefeefffgfehhgiihhhgiiiiihijiijikkjkikjjijijkijijiihighiggggf_Vcqzkdgddggikloqruuvxxzyz{x|iQM}yuuq_S^___^^^^^]]][\\[ZYYYYXX+,,,-,-.-....1//11112233424354545777676777898gy}zxxutwuuwuyxz|}
a``aa`abbbaccbcdddddeedfeeefdfhgghgighhhhhhiikhhiijijkjiijkikkkkjjjlijjihiiiiiiihghff_Tbdhffghhijkmnpopqstuvwxyyyz{||||k4eztuq_R^____^]]]]\\[\\[ZYYYYXW+,,-,--......1001111333333335355567798767798:|}w|zxvvuwuuuwyyz{}Nkva_`aa`aabbdbdcdccddddeefegfefgggffggghgghhihjjijjjjkjjjjijkjkkkkkkjjjkjjiijjijigighgh_Sbceikkllmmononppprstvyyz{{|}~}}}¬g[;qusp`S_`_`_]_^]^]][\[ZXYYYXWW,,,-.../.../0/002113233443545565777897778798:}y{yyvuuvuuuvxyz|}
nmynkf]ma`abaaabb`bbcbcddddedddffgffdfgggghggiighhhihhihjkjjkkkkkkkkkkjiljkjkkjjjkiiiiijhfhgeaPbbbfhjlmlmmnooppoqsuvyy{}}~§cNGptqaT^``a__^^^\\\]\\[ZZYXYXW,,,--..//..//11111123444544456657678887788:8<zx|zxvuuuuvwvyyz|}
r~n{+.6ma`aabababcacdcddbddeeeeffefggfheggghhhhiihhiiijhjkjjjjjkkkkkkklklkjkkhjkjjjjjijiihhhi`Rbaacdfhklmnnooqprstvxy{}£ib7VrqbT_```___^^^]]][Z[ZZZYXWX,,--.-../.0000112333345445556666678898887898;
wzzywvvvuuuxwyzz|~
>W
q]Z,.30nk`aaa`aabacbbdcddededddefdefdegggffhighhhiiiiijhiijjjjjlljlkkjlllklllkkkkkkjjijiiihiihbQa`aabdffhjmooopqqstwy{}{g£w`X=aqcV`aa```__^^^]\][[ZZYXXXX,,-.-..///1/111121334364455656678889:9:998::8~yzzxwvtwuvuvxyz{}
Q|iva<-.4:faa`aa`baaccbbddddddeeeeedfefeggfgghiiihhghihijikjjjkkjjjlklkklllllljlllkljkjjjjijihhh`ObaadbddefhjlmnoqqstwzsixpaHIkfZ_caaa`_`_^_]]Z[\ZZYXYWW--...////0/0112222344555565677788989:989899;<v
sz{ywxuwuuvwxyyz}~;Sj]n2,13@{fa`aabbbacabbccdcedfdddeffgfehfffghigigihijjhjjkjkjjcl^himkllklklllklkklllkkkiljijiihhcOa`aaccdeffhilmpvyy~~zz~lQbrgxvf\5Se[`bbabaa`_^^^^\\[ZZZYXXX-../..0000011222333545566566678999::::999:;:=wr
fyzyxvvvvvvwxxz{}
tv{qv}:G.SS>d`aa_a`acccabcccceg
rsuritnigigbb_`^Z]\XYYYWXUSZYUVWUURMPow
nllllllmklklmlmkkljjiiiiicLaa`bddfeffghh~Äű©º¾½½ÂE_nqcXxws_S;TZ`baabaaa``^^^]\\[ZZYXXW-2..00//01/11223334366666687779::::;;989::::@sxx|~gxzxvuvuvuvxxzx{|
L0=QPso0/4>e`aa`aababacd|rOIF=OLMOONNOOQPPQQQQPQQTRQRPSRQRQPOQOQONPMQXcmyrmmmnmmlllllljkjjijjiicMaa_bddffgfe_Uqtmnfgi_]WQG3 at atdJ{wutj]@>V`ccbbaaaa`__^]]\[[[ZYXX/.../0/001013334454465557878898::;:;;:;::<;;@quvxvoonoqrsstuwwyyz{y~|ymYeErxxH7:y
_`````baan¥L5--P²¶iVNLNOOONORPONUG at HHHKEDGMRRVc\^dam`fT];=ADHMUcymlmklimmlkkjjjkkjjifMbbc`cfggfXI>7>FAAF;313,)).)'5^rcFwvtsp`Y2B_ccccbaaa`__^\]\][[YYXW./.0000/11212243464667677879899::;;;;;;:;<;<<suwxvonjjiijkmortvwy{{z{{{zyvwxywibkt|zJ]Te_`_`ahiJª·¨sqlyDS ¢¢¢¤¤¤¤¥¥¦¦¥¤¦¦¦¥¤¤¤£¤¢£¢¡U[eiI:><BXnmlmllmllllljjjijjeNab`]adghge_VHD-(',*()((-CV<,5]qdFy¢£wrrql`O5Rcdcbbaa`__^__]^][[[ZXY/..00/0001223334656768787999:::;;;;<;;<<<;;<@rwwxupmjighiiiijlmpswuqijuxyy{|~c_ayEqtc```abYHLkggvG at I¡{uzIHI||{^afnmmmmlmlmmjjljjjigLab][^bdffbbge`<**@=6310Eim[=;\oeE´¹²£vsrpof\67adedcbba``__^^]][[[YYY.//0111101134455667789879:99:;;:<<<<=<;;=<==>rwxzxppSfidnoonmoqvxxk>--y
}|~ysgba```a[JPhfgtDA at BiklkkQSRRRjhiiiDBACGiiiiiPQQRWqrqyFIH~||^`_}|rmmmmnmmmmlkkjjljieOaaa\\bedbbfhhpY+-QG:654BghM67WhdTÂÊÎÎÍ̦vronmj]T4Adddcca_a`a__^_]\[ZZXY./101211123334585878889:99::;;;;;==<==<==>>?9{q{aqiYY^jlnstvx{zwE))-w
~
c``__`ZJQgggqDA at DifgggPQOQPgffggEA?@FhhfhhRQQSXooqxFHI||]``}}nmmmmmlmllllkkjjjiePag|pvq~gfgmncNWhaY[adinlQAFOPLM_ÀÏËÎ̪
{tronmkc[F5Vdddcaba```_`]][[[ZXY//2121112334656788899:::;;;;<;=<<=>=>>?>>>??;sk{f.^4-epsuvvxz|{zs[Agaxb`_```XKO
gffoHIIFhggffRRQTQhfgghDBADHffgfgQRTUXnoqxXHH|}da`}}xmnnmllmmmllklkkjkfLbg
|smlflihgggdccabc^J?<>@CEGAJ|¡o]XUOiqsqpnlkcZY06bedccbba``__^]][\[ZZ/012331233556677888;::;;<<<===>?>>=?????>?@@9Jsyxtoa4*5lsuuvxyy{|}}wH/*7``a_abYLOL>UN66558lihiZ555559liiCQ44444ShjSWQ3564FzHHQhy{d`_~|ummmnmmlnmllkklkjkfPbafb`[YX\\]_adginnpqtstrjA559@?C?:6@?=31/+3?BcqtqonmkcW[Q3Idedebcaaa`_^^^\[[ZY100232334467677899::;;<<====>????@@@A@@@A at AA:*wwvtad4(:Mclqtvxz{}~~zH,-r
}w}aa`c`aF<I
?_zE<^dZVWXO5RjH9[UUVYF6bj5>[VSU[44nX6=cXZb:8K[90;:j_i:3|pnnlmollllllljjjifPabfhieagifeb_\YWRQKIFDB??9217;><:529>M311+/7;\jtpnnmkdWY\;5`cdccbaa```_^\\\[ZZ/01244344466779::;:;;>>==?>??@@@A?AABAACABBB<'w|}k+]jllgV+Kmswzz|~|ulrL}
wmiv``_`a`Z[Fy6fjkgk\lkM=ASWX5~YW\I9DWUZ3PZV\FANYUM;3YWaUU_XfL6`a`f8a:pl]mnmnmnmmllllkkjiifOa^IFC?><9754321001012112874661001024=U756/-13?XqpmmlkdV^\W2>eddcbac`___^^\[[[Z213344456678989:;;<==><>>@?@AAAABABCBCBBCCDC:"zlWwyyxutspc(bty{}}T+*U
zmhek_`ba`aBF^iC at A>j<88847T5569766Y~637873:b\648743b@==Ycm_lhkmnmmllmmlmlllkkjieM`\;43554442101121033434472042-,-////8G8651-211KqpmmkjdX_d]H3Reddcbbb`__^[]\\Z[223445576789::;;=<==>?@@?AAABCBCCCDEDDCEDDED;#~R}}|zywxxvsm9]tz}s1-~
yLx}rhedj__`aaa?:4>BB=ol¥;:8775W6567765rS/5686745988852:?=;|39=`mmlnnnmmllllllkjjfOa_PLJGFCEF8.02233344544;C7122/-/1.-.6M9662-430LpnllkjcW_i_Y39bedccbaa`_^]]\[[Z3444566778::;;<===?>?@AAABBCDDDDEDEFEGGFFFFE<(x2|~|zxwwwwun0gw}
(.a
xmfdcja`aa`a=<YTiquxedxiab``__^_^^b`Cb``__`b_fdfiu
~vT959V=;almmmnlnmlmllllkkigQ`qÏÍÆÀ¹¬¦v614554555768JiAC?83461.9[Y9864/440KomlkkjcX_if]P2Efcdcbba__^\\]\[Z44466677::;;<==>??@@BBABCCDEFFGGHFGGGHHGGHHH=%zj}yxwxwxxul(pz}vUTzrjecbk```_aasGVLMQ]PRRZZ¡]]^a^^]\]\]^6]]^]^]^fbe_^
INdGHaNNMOSglllmmmmlkllmnnkmfPazøúùùùøöïÑF4677678689;Af_f\TRKA9Q|]<:950562LomlkkicY^iha[<4Yeedbb`__^^^]\[Y45667889:;==>>>?AABBCEDDEFGGHIHHIIHHJJIIJIJJ=%w~
}}{ywuquwxt]Vx}
..||wmheebn_`_`aasHIZSNXQ[UU]£
_]b]e^af^\\^6]]]]_aaa_^_`
MMO]IbLJMKAtlllllmllmls¾ÀÅÔÕuPbmõûûúúùøóØE698989::::;=XtrPToR=;;92753MomkjijcZ^ijg[U0;bddcbaabd]^^\\[556789::<=<?>?AAABCEEFFHHHHJJJJKKKJKMLKKKLLK?&-
mt}}{yuU<_vywr&s}zfgtrkgedbn``_`a`nJLOLLZPQV\Wq\_[^_^]^]]]7^]]^^]``d^a
GKMNNcLPQNVslllklmmos£Ê¼©ÎÙ½RbxõúúúùöôðÕG8;:;;;<<===?GprPOF=>?;3:55MokkjjjcY`jiid\I2Nddcb``de^^[\[Z47779::<<>>@A at BBDEFHHIHJJIJLLKMMNMMMNNMNMNNM@28*j}|{zu38rxxyt6l}
_/lmihdc`h_aa_``mJLNKN[TSW]Y_c]c`c^_^]_7^^]]_d_i_`_
LXJMcLKLX
mklknlsÌ»¡¬¿¼¹°±¼WbpóúùøøöóïÔD:>=AKQLMDCA at Dy|d\UPNW[RHA>A@<4<39NnljjiicZ_kiii_X/8bddcablf^]][\[78799;<=>??ABCCCFFHIIJKKLLNNNOOOPPPQORPPRPPP at Ga
i||{ywsrwyyyv_bz
wgnhWcb`[e`_`_`amFGHOM\QZQS|l`cb^_a^]]^5\\^^bb^_`fy
WKGR`LRMLgkp»vmk©Ç Xqóùù÷÷ôñîÕG:?OP_efj^cYTR[_QB@@@ACFGGHEFJNe`;8KpljiiibZ`kkkjh]O2Abccfwk]]\]\Z889:;<=?@AACCDFFHHJJLMMNNOPPQRRRSSSSTTSRSSSR at kq~|{wwwxxxyywhIpvwx{}
yslc\_YXR\_`````l^MLQR\\WZ\¡^ab]UZa]]_6___dcbcde`
MQRVaNYO[r´Å¿lhiii¡»°¨¹²zpóø÷öôóñîÔB;@FmQbTP\`OgjOC>>>==?ABBACBBH_£ANnkjiihd]`llkkjcZ95Xchuzf]\\[[9:;;==?@BBEEFGHIKKMNOQQQSSTTUUUUVWXWWWWVWUVTBrx
zneiotxxzzzxl>koqrruvwxyzyxvsnhbXT<:DLS_`__``hkEMIM\NOeV~t_c_Qcf[__8^]_^_`e`_|
DLMK`NKQ^ÏÊĽ
u§¨«ª¸µ¨«©|eoò÷öôóòïíÑW`TQdZLb]NBX
ym?>>=;=?@CWdJmllihhb]alnllkk^S/=j|r_\[[\:;<<>?@ABDEHHIKLMNPPSSTTVWWXXYYYZZZYZ[YYYXYWAtz
nrxwuoVtxyyzxk at loqqstuuvxywtsold`Y>:@BDO______knONPL[PVNOXGCNMfa]]7_^__d`^_f
Z]^`JXLZ¹Á½²°µ±§µ´Äº«gs}èóòóñðîëÊG28CGDRyaIBVx@?>?>>>>@Rt
fYmkjiiid`annnmnlg\B7[~~}m\VY_;=>>?AACEFHIKLNOQRSTUWXYYZ\\\\]]]]]]^^]]]]\\Vuurz{zxtlVuyyzymNloostuvuvxwutrojda^YXTSNW__^`_`if?WNOZQWPJMDKIHbW`8_____e]`
s\~PcPNK¹ÅÇÁ·¨¢§¸À½Ë©ZX[^dfimovnzI:?LWJs
sQb
|y{wrnd^jxf`mkhhhgdacnoponmlaV.=}}}^e{=>>@ADDEFIJLNOQQTTXYYZ\]^^_``_aaaaaacbb`a`_^hvg;rwwsk4:vyzzvW]npqruwvwxyxvtroiea`][YVRW^___^ZjI;GbKXOMP]MCDtFcH_^7_^_``__
VdfpkSNPÖʼ¥ «¾ÅÆÆÈ«¤¦SRRLKLLKKIKKYJTDYab~zWY~|{z{vwtmX\liihhgdedoqqrpoooZJ6Q|ywx
¡¢ >?ABCDFHIKNOPSTUYY[\^``abddfeeffffffefefcccbewF+,IU<,+fv{zzr$forqrutvxxyyxurpjfcb`_^\WK__VKLHl=:F?MZNSeEKQHTEKZ9`]^_ga
qcgmdOV^Õ©¥½¼¶¯ª¨¤©µTROIIKFC>>GHOJ`jdgjw}o=Zc^cihkehhda^[S>HljfggeegdpqsrrrsqX4<ky¬¶¾«=ACCEGHJLNPRUVXY[]_`cceehhijjjkkkkkjkijihgggWx1r)))*9itxyzwi=lrrsuuxyy{{{{zxwsnkjheb^UOMHLE>;l\pOCW\XL`GBjDb5_^_j_Zo|
pccaQN«¤¢©¦{UQLIII at 9<CGGGuO]BScjinjhPTBDJKPPKNMOPTPA8Gjihfffdhfpprrrr|^P7I§®´¼¿´ª@BDEGIKLOQSVXY\^acdfghkllnoppppppqqpooonmmlkuR
yqnpuuxxyxn-nvz|}~
{wqnlifb\XQME:533mnqJ at ddtU_`}OgGGpYjkiRSS`d]{
mcldawɦ¸ÎÍ°tgigpRNJHC=:?FGHHJtWfkNgotpwI4X}758:=??@778;=87FiigffedifqppootY;Lz·ÂÑͼ¡BEFFIKLOQTVZ\^bcfgjlmpprstuvvwuuwuxuvuutssqqzy
~|zxyywwuo1jx}
}xrplif`]YPB636=MjnoJ?pZx?
UQTfKYjYXXqJIz_SPZ
}picfkÒÓÆÓÈtfynkkpn^QMD>=C at FGHHGLuS[CPcp^y]3Xx333567<?1-,+)47BiihededfepsqpoyeRDt±ÃÈÅø³¦DFIJLNQTVXZ^`bfhkmrrtwwz{||}~~~~}~}|{zzywt}+}|yxyusnX-oy}
}xsolhe`]W\=BVcbbjnq<@GKC;PGhCFGEG[orKeFMTOLZifgqipÙ×ƱkfflsyxrvSE=?EE at DFFFGDIqM^krjfJip3Vf:KOVSSJ;8/+(*8:Pjihffddicorsqs¥\C}·»¼¿¿²ªFHJKNQTWY\_cehknqxxz|~
~{%ltwsqoi]9.brx}}
|ysokge`]VW=?DGNUjmG<]E?>eNKHGGD[EHMHNYaNNh
hkwr~|׫r`cd^SSSPwkI:EMGCCEFGDCBESL\cDemPis7WT09BCHJD:453/*07Jjihedddhbkoqo~§®°wVAx¸´»½¤GJLNQSW[^achknrv{}
<*+! .C-Zkrx{|}~
~wtolhea\VK/0//12lm<<DJVCDBeDEGHFXHFJG\gF|z
¢mk^qanu¡¢j_dd^OEBI`~~D:7<A3PÍðîæäåìíïììéNY^bms[tr8WE,09?@CB82/-+'/:Kihgdeccd^hgiq££§²«\M\²²¶¾½ºJJNRSWZ\aegmqu{|
|Gfi*`hY*U0mvz{|}
xrmkhda[UL<99998la=EEJWJJEjIL\J[]]9_^WEKFI
ur\Yn[]n¡vrrkjac`XSV[PTSZU@¿äÕÑÑÊÊÜçïòõõõõòðëäÊ`Jgf[eo9U>,,37:;;;2++();CKiigfedb\[a`\Xa~ÅÄ°¹¥x¥79:==@CFIJMPUX\_dgkmoqqqqpqqrrtututroqonmmljvHV*VD[Q8\Qty|||
xrmkgd_ZSL@?=;:<hXmDDIRJKRJKH[]^^^:_^]^[GNG
pYYp\Z¥u WW[^_YSQc_^[[hØ¿¼¼½¼Á¿Ùìõøø÷öõóðïíêçâØn`Tfzd6T1+,.00002/)'('1?Liheded_WW\XQB39Lncuxrnw9 at MVQGEFJNQTZ\bfjpuw{{yyxxyyz}}~|ywvuuuutsx'otn$PL,kxz|}
xqnjgc^ZUJ6:.-9>gkmCDHQJKwfUQ]\]_^_5^__^^_]L
YWq\Z
SZ]\``UaZWhi¾°¬ª¯µ·ºÑåíóõøøùøõòîéääáÜÙÖÍ·vqwmT4Uw@<@?GHKK=5.'&%+3Gihfedc`TQXVMB74@qie}¡£¢¥50+%'*1=J[X[`chotz
}|}|zx;b7\oD=Gwz|}
yrnjfb^YSI:;9448hkmDEIOJJV|Xa^_^___9______hp]v
WUwYUTttxwvvuuw¨«¦ £¨°ÍåëïñõõòðïîåáÙ×ÕÑÑÒÎÍÌžHXZF4X¤¥¨©¹¹qVK<74.,/9Qjkjfdd_QIo{}~|K4-2gqposqrlt::>?AIKD,$$).6CQdy|vvljedgirujaYOHHGHIOQOGGv||)b3kvuoqxz|
wqmhe`]XRH6;77CSfjcBDGSHKO__`_^_a;^^____`
[WVtVUS_rnlrpr¦ £ÚæêìíìëêæáÛÖÒÍÆÆÆÇÆÃÁÄÃÂÆÆcMB4f¢£¢¢¡¬
®ec_N at s
~M*((,KSVX[\>7e///00002223433.*%&''08?GPYhb\OFA=:;;::;;;;;;>+V}}u<r\hvxxyyxyx|{|
vpkgc_\VCG;;?JG at ehGACGQHIKa_^^^^__:`^_____h
YUSqUTTEJKHIF£âèçéèçãÝØÔÒ¾ÈÁººº¸¹º»½ÅÇÉÈÑÖ×L7x¤}~uyzywy}zfcM>[lqy|~~x@''((/+((++%%+..0011114453588;;=>ABAA>;0,'%'')+*+++-257=@D@{)NvugOjdYouvvuUPnj1q|ysmgc_\VM=HnWE@??cfC at BGPHHJ^^_`_`^_8`__`^``a
TRSoSQPpqrkp¢
~ßçæåáàÝØÓÐËÈ»±ª ¬²¶¸»ÀÃÌÒ×Üà̧KkÑþòetjx
xm¤ ¢*(((,,%'*****:05<966577>763;<=B:555A2:72005;5105458221<.4:o(Nun'1cC-7fkml`mkqcirtvuxxxyxxwtrnhc^[WRPERIÄ5468bf at CBEQHGJdp__`^__]`<`_____``{
QPNiPNOLMO\¡~
xssbÞååäßÜÙÓÍÊÇÁ¼·µ··¿Â½¾ÃÆÍÔÚÛÖÉK`©¯~Z2345457677:<=BBCIHMQX^fllqry at 677A:9?HP?%&+&&)'-77*-0<`]T1310957./1//8A223708:447:<494?+pruqb^c_#bdjkhToxzhRlqtuvwwwwwtrqmfa]YVRNIJKu<7-,+TKZ[KMTZ^nv~heeeffgffHhgghillqr
vxYT[iKU©srojgceßåâãáÞÚÔÐÍÄĺ¼¼½³»ÁÁÌÍ×ÚÑÍ·¤Pfivxrtx|x=88765124231/.//022122223457?>932425200//.+30/..,--.-././1244579999:;<<<>=<<;:68#+04DH2+uxvsmknl]hkkiIakutgO8qtrvvvvvvurrlf`[XSPMHBIPJ1/..SLXampuy|o|r}~~}~nnYeor
pqrq
c~~zwefdcb`ZÈÒÑØÜàààÜÙÖÑÐÒÌÐÎËÑØØÙØ͵~}Pdcabbbdv\E=5,../202234333323343222232211111/007r,)AGXdgijcYSEBBB?;:98:8:9<;:<:=:;<==9<:<<=:=?(sxxusqpnmlllkfd^cIhjnrtsvuuvwvuspjd_ZVROJHEA:7447<]UW>DnqrKit|r]XmpYrnW{oXp~
qsRdSjMu]J
ylbaba^^_b¯µÁÆÊÏÒÕÛáâáàßÞÛÛÙÎή
KR[cw¤©¨¨¦¢
vnf\N@:2.&'+*+++,-,-+(*+2Lu¢0011257877655579:;;;;<<==<>?>???@??@@BA at ABBCFdwywvsqppnmllklljG^moqsssvvuwvvusojc]POIEHFB9+**-CHGK4bD@@CR{mqHFIJOJHGLopmw[GHNLJLJIxyprqLJNKJIIK~LMJDB:\\]^_^\[UU\®ÂÀÆÌÐÓÑÒÌÈ¿°¥
´·µµ¶··º¹¹¸¶··¶¶´³²±±¯¬¬ª©¨©¨¨§©¥£¡ ¢ ¢¢¦¥11////123:;;;;;;;::;;<<<>@=;<;:9577<CJMV]W_UMvxzywsqponmlmllmmklnppqssuvvuutsqoia[OGDDEFE9))(((-///2ejmsw?7>AjPLYv`:eH;~aSYt;DG<S
vx}<7;{887:\\\\^_^XVIP`NWw
~
¹¹»¾¿½¼»»¹·····¶¶¶µ³´²±±®®®®««««ª«ª«©©ª§§¥¥¥©§¦¥¦¦¤¥¥58;9<<;<=<943321.--*+)&'''''&&&&'&''(')('*(),uyzywtqqoomlmlkmnnmppqsrsrsutvtrpoh_ZPCP1CDG2()(((6/./0145764779:8t~q?::9::::9T}~C:;;<;;;<3KlpS2=<99;8:977668^^[[YY[FGHDKEEElz|{vx{{}|z}~}~
¸·¸¿½º··¸¹µ¶¶¶µ³´´´²±´´±²³´¯¯¯¬««¬©ª¨§§¦¥¦¥§¦§§¦¤¢£!! !!! !! ""! """!"#""#####$##$$$$$$$&(s{|ywurppnllkmmlmnooooqqrrtttrrpnle]WGOM9BBG++,+..6//./113546879:8999:99CB999:;;:9;9;;::<;:;;<;?;<:;:98:<:9998786w¢bZ@=F7;A?IZjmqruxwz{y|||}~º¹·»À¿¼»·º¹¶¶µµ´µ´³²²±±²±±±°¯¬«¬«««ªªª©¨¨§¦¦¦¦¥¥¥¤¢ "!""!###$$$&u|}|ywtqpnmlkllllmonopqqqrrrrrpoljc[UHACA@@Evtvtqp`1-./1125676689998888KG9999:::<9:9;:;:;::<:=?=9;::9799:8777878:µ··¹º¼¼ºUKC<8:EYhostrwwwwxyyxyw{|}¸¶µ¸¾½º¹¸·µµ´µµ´³³³²°¯±¯¯¯®®ªªª©¨©©¨¦¦¥¥¤£¢££¢¤¢£¡ !!!!"#$$%'*v}zxuqpnmlklllmnmnopompppqnollkhbZSLH2A@=C
/../011345678989799IEGYGPSM<9>AAKPSG@;D9?;A8;::99979;878767668³®²´»¶·¸¼nH@@MGclppqtstqstuvvvvxxz}|~~
µ¶µ³´»¸¶´µ´³³´²´³²²²±±¯¯°¯¯««ªª©©©¨§§¤¦¥¤£¢¢¡¤££!"!#"&(*)("&'(/;T`v|xvrqmmmlmlmlnmnnmnnooononkjif_YQLHC@>;A-.../0012446897898??;:BA:;CH9AM<<:7:;>=;>9;::9999:7<;<<;<<;:89d_debfea`\^IHKTkoqnorrrpppopnpqsuuxvxz|´´®¯³¸¸¶´³³²³³³²³°°°²°®¯¯°°««ªª¨¨§ª¨¨§¥¤¥¤¤&'(*)&'# %,5;Qiw
}yxusrrqqppoooopononnoonllig`ZTMJGCA?GzuqeZL/-././0033357777888897989=<9;;8988888898:8888899999;===<<=>>>Bxl\XUQQM`q}rlmoppommbklihilnoqssuvx{~ «¬®°°°±°°°°°±¯°®¬®¯¬¬¬«««©©§§¨§§¦§¦§
~~}}{yxxwvttsrrqqqopnqonmlkfaZTMIGC>;>USMIGEE at 94.-.//0245776887788698798898877767787676766566689:9984-H[MgvlbWRMrmldiihYahcehddhjjmlnpst£§ª«®¬®¯¬ª«ª§§¨§§¦¦¦¨
wofgHAR]jfjiijgggeddedcbccddaa]XPFA;>@DHHHGMNMMKJHB>;40049=B6:9=788776776677677777557665866666676977C?%,06>DIR`v~zk^]g^^_]Uaaabccbdefhhklnimr}§©«¯®¯®¯®ª¯°¬«¬ª¨ª¨¨ª©«
lcZTQ¢£¢¢
}~||{yvsqpnkjihikmnljihbbbbdcdfeegb`PJKIGGEFFFGIJKKKKKONORTPRTSYZYZZZZZ\\]^^_`cfkrxytndLMRVWXZ\^^_``a`db[fjlptx~¤©«®°°°°±®¯®¬¬ªª©ªª«©
yja[TOLHC ¡ ¢¤¥¤¦¤££¡¢
¡«¬¬¬¬«¬«««©§ ~pcXPHCA at HLOQSTVVTPLXbimnpsw|
£§ª®±±±²±±¯¯¯¯®®°®°¬ªª«¬®
|tg_TOJID?<;
¡¡¡¢¢££¥£¥¦¦§¨©©©¨©¨§¨§¨§¦££ ¢¥¦¨§«²´¶·´¶¶¶´³¬¦¡wk^ROKFB=:723438=ISX]beimoty ¦©«¯³µ¶´µ´´³±²²±±±²°°¯®¬«ª¬¬
|of^NC at A?=:76
£¤¥¥¤¦§§¨¨¨©©©¨«ª««ª¬¬¬«ª¨¦¥££ ¡ £¤¥¥¨©©©¬³´´¶¶³°«¥xha\ZYWURPNPPOSUX[^abijpz¤ª«²¶µ´´³²´´µ´³²´´³´±²³±±±±±¯®®®±|tj]LGA>>:9767£§©ª±¬¬¬¬¯®¯®®®¬¬®¯¯°¯¯°±¯®¬ª¦¢¡¢¢£¥¤¥¦¦§©ª¬¬°²±²´µ³µ»¼¹·³¨¢
¥§¬¯³¶·º¸¶µ´´¶¶µ´¶´³´µ´µ´³³²³²²²²³±±±®¯¯°«yvcMA>:;::87::¡¢¢¥©¬®®¯°¯°¯¯°²²³³³´³²°±°®±°±±°±±²±°¯¬«©§¤£¡ ¡¢£££¢¡¡ ¡ ¡¢¢£¤£¥¥¤¥§¨§©©«««®®¯°±²´³¶µ¸¸·¹º¿¿¿¿º¹µ²¯®¬ª©§¦¦§¨§§§¥§©ª«¯¯¯±³´·»··¸¹ºº»¼ºº·¶µµ·¶µµµ´¶´¶µ¸µ´µ³´µ´³³´³³°°®«°£zpYB98689:98::¡¡¢¢¤¤¥¦¦§©©«®±³³´³³´´´´´´¶·¶··¸·¸¸·¶¶¶¶µµ³µ´µµ´³²±°®¯¯®«««ªª¨¨¨¨§¨©¨««««ª«ª«¬«««¬«¨©ªª«««¬®®®¯¯¯°±±²²³²³¶´··¸¸¸º»¼¼¼¼¿ÁÂÂÁÁÀ¿ÀÀ¾À¿½½½¾¾¼»ºº¸º··¸¹¹¸ººº¹»¼»º¼½½¾¿½¼¹··¶¸¸··¶··¶··¶µ´µ¶µµ³¶´µ²´±±¯¯®¯±zrL=53989:8:6* ¡¡¢¡¢¢¢££¥£¥¥¦¦§¨¨¨©ª««®°³µµ··¶¶µ¶µ¶¶··¶···¶¹¸¹ºº»»¹¹º¹¹¹¶¶¶´±±°®°±¯²´³´³²¬²±°°°±±±²³³³³µ´´´³´µ³³²±²³²²´´³´µ·¶···¶¸¸º¹»¹»»»¼¼¼¼º»¼¼½½¾½ÀÁÀÁÀÀÀ¿¾ÀÃÀÂÂÁÂÀÀÀÀ¿¾½¾¿¾¿¾½¼»»»»¼»½½½¾¿¾¿¾½º··¸º··´·····¸¶¸¶·¶¶¶µ´µµ´´²²°¯°°°«z{tP526899;+ ¡ ¡£££££¤¤£¥¥¦¨¨§¨¨©ª©©ª«ª«¬¬¬®¯²µ¶¸¸···¶¶·¸·¹º¼¶¶·µ¸¹ºº»»º»»¼¼¼¼¼¹¹¶·¶·¶·µ¶¶¶··¶¶²²µµµµ¶µµµ·¸¸¸º¹¹ºº»º»¹¹···µ¶¶¹¸¸¸¹¹¹¸¹ººº»»»¾¾¿ÁÁÂÁÂÀÀÀÀ¿ÁÁÁÁÃÅÅÃÃÀÀ¿¿À¿¿½½¼¾¿À¿ÀÀÀ¿ÀÀ½¿¾ÀÀ¿À¿½ÀÀ¿¿¿À¿¿¿¾¾º¸¸¸¸¸·¸·¶¹¸···¸¸·¶··¶µ·µµµ´³²±±°±²~|{Z25794#¡¡¢¢¢££¤¥¥¦¦§§§©©ª©ªª«««¬«««¬¬¬¬¬¯°³µ¶··¶·¶µ¸¶·¸·¹¸¸¸¹¹»»¼½½½¾¹¼½¿½½½½¼»º¹¹¸¶··¸»ºº¹¹º··¶µµµ¶¶¸¸¹º»»»»¼½»½¾»»º¹º»º¹»º»º¼»ºº¼»»¼¼¾¿ÁÂÂÃÃÂÄÅÄÂÂÂÂÁÃÂÄÆÅÅÂÃÀÀÀÁÀÀ¿¾½¾ÀÁÁÁÃÃÁÁÂÀÂÃÂÂÁÀÁÁÁÁÁÀÀÀÂÀÁÁ¿¿½º¸º¹¹¸¹¸¹¸¸¸¸¹¸¸··¹¶··¸·µµ³³³²°¯°²±
}zv86/¢¡¡¡¢¢¢£¤¤¤¦¦¦¨¦¨¨¨©ªªªª««¬¬««¬¬¬¬®¯®¯±³µ¶·¸¹·¸¸¸··¹¹ºº»¼¼¾¾½½¿¾¿¿¿¾¿¿¾¾¾¾¼¼»¹ºº¹¸¹¸¹º¹¸¸¹¶¸·¶¶¸¸¸º¹º½½½½½¾½¾¿¾¾½»»»»ºº¼»¼¼¼¼¼¾¼½¼¾¾À¿ÀÁÂÂÂÃÃÃÂÁÀÂÁÁÁÃÂÃÄÃÄÂÂÂÁÀÀÀÀÀ¿¿ÁÂÃÄÄÃÄÆÆÃÅÄÆÅÄÄÄÃÃÂÃÁÃÃÂÁÁÁ¾¾½º»»ººº¹¸¸º¸¹¹º¹¹¸¹¹¸¸···¶¶µ´³³³±²³±µ|{yb$ ¡¢¢£¤¤¥¦¥¦¦¥¦§§©©ª©ªª««««««««¬«®°°²µµ¶··¸·¶¶·¸¸¹¹¹¼¼¼¼½¼½½¾¿¾¿¿¾¿¿¾¾¾½½»»»¹¹º¸¹¹ºº»º¹º¹¸¸¸¸¹¸º¹¼½¾¾¾¿¾À¿½¾¾¾½½½¾½¼¼¼½½½½»¼½½¾¿ÁÂÂÂÁÂÂÂÂÄÃÃÁ¿ÁÂÁÁÂÂÃÃÄÅÂÃÂÁÂÁÀÀ¿¾ÁÂÅÅÆÆÇÇÆÅÆÇÆÆÆÆÆÅÅÄÄÄÃÃÃÁÃÂÁÀÁ½¼»»¼»»»¹ºº¹º¹º»»º¹¸»·¹¸º¸¶¶¶¶´±³´³³³°£¥wysU¡ ¡¡¡¢¡££¢¦¤¥¥¥¦§¦¨©©ªªªª««¬««¬¬¬¯®¯°¯°¯°±±²´¶·¸»¶·····¸¹¹º»¼»¼½½¼¾¾¿¾¾¿¾¿¿¾¾¾¾¼»¼»º¹¹º»º»ºº¼¼º»º¹º¹¹¹¹»¼¾¿¿À¿À¿¿À¾¿¾½¼¼¼¼¼¼½½¾½¾¼½¾¾¿ÀÀÁÁÁÃÃÃÃÃÄÄÄÂÂÁÂÁÂÁÃÄÅÅÅÉÅÅÅÅÂÃÄÂÂÂÂÅÆÈÉÊÊÉÉÉËÊÊÈÈÉÇÈÅÅÅÄÄÄÂÃÁÂÁÀÀ¼¼½»ººººº¹ºº»¼º»¼º¹ººº»»¹¹º¸¸¶·µ´²²²³²³§ yspW! ¡¡£¢£¤£¤¤¥¥¦¦¦¨¨©©©ªª«©««¯®®®¯¯¯¯°°°°±³³´¶·¸¹¶µ¶··¸»¹º»º»¼¼½¼¾¿½¿¿¿¿¿ÀÀ¿¿¾¾¿½½¾½¼»»¹ººº»»º»»»¹¹»¹»¼¼½¾¿ÀÁÀ¿ÀÀ¿¿À¿¿¾À¼½½¼½¾½½¿ÀÀ¿¿¿ÀÁÂÃÄÄÄÅÅÅÆÆÅÄÃÃÃÂÃÃÄÄÄÆÇÈÇÆÆÆÅÄÅÃÄÅÅÆÈÉËÌËËÌËÊÊÊËÊÉÈÇÇÆÆÅÅÄÃÄÁÂÀÀ¿¾½¼¼¼º¼»¼¼¿½½½½¾¼½¼¼¼¼»»ºº¸··µ¶´´µ´²±³²´«¡
rmT$¢¡¢££¢££¤¥¥¥¦§§¨©©ªªª«««ª¬¬¬®®®®®°±²±²³´¶·¸¹¹¸¸¹¸¸¸º»»¼»¼¼½½¼¿¾¿¿À¿ÀÀÁÀÀÂÀÁÀÀ½½½¼½¼½½»¼¼¼¼½¼¼¼º»»»¼¼½¾ÀÀÀÁÁÀÁÁÁÁÂÁÀ¿¾¾¿¾½¿¿¿ÀÀÀ¿ÀÀÁÂÃÃÃÆÅÅÃÆÇÆÅÆÄÂÃÂÂÃÄÄÅÄÅÅÅÄÅÃÃÃÂÂÃÄÄÉÉÌÌÌÍÍÎÍÍÎÌÌÌËÌÊÉÉÉÈÇÆÆÃÃÁÂÀÀÁ¿¾À¿¾¿¾¿¾¿ÀÁ¿¿¾½»»ººº¹ºº¹¸¸¶¶µ´´³´±±³²´¶³¥ªym[+¢¢¢¢££¤¤¤¤¥¦§§¨¨©©§ª«««««¬¬¬®®®®®°¯¯°±±²²³´¶¸¸¹º¹¹¸¸¹º¹»º¼¼¼½¼½½½¿¿¿ÀÀÀÀÁÁ¿¿ÁÁ¿¿¾½¼¼¼½¼½½½½½¼½¼½¼º¼½½¾¾ÀÀÁÂÁÂÁÂÃÂÂÁÂÂÁ¿¿¿¿¿ÀÀ¿¿ÀÀ¿ÀÁÁÁÂÃÅÆÆÆÆÇÈÉÇÆÆÄÄÄÄÃÃÃÅÅÅÅÅÄÅÅÃÅÅÄÃÅÆÆÉÊËËÎÎÏÎÏÏÎÍÍÍÍÍËÊÊÉÉÇÈÆÆÅÄÄÃÃÂÁÀÂÀÁ¿À¿¿¿ÁÀÀ¿¿½»»½º¼º»»¹¹¸···µµµµ´´´²³µ´µª¢¡mhA!¢¢¢£££¥¥¥¥¥§¦§©©©©©©«««««¬®®®®¯¯¯°°®±°²²³³µ·¸¹º¸¹¹¸»ºº»»»»»¼¼½¾¾¿¿ÀÁÁÀÂÀÂÁÁÁÀ¿¿¿¿¾¾½½½½¼½¾½½¼½¼½¼¼½½¾¾ÀÁÂÂÂÂÂÄÄÄÃÂÂÂÁÀÁ¿ÀÁÁ¿ÀÁÁÀÁÂÂÂÃÃÅÅÇÆÇÆÈÈÉÈÇÇÆÅÅÆÄÄÆÇÇÈÇÇÆÅÄÅÄÄÄÄÅÄÆÉËÌÍÏÎÍÏÏÐÎÎÏÎÍÌËËÊÊÊÉÇÇÇÆÄÄÃÂÁÂÀÁÀÁ¿ÀÀ¾¿¿À¿¾¾½½½¾¼»½»»»º¸¸¹¸¶¶¶µµ¶´´´´µ¶¶±¦}gQ-¢£££¤¤¥¤¤¥¦¦§¨¨©©©©ªª¬«¬¬®®®¯¯¯¯±±°°²²±³´µ·¹¹¹»¹¹»¹¹¹º»¼»»½½¼½¿¿ÀÀÁÀÀÁÂÁÁÀÀÀÀÀ¿À¿¿¾½À½½½¾½½½¾½¼¼¼¼¾¾¿¿ÂÂÂÂÃÄÃÄÃÂÄÃÃÂÂÁÁÁÁÀÁÁÂÁÂÂÂÃÂÂÃÅÆÇÇÇÈÈÉÉÉÈÈÆÅÄÃÇÆÈÇÈÇÈÇÆÆÆÅÆÄÃÄÄÆÈÉÊÌÍÎÎÎÏÐÐÏÏÏÏÍÌÌËÊÉÊÉÈÈÈÇÆÆÄÃÃÁÀÁ¿À¿¿¿¿¿¿¿¿¿¿¾¾¾½½¼¼»¼»»¹¸º¹·¹·¶·µµ´´µµ´µ´´¬£r[?$¤£¤£¤¥¥¥¥¥¥¦§§©¨¨©ª««¬¬®®®®®®¯®°°°±°²±²³³´µµ·¸¹¹¹ºº¸º¹º¹º»»º¼¼¾¼½¿¿¾¿¿ÀÀÁÁÂÀÁÁÀÀÀ¿¿¾¾¾¼½½¾¾¾¾¾¾¾¿¾½¾½¾¾¿ÀÁÂÄÃÃÃÅÄÄÄÃÃÂÃÂÃÃÁÁÁÂÁÁÁÂÁÂÃÂÅÆÇÆÈÈÉÉÉÈÉÉÊÉÆÆÆÆÆÆÇÈÈÉÉÈÈÇÇÇÆÅÅÄÅÇÈÊËÌÌÏÏÏÏÐÏÏÎÏÏÏÍËËËÊÊÊÉÈÈÇÆÆÄÄÂÁÀÁÁÀÀ¿¿¿À¿À¾¿ÀÀ¾¾¿¿¼¼¿¾¼»»º¹¹ºº··¶µµ¶¶¶¶µ´´´¶±¨iM££¤¦¥¥¦¥¦¦§§¨¨§§ªªª«««¬¬®®®¯®¯¯¯°°±²³²³²³´´¶··¹¹¹»»¹º¹ºº¹º»¼¼¼¼¼¾¾¾¿¿À¿ÁÁÁÁÁÂÁÀÀÀ¿¾¾¾½½¾¼¾¾¾¿¿¿¾¿¾¾½¼¿¿¿ÁÀÂÄÄÃÃÄÄÃÅÅÃÄÂÂÂÂÂÂÂÂÁÂÃÃÃÃÃÅÅÆÇÇÇÈÉÉÉÈÉÉÊÉÈÇÆÆÅÅÆÇÈÊÊÈÈÈÈÇÆÆÆÇÆÇÈÉÊËÎÎÎÏÏÏÏÏÏÏÎÍÌÍËÊËÊÊÊÈÇÇÅÅÄÃÂÂÂÀÁÁÀÀÀÁÁÁÂÁÁÁÁÁÀÀ¿¿¿¿¿¾½¾½º»º¸····¸¸¸·µ¶·´´µµ¶°¦£££¥¥¦¦¦§§¨¨©©©ªª««««««®®®®¯®°°±±²²²³³³³´´µ¶·¸¹ºº»ººº»º»º»½½½½¾¾¾¿¿¿¿ÁÀÀÁÂÁÁÁÀÁÁ¿¿À¿¾¾¿¾¿¿¾¿¿À¾¾¿¿¿¿¿ÀÁÀÁÂÃÄÅÅÃÅÄÅÅÅÄÃÃÃÃÄÃÄÃÂÃÃÅÃÄÄÄÅÅÄÅÈÈÈÉÊÊÊÊÊÊÉÉÈÈÇÇÇÇÇÈÇÉÈÈÇÆÇÈÈÉÈÈÇÉËÌÎÏÏÐÏÏÏÏÏÐÎÎÍÌÌËËÊÊÊÉÈÇÇÆÅÄÄÂÁÂÀ¿¾ÀÀÁÁÂÂÁÁÂÂÂÁÀÀÁÀÁ¿¾¾½¾¾»»º¹¸¹¸¸···¶¶¶µµ´µµµµ²¬¥¤£¤¤¥¥¦¨§¨§¨©ª©©««««¬¬®¯®¯°°°°°²²²²´³²³´³´¶·º¹ºº»º»¹º»ºº¼½¼½¾¾½¾¿½À¿ÀÁÂÂÂÁÁÂÂÁÁÁÀÀÀ¿¿¿¿¿¿¿¿¾À¿½¿À¿¿ÀÀÀÁÂÂÄÅÅÄÅÅÄÅÆÅÅÅÅÃÃÃÄÃÄÄÅÅÆÃÄÅÅÆÆÇÇÉÇÉÊÉÊËÊÊÊÊÊÈÉÈÇÉÇÉÊÉÈÊÉÈÇÉÈÈÉÉÈÉÊÊÍÍÏÏÏÐÏÐÏÐÏÎÏÍÍÌÌÊÊËÊÉÉÈÇÆÆÄÃÃÁÁÁÀÀÀÀ¿¿ÀÀÁÁÁÁÂÁÀÀÀÀÀ¿¾¿½½¼»»»ººº¹¹·¹¸¶µ·¶³´¶³´´µ¶²«¢¢¢£¥¤¦§§§¨¨ªªª««««¬®®¯¯¯±°°±±²²²³±²³´´´µ·¸¹ºº¼»ºº¸¹º¼»½½¼»½¾½¾¿¿¿ÀÁÁÁÁÁÂÂÂÁ¿ÂÁ¿À¿À¿¿¿¿¿¿¿ÀÀ¿¿¿¾ÀÀÀÁÁÂÄÄÅÅÆÆÅÆÅÆÅÄÄÄÃÄÃÄÃÅÅÄÅÄÄÄÅÅÆÆÆÇÈÉÉÉÊÊÊÊËÊÊÊÉÊÊÈÉÊËËÊËÊÊËËÊÉÉÊÈÊËËÌÍÎÎÐÐÐÐÐÏÏÏÏÏÏÍÍËÊËËÊÉÉÈÈÅÆÅÄÃÃÂÁÀ¿¿À¿¿¿¿À¿¿ÀÀÀ¿¿¿¾¿¾½¿½¼½º»»»º¹¹º··¸¸¸··¶¶¶µ³´·¶µ¶¢¡¡¢¢£¤¥§¦¦¨¨¨¨©ª«ª«¬®¬¬¯¯¯®¯°°±²²²²²±³²³³µµ¶·¸¹ºº¼¼ººº»»»¼½½½½½¿¾¿À¿ÀÀÁÁ¿ÂÂÂÂÂÂÁÁ¿¿¾ÀÀ¿¿¿¿Á½ÁÀÀÀÀÀÀÀÁÂÃÃÄÅÆÆÆÅÆÆÆÆÅÂÄÄÄÄÃÃÃÄÄÃÅÅÅÄÅÇÇÇÈÉÊÈÊÊÊËËËÌÊÊÊÉÉÉÈÊÊÊËËÊÊÊÊÊÊÉÊÊËËËÌÍÎÏÏÏÎÏÎÏÏÏÎÏÍÌÌÊÊÊÊÊÈÇÇÇÅÅÄÂÂÂÁÀÀ¿¾¾¾¿¿À¿¾¿¿¿À¿¾½¿¾¾¾¿½»¼»»¼»¹¹¸·¹¶¹¸¸¸¸·¸··¶¶µµ´´ ¡¡¡¢¢¢££¥¥¦¦¦§§©¨©ªª««¬¬®¯°°²±±²±³²³´´µ¶¶¸¹¹¹ºº»»ººº»»¼¼¼¼½½¾¾¿¿¿ÀÀÁÁÁÂÃÂÂÂÁÂÁÀÁÁÀÁ¿À¿ÀÁÀ¿ÀÀÁÀÁÁÀÁÀÁÂÃÃÄÅÅÆÆÆÆÆÅÆÅÅÅÅÅÆÅÄÄÄÄÄÅÅÄÆÇÇÈÈÉÊÊÊÊÊÊËËËËËÊËÉÉÈÊÊËÊËÌÊÊÊÉÉÉÊÊÊÊËËÊÌÌÍÎÍÎÎÍÎÎÍÍÍÌÊËÊÊÉÈÉÈÆÇÆÅÄÃÃÂÁÀÀ¿À¿¾¾¿¾À¾¿¿¾¾¾¿½¾½¾¾¼½¾½¼»»»¹º¹¹¸¸¸¸··¸¸··¸·¶·´³³³ ¡£¢££¥¦¥¦¦§¨§¨©ª««¬¬«¬®®¯¯¯°±±²²²³´µ´¶·¸·¸¸ººººº¹º»»¼½º¼¾¼¾¾¿ÀÀÀÁÁÁÀÁÂÂÁÂÂÁÀÁÀÀÁÀÀÀÀÀÁÀÀÁÀÁÁÁ¿ÁÁÁÂÂÃÃÄÅÆÆÆÅÆÇÆÆÅÅÄÆÆÅÄÄÄÄÄÆÆÆÇÇÇÈÇÈÈÉÉËËËËËËÊËÊÊÉÉÉÉËÊÊÊÊÊÊÉÈÈÈÈÉÈÉÊËÊËÌËÍÍÍÍÎÍÍÍÌËÌÊÊËÉÉÉÈÇÈÆÆÅÃÁÀÁÀÀ¿ÁÁ¿¿¿½¾¾¾¾¾¾¿¾¼¼½¾¾¿½¾½½½»»»¹¸¹»¹¸¹····¶µ·µµµµ´²³±¡ ¢££¤¤¤¥¥¦§§¨¨ªª©ª«¬««¬®®¯¯¯°±°±²´´´µµ¶·¸¸¹¹¹¹¹ººº»»¼»½½¿¾¾¿¿ÀÁÁÀÀÁÁÁÁÁÂÁÀÁÀ¾¿À¿ÀÀÁÀÀÁÀÀÀÀÀÁÁÂÁÃÂÃÄÅÅÆÆÅÅÆÆÆÆÆÅÄÆÆÅÅÄÅÆÆÆÇÇÇÆÇÈÉÉÉÈÊÊÊËÊÊËÊËÊÊÊÉÉÉÊËËÊÊÊÉÈÈÈÇÈÈÈÉÉÊÊÉÊÊËÌÌÌÌËÌÌËËÌÊÉÊÈÉÈÈÈÈÇÆÅÃÂÂÁÁÀÀÀ¿¿À¿¿¿¾¿¿¾½¿½½½½½¾¾½½½¼º»ºº¹º·¹··¸·¶···µ··µ´´³³³± ¡¢¢¢£¤¤¤¦¦¦¦¨¨©¨§ªªª«ª«¬«¬®¯®¯¯°°±±²´´µµ¶·¸·¸¹¸¹¸º¹ºº»¼¼¼½½¾½¿¿¿¿ÀÀÁÀÀÁÁÁÀÀ¿¿À¿À¿¿ÀÀÀÁ¿¿ÀÀ¿ÀÀÁÁÂÀÄÄÄÄÄÅÅÅÅÅÆÆÅÆÆÄÅÆÅÄÅÅÆÆÇÇÆÆÇÈÈÉÉÊËÊËÊÊÉÊÉÊÉÉÉÈÉÈÈËÉÉÈÊÉÇÈÈÇÇÈÇÈÇÇÈÈÈÈÉÊÊËÌËËËÌÌËÊÊÊÊÉÊÉÉÉÇÇÆÅÃÃÃÁÁÁÁÁÁÀ¿ÀÀ¿¿¿À¿¿¿¿¾¿¿¿¿½¼½¼º»º»ºººº¹¸¹¹¸¸····¸¶·´³´´²± ¡¢¢¢££££¤¥¥¦§§¨§¨¨©©ªª««««¬«¬®®®¯°°²²´µµ¶¶·¶¶··¸¸¸ºººº»»¼¼½¾¾¾¾¿¿ÀÀÀ¿¿À¿À¿À¾½¾¿¿¾¿¿¿¿ÀÀ¿¾À¾ÀÀÀÀÁÁÂÃÃÄÄÅÆÅÅÅÆÅÅÅÄÆÆÅÅÅÅÅÅÅÅÆÅÇÇÇÈÈÉÊÊÊÉÉÊÊÉÉÊÉÉÈÈÈÈÈÈÈÉÈÈÇÇÇÈÇÇÈÈÆÈÈÈÇÉÊÉÊÊËËÊÊÊÊÊÊÉÊÉÉÉÈÇÇÆÅÅÄÄÂÂÁÁÁÁÁÀÀ¿¿À¿¿¿¿¾¾¿¾½¾¾¿¾½¼½½¼½¼»ºº»º»ºº¹¹¹¶º¸·¸·¶µµ´³±± ¡¡£¢£££¤¤¤¥¦¥¥§§§§¨©©¨««ª«¬«¬®¯¯°°±³³³´µ¶¶¶¶¶···¸¸¹¹ºº»¼»¼½½½¾¿¾¾¿¿¿¿¿¾¾½½¾½½¼¾¾½¾½¿¿¿¾¾¾À¿¿ÁÀÁÂÂÃÃÃÄÄÅÄÄÄÄÄÃÃÄÄÄÄÄÃÄÄÄÅÅÅÅÆÆÇÇÈÈÉÉÉÉÉÊÉÊÉÉÇÈÈÈÇÇÇÇÈÈÇÆÈÈÈÈÇÈÈÈÈÉÉÉÉÊÊÊÊËÊËÊÊÊÊÉÉÈÉÇÆÆÆÅÄÃÃÃÂÂÁ¿ÀÀ¿À¿¿¿¾¾¿¿¿¾¿½½¾¼½¼½¼»º½¼¼¼¼¼º»»ºº¹¹ºº··¸¸···¶µµ´³³² ¢¡¡¡¡¢¤¤¤¥¥¤¥¨§§§¨©ª©©ª¬«««¬¬®®®°±±²³´³´µµµµ¶µ¶·¸·¸¹¹¹ººº»¼»¼¼½½½¾¼½¼¾½½½¼¼¼¼½¼¼½½½¼½½½¾¾¾¿¿¿¿ÀÁÂÂÃÃÃÄÄÄÃÃÁÃÃÂÃÃÃÃÃÄÄÃÄÅÄÅÆÇÇÆÇÉÇÈÉÉÈÉÈÉÈÇÈÇÆÇÆÆÇÇÇÇÇÆÈÉÈÈÇÇÇÇÈÉÉÉÉÉÉÉÊÉÉÉÊÊÉÇÈÈÆÆÆÄÆÅÄÃÃÂÂÂÂÀÁÀ¿¾¾¾¾¾½¾¾¿¾½¾¾¾¾½½¾¿½¼½½¼¼½»»»º¹ººº¹»¹¸¶·····´·¶µ³´³¡¡¢¡£¢¤¤¤¦¤¥¦¦§¦§¦¨©©¨ªªª«¬¬«®®°°²±²³´´³µµµµ··¶·¸¹¹¹¹¹»¼»»»»»½¼½¼½¼¼¼»¼¼½½¼½¼¼¼½¼½¼¾¾¾¾¾Á¿¿ÀÀÁÂÁ¿ÂÃÂÂÃÂÂÂÂÂÂÂÂÂÂÃÄÄÅÆÅÅÆÆÇÆÈÇÈÇÈÉÈÇÇÉÈÈÆÇÅÆÆÆÆÇÇÆÈÇÇÈÇÆÆÅÆÆÇÇÈÈÇÉÇÈÈÈÈÈÈÇÈÇÆÇÇÆÅÄÃÄÄÃÃÃÁÁÁÀÀÀÀ¿¾½¾¾¼¼¿½¿¾¾¾½½¾¿¾¿½¾½¿½»¼»º»º»¸¹ºº¹¸¹·¸¹····¶¶´´³² ¡ ¡¢¢££¤¥¥¥¥¥¦§§¦§¨©¨©©ªª««¬®°°±²±²´³´´´µµµ¶¶¶····¸¸¹¹ºº¹ºº»»¼»º»»»»»¼»»»¼»¼¼½½½¼½½¾½¿¿¾¾¿ÀÁÀÀÀÀÂÂÂÂÂÁÁÂÂÁÂÃÃÄÅÄÅÄÆÆÅÆÆÇÇÇÇÇÇÈÇÇÈÈÉÇÆÆÆÆÆÅÆÇÇÆÈÈÇÇÇÆÇÆÆÅÆÅÆÈÇÇÇÇÈÈÈÈÇÇÆÄÅÅÆÆÆÄÄÄÃÃÂÁÂÁÁÀÀÁÀ¿¿¾¾¾¾¾¾¾¾½½½¾¾¾¿¾¿¾½¼¼¼»»¼»»º»ºº»º¹¹¸¸¸ºº¸····µ´µ´´ ¡¡¢£¢¤££¥¤¤¤¦¥¦¦¨¨¨¨©©©ªª««®¯±±²²±²³³³´µµ´´µµ¶¶¶···¹¸¹¸¹¹»ººº¹º¹ºººº»ºº»»»¼»½¼¼½½½¾¾¿¿À¾¿¿À¿¿¿ÁÂÀÁÁÂÁÁÁÂÃÃÄÃÃÄÅÅÅÅÅÆÆÅÆÇÆÇÇÇÇÇÇÇÇÇÆÆÅÆÆÇÇÇÆÆÆÇÇÆÇÇÆÆÆÇÆÆÆÇÆÆÆÆÈÇÇÆÆÆÅÄÄÅÅÃÄÃÂÂÃÂÂÁÂÁÁ¿¿ÀÀ¾¿¿¾¾½¾½¼¾½½½½¾½¾½½½¼½¼¼»»¼¼º»»º¹»º¸º¸¹¹¸¸¸·µ¶··µ·µ´ ¡¡¡¢¢¢£¤£¤¤¥¤¦¦¦¦¨¨©©ªª«««¬¬®®°°±²²²²³²´³³³´µ¶µ¶·¶····¸¹º¹¹¹¹¹¹º¹¸¸¹¹¹ºº»º¼»»»»»½¼¼¼¿½¾¾¿À¿À¿¿ÀÀÁÁÀ¿ÀÂÁÂÃÃÃÃÃÄÄÄÄÃÄÅÅÅÅÇÆÆÆÆÇÈÇÇÈÆÆÆÆÅÆÆÆÆÆÅÆÅÆÆÅÆÅÆÅÅÆÅÅÅÆÅÅÆÆÆÅÆÆÅÅÄÅÅÄÅÂÂÁÁÃÀÂÁÁÁÀÀÀÀ¿¿¿¿¿½¾¿½½¾¾¼½½¾¾¾½½¾½½½¼¼¼»½¼¼½¼»»¹¹»¹º»º¹¹¸¸¸··¶·µ´ ¡ ¡¢¢£££££¤¥¥¦¥§§§¨©ªª©ª««¬®¯®¯°°°°±±²²³´³´µµµµµ¶···¸¹¸¸¹¹¹¸¸¸¹¹¸¹¹¹¹º¹ººº»º»¼»»¼¼¼½¾½¿¿¿¿¿¿ÀÁÀÁÁÁÁÁÁÂÂÂÄÂÂÂÃÃÃÃÃÄÃÆÄÅÆÆÆÆÇÆÆÇÇÆÆÆÅÆÆÅÆÅÅÄÅÅÄÄÅÄÅÄÄÅÄÄÅÆÅÅÅÃÅÅÅÄÆÅÄÃÅÅÅÄÄÃÃÂÂÂÁÂÂÁÀÁÁÁ¿À¿¿¾¾¾½¿¿¿¾¾½½½¾½¾¾¾¾¾¾½¼¼½½½½½½½»ºº»º»¹º¹¸¸¹¸···¶¶µ ¢¢¡¢¢££¤¤¥¥¥§§§§©©©ªª«¬¬®¯®¯°°°±°²±²³´³´µµµµ¶¶··¸¸···¸¶·¹¸¸¸¸¹¸¸¹¹¹¹º¹ºººº¼¼½½¾¾¾½½¾¿¿ÀÀ¿¿ÁÁÀÁÁÁÁÁÁÁÁÁÂÂÂÂÁÂÃÄÃÄÄÄÅÅÆÆÅÆÅÅÅÄÅÆÄÅÅÅÄÄÅÅÄÃÄÄÂÄÃÃÅÄÄÅÃÆÃÄÃÄÅÅÄÅÄÃÃÄÄÄÅÅÄÄÃÃÁÁÁÁÂÁÁÁÁÁÀÁÀÀ¾¾¿¾¾¿¾¾¾¿¾¿¿½¾¼½¾½½¾¾¿¾¾¾¼¼½¼»»¼»¼»º¹º»¹¹¸¸¸·µµ ¡¡¡¡¢£¤¤¥¥¦¥¦¨§¨©©ªª«¬¬¬®¯®®¯°¯°±±±²°³³´´´µ¶µµ¶·········¸···¸¸¸·¸¸¸¸¹¹ºº»»»»»½¼½½¿¿À¿¿¿¿¿ÂÁÁÁÀÀÀÀÁÁÁÁÁÂÁÁÁÂÂÃÃÄÃÃÄÅÄÅÅÄÄÄÃÄÄÄÃÃÃÃÃÄÃÄÄÄÃÂÃÃÄÅÅÅÅÅÄÅÄÄÄÅÃÄÃÃÄÃÄÄÅÅÅÄÄÂÂÁÂÁÁÂÀÁÀÁÀÁÀÁÁ¿¿¿¾¿¾¾¾¿¿¿¿ÀÀ¼¿½¾¿¿¾¾¾¾¾½½¼¼»¼¼½»¼»ººº»»º¹¸¹··µµ ¡¡¡££¤¥¥¥¥§¦§§©¨«ª««®®¯¯¯¯¯¯°¯±±²³´´´´´µµµµ¶··¶¶¶··¶¶··¸··¸¸¸¹¹¸¹ºº»ºº¼»½½¾¾¿¿¿¿¾¿¿ÀÀÀÀÀÁ¿ÀÀÁÀÀ¿ÁÁÁÂÁÁÂÃÁÂÃÂÃÃÃÂÂÂÃÃÃÄÄÃÃÂÃÁÂÃÃÂÃÂÃÃÃÄÅÅÄÅÅÄÄÃÄÅÃÃÃÃÄÄÃÄÄÃÃÃÂÃÂÁÂÁÁÁÁÁÁÁÁÀÁÀÀÀÁÀÀ¿¿¿¿¾¾¾¿¿¾¿¿½¿¿¾¿¿¾¾½¾¾½½½¼½¼¼¼¾»»º¼»¹º¸·¸¸··¶ ¡¡¢£¤£¦¥¦¦§§§¨©ª©««¬¬®®®®¯®®¯°²±±³³´´´´´´µµ¶µ¶µ¶¶¶¶·¶¶·¶··¸¸¸¸·¸¸»º»¼»»¼½¾½¾¿¾¾¿¿¿¿ÀÀ¿Á¿¿ÀÀ¿ÀÀÀÁÁÁÁÁÁÀÁÂÁÂÁÂÂÁÁÃÃÃÂÂÃÂÁÂÂÂÃÂÄÃÂÂÂÂÃÃÄÃÄÄÅÅÅÄÅÄÄÄÃÃÄÄÃÃÄÃÃÂÂÂÃÂÁÁÁÁÁÁÁÁÁÀÀÀ¿ÁÁÁ¿¿¾¿½¾¿¾À¿½¾¾¿¿¾¿¿¿À¿¾½½½½¾¼½½½¼½¼»»»»º¹¸¸¸¸··¶ ¡ ¡¢¢££¤¥¥¦§§¨¨¨©«¬«¬«««¬¬®®®®°°±±²²³´³´³´´´´µµµµµ¶¶µ¶µ¶···¸··¸¹¸ººº¹»»»½¼½¾½¾½¾¿¾¾¿¿¿½¿¿¿¾¿ÀÀÁÀÁÁÁÁÁÀÁÁÁÂÁÀÀÂÁÃÁÁÂÀÀÁÀÁÂÂÃÃÁÃÂÃÃÄÂÃÃÄÃÄÄÄÅÄÄÃÄÅÄÃÃÄÃÄÃÃÃÂÃÂÁÁÂÂÁÁÀÀ¿ÀÀ¿¿ÁÁ¿¿¾¾¾¾¾½¾¿¾¿¾½¾¾¿¾¾¿¾¾½¾¾¼¼¼½¾¾¾¼½¼»»¼¼»º¸¹·¸··¶¶ ¢¡¢¡¤£¤¥¤¦¦§¨¨©«ª«ª««¬«««¬¬¬®®®°¯¯±±±²²³³³³³´´´´µ´µµ´´¶¶¶¶·¶··¸¸¸¹ºº¹º»»¼¼½½¼½½¼¾½¾½¾¾¾¾¾¾¿¿¿ÀÀÁÁÁÀÀÀÁÀÀÀÀÁÀÂÁÁÀÀ¿ÀÀÀÀ¿ÁÁÂÂÂÁÁÁÁÃÂÂÂÃÄÄÄÃÃÂÄÃÂÃÂÃÄÂÃÃÃÃÃÂÃÁÁÂÁÁÀÀÀ¿ÀÀ¿¿¿½¿¿¿¾½¾½½½¾¾½½½¼¼½½¾¾¾¾¾¼¾¾¾½½¼½¾¾¾¼½¼¼½»»ºº¹¸¸¹¸·¶¶ ¡¡¡£££¥¥¥¦§§¨©©©«ªªª«ª«¬¬¬¬®®¯°°°°°±²²²²³²´³´´´´´´µ´µµ¶¶¶¶··¸¸¸¹º¹ººº»º»»¼¼¼¼½½½½½¾½½¾¿¾¿¿ÀÀÀÂÁÀÀÀÁÀÁÀÁÀÀÀÁÀ¾¿¿À¾ÀÀÀÁÂÁÁÁÁÁÂÁÂÂÂÂÃÂÂÂÃÂÂÁÁÂÂÂÂÂÁÂÃÃÁÃÂÀÂÁ¿ÂÀÀÀ¿¾¿¾½¾½¾¾½½¼¼¼½¾½½½½¼½»¼¼»½½¾½¼½½¿¾½¾¼½¾¾½¼¼»¼»º¸¸¹¹¹¹¸·¶¶¡¡¡¢£¤¥¥¦¦§¨¨¨©©¨©ª©ªª««¬¬«¬®¯¯¯¯¯°±²±²±²²²³³´´´´³´´µ´´µµ¶··¸¸¹¸¹ºº¹»ºº»»ºº»»º»¼¼¼¼½¾½¾¾¿¾¾ÀÀÀÀÀÀ¿¿¿À¿ÀÀÀÀ¿¾¾¾¾À¿À¿¿ÀÀÀÁÁÀÁÀÁÁÃÂÁÁÁÁÀÁÀÁÂÂÀÂÂÁÃÂÁÂÁÁÀÀÀÀÀ¾¿¿¾½½½¼¼½½½½¼»¼¼¼»½¾¼»¼»»½½¼¼½½¼½½¼½¾¼½½½½¾¼º»ºººº¹¸·¸¸¸¸·¶¶}~~~~~~~~~~~~~~~~~~~~~~~~}}~~~~~~x}}~}~~~~~}~}~~~~~~~~~~~~}~}}{
z}~|~~~}~~~}~~~}~~}~~~~~~~~~~~~~~}~~~~}~}||~w~}}~~}~~~~}~~~~~~~~~~~~~~~~~~~~}}~~~z
{~}}}~~~~~~~~}~~~~~~~~|~{~}}~~~~}~~~~~~~~~~}~~~}~|~~~~~~~}~~~~~~~~~~~~~~~~~~}z{~~~~~~~}}~}~~~~|~~~~~~~}z~{~~~~~~~~~~~~~~~~~~~~~~z~~~|}~~~~~~}~~~~~~~~~~~~~~~{}{}~|~~~~~~~~~}~}}yy{}|{}y{z|v||{~~~~~~~~~~|~}~~|~|~}~~}~}~~}}~~~~~{~|||{zzzvt~~~|~~~~~~}|~~~~~~~}~~~~~~~~
|~~~~~}}~~}yxsq~~~~~~~}~~~~~~}|||}}}~~}~|}~}~~~~}~}~~~~~~~~~}|~~~|~~}||{wu~~~~~~~~~}~~}|||}}|}}}}~}|}~~}~~~~~~~~~~~}~~~~}~|~v~~}}~}||~~}||}|||~~}}~~~}}~}~~~~~~}~~~}~|~{}~|~~~~~|}}|~~}}~{z
z{~}~|}~|~~}~~~~~~~~~~~~~~~~}~|~|{||}}vrs¸r¹sºt½r¹s½tºuºv»s¹q¸s¸v¹wµt¶t³u²t¯mkr~}{{||~{|{}{~|}|}|}|}}}~~~~~~~~~~}~~}|~~~}~~~wx}`t«u²uu§u¦t¨t¦olpqtnonmnmmvrsrou}ry
z}~~{}}~}~|}~~}~~~~}~}}~~~~~~~~~~~}~~}}~zs«a¤b~wzcv§s£onptttnnrupmozzqhgrªhw}zi~}©]{{|{|}{w~~~~~||}|~~~~~}~~~~~~~~~~{~~~~~}~}~}~|{{|}v©pc~{zet§v¥sjh}}}xlkx£t¤qll~|~{qkjt«hs|zd~~~uz}}~~}||x}}||}~~}}}~}~~~~~~~~~~}~~~~~~~~~}~|~}~{|{z{yngze~pl|{jx~~m}}mt{n|{h~~}~~{|~}}~}~~~~~~}~~~~~~~}~~
{}~|}|~}~}|~~~{~z{{~{}~}z~~~~~}~~~}~z~~{~|~~~~~~~}|~~~~~~}~~~~}~}~}}~~}|}}|z}y{~|{y~|}~}{}}~xx~|
~t}{
|y}
~{{||}}|~~}~~~~~~~}~~}~~~~~~~~~~~~}}~|}~|}|}~}z|||usq
pghighxhfihigqpqtn£u¬qt«x¨~~|~~wxv
srmsnrwr~~~~~~}}~}}~}~~~}}~~~~~~~|~|~~~}{~}~~|}z
}z|{{stutgifjfxgigieloqnmj p«rpªq|uM\v}~uuuqu~y
wvtt~}}}~~~~~~~~~~}~~~~~~~~}}~}~~~~~~}}~|}v{|~|~usrrliijizgfigkqqnphn¦n¤ts¨b~~Sf
vQk}uurov~rtwus
~~~}x~~~}~~~}{~~~~}}}}}~~}~~}}~~}}~|}~~~~~v
}||~stsrr
smksky
hfiilronngs§q§rpªg{{x
r
Jjvt
Nt~
sqqo~~~wv£t£yw§{{~}wx~~~~}z|}~}}~~}}}|}}}}|}}~}}}~}~~}~~}}~w|{yyprsrqrqt¥rsziggipoqonhyzxso£cut:Hu
xtxWttttrqz|~{y|xy~|~~~~zx~}|}~~}~|}{||}~}~}|~~|}}~{z{{}|~~~~~~~~~~~}~~~~|{}{
z{|psq
trrqrtv¥y
ihgopponour{}tk¡dL1@?JJYD|uwt|zxw~zxsvt~|~~~~~~|~}~}||{{~}}~}|{}~}||~|{|zz~|}{~|}|}}}~~}~}~~~~~~}||||u{wzvwuq
srrqq
sv¨x~y~nlrspqmleez}utfuh}irhZ{
ux{
wtuf}{xyvw~}~~~~~~~~}~||~y}|z
z|~~~~|}}{|~{}z|{}x}z}y~yy~z}|zy~y~|~~~}~~{|}|}~|||}|~w
zxzvytusrt
q
qu¦v¦t¢ru§rpt¡nprmfky|x|ojm
onr
qcc|y{uytsva|~|ywpw~~~~~}}~}~}
{
|z~zzy{}{}|{{{}y~{}y|y|yx|wyw|xzxzx|xxx{y~~}~~~|~}}|~}~~~|}~{}x
{}z{pstsrtsvu¨svmv¦x¤npqonn`v|j¬lv\s
fq{y}|x
ZOOV]``]wzxxw~~~~}~}}}zy~~wwx~}}}}|{{~|~|}yy|y{z}||z~|}{}}}{}|~~~~~~~~~~~~{z~}}}}~}t
z}~~ptrsrtspij{hghr¥mqnnjedd°md¢\~bHFCGTZdb`\YY^xwt~~~~~yz{{~}~~~}{|}}zyx~x}yy{x{x|v~x~z|~{~z}~}~~~~|}y~|}}~x|||~rrqtr
qqgiizhegloonkmdak±ik¬`TPQPIJQXYXTTTWWVYtr~tst
~~xvuzy~}|~|~~~~~~~}}}|}}}~}}~}}~}~~~~~}~}}y
}}vuqrrqshkjy
ghhipqmmkbqi®ij¯]uU`]WOINOQLPOPUSTVYYfx|vvykkiihir~~{yz}~}~~}
~~}}~~~~~~}~~~xz|}|vttsuv
miihziiihpoqnmdm¢m£sfk[c`cf=HMMGKLPOQOQSX[n_usx{~~~~}|wz~}~~~~|zy~~~~vuuuvwuv~~~~~|}~~~uu~|w{q|||zj|}nyy{x
ix
hw
y
xvadmlk¡h[kfijUVTQOROQUVWU[\[X]f|tw~~|{||{|~}~~~~~~~~}}}~~~{~xxzpx
wy xv{nyvy¢vuxmzvv t¡qz|
ok~{iilnttrWRPPPSSWYTXXY^ao
~~~~}~}~~~~~||~}~w~}~~}}y
~|}}yljj|z}t]`]X[[XZ\]^a`c~~~~~~~~~}~~~}|~~}|}{|}|}}{{|~|{}|{|zz||sb```]^^_`Z`]ah}}}~~~|~~~~||~||||{z}}~~~~~~~}~~~~}~~~|}}|~}}ww
x
xx
sid`babbcgccaddh~}~~}~~~~~~yzz{~~~~~{~~|~~~~}~~~~~}}|||{||zxzxx
y
x
x
hilfhfhieel~|~~|~~~~}{}||~~}~}|~}}}{|z{{z{{{z{||}}}|}{|{z{zwy
zy
zw
y
z
xy
y
y
y
y
z
zw{x
y
x
xy
z{v
w
w
vv
u
tvttwwuqonmoo
w|~~~}~|}~~{z{~~~~}~}~}|~~|~}{~~|~~|}|~||~~|{|z|y{z{z{{{|x
z{z{{|yx
z{zy
y
{x
{zyyx
x
wvvutrtyz{yzw
s
vu
uy}|}}|~~~~}~~~~~~~~~~~~}|}~}~|{|~|}~~|}{|||~~{}}{{zzz{zzz{{zy
{y
z|yzz{zzzy
{zy
yyzyzzvywvtvsvu
yx
ut
ttut
u{}~}}}~~{~}~~~~~~~~~~}}}|~~}}}}}}|}~||~||||{z{z|{|{z{|zz{{{z{zyxzzz|y
zyzzy
{zz{z|zxyxx
xwxzvzwwvvut
xy}~~~~~~~}|}~~~~~~~~}~~}}~}}}}{}|||||}z}}||||||z{{{|{z{{zz
zz{{zy{zyzzzxzz
zz}z{{zzyyvtxxwwvwwvuvvx|~~~~}~z}~~~~~~~~~}~~}}~~~}{|}}{}|}||~}{{|}|{|z
{z|zz{zyzy
|x
z|zzy
yzz{wy
yzzxz{{{}}ywxuxxww
x
x
wwxxzz|~~~~~~~|~~~~~~}~~~~~~~~~~}}}}{||{{}{z{|}{~||{|||{zy
yz{zyzzz{zzzzy|z{x{z{xyz||||}{yyywwwxuzx
xwzyy{|}~}~~~~}{}~~~~~~}~~}~}~}|~}}}~{}|{}}|}|}}||{{{{{z{zyy}{yxy
y{{y{|y{zzy{z
zx
z
z||{||}||yyvwxwwxvz{xy|}~}}~~~}~z~~}~~~~~}~|~}}|}~|}~~|}}|}~{}}{{{|z|z{{z{z|x
z|{{|z{{{zz{zzyzzz{{}~{~}{|{yzzxyyyy{z{{}~}~~~}~~~~~}~~~}~~~~}~~}~~}~~}|~}~|||}}~}}}}}}{{|}|{|{{|{|z|z{z|{y|z{{{y{{z{z{|||||{}}{zyyzzzwyyz{}|}~~~~~{}~~~}~~}~~~~~}~}}}}}|||}}}}}~|}|}|z}||||{|{|z{|{{|{|y
zz{|{|z|z{z{|{}}}~|}~|zyyz{{{z||y|~}|~}~~~~~}|~}~~}}}~~}~{}~}{}~~}|||}~|||||||{|{||{z{|{{|zzy{|}{z{}|}}|~}}~~}||x{{|y|}|{~~{~~}~~~~~~~}~}~~~~~~}|}}~|}~|~|}}}|~{}||{{{z{{z|z}|{||z|{}{z}z}}}z}}}~}}~}}|{}{|z|||||{}~}~~~~~}~~~}}~~}~}|}~}~~}}}}}}}}|{|{||}z}{}||}}{{|z}{|||}|}}~}~~~|}~~||{|~}}}~~~}}~}~~~~~~~~~~~~|}|}||}{}}|~}}~}}}||{{{||}}~|}||{|{}}|}|}{}~}||~}~~}~|~|{|}{}}}~}}~~~~~~~~~}~~~~}~~}~~~}~}||}{|~}}|~}~||}{{|}}}|{}||}|}|}|{}|}|}||}|~}~~~~}}}|}||}}|~}~~~~~~~~~~~~}}}}}~~}~|~~~}}}||}|||||{||||{}}||{|{||~|||{~~~~}}}~|~|}}}~}~~|~~~~~~~~~~~~~}~~~~}~~}}}~|}{}z}}}~||}|}}|{||}}}|~~~~~}|~~}~~~}}~~~~~~~~}~~~|~}}~~}}|}~}|}}||z}~}~}|}}|}}|~}~}~~~~~}}~~}~}~~}}~~~~}~~|~~~~~~~~|}}~~~~}}~~}{~~~|~~~~}}}~|||~}}~}|~~~~~~~}~~~~~~~~~~~}~}~~~~~~}~~}}~}}|}}}~}~~|{}}~~~~}}|}|}}~~~~~~~~}}~~~~}~~}~~~~~~~~}~~~~}~~|~|~}}}~~}~~}}~~|}}}~~~~~~~|~~
\ No newline at end of file
diff --git a/examples/libva_buffer_sharing/libva_buffer_sharing.cpp b/examples/libva_buffer_sharing/libva_buffer_sharing.cpp
deleted file mode 100644
index 88084fb..0000000
--- a/examples/libva_buffer_sharing/libva_buffer_sharing.cpp
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright (c) 2012, 2015 Intel Corporation. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include <errno.h>
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <va/va.h>
-#include "va_display.h"
-
-#include <va/va_drmcommon.h>
-#include "utest_helper.hpp"
-
-#include <getopt.h> /* getopt_long() */
-
-typedef cl_mem (OCLCREATEIMAGEFROMLIBVAINTEL)(cl_context, const cl_libva_image *, cl_int *);
-OCLCREATEIMAGEFROMLIBVAINTEL *oclCreateImageFromLibvaIntel = NULL;
-
-const char *input_nv12;
-const char *output_nv12;
-int frame_size;
-int picture_width, picture_height;
-unsigned char *newImageBuffer;
-VADisplay va_dpy;
-cl_int cl_status;
-VAStatus va_status;
-bool putsurface=true;
-
-static const char short_options[] = "i:r:o:h";
-
-static const struct option
-long_options[] = {
- { "input", required_argument, NULL, 'i' },
- { "help", no_argument, NULL, 'h' },
- { "resolution", required_argument, NULL, 'r' },
- { "output", required_argument, NULL, 'o' },
- { 0, 0, 0, 0 }
-};
-
-#define WIDTH_DEFAULT 256
-#define HEIGHT_DEFAULT 128
-
-#define CHECK_VASTATUS(va_status,func) \
- if (va_status != VA_STATUS_SUCCESS) { \
- fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n",va_status, __func__, func, __LINE__); \
- exit(1); \
- }
-
-#define CHECK_CLSTATUS(status,func) \
- if (status != CL_SUCCESS) { \
- fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n", status, __func__, func, __LINE__); \
- exit(1); \
- }
-
-static void usage(FILE *fp, int argc, char **argv)
-{
- fprintf(fp,
- "\n"
- "This example aims to demostrate the usage of gpu buffer sharing between libva and Beignet.\n"
- "The result will be shown on screen if you haven't specified -o option.\n"
- "The input and output file are nv12 format.\n"
- "Please use the following command to see these files:\n"
- "gst-launch-1.0 filesrc location=file_name ! videoparse format=nv12 width=xxx height=xxx ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n"
- "(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad, \n"
- " gstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n"
- "For more details, please read docs/howto/libva-buffer-sharing-howto.mdwn.\n"
- "\nUsage: %s [options]\n\n"
- "Options:\n"
- "-i | --input=<file_name> Specify input nv12 file name like /home/xxx/in.nv12\n"
- "-h | --help Print this message\n"
- "-r | --resolution=<width,height> Set input resolution\n"
- "-o | --output=<file_name> Specify input nv12 file name like /home/xxx/out.nv12\n"
- "",
- argv[0]);
-}
-
-static void analyse_args(int argc, char *argv[])
-{
- input_nv12 = NULL;
- picture_width = 0;
- picture_height = 0;
- output_nv12 = NULL;
- putsurface = true;
-
- int c, idx;
- for (;;) {
-
- c = getopt_long(argc, argv,
- short_options, long_options, &idx);
-
- if (-1 == c)
- break;
-
- switch (c) {
- case 0: /* getopt_long() flag */
- break;
-
- case 'i':
- input_nv12 = optarg;
- break;
-
- case '?':
- case 'h':
- usage(stdout, argc, argv);
- exit(0);
-
- case 'r':
- sscanf(optarg, "%d,%d", &picture_width, &picture_height);
- break;
-
- case 'o':
- output_nv12 = optarg;
- putsurface = false;
- break;
-
- default:
- usage(stderr, argc, argv);
- exit(1);
- }
- }
-
- if(!input_nv12){
- input_nv12 = INPUT_NV12_DEFAULT;
- }
- if(picture_width == 0 && picture_height == 0){
- picture_width = WIDTH_DEFAULT;
- picture_height = HEIGHT_DEFAULT;
- }
- return;
-}
-
-
-static void initialize_va_ocl(){
- int major_ver, minor_ver;
-
- printf("\n***********************libva info: ***********************\n");
- fflush(stdout);
- va_dpy = va_open_display();
- va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
- CHECK_VASTATUS(va_status, "vaInitialize");
-
- //ocl initialization: basic & create kernel & get extension
- printf("\n***********************OpenCL info: ***********************\n");
- if ((cl_status = cl_test_init("runtime_mirror_effect.cl", "runtime_mirror_effect", SOURCE)) != 0){
- fprintf(stderr, "cl_test_init error\n");
- exit(1);
- }
-
-#ifdef CL_VERSION_1_2
- oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddressForPlatform(platform, "clCreateImageFromLibvaIntel");
-#else
- oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddress("clCreateImageFromLibvaIntel");
-#endif
- if(!oclCreateImageFromLibvaIntel){
- fprintf(stderr, "Failed to get extension clCreateImageFromLibvaIntel\n");
- exit(1);
- }
-}
-
-static void upload_nv12_to_surface(FILE *nv12_fp, VASurfaceID surface_id)
-{
- VAImage surface_image;
- void *surface_p = NULL;
- unsigned char *y_src, *u_src;
- unsigned char *y_dst, *u_dst;
- int y_size = picture_width * picture_height;
- int row, col;
- size_t n_items;
-
- n_items = fread(newImageBuffer, frame_size, 1, nv12_fp);
- if(n_items != 1){
- fprintf(stderr, "Haven't read expected size data from file\n");
- exit(1);
- }
-
- va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
- CHECK_VASTATUS(va_status,"vaDeriveImage");
-
- va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
- CHECK_VASTATUS(va_status,"vaMapBuffer");
-
- y_src = newImageBuffer;
- u_src = newImageBuffer + y_size; /* U offset for NV12 */
-
- y_dst = (unsigned char *)surface_p + surface_image.offsets[0];
- u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
-
- /* Y plane */
- for (row = 0; row < surface_image.height; row++) {
- memcpy(y_dst, y_src, surface_image.width);
- y_dst += surface_image.pitches[0];
- y_src += picture_width;
- }
-
- assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
- for (row = 0; row < surface_image.height / 2; row++) {
- for (col = 0; col < surface_image.width / 2; col++) {
- u_dst[col * 2] = u_src[col * 2];
- u_dst[col * 2 + 1] = u_src[col * 2 + 1];
- }
- u_dst += surface_image.pitches[1];
- u_src += picture_width;
- }
-
- vaUnmapBuffer(va_dpy, surface_image.buf);
- vaDestroyImage(va_dpy, surface_image.image_id);
-}
-
-static void create_y_image_object_from_libva(VAImage *surface_image,
- VABufferInfo *buf_info,
- cl_mem *yio_p)
-{
- cl_libva_image info_image;
- info_image.bo_name = buf_info->handle;
- info_image.offset = surface_image->offsets[0];
- info_image.width = surface_image->width;
- info_image.height = surface_image->height;
- info_image.fmt.image_channel_order = CL_R;
- info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT8;
- info_image.row_pitch = surface_image->pitches[0];
- *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
- CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
- printf("\nSuccessfully create ocl image object from y plane of VASurface...\n");
-}
-
-static void create_uv_image_object_from_libva(VAImage *surface_image,
- VABufferInfo *buf_info,
- cl_mem *yio_p)
-{
- cl_libva_image info_image;
- info_image.bo_name = buf_info->handle;
- info_image.offset = surface_image->offsets[1];
- info_image.width = surface_image->width / 2;
- info_image.height = surface_image->height / 2;
- info_image.fmt.image_channel_order = CL_R;
- info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT16;
- info_image.row_pitch = surface_image->pitches[1];
- *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
- CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
- printf("\nSuccessfully create ocl image object from uv plane of VASurface...\n");
-}
-
-static void store_surface_to_nv12(VASurfaceID surface_id, FILE *nv12_fp)
-{
- VAImage surface_image;
- void *surface_p = NULL;
- unsigned char *y_src, *u_src;
- unsigned char *y_dst, *u_dst;
- int y_size = picture_width * picture_height;
- int row, col;
-
- va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
- CHECK_VASTATUS(va_status,"vaDeriveImage");
-
- va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
- CHECK_VASTATUS(va_status,"vaMapBuffer");
-
- y_src = (unsigned char *)surface_p + surface_image.offsets[0];
- u_src = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
-
- y_dst = newImageBuffer;
- u_dst = newImageBuffer + y_size; /* U offset for NV12 */
-
- /* Y plane */
- for (row = 0; row < surface_image.height; row++) {
- memcpy(y_dst, y_src, surface_image.width);
- y_src += surface_image.pitches[0];
- y_dst += picture_width;
- }
-
- assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
- for (row = 0; row < surface_image.height / 2; row++) {
- for (col = 0; col < surface_image.width / 2; col++) {
- u_dst[col * 2] = u_src[col * 2];
- u_dst[col * 2 + 1] = u_src[col * 2 + 1];
- }
- u_src += surface_image.pitches[1];
- u_dst += picture_width;
- }
-
- fwrite(newImageBuffer, frame_size, 1, nv12_fp);
-
- vaUnmapBuffer(va_dpy, surface_image.buf);
- vaDestroyImage(va_dpy, surface_image.image_id);
-}
-
-static void load_process_store_nv12()
-{
- frame_size = picture_width * picture_height + ((picture_width * picture_height) >> 1) ;
- newImageBuffer = (unsigned char *)malloc(frame_size);
-
- VASurfaceID src_surface_id;
- VASurfaceAttrib forcc;
- forcc.type =VASurfaceAttribPixelFormat;
- forcc.flags=VA_SURFACE_ATTRIB_SETTABLE;
- forcc.value.type=VAGenericValueTypeInteger;
- forcc.value.value.i = VA_FOURCC_NV12;
- va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420,
- picture_width, picture_height,
- &src_surface_id, 1, &forcc, 1);
- CHECK_VASTATUS(va_status, "vaCreateSurfaces");
-
- //load
- FILE *in_nv12_fp;
- in_nv12_fp = fopen(input_nv12, "rb");
- if (in_nv12_fp == NULL){
- fprintf(stderr, "Can't open input nv12 file\n");
- exit(1);
- }
- fseek(in_nv12_fp, 0l, SEEK_END);
- off_t file_size = ftell(in_nv12_fp);
-
- if ((file_size < frame_size) || (file_size % frame_size) ) {
- fclose(in_nv12_fp);
- fprintf(stderr, "The nv12 file's size is not correct\n");
- exit(1);
- }
- fseek(in_nv12_fp, 0l, SEEK_SET);
- upload_nv12_to_surface(in_nv12_fp, src_surface_id);
- fclose(in_nv12_fp);
- printf("\nSuccessfully load source nv12 file(\"%s\") to VASurface...\n", input_nv12);
-
-
- //create two corresponding ocl image objects from source VASurface
- VAImage src_surface_image;
- va_status = vaDeriveImage(va_dpy, src_surface_id, &src_surface_image);
- CHECK_VASTATUS(va_status,"vaDeriveImage");
- VABufferInfo buf_info;
- buf_info.mem_type = VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM;
- va_status = vaAcquireBufferHandle(va_dpy, src_surface_image.buf, &buf_info);
- CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
- cl_mem src_y, src_uv;
- create_y_image_object_from_libva(&src_surface_image, &buf_info, &src_y);
- OCL_CALL (clSetKernelArg, kernel, 0, sizeof(cl_mem), &src_y);
-
- create_uv_image_object_from_libva(&src_surface_image, &buf_info, &src_uv);
- OCL_CALL (clSetKernelArg, kernel, 1, sizeof(cl_mem), &src_uv);
-
-
- //create one target VASurface & create corresponding target ocl image object from it
- VASurfaceID dst_surface_id;
- va_status = vaCreateSurfaces(va_dpy,VA_RT_FORMAT_YUV420,
- picture_width,picture_height,
- &dst_surface_id, 1, &forcc, 1);
- CHECK_VASTATUS(va_status, "vaCreateSurfaces");
-
- VAImage dst_surface_image;
- va_status = vaDeriveImage(va_dpy, dst_surface_id, &dst_surface_image);
- CHECK_VASTATUS(va_status,"vaDeriveImage");
- va_status = vaAcquireBufferHandle(va_dpy, dst_surface_image.buf, &buf_info);
- CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
- cl_mem dst_y, dst_uv;
- create_y_image_object_from_libva(&dst_surface_image, &buf_info, &dst_y);
- OCL_CALL (clSetKernelArg, kernel, 2, sizeof(cl_mem), &dst_y);
- create_uv_image_object_from_libva(&dst_surface_image, &buf_info, &dst_uv);
- OCL_CALL (clSetKernelArg, kernel, 3, sizeof(cl_mem), &dst_uv);
- OCL_CALL (clSetKernelArg, kernel, 4, sizeof(int), &picture_height);
-
-
- size_t global_size[2];
- global_size[0] = picture_width;
- global_size[1] = picture_height;
- OCL_CALL (clEnqueueNDRangeKernel, queue, kernel, 2, NULL,
- global_size, NULL, 0, NULL, NULL);
- OCL_CALL (clFinish, queue);
- printf("\nSuccessfully use ocl to do processing...\n");
-
- va_status = vaReleaseBufferHandle(va_dpy, src_surface_image.buf);
- CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
- va_status = vaReleaseBufferHandle(va_dpy, dst_surface_image.buf);
- CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
-
- OCL_CALL (clReleaseMemObject, src_y);
- OCL_CALL (clReleaseMemObject, src_uv);
- OCL_CALL (clReleaseMemObject, dst_y);
- OCL_CALL (clReleaseMemObject, dst_uv);
- vaDestroyImage(va_dpy, src_surface_image.image_id);
- vaDestroyImage(va_dpy, dst_surface_image.image_id);
- cl_kernel_destroy();
- cl_ocl_destroy();
-
-
- if (putsurface) {
- VARectangle src_rect, dst_rect;
-
- src_rect.x = 0;
- src_rect.y = 0;
- src_rect.width = picture_width;
- src_rect.height = picture_height;
- dst_rect = src_rect;
-
- //XXX There is a bug of X server which will cause va_put_surface showing
- //incorrect result. So call va_put_surface twice times to workaround this
- //bug.
- va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
- va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
- CHECK_VASTATUS(va_status, "vaPutSurface");
- printf("press any key to exit\n");
- getchar();
- }
- else{
- //store
- FILE *out_nv12_fp;
- out_nv12_fp = fopen(output_nv12,"wb");
- if ( out_nv12_fp == NULL){
- fprintf(stderr, "Can't open output nv12 file\n");
- exit(1);
- }
- store_surface_to_nv12(dst_surface_id, out_nv12_fp);
- fclose(out_nv12_fp);
- printf("\nSuccessfully store VASurface to dst nv12 file(\"%s\")...\n", output_nv12);
- printf("\nNote: The input and output file are nv12 format.\n");
- printf("Please use the following command to see the result:\n");
- printf("gst-launch-1.0 filesrc location=%s ! videoparse format=nv12 width=%d height=%d ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n", output_nv12, picture_width, picture_height);
- printf("(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad,\ngstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n");
- }
-
- //release resources
- vaDestroySurfaces(va_dpy,&src_surface_id,1);
- vaDestroySurfaces(va_dpy,&dst_surface_id,1);
-
- vaTerminate(va_dpy);
- va_close_display(va_dpy);
-}
-
-
-int main(int argc, char *argv[])
-{
- analyse_args(argc, argv);
-
- initialize_va_ocl();
-
- load_process_store_nv12();
-
- printf("\nExample run successfully!\n");
-
- return 0;
-}
diff --git a/examples/thirdparty/libva b/examples/thirdparty/libva
deleted file mode 160000
index f974172..0000000
--- a/examples/thirdparty/libva
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f9741725839ea144e9a6a1827f74503ee39946c3
--
2.1.4
More information about the Beignet
mailing list