PDA

View Full Version : [SOLVED:] Fastest way to transform data



cwojtak
11-07-2022, 04:10 PM
Hello, I have a workbook with many rows and columns of data. The first column always has data in it, the other columns sometimes do and sometimes do not have data in them. I need to transform this into a table with 2 columns, one for Product ID and one for the data value in row B and C where there is a product value.. So the first row in my example would turn into two rows, both have 'Hi' as the product ID but one has x as its data and the other has z. I've attached a workbook where I do this two ways - one with an array then looping through the array to write the values and the other as a loop where I set .values = .values. Both take about 25 seconds to run through ~250k cells. In the final project there are 67 columns it has to loop through and some uploads get to be 30k rows so ~2million cells. Wondering if there is a way to do this with advanced filter that may be faster or a different method entirely that would make this faster?

Original Data:
30316

Transformed Data:
http://www.vbaexpress.com/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOQAAAByCAYAAABDaH3TAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA7pSURBVHhe7Z2/b JIG8e/vH9GOrQ4WuWoTqlAuiJKsSFKtBUVUqoQXQXNpkJaRUqVbaA6xVSRqKiiRYEUEcVJuErJoihmha5 Jdfcn3PHOL4ztkMSGgCfx85Gs Ac2eWbmO8/M4Hkm8fDwMAZBEFrwP/V3qfz9999qj/AT97Qh 732r0SQ//77r9oj/MQ9bch r/0kyIihAkn2uyFBRgwVSLLfzVIE c8//6g9CQnyaahAkv1uXl2QXIx//fWXOpLolOjd4zWsHXfVUfREkzZdHK xdHC2fdRH6tKKibZsjFDfd6fDMUuZ1bJUQc4SI0cbQY7qqN4VULi7XnnCP0V0abOJk94DHh7Y1v iIr6U6K56rJzr7eaWURWuvJ9OAbz0DP1dcMJYmyKfEyNFFkKObFrD3O37fu0M1KpfgQ4u0SRpMn tEQlf3d4wLuTnr4fphUZxjJQxxuqf0VsRRBPidGjh6CHEHocTuJ5PYe0LqJxCP40SFtZEW1DVfR XBnR2N/FdaOAsluMEfHqgnxJjBwtBDm6QQt7YHpkNeE222vhRgNFRpc2t/ialX2nbGsPtYgKZyT2j37iTu1GzasKMogYOToI0usFkpBOMnpFRpc2rj5k2UY2ggENTiT2Jz/go9qNmlcTZFAxcqIXZBd/fL3F7desM6KWFcd/RD64o0Nlha1PYD0q/IygforG/iSMzQauNRjZexVBhhEjJ/JC171GY/MEvclomth6ONEgU7QQJE8f5jM RNBqjUqQh UCGoU1eH4BG9VRX3F5WFiQYcXIibrQda8b2Hw0aMGbrZtoRKzI6NJm2odcK9yx5usZVjzAKIjM/q0zPPROcMdEOWk1rZWA7YhHWUNNvwojxl9//VXtAX/Sd 03dUS4iXvakP1e wN7yHk844SoPaTOxD1tyP4FPOS83NzcYHt7Wx0RbuKeNmS/1/6FfvYICnnIpyEPQfa7IUFGDBVIst9NYjAYjPnJ//77T1yc9fe5a0E wzeCIF5mJX3IVquFYrGojgg3P378wC //KKO4gfZ77V/JU1WgiCCQYIkCI0gQRKERrxfQXaOkMjWMFSHBPEWCClIGYtlf8HZ9p2jBBIJ93aEjrqmG8NaFom jp/87YYtzfYha1m9bAs/c7mPW/ctNG2Ef 55sTYeqa7X2T2yfbMHzaXkEFuSovo 1tWsYJ68T7CFTtTEej8VmV/vIaSzKsLhtG7eLMHPhCrz7/nbRRG4pJaWDI1YID1BBNaNOacJK7B/WcNDMw1bfY7NEMHPRl8HAgkwefsfDwxmW8ZJTqlQBK7a4FKnBC0oWtRprcnpqSH/t6Us8lsBZ5xq7/16dF8h7Pfnqb9J67ueflfcYZQssp8S5ubzIzrkQpVX Nldm73wuAv376f/5TDo88ubcRk86SRHKj zgnBXEXskQV3RlafanSuj1SkjJC0jt5pFBH/dzZPFrokcfcnjPkiKDDadsWCiXgbaovc5Z0eGZYKCcbjs1p9ersusH7AanZq1gUDbFlWCwjDLc9 7eB0yvs9mTNiaL83l5pkn0h2fnsqnDCwOw6ZXak11XBeT4dRKEyL50CyJIVmYzre0U6F/F5Rx1rzwrttwes1KWxPmcWvxZaCLLzrQwrk8euKzGKbS5ExfAKTauI9vk0JaVXVTWaul5xBMNqf aVAtO5ZHLx3e qPVeNVTZU7W gmWeVxMTul9Ihtc6K1KQADnHVBCoVdlVV 0N2wip nqarpqzefin8TPVL5GkTmSCniZ5Arl F/ZwARO3lx8BGxsLAZrszr4cks8GeqAdOH8rf1H0pHVhxki08XgBtDNKs8BkbQPOKFTleQC0U34B7 XLX9nSPmdVHFxbwtoFckMkF6Bj5e8kYsUR PO7AEt1Qzd b1kFgD9sQloTxwaC3sfEGVNblOJ33Xl9KBwftcFi A7Dv7/GRqF3k0cTXkn3tLzVXGCuzno QvOoQVokcf8iV4orKMcY 2DWunMCfNXNVUcTKOD9Dk3H3IFNbTgDnpTPivqz6ecz rk4/cAz6eQYWQqO arzmUQok1uRwv8VI6cLgtVhPfLvus6yUSh9nOPMg3Vim8geaql2Xaz/ujeolRwF8uD7P1TjbHmye9mdee2s7Pz5kjnMJaImPmIdWRn/aYtTrGxbY6dJDn2b8st0x17HmCXR2z2lNdL47b/NjzGff97Hq76H2G5/7M2Pn3XOdn/c/cFtbhVUf2uJqZPGOyuZ41g36/r/Y48n7v9/jT44V0YIj/iduojtkJ8Vlvmvqeo7an82U5RGa/Ovdo8ybS0vHaPx7TbI IodkOZD/N9iAITSFBEoRGkCAJQiNWFsIjm82qryQI4iloUCdiaFCD7KdBHYLQFBIkQWgECZIgNIIESRAaEV iQMmLAZOmuRVbble8Q if7ismlrvdHRWgMiolDxIyAguziD7vsLHbaO7lDwbPS5euzcx5gFghBvDMCCnILZ2fTlSyT23vY vPuJZa6A7Q0eFRNEGJEsnMaD//i9I yVc2TlFiPbFfP1IUc2bj9 8K1ITCxMqoSLKlA 4E111rQ/4GFFLqDBvNnVwOPcqDmyInSKL4pEHAgvyFEd wWg4fKY8 COGMA3EUyKkCEprDIOsgfazGJfPR18E3VR/LosoQQpBnZKQO1h8fXoM 6IAZMakWDIeECWZaFYiWcfunOUg1msxKdl4CKwILkYS6jh4fshNVWXSgdHuT6qVR7P1R3CMCZ0j pAzvYGs4kQwQbJmasku4/shSXHZON6hJOPJLCdIsq7wysj0RhyMGQEFaeO2UXD9Dsm3fSy4ogDhx MdUihdVJExT Mz0iiCgfG41NOxhbgNtNNsj4ih2Q5kP832IAhNIUEShEaQIAlCIyiEB0FoBA3qRAwNapD9NKhDE JpCgiQIjSBBEoRGvFlB udLxnL JPHuCCzI7rHrtbn9 gKTk4OF8CCIOBJQkCP8NBpOCI/Gx6/ILjmEB0HEkYCCTOLwcDoDcutTQe0tE lJJy8ZJxJhpyI9fb/wxu7mbefI9/wOjmL4YnPUPO52zG5NvWfm6kN2rxsofFp0ivLziHXf023XBOY coGbtDwjZ9yvRJfazSNjXk4Feg9kMiYmCyzzE/15liAnFoIvRw5XvmB4haaVQT5GcTyCC7J77PQhrz89YMEIHs H8BjWcGpmUP0yVYQMbcHXilcnnkNkpHeSq7ifyeye36 WQJcCHOKqCVQq7Kq4yG9vwnpzy3 /A9TS8s7K8yIf4hU5ILggt86cPuSn60UHdoKE8LBQNqaCTSRyYq5cIOwBu9uPgY2MhYHN93fAK2M pQBuDNBOfsQE0r5g8uUAtFMk9RsAOvrByYApFxjMf5mqybp2xJuutvdQwkGB1ZdslWLn1gtWWTF yPI/Qw4bHmz4Yhj3jzyOIC7Fyiz0 mdpEH98D8c9RcjQqnO6FaOXHLh2CCHNVRdw2qjupVNDaN5cXW4eJgfbrTeTvz6n53 Ith7RSmO6wgbx6xJvC3yz7S6/xkCutp5kG/XcKk5mp0TPLOKMey2xBMkMkPsAvT3yGzrT30lhrsKoVSz0a 6e1nBv dkt/fRtHMOfcazTxsTyR03my1YJpppxbmXtM0TWquRkoKu3nZvoljPtBsj4ih2Q4z7Oc/Q XAuizvP9gVzfYgtKdzaXL3GMtuAwmS0IwOpB7j2W0gQRKasYPz8RgxjZNMITwIQidoUCdiaFCH7 KdBHYLQFBIkQWgECZIgNIIESRAaMYcguzheW8OiAQP8k4TF5FQK4UHEnNCCFC Wq/3XZOd8jLHnXVOCiB/hBMkXbm3t4WQJETy84Rv4jP8sakMZSkO IM5n 7vDcvDr6uPvhWENWbdd/mPi3RNCkCPUSy3s1Q7xQZ1ZLnyC8iU i3mQtlxNOGFgUJFzI 0qUD54Z03cVAkXjl2s8jkoA9WLWK61H1cCC7J7nEVrr4ZVrmo XdpaTckptp1XqlLraabZAUQAgHeEDFVSxkH2AGVUcUFqjBXBBNk9RoH1HL vUo2xZQfn7SIsy0KxQn3quBFAkKypWm0AjYIzQbkgDtewX19uEI94wvrNuT6q1SLMXNjQl8RbJ4 Agkzj8LoNbTTamTSbKh4U8pj14HIaK4INbOZg80lrpi w3U3DYWBFiUOc1mI6a5kxvmEaC0TlypUsKpYsqMuYpjbLGCJrtETE024Hsp9keBKEpJEiC0AgSJ EFoBIXwIAiNoEGdiKFBDbKfBnUIQlNIkAShESRIgtCIdy3Ix0tkBrSFCUAo2Q813j/LZgYEGO6vvOy VimzOGhwjd4ReBmIj7OCNmfpYg3jGhPCR/odx5yXzONc3Fgpz pcnVisdy5dwp/AX0TH6XpiARsSG4h7Rv1d6CiAU5LTRdiuSrHWWKRblyrjrHX0S/NDPIOyususN38M09NYm/tJ5FrcaaoI uuVCeWH6Gff5enSc0wx26JV4hTEJ5SD4HUjZZjzF/0Dk5 9 Si/0zlPC fEYaJhwn2blkR2mIxY2FGA2U021neXO72kfOIzwL5TJfU5Bfn7Wu4CQkhq2eUcGgbKprhE6YuVN s2K5QLUZ85oUGFuTW2bS52ju5Q2G/jnmnJ4vwGxNvOLxHXyw1zlc0Bvr3sjoc3venawSq9ebd07VEqAv0oT4umIb8mIF6RsUJiSFn5hP 6UWz3nDhCs/L5PRPKQ05IHtZwghZu5lUkX99fecPhVRNWel30E/mS4lbzivmyIa6a1nSNQNXH9GJggzV9HUf7EjOfQbwNQuTzG2cuQfKwHvbtR3yYO2DA1BvygRtHe FyofMCnI72Zs2ansQG56rwbGwMrgw1DHb7EzGcQb4MQ fzGCSjILo5dP3OIYMmFT5hvnFUiveEBTk2X8JTXa54yr le0loMBHnDWQxrpzBFU1edeInUuuijnk5GCPgAT476kDpi5qYDOaHz Y0T3EO6glxlW3vozfmzh4PwhhaszAaT4QQ14MMjrnmWtE6h1GujaObUyFsCRjMPO1Skc9ZnlCME 8hnGABV2TF5TNzKotvNoGiqfy2m0YxTRnmZ7RAzNdiD7abYHQWgKCZIgtAH4P9/MeT0qJ1QrAAAAAElFTkSuQmCC
30315

