QB64.Net Homepage QB/QB64 Keywords QB Graphics Forum Homework Policy
Thanks Everyone: I'm taking a brief hiatusby (Login Clueless_in_Seattle)I'm grateful to all of you who have been so helpful to me over the last few weeks as I've tried to get my old MS-DOS system up and running again.
To those of you who have posted messages for me that I haven't replied to, please don't think I'm ignoring you. It's just that I've been sidetracked by a task that's taking up all my time. I ran into a problem with some of my old software, and that problem is going to require me to back-up my entire hard disk to floppies, reformat the HD, repartition it into smaller partition sizes, and then copy back all my software and data onto the HD. A couple of my essential programs aren't able to handle HD partitions larger than 1 GB. And I cluelessly formatted the HD on this hand-me-down laptop into 2GB partitions when I started using it. I've begun backing up the HD to floppies, and boy! what a can of worms this task is turning out to be. So I'm going to be busy comparing all my HD directories with what's on floppies and vice versa, and labeling floppies for a few days to come. Due to my health limitations I'm only able to work on this project for between 45 minutes and an hour each day. So this may take me a while. And is it ever tedious! Argh! I'll be checking back in again once I get this housekeeping done, and I'll then try to pick up the message threads where we left off Thanks again to all of you, see you soon, |
*good luck!by mn64 (no login) |
Yes, good luck...by (Login qb432l)R You reminded me of the floppy days, and the endless boxes. Today, the memory card in my little Sony Cybershot, the size of a postage stamp, holds 8GB, the equivalent of over 5000 3-1/2" floppys. We've come a long way (well, memory-wise, anyway -- those days were more fun of course).
-Bob |
Memory sticksby David (no login)You can get USB memory sticks to work with DOS if you can find a USB card that is compatible with your old computer. I have been forced to do this as newer computers do not have floppy drives. It certainly helps with large data transfers, but it is a pain if you only want to transfer a few kbytes. It is some years ago since I set it up. The info on the net is confusing and misleading, but if you want to know how to do it properly I will check how I did it. |
RPLby (no login)http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv017.cgi?read=112519 For you were made from the stack, and to the stack you will return ! that's the life oh variables, hence this is RPL :-) L |
* happy new year ! (i forgot and, don't abuse QB64)by (no login)* |
*wth are you talking about?by mn64 (no login) |
*my hardware doesn't like qb64 so much ! screen 2, 8b cpu, 32 Mhzby (no login)* |
The last comment made me laugh:by Solitaire (Login Solitaire1)S "Get a half-life" |
Any way to speed up this code?by (no login)I've been working on a pong program and right now i'm working on improving the visuals. The problem is, when I try to add a background, the game runs too slow. I'm using _PUTIMAGE to add the background (all of this is under the "multiplayer" label; haven't had time to work on single player yet). I know that it's running slowly because I'm PUTing the background every iteration of the loop but I don't know how I can add a background otherwise. _TITLE "Better Pong V.0.97B" SCREEN _NEWIMAGE(1280, 720, 32) _FONT _LOADFONT("C:\Windows\fonts\lucon.ttf", 18) 'Pong COLOR , _RGBA(0, 0, 0, 0) 'makes the background transparent so you dont have _clearcolor everything DIM menu AS _INTEGER64 menu = _NEWIMAGE(140, 144, 32) bckgrnd = _NEWIMAGE(1281, 721, 32) CALL gradscr(0, 0, 640, 720, 0, 0, 0, 127, 127, 127) CALL gradscr(640, 0, 1280, 720, 127, 127, 127, 0, 0, 0) _PUTIMAGE (0, 0)-(1280, 720), , bckgrnd, (0, 0)-(1280, 720) CLS CALL gradtext("Single Player", 0, 0, 255, 0, 255, 255) PRINT " "; CALL gradtext("Multiplayer", 0, 255, 0, 255, 255, 0) PRINT " "; CALL gradtext("Options", 255, 0, 0, 255, 0, 255) PRINT " "; CALL gradtext("Exit", 0, 255, 0, 0, 255, 255) _PUTIMAGE (0, 0)-(140, 144), , menu, (0, 0)-(140, 144) clicked = 1 DO IF clicked = 1 THEN COLOR _RGB(255, 255, 255) CLS _PUTIMAGE (0, 0), bckgrnd LOCATE 8, 570 PRINT "Better Pong" _PUTIMAGE (575, 300), menu clicked = 0 END IF DO WHILE _MOUSEINPUT mx = _MOUSEX my = _MOUSEY click = _MOUSEBUTTON(1) LOOP IF mx >= 575 - 5 AND mx <= 575 + 140 + 5 AND my >= 300 - 5 AND my <= 5 + 300 + 18 * 1 AND click THEN GOSUB singleplayer IF click AND mx >= 575 + 10.77 - 5 AND mx <= 5 + 575 + 10.77 + LEN("Multiplayer") * 10.77 AND my >= 300 + 18 * 2 - 5 AND my <= 5 + 300 + 18 * 3 THEN GOSUB multiplayer IF click AND mx >= 575 + 10.77 * 3 - 5 AND mx <= 5 + 575 + 10.77 * 3 + LEN("Options") * 10.77 AND my >= 300 + 18 * 4 - 5 AND my <= 5 + 300 + 18 * 5 THEN GOSUB options IF _KEYDOWN(27) OR (click AND mx >= 575 + 10.77 * 4 - 5 AND mx <= 5 + 575 + 10.77 * 4 + LEN("Options") * 10.77 AND my >= 300 + 18 * 6 - 5 AND my <= 5 + 300 + 18 * 7) THEN GOSUB leaveconfirm LOOP multiplayer: clicked = 1 CLS COLOR _RGB(255, 255, 255) plen = 80 LOCATE 18, 500 PRINT "Loading. Please Wait." DIM temp AS _INTEGER64 temp = _NEWIMAGE(1280 * 2, 720 * 2, 32) temp2 = _NEWIMAGE(1280 * 2, 720 * 2, 32) _DEST temp CIRCLE (12 * 2, 12 * 2), 10 * 2, _RGB(255, 0, 0) PAINT (10 * 2, 10 * 2), _RGB(255, 0, 0), _RGB(255, 0, 0) LINE (49 * 2, 10 * 2)-(51 * 2, (plen + 10) * 2), _RGB(237, 158, 41), BF LINE (99 * 2, 10 * 2)-(101 * 2, (plen + 10) * 2), _RGB(255, 255, 255), BF 'CALL blaa(temp, temp, 0, 0, 50, 50, 1, 0) CALL blaa(temp, temp, 40 * 2, 0, 60 * 2, (plen + 14) * 2, 4, 1) CALL blaa(temp, temp, 90 * 2, 0, 110 * 2, (plen + 14) * 2, 4, 1) CALL supersample(1280, 720, temp, temp2, 2) _SOURCE temp2 ball = _NEWIMAGE(23, 23, 32) _PUTIMAGE (1, 1)-(23, 23), , ball, (1, 1)-(23, 23) _CLEARCOLOR _RGB(0, 0, 0), ball paddle1 = _NEWIMAGE(8, 152, 32) _PUTIMAGE (0, 2)-(4, plen), , paddle1, (48, 10)-(52, (plen + 11)) paddle2 = _NEWIMAGE(8, 152, 32) _PUTIMAGE (0, 2)-(4, plen), , paddle2, (98, 10)-(102, (plen + 11)) _DEST 0 _SOURCE 0 RANDOMIZE TIMER dx = 1 dy = 1 bx = 15 by = 15 bsize = 23 p1y = 10 p2y = 10 CONST p1x = 10 CONST p2x = 1267 p2point = 0 p1point = 0 serve = 1 DO CLS _PUTIMAGE (0, 0), bckgrnd LOCATE 1, 600 PRINT p1point; "-"; p2point IF by + bsize >= 720 THEN dy = -dy IF by <= 1 THEN dy = -dy IF bx + bsize >= 1267 AND by + bsize >= p2y AND by <= p2y + plen AND serve = 0 THEN dx = -dx ELSE IF bx + bsize >= 1267 THEN serve = 1 p1point = p1point + 1 bx = 15 by = 15 END IF END IF IF bx <= 13 AND by + bsize >= p1y AND by <= p1y + plen AND serve = 0 THEN dx = -dx ELSE IF bx <= 13 THEN serve = 2 p2point = p2point + 1 bx = 1267 - bsize by = 15 END IF END IF IF serve = 0 THEN _PUTIMAGE (0, 0), bckgrnd _PUTIMAGE (p1x, p1y), paddle1 _PUTIMAGE (p2x, p2y), paddle2 _PUTIMAGE (bx, by), ball END IF IF serve = 1 THEN dx = 1 dy = 1 DO UNTIL LCASE$(INKEY$) = " " angle = ABS(ATN(dy / dx)) * (180 / 3.14159265) CLS _PUTIMAGE (0, 0), bckgrnd LOCATE 40, 500 PRINT "Press 'Spacebar' to serve" _PUTIMAGE (p1x, p1y), paddle1 _PUTIMAGE (p2x, p2y), paddle2 _PUTIMAGE (bx, by), ball LOCATE 26, 1 PRINT "Press A to increase angle and D to decrease it" IF _KEYDOWN(27) THEN IF qr = 1 THEN _AUTODISPLAY RETURN END IF END IF IF _KEYDOWN(97) AND angle > 10 THEN dx = dx + (SQR(2) - dx) / 100 dy = SQR(2 - (dx ^ 2)) END IF IF _KEYDOWN(100) AND angle < 75 THEN dy = dy + (SQR(2) - dy) / 100 dx = SQR(2 - (dy ^ 2)) END IF LOCATE 25, 1 PRINT "Angle : "; PRINT USING "###.##"; angle; PRINT " degrees" LINE (bx + 12, by + 12)-(100 * dx + bx + 12, 100 * dy + by + 12) _DISPLAY LOOP END IF IF serve = 2 THEN dx = -1 dy = 1 DO UNTIL INKEY$ = "0" angle = ABS(ATN(dy / dx)) * (180 / 3.14159265) CLS _PUTIMAGE (0, 0), bckgrnd LOCATE 26, 650 PRINT "Press Num-4 to increase angle and Num-6 to decrease it" LOCATE 40, 500 PRINT "Press 'Num-0' to serve" _PUTIMAGE (p1x, p1y), paddle1 _PUTIMAGE (p2x, p2y), paddle2 _PUTIMAGE (bx, by), ball IF _KEYDOWN(27) THEN IF qr = 1 THEN _AUTODISPLAY RETURN END IF END IF IF _KEYDOWN(52) AND angle > 10 THEN dx = dx - (SQR(2) + dx) / 100 dy = SQR(2 - (dx ^ 2)) END IF IF _KEYDOWN(54) AND angle < 75 THEN dy = dy + (SQR(2) - dy) / 100 dx = -SQR(2 - (dy ^ 2)) END IF LOCATE 24, 1000 PRINT "Angle : "; PRINT USING "###.##"; angle; PRINT " degrees" LINE (bx + 12, by + 12)-(100 * dx + bx + 12, 100 * dy + by + 12) _DISPLAY LOOP END IF bx = bx + dx * 1.5 by = by + dy * 1.5 IF _KEYDOWN(119) AND p1y >= 1 THEN p1y = p1y - 1.5 IF _KEYDOWN(115) AND p1y + plen <= 719 THEN p1y = p1y + 1.5 IF _KEYDOWN(56) AND p2y >= 1 THEN p2y = p2y - 1.5 IF _KEYDOWN(53) AND p2y + plen <= 719 THEN p2y = p2y + 1.5 _DISPLAY serve = 0 IF _KEYDOWN(27) THEN IF qr = 1 THEN _AUTODISPLAY RETURN END IF END IF LOOP options: clicked = 1 CLS _PUTIMAGE (0, 0), bckgrnd PRINT "This is not available right now. Sorry." _DELAY 2 RETURN leaveconfirm: clicked = 1 CLS _PUTIMAGE (0, 0), bckgrnd COLOR _RGB(255, 255, 255) DO: LOOP UNTIL INKEY$ = "" LOCATE 5, 550 PRINT "Game Paused" LOCATE 12, 380 PRINT "Press 'y' to confirm or 'n' to resume game" LOCATE 10, 450 INPUT "Are you sure you want to quit"; yn$ IF LCASE$(LEFT$(yn$, 1)) = "y" THEN SYSTEM RETURN singleplayer: clicked = 1 CLS _PUTIMAGE (0, 0), bckgrnd PRINT "This is not available right now. Sorry." _DELAY 2 RETURN SUB blaa (sorce AS _INTEGER64, destin AS _INTEGER64, minx, miny, screenx, screeny, quality1, quality2) $CHECKING:OFF DIM ws AS LONG, op AS _INTEGER64, cp AS _INTEGER64 IF quality1 > 16 THEN quality1 = 16 IF quality2 > 16 THEN quality2 = 16 FOR main = 1 TO quality1 + quality2 _SOURCE sorce _DEST destin IF _DEST = _SOURCE THEN ws = _NEWIMAGE(screenx + 1, screeny + 1, 32) _PUTIMAGE (0, 0)-(screenx, screeny), , ws, (0, 0)-(screenx, screeny) _SOURCE ws FOR dx = minx TO screenx - 1 'goes through each pixel for the entire area of the screen FOR dy = miny TO screeny - 1 ra = 0 ga = 0 ba = 0 'reset color and other values difpix = 0 weightednum = 0 op = POINT(dx, dy) ' get the color of the main pixel FOR cx = -1 TO 1 'gets the 8 pixels around (dx,dy) FOR cy = -1 TO 1 cp = POINT(dx + cx, dy + cy) 'get the color of each of the 8 pixels value = 45 IF ABS(_RED32(op) - _RED32(cp)) > value OR ABS(_BLUE32(op) - _BLUE32(cp)) > value OR ABS(_GREEN32(cp) - _GREEN32(op)) > value OR ABS(_RED32(cp) - _RED32(op)) + ABS(_GREEN32(cp) - _GREEN32(op)) + ABS(_BLUE32(cp) - _BLUE32(op)) > value THEN difpix = difpix + 1 END IF weightednum = weightednum + 1 ra = ra + (_RED32(cp)) ga = ga + (_GREEN32(cp)) ba = ba + (_BLUE32(cp)) 'check if the colors of the pixels are different enough to antialias them 'find the average color of (dx,dy) and the 8 pixels surrounding it regardless of whether the pixel needs antialiasing NEXT cy NEXT cx IF main > quality1 THEN IF difpix > 0 AND difpix < 6 THEN PSET (dx, dy), _RGB((ra / weightednum), (ga / weightednum), (ba / weightednum)) ELSE IF difpix = 4 THEN PSET (dx, dy), _RGB((ra / weightednum), (ga / weightednum), (ba / weightednum)) END IF NEXT dy NEXT dx _FREEIMAGE ws NEXT main END SUB SUB supersample (destscreenx, destscreeny, temp, des, factorscreen) DIM curpix AS _INTEGER64 meanquotient = factorscreen ^ 2 _SOURCE temp _DEST des r = 0 g = 0 b = 0 destscreenx = factorscreen * destscreenx destscreeny = factorscreen * destscreeny FOR x = 0 TO destscreenx STEP factorscreen FOR y = 0 TO destscreeny STEP factorscreen FOR cx = 0 TO factorscreen - 1 FOR cy = 0 TO factorscreen - 1 curpix = POINT(x + cx, y + cy) r = r + _RED32(curpix) g = g + _GREEN32(curpix) b = b + _BLUE32(curpix) NEXT cy NEXT cx PSET (x / factorscreen, y / factorscreen), _RGB(r / meanquotient, g / meanquotient, b / meanquotient) r = 0: g = 0: b = 0 NEXT y NEXT x END SUB SUB gradtext (text$, fr, fg, fb, tr, tg, tb) div = LEN(text$) FOR x = 0 TO div r = fr + (tr - fr) / div * x g = fg + (tg - fg) / div * x b = fb + (tb - fb) / div * x COLOR _RGB(r, g, b) PRINT MID$(text$, x, 1); NEXT x END SUB FUNCTION qr CLS DO: LOOP UNTIL INKEY$ = "" LOCATE 5, 550 PRINT "Game Paused" LOCATE 12, 390 PRINT "Press 'y' to confirm or 'n' to resume game" LOCATE 10, 372 INPUT "Are you sure you want to quit to the main menu"; yn$ IF LCASE$(LEFT$(yn$, 1)) = "y" THEN qr = 1 ELSE qr = 0 END FUNCTION SUB gradscr (fx, fy, lx, ly, fr, fg, fb, tr, tg, tb) FOR x = fx TO lx r = fr + ((tr - fr) / (lx - fx)) * (x - fx) g = fg + ((tg - fg) / (lx - fx)) * (x - fx) b = fb + ((tb - fb) / (lx - fx)) * (x - fx) FOR y = fy TO ly PSET (x, y), _RGB(r, g, b) NEXT y NEXT x END SUB |
you could try using PCOPY... or...by mn64 (no login)'draw background here PCOPY 0, 1 'make a copy (do this only once) 'now everytime that you want to PUT the background: PCOPY 1, 0 this may or may not be faster. 1280 by 720 is a lot of stuff to draw, if you're using sprites for example, GET the place on the screen you're going to draw over and PUT that section back when you're done. then there are tricks like PUTTING with xor, but you probably won't need that if you try the GET section, draw on section, PUT on section to clean up trick. |
Re: you could try using PCOPY... or...by (no login)There was an extra putimage statement in the first line - I removed that and now it's running significantly faster. I'll implement the GET-PUT method you're talking about later, but for now I think PUTIMAGE should be fine. |
Happy New Yearby (Login GarryRicketson)R I had forgotten all about this piece of code,
Actually I did not write it, DSman, and Galleon had helped me with it, It creates a "splash image", uses qb64, ------------ code ----------- '************************ '* SPLASH SCREEN VIEWER * '************************ DIM happypng$ DIM byte~%% DIM count& DIM splash& DIM happypng_bin$ happypng$ = "89504E470D0A1A0A0000000D4948445200000280000001E0080600000035D1DCE40000000473424954080808087C0864880000001A7A545874536F6674776172650000789C732C2AC9CFCFCBAC00000E610355A9B029260000200049444154789CECBD7F8C24D97D1FF6EDAEB9D93D27F6090E79A2B6EFE6867B92EE6419C2E5F6382B72409E1D4487FCB1149D5D5E030112C0808198420C6C1B93950829F2CC2470C0F030F00471442A8001030962A0A95D88E6FDB5FA4747A18FDAD5DD82909278CFF26E9A836B87591289CE72B43B735D5DF9A3DFB7FA5BDFFA7E5FBDAAAEEAAEEA7E1FA0D0D555AF5EBD7AF5EABDCFFBFE7AAD288AC0C3C3C3C3C3C3C3C3637DD05E76013C3C3C3C3C3C3C3C3C160B4F003D3C3C3C3C3C3C3CD60C9E007A78787878787878AC193C01F4F0F0F0F0F0F0F058337802E8E1E1E1E1E1E1E1B166F004D0C3C3C3C3C3C3C363CDE009A087878787878787C79AC113400F0F0F0F0F0F0F8F358327801E1E1E1E1E1E1E1E6B064F003D3C3C3C3C3C3C3CD60C9E007A78787878787878AC193C01F4F0F0F0F0F0F0F058337802E8E1E1E1E1E1E1E1B166F004D0C3C3C3C3C3C3C363CDE009A087878787878787C79AC113400F0F0F0F0F0F0F8F358327801E1E1E1E1E1E1E1E6B064F003D3C3C3C3C3C3C3CD60C9E007A78787878787878AC193C01F4F0F0F0F0F0F068380EC7CB2E41D3D08AA268D965F0F0F0F0F0F0F0F0F05820BC04D0C3C3C3C3C3C3C363CDE009A08787874701DCDB01AF72F2F0A8050EBD2AB3003C01846447EE3B750F0F0F17BC7A1736965D06771CDE5F76093C3CCAC56134237EFBAD6AEFB39AF0368000706F07A257EF42850DC8C3C3C3A3AE388CAA1D403D3C3CEA082F0104004FFE3C3C3C8AE0DE0EACC00CDA933F8FA662D1D239DBFD9A2729F40490E0DE0E445287BE1A9D7C5538FCE1B24BE0E1B12CBC7A175ACDEC1F9A37587978A4B128D5AFA46AA62AE8AACB520DBC0A3803D8B97B29A18787878787471DB00CB305BC67B3491F85970032F0D9BC277E1E1E1E1E1E1E750297C4D1DF7971785B389641FACA2EC362E0258004DC1984FEF792400DDE80DC0371781F60FFE56597629168AE0399FF6E3D3CF2C1E671DCCCEFC94B000938F9A3BF14CDB4F92913AB2302F7401C7EC5319D254C9244FEA4D974B341BFFF2CF257DFBE62CDBEDB56ABA6EFC1A3BEA0367E8711007C31AD024648C7EB2F0D5C7B02C8891E97F4D15FBA5FDF8EBD6A48339DFA37748F2CEC7FD37E3E9EFD6EA48F278CA51941DC7F63FEB23517CD940EAE1090F845917F0F1E39919A247D473EAE4906EB3FC9F22A6098A971E82F9E9354C0CD55FB1405277D3671773345E11E79A0BDE3C308009E00C0F9E97FB58D8CD344D2637958E16FB6D58A1646FE16792F8F0540F3FC951C4144214858F77E6E6D258012C993A47D5CD25794FCDDDB8177E62BF132810D9CBBC5F36398D6A354B45A57967773FE9EA50E30D1519E9FFEDAA4C4FB1BBAD4B8CE2B56AC9AA49B0F70CD78BE5CDA974512324FFE5610F4DBA01325FAAB8E81C1428A3807BC0490419302728790F5920072D08163114BF17888408943E99207E9FD52F0F72E4988797A7AAEA96D255FD97D3F510D72F7C555AB81E9F7E7A5802B085BF897F858080041BA3FAC777FE70920439627B0EFD01179D4C2CBC43C9EA987CF00EC7F546E794AC042EC9AB23A311BE95BC589415DDBB787154D27644D2F7FA558E637C9496156FF584F7802E8E1089BBA4892023511873F04D8FFD4B24BA1820F06950C0E872380FD8ED91766BE089BEA23AB734CDDB3666DA76EE55904D6E099CBFE5E3C395B331C8E2121E503488E7DCD33875A4B02786F07BEF2EA5DC8F07A5C6770A919970601E8A4AF6903C9E118000600FBAF2FBB244EA0D2BF4A54BF360F37A91D68D0A48759EDC7C323897B3B307EF52E88C6F4F9B43225B7374F006B8045F42159F7D026C8F5C75A3A81B890BF7B3B60897766BD6E0518B544FEA82380EAF504CB6FF887F72D0E06D287BA31257F79AE592078FCB2286AC5E48F9E2F1CE7CC66D7A2113E3C2E397BF0BC8B2C9D543767849AB68D354139E40FA0F4BEA96AF2E763173A6011E34D6202FB1559D2274D9C693F5A4FAC25017481D6E9385CD708E65F1C92248837F02A1A7C569E71395ED23B054D7A659BE1B9A82FE744AB759FFD97271FAD56146F480429192C04E9F9F83B963CDEF87BE769119C04BA90C1541E852663E5A168DBA8211A4E2AEEED4054CDAA4CF9BFE3D598EC2F02878F2BC8734975BFFFCDA440840B46E274CA7EBDE009600958ED8E405309D2461F13AB77E46B165D0E7A5CCBCB26E5B2CDDC4AB2F368B5669D6214BD4C8E471045E9C90755FD22E9E3C7785A27B8106B0AAD9E797D7252CDF779E769ABEB65C7D25AC404A720F212BA86AB2C6988AEF921F501FC1CA875FCEA1F55589592BD6F63B1FF7405792EB91D3783E065612D6D00AB84A49668B6F7B0A4F65D7483D7D494925DA2ED3F1E631D7EAB7503A283AF1773E12FD1068576F2D4C64F52034BD78A833B0FBA6C7B3E2940B3ED9D4B7969F63059EFD096B7871334EFF09ADAAADDDB811BAFDE85B7C8FFDC92BD66F7AD1ECD049FE426FABC7F0D0017F28D21CB8327800B42F33AAA2C1BBFBC4429F7FD85F02DDA4CDDC531C196A628F1A3F9960C97193F8F3D9618E8B356DBC820C5701841EB40209BA94EEFC96C86AFD52DBFA76B3DD7BBF3F4981F36078FC27022BC35695BADD66388A2A7CDBE5CEE9A12F82916251410FAA785DCD70689087241494DDA99024F002B42F3081F85F4B1691240EA1ABF88B24865D2244F1C2E1F2B4F2B5D87C7E6842D90B3768C2273B0C892B001C852535525F62B806B068BF7D1DA4D5EE8D735FBBBF2E0E052BFB414F030BAB7B39F587F7D3D97E36C0AEA40CCAAC2E12380FD67D93165FC40D4BB1EBC0D6045588DCEC966EF169FAB90FCF17BD27BDBECFDB89D9A964EFB60AD2408DC09A780A9EDDED4E943B2F1A14E1EF43F4F9FCE534863B16BCA4DD4F65B31F983C3C789F2A90E20B6FB4BFFE931FA3B4BF7EADD437B313D66A013869ADA90719BBEB48DDFBE786E91FDAB68E35DD3FA8C41FB8485A2DE84A7380E6FCFC81FED9B34CD923606D50B5E02E891019BA44DB3EDAABA1CD2BD34B2EAA2CA96CE69F72B30C3E5E44CFB4FC125833CFE1FBD1ECFAB6A224DBD7D1801C01701E03B8BB7F1943A4F4DEA6C2F4FE9D2A0566B0451D4292D3F8F146CF67E7C394E2A0D04D8178E2F1F65B6C17B3BF0F8D5BB5081E3C4AA60996A555B1F596F75AF88288AFC56E2F6FE67A268D965986F3B70283F4DC3D31FDC5F4CB9F0FF4194DC177E01A264BAACE791F2918E676C00723A80283E47F76DE76CE90AD563AA3E1F59EAF1B1F3B34DD38F731E8FA22882F73F13DD97EA19BFA9E96FB2DCCDFFDE2ADA0AB58D6A37FAAED8FE981EE75B9EF75C757BB0E5EFDBE2BA6D0791BC9F3AF7D879CC58F0B6F402F8AD4EDB4164275ACB2E9F4BB913FBD381859228FA1C296228ED4B75C2EBA6E0063076247F690296BB7EF2BCE7ACE7AEE6DDBDFF99E8312F2F923E4E06CC3667BDE47E5F8BBDDF1A6E9C4425FF1F44D22460D95B2D889F6DB2191DDCA8EEDECB7E17C2E4B4DAFB457A7F8AC7A53A59763DC99B57017B08C852A7D645CC6D754E215EACB87FC0AED754BC2EAAC839C4FD36670E493D5CA907A0F47CB667CDF22ECE735F00C9314756A72D48BD526B8FCB6682AA74A51059009072F2A0E766C7EAA7625B86338A7780B1611163D4610471F4039BE360FDE19D400AE3F0C6B24B502DB8613F76BEFBAD290928E804512A68190507043A9047512B996EBF357360C8B2F5B391C29CB019664BB67D92334869E0CF419F873A5FD06737E4AF50590E6F937C5A729D2609C094044C3D41B9313E5D15221768106E0E4FFE4A870B59A1EF314DFCF0F87EF985CB09DEDE1641C472DD937F970B770459F6B8B008E2B5DF0280F3D9F6804907B65A62D92248BFD5693B8892BFD2717EAEA99BF6AC523AAD3E940D40B1758BCF47A90D8F4B69E77F568B9A843F1FDF5FDEFBE636639A0D59291B57C567A5F19BF4BEAE98DF4CB59CC51E30E2E9D2EFFA20E77BA8CA2E7929759CF3D92387769BB73E57652BF2DCFC1AFC7F1015B6155FE2E655C04E4848834A5281AD0296AD92718D4148245DB12A58B8460DB752E273BAC4FCB3A529D543D516EA06E1E6893B2F24A90F5775D9D48529E451E5726F6B2D36634D514930E50AA07BF726CF2FA774F54631CFE765F7CF8B86B4780040768CD35CF750FA4CAECD40489AA2FABC134F0033B14E1F914BE36E18F8F26A78CC3AC897F4CCADD66D88A237ACE591CAC7D3CECA3D5B35602EB8103F8045BEF7E9E07F083CCC471669288C566B0CD29ACBC934CA84C0230B59E49DBE5384642758C7902F8B40654B8AE69B18E9DF8834694A60198212C98ED9D697CF6BD72D9902D9CC89E8B17AC0DB005A91AF4114B247AA156883C5ADA0ADDBB2D16A8DE37DCD8E4EED084BFA48A3E80DD1E183DF573A261D2F85FC01B83F9FF4DECB6C0BB3BC6880672E0194247F785ECC36CBEE692A454DDA3262DB70596DC523857B3BF048389690EA4AA42F0BE9C0D071DEBA1DE70A407AE65248709EF6EC42FED43C97A2257B42EECFC62D6E8F278DED999A2462FBCE499D44F63811D4A4844BC4B275D0F5DC0E2CBA7BE95CFA5875A101AA74E9CF530F0DD85CE2F065A55DE90DE3F2F1F77C102DFBDDCFF5FD64BD4B80FB897690A79DF84D7A57A2CDAB12BAC729C65F2D42ABF8ADA4ED60C1EFF220721BC3793ADB750723B77CB2F25B745DD8372F011461538FC54CFFFEEC5C7AE690D356C371367B3806D87FCB3DDF79913923AAB727B436DBD5A4708BF0985BBA971EC5FE863C4BCE9AD1963B7B95BC7BF197EEDBAE49204BCA11452F27D2D9D654AEA104B06E9A06CDFE50B3E5A4CBB9092ADF47348D847B3BF095B2CABEBE70FC86A5FE49EDB3789E79FA89B2FA142D1FAED50248472290A249C4E788DDB5D427D27D1E41811E97FAD5E5C113402788BAFC97755BAADC03E579C772D4CCD07B4646EFEDC033CB2C891512E95A96BA4F229E4B85D40902E8F1116D6DFA70346F69901058547FC56DC2E87BE7EBE46A6DA1866BBEE679F64592451792EEB096EF27EFEDC0583987797CB37021D716AE8E0887D97D626ED31949F5C97FE7518FD27E479BBCA6AE89B2CF6B90ECFC5C50F4BAEAE009600A3CC61D4AE7A60320C625A30D78D6D1D908A1343B726D0C451B6A9174EE20D299F1AB77E123B33F32BFB76DD72E04B635736B2ADD592E6C1DA78B07DD7EA677F2BD1DB8CFEDF8249B3F1EE34F0B249C00B5E793607BEF1AE15B741B2940386D246F91CE135A00679BED1F3F67D2D76CA2BB0A70251C799D20CC16B75B4DFA45F3D79C26F07A51FBF0D8447D90CADC49A6E75A0C7A2F5712E6E22467834D9A5834CF0AB06C1D7433B68328FD9BDC66362B525A7E8D8B2D415659F8BEEB33CC570FDE3647AC9705DA6556FA1C91DE6E1369C6C9FFF9EFC5EDC0E83129CDDC36815AAC45CD0E7091B67F39EE655F2AAD5E5B9DCBE637DC0E8ABD23FB5AE0513AEF83481F03B532E4291BC67AA4F7D6B60822755DF2BCF5C69FD1F60C05EBBAC26DE905A8FF7610490D96AE519A1D00F2404893BACF237B198A94D3251F5AE6AC3CA6E7163508BDFF99E87629797943FE821B6F1BF438DD68DA5CEF37C25F5B1B9ABB7D01DC4F1140801B89FF523B5956BB2978DF3A102E5BDF209C1BDB1C41FC56F32DD54E0FA2E4FE81E53C4D43D3F27D5B7E111047B60C42A75D5FE6A695DB5607CBDD965E80E66CF4E5BABC60291D3DC6F75DD2F0F4DA7DA5E3B67D9E3E7D4F6990D6A4375903FBDC129D79B7D20776AD2E9BBCE1BBE71B6F23529B2976CF2CCF50F60EDD1781A7E48F13BED96699802D786BD88445FBDEB3DEA5277D0DDD12EDF3209AFE3F88E2FFF12FDDA46307C97CC4EB23484BF7B4ED601CA5563DB295A7CC4DCB933F57BD366F03E804CD7328D3268AD91B24D326D7B6D4ECAEB8813E35C6D70C6A258F27BC5EBB17BF27BBB63D61EB72EAF65892C71FC0E12363D7F5D81CFB2ECD4B2F4F055E7FA5DB75D530BED3DC90DA0D84C9FF922D4FFA1C8F11C76D00A9BD9F93AD1F40BE9888D4DB977A7B537BC0287A36714DD5CE1FB6FC1B669B4A1D3B6C711B3D5604099BEA03B2CE3A854B240D3C2ED9C727C6D897E5EBF8FEFE06C0FED3695B40CD369FE7C391A72FCFB219AC87D30787278056489E90B6B45283D33E8CFD160D7ECBCFA5C95C963BB966F42A91425E66EDB966C75FFDC376CAC01BFFCB03F66144CF03EC3F6B0688A701005EBD0BAFC779938142F11C5C82D71F86F989FF3B7606599EB255433394764D6B33DA462FF454072D187227F63F89FB920308F7F8959C090A813B8550E2A7790323AA0E0B54632FE322E0241E8FD377CBBFF1755BDD6325114516A70E711209D982093E764AE396ADFFB139ACD9CA614B9B17DAF85F2FF8A5E072419AC564357ECDAB49BA46CAC3764F49EAA24B629279F0B26948DF9FCDF01F830963A32DDDA52D0325FDE29DB4E3D500D7908C7FCD324687EF00ECBF4ED24975FD1500F846F6BB772ECB6300780A5C42FEB45A37208AD271215BADFB1045264C11FC0AC07E06813E7C3C9D39A78E2BED90436BEBFB89F797B5B287B63C98BDEC16F025FFE82F47C3A46E754216A1F36BFCD60145FA22054ECBC9592792168246AF95D265113E170F5F7E0F9AEF7AC14B007301A56C9A54CFD658A5D98D5D459C4C8FF95150098E34404B332D49F4AD490593924C25CE572286E18CB41DC6CB7B4904408B07C607936A060E2EF98A550C489A02736287A593DE8F21575857DAAC37BE77C68C6BFFE914F96BB5EE2B89BF2EBE4F0C743CBDFF37E4FB2666D5E78563581EADFE9FA467E8B4ADEFB7A6EAFE691BA0D21F2DC61F405A9DA8DCDB0D3CD0335FFF590A09B32212B94582BF2B6D8DDFC597CC638612C98D13F9D3FA4189ACE135F45752A9720D9826F890345F74DF4510B31EF004B03464D93C707290247EE958821A194C34D2209D46BB3F3DA64976F46BB8A466FA7B1877FEAFDE3D64B65DFBA9FC3555AF4D0A54CDC091255D8B49EFD37A47A2117B894C4B79E74074F0422AEF562B82E820233FE97DD2FF929A429AA98B6D52085E9EECF8A7EAFEC4FF843A50921C952A2DA22A5E29D8331EE376811EB9C06D742B5BC7D6A3E6D0841C784E237F0984F2B8A48DAF9AF025AB9FE544D1E59AD5832780854025489C0824A566782E2B58F4CC1E308BACE555D96A124697FC92D74CCB78389E49F2F68964671F66E96684901ECF92FED034342F9B7D60B990EA4392D86A2A089A9E5F5FB43C0033F52CC92B3A2069B499B434E19024C0FCBFA6D2CD73CDEC9C46EAB4C0C13C5D2E703B3EAEF2E58BD8DB96836B08962D5D431BDD6597C363D9B0A974A5F1461CEB02597822DD47EB93344921EF0F33C9E8CAC3475C2F042E41CA1EE467039BD418F97FED838127B3B489C179AC0FC02E84C4F6514E8FBD7A170000A27B3BFB01407A0587E9331E02C03E9E8B21A5E5FB3C1DFD5FBE3A98131BAD137025DF12A9E28491DFB74879B5776A104B05B5679248A0D61E25B87496E9BA92D4FCDC14A034F2C0D5BCFC185FE37705247F7591AED5A51C1ECB8646F4F24AEB78DFC98FABE324C87D66A2EF7A02092D4646DFBAAA58761C9AD5DB0E22B7209818078B1EC7FD745A3D1F976B5CF291F24BE69D15A72DB91ACA2C7FFE9CB6788152FEE5C60B93EA5B7A7F2ED7D077ADE565BB4F561BCABA96DFF7208A122B5B1CCC7ED5324BF7CA4A136FF785746240562986642501C5D3019F23759B9E9F734500BFF96D5DB7832B735E1FB91F3F88B2372D1F9E86A63D88A2E8E087ECBA77965FB78BD9BC0AB874A0E4275BF23653FB4AB613B6FCA5FF5C15CD6193DCE07536D1FB6184367F5ABE333BC0D9AC8DAA8867EB28BB1B8ADB8E652D1A2F3F27FDA57596A5DE94EA2F6B166B7B9F2EAA7761669B0869C2A4C6AD83A96A383A48C7EAC2346AD934D5B124998E8FBD942C2F40523A4EDB06971697E0E4D16A7D3E758C4BF2E8FABF92BA378ABC16C4C3A310F6DF2E7EEDE13B721F68D392F0B155EAC36C6320CD87A6DBFFD4EC7A0048447E586DF830300B86660F95DFF83D4B259925CACE12796BAACBE9BE16DE236DCB980A1BA3123F492D385F2818CD460D00A6418D03D94ECE05AACA0143C808F59B47052CA93FC87F247B1CA9E3FB3355677C5C504DC7D7EDB7A0D51A278951963A25A98EB9B7B31FBE7A37695E627B97A53B7E48767F3C06608355BE1E8B47A737391D1DB7CF2DBB1CAB0F49BD0BA0F4D3A136E1B4F7EB52FFB59EF004706E1C5E996F269499BF917239C4852BE77E79480A929D31B020C13332B89F92FC189200F85F8A098877A8280C8CD4E83F8084448BA695EC4D34FB942C7BC179CACCEE87923D247618953F41F6283819B43D177F86945DA1B1A1D1A5A3BC0D54066EDF271D07906D013D4A47A737B90900303A6E5F5B7659CA0225809DDE241A1DB71BD3763ABDC91800C26612D8ACBE54981CA7FE6B7D14054EDE31B2467CBD890DBBA258B60EDA6F75D8B216D276CE274AFF1E44DC36D06E3F58FAB339E63B2D5BF61AB7C967D3ED4A8A94C1A5FCFCFE11A4EDFC48BAF89C506E7A2E611327E405F04EB6FD8D547FB3DFD2D780E66BE64A367E5A3AED9CDFACDB85EBE14DF3FBC0FC9E5EB81E8E2F5C0FC7F8DFFC8ECD76CAAF6DE276E17A18E1469FB38E1BAD6753E635B0733D88ECE7F03CEEF38DA74B5CEFBEEE78C3362F01AC099A162DDFACEFFAFD57EFC21BC933C91998E6D9FBC76FFC7FD12FDCFE775A49896195CFAFA9BC1333C45F0580AF27D3493348290FE9F89C68B5EE4374F0924D15AFCF6CF7654960BC76272977429248A47FADD618A28340BF3FB9570E9577252A5FBA2FA97F25C9A04761A05409003647C7ED164AC53ABDC9291E33E92200002A316B9A3A159F891E6B820490D67DD3A496C591E81789998F8B798FA8F9A858C3B75C7802E851310EA37FF977FF36FCEC6FFF53F35F22138B29876C17E26A88ACA9444B2B1F51A38BE7953219246CFFF639217A0C51F4F44C157A904C83A0C490DA048A9D2A854D75AC632E2288CF243D43964AD8A3300CF10B20DD0E847631231FB84FF2B9D914153196DF200480A0EE648ABCA718752FF3FCA04B5A725B6F00D33F7D0560FF9BBA7D789EF169D16358F9F05EC04B44B303A71E5EC9381F7B59FDEC6FBFD0BAF78BBF09B2A468F621565B1FFC43A5DE64B4BC581EDA41481F7AD91FBE44FE14295BAB15C5240D0092BF241D12424AFE30AF04693A608BBAEFA3C76C2818635BCAA9FDCE509A7D2792BFE97ED2CB17202D0DD4C85FAB95D3937C3DD1E94D4E0D11425241C9C5D9E8B8BD313A6EB728C96092A7D0E48364B029E46FCC8853000067CB2A8F0B880D66E25D2CAF448B02277FFB2D4838FA1D4600F08DCCC9F4EC5A01ABE53CE225801E25435399BA78772DB27C5279B3A47E99796748F10AE2C96F4EE0FC7FC3266B28A5A3EADC7D41FA459E415AE7F6FEDF0378E97F20E4F2607A3CB1CC9CA6FA0560EFF4F300F0DD6A25A5065CF58B90499E97041644A737B9343A6EBFCFA460CE8402D5BD4D5247767A934B00F05B305B0B1C09DF669DCB4D412580A89A6F92DABD7CD0F1C63636F13489BEEC36C03E33796A363C01F4A80012D9933E3480E5CEA2F2A885A5F4CB0691026A7670FCB89626919E92C903723FAA5A168E6399AA7EC759DEBEF81CDA710F2720F933FB7746C7EDCBF3903742221F8E8EDB2F1AE95A6DE33072D28BA83B09F4E48FE33002356A81362ED1F32EF9D7695C708757017B940C4D5DCA3FBA3A7C3079CB55873253ECA7559FB3303061EA384FF3CEDF86C4B178193998FEC6D730E95F14A5D5E7ADD68D54D912BF2502CB4F891D5DE24D227DBC9E3C9CD0E94DEE1827889D7925774445FC1C532767A21B6E2D5452619E39341B2D7BADD5BF0671B9CD3B3BD7E94D1E2CB94C4B028E47FB4FCB244F237F9AC64342DDC605777802E851322435AAA442D4EDC4168B067DBCADD663A7E35382B641CE47A9DF286AC1EBFF1400E0F766C70F665B7CED01A4D5C8D45612C010D1B766FF2B56EF4B71FDDCD5C1DEE62F1F3E01006F03942AF9DA4442D5E94D224DD246D10F4E16FE9D1AE964C88ED55A9266A47F9B302BF71900C0E8B8FDE2D20AB55448DA09AD5F928E37687C28004F003D4A8626512B2A5E5F3CEEED0059C2AE468E3AD4F1C1E5F8EC7C0B7EE27C5A6D3AC52FC5C7A3A805CF9C33C4EA00A652C0034848F312FF01EC9D6605E49E133E7E0EC1A580B3E3B55539D609A8FE35C4E14B65E5DB0DB7DE61C4CF49A2D60DB7229402F2DF8AF0A129DF26404CAC5032584BB0B2A17475534A8B58B4647539383413646ED38C9B66079E777C5AB630233F3C01F42819F4237321839AEDC572905CB1A4AA954896803F7B92B4FFE3EBE2A264EF233A8670E711621B189F3F1C9973E364475A915D8C4462511DAC9DF3C80DB4FD337056D566A11F9CBC6EF26FED1E6D031082D5E94DEE603A89E4F583935637DC8A501A88BF941C9601A3364D48CC88ADE28765DDA72C74C3AD31402C9DE45EDA0F6DD72E43B2BA78ECB309B23446E5D14869692A9CF856044F003D4A0655FFF15955D687B37CBC7A175A2B43FA34C892B1D6CCAB987586B16DA0799F09E9DB7EC7FC6E24EDFE4A7CA71A89D342BF789402E30D1B432259F348E3067BC390D8D67D1B002E69923E89A860DAB2480C79DE331EBE065117552A923E00807E70B20100A0D8F95DB4E411D7EF7A480229B8141061EBB75C4D5BEA339E65C113408F9221357E4E0AB5F31E9563E624F18C780E0E1F9138803095F81D904492AAA462D8D4BD94F4713B40EFF83117A8147074DC6E0DF68689F3DD706B3C0FF91A1DB737BAE116AA82AF0240D00F4E5A54C2C7A57C2805E4C48F97A320A1F975F38B52C94B18DFD0C54E719140D287E8F4260F08390DD15ED3C56E13EB79FD482080AE8D72355992D235673CF304D0A302D08F888BDBB50FAB391FCD4A208A3E4A49CFA6C4E993F17E22C48C9DF051BB49ED7CE1B272552F050FF64C8F7BCC05A3968DCCFEE9EED136275601802EA1E3E8865B637A3DB92E262CFC3CFEE72445227C59124307C4C1ED8D7AFA3D5727954543206BCFA19D2200FCC094390405521DAD0F09E4367F7CBCCA33B96DB6E38827801E1540237436517B733E9A95424A5A46A47FB1EA570B913003579D97EA3C2385B0E165F7A8044492740E2049BCB84D9E0D86580492D46EF7683BE8865BD1EED136702923BB3EF19F1FE3E571556D621A1A2EA51F9CB4889D620800AF014CC3E264E5B708D07A3475473D7F9F33BF81465ED7C3F64F033555C15FDB7874B8B291033C015C3354E7D58ACE0012A83D20FE4FC5635AFA47562B8FDF452111D0991E47A99F40CC1D1C2B38197CF52EB472D5AFA4A2E6E5E3C48FAB82A7F92CBD5D35189771A7D39B9C52F5ABA492B5912D4ECA785A8DF8A1E44F228E542AC809113DCF8F4BF7400FDAD171FB45AA3635D707CC2966E1C822B2A69C9B0031598FA5AADC9693E6C9DF45D9C490DA25D6C783FA500EA7954C4355C30E910370FC6A96264CAFD1140000200049444154CBAF04B2A2E0DEACCB85F851FC2AC0FE5BC2F185004949D6B1B546CAA9A2F85277A5D4ADB672C98A397F74C3AD114CA5659F5AC6FDC9F26F0FC03811705B324D15CBD350E297A5621CEC0D51F51A43BA86923E29BF3C92498421279B0053F5EF606F7806B3102A67CB8EFF672369BC9E791AE93DF0B4653AD348A8EFAA2FF3DA33BB5CBF609BE91CF004D0A34270AF29C9F6A29E1FC65A23B59E703E68930F733C7CF52ECC3F10AC3001A4308E160B1F3829214250122811090008B1AC36F297B58F445023265A6898A2922CBC6EB03784D1713B714FBAFA890BE9AD024A5D8EC1A8D44D9D85A3E3F646A737B909005735E70F8D305755765C96AEEECBE7AD2BBC0A78C5B1F880C69203083F4E7F3D6A87842AD5ED3D71271054F9D2E3C64E70A3705B949677D3CE370C5A88952591BF9B60E2DD7DEEAD388A48C8D5858293C60627493C6E1F276A7CDFA8826FD17352B8129B2D2227A64ADD6260E74B0033E923E683AA4B2A91E42AE54541B96760CA7973B037BC0B337BBFAB00F23AC6D2BB90D294E908825ED465E5E7512EBC04D06301902481F8DF4B015701DCCECFB63FF7CD24E95F83A5803629571EC956196ABC4E6F726A9C21C660BC7CA904CCA66AB4959BA6A5123B495549247267BB47DB9B1A5191F2B4D5034B731F005E1AEC0D6F81214D04B746C7ED6B5C1A69CBBB0A74C3ADC7FDE0E469E9BE521D1A4FED4DF23FE2525B9ABFF61C653D236D43084F06EB054F005704F5B3693B7C0760FF75FB22DB5C42581511F42AE7458112419B2388942601EEE12BD9FF211A4AFC38BAE1D6ED7E70F206F99F69CFC5CF97011242840EDE0F47C7ED1725752E2F9B8DBCDA1C31CCBD2F01C07B458882460AA5E3000083BD61FC4CD4FE905F834BD6D5C10E90D7E1606F1893552C2B7A533BA8EC6354E4FC21DA8FAE1E78B8B3E68C319E007A940C4DF5CB3D7FB957B0C72A80AB81F9F1D226240D96F849D0A48059C6FBD27F25FFAFF483936FBA94052547548DA891097A8CFE2765BBDD0F4EDE90A498D23123350A25B2952575A479710999AD8EA47AC66797C8D432E052E7E8494D2596B6F408ADBEE62185DC8674D9F5E721C313408F05212B00F42248A0279C55834AF5B8AD1F3D9E2901A4D0C8DE8A914084A6F2CDF2782D517547EF13024020A9416D44D446CAA47BF2731AF9B4C145F2289142EAFC41F3E35241973254095BFD1A3BC01D5B7933EAE731009C2FA9FD9CC2547A1C400D24A71E3ABC138847059016D946F0F5174B5E37D68A45DECB433249286496A091BC06913F637386FBE89C30E20E0E79A45C36F5AB765D1648ACB687867805007036D81B86ACEC2967104DB2E7422A18F9CB1D2F4E23971AF9A369E80A2783BDE15D2C330F4953A673840BD05185B70BA51C3B0053D28A9240DEB66C2A609893FCA1330DDA90C2CC7C6053BFCA63D9F012408F8AC097D991F63D195B55689EBE5CF257AF7895D5C3E6AC200DF29A13882D6D96CA330B5CFAC663B865492279F95CEA82DCFB0E00BC62FE067963C765D9186AE76D52C03AA92F3547199AC656661767997940026A9FA3C7BC14B09EF012408F8A40499EB4049C642758357CE8992A21A97CE9C6D32011B492BF06AEE4615B2E8C131149EA6793D6D0B436E95616E1B1819207E35410AFF9CB9F83960BCB20DDD3263164F7BE6CC8C2A6896B17D1D524847C3F4FFF538923FDA5F7C4E326D87388D23E81FC9D2D9BFC69B6951C28F5EB07D325EC3ABDC9299520F25FFEBEF8FB295A5E7C77E6BD8DC9318F1AC213408F0AD7B7D4C2BE205055BC481530BFB7475960442E0448C6A1E464909F17338DA21AAE1E9050793D30BF6322FDB84CD376A72B7BE07E2689D2EEA9490BE9B59C50E691F0603F8012C09DC357E3FBBA385568C44FBAC6562E23318A1D3146C7ED172DC5BEAD9DE0C487D7D5EED1F6E6606F1808C42F0400A09235131B71E1D0EA098F73E95FA73789BAE156343A6E9FEB931892BCEE35C9B2ED9E3660DB27EFAC55CF953F3C28BC0A788DD1E94D6E8E8EDBD7CACFF9F03EC0FECBC271412DCCCF79341D363B3F291CCC624B572EE88047BC671F8C8EDB2FE2926ADD702B1AEC0DEFEE1E6DEF64A97C3934D52A9EA3696DE7723C4F22769BB4049C50DE2F02C077B2F276755499D783B41B6EDDE807276F91FFA9BA45D5E9606F18EE1E6D6350E53BBB47DB3B248D75459245C0D88EBEC4DFFF606FF810009E03804DC9F183AB5D5D25894540D4F69BCB96987AE4839700AE37AEA0A8DEFC46F32DD87D7863FA2B91BF380D510BF3B030000087571CEEE3672D3586E605BC4A6B2DF3EF04D55D86105E34BFEF75C3ADB151255E96ECE328B9D0549759D2B379A47EEC1952522E9428E17F5E46B3FF36BFAF560E97B28D8EDBE7E6211294FC69F7FED467FFE70D73AF0D3C8E925BF27F2EA95819E807272F038824F63923FD0B01A664D5F4DF7700926AD7EE743941F5598AA87C99D307AAEDC515483CEA0B4F00D71B38CB4677FDD67CF61AFB62C79B94F849F680893CDE76B8CF4A9088758224F9A3CBC52DBB7CAEC081CFAC96419D2550DD1552E230D81B0600B0D90DB722639755C8F68A92409BB38596273BF658BA87D1065C26FF634FD84E6F7249CAD7666BC889AD2B28B94627943CD7F3F2B0323E010078F1CBBFD9C663FC5D1889AD6A8B4955FA8B805487B8E2074A2FF13DED1E6DEF08242CC07CF080647B9A07A3E3F6FB667793A97D7DDFDC207815F01A8375140F8DDAEA0EB7612A073C5A3A802772AB0D4EFA10F55AB1A618F8325BC2F9314CBD5813AB33D0C0C2DCAE8E5E6F730C31FFE3B86DDA402E5CE3A27ECD5401E3BD34B5A2E6989207743592A2A422EBF9B354F07C19B865C246B8D10104212DFF26390C49FB59E540B306762C0E1CEE0960B3E08D343D00606A685DBEBB3E257D5992BF45C3DB1C560D247512B96B92D40F61B39915264EA1F1623D4D923E4849F12492C707635722A7A997B14C0E8F192F0137952A9DC464532A970D3682EB88203B890E5EAF94EC4C3E3E07EDA766E514AF3B5A6CDC3F57D07A35E605E7506A89EFCCA41B03A4D5F612E1737D3F48FE303410257D9EFC350F5E05BCA6E06A15F32197ECAE9F97601D8AAAA96AE0C9DF222179FBDA08621D313A6E5F2336562D6A33CBA5E6BB47DB9BE88D89E971904670D5A3EB206CF3E0A4E7B90A937A8572747A934B3C1A00DA950DF6864F69F7E1F68A65384B903A8D558A9DDEE401AADFF3422A5BFBA9D3C4799ABE0C679A32D00DB7AEF0F2E07EA737391DEC0D43638A703AF978DA7533696020A97DE97B13A4A263CD4400EF8B79CFFD801E4B8727806B0412B22202F3012F77F6965A25E4697B5AEFFCD1146449F86840E88649032FA1C314403AC699F1DA549D20768FB681AE3061B3A163F9269CA334D247FFE751EF19C9CE274018D8D1CE8CDBCB71BB397E9DCD83598321A19F03805BD4396D74DC7E91AB1E8BC010A7C431A95CE6FD7E30EFFDE6413F38795B7AA7E6EF26C667DC3DDADEFCDE573F0062AF194FEE6D76A39827FBBFD10F4EC47E984F10BCCAB7F9F004708DC0E2698500716771660BB65A1DF248E1FC326E4D0297EA496BFF364D02681002C413A6332E4947AF4D84195C433A000FF68621EE1B091BC034940ABD26817E7092708EEA865BB731AD2445D49C326C0F66FA87900DEA67AC1C09A99F4644350F66DBFD4D192E8F8EDBEF3355FB6B59D7D9C0A45C71D8148CF74731D81BDE2241952DD10C1603AC634AC0E9796E36B07BB44D1D92E23434ADCDBC2003AFD0098F277FCD8727806B06E2F81190DFB73382AD2E19DABAC21E4D80F1F41D358CE82540A41F343EDD39205EB3148CF42456D2181DB737C8C07D363A6EB7067BC3EF98FB9C4A037237DC7A86FEEF07276F90FCF1984A1272A866373B49EFE673829AF7317D1E5A0E49BA54C40B986A2900E0BD3CD7730CF686B7BAE156144D5AB1330E7AD0D274E6D855BE06F0B241DFDF606F1852E794C1DEF00C9D8CA4102C5AFB7091C60A509D833C9A09EF05BC66903A09FF317B7864C3D83F7D1F0076B2BE19178F534A9ACAF23815ECFED4E5E2D8B35D02803B403C970120110899A6D73C67799ABCE547671A73FFB3B2EC92934E12B3F26984B5040796D28165A5CF114D5A51AB1DB5A4F57F6DB68C8E1EE19700E0D7511A4BBC7D4FC1077D5E097802B826E0D1F511FE23F658249A18F205A0D8EA142E6A5980581519C0CC73785C64192D4EF8381C06FC541F81CF69237B9A538A0BF194CA803116CBEC9BDEFC783BFAD653C338248F56560A5C2DA44E0430EBFDA2C9415F58068EA6CB7BEFBADBFB75D9EA2F1E6EF02AE03500DAF7A1571DDDEA1DB95D52F936570DBCACF544EB046D959006E043DCC94BFE2472446DBB08D943C7AC22E4EF8A9437BDAF4DFD47025CA7ECFF1C1C544A9392D100DB65F54D9DDE64DC6A4FA01B6E455CCA6A538722F9B379C52E0244F21792B2FE8A5101A7D271F2C7ED36B3EE4757F940479C3A933F007DF5170F3BBC047085418376D2609D344DDD3FEC554351E98EC7F26088FB2B60D65E0590BF9BEE74C9AD0DB32FAA8011542AC6246F73AB3D358F5C976B51F50A6C8D594D354A254E9A848AD7838324325E59C2A5CC0ECF340680C0D1B62F8E835817C91F42AA5FFADF8485D9D0D2D2F4824AF83E777AE1EB5CE37E354FE7B10C7809E06AE3B7E80C8E44D70730C6E7F3ADFDEB510001407A2D598FFA6274DCBE669CA444F28712222441EC5C22F69A2495C3B56F4DBE9B45255FD2604F559CB6B02D9DDEE4C1CEEF7E230200F8DC5B1737D1598297955ECB254E12B91048881A8CDAC4FA1B93FF734B27A8CA179D3FA474C4433BC07AABCB378A9238CD7E14D3ED1E6D0716696DEC792ED50192BF4E6F72537AEE452FF3D665618FBA26A835F9EF255725C013C01586B4A4DBE8B8BD41D7FC2D3FF8B30705AA7D493C338CBBE8EBBD99083931E90B71D32819B2496D2868BE66D0770ACDA4855991BC7F99472F1D54BBA3DFFFBB0000F0EE8D877148119A3F5E2791594CC7D5D0441275C51CB749BF7F8CFD133DC8E3CFB9809298C1DE30C0758DB5FA304E2221A631CFFCB9BCF7AD10715F8EF53AD81B9E490979D81773580CDCCCD5DB66B273AEC8FACB65A2CFC21E49932B8FF9E109E08AC3A8041E52E99F21234BFDC0D7057CE9B07ADB5C7A38401B4853923FFACB257116C7081CD4375D43335954951FE03D391135C7360062B2F45BBCFC546246CB6C937272492321846F4B03385BDDE3129D2891C95291B5C913D25A8D2453D0B0308600CF157EA62CEC1E6D6F02C07B5C0AB67BB4BD496216D2E7FA227FDF16C9A7167C3F5E286099634537DC1A995F91B87BCC076F03B80620A4E30C925E7EA58559F0906106D7C06CBEBE1B0823817AC5F5DDD9D4749C50B1FB243C605D8CEFA9DD21CD57724261B678F7FBC1C9CB9DDEE401124D3A39A1F67FB667D2A49992DD9F66FF57665811F3AE7668FDB97A632366EB362F3F048CF2EE3243F2D8DA990D682FB94C5BBFAC32BB90790F377809E00A03EDFF00E299706256ECC948F530758C92854D80F43ACC1ECB0397AA28780566EF2ED2A4B85CF2C5EDFF300D9E17B2080C216B1967A1CC018E3A9DF07CB93A9696136DBE46C7ED17D9339DE17D077BC3B0D39B9C5272213DA35636AE82A6656092BF801C9FCBEECEAC24925AE94252C3F332E1CA2094342E1B4C721CB755BA9A8CCDE9C695F402CC960825EB2F2FAC0EBA66094500D99481EE379BF8D52B8A8527802B06662F831D6B683A5674FCB8E3BDB9AA07277AA4CEE75ED3D4A31C64D8A4014072A2E4620C2F910BCD1E90E13255FB961536C8368062BF0044F58CCBD3ED1E6D07599344C9B185DED33258F7CDFDE98A1F8526A5C679E40EC90F7FE3B0295C0A2939C3A00A18F35826D1B8FA6F7FFE314EE0FFF037FE181D583600A6F10941B045054887FBC922EBB48D11E277BAE8D02F7DE2812C994F082605AA44B4DEA8D772A69E00AE1E5EB1CCA2378D9AA9884D8D470E10D56FBC6E2C9EF3F55F4F48F66D9DDEE41291CA45F86D75C3AD47F43A9E8FEDBF3618D3904D50C05B9C979FED8FF1DEF4D98C07F239984A386FA1EA970EFE9AED9566E7E8881FE30E89495A48323E3A6EBF88AB87D06807BB47DB419EF20EF68667C6A64E74AE5824EEFC577FF29459D7B7153EF92B0FA943CEEED1F6E6E8B87D8E87B591C891696B9FE7C749DCC778950F120268A92A60C95C40FA66EAAD0AAE97A44F83B7015C41D099A124CEF7D2BFC5A1094154D7015D16E78C0E305CD220D8E68DC1C487D362386A767E348DCD0E8EDC2BF78A23BC1C2EAA41723F3E00DC0280AB440DFA0500F8AE6453C6EA6D4C3D35B9B4AD1F9CB48CB4E9B9577FED6F7EE63B3FF54EDBDCFB21B541CCF3BCD47E915F2FD53397FE11840010686AE245427AFFD496D145A59BD7FE0F6D4F4B287E26BAE1D6E7FBC1C91F38A453A59BDABECBF7553D0EA3BA49F96CF00169570468A80ED3B54A01203578DC0587354C3DCA01CEA6A95AC5DB5C2E0F7D16E4969DCBFA26427C7726AEDC07FDE0E465895064D95FB90C4EF37CA3B681919605CB210487A7E40FC0903F8D7010A9931AA6833CF395693DBE439F15C95F11B3941F9B671A0FF6860110C99D56661B29D7DE5337DCBADD0F4EDEC859B65CE8F426378D342E0000F8F77FED3F80B77FEAF75BDD70EBC6EE1100C089D304823DC713CBFD5043111AC7A35300789B472D281B2EE44FB8C63A515B36694FA239E40FC0AB80570266267C19A633C71D73F8CC9C3B351DFC8E76BDC7FCE8CC964FBA490654741CB8E9C95F7DA01103C92E0C60B63C5937DC8A46C7ED169249AE726306FB111F982415B304160FD02916202DB72625921C52880D580853B529868039D3244992A38B94462B078F890990DF2CC21096573ABD49144DDAA8B24CAC63ACA94435B5703F38690DF686E1606F98780755933F832B00B36500DFFEA9DF6F195BCCAF4B92CCB33FFF04000044933696311597B12F847821ED691392218D82AAC91F07A9FB47A8A696DA12423345909EBD9EA89F5AD8AB805708CCE3971EAF6481750F3778E9DFF240A537DAC062930A757A939BBB47DB57077BC3BBD4CE8CE7A749916CAA485BB98B7EAB9AB303C5606FF81A00BC8B6BDD723530BDAFA45A73512D539228E54FECF5727F1BD4C60FE3E069EF04CB906587C9DE79DC8F76C3ADC712912A031DB2542779AEC4F348E0EFD645754D9E2D5631BB861A2A1B59DFA1D66EF933575FD23280A4AF9E92414F0057045AEC30DEA910558347C92046ECC1B23A578F6CD86C87B40186BE4B8DB414B1F963F7B809534990BADE70D673D9549AD273F3D87FC6FB170000067BC3BBBB47DB3BDAB3D848A6B9FE0C831513823636F7F8F7FAC1C94719CFF3A81F9C3C8BF71AEC0DCF70220B6CBD622C23A6E5C7E8711B2134A160502D5AD9BADD4663D0E73118B3881FEED35885F419685A5BBB73B95F15C863DB279DC33C9A4300EB0D4F001B0EB4E5A01D152579385B86257B76AD0B5C3BD645D81579CCD0159C14CC7155726208C1C3CFBDF5E94FBF7BE3FFA4EA4A550248F3CC3B48F1EFB6E8F7AA49EDE8608A04C21091F770C24203406BCF91F5DC983FE2B35F7B09BEF7D50F9CC9469705B7E6E54792FAF15F3CF3F8A9BFF4D1D35A3D67492D35E92C2F3F4CFBCF1F8C1C57669907C476F81C96477B060B9E28EADFC458B1AC09AAD67EF03F4D9B45FA3C199C0FDE06B0E1C040C334FE1597F055358BF598C2D859DEC40ED53180AF277F0B447F1643ED3580E9779245FECCB1E7BEF5D40FE27E520B8F82D7503BBB1C0336E67DAD4382B79B723A8546D1A426F43827379DDE24FACCFECE1F69818FF1F93A2418B4A67EA465A6123F0080EF7DF50300B30CA50B28F9437B414AD88CA432E4E48FDA58D27252922011627A1D0084FDE024FE86778FB6BF0B53D2542AF933EFF926F91F4F1C997439A4EF465BFF1761DA9EA6B2DE04257E60D5E0ED5192F8D163FC1BD2489E277FF3C113C0150033A6C64E3B361EF7AAC8CA1100C09700E65FC9C0A35A68EBBB4A84C9A4DFA4C49E12328940525221E5E78010A6A158F0BB2D3479A386F17C6025C9CEFEE8F02E3A1B9C19627586AA61240AA8C6EDF426E3C1DE30CE8F92681E93AE1B6E4518C7CEFC6E74C94A16DD70EB362F33C9F714EB10AF0798124B420203BC86933C1BC9A0F5A3A8163790D08E8EDBADC1DEF00B9083BCBAC0F41121005C35FF23723C817E70B2C1C8EFA69026456E2DB78F57B4A96A4CD0DABE54DF9CB0DBAEF3281F9E00361446E2C4977A8B31324B3C91F4FE23AA16F1726FB423EF865BCF98DF9424C66371A083CF606F18D2EF05256212A13376673121A2848C0F64AE52BFAE7DF9B900661EA1CE03B4268DE4E90449D36B866421B1D844F226950DED044D9D85643F065523777A93312128B4EE6209B8215C0FCCD27363249CD41B9796C955C54ECFBBA8FC293EF7D6A769DD055A3A17E0649C90EA4D601ECBF83EBAE1D68DACFCB0BE6DEA6D7A6F120982DEAB34F2C7FA36FABE13932197F2F2FFAB23E1AB9F07308027808DC5E8B87D8DDA72F0F3C6501D3FF4332F01AC061DB6E20757E1A0A1FB6A766ACD011B7CBE8DB6645C5D6993A27009A005BFA7D996997BA8523DF34DA7A43CAED0549E9C9C767A93E8977FF4D9BF00982EC946885CAC6264640F2584F1BD3EFBB59782DDA36DA0C74D7A0C41350680CB86E05D325B22AC0D5183BE303A6E6F10827D8679DBC0259DAEA49013649A4F3F3869B5DA117ACC167294E8CC96A63BE5937104E6CBDADF5B348D24C5E444989F67780EEF51F5184025A8DD70EB31973CB3F2FD881F17EC01DFC1EBAB2CF762504F2F604F001B08EC98E86C5E1898E8BA968507140F1964200BB073FDF2939FE1AA8BFBE6B796B3BF750351A35D05980EA418F70E20AD16FCF2E94F4F88D72900CCEC69250241AE7D038F712296059CB8E57D2E5A0E7A8CFE224943D5ECFBFF7010EC1E6D5F64EAC084B4CB1C0F31640C5E0F00F0BDAF7E10D27B120FE24D932E0080F7CCF1F7601A7AE622D69DE9C7BE64CA1550499591028659F526493AF9648B4BA0B82A5C53398E48F06F575B4CE3540300F0A1A9D7739DA4D4B595878CF167E1D2569E863CC3983CC3269160574644585B3F2F958B1CFBA464F347CA1FF58393D7AB2AABC714DE0BB88130B3E6AB00722C27F4265C96ABFFBAC00C0A74BD5F152ED2098F72D125DEA474B0A1DEAE34EC074F0790EDD5AD394548CE06345F0DB44DD9EE6B2B8B54361ADEC53CF7DDD171FBB285C48ACB6B99F35F0480EF4865C0FBD0FB91328460D4C8525D691EB0D22F5E4FCA84F93D06433EA46FCEF67CD2B98E1243D5164E4B33B79987D863B908414E1CA7F545AE1F9B3ADF0452AF65C010CCC464412A87D6865CD5C11E15238A22BF3564BB703D3C35BF11FD15D2DDBC703D1C5FB81E4624EDA565977F9536FE2EDE1C3FFFCEB2CBE4377D7B73FC3CBEA7E8C2F5F0F4CDF1F3113D467F8BE6CB8FD37BE4DDE8B73BEF335FB81EC66521FDC11D521F1169CF5837F769D94DBA9B6F8E9F7FC4D2F13A1CD37BF1FBD27AC167A4C76CEF84D7A7ADEE2D75F2487A37DAFD485FFA80D611794F637A8CBFB7A2EFF0CDF1F337787D656D55B5A322ED4EAA5B7ECEE51B99E71BF25BF6E655C00D001AF20AEA2871B684F68134702D00BCBBA0E2AE3CD0EE8F4A05B2D4159213C8B255C3687F45D4562B0B2A59407526F568E5E8F426775025C9BD34D13689498E9E705B26AED6CA0B23DDCFE555CE55A2A8BAC4B2903EE343F4EA3540E70F54F5BE44F334E5B9D6378199D16984DB760DF6863F00E3354BBE8D1657B51B0961EC8C43C39B747A933B92EA5C92F8D132647D4FE6BD3C2BE50524DC0AB5A31C1DB7AF1955F64553B6088C4AD53CE3063F469F038A7B107F9DAB480152F109C540D7B84FFBA7799D0079DE74E3C7D9758FA43C68F96DDFC8BCDF90871D9E003600260655221C45CE2C36CB14FF7B000059ED831E943A3989F02D5A252C913C63261082991C18CFF29BA98B1B06A306C4FD8811947840A66A34AE061C1DB72FE33743CC2CCE0124C93E217BA9D86BD4103E0FD8242FD7774BD4A937077BC387BB47DB01922F5A96DDA3ED9F9742CC48CE048A7D56C2BE11AFDB3DDABE0816AF59664718A7A3E14D70F51169D2642B23F92B922EED194C5E8144360100067BC35BC0482D80BAA671DC3F9B3654388C0F7D167C5EC929469A6CA0A77B11BB3F4ADACCFF31AF1B7A3FDAB6843EED9398869FF3C46EF9F001826B0E338BDC29782D7692D6E0A11EEEA09258EC5C3B64C92869464E072C4E3416515E00F810005EE8F42600B35561F0DB6FC36CE9B16B2831324E2EDD1159ABB429A0648CDB1DE1FAB11D988C0186097B333E487566ABE880493306812868EF991E23E548AD724141257EDC26CE065E76747441509B3C62DF163B364C8341438A5409CF1602C0137E6F735CAC03ADAD6B844B237E349DCDC1C056BF349D8B5D269938E1F270F13BE954B8541C291B06303F1362007E51488FEF35E8F4260F244FE32CA09494FCDFD0EC31355B4BE978D67F8FC5C34B006B0E338B4C7C2436B59020C529D5F877DD211984F341809209CD687D811D1FAAAF4200F8364CC91EF51007DC37FF7155998B00F01E397733AF3AB20EA0D2892E7186306ABD4DAE2215B28857D9E99BA0BC98174DC4DF339790996B4659E404C8928D3CA490F27C6317E9CAE8B8ADAAD2768FB6A97A5B226BBF4AF2DD0080F37C420382D4CF46F0F82448228B5CC2A8A5A3E8865BA3AE3DCEA248F6E93DE9BD46C7EDF78D494D2C0D26EF249E1C941D664590AEBD2D24FB0EAFAFFFE84FAF8518247B34E7EA25D2BBB0A521654D4D10BC04B09EF05EC035878BCD5FC6756155B3D475839951BFE82299E133657E7C210586443BB80B5349720800DF36D23EF4260F4157DB45A3E37662A268F380AC13C860741ECC33522F5580EC6F8A927D26C9132522523A807C6160CCEEA6CBF7CEA5929DDEE414EDF89854281A9125DFA8A488641793079767E2C89AECD848B39457D6B39709498A4BFF2FB23C9C206BF537D81BDE4575394C837287B44F9A27EC8BF4CC5984D0A6D5F064AF9EF012C01A81DA6975D8DAB2793F642245F0E4AF24D0197516F9D3FE57DD117666AB0E7029080E1401005CFD5B7FF62A5D333A008068F768FB47A6DDA0C9C01900249605AB33BA647931C1362FA06A501E0390BF3342C462F30949A2C54920BD3F9ECF49FE3E2C6AF787B66C26AF04A1E14E189DE98A1B5CDAB8C1259759044D9ADCE075361B3E7ACCA58E6C6A615774896DA896B7544649AD5D1528F192EA923A818C8EDB97C9A5C1E7DEFAF4535F7EF2337409BF8424AE6879A467D6EA834BBF0DBE3B6F393CAA819700D60C5AC478B43D73B8FE148CF4C0C7012C0724AEE21888F3872D369C745C9A519745083BBDC9256AAF47EC1323989298C0782CA20D63667B6279440040CB3A191DB7E75A22AB0A18356BC7EC5B25129A7D99256F7E76A99E000020004944415451B267930CBA961BA5CB66DFF9BBA56D13A57748746DE5404921FE374BDEC5EDC155DAA3D9EE49D76549C535C957D9B0BD47A9FCCB9200D2FDAC3E05CD1B0080C6610C1D4C0EACF7CF2A57D1BC3CEA014F006B0462741E8BF239D1C8FAA05C498A473ED07AB5A5CB529555A952EACC96A553CB69068AD7B87387397E0BA5822CECD02D2081C7CB2EF72220A8CF629284E7E93BA1244C52F977C3ADFBFDE0E4659E7751228813379892759CC0C5A450B9260EF8CEBD43354245CB4AA5499430F267A1702107F418CF270FC95B1479904896D62E94E78CDB421965A1FF35F237D81BC6EA7AF33F11787BDE3268F7B5B5274FF49A074F006B026EEBA74968B48ED6A875E20181C47FAACC536D5D406DDEB2A433AE9D661544909136601307D1FBD4A50CC634E13D7AACAE44B04B56289006316A03C86DE2CCB51FF78393A789E454B4C513DEF34FF483938F5C0843165C276E48F8291140E0F3F4672BA13C03007F46D350D2C009850B9175B513CB92F015912C558545921B2AADA6F797EA4AF1024EA048196DF59DF52EAA96D47A540F4F00970C2E5972502DFE1E00FC12FFE8D07E10253B66007B38AF2798476C5777517B47D2A051A5A44F28DF1D98867AB90A53678F57768FB6277D21361D8536F00AD2B03398AA80E301A8CE12E62C292C213E4FB43A6212C0847A3D4B2D87A88AF899328C0D89DDE093475A465E5E5E2F4884A9F308BF5EB8B755FD5B94502C127C4224117780ECEF789E67EA865B8FFA26E40AAF3FFACE067BC35BBB47DB57998AF7160FF5E35A0EE9D9791E369573DE4981478DB1ECA548D675C3A5DAC8FFE8C2F5F0A696DE65391CB22C51647E4FF394C96F99F5ABD66B9E258EAA58DA88BE7B69E9275E36ED9C92F71DD35E27B41EEAB4BD397EFEB1F6AC7CA3E5CF58426BACDD437BE745DE2F7EF7B665BBF0DE17AE870F68FE742935AD1C967AB8292DDBA5B5DFACFC72BEAFA5B7A137C7CF8F8563A9B691B154D98D12CAA1BDF354BB9596CC2BD2F65CD269F7AACBFBF3DBFC9BF7025E1E62750BF1DAFA124FD40D9371CCB4CC8C9A7203BD17E9CA051EE541ABD77EA0074515DEDF8F4A2CCF4D12F835E5C9AAB51F7ADC419AF521005C06E3114CF2AF8DFA002579DD70EB7196D4465A4D0161A4A90090F6A027F710A55D45A4BEC6CEEF5A565DE2BD47C7ED17317F2E31ECF426A736091EFEEF07D3A5D8C0D875627A7E8DED7ADCE87FCC87E669799EA54B89249308549D73292FFDA5DF0E4C976C7BC4F3316945AF639626751FED5DF076CBEB374FDB93EEC9F7A5F7BF48CD8647F5F0047001A0838AF98F213AE2701B26506B2AA0B0EB3DCC2072FADA3FD8D9C4FC9A18B8B74E6001B5AD767F9A1A981E23FF9F95F22952BE115BF7999689AAF428B8AA4BB2C9A2E9CD3D124E2375227F0CE771274B75279D1F1DB72FD349147D4E7A8D346016C48FCD7D5BD4C4404B6CCA74CAE3FA014C975393066F4AD0067BC35B5279B5C1DD90A11B5259B208485348027F0E8118A6C298B0EF3CFE9E29E9CB32C1E0F9E07FA95C54658FAA60DABFF06BF3423311A06D472AA347B3E10960C53024E215B31FAFB6604EE3125CB92475C22C14309FF7FEEBBB00D3150E1ECC5DF835074A66F204E39606450027295B11BC8264003D41778FB66174DC6E0DF686EA3DB5813ACBA81B2510A40EC21A12C10F341B403A704A035B37DCFA2140E27BBC45DFB7ABA382EB7B364E3B97691B4322D80DB722B4EBEDA457E9D8A4D220FE2CF8DEA57E62F768FB2A95260DF686E1606F988A754808C1463F38792BEB592A68DB0B833649EA9AB8927DB2F63339A7D90CC692687A0D7F0F7CE2257DABFC9D9EFDF927E2F89598C7606FE86C93AA6902B47352B93D560BDE09A402106F5CF4CA8C9D08689C3E7A4DD78412E08397D631481F25C6F2AAAB717ED340576500169E87427B3F55CE94A9C7374022F61700C48BC16F644917B28CBAC9FD6878210C590250A3A506BBE1D6957E70F2B6D94789C9C3DDA3ED8B3CAD8DCCD99C2A6C925E520E17CFEA381E2364ACFA61EA1E971DDBA4E16BE8B3D2726924851363297C88747D16095805A9904D12AEF5B9AEDF7A913AA56591CA48A5C02E93132D9D85CC7A078F15879700960454F39AB02BD70066EBC6C28CFC45308BF195500BF7491C29698646C1678EFDA94DCF194C257F1190352A3D8AC110AC7330233A818DE870C9091EAF62F6FC1FFF9B5F189B3252F2171A3382563F386921F993ECB334A9A4D4B91B49D44D5433D3365CF673CD0B247F66BF050020913F80997DA465404B49FF24D24CEB364BDADB21EB7493B6B44955B9DD702B7AF3E3172644B28B619C3EDC3DDADE44E9AE2441E2CF2ED40F4A161F00CC3C803542E22295D288A8F99F6903572768EA4EFEBEB5EF84FE4AD054ACD2BDA57782123FDCC7D55D6CE4AF6B5917394B2229D58F9706AE163C012C094695330680F771602601645B264D8BEC5FE679689D82F631E27EA737B94963445167108F62202B7F88B0A94CAA9E25DFFD07DF0F778FB6AFEE1E6DC3E7DEBA880339C67B5397E0E2D0480C1F0C768FB6AF92BA788D868031931CB59E16893CC4DB416A79951F90547539D4BD77606A0A72C5FC8FB00E3BBDC978B0373C4372D86A47ADCFFE773FFB1400C0EED17660EE71D1DC6F2CD97BD27D87325D347943A73749A59708852639A2E768DD9874993670758626E595BE715E4F14527BD126655219E879AEFAC7735ABFD39FC5818C25905AF95DFA2D2F015C2D7815700198CE1CE3EE21D94235218DCDF510005E008715240064D1BB8BDA01E394650529F6C8071EA311615399CCA326722C531C209CAE00A1A927256449FE6C8311DE93AAA0E67DA6B2A0A9B5A5B4ECFD8931E134159B707DA66AED8D7FF19F84B77FEE9F0528C5C17C71F515724F24D3010088EA6BFE1C9A5A5153E151C9B19656BA8EEE6BF5BB6A04C1A60EC5E3AEDF9AD486B4362BD5B791FE85606CC8B5F797F73B90DA8CF6DC1EAB052F01CC0943F676C07C881816841AC6635A13843974701C1803A46774DA47CB3B08C143D34BFF4A80E45D0BA07792DD70EB3EFECF9218148151FB6C52E91100A4BC027939A5733C5F1749167D5EEA295BE459AA0097D0499249AA4233DB3B7DE6F539D81BD275904F6DF56893069209DAF8F6CFFDB3A0D39B5C228197A3C1DEF021923FBCDEACC6814E6217A57B73CD00270B9CDCD232757A933BE84840DB8DADCFB169206859B804905FD344700939FE6ADF934B5B31C743FABEA4FA928E69ABBEF0FC6D420497BEC95522E8D16C7809A0057405009406995321AADCF800388F44A41B6EDDE807276F65759EDA6C11ED85EA269969225CA4A97C766D93C2CC430289C3076D83A9F55B35E981545EAD2CD26061A40F671856A6AEED4BFA6EA89303852601ECB0E5F470D5054AD424E0CA0CF47D0CF68638198CFB8DDDA3ED802E47479C7680DC0F005407941F01C0275DA549B46E067BC3BBBB47DB3B529DB8B64DA9AD4B52A4B2263D7581A32439D369845FE370DFAF00C037C8BACD67401C81B2EA5DFBE6B5BE4BB8FF4ABDC7F9711801ECAF4C7DACBD0410432DB0630FCC60FB9E91B6DC0132F0B2E597CED0B62FC7324EF7D9FFB1F910BFAECDC06D1F211A75F365A13C8A81D6A14D9A6A7B2736695C5EA053114CD77D4DD8926A5284AE1086820F00BCAD499D3DA661EB909EA11492D8BBA6BEA3AAC1BF232E1903D0833EB3E70FBAE1D6B8330DCA7CCE48E2E23C778FB6AF92B4B1849F0CCA80CB72617D189215AFD36BA46EC11FFEC61FC7D770092E5DA3180DFCB10CE4DD7C923E1F7FF736C9541EF2D70DB7AED0BAC25FAEA5A06593A492AB022EE9D4A46CD22490E7C3A5A49AD4D4D4EB37516268DACB87BB47DBA1A6BA65F93F061274DE55D2CFCB9B27FD6AE290D4D9EA903F002F018C41A46734C40500CCD63D85E9EC2B00479B3E0946E5F43AF94F176CB7DA6ED8A449DEFE6F7EA0A4CDEC3B49B924090CFD5F46074ADAE4C3DDA3ED8B38884B644D6B332EE0037C567A242BEE4F521DA4679780924C00B96EE877A44DC6F20CA294DCE17F4AC0B43035FC9EB86F7B472CDD0FFBC1C9A7E879E36472954B1F5D25C7667FDC0F4E36B4345944B4C970A97B17ED8D964EFA9E498C468C192BDA9AF2BC5DCAA969923CD6072B2701ECB0D51B2CE9D086E914833363880B30B32DE6B5DBA2E78A96AF1F9CBCDE0DB71E77C3AD5137DC1AC154FAF048FA68B94D4746E77A261CF3C8011AF8D925E0B36DD004701F141CB009300D696224394E1769EA2997F412A8C48BEE2F13DD59B05E277B47982E6B67257294FC49522D297FA93E08C9BA6BFEDFE5EDCAD80927CACDEF49253792F44FD210F483934F75C3AD09FE3752CDAB00F09A39748BDA434AF5C7273726DD4697913D3EE1A89448B45A4B935848932B1BD192DE952D6F7E0C437BED1E6DC781BF695B28E39BCE9BCE63B5B0521240A3C27991D8F16000D500A57BE4780026882D866F81A973473CCB5A84AD53776AA41DAB979581E9099825AE14A905E671570A2FE3E10616ECD88904E2BE2631B11D73284F6C8F466C7EE2F692258D52547B098F57099254934BB2F05CDDA480B6F316C9E9B81F9C6CF0FA46E491FA0912BE549DE1BE54664D1AA34DFE6CED4A92EEE03B0348BF4BD6861FF7591897ACBE6A1D4944D6245093B475C3AD47FDE0E4599B048E98A2C49EBF36C9B45436E9BC97F679201A2301ECF4267778F064763E02808BE8958B523D98065ADD108EDFA5FF47C7EDCBDC8E6F4E878E2B0E69223E182B1FE7792A05A41FB69178863025B39EFCCD098DFC99C1CF497523A168874BC99F3994F002D4240DDAFDB2C81F2D2B6F8B188418D552482496E975DE0DB76E778D0D2D3E375DDA0C00524E15E63A3A38A6EA4491AAA9F675F82B48F8C47B6A523DF66CB1676E5E69AE416CAFD8614B434A7680AC4CA9187EFDE9B2706AB064C732AD14F8B76723F4F43DF6CDFAC19A5419BFFBDDA36DE8FCCD6FB6709FB673A93C59AA694FFE3C286A2F0134A4EF1328D903628347ED75C86CE92E98302DE8A96BF24979EB92500FF8FB80AA64AA80362BE7E96C5207940419A9C54D9806974DD88878B8834A8669106D8760C100E0269D2928014CD875767A93536ABF66B3C32ADAC94BD23F04CD1B07284DAAB668E07780F5436DFD1034FE1E40F27D49DF914B5DF072A0373049932935D306ED324124B977778FB677E83BB4DDCFA59FD2D2978A562B82286A5CDFE622A1A5C7DEFCF88509C03418B8691B8FC1687FB26093C87AE2372F56CBFB17512B09A064BF67247348FEBE0FA633A5521A4AEE8C142CA41EB1C6B85FB59B23767E95903FDB8C5D3BC73ED8904B76FA535B9C31003C07E0895F5174C8127E908CEB98207F5D164F8D4B7078E75BC6A0CEA547DC79814A6DF80C3F879428F14CD23EDE0FBF275316AB4DDCA2313A6E5FA3848F1041B4BF8B252800E9C192785A27C0BF413CCEA439F17749C99FF9DD60F9A4F2A6DFB6A6FA2DF23E29067BC3D0484277303F6257665DB28DB7735E4E4D52592A1A48FE00F2397D00007CEBA91FB401A6EDD5A8EB63F2C7E37D4AEF413AA6DDCB230F24F27738D7375907D44E0248A5307410562478E24A0D2CBF38969FF97FEA2AD9290A571B30DB60AD4976A4F38B905CAE03D82A1B629DDA6CB8E83B2A2A8933E154DE357F3701208EBF679308E7B98706AD3DE695A62D1A7948AF2691454FEBCF7EED25F8DE573F10EDF68A406B275219F8B3CC5BA7283DE2CF40A5B62EF7B1A9A0BD94291BDDF44A33AA1D2E6AB9768FB60332F17AC03DC5B3A4D2FE3D78B8A0361240E38D7B4A2477F18A0728ED23367A28B9C305EA551BA4D17489B43BE47FE9E48FDBFB69B33E9B8448C83335ABE6BFC62E720C003F36FF1FE0F1B91F6A4DD049AE68B169EA33531A6C538FDA06D66EB8F54C46917E0B00DE0613EC95923F49E226491EE7951609D8E407701DD9C1DED02AE558045C880C5F014448FB360084DFFBEA07719EBC9ECD6E0816B84A6034D5AA265515FA92440C4405E7E9BDD036520A22CCF6AF7009B746FAF0DAA590BF257A04E701277B1AF94320F9EBF4266323A9BDC8ED5A5D840CB6F1C7A3289A2FF5A3A89D0410405C5EEAAC6AA9DD3CE82663F93D03007F06903600C6F459523F2E05B048FEC63FFF9FFFA7C1FFFE3FFD2F00104B456F6AEA2C0F19796328DAA4399601FF7E3F3879D9A12CA70010133F6AEAA075FA78BFBC83302D935171072E122F2C179392393D5FD9E8865BE3C978B3FDBD5FFB97B9C3E30852C0443BE0248D7F93B65F52BECC555716419C8C3A31B50289D09E54E9944DE224E5553A1A6A07E8021A7F96ACB57D134D0A1074451EA97DF27CBD54B60C50FBBFD5B205AC8D0410C1ECF950EA5767F2F718A6B1FC70469E227FC235AA7D18B5F9C91A8C47C7ED8DDB7FED7FC56BEF9A639EFC390263409A01FF969446B38FA2921E4D3AC7D25BC911BE67A36A8D3B781AFF4B93DA14EDE06999E8A04F9FCD488EC4EB895D599C979106B948A7E646A73779D00F4E36DA1B67A71A793FFDE859F57A33C8DE0100F85BFFEF6B13EC6FBAE15684D2748960DB481E7F1736F2C7A585E6786AFDE2A2C0B2777A939BC639050092CBCDD1FEC65C16F0E3922682EF574632A8942F8A5AF1FF8648FF5C3122EBC9635D52F287CB0A72530C2EF1E7EF53197F16F27DAE0E28E15B1DF207504302683E8244B0651EC2A04EE807274F9B0E900EA6EA406D512D3DE179F38F58FA980961DE29E379D605B8EC97D98F00E0AA94AE1F9C3CAD493E34D5ABEB60D80DB7DEE17962478F4480BE7B7E3F4B5B2A044A68E94022C5C433CB95A90BD32F08CF01000CF686E7CD3BFC3D5E9673CF3C4A958D3EDBE8B87DB9D39B9CFED1E1DDD8D1A51F9CB4B809804DD2254DD4BAE1D6E7A56BB53CC8F1CC303DAE4029927190A16422963271422BFD6A2A5F813C960F2EF1C3FF2B2609C47EFCB35FFFE99489413F3889BF35F62E9EF0638E12FC854BEA3DEA895AAA809B089B4A08C06ED3E3AA76E3D71BBB908086BBF1C807D780CFFC5D4AEF5523095D21A8AE761F69AD560965122D4DD589F7E16D73B037FC70F768FB395A8E45A99ABAE1D6E7FBC1C91F98FDC700709E3B35F06B5CD6BFEDF4266333C8866054E1E61EA9EFD455DDDE0DB7AEF48393B70B3E6A6940F5A2D4AE5CD586596D7F615831353053FD8683BD61403DEC5DC8357927219F407815F0BC381C03EC933AF52AE0B585A60E04D02535F45C9624C0A646A262FB4E6F72079709A2E16E3CF2812E07A8A591545F7C30945464340F17F20710DBF7E0353CEC4F22044799D217493286E7709FA9817F0A7768DDB1EB4A5365B2B2FE01DE77B0373C6FA475A2E30D51A5A912AD4E6F7213BF1FF38C1866EA2697DCB37264BE8365933F6A56807524A9F35D4C5234496015E54E80AB7A39F95B2D5570404D3E00A66B45A3A3150F0343F7CDFBA19EC6DE1BB814EC33E1CAEA903F80864800BBE1D6A81F9C74965D0E00D57B2F9E794936432C6D9CDE9656933250278FBCCE0B1E4964D55F37DC7AA73F5DBB39D199DAEC338B74B89C64F1E59E5C254EF342925EE3440320619C8EA19AE812750B9334D0703D923D9E74CD606F98080C4FAFA3EDC026C16FA234C58415BA0346B229A9ED01E2E7BBD10F4EDEE2E734E95F77BA96F985CAEB6485A47EDD70EB2BFDE0E49BF89F2F66A02DF5C6A18D19D5957C1D801EBEFBAD5593F469688404308BFC95256DE8865B8F32CEA73E38F35FEC54311D404ABA17687665342DBD9EE0BFEDF426A75F7EF233F567EE0D054A5BFBC1C9EBE657B48DC37336E96FC67D1EE37586A024080985568632A530CA7304B80C15DE73F7683B40DB40492A51253ABDC91D5CC21155E63BBFFB8D28AB2E38F119EC0D5F93D249525C4DB2DB049818A8214C55C00195000A12E5AF73E9AF85FC4560C85F55D2DE5504923F5267E1EED176E84AFE067BC3875A1B5D884476A5B1DF5A07D247D10809A02BAA9E0549365E362227A5B5952F6B4687C758C0E24C1B368F345CA4A736C99FCD16CAF69E51AAA8DD03CBC61D2FB2F22D0A57091A9603A58264A58D852E056796C3FB0F077BC3EF0224D7B4B549656D2AB1373FDE8EBEF5D4500CBB24E5D32469A0595DE915134B2E25E5C4745A1BEE865B3F04809FA4E99AF2EC75072E640090963E8391D80EF686219DBCE4E96B3CB270F81860DF98E7AC87C48FA3961240DE016BB3527EAE0A1B15970145FB003592D8358BD7D3735CAAA3E419024C4306747A93B1277FC56008B42A6D43D8ECBEA4638E76375F90EED10DB7A24E6F726A9B6408EDFBF33007A476E6324141F2F7F8D1A797317BDCA4E4CF95BC4A78F3E3172657FEAFBF11BD7BE321004C6D30A5F7CBA4648D1A748DB9481700D4D54D783B6344E427791F27A52FBDE0AB65DB2762F7683B5EC54A781F01A601480732C731A429EDB0A6206B2C6BE46FB5023FA7104551ADB737C7CF477CFFCDF1F38FDF1C3F1FD173DA35B663D279E97EB86F4B83E7B3EE632B0BBF8794E79BE3E7A36B8F7F3AF31E7E93B70BD7C33B17AE87CEF527D5BFEB7B7679FFDAFBBE703D1CBBB69B32369EB7509E5439793DBE397EFE31D94F957FCEF7764AEF77E17A28968996EDC2F5F08ED93F95F2FCF2D9D604F3315B229DF4EEABAAFF2AB70BD7C307587EF2AC63AD3FD3DAF7BCED3EF706D0C8FA767C27A717AE87EA9882ED96B667292D7B3F3796FD5C8BDF0EEE97904734DD96FD2C8BDF6AA702D666359A7A14C5E5FDB453C57D0078493296C53459F7E7B332CD1E86A70580277D123F8E4B29D8FF384488763F7E1F132BCEBA06B2870C1A760120FFEA1F92C4495011DFEE07276FB8E429BD67E97F1533FD2CF5AF313748D82665A948CB2E230555DBA3DA562AB70DE45D8DFAC14907F3E42B6350355C960AB9AE30EADF2FC1D4CE6C93AF0062EB17F33CAF9744B9C3D8B05E46FB55FCB6A2492BFAD6533F68D37AFFF2E94F4FDA1B67A97AF56AF84501D5C22BAC1E5E36038D225DFA2649DDB266A8B6FF2E69B57B669529EBBE59523F4DFA47D35109C585EBE1388F24CB6FD359B7F94D49AF6C6DC426952D221191AEA512192ED95A44DDBC397E7E9C258146A9641EA9C41CEFEA26D98F6CEF4C2A33960D7F2549DE85EB612C4DC7B65185C47799DB973F7EFE09AF0741726BAD57AD3DF8ADD886DFBA569F59FD8DAFFFAAB783B5A9DF5AD9006AB675DA0C5FB205D43CD7781A9A96DBBED8249036FB179B9484495A6E735B46DB7DC9F56F03C49290C0840E5063D879A4403D41CFF8C9EE741DE7146CEF33CF2CBC3B0D9B91CA83489BD0CB168C14B1BA25B692E58AC048BA34099F2957C27B9D0716366D5A8D959907A3E3F6B54E6F12513B572EAD95BE5D9E0F977875A76BDDC6F9FDCEF93F6D99749B988EA4AD977AA400DEFD2F871BD4F39707C5E65240529FEF48767F7CDF231FF05B0348DB976AB6ED7CD9BEF5A97F17FBBBC3DB05F2255EEB780FE95E2B6EFF07357102B1A87653E7E97FFAE1F0C1920F0E92BA8DE74FA11938D332F20FD8B593EC07276F90F3F11270FC598401F90A8B1B157B037BE4C6263FD00F4E3E62FF131DB3D4C6F2DCB01F9C746CAA9B7E9008D4FB4BB6BCBA6419B932A07D6383BD21985880A99037786DA7371993E34E41AF6DC0490D257C749F3F3BEF3FA480DA26E907C6546484E412379BEA739E775E035C064890F578A2C1FB3856575F90FAC086D7C55281EB4E2324C18354A774D9BE559A9C6463BF05707865BA7F18C9846CFF8DD979E77C3766D7A06A97AB78579FFC01D48000F201168F4BB65092F48D0FCA9C3CD9EECDCFF38144BA5E2399F498C333DF26657D9A12C80CA96782B478F2971B71BC2DE205ACAE33CD0746490A588004B6A4C177F7687B13A57F982E239FD7F3DC574216D931E50200D8E493AD6EB815FDC93FEE433F386995B514A1B1590348B6F394A4B66F82734BDF8AA9C34DFA9F5CF7B2B1BD8AC39A98767046D2586DE08ABCF365C1048D7F1FFF9BC9C5652D7D37DC7ACCFB5CE9FF522551ADD6FDEC44F541D7C4FB3375F6218FC3C8DBB156A7445B85B16A536BC7AF26F6CD6A3A48D00E2380C3FBB3FD385D465B3C2493461EF0994A019114F29880AB49086BE70402207F085A870F201BC5DA3A692DBD22094C3869489D22BFA7ED23767D2E4D2A8986C3DAB379D8810430EF1AC0F4BD4BED671E60BE543DC757AE5804F2105CAE4A2C522728C146C71C7C2F789E90F4B1541779CA8BE5FAF2E94F4F7EE7DCBF6A9B7CD5954C8CAAB8F16B6C9BB8899BD86F48312679BB96F69751F6A683B6297C0F78CEA675E2E3C1D99F7F027EF727EE658E55AB0D8DECCDEBA0C1891D259A2BEAF841B07409A00449D227A5D124865C8DAADD43533333C9DE79E97A7A8D56260A36134C490FB3A40A9DDE04BD7FADB1EB3C64747A935357F2C7245D54BDA9AE87DACD584546489F686738401B952B20E1A952DAD4252B38F04165B037E47648A1F9BD6582D302802C3D7429B3217D6893B909443ACBD3B225DC12DF114C3DEE53F7A52B94D06FFD77CEFDAB36AA7D4DBAB34E6F722A90C780BE23E999BA25D93B56854E6FF26074DC3E87759197FC4992EF3C7DD6BA83B5CB4DDA8FF07AA4FF3BBDC998FEDFFCCB3FB68E85AB0BAEF6A5E48C1F73CAEF9DE4F5541288BF346F6D7F75507B09A04DF247E1A29AC94A23497BF0789E3267A47BDC372162343241EF8B6103CC80750B00AE7A09603E747A934BA80A3376383B2ED23FDCD7A480F394491A7817BDAA8656265396332AB10090CBCA438B48F9B2FA47A95FBC0A82C1191829A04B39856FF90990C99A542EA3EE7F8EDE874A665C24884D01E93712CF87FFA5B6ACD42BD0341EEEE8865BE3C1DEF007BB47DB17F1984DDB63343CAFED1E6DBF4755C574951092F71A49013951A3C7385CC3B61CBE03B0FF7A32D40BCF07EFC3F757473A587B0920973098FF4FE87FC9868EE683FB343FFE8BF7A3BFF43AD7327374D39E9F4FD38E56239AB8FFB9B73EFD197328044FFE0A81908F6874DC566DA038B804C4366BB7C126ED359D7E6C8346F7AB044A2CF9B3F583D88922260DF41781D24A257E1EB0B4EF136FF580A974CF4C9B76227F782FE13E09493DF75036C7BE09247EA6690FE7A4EF8EFF3649F2D20DB76E63AC3930F69484507C68D25855BDBC2F6DD2F32F1B5D13E561B037FCC1E8B8FD22806C47CCDB563F3869615F85EB6F4BED985EBB7A3814D695D6ECF1245B3D3C6EBD4704F18A4C94FC65114CCD61A4C158761C1A697389DF97271652569C3E8708EBF179161B2B7714722DE621DD67F1E16ED208FECB7E374DDD2E5C0F1FB095241ED8DE8FF6DE5DDBDD9B66250C5B0C4921CEDED2DFAF4B8C4B1E574E8BB3C7EAFF1457A0E02B7AE428DB482BB314035029476AD50F5BFFD0C4986B17AE87974CD91FD33A97E24BDADAA48F3937D73B88E3586A7161A50D57FF30798C6D79ACDF7610CD62F4D15FBED1F4AEF9F2F43CAF3CF93567ABA50A9823877A55740491665AE4FF937E094167811C0000200049444154A12BF2C045558DFB34D48B5FFBB73888042A25699254EF544AAB3938E46D978A8AFF124AC8A8B17EC1C72C04A2D6BD353A6E5F33D28BF83C0BC1926ABB83BDE16BD4DB1420F640BD368FAAD7A5CC9A1D1B07AA3F81A97F47C7ED73CCDE33B6BDD4DE7BDDD10DB7EEF78393970192F6C2744517844D2AA5B5F726D6C922D0658E43BC5E3BBDC918D7F6A5C7A5714B5AB5855E53E573D41FDC8B974BF13415ADED3A3C0E0070F81860FFE9E475653A9ED4078D20802ED03A25C9B079591F93462AB2C8868FFD571E685D6A69341B28CD3655B87E0C001FF705EF714DAD660688CCB2550D57551F3E0FB1053C43DB3254F192DF529FCBA64693CA486C005527201B496F2AE1A1CB1E4AAAC4ACBAABB8782B876EB8F54C3F38F90889A0E4656E332FB2F50D786C7DEC002592A59136C97E2F3E16CEE2FE611E348D46E4AAF23AAE176A6903D825DE89AEB07D0892FD1FB7715914247B325A4EFABFD39B3CA08315DA2C2DA6A4AB0529BC880D596D24A3BD6DF485B5A06947CE1D2EF0FF32A47FBC2D52E91F827F3B3458B321819B00B3556ADEFC783B82A9BD5F04333BBF52A0D925D2F3D2B744CA77A6113DDB7DBA35F7FAA5E0E44FAA13FAEE359B3F9A268FDDEB9AE28700D3EF1F4027DD12A1C3F6D7E94DC63CCA8364A329FD5F2D48248BDAE0E166257F00007FD31244BA0570A8446FD0EEB13AE40FA0A604B06FA2F5E7B9A61B6EFD3023C90724EDD23A319BC1393D6E82E23E47A47E2DAFFE2D06242B461D690577D0B111F62CD07C681E8243C539BA30BC09597353CAB36CD001A9D39B5CEA07272D128B50F51045E7896E380D5E4D48630800F0ADA786717B2D6BD2D20DB7EE6359F05722259DDE243E8EE547637C5E768DD4704268F25AA8A9C83C30751E3B1465B55FA11E422F19CC073AE9236615782E556F9CFCF5A74E201B9C380A6DB13113916A40C3B870C78C5468973F10C2C77C30F5023E8C00F69F4DE7C9377EDFD5412D092000403F38E9E44CFF29E5387E642FF36300D593419EBF66AFC4D38D8EDBD770E0F452BFF94006C34023D136DB31FAEB0A8DECD9A42E57FFFCAF9FA1346D74DCBE96E77EF300CBB37BB4FD1E926424825A1B9588130E6034A073C9EB55FF651C2815E9EC4F486BDD02A463E06179693A4D3AC3D3360146E2B9090021C696D4DA1D1E63BF1B244D48CF7902924637DC1A639BA1123CA92D92FF54FAF484BF1F2E8927E71B3311A90692D7AFA49A9548E17E0B60FF6588BD80B5F02F7CDFB6667073B13236804D826697487FA90A0760B976614D0671B2C80C02CDA55C9A5DA646EE785EF43F231B8FC1842DE1792ED209A44B56B9E16500D09D3F2475291EAFB2BC525924F0F766EC1327D2B3F2EBF01C6F07653F439530E4EF223DA6ADDAA2B5D3BCEDDD638A2CD302694208248625AF73291FFF1E3878AC3E84B6BEAF6DB50F1B21F471003D0A82AA06F8472ED982A04D95277EC5816BA152D5AFAD3EE9C0280D9254AD98D509739B39F6AE9FA6D7777A93F1606F78668EDD9AF3B19DC125095826240B5C454A9F9B4BC7AA1E9450C2C28F4BF7EDF42694FCDD322AF6F3923A5F2BBB24112CF7892AC573E6F76C74DC6E516F52DB7BA26A716EBEE0911F46EAFA8E76BE3B5B65288E61D9E94D1E68ED7311DF59F3A0913F7A3E2B68344D43E30A4A3686787C45B0EC3834EBB4D96200F263758809B72A1BD6258DAB657B47B6186839E2008AF1F1F8F517AE879768FCBA45D78D2D065C56ACBC65C62663E57CA094FF128DA349EA5C8CAFA6BCEFCC3653C7CDC4FE3B9562584A6DDC16D3B148ECD555DF780C581367F454AA435A97DA7BE0FF3196A594CE1CA36DF89965D7C772B68328F9AB9DE76971D3F291CED9F26EEEE655C015C3CCE63E0080975C5467466A1182B157235E94DE0EB0205CD6FEB5497A34B5B02D1F7A0CA6365441563EC476E821755AA8125CAD24A97A2555A04DC5BD88F24AE518EC0DC3D1717B83AAD5CCBAC581F45E5CD4FD4D033579F8ECD75E82EF7D75EAFB469718B449F5B254961E337459DC3FBAEC9E84AC3EA3D39B5CC265E06CF6AA1E7990E9250C49B5AE14F30FD3AC1E3C015C006C0443207F67E06DFF4A4591388A79084E37DC7AA71F9CBC4EAFD5ECC93888AA12B08C2ECF5405B01C58068D0C2EDB468EDF970FBCBC6CF8FECDA01AF6A751069642601701160226B146B2CDFE8F9E2787BE0800DFD19C633C66E071FFF07856DDF1B47CD2EFEBDC0587E359BC3F89CCD9D4C0D67C57CEEE8FC2DB00568C2CE912B7B1A2E4847A537ACC8533E20022923FC9DEC9B5D3A5E48FE5277A4BA22D8F644FB70CD067D7D61ED5ECE7C0ACCB4DF27944FE5FA9A8C8897211F2F7055AC6C1DEF035733E26B55462C3F3A9BAAC8B00F1FE050080C1DE3041FE705F7B5E6EEFD90F4EDEA6E797DD56EB866EB8F598F71D79DB527FEAF1FB1ABD76F7687B93E6BB2AEDB31A1C46C960CF54CA678B0198450E579BFC0178025839B831B5CD78BED39BDCC17D12436D251BDEA2601C4036B91AB8CB828D4B8323570FB24E3E456E046789F32E240FE33C167DC6798013141A72A21B6E85C2B388E8B3D54EFAC1C9B3E4DCDBDA7545CB2A959D1CFA2EB9770BD5692855C95281367D9035B123BBF4187500A1C735671EFCF56A60679C1FEC0DEFBAD4912DCDEED1F67B64DFEAFCD1F4765A3E8AA86CB9E3872D5F29FFD580570157048B3D1800C836605C05ECC95F7190B568E3F55FB342C0E0BEAB7D9F06499228D9DAF1FC16B9D673A737798076869AEA4A82D6A6174912A85D253F37D81B3E1C1DB75FD46C2DA56F0ED349E7CDB184AD579D41D5BF6405A14BA3E3F6FB36FB4976FC513F387976592AFEA681489CE360EE45EA0C4D1970C2229177AF0E96703802D8277183B9E4CE16DA65BDE1258025824B95CCB144A8179BEA6FB037BC0564B17A8FE230E40FDFC719DAD5486969A7CAA54428E9CB3303CFEAA005E78FD345ABFA47C7ED1771C50CB39CDB431715F822D5525DB61A50D7AC04621000513F23768FB62F9A89D4438029B945E926B57DC3CD36B8A20ABF29E4CFE0FB0049F31189FCF17D493A9A25FD5D67F06F001D37B87D65D637C2CC2F36F118598DE796F6EEBAE1D633E53E5553C1C95F7CBC95DEF7E48FC213C01241070A4D9DC20750BA8FAB3F2C5212B4E208614AA8CF99A5F412F67F5CC221BD2B54632A46DD949024C007569B53082D57A737894A5C3923059E375921E2A2949E0C38213D6EAE79C2D2948A3E5B0DA81F9CBCCC06D4D8BE8D2E5B07302582E61780AC642149FCF0971FEB3768C5854E6F72D34C7876B8EDB024C96304E5FFA6E7518DEF558D69E0249FB625EAB54B575C31F840AA47722C140401F4EF73A0A01F9C7C54E011561C2EB67D59E7D6079E009608490208900C06ACD9E218D52F55DBF8063A075CBC7D25DB3E7A2EEB1E8690DC96CE49D2262D5F246584F46F527BD079806B0A1B8210AB0769FBFA3FFEC93F498409A14488D44D42DD6ADAF4D3B63AAC0A92048B2F5B47B17BB4FD31403AB8B326896FB0D42B14C8DF33BCBE847AFA497ADE5C67F55E5F57D0493E3A6E00C019B62BC17EEFE50C1BDA0D80D8FCE72140D26E7374DCBEECEDFF6C3814FB5F799D606D99B7F5852780154252037089031D608DF407D536BE81CE870FA924D52655E324C6621B251D7F835EC36DCFE8F53C3FDC4709A579F70FB1FCA6DC375D1F5883910C7DC910E210EB05B7BFF677FE4EA2BCDA44C5668C5E2569B2D9CE52290C1E3BFDB34FFDF9606F7836D81B864854E9B58B52612F12B87678A737893A7FE3B701207626484889B4671648FC773D099481F5313A6EBF6F62B67E3FAB5DB91CDB3DDABEA87D5FDE1E53C3FE1B0087EF08C799ED5FEC152CA45D5F78279012A10DFE12248960A737198F8EDB1B7CDFC31D2410EE18007E80B66E59EBFFD2FFF4BCCD89A02BACA56B33AECF28F7290EE000C9090079A63BA3E3F665DBB303C01D48AA6B130E30F497DE87A8749F02C1B9428226D52E1B161BA8940A4E289FB8EE3257072F8ACC5609AE3590DABC6B1BF5844346467F110EF686DF46531EDB75FC9CB1FFBE8A4E24786E51DFD8EAA278081774242CBB4475829700968F9FC01DAE6EE252148C530630EDBC3FFBB59702DCF7E4AF1846C7EDF7CDEF0600BC600E3FA4EB01537075A7A416B4EC27C81FCF9777DA9AAAD478E49E33E56E09F11FDF35E72E9B386FFC7A7422790FA6E4EDFB3055F5AAAB12E07D84E70A00E057B5EB68DA45498634DBB53FFC8D3F3E0348C62E6413AAE8E37FFB57CFB310372AF993DE5903113B3A71422849A9F9F915AB8BD2C0EBACD39B5CEAF426A7D8B6CC6FC009830B9136AADE6B26FD08CD81E8F9D21E64ED505CD5BBEAE40FC013C0B211A2CA459B65D363BB47DBEFF58393582AF3BDAF7EB0D49870AB02247BA3E3F686A9DB176D849A10BF900F921A69EB865B8FD0E6539210724269234B7CD9374A56CD20BE49CD03E8393C6FF269C134E8F5651A4712D5DF262D77E61891723F6DCAFB7569D0E1447891039344027FF11FFEC2A676CEE0ECA97FF7FF8909A26692C1AF6FB0CAF38C4E24E80949C2E9A57CD9E82A8E5EBB47DBEF8D8EDBE7B06DF13686B0D52DB70F36B880DEC05EFD5E35BC3AD8AB80E74437DCBAD2279EA2D247CB8F19713F8C8EDBD78CF81F076AAFF62D098644058A1A2C15D7CD3618BAAA60E8FB970659E97CD6331012DBCAFA4FAE9BDB8BDC46182816451EB206C2BF787411FED2B30F13C750359CF52EF018A6691A213276A2AFA0B9031E47F2CF97C903703275489837AC23BA261EA2D97FDC0F4E9E7631F3C9D37E4CFFFF1A06828E266D78F7C6C35400EF26B6CB2603C70F80D5B6C7F712C039D117C28430FC887EBC46BCFF25142F13F21799C13C21FDA16141F09C51F9DD31FB37E9AFC74CD24555A9C63E0E815EA163AEF2A2B3F22CC36E099234900FAE393AF28049FD024AEE90FC91E73E352AE29067E45A76FA4B8FD7DD46EEED9FFAFDB84CA896A3C1AD6D92192D4D93C0C91F004037DCFA3C98418CBF3349FD8BBF280DAEB8C8B5473FB9AA4DEC480430ABAF8F1EECA89346C77BB490FC0DF686D06A4F522B811814FAA63D8A6174DCDEE06632AB082F012C117490C79516A8A13A1AF8A26482C57B429C196780C40A1630B3ED89D57D66B07FC1FCDF208E042B6FBC2AC190E24B308BFFD7B2858391D47F5912DC2CF293D5F1E7254F925498780BBF5085C4D865F05224492197AC96551E4DB2CACB6493F26969F833350DA61FB808D33681BF2F8C8EDB1BBCEEB4BA80E9327A5FC0E30B7E845AC326D1A7E9F23A6CB0F162BC7BB41D64690A24ED8587475178096049C08F95C46F7B8ED9FBC5AB1258661521123820F1DA4810E358956348C04598CEF051521418E299207F92E3C02AC278C87E1B483DD962014A52111BF971B1E7C17454DA37A7BDDCFBFC80690F56BBC6A228486031DCCA420626DB20DB0FA6EB1A73692695C4E27F7ABCA9A4C77888BF08D3092206F3BEC855885CE209907AD75F90F26FB254B42CF076933521B449932502DE0DB7A2DDA3ED84E73DEDB3D935957C6365C51DF568163C012C019DDEE4017ECCBB47DB3B661DC7CD68D24E7510A3E376EBCB4F7E26FA937FDC8FFF93731BE61709DC1910AF3E6AD8CFC4D321B9FE22AA827EEEBFFFC3C87424CF1135F2295125AFDC478F759757742FA93939919354A3343D4D2791942224C316F6A56C64492F34A947D5C48F4B69E92FC04CE5DBE94D4EC9F11F4912764EF65640F58B138478D2F3D7FF8B37A3C1DE30D4DAAB8DBCCC2B15FDE57F34B991277D13207D17A71FC5DAE1549BB24D28A4B64C817D378D09B888C989893050D90A441EF58427800581366586F45D7CF3E3ED68B03784C1DE30C4D977AB3D497CE4A802FE9DF37FDAFA17D77F9187FB48D878A0D48F4BB038B131FF0300B8CBCA37FED9FFECEFA187E926C96713A6C180C79C5C1872486DE51A076E07E502CDE1C1663786FF2D2AB544DE4D201954EDA4493634DBB132D1252BEA64BD03809907E6EED176DBD854C1606FF8491A1E86E62311FD32CBBF6860E400EC1BFEB7FFF15B2D00D8E46D398BDCD3FDA2EFF59FFFFDF65B45AE6B0ABAE156D4E94D6E9E7BE651FC1F603A9936FBA9F5A9F9F5B8CF279966C2122F5B58C90310605F6FECCCC7366D89C76AC213404708C4E8D73BBDC929AA9CDEBDF1F02EC04C8A47562110A5403410EFEED17658449D4706CA3300D8C1FC90147EFBAFBE9708FC4BEE790ED8CA2326DD391244B9912822F9A31D7191812F4B6262931CD60DDC21824B2104229592349580581D46CA739F0C9477F1BBA318EC0D4FE80400E3A949F65BEC196AFD4E1C90F896012094026303B8077B6E3A292E13BC2E768FB6AF024CA3391087A31D93EE7C2A0305F89D3153A1C066E75A32FAB8431DCA9A2E04F0708727808E20AA16E8F426A79FFDDA4B57810C54BB47DB3BE65C144D5AD1EED176609B796307DDE94DA27E70B2217DEC598313AADE0C714B4906513240EC085B207893F1B021D819509500EF14EAA63E46D5B64B0894EE747508FA3FB2BD2B9B9A9012479BD450B2C1AA1B8AB6C17924464A9E52FDBC44CAF10923794F24181DB75FA4C730FC89EDB916A966AB0A7CF2F8B9B72E0679DAB1261D2D03BFFC8FF24BE4EB0AAC1B12A8F92AAE412D99804879507227104B6BC8A52A60247F7CEC48D91D7BAC263C01CC80145EE5B35F7B69F37B5FFD003EF7D6C5C0D8FBC531C746C7ED56AB1DA5EC8CF8878D86EAA816963E7C9741C9D6518C8EDBE7BAE1D663ECA48C773092CD8746FAF8844A08511D60B2D8245285F74C7D20297C85FD5F2A8C543326B71952CCF32EF53CD81B22416FF1E8FC1C1291A024A3EEB666D8062547160A6900CB522F96512EDC0798DA47012406E214A4490027AA757F2779119CFF37303A6EB7BEF5D45095F269EFC9260D9C07FFFCEF373F8C069788A3AA9412360E5B3DD24995F49D153163B9B70357F25E63CC8378A8298F3582278002486CBDD3D171FB1A25470000BF73FE4F5BA3E376EBDD1B0F63C2615B6D00C1254FD45B11210D52745F1BB02CB3F8582581AA0BD389BD6854D84F63F9697C39A55E2220A410D5C65857D2358B02277C2E2A754A2E067BC38783BDE15937DC425B4ED83DDAFE80E4778E5C7783E6417F115C3288C78A3EDF02F0AF7147934268DE8F45A516DD70EB1917A9A346D66980E3C1DEF0A1CDCE8FDF83DB5F3519F8ED854FFE0A8D157AC9D5FBDFD4C17757A12EAA006D273891C673D244338BFC716921C0FFCFDEDBC64876A5E7614FDD6AF670645B64B412B598DA6DB6868EC944F9D8D4903566B7493A829701E269AD3C143B40A028C9BF5D2200DB9950DEFC9122FF8829D11DB51383BB0E90D80882C06A6B26BB6AC23F8689007231454D895312027F0C21CFA4B7C162B85C6BCD9504CF4CB3EA567ED4796FBFF5D6FB9E7B6ED5ADAA5BD5F7010A753FCE3D5FF7DC73DEF37E9E6C6638673BCBFBA8B7F056685A428D459D62AA4285D8D097980D4A3F800CE4BBCF7DD444DC715F7C439C05C1E14982CED3354AA371854877843880BC1E3E057CF92FEB21CB49AB4F282EFCE6FFD6FFF8BD5F48CEB9681918DAB51EBBFB335528AE8DE1B95D72E8008CF866E47E187D6DB2DE4FC8BB9D07B67B6B8FEC578F7EA871F27CE2AB50A2D053EEEDFDEAD153C63DF55BB1C63B902C9C7F402A18EC5A95360159B9EA8B08E60B907097FB214DC3B2F64B1E48FBA60929845F323F515AED5B62F3E8D39DBDE8D6B4B8EB4E8527D11B0F519D29B17C2839800C8E254EDC236E394BC61A0006C486B2203D2C172F3E61481DB3CDDD751EC43EB11CF3E99349C8854D3EA7ED3479DDB47CF835BE1BBCF59FFC62C5F5C1077CC220BD3BF6E8AAF3659870097D6DC803C4E9F04D60C47D955C25D937CFBEFE64C20D25D139F3C3A8E53B122D44EBCFA2719BF6876356BFC68ECD8825D6B8CAD2368BF893B0CA920BE2E6EEFA2A117FECDB5AE57ED57CE2F9658024FEC84F244FE3793F3D8BA8D936E2E08662D1F5FFE43C99757324EEAFC8EF441E933A919BC79A328D0FED06B2F6F58FF39392F83B9D28094087DA4E7C958B7A3777D7EFD30749041FA5EDEC45438AEF69223383E5CFD39D955C184B87504E1A6962327E8FD7372D9FFDEA518529D17331C78FB93EA0DD6AC275A39F24FAA64D043A9D30D265B9A6A5D9AF1E9DD5F43999C8F778BF7A54891E7AC09F09D2FDD3C489FC7DA52D0EF3C67EF5E80DB16151C55A3E4E611EED93E3D6FA06E89DC974DAF7E8DBF82C11CECB0B5A5B0D51F88A3687B87B41C4BA068DF85B3482907FD782EB3C92868ED3F2E47DCDF3A4B989D482B87A83F63D4AD45B182A3B8D20741B8432BCDC29C7A9170193D8D71DF7311061AE6EEEAEBFBD5F3D7A51A6D7C4528EBBF42206E1945245657C02D144C01AACC9455BF4D20852597F2D4F9FC8B8A6849AE322586A17BBD7C720CAC9B4BCD83FC0E09D6DDDB872782077B3CED26D850807C3DAAEC7EB0F64138B65DD0C1415966A8125E6CD22FED5CA91C4A4250296D738E8797AB7DA3345EFF749C03880436A0ACAFBEB71822FEDBD2E739FA561DB855CB324057CACD1FD94FCCCB9D6E547F34FAFC342F859F9B51BE873A24F9EB3EBF7EA2D24719D1DA1F9A50E8B1D5D72FF4E2F4E2D01581B8450BA45C4031CE1078C7E10A16C7FED5CCB432E54BE0959E3B64862422BD39AB8AC3A5A69E4221DBA28D44EE21253FFE63ED16CF7D6EEED3B23164700F430F081B64AC7103A9CFFC1DFF819FCFEAFFD4E427807BEB377F7AB472FA4D4458D2BEC4B53341863E60338172C1CA10456483F589C2ADF7B2191190095E8E3E97C9CB07109D822C02DE65F011BE7DBBDB58FF7AB479FB7DA2ED003901A7F761C10B76FD1AD80B58D0A396C263503DF6679CCBC470879CAD722F408C4F9F3A521947A7F254E2D014848331EF01160D6394716F19FC5114923E6B4E7B4BC797B78FBB4FCE43D994F081811C8C5E7D350682622330989C7B882601336E0DEF58D2B8777C99D08C1D7B66D23083B2742D93593ABC5EF676EE81421DEFBBDFDEAD159AB1DBECD02CF2B8DCB67719A2D82ADB6135FD8DC5D7F5F19E743DCDB90CD934CBBC87084E06560D43549DA7C426958763D6D9C9718DDC423C530CCCA43E1261ED3A6953B82CE02220CE5BF969638C6A5F14789534B00127162DDCFCAA508E19AB11D5E4208F976DE2144A68F98CB9A97757F1202A6B613DFA43893440CE639E1D476E2076EF21CB9C7C4EB1FDCB872F853948E384637AE1C669EC02DA471CC005B57AD28F08DDF342E1F1D5B9B88908D0C1DFBEAC7446500702C5CC1240B29F37739522F8B985F3438C2EF12581C608BB3ADC1230D20F1E7A5FDEA5166F7228B0EB9A993FD78E3CA213A7B51E5E5CFD6FB95280630BEBA486D27BE49464C37AE1CB600341422BEB35F3DAA0140BB81D7EA2DBCE18E87EAA511801A21C8094077EE5D0B4B2C2F4EA511081FF02284920A6D2295D7F8391D6B13B17423A34D1CDBBDB5EB964851FEF8731631C89FB5DA23F39079C936B9E3E7AC7C587B29DE70E27094AC8B5DF48E205F651C2F7FF678EC9EBF09E00F88A823C2CEF5718BDAB15F3D7A6A73773D76045FD23E1E2982B791AE85D6C7A5A5D07F4FF1BEE6FF1A9193A59CBCC1DFA9BCAE1110721CC83E4B7BD61AB3923074BF7BB27EEE9D713DCD559E57672F3A4369ACF2DC758D93FB554F571512520F9720FB549B2F94F1C83D11ACB8FF5347FC01038331C0DEA891770072B81D32AF8AFC93FC687E747358C3485F63A7BF4E07F5162A9A1EA0240CE9BCB613DF7173E679774E3A8025F157308C61D53D164E2D0710D0773EBE5D6FA87855126FEEA3FBF1CDDDF5F33EE5618BE8B344655AFD42448F1677535BB843B83F5976BFDC7DCCB846214CF729E104C11103521F2C84C39A267ACC0A0F61AF118073E346F9384516278FEEF1E7B5FCB4FEE7F95A75329E4B8C17F8F3E4EF4F10855E3DD790EF68D12036B0C72E0250507F1396A52FF28635574A494E963CE475C7D90ECA8B73F4342E1FD70194DC3FE6B4BA8793CDD3356B235162B6D00C7B80D17799A6079A05A7920024BDBF8098B15E0281902686650627B4E30A52B656269F11D184106D0DE96E696D486B634AF9B92DA0E358A091F5317F7FDC10401207DACE362B813B2EAC72D871174E013FCF7253EAF4DC7EF5E83BEEF863003F29D3F8EA631184DA731A0192C6F9D4D28A323F01F013FB03D159BF936241EF236E65DE8B0839AF00A3734BC89C55428732BFFA2CD62D1DE121C7E7727DF06D9078FE1E2BDF243F8B40A073B6F92EF5FE1604598C7AC6C1A9140113E72944FC0B0C8BBED2D230514B2252E1C1B5B908923FABFD2BC4D790B181224E4B25FED21644519EBA806AF742C51FC030C7C2714743F115F23D48FDC8397E3CDFCDDDF5D5504E13FD6769830F52FC26AFB9FF9973FD18F1D7DFAF1E7D9ED565484C1D321EAD63D987726193FDAC8CE1A4BF5CBA0F581E8FDDB87278CCFC730EE5A3D5495EB3EABDA0D897A1C87C049F31E77C92D7B85F3658DF0771FF68FCB9FEAB1A793CC5D2A863507E23320D304CDCD1BF4614CAFB8CF8A3108125F15750D0FBE2E7C0E8BBCF13A78A03E83E826F03B8DCD98B2A7FED87FF7EFCD09FFD57FFDFFEB08E0580C1CE0D4C993F6D47ADA56113C63500973777D7EFDFB872F830309935EC249C0B1F572FB4AC10EE8E96676D27BE00609FFBA042061104E71A1211008CFAE42258E2485F5B0C91E63BFB8A1B98EDDEDAF57DC557A4F2BCD95F92BB10D20F79200FB1605ADD2D312C9DFB0841AB3C1295697DFBF267EBFD7FF4D061AA7B9F6583B5A8A78D3B9E7699FB671258E35513018BB9E6ABFBD5A36F2AD7CDFCA4F1878634C30F7E6D6B233E06B07AD08C401C4059E712C5828FA807F2E7049E3602B0CFC4862322429FD8CE074B5CB55F3D7ACC959B846AA280DB7928DE5A628780E75245BBDAE29E95806269D4F8AF69EF83A763A77765982BABDE542F595759DF903664C1B610EF16510C19D21721CF6B6DF48D9149EA4C16DFC4EDA505936F06ACF6E4517ED1E08CA9AA60DC27AD1F7C792C5B9FE409DF068EA0CC91DE39599B6B42C6A8A5EF1762F99BA7CE5889E962E6EFAEDFEF9F8ADFB9577B0FCEBDDAEB9F7BB5D7D7EEBFDCFD629FFEE9989FCBEBD6B39EF2FBBEF2953C6F8FDBD697BB5FFCF8E5EE175F0B48773DA42FD2FA6646EF2FE93B5EEEB9577BDD73AFF61EC87AB9FF4E96772DEFBBE34F32F67D571B0B5A99B3EA3B5F5DE47BCE5A275FFAB4B68E53D6B9577B7D595FBAAE953D8FFE9EC5EFDCABBD0B6EECD3BCD27DB9FBC57B56DF1BBFEEBCDB51B45FCA1C7E93FADC9DF7439EB3D2A48DE17EBF8F5BCFF4FBB79EE9DFE3E7EC7A5F9ED3F1B9577B5D59C7F257EC1FBD3FF93EB5F79B5799A78E0308A8913EAE03F8B24F97C9421A27C7F2D5355603A684504EE238E2CA947EE196BC327C1CE76E245CBFEDDE5AF7C695C3EF3A3132F7A135125DC5E244110CCE4F5A60080000200049444154ED5445B2BEFCB77B6BAFED578FDEC8BB4C5F1DE85A9A1A405A9AB4B2C6ABE970F95407A68795F801F4BDCB49CA2E3A6A3B71FF47CFDFFCEC8FEF5E7C481347FA74024F43FF6445C85C90854B1E226920A3366EC8C6F3F6598072AEDFD6467CF7A0199DDFDA887BCE197E9FC4BF3976518929C172E303D8063E9362E98D40C8E79C86EDDEDA6D47FCBCA82D88FC23B48EB77B27C61F463197B868B368C41F306C9020170C6A1F5DE7FFDA3D7EEEF256DBDBD98B5E22631CE690F4A6FB7FD0D98BCE74F6A295675F7F1200CEB3C973A5B3173DB1DD5BEB4BE26FBF7A5471FA96BCFE9FF0BA507D32EA025E0FE94709D92F5AFEE2DED4883FF95EA82EFC5FBE639E2E0BA1308E6E9FEF3ECFA3B61353DF25AE7F280FADBFB5762F0B4885E28FEF5E7C68E38D9FCA6CBC536214EEFBBC272EF78093B1C49DCEFBC697369718F30E45271A4923177CCD4D08006C6DC4C707CD88221B550180E9FE996B6089624013DF733F8F52BF33AF724F0D07500B47B63D1CF0FB3E808701BFDE18CF3364074D1FDFA23ADBB476BF80DF90C1E2C019DC40D537A0546ECFCA954D6B8B763D6FAE481AD771DA5C181FB7CFF72EF328D32A4349AFEA8872D476E23BDC8FA6D3FDBB43E1FCB4368AEFDB5B874503972C70D71E96BE9AF67DA20CFB9660BBB7F61A80D7E0DC0CF938A8A477EA4E559D64A38C118EA01557D882E52B6E6B231E0A87F8AD6605CFB42A4B31D64F2B7C9CC0BCB0F404208FF50B0C117F49781DEB23973BE8142E91B9704AE293C2A3E5D2C019C1D73EABFF429F97FDF3E23FFB4FFBD7FFEDFFC314B98809F42E585823EB192B9FB47AE7813411D2AC4471163128C67562BC3446FEA9AA04E3B6959E93BE347DCF847E9F8B082BCEB6AF4F7C44F2B4EBBB48485B0F00A01F47A84471A6F942E67BE3CAE15DE6114135826B37701DC0CF40B899E19CA0AD8DF8E98366F43E5D77CF95861F0B0ACD01F4D4FC01CE5BF171DA3F9FF107195A58860E3E63880CE5E7A6B059949FD63F63F4CB4D769C28B3FFD58F5E18329639F76AEF81562E3F9686012C7D97A7CFC3E861923EF319D4CCEA9D59F5C9FAFE6650DFDBEC587D6F5C797EDEFD3B8F9F36AF790C3E927EB1DEBFBB9E6A3C36EDDFD6FF30BF39D39ACBC6312A92DF9676CEAFFFD62BEF24F7A5A2BF34F6A07991DE7F9E8601E56FB6BF5BCFF455634CFEBEC5B56E5EEF7CE97500B55D95139F60BF7AF49425AE72F74D6E89A52FC5CAB8C962DE06399C2E1AB8FE9CA5DF27B94A56BFC873E28092636700BD677FED2FF47FFFD77E67A80EA4E4AF8139C16D39FDBF636347DEE3F5903A39BC6E5A3BF384A503A89537691D64BEDAFB2BAA7E181709F377C4F5AFE09CAD4B1F9069FDB63D70D3B3B010CED37BC2213100FD5D6ADFA64C374D3DD450FCF65F1FE6E6FFEC6FCC6EEED4748415CEDD716D27EEDFB872781CF28DD2F72EC6F15D96E43E00FCE6FFF80BC9054DCCCB458207CD68955FCF5B37AC44FEA8EDC40F343AA0DEC2902F59ED3D0AC7DE2B797178979A0064FA77431DD5D98B5E920BA326B2D4264AFA90F9B93109BC02C7B6EFEC4595221A7FA461BF7AF4182D96B2DD1C5C8468F50B9DFFFC833F1F6FF7D6BA4414D7FEF2DF038016806AF7DE8F523FF5587FBD2D45A6540EE9CD6CEEAE379C0ED41951E60AFF176D1B1127A7B5731C581B08D95F3CED766FAD2B88C4CC048B46E82AE57889F4A263DF8E8C9344E131C4790B2FF2648AFD5500773991A18D673AA6E7F31CE3D3862408A705FAEEE4DAA024A54DE96A5A1F5A7971BDC1FF7AE3BB0FBBC39E8CE4018C8AFDB636626C6DC4004E0C3DB474250A87552061080D19E6B41BE86AD15D7C06217960697500296EAC3B4EF486F8BD34C5780DA193666D27BEC3F43BAE01B88C0161B3308BCFB6110183DD37DD2488DDEE350097C8892F90BC9363A6C7F43480F70198911E2C0577BA26CB1775BD07E0614BC15BD3F31CA3CBCC7EB2EAEAA9AFECD34BFBD5A3B7D2CAF1E9AECA3A58EFAF48E075BF71E5F098C690681329C027865CC078465B8B02B780AC02A3D128007DB331F34A66C4CFFE46DC9F15B19706C9A5E7FDC71D92A7E5D36EA0FBFA7B6BD5FDEA51A5F597EEF7FFF63B7F0137AE1C5EDBDC5DBF0C00FFCD0B7F8895E38190CA8AF5CB17FEAD8D1807CD13BE4D49F42D0E4223B158915D342EAFE6F83B13E62DFF9EE68F9C04873A80A6FF34FD99C0B22F50D9EEFC41E8B38BF2B3FA863B99757DC0FB614817865DF73A2EF5E93159E9D2DEB12FCD34FA4A2B2B4D674BEB53259FEB229DFA4EACFA2875BD67DD9BF78FEBFBF163EB5D6A3AA1CBF03BF76AAFFFD37FEFBAFA0E2D5DD9A2EA7BCEF3F772F78BCF69FDF772F78B9F587AA434F6E49C2EF556AD6F9EE9F1D171322ECFBDDABB10E210985F3BF76AEFEABCFBB1FCF97F59D67FCBC977E9083A238405B01AFACD23C24DE0E34419E55E00D084B2435F3684724C295CD78D2B873D00E09C508D43C639B89C7B47E96F5C39EC6DEEAE575D7ED5903EB6EA3A0B6B5136D63EDEAF1E7D3ECD5A533C93EAA646A6D5FE65198BC0010486DE5BCFBDF721BD50E3FB7C1BC2B9FB3CF0CAA3E8BFF969BE5C1ACEFD0386AD7F35AEA77C7EDE7D12827971037DDF8D9B97BA6EDE0190E89F7EB05F3D7AAADDC0BD7A0B67DB0DF4FF68ED0E3E77F4440F40F5F5F7D63E02708EF2204E1E0F0B2A393BCEAFDF2AFF078BEB0BD896BE548FE9F4508971E138803D0C2481A96EE1346E9FEFFA38581871E498F82E13C39AC604805797CFAB4FA5A1B317DD02704653F85C3668A2113ABF71E510DBBBD4A787004608BFE700BC4BF924FDB5076CEEAE5FDEEE81F49ACE72BDB5FDEA51057B406DE7B0BFB9BB5EF5BD0FFEEE2CE25DA699AC477484105C9621087F26A4AD72F1F2B5B9C87A7F4A3F55E10C7AB4F609CC9DF80BC12B8FE29D373F85A966110A6D8360A9042C02E644FC5DA2638DF87BFBE7EFF43BBFF544A5B673D83F684678FDBD357CFDD923D45B786ABBB7766FBF35D0497DFDBD357A8C980FE788F0436B706173771DEDC6511F1B27E553040FB7C0AF3A3DBFD57A0B950EA2216310D209D388C092F82B34AA18186E752D75309FF36FED7C1211F0527300015DEE2E2749C04F00B2FBA48CEF253A5CB949DA65E400BABEA83AC2ED0137C010FA7F80D37D4CD1ABE962E010758450974413119A7C17AE703E46FC9BC9FA69C4D2B416494D4F92D7456BA74C27F3F11DCBF22DDDC045200A3270E87BFBCEF17311DAF5CAA383053B4F0EA0164211C3A11267EEEC7C1C1449DF8FA3DD409F117044E00DAD0D5F7FF608C0C01883FCBA1E34A306118412949FF6AD537A5AC06B3B71F7A01955E91A710B8113830F2B1C5CBE3D51222FD476E20B9DBDE896A5B7ABC167E82139C02501684058CA55E1C4C0726797451C97A16C6EF1B5B41F2713C77E0EC0A72E52C32FDDB872F8EBD2316D9A01067012FDC312658A72E9D434AED108BCB43ACC03A1223CABDE6904A04CBF08B0DA44DC621EFB793E359C3D9C0B9886B89C3AFED3AE9D264811A9DB50FEEED79F3D7AFEF5F7D6B8DACA838366B40A0C71F5000C36B6DC1803385998E5F777E3CA21BEFDBB7D44719587665BA5E739A1D7D98BBCEE5C4A426F31E1181CDF0670D9470FB41BE8D65B03C9AC46E0E5ED107AA9DDC06040F4AD02A86EBC310893C8456972129462DE3C3843CB48FC918F4322729D3B964F81A4BDBFAEB55B4C8CCFCBEB4EBF06E4638B3F4BEF8271168F5D19D7C0FCFCC9F2B868D7A7EB374B51689A2E22136D5E4F1BA7322F492865515D281A787FF018CFDBBD35D2271D4A4FE3A32862ED571E459F7EFCDA84D95E0086E7158DF8E37DA06D2226ACC34243127F0056BFFEECD1F3C4696B37D077636C756B234E88BFAF3F7B84AF3F7B64127FB59DB8DF6EA04FE90807CD08BF7EE3A792BC0F9AD1AA7C9EA02DF024EE9D861B9012B381FB462F6310C3DC8446FCC1AD6FFCBD733741938C87A5E6004ABCFCD9E371F3B5FFF7B3102EE0A49364A8C9F7A28238753FFFE089DE7B7FE30FA3ACA1B938420D16E8982B626731FEB0C4FEF3128D595CCE1071B14416CEE6A270805C3BBE06E01B403AB79ED2B0676742EC6431F498C428C471FF2E60B0B1BD86146E0230D0B3DDAF1E7D679CF29615B4B83A63BDF789EB46A2DEAF3F7B0472B742841DD7F90300E98E85E0B9DE23D12E37E878FDBDB52135196E14329350602566867168829071404422118F59B0B404A0F40368898B7C44074FA33DAB94790140932C7C968D08D4E28F4204434FD33F93E772C17622E4A167E9BEA233988B7EA54F076FD6B0FAC58245302EBAD88F743843376A457A8744E4BDF228BA6F7E8A15CEF59B541FD08A6D6E61DE7D5174301DBBE38366B44ADC3E3E0F11D147E2E1108E8BA50F48F7888BE816F52E8FEE90A7956789E2407EBB30E23F03A3F180E958BB37C9F8585A02504388EE94C565089D44B3287A2E02C8A1B53B4E06B0537EEE07887A4DEE14C78D2B872D003F0EE03CE59F52AF20E2DA479016815820F8F4DD2CE38D34A38E908DCB766FEDDEBE88A8314FF0FAA4713E2D6EDFB66200342D109127AE110138620432A95B1836BF5C037029C49DC422E0677F23EEFEF65F9FAD937CBE89D4165C3AE7C61AC03071E70BC12609462DEDD6469C10013E5D2FAE1B566271918529A419FBF0FB7958032FBB0E6082AFFCE0E9914595E95AA97A439AFE950FCE42EF4376BE0CD4F517B8318DD03DA205F71EEFCB34430660B46F3777D71B00BEE08E93E72C82312B71CD7501E99F1352F3D61BD3F4FC649DE598E5E943C4E7DBBDB54794720B43FC01C3F549D361F488BAABB3789FAF3C8A8EE3F0752DDD3E22F672B408A6CDE54B8E1BFF20ED0182F6FE8B8259137F4E172F99CF48FF8FF0FA7B6B78FDBD35904E1F07F9320586E778AEAB47C41F1F87B59DF8A65CA03901EF5BBC4BE26FF1E1361CC7EE38687E922101AD18D1E372024F0507B0B6135F75A1777A37AE1C5665F078C2A41C211291BA63953BB628E0A1ECB476FCFC833F1FFFD6997F11016116A89ABE9DBCCF432CF9FA2FCB2ECAE2FAFAEA366FF80C544274FC161DAE7D1FEC578F9EF27101E7A5BB694172FE08748DFF8F933FE3C09BA2A31261503871437175793AE2F8D13FE9F00148F4FA00E0F5F7D63EF8FAB3474F02C3E23A290E66C466EFA01955B532791E2596073C04AA2F9DC5FDD342C4D1F138F5597A0290883FB76BFBEEE6EEFAF910FDAA49161446DD177AA2E67A92FC1A069CB8068979F97DC6F5A3EB49FCD53451AF4F2F8D8E659403081F82A122769F4145D1083E09D6776FEF578F5E4C13F5F26BCB461C0618C0BCBD5F3D7A91D26AA2F15942E3044AA270420290E21E2FA57FD159438A7BF93917E1725F7E96288E44C552444CF7686C926F415E07AE0B38CDF696982FB2BA87B3C6671EFA7FC0921380DBBDB5CE7EF5A896A6486EDDCBBA80702389224DCEE488D2B8C7B9965D67899670D8B4B6F814EED3886ACDE255A6732E6056A58367479C5E76A741BEFF34BD398B009CA5EED8A40825768A4CE85A48D317E5B871E5F05A672F7A699E449F059F2EE038B0364793E4799A418BA9C6914BD3EB034E1CD23FF8E16378FF6FB6EE6EEEAE9F978EA339B1474E9E39B7B174E27CFAC0D7598D4E901B019F7E2ADD57FC057E526FE1B1B4BA2CB50EE07EF5A846C737AE1C3ECD1715CBCF9C964F067DA2D522EAFD392FE477E8DC115284D5DA4EDC7796D2BFC39FB30628E966497D345AB835DD2D8D4894C4F68D2B872D4AD7D98B2A8CE347ED78891D9B0B9F2C2BE4FDB9BACF6D31B5F4B3B4BEE2449DA6A7BAE85C40A9FBC8AFCB6B839081B6CFBB69E39547D1B5EE71824F130D4F8056672FAA94C4DF78903A5307CD0807CD489D53B85E1FE7E6B971B60A00671EF90407CDE83C71FDDA0DDCE3CFD371672F5AD9DA88B1F1C6F984482C89BFD307CE64D1A071812581A7F9841404612AF1072C390148D8AF1E553A7BD1ADEDDE5A3FFEEC0C2D2CABFCFE766FAD7FE3CAE1D374CE8D0342B811825019225CC68173B67CC1B8A75E57D275FF9DFFF97AD771F99ED8EEAD7DEC6E5D160390E2ABBE48173A7B5145EA4A86105394463352905C1AB9A077F6A28BD46F449472113ADDE34429276C2534230AFE5F24EC578F7E685C5789A194BC4ED5A222FA48750A3E2D9005B074F84C90BA7F9310819DBDE88C23FC2E4E52E7D30AA950CF174F6904A23C7B89D27FFDD923EC578F2ADC4D0C197E385171A212030CE69BDA4EFC60BBB7D63F6846F79BAFDD45BB8185E3CC97C807E34808A5D3673E96659A2C9B8AA5270069B1FF6B7FF2EFFEEBFDEA51E5BDAF7F30E41790637377FD7DFE5CDC5D4D3E521E89808388312254E8C54ADDBFDA4E7CC147B81157CE397B05802F39CE5D97A52102E81623944608208AD2F1CC7FF774F55FFDB3BF5225B1F48D2B873F49D136A84CCE49701355DF45E378A04D509230E6FD65B5CD8221B6FB90F7A520A4B90F25B8344FC86B5639BC0D1A77C9A57D27BC05F3C169593834DD47659CF504077A6E5C3122F02C222F0F22B0C4F89056945B1BF131E702F2C595D25254907A0B6F49EE0B45A2216B619A577819344F1E34A3EA8D2B87D8DA881FDEDC5D2F0D3C4E299CF87744B79EA3DDC0C7FC5C72A1E5D8F17105D3B0D40420E7DE3DF4233F3C0B0C5C8C48DD32B9A8386209D1CA71F2A2A4B104C39BB59DF8AA23D4AEF117CB88390078539441041C117897DCFF9784AE4F95B86160E25AE69099BB692125D3D5CE5E54F9D6A36DCE11B9E6DAB1426D27F1D9766FADDFD98B2A145ECDED6EB9AE914AE059569969E9B8A85849FE383F61FA89573188A588DA4EDCF57D40299CBEB7ADE75C1B5EF0DD2F317D4842CFA7B3AB117CF3E2F0725D3FCD129844C2C22FE03D94982968A1D40CF41C27EF3E9D93F147BB81FE77FEA3EF0F8D491EF1E3F5F7D6405C3E4D6AF4FA7B6B55381720EE9EA93A50627911A2B6516FE1F36961DE6468404D141C82A53502D9EEAD5D07F065FAD8F84291B6403842E80C71C368A7B7B9BB8EE33FF95CFF5B8FFE7EC41D24136A3B710C009DBD2872C79F3102E60E9893636203F37F7E8FF2248E22BBD673D7575EFE6CBDDF7CED2ED8F52A7F86DAFAD99FFE185ABFD2BE2BEBAB19C738BDBBAB5CB15EE02332ACD18C66D244E621AE3B5C5B7BACAD67C4BDA1BED1E033FAD0384B007A8B6200B2CC701CD8E701DB28CB67F15C44A397499D3F97C81F34C75124102B362F37E8D0BC09B0FC86A24D599BE32C2EAC4A2C2F881E081D079A93706034245C56C3A2A52400B78D680274AE11025A3A1E0EC8114643C487C685EAEC45957FEBEFFC6EFF9FBFFA17930FDEE74E85D2B843E2D605858BA14987D78D62F2F2F8924AFF8C58906A849C75EE83B5487BFAFFFE3E73FE4BDC4FEDC3A8894824561DACBA178D3028A163BBB7760FC2B5103FB6883D97EEFB00FE791138B992F02B09C1624173E7A22DA2DAA682CF3137AE1CDE753AD6E69C79E3CAE1F1E6EEFA6A68FCF212CB0DCDD386CF5B07304A0496A1E002A11021C90223AE8F102DF4A2881024A2502C3CF76E5C394CF263045FC29553EE8D7002E95A68BB98DB19FABF93361159C4AFB6BBB58838AD6F7D7D69D5C1D3AEBE20906F02B840C46C9A12ADAFAC45B7905D6658DC3B6DF3E1C694B9D12B1A4E1BF157C4F6B61BE80248DCBC6C6DC4770F9AD179C901948B2CCF43632010B479AEB6135F20DDF292F82BC191D52720818F63766D2C4270A97500017D51D917E1AFB8CE91F2811F732EA013091FF30FBD1F470F33E38F44BFC3112CD79CA14585117AC73C3DFD87123584CE5E74C6E9EF91D1C413544FA963A7193DF0092B4DEF8A1B7FF0B49A95AAECCB506E22774FE3F4FCC8E8E522805E1622398D90282AA1709AC1C7181014552621FE349D52A706323748E7CFA749DFAF68C41F3070AFC117498DF803740B4B77BD6B6D886F5C394C16743E1689A3E3243214062CC88B4389E5C5B85E42DCB8ACD2B17469648D5D0B4BCB01B4766A6962242D1FFE2C39FFE47E04297C99AF0EDCE1B2AF9E6922545927ED9EA6FBA6F4C1C7007E526B73880E9F5696D56759B9330A07F00E802F382E679771026F5A2E317C752BC5C2C5C5B6D3D74D5339C8CA559E378AC8113BCDA045F2EF3F1EE3BFFC6E34E416C6E2AC58A26026293A86535F91733F9C637BD22F9F51334B2C002CDA8043D3016463F603002321084338824B4B00120C7DB72E80AA4F1C9A26DAE4CF69CFDEB872D8DADC5D6F6879C87A595C329FF85242E49DE8CA59795ABA79241EF711A23E515D48DFC8FA72701D4085100CF29FE413CDF8EA5FA2384821007B9C482CDF6571B048842E71610E9A51E2F14089A830B4905A73283106E8DCAD014F93F8B71F4768BE76B71401970090708113B773E3848593D734A411814B2702D6C4B98A8868C49F5C1A4781F2D588C31B570E47CAEAEC4517B978944F1ADB27CAEA5E0E9914B96A622E83E0F2BAC6B0B862EE59AF4E959800EFC9B4DBBDB57B22BF116EA46FC12667B7C2FFE11DEE20DA7A56F6892C5F13571709BEA812A711DA7B72D7AA8B44FC9DA6F7BA287E0E6B3BF15547F8ADCA7B163750038D3F9202917A9013F93681C1FA5089FC8EA64B9C3E70D5B0D0672CEEB4FBEFF174226D47CB6FE9388092D343D77DE2402B0F0E41687DFFC695C31F03506556B8091BD7A5B90FC749B3B86DBEFAF3F4FC19AB7DB2AE3ED1B295B72FAD4FB49C2606B6EA68DDABB198BF8A1B9C6B1E9F8C430821628B001FD76491382A9320645CCBFBC4CDD7363C254A58700620AD8366944868D25C6C848024149AF8174C3C9C4B234A2C3CB8D5AF5BDF5ABE283F3CBE2FB70296E9B258072F050770BBB7F689FB1FE1304962867308C12866717DC8904259947E627377BD4A3E02B77B2786182CDDC32CBD2942161CCBDB927326EBEE232243C4B2B23D96D856A695DC33EBDFC7ADB4EAA8E0321D3827DB0F98B1CC10F1B7DD5BEBB0E3A177AC715ED308D359823B0EE6E71CA784F8BB677C6709AC715F127F25B2C22D8C1FF26B96FE9FF66F81D4568821400EFB1D97E70C661CA6B0C4FC601811C96BEFB3200FF0117F00C0893FE59E1A25240D4B4100EE578F1E73FF2A41240942767D45A4FD1E4F2F89453ABE71E5B0E7FE13F7309CE89079689C3B7ECEEAF7649AF83A4D97CD221C659D00BCABF54DDAB10F4639DE3CB685477C661DD57313E74B2CEAC9880878BF7A54936D979CC8907ACC03A781B80BC1BEB0CA77D782F55F4B141F45130BF38DE4D6469C704D781838F94CDAE2EADC70519A5516729316F872B3B2206837309107013956640CDF9B17FB13E904F88C96B2E4B314042087E0027DACDDF72C264356B18288E31F6F15C0909368FAD7F4040DEEE3507D0C8270A4CEDA7D8DE0D2EA45C496CBE30559067F661C5822604D1CCF8E872645660D95E86932A2EF58EA076A6DE065589B806C2D9B2D8AB6584E13DBBDB5EB7213E0AE7BC7B2C62DDCEEADDD9E6E6D4F709ADED1389031918BB8D9A9B750D9DA185D87F9229A65419591961C27B01C270B887A0B2F86A64DE3F6F14D05E9EA5DBC5989A40EA0B5AE79EA58E184E038EA0B4B470012DC82F1939668D77A4E72CDE4758763E02418B8A60FE7A9D39078595ED7F2F38953A5B8D327BAF589CB2CE2CD876D6704C29FF189DFD3F4BB80610E203F771FC9AA3B56DBA1716E45791F85B46BD690A2609F4878D9B05F3D7A91C6A5E476A7A934D039CBEBA959D4192826415324F0D8C745052DB807CD2828E66A168CEBDCBF44F1C0082C95404B1B1F9248ABB7B042C7ED06FACC2F6415482704A5EE1FD7F9F37103DB0DC50F69BFDF5FAADFCBDD2FF65FEE7EB1AF9DF3EBC6B35FCD5286CC8F5FD7CA4DAB07BFEF7EDD90B658F5D0F2B6CACCABDF7DF50D2DEBDCABBD3EFDE89CDD7B105A0F5F994AFF3C97473F64FD7DED917EFF6B8FF4CD7EF1DD5BD69FF6FD64F98ECBDF7C7F8B32666F3D33A8E7AD67FAFD73AFF6FA744ED7E4B995CFCBDD2FDE56AE5DA7633E7F95BF62FC6E3DD3BF27DF2B1F0FBEF7AEA5B3EED138B2F23CF76AEFAABC7EEED5DECDC036F4651DB46BBEDF527100A5D8D5B2F6F470E8BEE9CB9BE900AAF7427410352310A51E233A8AFC9E66EC20D36862575F599342722A438D54389CC3E7045CDCCB76D35E879916C7948BDA1987F51E7BEE3B21EDCC1392F3C7AF118ACE459914524DC3E2BC6BE3CAE2D697982F1661CC12C784E6958366A4725678DA7603968AC19F9317F6AB478908B1E400160FF516CEBAFF0ABB66EA7D0A0E5E85EEF1681CFC9AC8E6FB5ADEED06FA5217D549BC1A326D1AA43EA0AC9785A57403E313C75AC61369F9D131C573ACEDC47D2526F088A833A41C2DAD56C73CF4F4A685947EBF2F15FD7DEF8079D5AF02F8769ADB976D111356AB4711FB4C42BA7C39452E60865CB9F854297C1B8C79E3B4BCAF4587CF850690DDFD4B89C5831659636B23BE06E04B9DBDE8093936DCBD2F1C34A30617B9B28DC4D5CE5EF49235B6A4D18674D3A2B884E969AA4E46FE3D122B5B69AD31BD1404A045E4D1314F939500E4203F4FEE05DD954ABF0AF131147144D6D567E9A8DD4BD3892A0AB1E3EBEBB43AD2E0C780F83B46800F2D8DE8B3887FEDB9F15B3A198860E09CC0D34E44581CBF71DED52B8FE2AB00F0E6A7F826BBD67DF3D3E1C95221BC6F0378F234BF8765875C487DC7F3AC6789FCD16EE01E710035A2CC59730F1181EE7AF7A0198D049130406B980A467C7601541D8179092C0A96CB4365805804A6A103789FDA2BB154046000D7E0AB00BE3126F1F780DC9130AB9DABA14E89795D8B4688E481ED94F073A10438579C76E2DF6F77F6A297882BC845C09C7314B209581448EBC9D348146AE3258FEF4413BBD3F5903E3E8DEF220DAF3C8AAF7222DB29B537311C65A3303170DB0D74B736E26F13C786DFB3E2AD8A85F57A162BD112C583C649DBDA8871D08C927F0E5217E8EC452AE79859931F1F34A355854BF7118073324FAD4EC010B369244E302760F9B35ADE690EA197420750EABC79AC66BF392EF107A02A4DFAC721FEB4EB8B46A070B036552D0BCE10EB4E20E9E76B744E2C704BFF6F5FF871E4F96B7D5D645D31EE36832C28A555F06981B464A76B32CDA4E5E4E1A6E434586AA781137F0040A22C11E66A24E4DA3CE0A229AC70E24FBA8291DC3FB98096C4DFE283387AFC1A117DF44FE3626B2346BB813E598BF3F1C0C78E7B6E95D28BF26A54AEE56C5C21FEBADAA649722F65BBAC7B1A968203C861897EE5B5AC445769D2AF438AA07DA257451C9CE8EEB9F06F97C0160AEE4A81CEB3D44BAB4389121AB270F6B8E87E1EC4B9FB56BE5274C7C28B1006ADB613F769C14FD3D32AB1D8107A76AA38776B2306E7F2F173D2F53B684697657A40E7C2D576E2072EE67470B8416EA0C4A48D49DD793A99874F0791A5B95D6FE12960C13980D2B293AE6B0407270042FCD10594FD093B3E35C1DEB34023C2DD3939A44ED8D814F1833BC7643E0183893F6EE5CBDEF9F7266E0F3FEDFE0000200049444154CC1450728F4EB0AD38719E96952FF5BBECFFD0F75100CEECE50521FE08ABEE5AB7B613DF9C53951238DF6B379D1566854702E11C1AB9B05A7EE04A2C060E9AD1FB64197BD08CAAF47E39174FAE339C1874CF5D064EC686141573B8CDC5EAD6467C4CCF5B56E6FC7F6B237E5AD81B40127F0E4968418BE0D3FC5812F1072C090730ABA1C138E096399A5CBEC409C6E5BE39967CCFE95ADE01F0389C5EA18F00F4E9802EAA45F0AC208D225E7914F700FCC99B9F0EE24ECE12DBBDB54BFBD5A3B732A40FE6E45B16D68B6680E3BE91D46F629EE0FAD22810F7AFDDC06BF516DE70C7B7EB2D3C25DDC0B0B425F76F09C139BE802D32951C60CDA2561B239C43C8740A8F3917D0677DDE6EA0BFB5115F737AEF77009C0FFD767C62DFA5B302B616FD348383492C8051A0C9AC68D0AC912532108252D7D26BFDCBCE55A39092E03BBDD0FC2A6A9C3E1E7DA5A8AE7838F10700DF6A56F04CAB5288BA0140BB8147EA2DFC1018FD861D463C27CC13693A548668ADABB9DC28B118B044FE4474F99ED5A26FD0314F77F07C3FFEB35DE03F6C5622ED796BA3A1B88619A2391C71F91C801F702E9ECC2BCD829D1B912CB408D8323890D7B467B2801B2194C49F8E34B72BDAFDEDDE5A878E4964E4FAFA1A02C0094E9777553304E2E516D910649690B15A97551CAD852493D78828F41186F3446D277E40866870612801F47E6EA37FCCC248CD1DF5167E58DB896F3287EE4FC3D5D7A9753C511011F05769B14C8B054CE74CA456127F0B84DA4E7CA7B6133F7062FF3E80BBC028878F8C82A498D6D2D7E3EA0272BCD4EE572A7FBA3258CBA478978EE9E7E30802785AD01C5FA8B7F01827FEACFAFA8C41B805F1C212804450709D2F7E5FEA058E0B1E9DA2B613F78D9DEDA905D7D3F2F93534DCF3D4D8E987AC6F2F63B070F4B210DC92E85374014B6EA0838C37AC113ACB4214722E9EB4FC951C41490C16A10F9CBA4995C7C376E76700CC9DA0024E169ACE5E7411C0E307CD88F496862426EEFE5C516FE19B5B1B718B2C3B0180EB69697A5325160FCE70E209006F9138F6A0199DD7D2A689FCDB0D5C0774CB704EC4B51BB8546FA1B2F5EE80FB4716C19645794AB9375D3BF8B785DA4E7C87F451E558E5E7216A0C0B2D02D6C4BF5A1AE5D9C4FAD407F26725FDFF95384116FD3B1FF145FA0E74CEAC9FFAC8203AB244FE79FA925B7448A24F23908C7B234E9417019ABE9F767F3EB5B341967FDC2A1018D5572B0A38F721548D63DEE0569A80AEFB45D7E755C712E383AB4D58D6DEA1798544D660E5723D58D2054CD6312B0F430C3CE4545A5A1DF33AF938965A7B17960004B2855E1BD3F50B59B2AD622096BC541A7F0CC322C4B3185CD476E29B9DBDE8A2307BCFE476C7320492752A89C05182082886A8731AF011B7324DD10841A710DE3B684655723741EE2B4874C917835912297231D4882682ABEB31800F8BA003483A50C209F035EEDEA37403B35C608454AFB3179D91C4934C1FF2DED3C6875CC342DCB668F9498B60789CAA6BDFA5AF3D0B2302E66E222CF19EF24C1E8600AB4E7FE52514C4996951E0E3C2A639F2E56062A163C93990CE3A43EA94E678FA34137FC0B0C5AB3478E0E98A20FE9C143ECE1F4FE3BB3F2F6C6DC42D72F772D08CF82236E47E621E848A4620913E1273A07BECEEB70E9AD1AA0BAFF5D559D65303E940B9BABD0D0C74C0B8984E12B4A18E754B140BC4C471DF4BC245D338BCFC1792B7958EE9E5F6C8797408C751D5271CE8CC5E13FE706564907EBB81AEB619D3B8801C85E7006EF7D63ED9AF1E3DC6CE55AE9F45EC4DCAED2945BFA3D856621C2B693211DFE43456720081301730548E668D5C72FDFC6E504288A46544D1387E129C0368A5610BD93BF5165E985DED744B59E0C4AFDA4133C23F588BBB57BF80952289AD85AB8D4444C75194BA96981CC27ABEC77D006A9CC03CB8BFCE59FB97009CE7A267992E549CEC0E57017B3D4C735BA3A1F00420C1E7EB4F8BFE31E9622F3B1D28AE1ECBBC61187804BF0B2E0296F742FADC220235FF7FA1FA9FCB8A3442709E752B91289B3FB7B511FF6347A08CE8A801278B9A46583945F4607F8A19EB37446872E7B500DE0470A1B317AD8C2B569B15288E3B712CA91F2D571F743E9FDA9698048C00BC060007CDE8B24528B9F7DDABB7B0322E11D86E0C7CA902F809BA96A65BEA8C3AAA5A792E245C121695C4C179D0230B43007268FA65298BFEF5FDEA51E6F88D4227AD74FE2CA010E59FEC578F1E0B21FAE43BE104B7F0802E0D7B5EDBAF1EBDA1D5858E354EE069E7FE01BAEE1B5D97BA72D6B559D7FD34C3123B926359CB77D9B47DD5B51BE8D45D6C53AB9E8E0B38A457C795E08B0047FC254E7AA5C35E4A43E94B0270B161116072FCE6F59E69F3C6893F194A2EB4BC10E68846B02E0D079060391C9EC6A23F6E1CDA6587C7BA7A6C8B5BCB6A3074A7936684324B227051AC65D308C0F9D66E3A5894B6A5E99C49AED53C89139F3F33AA27A128441489D701DC02D070569ABDA287D82B313E682DB1B8BCD3B2FCB6B8E159BE5BCE054C2B2B4BBD17C60804182630F882AE71FE28FD38E5B898950907AA24FE8661117FFCDFC2766FED35EB9EECE749893FAD3EB37004BD08C41F30EA10F934E8012E4ADB3465746B622F025115B2F07C56290EB7A1DE42C5E956368840E50B6C69F8B194E8712325CB9089DF9B640CF0E77999E3D69D0C2235C3C876039F8C937FE10940EED0D9B2EAF459A166298BAC77F844503A7ED69146F0591C374D7CEBC4EB43BEC358189C5484447DB1C64E9E28BAD56C9A95EFA21047CB0E5A3868A2D7A25548A38559122B32F280E5FE8508BEAD8D18F5162A176F9E84C66A37F04EBB017333380B6C6DC477A53535FD8A405497C807E43419CC1F2077D02CAD66B5E38CE5809E0786B9E0969B963438F5B35BEE7884C1506FD9B1DB7D652C84083844EC9BC5EF9C0F6ED2ED39278EA5DE9F071AD795102A7A7544F74D9C28E95EE20E34B3FA01CC6B1C9428314F081F75434E6C653CD3F9D47098F8ABEDC477AC280B546778FC97CD1272F1251F8B3E3F6DF3AA6B897CC08D7EF8F5105F7959A18D2F0C688A15ED7E8EE526317E43515802505A6B5A8E7DF9394F3B66CCDF3B2E5E651727A1974A28D0F42DC7F5BB280D40DCB554F1AFC709F53D000FCB7A4C4B0F7051F4CA4A141FCE82F061B980488E1F611A0B49603DFB00EEC37D676975E3D7A65DB7349022BE4F3FB188F52E910F981878C4C5521EEF598E1D1A679691D13CC7566145C09AAB0E19EBD58AFC90C3225F9522C91227707DDDD37431F93F4B0B47948DC085BB3A8381BB9D168BB77CCD287B44FF41EA824221FEB4F3BC50127F25F2805B0CCECA05218DDB37AB05C4B9A849CAA4BAD65BA8502C5D917E48DFAA284454672F7AC9AA2F1701F35FA90FB8F820958A7A0B437AFDD6D8CCF2CEDB0DDC96C6259427899CC92298E73DEF6FA2B004208725022648C27082A21EA783D201F400DBBDB547C439895857F835E99751D1DB3CAB116F2E603C897A3F64B72E69F5E1E52A751D510F9885D147091B522F66D1D06EE091F454F980131A7C812022CAB720CD6221A9B7F0A2AB47F24E8960726E6992B4CE2F6052B7A211509DBDE88C8FAB1A72ADC4E2A1B613F7D998ADFA3871966EAB867A0B4F71DD41F7DCEDAD8DF82EA91890DE21A529C2375158113030EAEFCFF0F137159DAF9200B491C67DCD2A6A658E3A131DA1349D2156E607009EE4E56B750AADCBA4386DE260CDE71CD371B94E44C32240FAB79B43F95C37E86B00BE11F0D87DAEF7D36EE076BD85A7A6564986B4C58CA29870BDC5221052BE280DD2A8A508F52D911F2C972F128AE366AF6F4D7E5F338CB2D438E63DBE0A4D00127CFA66792DEE4E0FADEA7EA5DF3F054E8CDBDAAF1EBDE0CEBDBEF7D8734104218583A3F39010709A11CABC0D404E1B1128312D25E765865C60D2B803F5162AFFE67F15F7FFF0EFCE7E9EB25C675820CE6011E654B950F37B6CCC3E0FE0DD72DC2E17C81084FB039416B9964B9890FCB5FCB636E2E3CE5E74C63727B659F4919C9B9C8A851001FBDCBEE40167895A75563ABD224C5445C3766FADBB5F3D3ABB5F3D7A61BBB7768F883ACDD50A895E43DE13F95C741F65B085609A9571963AE48D6525FEA4DB0EEEE78AFD77C775A35034B41BF8EAACCAD288125FDFD576E2FE6FB69240F3EFD0756744326DBCEDCA0AF693E674AAE7AE0E506F61A5B6135FA8EDC45D2E5E078616FCEFF0F312CB01165A3171EF26BF373EA6F39ABFF81CA9E994BA6B2BED063E9EB4ACAC283401C817716B31CF6381273D343728CCC0EBA7152EC45BB23B7184E010E1E7F3D798C291EB01C9029188DD438870C3CF6096B27341D1FDFFE5857A0B6F88F321456A37C10D1132C267DC5C0900593E57FAE7D7E8B8DEC2378D7CA6F2BE25F12C3912FC1E13A7DEC780634569A61EE79AC4FAAC6E3D494C711C340784EADFFE7F2A417E3D6780370F9A51951BF96D6DC477E9D85AA84B2C3E88C920ADBF43375E59C1E37803AAA3E94FDCF56EBD85CFE7556E280A4D001287495BD4F3E40A3A7F7F2BC009213249BD970DFBD5A3212793DC09B4E8F78FC625BC6A3BF11DF7DF77FF41C4822FF2C7AC44C159387ECB402CFAF466E8BE9C443971384B9073778711970FF4ABEDC45D5EEFDA4E7CC771A71FD476E207D242741A75E5C433F5716D27EE4BC28AAEB934A61B96698111F7C421AD3AA5FAA174D2D2F6C93FAD4C9D380DC14133FAF780E14D26F76158AA2F2C37B636E2DED6468C1EFA2386578C301B9B93AE8D19177610540EA5AB3B07CEF3981B8102128092DBA72DEE9CD394C7224F8E8739178AF9A63BF5D8EEADBDC38E47E2FCB2E373EE3CE8E3A9EDC437DD8EEC1A0616D8C78C03B852DB896F06D44D25468A6AFDBB88E26122A2E89B90849E47976A886B35CBBA123A7BD12D22E0B636E26BA46E40449623F012CE3FDD3F6846E70F9A51D5598BAE6AE2A02C22D02CE084E941331A8A22000CB817F38CAFCBDEE93779D99250E5DC0F8B3B380F1097D411ADF7B5305D25E1B77CA8EDC417DA0DDCFE66BB1275F6A24A1595A1394DBCF3646315FA8D6B2E5E88D83C6846558A8853A4B15538025073E922F5BCACE813E3801600C9F92B82C7FAA2808C3EDCB1F4B9A7895B1F0E793F9DBDE8A23BBC8CC102BCEA825E57C4FD11582A01B314FD9E22ECD776E2077FF39F5656E50D450770E68437895100E0A019DD74D7AE0303828E5C941C34A3CB9C7022DF5CFC9ABCCF38D22316AF39EA0869B13D53894B5A5066D9E7DA7BDEDA88AF01A3E1E9248AB4F0313C4CF34D29EE5D6E74F6A25B5B1BF13FDD7AB712392E7A8FD679A90E328925387F56866D2B1A63A91004E0766FED92FB1F21F82C65FF1C9DFC7E08E0386BE8B1D3084B1753E3D686BE0F8A038C13E39B21DD9C344C6B6350E2049DBDE889CE5E74E6977FBA8FDF6BF4D5891218B5829B55FDEA2D3CF67EA34F2CA6AABBF622D72925E24472A28888E2F7F933FC58D315CC43AFD112FF900855E39EF16BE21D4CC508840C80A48EA2E3A25DE6F5E2A25FD9BFED066E4FA37E5950DB89AF6AC61FFC7C9E1B9A1253C5971893C15C6BC6E5EEF371B3B511F788E023373007CD68755A92837150483730969F3F43EC3811980FBA92F8CB08CB254F16B72F1473192E0C5C9AFF454D042DEFA55D9B1596C51D0CC56B3E6846FFAD3404D1ACE8F8FD591282B59DB82B433BC9BA4825ECAD8DF82EE97F6D6DC4773B7BD113749D8E651EBE3AB4C788C7C99EE575EBC0A954D0E2C1EA9CC4AE9D1757CD11BE55DEA75A6835AA6F117C00921A0011AC567DE75DCF12D383B3025E0586FD54FAF49AB38E09C11D1F0AFF5634DDD24270008174EE91343C30D274B296ABB068E7EEAAA088905CBE348E6C1A9C33565AAC57DD3512B705B1C9AD31A1592487EA25E6896520FE8081E8A4B317ADFCE0A1FEAFFDF6F37D933B624D94D3DEED928E5F672F5AB1AC66797A7ECE95FFE9D871ACCE5BC62CDA0E9E4DECA45F9679BC89B2CE7D56E9273A7FBC0CE2464AB715B3822B6F84D076F5FC80A7E3DC4032F49A17DC7BBD4C16BF9C289DB5AE6A89F9A0B3179DD9DA888F1D07B80AE8F313B7021F774CB8F1B6EAB3909F057CF3432108408DA093C4853BFFC067F8B15F3DCAECC55F729C2441586200CE75DBEEADDD064639B59C104B13C576F6A297005CE44AFB4CF7CFD4BF0CD1F1D3C688165BBA4436FCE7CFF4FFCFAFD5FBAA48D2D2999905F1E7267538A38E3EBB976CE6F864EEB1E6EDC97B6EA302605824ABB98E10E799C79B24AC1FEA5754A24486869B657F53797C81241D4087274572D21BDD3A68468FCF53F445042927FAE5FD59D7691111629C5744D476E29B345F0038A60D80B641543678993774FC7B662A24F75DFEAFA53C9E1B8C4DF96DA020042027182CBF7F8EB0984A88A3D2ED4B3A845EE653BED8CB19C4AE4313897B0F778DB42AC72F441FB1C4E47084D0650089F8D14A3B63317095C28C39AFFB0971C23982523FD110FB90FE20F7B777D9EDE0EF6A3EC4F24296FEE4FA8A9AE561EE950B80552EABEB41BD859579D50FD039C1F3D25B5D4430C94C83DC23B9EB573D8F15066454C8830EF00D9FCFBB417D38DCE2759E6FBB812E970C503E1407D81D27F9B83443AA347922442A5077E122E74E006EF7D6BAC028C78FFFFB1C408FBBD02FCAA02D0234F1EA984E9F252E92136E00C7EE779E3837526CEBF3032951442B60E9A264C1F0056E2D295D1AF87468E8384F0E0B71FB1CC7FE2E30E01C4B057E39196A9C3B56C7FB5A5DDD0E9EF404D5FB6DE6C4791CF07A08D72A43BEF4B83F31C755E8F276CD8A8B25CAF982A6B6C1DAD19362EC79818BE42C31BE3C2E31A4AF4DFDB2EACEBB00FE7B96AEB0DCC17603AFF158F37203A5BD7FED9BAE8BF8E6B4B19173A1732535A46B9AF746C35A53645DACF13C770290479870E7AAF850128393B8FBA8EDC4779C0812C080A3E10C100A3B78E7094D1CCFAF496EAD8F7027B805A349E79DBDE88CFB55480C2FC5B69223CCCE7B742DA4EC79C1F9A4EB2F2AC7D919260018B58AD5E0D3BD1BA3EC11AE228574EAEC454FF0343EA56E6D774FCFB85D7E4FA62511A78FC8B52C793DEDB92DCE87161CD657AB5CE44E462E8C001F2A77565C2CDE8707CDA821231E6C6DC42D76BFAAF9DA9B07C8B50F718C015D6D61DEF54C43BB81476655968BA12BD572AEB1000AEF13479071D96EF2E7B57CDB0D5C62C7B398132F31B5909E56EEA4EFDDD2259DD6F8273FA7804EB4A671B7E76E05BCDD5BBBB75F3D3A6B117DD3B4E2E4AE5F986E40090F2CD16B9677E41C405F14FE177B96FE6528615744AE1F812C9DF93569C969881E0AD32637797E1BC0656E956AA5CFDBEACD9AAC2DBD434D3C1A78DC05F073F516DE12FA80891186D5F6ACED749CC3240248168E69BD35886042968C59CA1D076D67E1AC71541D31B5EA138FCF632CB71BB85E6FE145FE7EC5BC7FB3B3175D2C45C17E30C269C8F847899C75CCD27D1703C9C1194744BE841468FDCFBF9149C1E7618A4F2D3D074C3A0E68AC710B6081EFD75D04903CA079CEB0E6369966EE042030CAD593D7B4FB9380BB1DC923BF6587E67E272742B08FC14EAC4AFF21EFC47207648CA3CE38C64179C359407E016E91E4FEE638DCC7DAAB0F82831762316A37709B74464276EADA049AA52DED8163E73FC7890DA9AF255D78F0B26579E310D61641608993277D4F59893F0EA39E9D7A0B531DF7B25F9577D2ABB7B0221CECCF6D3CFB38B845F9D642902741140A46385D83D30506F03480F7793A4E10D2F14133EA6D6DC4DF26F73B21DF1E808FEA2DD4A6F15E380798540278D9D65CD14E71F124E71C40773594573BB47190B62995FD395702508A0D2D9F7FD300E33E754BCBDF6CD0DE5BD677C6FD2F12ACC5C1122F871281F38613875CC040172AD911A6114A45E24A38A2EBE98366F43EF743A7A5F571E6C66987B69B25910A77E5614CDA99FA5023E8D20807792D63F3D4F24330EF310104732987E204938FC519D4AD4B1B29672074467B5F45FACE7C0825FCB4F64CD236E9A715189DAB43D45A1CD135E47B4FFE03B319D73E55107E7FD27C69DCF16F20AFF6B51BB8546FE12DA2655C996F03F872681973D301DCEEADDDE6FA643E27CF9655F038E5D60601DE79DCDF92F8F380E200A74501013245FFB8D3D98B56C424D2B3D25B51610C4BF15CE243E7898366F45B3FD2450F4E9F8B7E847603B735B1A5D427A13433D297A1BA758041B82F174A6948FF4F9B68DA8D11438C4FACB429652765384222313490F170A9BF34B1AF5636EFC3F670348F9EA2BF73CC7C8781F21365DE97F96685B6E850B9CA75EDF94B2317E784AD8DF8693AEEEC45156DDC4F1B9C5822E24F1B07D6775614B0B11CBC56C9B64E427430C3892E9FB3B99B2576FD1A9DF3EF93C60080AAD3C3EC523D43EB38E97BE17E284917D457A69CC7D2F2D708EF8366B4EAC4CCD8DA887B7C8CB5278CDA536FE12DE0A4EF5DDE5FE675E76DE0F5A4FF428880019DE8CB12F1210BCAB06FD9A1897A358E6DC8BBE1BA64748DBF0BB739782A4DCC5CB4C81F3E908EA9145F86EA92CD9B33485C14083D2F6D07CFC1EA9C889103CB53B91D964858949527E7311145A5899DC7856853120144C211554D8B8B3CEBF120EBE04B6FA93C4C136DA15FA971AE8BCCF1B3401B21AEB3EEDA741FC0C33CED24ED23BD3D29C277E7D7B84EDF9597E27FF90FBF8847394385F4EBF877A3CD7DF21B9EF6786622E0A13129C6F07D000F8FB36995EDE1BAC3849C45C123A2670DDAFC383702D0D2FBB394FDF35CD44B02301B7C84585682CB8943BF846145DC3E8063CB0847D33BD4C6C92C5407B2A2DDC06B5B1BF1DF0250152E01DE05F0BC8F70E2222C7EDDE53B37CB456D42D330AE38C54750CA0584D28B73D3B0220BE8591E3E8AC35AB8C6294B96993691B3BA5D386846EFCF9A9071DC8B87816171BCAC9F14850183F1F3ED66A5FF74AB32350994C5ED93E9E6F50D858274870F9AD12A89CED3C489724C5AE932D623488F53FBF688F806B2F9D0F46D82B3C2F5E31F905F4FEBFB1A57242DFB9CD4656459D31A5FDA26584B27E7E4B98980B9E8975FD3C48C7981C4BFECBC18ECCF824323A8A4F36EFEEF03B909A0498411E3A9C49FBCEE0EEF73B16F91883F00A8B7F086DB15B79CFECB56BD85CAD646FCBC919E87201A71F161B1F367A537438B0F5F0464D99388D2E46449796D6DC44FB3636C6DC449D40E4A3B8EA8CC0747605D758BAF59572E4214A2E520110F17D58470D3E89B6937D09F07F1E7F03070E28E4713C78BFEA1708F773A7B51E52B1BFDA9C9822DE26F6B233EE663AAE8C41F0090AEA4DBF89C777DDA0292F1795313F7292A0A99BFC7DA4E7C87B9AD223FADDE759336AC4CCCF81C8D11DF9C21F250EB3B01F177C1F5E357882347FD22C783540908ED3B96EE5EBD854A672FBAA5E547794D2ACE26B487D557BC22F542710039E4223FAE61810F8C9DDD45A0B5698951841A646CF7D6BAD2C72347C88E328B5A40D121274DE94A44DB2986884566490012272C8448E11853FC7A1D4E99997191864478BE7C2D11F218F5E84BE26F5265EE76031FD75BF8BC2C47131D4947B2520C2F390DB3DA088C4B54B0BE7C1A834840B7007C18E222641C686E3E80F1393DB304AD595CFD80FA4F7E07727E48239E42C78AF0D41024B1A1FCB5BAF13459B882397030BB7052189E9FAF9EE37E535A7BFFE8A13E3EF7592557AEAC2B6B4865C43716DC711740E2366AA61C408A21EB8E13AE912FF287E61A661C48E28F2BB096D0C1B9B13CFC9ABCAFB9EAB1883F6E84E32E1D6B5104282F6E7C92C6752CA2F36720997C8E354E8976CCCF35628F63460B7EF2ADF0080A56D97267CDF2097A3F2E9D6AC9163A79E6C50574AE229273F9FEC6D9C913F167BD73096EE97CD08C56F92276D08C12371CB324FE1C3778C8C1AFE6EC56E3A6B86FFF7D0CE6E28B79137FF45EB80E1AD54F1AF2B0FF0FF2ACC3385038C697686EA431C0A3F1F0843E82D6220843C6AE2BAFCA2536CE597F90CF5C8B23454EB835E26F8A4EC37B9A419556CE049B3B9560FCDC672797DCFDFB32CD9865D5344EA5E7DD2616D8ED06FA3325002996AFE54BCE720BC3AF4D5A8792F3170E295AB5C4ACC22AF75E0A21F65D6058F4AB4D26A19145ACC83145000BD353A5369238240BD20885692FFCF5616B4A2F41EABB97564F37295D97D769E1E6717EADB243C5AE19F00754368F1EE123CC53FA25B1D44DE306708E0F4F63702FF26EB717567DA95E1E0E610B18550161FF0FACCDB9155182DDBF4304932BBFCAEBC5CB95C47B3D8381D2B4501FF53137346F28751E698B2440E438F589083964542CC502F841BB81E76873A8111E56D96E0E1C3126A3638BC81D176E4C543B7BD18A9C7B65BFF2FF2CE5537A3937C958C0AC5CD39F6028D298035A3AB9219BBB08D858BC1396734EE2DF3B001EC709F7AF8CFA91024BCCEAF3D598C102B887814E500F830820439EE2A5F858730A4E28BA2898FB3BA4B16778870790BE330F11EF4C135C1C65D5691C71937BBE07B6430554E7C26A19D38056078FD8FE7EE8A4EE88B587EACCC047E495CC7F5C14CCB1B511F73A7BD10A17CB4FD6DAEC0859207DEA0BC0683426307F738C48A438B4433E5B695EA77EE04626404240DFEDEC454F5884F6ACC4E659C1DFABF0F306E0644C5ADF9E24C2356221ADDD9AB1A415754223F8B5BAB16FCA8A92A1629C7764A97DA5F5CD04DCBF77EA2DBCC0CA4FC4CED3284F6B8BBCEF5B2F66CE01E4E08BBAC659CAD99F1B27FEFA25F1970E9FE185E4DE86385FA6DDBB9BC057D93100607377FD3996BC4AE5F922C21439EE2F438F4F3C07CD6822E5774DBC43D7F3DA31FBCA2548B183B6C0A42D345CB4ECF25B710BDE0526F21C120969A2E569A0B6133F107538DEDA88135F959CA071BFE01D7DBD85B3C45595BB73E25CF1BEA505846212BB3A55DB0D0CCD65D37CFF327FB711A0B05F563B86C642C07B4B08029AAB1D11B2EAFEAB74CD9D9FE7C41FA99790AA85E3349DB7C6611188BFF6C007E888227F672F3A43EA16526F8D38D29A3A86E466599C39A52F5EE3E7C258F20E5DE3CEA0E5E685F7A7F27D0C6D9C38F1A71958C96B63CE6F5F72EB4E95D7DBE2BC4F3A1EEA2DBC40F574EF8DE276F7B48D9EC6311CA34CD38B844680B37172BB101C40C076FF9263E8B7244F37102E74F6A25B79E4BDAC488BD2C2EFF167AC77C6DCBF90427655EEF4653E92E0B3DCC014950BC876A08908228DB395156962C43CA171FF781DAC1D7F48BD4227C1592ED8A1EE6E80FCEA658D0FEA4BCE39118B5712A6AA3D8550616D160798131BC7953E56FB959131E05B987CE5B0B99A389C09671818151D0318318EA0BA695CA63C17FCBCC0EBE108964B10F385041F0FD2C9B5F61EACB1A2A17612B948ED73E2467AB8E143F51475BA5D6FE12939278610422CAFCCE3DB6D0CEEB36F24972829EEF9211FA7941F71B42D4E6D9EE3CF374ECB6B2AAA0000200049444154789DE4FD591B815C17E77D7EAC2DF89394C774B0009C0CE492F84B87C581D5DE490807D0297B9F715CBF2A60BB13D0883F5E96762DA0493345BB817B8CF85B3D684655ABBD9CB324E1E378F1DDF62C883FB7730730BC43F789187CF5D244575A5BA87F3C9CC4E7DA0DBC93B54D3E380302AFF3D6BC3892DAE44D910394EB894B1AD17F67D9716EC45FBB0132DC4B1C0CFFE3E7FA0F80C11858ED0F9A5E0B8CEC10C0C9B9EB7E1C556778C0B982D7E8DAD6467CFCD287E8D273943FD79FD338D44581200E2E61303F56D3B8EEFFE44707B77D62C076039F28EFE16178E05C750D594E7363145E678DD32421E681275D1967787D4389BF50D458D40FC6F91B22FE346EA9FC8594A5117F74AEE9C5A6715FB342E6ADCD49D63B9A090770BBB7766FBF7A74D62DD4EFEE578F5E70D7530B9F94BB533B09625D1A806484429077009C9BC4158B2482E89D6CF7D65E03F0EBBC3C5E07797D51E0FC9E3DF1BB17FBFD979EED67D27B01C277D679D5D70271263A4A3C55AD3E16F741C24A9FE6EC76DAB0B87F797390B445DE4750F3EBDC2DCEACFA288D23C58FB38C8394325FABB7F0863B7EA4DEC20F81C1B775D08CCE5399BE7A6A04E0BCB97F1AE7CB708D729F735F059758BD47B0DA9DD60734FEAFBE57C17FF64CBFF79BAD8135B5C6FDE365C97CB573C6ED1C71D1E3938C64E100F275FF47BAC01FFEDDD1B5DFEA8FBCBE27399785F47B5E65CA6B569933E10012F1E7B84A2F4867CF3C26B0D40304268BFB0BA65752221B78FFBB77708E73E7A48B98098BFB5B168197360EB67B6B8574E9E344C04FB41BE8AFF62B4833FED0AE4B8E8AB6B3CBAFC676D907CDE8B28B6BA9127F72372D9FD7F2943B57ED399A40ADFCF2466D27BE6371B1F82216CAB9F0419B98F9E2CEAF716E0B5D978601D3026FAB35FE4867526B8BE4B2642D9F117FF788F803808366745E238ED388A05970CC4320B9365CA752E06147F4546A3BF11D7265E2888A2151AEC575B5CAD40AAB9D849AABACF62BF8C3BF1BAD6C6DC4F856B3E21D03D63BD0BE2100386846FF222436B492FF885F47597FC761EC75F6A2CABF5E39B9EE1BCBBE3664456D27BE19A3DF97F9A5951998F705EB9E1CEB69E37D2604A0F3FFF77D859BF391BB3F4210D2757E3E0612114AC9FD1B0FD20D8CA5971742ACF389452967C517F583972F55077C0EA7E785DA2082C47F4C6DD6FC4F718849E03E90CED518475C91058A28F658DB9D1B65DFD7DA2B27F33442AADD00D7117DB43D707C3A3550E405772C237B24045B5EE25F992F5D932E60643A3200A03A701729798C857603895116D58B8C5024715A6FA162718639A408336B9D24B1A3D459DD2CF1EFA308849F1C53ED06FAB59DF8A6F4F1281E237DBC2700E0772FF61307E5DC68CADA5465441503FFAC495E9DBDA8F2731B27596944B6B601F0F577BD85A7F85A90C6FD0BE1CE71F7356464487E7F3B7BD119C995D6CA7075BF37C958E9EC451729DA8D66059C4688B2F65C604638DDDA4E7C53AAB0F9B8F2696D98950878A810CB85088047017C9AA7F14749F88561BBB7F6DC7EF5E83BEE3821F22C830C97EE93FDEAD16359CA513848894779C7C9AB5A8625396C08668AF640FFE631E9C6C38584F3EE6281A109FC0338DD192B5D2E1536D06E0C625BD2C4A3B925F1D58B4F72F2583EE3F4DEAA5C64328B45BBDD40D7BD977FB9B5119F0386276E595FAD6EA175D59E936934D733BCDFB81B90ACE5678155572BFE2FA5F3BDE33CEB9856A636EEC4F397EA2DBC95577DD260717D1DF7AFCA2C47A17D03F4EE2D572C69632B6DBC90AB1DE67AA6EBDE75325F49B5034BEC18B2E1F511A9F27D868E1B3230813062B1BE578B5B99F57B6A0BE39A9A883EC2CBB0CAF4B487A4473DEE3D43A98397CB28EFCD4A043C22DE05546ED1A7793BF6654AC3253C20E2CF1D8FBC2B498439C22C13F1070C73FFA447F9FDEAD18A8FD8935CC8821A7F7418EBFDB17663D48D4308F1E7F2A28F76C8496D9EDCA7803A749DB8E97D12A11886111F28D7A80D6F8B3C4716A5AD8DF86960B06BCFC33A3A2BB636E2EF3A0E414D236A2C311ACF23F47DB0854D555D20F11E718DB5499DEAF87B8DFED4C5E392CBEC08E5A1FAFA16694B04384EBDD3081ABAA6BD1B83189D19F147F530EAB2CAA39648E29E3F9F56467BD4BDD2D07CD16EE09E452828C445E24059FBEEB50D5D16C2298DD326C755DA7861BE24579EF9C1F07AA3E5618D99713653691C6A6B8362B589B94E4BD6481FF1C7CBD0AE6BF766C601F47091EEED578FCE8A74DE38B221288D3F2687C1A505909D0B277631800B2CBEB9BBBEAAB979E1E52C9AF367E0C491AB764F7000BDDC3D0D93709FC681C57DCA58BF4B00BE5577CADB6DA1C84DAE990487E978964E8EFF972FF7FBBFFCD37DEEF622D569F7A465BAF6F60054659C5F8D03E244850D111FB8C7DD694C5A270DDC99BEC59DB5B87D923BA5FD03F8406E742487C643C4795D6C58DCB12220EDDB92F5E68EE5E1A42721EF41CB4B03775DC29F0186B992B2AC344EABD2EE2E9B0B2C2264C8317C48BE9AF36A397E2C0E595EF3A936BE35C7DDCA3760CE29D2617A96507CBE764C6DABBDDD5BFBD8FD8F107F428FEB6185300CE290A420C9A3E4008E076904A239600EE1C2D5440827F771AE6EEEAEAF6220F657D5043442AFC8A1DF80A1C9CCE7E8F4BBECF849206CE726B9079C2B33CD854D2C50D7B2127F0EDF02F019AB7395F204808366F43E5F081CC76166C45F6D274E88BFDA4E4C8E5C937728DF412847C242BB812E7B772B5B1BF1359AD4AD78A5AE4E0DCE21740B4B123584E54F6324B3CE645B77A9F307603AD53ECEA8841C13DA39DC7710C845FA208D08D1AECF9BF893F592DFB1F3E967724B39BED1AE006E8E917382C5EDD1C6AA72AD0AE098C616BFFF8D7665887BCD362F99C5B49CF8AB0F24009A2BAC2A80EF857C6335114290AFF916B7D237762720FEBADA78E3EE60E43DDF3B23705F8C590259A4B5636A04E07EF5E8F3EE7F48842715FAF9759E6E92B2990E008092033809341DBCACBA789DBDE825E7033019C40070E3CA21F6AB473FACEDC43743FC0E7202B4A844A0E3D2DCE1FEF224C1A4B9AEB026393651F5B4343E11421E90132580CBB2FCD03AD5071130CCC5985F93C4EEB4E0168EFE41334AC49AB4530FE1088CB35010012C08964BDCD79A45086D6DC42DD627495C627A4F82BBD0ADB750CB5ABF3A0B67D56EA04F0ECD3B7BD119C99DD2B894F21DCB77686D607C9C2CD1CF4F6AC49D7C7EDE049F84AC2B1D33B1EFAA8FA3E6B8E42B9DBDA8F2B3EF56384750FDE642DA6FA459957356BD85CA17EE57B8252D8DDFEAB8FDDC66A26ACD1D8CC34FB2F4721C259B1BE66396548BCC79491B677C2C4E32E7D4857B1A1FC7D14734734B5FF70D8E7036F3C05C42C1718ED294C27A25A25FB200CA21CF53074B74EF13D95AE08E3999436EFABFA8B996A1F416277092B64D0BEEA37EFC8F1E1A54DFC72D0B996818C76945BBAE4C66F7C6AEBCA7FC7603FDCF2AFD11E30F6DE1A77391CF8ABC27275CCBC54C8ECD19026D145D9B9205482ED07970FC3834E2D65980AEB28DC331170FD1F141336AF067E482C0D27F22C74C28F818AAB750E9EC452F515D79583EB939B0385C92EB22C789BB3E326E7DC4A0EF7D58DC14CB7D869450E409DE2ED7CE8460A36B32DC217F5E9CEFBBFA728260E41DFBFAC4F73DB51B788EF4FD480543CB736B23BE16B2390A00050418EA7F4D0CAED5833637B59DF82A6DE4DCF9C898E4F5B438A61A81EED2649E53E558A77F72F5B3B511B7585923F449672FBAE5DAF44046B9C913532500D3167322048561C1D8DC1DED03778E780BE726645120F5007D04A105679AFF383BEF0338E6EF5FB10C37A363141D9DBD68E5BF78A69FEAFA8520FD7F59BB53375974E8BA4CEBCE8363D28682CABA78B332325F682295006E2617FD5C23F1CFB48D3FC462DC7522DEEAD6C6A8CF3DED58CB671208CEDE90AA00B9AC10F597DC40E20E74690CB1052DB38116ABD759E0C427226DA0A5435B6B13C217546D2C58DC61BAE75BB4358E232F57BCBB2ECF8BBBCF9821532089BA411C33DEC62C8B3B7751F40F7EAF32F28C248C35029CA717FDFC49BD85EFB41B49083D8A3A734C5C4A4798AD1E34A3CB5A7EE3A2B317BDC4DFA34F0796D5B7CB9F27B168672FAA1C34A3475D9A8E24C0083E0EA0BC9F654E6D3BF749327FE65287D45A1A4042B35459BAABEEFA90CE3C939EE5BA5999692C6046D8F5A4DFB73C383ACC0288CBCB0BC9292A228441CE27007E424BE78BCDEB03DF9975F6A221639F10772F458EFBCBF17F6FF6FBBFF8CC893141E844692D98BEB4D31673B507FA60CF87D4859F7BF21B1153596D9E46DB28328BB836C2D9B4446A5A9FB7035D89580BB2D3AB4C44EBD6C2A71140567DF31C1F940F730DE215DB6A842B6F87964EE669B52BAD7DBEFA90F23CB5C38A4A346DB0FEECE22426FA90C1916C97F3FF76D11DABEB1AE718F37C7CE3A03DEABA64C4088447C5916351FE8FDB1F741C626026AF3162E918C3EBFFD5CE5EF492555FCA4F5CFBA83E86DA4408ACE8421C64D045E9699C5A56E19362662260C1055C71FFB936882B47CE83F8FBD54AE5ABB32C2F6F706B6C18C41FDDCFAAB349EF6373771D9BBBEBF4DC4A6D27BEE03300599450707C12FB373EABE0A019818C09E487DB79B8AF72EF4208A169137CAE1E495CD77A0B2F58BB68965E25FE2C8E832F8DBBF7FD9C0897210388F71BFDF8A0199D770E55935DBF9B90BF46E56B8BA8C58172F7835C89F07C1807F41842AF52A657DAA52EB6D2D828A40FDB2C0E29E32E7788F3C7893FD24DB4C6A3EB93FB5A5D2567CADA34F03162D55F1B3F69F972E2CF9D0FE951BA6B53E70A52DD5C7D56A84F39C7576B3723FE1E380390647EE1F912D2DE3DEBE7B3FC1A5743E0E9482C6C71CA26FD5EE9798D38F2CD170E44380FA94410F127EBE9DB6C10F197177793D7FBA019C1C5AE56D338FF8E2B343F01387663636A2EBFA64E00FAF4C7F256E4171FB01556676AF8957EFF9BB32E731AD07433F971A8E89740CAEDB59DB8BF5F3DAADCB872784CEF7E7377FD7D9F7FC89C7543A706B6D0242C7A69F945A8DD4F14B8471672ED5C8AC4B4FF69C02A5BD6D59AA07D6DF311307526BE9CA47DF5131DA10700F074AB1291C35D25F937787969136E5E9C359E1FB55F6BB34C5BDB89AFCA3A70E315ABDFDA0D7CC2CFEB2ECC9A3BAED576E23BD46F5C315FCB5B1B0F21E2326D5C71C2D222C059F95D7E5DBE33464C5EA73C38F1C7708D1DF7908FF78911F0FEA23A93C187F876BA69E3AAB3179DF95ABD9F10B059376569D7481D83DFE73ADB79117C124ED74D5DB3354E386F1F11563E868F3666B5CD09DD9B06C14563D5D26F241C34A3AA6BD319D2059ED63C3F5511B05BB44D3F6796886FBBB7F6DA7EF5E80DED190DE4438CFB482A45BFE34313B58EEB8B8FD8F042ECD2C3C0A3F919CB4D90150DA488903B4A5AC8FFE1CD4AFBCFF42AF5903C7C1C2687C42716DD9F05379023844399226E0A8A56C0F31CA79DEE1DDCEDB838CC7CC72DC5585A7900DEAD3B4BD869F6B3B3164F2CC27DA2520FF7918FB91E9C48919713D20659B61457691CBAB4BCDBC2D75B283753232C2711353A1DE42F41708868638029F98B35C48E89CF479FC8D7429A7F5B6D6C04BCFB211506ED7B94BA8A93BC8F7603D7EB2DBCE82B8FC39A336833B0B511578943A9F9FFB3F234EA96FBF7CEF3243F9E565A6A83FBA6AF1D34A3CBE3F67308A6CA01749CA4A7E858FE5B6E45F6AB476F6CF7D682FD5731E5DE84F82B7DFF8D07A98BC739B53CA24B2847CE117F773677D751DB89FB4E045CDDDC5DAF4AE31F7A266FB740D342DB1903484E845344C69FE955EA1A174CE384699C3691B62AEF8967EEB573B6000EDD755A1C2B591FD696C4A58D336068710E18CBE35296498F738648CF4F7232B86F33F92E189E9F26679570D08CCE73AE9F8F30F57171981B912A1477416EAC486B54E2880CBD232EF293CE80B32E421AF147F9C83A4A0E8DE406A671A37DE8EC451789D8E2CF3995A1A9050B3038E055C7651B72301EDA9E8366F457E43321CFA610436F511A9E6E6B233EE6841F976848CE6548DD59792FF2738DF3C7AF69ED745CF0EED6463CC4A5E6F5E16348FB8EAC7CB3B425043C4FF2E3099C187EF17EE66A16527F51D63B0FE446006EF7D69E63C76605B545DF88F610A4884996BF5CE7AF08C61FBF5AA9987DE0BB376F68A1D7E8D811835D992E00E76F5C390490F8FEABC0236E29BAB8975067968B00B0B511DFE5E79A28AEDD40BFB6133FF8FD47FA9069B532B4C55C1EBB09E22C80563E2D1BCD9F5BD8874EA8F516CEB699188EDD4BBCFB3B7147438A46DCF399C2746D6DC43D6EB1EAEADDE78B17D7C191448D46184E6341900BAD56BE326E8616594E9471628D14C825B15417A259D6BEB374CEDBCDAD92E50294C6B1F3419613CA3DD6CA0D45DB5983D2BB773A565DC74DBB3B4E9E0165F23ED9E2638D447CBE6FC8C20F1EEABF038C8638F311CE328D555FB709BBCBBD17701735BC3C7E5C1FD3DD109048EF461C1B1B1178EE535D81611738622E5C119B1CAF87826971F82564D9342F91DEA5DC90D23BE1EF2E6F4EE0CCAC801DE130B4E8E7C9D91122C61629CD1609BF5AA9F47FA5DF2F24370BD043BF4D6A89EBFCFF9D0780CDDD75DCB87298188100A322DFA28B7B25B828028CB0C99287F68C9CD435D10E3B1EB2E4CB1B8E4B94B8B3F085ABF24D50CA0EDE0C3BA5E5D10EB0B6B52CED2C4E924CC3EB392DE28FDA2E1739ED3D5BCFCB6B744C22245FFEBEB125C37DB59D18B72D42F759F5C8C8B1D57C583EAC114459DF857C8EF57BB2D1709C38B2C2CD8D69D06EE076BD85A7B46FA2DD180EF736CE18E375B5DAC9EA92C9525A8E0BDE4779131F541E8540A46B569C697E8DC6B73517F173ABDDD6B559C0F71DFADE8D52FFDB751142310B66A10338A2C89FA77E17273008F3E6FE2D2A34572CC03091E6F1E9D805F03D8B734B0BF3E6EEBA69D8B148849F044D64B4E886101C04171BF87B00CEC967296FF94C1AB134615B68D137CBDDDA88EF1E34A3F3C624D60BE50AF005518B356A81DCB9487F596E3178BEEE7C9AF17A53793E422F8490CD0B698B77DA73F4AC1C67B4A0FAE2A1F263A98FE642929DD19ED5CE43EA1B42CC5AED0A29C397B7D23FD730B0BCEE1D34A3AA1B775B5B1BF1DF912E82C628F7B97A0BDFD1EAA3A5CFF2EEAFFFA5FE1FFFF871E547B636E28420E37968E56425A66B3B71F7EA7B95EA5FBC59192296A73CDF24BA91FC7A0871678D4DEB197E3DCF36E405DF3B9D469D6741007E6FBF7AF479DF629F35B49884E534B1C4F8B0C2F4C96BBE77B6DD5B7BEEC695C3FF0B27EFE6DAE6EEFA65FE5C9AFF3F71FF36E99416093479BFDFE8C7112AB98CBDB41DE1AC089434025623567D1C40DFAE378DFB058CBAF3E0E0C4237108D208F18CF57FADCEAC66B34272DAA8CEB22E741C920F7F96FBE9935C26A39F55CBD7B48D474053A99E0977228433A5B57392319E36B618419818A58D5B962877C8F8454B9365DC49908B100CE6D59E0CA316FA2D79EADFD7882F7E7F9C7C7D65490EA3D16FF7A1482214AE7561387DB20E80DD97691BD66960EA462060B1FC34FF6E32245C16B810305D38279069A6E0F384A6F757245DC0EDDEDA3D2D728B660042F7D2DED97EF5E83B3C063080CB4C0770680C5804A528AF70C41FC7573606E27DCBCF1387A657433FE06457CC27063E19A44C9413A1CDF4CDD2267B1FC721A01C5A8047F2E1E7ED61FDB7AA26AE932E7788F81345FE92AC6396FE9B84F8034E74442D67B7F47EE99D5B7DC0C70A1F07E47B929527EB9F706FDDFD1E4BAB86FDD2CA0A05174DC96743F29A74E1B3BE917663A01B4A512E9C2ED96A1EDF527BA08E3112B691FEE99DD07B1AB74CC6B1EDF17E9284E538DFA3CB7FA4FEFC3C0FA284ACB03937538E7BEA2F173AED21DE2E22FAA4D4407E3FBEB96596D0FACD37AF8AEFBF2FFE6FE751A7A97100AD38B22162E12CE0AE5F30200273D9C59D46585CDA00F1AF29C6AFEDC45DE7DC3259B4B508228BE6FA454308C70C182CB69A92B3C6A909E55CE509ADDC3CEAA13DBFB511E35BCD0AAAEE710FE76FE859B7407DAFDEC2E7DDFDEE4133AACA7ED388004FDF068BAEB38213BBD265C5B89C209EAF6BCB7300DEDDDA885B9DBDE8A2EC6FA66B75DCD98BCEF03A69516BB47A148193E2431AD7D2F71EA651175E368D515EAF71B86994AFDC08F9A403A1E564E4F67F529F20E42070B23EA4CD35DA9C697DDBDAB549BEB169206DAD18F7FD65C5CC7400A710F6ED2A06BE9DCE93D233117F3C044C915104A390EDDEDA57F7AB47DF64E7A6B8975F0BCC3B79D744A8B32820431B0059DEA2107F72B71A12524C4B6F115C699CBE29138223865B3EA4D5A5CD94FCD3C41D14FAAAB6133FF8DF5B95D55F680C924B4B7F29EA9579F27C27118B4D0AEEFF4BBED3AC8480B558CA36FBC6571AE6BD4066455B51860FD888014C0C3E0D42B03D70BCFD13806A709384FD1A235FAF989FD28C23FE65F523223961ACE44988D09A203978B28FF8C64ECB479B778A2A06D69046741BCF909EF63B75E7B3741CE446009295AFCF8880A7CF6B8127CE409145BFF326F24210E87AE597B238E8A67C356EEFBCFCFCBDF228FA6F7E9ADF2450DB89AF92B3CE9FFBC5B8FFCBB7275F70E54E3E74326B0B4BCD496171EC68C2B6265441B80E397DE5696801F4EDFEB918D3117C43B17C2571A7115763363F579042BD4FB17D9C85DBF70E284FE708F902E73EF1455DE324F1FA2C1A7C9C6A3A97EF611262CC570FB6A1B9C0FCD58E707DA98E2179CA6B1AF1340EE1477D4496BFDC054CDA379F05FC1BB6362FBEE7D336509A146592FACE03B3DAAC4E850398464CE44DFC118A4A041619CEE1F64F8211EFEE7A5F726EE95E8AE147E2328471FFAE6EEEAE5F0E31FC5804EE9F264ED076A0E3E66FE53D2EC7282BB44953732BE2AB7B5AFE74AC714D69D179E607C02FDF1EE50E58FDAC11CDBE3E4CAB675EE09BD434F15C5EC49F4FEC4965F1B44513914D02EB7BC922721BB3DCD7EA2DBCE17BC714DD41133D67D9C0596DD3DE21BBAFE62FEBCBD755B7E94AD42BB4F4A16011BB12432ECB1D4E9A842064BCFA36D045046BF347F5166AD6779C675BF274047D4923FC34A381491DFDBA1D2D3677D7873E2272525C221CFBD5A3DA7EF5684523BA34A310EDBEC8EFACFB4F884612C75BE343890232B5F7F8CAA3838F88FE43D11EE85701D0958CFFC98F0EE273F200ED00BE67E5976628E2C4A5E624566FE5A388AD414E3AAE3D1F02C00F57EC6E1B87EB29170022523A7B51E5F77EECA49FDACEA1B46C33F5032FDB27F29D66BF69A0458E3CFC53FDF83FAF5F16C8366A1B049E96C772A53994F7CB2475290A9C2838781C92E3E349366C84BAC74888FAF4A0195D064E3603620C7889BF76037D7A6FE4AC598E7596E7962CDBCA9F9EAFEDC477DA8D13C7E26CCC56B736E2966F7C8580714093E82B647CA48DE39073ADFD5AFBE4B576CE5193F2007B4F892B3539A7E55DE64C74002504A7E9DE7EF5E8EC766FADBB5F3D0ADAFDD476E2079BBBEBAB2EBAC431068E2A879EDDEEADBDB35F3D1A5B367E5AA18969C731D8B162FCD27D831B787DBF7A34222ECC8A571E45E7CD4FA1FA232411F024A26021DA191149D2F1B813651AA6BD40A7714B645D0C318ED771B0C651B40C23B87EAF555F5E97A2ECFAB95B96D06726AD7368BB43387F45E8C37120DBC4EF59A2E09C38801FD79D51525A5D48FF90AF5B22ED2500FF6B5D185968DC5CDEAE49B974BEF98B8C8BB2E649707AFB97E15CD870DD7D8BBB15F23D2BE376AA8EF1F386364666F5DDE5EA0646731FC2F001301A03D8117F7D8DF8B308C8CDDD75EEF3EF8CA6BB51127F9341126EE38866E57850C2CA49227162E20F002CE2CFDDABF07F203B3790C4294EFFEF3CEDBA7D3BD5B40F3A94BB372DA252AB8B55072D76A7C2711B7185C1FB883BCC266E06711C6A3BF1035E768865BF5C24E649B838F75437E99C87D602746E5B1E9CC92C8B7E08E76F11893F82F63DD2757ECEF5DC26FDAE38F127CB57F23E269D4C6DD1AFB7F09646FCC971122049F0B649720E39279E139BC020A6B26C171FE716C8DD0B9CF36D0CFBEC3D030C8B792DAE9735BF2AE37661883F092ECD98F63C0FE44C00F2859D5F730BFF939685A76624C261F9A5DBDC5D4F233A4B8C892CE27A99C6E7DBB188A1DFC6E104D65B58F9ED66E5AF1231C445912CD90774A07DCCE4874DDBE16A225F2B9F49D16EE011EB1E5B10129F71BE1066CA24DD698BE0ECE2BE26AACCE4CAC9B748CC095F00D000860D2CA4A81AC897CBC6C648B7DDC0ED592D2245824624F9085B6765AAA6CB03FCDBE6C41500B25CEFA695AB113A5A8C5E592E2BBF93563F562F421223996228B71BE86F6DC4D7C406F0C7F9432C16B7F4DD79878E29CF34622F6D43E2EBB7B6889D5D6468EDC863431882DC45C024D275C7666831965EF5FF661106B59DB8BBB9BB3EE29A62DE44C4A2C3E7B2C788099CBC679E8716E185A0E4B11006202452B0C4399372E5DCF3435126A41876D622821431F0477061EB0859454F96AECEAC45207983A2127DAB59C133AD8AFACE34A277E615C5E28A784390A6C6506F81E2C6AB2A4479D581CA72C4931AB523E4793A4FDBEC8CF33E99CBA52EF583AC3BA5257F7C8A753EAF4BE26F122242972FE6B235A7BAE3A178E498A2CFCE7943AACFB86B13B97BB130352BE02C8480F69C453CDEB87298F86DE271654BE4031FC72F8B8FBE595982CF121A01F8470FF5F1B9CF2AD8DA889F3E6846EF5BCF2A22526F782A2BFDAC176CC61DB80BE0BCCF6FA1278F2187B16241195A14B310BA2E4D0F40B528840C5F08655F599B87995772C961F5B584E6E72EEF7A00A3EF980C83F2DA34E5514F2288A50EAEA573C808C06B00BE8201114D3ABB7D6094300C25FCB4BAC9775A7E37F920771D402DBC9795CE4AC3394F8A38B1BAB9BB0E7228AC891F4B517076086EDCA3168126AD74B5FEA77456F8B84524FE007D27FEB9CF064D5188BF8FF889A5BFD2435FD5C3D2D2CF5AD4C9CB3C6846E7E5A2C5EBECAB8FD465AA0FF4FE8EDD22A23A9A0E1181B8342B45590CE462C745BE52AF679A22FD1203F8361192A01122CBDCEBC17F008E7D226A4D7CA9113D9C0B67E83B06B549EAF46A1C6AE9AA89C2AE3A0F0F5549DC69E7CE0844D651FD1E7CEA0B45F9DE9701B91080DBBDB577E8387471E706012E8F117123271688B0D8DC5DC78D2B877016C0DED8B125C2A0705B3FA57B1AC1B65F3D5AD1C4B7EEDAFD10BDCC4525D2B51D299F8899EE8D698842D8DA88931068A44CCD2744AEC763111079238DB05326E55FB2D2A694F121D78DCB9A471150DB892FB8FF07FCBAE654D912E72D5A9B170569DF89206856A72102F66C62560541289F1BA98B228A1D8A7F6DE891A5B6C971FDCE68B189E55CE0366E237DAA70F68E5DDE5D22145DBA91E85C2EAFFBB25C09234900002000494441549D59F4FD4A8C8F3C2381687A62234E8481513D33ED9E4C47F959E59784DFF8487B073C9D2F849BCC2FED9D1455E72F14962E97B1A027AA0B0ADEADB7F08226FED50884694C866DE7C2A2DDC0A57A0B6FF17B3C8C192F5F9BA8DB812E187CFA3E56DE4504E9FC01C33A4E96E80A2817B36940882CEFC3E98B2984D3DD8366745E46B800D2DD0D65AD0F952FAF71D733BE32353D609E07611C3736DC1933E5F1F71F8FF13FFD233DB6B0D61657FFA1082759A0493524C77CD1E68345436E22601F0160709182C2C385180848D73293B6E5B4417B4F3E3D4DFE9CF5CE3442315417B448901C1C3A764ADD667A055560E04B8B2EB809AD0760939D8F94E51317E50957D65B520CA3F9FE12754C9CAAFA883F9F58C73D3BA2FF93B50DB3867343C5B91C23EFC76A775A7F940807E722C3C59BD6364F44FC39EE1971AA48672D2FE2AF2BB97FBC1E5CCFCE57A6ACBF50C948C4B0E3107F1858E626BA7AF5162AD76AE8C9BA7AB88B34DEC722FE781EFC5C129D25A68BA9F801D4DCC1A44581B0FCCD497F7124FA25DCB872784DE699679B4E0B24112DDF9DE5D0597BD657C6746A9F3FDACE7582269E249728522F868BF5E89A9CE43827CDA55F0150B5C4BB16772CCFB63AF4DC2FD5E044E14806F9DD923A715B1BF1882B0B4D045E3490B89E22BF843C23C7911C2BE582970F348EAB047DB707CD6895A7ADEDC40F343DB5ACB044AF9A0E9FB609B0D406281A07E3588E35662CDFB93C2EB72581F08DD37603B7B3D4836F1CAD32F8B79225EF1261C8DD0F2060BBF7A09FCF0084A797C4E08D2B873DD201246CEEAE5F36F258183F40F3C2766FED9EE59E4783E60AC6FDF725E790FA5FDB0C4C135AA8B7AC8E9E81131D3E4354D9E37EF1E89ED4D393CF4B6C6DC4BD7603FD18FD8418B026DC697301EB2DD468E1220E865C0C345D477E5F1EFBD06EC00C91A61C7F3276C372466D27BEEA5C663C90DC3EA9C7C9A1E953F1FBE502971D9CE0D088063A5708AF63B7F93826913DE3688DE8A94D58C791314DFFE4CBEFD387067A58B59DF866EB62BFCB370B227D636B230617DBA681F454D9799F6F5C2CCBDCB4B668A8B7F054685E2EFD592D4FDFB7506E94F245DE1CC0EB802E02E4FF92EBC7EFB3BC469EDBDC5DAF3AE2AF27CB50884F191AAE70B1FFE68DFDEAD1D9503D3DADAFF745DC5FF18E87FA7F56DC3F19E96392906F80ED070BCCF58846F8D17579CC45C0E4FEE4E9562502FCDCAF7188AC0950D5CAE00B8EA6A7E3D093CF85C2E5F3B672FD3125F9BCF015F7BF2ADD6690A8DC22EEB485AD5CD0C6072738441FDFE7E9F818756E8756DD58AE1E34A3DC45C0A28EE6BB0706DFD4CFDCA844CE354CA371B3A272E1B8E8D772C564A009E8864A4E57358971AE11CDBE8D0B9FF3DA633A5E961B4D3EA7941BA5E9636202505800BF28EE8D70862CA2CF721722090737E156B77B6BFDDA4EFCE0C695C3967C4EE6EDAE2F6C789859C0C709F4B9EBD1B8BD32DD3C45BF93107F043E4951140C1EE3D59A840DA2ED43B61899CF68E2645E9FC95AE4876FD2E59C4FADFD96F84BE6C723A888505C5F2E9AC8C785767B000CC4649AE88D6F027CE3C2B74928311918C164CEF5B4E97271A757683C3BAED8C4E2DFB4BA71708E3F117534B65838C49EE4C0A76D109D28BBEB5CDB9023E6C4B08B73FDEA2D7C87D787FEDB2C7A886F8CB267C6B2A26E0F8CC6D479CE7D4B9FC8F695C80F131380FB9E98BB9A418114076B84834C7FE3CAE1B5FDEA51E5C695C3639E6673777D7573773DD1A9D2CA2E118EACC45B51FA3854C49B4514AC4C383D12F1F138997287CF2733EDDA4133BA4C040E39A1BDD5E8DFE7E97C22E0694E84ED4108B121FD34591F2D9241A8D236278E5C34811E5FFC789E9C8862BFB988823B7BD14BC41DE25C3FE9EE45BE7BA9F3C8F32CEA82D66EE0FABCEB302E7C6A12B2BF99EAC177E91C8358B5B94253E1E0E7823B090CD44B00E72A666B23E6F18213230DD259E4F9325F86AB9DBD6885F4FCDC987D29250A87D479AEC939C7D20F9C642C73625D532BA9B7F098452096981C53890422E1B3E0D58C3EF839592CD1CEDBE900B600343677D77B52D458623284E8EA31A27D28EC1FBF6FE9814EA7D6D3079BE4121713802A86791BC097AD7C787AC7854835F2D016B3694C886DE6C225CBA42E27EED0BA5144042D3F9ECF3C38824ED7EF25769EE84C49D7175A5D7DE2B4A22E66B2CD8B06F91E7C69653AFA16A75927794DD691D7C1117F004E7405E95B61114CD4681B8E10A48DDAD300DE0770ECDCBE24E1DEACBA5AF503D20DC4AC36FB10FAAE4AE48F5C750009A40B48C8C24552D27E8881C97A17001980343A7B51A524FEA607DF3B6396D9672DCEAD26D29F5E6DA70FB60B7D58EAFE89742FAA1938086E5A305120098A69709038F11722F6C97A4FC1318982A58359DEC669B5D707C731E96A0AF39DBDE816E77C689C10CEB5D088C1A2A0CD0C2988F82B2A773214D606CAD25F9B26775D2BD352EB10C4DF31B97AE1E9344295BB2172A8B2EBB7003C4D1C6C8DF8D3BE339F0A0A7FC627ADF0C12AC7A77EB2E8E3B288980A012875014320C28BDD2382AFB3173D417A7FEE5C0EF61239411AD3F8FC2E521A794D71E1B350C6379A32339FACB8F8974F7859B9552C14DAC8C44B697C0BD3B43880ECD8EB06666B233E1EB70ED41EAE749F660D2C1682DC2DFC49C78F74A79C956FB258CA39C75A1C438889222D64756748E10B8556A4FAFA60A95E6863997F7B64292B2DFBF30417E16A756E37F089549100A05AFCBAEFAFD7D9FBFFDB3B9B5047B22CBF1F855EBFCC5A75625CE5A255F4227351B56C226B94331ABA6B350586140D55D060F0C2CB9E5C69D3B33098A1308CA17BA355BA37DE190C8D33F1A00243F5C254356826559D412FBCC806676237AD76B96A3C64AF32DFF353C80BDDA3777474CE8D90149242D2FF070F49F1756FC48B88FBBFE7E3DEA4F1657BD985A7DBC8D8587D9EA5DDB35A97B1CC87F3B82A784EBFE1E3CAF3CEDAF46D796DAC7702A88EAD08C07590D6BC5F347FF706BB7C39EE0AA26FBB88A177AE9C8CDFC2797DADF1010F30F9A6C92F2E2BBE855D2F448B2F45D9932D23024526E2526F98B7297AE9551D1397AA611962E7C10DD49AE5CCAF9B1C8B2D1D2D2684788D0B11FD8F75CB66F4F018743D30EED320FC9AAD15C759F3E237F5FA3A59015BBDFC39D12CB6B3D5CBCD218CEA545F8D120F4B4938D67722A27FF7DF1BF3FF871048DE4C3D9590C6E7AD7E336CB3600D53EDDE6FC590351322A23F1935A4D05BE9FF94CD66FFD102AC30A18DEBA6D72BE17D96C61343DE34EEAF09896948B52BBACEF7E1A1B29318C04D112FE209CD5ED04B331380ED52767AB77DB3E9B02F4CA6A634E397D084A6D4A4C6922BA64CFC11AF97313AD6344EEBC6DE5481283B3675DD429DF8FB2A65C8ED5BBDFC2224852C583AACE37BD780E3F2641C9B8CD513535F2DC5407170BC127C93A2F961ADBAD44DE095415A998AE239EB7A7E96654A0B08A2F930304DA285E7F13911DDE6E7B9CA29E1BCBAC6D607ABE43CEC40BB68ABBCFE96FB371672A1D779EF80B296C258877755AF0A589DDA0BC04DE61A047182B5EF2C7C8F26EA10AD27FE7E34F9EEFD5F347FF769F196F5C06A3488AEC7FF1301D893C13069CA9794DC3EF6120DAEA666103BBF25A277BD97DD2E5F7ED96C00E8B3320D01B36ADDB2363D4B9D01632DF7372FF7AE4F18BAE36F88E817E37E7287051E278F5139ABCE25CD3227E773F986639B42C013A58768A9F03A239EEBBDC0AAB31782C5BE59245C38E9C8FA5FA94EC06585D3C28DD330A8BC58F635058B5F0C4BC46E7A6F591D5BEFBA452CF0D1FA8965F379C5AD67C62AA7C8D208AAA5F60210EC0E6BBAB7A2399B0F3DBB9788286BD38FD311FD3C7C37AD1E2159E15C066A13AD9FA02033F8C4319FA5237ACFB2606CF345284559AC4108F55E10BE5594278F4D41187B8D8A38C6B4DBC9DF0F56BFE744F40E4F6E2F049C9B1D6958FC881CAB5FA8C76B76915BE23426522D115017D8FA55261BBB8E38C263AD6C601689BB08372AF3CEE876F2CB713FB9619D4F0542D0B4DAF177AF3CEF3E8F590563CF8C2EAFA84C502DB5890104BBE54793EFFE442FB306DEE6E572FD2AD3C71D022CFEC2F7851711BF8CFE76D8F8965EC6BFF5BED6CB4A2E4B47B33100A50009C779371381D3F225E97D56018B4E7D2EBACE44B358B1301DD58575ACB2E5E972D259BCD39927B0F9336BCFC63F235A0A6E3F97569CAC4DF3FB5B64EF9ED1CCDA7719CEE50FBC3EFCCDC59FBECEA91A5CD8BB07E4B512BF6B29FE34FA7FAE1BEA2AEFB9AA28AA33AFE379A7E5F6723F39C5DA36C9DA74D5EAE557D620F0BA4E2CFEF4FA75C590F7FFB396EB659660D4028DFFE46F79EF38CFC92FADF5107FBB0102F044F945F3773FF3D6C9C1BA3DABE0AEEAB92BB2363DD32F2BD97824D4E0819B97B2058BAC0DFAA529C51367BF8A6DE62E4BFD6295C7AAFAA5288FCBE7EF899C713F696C9204E2A1CBD419D7DC88B32B3E24895D0D86C96DDE87B359D311FDCC1931A0C9EEBD7444ADC77FD730C58DFE9F79165FFDFFB11ABA3A33EE277788ECF322B22D9C75C413313289909F35AB3325EF934D3A3725688EFBC959D13CBE9EDB37766F656DFA492666F050EB4CAB9BBC06FADD622DD3F5B03E8B5CCA6AFD5FC8F5459D29502D108060096FFC3E4BF8FD68F2DDBDCCCE5035E988DEF35E76DC3804CBDD1FC6FDE42CF6522EEA51EB8407EBC5B70FABCB2A2FDBAA5ECCDAE2C9DF83C89E589612B6A03AC343FD2F22BAF4046C880F7CC2CBEF3D99CDC36C8978AFB194EBAD4EC3A1345A5918F6472733C9CF6D7538AAA084F57D3218266DA2EB7000793FC9FFA91C06A7CA041031BCD045AB975F70A746DFD7DA622671EEBBA5E1B5D211FDACC8DAECFD1F2D2BAA578F98C8D3DBC9E35BFB1BD6727E0EBF3AA48ED4A1821840E072CC163F0FEBA5A346E4BF64EB57AC475DC41FCFA6F4EDABEBCBEA1D6B570DAF2E2B761EDBAE13D74507E4C72CACEB5C2B2D722CF7A1D7D8591611AB1E75B69C656DBADFEDE48F88E85CC75D12F97160FB240BF1BAF2BA160912225A98498368F95C5ABDFC392711D1CC4AB734E3CB2A84D8CA7F180C93FFDCEDE43F25A285D93BC236D31086F01DAE933887A519878ACACC44924E44C4FD9888FE7DD1FDEB590C8DE315C6016A8AFE5775B8CF4E0508400014C12AD5EC76F2171402E4636E5EAFA1B44443E8FD4F789C4B6B9807EBD8A26E5B6B8CC54B7F9E2C21EBC48DE80E04E03CAB9368669DF132AEB5E82ABA3E9ED08D89DF32C2FE10DCA416DA1A2563300FE19C628235A7E934A1EB71F23C714FB4304C105B8A373EE720262744744ED753B14DB5102D125D5E9D8BC8DAF47D22FAC23A96C673393BC7353B4ADE39C9639679FEC0EE80000420107B1113F996A255D1A28A45E0BE5E8CABF6E2C3F25724A6C5ABBA1ED63A2EDB5AE6FDEFBC46C83ABFA2B263DB1C2A3C6C4E19F1B1BF5A16E3FDDF65A7459CDB844407236CF78216C7025C6B5EE4562FBF78F4778DF33F7DD268C80E9EEE3CC53A7D4CCC926C09F42271E8756C56B55CC7CAF49E95D87BE5103A1AC70A62000108E81796157F5664A193CBF4A73E463AA2C660984CF877D68E275F6C8B32C287AF859805E58DAA5FD89608D5E72FAF95B52C6611CC0AA690B3FE0FF258B1EB94B5E9ABD5CF78FFFCF3AF16E2E0A4FB5136EE3FD8F53D5984F5ACE8F562CC4E9DD0B030D44FB7938F4232CCFB9C58B4AAF8133184E71FFFD9AC4A9C74C2D3B6C9BA857A2C5827ADFB4CDE8365ACD07ABF5899FA592ABAA656399698E33FEB5995CFA775CE75B8B74E89DA0DEA09C02EC8C420A562D9C2CBC74BD2885909E5712C6142743DDE1DF5684A1D3267BF887D5676118C3AEB7AF06FAEA376596FA32EBA81D1CBCA5829AD7DF4B55CF53CBCED0FD572D1EAE58FE86DFA9FFFF5EDFC1D127180BC5E898F5AE17516D211355ABDFCF96098DCE67B95076E1F3BF68E713FB9C7B3D16897B0B57D4822FA9E58D4944308C979ADC3F1CF5ABDFCC978749D4C66092DEF9D12B36CAFEB32F6D695159B7A7B6B5DD97796ACEFA13E4B870A2C80E024D1E24FD3EDE49797B311423C21F75A1C6B49A4782F56A2D9587A44743918260B22536F1F3B7E9588BABDF65CC144D7C3B2743BF9446C17B5AA6D52275D0F591F656598C87AF27E59C8948C09696DA9B02C7E5E035BC65A5257B2367D36EE271F8FFBC99DC130391FF79306FF7F75832CAF719DB0EED120DCEE84EF0B224CEFA744DA8D201E799939CC514816B917D69F0791D80C96C3F94C2361C8A24BDE8FB391CBDC63BCDCBB4FF53508DB4C62A2CED8BE309CC23A7F4DACACB248E177A8CFD3A10201084E16AF01EF76F2D160989C9F4F97DF8162FB9BA221B922A25B65DC64FCA21BF7931BC29DBAF492978D6F4C0CAD4BD6A6CFF953BCC46F7A8D8CCCA2FC4F4F1A5F8AF3D98A17A18CDB55D6415E2BB1EF1BD6BE5663AAAD7BFA7FE17D1EAAC5221DD187E23B4F93F60D2F33DC814DB9FD0EAB5A48AB97DF153F7FD3EAE5D374341B2AC81217D6FFB8D5CB9F84EF8F894866EADE0D9F176148171E7372A266F279218F1D86259A67AF7BF71377A0641D2DF769CC5A1DF63953BF4D2BBABEF7F533B3AA05506359C72D712BCB8FED0FB60B0420385974E3C0BFB9B74E440B033F3BAEBFDF8697EFFFF52C809E98E306CA1A78D6725186633CABE8F4DF0D9F3FE0F222DB7E212D1BFFE2DE34DD754FBD4C795EE3A87F5B0D9E67EDB31AE363439CD79BD6F874FC59378B27FF7FC6FDE429D76B304CDACE2C3B4BFBCA4F22FA7D38D6C7BC6FB0F63D15CF27CF177D41C1EA276699B963650E5BA28BEB24859B27DA3C0AAC814B9D5BCF52A73B31DBF036C48E05C1B75F20000110E897661870F84CAFE3DF6998468D8485446F6B890AB1EE277A9C3B631BB9FF7C1AB50D79193E5F5B2B551D7EC0EEC1D0C8FD7ED72FEE9865417E6A572F6F5F644189091BBE16C7DA580557254F8F27978F62F76E1DB0844E10B197FA5ED0225FEE3BEE271F676D9AAAE9E07E133ED9DDCBE77E1EAED3256F6F75123C0166B9582DE1E57552F476FA7AF07ADDB1B1EA73EC9D1B1007C3C080ADF3E0167DFEF0257DE0AC9B3E7C598F46C51310DE77FEADF7E7EFFAF8DEBA589956CFBDAA46D8AB47ACBE751000FA1A58D77DD57359A5B13E6658D07889497BAB182DFE8FBA9DFC3111FD30C4D312D1E2FFBCDBC91F0F86C9477AB9C36B22BA198E799F16E3FF26DC0194317E5C1FEBDA58BFCBD4A38C05DB3A57FDDBEB04EDFBFF07EA072C8060EB48F1F7E0D6E20B8DC5DF835B34D5EB7605F78EBB9DFC452CE646BE58BDDEB57631EA638806CAAC872E472ED7C7DA9498A5519F17D7977FB77AF9A3F0DB9C7B749B14B994A435C572C159E71DDB765BE75127840BD55CB7EFEBD0EAE5CFB90E2124E323525305CA29FE781817FD1C3AE77193DDBF6AF98444F28B3508BA165A459634EBFED4F5B4B62FDA362614C3F6DD2CC41BC2DA07180840B053B4E063D1F7F025353C4BE0835BCBF35E6E8A7E6187C40F0EF06657D2C4729D948C2972CB24BA9E168A97C72C0831CB41D6A6FBA54E388EE90696B030E03A8B06363AF7E83689B97535F2FFA3AF59090BD149D0EAE517E9E83A798288A8DBC95FA87BB38AFBCD451E3F6BD3153F7FE37E724788D466C8A05FC8D41DF7937B9640F32CC4725BCEE2A560FD0B491C67FCDBB3EA31B1E7BF4834EA75B1655EC7D22B5F9CFFA7698837DCB79807F5010210EC04CFF2A7D75B56C0872FED6CCE0D5918D662304CDA3C6C43B7935F8646679E59C72FEC584F7F9517AB9E94DEFAB484A72148A3C3D9C410C7BA19B18E2C605988F6C52A9610B95E5E33CFD25B653D0F816001BBA1EF6FD929D2D76E1B743BF9FF269A59F3D2119D753BF965B793CF5DD321296B617E6EAEBF3C17F9BD486C85736FC8240E1684BCACE89E28135AC0BFBDE73D52CE4276B65CE13DB7969511000D6200059F341AD3BF9E1A637F808D79708B9E3D7C394B6090717F3A0670D7318132668803C18996636AF4F6ABF4EA2DEB9E179F26D6CDA7ABDA860B6E158B573ABA1E1FAD8A395241FD0921117A1AB5D900E681AAEF493DFD5AD15CD9DE33CAF597DB58717172A6102DFE88965DBEB198D29815593FDFEB5E9F55F0E2130190D4A73B5F03A4F8FBA4D18032AE90872FE93D76F94AF1273FC3768D6DC7025A2FF2C130F9881B3DBD0DFFF6E2F23231E0B0DC476E2BF7E772645999185039F4DACFACE354730516CA29CC460CD6D0ADD401EC9F4C0C2D648529F0FDCAF764B7933F2E12156A6C3EAFDCB98B97681656D0EAE5573C1D1B6F13CA6EB47AF995150F67892FAF7E62CA360AE7427AD818EF185E47D012A6BA9E96105BF559B2DE49D66F5556617807385D20001D2006AB85859F167F448B7181F2F7B6D02FF26E271FF16F11EB7629B7D52F72F5325F72A15ABD6FDD5028F7D2DCB2B24D9155E4F2B42C94C2257E74EEA4EC40E7F0AD92540C2D14FBFF0AB7F0477239270485EFCFC338794FD4EEA6F84A43AC2D8FB537EE276721BEAF199EC5264FAD361826CD562FBF509DAFA5B972759844B793BFE0EF9C35CCB18E41E45E4A0B20BF033CF76DCCDA58643194ACFA2C156DEFB894B7113E038E84937701B3DB17EEDFDD6059FBE4A7B5FD3605A17C49FFF16C4ADFBEB28BF2AC70B1781FEDA2D265BD3121FAD3278D46B020DE2CAAEBA6E22B6BD32BD92078EE684F808AB8C54B6F9E5470B8C80E0BCF8D4B34FBBFFFEDB031FD6167DAD031A0D27DDAEAE5CF89E81DB1FA9C6831E1891183A04F693606E1B94C342ACAB8F53A2D9EC54DDFD3DD4E3E916290970791DA94AEEF881BF90B0A03A9EBE31491B5699C569040A59F690056E1E42D802CFA2C8B1F2C7FD5A0459F14745632C82E8683C9DAF42A6BD3957C69B3F8E3993F88EC589F32EB62CBB9AC8FFF6CCA0DD5FC056E5912ADB2D6211DD11B969B28D6504A38501EE2EF3891F798FC1F0F860925D4982749743BF984AD773C1D5AD8EEF6B89FDC08FB9E8BEDE765C8653CAE9ECEE695AE67C78AF6DA5A1E84D955AB97DF954296A786E36DE4B4860C973518264D2168BDCC7B5EFECF3C8B60D1735A85F80BC781F8036B73F216408DB604B2088475B01A9C2CDF86151BB80DCB5F78317F938EE82D1D0C4E64079A8BFDE436AF5850A97DE6C91BBC9F655593598CDD4E7E391826E75E8C51D5E7CF0D2505B77351003B02CA4F077DDFC5848C25A484556FC98A27B36AE5B1D98A187EBFB69EAB555CABB2BC3259EBAA8E7789682833A22316C0C23A00506720001DA410D42210EEE2F5B0DCBDFBC802F692392465854F26B2238B441FC3828FCB51C722B9DCAAEBBA0D4EB0782ECC3D5A74FE96AB8CCF3915892AE038901D038D751FC6EEC9562FBF1A0C9326C7D3CA4E4E4C50C96317B97A5579CFC7FDE48EB6DC599D3BC36AB770DEDEB311E910A293040E0E08C0801479322E90D7CBDF107FEBB3CFE40F865FF6ABF4ECCBF4FCBD783F6F995E5ED4206E70BE5FA5237ADBAAAB5586751E620068DCFB478ED7E9B0C44DE8245C4A8B19E30923CBBA17EB8814D5B7D5CBEF8EFBC9D3F0FD1185E9DCACCCF558590575FE3A1DD15BD67582E80387CAC9C7004A3CD72FC45F35C84C603DDCCB0EAC7E721AA405F1F7657BB917241B0ADD8058713FBC8EB72FD320709C936E6CAB6E50D211BD1D6B60E5F9C8EDB48BAEAAFA80FA91B5E9C7FC5DDF7BFA59D0CF83167F7C3F599DABD83DAE6352F53EBC9FAEFBB89F3C6DF5F227C1F2F71105F1C7FB5ACFABF51C4BAB77F8A4562FE763BCE5951FF10E543E83110055020BA0C2B3FAF1EFFDD4EAF88859FD1EDCA25755CFFE91B5E97E3AA24FC38BFDF160987CC42FFCDFDF9CD23BAF1B8583BB1689B2A2C06F891E8456ECFB0D11BD29B7ADC2CAE0C57615592B754C175B7BD6AD07387C6216426F1FCB9A2E7F5BDB88E32EC4ABF236215EEF17E37E72275657AF3E9E653024813575A7A7ACC52FAB28C317806D030BA0822D7EDAEAA7E301C1EAC4B281D5BA6D64B6FD17A2F9F85F1F115D67F9B1F88B8924B1EC997570BD5D9158B382E7C33E6F5A56B955C55FD6A6CFC2E72B519F5FEAF372F695E2EF42AE93E28FCB00C743D6A6CF9DE54B99AD961024F233E5B505507E5A824C3C4B67C2AA28C7129C8B3F7E9639EB576C33895934F572FECE630FF231E5FA126217E20F1C0410800696F0039B1373F3EE60F0E779F2032F9322CC6A901CD7D17BF2B7105A575623A91B43FE2DB380D57EAF65636959454A9EEF87E1F30D714E1FEAED8A621A59F059E3B259C703874D3AA20F9CE54BA28E6841044E789D1537E8758CBCE3F2B1E567D846261EC931078968D641190C9389A8DB99F11C2D0C48ADAC7F8F07C36421A18B9F8155BC01001C021080066CFD93E3016ACB1F2C8187015BEC2CF124C7FB53FB98D60EC76AC042EB4C6FCF9F3226CA12889C2519B86935B0F2B3F0A497EBE836569E6BAEDBC9DF97EE5F8E575CB56C703C78F770A0A9C59CB61096B1BCC9E37BA231CC36F28485190F2FC3338D48D1E7D555FE90DBB27740C6BF5AF504E018800014E801A0A5F52F88C2CF316BC861918EE8BD2C0CF8AC1B83713F39D33314786E1ECB1A6894655A3A74A3198681591055BA5CE502AE2498DC12B5DE368361F2EBF0B9707E55D4031C1696E54B776CE4B6FA5ED616381DDE10B39A5B04B76F9BE85AFCFDFDBDE974DC4F16E6CFD6F5D2C7B63A3FA143F6589F6BA90B05C081812490154136F0E1A162DA9E0F86C9ED32FBAD23783C8B9DD598C8A155628918EBD6C5AB9BFE2EEBC5CB5ABDFCEE7F1C35BEFC97ED690319C040E3DDDFD676BCBE8CD0F3E25D3335E599B0FA5DE841D4F571628920BA8EE1D88F88E87B44749B08431F81E30502101C25560395B567433C8CFBC99995016808B72FBC982855D67C80652EBB4C1D5579F3F98063C26C153CCB8DF5DBAA13D13CB87E7ECD60053C4DACFF7DD1BDC4E87BCA3AB6DCD6587F3F1DD1A7FC9BC312AC2CDDF07542CE60D6B1FAE9F28310FC61887FC5A0E76BF0E0167DF6F0256285EB0A04A0015CBC87CF3A1600C11744F48355C54ED6A631117D2716EB1444E87C26103988AEA8CF6732C1621D11A8CA7F4D21B6D0B3C2788D79B0524EA47B0D9C2E31CB76D1FDA93B59EB941FE2FC9A6C35F73A4B31CB23E359D95BBDFC0911FD5322BA2DE605BEC0F047D5B08BD99E40392000C19C637C30BD973F8FC3B76983A4CBB21A955562888A123ECAD43324BEFC8774443F53C2D29C0145EFDFEDE4EF0F86C9AFBB9DFCC56098DCAEF21A81E3C1B30A5665C126221AB5A7FFD81E35FE49188A8507785E9AB64D97C7CB4B24A2BC66D772D6A66769C8F297AE653D8731581F6B3A50B03F2000C15152568459D6822A858E1713288781B1EA188B235CA56CBD5F1971A9D77903E3025096759EAB4C0DA8EC08CEE8B48E9E389478F5F25CCD603520F6EA0B04A0C1278DC6D77F3D9DBE55BC25A81B318163E13518599BF2903111000018CB49444154BE9F8EE8579BD6A54CF97ADB4D1340D6B1C21802F59266569626111A41B03FF4B3C0D639FEED75B2E47A793CCB22A89F8D30CBC89088CE8970FFAFC2835B74F5F0E575CC64D15CEF1088FB03C3C0189CA2F8E387547F1E1AF2451EBE4FF43AFDB217BFE500B25B177FBC9DDE361670BF8AA8F4EAA4CBB48E3D1826E71CF7A7672D01605BC42CD33C372F11FD463FE75EC7CF7B5E8A2C923FCF1A5F527039AF7B2EA74810730BF1C2DEAC4F45C2106C1FBCD981199771680FA5256EC267B3DBC91F8B048C982B6867890E7AFC414D9920F6A27D254E76A56B19E47283F87BBD4AF900AC4B240C8106C384C6FDA43118266DAB03238FA105A2651137DE15D7E57DD14888480ED00E4AA0859E6550400C607D800BF884D10FE1213E943AC92135A67C63948B732799ADAB64237AEE28C3A5FB753AA2B78CE59F13D19F5370DB1665F8EA7A59B182625ED5173CEF2A00BB2213C32331B1F83E2B2BD97B064BBA821107B8019E954F0BC25DD70BCC8005F04491563F5E76A00FE23744F397F899E552B51A82C130697ABDFF552D6E1EABB8812DD1E7B96AD31199210AE9883E484774669DAF167A9E455097C75617883FB00DB282596EBA9DFC0FE2FBA59A36718EBCE7ADE429ABA313B300863100896826FE444708AC8076FF125DB73DD63AB05B600104510EC52AB88ACB548EC3C7FB6CAB3E4EF9EFF3546B12CFFDB56A76722C289EC220B931CB5FB7938F06C3A4BD4ED9005449AB974F79DAC4F039190C9385216062D67E6F0818CBDA6D94BD30DC0CAC80EB63B52387D2B61C33B0008228757D401DCBD8D23CBA163283704BE2EF151FDFFA64F127CBB712538C841659C6D4B29E789990E2BBE9F6969693C13069B3A5A5D5CB396EF22A9B0DB901C0D6F09EEB713F69B0E59E97C96747FEF1FE65C55FA43AF788E6C26F12D90E14A0BD4DDE32B05B20000111F959BF357E405F13D9963FCB0DCC8846626B2FF474446F581606AB4E65EA6CB9AAC279BC616DEFD469C1BA68C54885EF2CF2CEB9E165CBC72E9364C0E921EFCD562F7FC4F7DFDFDF9B469F0DFDDD73077B99F55E2770DC4F9E125DC70132618818B0226C4C90C9217535309C0A10808088FC07B16E0FA8104337D7714D8AFD4BCF15BAE2F15FA9725C379567A50BEBAEC2FA895C5F74BEDAD26109C7825368866D2E65C307F10776C960987CC4CFD0B99895D3B2DA7B9D276D0DF41243D6A8DEC335F601018EFDABB171E1648000040785E5EA21B25FE8D6CB5D0AA96C36655AD5F55BB2CAC986A74C8313CE8F05D75CA896492AC96699D0E6B017F2F872B9D8FEFF88CDCE31FE1FD8263AD1C97AAEBB9D7C61C8242DF6B41B5897C1C2CF8A07B4EA237FB77AF973690167C6FDE4DE5A277C023CB8553E4CA46EC68553046F78507BAC2C5DCFB523B7E5F83512563475AC77B758ED5BBACEBA7E44B3064ED7AB8C45C38333A1755956E6232F17D7F3ED6E271F656D9A8EFB49430CBC5B98AD09C0BA14C4EBCEE7ECF6B68FED5FE4258859E1C7FDE44EAB975F8467A0894CE062AC1940407D4116303808BC98B532880CC2C7E37EF2F1766AB848A6E628F5B64B47D468F5F2AB713F3993961075AC42316809E2B2714FBA116CF5F2E744745B37BC00AC43D6A6FBE9883E75D699F76BC8465F988566957B316BD3B37444EF599D9D589294A6D5CB2F08D3C1558E9E2E0EEC075800C1DE89254084F5CFC267D40A65B98F88AEA732DB85F8E3248A548CC757048F49A8AD74D675F15C57DAC52C1B3A2FF1C3BBEEE37E728787DE209A3582AD5EFE6485CB00C01C29FEC47DB7E02A7432752744D75672B96D8932DFE3E31475A83CEBBC04E26F33B46B18E2AF1E400082BDA07BE04E462A0B1476D5DEA4159022665796ACF47A2692576259910BEA0BB9AD132F3851F18BB2D19A88EFB17216CAF0C464AB975FC875E37E7203714FA00AC47DB5305B8DBCA75BBDFC79787E9A44D71DB8552DFF1ACFC21E8BCF1DF7931B9B94096640F0D513B880C1CE10BDFC9F10D14FCB88B202D7EF845443D2EAE5178361721E84DF82CB371353C5ED02DDE0F0EF6E277F311826B7A58B4BBBA7BC6B138B7DF45C5C31F43EDD4E3E0AABDA44F359102ED01082AA2872C386FB703218264D9EB2B128962FECF7ED74447FB4CA93BF57ED0CAAD8BFF7797818000E1D08405009599B3E4F47F4815A36A5D9787D378B848DDAA7D48C1E16DD4E3E21A226BB6C5ABD7CBA6FF78D1682AD5EFE7C304C6E135DC727C6B01ACB98D0D3AEB4B2A2B0DBC95F84C0F7F976836132D9A56806A781774FEA65E179A62AE6ED8EC5D27AEFA6562FBF3BEE274F3127303846E0020695908EE883AC4D63B5AC91864191CB8A3F764DCAEF7C2C755CF3F7B89F9C4997D1BE5FD85A8885DFEFF07A4FFC69D798BE0EB14FCFD5152B83689EF5386FE8C2EC0B107F6023B2EB312DE7C87BCFBA87C3F02F730BBF3ADE6725CB8DC6F695B4040E4527D29C8718804305021054463AA2965E5694D96A252378090C7A7FCB05CA43BFFCF2CFF763DACEDA745FD7C9B0749883505B629763FCD4F5B9E27596B02EFA6DD479DAEDE42FB8A193D6D3A2F305A0043CB8B839F38DB60686ACF8065BFDB4F52F1DD187650BB63A4FFA3BFF7612A26E84308829856C60008E050840B0353CAB5F19D76E592B16C3DBF1B861FFEA4FA67B19C22455C35DB0B5425B2965728AD138EAC1549BAAF13AE37D793F2D9AD5BA2B2F53987F73E6AF18F76FEFD6537098C84E10D1B2B88A3DDB6108A28997A1BE0ABA23E5249899DB8BFADC951DA3302C0C38324E75CC42C40082521459F2B4ABD20BF0E675ABC4AFE9EF1622896169E0D87D60C5ECF16F0E70D7FB588920FA5A4512624AB97FADFF8BFCBF21D6095489F54E883DD7553DB7D92C8BF8A6F50C5938E2EF112791D52196186C9707B7E8F3872F17E3D88F1D5800412974DC1DD1F2902DCECBFBB5DE36468180F9432CFE2F30915347ED0BEB7A31DAA5D5EDE4EF132DC72CA986EB1BB9CE8AA1F2AE719135458CF7C7DB20D6095482756F5AEF0D1D2AD1EAE5D3AC3D1B9268CD72DF288AA3D5DF0DDE69F5F2056B7CB050822382AD7FA726FE8820008181E182B4B6594AD27044C64D2FBECF4B64E0ED8CFD5A9640E486222C6B12110F65523B2C8BC76098FC9ABF1B22FB2A2C7BD372F9F26F793C6B99BCE6B29C562FBF92AE5F22A2C13041AC13D818F90CEBFBCEDB9EB37E8988AAECC859CF9D7E0F69C6FDE49EECAC052BE09DCA2A05768AE5E67D708BA6A73C2731042058C2CAFCF482B72DD16759A9E472BD1D6F53C615A4E3DCC23EBF245A705FD662D062D5B8FC55513CA4B89EDF10CDAF41D34B84D16558960DCBAA28FFC6FDE42CC400364402C86FABB902E09471E25BA7FA3E55B1A867E23E7FBCE9F893B1F7534CFC31AD5E7EA593A3C0F1F0F02535A4303CB55840C40082D258D63BCFB568C5FDC86358C7B5BECB7D7579723BB616ECFB259DB5699CAA6CE898D0D5C4D6175DA3AC60FE61EB7FD6EDE47BBF66E03859279E5558009B44D53CCF5E0C60999859A2C56C783C2B87075BF9B4B863CBDF295B0161010451446FF94ABE308B62FA2CD153246C4AD461C1EDCCCB42A3F1A2F4496D112DFEC232E9261F2B37D7A5277035916BF84DF86CC68EA15D7241345F16C50802B00E9655DF125CE15E1C753BF925CD06713FDBD4E216F32614B9A22D20FC0E172DEE1EBEA44691E03B154B20042028CB3C6B55C7FE79DFF5012CF1E67DD7622F967012326A6F57749E95A3EAFB1DA2EBF826E9E2B2AEA35CAE8F297EBE69C5F749ACD8BFD0A89DAFD320025084BC2763E11F44F378BB1B44D716B72A122E64B803D162673456BF50FEA3562FBFCB7582083C5CB4A0E3DF0F6ED14FACF5A76211C428FF808888B2367D3F1DD1AFF4722F41432EF35CB891B2E64334A8E585EE612B868888681CFA3241D8D4E2BEF604AE1C02862D9803BA9E1338B6AF777CB9CCBBFE3C051DCFAF4A04CB06D81E4571BC7299BC6F79E0E54DEE4DAF03A5DDC10549201FEB2C6070984877AFFC4D443FE5DFA7E80A86051010119125FE22DB9A162A25D6AEF43EE2E792F8F3AC83DA7DACC520D14CF485CF5A99EDB5452FB8BA1EEBEDB460B56295ACEF5E999E60E4F987B93C1E6AA3ECF90010236BD357C6B2A58E4C5118C9A6CFB17CF7688B9F2C57BEAB2222F00C9DA4C3E2C12D7F140BCF1D7C8AE28FA86602F09346C37DF063EBC0EEF02C54C6CB7C61A063EFE5AFB3523D2B9FE5AAE976F249B014CCAD59FBB6FE79E28D970F86C947D63EC675FD4BEB986562048DF8AAC7225672DEC00E860985B82BB001C29D74D2EFA874446F67629A425E6E59D9F4F3DCEDE48FA5CB7743EBDF99AE43ACC39A3AF35DB77AF993F03925A289B50DA81F0F5FDAFFCF07B7682AFF78D96E6B572F6A9705FC49A331FDEBE9B451B40CEC16FD123784C86B5223EF5BFBC97DF536D67EB160EE60F99B0BCD7DF7D48BEACFFCDBF7F2FFF76F9E25DFE2DF31AB5D115EA0BD976D29B3A5CBB8EB81CDA95A0CD6A14CF257AB973F22A21F4AEB745519C05CD6AA49684100DEA559620AFED707889701CC445CC32741ED04A006E2AF1E70DC1E513C29C18AB7B17EC7DC9C7A7B7D9CD058FCCDB89F3CADF3D465599B5EA5237A43FC36851AAF138DD4341D515256141A96D1F77970E960F56B066B1F115D5BFE361D63ED1428127A5EC30181E83FFF5A9489C4A40B9908B26916B057B67E0795E9042109E4B090CF9FF7DDFA7D6AD4C205ECB97759FCC1FDBB7F5231B552514F5ABA222DB7AECCBEB38EA3F7D7E586F9399F84CD6B3BEB07895950F439CBE51CC318046383A8DCF8648C6EEC58FC059A62398DFB49231D5103E26F3DB4EB48C610C96D4EB551912E609D6C213FAD8E1DCF405381F8BBD2EF225927671F2F1EF142C6242229E43090CF9FD5393B558B9FA656164029F460F5DB0F599B3E4F47F13911B3367D968EE843B5AC68B0D55BE988FE5864D58AF5CEAD17781D7AE631976BCC252C076116CBFF8A4266DA8A4C280C02CDC7EB76721A0C93F9FF80B37FE1FAAD8653167A1E417C2DC5E059581640223AE767A2CA8C7ECB151C0B41D1C879B2D1793A0CACE7D31AEEE5949FE35A5800192BF62FF61B544F91F80BFC05919DCD271336D43E2F2D51273365E5B1AC17B16828E6C1D93C6444F933AC066959D0C2CE6A60AC63701C9EDC3E1DD1CFD6A90F37BAAD5E3ED5D7A3D5CBA7E9881A3CFCCC263187A78AB4FC9D7AE0780C995061BD07F4F32ED78FFBC98DF03C5F55957861855DE8F5B1E7415A00439219C4DF81202DF30F6ED12B167AF2EF94C51F51CD0420916DF963E10777F0EE10AEDBCFF43AEDDAD1EE162F1B55EEEBB980CB881339D7EFBE2C80458D9BE7F2E26DBB9D7C212983B7B5CE7D1537F06098D060387BACD9FA67257CC002B83AB201D1CBE5275844760A2DC1C5DF5BBDFCEABF75A6539A852D546269F3CAB49E5DEB996051CABF839512D49007B7E899B7EEE14B7AC3127AA72CFE886AE002D6491E65923E9018523DDA0D620551CBED3DA1A65FA2ABBA7CF5B29850092FE3665D867EF1DC4BDE7EECA2D56C60A19B909AB1658D6300816721B082C989E052222AB6AA31D6FD29ACFA179B08C0D87B2C9688A2EAF28488BE4744E744F54C340371641670F8BC7AF892CE10033863EF16402DFEF47ACB0D0C4B60F58817E0C4137F5E3C9ED57BD6AE4DFDA9F711BF7F5B360122F4CEF72EFE560D2CE7B1F758FCE96BB1817B76EEE285F8AB064BE4C946455AFD20FE6658D636EB5D1171BB5E51105DEB209340ACB2CA5AC3D9D300E177B8F0B328DCC14DFE7DEACF29510D2C801E52E8C9CF7DD7EB54F12C5B31AB97D7D3B69223767F46D561652A1395B3E46D128FC716449DEC218FADEB07362316582E638ED0B8CC28937C41341BDA294CBD269F854ADCC0DE33A19759C8B14621040F0BFD2CA273B6CCDE2D809A4F1A8D295BF762C3C3C002582D5670B45EAE5FDC5E2C8FFE6DC5C4050BE1E7C7204CCAC6D659EB56157F1C33C8F17E4476C3C4D71CC91EEBF1E0D662ECABD5985843C1C0B2B088F5CED0EB88E6F3EE5E88DF955C43CB9B61D5C57A565ABDFC89F630B47AF9DD2AEA05B68F7E16F15C2E535B0B20116605D927AB58AE2CCB9363ED9B0F8C7C4C56A998CB3C6BD37D221AE87DBC6B56A6BC222BEA315DDB7D13B3E85903CCC2CA704D248E78928A6C61F5BC5C753B796516B7A27794F5DD3A0E8681392EF09CCEA8950084E0DB3F5E9034AFB7DCBCFBA9697D88049A5F590D1DD12C0E9007BEAD12FC3F76071A9172781D1B236E78DE41AC3ABBDF0AD38874A07EDCEDE45F12D1430A49203CDC14DCC0E098A8950004FBA7E8E558B4BD5E074132C3CAB2E6755E02482CD3DACB7254652E0850B07D4E5D147A9D9EA2C48F74440D230E70B2499257D6A61FA723FAB9AE87E7ADF08E03E1078E95DAC50082FD9185699CC2F7A5E9DC78B9FC24F2AD4E107F338A2C20599BA6D600CE729BD87123C787F8DB124593CB9F2A9EC5DBEB28CA583C167F55B97ED311FD3C9BCD613E2F47C7FF7931CCAD5EFE5C0E02BD8FC1E601D836B000822562D62558F556C3B2F811D9717C7A5F6BBF6E271F0D86499BD76FB3EE60111E43AC6819985164FDF3DE31622CC02B9A8DF35995202C8C99CDDA34ED76F2F7C7FDE4293280C1B1030B2020A2D52C7B459627B0C084C89FF24E5A5AF58ED6FF82C726732C18EE48F860732CA107F1B78C25FCF4B2D8BB85C5D6B89F9C6D22BC7466AFF66438A316BC0EE2EF8266E26F02F1078E1558004194B23181599B9EA5237A6FD7F53B3462D9D2BC8CB78B65FB86ED2744F48FE988DEDAFD9900102716F7CA948DBD6BF5F2E7E37E72679DF2F9BB55AED7E1E59948E43CC0AB940DC021000B2088121BBB4B6D07F1A7C89C7994753C926EA82C0BAB251443BCD59B3B3A1D0056C2BAC73D4B78F8FE35D17CF0E5394184FDC33AE57319D63B2CE6C108E2EF2A7C87F80347092C80006C112B2B3236E65F2C9B7AD50C6D00F64D4C6495B977832BF6BCC281A19F11D1BBE2795A18933094398F3DDC744E6200EA0C2C80006C11DDB894B1A612D9AEA9B2D65800EA402CF357AEE7EF9658DC82F87A5795DD94E5F37231EEDF0D39430900C7040298C14A64B3E9DB3ED8773D0E8D98C5AF4CFC1F0087861C424ADEE79630B4EEF32A8684298A3BB484E7B89F9CA9B29B9BD40180BA021730007BA028301EE20F1C1B2B0C03739788FEB51A149A88CAC7E35983A09719005A0EFDB26A99001C1A700103B0472CF71886D701C786145B3A94C1B0C03D0DE2EF420C09D3584588C56623B19E31ED121E0C93C9AA65027068400002B007F40C2B3A2E0AD63F708CAC725FC7E2FF8295B0106B28186F781819FF978EE80CB17FE0D8810004604F688B44D120B9001C3A32D9C2125F9EF5DB70053F2D539E1767189B19449481EC5F70D4200610803DE20C96BB34340500C744D140E78C989183C4E7E5AAE24C3E57BAEC562F7F4E44EF50186EA6AAF98801A83B108000EC815892873157E952403B00874418E4F94D2BD4A18C354EB2EED87CBA4C5EDEEDE493C13069763B391121E9039C0E700103B0638A1A39233104E20F1C24627EEA37C3EF25D7AF1664599BC6F2181C8BD7EAE5D3E00A6E8A758F0ACA5F284FCF4A229FB5C130A1713F69646DFA7CBDB305E0B080000460C7AC12E3878C6070C8A4237A2F6BD395F81D9D922D88B25658FE15D1722C5E18A7EF79F879BF441D96626D651CA2B4FE85ED3E08E52F4DE508C031011730000080CAC9DAF4753AA2B7C2F768B6BB35F30D2F0F717A1744F41B226ACB3242CCDED5B89F2C59C9B3364DBB9DFCF160987C248FADAD8EDD4E4E836142DD4E0EF72F38292000010000EC142B0CA2CC0C38321B58CED51B965F12514766080B91C7717E93C13099BB9021FAC0290317300000809DA163EC649C5E517C6C106B1322BACCDA749F443C607015FF3A1CE7AAD5CB2FBA9D7C12DCBBCD6E271F494BA1147F08B500A70804200000805DF28360E9BB920B2D8BA023CCEE8DFBC98D74449FD26242C8943FBB9DFC29119DD3F5CC1E44446D2930C332883F70B2C0050C000060EB646D7A4544BF4A47F461649BA5F982797999E4291681219B772AE3FB8888BF5F0E86C9B93C3E00A7080420000080BD628C7DB9345D5B59B196B5E9AADBC927E37E72C31A6F10D32D0230032E600000007B21361D9C97192CB6BF12DFBF12DB9EB1F8D316444B68567D4E001C0A1080000000768E350834517CDC3EB5DD99F8FE76AB97DFF5CAD0E55933906CE31C01A8331080000000768E9E9583E83AF1C3128144F497B1E3C9E15F785FBD8DCE3686F003A70C6200010000EC0D6FAA364B9C954D0A09FB4ED2119D59C7432C2000B000020000D8034290FD81C89C03DB9C364E5AF1AC7841B17D535B1365D97A2E60004E0D08400000003B4708B356CCB2A7E3F5E4A7B6EC656D7A55C6AD2BE20AEF73B9D59D1900870104200000805AE059E4BC0C5E43B87DAB4CB6AF70FF7E1A2B1780630631800000000E066F3CBFAC4DDF4E47F4472BB6CFCB3406E0948105100000406DB1C60A64D4302E2F3D4B1F6F5BC28208C0C90001080000A036C4049F47898CE085EF65AC84001C3B7001030000A835B1A9E1BCE16262D3C0C9FD01385520000100001C14DE3880456308168D1F08C0290117300000805A21E7F935D62D89383D8308630D1DC3DB575F6B000E0B5800010000D49A58CC5E6CAE5F7D1CCF8D0CC0290201080000E028C8DA743F1DD1A756AC1F441F008BC0050C0000E02088B96EC3BA01D1F2902FBC2CB2EFABCA2A09C081000B200000808324C40A36AD98406BEE5FEF3700A708042000008083C773F11AB182E37444ADDDD710807A0101080000E0E4C8DA74958EE86CDFF500605F2006100000C0D1101B424602F1074E9DFF0FCDC7488BEF17F12E0000000049454E44AE426082" happypng_bin$ = SPACE$(LEN(happypng$) \ 2) FOR count& = 1 TO LEN(happypng_bin$) ASC(happypng_bin$, count&) = VAL("&H" + MID$(happypng$, (count& - 1) * 2 + 1, 2)) NEXT count& OPEN "splash_happy.png" FOR BINARY AS #1 PUT #1, , happypng_bin$ CLOSE #1 splash& = _LOADIMAGE("splash_happy.png", 32) SCREEN splash& _DELAY 5 SCREEN _NEWIMAGE(640, 480, 32) KILL "splash_happy.png" _FREEIMAGE splash& PRINT "CONTINUE YOUR PROGRAM HERE" ------------ end code ----------- From Garry http://creativeminds.webege.com/SMF/index.php |
My GrandDaughterby (Login GarryRicketson)R This is my GrandDaughter, in QB64,
--------- code --------- '************************ '* SPLASH SCREEN VIEWER * '************************ DIM Andrea5jpg$ DIM byte~%% DIM count& DIM splash& DIM Andrea5jpg_bin$ Andrea5jpg$ = "FFD8FFE000104A46494600010100000100010000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC000110801E0028003012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00AD69762388A96AAD24E4923775A26B284479599B7FA5635DBDCC270BC8F5ACE3B9C6CBA6E1629392326ADC537CC0835CCBBBCF3A82DC8ADD81B620C9E69BA6D6B71BB58EB05CF9B6183D856379BB64CE7F0A45BF58ADCA93C11597F6B592E4007A9A85069DD92AD7B1D75A4FBD2A75B9284826B1ECE7083AF152BDD297C8E6B394537A0EC5F170AF281FCEAE4ED188339AC58A60D26718AB924892458CD3518DEEC15D1716556B3EB52D816284F6ACF8C7FA3F0DC55DB19B6A95A6D2B68357EA490BA9BA3CF35B368E3CD03A5732CFE5DE17CF1F5AD6B7BACB820F5A4F6D02269EA122EF033513106302AB5DB179054B9C462A12D0A64D0B01D2AD13F2D66876033532CA7654EA048E4F205430C3BA5E455942BB734E8C00F9A05CBADC6CD097C0C54315ABACA083C55E918EC381CD5285A5137238A34674D36EDB9AF0F00034F63822ABAB102A50E1B19A97AA222AEEE36F0858437A5711E2C97CFB65543D0E4D7637D2AFD9C826B86D557CE040344346392B9C4C88CDD7B544E7691CD5DBC5D8E4552615D0E4DB29080739CD4833B71EB4CC02B81D69E80E3DA936DF90AC3962DA38C03F4AB0A3083B9A8D40634F0A738C54A7D2D61AF302E7774E2A48DB91818A4DBBBB54AA99C0145DF407A8E91588F97BD16D6811B73F2C6A78D38C6326BA1D2B474B95592553B693B25A32BA1991E9724B0997A28F5AA91281360F6AEFEFADADE0D359238C28DB8E05708854DC722A60E4DF912D92DCDB47346460035CF5E6872AE5C72BFEED75E5506D38AB0D123C58C0AD149277259E5E600927CC08C7B55F471E5633915D26A1A1C7282510063DC5631D2258739236FEBFCA9A973EE0B4338C5BC1C7435526D3F209039FA56D25B14382B5616D0B73B78AA52D6C071AFA648493B4FD052C7632ABF2A715DC41A579872471570684AC33B45129B05A9C5ADAB9C601A9A3B790360D76434550385A77F6322907149CDDB70D8E563B372DC9356DB4969D4715BCD62B19C85AD2B386368C6540351195F606DA3876D1E485B251B1EB835A5673DC40A10120576325846EBCA8AA0DA4216E062876B6A174F7304DD5D87DC0391EC09AD0B6D6990A87522B5534C55382A08A56D1227F9B6735178F615916A0B986EA2DDD3EB492794A323155E2B0688FCB903D29AF03927AD1777B582C482504F15299FE4C71500B66500D02266639A76645C96298EEC8AB2676078AA09BA263B86054A5C1C1155C8C4E5D0B4D76C8A493C547FDB0BB0E335198C4CBB49E2AA4D6F1C3C0E056B4E17F88CE574F42BC938BBB8279C54882284F071511648D86C4E28960F370C090056B64B4E866DF72492E1073BBF5AA24C972490E40A95AD5666C16231E86A48E3446D99A2CB7DC69DF7085191402C4D5A5008A6855C6053CFCAB9C5672F798EFD087665B934F2360E6ABBCB87A0C9BBA9E95826AF62F91A5742ECDEFD78F4A9046027150473C60F2E33F5A97ED08460106B6719773394BA0DC076FA53845BFB52C6A19B8AB001418C509BB6C24D153CA7593AF156932383D69B232AF2D5035DA01919A3DE931A2C93C633504ADB7E955D6E4B6700E290CA597A54EB7122541BC8352EEDA3A7355E3122B7238AB04F07BD34AC8762A4D6818111AE07A9ACE9B4A9275C211F5278FE55D010B9393F80A6F9648E70ABFAD526FB9A3EE726344955CB226F61E9FFD7AB7044913859D0E7D2BA354C29DA30B4AB1AB0C6DC0F5F5A2ED137673DA8D9413A0D848C76ACFB5D35D6E32181CF4E6BB092C2290E76803B9C75A88697197C8CA2FB1A86DAD531DAC677D8AEA35E1777D18545E54E8DCC6DF91ADDFB0BFF0C84014E16F2260F04D139BB69A8F4EA6106910F2A79A9165201DC48ADB6121E1E25603D46698D6F68FF3496C3F018FD01A4B4056E852827DB1E33FAD5882E42B1353A41A732F78FEAD8FE752C7A5DA483F777473EF83FE152F9A4F529B33DA62F3E7B55E82E00994678A79D0A55198E447FD2A03A65E44D9F2C9FA73FCA9E8848D67995DC60F4A73DCA94001E6B24A5C4432EAC3EA2A15B87DC460D2DF51B7D8DD32E1179E6ACEF0631CF35851DC96C6E3D2ACFDAFE5C669343D4D649803826ACC72027AD73DF6AF9C735763BC0B8C9A3619B7BC74A5C8CF4ACF5B9538C1A985C0CF26A74B86C5E539149BCAF51C55759B8273556EB51D89B71CD265A7620D4AEC962ABD2B9F99FE7F9AADCF76189C8AA133AB0CD0A16F9837733752B18A442E3835CEC9015381938AED711CB10DF1922B3AE2C22624A8DA3D2B5568E9604CE5CB6DED522CA302AF4F6A9B8AE31EF595736D2C6D9439147334596D5B9E0D59424A8ACD89252A0E6B4A15CA8F5A560B0F0A49E0D5BB7B76918050734EB3B43248A369E4E2BB9D17488A060C600EC79E57350FB814F43D16371E64D1671D88AEC6DC5AA401440800EDB453628E7C9020603B7CA69C2D2EDD1B2BB4F6C9ACDBE80DDC8B528E092C24C22E769C715E5880FDB9971D0E2BD4AEB4ABB92D1879C8A71DC9FF000AF34913C8D46447232188CD38BD6C80BEC80814F82228492D914A855C7518FAD4C197A122A926989E82EC0DDAAB5CD82482AD6E51D08A8DE6DC3AF4AA5A3B92CCD974A5603DA9459003681CD5C12B13CF4A6957EA0D5AE67D42E431DABA274C55D81484E45451CC7EEB1AB08E00F6A55016A0C3DAABCBF28E2A779971C9AA92BA9EAD58CD3B5D9AC10D724C2588ACE86F1E296ACCD768836839AAC21F3D0BAF5AD284AEAE6357E2B237ADA769101356861BAD6469B3E17CB6ED5A5E62A375AB6D37A092D09246DA3205241779C82298F2023DAA169638CE78AA496EC2E5B794F5C5579642780B510BE8D87514D4BA473D6A1BE9626E588D89FBC29AC0AB7D68DDDC1A78F987CDD69A7602091378DA69863DAB81D055A71C714C09B81AA6D3246DBE4F1DE8B88124E5BAD3A25F2C939A8AE198B714276190ADB2B707A0A59222A00078A23F309E7A524AB2FAF1549B4B564B45716E4BE777148F6EDBF23A7B527EF03FDEE2AC676A8EF4F9D9291120607DAA6643B49ED42955193C54325EA004020E2A629BD596914E54FDE1A6953B4F348F7685F3DEA9DC5CCC46D40307EB58A4D3D8D672B44A936E0E406356B4FC16F99FF5AAB046CEE778E7DEACDB44125EB5E873C79795EE79CA9CBE266EC0029CD4F2355557013834D329DDED5CCECB45A1D04CD1EF5E4F15098117A818A64D76224CB74ACE9F5259010AC41A4B992D04EC8D2631A6718A85255693AFEB5942E09272C4D02729C8CE6A1BD7DE15FB1BAD2802A31216CF3C7D6A8A4ED2A0E0D485D907439AD3CB6046AF43F28C9F534C7624FA9A7337CB93C0F6A072320607BF5ACEC9EE69AB1EA48C64E7DA97241E79F6148393F28C7B9A91464F1F8934DDD2D016A3C3631BB9F6A95086233F80A8BE53DBA7735246013C703D4D11F3024C1DD8CE6A40B9191F9D22EDA937638C7145D0C6632307A523461BB0DBE95212BDC734CFC6935D869113DAC4C7EE8A3EC4BB700915328C0EBC53813EB427DC646B0C918F92461F8D2A5CDE46D82FBB1EA2A40589EB4A46EE6A6F7D51561FFDAD76AB830AB8FC454666826CB4B6AA09F4519FCEA456C1E69D843D850930B153C9B020E77A1F61FF00D6340B2B793EE5D01EC463FA8AB86247E368FCA81671B76C50A561945B4C6C164955BDAA93D9DF9946D43B7D987F8D6C49A6065C2922989A7CF0E3CB998E3D4D4A7DC1C4AC7CFB74CC8AC3EB55175676B8F2F0703BD6B325E1601D9587B0FF00EB540F6BFBC2EC8BF9524ECEC1617FB4484C03504B73E6726AB4CA49381815559E4CE029A765AB1EA5991F7718150370B82290BB01920D46270DC77A6ACF4B956668419F2861011F4A648473BA3FD2AEDB44E6052B8A4921933CA8355A31348C896DADA41965E6B1353B558A22C9C8AEA648C8CE63CFE154E7B68DD0EF8CE29C5761EC7236EC4C78C62B734CB269467CB673E8A09AAC2D564B8F2E3040CE00AED34BD16E2DE15F9973EB9FFEB5152096ACA8BD2E6968FA62C11A4AF100DE84735D279E23DB8518AC316974485372C07A026946981DFE77624562D86FB9B0DAB2C721CC8A17EB558EBA06EC3EE1DB155A3D3ADC29601C91EA6A65B18026E16E0FB119A42B22ADC6B4FE51524F35C4EA9017B92E8A79E4D7A3180228D902E0FF00B35CC6AB162ECE139EF4BADC664E97A7CD75C0257EB5B1FD81301F3364FB56C6976462B749368C900D6AC6B9049154E4D6C51C45D6992DBAE79359DB263C08DBF235DC6A2AA571C564F96A87A0A1325A462DB58C93360E453248258A52982457407087200A8F6AB4809009A6DDC0E7CD9CBBF760D38891060E6BA4F2D719DA2AA4B6EAE7951436C2C7237B2DC938456FAD51792EC81BF2547B576ED63130E547E54D7D36D59398C03EDC51CDAEA6AA692B58E462432AE76FE7562299A225429FCABA14D2E145C28A51A5465B207354A4B6E8632577739E8E6904B9098AD1F39E45191CD691D2541CA8A51603381537EC4A899C5DC2F4CD65DCCF3E4820815D0BE9F203C1A85B48370C15CE29F3762651BEC6043E749C2213EF8A94ADC45D10D7A0E9FE16B68ED94805891D4FFF005AAFAF852D187CFBB1E99A529212A5747016E6528188A9C1933CD7783C27678C13263B61B18A7278474F1D4CA7EB2552995C9A6A707893F0A77CC3A577DFF08A69C39DB20FFB6A691BC37A5C685B631C7AC84D57327B8B92C700C1EA331484E4D773FD89A695276363FDF3559F4DB05E541007FB54B9E2FA0729C6BABA1E4E3EB49F79705C67EB5A7AC59A4B28F29B681E959D1E9C14F3213F8D541AEA43562131E0F2C3F3A40C738045596D372DC4A7149FD95927F7A411DF1D6AA4D257119B7AEEA847AD60BF9BB890C6BAB6D299FEF4BCFF003A58FC3E8CC096E7D3B5671959DEC74D3A918AB34731086DC0119CD5E7B16F2F783D2BA73A045B3705008F4AA12E9529CA8900155CF196E6756D27747287CE329DBC62A68E39BEF1CD7451F87F03717073ED5A7068702A0DDCD37517D939DD377BA39886299B1C9C55BFB33273924D7551E93028C6D0454C9630A71B462A7DA5F74354FCCE3DB4D375C36EFC2ABC9E1CDCF81BFF000FFF005577EB6B07B64548B1C23A81494FA0DC51C247A2045FF544E3D6992E96594911E00AEE6458874518AA92F94AA700668E71A8A389532C7944B72C0771FE18A8F37321388483D8015BF705558B6DC13DF155D982F21727D8552A97E8165D01B0ADD3269C0E4F3D7D2933950148C7AD001FE1FC4D5B4913AEC3DB007BFA0A1371EBF90A3683F74F3DC9A45041C0393EB59E8C7B138607E523F015222E0E0FE42A143D71F9D4C871CE7F1A2FE41AB44EB81C1193520CFA7E3512303ED536EE3145D5F518A0007DBD698EABDAA4EDCF5A88F5A6A482E20E949827914A7EEF14A9C54C936EE521C9C641A781E86900DC78A795C0F4A52292D069009E6A41B47434CC74CD2E295DAEA1A0F5386AB2A4540171CD4B18CD2DC76D4941C9A79C63346D00645006451629223603AD675CCADBB03A55BB99362902B1DEE086E69DB412B362904B722A68A05639DA3F2A805D81D573F854D16A50AFDE18A96AC6918ABEE591650C830D1A83EB8AC9D4ACA3B53B90607B569AEAD6B9C16FD2AAEA57904D0FCA43534CA953B6B721B59D8C430C4558F39F1C36699A70824830462AC496D09FBAC4551915C492F7C1A8E59250872808FA54CD6D81912FEB5048B3AA1C4808F7356DDB7616B94B4B8526D5409063A9AF448A289634041AE1B45DABAAAB48BBBAF03E95E842E94469B6DC9FC2B29EAEE525A0A163F307C873F4A9159158E22E7E94C37326FC2C03EB4D125CB337C807E1536683724591B6922303F0A1A498A8C20150E2E990824034BE54C5466403F1A02C49234F818207AD72BAA6F378718CFF00F5ABA8784E41337EB5CB6A49FE9C70FDE8B81D75842BF63427FBA291F0A4815069ED22DB229390062A46DC64E943199BA80E2B24F5AD9D4B18158E47CD8A5101EDD06688D3E6CD1229C0F4A58B8602A9DD88B0572B551860D5D6E16A9B8C1E69218D63ED437DDCD1D714F603653B5C08D5475A95105460E07152C79EE292D5EC04814639A85D76B645580B5132F345BB0817E6193488079A291BE51C5247CB8E69C572E823B4B241F664FA55AC5548519AD8043834C2972380D52C0D1C6075A2B33FD2B7E0B1C54862B8033BE9AB011DE5C4DCAA703DAA18217940F35F03D3353082693EF1A24B39B0086345C05B9B7510158B19AC7FECE9A6EF803DEB616CA66192E685B768890589A6238ED46DB64DB43722AA184835D05D69DE7DC962D8A61D287AD2E61BA6D987E5F34BB30718ADCFECC5E39A79D323001CD3E64F717B391CF98F0722AC429F356AFF006747BBDA9CBA7AA1C834F9D07B3914E45223ACE643B89AE85AD3200CD42F631A0271531690DC198EBC002ACA0E94388F7E14735228F6AB21AB17221194C1A8DA22CC714B16D07E6A9772E72295BB10D91C76830493CD27D9C1CE0D4E1C05A8B7ED3C525A815258C235519D54648AD294EE049154644DED8A3946B531E701DB9031511507A0ADA3A687E83142E9607B55464BA8D41DCE7BE55396FC051938C9E07A0A42D93C0CB52818C64EE6ADDAB6A8C9B0DC76F3C0F4A50ADC6781E942B056F56A94104E4609A5749021CA7030DF80A9029CF23F0A60193EA7D6A40C48E3F3A96EE3245FBC3B9A9875F7F5A85464FA0F5A941E79146FA8C93923FAD318629C0E3AD0481459AD589BB8C0D96C5380C7D29B919C014EC927150B7DCA43D4F3C53F7173C9A84020F1D2A5514D6A8AD471183C52A9CD34F078A72F1F78D435D82E8957A7352C62A251CF35326338AA7745225E71C1A0B614D3B1C5437126D4A9B9467DCBB337159B3000F357256DD9C5674E4E6AAE91362290F1C74AACE7279E94E932055762718ED436BA0D012077A92363B08C135548CD58815C1C0A2CF719B3A5380A5592B499E2C7DD22B374B6915B05735A8CC48E62FD29BDF41B2B3184F5C8A82558590E1C8AB0FB7BC5FA55794C78398F03E947A88ADA41F2F5742BF360E306BD217CE31A6107BD79A69CE06AD198FE5F9BBD7A5A239897F7B8FC695476B02D879497CC1C8029442F962D20C7D69191438266FD6981615663E6126B218BE52F96774BF8E69AD1C3B0664E3EB49BEDFCB3C9229A648020F949146A343A45B6C8CB1CF6AE5353119D41867AFF0085752F2C7B8622CF1D715CAEA52A8D41C95E7750924EE86B53AAB264FB3260F1B454E1416241ACAB2BA536CA00C60715616E3DE8DCD7D9916A6A0115952B2B11B5715B173179E99CF35922331C98614B4D9912A6E2324C8502962EA053AE186463AD47093E664D5A69E84169C7CA6A931C9C55E7E56A8B0E68F401E171DE9CCBF2D227CC306A574C28A181001C5491FDEC51B32334E857E6A169A889994015589C9AB646073559B1BA9A7D4646F9DB4900DD3014F71F2F5A2D173709F5A2E23B8B45C40A2A52BCD36D86215A9714AC0465466970294F5A518A5601BB452E2968A6842E2AB4FC738AB23A556B86EA29C9033264C3484D21EB8A571F3934C24D62D26754761CC07AD33B734A338A46148A133E949EF4B8C534934AE21D9E2A1B83B613CD4BCE2AA5D1222347992CC91CCE4D5B8F96AAA8096CD5C4E0735BC55D1C93DC9421C528E0E29F1BF18C518CB669DCCC5EAB51B707A53BE86992734EE045338DB8AA8A7E7E956665C5568C7EF2A59515A97908D9485B9A6E78C51DAB3D6F63A6C7100E461385F5A72024F1C0EE69DB7E605B00761529231C8007A0AEC69338F71BB0374E07AFAD3C15098E829B9C8C9FC053C20032C413D8545DF5042A9C2F1C0F4A9813819FCAA1032704E4D4AA4038073EA693B7507E4499C7B9F4A903607F5A8438E7D2A642A40FE54EC807AFCDD4F14FC535460D49DB354982222B834E4029E7040E290617AD672DCAB0743CD381E73DA933B874A0600A4ADB8C79208C8A5519E48E94D538A783BA9340921F9CD4B1F06A35C54B1B0CE29ABD8A44E181AAB744918AB270AB9AA53C858903A509B43BF628C9C1EB54661EFCD5C97EF540CA1BA8A95BDC6B73365240E6AB92319AD0B8840427154E28F7B6DEF5774FA059108EB9238A9E36F9F2302B423D1DE419045598F4260A59DB18A49D87CA45A487331C30ADC65980ED58BA7C5B2EC80F8FC6B71A36FF009E83F3AAD5099525F347F08AAF299197FD58ABAC8FCFCE2AACCB28076B8CD177D048C9B504EAD12B0D996C57A3C5E4F909B9C935E6D1BBAEA71F98D9F9874F4AF4A8046608F1193C7A54D4D4A439CC1E60E096A6074CB62327F0AB407CE008BF1C53D43E4FEEC7E559219441CC67107E94E224DAB887F4AB804A633F280691964217E6029DD015D84A4F08315C96A4186A0E0A8CEE35D9BA3EECF98315C7EA9B86A0E430C6EA49D8A8EE5EB4CE06EAB6C9C7154219B681C55E57DEB45D3D8EA8A1F1C980466AA4E4193352A9C1354E57CC942688A8F4193E01E288172F4E94AB8181CD25BFDFC5368E72C32900D5500127D6AEBFDD354CAF391557EC2638601153B72A054210F19A7B1DA68BDC091A201320D361077505F2053E13CD0ACC07B7439AA8D8CD5B7CED35531834240364C05A7D82937298F5A26E82A4B0C7DA53EB401DAC23112FD2A4A6447F76B4FA7710D3D6968EF454A00A314518A60281556E0039AB75527FBA4D393D00CB6FBE46298477A73F2E48A46071586A752D84C1A6B734EED4D6A56013B53474A5C518EF4F715C4FA9AA9787086AD1AA57A405C1AA44CB628479DD56E3E7AD5641CF1CD58438AD123965B9613834B9E69AA4629460D3E5204CE3A50CA3D68618A8DC9A2FD18114F81F4A86200C99A9256C0C1A6C1C9E94A496C8D21B9642E690AE0F34E1C74349C9EB586A99B9C4630707E66FE5520041E0EE3EBE951861DB8F5352AED2BF29C0FE75DE9D9D8E27E82ED18383CFA9A66E3BB1D877A77DEFF657F9D22A8CE0FE550D5DDC5A20DD93C7007EB52AB0241238F4A8F1CF239F4A900C9F97AF7345931928601B91927B54EB8AACB8DDCFE752871D3B50DA5A31D8977FD71530CEDCD57DD9ED53A9CAE01A6DDC0039CD1BB3C1A6E40A5CF7ED53E831EADD4529C629990178EB4ABC8C9A95D87614669C1B0304D370734BDC668B30B13C678A76E0A734C560054134E338079A9B94B42CCD7195C0355724E79A407753C28C53572922AB7279A88E49A9DD7E6C1E95111CF069C741AB5C6CF1E61359D02E6603A569CE36C26B3A103CDCD4B526EE533A6B30022D5D906623CF18AA16ADFBB156CBFEE8E4F6A7A6C2673F114FB73750735AC44647DE35971321BF395E335B59876FDCFD2AA3B09951B61E379AAB36DC101CD683AC3D769AAB30882E421355A21182A02EA4854962181E6BD42096510261147D45798BB0FED18CA263E603A57A545148604FDF007EB535124914B62D99A6DE304014DF366DC7320C7D6A3F27E6199BF0CD462140CC4C84D657024695FCB20CA3F3A85DC60666FD69B24502C44976C7A9AC5D4F55B2B68C00E4B76028571E88D8967B653B9E75071DD80AE3752BDB737AD89C1F98FDD39FE5591A86A535D4879DABE8335491950E48C9AA54DC8148EAD7548F68D993EE454CBAD220C135CC0BC51F2D27DA91B8C1CD0A932FDAC8E9DB5C888C03CFD2A28F52566CE456346AAD1F0BCD4915B9ED9A1C55C8751CB737D6F636239AB3010CF953915CC490DC20CA64D4965A84F6EFFBC071EF46880EB491B0E6AA03824D360BF8AE23C03CD3F6A9E54D2B831E8E4F5A7BD401BE6C549B86F00F4A6D210A580A9213EB4C6008F96A48C714276403E5384AAC0735624FB950018618E9400930E2A7D357FD254541719C8C558D2F26E57346E23B38F88D7E94EA646498C538534C614B480E4D2D200028C528A298099E2AA5C9F909AB66A95D9C29A977033B39CE28ED4A300D2124F4AC9B674F418693AD3FEB4DC7346FA85C611E9498C0E6A4C0C714D39A04D91B0E38ACEBEC9E0D6A118ACDBBC16E69AB3265B15A203A5590062A18C0EB8A9D57D6B5395B1E29DB6845A9586168D882371800542E33531069841C555EC05674E39E944433D2891BB53E11C7159CF6D0D698E0BCD3C0A52A31EF48A48ACD2EE6E70F1A8CE5B851D053B3CE7F2029A303EF1CB52E40E9F7BB9AECD77383D0562C7DCFA7A52A06C678CFAD2039E41C0EE69C1F031D17F9D2948121EA5587F334646DC2F03F9D301EF8E3B0A99173C9EBFCAA6ED9445920F352822919476FCE80A303F953BAB889BA8E3A5489C53148C629EB8FC29BD7518FC01CD04EE14CC9CD39548E73C54B4CA49120E28FA5008A5183C516B0D081BE6C0A7D3428069C4E173493D47618EF818AADBBE7A49A7CB605461B2C2851DEE389757A75A379A4452454C9096EA28BB1FA14999B3CF4A8C9C9EB57E5B5F4AACD6EF9C629356DC1113CABE5106A8211E667B569496E1633BAB2F8F348154ACF629DCDEB4983002B43686435CFD8F986618CE2BA38D3317BD46CC6F63051992FC8DBC66B644A48FF0055FA563CA920D470BEB5B6B1CFB074ABBA6AD62485E67FF9E554E7925DA7118ABED0CDEA2AA4D149839702926C3439E7690DF26F5006E15E9D6D1C26DA32598F00D7995CA94BD425F27238AF4AB59B16B1811678029547A2296DA16F6C2241C1CD34C9026E3B0F1D6A392ED95BFD5003D6B91D7BC56202F02955246091D6B34AFA09BB16F5AF125B242D0C111DDD89231FA570B34EF3B125893514B7E9365D9F39F5354CEA312640C56D08AEBB8ADD4B404879C53559B279E6A99D4C336D0D8153C33A672587E755CAF70B96E146924E95B76BA66EC36DAC9B5B98D5B248AE86C7508F00123F3A577B032CC5A5803A54C9A7953C8ABF6D731483A8ABE8B1BAF045435A85CCA8ECD48E454726942507E4AD80814F02A546C718CD166F50B9C8CBA54F684BA67156ED26675DADC1F7AE9195241B580C567DD698AA3CC8B83ED532571DCAA839C914E7196A75BB46CDB243B5AAE9B6849FF5831EB9A7A8D22A00CA2A78F01324D4FF00674DBF7E9AD6CBB80DF4AE04323065A857EF55EFB1AF4DE28166BFDE14D35D4467CE496AB7A4F37238A65C5B843F781AB3A547FBFA69A0B1D526360C53853538514B4AE01DE969A339A75001450293340013C552BA3F255D3D2A8DDE025260B72870D484E38A50334A5462B33A06F5A422948C73484FE545BB80741467D450BD29A464D2600DD2B2AEC665AD47E060D655C9FDE629C77227B045C1C5580B9155A3F5AB90E1856B6D0E57B8F8D06DEBCD4E501033D2ABE76355891FF73C75A7A92453220195350EDCAF5A466E31DE9064D0EE80A730F9B153420EDE6A29412F53C5D3AD435D4DA98E039F6A4240A5393DE9ACA3BD459A36383DE58E17F1269FB4EDE385EFEF51A95EA785A9339193923B015D6DBD91C56D07C79239E1076A793C67193D80A8B3EF96A78257033CF734E4958561CA0839079EF5329C83E94C0571D38FE74EDC38207E14980A3FC8A07CA73D693DF3CF7A728FCA9356F8469122E0E0F4A970334C41F37BD388A9B3EA3170075A785E38A6F24548A462AA29F501BC74A56E0F14BF2839A41D73517D47B8A78A82E66DAB8A9A461B7359733B3C87278A3D4AD5081F2D8352AF518AAFBB9E9CD4D1924E68B34C69DCBF0924815AD1C7B50565C1F794D6CC472B4B5B9444573DAA191455B6AA373204CFAD36D2D02E665F4E402A0715971FCD272455FB9E549359CB82E79C5546C1D4D3B2995250A71F5AE8E22193835C7A1C1FBD5AF6176FB82E7359B8D9DD1ABD509709FF00131043E2B6501DA332FEB58974505EA963D6B4C343B0618D3BB466C99C2F797F5AA5726203EF1352B4B10E8A4D412B2B2E447FA555EFA05B439CB92A6FD76E73915E9F6C25FB3478C0E057985DEEFB729098191DABD06E664B7B30C6E02803BB6294AF6B31F431BC65AFC9A3D9991640188C28E3935E3D73ABCB74CD24CE5989CF35A1E31D586A5AAC81642F145F229CE73EA7F3AE55FEEF06B5A30B6AD129179B507E81B03EB5526BF62D80DFAD56C647DEE6A2604F4ADAC985D1796ED838E4D5F8EF1F8E4E2B1A324F6A98CA40C5292E9628DF4D44AE3E6ABB0EACEA7EF9C7D6B935B866E3A55CB7918F534D404CF40B0D78C68097CFE35BF63E224661B9B1F8D797C171B78C9FCEAFDBDE6D71F37EB594A31DAE4A3D723D5965600118ABC9396E4579CE9FAA05DB97FD6BAAB3D5E3D839AC9C6C06D34AC1B34925F0C6D3541F5042B90C3F3AA335E03D0D4B43DC7DEDC2C728914D745A5B5BDE5AA37058D70D7D720C2D9353784F5A22F05B97E09E39A37D00F485B184F6A5FECF88F6352C2FB9454E78005435663291D3E3C71914CFECF4EBB8D5E3DE93B51A81CF5EDBF94FC126AC694B8928D44665E4D3F4A3FBCC53433A05CE29C2981BB5381E281077A3B520E683C77A0070345309342925B9A00739F96A85DF4157A5FBB59D76DD314A40B72B671494839A43C73593B1D238E00A6D190694E292D4561A302826931CD041EC38AB4900C94902B26425A639AD394902B3181329AA57339BD0910F38C55888851C1A81071522FE55AEA73327EAC335625C08C0AAE3B54B2A9D80935222B363752903612298F8041CD0CC48C0A7D00AAE7E7A954719A8181F32A6519193594AE6D4D0FCE391484E79349904E28273C52BDF435385239071F37614E43818FE2EF512313C039F5352AEC6E3B7EA6BB36D8E15A802327071EE69CA4E39FCA93CB19079C761520033D327F954B6D8C137631DFD29EA08A6018CF5FAD2E72293F3044BCB0E2A645238A8A3EB9CE0D4E0E39038A25A14850B8E69E8431E690734A00CD4DF9456158F65A51D39A38E71462994C00F5A6EEDBC53F703C5453C8AABC52DC7B6C57B99F68DAB545989A7BB658934CE0D3BBEC17B8E538C6454CBC9E2A0FC78A9A32037BD1D468D3B6E48AD7881007358D6CD923B56AAB05506959DF56592C876827359739DCDCF4A9AE272FC0E2A948481C9E68B924326D2A411599B7131F4AD36E54D67B2E24E684FB85C5584EFF635B5A75910DBDBA566478F95B3D2BA6B62AD082B59B577765DCC9BE2A2E80DB9AD481633182233F95665D97FB68C2E456E4264F246140AB10C20E3E58FF4AAF3894A9C281578F98472C0552B9CE0E65C7E34F5BDC0E4B506905FA6EC601E715A1E29D417FB22455CEF6E17F3E7F43597A9B05BC187DC6A0D6647B848E3C74CE7F4AA7D2E52D51C0C90BBC8735049115522BA19ACCC6C70B5524B3DC0935D10928ABA1A8F739F68CE32053446C4735B0F6248C01C5406D1C1231C53553F981C4A6A981D3F4A68DD93C55C16EC298D195E7BD5A926C9688140EE2ADC6A02706A38FEEE0AF26A440541CD35625930385EBCD4A8DB79CD56078A7ED246054349EAC2C5F86E9B780AC78ADAB7D464503E7FD6B99886C3EF57A3980039ACDC55F61D8EA5354664FBDCD3975327AB573CB723A50D721578359F2311B37979BA1277566E99A87D93528E4CF01B9AA33DD8316375674133B5CA2A0676670A02824924E3A55C62D203E94D1AE85D59A38EB815ABD40F5AE47C193B49A6E5D4AB67A30C11DBFA57580938AE696FA0C5E79A46E052FAD31C9A9D40C5D40EE96AC694BF3554BD24CC6AE69279A2D6DC0DBA5ED4DCD2E38A5600E71C504D0180E2909E69806734A0F34942D1A804ADF2D665C365AB4671F2D664E407F5A521C77213413818A5C834D350EC740BDA9323346714848ED4EC03F8DB40C6DEB5186E290E473DA95C44539C0CD67025E426B4272367359F1FCB21F4AB8A66550954E0D3C1CF6A6AF27A548B5AEBB18344919C9A5766E412691549191413EB48922C06EA6918845CD39C0078A8657E30054B6C774421B3264D4EA78C66AAA925FA54E3A544D1B43614E7B527E34A38A4C7148D2E7069D724617E9D6A61D77371E82A227E6E393E9E94E53C6075EF9AEBB59EA70EE4DB8F63CFAD11B1CF1F9FAD3540C601E29C063DBD054E83D7A1296E39140C7AF3498278CF3DE95001DB8A96EE34C90608E2A71902A25C0E9D6A70C31ED4D5C2E3D17BD38B734CCD397E614EC985C729F6A5C0EF4DCE32690938CE693D07B08C40AA57126EE00A9A698AAE0D5132127AD28D9BD46302F3CF4A6B03BB8E9526E07EB4D39C6455C937A587B8D538356114E41C5575196AB699E05434A2597E0EA38AB8CEDB4552858A8E956C39229586458249DD513A62A66393CD42CFCE2992D95A43806A948486CF5AB739AAC464517E85211251D0D6CDA6A11C3080CD58AB1F3C53820CF24D2B20DCD19A6F36E8346DC56CC2D218C664007D6B9B8D10BAFCD8AE92DA28442BB9C9A2C3E838E3F8A427F1AAB398B69C64D5F22103E5526AB5C300876C407E14D81C5EA457EDA084603D48A6A0FB44F83DBBD3B57691AE704018A5B2E173D4D525EE97044775A71237633598D69ED5D448E0A0ACDB8897391DE882EE5986F6AA0679CD566B6CE78ADA3163A0A6790339C5697E883739E92D0E3814C1660F51CD7446019C114C36ABE82A94AC4D91CF9B201B3B691AD4EDE149FC2B7C5B8CE08A6B5B63A0AABBB858C35B30AB9DBCD35ADD82E6B68C43A1A85E25C1028E6B08C88D083F38A9302ACBA63802A374C0CD377DC86AC3772A8C1155669CA9200C0A7CCD84CE7915992CCCDF4A7057D4561CF7058F5E2960999655742CA54EE56524104720822A9672FC55BB206599500C924003D69344DB53E81F03ABFF0064A1667660705998924F52493F5AECD474AE6FC2D1795A5A003B9AE8771E2B867A48A2427E5A69FBB49BB8A4661834934061DE1CCC6AF690077ACEBA6FDF9FAD69E93CAE698FA1AE706984F14A69AC715366217B504D00F7A463CD0005F02963F9854780E2A5401529DC08E7E98CD664E4892B464249ACD9CE6439A96CA86E333C5148738A6EE3DE9266E38D34E00A5249A631245362109CF14E2485EB4DE8BC5233714B44220B87CAE2A9C63353DC1F96A084EDEB571BF43399326474A9141351ABF38A9D5805C0AB3164F1A9C62A19B21B1DAA788E067355A7625A96C4031565C77AAAE486C54A1B07150CE46EA7B8588D33B8FA54CA79CD408F83528240ACDEACDE3B0E6714D27D690E08A6F7EBC50D97A1C405C9C83CF76A791B979FBBEA2A346E081C0F43DE9E370233C1EC2BAB54CE3D2E3D54E3D7D29E33BB079F7A4042F438348AD83C834A49B1EC4C38181D2A44247279FE9512FCCDE86A404838ED52B45B88907726A404E05443AF27152203DBA53E6E83260723A714E040A419C62932318C547518BB8678A6C8C00C934D66C1AA93B92D8CFEB43770229E42CC6A12C314E6C9CE78A8828E73549263B21E327A548AD8E09A45200A6B104F14EED68521E30ADC739AB0BC5545241E6ACA927149BD4A45F88E56AC21C0C1AA9003B6AC03F2F340C73904F155DBAD48C6A2931D2909904C322ABF39C55961EF5048066A7D06860186EB52281DFAD45F29A764D1B0C9BF76194907F0AE8ADA58842A02126B9E473B9404CF35D35A6FF2570800C53F4014C921E123C556B8F38A1DC40AB72EE039702B3AEE48C2E0B924D20390D5414B927CCC93DA92CDF11E4D58D4AD37B175AA76AAC3E522AF9B4D0D205D793F2A85DB774A57CFAF1511381C5256DD9A340CA40CE69B824F1520391CD15ADFA8840A3BD23A67A53D4923A529539AABF36E896C88C581834C65ED8AB3C11EF50C80D3BD9EA892A491063835559086F6AB8C73D6AB3039E39149EAEE166CA8D8CD4131CF02ADB2FA0E6A075C726AD3760B7733A64C03C564CE70F5B5391CE7A563CC0B31A9826DE9A10CAC630549CF35A9A0AABEA96A78E2419ACC030715A9E1E8DBFB561C671E60AD657047D1DA2A88EC235C76CD6A83CD65E92C3EC89F4AD1DDCF15E7C96A224DDC53246E0D3327D69AF900F3500634E7F787EB5B1A5604758F37321ADAD357108354D6833433CF148C4E3A520619A376454B10A0D349CB52E69B9E69200E9CD48A72B5116ED4E070B4D011C8E437359B31CB9357653926A849CB1143B150DC3B53382DCD264818CD1C9EB53A9B0ECF3C5319B008340214F5A61E6A5BD6CC4C0B7181485B8A5DBF2E698722A92B30656B86A8A323BD25D361C0A6A7DDE2B548C26D9616A419CD429BB1D2A556F5A1D88B92EF38C0A6F53CD216E38A61DC0E69A24560BBBAD569C007D6A5CE5B9A8A4C12706A5AB80C403AD484E3AD4718201A7673D6B368DE22E477A46C1E94807BD212053487BB3895CE73C13DAA60700AFDEF56EF50A040786C1FAD29CE735D8F7393A12A0CFD3D29C49DF800134C46391EB528FBDD38F5A861AA1E1475CD4B8007A9F4A888240F5A91171D4E7DEA6F6E83B0E539EBD2A55257A74A6601A9B231CF4A69A6B50240777D29090A69CA542F151BC898E7AD0FC808A7902AFBD67B1279CD4B3CC1CE0540588E0528AEE52D43731140E7EF0A693CF34BBF8E6A96DB0EC38851DF14D19A43F31CD05F27029EFAA2AC8527E6156A227209AAA02922AC2B01802A6CD6A5234A320AD4A080306ABC19D99A79049E6A1B57D42C48C5319A89D948E94D3C66A07908CD55D5B5420739A89FDE90C873416F5E6A1DAE34862A8E7D69FCE2941414F5741D6968B42B7042F9182056FC0F218941931C7AD73EC54E30D8ADCB358BC8059C9356B441625919075626A94CCADD23CE2AF1D9FC11E7DEA06490B7200146A24616A2C71C0C7B566C3205525B835BBA9DB103762B027555438A69D8DFA68324B85DDD78A779AB8EB58B2CC55C8CF4A549D891F35691B262E636438A5DC4D67A5CF6356125DDC0AA517B482E5B53C50CC49C5405CAF7A56718C934356DC96D12703BD35CF18A84DCA8EA6A26B904E73C50FC818F618CD576EB4E6B952BC545E7AB0E7AD53BA42D46B839E2ABCCA7153B38238A824CB0E6A5C9263B19B2F420D67BA618FF00856A4EBD722B3E4E01357BAB22248A2C073C735BDE148FCCBE5E395C64FD6B0A4386C8AEAFC1B19376C7008DB93F9D5CDFBA2563DAB4D9088157A6062B452520D615A4B885707B55BF39B6F5AE07B81A7E612D8A6CB210A4E2B3C4CE39DD419DFA1E94728103B93260D6ED936D807358129C367BD6A5B4E044066877680D4DD934BBC0AA42661CE69FE616151602DEFCD031D6AB07DBD69CB2AE3AD098890B53C3616AB3C831C531E462320E28F501F238049ACF76CB1229F24849E29F1443665A9151762B77A5FC69D2E01C0A881029686B7B81A6838FA52939A0F23DA8B05C37F14D66047BD04605308F94D1BB114EE31BA9A8C474A6CE7E6A10E0715A231916E39015C77A7355507073DAA5F300C533326C1E0D0E463AD42673D29DBD7BF5A5D4069602A16E724512365B15097ED4276D0099063AD2F4CF7A6A83B7AD049159F2EBA1B2173C53180233412077A6924F14ECF74C13B1C62A608EA40FCEA539C8DB827D0F6A6A91DC61A954E1B0DCFF00B55D6EEE5B9CC87A9C7FF5EA40C7823F2A675EA323B629E38381CFBD2E4D6E2245383D71520231D307B5440827A67DAA40C3E9EB9A895A3B9498F5CAF26A45CB75A66EC76A7291D734BA0C78C05CD549E701B68A9E77558F21B9F4ACD2E092C4669EBD05BEE2B30CE69A3E63ED49F78F22948EC2AD59EE348715F534D1E94B91DFB530B0278A5CCB61A4389C1A3E553F5A43D01341E80D2B0D0F2C074C549138E38A833F5A9A11DEAEFA148D8B6C6CC55831FCBC0AAB68723A55F50C6B293BEE329B444026AAC880035A3229C55095181A480A27863499C1A9640738C54446DA357D00030271433607BD3430CD238C9CD2BF61DAC4C922EC04839AE82C644FB38C464D73A9BB6F0B9ADCB0FB43C200014555CAB1759E520E0051502E4BFCCF93563C838FDE3FE54D486307233F8D2D589105EA86808C738AE4EF616E70315D74EDCE2B22EE256CF1531D5D8D6279F6A0AE9211CD663DC3C473BF8AEAB56B40D9DABCFD2B96BBB195C700D764236644D3E85FB2BE12819AD9898E3E5AE6ECA096301429AE8ED11962F9873572DAE90D27D498EE3D6A190B0EF5397E403D6AB5C3000D64C1E852965DA79A8D67CF19A82E1B39359AD7522B1C1E2B68D3BEC44A691BE8548C669C064D60C37B20E1B9AD4B4B92DD4512835A949A65CC153D69DC63A549180DC9A5643D7A62B09DBA94B4666CE99CD635CFEED8D6FDC0CA9C566FD84CEDDEAA095EE89923124DCCCA54576BE17B98ED30190E5B8CD52834748D72D57ED2DC24AAAA38CD393E80A173D3F4F712420AD5FC678C551D1202968B9EE2B5C22D723D1D84D2B95C28EF46454DE58269A62CF7A5CDDC4D15665DFD2963574C61BF5A95A200F5A69E08A577D042F9F3A9C1E451FDA4F1F0CB4EDF8E715149B1C72BCD3B5C094EAC38CAF14F1A9478E6B35E30690C07A834EC846A7F68A7734FFB744C305AB15A36CD218D80A565719AEB2AB3FCAD915A48E0A0AE6A06656EF5A315E328DA4647AD16622E5CECC7BD5424669AD7018F34C32AD472B348B24E79229BB8E29A250052875229E83B8BBCE39A696C52330A8A46F978A3D02E559086724D11B03C74A899B2E41A9110B74A6AE6522CA95039A5555EE29A2D9881F3529B7947426AD19B14A2934E2B1E3151B4130A63433F5A9D131A6399540AACDB33C5122CDD3AD42A181F9E895BB0245AC938C53B231D2A307029C1877A8B235B8D6033499E78A56714CCD24B5D02E71E33D14E7D73D6A4DA010471EC6A159154E08FC477A9CB938C807FA5766EEECE51E1B3D060FAD212DDFA76C526E1D3B7A5283838EFEF4A52D2C90C72061F3139FA5481BA77A62123B71521C1E40C1F6A81244A4E5718A40428393C5351C6DE460D57B89370C0A4A57E83B09338638078A85704E0F4A600475E690E7208AA69ADC6912640381FCA90939CE699BB8F7A6B3E71EA29A51456FB126EE694F5E299B895A55E7AD526F61A1C5E94648A4E09A5273C566DB00DD53C41B23150E0022ADC78E314A32D0B2FDA31CE2AFEF39C0ACEB7201AB6395E2A6C98C7C99F5AA533738A95836DEF54A40D9EB4EF6158692735194DDD69C7246714C6623AD1268A434A2D27980718A7609E86985429E6A2F61EE4AAF95E38ADDB29A28E01BA5FCAB9EDCBB7E63815A564D1B27CAA5AAF60D4D66BD8CF11A96F72294CA4A6718A802B9C109814D99C1F9475A96D8244724A7354A725B26AF795F2126A94A9CD28B46D131AE132C462A81B20DCE2B724894E6A150AA47A574C6572B731FEC617F871F8529CA0DB5AF3F96300552960072C0D1CCC48CF6639A8E43BC7239A94821B18A423E6C62A93EA8525732E584BE4564CFA7C8A095E4D74CD0F3D29C6D948E456D09BD919BA699CADB59CD90581CFD2B6EDAD9801C55E1689D854F1C4AA3A7352E6EFA828A4471295001152B81B4D3CFB8A6120F6A8E65628A2E9926960FDD8CE2AC328350C802AF34B9ACF41B4AC4AAE65E2B6746D2DEE670C721477C566E916ED7172140EA6BD234DB28ED61000C1A552A59581CECAC8B56E8618828EC2A5DEE1A9C304D3B6D73366371A1DB3CD2EE2075A5C0A6B0E2856B0362707AD18A6E39A936F14262233F7A9AD8CF4A9C28149B413C8A2E040141EA294ED1C62A529814D2871549D808B683F5A4207A54BB78A6B28F4A5EA04611734EC0A36E4D382F153B6C21842F7A50AB48CBCD34920E28DC639905308EC0D29634D268BA006C8F7A85DC81529E698C074A76B6A265293839ABB6AC80609E6A36514CF2C2F43434EC235444240086AB08B81838AC7596645F958E2837371DCF342B93634E50C0E474A6F983BD6635E4FDEA33792FF0077269DB4158BEFB589C0AA328DAF934D3732FA75A63333FDEEB4ACCA44A1D76F5A6B3822A020E38A67CC3A9A5A27606D93B4982314CDF9EF50331FC69A9230E0F34D46EEE2B9CC201BB00F27B1AB00051C9AAE0856C751DC8AB04A950579F635BDAE65B884E4E4FDEED8A7062783F9D44393F2F07BE6A4CE0608C1A5CAC1226527EB53ABF1803F035591C81C807DC549BB0B9EA287AEC56A874AC153238354D9B7134493339C0E95064669AF30572504F4CD23640C6E07E94C6C6382734C19CF349ABB1BBB15188634A5B2D9C537A1E948641D3A51256D4A489F70028575E86A10C0F535200A69A0EA48580E940E70475A682A074A55639A4D95E84BC95A9620411CF3508626A68472493496BA82342D864E6ADE4A9F6AAB6FD07AD5E58CB8C1AC9AB3286348A47BD5595D318EF571AD38E2A94D6ACA7BD525715C849522ABB91BB814F60CBC5441B072454CB41A649F2A8A6ED0D4DF30668127B52B2E852771E620A992B9ADAD2D36C3BB681586F3B1000C0AD4B13BA31BA4E3D05536D21F434AE24D9192181AA1685A672EF52CA371DAB9C54F0C38000153BB05A0D964DA08C565CCFC9E6B5275C0358370C039C9C55A89AC2CC8DDC9CD57C820F343BB678E95131E2B5512DBB0E2E08E6A3965555C66AB4AE41E0F15524672DD78A6E2F742276EB9079A683CF3500918B719A9864F06A95FE44327501FAD3CA81D052449B7AD4C471C537E43B916541E94DDDCD295209CD464900D669ADEC3B5C713CD21C15E95186207CD4A5811C537B89AB1149BB185A625B4B29C3D4E3AD6D691A735CCAAC54EDEFC50F413669F86B4BF2879A47D335D681802A0B6B61044154600AB00F15839366521EA297140EB41353E6486291B814BCF5A43CD0980D519E9520E951A9C1A9474AAD004E734A79A2940CD240348346297BD267268EA00466A322A4CFB5230269D84407AD2FE34E38C534F4CE28BDC630D300E6A5A681CF153E4862311B6994F61934D38A6BDE10D2B8A6106A53CD31C71C51D74422021B34EC1C52E2909A2C912C5CF18A4C739A4C353CE42D37B68098C2013D298C993D2A6C0033DEA36345EC84C888E4D355371A982834F08A39A9B2905CAFB0034C700AD59382738A61009A56680A6D1E4D46C8C0D5F6518A632A9154AFD4471C06C7CF4A7B73CF7F51480863D437B52EDCF46C7B1AEB7B11D0555247038A7A8C77C9EF9A6FDDE0F069E381D3359B60870C038C63DAA19662015EDEB523938F5AA52312DC64534D5EC1A8A1D7BFE7484803351700F34AD8A6EC86AE3DB9C1078A713C7150862DC0152A8DA3E6A9458C2C4E0F4A4200E48CD39D73CA8A40A4AF3C53764086E083C77A994903A53000A6A418E9EB58A6D8FC855EB4F0DED51ED20D3D7AD5A88C9D1948E9CD4D0E03557C8EC2A684827349F61A2FC0C55B35A2B2F19ACC8CE2AC82696AC0B9F682074AA935D75E39A6B3126A26149B4B702BCB20EA7AD55772586055DDABBB914D3103DA9A6BA8EC5139CF140DE31573C914863C76A57687D4A6E00C12715B9A6EC5841084E7BD634CB9E00C9ADDD252468C02A40FA516D3561CEB62E20F9F1B6AD8DABC77A7ADBB90309FA548B64DB8338381ED473450D1467859949C572F7EA16639AEE2E10C8B855E2B96D62CD802C14F1D69A923483D4C16939A88C80F4FE751CCE54907B5519EE8282456D1B5AE5C8B6F2127A542726B2A5D4CAF4AAFF00DAACEDC9C0AD126C2C6D1C83951532313F78735949A88238356E2B92E33C5134D69717A9A41B24015386CD5357240352EEC2F5A4AE96E3D07CA72383CD5560D9A79738F6A84C877545B9B46C2C2B918C1A7C1E5961BAAACAD93D6923760C3D29462AE4CA4923A9834FB57B7DE7EF7B1ABBA5DC1B67C0C6056559DCFEEB04D5DB7C6ECD0D3BD9995CECED6F629146EC66A560A4E57A573714A5718AD3B5BDE02B1AC251D6E2B9A38A7638A6A306190694839A36001C5231A7038A631C9A5610A0629E38E951A1E79A941CD1710751463DE971499ED4F718A70290E051476A041DA98C4F5CD3BA531B14BD40613ED49BBB538E298DC1A6C680FBD341C134A7919A5DB4AEFA0EC47BB2714869C579A43D68109BB14C2C09C669C40DD50B03E6714D3B210A462902E79340E9C9A556C8F6A5BEC2171914DEBC52927B50719A696A4B0C537000C9A5DC075A631DD46C343777CD9ED4FEA335081D69C1B8C628EA492718E94806452E72290B6074A57571BD488F420D3490052B707EB4D238E945EEC1239050993C107B9ED5205DDD0E47B50AABFC2723D0D3C6D5F506BA2EBA993D0163EF9CFD69C3F2341E7FA5364385C03F9D46DB02DC8259B9C633EE2ABEE05B34AD80D9279A6B0DC72050A36D4A4B51095279A76D0569B80714E000343BBDC76B0E8FE518029E724734D604638A5C7BD35A0D919241A69721BAD39860935160B3555DF51D921E188E829E4924119A8D41C134F2DD0014456A34EE39998D4AADC0E2A119A9D54D27B8344A878FBB56620A5B238A8109039A9E307AD46A98D685B41839AB4AB95AA01CEEABF0E0A7349B650D75C530F3DAAD8883629B243B695D88A0463348AC476A9DE23E9503295A97AEA1701966C28C9357D343BB9465B62123203375FCB359CD71F67FBBCC94EB67904BE6976DC79CE4E69BB25762D64EC8B91E90D0CBFBE1D3B1ADEB348D0000015942EDDC0DEC4E3B9E4D5DB1943CA013815CD29B6ECB436853513A8D3ED5653923815A9F65B59015DAA4FB573D71A92DBC6228987B906A38752603EF1FCEAA3350DD5C6D36695E59A5A9F94641AE7F51B759519768E78AD4378651C9CD519245F3306B58CEEF621A68F39D634C7B6909E706B01E01CE6BD7B50D363BAB624A83C7A579CEA9A79B5988EDDABA6327B2348546F4672F3DAA1EA2A9B5929E41C56D4D137A55592238ADA32BE9B1A732B58CE4B6643906AE43BC30E71F8D3D6260334E550A771A6E49E88575D0D285FE401AA40D8E86A9C72035234B81516BEC24C98BE4F5A8A57DB51EF6620A826ACC36AD3105850959D90A535121850CA726A77830C31C55C584463818A6AC7BE4F6AB504B5395C9C9966D22CA819AD6880502A9DBC5B455A5C835125743DCB2AE73C1E2A5F3C45CB362A8BCE90AE58D5292E3CF6C03C7D6B1E477B1AC20D9D25A6AB9942AB715BAB32B007775AE0EDEDA44390E79AD5B691E0396909FA9CD4CA0FA16E0AC7521BDE93393CD665ADF2B9DACD57C30EA2B36AC66D5898018A7038A629EF4ECD2B5891F9A375340A50314F510B9A4CF34DC734BD28631C48C530F4E683C9A69A68069EB48578EB4A690E693B8EC2630296941CF18A09C0E68018739A0F3480E69D919A9B08615A8F1CF3D6A56241A61EB9A7A2111EDE6838030294E69B8CF5A77258BC63934C61CF1D294E052039146C02632D4D3C1E69F51B1C9C557416A378A0714A452118C545F51B264FBB415CD3549E2A6FBCB56C57B15B69CE69BB7E6CD4E50EE39E94A028152BC81B38CDA76E7033EA293771D7F3A407DC83EF4A222E3738F97B62B7714D99EFB8BC1C7506AA4CE776339153CAE11701B3F5AA4482F9CD24C490FD99E739FAD34E73B718F7A6AB1DF8EB4F63820E7F3A766B548A5A08ABCD2E02B7AD0013CF4A4C8268D777A87A1272DC67148DF2F19A6E18F4A419EF54A4BA176171D734CC60D48B1B50D1E6A6E876100214E29460F5A8B7321C1E94F0D9E829AB812019A7AE462A30474EF56218F70A9F3B0C95727191530CAF41C526DC0EBC52E49E01A4D3DC3A92EE0318AB11CC5462AA1069C1BE5C134AF62AC684775CF5E2AD070E339AC5CF3D6AD40ED8EB52F442B1724E9599396CF06B437161509B72ED9C71493BAD50D2B991F317E4E4D5F8012B51C91AA4B81CD58897038AC6AB35846C49D2A559194654D300278C53D1141E4F158285D96D927DA0F7353A5D123AD539829E41A80391C66ADC397612699B915E738DD5233EE60735831CC43735A56D2348C2AE9EE4B3A48087B7C1F4AE47C4BA61910C88391E95D4DB36100A6DCC4B2A90466BB918AD1DCF2392D9B69E0F159D292A71B6BD1351D21416602B93BFB58C3152066AE2EDB9BA69EC60190918071481C29C1E6A696C646CF96327B0CD4D6BA6B9FF5CBCFA75AD636DC994AC55562CC302B421B379403822B46DADA08D80DBCD68A246A3802AB45A984AA4BA1420B1545191CD4F8118C28153484E302A300F719A4DADCCF57B90B938E952DB404F34D6077018E2AEC6151060F3517B9A4603CAE16A27B808303AD457377B14D53B79CDC49D2A2D766F0A7DC4BD49E51B86715269F6EF9CB03F8D69AAA84E40A432228C2F5F6A22DDF536BDB445852156ABBDC107BD3E30E796A59530BC2D0E7676128F716098EE0724574B62FE6443279AE5A39106322B6B4FBE841DAC40351369C499C7B1BC8053B6F7A8A370467B549BAB9EDA980A41C71461B14648A32687E603739FAD2D1C7A50695C03B535A8CE0500E69E81623DD834BCE3348C0839A32C714202458D98640A945A4D2AFC833F4A894480633814AB25C5B9CA48C3E868B6A2631ADA542432107DC629AC0E3906AFC7ADCF18C488AE3DC62A51A869971C4D69B0FF79303F951615CC7622A22706AF5DA5B87CDBB12B54DB05A90C3231C534827A52E3078148370A7CDDC90DBC5230C74A97B531BA50DA42232B914D2B834EDC4505B8C91493BEC09098A0201CD05A82DC628B05FA08383C8A91092702A1CE4D2ABEDE945C2D62D10318A4DAB4CDCC573DE93326DC914C4CE2C8217AE693E44524654F7A463DD97E98A86594018C835D16EA6772291B71E99A8F0073D3EB46727D29E0E472B914E5249D8127622E8DD39A7B0CF2694AE5B8E29DE5313DE94B57B9488C31538069E14E3918A91610AD963CD4846F0074A877B8ED621390383489C93D49A98C63A75A72200693BB562D2EE22866E31C523264F3C5588D0E79A4900CD55D2E81D4A3227CD9C66999DA7DAA794E7A715063229ABB18A0E4822AFC3C0155A040464D5B53C800605297702475268452A0E6A6DC36D467E6E454B4D02123CB67352F97C75A646BCD5B5872BC1A9E855EC55C60D4F0119C66A682D0337CC6AE1D3A341B81A1276B0F56471AE0532694AAED534F9A411A6D5AA2492739A76B1AC202084962C4D5884002A48A3DC98350BB794D8AC2A47AA65B5A9638009CD40E7DE93CD53484AF73583D51246588EA6A32FCF5E69659157A554964006ECD2511F42DC6D93C9AD7B160A0126B8D9F51F2B853CD0BAD5CAAFC92115D94617D44D5FA9E931DE22AF06AADD6BD05B83B88FC4815E7CFABDC4DC1639FF006723FAD57796476CB126BB1527D592A9AEA745AB78A03021071EB9AE625BF370FBCF434E783CE5E6A016854E00E29C7476348A8A45BB69232DD6B4E3641CE2B1040EA72055D467DB9C74AB7A9138296A6A8488F20734C3F2B633C5514BA615219C3756A1A7632F6762C9607A52E702A9FDA15470DCD412DF9159ABBD06A2681751D4D43717AB18EB5992DDB3600A88079E503B55C616F88B5157345236BA6C92769ABD0C51DA2FBD431110C400FBD562081A46DF21E3D2938DF736B24854F3676E3216AE476C1796A7C6AB18E0535E5C13497621BBEC4C08ED4E27D7A5575727A53C9C0A4E28047B6493EEF06A482CCAB039A88487B5588A62300D63CBD98B99A37F4FDD20118E4D6CA69F315CEDAC1D2662B3065AEBE29D9E3DD9AC9AB331919CDA7CC9C95AAEC0838C735766D5079DE583F5ABB15B5B4E9B8E326959937313914B9CF6AD2BAD3D5065187D2A88B6989E1734790C876D34A81568D9CD8FBB511B6949C629EC1A15CE3D6A1FB6C10E77119A92E629215624715C86A976CAE7692294527B033AA1A8C4DDC0A985C23F4615E749A94A38DC6B42DB5765FBCC7F3AD1C51173B850AFE94E16CAC7A561E9D7ED338C1AE80DC854031CD4DAC0B52ACB1ED3815094CF35248E5CD3338EB536B942631DE98C79E29C47349D284912381CAD444E4D4806EA694E69AB031A40A6633C54BB05349145BB86E47D0E2971DB14E3CD380CF419A16FA011631C52118A97CA627EE9A0C6DD02926A6DAEC24C742A4F24F1563E515997174D6FC720D4B6B7EAE70E39AA4AE896718E4AF20FE06ABB7EF3A8C7D2A7918B363191503673C1C56D1D5EAC9490E58D5475CD26D51CF6A69271DB3ED4A064F5E29A5ADCAE55BA264DA4F4069C46D351AE13914E59413D7351A5C487795BB926902907029F9279A6F2A72714F45AB2B71F800E714EDA8C7834C0C0F5A554C9CE68767A8D12025063B50C0119A4DD83B734E6C2AF6A894ADB05B529CE00E9554649ABD2A96E6AB2AE5FA53E66B51A45889485AB0A09C1EC2A3890F7A9F254614511577718E1C8A0819E3A526F27DA9ACFCE293DC1682A1F9B157A062A40AA51A679AD7D32D1AE24CB7DD15374DD8A4C956072B919AAD35DBC2C51B35BF23C36A847048AE7AF9A3B8258119AB8AB6A8DE976213287E735096C355662F0B64734A260C39EB56E2DEA6E958D1866DAA4B1AA17378A5CF22A19EE4A46706B16E2E8F273C9ACDC5376225A1B11DEA64F35379E5F9AE72DE4F9F24D6EC255A315855A6A1D09BDC579AA85CDC36C357A48FE526B3EE7005286BAA148CA698BBFCD522918E2A1902ABF1DEA68B1C0240AEF835CB74572DCB3147BF9E956045EA2A28CAC7CE6A71701BA0AA5AEE2E5B02A106AC08475EF51ACE9D7A54BE7AF6A2374F563D6DB00847A521451C628F3C1C8CE29BBF23355715990B4433C544C8D8F7AB64293D69CAA845691977172B6662C0E58E7AD3248F6B60F5AD490A2026B2DE40F3524D5F50E5D07322ED1C54F6C8139EF4D23200C558B600B73D050DDDDC515A176DE00E43BD5B2EB1F03A542AC3185A432C69C39ACE4DBD8BF52C99F29F28AAC166918F045491DC45D88A8E7D4238BF880FC692E6B869D0953CC8F82B4E3381D6A283508E4EAC33560341213D09A25A3D4195DAE573C714F495988C5452D9067DEA4FD2A5B286479D630BD4814BD510D23A5D095DA5E7EED745797496F0E10E0E2AAE9F6AB6769BCE338AC8BDBD33CC403C0AE66F5D0C5BBB268A4F3272E4D6BDBDE15C286C573F1C810726A7170BD4355476259D42C33390E5F23EB53A4816508715CCC77D2C63E4908FA1A7C57B334A0B3127D4D2E50B1D4C91153B94F15133AF3803355229E67039C834E28CA7716C0A924CED5A4611904715C65D431CE58329AEBB54B94652BD4D73129E48C0A6A4D741A39F9F4F087E434D5B476C75AD6962A5F2B6A6EC7E95B29DB721C7CCBBA347E530CD7404EE358DA5B0C671CD6E00BB32C4544BDE2E29244278E94C619352168877A9A1B75B81FBB393E959B8B0BA2AF7E7A52639AB52D94D1FDE8DBF2A8369EE2A6D7DC066EC0C8A01279A0F14F48A4906154FE02A93421DF211EF4A2DBCCE541A7AD9B20DD270293ED9E412170452B6A26C745A6C8C727815A70E9F1A2F4C9AA569A9798F8622B4D2E11B9C815766886D91BC41460A8A8E4D91C65B68E3DAA67923CE4B7EB59D7D71BA3289DEA5B1239BD42E51EE18902A9962791C55FBBB24619EF54FCBC700F3496A52DCE74CA0AF0306A277C8C814DCE3BE698DCB7A0F6AEAD2FA1228639EE0D38B13C0A367A1CD2053BB1CD124D0C556E71CD3D54839C7149C83D39A52C6A5A4B518F694FAD2094F5EB4DED498C62A5F9EA34B4D09E37DDCF7A7E727AE2ABAB052003527999346FA0EFA1206C1A7EF078351039352B050A3D6A5A717A8FA6A239C8C0A6C683E94E5C1A19B9C0A2D7DC6BC895700F5A76EC0ED50AE714EE7B9A72492BA116576E326A391013C114DC9C0A9ADADA5BA982A034934D859172CED3CF000AE8ADA048200A063D4D49A7699E44632BCD683C51A27CE40A1F2A651CC6AA36C4C54F35C75C5CDCC2FB831DA3B62BB9D55A02855704D73735AAB7519A51B44DE12B18C9AA3CA7E65C54CB728E0F634B7368064AAFE959A5C46C41AA728F42F9AE58B89B729E6B1EE5FB935A0CC25185E954EE20C29C8AB8B7177681EA84B672C4106BA2B423CB1EB5C8C4E524C035D1D9480C6083595769EA289A521F97DAB36E8020902ADC932EDC679AA734995E0D73457606CC968B739E79A78858B0001A79FBD9C55A8DF680715DB14EDA95ED1A5A0AB6A5507352ADBE00C1A6BCDD3D297CC23A1ABE75B1939CD921B7C2F26952307BD45E6975EB4CDE7B1AD232BEE4F3CBB96C4219873528B5FCAB3848EA724D4C97AEA7D452925BA1F34B7B9796C1988DA401EF529B40839355D750DC320E295AE8B8EB427D589CE613DA8643CE6B9F9C9827C62B73ED381D6B3EEC2C877628B9519CBA907DA814E0D5F81B310DBDFBD62CA7B22E2B42D1DFCB0391552924B5364D1A8B2AC29F3B735977BA8203953934F96179392D50FD89179619FAD65ED3955C896A523A8CA49DB9A8279AEA4E4938AD26B78C7445CFAE29A624239A2352EC2CAC6509AE117E573F5CD5CB4D6A6B761E6127EB52490263E515426B7393C553AAF6B05CEAECB5B8AE4E09C37D2B62DAE846DBD48CD79EDB3324831C574D6B312ABCD09396AC6D5CED5B5996E22D99DBF4AA68A558F39CD65A4DB54735A16F2175CE6B1715B994A0D6A4B29729815147E7F439AB0BFA54D1E38A49BD999B2D5BA12A3353EEDB22A28EB512300302AFD941B9B795C8AB649A90158A204B7E154AFAFF000A70D4FB99028C8AE7EF65CB1C1AC5EE043737592773567972EDC1A86E59D8F069D170BCD11BBD43A8F66E39A96160E306A9CE79EB8A92D1F2E0035767613D4D8B7DA8EB8ABF7F22A5B064386ACC4608C326A3BCBA59005DD52F442F205BF7070CA4D696997DB2E17A8C9AC852190600C8A9A02DE6A9E98AA84AE4DAC7A1C5751EC0CF8354AF5ADE76C00A0FA8AAB6F8920049ED5957176B0DDEC0D9A995BA823612CA0EE7349332C03E41C516CDE7C408349242DC83C8A4055B8BBDC9CD60DC4E43920F15B92DA9C1039AC1BD81A2720F4A169B021D6F2E4EE0706AD0BC994E0138ACD85C20C66A6170ADC034EED81A2B7C4B60939FAD4B2B91112393590D26D6C8EB56A1BD461873CD39262BA226772A4B5416EBE64DC8AB771710EDC645578258D5B8EB59BBDF419C507C8208A38C7F8D214556CE4E280FF435D53B5EE25AEC2E483914190A1DDDA9A4F34EDC36ED27352DB6C360F3189C8C1CD001CF279A8836C6191C5485C11C50FB0EE3B27D6976E79CE0D20240E47E3407143BEC087043D4914F504F434C5618E69CB9FE135326C64A09C7BD0AD93C9E69A11C8E7A53E34EF4F7D5B2C954E0600A42A7140627DA903367AE6B37AEE0890120734F8C65A9A07A8AD4B0B096560C50ECF5ED4005AD935CB00570BDCD74F63696F688362AE7FBC40CFE750416E02ED52062A7FB2B9FE3FD69B95C122EBEA31A00A08ACBD42F438243FEB4C9EC266C9539C7BD61DFB4B002AF9A9BB65A486CB72CEDD722A16980EA6A979FCF351C93EE3459EC696B13BB870493587A8228CB01CD5892E76120D54B8943A75AAE491491423BA688E292E6732A601C50F002093D2A8C8EA92E33C56D18DF71B562F585AC6DF339E6B4BCC4846D4ACCB7B88F1D719A9C4AA4FCA735138A94ACC12D09249DC9EB509B87E84D4AEA31D6AB4838F7A5C96600B2B6FE7A55F8DD1D40CD648DD9249E2A48673CF6AAF212B9AEE10A0C1E94C6916B3FED0D83C9A413E464D0A3A8B7344367A500B7A1FAD5386E0EEE4F156C4C1BD289C9F4138A241C8C6334AB112DD29F132E074CD5A578C75C0A95292049149E061F7739A6224E3B1AD512447A629449183C629B9BEA5248CE16B3381C1AB3169A7AB9CD5B13281818A8DEEB1DEA2ED6AC771A34D847CC40CD2496D1C632A00A6B5DF19CD5692ED89C134D098E6619C546D20C60D4465C1273503C8C4F14723B021CF211C540D20CD058EEC9350BB61BBD528DF515C90C84F4151B8DFCD20719CD05AB4B37F120BB1B12869700735BB0205407A115916F9F33815B2A19E3000E69C1F99A4362D4277915AB1868A2C8ACEB3B760C370C56D0C6CC0E6A2A4D3D113565A58745F34633D6AC2019EB50C430306A6242D73B473966204B851DEB76306DE018F4AE7A2B810B06233571B52F35368E2AAEEDA89A259EE0BE45625D3E09E79AB4ECFC9359D70771A9BDF70221CB64D29183483A7BD304EB9DBDEA9764220B85667C52D8C6EB312D53E413D39A9A25E722A95D2D02F6412CA4360D53954B3EEC9AB13F193545262CC41A4992685B671D78ABB17041ACEB6233D715703E0F5E94D584D1D05BDCEDB623DAB99BBBA637C5BDEB72C5D5D707906B3F57D3FCA7F353A1A24ECC4BB1ADA3DE9202935D0AB2B2F3DEB82D3EE4C4719E6BA5B4D40F01CF1532B35B8AC69496E73953C562EAB1654929C8EF5BB05DC52719150EA31ACD03617B54497705A1C331C1A744986DC29B720ACA4104510C802F279AB8A1BB13B8E3355C15527279A919FE5AA333E0E6949316849248A4F5A877B039538AAFE6ED393CD31AE33C8E954A2FA035731C3B37CBC539986DC1EB554C8DD1968C823A918AE99454741244ACC73C134D0ED9E466A3F3081C60D2F9873F70D4269741D9DEC4B92DD722943607506A0F319BDA9E738CD09DC6DF626121618342901B9350A6ECF353F960F39A56EA3E61F827A54A8CDC54414839C114BBC838C8A95A82562CACADD2A656E055618C0C75A9D4E7AD27BD8D10FEADE952050307AD314679C1ABF610F98F975CFB5425777B88BDA6596E1E6C8B91E8456CABBEDD88981F4A65AA4CCA008580F7535712DAE49E10FE54EE25A102473E32AA49A6CB25CC2373A381EE08AD8B5B5982E5EA6BC8A37B56420138A91DCE713516C7DEAC2D6EECBAE4D5B910C53329ACDD5A12F6A48EB5A2B14629B81D33519B85EC6A83CBB188E78A85A71CF356E3A5D1A2B1A12B24AA79E6B31E5D8D87A7477009C669268FCC1BA92B9690D79C6C38AC99048F313B4D5CDAE1B9E957234856D99C81BAB48B511C8C705C371C54A934A8D4D66DCC76FAD5A861CF27AD52BC9E82499225E3F195E2AC2C824ED4C11A8A7A003DAB2EB6077219109381D2A163B4E055A6E18E0D55942E41C8AB4D256627A0F538EB48EDC631519396C5283F360F4A51D191763D4B29E4D3D2670C4738A63608001A72803D335768F41F3772D4370C0E49A94DC163D6A9AB9DDC8E2A4E18F151CA172F4570578CF1528B803D6B3C311C014E0E6A5C6CB62AF72F1BAE30335199988C678350021873814D238E0D4A885C943B01D734C2CDBB3CE28FA5216C647156C188589A42FC6075A3700A6A2390339A1B6B442DB71C47BF3519CF438A5073C1EB4D3C373576B6A0C36F3D2909ED4B924F14CC65AA24F417536F48B449DF9AE8E2B2F2D86173593E1E42A0B11C574C93C4382466A1AE4D10A4DD879B74D838E698908539AB01830C8A6965079EB5328DD117233B477C5358B0E40C8A5600820D440BA36339150D01680DCA3228DBB39C5344FB796A6C978854E0D0D262257B81B719AA2EC09CE2A9BDF6D9883D2AC890326E1C8A6AE0C46231C55411319B71E953A4CAC4F18A78E79A7B3B8AF714600A95321723A544632CBC1A4F38A7C952E56D90588EE1F39C5578D70738A965393E951EF08C0134E37EA2628DE240455D0C76E6AB29F9B3C1AB19CAD52925A585766B695382429AD7BE8964B5391DAB9AB190A4B5D4090496BC8CF14A4D326FA9C7B0D931C718357D666080D56BE40B33638A6C529298A492487B9A967A91F376735D0C372AD160915C33DC2C0495FBD501D5672DC4AE3D83114DEAB415AECDCD62350C5940AC5561BB39A8E6D4659576B366AA99B07D2A755B83349A51B7922B3E7973D0D42F3311C13509E7BD5A577A93624DD918A8572188ED4A580EA29554B722AAF2BD8A4EC643609EE29A724E060FAD5816F9190C4FD69CB063248E6B47A13A15DA10C318A746842ED0718A9CC27A82452A40E4E454B9396C3D48847F28CE0FBD3C22B0C0E2A76B66299C52AC41579A96DA04312218C139A90A2AA824D0ABF371D289A0798055C8FA524AEEF2653892AC6CF1928320552D85A4ADD13FD8B4C1088F2C47248F7AC7B64324C4953CF7ABB47A304B526894E7A559113F50334A5A3838620D559752546C2D26ADB1D31A4E5B9AB650F9AD86E3EB5D15B2C51280AAB9AE086AF2A12CAC47D2AE5B788665E4B023D08A9E5E6D50DD067A1A5F0897B0A92DF5A4693664571716A9F6A19DD8F606A6B70DE7870C7F3A4A37D4CA50E57A9E802E772706A067DE48AA16D231880AB91E7BD2D193639FD463D93938AA2D10990A9E86B7756B62D1EF02B977B9647DB42D469E873FAC68F242C6488654E49AE6E42C09C835E991BFDA130C2B3EEF46B69D8968973EB8AA5251D0699C0287CE5549CD68DADA5C4FC1040AE962D0A247F957FAD6A43A3A84C9E2AE55125A1A2672274A241154AEAD1E381941AEB2FE116A8C41AE4AF1A4666218E2A2CD94998EB1B83CF1F8D5989DD383CD569B786C8A482E183E1856BAD877669090B106A5DDC7CD554382C08A94382690AF7164FBB95355D8AE39A9198ED2077AAEE7B55C6E361BC01914EC96E3BFAD4058371536FDA066934D4AE4DBA8E038EBCD4AB9C7BD4225079C53918139E94E31BEA2D59657A608A77008A8C31C7149D0E49A567B0D5FA9607348A083D6A20F9FA53FCDCF0053BD9D84AE9D8B05C631CD307B9A62B1CFA52970A696961A4481B0DCD32438E477A8CBE79A70900033D6959F71EC381C8C1A40BC1E6985BD69A5C1EF44935A858771BA82C297008C8A4F21D8F14ACD6A2561A809CD5BB7B276704A360F7C715A3A369F13CEBF68E47A5773F62B7FB3811A8C01D05294925A90E5D8E6AD36DAC400E2A608D2B07526B45F4E590F0302AC25A242B50E49EC4DCAB1DC98C052A734E92E548E4E2A6F2D5CF0A3F2A8A7B21221EC695C4539A762C363558490ED193CD6635A4F0B939C8A9527C0C3536AE3E6E85B9242548AAB9E7AD4325D8EC7351F9BBB9E953662B961A049181356E15006DAAB1BF1C9A995F8C83CD0E37D04C98C2AAD9C50B1F2706A0379B080C69FF6D8D46E0296BB08B28110124D46EA8C722B3EEEE8C89F264541677720251F3F5A766D6C1B97A407F1AAB3425DB39C54BE692DEB5260BAF22A744C486C03E4C679A9C3F38E955D10A54EBCAF4E6AB46363D66F2DB20F35723D6E78D362EDC7B8CD65C8405273CD5713B6FC76A6935BEC2D0BB7578D23EF61F95312E06CC838A80C9195E7154E59B2FB538142490AC2C972EF29C8E29010C720D45BBD697DD69A42BD87331EA2A2967DA39EB4EC64726A0922DFC52551F60E6EE4B14BE68CD3F79E411C5320508B8C54842D572FDA1088C187353801076AA8D22A9C6714EF38E3839A1DEF7624FA1B49A2A6396028FEC10EDF2C95592FE42D90D9156E2D42420E4E2ADAB1DAA840A7368B7111E19580F4CD5578E480E0AFE95B0F7FC609CD674970AEC72452D64C9950B6C57F332BB7A5467681C9A91A12FF00EACF26AE5968CF28DD336052765B984A0D3284781D39AD8D36052C0B283F855A8B48B68DB23923BE6ADA43145C83CD67CF7561D88EE6DD0A9DCA315CF5ECB05A64478DC6BA3BC56961C29AE1B5659E2998383EDEF447E2B1AD28ABDD90CD74D21273554B12D96381554C8C0EEE69DE6EF5C1AE8713AEE4E597D6982420E7B546FB580C1E050C7E518A717D915756346DAEDA26056BABB2949C106B8FB3B662EAEFD0574D657519214715151744725595F63B4B49BF76335A114AAD8E79AC4B37063196FD6AFC790722B1B35A33034DE312C454F7AE3757D25E29CB28382735D5C72330C1A7CB6EB3C7861445D986C7190FEE9029EB521704641AD1BED29D72E9C8AC393CC52C0A918A6EED94A572637421CB30CD42DAE2E30781593717A0BF965B0699E52C801F4EB5564B7DCDA9D9AD4B5752BDEA9DA38AE72ED7C994ABF7E95D12DE471C655474F4AE6F5293CEB8DDE831551DC6F4293C418F4E2A07B74CFA55BB3899DCEEE6ADB58EF3D39A275147E2424EE6761367151193CB1EB9AD23A730E0534E9B85E4F3E94E35105CCD69F72E471559A4626B5469D8273C521B241D85355609D922AEAE67C48CC72455C4B091FA9C8A7B2AC23B5584B820020D5C6574434EFA0D5D34E314A74E651F2F3529BCF4EB4D5BC264C6684AFD05EF959A2953F84E293CB91B2369ABE2725B1C548242C3B714ED67B87333392193B0A985A4ADD0558562CD81814F2D221EB4D5986BB94CD94C4E4FE941B79B38C1AB46671DF349F6861DA93858ABC8A9F669B3D29FF659476AB1F6A66ED4AB3C85B0471424F761ADB52B7D86527923152ADB228C39E6AC6F6FC2A19369349C3B8F7DCB1143085C819A70201E060556825556209C54F90D8C74A57B6886A25CB37092649FA574565AA15C2B1F96B978BE592AE2124F5A86B4D44D763B2DC1D4321C83509259B1593697CF18033915B76FB67018100D6328D88945A1F1404E00153CB6E5132455EB38900C9EB5625489C6D2E296C64D9C85C900E3159B35BBB9CA2D7652E91131DDD6B32EEDD6DC1C0A2FA9272A74E9776738A46B7953DEB5DE456EE2A06CF5ED4D4EFA0EDA19A26957865C5392EB1904E2AC4C14F6AA33C5C7031557BB0E8170C5CEE0D4B14DB86D3555629338C9C54AB032366ADC525622FA97171B79A42A47205566B8DADB4F6A916F13B9153CB2E83DC9C4C53B54BF6CDA3DEAAB4F1919047E7559652CC73CD4FB34F52AE5F6BDCF6C541F6B98B1C1C0AAF2297E01C52C60478DC79A1A5D105C937CAC72CC714D926F286E249FA505D4B6334D3B5F834D4536C9B847379A33C8A78C7355F88D89ED4A9382DB69A685CD725DC0F03AD0EC5109C7E94DE01A5DDB8629DD27A86AD6A568672CC413564124648AAEB0012E738FC6AD021579E686B5D01F742296049CD3873CD3188C645406562FB7B54B498AC4B244B275ED42C6AAB8CD20618C669ACD95E0F35506F61DAC5C89487E78156632376DAAA921230C715346DF356966BA9E8AB125C465572A6B0E594AC849635B72312A6B26E2DC1C9EF52AF7DC4C96DEE4A0041AE86D2E77C7CB572318DAC173C56DDACDB4014A5792B3329DBA9BBE781D0D37CF19ACC373F3523487A83CD472348CAC694974480074A8DD22994870083D8F7AA3F686039A635C37406A15EE063EA9A3F94C5A0236FA1CD73B2131B61B8AED5A50C0EF20D606A5A7AC8DE620E7DABAA13B7C4691A8D6E6402DDB906B434DB3334C0C8481E94B6F02C31EE75CE2B4ECA58E419E07B553972EC2954EC5AF26351B158629D042B0BEE53514A70320E3F1A64575938358377D4CEE6FC37A554726B56DB5708A371AE57CD057AD47F6A21F19A5A05AE7A1DAEA31CBCE40AD04B9565C0615E751DE3AAF0C45489ACCB6E726538F4CD26BB21591E85B971F3104573FAD5ED8DBC4E176197070063AF6AE72E3C4F3CD034713142411BBBD7293CD76D292D3BC99EBB989A5677B326C32E0CF3DD704EFCF506B6EDC35BDB0591817C7354ED2210A79B272C6A705A6618079ADEEB637A6AEB50C124B01C566DFA81973C56E88CC63047CB58FA8057C8C71445DE5A17244162D835A8B8EBD6B0E0251B1823EB5A11CE55706B3C44252772925B22F6E1ED9A89C0233DEA13381D290CC4E7D2B9BDEE8C6D58523AE6AA48E138CD365B83CF3549E5DCD926AE9A93D2426BA892312DCE4D3958F000A63B64D3E32A2BBA1169117D491720E314E5501BA734880E4F34F076839EB4ED606BB01186069C8E77633D69B927048A702038E2949F415F4278142B673C54CDB5B277540BC678A9E3646E36D3E5695C2CC8E54C4795EB55C6F00927357E4198C802B3C9643CF4A9772B4DC58C36735606EDC2A0439EFC5582A30083426DA10D762AC476AAEAC7CCC93C5492CA14F26A9FDA5431145AE87E84ECC37935623BA0542D674926572BD6963620027AD4B5A0E3A9B31CC01C66ADC127CDC9AC781B27906AF46581C006A25B6A8B4AC6E445702B4ED26647C03C573F0B4830706B460988EA0D44DA5AA1F2B3AE827DF160361AA3CC8877C8C715916F72D1B673C5698B81730ED26B28F9984E0D161F564893AF159D7D7D1DC464A9AC8D41668188E4A1ACB5BB910EDE48A9BDD9CEDD997CC8AAFD6A7237A7CB59F12BCB28C0ADD580456F961CD5D9A2548C810B1639A63C5D4115667942E48A8B7975E945DEC53F21B140BD48A90C6A54F14F560ABCD30C8334F9DA07E6519AD83E40EBEB50AE9E5473935B36D08B8936A8AD63A332C3BB19A6A4B725A5D0E41AD8A8E01A84A18C640E6BA29ED0AB631491E94D28CEDE2A9C9DAC2B18D146586EC5135ABC8B81C1AD69ADBC8E318155B0738152DBD907333205ACB1B7CD4AC0A8E95AAF11738C54134185C1149360667985F8A8D9240D900D5C4B701B22A60AB9E40AD5492158A61DD579524D209719E08ABD84E9814D3146C718028B5F57A0CCD9653FC39A9629895E6AD35B215C1C5305A03D0D4B95F4EC26D90BCD8AADE780D9AD136EA38237531608C3729CD117761CC8ADE69C679A8DEE31D6AFF0094AD4C92DE32B8DBCD5AB5EE175B91ADE04601813529D457B53E7D31BA823F3AA9FD9B3E490991F5AD3A1DB1A91EE4EDA86E43CE0D575BCDC70C69CBA64F9E9C53BFB258724F34B950DD54F423017CDCF5ABD113D4715516D8A3E58F4AB01F6F7E2A52D08724CB40E7EB4BB89AAC5891B9681212943EC88B32CEFE31503BE1F834D32617AF35197EF49AB0598D925E724D34CD91C5412BE49C75AAFE6114F95F61587DC39DA40EF4CB44647C96A648E48C814B0B31E4D371276352560D1601E6A3821E724D53371818CF351A6A820241F9BF1A5CBA7BA0A5736F6E0544C101C922B31F58320F9179F7A8A269EE09DED807B54723DD8731727D5A38DB6A10C7EB558DE79C3E66FD699FD9B0A364F5FA9A8E544887157CCB617327B96D2EE254C77F5A8D595E51CF7AA270DCEEFD6A4B60E66C807029C57DE5AB5CE8E0804EEA0F4AD410C712E0281EF8AC48AF7ECEA3D6A29B5690E7078ACF54CDF434AEAE7E6D8B8C5539A08661CB11F4C562B5EBE4B6EA8135260E496CD691B05D3342E23488E73CD46B26E1C556176B7048EF48331BF5E2AD24D0268B0ECE16A2F35C9C0AB2A519300E4D3163C3E40ACDD28484A4D8C58773618D24F6F184E38C54FF00F2D72053A50190E6AD452F850A4D9924F50053A2CEDC30A1C90E46314A3A6722B4BBB075268DB8C834FE71926A25318E9D69E08CF5A2F2B586F7245CECC819FC28919B8207348C76A70690B12066B3490277D89D1DB6F4E6A44675C9C5568E420E7356373123D0D292E8CABDF41E9393D45432AEECF6A7383191834E5024C9CFEB4A3AB04880150060D4D2CAAB6F9193F4A8258FCB1525BB02A5585697BA26CD99AE5A43919A960B20FF0033120D680B78D79E2A40001B6A5EDA31EA431DA47C022A45B540D9038A91180241AB3045E636139350DB5BB04EC4B616514AE3702057556D616514619A0466F5233542CEDBCB8C65467BD3EE6F42700E31532986E6848F63021262880F4D82B35F54B20FB6308DF4C7158775A819E4280F1F5A8C04501B19350A3CDB8D34B73A546130DF173EA2A68DD97A71593A5DCF9120CE4A9AE99AD5278BCC888CFA0A52562B9F42BB95B88F6C8066B365B28F76156ACBAC914803022A7F2F7A8205276B6863522B720B0B278DF7EDC8AB9793A797B1860D3ADE5D802E0FBD56D5A112A8643822A6E72F533248090706A38D255F9700D44649D460E78A7C73BE79C8A2DDC57D449DA45C64531016E735382D3B631576D2C016E41A7143BDC9F438764C1DEBB38FCB78B1C1158105A6C0074A965BD7B51D0ED1DE86FB85D16AE6CE077DC05393C854DA00ACA8F568E57E0FE06A61365F214E3D69736A4B691475484024E38AC53192720D7417EA64889079ACA5858F6A7D4685B28039E6AC5CE9C0AE453ED2331B0DC38357A55ECA69A7603949A0111231CD547E056FEA16A48CE39AC3954AB7229F36BA027D08B7718A6B1E78A5C0DDD714D247639A4E2DB0BE838B023934A18EDE2A2C8638A78DD9C76AB718AB05C7A83D7BD054B1278A09DA0734E401F8069A5D11361F1461874A9FC84F4A96D212DF2E2B463B441F7BAD656B315CE7DA595CE4FE556ADDC85F98553793121F4A9049F2822B77256B16B42F0756E82A3B8608BF5A8A29412477A8A5932719CD676D4D23DCAD29CBE2A2257181D6A49B3D4F1553706C81C1AD62D2DCD1324672A3834AAFBC75A84AB6704D3972BD28BC5B15C9CC8B8E6A266CE7069870C7938A6367760537A68318C7033DEA06724F4A95CF18C556663C8C62AA3EA038381F5F4A1A562BC0C5404F393D29FE6055C11C51649D9136656B89D9783D4D54F989F5AB175223F41CD3A01BB9DBC5351BA337A6C16EC53923815A115C853BBB542022A9C0A8643F2F153656B0B5DCD2790489B855595094CF39ACF49E68DB27A5598AE1DDBE61C54CACBCD94892CED8CCDF3E40AD46448940403350C2C02F029D2CA31B45272BEDA1BA564559E5C7DF354A4980E0743535C3A8CE79354DDB2B9A1733652D08A5970A40354CCC065475A92638E455660BB771AD6104F564B6AC11CD24126771C7B1AD782ED654CE327D2B058FA739A96DAE3C99306AF92DAA052E8CE8ADE6F9BA55EF3D300F02B22DE753C8EF4B73232E08A9926D96EDD0D1173B98E30295A62548AC586EB2C496E45595B8DDDC1A4D36C7643A504D405981F97356130CA7E6A4D80A9DB4F660B4208E7C361BAD5B18C6475ACF9A328DBBD69D15DB236D65E3D69C9595D02D0D0E08C9A637D78A4591594629A4FCC6B2B5D8EE4B1101719AB2ADC75AAA853069C1B27AE055EE3B36CB45B70EB4C4611B724FE1402A538A6B7246292693D4AB16DDA39630029CF6CD55F29D4FA539262BC63A5580C26504F5A4AEB725EDA10249C1539245488493DE93CA2ADB80CFE14F50DFC4314A6D7516AC9E084CEE0574367651DBA863C9AC2818C24135A42F82C592DFAD437D00D1B8B95894946AE76FB502CC42F5355EFB53DE4AA37EB55600647CBF2688C2FAB6264A82477CE2B56087728DDC556857E6031C56B44AA105549C5225BB0E01634E3AD6AD85EBC4A06722B18B132631C55C42540DA6B9E5A8D5EC7570F9174A0BAAE7E9563EC70C2BBF008AE72DAF190ED1CD680BC99E3DBCE295ECB525AD0B81ED1D8FCA01FA546F6F048DD6B3B69EC79AB2818A524F5307148926D2EC5B9E777FBD4C4D16D5C72C0531B7AF2335197994E79C536EC4B48B91E91029F948C55916B1C438231591F6A9030018FE74E79E50A7E634EF7EA2B58D1690274606A095D66428FD0D62B5DBA92726AD5ADCA38FDE1C134927B93228DCDAC96F30787257DAAEDBEA5D124E2B5238239908C83591A9E97220668C647B55BEC4A46B4663953820FE34D36C03648E2B918351BAB39029E83D6BA5B3D6A19D42C8429F7351CAD0683EEC0450CA7A50B2B491865E6A6B8104D09008FCEB3ED59918A86E050936176C7CCF249952BFA5655C59C872C178ADF555272719A8AEDD522385AAB69A899CACB68EFD062A94914919C1ADE1731863B96B3EFA442C4A8EB5516EDA05FB19D1ABE739A91A53D075A804AF8E8699F68C0248C1A5D4B4582DF2E5B8A7594804DD6A83DCEE1EF572CD7690C7BD5D95F50BF447596410A86C0AB8C16B26D1F0A306AF99B68CEE19A8D49DB6394201E7AD26483E82BADBAF0F595AC4079EE643F41FA573BA959C9689B810CB9ED5B45AD8B534F429A3ED9393D6866CBF5AA693FCD922A6F3958567349B3556167271D7355C80B820D3D987704D42E771C018AB8A8AD6C512071D73417CF41FA541B70302A4423047F4AA9A4F6403B6F524D46EE40C034E7236E455691F6216AA5D99495C7190203B8D5392F17918CD56B8BB62318CE6ABE5BA9156A36668A9DF72E4531958861C0AB0D871B4567249B4F435761DCC33DAA249A7A113834491D9A86CBF3561515382001491151D4E689FE63F2D46CF731E56F51AFB09F94534C2A47CC715011286CED38FA54725C30EA0E7D2AF5D89E5B90DCA95CF3C0A2D1999B9A826BA0E36B020D3EDA5017E51C9A25156B33482B9AC93F943079A46906DDD550331C0EB4F9411177A86B435B3B95E590BB13559E5038A7E0B72735198F775CD546C90DB446C7350B6D752A3822A720275CE2A07DA4920D6BEA26AE880A051D6A3CFB0E29CE707B9A89C8073D29D9EC5345FB39F630E6B5655F362CE6B994728C1949AE82D98CB077E95536FA0A2EFB99326E864216A58A765201A9648099880334F6B17080ED3F95294AC5356D8912EC018A985C657682335523B499CE446DF95598AC652725081512B5B51C5E9A8E6914637F3504CF1E32303156CE9B339F9413F4A58343919FE73F854AD351BBD8CD178CA70B9A9E1BA77620F4AD43A205FE1FD29C9A3C4BEB44A49E89D888AEE56856593EEA12BEC33565E2741F3230FAA91FCEBD07C1D636F6961E6EC0CECEDF330C91838ADBBFB3B4D4594CB0A36DF515CD3AAA2EC852A8F6B1E48BF7300734A848E99CD7A75F687A5CB6A505A421F1C301822B87974ED8E50718A50AA9E838CEE63167DC4E29525607157A7D324284AB74ACE6B79933804E3D2B6E752564691D8B91DDAFDD38CD4A2652D927159A21919778539A9024980CC0D1CB162B3347ED0318623154E6BBDD90A4D579A751C1CE6AA1B8456E0D0A9A7BEA4B2D470BBC9935AD6D1851CE2B07FB40A9181F8D28D425240C900D36A6F426CDEE756258C0E319A0DD8FBA0D60A3995796C8AB308238151EEBD823136E2949F7AB4B74BF70F5AA103622F7AA26E365D649E01A8946CB98B8BB3D4EE6CDA048919C724735A11DCDA33ED18AE35B5273000A29D6575217DDCD67CADAB9CD2D59DB4725897C1001AB12FD9801B48C572A8EDF7B2735695E72327349BD3426DDCDD55B79318619AB06CE37030456042640D939AD18EE4A0E49A2DE64D8B27468CB6E0DFA523E8EA54FCD4897C49EBC512DFAA8C6EFD69DD5C12667C9A34684E5EA33A60C8D9FCAACB7EFB243E4FD6B3AE6CAE33BD01FA8A7A3D07C9DD92FD9668E50437435AB1A34AA031CD72335EDF5B920B1C0F5E6B42CB539CC60F26AA4AC84E3A6E69DF6876F748481B1BD540AE5EE747BCB397821D7B15CD6F1D56656C11C9F5A71BEDEB87504D09B48CDC2E60457334476C8C47D6AC4775B5B39A92EB4B9AFE40F080A3DF8ACCB9827B2936480FD6A53B89591B2B7A0A8F9B9A93CF5950E4E4D734AD2939F9AA55BC784E4934D5C4DBE86E35A43226E3806B36E921589978C8AA33EA533F08E40AA8B70F2B329249A141BD8564899668B18DB9A89A14933C63355BCC317CA50E053A3BD0C718C55B83BDD6A53D3543D6D31FC356EDA304E2A05999CE0F4AB819604DC064D2E6EE1A177CE48D028E31514B7609C6FE3EB59F2BC930F97350C96F36DC9CD1A3DC2E7FFFD9" Andrea5jpg_bin$ = SPACE$(LEN(Andrea5jpg$) \ 2) FOR count& = 1 TO LEN(Andrea5jpg_bin$) ASC(Andrea5jpg_bin$, count&) = VAL("&H" + MID$(Andrea5jpg$, (count& - 1) * 2 + 1, 2)) NEXT count& OPEN "splash_Andrea5.jpg" FOR BINARY AS #1 PUT #1, , Andrea5jpg_bin$ CLOSE #1 splash& = _LOADIMAGE("splash_Andrea5.jpg", 32) SCREEN splash& _DELAY 5 SCREEN _NEWIMAGE(640, 480, 32) KILL "splash_Andrea5.jpg" _FREEIMAGE splash& PRINT "CONTINUE YOUR PROGRAM HERE" PRINT " This is a program for Andrea, Es una programa para Andrea" _DELAY 2 --------------------- End Code ------------ |
She's a real cutie!by Pete (no login)Nice example program of how QB64 can render JPEGS from the binary file. Pete :) |
Thanks, and this leads too ..by (Login GarryRicketson)R Thanks, it also works for png, and I imagine bmp. I am thinking this could be used to load various images, all self contained in the code.
Also I wonder if it could be used to load a image as a sprite sheet, array,.. But I am not sure, yet exactly how to explain what I mean, I guess I need to try some things, and then maybe I can be more clear, |
*Adorable! I'm surprised you could post that lo-o-o-o-o-ong string here!by (Login qb432l)R * |
*That surprised me tooby (Login GarryRicketson)R |
* Long string capability is one of the few N54 posting perks we have.by Pete (no login) |
|
Bright White Background Color in QuickBASIC?by (no login)I'd like to create a routine that displays black text against a background that alternates between so-called "white" (actually gray) and "bright white." But when I enter the numbers for those two colors as backgrounds, they both display as light gray. Is there a way to get a bright white background color, in addition to the so-called "white" in QuickBASIC? Will in Seattle a.k.a. "Clueless" |
palette in screen 0by mn64 (no login)screen 0 color 0, 7 print "hello, qb paperwhite" palette 7, 63 |
and to get white on bright white...by mn64 (no login)screen 0 color 0, 7 print "hello, qb paperwhite" palette 7, 63 |
sorry, copy didnt copy, hereby mn64 (no login)screen 0 color 7, 1 print "hello, qb paperwhite" palette 1, 63 |
Also...by (Login qb432l)R SCREEN 0
PALETTE 1, 63 COLOR 0, 1 CLS LOCATE 12, 16 PRINT "Black printing on alternating whites background" DO _DELAY 1 IF cl = 7 THEN cl = 63 ELSE cl = 7 PALETTE 1, cl LOOP WHILE INKEY$ = "" SYSTEM In SCREEN 0, only attributes 0 through 7 can be used as background color, but attributes 0 through 15 can be used as foreground. Also, CLS following a COLOR statement will make the entire screen background color. -Bob |
Hey! That worked! (Sort of)by (no login)Many thanks, Bob. Now I feel like I'm finally in the ballpark. Your code displayed first one screen with bright white background, and then after I pressed a key, it displayed a second screen, with the plain "white" (really gray) background. So, you've taught me that my old beater of a laptop actually is capable of displaying the combination of text and background colors that I'm chasing after. Now, the question is, how to get lines of text to alternate between those two background colors, like horizontal zebra stripes? I'm sure the sticking point for me is that I don't understand the distinction between what the COLOR, PALETTE and SCREEN statements do. So it looks like I'm in need or a tutorial. I've tried to find that's comprehensible to me on the web, but I'm afraid the ones I've been able to turn up so far use a lot of technical jargon that goes right by me. If QuickBASIC were a car, I would need a tutorial on the level of "press the gas pedal with your foot when you want to go faster." Will in Seattle a.k.a. "Clueless" |
For alternating background colors...by (Login qb432l)R Just set attribute 1 to bright white, and then use 7 as your second background:
SCREEN 0 PALETTE 1, 63 'bright white COLOR 0, 7 PRINT "This is black on white" COLOR 0, 1 PRINT "This is black on bright white" If you want the background color to extend right across the screen, then use: COLOR 0, 1 'for example PRINT SPACE$(80); 'the semi-colon prevents scrolling Then LOCATE and PRINT on the background you've just created. The SCREEN statement simply establishes a screen mode. SCREEN 0 is text mode only, other screen modes are graphics (as well as text). The COLOR statement establishes the color in which you want to print, as well as the background color you want to print on. So, in the example... COLOR 0, 7 ...you are stating that you want to print in black (0) on a white background (7). The first number represents foreground color, the second, background. The PALETTE statement establishes what hue to assign to each color number (attribute). An attribute is like a variable (0-15) to which you can assign any of 64 different hues in text mode. Then when you use COLOR 1, for example, you're really asking to use the hue that you've assigned to attribute 1. In most cases, the default palette is more than sufficient, but in your case, since you wanted a bright white background, we had to assign bright white (63) to a background attribute (0-7). -Bob
|
You want stripes? Here are stripes...by Solitaire (Login Solitaire1)S All in SCREEN 0: CLS PRINT "Press Enter after each display of stripes to see the next one..." INPUT "", E$ CLS 'vertical stripes FOR x = 1 TO 77 COLOR , x / 5 FOR y = 1 TO 23 LOCATE y, x PRINT " " NEXT y NEXT x INPUT "", E$ CLS 'horizontal ribbons y = 0 FOR x = 2 TO 23 STEP 4 y = y + 1 COLOR , y LOCATE x, 1 PRINT SPACE$(80) NEXT x INPUT "", E$ CLS ' horizontal stripes z = 0 FOR x = 1 TO 24 STEP 4 z = z + 1 FOR y = 1 TO 4 COLOR , z LOCATE x + y, 1 PRINT SPACE$(80) NEXT y NEXT x INPUT "", E$ CLS 'multicolored ribbons z = 0 FOR x = 1 TO 77 z = z + 1 IF z = 16 THEN z = 1 COLOR , z FOR y = 1 TO 23 STEP 4 LOCATE y, x PRINT " " NEXT y NEXT x INPUT "", E$ CLS 'horizontal ribbons z = 0 FOR x = 1 TO 24 STEP 3 z = z + 1 IF z = 8 THEN z = 1 COLOR , z LOCATE x, 1 PRINT SPACE$(80) NEXT x INPUT "", E$ CLS ' plaid on black background z = 0 FOR x = 4 TO 77 STEP 8 'vertical ribbons z = z + 1 IF z = 8 THEN z = 1 COLOR , z FOR y = 1 TO 23 LOCATE y, x PRINT " " NEXT y NEXT x y = 0 FOR x = 2 TO 23 STEP 4 'horizontal ribbons y = y + 1 COLOR , y LOCATE x, 1 PRINT SPACE$(80) NEXT x INPUT "", E$ CLS ' vertical stripes alternating width FOR x = 1 TO 77 STEP 2 COLOR , x / 5 FOR y = 1 TO 23 LOCATE y, x PRINT " " NEXT y NEXT x INPUT "", E$ CLS ' vertical stripes narrow z = 0 FOR x = 1 TO 79 STEP 3 z = z + 1 IF z = 8 THEN z = 1 COLOR , z FOR y = 1 TO 23 LOCATE y, x PRINT " " 'add extra space for wider stripe NEXT y NEXT x INPUT "", E$ ' uses VIEW PRINT to display multicolored screen with strings COLOR 11, 2 CLS LOCATE 21, 15 PRINT "Solitaire" VIEW PRINT 1 TO 18 COLOR 14, 5 CLS LOCATE 15, 15 PRINT "See you later" VIEW PRINT 1 TO 12 COLOR 13, 6 CLS LOCATE 9, 15 PRINT "Goodbye" VIEW PRINT 1 TO 6 COLOR 10, 3 CLS LOCATE 3, 15 PRINT "Hello" COLOR 7, 0 END
|
LSD Flashbacksby (no login)Thanks, Solitaire! That was a trip! But I'm afraid it's a bit over the top for my SEEFIRST.BAS program. ;) |
i've got that tutorial, it's aimed at newbies and will take you farby mn64 (no login)http://www.network54.com/Realm/QBZips/mpgitqbi.zip let me know if the colors don't suit you, i'll help you fix them. |
Thanks, menn!by (no login)I just downloaded it! |
What does palette 7, 63 do?by (no login)I've been trying to expand your little program to produce two lines, one under the other, that would print like this: "COLOR 0, 7 should display black text on plain white background" "COLOR 0, 15 should display black text on bright white background" But the backgrounds of both lines come out the same color of white. Perhaps the limitation is in the display on my old Toshiba Satellite 2545XCDT, or the video card inside it? I'm running QuickBASIC under MS-DOS 6.21 Here's my failed attempt: ============================================================================== 'palette in screen 0 'by mn64 (no login) 'Modified by Clueless in Seattle 01-01-2013 to try to print lines 'alternating between plain white and bright white backgrounds SCREEN 0 COLOR 0, 7 PRINT "COLOR 0, 7 should display black text on plain white background" COLOR 0, 15 PRINT "COLOR 0, 15 should display black text on bright white background" PALETTE 7, 63 PRINT "Did that work?" ============================================================================== Where have I gone wrong? Will in Seattle a.k.a. "Clueless" |
you have to sacrifice an attribute. it doesn't have to be 7.by mn64 (no login)i bet i get what you're doing, and i alternate color 7 and color 3 for that :) but then there is no color 7 and color 3, or color 15. those are just color-holders. by default, 7 holds white and 3 holds cyan, and 15 holds bright white but if you use it as a background, you get 7 anyway. i think when i answered you, i tried using palette on 15 first. i don't think it worked, because if you change 15 you still get 7 when you use 15 as a background. so using palette on 15 all day won't change the background color. that means using it on colors 8, 9, 10, 11, 12, 13 and 14 won't work either. you can only use 0-7 as backgrounds, or you will get those colors anyway. so we changed 7 to bright. but you want to still use it. okay, how about color 2? use palette to change color 2 to bright white, and alternate 2 and 7: SCREEN 0 palette 2, 63 color 7, 2 print "hi" color 0, 7 print "hi" use palette once, after that it's redundant (unless you're changing to other colors instead.) |
Thanks, menn! That did the trick!by (Login Clueless_in_Seattle)And thanks to everyone who has contributed ideas and code samples.
You probably guessed right, menn, about what I'm up to with this. I want to modify my SEEFIRST.BAS display so that the background color alternates back and forth with each subsequent file display like this: FILENAME.001 This is 1st line of text from FILENAME.001 [white background] FILENAME.002 This is 1st line of text from FILENAME.002 [grey background] FILENAME.003 This is 1st line of text from FILENAME.003 [white background] etc., etc., Will in Seattle a.k.a. "Clueless" |
*you're very welcomeby mn64 (no login) |
Speaking of palettes, menno, did you ever...by (Login Kewbie)R figure out a way to sort those colors to my specs? Just kidding, I know that we agreed to give it up. How's life been treating you? Kew |
AAAAAAAAAAAAAAAAAAAAAAA!by mn64 (no login)long freaking time no see! ...no, these days everyone uses _RGB and redoes the palette instead of trying to sort it. but i did sort them in the shape of a heart, once :D |
*Cool! I don't suppose you kept the code for the heart?by (Login Kewbie)R |
i thought you'd get the reference... it was obscure though :)by mn64 (no login)i didn't actually sort the colors "in the shape of a heart." that would be a cool project, or maybe it would be crap. :) good to see you! |
You can only get it in SCREEN 9by Solitaire (Login Solitaire1)S This will not work in Windows newer than XP, which do not allow full-screen mode. It will work with QB64. SCREEN 9 'for full-screen mode to compare results SCREEN 0 COLOR 1, 15 CLS PRINT "SCREEN 0: Backcolor is 15, Forecolor is 1" INPUT "", E$ SCREEN 9 COLOR 1, 63 PRINT "SCREEN 9: Backcolor is 63, Forecolor is 1" INPUT "", E$ SCREEN 0 COLOR 7, 0 'return to default colors before ending END |
you can do it in screen 12, but remember he sometimes uses actual DOSby mn64 (no login)to do it in screen 12, just use PALETTE to change attribute 0 to bright white. it ought to be something like... PALETTE 0, 63 + 63*256 + 63*256^2 'haven't tested it, just typing it in. if this is one of the times he's using a real version of dos, he should have expected results. if screen 9 works in windows xp i can't guess why 12 wouldn't. |
It depends on which version of XP...by (Login qb432l)R XP 64-bit won't run QBasic graphics programs, but 32-bit will.
-Bob |
*plus there is dosbox, though as ted says it might be "inferior" to qb64by mn64 (no login) |
Ted's right...by (Login qb432l)R QBasic under DOSBox is flakey. Speed issues have always been a problem, no matter how much you tweek it. And now, under W7, I've also encountered color anomalies, in both the IDE and with text mode programs. Sometimes they clear up after running the program, sometimes not. I'm afraid the writing is on the wall for QBasic. Thank goodness there's QB64.
-Bob |
honestly, i've never had a problemby mn64 (no login)i don't find ted's take on it so controversial-- for running qbasic programs, qb64 *is* better than qb in dosbox. except for programs that use SOUND, qb64 (the sdl version at least) is total crap for those. (i don't know what kind of specs would make that not so.) but qb64 is generally superior to qb anyway. now, this could be a windows thing. obviously dosbox isn't made for running qb, it's made for dos programs in general (primarily dos games) and it works pretty well in my experience. that doesn't make ted wrong, of course. |
DosBoxQB,Linuxby (Login GarryRicketson)R DosBox has always worked quite well for me, for QB stuff, using linux, but to be honest, I have never been able to run any qb64, using dosbox, it says that is a windows program,
QB programs are for dos,dos box seems to work fine, for any programs that are for Dos, to me anyway. from Garry From Garry http://creativeminds.webege.com/SMF/index.php |
qb64 is a windows programby mn64 (no login)it's also a mac program and a gnu/linux program. there is no dos version of qb64 (though a 64-bit version of dos would be interesting... like a horse and buggy that could do vtol.) you can only run dos programs in dosbox. |
* Happy New Year!by (no login) |
Note to Garry...by Pete (no login)Hi Garry, As promised, Jan 1st, I updated Groups. You are now in the "R" Group, which means you can now edit your posts, use photobucket to post pics, etc. Pete |
Thank youby (Login GarryRicketson)R Yes I also got a notice in my e-mail,
also Happy New Year |
Hey, Pete and everyone, yes, Happy New Year...by (Login qb432l)R I must say that January 1st looks great without a hangover. Us old dudes tend to go to bed early, even on New Year's eve, unlike our younger selves. As a result, no excessive drinking and no hangover, no trying to remember where you parked your car before you wisely took a taxi home. Also no New Year's resolutions to live up to. To be honest, I can't remember when I made my last resolution, but I know for a fact that, whatever it was, I didn't keep it.
Just a few of the advantages of senior-citizenship. -Bob |
|
Us old dudesby (Login GarryRicketson)R "Us old dudes tend to go to bed early,"
Al though I do go to bed early, I usually get up pretty early, but then I am not really that old yet (59). By the grace of God, I have not had a hangover, in 28 years, http://creativeminds.webege.com/SMF/index.php?board=7.0 I quit drinking when I was younger, if I hadn't I wouldn't be here today, This year (New Years eve) was kind of depressing, cause I am not at home, but my wife called my, so that helped, she callled at 10:pm , I was just about to go to bed, by the time we finished talking, it was already 11:30 ! Anyway, again, happy new year every one,.. |
Us old dudes, reduxby (no login)Thanks, Bob, for bringing me my first smile of the new year. I got a big grin on my face when I read your comment: "Us old dudes tend to go to bed early, even on New Year's eve, unlike our younger selves" As for me, I was in bed last night at 8:30 (and awake this morning at 4:30). And like you, I'm happy to have left partying and hangovers in the trash bins of yesteryear. I'm well into my seventieth year now, and have been struggling against disabling chronic illness for the last twenty years, so I can no longer afford to squander my time or energy like I thought I could get away with back when I was a youngster. It's a beautiful sunny (albeit smoggy) winter morning here in Seattle, and I feel blessed to be able to enjoy it working at my laptop in my daybed, instead of nursing one of those horrible hangovers I used to call "The Holy Terrors." Thanks for that reminder and for cheering me up on the first day, not just of the new year, but of the rest of my life, Will in Seattle a.k.a. "Clueless" |
Happy New Year one and all!by Solitaire (Login Solitaire1)S It looks like I'm the oldest one on this forum, at the age of 75, and starting to feel my years.
I'm still actively teaching an introductory course on programming at the college level. I started out years ago with QBasic, but had to switch to Visual Basic when the new Windows OS would no longer work in full-screen mode. With each new version of .NET, we had to upgrade to the latest VB.NET version. Now my supervisor asked me to switch to C++/C#, since that's where most of the jobs are and we need to prepare the students for future employment. I wrote my own course syllabus and spent years preparing hundreds of original little demo programs to introduce each new concept. I placed the demos into a WORD document, arranging the code along with comments, explanations, and original lab problems for each class session. It became a substitute for a textbook, and each class I would print and hand out several pages from my document. I would revise the demos and the text document each semester as I discovered new ways to make improvements and additions. I also prepared and handed out original supplementary material. When preparing a new demo, for simplicity I sometimes write the code in QB first, and then translate it into VB code. I teach new concepts using Console applications for the most part, and then reinforce the concept using Windows Forms applications. It may take hundreds of hours for me to revise my demos and documents, and I'm hoping to have it ready in time for the Fall semester. I'm just making a few revisions to the Spring semester material, still using Visual Basic. The last day of the semester (as I have been doing for years) includes an introduction to C#. Uploaded a photo to Photobucket but unable to place it here.
|
*Just paste the link to your Photobucket pics in the message box.by Pete (no login) |
Where do I get the link?by Solitaire (Login Solitaire1)S I don't see the option for it. At Photobucket, I can just upload, not download. I tried copying the url on top when I got to my photo, but it didn't work when I pasted it here. |
Screen Shotby (Login GarryRicketson)R I am going to see if I can get a screen shot, To explain, but also
if you select the image, on photobucket, then right click your mouse, You should get sort of a "drop down window" that shows various tags, select and copy the one that says "image tag",
And this,
Down at the bottom, where it says URL, and has the mouse pointer, you should be able to select and copy that,then paste it into your post, Hope this helps. from Garry |
Photo of myselfby Solitaire (Login Solitaire1)S Thanks, I think I got it now.
This is a picture of myself taken about 10 years ago. I use it for all my other forum profiles. I do look a lot younger than my age. I'm 75 now. People are surprised when I tell them how old I am. It's all in the genes. ![]()
|
*Looks like you got images figured outby (Login GarryRicketson)R Looks like you figured it out, Based on the photo, I would look like I am 90, and I am only 59, you look younger then me.! |
Solitaire is dyslexic...by Pete (no login)She's really only 57! Kidding aside, I picked up on that looks a lot younger than the age she posted, too. I have a pic that does that for me, of course in my case, I took it 30 years ago. It's hanging on the wall, behind my desk. The photo keeps looking less and less like me all the time, and more and more like my son. I keep telling him I'll sell it to him in a few years, he keeps telling me by that time, he'll inherit it. Not sure where he got his snarky sense of humor from, oh well Pete :) |
*You've got that backwards, Dorian (nice to meet you, Solitaire - very nice picture).by (Login qb432l)R * |
Can you help me figure out how to insert images?by (no login)> Garry Ricketson (Login GarryRicketson) > R > Posted Jan 1, 2013 3:59 PM > > *Looks like you got images figured out I don't have a login account. Do I need to create one if I want to insert images into my posts? Will in Seattle a.k.a. "Clueless" |
*i think you just post the urlby mn64 (no login) |
login account, posting imagesby (no login) All though I do have a loggin acount, I am not logged in, and this seemed to work fine, I just pasted the URL in,as Mn says, Image below http://www.garryricketsonartworks.org/granite_roses.JPG I think I read a FAQ discussion about this, I will see if I can find it again, and get back to here with a link to the thread, for more details. |
login account, posting imagesby Garry (no login) Well sorry, when I clicked preview, it lookded like that was going to work, so I guess you do need to be logged in, and also I am pretty sure it has to be photobucket.com where the image is stored, so you would need to start a account with them too,..I will get back again with more details. from Garry Let's see if this works http://i1140.photobucket.com/albums/n566/GarryRicketson/th_QB64-1.png |
Posting photos,Now I am logged inby (Login GarryRicketson)R Now that I am logged in, I do see the option to submit photos, So, that means you do need to start a loggin account, and be logged in, of course though, you can just paste in the URL anyway, and if people want to see the photo, they will follow the link, and look at it. But to actually be viewable as part of the post, you would need to be logged in,
EDITED: Apparently it dose not have to be photobucket. END EDIT and also upload the image to photobucket.com,you will need to start a account with them too, but it is for free.However, you would need some where to store the photo, or image, photobucket.com is free, and I recommend that. This 1st image is not at photobucket, and probabley not visable. Edited: I was surprised to see it did work, so I guess it dose not have to be photobucket, I had just pasted the URL in. However this one should show, ![]() I hope this makes sense, if not feel free to tell me, and I will try to explain better. I couldn't find anything in the FAQ's maybe I will try to write some explanation, and submit it there,..? from Garry From Garry http://creativeminds.webege.com/SMF/index.php
|
My work stationby (Login Clueless_in_Seattle)I'm going to try to insert a photo. I'm not sure it will work. The "preview" of this message doesn't show the photo. Here I am working in my daybed. All my equipment consists of hand-me-downs from FreeCycleSeattle. These days I'm working on a hand-me-down laptop with a dead display, so I have it plugged into a monitor (hand-me-down, of course!) on a cart (also hand-down) next to my bed (do I have to add that the bed is also a hand-me-down from FreeCycleSeattle? I don't know how I'd get by were it not for the kindness of strangers). Off to my right (your left as you look at the photo) you can see my old (hand-me-down)Toshiba laptop on which I run MS-DOS 6.21. I use steel broiler pans (hand-me-downs, what else?) under these laptops as makeshift cooling trays, to try to dissipate some of the heat that builds up when I rest them on a pillow on my lap in bed. Switching back and forth between the two computers is a tiresome chore, because the steel broiler pans are so heavy, and I suffer from chronic muscle and joint pain. But playing with these computers is an absorbing pastime that keeps me busy while resting in bed, where I spend a considerable part of each day these days. Will in Seattle a.k.a. "Clueless" |
If at first you don't succeed....by (Login Clueless_in_Seattle) .html |
Finally!by (Login Clueless_in_Seattle)Now if I can only remember how to do this next time:
1. Upload photo to PhotoBucket 2. In PhotoBucket click on HTML code to right of photo 3. Past link into message: ![]() |
nice setupby mn64 (no login)i guess with the two computer screens in front of you, it doesn't matter if the clock radio is on its side. i can't even tell if it's on. |
Congratulationsby (Login GarryRicketson)R That is great, you also explain it in a much simpler,clear way then I did, I am not too good at explaining things,
but glad to see you got it, I have mentioned it before, but I had dropped out of computers, back at a time when I was just using Dos, then when I got back into them, a lot of these new things had me completely confused,..but some of them are pretty good,.. ok well take care and enjoy your self, from Garry |
*My pleasure, CIS! Lots of smiles around here :-)by (Login qb432l)R * |
happy new year, thebob... have a quick demoby mn64 (no login)it uses the textmode-flavor routines on your graphics forum http://www.network54.com/Forum/648955/message/1357063517/actually+solitaire+wrote+an+operating+system+once... |
*whoa... sorry about the front page. michael or solitaire, if you can fix the url thereby mn64 (no login)(i forgot how much you can accidentally do to the layout here... eeeeee.) |
Praeludium B-dur (Das Wohltemperierte Klavier Teil 1)by J.S. Bach (no login)http://www.youtube.com/watch?v=zoH0JumyFrE x$ = "t92 l32 o3b->f>d<f<a>f>c<f<b->f>d<f<f>a>f<a<g>db-d<f>dad<g>db-d<d>f>d<f" x$ = x$ + "o3e-b->g<b-db->f<b-e-b->g<b-<b->>db-d<c>de-d<<b->>dgd<<a>>cfc<<f>a>e-<a" x$ = x$ + "<b->>dfd<fb->d<b-dfb-f<b->dfd<l32 g>def+gab->c<b-gab->cdef" x$ = x$ + "cege<g>cec<eg>c<gaege<a>e-fgab>cdc<ab>cdefg" x$ = x$ + "<d->faf<a>dfd<fa>d<adfaf<b->f>d<f<g>f>b-<f<a>f>c<f<f>f>e-<f" x$ = x$ + "<b->f>d<f<g>fb-f<a>f>c<f<f>f>e-<f<b->f>d<f<b>g>f<gcg>e<gc+a>g<a" x$ = x$ + "da>f<a<d>b->a<b-<e>b->g<b-e>cb-c<f>cac<<f>>d>c<d<<g>>db-d<g>e>d<e" x$ = x$ + "<a>cdefgab->c<b-agfe-dcd<b-agfe-dcde-dc<b-agfe>>cb-c<<f>>cac<<d>b->a<b-<e>b->g<b-<f>a>g<a<a>a>f<a<b->g>f<gcg>e<g" x$ = x$ + "<f>a>cfc<a>fc<afa>c<af>c<afcfedc<b-agfa>cfa>ce-g-<<l4d" y$ = "o2>dfb->dab->df" 'arpeggiated x$ = x$ + "l32" + y$ + "l32" + y$ + "l16 o2b>dg>dgb>df" x$ = x$ + "l32ga-gfe-de-fe-dc<b>cdc<bagabagfe-dc<b-a-efe-dc<b-a-gfe-d" y$ = "o3c>e-g>cgb->ce-" x$ = x$ + "l32" + y$ + "l32" + y$ + "l16o3fa>cfa>ce-" x$ = x$ + "o3l32cde-fga-b-agfda-b->cdc<b-ab->cde-fe-dcde-fga" x$ = x$ + "b->cde-fgafl8>d" y$ = "o2b->dfb->fa-b->d" x$ = x$ + "l32" + y$ + "l32" + y$ + "l16o3e-gb->egb->d" x$ = x$ + "l32o3egb->gb->d-" + "l32o3e-g>cgb->c" x$ = x$ + "l32o3fa>ce-fa>c " x$ = x$ + "o4 fd<b-ab->df<dfd<b-ab->df>b<a-fdb<af>d" x$ = x$ + "l32o4e-de-dcde-dc<b-ab->c<b-agfgagfe-de-fe-de-dc" x$ = x$ + "l32o2b->dfd dfb-f fb->d<b- b->dfd dfb-f fb->d<b->dfd l8b-" x$ = x$ + "l4o2b-" PLAY x$ |
|
Merry Christmas - Christmas comes just once a year...by Pete (no login)Christmas comes just once a year But every day, our forum's here From January through December It's here for every forum member And while this site may not be growing Thanks to all, who keep it going Let's try and treat each other right Merry Christmas to all, and to all a goodnight ---------------------------------------------- Wow, what did the wife put in the eggnog this year? Pete :) |
*and if win8 leaves you maligned, at least free bootloaders are signedby mn64 (no login) |
Michael, go home!by Pete (no login)You're making me look like Scrooge. I told you you could have x-mas off! Best wishes to you and your family this day. I hope you can get that religious rift repaired or behind you in the coming new year. Quite honestly, and solely from my perspective from knowing you from your post here over many years, you're too good of an individual to be cast into a mold. Merry Christmas, Pete |
|
...by gopus (no login)I bet you this was the first thing you did on Christmas Day, WASN'T IT??!? WASN'T IT??!?!?! |
there's a bunch of things pitt could do to make his effect work, here's a couple ideasby mn64 (no login)i haven't looked at the code, so i'm not sure the best method for his project. * how many spotlights are there? just 2? he could combine the spotlights into a single (dynamic) graphic, and then use that. voila, no overlap. * instead of adding the filter to the image, he could copy the regions from the image to a new black background. * a sort of combination of 1 and 2 * place a circle around each spotlight and do collision detection. make sure the filter routine refuses to draw in that circle region. but this will make one spotlight better formed (more evenly faded) than the other. it wouldn't be so great. |
I'm trying to recreate lost QBASIC programby (no login)Back in the early 90s I wrote a short program in either QBASIC or QuickBASIC (I can't recall which). I first called the program SEEFIRST.BAS and later renamed it CFIRST.BAS and eventually compiled it into CFIRST.EXE. I wrote the program to run under MS-DOS 6.21. I wrote it because I was unable to find a DOS program equivalent to a CP/M program called DIRFIRST.COM. DIRFIRST.COM produced a sorted directory of the first line(s) of text files. It was very helpful in CP/M, what with the 8.3 filename limitation. When I would put an identifying header line (or lines) at the top of each of my text files, DIRFIRST would then display a sorted directory, showing those header lines next to the filenames, like this: FILENAME.001 This is the first line of FILENAME.001 FILENAME.002 This is the first line of FILENAME.002 FILENAME.003 This is the first line of FILENAME.003 etc., etc., etc., So I had a primitive kind of long filename system. In the last few years I've taken up MS-DOS again, as a way to escape the kludgy complexity of Windows software, and have set up a little hand-me-down laptop to use as an MS-DOS text-editor. I dug out my old CFIRST.EXE program, and the BRUN45.EXE file, and placed them in my DOS utilities directory. But when I try to run CFIRST.EXE the program stalls on a blank white screen. And I have to kill it with ^C. When I press ^C I get this error message: "File not found in module SEEFIRST at address 1F9C:0361" "Hit any key to return to system" I think I may have forgotten what parameters to enter at the DOS command line when running CFIRST.EXE. So I tried to find the code I wrote years ago, or any notes I might have made. I hunted around for my old disks and printouts with the code but haven't been able to find them. And all my BASIC manuals are missing too. I'm afraid I tossed all my BASIC stuff years ago when I was trying to clean up the boxes of old stuff piled up in the back bedroom All I was able to find was an empty ring binder with beat up divider tabs labeled labeled QBASIC, GWBASIC, MBASIC, etc. and a single scrap of a printout with what looks like QBASIC code on it. All the rest of the contents of that binder are long gone. St this point, since the old program doesn't work anyway, I think the best course to take is to just try to recreate it from scratch. However it's been over a decade (probably more like nearly two decades) since I last dabbled in BASIC programming. And I no longer have my manuals. So I'm going to need some coaching to get started on this project. Would this be an appropriate forum for me to start in? If so, I'd like to start by posting an outline of the steps I believe my program would have to go through to achieve the desired output to the screen of my laptop. And then get your feedback on what I might be overlooking, or what might be superfluous or out of order, etc. Let me know if you'd be willing to work with me on this project. Or, in the event that this wouldn't be the best place to seek such help, could you refer me to a forum that might be better suited to this kind of work? Will in Seattle a.k.a. "Clueless" |
You are welcome to start the project here.by Pete (no login)It would help to provide the computer operating system you want to write this on. Win98 and XP changed how the DIR shell results were output. An undocumented /x switch was added to XP, to help get long file names, too. There are a lot of directory examples on this forum, too. QB no longer runs on 64-bit machines without being virtualized like being run in DOSBox. The better news is QB64 does run in all new 64-bit systems, and even runs in Linux. It is 99.something QB compatible! QB64 handles long file names without using any tricks we needed in QB. I would recommend downloading it at: http://www.qb64.net/forum/index.php?board=2.0 Pete |
I'm running MS-DOS 6.21by (no login)Thanks, Pete & mn64 for your offers to help me on this project. I'm running MS-DOS 6.21 on an old hand-me-down Toshiba Satellite 2545XCDT. http://tinyurl.com/Toshiba-2545 I'm not running any version of Windows, just plain MS-DOS 6.21 at the system level. (But I *am* also running DOSSHELL (from version 5 I think) of MS-DOS, so that I'm able to task switch). I like working in the simpler more elegant environment of MS-DOS. It gives me the feeling that I'm in control of the computer, rather than the other way around. I'm afraid my memory is so poor these days, due to the effects of chronic illness and the drugs I take to control its symptoms, that I can't remember a thing about the program I wrote back in the 90s. So I'm just going to have to start from scratch. I have the QBASIC that came with MS-DOS 6.21, and I also an old floppy labeled QuickBASIC 4.5. Which program do you think would be the best fit for this project? As soon as I hear back from you guys which version of BASIC you think would work best for me, I'll go shopping on the web for a manual. (I can't believe that I really gave all my BASIC books to the thrift store. But I guess that's what happened to them. They certainly aren't in the file drawer where I used to keep them. My memory has gotten so bad that I could hide my own Easter eggs and not be able to find them ten minutes later ;o) In the meantime I'll start working on an outline of what I think the program is going to need to do. (I'm home sick with what feels like the onset of the flu or a cold, so I don't have to go to the holiday get-togethers tonight and tomorrow. So I can work on this tonight and tomorrow). Will in Seattle a.k.a. "Clueless" P.S. I'm having trouble figuring out how to register at this website. Can one of you point me toward the registration page? |
No need to register.by Pete (no login)You are welcome to sign in as you have been doing. If you want a user name, visit http://www.network54.com and register there. That will allow you to make a user name and password that you can use to sign it at any Network54 forum, this being one of them. I would recommend installing your QuickBasic disk. It has a "Help" screen that you can access for the keywords. QB64.net has a WIKI that you can use as an online sourse for QuickBasic keywords, too. http://www.qb64.net/forum/index.php?topic=638.0 Hope you feel better soon, Pete |
ok, don't look at this one if you're trying to do most of it yourself :)by mn64 (no login)' WARNING: THIS PROGRAM OPENS ALL YOUR FILES IN BINARY MODE: USE AT OWN RISK 'show filenames and "headers" 'coded by request '2012 mennonite 'public domain: use / modify / reuse / share for any purpose ' this program is free software and comes with NO WARRANTY. foldersep$ = "\" oscommand$ = "dir \temp /a /s /b > \tempfile.txt" 'IMPORTANT NOTE: change \temp to \ or c:\ only when you're sure it works the way you like 'foldersep$ = "/" 'remove first apostrophe for mac or gnu/linux 'oscommand$ = "find /tmp > /tmp/tempfile.txt" 'remove first apostrophe for mac or gnu/linux shell oscommand$ filetoopen$ = "\tempfile.txt" if foldersep$ = "/" then filetoopen$ = "/tmp/tempfile.txt" open filetoopen$ for input as #1 do while not eof(1) line input #1, p$ 'get filepath and filename 'print p$ for findfolder = len(p$) to 1 step -1 if mid$(p$, findfolder, 1) = foldersep$ then folder$ = left$(p$, findfolder) 'get filepath filen$ = right$(p$, len(p$) - findfolder) 'get filename exit for end if next findfolder h$ = "" on error goto 10 if folder$ <> older$ then color 7 print "new folder? "; color 15 print left$(folder$ + space$(70), 68) color 7 older$ = folder$ end if 'warning: do *not* ever, ever, ever change "binary" to something else... open p$ for binary as #2 if lof(2) > 79 then h$ = input$(80, #2) ' get the "header" else h$ = input$(lof(2), #2) end if close #2 'resume from error 20 for filtertheheader = 1 to len(h$) eightbits = asc(mid$(h$, filtertheheader, 1)) if eightbits < 32 or eightbits > 126 then mid$(h$, filtertheheader, 1) = "." end if next filtertheheader print left$(filen$ + space$(12), 12) + " " + left$(h$ + space$(70), 67) _delay(.01) if inkey$ = chr$(27) then close : end loop close end 10 resume 20 |
I had to look! Now, can we walk through it?by (no login)Hi again, mn64! That was a nice Christmas present you left for me to find when I got up this morning! I suspect you may have done most of my work for me already, so I'd like to thank you for your generosity. I think my first step will be to print out your code and study it. And then to try running your program on my little Toshiba laptop to see what happens. Will it run under the QBASIC that came with MS-DOS 6.21? Or will I need to install QuickBASIC? After I take it for a test drive, then I'd be grateful if you (or others on this forum) could help me walk through it, command-by-command, so I can understand how it works, (and begin re-learning BASIC programming in the process). Will in Seattle a.k.a. "Clueless" |
i can walk you through it, sure.by mn64 (no login)if you can get qbasic (or quickbasic, either one) installed, i think it will probably run. if not, it may only need slight tweaks to get it going. i used dos and qb for decades, so i'm probably still pretty familiar. i don't normally write entire programs on request, but this looked like one i could tap out in a hurry, i still have fun doing stuff like this. plus, it's a great idea, imo. a lot of the stuff i wrote in qb was about organizing/finding files and displaying information about them. i think i will start out with fewer details (though we'll see...) and sort of grab your arm and run you through the code at a faster pace. if you want me to slow down and focus on something that isn't "just like riding a bicycle," feel free to ask for clarification. cheers, menn |
okay, here's a lot of annotation all at once... (raise your umbrella)by mn64 (no login)so the first three paragraphs of code start with foldersep$ and the next one: foldersep$ and after that: shell oscommand$ ...what this does is use the SHELL command to run DOS commands (or whatever operating system you're using) and create a file. for dos: SHELL "dir \temp /a /s /b > \tempfile.txt" should create (>) file called tempfile.txt in the \ folder, which is assumed to be c:\ but could be a:\ ...the file will be made from the output of "dir \temp /a /s /b" so you should change that to "dir \ /a /s /b" when you're convinced it's safe. (you should try it out.) this list (tempfile.txt) will be loaded by the program, and all the files listed inside it will be opened. they're opened as binary and read using input$(n, f) so it should be fairly safe. but it's not tested in dos or windows yet. -> open filetoopen$ for input as #1 this opens the file \tempfile.txt as file handle 1. it's only reading the file a line at a time. we'll put that as our main loop. -> do while not eof(1) line input #1, p$ 'get filepath and filename 'print p$ this says "while the end of the file (eof(1)) isn't reached, read a line from the file to p$. it would then print the line, but print is 'apostrophe'd and commented out. the commands we used: dir /a /s /b says "list the files, including hidden files (/a,) search through folders (/s,) and put everything on one line including the path (/b.) so p$ contains the path and the filename. to separate those, we use foldersep$, which is set to "\" for dos (in gnu/linux, it's "/".) so for each line (p$) we go through it like this: -> for findfolder = len(p$) to 1 step -1 -> next findfolder that's we go through p$ one char at a time, from the last char (len(p$) to the first. backwards! (step -1) to get each char: -> if mid$(p$, findfolder, 1) = foldersep$ then -> end if for findfolder...next is iterating through the number of chars, back to one, so findfolder is equal to whichever char it's on. if that number char is equal to "\" (going backwards) we know we've found the place in p$ where the filepath ends and the filename begins. so we use left$ and right$ to get those: -> folder$ = left$(p$, findfolder) 'get filepath -> filen$ = right$(p$, len(p$) - findfolder) 'get filename and we get out of the loop, as it's done its job: -> exit for there's a chance the variable we're using for the first line of each file (h$) won't be cleared each time, so we cover that: h$ = "" on error goto 10 the on error goto 10 makes it so that if it tries to load a file that just won't open, it knows to skip the lines that process each file, and go to a line number after those: 'warning: do *not* ever, ever, ever change "binary" to something else... open p$ for binary as #2 if lof(2) > 79 then h$ = input$(80, #2) ' get the "header" else h$ = input$(lof(2), #2) end if close #2 WE WILL GET BACK TO THAT. that processes each file to get the first line. there was also fun bit before that part, basically it compares the folder path (folder$) to a backup variable (older$) and if they don't match, it assumes we've moved from one folder to another in the listing. if so, it prints "new folder? " and the path. this is an alternative to printing the filepath never, or printing it for every single file. after the skippable part: 'resume from error 20 for filtertheheader = 1 to len(h$) eightbits = asc(mid$(h$, filtertheheader, 1)) if eightbits < 32 or eightbits > 126 then mid$(h$, filtertheheader, 1) = "." end if next filtertheheader this is fun, too. it goes through every character of h$ (we got h$ from the first line of the file) and if it isn't something you can type on a keyboard (we assume ascii 32 through ascii 126 are the printable chars) it changes the non-printables to "." so it won't mess with the screen output. finally, print the first 12 chars of the filename(filen$) since this is DOS and 12345678.123 is 12, including the "." and the first 67 chars of the first line of the file (h$) because 12 + a space + 67 = 80, and that's our screen width. print left$(filen$ + space$(12), 12) + " " + left$(h$ + space$(70), 67) _delay(.01) if inkey$ = chr$(27) then close : end the if inkey$ line checks for a person hitting ESC and closes the file and quits early if they do. and we close the loop through the list of files: -> loop we close the file containing the list: -> close and end the program: -> end 10 resume 20 <- is where the program goes if there is an error (trying to open the file if it can't. for example, you can't open a folder as a file. that will give an error.) so on error goto 10 sends it here, then this line sends it to 20. i much prefer "try: (do this) ...except(error): (do this instead)" but qbasic doesn't do that. now, the only part not covered at all is this: open p$ for binary as #2 if lof(2) > 79 then h$ = input$(80, #2) ' get the "header" else h$ = input$(lof(2), #2) end if close #2 so... what happens here is that file #1 is our list of files. since that's open, we'll: 1. open each file on our list, as file #2 2. check to see how long the file is 3. if the file is 80 or more bytes, just get the first 80 bytes 4. if the file is less than 80 bytes, just get the whole file. 5. close file #2, so we can use that handle for the next file on the list. now that i've explained this, i've found a small bug in the program. we do all this to get h$, which is the first 80 bytes of the file. but that assumes that there are no newlines (in dos, CR+LF or ascii 13 + ascii 10) when in fact, there might be. in theory, this could screw up our output by printing an unexpected newline, which we could prevent by using INSTR() to chop off first anything after/including ascii 10 (takes care of os/x and gnu/linux) and then after that, chopping off anyting after/including ascii 13 (cleans up dos and perhaps ancient mac files.) we could clean up h$ with a couple lines of code that way. in practice, the program isn't really screwing up like that because we're turning all non-printables into "." so CR+LF will just turn into ".." and no real problem, unless you're a serious perfectionist. (in which case a couple lines with INSTR and left$ should make you happy.) TADA! now, i realize that might not answer all your questions. you may have more now. s'ok, you can ask. HTH, menn |
BASIC handbook recommendations?by (no login)I have poor eyesight and cognitive impairment, which makes it difficult for me to read and process information from a computer screen. For some reason I find it much easier to read and understand printing that's on paper. So I'm going to need to replace my lost BASIC manuals. I used to have two QuickBASIC books: one was like a dictionary of commands, with examples of how to use them. And the other was a tutorial style "how to" book, that was like a course in QuickBASIC programming. I'd like to find a replacement for each of those books, so that I'll have handy references to help me relearn BASIC programming. Can you recommend any titles, authors or publishers? (And also warn me against books or authors to avoid?). I searched my favorite online used book seller clearing house, and found a gazillion QBASIC and QuickBASIC titles, all selling for just a few bucks each (often with free shipping!). But I was overwhelmed by so many titles, and couldn't figure out how to pick ones that would be helpful to me, without being able to leaf through them to get an idea how understandable they are. Will in Seattle a.k.a. "Clueless" |
i did one, you can download it here...by mn64 (no login)http://www.network54.com/Realm/QBZips/mpgitqbi.zip yes, it's a screen tutorial. if you unzip it though, you should be able to print the .IKI files (they're mostly plain text) to paper. warn you, at a typewriter-size font, it's a good half-inch-thick stack of paper. about 70 pages (three times that if you want to emulate the screen display.) i'd be interested to know if there is any way to adapt the material for someone i your situation to something that can be used electronically. the first edition (no longer available, as far as i know) actually talked out loud, but editing it was brutal. i figure making a file for a real screen reader would be a better option than that. p.s. chapter 21 has been removed from the newest edition, the one i made for qb64. don't get me started on chapter 21 :) i make no claim that this is the best tutorial out there. i spent months on it, tried to make it cover most of what i knew over 20+ years, and i stand by the feeling that it's "pretty good." YMMV. |
*QuickBasic by MS Press and Revolutionary Guide to QBasicby Pete (no login) |
Books: Could this be one of them?by (no login)Hey Pete, I found this title online. Could this be the one? "Microsoft QuickBasic," second edition by Douglas Hergert, published by Microsoft Press (1988) |
The cover is not the same as the one I have.by Pete (no login)It was the original MS QuickBasic book that came with QB45, back in 1990. Probably not around anymore, but I bet you could find it at a public library. I recall the ones in my city carried it. Pete |
Original MS QuickBasic book that came with QB45,by (no login)Is it Microsoft Quickbasic by Douglas, Hergert If not could you post here the author's name? How about the ISBN? Do you know what that was? Will in Seattle a.k.a. "Clueless" |
Mine has been packed away in storage for years.by Pete (no login)Plain white cover, with black lettering. I'll be Solitaire has her copy available, and could post more info. Pete |
Are "Thank You" Messages tolerated here?by (no login)Some forums, especially list-serves, discourage the posting of "thank you" messages, regarding them as clutter and even as a kind of spam. So I'd be grateful if one of you could clue me in on the policy here on the QBasic and QB64 Discussion Board. But, in the meantime, I'd like to say, thanks, Pete, for that description of the cover of your manual. I checked the Seattle Public Library catalog, and they don't have it. One of my complaints against our Seattle library system is that they have little use for old or "outdated" materials, and every year have a massive book sale where they sell off tons books to raise funds (to offset the Draconian budget cuts of the last few years). So many of my favorite books, movies and CDs have disappeared from their collection :o( Will in Seattle a.k.a. "Clueless" |
hahahaha! yes...by mn64 (no login)thank you messages used to be more common here, and are enthusiastically ENCOURAGED... but i think there's no sense in berating people into thanking you... sort of misses the point. please feel very free to thank anyone here, as often as you want. if it's over the time, someone might reply "ok, ok, we get it." more likely they wouldn't know what to say to it, rather than you've done anything against ettiquite here. though i'm pretty sure i did something against spelling. no one that i know of in the history of this forum has ever reacted negatively to a thank you post. |
*wth, "time?" i meant "... the top"by mn64 (no login) |
Re: Original MS QuickBasic book that came with QB45,by Solitaire (Login Solitaire1)S The Douglas book is a consumer item that was sold in bookstores. I believe the original manual that came with the software did not have an author, as it was published directly by Microsoft and their staff.
I think it had a blue and white cover and came in two separate editions, either as one or two volumes. Part 1 was a keyword reference, and part II was a tutorial. The single edition combined both parts into one volume. I happen to have both editions somewhere, but since I have several hundred thousand books in my house, I am unable to locate anything that's been stashed away in cartons years ago, and buried under piles of newer books.
|
That's right, I remember now...by Pete (no login)But I think there was one book, with two distinct sections, keywords and tutorial. No author, just published by MS seems right, too. I haven't been able to find one online, either. Thanks, Pete |
There's one on ebayby Solitaire (Login Solitaire1)S but the seller wants $56 for it. It's a 3rd edition, which I haven't seen.
http://www.ebay.com/itm/Microsoft-QuickBASIC-Compiler-Manual-1987-Vrs-3-0-/150947752510?pt=LH_DefaultDomain_0&hash=item23252fea3e PS: It just occured to me -- Version 3 may refer to an earlier version of QuickBasic. The latest one was 4.5.
|
I found another one on ebay; version 2by Solitaire (Login Solitaire1)S For this one the seller wants $75.
http://www.ebay.com/itm/Microsoft-QuickBASIC-Compiler-Manual-1986-Vrs-2-0-/190755164369?_trksid=p5197.m1998&_trkparms=aid%3D222002%26algo%3DSIC.FIT%26ao%3D1%26asc%3D17%26meid%3D4468327545612124909%26pid%3D100017%26prg%3D1006%26rk%3D2%26sd%3D150947752510%26 |
That's out of my price rangeby (no login)Hi Solitaire, Thanks for helping me search for that elusive title. I appreciate your coming to my aid. But I'm afraid that 56 bucks is more than I can afford to spend these days. I'm a low-income, disabled senior, scraping by on a very small monthly Social Security benefit. I've found some QuickBASIC titles for sale on the web for well under $10 (including shipping) so I think I'll take a gamble and order one of those. In the meantime, if you ever unearth your old QuickBASIC books, and it turns out you have a duplicate copy of that Microsoft manual, I'd be honored to give it a good home. (I still can't believe that I actually tossed all my BASIC manuals; I'm still clinging to the the fading hope that I'll find them in a box buried in my back bedroom one of these days). I'd be grateful for any help you can offer me on getting my old program SEEFIRST.BAS (posted under the "Eureka!" thread) up and running again. I haven't been able to do much the last few days. I've caught some kind of bug that has made all my disabling chronic symptoms much worse. But I try to put in a few minutes on the project each morning; the time of day when I typically have the most energy and stamina. Thanks again for your help, Will in Seattle a.k.a. "Clueless" |
I FOUND IT!!!by Solitaire (Login Solitaire1)S A miracle! I had an inspiration to look at a pile of old software packages against a wall under the window and found my original boxed package of QuickBasic 4.5! This version has the 2-volume manual set. The bottom 2/3 of each cover is plain white and the top 1/3 is dark blue. There is no author listed, only "Microsoft" at the bottom right. One volume is entitled, "Programming in BASIC" and the other one is, "Learning to Use Microsoft QuickBASIC."
I have the original disks and registration card, and it's all in a like-new condition. Inside the package was an order form for additional reference material, including a 3-ring binder containing the written copy of the on-disk "Advisor." It came with either 3 3 1/2" disks or 4 5 1/4" disks. I have both sets, must have gotten the extra set at a computer show many years ago. Both my sets are in like-new condition. All the disks are double-sided low-density.
|
while you're there, could you see if you have a copy of "hands-on basic"by mn64 (no login)http://i510.photobucket.com/albums/s349/bbter/000_0945.jpg this is the book that got me into BASIC more than 25 years ago. i followed it up with some basic primer from sams... not as easy to find. by the time i was doing graphics i was getting used to qb40, with its incredible help system. i was excited to learn screen 9 worked in basica, too. i had basica.com and basica.exe, and i'd never heard of "gw-basic" until many many years later. |
* http://www.os2museum.com/wp/wp-content/uploads/2011/09/dos-3.21-basica.pngby mn64 (no login)http://www.os2museum.com/wp/wp-content/uploads/2011/09/dos-3.21-basica.png |
That was GWBasicby Solitaire (Login Solitaire1)S That was the BASIC course I took when I got my Master's degree in 1989. I also took Turbo Pascal and LogoWriter.
Those were the only 3 programming languages offered at that time for the "Computers in Education" degree. |
rebranded, to be certainby mn64 (no login)i'd never heard of gw-basic. gw-basic was microsoft, our dos was ms-dos. but on the pcjr, it was ibm dos (pc-dos) and then after that, ms-dos. ibm's dos was (of course) ms-dos, rebranded. i knew that after not very long. but basica was gw-basic? i'd never heard of gw-basic. so it could have been gw-basic rebranded, but there was just no frame of reference. i think i first saw gw-basic in my teens, but i'd been playing with basic for a good number of years. |
GW-BASIC vs. BASICAby Solitaire (Login Solitaire1)S The original IBM PC computer had BASIC built into the hardware, so you could run a BASIC program even without a hard drive or a floppy disk. The A in BASICA stands for Advanced. It added more functionality to the BASIC that was built into the IBM PC machines. Running the disk with BASICA supplemented the BASIC that was built into the hardware chip. This was proprietary and clone computers were not permitted to duplicate it.
Back in those days there were dozens of clone computers that tried to emulate the original IBM PCs, but they were not allowed to duplicate the hardware exactly. BASICA would ONLY work on True Blue IBM machines. It depended on a proprietary chip that was built into those machines sold exclusively by IBM. GW-BASIC needed to include the BASIC instructions that were not on the BASICA disk. The GW-BASIC EXE added software instructions to take the place of the instructions on the IBM hardware chip. It did exactly the same thing as BASICA but it would work on any of the clone computers. It was legal, since the proprietary hardware was not copied to the clone machines. When I took the BASIC course back in 1989, the school was using genuine IBM computers, and we were given BASICA disks to use. However, I had a clone at home and the disk wouldn't work on my computer. (I had a Packard-Bell 286.) That's when I found out about GW-BASIC, but don't remember the details on where or how I got it. PS: I heard that GW-BASIC was written by Bill Gates. When it worked, he remarked, "Gee Whiz, it works!" That's where the GW comes from.
|
gw-basic and basica, the plot thickensby mn64 (no login)"Microsoft did not offer a generic version of MS-DOS until v3.20 in 1986 and before then, all variants of the OS were OEM ones. Depending on the OEM, BASIC was distributed as either BASICA.EXE or GWBASIC.EXE. The former should not be confused with IBM BASICA, which always came as a .COM file." http://en.wikipedia.org/wiki/GW-BASIC i had both BASICA.COM and BASICA.EXE. i always wondered what the difference was. back then, i wasn't doing stuff advanced enough to notice a difference. i guess when i had the ibm both worked, but i already had both: when i switched to a 286 clone, i can only suppose BASICA.EXE is the only one that worked, and i was told or assumed that the .COM was a sort of stub loader. in retrospect perhaps it was: but of the rom, not the .EXE ...which makes a LOT more sense. my ROM BASIC came on a cartridge. not as cool as a c64 maybe, but certainly as close as ibm ever got. |
My books are somewhere else.by Solitaire (Login Solitaire1)S Don't know if I have that book, and if I do, it's buried in another room. I need to know the author and what it looks like physically (size, color, etc.) just in case I come across it, which I doubt. |
believe it or not it was mostly rhetoricalby mn64 (no login)i just got nostalgic seeing pictures of these old books. i wouldn't be at all surprised if you had some of those "three ring binder in a 'box'" books that were so popular with ibm and/or microsoft. glad to see you're still on the forum, and thanks for inspiring the blast from the past. i didn't find the book (i don't have it) but i did find a picture of it online, and that's pretty neat. have fun... |
A bargain at half the price!by (no login)I found a worn-out copy of Revolutionary Guide to QBasic, missing the CD, for sale on the web for only $232.94 (plus shipping). Such a deal! Will in Seattle a.k.a. "Clueless" |
QuickBasic books on ebayby Solitaire (no login)Go to ebay and enter QuickBasic. You will see several books, including the original manual, on sale ("Buy it now") or at auction. The prices vary but you can get a good idea of what's available, most very reasonably priced (around $5 or $8 each), and many with free shipping. You can pick up several books for a total of under $15 or $20. Good luck. |
I have purchased Revolutionary guide to QBasicby Ben (no login)from amazon. It was not bad. I recommend you give it a read, especially the graphics stuff. This one really teaches programming techniques that can be adapted to all languages. There is little use for a programming book that is a language reference because that information is easily available in QB help and internet. |
"WARNING...BINARY MODE" ??!!by (no login)Hi menn! I'd like to take your little program out for a test drive. But I'm worried about that caveat in the header line: "WARNING: THIS PROGRAM OPENS ALL YOUR FILES IN BINARY MODE: USE AT OWN RISK" I'm afraid I haven't a clue what the means. Can you explain to me what the risks would be to my machine and the data I have stored on my hard drive if I were to try running your program? Will in Seattle a.k.a. "Clueless" |
Binary is a read and write mode.by Pete (no login)That means when a file is open in binary mode, you can modify the code and make statements to add to it or write over it. That would require you use a PUT statement, and the file number of the binary file that is open. I don't think anyone would make such a mistake, but it is always good to just make a back up of any file you open in binary, and put it in a backup folder, just in case. That way you always have an original copy. Of course with a directory program, that would be a lot of back ups. Pete |
it's also a read-differently mode, which is why i used itby mn64 (no login)my main concern is that it would "touch" a file and perhaps change the date. i'm pretty sure that won't happen, iirc you'd have to PUT to it, at least. but i don't rely on "iirc" here, i thought i'd point it out explicitly. in case it works differently than i expect (though i think it won't.) if you open a huge program or a raw image file, you could have a "first line" that is megabytes long. in dos (which is the target environment here) that could easily be an issue. so i used binary mode to get max 80 chars more easily. it's the most BASIC way i know to do it, but there might be a better way that i actually don't know. i put in a slightly exaggerating warning so people that don't know better would back off, and people that do know better would shrug it off. likewise, the \temp folder. almost too bad it's sort of moot now, but i had fun writing it and now i've got my own version. |
you know will, i'd love to offer a couple "extra safe" ways to run thisby mn64 (no login)when i started using dos, it was all from floppies-- didn't even have a hard drive. (then again i was less than 10, so it goes without... anyway!) so "installing" dos meant running SYS A: and copying autoexec.bat and config.sys, if not *.* (i seem to recall being careful which system files copied instead of SYS'd over, back then msdos.sys was a real binary file, not a text config, you could write stuff to the wrong area-- then it wouldn't boot, but all else was fine-- and if files occupied the wrong place it wouldn't SYStemize either.) but if you screwed up, you could just make another floppy. took a minute or two. compare this to reinstalling windows (even 3.1, although you can boot dos+win 1.01 from the same 1.44m floppy.) so you know, you could try my program out with a dos floppy, and just make sure you're on a: instead of c: (a:\> / c:\>) when you run it. you could also make a boot cd for freedos, and use qbasic from there, or gnu/linux, and use qbasic from dosbox, or gnu/linux, and use qb64 from there. a good boot cd will warn you before installing anything. a good gnu/linux boot cd won't even mount your hard drive (i'm glad i don't make these terms up) without asking. so it's a pretty safe environment to mess with (like the one i'm using to type this) and then when you are done playing, just reboot. nothing changed, nothing saved (unless you write it to the floppy or a usb drive or something.) do you need to do that to run my program safely? probably not. would it add tons of safety? TONS. is it a GREAT tool to have handy, regardless of the program? so much. if you have a cdrom, freedos is priceless. better than msdos, imo, unless you're running windows. and a gnu/linux cd can do more still, including run qb64 OR qb from dosbox. these are things to try when you have time. they're wonderful things, like the days of boot floppies (well ok, maybe better. but it would definitely take you back.) |
How about putting a seatbelt in your coupe?by (no login)Hi menn! Now that I've found and fixed the problem with my klunky old station wagon, SEEFIRST.BAS, I'd like to take your little sports car for a spin. I figure that instead of trying to streamline my old beater, I would probably do better to just have it towed to the wrecking yard, once I have a newer, smaller replacement for it. As you may recall, I hesitated to run your code because you warned me that it would open my text files in binary mode, and that there was a very remote possibility that it could alter my files in some way, such as changing their date stamps for example. Since I only plan to run the program in directories which contain ASCII text files, couldn't we just change the code so that it opens my files in whatever mode it is that is non-binary? (How many different "modes" are there for opening files, anyway?). With that "seatbelt" firmly in place, I'd love to take your little two-seater for a spin, and then if it works for me, I'd be able to junk my old rattletrap. Would your code still work with that one minor modification, i.e., changing the open file mode? Will in Seattle a.k.a. "Clueless" |
Open the files with INPUT.by Pete (no login)INPUT reads the file data sequentially. An entire line can be retrieved with thr LINE INPUT statement. OPEN "MYFILE.BAS" FOR INPUT AS #1 DO UNTIL EOF(1) LINE INPUT #1, MYLINE$ PRINT MYLINE$: REM PRINTS EACH LINE TO THE SCREEN. LOOP CLOSE #1 END ----------------- Pete |
he's not ASCIIng for very much...by mn64 (no login)originally i suggested that it would be easier to simplify a program that used dir /b than one that parsed multi-column (multi-line-format) DIR output. i stand by that advice. |