http://www.vbaexpress.com/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ0AAADoCAYAAAD17LGNAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAG08SURBVHhe7b0FeBxHurbt//q 8x3YPbvn7G424CSOY4qZMWaQGWVmZmZmZmZmZpRtmVmMFrOGNGKWrPuvGs3YI2VsK45sj7z95Ho uOdM001V191vV3fUWioyMxBqsVqsJCQnB09MTX19fw2cqleo36ym2PpvKzsvLCx8fHyIiIpSy 4yW5REaGmooj5cvX Z7eVgdNDw8PAwVT36mVLyCYXPgf4xKqvj32QQNWR7e3t5fNjSCg4Nxd3c3VDz5mVLxCobNy 5jVFLFv88maMgLsIw2wsPDDZ9ZWvdDbFXQCAoKwtXV1fBDTZ/lXk x9dkEDTc3N0PZSWgoZff5LM 9jPxkecho44uAhrwKmWz6TP4oCQ1nZ2cFGgXMspwkNFxcXAyVVIHG57U89xIasjxk9PdFRxqBgY E4OTl9mRVPpUGtjUKn1aLTCGCKzyJyr1NALctJAl WnQyJC1bZyYuXBo1OlE1UFFE5rEUrykptcTvrtTz3EhryAiyjjQINDRlZyC8fFhZmAITsd5k 12g0BAQE4ODgUAAr3rscYbBKqycqNonEuDji9QIgKgGNCEvrFzzLspPl6ejoaLiyFaSyi4hQC5h HE50oyiY5mWRzJ8UTpxfgUMkyLDiQl UhIz8JcdndL7DQMAFDVig5WCYrmLy1Kj8zh8bz588NdPwyoCFgodYKYMQQ6euA5/2jnL55k/MvgggKjSTaGHFY3rbg2ASNFy9eGCppwSg7GWGI764TZeH9hEdnj3Fi7052bNnElk2b2LhF/Hv/FW47 xOoizH8Ho3hAmBpX9ZlEzTkBVhGGwUWGvJLy8rk5 fHo0ePuHXrluGqJH goUCM0Hj27FkBqnjvt0YXjVYfi9 NDewdW5lfuw m3dqHPPOJICVOZ4g4LG1XUGwOfFl2sh9dMMpOi0arIjbZBaery5lfrzJ1fviRIj8V5aeiRSn6Uw l qdidQeuvcd4/hhABf73G0n6sz7I8ZHdRXoBltCGhIT ztO6H KNDwxRhyH9LYDx9 pQrV64YLCOK3NB48uRJAap477KKSJWWKG0EMRHPubV7PP3rlOC775rQbOQ Lr8MQp0ai0ZAoyBHG bQkGUrr2wFo x0Augq4tOe8fDIJIZ/VYQq39Skfv JDJw4ldmD2jGwZTNq9FpE/93PeBQYQVSMiBoLQHmZoCEhLiN6ORxQYKBh3iWRwJA/4vr165w9e5Zr164Zxi7MoeHv78/jx48LUMV7lwU0tHHoI16id1jHzpUjqNd4OC3LtGfq8KmsfuDCPW0sOnGOdAU42jCHhiw7eWUrON CIJC71GQ8Oz2Z8scb0areUza7xeMdnQMglXPaPolGzIVQbuJ zHoGokkQ3pQBBQ0JcdlEKFDQsAePixYucO3fO8G8TNEyW6z18 NBAxwIPDQlMfRIaf0f8jw1l6eyhNB27mwWjBrJhSg96bbrOtscqojRqorUF93eaoCGBL7udspLK ssvPSvpxbA6NOUwo3pS HVezwzuNwHQg7j6 l bQve0YWvbfx0X3ACKSogsMNOQYk4S47KIUCGjIiiQt/20OjAsXLhigcf78 bdC48GDB68rXsGFhuyaiAgiIY4Qd3vsZ7dn5ohhDNl7j0vnV3BoUV aDtjFnINuhEWp0UdrCmwXxRwasuzkYGhBg8Z9AzSa0d92HXsDIVwwg/ALuBwcRIM k 5yYPXoaij48qUNCQEJdtz qhYQJG7ghDAuPSpUtcvnzZIjS0Wq3hbsq9e/cKUMV7m UdITWxiUG8fHKczT07M6bXdNbfdccjRERbG6fRxWYak1dc5plGS0RMFBqL 7F y7KWZSfL v79 4YrW8GCxnMeHZPQqEOHBqOYdvw p 4 5c6uOWye1pm i3ay4EoIfiFqEgTgCwLcZXlIaEiIyy5KgYCGrDTyymPeJZGWwHgXNOSLanfu3ClAFe8tVmlRqTU kaR/hfHU1o9qPpO/AHVz0DkKTKbpgh5Yzs1lnJs7YzjHfKHy1MejV1n8Fs2QTNCTw7969ayjz/B6t/zjOHgiNS3Xg2dlZTCpZlAr/8z0/la9K arVqVymAVXbTWH26cc808YafmN0ARl7kt9VjjHJC7C8sWC10DBFGPLf8qojG74pwjAHxvugYW9v b6h4BRoammgBjWgSvI7z8OBoug9bw9B1rvjHp8nAF 2TY1wZ15qJM5cy544Kp5BoErUF85kNc2jIspOVtMBB48xsJpYoQbVvSlO YSsatWpDxxadadt9GsPnHGTn1Re8EL8pPFpcDMS21l5OJmhIiMsuilVDQzZ0U5fkxo0bObokeYW GfH5DhlQFGRrqqGjUokKGXlvGsckNaT54Dj3W3sP qSu fj44nN/EiSn16TJoLB3XOXDTQ0VCbPZTopb2Z802h8bt27cNg28FBxrZYxoPj8ruSQO6NZ/J0tuim UXRpTzce6sH0rLcp2o3mYN2xz9eJkUh1b8XmvvSpqgISEubyxIaMjPLK37If7D0JCVxjRg a4uSV6gIV Jv3nzpuFqVTChISMtDbpYNdoYBx5tHMTEkn/mxyIl Ge5BtSt34hmTZrRqEY5apb4b/7xY0N ab HnU98CU0ToCmA7zmYoGECvryyFTRomAZC 9muZbdvJqGvZDzoRqj9Qkb9Up 6pUcx76oXT6IT0anF77VyuMvykG1RQlyOa8jXNawGGubAyEuEYfK7oCG3lxWvwEJDpSdW709M0B F2TuxM7b8Up2y5atRt9Ct16tSmVs1a/Fq/LnXqVqPcd6WoUqEPM86Iihubgkr83oL2zIY5NOzs7AxXtgILjU5r2OWTQUimhIYnofeXM6FcQxq VGSmg4cnjAgYNeQGW4xpWBY23PYfxLmBIW4KGTqczvJMiH/qSFa9AQkMlAKqLIzb4OeqrUxnfx5YfGs1iwvZLPHIXfefnT3n66CkOri949PAku4f/yqB6Femx7AK7nJOJUGmI1lrYrxVbQkOWnQS LFN5ZZPQyM9K nH8BhoPDs9i3E/16GIzi X3gnkSrCbO/Tj31vanaYk2VGi2ks0OfngXgO6JqTxkm5QQl MaVgEN8wjD1CWREcK7uiTmfhs05DwaV69eNVQ8CQ3rr3g5Le YaGJTiXS wpPFNenStiGlxl1i74tossR/r15lkJ6Wjox 0xND8NvTg3m2JSjZdx0jjgUSFqkmQV wQGmqpCbgy9uuBQca2Y RPzo2iRH//JayfylJ2Wa2NLftSq8WtWhZpR61Oi5kxJ7n3A JQB2nNXQfrXkg1Bwaso3Ju5GfHRrmwJBfzHSXJC8RhsnvgoZcLitewYSGHMtIItjlFrfXdmL2jG FMOOTIbQ8d8XotOq3xjV69uGJFhqO6s4lDq0bQauZOZp10JTxCRVxUwYWGfJ9IhsMFAxoCAFoV0 YnuuN7exJpONrStUomK5ctRvlw5Q5eyeoMRTNn/gDuRCURqtIbb4pb3ZT02h4aEuBwM/ezQkMCQlSJ3l8QcGvLvuywfIzd/98QEDTn5jtyPrHgFERpyTEO Ch8e7I fy32cnJ7h5BNKUJg654tpohsj/60O8uKlxwvuOXrg4B1smK9BI/rMv92v9docGrJs5ZWtYEBDPiIgykATSmiAB26P7nH/5g2uX7nMlcuinl65zvXbovz8QgmL0otyUYsow/pfjTeVh7ybJSEuB6c/GzTkl5GWt29kBZGDlfJLnTlzxvACmowe8urTp08b4GJ6Nd4EDQkROYgq 2EFExrCESKCEODQxiQTF59IQrT4beIKlWPCHfHbDH/lQ12xiaTERYsIIzt6K2gT85hDQwJfXtkKBjSynT0JTwyxySkkp6WRZubUlATio0WEWIAm4TGHhm xjcjD0s0PDNIGsjAbkQIv8UpJmv8dy/ENekWRFyw0NCRW5rMBCw2B5rkRllFcn8wgjtw3nVK4nunwF7K6JyaZKKruWEvjyNl9BgobBshzU GhF1ZNfFN5blJ5ZZ2sZKbQ4NGfnJNiqhIT ztP6H Hd3T2SFkK/dyi8lR8zl399reXtOdm/kjzHBSM7JKKEhoxZZ8Qo2NP51bCo72bWU3U55ESlw0PiCbCoP2cYkxOXwgZwv9LNCQ34peQWVJJ YV449Y7su0TxM0ZNdFRiMKNAqGzaEhu6ryyqZA4/PZHBqmscN8h4Y8yO 1Iew2Omc49/tt2kdMTIyh4p06dcoADXkcvV6f41iKrc mspNdTQl8CQ1ZsaKjoy2ur/jj2lQeMpI3TXYlxyHzszxeQ8PSwrfZ1ODfZfOI4n2WZIyLizP0i0 ePGkIceXnsbGxBkIqtl6byk52VSXw5XiVLH l7D6PTeUhn5 SkZ987klG7flZHoXke/fy5RZpeSBJKGnz8QdZIaTl1URaNm4ZFUjLLoW0vBMiB0il5cTAcp5PaTl1n7ScBk7OyCUtJ9mRc 2ZIy c8pOXnMsI4ePCg4YplmnVI/lVsvZbvCclykqDft28fx48fN9xZU8ru89hUHnJccP/ /Rw9etTwsGR lkchU4M3NXTZwE0NWx5IPosh3zqVX0ZWBvmIt/wS8u6JvDUqb7HJLygbvAxN5ZVGhkSScPKWrLztI2/FyUEZeWdE9rMkAeVVSfrEiRMcO3bMYAmMXbt2sXfvXg4fPsyRI0cUFxDLstuzZ48BHErZfX4fOn Too5VHIVN08bbIIndUYYooJGTMQfOuSEKCxxw klYSQOYQkv WoJE/UsLFFKGYIhbF1mtZTrKs5UVElqVSdp/X8tzLNijLQz5dLdtmfpbHHx4I/SM2H/ QgzcSRpJkEiqKCpZSUlIMt Jl/VD0 ZWRkWF4pkqOZ S38gQNSw0 rzaB4V02DXpKaMg mAKNgqfU1FQFGlakjwqN3PdgP4dlRZOjvjL0kZGG7LK8emWYCUVRAVFiYiKyqyuf0cjKyjJ quhzSUZ 8uaGfIAyM9MwQUi SYGGonyRAg3rkvVCw9h9MdjS8jxagUbBlwIN65L1QUO iRmhRRsdT7z4ckkJMcTqssHxIW9pFmxoZECsF/4vbnPo4gtuuGtJMC75V5ICDeuSdUFDpUUTpUMfHUFEoBdeDs64uvniExxBuFgu5yiwuN07/F5oZL0iI0lPrCaUsOAAAgOyH0AzOCCcUFUiycZVP7myxJEDDnBh5XDKd1hO/10u5P/QUy6lJZAcF4U6JoHopEzRSI2fv0VZmamkxWvQRWlRx6WSkmHcICud1PgooiPFeQ3KdV79AwkME Uifl5eqtxboSGOkfb6GGKfOY4hjhkqjpGUladjvFWifmSlxpEQG4UqJom4FCVKtRJoyDkFVESqY 4hJiiY5zYlnB2exoG1nBo3fyUb7YHzD1MR QBaq90EjKzWGyNsr2D lNV1aNqZpo/rUr290o4H0GHGGy6FJpBjX/6SS0PDdzom53fm6/mw6bHhBqHHRx5FokH4XeXBsAcM3n2fdPS1p76kTGRp3vE MYd6iqQw76MKzcOMGKf54HF/A2n6tsbXJdV4bNqZljxHMvxiCax5ObE5oGD8UykwOwOPkQtYPaE1nmya/OUaL7kOZdz4Qlz9C/YxEMlwOcm7fYgZvFxGfY6xxwb urAIacmIZ2bgjvR7idGMve7YtYXKH2rQv/g2l281m8GE/PII0JMX8/ryk74PGq/hwvLY0Ydyvhfh70YqUrNGUpk2NrlKL2uV60WvRRY46qtEaZuP8xIo4xKVlAynZchE9tztl5wL9m PLYxNkFTfhuwDp6nIo2fvh2pQXc4v6sItRuVI6vxl/jtKfMcCwU9xi7KTWx/bYQfy1cgZI1zc5r3dLULluYXzpOZcjeRzwITyXhHXXvbdBIj33KzWm16PadOMZ35SlhXnbiGHXK fscv7ScxaM8D7oWmEP9B9Vsc8MEM1k624W/DjzDzzme5fFiVrAIaal0McrKYyIfbODnTVjTWnjSo0YQRw vQeMYacQXzxT1AReIHJDN HzQyY0Pw3NSI6T1K0XDGMdbeDDWcDINvrmbXoAZULdqFZqPPcj0 g0RRiTLT00hLTCEjNYW0tERiY6LRR4koKTb5TXguJZYlx rFsijDd4jSxxAdk0KqxfOcxav0ZAFGPdF6ub7cpwCl1y5OLR9CydZL6PUaGnJdcezkRFLSMkgXP f1UWU4nSG6CaJgE1PSxTJzzAnoZZgfQ2/4TgmpoiuRmUFqQjTxdgvZMakBP3SfR8etzoSpo4lOSCE53TIw0wLteTivFI1aVOXHKXac886GRl bMQ wmV6d3zVLUmXCE9bfNzqvLcW4tbUmD8t/yt r9sd3mxROVpb1n623QSIt zK2pNehXowS1xx1i7S3zY5zgzvLWNKoojlGtNx22ePAoUpwb47biciFDFRINZZd9LvTRscQnpSF qkFZojxSdIFoTo9m7vDG/LPvBsYc8yIqWkbEaWblmEmmKOt4vbGs9WKfMXEkpmb8sa6Rlco6Ig2NTjRu8W Pmzw s5t1S4 wce5Eti9pRad56xguoOH20aARjNfmpsweUpOO25y4EGlcIJXlge pIfT55idq1pzKcucE0T2IJvThZc7P2MiNXTs5cXIZg/r3pGP7YQyZeJbLgfGkGjaOIOT0AjYP6UTnDu1p31644yC69tnHgUcqsRdzyVbvg9flDSztY0u3j nL9XnTtOo2d6yazePF4irZfxYAdzqgN6ycScX8vV9fPYN lF9wXH2YfUygllDSP0 zeeYiZe5/xNCLRuEDKD98bG1netyvdDcfoSMdufZl3yp7zLxy5smYsi1qVo9ovX/PnIuX4oaoNbbr1Z/CGG5z0SCPZQv1IC7rL40XlsWlbm IzbnHh5Rto3JpaiwFNa9J6rQOXsr 4UYm88jvFhbmNaViuEV8328PKe5G5zskbvR0aT7g9vTaDm1Sn5eqnnM/x7Jf43QFnuLSgKU3KN DrJjtZZh O3rgUQtC 2MOG4b3pJsumQyc6du3FhHWnRXcUw4BzgqcozzmdGVW/JOVE1PtfRatQsnYLOvYfy5h9z7kZkr0nmcfE /Jq5nazxdZQzp2x7TWYuQfvc18jisS41pciKxnTMFrOfymu1rEJiUQ92MKVhS3oMnkFQw/54voRIw2vLc2YPbAqbdbc5YiXcYFBUWherGVpxaK0rjKM2ffi8CcMt33TmPC/FeheqQ5turSixK /Uql6B9r3OcQJPx16nTfet1expGdtGpcuS7Vq1aleXbhCVcp915YOo/ewwyGMoKQMQ8qBV2nhxDgsZcuwulQpXJri5eT6DagrKujwjk1p29aWrxovZdg D3TG7 W2rScLGn9HrzlH2foyu5IbFOdE0pUJdOk0gMLdj3DQPbspZqYGob63hI196lHlu7KUKC PUYkadcrSZMRyxi07xuYxHRlTvyjFCv8P//nVj/y9WEWqNmhB2wVn2eOURtLvgsYjbk2rzYBGVbFZYs8x8R1zSnzjkP3s7NeOMt/0oO/GBzxLNtwv o3eCY0ZdRjcsDLNFt3ksLdxwWslQdhB9g5sT9lvutN77T1eiLAsNUNHmMcFLi4ZzfAm9akry6Zy GSp /58Ub9yX7ofDeRabTpzzQU6MqU 3ct/ywzf/w//7Z1G K1mZmi260239fS74J5GcEITPk4Psm9iXnnVqU1vuq9zP/PLdn/mlyxzGXI7CL/HLijesDxoxSUZobObKghZ0nvSJoDGoGm3X3udojsrtScDFmYz4pRY2TRaz2TsJjYCG1 HhDPuPv/Ltv5WiXPOFzLn6kLvOXnj6aNAlR B7diZLO1egdPNBtF9ymfsO2S9ZOd/cw6nJLWlZrhXVO 5mj5deVmuSwm5we1od rZoRLOpp9h2Ta7/HNen29jRsxZ1/rc4f64wneFHXr6BxvaeLGxcmF5zj7JNfOfX8YQRGl1tB/J9j Mc9owRHyYR43eAfZ0q06JkIxpNOMm2G/IYd3F8to3Fk9cyfewFbtx5jNeVOawYWY iHSfRZulVnjh54BkShTrhFTl6OkblCRqLb3P0Nw1a7uwpt Z3oMdXv9Bx7AkOBovfYeEYeYLGQjsO5QC SS 4s7gTvf5Zmo6jTnBCl4Eu4TmXN 1g ag9nL/xFBd3d9yfXODeitZ0bd2Ckv0EiJ9pSEkU5en/BI8dA5nYrwHfdl3IoC23cPYQF4WIOKJSIlAHX2fnrC2snnaEWy/EfuS bu7gzPR61Gvag2oTrnMl6Mu6UW5d0BBWaaNRa/WE397ARQmNjx5pmHdPnLloHuJG7OXajKpU/KkFdQad53a86PuLsNb9wEBG/eN/KPlLb3qs8cDZvKKnPubatJ50/bk jaefZHeQ8XODVKS6zGdqlQbiaj JBXbB4pNoIh9tZfmv9ejYehrLXFPFZyYF479/JBPq1eTrmrMYsN8TreFzPR67B7CsVXEGLjrJLl8zaMS7kHR9Gn16DqfEwLMcfxkrQhlvEamPp/s35SldeQpzHVKM3RwpPd53X3DvUgAa2ccJPcDV1R0pM3oHQy69v7J/ODRkGbjzcGUHRn/zLR0GHWCLgF9cvkJDruzJ43W2jP1OHKP/PrYHZqJNCcDptgv3bsXkHKfR7Wb7kJ5UqTSXeae9jYAWer6I7fNs XnSGRY/No FoonVeWB/3p0XDtm/O1tx4LqMSS16UqPRRvY4q UnX4wUaMSF4b2tBbN6lKL mE3MPfzQsI70xRV9GN2mJJU7zmD0AT8RY8gq5o/Djr6M 74w7XtuYoOnbHYmiQ5s4G7Wd 1PvWIzmX/Wi0DjkmylkJlsz nBnRleqTezj3nimeiN19FZ9CnZn3Y9jnA1McMQfWRLtOLAfZxbNoiSreRAqKs8glAeoTH4vICGi DTSb O2aQA1Svah6oDTXE/IIM24 m/ksIGTC1pTcsha h4LJeU9deLDoSF37Mr9FR0Y W1hOg4 yFaf/IaGEUxrbBnz3Xd0GLCXzfIYclFWDMlqD9wdn/BETgDz5AZPrixidttu1P9pCvNOuBEg15OlcXsma6a2o8iog8y6kY3tHEpXEx3ijMNT077OcufQV IZW60rjqsvZ5hiB VBZQde/PDSyElT47OnI9Mb/yXc/FuPHUhWpWDHbpUs0pFKnOSy 5IqXJs3Y3/bm bY jP3he2z7bmern7zeGJURIq5KS5hl04mfis1j1hW/31SWrAwPHsxvzczmjRizy4EnL5/jtGEIjYr0oXafU1xPzTAbOBMNMPwwV9cO55c2S m5zTI0dptDI8GV5BvT6dvLCA1vAY2U67huG0zVxpOpN/sezqlvfn9OiRb5bB3H57ei5OA19DkSTJL5BdSC/hg0XLi/vAPDv/mBjkMPsV38jvh8h4YbD1bbCjB9T4eB 9gqKG6In8LP8mBjZzqIbSvJ8q5UXvwtTtF/VOKn7ycz54K3EfgJvLo5g9VT2lJk5H5mXssxoit htib61aOzbGhbjVj3alclopli/L9f9ehUq1VbHNTm0V2BV//8tB4lRCBz672zGj5N0rUaMavbXvTu3e2 45cz5yjPvi vvTLGuvJs 19GSsjjR4bWe8OWtPuMkPBeSXzWnaj1M8LWHA1IFdlySIr05U709oyrV4zxu1x4lmwIy7bxtCq2 AAa9z/NzbSMN3dC5PHUx7m5YQSl25pDIwq3nf1Y2qIEw5ad44DoAr2GRrpoeY/mM2TAaAM0jklopF7HZfNAKtceT52p9jikvQMaTwU0ZKQxbD39RKSR jGhkXyDcxPb0/Dv9eg89zKXRX8gJb hkXKTi1M70vgf9bCdfZXbMdHEBT7g uIRDLBpQINOnegky7tvd/r3sqFhmcaU/Wkq88 ZokQjNGSkMeYQs80jjZQgdE Ps3d0D2ybNqB 9x50k/vq14W to2o/kNzaglo7HBVKdDIowrImIYcCLVhdv/KtFx6jT0OiYZKKp2UnIa48JtJbuf1dmjIjorqJHv6D6DFzyOZsP85jjkaXRyZuhPs6GpLt3KjWX zej8BXAfidm8 w4l1o134HJ3SZxBvXlnCIf7aabeO7UqTpQnrvdDNCIwbvPf1Z2vJHus49yiYRcmcX3SuytPcI3D c9q0HiGjhPCd8YkUE9AjPHYNp8EMbyrffyRGNfN7EpAySY KI1shnPtLJerGOo3OaU7z/avocDX97N8aod0OjFgMaV6fFioeczjG2I5Tig/7aVCY3bcF3pWcx/qQHgQIIFpjxHmjUZrAAU/Nl9ziRsy8oVvAjWkRd05s3p3CZuYw97UdUliex1ybTu2JbvqkrXOKlF r3iVFkmixwbWdelKg5 nMud190RA48Y0Vk5oxQ/D9jPL7k1nFP1V3Nb3pdYPnSlru49T0WkkiH1lJrmjuTWPybU706jaCrY6KN2TvKoADYQ2YfbgGn TY8oJzYcYFFmUGjcLfvYHG6/MmGkyaO49W9GVgufKUH7SRuY/fNE9SRGW6Mpy TdpRvvkO9jpGkSxAE/l4OfNKl6FemUGMuqLD27A/0VyjznNmUiNq/1CSf684nSGHPI3QSEd1ZixruvyDcgMXM xGdrZ4xLUx5Mp0ZtT7hX/ 3YZfBp/jXKA4flY44fZzGV 8OBVK9GPoBTWer2ngyc3959i35jEeYTGkeW3h2LTGFG89i07bfd4MBr5F2dAoR7O2tSiWAxrG5z QENFquepLrvOpIcFzPpg4lKVukCeVH3 KYV JbAfVOaMjnNAQ0DGDK8Yx9FEmum9jSqSQVijSk3Ch7DvvKjp8jiWcG0fzHFvy1iiiD7BMqFEvy5 d5MqlKc4kUmMumUN9mcSyDrpoDGsEYU7riOcWcj3twWjjqL45IOFP9LZ4p1u8R948dkOhK0rQld vi9P6eqrWO sNpbblyErhEaMgEY04XarODujLi1HiSvsXh c/VUf5THyzJgg3NfUZGLX4jRYbMceN MCi5LbCSis78SgP/0XjduuZLmL6EHkOG8JaJ9sZP/k2lSu1ITK7WeydO0GNmwQnjeRKf060WrwfIbvc8UxSjYTcXUKv8T1qc3pVbUGlZpPZugCuf4aNs 0YxcTONUQ/uSp/LT N0TudX7 wluJ5lGtrG1G/flOqdJjH0tXrxDZLWDagJbZVvuff/9mU77of5YSvjFsySdLc4PbMVvSvWp3KzSYyeK48xlLWr53JyBHrmb/mOe4RcaTpznBrWSuqlarLT41HMXnDTnbbuRveKbHUq0kLuMn9mT9Qq2EZ/jHuGqeMj5FnxT7kxoTK2Bb7C0UaD6X7NOM5MHgaC4eJbkGzNrQdvYa193UEmbE1t94OjUfYTapC t2J/pkjDwXSdan6M6SwaYYtts9a0HbmS1feiCJDMeBVMuuN lnVtQ50KNnSetpjlYv1N62exYHwN6n1djJJ/HcX0Yx6Ijp5QKlnuGzgwoQHFijaiQsfJzN91iEMPAvEOdyXkwkomNmlErTpd6L9iA2vFvjavHsm kfuWo G/lqfzLIjY6Rn78Fw0/oaw30rizlSvLOtFn1jrGHvPDLVBlSHic79CIC Plrg4sHtWAbpsecPI3DyGZS273Eoe9w5lWpjQ9B 1gm hHix5FDmWlh6Fy28q6dnVp8G0Riv1cjGLFpH leKslzDntjn9SxpvHlV/pSQk zunZttgUKcJPP2WvW7bsSOatX8yaQ8vpNmAry/c4vwlzMyLRee9iY6d6NP7uJ4r XEJs05UubceweaPonoyZTo3R5zgvuydCWVmxpIWe5Py8LrQoUtR4DHFVLd2BXosviUgghfgM0b1 55Urg5RmM/rUcRb79kSJlqlN76jE2P0vF0jNKaSEPebayDh27N6Pygrtc9TX2xxKcebi8E8PK/92wn 8NxzO5NJVqDWLc3kfc1sUTLzaxwKPXehs0MuJdeLiyMyMr/J2fvv2B74vkPEaFmgMYves NzVxxL0 hogTknX4HB/Lkg7fUbFEUX4W6/9StwZNZ02kc9uZjK28iH3nPRC9PiFxwMR7vNg7gu6lf6ZwYVE NVpgs w254LTSVN74bGtI2Mbf8/Popzlviq2a0qL2TPp/utUpjXZwBm3yI//ztAnlNVBI1IlwCAc4f0Y97unOH/rAVcdQwkME41Ek51q8ff4fdDIku OvLTD6dElbnmoCJDPQr1VssbGovN5wLOTJ7l9zwsveXPCrCK/VlYEIXanuLB5HevWrGGN9PqDbDrnidub/oyZ9Oi8bnFluwjb18r1d7Nh610c/H0JiQng8WMf3Lx0ZrdjhTIjCblxmoub17J2zVqxzVnOnn8mzpUT991cOPcwiKCYN8Oq8j5PlPdt ru4QV8N18hjrxZXxDNdcxLkyrgHxpKqdeXH IPu3bmD9hq1sv 7Kk7AMi5HGqwQ1WtcL2N2 whlxRQ2NNa6UoUfteov7x3eL/WwUV3LjOTB4C9sP3uWpKuutXRJz5YTGm5OdlS6O4XabByd2c0AcY3OuY2w9cIfHkZlmA8tm0j7F 5 YW9m S524N6/fs4fBzZ27ae N81pnAID1vqoIcPH3C/aO72LVZnLNt 9l3LwBPw71bUZZhN3A4v5kthnJbw bjJzjp6MW9q 64X3EnRJ8o4s8vR9YHDZPVOjS6aKLl/Bpa4yQ8udfJg98HDUXWr7dBQ9HnkRVDQyO6KVFEabUiwhCNX3ymQONfUwo0rEvWC418sgKNgi8F GtaljwoN2WBzO3fukrzYUj6Td9mU/FlaJpWVeU/ki0Qy74nMtqaoYCk5OdkAjY RZ0PR71daWpoBGjJjfH5D/K2RhiWYfCxL6Oj1ekOaR1OkoVytCpaSkpIwRRqKPr9k8ipTpJHfUXshOcGrKYertCl/qymHqyl/qylJ9Lvyt8q8rbmTRpvnbpUwkLk ZX5JmUDalET6zp07hn/LJNEy bNMJi1hIqOQ3BGNYuu0vKLJ/L yPpkuBIo/nyW8ZXnIti2DAEvrfKhfZ403JXWWMDBP4mwpcbN51njZ4GXmeNnQb968acgcf/369ddZ46UvXbpkyBxvyhp/9uxZTp8 /Tpr/PHjxw2WyZ937txpyDovf2xgYODrxNSKrdvygiMvMvJiY2m54k/rj1kehWT Tdk4pWU4Iy3DTGlTFGKyKRoxZZTPHZWYIhPz6ETCyFKWeVOkYrJcdvv2bQ4cOGAAkUwIHR8fbxj rUGz9luNUsm7I mRpueJPazlOKNusbM/R0dEW1/lQF7IUfpg79wDm22w sPk2yx9iyfLOiQSEhI0yEFowJQdCZQVVBkKtQ np6YZAQHYb81t5yhqfH7YEJJMldCQNZbShDIQWTCkDodaljzoQmvuuyeewhIrynEbBlvKchnVJe bhLkdVLgYZ1ybqgIbsbag2aHOMVclzj96djNFmBRsGXAg3rkpVAQ ZyFX81enSxSSSlpBmeOktLSzVkMEuK1xOlFkCJMK73O6xAo BLgYZ1yTqgoZK5XEVUEeyB34trXLtwgmPHjnH8 ElOnLbn1kNv/FVq1NFiPUvbv8Pvg8arjHhiQzwI8PLAOyKeqNzpsDJTSNcHEOTrjZOvmsg448vcWRmkRLri43iH e8998YxMtPwKtqI/LAUa1iWrgIZaF22406F6fICLC1vTrm5pSpUqJVyWUr90o9OIA5zwDiIgORaNgIDawj7eZsvQMH5 DobQYJ56s68OcIb0YuceR67nnsowPQm83nyWTR9Bi4kn2vdBkT byKp7IS5NYNbQejfqtYf7FIGNOEkX5LQUa1qXPDA05qY6GqOhw0bifYXdwOXN7daFfp04MGDyY3 l07YVujNnVbDMZ27y1Ov1QRq1Gj/x2T8bwPGima21weWZJOlYtTa/Yt9nsaF5gU7YnqUBf6NKvJfzVZw7wbodkTx2SlEON0hCu7F7BkyyVOC5hkz5GlKL lQMO6ZAXQ0KLX 4i/1zh44BALF1zi7h1PouMTUAe44Ht8NFOGtad4303MPuGKLkpLdFTep/17HzRSdfe4MakafepXoeniu7 daj/GG82J/gzr2ITv2m9h2e3w7G5IVibpMaGoQn3xCdejScjfk6fojSxDI5XMJC2RASEEB0WZTecnlUKCOpww nxAiopIMqR4V1OSfrKB7Ih/CChF/PXBwcuPh0yDCI2INU8tlJKoMs2PvmDuYWjaLmLLlHr7ROjR6bZ67KO Hxn3sptSkX6PqNF92n PZE0O UawP2lMDGWFrww8dt7LiTriccxyZJEdnv4K9a0YweNsNjrm Y2ZcRX9IOaBh/AzCiHc/wtZhExg7eCvH3BOMUxYmiS7lPa4tm8mkzrNZfcYTF1GvzYpc0R UVYxpRERkRxyyccfEaA23WMM18cRoQyBgD/tWjKVqq6VM2nIf/2gt2nyFxj3sJtegX9PatFnvwuXfzDWvIePaSCb0aG6AxnL78OwcIxl6grY3ZXDzv/IfXVcz4XKUYW1F S/L0FCR4HWMfT0a0bJiO1qvfsq5mCxeZXqguTyEiY1rU6XWLOad9sVLgUa yiqgkW35OLjK8Ni3WhOFLiaWuBBn1OfnsWDycMqM3sf8c 7oRdckRtjyPn7r90PjAXZTa9OvXkUaTjvF5juhhpPx2h53cNrajT6tm/K9gMaquyZoRBO8py2jOxTmH303Mv2aWRIdRfkqy92TTLKS1URfm8HyAU0p0XQO44895OmzPeweX JkObXrSe5cnj8Iz3uQpUZQvsiJoSEcYJhRW6xNIS/RB9XAnWzr3wbbFZIaceMjlYA3RIgqRz2xY3v63fh80DAl3Zjeid4m/ULhEdSr8aoONjZkb/UrDCoX54YfafNt G5sfq15DI2RfR8Z1/olvB25m1g0FGh9L7xwIjb F/dY tPquHK3qtqH30IFUqd2FjtMPcl71igRlMCPfZSXQkA9tqVBFxaMTUNC62/HkwgpWzJ1Ez2bTmDjpBNf9QghJiRXdkny 5WqARmN6F/9vvi1akdLV61O/vpnrVKd2mW/4rnAtvmm/nc1PFGh8ar0TGsSiddnH6S5laf3XQvy/wrX5W/cjLL2jIdm4hqL8lZVAQ0QOKg3aKAGFlw9xOTiK8X3aUbXLYqbsuMOLgDDCdWK5Tm1h23f7vd2Tq AfcFN2TvnUrUH/SUdbb Rnm nhtRzuebuxMz5ZNjN2TCAUan1jvhga8inVBu68/A8v/H/7Pd1WpPucxZ0KUUYyPJSuARoQhFaNKE43e9TLPD01i7qzRdBm3lpnb7nDPL5Lo9DiiBTQ0 fYYufEbCuUYCN3gyhULA6GZ1y0NhCrQ FR6NzRSiHl5i/sjejLl15 pWLcZJdruYcH5oC8qf6o16fNDQyW6IyKCUId64HByMZtnD2HE kvseZ5AfHIqZCaLSpNAQkIsMVFatKrfB473QyMvt1wHMdLslqsCjU rd0Ij5hq3to6iV kuzB48jpXzRlH957bU7L2Z7eHJ6JVR0HzX54WGAIZ8SS0m0p1I572sXTaHnmO2sP2cM4GaWGJjs rOrRYoIIyLCwvZ5cF4ijRuTqtOnQVWaLbnL0dy5XGNeGh/uakrh9ltyRhp72zOm04/8s/8mZl5XoPGx9FZoJGsJOdWfGX0qUbzzKlZccyP08XY2dijNL9Xb8eu6p9wLyUviR0W/R58ZGhoidXEkhDxBdW0iw7s3468l29G 8wCmjB3K0CGDGDhwIIMGDWHIsEWsOnKXOwE6QtRadGoBBEv7zOX3QeN3P0ZuJ06U/Fw p7GtCYNs/pv/12UV4y8pz2l8LOWAhvEzUgOJe7ybxS2rUb5KC1oces5N Rx/wgvCDnehS9UKfFN5OvPP hMgytusyBX9QX1 aGhjiAtxQX1jCUsGN6ZY8RKUKCFdnOLFTf6FUmVt6bfsLKd9okUUEoXemKrR4n7N/D5opEU78GhVN6b368LgHS 4EmhcYFJ8IFHXZrFg7CAajTnG7mfqbGhkxhF5dgxLxzWh3qwjrH ovHnysWQRGonO6C4vZHjLkTTtc5DjoQkY8jHLN4DUFzg eZjock5gwVFXHESB5W/V/tfWZx7TyL5rogkPRvXyGc/tL3Dy GEOHzrI/v37DbOHZ/sgBw9d5OpDN1xDNITJ1 RVlvb3W1uGxhtqvEqPJTrQmZeuTriFxqLNfZ8uI5l0rQ9 nm489YwkNCY1u JmZZCq9sTf6xlPfCIIilY6zx9LFrsnonuYGuHBi4eePHLREZ0jlIglytcD94cueIXEoBebvIaNo j szz8QGhlBRKTaEHHExCcZJi216JRE4mN06FQRIsKQ21ja12/9Pmgosn69cyBU0SeXFUBDWkYcInrQvD0VgU6nRSNn77K4/dutQKPgS4GGdclKoPHxrECj4EuBhnXpo0JDNtjceUgs2Twx0ttsnhjpbbYUoUhgKMmSCraUZEnW JTl/70dLliQLWVpeIfJq UXeZ0m432MJL5k/9vDhw4ZcsTJDlIw2JCUVW78l9OUj/bLsMzIyLK6j NPZlLwqJCTEABBL63yoC5nysppniTflX5XdBfOcq7JRm7LDW0oMLbsVpqzwMjm0KUG0zNEqLRNE S9 4ccOQJFomejYlipZ/T548ye7duw1JpOWPlTCzBBjF1md5VZP1SOZztbRc8ae1zKlrKg/Zliyt86EuZAKFKVmzOShMmeNzQ8IcEObZ4yUYTNnjTWAwzyB/ fJlQwb5CxcuvM4gf bMGUMGeemDBw ya9cuwzaSksHBwYaQV7H1WyYblhceWVFl2VlaR/Gns4z6PlZ5FDLRQ9LIZNlYTZbEMtmUXV46947kF5M2f/vUPOO8tCnrvLSMcMwtt5UgkuCQIJLhlRzMkX1lxdZvmYtXlrGsP5aWK/60ltndZRuU7VYOUlta50P9zqzxlgY7TbY0yGluSwOe5paDnybr9XoSEhIM3SNlILRgyjRarwyEW oc atZ4S7dAf4/lAOYftQSUBId51njllmvBknLL1bqkPKehyOqlQMO6pEBDkdVLgYZ1yaqgoVJr0eiiRXci2jD4FR 2tJ1qvI0qrzvMLarmtQKPgS4GGdclKoJE9G5dKqycqJpH4hERDRZEzdiXGxxCrFzCR0PiAiXgUa BR8KdCwLlkFNFSaKNG4NYS53uLJ2dXsWL SZcuWsXzFWlbtuMqZB/6EaLVEx2otbv8uW4bGm4r3KlWHWhz32Z2b3PPSEhpvXGBSejypYc9xfHSPS4/88dYmG1 NTyXB5waPL 3jwPnH3PWJkbm9FH0EKdCwLlkFNLT6ONTqSFzPzGN978LULf0jPxUtSpEiJfm Ym/azTjOBbcAwmKiDN2U3/Omq2VoGL hUJr CXcXtGBMRxu6rX/MOT/jApNi/dBdGMfUgV2p1H8fmx5GGifhiSdSfL58YC3q9VzBnHOBykS2H0kKNKxLnxkaMumRmqhotWjcHlw5 sIIFgzszbcw4Fi9fxaxJYxnYojr127Sjw6pzHH8Ril6rEc57KoP3QUNO93dlZClsq5Sg9py3Tff XlT42tfhTk7XMvxFqTACdRoLfbZ5eOcgREWnc84kmwbCBovyWAg3rklVAQ6eVCaBduG53m2MnHu DlHWZIspwQ6Y3fHluGdKnEX7qtYcpxD KitML5mZbxviGFQd G1bBZco9jliYWPjmA4Z2a8X2H7BQG2dDIIE3rS7CfC05BGsLj8vfkKXojy9BIIiPGj5ePb3L97F nOnj3H2YtXuHzNjlt2j3DwCidM9BeVaYXzX1bQPZEPYYWLvyH4BYbgG6hCFxVLUgak64NItpvKw omd Wf/bQIa7sQKYEhb3tdvnSdoyBQGjWvQYvlDTuTunsT7EXV6ECM7v0lhYJjYLzMO1YWJrJzSiqYLTrD lSfYMlYryXzmgYfwMIkn03MPWIa1oWKoUpYR/ SX7b/Hirek 5wznIgTzjWsryj9ZxZhG9l0RNRoBi9ikFFLSspP2ZugDiTzSgyVjmlN37kXW3FYRrVMLywgl1z7 e4vdDI1eyJK1xwWtpDcmSJlrKGq/MRv5JZBka0aSG3cFu5woWTpjIxImTmdanBo3L/olC/1aHSiNOcVUvtjWurSj/ZB3QUKlRiYhDF/qSQLcH2Ntd4cqNO5w5toc9czqwaO5Ill30xt4vxZD8WaYvsLgfC34vNKIecnNaHfrWKk3tYZuZf/ShYZ3Xvn6US4ta07FxY0P3ZPU9s7SMe9szttOPfK3kPfmoytuYRjIJV azpVcDKrRfwrCjXoQpwx8fRdYBDY3e8I5Ikvdlnu0aQbfm1SlXvgKlK1WnzZilrL7khkNgFBqtH o1YP1/vnkQ/zU4A/fN/8dW3xSnyS0UqVjRzuV8oW Rv/P3rmoYE0FuUBNCfXHmDxkuezRvFjFo9GbXpIRe0KdndSEX5LiuBhg61aNzxvndwPrWYqSN706V7 Tzp17sLQcZOYuHwHyw7d5IajL6EaNWrhvILj/dB4zO1ZDeld u/8VKkZddv1pndvM3dtR d6xShZvA7ftt/GpkcKND613guNhJeoH4xiZMvm1Gu0lsPPotEZFynKf1kHNAyzkWsMT32qw4MJDgogOCIKf/cnPNjWleEtylG63hTG7XiIW7QOlXxC1OJ fuu8DYTWol DqjSdf4P9zqanUY2OcCboUF GdGhmGNNYqeRy/eR6NzRSiH1 gMMjSlGtXVcab3DGWZW/FVlRTlkRNES0Id87iY0jUU6SkyaigBQNev9t7BhpS4vvBjBq9jnsY6MIFdaJ7fIjw5rplqscCG2 9zomLkcYFrxVJ6pURjO uZI3/XHo7NERJxNzh4arhNC3ekFqjt7MjLJV4hRkfVZ8ZGtkRhjrUl0jfR7h6vsQxKAVNbLr4MvAqQ0 m9gRHZwym Q9DGD7rLHc BjRMWeOXvu05jYGMULLGfzZZhsYrMjP8CT42mlVtW1Oj9WEW28dml42ij6rPCw1j1vioUAcinbZ z9uRR1h90w 7hS/wDgvB2us L/aOZ1KM5ZZrNYdzuh3iI7ok6X7snd7k sQq96lai8aI7HPE2LjApxhv1cdE9ad Ir9tuYuntsNfQCN7TllEdCvP3vhuYfk2BxsdSTmgYP8yKJTHsMDs7lKLN99VpP cuh9xVaPU6tFoNUbGia5kuYhELQyCK/pg c6QhoKHSEx3licpvFwdm96dz2aY0qteClq1aYdOoCQ1qtaBxr lM2H Tq14hhGvVvyvT2vugkaK9zZVRv2BbteTbHyM/3JW NrX4c9O1zDfPGr 9KYOb/5X/6LqaCZeV5zQ lnJAw/gZyd7ob46lb6n/y78V j98XakFddt1pEObNrQRHrr0MIfdQSMfLVaUr/r83ZNIeVUIQ625h936iUyqUZWG1apStapwtbpUazWTUZtFxBGmJjopOp9uub65/KTHueO4ayyrpo5h5nE37uSe9jAhjJj7a9i0aAa9F1zipKtOBMZCmQlo7BawbVFfeqy5yH6H3K/HKsovWYRGki9x99ayaFw3GjdrQuMGv1KvTm1q18521xk72ekMkQo08l1WMBAqogb5sJYqmEAPJ5 zv2nP/jj329reF72H/yBWnl2FEipBTp9P8LmBIW4bGm1AjKzOF5KhwNBHhRMakkJC7kr1KJzNRa3igLEQdR0yy8e5/1isy4tVEqUMI1sahTzYLXxTlqyyOabxKIVOc/8jwIHz8fPHx9sDT3d2QLkPaJ0SNOhHSlO5JvssKoBFJhOExctEwYxJISEsjVVhmbkpLSyUtJZ7E GNFPNUzCkz1Zz /x 6ChyPpleSBU0eeSVUDjtUUDV5mlOci2fKHNwrp5tAKNgi8FGtYl64LGH7CEgyWbUhgo0Ci4UqBh Xfqo0MgZMeS0pSRJJltKkGRuSwmSzC0jC5OVZEkFX6ZKqiRLsg591GRJkkTmflt6xtwpGvOaptF k83SNllI2yn3IRNKHDh0ypGWU6d9SU1MVFxDLmellucp6IwFiaR3Fn85xcXGG8pDtVqY4tbTOh7 qQKVu8aURbZjmTCaClHR0dcySBlgmgpc2zxMsM8aYs8fb28o6K/esk0DL7u0wELbPDS78tCfRZw6xOZzl8 PDrBNASPLICmoNJsfVaVlBZl2ReXll2ltZR/OksL9SmBND5XR6F5E6lc2ePl/CQYwwye7yEh7SEh7R5BvncADHPIi8BYp5J3gQRUyZ5aRNE5N/jx4 ze/duwzqSkLJ/bB75KLZey8okK6lM7m1pueJPa1kesl1LiMu2ZGmdD3Uh2TBzW/aD3ubc3RlzWzqAyaYuztss 8ISSDLaePDggeF2bkZGhuICYlM4LOuI7E9bWkfxp7NpYFq2PdmlsLTOh/qdA6HSlgZBc9vSQGhuWxoMNVkOhMbHxxsiHWUgtGBKjkHJMFgZCLUOWXXW PywvO2qPKdRsKXccrUufTHPabzNCjQKvhRoWJcUaCiyeinQsC5ZLTQiIlSo1Dp0MXHExMWg16nQ qAr2uyevkqKICXHG3ccH94js R4MShf/jnTHx8cd55BodEkK1MylQMO6ZMWRhnwMXIPGMNgp/qoFACyu925bEzRSfK5yb20reo4bT899XnhFZTeArChvvPb1ZML4HrRcc5fLL1MMnyvKlgIN65IV QkPOsaEmKiGcsOCH3N25igMrtnPM3ocXwTEGeMgJiC1v 1tbhsabipeZHEqg/X4uHdnP8ceheOaegCtFT5L3Fa6fPc7mM448CY7/4KnxEx32cmbYf/Nz/Qb8PPcpTyOM0Ih8zrN5xWjUoCh/HnqKXS UFD/mUqBhXbI aKh0qDTRJCS64n1nLjNrFqbuz03pvcGRCz6pRGkFBDQWtnuLLUPD A2FDHOETq1Ff5mWcdnb5giVaRmb82Onbay0D dD44Ak58NcnPADlVq3odLSF7xQGaGhdsRhWWXatanI9 PPc9ApyfC5omwp0LAuWR80BDDUUfGirZ7HfkV9Gn9ViP/8ph5t1zhy0ScNfX5DQ2vP1dFl6VL9F rOvc1BL MCk6K9UB/pTv8Wv/JXm3UstAsl2bjo9yrJ5QiXJv1E1bbtqLrcAYfX0HDCcUU1OrSrQpGJFzjkrEDDXAo0rEtWBY2IS K1o4BridB48P7WBOW1rUqfI/6W0TQt67XTmsldq/kPj985GnjvSSAol7JbodmxcyfLly7O9ej87DrngGZ2zI/PB0EgLJ8J H2c3mR1j1T62H3TGI870Y9LJCnqIw5NrHHYIwlltNgVZWijRng84d Qh5 xDiBDds wjvyIrM5Sgu6ewP3qK2846Aj UiB9RlqCRFiEi0Xv7OWF/n2t iSTnSA fRpz/PVxuiMjuvhvPw16RobAm32RF0FCJCCOWaJU36mdb2b5wPm2ajqZfk 8ZNbYpww44csZNdE80HwkajWvScuUTTgcaF5iUHEjsuSGM7pKd9yQHNNJ1hD7azOZelbApVpRix Ypl 8caVKw2kzmXPHFLzsyeU1To90PjFZnJWoIebmNz7yo0L25 jOqUrzyNOWdccYtLIy0rnqyHi9k4qxcVRh9myQ31m n8dXa4bRlK4zJdqN3vAGej0sme0TSJzNjLHOtbn76lbRi904Ob0YYFViVzaJiU6LCL81PLUa3zU Gw2eOATbTrL4pxmBeOyfSBzm5en9aS9rHmRiSgGRfkk64CGvL2qUhOdEkO4lz235vdl1oiZDJh/hOVj67BkQkNG7X/BSdePBA3zZEkq44LXUpF21TxZUpi4pkuJhvdkFbtm16dW6y50GLacLVu2ZHtKX0a2tKHOkLVMPO dHmPG8prjmBRoXOeRivNy/iiDo4nyWD65HlSZdaD9s2ZtjzBjA6MYNqdt0KkM2PMMhOQbC9nJ4Si8qVZjDyA0vCJa7kPvxv87 jeTbULfoXfmw9mvnPRaEbrswCLEF7WVmnEU2/7sn08744WeGNmxyRhvGz9MATPFv4K2VKtqFw19NcCE8ywlwAN/YWp4c3pd035Wk5/Qz7RaShzBWaf7ICaESg0saIKCMGfaAdD/ePY3KnroyedZSD955wboUNi4fVY8Tu55z8GJFG1CNuTq9L36pFqdR5BiOW7Wf/fjNvXcbGkfVoXLMBhTtuZ90DlWiIKWToXbg3qym9mtak1vL7HNcadyiV9ZyAk0NpX6cXTQccw07 zSlZl0tyOcGXye6Ax6TKHXGWLTiEr g7nhjehTZnaVJtziX0 htWzFWePy7auNPtbQyo32snhiBgRlHvyfOM4 n3Vjn4jj3M1UTQ48W0Tbl/m2qjWTOr FU2njWLghXieyogi3Yv4B4sY3mIYDdrs58xLPXHZe7cqWYIGaV5E35pD/9L1KFtuMiuf6TG8CZERQab7aub36kDl6lOYf/Il8rSZFbmiPygrgIZMcBOHRhWOy/FJrBtRhQ5jlrLgqh5vb2eer23IwuH1GbHPiTOeGcRoVejzERqGrPFzmtD7p3/n738vzNc/Fqd4cTMX/ZGi3/yFv/69Jt902MVWUTlBS5LnTlY2r0eDcj0YfsiVu7Gphhd5DE70xu/uMqZWtMG23jy2uachA tM9yNcm/IeaEy wiE3WRDhpHvsYEGj7thUmc3yh6EE5rhaRqJz3sKias3oVnsOm1xiREykw/fEOKYXLUKHjsvZIFqL6lU8Lw8e4UCX/hxZ2p4J 1Ziuz YGzIM0dzk5Z4uNO87jjqLnuMQmfqmUVqRco5pGD8klqSwI2xrWZ52JWwYciCIB6ni42gXdCd702 dgb8pMvMZp1w /Ra7Isj4zNNREqPXER/oR7XSSDYtH0GbEROaddcJH9AHStX54bqjPsrGNGXfcl6sB4gvHiG6MNtI4g/n7/V5o6B9za2Z9 lT4jl8a96PTqLnMnWvmqaOY1LkS1crX47uOu9jwWEJDTbLLSuY1rkzJP5emchNb2vXtSffu3bPd uzO2bWpQ8f8UoUb1ySx1TCdEbPVKQOP6 6Ax5SqH3MXnWZ4k280U36sbFepsZb9fDAmGtU0SEUTEVU73qc2Ylr2YYxeDe0Y60Q9Wsq/D3 jUYzzTHsQSmBHEw2On2TB4NQ4n5rFj/zraTbfnuJMOnecOLk4qQ9uRM l3KYageGtERm5omL7jKzKS3PFa0YYJbRpQfeE99oTKweBLOM6tRK9BA lwWMtz4wN0ivJPnxEa8jFxDeroaKLcLuK0rgOtWrXgT63mMHHVPm5ev8bRXetZ1qc0PVqWo9WET cw76c4jj1DCZHSSxyxrv3sgNMi4wKTkoDcDoZ12suKeTnwooOG2nkXN61DqTz9TomIlqlSrTOXK JlehStXq1KjVkd7TD3MqKAtDb0B0T67mBRoeEhpuJF dQvdynSlVZzO7faKNg5dvlBh nXMDqjCmdUemXI7FQYD2VcAFnMS ug0bTbc9T3EOusKFSxeYvfI2Xk/OcGv7CoZ0X8322w 4e2MV65tVYtzEDezwA52VXpItQ0MoI55XDkvYPL07pbrvZOltT8KddrK7Y2WG9J3KKmcIlNGHon zVZ4SGGrVGgz4hEr8Hu9jfrxS1v/lfCv3tZ34sVoqK5UpTsthP/PjVf/KP//kv/veHUpTts5KZZ3xxD9KQoBfAycOToXmDRg36NalJq9XPORdqXGBSeiiJF4cxtms2NJbfk4MX4SS6 bmZu/a40Lj euSducON59sxj2RZAcHTGxd0Hv7Ao9KLiylOb7HqEy 8bCDV0T QXDCTtxRom1e5No5qr2emuFZ0ic8UQ7XuELU2bMqj WFY8isdb7i7uBfGXRtF74ERq9l/H eOz2XpiP0OO OMYFoj/0TWs69aDNSc3sXLrFsaXHsqyhZd4KIBjrU HvBUapEH8Ba6unEzLchOYuXw9x04uon/VPgwddoBribIToyi/9ZkjDTW66DD8XOy4smkmK8cOY8ywgQwa0IAwbTq1sH2lb/mqqlv6VM4250mHeSXfYB IaqidGpBRAs7Ten8xxp5OU5jU47WHFXLT6MJTXkDDva29Cp5kCm34k13Kl4nxLzcsvVMBAq78 Iq6jqIvu6taBl6fZ03PmUHInpM14QcHYknSt0pEG7nZwKTDFEM7wKg4DdzOk9gYbFbFkytjmTdm 1h2I1EnBNF9 X6ak73L8GKRd2xnbyJGg12sOaAuwFI Vv8 ae3Q0N 4wA8TqxgatkadKlRi2a27fih kJGr3HKHkcyrKcoP2UFA6HZlrMyGTKoRYQb/q2JSSbI/SE35lRmWr/q9N/2hKMuKehEtyR/nwi9w7VxFeheuxwNFthzyNIToUd7MbB1ff7echOLb4UbRuKzUrxw2NCHWV3q0WHiVpafzp4w Y3dcPYMJVCTRKqxnic5HeD8mH9SppkNZRY953mkERoqB14sLksLm9J8Nfoc 5yMt1zTfXDZ1puRzcrwg80UBm24 SaaObGUzePb8qvtTHpueI57gulHJfEq7REXxg6i/398S4uKZWmzeCfL3CBEsCjZcRt3J/2TCS0LU7jlBP45/hbbnlp38uq3Q0MqjShxXg92K0ztfytEoT//zL933cviu0oW/4 lzw NCNGwDa/AxxObkGioIIlJSTLwJCbUlcfLqjN/WB2GH/TgvI oQHrjQKilfVlw3qBRUUCj/DuhMahNff7RaiOLb4YZvptofiSGPefF8enM7VSdZhWMSatfu6GIKBYy6YArAcaxghTnA1wY8zVl bJpbgEY5WjYvzT9Hn2Wfo6mjkEJSxDVubutHl6KlKPNj Tf7r9CUah3nMP34C56GJZL8ui3Jpz2j8Nndn nFC/H9v1en7sQznBWheoJY55XqBv6bG9KptGhgIoKpt8WXGyrrvh6/Gxoimgi/g8PSWrT4p/hN/yO6tnPvczLErJAV5ausJtLIYdHQNfo4wgM8cDo1j2M7F7DTzpP7vnGGAVCtTBhtaTsLtgyNNxUv I8EPrzPL2bd2KRuu fJc9j7MlaQm3uEAR7ZvYPq2u9x4GWN8uCtbr6JEg986igV9bLG1NXdfbIdvZcW5l4Qaz2tG DPcTs1kyZYtLLkeQkicERpxoYTcWMq2LUuYccqFp6HZWMpWGkmht7kxYxRTund s/8 8xm1 QUOURYah9htotchrq8bxoShG1h9wlsE8YaPxe7CSHQ4xIbZwxg2ax2HHOIJM/9BVqj3QYMED6LPDqNf SL8pWgnBp3wxdkKH4f/UmSd0DBYZeiuhIcGERoSREhYBGER8rV5S u 3ZahYdbQsjLJTEshVZyIlPRMMnK3waxXZGWkkpaaQnJqBumZpvc2THrFq5R4kmJjiIkxdywxcUk kim1en9ZX4t9pyWI/qSSni 1MOxLHeJUuEziJZWkWvoPYQ2ZSAonmx4hNJD5FbGdc4zd6lUpGqojaElJJSRW/wfixAR2Z6SQnyYguWfwewydWrfdCI9GVuEtj6FWzBYVrrWDN88hcg8aK8lPWCw05vqFSi4gjHr3 ousiBT20Bn7lL0YfpfdDICLHDZUMDGtm0o9SI61wLTFIe6PqIsuJII3 sQKPg693QiEN1ezmbbP6T8o27YLMvGA 9tcdOBVufBBqy4X4uy9wpMheozOpmgobFEFeR1UrmCzVB47cK5eX56cyv/DOduixi6fNXRChhxkeVTJBkgkZ X4D/cLIkS4mRzG0pOZK5ZYShJEsq Hp3sqQ49P73eXzwCLftPPBJIMdAtaL810dNliRTIubOAi8LX1peOaRluj2TTVneZc5OaZkrUtqU E1bm8zQllTZZwsCUJ9aUK9aUL9ZkuVzmfz1w4IDhr0zzl5CQYICJYuu3vEDIeiHrkSy7nMsTSEx KJSUjU1TmVFKT4knIsVxxfltejGV5yPYcGxtrcZ0PdSFTYzY1YvnQkynps3xAyZTs2TxbvMy1ak r2bJ7o2ZTkWSZ4llniZYJnmSleJng2zxQvM8SfOXOG06dPc/LkSU6cOGFI/ixfc9 5c6dhW9MPNgeWYuu1vIDIC4S8YPx2uT8BgSGEhEeIK18wwQFP9mHcX5afPykG3J0jof6kKmqMEU MZhHCbmjAjlQaQ4V80zyz58/fw2X3NnkJWSkJWTellVe/vvcuXPs2bPHAB8Z5srukfmAqWLrtUw0LCNNWaksLVf8aS27JbI9y/ZteJLbwjofauXuiaJ80Xuf01D0SfVR757kvpOReyD0fbY0OPo25x4kNVkOiMp sIxslIHQgik5ECqhYXkgVNGnVlpa2uuB0PyGuBJpKMoXKZGGdUl5uEuR1UuBhnXJSqGRs1vzITl cTVagUfClQMO6ZCXQMI7AaqLQxSSQkJRs GKvnZRAcmwUeo1K9Gvz/lq8tAKNgi8FGtYlK4GG8e3V8FDCgvzx8/HC2 vNA1ye3j54 QcTFBYhICBA8Jvt3 48Q NVhuFN06SUVJLSMt 8gSo z0iOJT42huj4FMPbqUq1/bRSoGFdsgpoqLRR2d0Q58vY75zA H5tadfKhhYtmtO8eQtadB1J 6XnOfY4gGidBr02789Y5BkaOndC72xm9b6jLLoWTEhs9jpZMQJiZyaxbMoQBi69wjkPmV9E0aeU Ag3rklVAQ6ZjlLdYI26u4tjYCtSoWIJvS1WlQqXKVK1ciUqNulN72nH23vMnJkojwPERoOF/GacNLanTaxhlFz3nhfGtp6xoX3yOj2T 6F50n32OE656BRqfWAo0rEtWAw3Z7Qi6MJeTs5rQd Y6xu97zvVb93hy/za37z3C3sEbz4Aw1AIC0pb2Y8l5hkaAgMbGVvzaazjlFgtohBvRkJFEkvolAT4euAfo0CSIbkz2 ElGBjf QynpFZno6GdIZZhPsSMnJd2QSpQzR1fnNJD6K3ifL0BB/5eRFmcIWilMWTpao0HKWNuV856 sAhpyoh05TuF eDQHpjZg0oGHHMnxFrT4Ygl6YtRyAuKPNBAaeA2XrR1pMnAs1VY44BiZ/a5kVqKA1PPDnL94lN0PQ/A1Ta Xqsbn6iWeXL Io9aNexcPsH3QIMYMGsLQUUuZu/4Rz2KTiYp9xqPNo1k0bBCDhoxi2Lgt7LcPyNPs5YqylQMaxs8MWe4C7Di7ehub117lUYQpqbWIE DN8cD65n53zdnHiXiC osgscUXRh8kqoKGNTjRA48Wuvqzu/jfaD5/JqG33OHPpBrfsHvPQwZ9gnVasp0Wda9v3 UOh4WScbPdVpIg6llambZvsnCTH3IzZdxLdsJsxkPmdWzF wzImjh3JwLJlqVW2FMW rUiJ4gMYv3M/u08vYE7nqjSvUJayJYvyc Ha2Izfy1aPOFRpSlXOiyxDI5Q4552sbdOU5lUHMPKYL48MwWEoKU5LWd6xGfUqjmLqQTccRVEqZ zr/ZDXQkGMaLodGsaxNIcoWLcw3xSpQukwlypfvSdcxRzjtG0pQSixa2T2xsI 3 Q9DI IJT eXommTX/jH6AscdDFCI8UJ 7nN6fXt//Dzzz3oNO0Qx 3ssLc7w74pXej2498oU7wElToPZNj6qxy bofd8WXsHtmABq0H0WiBPTdDE7P3peidstw9SSZd54bH5v6Mbd2YMn12s RpGOFhl7gzrzbdG9vQdPJVTrnGEiN7MsatFP1xWceYhlZvaNz j45zcd0gJg/uQa e3enSrjVtKlandr0 dFh7icNuoURGadBp1Xm 7ZovkcayKrRrW5WfzCMNAY17ixrQr9jXlK 9hJmXIrOTFQllPVnBLtt/8m3hMvzYcxMH/EzZyzxIPj ATrVb8k2TLWxzESG24XNF79LbB0LFvyOOcnZJe6r91IRO/aaxaOUUbBs2oPWQZWx0T0GjjFrnu6wCGq8dEU54aDDBQYEEh6sJ8nLA/egEpvdqSmmbyYzYcQcnrQ5VlOiqWNregj8aNBIduDWrLpNa1WLIdmcEM97IdQcXF9lQpvccWm/3Rm3chDR3kq9Mok/VNnxXZRmrXkQos2bnQW HhlQwfjeXsKx6UZr/47/5vkIz/tdmJeOOuIuOiqKPIeuAhvGdfJU2mqjYJMMTocmpmaSmxJAUeYuLq0cyoGE7hszdy3HfaPw1UejV Yv3c 7HgjwmNmzN ZVrH ow7EcDtmOyPDXLbzdVV7Sk/Yg2dD4eRZDpcsitJV6bQr0pbCldayorn4eROs6Lot3o3NLLIiHpE0PoOdP pEIX UZmy0x9wPNBCGSvKF1kFNCIM Uy0hsYdE6NFIx8XF5GGNkZNbFYAz/avYlWNNkyevIXd/tF4i 5MdH5DI gGbju60HTQ LxHGjPrMqXtr4zY58FV89bvLCKNJa0oN3AxHfb4EWWKNJJcSLg0ib5V2/J91eWGSENjXKTo7XofNNJUDvgvH8j4Wl JSKMuFYdcYsezGJR8SR9HVtI9kZFGGCGhYQSHynk3tOj18cQlqEhIvM3lFTMZVnwwU2ae4Lo iqCYKHRiu3yFRqiAxtY2NOo3gkpLX CoQMNq9E5oZLrjcnYV86t3YFb7dgwb0ofipUfQbtoFbqZmKeD4CPrM0JARhgadzl/8fcDFqzfZf9QFH9/shMSvkiNJcFjCqrGdKVt/IZM2PyIwVodORCN5vYOSZ2iEXeLZ0nJU62BLmQXPX2d0V6Dx fVWaGSlkvhsDpvG1aXcr5OYv MiT84uY0yNcpSoN5juFwPxiM4dmSj6o7ICaIguSdxL0bhPsGnBVLrXG83s6as5ePQouzeuZt2oj nTu15cGS8 y82EQcToNMX/o3ZPHouLJHxqHPuAFz0 f4Nzx4 xbPJKxTUpQvecY pz0x984RpEZ/pin80rQpHFJ/jbqPAecjQRIeMb1CRUZ3bgC/Xa4ckGV/bFBDhs5M6c P3afTbNtPuhM0Eh0JP7sSDqXbMx/l5zP4qdhyphGHmQRGhlRpLy049jwOjStV4MqK65yVObAVdvhuKw jSpW4bu2m9hyV4VObKKgI/9kBdDQER0fKLok5zg8rSvt//INpQoXoXiJEhQrWoqfytpiM2EPe5/74Csav04diUZlaV WnRMaRwU0nomvJp/2DMD9xFxmVSpNrZIlKf5jWb7/rif91lznZkwqycZzkREhoo4V1enQvgbFpl7luLsp0nDk9uz6TGtfn1H7Pblm3vpddnJpWRsqDl5 Kp73mkYYrCZen0L9Ge4rUWMlqByXSyItyQMP4GYlO6C7MEeeyDWUbL2CpswpDovisCNI9NrCySw t LTOYyftccBBlmb9V 19bVjCmoUYbFS4atxMO53ayZ9I4powZxYjhwxkxcgKj5hxg6yUP/DVaYuOjLGz/bv8WGk/E1Uq jKYh7NlZTs2ezoIpU5g6YwVzl93mtmdsjn7wq3ixj6cHOHv2IDvuBOCtNZ6kdDXB949y9 wR7Nx1BJo/p6Vxwf/JafZde8I5t5jXACJdS7r/Ha4cPMu2g894rkpQntPIgyxCIzWYeJcLHNh0js1HvfAzgVniITMIn2uibDee5MqzUIIETCx0SBV 9oKxkIFRahVqjQSsfF889QbBGbXhJLa8PdJk7z2MaiqxW7xwIVfTJZR3QiJB/NWiiokVXJZ641xmX4oiPiza8Dm/okhjW 31WoFHwpUDDumRFkcbHsQKNgi8FGtaljwoN2WB/r83znnyILeVDiYmJMWRyk9BQ8p4UPJmyxit5T6xDpqzxHyXviSUoSFtq7O9zbhjkxRIYMlmSTFK rJEsquFKSJVmXZLKkjwYNuWNZ2Kbkrqbcrqb8rrkzwZtngDfP/C67FjLPq3muVwcHB4PN872aEkrLfK mnK/S8jOZMHrfvn2G/K4SJHq93tBtUWz9lt1MWV9kfZJlZ2kdxZ/O8sIv27Bs2/LCbGmdD/XrrPHmDd/U4HM3cvOEzqZEzuZJnGXG Bs3buTIGH/58mUuXrz4OmO8TPIsM8afOnXqdcb4Y8eOGSyBYZ41XlZA Vex9VsCQ15UTFnKFX9em2eNl/ 2tM6H nWkYYo25Ie5Iw1L0YYEjSnaMM8qbwKPeWZ584jDBKLcEYf8fwkLCQ4JInm1io6Otkg6xdZnGWnI OiPrk6Xlij t5XCBLA/ZrvM78rM4ppF7rOJdtjRO8S6/fq7DzMqYRsGXMqZhXfqoYxqWoPE W4LH73VukCh3Twq2lLsn1iXzuyf5/fiC8pyGonyR8pyGdUl5uEuR1UuBhnXJSqEhuyq5ux3yM0vrvtsKNAq FGhYl6wMGhFECGBEaOU7KMmkpqUZBl3S0sS/E2OI0alRyfdPfsc7KF8CNDKifAm6u52Dp46x62E4IbHvKyjx 2I9CHp lV0n7nPmeYRhGv CqrdBIzM5nED7A9w dZgb7noClVeGP4msChoRap3hjdaYiJf4uT7C/tZNbtoJ37rPrUduuPoGE2aIOIQtbG/J74RGahyJulCCwjWE6FNJzZFLUSqN9EQt2mA56KMhOiV7Jo4cykwhI15NRFgEARGxxKbm70mUSv G wK1ZJanbzobyix5xN h98/KLbxl8hFvrhlCu9Xw6rXtGQAEOrnJCw/ihUKr MXbTajO5fQNGH/ThhjI5ySeR9UBDdEcidPHEqgNJdtjN4bldqVOtMpUrC1drS80 G1hz0QlfvRZ1lOYPTff3uuaF2uNyaArDJ61kxC5nPOJyIyGI8AcbWTugAyPGrGaXQwYhudtrtAe R1xYxZ9psei25iV1gfL7PEpXicZrrE7 mYuPaFJl5j1sBeYBG0H6uL vJjw2mYbPsMX5fIjSi7nN1TDlGNqnCwN3eXFGmQfsksg5oqLSo1FoSVB4EPzrE3gWj6NGhFXWa2 dCybWtatupPu7G72X7DFX8JDN0fg8brehd5CYeN7ahTpjm/tN/DSf9EcuQ8y3jOyz1dafo/hfjTP5vRaFcIT6JyIuFV0HVc1lTBpnkTSoy4xpmXCfkOjXSv89yaUZw6bZtRbmFeIg0h3Snurx9 EuVZz6bD2C440ptZiYtsGjDoYyB0lYd0nkXVAQ6dHo4kk4dl bqwYQpOuU2mz4BzXPUVfPjKUQD/5RGkQQaFhRPzOwVCL3RPjFyTTB/WdxUyoWZd61cexyF6Ft9k5yFJdxnltQ2oW TcK/XdDvh99jYveiWazQGUR73qcGxNL0qN/X3odCsNZTkhpXPYqMYpYVRhh4uTKExwaGkl4ZDzxaeZYyeRVRgpJ0fEkx8SRkhyLThsptgknNCy amKQM4l9ezO6eWITGK9FDiiNGFS66SPIYYrvQCGI89nF1/TDKtllApy8cGlM6NWDMUS8u 8egF c5XJ7rMFH 2ngS5SRtivJVnxkaco5Qmd9ERA6alzhtW8rWPgMZuvIUW30SSTDuyKDUWOKjVIaBUJk53vL fmuL0Hhd8ZJJDjnPoZ7VsK3ehF47nLlmNkFw3JNVXJpemMZNS/LXrzpTtsZ6dt0ONsuKpiPIbiObGtZi6MAlrPPIIMLUw0kPwufIDFb3akErGxtspJv3oI3tdnbeC TPbhx590D0uzNrAqdlruHB6DRMn9aGFTUdattvAtrtqvIKvYbewDA0ENMoboGE6iPwhL/G9uo5F3drSvoU8TgdathzHuiUTWLFsHMU7LKfb qcEmnOqgOnt0HiC3ZRfmd3vV8Yfv8iK5etY0twGW3muW3Sh67BN7HPUojwSlr/6/NBQyTdOA1AF23FwyQom2E5h/boVHDqzk42bNrFp7SZ2n7jCTW8NgeLKES0iEjmLV4TF/f3WlgdC39S8jFhXXFbZMKJjbWrOv8keV3lJlstjcN82krUdC9N3Snfq1e9P67/3YvbWRzxKzV6DtKc82TKJXl 3p9egI1yKR4BOJu9xxvXifKZ1qUWDclWoW68 9esLV69Fle9b0mbwZtbdD8I/IV2srSHSeSuLy9Wm499L09amBZVbN6Vy/VY0br6GTbdVeBqh0dAEjeDsy2dWugq9wxJ2jvqVqkUqUaqKPI4NjRq1YVjbRgIirflHvXn02eZA kGGLgqm3QSMt5hm3ZzVifJMiNB80lA4dhtG7dn2ay3NdqTiViten2bjDbHIQFxtR5gU42LIqfV5 oqNREaqKJjXBF5bSd5Svm0LzjcMa0rsnguiUoXrQoPxf9kUrN zJ8lzM3RNdAJn/WCXBY3J8FW4aGWfVJVhF3aRTzRrXmp1EnWGIvWj4y/H/OxfFDmVCtPXP2bWLWzP4MLFyavpNOsl9cujIkNlSHOTe1O6W/HUibGbdwFFu9EpFD0PHJLGhblpItR9B53V0cX2ZPDeD35BjX5ralTRkbKrXYyU6PKBHriN/kuYnV1YpSqtDfKfzTSIbuvcUtvwD8A7ToEjKI8xHdk9mm7skT7oXIgsoiVWWP3fR6DGpej Yzz7PjjjyON/4 RzkyrCHN/rcI/1VyHH12uXyR0MiIe8HdBc3o9d2/8/139Wky/hAHnfzwlOfabim7Bv1KpZ 60njUeW7EpyuTOOeTPjM0xFVWK7odIQ6obsxmyoBfKVxBXJ1b9WXs6HlMmjqR2XO60ce2I52aLW TR5sc8DNcTJicfzuPYxnuhkRELjsvYOKIjX/26gsEHAxDfSHDjMntHTaFf0zXsueeM/blJLGv FZ3GbmKZmwiN08TV3nMVOya04x NF9F7j7/ARbI4o0 5OrkXXYo2ocWccxwMMx7HIA3pHkuYWb0hNb6dyPwbwUSSjtZjAxtqF6batzVpOOwWpw1z8b9Rhn Eg9FcDNJ5xP1Qu14ooYyfL6jemY5MJLHFIMEt4rCHi3DQWtajDd9Um022L4xfZPUmPfYr9nAYMK l EerYrxPkMM uKuBJwZjx9CjehSaM17A1KVnLM5JM PzR0cSQEPUN1ehzDGhXmP4rWovGCq5z1FR2EpDheZblyf9tkppSuQbc S1nxWIVHRBSx2rw9q/FeaMj7JeHHODXelgr/6Eq72bd5Hqcm1ncHiyZMx2b4VS64J6L33srlWRVpMWoRw6 JChinI8VuNCvGNKX81LMseSITH2ghdDdrbPtRp9hsFp5/SUj2QYxKJTPlPueHd2Z0pa7MOOKJU1YmKud1bKj5A 2r9WXK1RRMqVVMMjynMbNENjQWv8iGRpYzIWdm07NkP2za7eO8PsVsDEgsDz/B3Y1DDc9pdPzCB0Ind2jI2GNB3NYbFxikQ O izU169OnziRWPk7AJ3/r97 srAMaAY IPD2egR1a8M/GM5l62gXf5EyS0tJIz0zC99JydnT9nja9hjHwsC/P/LQk6jWo8xBtvB8a4kenu/BkywAGFS5Fu/772PXQG5eTYxg6ZjiV5z3jpmxx8dfx2d fhl2m0WLdc56FOeC4sTUzO9elz05nzsjL2CsRVjiJSMKmI0WKzWPWZT8RSeRUVoYHD aL7Zr yqhdjthnZBEpoLGx9g90qNafqddT3w2NJY4CGqLlZNzHf9cwGhbpQeWOhzgfk2KWr0UsV53i4dY RlG8znw5rvmBoTKnJlE6NGX8qjLsiaHyjGNHt28b6WiXoXLk3Uy7F4qwkds0XWUn35DGRonsyZs BYKnc5yM7bXkRl6NBFx6OLgcDb6zg39St6jBrCgP0hPPWJEtBQ5xM0pOIJuTaXzTZf0XXwaibvu 8u1ZfWZOG0AbQ5E8kwramqWN1EP1zKw0VBs 6zkkP0R1vSzZUjd3iy/HYabHJvMCge3VSxo1Z0yPy9k4dWAXCFxFlmZLthPacfUmk0Yt8eFB5lGaNT6gXZVejPxQjzOuTr fOSMNh2xoZD4h8OAE2hTvJ0Lzw1yOT82R5AndOZ7tHEXFthIaT79YaNyQ0LBtwqRzKh7kuN0WQ5 T3bjbVqECPyoOYZReHKQ2voj8mKxgI1ROrcSfSaQfLRw6lTYvZrD7jiHdKJgkpqaQnR N aiGbuxdn8OS5LLoXg2torOieSCBY2Gcu5w0akOB6hLvzKtBr8iRsJqxnRc8qLF84k5WOAlopco1 o4oJOsbl5O8bWaMqUhVNo2mASbVts47SvnuzIWBBOc5YDg/rT6uchjN79hCc5KmosmarDbLbtRKcyY1lyMYAA0lC5rGOd6J7kCRqLnhvHNEQUc2spo37pSMuGq 0WfPcX4HaTEOX26lj3jO/FTo1l02vDii4RGWvQTbs2ozehGlem26CaHX6aIDqBJQUQ8Wsm0Kq3parOcPZ5J5BheUvTB rzQMNxy1aKPCUcVcpuTMzsyomFthq26yHF/0QQToiHqJhcXjKL3L 0YNH0fJ8NjCNBHEyWAkT9jGtl6pXmM nQf o9vxV/Kt6f 122YN 8o1xMhzlBRM0nW3ObckLqML/VnmjRryp8aLaLRrIc4a1KNuUJFuJHuxdM1/RlaqQyl 65m6p2YNrxDsRdnYwPZt2EN2GPRxw0ZNCEhrntayu9j1tK/diwtugIZ8IbdOUsguecc8wUKon2n0TS6uVo/5Pnel3OJBnhiciBeH0Fzg3pQn1vvuZ//fLOHqJ7lOgXFRA9daB0Lhn3JnfkJ7f/YkixbvQY8MjnpjqcMRZHm7sSv1a/bEZd4kH0elmQFH0R/T5oSGs0Ueh1vrhfm0eeybWo3f7PnQevIxpMyazZGIXerfqS5sOW1l53Bm3OC2R0Ro0Yvv8hAZpo WR4rmZW75L8f4X SqFCfRm09DEeYpHptGTEuOOyrjljShbiL3/6M4VarKDneQ0RiWY1mUSiHLZzdFZ9alRsQAWbscxcsJjFi4UnjWRkD1vajFjK GOeuIqKLBt/5PPFzC/ Jxr 3J5hp J4ketx6GSPU1wb9w/KNqhB4ekPuBUo 0KiEUTd5d4yW4bXqkqFukPpOin7OEsnjGJit7rUrlmdv5WdwMC1onti/hULmN4aacQ84/rkVgz88a9UrlCLmrbjGDhzMfPkuR7aib6NWlJ/3A7m2QWjFt1ARfmjzwwNo0W0oZZvtyY44X53Nctb/UrDH4vy009FKFqkMr92nMP8i548CYtDq1GhVVvYx1ucZ2iIK35mwnUuTmpNy6/LUKTGPCaf8sk5kJkaRZz9QtZ1L0zpUiWoMf4Iu7yy M2b6plqdC/3sa1LY2x KErxYsUoJl2iPqXar2LxJR/C0l8ZYRSFxm2b6PZUpZ/NaOZdT8Aj14Bdqt917i rQ7u 3Wi49gWPQ7Mf7iIrkQzdFW6vHYBtqeIULyqPU5tSv4xi7rpV7LiwnkGjdrB02wsMPZoCKsvQyCI 1xgP7xdPYNrIf63YvYtzwnjT uRgl5bn qR5V6y1h1d1AAjOy5NCwonySdUAjQiUat4boJA2qMGeeHhehrlrFy5ihWrdrDn9D0eh2gIi45FJ 9bP68tq0nmHhqxYWjQO9jw4eY7Tdm68CE/IGdLKbPN6b14 OsO5c2ewcwwmVHQljE04l9RE3r C3f7d7Nq5gx07hPecZt91X7z15sdPISXah5e3rvDo1nNcIzKIyVUOmfERaNyvc fRfey8otAmmm8fT3zwU 4d28uBXfI4AmT7HuHkH0hkQihOzgF4vtSR9MVEGm9 SGZaLCpXVwJdHAnV OL85CbnxbneLc/17nMcv hDQEIBpqWVyjqgYXSEhIcmCn2caAhJiYbKkpiYQHycHr2IMNSRERa3e5fzDg1F1qq3QUPR55FVQ cMUcWhEI4/SC1AYLP6tExGA6JLkdeIdcyvQKPhSoGFdsi5ofAQr0Cj4UqBhXfqo0DDPP/K5LJMlJcYn4Oflw5njp3j2 Inx6ykqKFKSJVmX5Ly9gYGBHydZkqUr/6e2EmkUfCmRhnXpo0Yapjyrplyrb7PMwWpuUz7W3Jb5Wc1tytVqsilLvMnPnzzj0eNHHLI7y4S9 S i7ciK7LhwhPCKcKI3OImQUW59DQkIMOX/l9AIy2rC0juJPZwkLmYtZ5mbO7/IodPPmTUyWWd9Nltnfc/v69euvLZM1mywzxJssM8WbW2aNN/elS5deW2aTv3X1BucunKf/2in878jafDW2PjOPrMHXz5fw4NDsOS4UW71lsmGZHNwEDsWf1xIW5ln8La3zoS5kKVqw5NwRhLl zRxPvcu5Iw83BmfsPHzBo8wz bVAl/ntkTRad30Z8fDzJiUkkJCQoLgCW41KycgYFBRnKztI6ij d5V1NWR5yXCMuLs7iOh/qQh4eHnyIJcXywyF gbi6uzFedE3 OrwWX42uy9rrB4y9J0UFRaY tDIQah1KT09/PRCa3yrk7u7O53SQjz/Ori6M27P4NTRWX91n/HqKCopMWePlQKiizy9T1ng5tpHfNxUKubm58Tkd NIPJxfn30BDGYEvWFLunliXPurdE0sN VNagcaXIQUa1iXrgYa7HM/wxMtT2sv4N9f/yzEPdwvbvsUKNL4MKdCwLlkBNFxxdXPHzeMlPi/9CfYLNAxgyr85HUCQvDfs6Y6H2M71N/v5rRVofBlSoGFd szQELBw98TT1QH3p9e5cuM4288cYMupA4a/288cZNuZw w8d5h9l09w8OYtLj5ywsHFDU8Psa3Ffb6xAo0vQwo0rEufFxqiS Lm6YOv8308bqxhydoB1BzbnvIj21FzXAejO1JtVAuqjbOl/sr1TL3wlHuOHvh7eeD nq6KAo0vQwo0rEufGRqyW LFS5cnuN87wr6jyxm9fjZD185i9Ib5jN84iykbR9BhXEuKd2tJ9UVrmHfHiYduXviLbooCjX8NK dCwLlnPQKiwu iuvH7OwtMfb3dHXj7azNZNY kweQFjD17iircXLt6eeBnWt7wfkxVofBlSoGFdsgpoZA EeuHt5YP/S1/8ffwIClTh5/aCx6cnsnL9cAbvushWe0/cJDBklGFhP7mtQOPLkAIN65JVRRrZlgOcHgIezrx4cIo1q4czYvkMltx8zg33YHxEl8Qrj7ddFW h8GVKgYV2yPmi4e4nuiTf Tue5eXEhAxfNoee6w5x86oi7rw eYp28RBnSCjS DCnQsC5ZHTTcPXzw8PTF6eYm9m7tRruli l38AH2jgICPp55Boa0Ao0vQwo0rEtWBg13PL298HzpyLWji1kwowt9Nm1mwV13nrp54u Rt7EMkxVofBlSoGFdsiJoyLEML7y9nfD2vMjenQsZMm4aMw6f5Zy3D86ennhb3O7tVqDxZUiBhn XJuqDh8RJft0f4PdrC4i1zaDhnK8sv3sXd/yVenh6/K8qQVqDxZUiBhnXJqqDh7hWI9wt7nM9NZdqmSTTYfp7Nt50J9vbgZR4eG89tBRpfhhRoWJesBhr u7h54vQzE6dFlzu/szeS1Yxl86jHHnvrh75n326zmVqDxZUiBhnXJSqAh3yPxwNfXmYf2 1i9sAfDF01j7nUnrrgE4uPhhqcCjX9ZKdCwLlkJNDwNj477 d/B3m4tUycOoNfMJSy97chNDz9eCmAo0PjXlQIN69LHgwb8/5qJUz982sf8AAAAAElFTkSuQmCC
http://www.vbaexpress.com/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAACUCAYAAAAOGMIYAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA5FSURBVHhe7Z3Pa vYFce/7r/QWZSUUsKz0jRjaJkGWmyYRUghdkia2aQbQ2hLHGZR7EWTVeAR8CqvFHv1iAOFgFfZNDwTO6XBiw GrHUgXb8i4aZRXM5vQxZv BzPpvdK1LCuyJdmxrxSdTxC2flxHkr86Olc 557Y/f39AybE /fv8cEHH4g5wkrUz82ox/8d8ToRvvnmG/GOsBP1czPq8ZNgJUGCJcGGChJsAAT79ddfi3cGJNjBkGAlC5aL9auvvhJzBkH6Upp7M5jZa4o5 cg5N03szbDzYE7rOO6IVVNGqmCdxMoJjGA7xyjdZJG9uWBfWTCQd24WcdC6x/09m6rzeJk/hgzNShPsILFygiLYzmUNWPsUn67doCTLpNgIxLmZVZh85SBFsMPEygmGYDvQ9bo8i9nlNaB2KcW i2AnCuTEu5GXMivlpMnXBuomVEwjBdi5RwxqYXplFWWbvargMgGLlnZsrvEwZPmyqtobytgy5Tl mwXsTKCZ4VmYVhZOUrVt65sfiwBQ2pmT0pfv3UBOtVrBz5gm3i9csrXL1MmT3jlD7/WnrnKwgXM5ZWkMUN3km4fqciWD9i5Uj/UpoXqC4eoMWtiTm1cLBYxYVkxQZCsPz8YB4vJHgFExesX7FyZH8pzYsqFh91KrhbsIiqZMXKOzc 9H3Yme8Pcg0MsiTXTZNTj9xSt5UesH330kXgHfPbZZ/j444/FHGEl6udm1ON3tbCjWNYugbjtBZSon5uJWthRuby8xPLyspgjrET93Ix6/CM91vIKWdjBkIUd7fhJsJIgwY52/LG3b98 8Mbffvut/iHWV6dlfrbhE0E8JRP1YWu1GnK5nJgjrHz55Zf48MMPxVz0GPX4J oSEMRTQ4IlQgUJlggVz0 wjR3EUmXciVnieeFRsEYu0PqY0fqNnRhiMeu0g4ZYFzTuyinEdgbvnX4s5vo7lFP2Y4thSHMb47 Z339/ngqtgO8frmJm5gHLwNMkUyZKGh4cHfdJK18gEWLR sR7bQz2HSiaGVNm7rR 3fRRwFezs9hvc3x9iEj8ixvP7YF8LznTFNrATS6FcZrd03cJ0hWy3PjaB35WRMtex9rdiuY7Rts/w2F2GvvZ8W6ONUlDBFKMvG0k06SNddGrh1WgXpFP7R/uqLxy8v47bhxu5PuzdLa6RxIIi5qGiUADqupU5Qlr/MhQUEnXT8vRbZbZ izUwLdM 2oWKvsYb7CJRrO3rQPEcqy3 f5JAzvi/rXxcbO T9IblghyBvvZsX7eAE/M8JFEp8gsvjrzj/g7aPtxIFWzjVQFqchOrFj3k6lyogrtznKo51I/MJcIqX OWn3mxft8UVBpHzCp5pnHG5GBr38ozCQSR/n2Lr24iqbahifnH N0 HExdsGpBMW9RmesStGEC0drM5tpRsJBU0eZn3nG9T5IL7BPDgd6x6t7i2Z3B7dj9bh8Gpi7Yvo6 FmzVTFpjDYEdDWxVuhON6n0zS6ggLvtG7QfjD2p753kohIdwlNmml4cfud/uQINeHdSO is1kBRlLb GuXESl60bE55BgX2nR2snIWH3YOOYSrC/SdSLt64WPaLbnfp 1Q3Z9O7rPJ/5XsrTbc3H84NJed6fEe5Mhu4fQgJtmCZ4PKtOnKi98sn5XTT4kYwP41ZDnTdDKWNfZslSR9Z2vP 1fT6urX2siIUT47MNn68AhS33 pTA6u7ElFNsav46bEPbp49Qz7GLV6wvLpTYxdbj0f66bB9WKFpLEhStRdFaRAQgwRKhggRLhIqJ p8ikUinxrwhifKjTJQnqdFGni4gAJFgiVJBgiVBBgiVChatgjYwDMTzjWKM1G4HG9p859Ygiy /3euoJ5WQRA3ARbBOvtYI5GHDr4AbZCde6Sh95iOIiIouLYJdweNgb7pZXYVm8eTfRKiz9yX0RQU 9lScG8 djnCRN/PmxHw9X8Cyllcp418TxOeNDYFneFumk/J/AR6BUZvAu2c4z1LFC1WNxR6AuhY5OePEcYqT9qAVupLRRQwgmp1RFPgtU7XnmgfD/ ePh9GQds0pPnCEZaz0dTVRW5ffLhB EqWC7WPMq4f7NNrsBEaWAnc41SiY9H8HzGanhqhguWuQF5rYA3kqrlRYnGTgaV3D7y V2UbGlBRA8XwbJOVjVreQ7LJ3kly58tjR1kKt109jjyrAeWrBTpKYEDFK0lCYrWomgtIgKQYIlQ QYIlQgWlyBChgjpdkqBOF3W6iAhAgiVCBQmWCBUkWCJUuAq2uWf5WXb9eIzgbUqRIcbHRbAdvFO qZopMdf4lUpQiQ0jERbCz2N7uRcAurWTFu8kR3RSZXlC7Xg2HbjGO PJhmxdVZFfGDeEmHhHPo2UNaLcVKiF6uAu2uWf6sBcr9xgzQ4ZSZIbSwCs9nYtcokG4C3bp0PRh Vy7G7XhRiswwzCBuUutAfLkES4fMJbjSJprmHVn6griJQQwXbOcYx5aHAp3jEqqLCuV2PTk8n6v SX1SPcGS4YGdfQMv2nsOmamtoUTLi06PX4 KlYnu PaV0OUPRWpKgaC2K1iIiAAmWCBUkWCJUUIoMESqo0yUJ6nRRp4uIACRYIlSQYIlQETrB2uNlIxk/G2F8CLaJvZkZjJ5w4C1FhiCG4VmweuCLeE8QsvAmWD6wcW0NB5PPkGEYlrgbBBKL R2NenB73Zpb3YfGju3zG9iREHjy2K1xvhsRngTbwXG hrXyNl6IJZOksaOgkKhbAryvkfHsMvAv2qG9EGV8dRPJyllPwLdAMlnBmWXBNXLYmHKMX3ojB1j 2C3fnOFWT2KQ8mUe4Cra5l0JtrYynGjV aIrMXRnFShKl3Z5ijOoqpzj3olj9i 4PgtbbMxne8vbxOSTQFegdzk B/X22Vl/Jm59CzW1MPyY1vcH2sXfhGPtBmQdODBdscw9Z5rk ZY0D9xQZFQWlJ hYLKPHinpCa7PWdhQsJFW0Nf4 DW7MDIFqaCeYOJUF4PScyZcLWEVu2uZVJ41ddh4qumJl7kfwGSJY5gqUWDfLUuMgq8/OYH2iRQ6YhbQI2pha3qwNE9/jDDEmTHZ7XVCMOX77VblAG2e45gvjq9gEt B8u m7A11Md0XcJUivzgwR7Cy23xjJh92JaZeJ9n5yVWW4eJhPWRy1syHaWyuw3JWLqFjTpvntl7kYr 86ukZjjC OYSzAL/OoMFRnuQJfuvisFOW5JSPDQ6ZomceRbGjZP /1c789pefs6cpWM2VY53YTWN5IMdwtUVCoJ04pxq1upVCTfhuNY3TTuD QODIaitSThGK3EH7NlwFyi55 MSNFaz4DGGetekjswFBJsYGjA0CvJdRgk2MCQxtHDA2gcjeFQigwRKqjTJQlKkaFOFxEBSLBEqC DBEqGCBEuEClfBdo7XzeAXfRqzKIc9iJqqxhB 8GRhecCLGQQz7pjxNqhqDOEHdwurXYl3k6E/PYRnDPAKKkaqihHAwrMFrGkvz7DCil5FxnJc9nnCxJOF5TGwhkuwh8lW6eLwAO4zbOhxsBpKPOQ upqC9b8TGaiWgsPXMXIh4HifmcbGLc0uvzEEZBw64CnbpsOcOtA5ukB2zKIcXekOni5C7XN38yT I l2CabkNPIHhGGKlABWyltlBACSekVkc8Wdgus9tlHKCGS6rKMQHSOKrnoKoqcvvk0w/Cl2B52ox2NY8XVORgAvDCHNcolXKoZPymtkcHF8E2sWd5jKUPppFdwTjPCbQ2FZJzwqzRld81/PZpD44QEtwtrCUJUa8iM9JjrV6vn2pROdBXoyuOPOuBJStFekrgAEVrSYKitShai4gAJFgiVJBg iVBBKTJEqKBOlySo00WdLiICkGCJUEGCJULFsxSsa2UZPoZVoLIcjHhf jXWHW Cbe6ZP8/OjBhe6FgtRg9UfvxFUWUZYhDuguViLSlodVNk3mxjlGAtfcBe 9DvYsRsY TpHjxAJrm5SiF2xCNcBMtH4QaqI4q0D33AXhWnFsXy0fqSuVxfoQweKHNWsRaksKbH8Mle9SWFc plXg7GvsyAsubEN2/5WLA8c1tQgSpFxYrhgO5eozSt4t95NkRmnsJyRPaAaxQYYQpi7G5ZCGXzxGZtLQB8cWxfr4KowB ioKBT6mKl/vNK5qN WkW1thH 2C56oJU6WSKWJBs6QCKRQXa8dFsBquqi hFbppMlUgu45RSxzo6S1da8pLDOlDuVsLZfDF170xUt2qwgh6KTUOiM/YN1NOjMj IJKr92o5OB0n4cWHXTzAp2YI7BJWsleojZojYynvo5f2SczpfqpZKIP99VVQca0K4wHHzwgLPo4 zIgwX7KyCRfHWyvzIOTI9a8o7VqYwRaGM84atgoqHqjCuOH5GWPBxnBHBRbDLWMNLvO76rZ1jlK pZrIyRI2NY0y0UK9bSPobVPC3aCrt5qQrjhigmZ1am4R2wTFB92F5Hy/dxRgQXl4CXPuJ q h0pWpYax2OldNlWFMVanKBybSL6JDxjNG IdO9VIVxg/msRg/G AyljX02Hzyrm0SpvolTRRxnIYE6jYjzCIrWkgRFa1G0FhEBSLBEqCDBEqEi1mg0dB W/7pif3VaZn8dtG7370ZPvPabP mvBPEUxL744gtDYU/Mr07 oL/ 549/1V JfqjTRZ0uIgKQYIlQQYIlQgUJlggVwwWr/RnpVzuPpt//479iA4KYLsMFq/wWjd2j3vS7TxDHz5H9xffEBgQxXXy5BJ rf8Hsxm ZZAlCDt4F 78LVN9/gl9TfCYhEc C5dYV8z/F98U8QcjAo2DfovUv8l0J XgTrPZP/O3HPyPflZCOJ8F /u/P8csf/UTMEYQ8PAiWuwM/wA /K2YJQhrA/wFN22VoGhR VAAAAABJRU5ErkJggg==

Array Approach:

Sub arrayversion()

Application.ScreenUpdating = False
Application.Calculation = xlManual


Dim StartTime As Double
Dim SecondsElapsed As Double


'Remember time when macro starts
StartTime = Timer


Dim inWb As Workbook
Dim inSh As Worksheet
Dim outSh As Worksheet


Set inWb = Workbooks("inputWb.xlsm")
Set inSh = inWb.Worksheets("inputSh")
Set outSh = inWb.Worksheets("outSh")


Dim arr As Variant
arr = inSh.Range("A1").CurrentRegion.Value


Dim x As Long
x = 1


Dim r As Long
x = 1


Dim c As Long
x = 1




For r = LBound(arr, 1) To UBound(arr, 1)

If arr(r, 2) = "" Then
'Do Nothing
Else
outSh.Cells(x, 1).Value = arr(r, 1)
outSh.Cells(x, 2).Value = arr(r, 2)
outSh.Cells(x, 3).Value = "WorkingView"
x = x + 1
End If

If arr(r, 3) = "" Then
'Do Nothing
Else
outSh.Cells(x, 1).Value = arr(r, 1)
outSh.Cells(x, 2).Value = arr(r, 3)
outSh.Cells(x, 3).Value = "WorkingView"
x = x + 1
End If

Next r

'Determine how many seconds code took to run
SecondsElapsed = Round(Timer - StartTime, 2)


'Notify user in seconds
MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True

End Sub

Values Loop:

Sub ValuesLoop()

Application.ScreenUpdating = False
Application.Calculation = xlManual


Dim StartTime As Double
Dim SecondsElapsed As Double


'Remember time when macro starts
StartTime = Timer


Dim inWb As Workbook
Dim inSh As Worksheet
Dim outSh As Worksheet


Set inWb = Workbooks("inputWb.xlsm")
Set inSh = inWb.Worksheets("inputSh")
Set outSh = inWb.Worksheets("outSh")


Dim r As Long
Dim c As Long
Dim ur As Long


ur = 1


Dim VTCol As Long
Dim PIDCol


PIDCol = 1
VTCol = 2




'DateManipulation Variables
Dim MonthNum As Integer


Dim EndRow As Long
EndRow = inSh.Range("A1").End(xlDown).Row


For r = 2 To EndRow

For c = 2 To 3

If IsEmpty(inSh.Cells(r, c).Value) Then
'Do Nothing
Else 'Below is what we do if there is a value
outSh.Range("A" & ur).Value = inSh.Cells(r, PIDCol).Value
outSh.Range("B" & ur).Value = inSh.Cells(r, c).Value
outSh.Range("C" & ur).Value = "WorkingView"
ur = ur + 1
End If

Next c


Next r


'Determine how many seconds code took to run
SecondsElapsed = Round(Timer - StartTime, 2)


'Notify user in seconds
MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation


Application.Calculation = xlAutomatic
Application.ScreenUpdating = True




End Sub

June7
11-07-2022, 09:08 PM
If there were 50 columns or less, I would use Access and import/link to worksheet then build UNION query. However, you say there are 67 columns.

I downloaded workbook. Why can I see pages only in full-screen view? Had to go through some shenanigans to get the worksheets to show in other view.

Both procedures run in 0 seconds with data provided. Really hard to determine if any other method would be faster without more representative dataset.

Aren't you going to exceed Excel row limit?

cwojtak
11-07-2022, 09:20 PM
I had to limit the data due to file size limits on the forum. If you copy the data I have down to ~50k rows it’ll give you a better idea of time differences. I won’t exceed row limits as it’s only ~30k rows but looping through 67 columns for 30k rows means the code is looping through ~2 million cells.

Not sure what’s causing the workbook issues, I’ll look into it more tomorrow and see if I can’t post a version that doesn’t have that issue.

June7
11-07-2022, 11:55 PM
If each of 67 columns contains 30,000 rows of data then that's over 2million rows you want to transpose into. AFAIK, well over Excel limit.

Consider this rewrite of your array procedure


Dim x As Long, r As Long, c As Long
Dim strC As String
Dim colCount As Long, rowCount As Long


x = 2
r = 1
c = 1
rowCount = UBound(arr, 1)
colCount = UBound(arr, 2)

outSh.Range("A1") = "Product"
outSh.Range("B1") = "Data"
outSh.Range("C1") = "Column"
For c = 2 To colCount
For r = 1 To rowCount
If r = 1 Then
strC = arr(r, c)
ElseIf arr(r, c) <> "" Then
outSh.Cells(x, 1).Value = arr(r, 1)
outSh.Cells(x, 2).Value = arr(r, c)
outSh.Cells(x, 3).Value = strC
x = x + 1
End If
Next
Next

And rewrite of the ValueLoop procedure:


ur = 2
Dim EndRow As Long, EndCol As Long
EndRow = inSh.Range("A1").End(xlDown).Row
EndCol = inSh.Range("A1").End(xlToRight).Column
outSh.Range("A1") = "Product"
outSh.Range("B1") = "Data"
outSh.Range("C1") = "Column"
For r = 2 To EndRow
For c = 2 To EndCol
If Not IsEmpty(inSh.Cells(r, c).Value) Then
outSh.Range("A" & ur).Value = inSh.Cells(r, PIDCol).Value
outSh.Range("B" & ur).Value = inSh.Cells(r, c).Value
outSh.Range("C" & ur).Value = inSh.Cells(1, c).Value
ur = ur + 1
End If
Next c
Next r

I considered alternative that sets a recordset with column data and Range.CopyFromRecordset to save back to worksheet but it seems too complicated and maybe not even possible with non-continuous columns and no idea if would be faster.

georgiboy
11-08-2022, 12:35 AM
Perhaps it is running slower than expected as the sheet is being referenced over and over in the loops - if you write to an array in memory and then output that array back to the sheet it should speed things up quite a bit. You could bust the excel row limit with that amount of data but i will leave that up to you.

Write to array and dump to sheet:

Sub test()
Dim rRng As Range, rVar As Variant
Dim x As Long, y As Long, z As Long
Dim oVar As Variant
Dim rBlanks As Long

Set rRng = Sheet1.Range("A1").CurrentRegion
rVar = rRng.Value
rBlanks = Application.CountBlank(rRng)

ReDim oVar((rRng.Rows.Count - 1) * (rRng.Columns.Count - 1) - rBlanks, 1)

oVar(0, 0) = "ProductID"
oVar(0, 1) = "Data"

For x = 2 To UBound(rVar)
For y = 2 To UBound(rVar, 2)
If rVar(x, y) <> vbNullString Then
z = z + 1
oVar(z, 0) = rVar(x, 1)
oVar(z, 1) = rVar(x, y)
End If
Next y
Next x

Sheet2.Range("A1").Resize(UBound(oVar) + 1, 2) = oVar
End Sub

June7
11-08-2022, 12:53 AM
Nice, georgiboy. I suggest a revision to add a third output column to show the source column.


Sub test()
Dim rRng As Range, rVar As Variant
Dim x As Long, y As Long, z As Long
Dim oVar As Variant

Set rRng = Sheet1.Range("A1").CurrentRegion
rVar = rRng.Value

ReDim oVar(rRng.Rows.Count * rRng.Columns.Count, 2)

oVar(0, 0) = "ProductID"
oVar(0, 1) = "Data"
oVar(0, 2) = "Column"
For x = 2 To UBound(rVar)
For y = 2 To UBound(rVar, 2)
If rVar(x, y) <> vbNullString Then
z = z + 1
oVar(z, 0) = rVar(x, 1)
oVar(z, 1) = rVar(x, y)
oVar(z, 2) = rVar(1, y)
End If
Next y
Next x

Sheet2.Range("A1").Resize(UBound(oVar) + 1, 3) = oVar
End Sub

georgiboy
11-08-2022, 01:02 AM
I have amended my code to reduce the size of the array by removing the blanks when the output array is defined.

snb
11-08-2022, 04:53 AM
Sub M_snb()
With Cells(1).CurrentRegion
.SpecialCells(4).Delete -4159
y = .Rows.Count
sn = .Resize(.Offset(, 1).SpecialCells(2).Count)
End With

n = y + 1
For j = 2 To y
For jj = 3 To UBound(sn, 2)
If sn(j, jj) = "" Then Exit For
sn(n, 1) = sn(j, 1)
sn(n, 2) = sn(j, jj)
n = n + 1
Next
Next

Sheet2.Cells(1).Resize(UBound(sn), 2) = sn
End Sub

cwojtak
11-08-2022, 03:44 PM
Thank you everyone! I went with georgiboy's method, it works much much much quicker! The one issue I'm having is that it handles 715,093 data points but gives me a run-time error '1004' Application-defined or object-defined error on the line of code below when I try to do 715,094 data points. The .values solution I originally used can go up to at least 985,000 data points, but that takes about 10 minutes where as 715,093 data points with an adapted version of georgi's code takes just over 9 seconds.


outSh.Range("A1").Resize(UBound(oVar) + 1, 5) = oVar

p45cal
11-13-2022, 11:00 AM
Power Query will be good and straightforward for this without the need for macro.
In the attached there's a source table of some 14 columns and 70 rows, a button which runs georgiboy's code and a table in columns E:F which is a Power Query query; just right-click somewhere in that table and choose Refresh.
I've also added another query in columns I:K which just removes duplicates but counts them.

There's a big file here with the same as the above but source data of some 67 columns and some 18k rows:
https://app.box.com/s/631zdgym2zwu669d8jlqdb6sysq6o43v