From ccea76b056cbfb7d2f06d9151f80c0c8ea19537c Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 8 Apr 2016 14:26:40 -0500 Subject: [PATCH] test --- deprecated/obsolete.h | 142 ++++++++ iguana/iguana777.c | 13 +- iguana/iguana777.h | 19 +- iguana/iguana_blocks.c | 53 ++- iguana/iguana_bundles.c | 15 +- iguana/iguana_init.c | 46 +-- iguana/iguana_ramchain.c | 4 +- iguana/iguana_recv.c | 10 +- iguana/iguana_unspents.c | 560 +++++++++++++------------------ iguana/main.c | 5 +- iguana/pnacl/Release/iguana.pexe | Bin 2829716 -> 2929280 bytes pnacl_main.h | 4 +- 12 files changed, 463 insertions(+), 408 deletions(-) diff --git a/deprecated/obsolete.h b/deprecated/obsolete.h index c8eb8ee4b..8e6bf2ed6 100755 --- a/deprecated/obsolete.h +++ b/deprecated/obsolete.h @@ -15773,6 +15773,148 @@ len = 0; } return(0); } + + /*int32_t iguana_balancecalc(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) + { + int32_t retval=-1,i,n,flag = 0; + if ( bp->balancefinish > 1 ) + { + printf("make sure DB files have this bp.%d\n",bp->hdrsi); + iguana_validateQ(coin,bp); + return(flag); + } + bp->nexttime = (uint32_t)time(NULL) + 1; + if ( bp != 0 && coin != 0 ) + { + if ( coin->origbalanceswritten <= 1 && coin->spendvectorsaved == 0 ) + { + for (i=0; ibundlescount-1; i++) + { + if ( coin->bundles[i] == 0 || coin->bundles[i]->tmpspends == 0 ) + break; + } + if ( i == coin->bundlescount-1 && bp->tmpspends != 0 && bp->ramchain.H.data != 0 && (n= bp->ramchain.H.data->numspends) != 0 && bp->converted == 0 ) + { + iguana_convertQ(coin,bp); + retval = 0; + } + else if ( bp->converted == 0 ) + { + for (i=0; ibundlescount-1; i++) + { + if ( coin->bundles[i] == 0 || coin->bundles[i]->utxofinish <= 1 ) + break; + } + if ( i == coin->bundlescount-1 ) + { + printf("must be restart after all the spendvectors are saved\n"); + coin->spendvectorsaved = (uint32_t)time(NULL); + } + } + } else retval = iguana_balancenormal(coin,bp,startheight,endheight); + if ( retval < 0 ) + { + //printf("third case.%d utxo.%u balance.%u prev.%u\n",bp->hdrsi,bp->utxofinish,bp->balancefinish,prevbp!=0?prevbp->utxofinish:-1); + coin->pendbalances--; + iguana_balancesQ(coin,bp); + } + else + { + iguana_validateQ(coin,bp); + flag++; + } + } + return(flag); + }*/ + + /*int32_t iguana_balancenormal(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) + { + uint32_t starttime; int32_t j=0,n; struct iguana_bundle *prevbp; + n = coin->bundlescount - 1; + for (j=0; jbundles[j]) == 0 ) + break; + if ( prevbp->utxofinish <= 1 || (j < bp->hdrsi && prevbp->balancefinish <= 1) ) + break; + } + //printf("B [%d] j.%d u.%u b.%u\n",bp->hdrsi,j,bp->utxofinish,bp->balancefinish); + if ( (j == n || bp->hdrsi == 0) && bp->bundleheight+bp->n <= coin->blocks.hwmchain.height && bp->utxofinish > 1 && bp->balancefinish <= 1 ) + { + bp->balancefinish = 1; + if ( bp->hdrsi >= coin->balanceswritten ) + { + //printf("balancecalc for %d when %d\n",bp->hdrsi,coin->balanceswritten); + starttime = (uint32_t)time(NULL); + for (j=0; j<=bp->hdrsi; j++) + iguana_allocvolatile(coin,&coin->bundles[j]->ramchain); + if ( iguana_balancegen(coin,bp,startheight,endheight) < 0 ) + { + printf("GENERATE BALANCES.%d ERROR ht.%d\n",bp->hdrsi,bp->bundleheight); + exit(-1); + } + printf("GENERATED BALANCES.%d for ht.%d duration %d seconds, (%d %d).%d\n",bp->hdrsi,bp->bundleheight,(uint32_t)time(NULL) - (uint32_t)starttime,bp->hdrsi,coin->blocks.hwmchain.height/coin->chain->bundlesize-1,bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1); + coin->balanceswritten++; + } + bp->balancefinish = (uint32_t)time(NULL); + bp->queued = 0; + if ( bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1 && bp->hdrsi == coin->longestchain/coin->chain->bundlesize-1 ) + { + printf("TRIGGER FLUSH %d vs %d\n",bp->hdrsi,coin->blocks.hwmchain.height/coin->chain->bundlesize); + sleep(1); + if ( time(NULL) > coin->startutc+10 && bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1 ) + { + if ( iguana_balanceflush(coin,bp->hdrsi,3) > 0 ) + printf("balanceswritten.%d flushed bp->hdrsi %d vs %d coin->longestchain/coin->chain->bundlesize\n",coin->balanceswritten,bp->hdrsi,coin->longestchain/coin->chain->bundlesize); + } else printf("TRIGGER cancelled %d vs %d\n",bp->hdrsi,coin->longestchain/coin->chain->bundlesize-1); + } + return(0); + } + return(-1); + }*/ + /*if ( iguana_spendvectors(coin,bp,dest,starti,coin->RTheight%bp->n,0) < 0 ) + { + printf("RTutxo error -> RTramchainfree\n"); + iguana_RTramchainfree(coin); + return(-1); + } else printf("spendvectors calculated to %d\n",coin->RTheight);*/ + /*while ( block != 0 ) + { + if ( bits256_cmp(iguana_blockhash(coin,coin->RTheight-n-1),block->RO.hash2) != 0 ) + { + printf("blockhash error at %d\n",coin->RTheight-n-1); + break; + } + block = iguana_blockfind("RTupdate",coin,block->RO.prev_block); + n++; + if ( coin->RTgenesis != 0 && n >= bp->n ) + break; + }*/ + //if ( coin->RTHASHMEM.ptr == 0 ) + // iguana_meminit(&coin->RTHASHMEM,"RTHASH",0,1024L*1024L*1024L,0); + if ( coin->PREFETCHLAG > 0 ) + { + //iguana_ramchain_prefetch(coin,&coin->RTramchain,0); + //iguana_prefetch(coin,bp,coin->bundlescount,1); + } + + void iguana_prefetch(struct iguana_info *coin,struct iguana_bundle *bp,int32_t width,int32_t flags) + { + int32_t i; struct iguana_bundle *spentbp; uint32_t starttime = (uint32_t)time(NULL); + if ( bp->hdrsi > width ) + { + //printf("start prefetch.%d for [%d]\n",width,bp->hdrsi); + for (i=1; ibundles[bp->hdrsi - i]) != 0 ) + { + iguana_ramchain_prefetch(coin,&spentbp->ramchain,flags); + spentbp->lastprefetch = starttime; + } + } + //printf("end prefetch.%d for [%d] elapsed %d\n",width,bp->hdrsi,(uint32_t)time(NULL)-starttime); + } + } #endif #endif diff --git a/iguana/iguana777.c b/iguana/iguana777.c index 190bc27fb..1124959eb 100755 --- a/iguana/iguana777.c +++ b/iguana/iguana777.c @@ -389,11 +389,11 @@ int32_t iguana_utxogen(struct iguana_info *coin,int32_t helperid,int32_t convert } if ( iguana_spendvectorsaves(coin) == 0 ) { - for (hdrsi=0; hdrsibundles[hdrsi]->ramchain); - for (hdrsi=0; hdrsibundles[hdrsi],0,coin->chain->bundlesize-1); - if ( iguana_balanceflush(coin,max,3) > 0 ) + //for (hdrsi=0; hdrsibundles[hdrsi]->ramchain); + for (hdrsi=coin->balanceswritten; hdrsibalanceswritten++) + iguana_balancegen(coin,0,coin->bundles[hdrsi],0,coin->chain->bundlesize-1); + if ( iguana_balanceflush(coin,max) > 0 ) printf("balanceswritten.%d flushed bp->hdrsi %d vs %d coin->longestchain/coin->chain->bundlesize\n",coin->balanceswritten,bp->hdrsi,coin->longestchain/coin->chain->bundlesize); } else printf("error saving spendvectors\n"); coin->spendvectorsaved = (uint32_t)time(NULL); @@ -452,7 +452,7 @@ void iguana_helper(void *arg) allcurrent = 0; //printf("[%d] bundleQ size.%d lag.%ld\n",bp->hdrsi,queue_size(&bundlesQ),time(NULL) - bp->nexttime); coin->numbundlesQ--; - if ( coin->started != 0 && (bp->nexttime == 0 || time(NULL) >= bp->nexttime) && coin->active != 0 ) + if ( coin->started != 0 && (bp->nexttime == 0 || time(NULL) > bp->nexttime) && coin->active != 0 ) { flag += iguana_bundleiters(ptr->coin,&MEM,MEMB,bp,ptr->timelimit,IGUANA_DEFAULTLAG); } @@ -647,7 +647,6 @@ struct iguana_info *iguana_setcoin(char *symbol,void *launched,int32_t maxpeers, if ( (coin->minconfirms = minconfirms) == 0 ) coin->minconfirms = (strcmp(symbol,"BTC") == 0) ? 3 : 10; printf("ensure directories\n"); - sprintf(dirname,"accounts/%s",symbol), OS_ensure_directory(dirname); sprintf(dirname,"DB/ro/%s",symbol), OS_ensure_directory(dirname); sprintf(dirname,"DB/ro"), OS_ensure_directory(dirname); sprintf(dirname,"DB/%s",symbol), OS_ensure_directory(dirname); diff --git a/iguana/iguana777.h b/iguana/iguana777.h index 53ec65f92..f70868337 100755 --- a/iguana/iguana777.h +++ b/iguana/iguana777.h @@ -472,7 +472,8 @@ struct iguana_info struct iguana_peers peers; struct iguana_peer internaladdr; uint64_t instance_nonce,myservices,totalsize,totalrecv,totalpackets,sleeptime; int64_t mining,totalfees,TMPallocated,MAXRECVCACHE,MAXMEM,PREFETCHLAG,estsize,activebundles; - int32_t MAXPEERS,MAXPENDINGREQUESTS,MAXBUNDLES,MAXSTUCKTIME,active,closestbundle,numemitted,lastsweep,numemit,startutc,newramchain,numcached,cachefreed,helperdepth,startPEND,endPEND,enableCACHE,RELAYNODE,VALIDATENODE,origbalanceswritten,balanceswritten,RTheight; bits256 balancehash; + int32_t MAXPEERS,MAXPENDINGREQUESTS,MAXBUNDLES,MAXSTUCKTIME,active,closestbundle,numemitted,lastsweep,numemit,startutc,newramchain,numcached,cachefreed,helperdepth,startPEND,endPEND,enableCACHE,RELAYNODE,VALIDATENODE,origbalanceswritten,balanceswritten,RTheight; + bits256 balancehash,allbundles; uint32_t lastsync,parsetime,numiAddrs,lastpossible,bundlescount,savedblocks,backlog,spendvectorsaved,laststats; char VALIDATEDIR[512]; int32_t longestchain,badlongestchain,longestchain_strange,RTramchain_busy,emitbusy,stuckiters; struct tai starttime; double startmillis; @@ -805,7 +806,7 @@ int32_t iguana_vinscriptparse(struct iguana_info *coin,struct vin_info *vp,uint3 void iguana_parsebuf(struct iguana_info *coin,struct iguana_peer *addr,struct iguana_msghdr *H,uint8_t *buf,int32_t len); int32_t _iguana_calcrmd160(struct iguana_info *coin,struct vin_info *vp); int32_t iguana_spendvectors(struct iguana_info *coin,struct iguana_bundle *bp,struct iguana_ramchain *ramchain,int32_t starti,int32_t numblocks,int32_t convertflag); -int32_t iguana_balancegen(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight); +int32_t iguana_balancegen(struct iguana_info *coin,int32_t incremental,struct iguana_bundle *bp,int32_t startheight,int32_t endheight); int32_t iguana_bundlevalidate(struct iguana_info *coin,struct iguana_bundle *bp); void iguana_validateQ(struct iguana_info *coin,struct iguana_bundle *bp); struct iguana_bloominds iguana_calcbloom(bits256 hash2); @@ -813,7 +814,7 @@ int32_t iguana_bloomfind(struct iguana_info *coin,struct iguana_bloom16 *bloom,i struct iguana_bloominds iguana_bloomset(struct iguana_info *coin,struct iguana_bloom16 *bloom,int32_t incr,struct iguana_bloominds bit); int32_t iguana_Xspendmap(struct iguana_info *coin,struct iguana_ramchain *ramchain,struct iguana_bundle *bp); //void iguana_balancesQ(struct iguana_info *coin,struct iguana_bundle *bp); -int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t purgedist); +int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi); int32_t iguana_bundleissue(struct iguana_info *coin,struct iguana_bundle *bp,int32_t starti,int32_t max); int32_t iguana_balancecalc(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight); int32_t iguana_sendblockreqPT(struct iguana_info *coin,struct iguana_peer *addr,struct iguana_bundle *bp,int32_t bundlei,bits256 hash2,int32_t iamthreadsafe); @@ -821,9 +822,10 @@ int32_t iguana_blockreq(struct iguana_info *coin,int32_t height,int32_t priority int64_t iguana_bundlecalcs(struct iguana_info *coin,struct iguana_bundle *bp,int32_t lag); int32_t iguana_ramchain_prefetch(struct iguana_info *coin,struct iguana_ramchain *ramchain,int32_t txonly); int32_t iguana_realtime_update(struct iguana_info *coin); -int32_t iguana_mapvolatiles(struct iguana_info *coin,struct iguana_ramchain *ramchain); -void iguana_purgevolatiles(struct iguana_info *coin,struct iguana_ramchain *ramchain); -int32_t iguana_volatileinit(struct iguana_info *coin); +int32_t iguana_volatilesmap(struct iguana_info *coin,struct iguana_ramchain *ramchain); +void iguana_volatilespurge(struct iguana_info *coin,struct iguana_ramchain *ramchain); +int32_t iguana_volatilesinit(struct iguana_info *coin); +void iguana_initfinal(struct iguana_info *coin,bits256 lastbundle); int64_t iguana_ramchainopen(struct iguana_info *coin,struct iguana_ramchain *ramchain,struct OS_memspace *mem,struct OS_memspace *hashmem,int32_t bundleheight,bits256 hash2); int32_t iguana_ramchain_free(struct iguana_info *coin,struct iguana_ramchain *ramchain,int32_t deleteflag); void iguana_blocksetcounters(struct iguana_info *coin,struct iguana_block *block,struct iguana_ramchain * ramchain); @@ -854,8 +856,9 @@ int32_t iguana_bundleissuemissing(struct iguana_info *coin,struct iguana_bundle //int32_t iguana_blocksmissing(struct iguana_info *coin,int32_t *nonzp,uint8_t missings[IGUANA_MAXBUNDLESIZE/8+1],bits256 hashes[],double mult,struct iguana_bundle *bp,int32_t capacity); FILE *myfopen(char *fname,char *mode); int32_t myfclose(FILE *fp); -void iguana_prefetch(struct iguana_info *coin,struct iguana_bundle *bp,int32_t width,int32_t flags); -int32_t iguana_walkchain(struct iguana_info *coin); +//void iguana_prefetch(struct iguana_info *coin,struct iguana_bundle *bp,int32_t width,int32_t flags); +int32_t iguana_walkchain(struct iguana_info *coin,int32_t skipflag); +struct iguana_block *iguana_fastlink(struct iguana_info *coin,int32_t hwmheight); int32_t iguana_balancenormal(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight); int32_t iguana_spendvectorsaves(struct iguana_info *coin); int32_t iguana_convertfinished(struct iguana_info *coin); diff --git a/iguana/iguana_blocks.c b/iguana/iguana_blocks.c index 4e3326cbc..87d190abf 100755 --- a/iguana/iguana_blocks.c +++ b/iguana/iguana_blocks.c @@ -293,7 +293,7 @@ int32_t iguana_blockunmain(struct iguana_info *coin,struct iguana_block *block) return(n); } -int32_t iguana_walkchain(struct iguana_info *coin) +int32_t iguana_walkchain(struct iguana_info *coin,int32_t skipflag) { char str[65]; int32_t height,hdrsi,bundlei,n = 0; struct iguana_bundle *bp; struct iguana_block *block; height = coin->blocks.hwmchain.height; @@ -325,10 +325,8 @@ int32_t iguana_walkchain(struct iguana_info *coin) } if ( height == 0 ) break; - else if ( (height % coin->chain->bundlesize) == 0 ) + else if ( skipflag != 0 && (height % coin->chain->bundlesize) == 0 ) { - if ( 0 && bp->ramchain.H.data == 0 ) - printf("NULL RAMCHAIN.[%d]\n",bp->hdrsi); n += coin->chain->bundlesize; height -= coin->chain->bundlesize; } @@ -338,10 +336,46 @@ int32_t iguana_walkchain(struct iguana_info *coin) height--; } } - printf("walkd n.%d hwm.%d %s\n",n,coin->blocks.hwmchain.height,bits256_str(str,coin->blocks.hwmchain.RO.hash2)); + printf("walk skip.%d n.%d hwm.%d %s\n",skipflag,n,coin->blocks.hwmchain.height,bits256_str(str,coin->blocks.hwmchain.RO.hash2)); return(n); } +struct iguana_block *iguana_fastlink(struct iguana_info *coin,int32_t hwmheight) +{ + int32_t hdrsi,bundlei,height; struct iguana_block *block = 0,*prev=0; double prevPoW = 0.; struct iguana_bundle *bp; + for (height=0; height<=hwmheight; height++) + { + hdrsi = (height / coin->chain->bundlesize); + bundlei = (height % coin->chain->bundlesize); + if ( (bp= coin->bundles[bundlei]) == 0 ) + { + printf("iguana_fastlink null bundle.[%d]\n",hdrsi); + break; + } + if ( (block= bp->blocks[bundlei]) == 0 ) + { + printf("iguana_fastlink null block.[%d:%d]\n",hdrsi,bundlei); + break; + } + coin->blocks.maxblocks = (block->height + 1); + if ( coin->blocks.maxblocks > coin->longestchain ) + coin->longestchain = coin->blocks.maxblocks; + coin->blocks.hwmchain = *block; + block->valid = block->mainchain = 1; + block->hdrsi = hdrsi, block->bundlei = bundlei; + block->height = height; + block->PoW = PoW_from_compact(block->RO.bits,coin->chain->unitval) + prevPoW; + block->hh.prev = prev; + if ( prev != 0 ) + prev->hh.next = block; + prev = block; + prevPoW = block->PoW; + } + iguana_walkchain(coin,0); + iguana_walkchain(coin,1); + return(block); +} + struct iguana_block *_iguana_chainlink(struct iguana_info *coin,struct iguana_block *newblock) { int32_t valid,bundlei,height=-1; struct iguana_block *hwmchain,*block = 0,*prev=0,*next; @@ -412,8 +446,8 @@ struct iguana_block *_iguana_chainlink(struct iguana_info *coin,struct iguana_bl if ( hash2p != 0 ) bits256_str(str2,*hash2p); else str2[0] = 0; - if ( block->height+1 > coin->longestchain ) - coin->longestchain = block->height+1; + if ( coin->blocks.maxblocks > coin->longestchain ) + coin->longestchain = coin->blocks.maxblocks; if ( 1 && (block->height % 1000) == 0 ) { //printf("EXTENDMAIN %s %d <- (%s) n.%u max.%u PoW %f numtx.%d valid.%d\n",str,block->height,str2,hwmchain->height+1,coin->blocks.maxblocks,block->PoW,block->RO.txn_count,block->valid); @@ -458,11 +492,6 @@ struct iguana_block *_iguana_chainlink(struct iguana_info *coin,struct iguana_bl } } } - if ( 0 && block->fpipbits == 0 ) //strcmp("BTC",coin->symbol) == 0 && - { - iguana_blockreq(coin,block->height+1,0); - //iguana_blockQ("mainchain",coin,bp,block->height % coin->chain->bundlesize,block->RO.hash2,0); - } block->mainchain = 1; return(block); } diff --git a/iguana/iguana_bundles.c b/iguana/iguana_bundles.c index 0376e2ed6..c1003fd48 100755 --- a/iguana/iguana_bundles.c +++ b/iguana/iguana_bundles.c @@ -513,16 +513,23 @@ int32_t iguana_bundleissuemissing(struct iguana_info *coin,struct iguana_bundle printf("priority.%d [%d] durations %.2f counts[%d %d] \n",priority,bp->hdrsi,aveduration,(int32_t)bp->durationscount,bp->duplicatescount); } else aveduration = IGUANA_DEFAULTLAG; lag = aveduration * mult; - if ( lag < 60 && coin->enableCACHE == 0 ) + if ( coin->PREFETCHLAG < 0 ) { if ( bp != coin->current ) + lag = 20; + else if ( lag < 10 ) + lag = 10; + } + else if ( lag < 120 && coin->enableCACHE == 0 ) + { + if ( bp != coin->current ) + lag = 120; + else if ( lag < 60 ) lag = 60; - else if ( lag < 30 ) - lag = 30; } if ( (num= coin->peers.numranked) != 0 ) { - max = log2(num * num) + 1; + max = num;//log2(num * num) + 1; if ( max < IGUANA_MINPEERS ) max = IGUANA_MINPEERS; if ( max > num ) diff --git a/iguana/iguana_init.c b/iguana/iguana_init.c index bfe2d005c..b4dce2bd8 100755 --- a/iguana/iguana_init.c +++ b/iguana/iguana_init.c @@ -175,7 +175,7 @@ int32_t iguana_savehdrs(struct iguana_info *coin) void iguana_parseline(struct iguana_info *coin,int32_t iter,FILE *fp) { - int32_t i,j,k,m,c,height,flag,bundlei; char checkstr[1024],line[1024]; + int32_t j,k,m,c,height,flag,bundlei; char checkstr[1024],line[1024]; struct iguana_peer *addr; struct iguana_bundle *bp; bits256 allhash,hash2,hash1,zero,lastbundle; struct iguana_block *block; memset(&zero,0,sizeof(zero)); @@ -293,50 +293,8 @@ void iguana_parseline(struct iguana_info *coin,int32_t iter,FILE *fp) } } } - if ( bits256_nonz(lastbundle) > 0 ) - { - char hashstr[65]; - init_hexbytes_noT(hashstr,lastbundle.bytes,sizeof(bits256)); - printf("req lastbundle.(%s)\n",hashstr); - queue_enqueue("hdrsQ",&coin->hdrsQ,queueitem(hashstr),1); - } if ( iter == 1 ) - { - for (i=0; ibundlescount-1; i++) - { - if ( coin->bundles[i] == 0 || coin->bundles[i]->utxofinish <= 1 ) - break; - } - if ( i < coin->bundlescount-1 ) - { - printf("spendvectors.[%d] missing, will regen all of them\n",i); - for (i=0; ibundlescount-1; i++) - { - //iguana_purgevolatiles(coin,&coin->bundles[i]->ramchain); - coin->bundles[i]->startutxo = coin->bundles[i]->utxofinish = 0; - } - } - if ( coin->balanceswritten > 0 ) - coin->balanceswritten = iguana_volatileinit(coin); - if ( coin->balanceswritten > 0 ) - { - for (i=0; ibalanceswritten; i++) - iguana_validateQ(coin,coin->bundles[i]); - } - if ( coin->balanceswritten < coin->bundlescount ) - { - for (i=coin->balanceswritten; ibundlescount; i++) - { - if ( (bp= coin->bundles[i]) != 0 && bp->queued == 0 ) - { - printf("%d ",i); - iguana_bundleQ(coin,bp,1000); - } - } - printf("iguana_bundleQ\n"); - } - coin->origbalanceswritten = coin->balanceswritten; - } + iguana_initfinal(coin,lastbundle); } void iguana_ramchainpurge(struct iguana_info *coin,struct iguana_bundle *bp,struct iguana_ramchain *ramchain) diff --git a/iguana/iguana_ramchain.c b/iguana/iguana_ramchain.c index f0178202b..8ddb2cbfe 100755 --- a/iguana/iguana_ramchain.c +++ b/iguana/iguana_ramchain.c @@ -1216,7 +1216,7 @@ int32_t iguana_ramchain_free(struct iguana_info *coin,struct iguana_ramchain *ra ramchain->numXspends = 0; ramchain->Xspendinds = 0; } - iguana_purgevolatiles(coin,ramchain); + iguana_volatilespurge(coin,ramchain); if ( deleteflag != 0 ) memset(ramchain,0,sizeof(*ramchain)); return(0); @@ -1236,7 +1236,7 @@ int32_t iguana_ramchain_extras(struct iguana_info *coin,struct iguana_ramchain * ramchain->A = (hashmem != 0) ? iguana_memalloc(hashmem,sizeof(struct iguana_account) * ramchain->H.data->numpkinds,1) : mycalloc('p',ramchain->H.data->numpkinds,sizeof(struct iguana_account)); ramchain->Uextras = (hashmem != 0) ? iguana_memalloc(hashmem,sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents,1) : mycalloc('p',ramchain->H.data->numunspents,sizeof(*ramchain->Uextras)); } - else err = iguana_mapvolatiles(coin,ramchain); + else err = iguana_volatilesmap(coin,ramchain); } return(err); } diff --git a/iguana/iguana_recv.c b/iguana/iguana_recv.c index 28182a0f7..ee3ed57f9 100755 --- a/iguana/iguana_recv.c +++ b/iguana/iguana_recv.c @@ -1138,13 +1138,13 @@ int32_t iguana_reqblocks(struct iguana_info *coin) else { if ( coin->blocks.hwmchain.height >= coin->longestchain-1 ) - threshold = 1000; - else threshold = 500; + threshold = 10000; + else threshold = 5000; if ( strcmp(coin->symbol,"BTC") == 0 ) - threshold *= 10; + threshold *= 3; } - if ( threshold < 500 ) - threshold = 500; + if ( threshold < 1500 ) + threshold = 1500; if ( coin->blocks.hwmchain.height < coin->longestchain && ((strcmp(coin->symbol,"BTC") != 0 && coin->backstop != coin->blocks.hwmchain.height+1) || lag > threshold) ) { coin->backstop = coin->blocks.hwmchain.height+1; diff --git a/iguana/iguana_unspents.c b/iguana/iguana_unspents.c index 809cb75a2..456107d9d 100755 --- a/iguana/iguana_unspents.c +++ b/iguana/iguana_unspents.c @@ -54,7 +54,7 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t HASH_ITER(hh,coin->utxotable,hhutxo,tmputxo) { HASH_DEL(coin->utxotable,hhutxo); - free(hhutxo); + //free(hhutxo); } coin->utxotable = 0; } @@ -63,10 +63,20 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t HASH_ITER(hh,coin->accountstable,hhacct,tmpacct) { HASH_DEL(coin->accountstable,hhacct); - free(hhacct); + //free(hhacct); } coin->accountstable = 0; } + if ( HHUTXO != 0 ) + { + free(HHUTXO); + maxHHUTXO = numHHUTXO = 0; + } + if ( HHACCT != 0 ) + { + free(HHACCT); + maxHHACCT = numHHACCT = 0; + } return(0); } //printf("utxoupdate spenthdrsi.%d pkind.%d %.8f from [%d:%d] spendind.%u\n",spent_hdrsi,spent_pkind,dstr(spent_value),fromheight/coin->chain->bundlesize,fromheight%coin->chain->bundlesize,spendind); @@ -80,7 +90,7 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t maxHHUTXO += 1000000; HHUTXO = realloc(HHUTXO,sizeof(*HHUTXO) * maxHHUTXO); } - hhutxo = &HHUTXO[numHHUTXO++];//calloc(1,sizeof(*hhutxo)); + hhutxo = &HHUTXO[numHHUTXO++];// memset(hhutxo,0,sizeof(*hhutxo)); memcpy(buf,ubuf,sizeof(buf)); HASH_ADD(hh,coin->utxotable,buf,sizeof(buf),hhutxo); @@ -105,6 +115,119 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t return(0); } +int32_t iguana_alloctxbits(struct iguana_info *coin,struct iguana_ramchain *ramchain) +{ + static int64_t total; + if ( ramchain->txbits == 0 ) + { + int32_t tlen; uint8_t *TXbits = (uint8_t *)((long)ramchain->H.data + ramchain->H.data->TXoffset); + tlen = (int32_t)hconv_bitlen(ramchain->H.data->numtxsparse * ramchain->H.data->txsparsebits); + ramchain->txbits = calloc(1,tlen); + memcpy(ramchain->txbits,TXbits,tlen); + total += tlen; + //char str[65]; printf("alloc.[%d] txbits.%p[%d] total %s\n",ramchain->H.data->height/coin->chain->bundlesize,ramchain->txbits,tlen,mbstr(str,total)); + return(tlen); + } + return(-1); +} + +void iguana_volatilesalloc(struct iguana_info *coin,struct iguana_ramchain *ramchain) +{ + if ( ramchain != 0 && ramchain->H.data != 0 ) + { + if ( ramchain->allocatedA == 0 ) + { + ramchain->A = calloc(sizeof(*ramchain->A),ramchain->H.data->numpkinds + 16); + ramchain->allocatedA = sizeof(*ramchain->A) * ramchain->H.data->numpkinds; + } + if ( ramchain->allocatedU == 0 ) + { + ramchain->Uextras = calloc(sizeof(*ramchain->Uextras),ramchain->H.data->numunspents + 16); + ramchain->allocatedU = sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents; + } + if ( ramchain->debitsfileptr != 0 ) + { + memcpy(ramchain->A,(void *)((long)ramchain->debitsfileptr + sizeof(int32_t) + sizeof(bits256)),sizeof(*ramchain->A) * ramchain->H.data->numpkinds); + munmap(ramchain->debitsfileptr,ramchain->debitsfilesize); + ramchain->debitsfileptr = 0; + ramchain->debitsfilesize = 0; + } + if ( ramchain->lastspendsfileptr != 0 ) + { + memcpy(ramchain->Uextras,(void *)((long)ramchain->lastspendsfileptr + sizeof(int32_t) + sizeof(bits256)),sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents); + munmap(ramchain->lastspendsfileptr,ramchain->lastspendsfilesize); + ramchain->lastspendsfileptr = 0; + ramchain->lastspendsfilesize = 0; + } + } else printf("illegal ramchain.%p\n",ramchain); +} + +void iguana_volatilespurge(struct iguana_info *coin,struct iguana_ramchain *ramchain) +{ + if ( ramchain->allocatedA != 0 && ramchain->A != 0 ) + free(ramchain->A); + ramchain->A = 0; + if ( ramchain->allocatedU != 0 && ramchain->Uextras != 0 ) + free(ramchain->Uextras); + ramchain->Uextras = 0; + ramchain->allocatedA = ramchain->allocatedU = 0; + if ( ramchain->debitsfileptr != 0 ) + { + munmap(ramchain->debitsfileptr,ramchain->debitsfilesize); + ramchain->debitsfileptr = 0; + ramchain->debitsfilesize = 0; + } + if ( ramchain->lastspendsfileptr != 0 ) + { + munmap(ramchain->lastspendsfileptr,ramchain->lastspendsfilesize); + ramchain->lastspendsfileptr = 0; + ramchain->lastspendsfilesize = 0; + } +} + +int32_t iguana_volatilesmap(struct iguana_info *coin,struct iguana_ramchain *ramchain) +{ + int32_t iter,numhdrsi,err = -1; char fname[1024]; bits256 balancehash,allbundles; + for (iter=0; iter<2; iter++) + { + sprintf(fname,"DB/%s%s/accounts/debits.%d",iter==0?"ro/":"",coin->symbol,ramchain->H.data->height); + if ( (ramchain->debitsfileptr= OS_mapfile(fname,&ramchain->debitsfilesize,0)) != 0 && ramchain->debitsfilesize == sizeof(int32_t) + 2*sizeof(bits256) + sizeof(*ramchain->A) * ramchain->H.data->numpkinds ) + { + ramchain->from_roA = (iter == 0); + numhdrsi = *(int32_t *)ramchain->debitsfileptr; + memcpy(balancehash.bytes,(void *)((long)ramchain->debitsfileptr + sizeof(numhdrsi)),sizeof(balancehash)); + memcpy(allbundles.bytes,(void *)((long)ramchain->debitsfileptr + sizeof(numhdrsi) + sizeof(balancehash)),sizeof(allbundles)); + if ( coin->balanceswritten == 0 ) + { + coin->balanceswritten = numhdrsi; + coin->balancehash = balancehash; + coin->allbundles = allbundles; + } + if ( numhdrsi == coin->balanceswritten && memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) == 0 && memcmp(allbundles.bytes,coin->allbundles.bytes,sizeof(allbundles)) == 0 ) + { + ramchain->A = (void *)((long)ramchain->debitsfileptr + sizeof(numhdrsi) + sizeof(bits256)); + sprintf(fname,"DB/%s%s/accounts/lastspends.%d",iter==0?"ro/":"",coin->symbol,ramchain->H.data->height); + if ( (ramchain->lastspendsfileptr= OS_mapfile(fname,&ramchain->lastspendsfilesize,0)) != 0 && ramchain->lastspendsfilesize == sizeof(int32_t) + 2*sizeof(bits256) + sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents ) + { + numhdrsi = *(int32_t *)ramchain->lastspendsfileptr; + memcpy(balancehash.bytes,(void *)((long)ramchain->lastspendsfileptr + sizeof(numhdrsi)),sizeof(balancehash)); + memcpy(allbundles.bytes,(void *)((long)ramchain->lastspendsfileptr + sizeof(numhdrsi) + sizeof(balancehash)),sizeof(allbundles)); + if ( numhdrsi == coin->balanceswritten && memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) == 0 && memcmp(allbundles.bytes,coin->allbundles.bytes,sizeof(allbundles)) == 0 ) + { + ramchain->Uextras = (void *)((long)ramchain->lastspendsfileptr + sizeof(numhdrsi) + sizeof(bits256)); + ramchain->from_roU = (iter == 0); + err = 0; + } else printf("ramchain map error2 balanceswritten %d vs %d hashes %x %x\n",coin->balanceswritten,numhdrsi,coin->balancehash.uints[0],balancehash.uints[0]); + } else printf("ramchain map error3 %s\n",fname); + } else printf("ramchain map error balanceswritten %d vs %d hashes %x %x\n",coin->balanceswritten,numhdrsi,coin->balancehash.uints[0],balancehash.uints[0]); + } + if ( err == 0 ) + break; + iguana_volatilespurge(coin,ramchain); + } + return(err); +} + int32_t iguana_spentflag(struct iguana_info *coin,int32_t *spentheightp,struct iguana_ramchain *ramchain,int16_t spent_hdrsi,uint32_t spent_unspentind,int32_t height) { uint32_t numunspents; struct iguana_hhutxo *hhutxo; struct iguana_utxo utxo; @@ -145,6 +268,11 @@ int32_t iguana_volatileupdate(struct iguana_info *coin,int32_t incremental,struc struct iguana_account *A2; struct iguana_ramchaindata *rdata; struct iguana_utxo *utxo; if ( (rdata= spentchain->H.data) != 0 ) { + if ( spentchain->allocatedA == 0 || spentchain->allocatedU == 0 ) + { + iguana_volatilesalloc(coin,spentchain); + printf("volatilesalloc.[%d]\n",spent_hdrsi); + } if ( incremental == 0 ) { if ( spentchain->Uextras != 0 && (A2= spentchain->A) != 0 ) @@ -389,22 +517,6 @@ int32_t iguana_ramchain_spendtxid(struct iguana_info *coin,uint32_t *unspentindp return(-2); } -int32_t iguana_alloctxbits(struct iguana_info *coin,struct iguana_ramchain *ramchain) -{ - static int64_t total; - if ( coin->PREFETCHLAG > 0 && ramchain->txbits == 0 ) - { - int32_t tlen; uint8_t *TXbits = (uint8_t *)((long)ramchain->H.data + ramchain->H.data->TXoffset); - tlen = (int32_t)hconv_bitlen(ramchain->H.data->numtxsparse * ramchain->H.data->txsparsebits); - ramchain->txbits = calloc(1,tlen); - memcpy(ramchain->txbits,TXbits,tlen); - total += tlen; - //char str[65]; printf("alloc.[%d] txbits.%p[%d] total %s\n",ramchain->H.data->height/coin->chain->bundlesize,ramchain->txbits,tlen,mbstr(str,total)); - return(tlen); - } - return(-1); -} - struct iguana_txid *iguana_txidfind(struct iguana_info *coin,int32_t *heightp,struct iguana_txid *tx,bits256 txid,int32_t lasthdrsi) { uint8_t *TXbits; struct iguana_txid *T; uint32_t txidind; int32_t i; @@ -421,7 +533,8 @@ struct iguana_txid *iguana_txidfind(struct iguana_info *coin,int32_t *heightp,st { if ( (TXbits= ramchain->txbits) == 0 ) { - iguana_alloctxbits(coin,ramchain); + if ( coin->PREFETCHLAG >= 0 ) + iguana_alloctxbits(coin,ramchain); if ( (TXbits= ramchain->txbits) == 0 ) TXbits = (void *)(long)((long)ramchain->H.data + ramchain->H.data->TXoffset); } @@ -721,24 +834,6 @@ void iguana_unspents(struct supernet_info *myinfo,struct iguana_info *coin,cJSON free(rmdarray); } -void iguana_prefetch(struct iguana_info *coin,struct iguana_bundle *bp,int32_t width,int32_t flags) -{ - int32_t i; struct iguana_bundle *spentbp; uint32_t starttime = (uint32_t)time(NULL); - if ( bp->hdrsi > width ) - { - //printf("start prefetch.%d for [%d]\n",width,bp->hdrsi); - for (i=1; ibundles[bp->hdrsi - i]) != 0 ) - { - iguana_ramchain_prefetch(coin,&spentbp->ramchain,flags); - spentbp->lastprefetch = starttime; - } - } - //printf("end prefetch.%d for [%d] elapsed %d\n",width,bp->hdrsi,(uint32_t)time(NULL)-starttime); - } -} - static inline int32_t _iguana_spendvectorconv(struct iguana_spendvector *ptr,struct iguana_unspent *u,int32_t numpkinds) { uint32_t spent_pkind = 0; @@ -779,7 +874,7 @@ int32_t iguana_spendvectorsave(struct iguana_info *coin,struct iguana_bundle *bp int32_t i,retval = -1; FILE *fp; char fname[1024],str[65]; long fsize; bits256 zero,sha256; if ( ptr == bp->ramchain.Xspendinds ) { - printf("iguana_spendvectorsave.[%d] ptr.%p Xspendinds\n",bp->hdrsi,ptr); + //printf("iguana_spendvectorsave.[%d] ptr.%p Xspendinds\n",bp->hdrsi,ptr); return(0); } memset(zero.bytes,0,sizeof(zero)); @@ -842,8 +937,8 @@ int32_t iguana_spendvectors(struct iguana_info *coin,struct iguana_bundle *bp,st bp->numtmpspends = ramchain->numXspends; bp->utxofinish = (uint32_t)time(NULL); bp->balancefinish = 0; - printf("iguana_spendvectors.[%d]: already have Xspendinds[%d]\n",bp->hdrsi,ramchain->numXspends); - return(ramchain->numXspends); + //printf("iguana_spendvectors.[%d]: already have Xspendinds[%d]\n",bp->hdrsi,ramchain->numXspends); + return(0); } ptr = mycalloc('x',sizeof(*ptr),n); total += n; @@ -988,7 +1083,7 @@ int32_t iguana_spendvectors(struct iguana_info *coin,struct iguana_bundle *bp,st return(-errs); } -int32_t iguana_balancegen(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) +int32_t iguana_balancegen(struct iguana_info *coin,int32_t incremental,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) { uint32_t spent_unspentind,spent_pkind,txidind,h,i,j,k,now; uint64_t spent_value; struct iguana_ramchain *ramchain; struct iguana_ramchaindata *rdata; @@ -1101,103 +1196,6 @@ int32_t iguana_balancegen(struct iguana_info *coin,struct iguana_bundle *bp,int3 return(-errs); } -void iguana_purgevolatiles(struct iguana_info *coin,struct iguana_ramchain *ramchain) -{ - if ( ramchain->allocatedA != 0 && ramchain->A != 0 ) - free(ramchain->A); - ramchain->A = 0; - if ( ramchain->allocatedU != 0 && ramchain->Uextras != 0 ) - free(ramchain->Uextras); - ramchain->Uextras = 0; - if ( ramchain->debitsfileptr != 0 ) - { - munmap(ramchain->debitsfileptr,ramchain->debitsfilesize); - ramchain->debitsfileptr = 0; - ramchain->debitsfilesize = 0; - } - if ( ramchain->lastspendsfileptr != 0 ) - { - munmap(ramchain->lastspendsfileptr,ramchain->lastspendsfilesize); - ramchain->lastspendsfileptr = 0; - ramchain->lastspendsfilesize = 0; - } -} - -int32_t iguana_mapvolatiles(struct iguana_info *coin,struct iguana_ramchain *ramchain) -{ - int32_t iter,numhdrsi,err = -1; char fname[1024]; bits256 balancehash; - for (iter=0; iter<2; iter++) - { - sprintf(fname,"DB/%s%s/accounts/debits.%d",iter==0?"ro/":"",coin->symbol,ramchain->H.data->height); - if ( (ramchain->debitsfileptr= OS_mapfile(fname,&ramchain->debitsfilesize,0)) != 0 && ramchain->debitsfilesize == sizeof(int32_t) + sizeof(bits256) + sizeof(*ramchain->A) * ramchain->H.data->numpkinds ) - { - ramchain->from_roA = (iter == 0); - numhdrsi = *(int32_t *)ramchain->debitsfileptr; - memcpy(balancehash.bytes,(void *)((long)ramchain->debitsfileptr + sizeof(numhdrsi)),sizeof(balancehash)); - if ( coin->balanceswritten == 0 ) - { - coin->balanceswritten = numhdrsi; - coin->balancehash = balancehash; - } - if ( numhdrsi == coin->balanceswritten || memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) == 0 ) - { - ramchain->A = (void *)((long)ramchain->debitsfileptr + sizeof(numhdrsi) + sizeof(bits256)); - sprintf(fname,"DB/%s%s/accounts/lastspends.%d",iter==0?"ro/":"",coin->symbol,ramchain->H.data->height); - if ( (ramchain->lastspendsfileptr= OS_mapfile(fname,&ramchain->lastspendsfilesize,0)) != 0 && ramchain->lastspendsfilesize == sizeof(int32_t) + sizeof(bits256) + sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents ) - { - numhdrsi = *(int32_t *)ramchain->lastspendsfileptr; - memcpy(balancehash.bytes,(void *)((long)ramchain->lastspendsfileptr + sizeof(numhdrsi)),sizeof(balancehash)); - if ( numhdrsi == coin->balanceswritten || memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) == 0 ) - { - ramchain->Uextras = (void *)((long)ramchain->lastspendsfileptr + sizeof(numhdrsi) + sizeof(bits256)); - ramchain->from_roU = (iter == 0); - err = 0; - } else printf("ramchain map error2 balanceswritten %d vs %d hashes %x %x\n",coin->balanceswritten,numhdrsi,coin->balancehash.uints[0],balancehash.uints[0]); - } else printf("ramchain map error3 %s\n",fname); - } else printf("ramchain map error balanceswritten %d vs %d hashes %x %x\n",coin->balanceswritten,numhdrsi,coin->balancehash.uints[0],balancehash.uints[0]); - } - if ( err == 0 ) - { - //printf("mapped extra.%s flag.%d txbits.%p\n",fname,(int32_t)coin->PREFETCHLAG,ramchain->txbits); - //iguana_alloctxbits(coin,ramchain); - break; - } - iguana_purgevolatiles(coin,ramchain); - } - return(err); -} - -void iguana_allocvolatile(struct iguana_info *coin,struct iguana_ramchain *ramchain) -{ - if ( ramchain != 0 && ramchain->H.data != 0 ) - { - if ( ramchain->allocatedA == 0 ) - { - ramchain->A = calloc(sizeof(*ramchain->A),ramchain->H.data->numpkinds + 16); - ramchain->allocatedA = sizeof(*ramchain->A) * ramchain->H.data->numpkinds; - } - if ( ramchain->allocatedU == 0 ) - { - ramchain->Uextras = calloc(sizeof(*ramchain->Uextras),ramchain->H.data->numunspents + 16); - ramchain->allocatedU = sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents; - } - if ( ramchain->debitsfileptr != 0 ) - { - memcpy(ramchain->A,(void *)((long)ramchain->debitsfileptr + sizeof(int32_t) + sizeof(bits256)),sizeof(*ramchain->A) * ramchain->H.data->numpkinds); - munmap(ramchain->debitsfileptr,ramchain->debitsfilesize); - ramchain->debitsfileptr = 0; - ramchain->debitsfilesize = 0; - } - if ( ramchain->lastspendsfileptr != 0 ) - { - memcpy(ramchain->Uextras,(void *)((long)ramchain->lastspendsfileptr + sizeof(int32_t) + sizeof(bits256)),sizeof(*ramchain->Uextras) * ramchain->H.data->numunspents); - munmap(ramchain->lastspendsfileptr,ramchain->lastspendsfilesize); - ramchain->lastspendsfileptr = 0; - ramchain->lastspendsfilesize = 0; - } - } else printf("illegal ramchain.%p\n",ramchain); -} - void iguana_truncatebalances(struct iguana_info *coin) { int32_t i; struct iguana_bundle *bp; @@ -1206,16 +1204,16 @@ void iguana_truncatebalances(struct iguana_info *coin) if ( (bp= coin->bundles[i]) != 0 ) { bp->balancefinish = 0; - iguana_purgevolatiles(coin,&bp->ramchain); + iguana_volatilespurge(coin,&bp->ramchain); } } coin->balanceswritten = 0; } -int32_t iguana_volatileinit(struct iguana_info *coin) +int32_t iguana_volatilesinit(struct iguana_info *coin) { - bits256 balancehash; struct iguana_utxo *Uptr; struct iguana_account *Aptr; - struct sha256_vstate vstate; int32_t i,from_ro,numpkinds,numunspents; struct iguana_bundle *bp; + bits256 balancehash,allbundles; struct iguana_utxo *Uptr; struct iguana_account *Aptr; + struct sha256_vstate vstate,bstate; int32_t i,from_ro,numpkinds,numunspents; struct iguana_bundle *bp; uint32_t crc,filecrc; FILE *fp; char crcfname[512],str[65],str2[65],buf[2048]; from_ro = 1; printf("volatile init\n"); @@ -1237,6 +1235,7 @@ int32_t iguana_volatileinit(struct iguana_info *coin) else { vupdate_sha256(balancehash.bytes,&vstate,0,0); + vupdate_sha256(allbundles.bytes,&bstate,0,0); filecrc = 0; sprintf(crcfname,"DB/%s/balancecrc.%d",coin->symbol,coin->balanceswritten); if ( (fp= fopen(crcfname,"rb")) != 0 ) @@ -1247,14 +1246,22 @@ int32_t iguana_volatileinit(struct iguana_info *coin) filecrc = 0; else if ( memcmp(&balancehash,&coin->balancehash,sizeof(balancehash)) != 0 ) filecrc = 0; + else if ( fread(&allbundles,1,sizeof(allbundles),fp) != sizeof(allbundles) ) + filecrc = 0; + else if ( memcmp(&allbundles,&coin->allbundles,sizeof(allbundles)) != 0 ) + filecrc = 0; fclose(fp); } + filecrc = 0; if ( filecrc != 0 ) printf("have filecrc.%08x for %s milli.%.0f from_ro.%d\n",filecrc,bits256_str(str,balancehash),OS_milliseconds(),from_ro); if ( from_ro == 0 ) { if ( filecrc == 0 ) + { vupdate_sha256(balancehash.bytes,&vstate,0,0); + vupdate_sha256(allbundles.bytes,&bstate,0,0); + } for (i=crc=0; ibalanceswritten; i++) { numpkinds = numunspents = 0; @@ -1263,26 +1270,29 @@ int32_t iguana_volatileinit(struct iguana_info *coin) { if ( filecrc == 0 ) { - vupdate_sha256(balancehash.bytes,&vstate,(void *)Aptr,sizeof(*Aptr)*numpkinds); - vupdate_sha256(balancehash.bytes,&vstate,(void *)Uptr,sizeof(*Uptr)*numunspents); + vupdate_sha256(balancehash.bytes,&vstate,(void *)Aptr,sizeof(*Aptr) * numpkinds); + vupdate_sha256(balancehash.bytes,&vstate,(void *)Uptr,sizeof(*Uptr) * numunspents); + vupdate_sha256(allbundles.bytes,&bstate,(void *)bp->hashes,sizeof(bp->hashes[0]) * bp->n); } crc = calc_crc32(crc,(void *)Aptr,(int32_t)(sizeof(*Aptr) * numpkinds)); crc = calc_crc32(crc,(void *)Uptr,(int32_t)(sizeof(*Uptr) * numunspents)); + crc = calc_crc32(crc,(void *)bp->hashes,(int32_t)(sizeof(bp->hashes[0]) * bp->n)); } else printf("missing hdrs.[%d] data.%p num.(%u %d) %p %p\n",i,bp->ramchain.H.data,numpkinds,numunspents,Aptr,Uptr); } } else crc = filecrc; printf("millis %.0f from_ro.%d written.%d crc.%08x/%08x balancehash.(%s) vs (%s)\n",OS_milliseconds(),from_ro,coin->balanceswritten,crc,filecrc,bits256_str(str,balancehash),bits256_str(str2,coin->balancehash)); - if ( (filecrc != 0 && filecrc != crc) || memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) != 0 ) + if ( (filecrc != 0 && filecrc != crc) || memcmp(balancehash.bytes,coin->balancehash.bytes,sizeof(balancehash)) != 0 || memcmp(allbundles.bytes,coin->allbundles.bytes,sizeof(allbundles)) != 0 ) { - printf("balancehash or crc mismatch\n"); + printf("balancehash or crc.(%x %x) mismatch or allbundles.(%llx %llx) mismatch\n",crc,filecrc,(long long)allbundles.txid,coin->allbundles.txid); iguana_truncatebalances(coin); + OS_removefile(crcfname,0); } else { printf("MATCHED balancehash numhdrsi.%d crc.%08x\n",coin->balanceswritten,crc); if ( (fp= fopen(crcfname,"wb")) != 0 ) { - if ( fwrite(&crc,1,sizeof(crc),fp) != sizeof(crc) || fwrite(&balancehash,1,sizeof(balancehash),fp) != sizeof(balancehash) ) + if ( fwrite(&crc,1,sizeof(crc),fp) != sizeof(crc) || fwrite(&balancehash,1,sizeof(balancehash),fp) != sizeof(balancehash) || fwrite(&allbundles,1,sizeof(allbundles),fp) != sizeof(allbundles) ) printf("error writing.(%s)\n",crcfname); fclose(fp); } @@ -1295,14 +1305,62 @@ int32_t iguana_volatileinit(struct iguana_info *coin) } coin->RTheight = coin->balanceswritten * coin->chain->bundlesize; iguana_bundlestats(coin,buf,IGUANA_DEFAULTLAG); + iguana_fastlink(coin,coin->balanceswritten * coin->chain->bundlesize - 1); return(coin->balanceswritten); } -int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t purgedist) +void iguana_initfinal(struct iguana_info *coin,bits256 lastbundle) +{ + int32_t i; struct iguana_bundle *bp; char hashstr[65]; + if ( bits256_nonz(lastbundle) > 0 ) + { + init_hexbytes_noT(hashstr,lastbundle.bytes,sizeof(bits256)); + printf("req lastbundle.(%s)\n",hashstr); + queue_enqueue("hdrsQ",&coin->hdrsQ,queueitem(hashstr),1); + } + for (i=0; ibundlescount-1; i++) + { + if ( coin->bundles[i] == 0 || coin->bundles[i]->utxofinish <= 1 ) + break; + } + if ( i < coin->bundlescount-1 ) + { + printf("spendvectors.[%d] missing, will regen all of them\n",i); + for (i=0; ibundlescount-1; i++) + { + //iguana_purgevolatiles(coin,&coin->bundles[i]->ramchain); + coin->bundles[i]->startutxo = coin->bundles[i]->utxofinish = 0; + } + } + if ( coin->balanceswritten > 0 ) + coin->balanceswritten = iguana_volatilesinit(coin); + if ( coin->balanceswritten > 0 ) + { + for (i=0; ibalanceswritten; i++) + iguana_validateQ(coin,coin->bundles[i]); + } + if ( coin->balanceswritten < coin->bundlescount ) + { + for (i=coin->balanceswritten; ibundlescount; i++) + { + if ( (bp= coin->bundles[i]) != 0 && bp->queued == 0 ) + { + printf("%d ",i); + iguana_bundleQ(coin,bp,1000); + } + } + printf("iguana_bundlesQ\n"); + } + coin->origbalanceswritten = coin->balanceswritten; + iguana_volatilesinit(coin); + //iguana_fastlink(coin,coin->balanceswritten * coin->chain->bundlesize - 1); +} + +int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi) { int32_t hdrsi,numpkinds,iter,numhdrsi,i,numunspents,err; struct iguana_bundle *bp; - char fname[1024],fname2[1024],destfname[1024]; bits256 balancehash; FILE *fp,*fp2; - struct iguana_utxo *Uptr; struct iguana_account *Aptr; struct sha256_vstate vstate; + char fname[1024],fname2[1024],destfname[1024]; bits256 balancehash,allbundles; FILE *fp,*fp2; + struct iguana_utxo *Uptr; struct iguana_account *Aptr; struct sha256_vstate vstate,bstate; vupdate_sha256(balancehash.bytes,&vstate,0,0); /*for (hdrsi=0; hdrsibundlescount; hdrsi++) if ( (bp= coin->bundles[hdrsi]) == 0 || bp->balancefinish <= 1 || bp->ramchain.H.data == 0 || bp->ramchain.A == 0 || bp->ramchain.Uextras == 0 ) @@ -1311,38 +1369,36 @@ int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t pu return(0);*/ numhdrsi = refhdrsi; vupdate_sha256(balancehash.bytes,&vstate,0,0); + vupdate_sha256(allbundles.bytes,&bstate,0,0); for (iter=0; iter<3; iter++) { for (hdrsi=0; hdrsibundles[hdrsi]) != 0 && bp->ramchain.H.data != 0 && (numpkinds= bp->ramchain.H.data->numpkinds) > 0 && (numunspents= bp->ramchain.H.data->numunspents) > 0 && (Aptr= bp->ramchain.A) != 0 && (Uptr= bp->ramchain.Uextras) != 0 ) { - sprintf(fname,"accounts/%s/debits.%d",coin->symbol,bp->bundleheight); - sprintf(fname2,"accounts/%s/lastspends.%d",coin->symbol,bp->bundleheight); + sprintf(fname,"%s/%s/%d/debits.N%d",GLOBALTMPDIR,coin->symbol,bp->bundleheight,numhdrsi); + sprintf(fname2,"%s/%s/%d/lastspends.N%d",GLOBALTMPDIR,coin->symbol,bp->bundleheight,numhdrsi); if ( iter == 0 ) { vupdate_sha256(balancehash.bytes,&vstate,(void *)Aptr,sizeof(*Aptr)*numpkinds); vupdate_sha256(balancehash.bytes,&vstate,(void *)Uptr,sizeof(*Uptr)*numunspents); + vupdate_sha256(allbundles.bytes,&bstate,(void *)bp->hashes,sizeof(bp->hashes[0])*bp->n); } else if ( iter == 1 ) { if ( (fp= fopen(fname,"wb")) != 0 && (fp2= fopen(fname2,"wb")) != 0 ) { err = -1; - if ( fwrite(&numhdrsi,1,sizeof(numhdrsi),fp) == sizeof(numhdrsi) && fwrite(&numhdrsi,1,sizeof(numhdrsi),fp2) == sizeof(numhdrsi) && fwrite(balancehash.bytes,1,sizeof(balancehash),fp) == sizeof(balancehash) && fwrite(balancehash.bytes,1,sizeof(balancehash),fp2) == sizeof(balancehash) ) + if ( fwrite(&numhdrsi,1,sizeof(numhdrsi),fp) == sizeof(numhdrsi) && fwrite(&numhdrsi,1,sizeof(numhdrsi),fp2) == sizeof(numhdrsi) && fwrite(balancehash.bytes,1,sizeof(balancehash),fp) == sizeof(balancehash) && fwrite(balancehash.bytes,1,sizeof(balancehash),fp2) == sizeof(balancehash) && fwrite(allbundles.bytes,1,sizeof(allbundles),fp) == sizeof(allbundles) && fwrite(allbundles.bytes,1,sizeof(allbundles),fp2) == sizeof(allbundles) ) { if ( fwrite(Aptr,sizeof(*Aptr),numpkinds,fp) == numpkinds ) { if ( fwrite(Uptr,sizeof(*Uptr),numunspents,fp2) == numunspents ) { - //bp->dirty = 0; err = 0; - //free(bp->ramchain.A), bp->ramchain.A = 0; - //free(bp->ramchain.Uextras), bp->ramchain.Uextras = 0; printf("[%d] of %d saved (%s) and (%s)\n",hdrsi,numhdrsi,fname,fname2); } } @@ -1377,15 +1433,12 @@ int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t pu printf("balances error copying (%s) -> (%s)\n",fname2,destfname); return(-1); } - printf("%s %s\n",fname,destfname); - /*if ( hdrsi > numhdrsi-purgedist && numhdrsi >= purgedist ) - { - sprintf(destfname,"DB/%s/accounts/debits_%d.%d",coin->symbol,numhdrsi-purgedist,bp->bundleheight); - OS_removefile(destfname,0); - sprintf(destfname,"DB/%s/accounts/lastspends_%d.%d",coin->symbol,numhdrsi-purgedist,bp->bundleheight); - OS_removefile(destfname,0); - }*/ + printf("%s -> %s\n",fname,destfname); + OS_removefile(fname,0); + OS_removefile(fname2,0); } + if ( bp->ramchain.allocatedA == 0 || bp->ramchain.allocatedU == 0 ) + break; } else { @@ -1394,24 +1447,14 @@ int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t pu } } } + coin->allbundles = allbundles; coin->balancehash = balancehash; coin->balanceswritten = numhdrsi; for (hdrsi=0; hdrsibundles[hdrsi]) == 0 ) { - if ( bp->ramchain.A != 0 ) - { - free(bp->ramchain.A); - bp->ramchain.A = 0; - bp->ramchain.allocatedA = 0; - } - if ( bp->ramchain.Uextras != 0 ) - { - free(bp->ramchain.Uextras); - bp->ramchain.Uextras = 0; - bp->ramchain.allocatedU = 0; - } - if ( iguana_mapvolatiles(coin,&bp->ramchain) != 0 ) + iguana_volatilespurge(coin,&bp->ramchain); + if ( iguana_volatilesmap(coin,&bp->ramchain) != 0 ) printf("error mapping bundle.[%d]\n",hdrsi); } char str[65]; printf("BALANCES WRITTEN for %d/%d bundles %s\n",coin->balanceswritten,coin->origbalanceswritten,bits256_str(str,coin->balancehash)); @@ -1447,57 +1490,11 @@ int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi,int32_t pu exit(-1); } //iguana_coinpurge(coin); - coin->balanceswritten = iguana_volatileinit(coin); + coin->balanceswritten = iguana_volatilesinit(coin); iguana_RTramchainfree(coin); return(coin->balanceswritten); } -/*int32_t iguana_balancenormal(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) -{ - uint32_t starttime; int32_t j=0,n; struct iguana_bundle *prevbp; - n = coin->bundlescount - 1; - for (j=0; jbundles[j]) == 0 ) - break; - if ( prevbp->utxofinish <= 1 || (j < bp->hdrsi && prevbp->balancefinish <= 1) ) - break; - } - //printf("B [%d] j.%d u.%u b.%u\n",bp->hdrsi,j,bp->utxofinish,bp->balancefinish); - if ( (j == n || bp->hdrsi == 0) && bp->bundleheight+bp->n <= coin->blocks.hwmchain.height && bp->utxofinish > 1 && bp->balancefinish <= 1 ) - { - bp->balancefinish = 1; - if ( bp->hdrsi >= coin->balanceswritten ) - { - //printf("balancecalc for %d when %d\n",bp->hdrsi,coin->balanceswritten); - starttime = (uint32_t)time(NULL); - for (j=0; j<=bp->hdrsi; j++) - iguana_allocvolatile(coin,&coin->bundles[j]->ramchain); - if ( iguana_balancegen(coin,bp,startheight,endheight) < 0 ) - { - printf("GENERATE BALANCES.%d ERROR ht.%d\n",bp->hdrsi,bp->bundleheight); - exit(-1); - } - printf("GENERATED BALANCES.%d for ht.%d duration %d seconds, (%d %d).%d\n",bp->hdrsi,bp->bundleheight,(uint32_t)time(NULL) - (uint32_t)starttime,bp->hdrsi,coin->blocks.hwmchain.height/coin->chain->bundlesize-1,bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1); - coin->balanceswritten++; - } - bp->balancefinish = (uint32_t)time(NULL); - bp->queued = 0; - if ( bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1 && bp->hdrsi == coin->longestchain/coin->chain->bundlesize-1 ) - { - printf("TRIGGER FLUSH %d vs %d\n",bp->hdrsi,coin->blocks.hwmchain.height/coin->chain->bundlesize); - sleep(1); - if ( time(NULL) > coin->startutc+10 && bp->hdrsi >= coin->blocks.hwmchain.height/coin->chain->bundlesize-1 ) - { - if ( iguana_balanceflush(coin,bp->hdrsi,3) > 0 ) - printf("balanceswritten.%d flushed bp->hdrsi %d vs %d coin->longestchain/coin->chain->bundlesize\n",coin->balanceswritten,bp->hdrsi,coin->longestchain/coin->chain->bundlesize); - } else printf("TRIGGER cancelled %d vs %d\n",bp->hdrsi,coin->longestchain/coin->chain->bundlesize-1); - } - return(0); - } - return(-1); -}*/ - int32_t iguana_spendvectorsaves(struct iguana_info *coin) { int32_t i,j,n,iter; struct iguana_bundle *bp; @@ -1510,11 +1507,11 @@ int32_t iguana_spendvectorsaves(struct iguana_info *coin) { for (i=0; ibundles[i]) != 0 && bp->converted != 0 ) + if ( (bp= coin->bundles[i]) != 0 ) { - if ( bp->tmpspends != 0 ) + if ( iter == 0 ) { - if ( iter == 0 ) + if ( bp->tmpspends != 0 && bp->converted != 0 ) { for (j=0; jnumtmpspends; j++) if ( bp->tmpspends[j].tmpflag != 0 ) @@ -1523,19 +1520,14 @@ int32_t iguana_spendvectorsaves(struct iguana_info *coin) return(-1); } } - else if ( iguana_spendvectorsave(coin,bp,&bp->ramchain,bp->tmpspends,bp->numtmpspends,bp->ramchain.H.data->numspends) == 0 ) - { - if ( bp->tmpspends != bp->ramchain.Xspendinds ) - myfree(bp->tmpspends,sizeof(*bp->tmpspends) * bp->numtmpspends); - bp->numtmpspends = 0; - bp->tmpspends = 0; - } } - } - else if ( bp->hdrsi > 0 && bp->hdrsi < coin->bundlescount-1 ) - { - printf("error doing spendvectorsaves.[%d] null bp.%p or not converted\n",i,bp); - return(-1); + else if ( iguana_spendvectorsave(coin,bp,&bp->ramchain,bp->tmpspends,bp->numtmpspends,bp->ramchain.H.data->numspends) == 0 ) + { + if ( bp->tmpspends != bp->ramchain.Xspendinds ) + myfree(bp->tmpspends,sizeof(*bp->tmpspends) * bp->numtmpspends); + bp->numtmpspends = 0; + bp->tmpspends = 0; + } } } } @@ -1618,59 +1610,6 @@ void iguana_convert(struct iguana_info *coin,struct iguana_bundle *bp,int32_t RT depth--; } -/*int32_t iguana_balancecalc(struct iguana_info *coin,struct iguana_bundle *bp,int32_t startheight,int32_t endheight) -{ - int32_t retval=-1,i,n,flag = 0; - if ( bp->balancefinish > 1 ) - { - printf("make sure DB files have this bp.%d\n",bp->hdrsi); - iguana_validateQ(coin,bp); - return(flag); - } - bp->nexttime = (uint32_t)time(NULL) + 1; - if ( bp != 0 && coin != 0 ) - { - if ( coin->origbalanceswritten <= 1 && coin->spendvectorsaved == 0 ) - { - for (i=0; ibundlescount-1; i++) - { - if ( coin->bundles[i] == 0 || coin->bundles[i]->tmpspends == 0 ) - break; - } - if ( i == coin->bundlescount-1 && bp->tmpspends != 0 && bp->ramchain.H.data != 0 && (n= bp->ramchain.H.data->numspends) != 0 && bp->converted == 0 ) - { - iguana_convertQ(coin,bp); - retval = 0; - } - else if ( bp->converted == 0 ) - { - for (i=0; ibundlescount-1; i++) - { - if ( coin->bundles[i] == 0 || coin->bundles[i]->utxofinish <= 1 ) - break; - } - if ( i == coin->bundlescount-1 ) - { - printf("must be restart after all the spendvectors are saved\n"); - coin->spendvectorsaved = (uint32_t)time(NULL); - } - } - } else retval = iguana_balancenormal(coin,bp,startheight,endheight); - if ( retval < 0 ) - { - //printf("third case.%d utxo.%u balance.%u prev.%u\n",bp->hdrsi,bp->utxofinish,bp->balancefinish,prevbp!=0?prevbp->utxofinish:-1); - coin->pendbalances--; - iguana_balancesQ(coin,bp); - } - else - { - iguana_validateQ(coin,bp); - flag++; - } - } - return(flag); -}*/ - void iguana_RTramchainfree(struct iguana_info *coin) { printf("free RTramchain\n"); @@ -1737,13 +1676,6 @@ void iguana_RTramchainalloc(struct iguana_info *coin,struct iguana_bundle *bp) dest->H.txidind = dest->H.unspentind = dest->H.spendind = dest->pkind = dest->H.data->firsti; dest->externalind = dest->H.stacksize = 0; dest->H.scriptoffset = 1; - //if ( coin->RTHASHMEM.ptr == 0 ) - // iguana_meminit(&coin->RTHASHMEM,"RTHASH",0,1024L*1024L*1024L,0); - if ( coin->PREFETCHLAG > 0 ) - { - //iguana_ramchain_prefetch(coin,&coin->RTramchain,0); - //iguana_prefetch(coin,bp,coin->bundlescount,1); - } } } @@ -1798,11 +1730,13 @@ void iguana_RTspendvectors(struct iguana_info *coin,struct iguana_bundle *bp) } else { - coin->RTstarti = (coin->RTheight % bp->n); printf("spendvectors calculated to %d\n",coin->RTheight); bp->converted = 0; iguana_convert(coin,bp,1); printf("spendvectors converted to %d\n",coin->RTheight); + iguana_balancegen(coin,0,bp,coin->RTstarti,coin->RTheight-1); + printf("iguana_balancegen [%d] (%d to %d)\n",bp->hdrsi,coin->RTstarti,coin->RTheight-1); + coin->RTstarti = (coin->RTheight % bp->n); } } @@ -1884,25 +1818,7 @@ int32_t iguana_realtime_update(struct iguana_info *coin) if ( dest != 0 && flag != 0 && coin->RTheight >= coin->longestchain ) { printf("ramchainiterate.[%d] ave %.2f micros, total %.2f seconds starti.%d num.%d\n",num0,(totalmillis0*1000.)/num0,totalmillis0/1000.,coin->RTstarti,coin->RTheight%bp->n); - /*if ( iguana_spendvectors(coin,bp,dest,starti,coin->RTheight%bp->n,0) < 0 ) - { - printf("RTutxo error -> RTramchainfree\n"); - iguana_RTramchainfree(coin); - return(-1); - } else printf("spendvectors calculated to %d\n",coin->RTheight);*/ - /*while ( block != 0 ) - { - if ( bits256_cmp(iguana_blockhash(coin,coin->RTheight-n-1),block->RO.hash2) != 0 ) - { - printf("blockhash error at %d\n",coin->RTheight-n-1); - break; - } - block = iguana_blockfind("RTupdate",coin,block->RO.prev_block); - n++; - if ( coin->RTgenesis != 0 && n >= bp->n ) - break; - }*/ - if ( (n= iguana_walkchain(coin)) == coin->RTheight-1 ) + if ( (n= iguana_walkchain(coin,1)) == coin->RTheight-1 ) { printf("RTgenesis verified\n"); coin->RTgenesis = (uint32_t)time(NULL); diff --git a/iguana/main.c b/iguana/main.c index 887fede42..04d48df70 100755 --- a/iguana/main.c +++ b/iguana/main.c @@ -61,7 +61,7 @@ struct iguana_info *Coins[IGUANA_MAXCOINS]; char Userhome[512],GLOBALTMPDIR[512] = "tmp"; int32_t USE_JAY,FIRST_EXTERNAL,IGUANA_disableNXT,Debuglevel; uint32_t prices777_NXTBLOCK,MAX_DEPTH = 100; -queue_t helperQ,jsonQ,finishedQ,bundlesQ,validateQ,emitQ,TerminateQ; +queue_t helperQ,jsonQ,finishedQ,bundlesQ,validateQ,emitQ;//,TerminateQ; struct supernet_info MYINFO,**MYINFOS; static int32_t initflag; int32_t HDRnet,netBLOCKS; @@ -364,6 +364,7 @@ mksquashfs DB/BTC BTC.squash1M -b 1048576 mksquashfs DB/BTC BTC.xz -comp xz sudo mount BTC.xz DB/ro/BTC -t squashfs -o loop + https://github.com/vasi/squashfuse */ @@ -1197,7 +1198,7 @@ void iguana_main(void *arg) if ( 1 ) { sleep(1); - if ( 1 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"VALIDATE\":1,\"prefetchlag\":13,\"startpend\":2048,\"endpend\":2048,\"userhome\":\"/Users/jimbolaptop/Library/Application Support\",\"agent\":\"iguana\",\"method\":\"addcoin\",\"services\":1,\"maxpeers\":64,\"newcoin\":\"BTCD\",\"active\":1,\"numhelpers\":8,\"poll\":10}"),0,myinfo->rpcport)) != 0 ) + if ( 1 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"VALIDATE\":1,\"prefetchlag\":13,\"startpend\":2048,\"endpend\":2048,\"userhome\":\"/Users/jimbolaptop/Library/Application Support\",\"agent\":\"iguana\",\"method\":\"addcoin\",\"services\":0,\"maxpeers\":64,\"newcoin\":\"BTCD\",\"active\":1,\"numhelpers\":8,\"poll\":10}"),0,myinfo->rpcport)) != 0 ) { free(str); if ( 0 && (str= SuperNET_JSON(myinfo,cJSON_Parse("{\"userhome\":\"/Users/jimbolaptop/Library/Application Support\",\"agent\":\"iguana\",\"method\":\"addcoin\",\"services\":1024,\"maxpeers\":256,\"newcoin\":\"BTCD\",\"active\":1}"),0,myinfo->rpcport)) != 0 ) diff --git a/iguana/pnacl/Release/iguana.pexe b/iguana/pnacl/Release/iguana.pexe index 6011ada5c63b1b6067709caa5f36f9ba937d7e76..060e48c4873d3eefac058038883ab2269d087502 100644 GIT binary patch delta 1421543 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%0Av=ds~=&M(9p`1cP?k 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%0D#!bj}{!FnAvE%$i#SvrEA_J z1{?@6z&PXpQIPrM_U*H-E;3}?NaONS?uJlcwTqF}6=Wqj+8uOMb>py(PwtTV#=K$9 zrcGsIFxGF)AJN=WP;lHkm;#EIK0JFf!}>={ee__fS+a{@Ddax-?*hPpw1!o!{uHjx zULckmd=P_nTw{7zUFuIl@bJvFYnb(Xpheon2Bf4oymjhu3dUZuRstKJB&G+0eq&;M z?2!=%J4YF!r0H?z!ES?=orDqAYH%o$QQ0!tFjcS^rY%ePIS^(o3(kkjms=yMk!Qea z=@y@5pcnf$BpiT2EQ-6q_ka^OJSqw{9XwVBh*PvyG#ZUYhgo2y~0@&JWT-M=g(@fB0(j zhf&Liul#0UvREMXKdx>tt=o0e+x46`iOn~?AAf)DB0kQl!N^n`ci8gUuPGvYq~M<1 zGthZIK@f`*$(*Fq?+ABS{2okd@zBf^Zm6_nR8vIT=}y?yldyd)@DaGX`eNc2pSM&Q zRD@ROvwVxI7~`v6zocGY7cI!YRdUAIT93>yO%w-|hio@M@S8|`zRI^1GUUlpjmqiC znMs7Vf$)DDh04c@=pU6(Tn_^hLV$7K)9Ep&+pLhH&*e?GyfiZDbk@XZU4bCs^a=6* zVn=sH{#T3m6{~aQ{Own)E?W3^8v)mkbY~P6@Oe`Umu_?oSnG)$clCF*8=%M>yryTi zavrIL_8qWNxU9&(>I|QJ+sgb7X-FuR&lydOMRLZ%x|&5xtlk?53`@%mb)h)aaW5=1 zg*=BXeNZO6cOWlA;i+S^jr6J&K;m0^IQ+vqrdO_i(f~~ge0ha<@=U z*r5$!M6VdL^$FMar7Gp10sXrM_D%=Td|L6_F`v=)*Y(wpYv3dc0pWIqvSM*)PT;oC ztv7*E!2niRNmUuC^I965=W4mon`qX5-6k^R)xwr+8Kc5rX|mU)Jw9A{$YjMC<-#Xv z-yg0#Y;x#~a@CWxCs%hKF{wYJJh(jL$HUxIlQC4kPfI?`-EI<6Dp0=i#I-vV6kC{{ z4Z)GP_1A$~^XEg}yL=?63X72Az8SYlpBXp`Gf!6fk;7Av*h`h)e4qBm!&9G{sGL;J zmZVi3o{BN?JgHnFNvk_N6>E}nQn^l&cH!{UXC^A0%B_;L#>16+Ony13+#^YAIb0cM zvZ6wHRFc*%I9wTTa;QT2J4u@OaAktYk2A*0afVGXZsaENAAxgA~a-74SA5q zs7~dJ3;jn`Ok+N?utYCARid{n5TrROayG0%yLwfNG%qYVUuSxb3v}$HL!jci07XTt z)w&CnITtGVXD&e6tj9fW1r*Gmr*h|xuV&zA5$0+0S*ya&SZ4>*soN{pZF1)#5Y=zp z+Rc7+(=4kPiVi$(xrLzGWs8&9>_veo z#nJ(4-o>v>r)SFYAE75oWNuTA*OSvz>HB#2Yz{{InU(|R>wzmn>!myAnQe4+Si?cP zWlPMfN)|1-XnKCh5mp*w80+faqPA2m@8QB5e&3xkVuMY*_F30P+hG96ehgxSO- z(=FKiL5Tzr^2D5!X%oUi!|mNS7^^@hkC5Ld0J3X?ssXFqN_B%gR`y1Vb@6*s5d5(} zLW&{yH-fgnN~BPGD}FX$+y=YUgW~+ON?FhgX%ej$9eFN}NYc>el5eb8)7rL-QikC# z^h3VTk%o(3ckC2Byt-#$(d|251kBU+*MXhx8@YX|pAqfoa~GK7djwK!piziTPaq^|_@3BV%t6CLD?*uOL_g@BHx~!h^$)M#N|J(P13yKziS}vbN zi_1x%u?jsDvKInUi82$qk0Z z^gRgXy#kLTk`k$2gpOEyz4W3uzn%8MK^;nz0)+8$y+51OeF2h!P&gl(O}a^2r-O?V zv<4{@=7TLlk=K{^0wNRmfB%aUYEFFSO!Zb<(p2rR{lW| z7YyUxQa2s$>iKw1laCz(0HYiWx#}eNnhxax6i7+wYHai1E^Uf?Hk^mN42UO2tS=l{ z?lvdj6?%^;6Q(awe($P}j7v-gTtXVt`oWx>6dfNPn*ijX01z_9*bLfosVq`Uu2@D` zoyb(e`7l@yKujyDfe9o-1_LQ$_G3VI;H9Etl~WFz61jx_1ZE46<7@UYs$Y5Uxwwbz z3QVfEe1Y|1Z^Q>8z|tW#GBWilW0~pcG;L_P!Eh8-{Y76yRP9h3>~3 zskAC#S`6XenjDm6gODciOW+3H_oK8lA8E$C;Gp|RN&}M;6l7Q^wUoXKI)KfbNrM>r zk#?@x+Qx%IEath0uQ@t(E`vIZ1c@shWg4stX{;|_fmvpFMSRwA?TKQvnS35DueVliUv3F;>R{tdVI^ZB+87sNCYywB9i z$|7H1&*1%?7>zkvYQ9feQtDAEIiSR#ZD8}mUIciJ%!#vYQ0CU5QNA9q%j4}XBoa{8 z+T{VgotI6XA}Hx>*f)@<5^^^5egP#C<5V9Y^G7MoGFAH0!$tWllp^$_g)-hjQ%9%F7tctYjbBj1@5`yCaa!S#&o zXw~P7uC=s^VeTOe47p}uVnHUE%Z`_M@L|AONAO4Ed>(UFzDd4Tmy3=xBPZ(ccQc8N zT9E^x11TWsdpgD>*=#|JF0v!UgiR(yz#bCFQVbg-Q3Tm&G64f64i0K}fi2nWr=4 z@Q@nYKr5cPU*xLgs*#<7bBytfycnU>C9n`sDlDQc@(sZ($bX82F|)o$?5vR8ulO=x zr=-sTLsViddFvG9i|gi`wj_cOA0Vs63hhQKwxkSazbc5EL}|2 z4Bp#a9tV-0R0969DrfZ8pkxMp%pR{mXf%3QR;>oFBSazwg!F$X5S6@P6k~qq$p=ntI{L*Rg&wH)$3*n+?dwn4JG66W zZ`971!KA%AcP1t69qb$08xxg4Zm|HIj-NT|8fWNp;FMs~0IvPX#7mO?bOuJt(brNh z17F&2ibgNvH)0lJ-cX7s^=(4vBqvx&iAye`8)+$EfCYY`5YA$kwWi%>gk__k->)_Tw$- zVZl()cVAZj?hPP-vbx`rQq;bylAhzF{8r)=%zVXgf823$s^`0>v-dmXKVYQhsW%QV zqJi?e6&c!+X zvg1>*WcACA(>Z+E@#~0`<;#xKIeM~A({U9y=}A--Tn_WY9Q+!>cO&$xj(&ow^VjM|2fsA=kNUS-MfFAy#bCN9F<-x{DJDyFQj$p z`IS%Jz1zG<5MjkUF;1E*n{Ap`O1ZR^R#eckfQjp8w0cccrp= z<(qf!{v@kkfBo*=Ia!@X_e)t_4kOx$I?K|ylXwUfl^PQirnt7n{UHjT@>-t;<1jV_0QTb`OFjbHHiIRu#4|AQTm^r;j8sVP%JU$K@POhRf#V0|UYBDMK z@`h3h92cJoQVzLrfmo*iD1?a|43A}Ep^fWPY4~5hLfr?FPMWvS%=_yw8t|q0$ z0oe+r$x{Ibm}9UlNnXCds=CMl;t#8lTZX(#7rNrx+LmWinLrEC+BM zSRell(4Z4JHG_SFfCu#R$9mxO$w{wI=TAYEhFiWD{^|QLDoRn}VI&#;ksIg~1P45v z-A{s;Y?!FJX}d2_K%&czAdk{5KOr%C^Qxv`>Pok?*BafG6lja5C)VbaTamh zHx7?InM&c5QL8ZY_QuX^1_w$c74X*#D7#-`>_5+GX&gq%By7*ug|~7wUhIL`_3Wn2 z#st8ROd*8%+=8?-8&9*FBak|nAnOo>P^O>a;@3Nyay3XXebxw+H_cJhal70m%u1Yc z=F>bow2_&YtBClhO?GpUhN{L^{RC5^Nju2-O{=px4AHEO6$0pHC3YmpX%lp`cDlfD zbH;pjuo#m!_SyB64-~@$Nn(D6DZmFSJMCoPTuOv@PICQE;3hXV6L3alP{0`pB{|$iV%;`A(1A|}Nv%4Qo?Rka z2e_y(@-a~kdAh?|{IKo6kQ%nYhYwn?7R)q5UZ-xNjh*-w>`27j*GsIAo zHK5l7B(GO!yj3fpU(y2mW2w^nt7Ku^OjNc7*g$w31E*tRKBFwjUAO#0pa_Bs5l;&o zyJh)&d14CXM+~-|tdf@nYf~KLY59BO2otFoN7BJNBcs|<$WD$R6hYH!{UK$PD)rki z2B!0I=n#b!@axWGm(<0~qIDoYLYR}xgkeAuK0s68lqQa##QU3Lo8!7!*baQvQluJO zwd2#5KWkPLF;CMUnyxQn77Xwj_tB2ge}H%w3yIvCvC^1KxZonR;=odJM0r_oOH12;W=KJ_0vPoewf>{< z+L{93U12bTc@0rexh=K$lhpl?2n&kSB~a3FWEi6Slrgc#ls*b~%X|Sog!eW`e|*km z4k;?sX4+(dF)_;prZOJ{^iv=r6ukySPpx6X5p!)Dp^YkRdhy)Hu7N|kr73Bh#}Tfn zPI0%HHp4>=K8(hifH+38JVwWKRxN$}50)BXYWM8!lxg z>{d!{v;i&juAn^HhjW1|Lq-xKBlj~| zm!kGFf$y>aVzh^KvaCLd$@Ps`KY|qk0)WjEonh9<1sL|2l;yNWwoAK25%VcAv>m@U zDz5&F>5dYHK9|WGi>-rjWE+Ws?twZGJs>sTUduzo;{d}H?^h1mQi?=Oq|B;08*t8H zX8Qt~i_>^991m*&d=JX9fEJ1h5l9{N2!>{om>~!RX3msYM54>OI2(AB|ofe|nd zD0{H-i}UyFvtE^ohh;)!KYGw%*Y`m_NRSY+6^XhTt`NZK4?7+5Md(ApL&NPz(Ex)x zzDFj{@vw3@+vjQ!xCgIak$?x>1<(xALhmc2ghf~(v53!r;+sa6J#bmPC#2txI7F&F zt=m9$lH>9P3L*s-Tq&c_?sX3!;bqYJ&x0f$rA|817}SrD%K~!*kPyEJRRbob*#%a0 z=PPZp7}E}(OB>8X6o}f~(!yK8q(sIWLrh)BM}GMVUM!;7(bmobe?c}`7X~gwT<5$& zzBI0#;5!6Vx2L?tE0L(9RrhkUSWI4aGADJm@C2|sF@|$M(_ARL75fVCD`ec4H374f zOB-(Y0sd1;8>YdEuC&bGg529g0K*}t2O?i#<`#9|ri7Tp0$x=P<~@sVXu@*EB9@Uv z4dpmC733aoYT!^(VIrOe=?h&DZ!8V1C!5gv;(Rhi-IoQ;N@>0%vyv0)W9h?Z-Rk z?$eS!~Q9os}CbfK^q8YxrVZuB3u4NMex6T_t958kcw2g zDY&bx0B`;M~J=Q-7LakOfoonENu{Vg~Kk z7_SN30+H)@VT)FoJ|ScDWX5El1r7^1TNp1*7ddetrPa0^?RreKR(yU@UDZM>h;|T) z^xt2gxPi0qqYHZPiIDAa=r)C7NUy3AaL+SP5^SH&()7*|0q)B)6$m`{CTKnU1AZd+ zX-wm#+++3G`2?EDJd@Mf;U&3p$V>8jj8);5dG|E6AS>mJ%-?c9Xdnz>MJK|&pbj(Q z$`&x*ECe=Jz=h(esZCz-{_O_Fk0{57o@b~a#Gqo#@C-=r#B4_D^vX(jK&81k5xFoi z`C<4D5WDs2omR#ANru(do?wSNat;afjJQ|G-FwIcn>BCo1Jm~-ti@LmWyjD-slrC|UcH@fMo z8IbR*<*yY;;HR>xBZZ6`)?*z|Jz&p~7jn+WD?6U}Aaxig;}^&#X)&JuuCGb!wm!v=wsNCzIe{Wpx6?3v4sT*StP;Dw89 zX*dJ+I*J>n5DLPxF^Qjzq3!_|A8O3N;-UY2sC$+H<{nzEZ;S|GBbC$AIA#K9%vBeB z$W1-fLm7;v(>!ZKBo-h3vQ42iP~;x9ptsn)*j=RPr&V-GasJ|EYyBgWGm7rqgV&m! zQP=$c@%E+xQC->EaA83)6$ zu+Lh19@ctR$baFO&`-ybm9GuhM#y}SZ(zm4|hxns@g8+>(k42 z7H?3tvr3KN0qnRGKR@UnjlTw!302z&)9>~kHM@uOTDW^epa&E_1PGBIFm9pnJ^1af zzYaaWCN#HKVqtY56dT@7a!KxYtQ++Y)>icDRf+XMmw;fL!d$Q4{KwPkv<|?$r;lj| zIRXho0Tc#a@SqZzE^vbWhi?mh=imH-!L7K!CnMSrTI^Ij-O}Q3jxnsZeCZ$TjCR^= zU}JR_h;=wsuh>~JV;}Z0y`KKo^>3M$|MWLUV>{xH{uR-N=whc0eA~a>mg!fA7UX>hbPbHHl1)xmbWMrK)Ey;4V8VOe+zbWj~vx)(=l#KI)jIYK|7|GFO?=d-b~!2mKgy z!cSi+>8zjgvF*F?xGk`<0JVs=;>$hR)tZS&q?x@%gMTK6R z96LP8oG^BD@*rr7$Bs`;gb|c^-0+F952x+;zBDtPLv#C#lp}@YrpxL2=#-Q3g22yA1hDC01&% z394LOQ6*RHT%-w{A_Nw$J7}+izH5HqQi0W@*^vu0V_0C*7(oMd;Hp4HM}Qf37R2pS zRqTy9Q(p~ZCace-xwY7F;Qqh~=kdyzu284O|6r=J;;=YR1S~gZaCCjb3U@QX6|C)n z>R4q}RoT9_Ent50_l6_lfa#g(DQ2y!JKl$zn1MFE=d=W2e{!)BUI;N0I-|BHMFl#5 z&NMYw&P(G%0$U+xAV=<%3o#Z%bYAmLeptvmrRCN7dYpvh7Airm>s-vE7g7 z&Z(v<$c)~aO=Foh+lLz^pp!t6O5N(<7$X%u5eIp&Akt>}wlM&nb^vCtniI(_infoK zjE@cEs5K*;(+wS$y?_d`Ls9<-0+R+1W#OqqTcHV?LOx{9QDAbIy>O5jwiUFh$f|)F z4c#tb?$jB5{mO#E!>j5K6eI!9iYxwZR0eEeCdU=c^6=0e_v*IBZDr5P0QcFSb?_aR zI9Qyv^cB-|+~76nEJqoJ0e}R)KGZen8*n1RHKT$nV^dSia2+)}dl5Lu3B7a~1?=3H zOZ2!R56%Pv+S-&P!ra*A0EMh{yR5o$5-e%UeOOq6!4Wl~z<)bm&Eaft?3nH^#Uz9O z4!d_(cdhQWi<*&2hnAM_Q@@Pll%oH>qNdsS5ziVps(B)>6l#kvf48Q?d@kAtOm_3mBI_e9$FMAvTHM@$@(OtdJm zFY>j8vEhF4Z}n4Lk~uy7n_P3LR(RgP(xltmc{p6{cFD_8Aa9Y6)c<)*^&r%2QBuhI z1~h@^t1!fL>;;cA(6xve1e2^TaoyqYz!fGZw5_^Xfo-2}^wkmXe<1WSutb1zG*%A^ zj5T_qM=Yrhseu*+fETfkL}QKCv^4u14pto^0c3&%;RlW5VKaU?ASIbAP72P)D&=^xC8U*??QzsHD*^`hmIaK3d;}Fm5_5T z1}Y$&Jd0A^vY~#1Qcr9R>VEF5!yMZ81GHp=Fwn-h8LOFP3v=b+!U``8M$1J1#E41z zz4jwu%yB5&j{BMHnpItEJlMSu_+_=Mj31{0(B_!)4s1!XMt-pC`RCtL7m3tBsw&Mz z-CPAe_#f7dU2LXsHak4yOEEEAaYD%nmi&MG63zaCjvsBG_2B$@E_%8pJxUh47_|qv zlhL|^_oG2@Y}TYNt?Q%jsvr+MfAMwX%DP=Q&}-WibxbeC_;LH=98lT-U>EnUracJj znk?giPv)+3p(0J+%Lfkf%x0Kj_{@3p0X64fi7wE?R7Ah9%=uYwVn?v zplo*XY{M|jX6DS9|3)?q+s)mV+U(nr>ioQE*hCS|_4=CQ=wdHdd>p7Xsyb}u;+f{> z`o};ac<|Q`AJ%lY&t?=TNMe{87R$Um=CF$-`ilx%gVGGdQ6By6m8 z1)^ei)jnV-V0(nt;#@7$vE9QA$bt~la~98=t*Cf120%eP?0#-94!$_o`)bU1lybkf zl7%x%m3% zk=&3Ps;Di&whP5Gjx%eDs-Xd18bha*^^C?H>UZ*wBpmq-yOerB2~>`gVxRHd*_PxMPW$3LqLqm4E%!ZPT|pC=-RUH$wt z1BL~=GiSByxnN8=nzGkq;31s)dhfhZ-^K&L?xS_Z2Ojsv%t4?awj#Sun@&el=6Q?e z%$-W?GJ+Fv4lxf79_gz?Oz9(q`I-RmAqt|t9JXIjurBZ%xiQ}fz)AT4i0jHB2j5-X znl=uNXZIC}wWc+AK^~cmh4SmRp`Md^iIVgF_DG17kR)}VI)5lQ z;8_7qrJlnU{IdL!G$8IeDm5v29E}8&Qv?6i%g=C1M)~ev3TW1RT}nNlE}u{TKl*Pn z&+cCM)%L2gt^4*>j5uc)aZVX=?*H9?s70A6P_J@5(oQwOG#pXd34_irpm2p<(jTB~ z`8sw%o?8WD1Z~rk8=wC-ff%ms^y1GKJ;lh(tQk48;D{GYB)4v=DC1!<@j~u%`*X{Q ze}|Pnz2Kot_hfww6D2es&&Bx!8lIc|5={*HP_y*vXSL zzAWriifQ1zCtqL(Q|bNMU}xy zFbNe^WNVa>Qh^c1s`<# zi*dwv=`q~I7+Wf{zEudfHPb*mSa=+qws;P_&@Oy44_zbN)WCy?`T6eo&$j{v&YD&9 z_5Q>W4~IYerdPw7ha+o33lo_@a&o`7{Du#IY4}@HTw=z&HD!4BF=DJd2r)28q5|!P zn2vTZa>xKfap#D)Cn&?Hv}+hr`q>2T>|#~8qCVm{&QUv^j2bwQde_VdTB}At?N)%9 zt4r#8L6G;Y9e^>vyz9o*^}sFNRf#h(&8&g@m9g!B`k6(|h$*BrGUsL#CwnueQ(Sxrq45x4&KunxEGkek0{G7#$ zvfxE0v?s=kMT-~C!#KiwG^v|9E^&M+S2w@r71&V451$YpH`RWbBg^bo2-d!jFN>Lp zq8{qu5FT%FIhWlg@mI$UjZI4GqxG)D(?-)kGGBiKINXEA?k<|6c7T3iYQ<8x3&?=Y z_N;KU@A#w{1`h(_(!S_%>!!>ViYN!DdQ$uNG8Bb`mQcC9f~KD7V49A5!0|xkH;;S%Jv|-1uTMUxTIu z4keBf@6-EhcKCpgDxv$^k#16PgoJehv5unBsMbCK3N-?c06HEkP)9qL?23r_Ao6`4 z7{VHd%R=rmA2~e0rXorO8BCx8yIC9%NfknpLeu3kPC*LR?%GV8#sg3{xg^v~8j;cN z4!LSPdoT$Z+#YAR2aDHnf#;3m`E@kv`q9;0AbUFEmEtHjcLo8G^3krvkPoQBET9zP z><#+{i-i%(w0Up7G40L1sGoyha1zy{wG?gNYngkQQ<<;2TQ1#L!)cJq;j1yLj%~(t z>=I6V#O#bMtikM*b#PP?&&~_iebTcQ=g^N1%n^u%m0@e=8NF2K_7iMT;t+nCGDpD3 zFCwU-BkM3?n?;`j0=*E>*T5i)wi&s%)xuO?YU*uCB9t7OYqQ(eu}* z_J3%#3VngFurTvbM^M@v$im*GDsHtgt48ELYX&j$-%e7C3vITG$y8D)Y9+g3uKw3Y zq9((LOg?>4mgU+DErjI67Gl#wIR!54nw|)qr8xJXE||$5?zNF{@L=FAIC=wCCG`SS zP-F-~cue@OowGzJ3GIP%#zR@i_?bX4Oxk=N<5NMj@TSH3!g{j3I->q4fac!&KpA+L z=)GNB+qH|>{5tI&pHDM%IQu&E!r{mcn)eZ~7Qw#hwNLJxdGN61g1o%x6R4{{XuORE z>g(p#AUxGM_6zgNchgfHOs%MGKL*^!FUbR9Ggn8z^HNnT_qh=d5a4cD|A5h(U{t=b z=J4Ki1${PuS>Swl2asg0?mA}Uw^!Ame#ejYE7^NwaEbXi-~q6~1M}{k;JUSYI77>m zc4^O_+cFSvL0ic8H^|t^eaq#FhiBo*RNivo&q7V%?6n8?MdrSHT}d^$rS8D;-M?Y% ztH|hg&D%V|wpUgTN;IZBXnRn{Yso#&>5i+-8WZi0J_Cd&1a0e5v_H6MP`3`a7Ne3HDiYe< z{I=s{rP$I#U)SQIRqK>~$+tcdTNWmq2mRK+lRxUSKe|;StJ~ZSoZrl@6`NTfLVfm+ zS2cM)%cxoF4c56q>$S2-$-U6`oJ)J5x-i1SgD`(U0G!*GhJ?vzL7m!o?QJ86rYM69 z9pILk>CyAd@}(PgYh-tUyBe=K?CzdlgWJ=Ve&De_a5v_JZ>a|hDo(qC-P`H8dC)*I z6YiDu6B%%DmH;6v%B{%;Qvj)kmT4{E+f?yC9$zo~o6^n;J9bIKV+BfZ!AbPUD6u2e z5rc>bRB|{n`Y4gujsml$XU|Z!`I#Lx(Cvg_!q%m`0?ghmhPMIGb7l*SFR-FtC2Vn^ za-t>DI;v4iF7o}srsF5nO|_WLE~b)QW}*m->d45+a9R?JotscqISDLMTeM9TYeJ_` z4p_<$*D1mb^fF*qP)d92Z}7>L^Y;ayiYKD4TC1iTE{ttZFE{m z&~}v9+)=|&VkZhLMwfB`Xo|*bLF6>hJ8dobxR4GagbQoGt_tR-HUTgzjY^B69nj1P zAD`ReDjIY|w~w6ZlziVFwC82;n^{?=I=WWP8K-79m~OkOp@>=dt?)AzhCP$*=2YPZ0zAc&^`@A z_LT44af4GabyCH`#_WH+4c4+EDW>~g3mQg&-4`Z%TB|x$!;EqEK}>wLnVe5cF4_sqKw?F#8xbEqq@Jdq2*oO5nc z*E4qa?KZo{IzZ<>Q>iYa>OX|PBHQXl+ooRmIBcykOVv*l-IFl>?Y2&=ew?!u^<3p` z*Zh3AvQd{jS-HYThNk^SFlTYp<2XG*XO@?}aL$`lg$u9BZ`JkN0|VfZKzeM0*-u#h zHmLbFJbljwMQFjQQ0nRB!Be)vJG#JW<4BPiKj6&2+|Z>SFT^*rfQ-4TiXijkI6I8 zdQk_iWvJ&9-PWSq9j3C_3bs{)P`8y~b2+l!G?XrXUhl7{i(I-fYMof2WCyk_*@BHD z-{-7?P8aBq{Zl6~`y(QgIydu4iBCrFJ*##^kvltWoT;rt*WG7ME#??M8ng*$)_g3n zv*}M@G|<91q$u3t2+O5Mr5V$vXPf6{0~L=ey{K>%yM-Iq3v*xRhh}Hf^-Pri&%8WfcWt^;fZ|DaGC%tQ(02+12)pp3&Z#yRFEuR25L~Q=#?^D%Ip?Z4l5(R419B;rY#_eDMI)7+=FQMkE59qalXgK|b zV&@sok%z{Q<BbJdkCZ|v$Q z=mkKX6$(qMiz=&RI~Qxl*gxOihIx-!Ftll~-%dnZZMM;e^Q_g-1L(H)KvHqB3zqAy zV=#Ew_qz{U*ehdpMNn3gLYEsIF*xlU`cb5dW)6F<9UHseh8B&(GPr_=dMoE1;c)6y zH^5XM9(4qk5%8EU0N7rew&^U+h<`sqPI(2VFOe5@S0cjO#a*<9hli=!Havl+wowI0 z=#n(`2=txFO4;YH-rDXhw8&Jj;~*gE?$XC#cUbtTfCFV}fU{Xrt9ng=(DxvYDwK%{ ztjcb&{F95GHcd0^#Ew?e5PRKNTTz|79y@o`F$a>!&}np(#Pue$LKJg8#sRv25%aUz zHvb_lUI#C!Zj!_f%p1gV`OEjnxsnZs`5)B1UK<-RLHvip+Bo9=>+)G5-koXrGwfmo zJXL1fqs?mo+$%M7>M`uc%pZE({7kjDS560sXNQd(se(O!XSAJ=0&k%iFscG1l-NU1oFrW(OxYCQpCCrX%hhcV%YCOz; zOsrF5U2w|H_M0y1zKW1PFxK_eAHAsiE7wp0sC9QPHk(n&=#CZIU8=fbd&4@=ZUZf!ISZIb=&?7z-Us_n_b)U-ul=>=drg{snx@C| zu{S#2SKCu3&*RO1w$aIZ0{^}aI(Zcbf90s%tN4K#o3fa63OWhE-$I5`5qmLK!c@bi z+Q^vk!&AkU1bm3AD-U>G+_U2E%i-m4*~Zy$2Lxw$0?DMjSK!ixAs!npToZ2kaDqZj zFo(uqRP~8!=Xhlmk5UfysYRbUOw%~QKrM_FG;Nc!*3fkaj5fa~*hTcBG0NJo_Lbhn zn5@+bCy{SE$Hw}p+DIimYo6~Z=9~9ElU8G+_$GimFxwF559kReOi+RMJ@x$oTSpxv z1*;xTFgVp#fmH{URChZN!h^QJ!R6(bv1)=n*kQt9LPNfA^Ot~{QL*zc!PZZ^hgJ;t zP`}LTO6(r5vom`WPPp~hVrc-bX|w?GNH?i(~_j& zbnbP^Fruc=Bdh4)a1ZuF%JQ4?aKAC|E@n%3Q%F_M-nyy^{Nr&iNzJw#B%jipnZo#ZLSay5!cY0e1lhxs^s+HZwHt!GeqV-m0q}R$?e--D`rL77a6$ zGYt)h-zN~mBY``N2bdfxHkE2WMS2sV_{%d>BUkPX>wa+eu2Cd7R`Vy6E`NJL1`xe` z4@%oWk>H2!bAxy^l(nb22TVO5Jk@<-XJ~4_Alz7Svx$~yM3G>A(EQ*wP;)dHTt~VG z;D5}qLj|53)TV`c=Z?t%4T=qI{Q5@8uc2wuq)BB#HYo+zn!xYO6-THxZ+uzV`Pih& zg8S4gy3HFDy%g>#u>%OaZMz%406NMXo)4EXm2saRcY9!R17@gLPYza{9dq#P1An^X2Tr^uEwfL zAe2O;^_U407lBL8Hu~a)fVpN1vBi4nei19;bGy7SGi$;Q>W;P^G%+ z!#vn3*I-mnuEmMRV`B?c`H~Q@XV(Yz?HKBLaGB<;xC?B*Gr}YZ8W>pzF9|%HZovM7 zTF3!-wsGFKxX$-BzlD(^{7-nADSz zR@*?aJ*eR5RQM0Yrh)LG3;h!MGafy%k9j6kHN}D5i)u?mE3JkT+>tNl4&S;frMdG)xryyA8j)GLxQV#y#f+lr=bF5&P$OVbHtm=9|Q4K554J}-%)^|F6 zUEf=EJ;1iTc+B|GsqlU&j1=jGIuw zgQqks$Y?jg83g9nU4=%n=%}1WJY0iu3v1-}Y?TO&UU(E%H(p@Qj2Vhpz|4c&y3nCR zhjJe~v)Ak*1$+$Yvm$TSZMOmx3QhX~*0Obk)2J}#eD z)KwpR08GM~FY(?a;ex<_BGxNhd;pOxpaG_i<#4ySb@DC$yW1x7G(}VDL;mCRuhSU+DgNxuf*PhY z1#^9#ST+TtEWN8GPP93}o<#2qhrB9UE?`rL9TRc4)y~eLo5J|Zm4p~5+3UI5s@l7= zJbwS2X6d64^a1sk{p*{X|m{!6apbht2*JtC-$E#wD30 zXV0N)J!fb~*!V9d-0Xp^Zgj0oNI^OwSfeu-*A86Fl>hqzv7#fXBy;+<@;)1)7ViH#SA241{M7? z!X?EKn;j@tfXNmLJv4V*J^`}*w`w~HhQ##j&V_I72O>L05oDSR@&f=RE(pRDlTA#xh746LQnGiEa769 z{TFbpiHd|@=I)UoHiRUBm1G{4oa)6P=TIyDsj+fRVU2s-LAqSVAO_e7;Y+-;a1UFC zQv(5|2k^eD*hdG7J~+E>fq!Xjn})`*k5uzn)fJzz4nXUVfW!9qz_&(@2=5tEbFyvf zgqY7|&7Y1%0Cs)g)sMaJd>nCQ&zrw^W)7z@b7zHld2?8ymZ}(T`X=?A`>i;78YWNi z!RJp^?CRRfWCItV`&)HKxlGwedQws!)FJfq}c# z{%TEZW24FD`Ub{*h3TC;7k&;+;nrRP^JXfULl>)S?|jvdl-e_8r)7%~ZJIeUqMtcT zILV&BSW&&JulSY_CRlx!Hr)N=vBohF0NUndc9`sr=y83WZ#dfx^!8ABbV=ccN?L2W zB)-!gs#7o2?P_+JEDg^3I;WR&&dSP_%WpcvwvBr#{0}L53_h_1N$rf?^7@tp9#)-E zn(jR0QE-BPQ1CH{j~8kTHx+R$V9H-XLb4gNdfEuehkUjwJ-@5v7U zGyTR6jR+e$WN27&9AWf(tf>mE%1+Fw+PkI->enBe{F09u-Mx-Q`rJUj7YNIWEnRo* zD&Nv$cc3otv)>cCOINkL;joigw#fL+zy-ccAR$I%Zb9(RtOglGx6izAj?T?&<~;^k zqx@Z={kF8j4+za`mZwT^kglE44VkWEFl$uA$pioR0)n{j8KQh_u;`rI@g@Va&-R-e zEBqabV9|b;{q!+~D3B3nU^1j4kO%&m)gXiD9{#joj?Ov5E(4#jhjto}lLgjq3_^&% zE5U&}eXv~!vLpl`#T)#q0A+w~UrhN6$0Pfd_Cs|Tbm`br?ey!|)1#~CO!ch;o4wRrly#cC-lv$T0i`PpMnEESbF%H&4EhvmE4JZyiKKs1dNNjOROKKq`lv*GMn zXB9$dC1Ty7M4k;?n@5+8@wJ~&x2N>d`Co6YUsum2@aK$!AI%)K@1vOq`h2%PY^?%? zps=-%-#Ngp)(fv^sc&Yrc}hHlCh(PEdf3akuTPzWdEDTa%%Nx?Jvl_rpAniL_HsT{ zgrUYC_A-tOrb5+*bF8dU_dVyW`y?CVbm_5G>)s+3Qo)n&Es-wM-WuTI^_G&{J=YK0 zZG(z+{yLrYAI7{_^w+QGW)6`5YOIUXM_$zpimH9ebZmw7MC|g|LBVDr~VbqJ@fldojzyYqP{?6I(4?X zXic@+UP`0K_v?2osVgA5l_zB(eX2TEcik!)i$|A`0db#Ri%UiKGPH7a&cuBs%h5Ze z_;gHt=Xy!f#gfJp)#&ih@Q_{}vjRE<&MF_`fsK^d`1F*pxcG6Rk&a7@MZdASDyN2R zG~1&mET3*_ZS?X{@!cl}`Pq=lS3B;muI{Kc*eyLP&FJXjR$dO1GGLkvvqiC26jlrk>ZL^)r{MyW!&;29Dn9%jCD}? z8kuqxhdraT919uJYgX5-TW7iV+FG>!bgo*k$#IGCA`4^V$MuVdW(LCMHR z8hgGzW5=*a!QZB&b;&A!-!aF)+Xkiju*O`!QR9=6$Wp|Bfv9oM+ZjsScMjviSFJpO zHS`(1>}=sQbvxNA4-CQrKid~2X$V$aRDeY*M`OH6h- zW`spwzkc0aK5A&zvbM^sgj8 z(6YEBX&sSZ9csY_HKRdLLtnL51SNhP^1C(Ld$y?yYSur`s`_m9*X(((XHD?dEg-$N zZ&yh$8vJ6oy6Udi`+m9*KUQtj2nt|ZF;KM^=1kmPQ&u)n{SD5Q8&^M-HXDseN$-sF z^Bs2)vGLwuy?vmT_Zr{mmYDZ(l2UeMLouTANEY`Ha1oI>u*=+S*2YsJ%c;;4F6W zY8@CZ*iim8q8hJ5HD+FF{lS+xRn^E!wH~}@tH@ei2=*F4PA@k%qB%xr z%vS6c&2i7JeXUJ0!QLdh)Ax-*Gi% z93*PQ6c#h&=hQ~3^>A%u%hsxjmg8+C?A=l-Cfa2cX!=gUD5Hq zUOj|hsOhPZs3v10<0AdgR^zlv^82FIXruV2b^NdmZxgPfR7PGkT@`(y)>kVS-mdft zM2FKeFl4KT=o9T-;`sQXY^eAb!=9~sL?PAWK!&QlIfXgBP*{apWiR#fVgX5BKIm(n z9ib`0ZdC?!3|TIofpR8-*yWS)$3RvxhMhg5CK$*G*bquCl)#%y;dD zKC?sMR;@=LL-wB;Z*1Iab!>!UZ>v!%`|K!Nr!-G01>knrFO5RI6lVPbC?#rhpO{#cX^h@#8|_)e%+|*494)ImxsX}*iLHJ4?g~*& z97oC526T715it~VpRsYN*IVa57tz^^COe~0!4#;du!z$jt?l00B&D*>|3csL?$!;M zYao-?U`TK6T&7{{vSo7^MGkDGjj~b3jXwEg=IU?ETaKn;^$3g(iKN>L7bHSy~ zLF#(;#1s;}4r)n9c8OSgshv-kfslrs4{FJc5O$093Eih^zN^)~HRshvJW*u6z2a*l zl-7uq-fil>Hqxp+RJJGzwf1W*+1^jpiYDODQ`vi|w_EE`>zJkXQ3qK<`oyD=n$?DN1I{>V&&-1)guE}vZP#Mh9X#;1mF&Ssn=yG zuGkC9OaoV#3^Iak+3A4`85XXE#h)S`2zOaOeT9?GQh;j~UdKa%@;Mg-{|wkRg38+U z)Yz6L3lcKp8iPfnGAVg8Ubs(Lo44 zi08yJWQ9Vcfa<^_uh&rqy@L!)h5RE}%%GG(21T%d=oUc+o#NCggc%oQTi}}%g3?2+ z!VIFD3Lz35gy0v*mXLv;fecnq1|fq#WB{-Bg3#m>GPJ`cL52n2Pr=g+{0lcg2p1$o ziSV?A7kQ7tu^@tZ1Am)X5Rk#b2p%$n$XYP-bCd!6ivXgV2^n%AgBibN?pfFb5JDis zDTItqG4M|ggb?_gfvNE!jWx0->V&Nz@(|}=9c6GuI^-D-S$L7Z5iCrA1wsB91o-t) zmP9*UhKvh*iqsa&;fPQO>X9IrL3HyWL?IHA@tY|+7DNi-LIxycMGyrM3>ms19X?FH z?K1HDLl7uL9w-BEhPy%tcO=B8k&0umSP`cXsh|iJ5Z!ea1Z3cYX2cm}TVMjuR;D)~ zLlxu~LXb&EA>8oB&uUW_2+>Cq!Y%+_6atCb)LNN%zm76^YBKNwf(1m#qE#lWKXF0U zZhX&z(5pgNaGk-7Ad`|m3c)-?FoU4^#tdxG3W66LWk^BXRuDSy$a``)WQf#c-~|Dy zP5~H(AY@pcDF`Ek@Ny7>d8vh8EC^|6OH;E;YpdpWWxT^+uS}W@YW@2dLg1^mCL!|4 z_JEt#A_RZr5r1+7gvf*tjPpSY0)I28%^D19JhsENI>?|8&}86sGlF_w(br7ldMFO#H9Y-GmTUO$aj2&-_dXa*rT{ z7ziO2I~awNr@6=wXy7NPx_N&f&D znjwS6ru|{we6}*-8AT^YLx`nFhzv52A2SG3u-7L0O%#MTg!q+1LD(M#TUNZ}Fwh}} zF@gmF8DvH%tVmgvL9v&FmeFQD^c92vFZTY`CNXdRf)F}+5M)^HC8`UNjBQ#qzK^7M z_t}Er3%Va6gsgYyn(!$LuA33;1wrN+@F%|v8LmMFJSU_jKW6;q{bwr^Wl-uU!~jhQ zGA|>Dr|~5#ezPDfpa>+o?^zID4nk#zj311sL^sSQW}wL#=L(dTJmF#76VXsmT|2=je~H`jSjb>-(iwE*13}hqFv`;? zi>@91Mf>L;f7VfmArA9beggk9SY%L#fG*A%r)C-~(iw|By29oGrtGf5v!ZruzGj$Xq0SQ?UkrB)Yc#*;0B4or7EFii?EC|YA zMnvO9#!rS{Y!Oo-LmgxQe~OTUkNztmkcduBhY)=s1SR5w{KqE9azrTu`4a&oydz{t zf(*RI2lO<3XN72oYjqT2lw*s)Yi8WQO;HeXD~}dj)*WR*Kn62@Gl-<|js?F& zL74H&%!qb>zK;?!@QI@kc!0^{0nxweoLe(m2r(H#ysQa99(A&sJa4jp75xBjh?^*g zPLLtRu^`&Yfbn0~n$dVqcbx?xISh2npMNLB8z>0)M{FIeE$ZjZARHrpCc|rxAwiQt zVdnpDLex=+u@Hhni5J=m@iQ5|XF)&)3ln$ZKmSSwl)stx6$lZo2_Y_6a1o#5?_U%m z4?>J`tWEO2E(o$69*lJa+ld(wmKK|l6Z>EAXIYL2n}qgfA(e);G|9Zmr;!9N%33h< z+OsX>;li(A)l3jTTWH4(5 zK^|oUevRRoT|Xg1co)c^xIqX!X~9F{swRlVj5uqP42oa@(QRTuv{MVhjJWI&>;>Vt zPxBRIDAOtvdE^(`%AgqRObQ{ELWocYA(){yA?z&zsW2syItt;T${;Q&Sm~r1G0I97Y+BEB5Lxylo1}11h_?ZkE zk7E53{woM!bPz(u8#W=V_)Q@!pa>+o>nsR8u4)%#T(bo;`JxPt1@R+fXyR3~T3PHe zu>DaziR`u!;y)lnG_OJe+;0AVsi%=)Pw`=oM86 zGq2!FG6;iR2#rxQuIYY)5KlEBcwN`7wJ>Zl*!X0=%O#LO)@0xX@?(=llL7K06$X;< zZV^Mbi+DejBr9hkPm!P?7v&o z2Yz{=+W;XFwc5l7$&U;|fu5alAVFOnW#|AI%!u$I8^z6^&ze~Nkr2X4Aw-h6z{~}I z77)>_&G=5F%O=LgXuxR`36^44WWBiY5bj)Y)ZV{y#Hq;sfE`A%p}W$jbjJ z1fEG{LAXE$@XdVvUu8&x4Czh=#a#e zK|z>0K4LEj(f?}+=@zjdD1=B7Pf{BEw&2$<7Q|EtvBa?;_~gHnp$syBBQaPrm&EwP zm;RLy;XNRPze7R%k`OWyK(K)5HVtoSlno9A@o!{+nTKNR7ehnyqMki_1Ausw{z#6c ze_%zCA#sn>z8p(LU~nw6t6!iwIb;|sLxzp6Geqxqa(SVA+g~$B`U=I??oiRoo;RHu zdePDFjP(EKPq9C=%X-?W)BoY0*KFOJ9Zv6zYkc0vW2Xt4bwMlX!Q?D7o1q{9)|O9F zb#8|fT4CB8AUc@mEuNbRn@k+U9}JuGNSRHqfzXw#Z18xvzo*+b``0{}4F?9$@_X;n z5E*;n}N->EQ&L;Em?uh z#fGvyPCw*W{t-~27}DQ!x}9rz6xh7okoca{xm?S_Kyz-$$%9Tm%(VOz0F39Da;5xG zzkyMMgwAWk^Zoz(qb)t|M;PSaKa9@IKxzLoQcm%DGFrd=hVIM$)(&2car)q^y7)+| zuU84wI6u|B5orzfsvD+nxuW}Lf7#>}9;ZKhMfbSB_3y@#(fUW9>h5+pz1XYn75zW1 zSXSRyu+oY||CVd12yFfhnZBURv~&-wSYwFZ?NpRwc|Op*#*nzr>DwGjOkl>lhKAob z{cWbj9GFpPDEy7n?U|Mz1I)iMG`;8aL3b!uXDEiJzj5-~|6hd`^k?6Hs*4?9eZ?zp zf_~E#-N;DU*DEhhFJ0A*j+8ril_cr!T-D`ATDy3ayrTd9iY_+NYVtC@qUeua(S6rn ze%Y&Tw0_Y@=bHnp|6_deiXJUt-z-aQpt;7-RO7UBmSuln@M-XFsR^u@8ZvA!em2|a ze#3(rC$D#dcVk^qiLei$3ZVv}7U3X59l{ZWqX@?lP9l7Opq#=#g$P9mYY~bOBG8+a zfNnt8gzz%rTR_VYLYM4}wG>!R%dya$KCO$@73fY|Wvj(%wa69=`ZbpqcD-Y3l7C#k z;sm+|1l{{Oo%J{=8h%?46bmBOnYh6V$M73L#|IGTGg{`g!=N(|j^Y^vD}s*K z5G)8fulC-yF4KZ2dQDvdcr}1>Qp0;gK)LT02g*fp&XO_|n#}P}*BQx>;uBUGGJto++&?mxKD0vk;>Ok{bZ z|D=iKK`>Ho1=QH8x+3g1GJoW@p|IhrXpVuZG%ew#&7T zNJq*J#l#GXF721C3%uU$lUZocYAY5${hdCUm0?2j_+%Cgu z1`jAhinBa}kZRDz-h2MO6*iBb!xr#wvqJv1b%;mNUq^(TdD!kxUpo~*N%QdOJHel` z8@)OC7W_lqWe0lev+L5QX}(u)3O&ioX&rnfbSfO(9`gk+@81TZS!scy+kRIR_%uEV zcf(XqOiIjZws61{wa%lx!8R~m28gfA;z(9JGg{(h!UD~(< zU@}(#0(oQ``0ENFmDl_Ag@>9`nZrlWb|VeCXY_aDR#n{{l@F?}M52MFH(pP;8VSue z3`^h13zjbIH3A8AAD22de$=qkM0j00uX|4ZGbRTbbAtR1rNxp9_N*I>4IuSaY4|^! zd-z3;#z8Uvd{iNt{|-;#@X!?Oe8o3rV5#?feYcI_e{*w@zek#-hZpF38+73>A(7J4 z@h<+jCAp_+Nm%LF$@wNG^tCf7IA#g3r5{Ugp_+vm!<3|Kg{-=IgtI4ObWWujJ4cbl9`tgt{(*1$EEBhku8rE8yytdG6Ryx6>tcP+jdd%Woqy!(CU`Xi8=fxm|L{%g z5`8Fdde-qxt#}0Exaj`9#)7W2%L09<*H40T^mur#sWk6|;W;1K6t5LHdO|oX7lm#1 z%p1SWo*E0=a7W}{>94+Y?(IHu2QvU&YH9oV`seU<7Z;IA>AYOmPT)=QNQu*!kxLi6 zp%2+;EpqXAWGex4=__xD*PIP+sad%o%0yUtSS_7~c9 za?x$dM`pyT;v1bWzlzMT+;jFTeRrwegtuMYGPRtY zyNy8#TFkA(mq>wP*#DNJ(sXf=e@z}5-q82yP-hdv_DIIYtN#&5X?!D*lZ&n6~%#9ul0$^EivOCLA?(*L9!NZWbLM2Ob7Oy5ndA^F3Q zjQcXRoL%asmO~`vO?@AiIPy?hho8>V2jP`wUbL3ORKE1r_nZSn#&Fm(MIk3Q?ponn z`s7W0fb%63#Kyx#Qt8@z&hFwN=W$ZZKyj&gnO-Ul4{Yb+d>6G#T&lR`?8j7|OhJ`^ zjQ*w8H}#TpDn2e^wp5JHX-tI=*e;=xc0~0mby}bgD6Lzj_jRd@Co6o0UvgfgCK6DJ zk4Vl_)%OER1Mp}^*+1UFFibLw)J2<(a)^!S~(L2#?H6XsC}F zIyyNeDLxqx*rOBT;uB)WClQb&GkI1o%%{_8eY&3KQe!|!H~2^CayVfnX6(H`gSiR2 z*V`L5rC?6{T{`szH()&NJe!Jv0KgbL{Qy(|;fCRjT0cKU?P7}th(7kU!%)gZC)@us zYSbf{__FKlWDmJLw{>=0Pl4SwztOooueu$7{RURwvfK)64==QDu{%;e(? z)Z39jVv}73-~Gjj*9{f?rA=^T(D*7cZn^6wsyMXUs~MzjTX-L?esp zh?0_%f#in!bOd_Hc$zf4t7I(wfJr9D#|2)mM7T3zqhh+Xc{)_L4toMSCffw647rO=@i~C6YF_m(od_+ebsN{OVhtCUWf;wt5kX1GdANb_8!LefTW zsf^U(Dpiq|xJoBUD_o@p(mGeEiPY*UJy7_=)Lwcj9`Kgjt{~p%D*2OIy`@mnW>+bi z^a&Us)wxOOq?Qg+4rz(Ew1m{;CKZyJ-J~*7ov&0y8tx{YB$eHy2GSHSsYy^bNqHcC zbda8k2RcY@*YH4wo8(X03F)+z4N1O8|P1Ef|k z@EK@$2g#qb*pDnfq!~U^6{+ki zog~$HNDZVW52=Y%Y4nmF@JF+k^prHiOLDsjYW9%)Ny9y)P*MwWfHcoXN+iud4v4t7 zltU_eNJ~glJfuQ#-$N=RwRlTaf_g|N#eH9?fwTk+fGWC1v_oDnqYen_ExFxByv|GV zC#?Vjq$%D~w7BjeC6Zb_q;x^Oq#V*lFhJT221uWP0aBf(R3)g7bduEMDK(IqJ*B4G zZ2#e&(gR+QJ*B6lDV~zs=b$BEfHcEX3MFmym7+=WJf%cZi>H)MTH-0?kXCp~gchlkMvYLh@!ZMc%7%@ zPih4tq>Y|ZG-)#!A+`8Q>7*tU1?dw{X^EgFsgP7>l*+_?qf|v2?k$}pH5;V{MO-jS zO{5j53#1t+3Q`$G@dr|)H=wnue5};4r2moxQ|puDx)=!T2U9obuUF~5I4{xeNou8vErb6v01OHkOSk3 zEpECBD`+U=LGi`mpjOam#)IRFWyV2M81EckoX$9C2IF1gi*pzU&13vm@x@CR2emLB z4(g7$f**zWA@_?fF5v~x3=hO3;)@gc0_YMjBKOC0jDrH+p+b(t^NfR*F~I@x#TAT$ zHZ#3}@x@h)gVynWRDAJC#zC!&N5>a8fGSq}Xyk>M_~Ir$aCl~M6Fy)?yqO;w6kq&+ zanL7>zZhTqlyOj@Z#>XM+83#>gJQWGLA`Y6t_;^T6MnQ8J zpMacV4uj?~o`#%-!b*h|KPe>ksi|rts+Bj#1|`dd~ouV;!q}p z3o>skK@spp(38BsV{&mb>6?&@34lIfd@0J7aZnv4T86Tv#God|e+@<%2Q@SP7Sd%L zG@SAOh*yfEdEq~h5IIzkkPG6VCHz1M5@Z}y<_qhQFyo;9pz;PJ%s6N$;~SAM-;S(i9JG${9rzC8pjO6}ohVyg08QryeuED&4%);A>cBCJ0<@X& z!zcpY2Ytf$5#$`>px7X-klzObd>+)y^o}A2aoq|UO^J^o2N?(T2UX3OjI)s)CyY29QZ4;lyT5#KL0o55I+Fg$n^dW37I}< z6XX9t`dtwRT>>iq6Yby13;%?KA-M2A_yFUePw=Ar6N-Wff|_{Wlu+CVY6Wdz+$W*< zB;%k~#ycbw*D($%lOf-P;v8lzjDuQuKQN)Vka5rw#)A@y%NPf(U_3aXxQcPm3f3Lv z$eiLj-slWTcmveRco%$_aZn36{%L%1Bd`A|p}2|HL7N#5ha`-HK4H9HLh)0^K}%3~ zFF5zveS!b9Gu=OcUV!`yCkIT~v3-(28+AC>7~R41IUrgEEt|b!BThF| zS4Od!(*V$wW1eXSAkNH1aJe&hWFH`W8NHkjjxzF$37%MitD^uq$CaFy>?*Jp)Co8s zFy0M}n~ofP|47Ur)A5KC{Rc&2Tc{gY9x|{K(1~r{j5KC1oI5A;07e(OWD}T8yybsu zvVX(m+vSt|rvNk-+dOnQ*)wRxvXO8fQPDh}%mK1JD?dk>HaokO#o=JlS-{q}V#l8- z1b24Ex-dtN*Yz_UIdVAa2s83IaCNQYK*JgJ{763i4)gCeFnZ5?0?b}O^nkFoof{n}eEDKsTU4OW@>IQ1T{@K0&c!VJ@xy;L-ZO+XC$XV{9 zH_bT!6>4Rc`DsJ^1A^zbwFeKNLTK69aCsH5H`ks2^7K_?rSnKjDWyTzy$IZ9mA)l2737o1dDvo?fT8xs><0>3(1k>4Yi5zh~E zb-i|ciy^bqxd~~gpq_g5$wASk==!J+;L(uv8b9f6M)>5>NB3SnMmKIKhMkAQO%Z5;C!$QpqfYck z<%v`V4s-=B?Sw5e(h>|~JN6KuiJ!7EU%Lc%Q}F4a`XA7cmci!@_%g9oqQptJCr|Rf z>yO&>UEom9=|Jdz5irI8m>b!@fA5WSmIAna%?Z+Uz#p66SU4Ymv9>mOYObP6(30#; zI9jjDPr@z%hc+x}?Ewh##=5HIp?=OHB72cKQQs6QGp@OYGI(D8cs z*?}|zfB4Msd>Xv?CD`f|{hprr;XWOo?gz*-fE?AFZ@6~<415GO5HRO@)1;v7lW*Ob ze0v+<*TyW|d zv@Aa#KIPag4S(+0yqTr|`q&PK{AOOZLlNgZdOSDmfUz=cE}#tIU=N@{>v`l|xcTbc z&712B)~fiG zE=u@#pzE~>1EV^jlW%oFd$HkRGkm78a-CBg3gsGsFQ?vW@^4@jBf=>UvgwT^v8jCW ztFKPNnLU&VdItpw7d*l(A3Zyi19q2)(G|_>Vr_3X1mB+2IViwwV%d~{XFHB}jkXS3 zzOOVA>Qin!1AO!Qjb}2UtfRT3120onlgjSA8Xy=-4-B4IPK2S6Xy8VM7}UI32K&Z8q>mBHA46fQmizKX&+_&)sHhrU-md1OTb79_9+T(FAzKoG{}DU|4rBM4*=d>e>ptX*xllR_ynpN`4Dpc>vyp4-nyT zD`M~m5hv==7b2xq3Bz2Ym<&)$;aoEaeUKk0F(D~a&0tub2mf8&J*}3yxpEf5~zy;4?AL1}{hF-qhcWu}@0&Nl)8X54_ z-uhc`p9{}IA09h>UiEN_35w?b4;fJt8TDHw{CK3=>wf_3%@cLUd6c!~{)|rNwxH)9 z27gFV>>pi!yg!g#_~+N|JUWA|Yruh@`wXD4aCqY|N?m1DExQA-Rn!-)fYUen?#GeS zy3<>?r+YQ1iYEAQho6ykgDGe}#VL=ZII;H&@PE z=Ur)}%f+?K^8@GC+^}eV%o-0|6=oT{)Q?5;=bPtX$N|?iVRO+=fX8a|S~;h$a3Dp03O{0iyi9~*baSeU zpsM5W@d{5jrie%}X@PGd&R9O%0zV2EN^DcWE%+^b#bRW?4Ii__SHAFsz6az7x0~gL zM$H}4q)Bj6i@FU*w?y7`n-UZ(dL&d9or}_b_DIZG(R;DYJNhE6XkIWk7pRRGE*Iuc z1F)=c-pnXHS)l-HHF@IZL72XeFNHxidc{IHe!Ol~{f>FCb#;q!Ho0-uPdEM%VFyP zdggwx{_CEoaP99zE{~(H{bjFr} zbUzi62B%YBO-Mkk+IHujn5%2k8wHawR;=>RgE;EgoU}CrPrjAD^;Ol^)56x8<^Ddr zb_thoKuDekBy-Uh=bQ7U<>zMuF8$Pn$J(T9o_Ch_!8v^{!%;2T#gFinw^p6Z)Tz+J zW-=cct-y_=>L(2gj4#3UIpGOP)T?U~65jrSJpZ0NH(k4M=Ye1y9q73W*B)W^qVnx9 z`*7s@id1m{T5lZM?f}Ue4lf?aJXUuUKV1>M@wFCuLI6^@>aPZobJv<1;WqZ+wFjKw zZ2CMXaZ*6%+d-J2wr0!~G&#*}*(5PoO+$`2_$4zVQ*vj*lQ#0@;$ts(7hU)5+(+x? zdUtD`8iLtreZ+|)?_3~!WQaC%Y*1$fV%B0? zr{ZO=dzf8l^Zn9{Qhi57OeCR)_^{=UD8YLI{=f6*!HNDspMQ>7LgH3>0k{*K_<7K) z=;TH(Tj2>`WBP&(5$%TOuh!oQE|E8VMG8^3z+oo3yP`M2=)iC6lbJc8P)IuUhf zc&NFCG+?if75*~6XxsEK@or`{RQ(R#xu<2dxjQSrt>q3; zmrlRO%w2~5w6-FISDJfr)4e;NAeBrVymX$M@EK;B9SyF+^{Kj@kU8NiV8{P(pGCc& z)3bZ$?lsBEwfh)N9zJNe_w60L-RaJqz{J2;%Y&u_P7zM;3U5u?5yW}O@@Stjs!!)0X^ z>o}Z*MwkvCjWWScB1S_FFWu>ad)6$Ka zJ6y~jv5B+t+s9rjAB#2QiSwK5H}ClH>R#c*70x=>eJH$gqAIW=v}vFv7*39df6xzm zBwgU{FHLZ+?df1V7lS5dkNWx}CqIZ(M5{b8FuMLoJ^JgYsFHA-*JY-|aThDO9%&Qc zky7-6+P=mYn40cR>+vJ9)bZ-^H4{e_l$D9>$^U%d-AJ!)fggS$R; z9r0TEogkE{@%}mG{v&(;2_G(S58ra(&V^6zJ-Bv;j$Dw$r>f(ai2*^Fmv#PpazGcZ zI*bmBc6fPtaN)@V`Qe>wci{d76T zA3A%RzNaGQ`xVXQr|tVgLS6TB_;uhFdaiL8h|vDk6@u{9CH&!G$3ytx;5=v5>FvRt z;p2vD9dM(bS168cDI=U+J4QFFR81uN>rK*#CuciWV0)3-VOe{{VG zd=u6Fzdw`#3qnjCDxd`d6lD`qXn{b%#IzJJ=>jc_fGto&WGkD9P$we#Rc`gB6f7WW z!OA8|Rb22QcOpeZsI-?&WU*X=$_1ndh%8=z&q>mp%K!fR;?2yQIrGeW&iTwaXJ(R2 zr=4%}vZIf9VM_S6n0PDMo#J-EOg@3!lMi0=v-+XYe(-b?uW~15t$gPAuYi?-k8aQA z#U%9u@9X4_LjV!_&1-I7)oB+K^=Z>zoz^gXFY}cqBIt8@Gjw3wR8jH4(F#xSE~dEe zRv_O(O4xt0&DQH5EeTi#g#Y6@nYY@8H?FfGZyWHvL$3wE$eFIcS~0z0;LVJGdEar; z`}=;G78okrAwGirRL{`YTk5>E)G~Mal<70(@lo`|I11sT*XuQ!(4~miq5tL9XB-0* z5p!HR*5w56HgdC3w}^LC^Qt&7GZ=H#nu&eomG{nf6(cWKx6Qn?&BfsB)4IhWMlgRV zjU9DL!`qk3!q2!9Mwj~uCwAFKVieZ0ZiyV+R&mJZ`$FGCAAK9?EAejM+yc{G;vP^r zZP4a@T{pkV&1I5n-{(zpikmvU{t8~8%wQl?EoOe{eVcV#qIqkXc=>Fw-`~bH?aAKa zoz2`75;s4V4s580-`yO(6SDKRdvcuK`?xS$qe`(OYddorI$3%`=wQ|%-UL{7$lJ@q5*FXAOs4g4bSLgi<)ZxTA zQ)fRF7m9^kns9ER1?~t?dw+j*+PB?8p|p7ORMGWxV;~)T0W@RI^;I8K9NiTP=Fq*^ z=a%Vv_Ix3l@Bw{4vHhb(FqXa4U2j5q8@Ic+Z4KPcq)%^AS!erFYH#JrcV2mC`L-%9 zCtf+U=bb7sTI*F86VD5;ZJ%0u1&0XqX(_vVO=@2M?yu<3?_gZeZp4qn^{0LtSbUG@ zmqlap^LIaak4*wHPh#2L-#kuU{X#a&^mN$0)gr zYwMKU#@VB1^WvKNE$^h*rqwMr@djSYgmKd+Oyr(HuK0y;Ye`^3aZ|qT6&F{L&iWtR zIf20z?Q^}rzF!h|W$U!ZfjhJ(cro+QnB%Y0H{c>ze|13{XD`s+zVngbyQ530#|7QY zoi6%debRKkQo#$Q0?k?CtAR=^t@{>}CVzi_-!xH^d83frkR$&>vtGy zPY+#wh$HfJ;hufl1zp5-FzBg5hM>IT9w)si+xpK1+|alSGr@PV@d{n^+^Yt5)Hidmxlb`+n;_`%-4vHbbe~$n7pK5W%9ll~A zXdZnd@J^&iUePq_=y!~vBU|1ps_+DT;oslY!*BE!?Phyk?|ff-Y~f0j(OmhGWqP1l z<0kN;<+;4%Y(nUpO7DLgxHZi)vGT4J^c_uPdpVs3lQ*9QZdLO-w!pRbvR4YZcPg&B zm-EJn3eJ~r^pd|KcpOzbehfFg0=51&lz3(O*5y@ez7YM$ml6_u3HtO`-3?1$+1xPc zm-k-nR`K3c0L^P(O3e$mrp^$LMMS?kP0vlR%$hNG&gAJ6x%5tqlkdR}yd;|IoY(8E zbl&;5dWF19@R8XBR7tga?)2a*!HCMrOoMG`|7t~ z7h1`?->~~(-%k^Ge{kSxU9Wu?c<4c3>*1l%MrgoT=TiOc{~SMjoMC$CilO#d)}wD6 zTXpQ%8}|in47WTPdLfs1ku{C!rcg8RoVX$l4F{4#9jAENAmiT&GZ_0OzW434iVGLM z70)&=@B}mTj*f13z0Xmk)E^zW#+cfJs>A75R27`D%O13JxHOZv1IR*DCX{j$EF2H#am_o&xCRt!A{1IQrwGy?*o&>?Z$WO z26%1zNQjSot8 zhUpV|iQQygAuitXb~f$~Z*lb%ynG4VTGzSoI&J*=<^N3CFlb5VJsl@^d}$LO-@l`2T!&~|Mt;iR$c#m>5#RZbw2H%ki>V*;<6o1 zXL5QbrT@2=mQ3#aW0#j+`dOIz&)@!Y_K^+WU@9ew_jd1E*eI)I%jm)RgQJ`FA1sVn z+jU;IamALlrEAx`(|uFvy0z;&Z|c5&)BOx~l9G1CM_*0|I(>m({J+B27-qk;Va2-f zJ6?Qq_39-r>KpLbIACx@;Q{dlwsvdBuUc}wZ|Ai)9_IBB&)oR1^U@(bzQN|;pv{!z z%xrh^uwjmrWQzNhfY);yUi#0w8=rWx^UoW8-aCl@DN$bI)jVjpRdj}Q+d1I2d#UAt zcI(!5-=qip^18RyL9Z`lHj7Q}kl8GW(%cy|`sSt$C7U+v5N|)<@uGLpQcqBV6gtO{7F|rl{hggc6qJ{wfgmg)h@OU#N_(!@3z|*`}XGU8`o~w zw6>FYgI-FV&9h?J^lCz8Y%<%&H%rPQ5-4C@gu=Qdt6$>3(#=ascX*eqSn(zW)Fv3T znT32EGqZ46R^h=TLo*JKh&pT@>OGJ_NzG^<2$Vn+-)OvO(T#SE*ESB9S%wG`r)w}@ z7RnwtICb!_L4i{HnLwEmJmK!-MIvV#=`<`NK0+mw(7>HRY(E%1kpkNAcDqfKPA875 z``fYWOFNae6NNG-GwEtV@NjBFy6Dv<8)^@LgIHSdAxDtDs>#tKe4+G6CciiTuOhy% zbI~iRbr!LlF*G?Ni+9*%>(1n%nS%!ob~-W%=fp{y27R+>(0}%J+|y}tW4?ED#1%bw z6o%UJYLot0S{6x%Aw&&&O`1nj!e6QzqPX64-cf7b_>5|nO!e#j_UoPFZ z??`1)(Xc8r5qgpHf9cA=Ii}w`ehA;O3Z82i8_Sn#d-Ti}r8g{j=rO&gxT*QYLb+@5_42S+y$Ex?M6o$g<`a!Z$uv70EM*20stG(}hno$cae z518RxuN<*-*xk{(xHEwp%*^V%wDH=`Hy-W$&5b9SSvsV#_|{h^VJJI2Ir$NaM|k*= z5Pyl*sJ9yn0SEaVY*d=9K^#^#2`g0ErY&pQb=nmBcIg_6@N}|=@HDr>@<7~8z|!M8 z7QOi5l9E9CbBJ2nH^LlMbtJv8*`el#4iu*^7ZDa{Chz6jXLmQg_t6{ou3ah&O~g>o zZ08_HYD#jpb8z|~%4k?-u=-{^xn%N>QzAD$@x<9c)7gcyv&&0oe;&+h(Kk|T|A*&_ zg-zQ=H+?V^aeBCFOE-2}w=#4d);98@dgCuAT=Dz)3K-QpEMWY_4W%oB1$kf}FN->S z#Js#2(Iv`p)%A8m`gUHm_Qt)9?|ry)yBkY+oBGmr;#*?V0=ARVZgZ{=OHX!EyS$rq z@{jL+J(+?HnrszqiyllvA zld^cnz3<(CZE=nS8qx3>a{OR3okPfoI&{Q5Y-pi&NR)rp(u{wln*%*np!`Koa9fbh z4IE3IGyIX{QQ65OgLOifOcns-h4+@{^PV(nrA!<^_w{Sv-LjDbD1Bf(z3`fM+R*}^3{=R~%;W}H zR7apr7B^ewr|AtwQppm1iTGM#zqF{F-+PFYvBm_F4|J959 zBTyUvs}DIDsF45vE@aE9RXRtxs`J`SivsP=-Q%CR_fZa4w1Pcp05h}FIYzqOhqDF_ zOdd+jObs6AOPd=1=iHFaFK_ypq0!eH28qE&;1I_S?!Y>~)1qJ8-*46#X6rQjCGUfeL*Lzb7rvLJ{UoK2}l_!;4si!pL2(riJ=4L-W zdFsS$ajl*`d+zurd5`k!>^U>CdDuB&3Ww8!pBuQ*xE;Tb5Qxvsbo|?@tOZk0KJomHenI2S>e{f(*1dTVi=57BN9! zUkL>Ca({esv_ENia6}|tp`#dw-t>+F<*_qw{cin$|DG2)xdf!dicV_F`M zo^^2zkv(nVoF`_8r<0uiXQvFJo7?pBU&>`su_%^Ts`h+9k!%%3(zf&FEpb~v{NUs6 zeYVB_!}|G$TLRC{-wYH_(hFQ2Y|XsVpu^SNW#yUiv|OU++wtOtvK_pgm*U~qIXLR* z!}<~N3mAc?6vvy3rxc740*AZy%NwisC5?LnPn~Yw%Wa99ooDysI-JY!jKCphj^wvF z=49v1os~CZHg|Ei(+8fN@>1h-Q{FEiH2Dk=PjI@ta(+tqlewaQ$#0r5F27=VRXz<` z{?X-n?KQ3F1Oo@Pt;grx`)>POeA1zHFHzSVOjhp^za`Xp7{?8}+QZ@QOW-$0LXXjR zELyi(ykC2Q^?z^rTf&R?y!PX76GP7s*6E>Axg8@uHw7jzildlDoEUSo`LbXf4HX}k z5bZnTf-i4udcDidMN1#~h}%e`JMX>Oc-5>WeA;DZZ3%Iyo1H#u@>5*iKEfL>#W_h_ z)Rxq{)Ajey-#L9c#k6_fE8Sk{cJa;!E5zqt*4LKQp^D}CgWU}rd)_(vLe=sI0}rNm z)E3p}+dk~RaigVUFaX~9aQl{$PV4!3nv=Af;d1Mc5UqA7ew+^weUkawwa|h8O%&hP zCwElpUmpLOkDDD92YXP&1YL6Ru&P6H=t@&L{)Xtt7A@`kA+5!#RYRT;9YY}Q>vUk@ zE+TY-i(WX?i3P4z?tF4%$2&cX9uP++I%9W-RwXLJw)reHfQhDsr0fiXK555gFiTme5PTZmJ+7Nma(PDNy(zpC85iaz~$5qF1Q(}P`P`k+~VK^!MjB4 zE?w1_8Xcm4D4P0qo$p=x%_7mW*;bXm(ntIBnW)UrfMg4&^NKC;A8z@eH}~YlhhyK2 z7s1KEDljb3uQJY}c?vY&>q6ti+F1PmG)*%Yn*^Gr9^$iT3BoH~b#^+VK+dXwL)xA@ z-%mCD!p9Bx_>m}T(b()+S%|R`VGKiC#3Nsx_)@Z}Xkv;pKIeY$F;Rwm2nPioChiD+ zv~C9vSTV%K%K_0=Hh*Kx3DHW5VN$@#=RLz-Wz(IyQ%a6?)bD8 zA)Iw4DKmGOKQrmd#H-8rFY`=%5@S zMLQ)Msr;3^<-E4160Ou{+dd`;`0_>k=i9q)jqfeuK=f3iVGlJ>da#A!E?uA^#PRTs zyprH2oL~Fq*V>l-Sm>~d`9Y3wi+r+}XUyDo-7gxe;C-XOh?}0i@et8kiHphXz)yYA zJS};3TDKnqBdERaySi0~mmE)R!u^2az+JB3^+A5q4vw~5f4eg{vpJMRd8;dUXW+Ke z`mu+_4X-SJJQZ>}aGNXmLmN9@Tk_%3)vxYYwP*vk2NsFTH*wKfT-99Mnrl8Z!`p0m zdIs0#I?ogW+tr@N!AtquPU9TA*iE=C2#kvV(xCARA3Vz%zoXi}k6lFv?*C;*Wkm;W zq7<7C9H_jTV%jF|0Nz;Cc~-k2v-*nSnKMTbY8g7BHrWN^T7d(U!IygWA1F;pDaEOO6N9x^6V!j=89~Ta^Fav+VFw%F70oQ z?=rjosnhjWPPw%5^~sl>E9&ymBMaVronPxJ`lw40aVLK3Ob_Mb_p5T_vh$_{-pHJ2 z%@LcPtrxr~S>oBQn_55qn6kf@eQVPva@6=fi^OX!BJQ!*yOXWbjfjpv*oJt3t)ITGXOm11f{k`)a~NQr1~^h&9$D0GV7vooQg6@@z^^_q&P z#k2ihu`Me+nX}8|BDzj)a5~1em?VXC%b}PL3Y0T3K3j^Z6G?UiFR{J7Z;JQZLZ|rs zySvfQim0B}h|ROr3o$l7%a-7_^Xs=a`lXon7dpicZiX@@S|j$&R6mof(cT_6Hr-Y1>_~z*c1%8HjmVs< zW?_BB_^dS|cdj}Lm!X_wjBC{17@kr_Mp37sjK$W7Idj#q znB+&h1d@zCGLA^8A!EGESZ0k_JXaluN%8Am!HgODo$Za0Db~Y<&OYIsQQNE$%jT++ za7oS*(m@`*v%US%lrl1kUyBsKeaPWdS|g56Y%mRzGGnKv?TyhX<|BnpyUciq`kt%K zZDs2yYOBtluIwD;8=GQ^!p}(339QF*5dvJ z%86FKc`2sJ>`KIi&H?|tGtzuAssOvqZv!lwr=Fp3*;lB(_OP${DS0OgojIh1BETFM zQ94gOO9T+%7QmRwh-z;;T$!IEVooKcTCMa~5&HROCk=Ijv{Q9e(- zL~{(8w*pcKNLEr%8dQuA`Z?|uVPYWtQXzh$WO^5W1h^I85iN7r{2UQ?+>gd z9g~I8?RC4JQbW!;qy*2A!ZC3X>U`DN+LkNcG#EUbM$OyX3sds^h0i}tTHQadKdS3| ze@W}QY0SsZSJPVC_zLS^|1w(pmZg|($a)UezkS*8^fQG{51E4%T{tH$B6D(s5v^^p z{9>6UXksQNUP~z><6@a{L0rU~`D!+9$yh=<$90N~D^jdK7CK)dAyiA=xQJ!*)rqZb zrIMJ@Qg3f8AD&0f0*PEnea=^>w6^(WPG8IR_SaKt$mo^GGHPkQIvbO;^C6QN_qDgb zk&^dQp>vtcxQ)V}uP(r(%y^27Z>8upO?ifN6^`0w43l^3EGlCg6*s;T5NTNUrwpHRrvg`q}Ba1{}JWV{g(c9)0ofH)gx_ePuz7|^3gWF-%?Dc zI4mn`IIMr|iLCr1YN77;4xj+&OE~@fZ*Z=(@%^5nn=X+vbP8PA6Pf>4*BM?C>a`{HO{Dj~QJcwVCu8swNP4G0xzNUUlfIk;khlwf-B(hT3Lw4hp+0EiX`}S$+4pOocM%WBVe_cWC>_I5?a!c6Wg? z*XnEKGOdvrzuFh+y+b=s#v$R1r4w(eKc1k@FE828%N3 zV1eSZI;<{}Pv(5IBGTGKYqHbtb%iskM+%f(R!5x6R3$ThRS}ujM2jJ#JDjonM1iu$ z>geGzog$++O7{J0MPykMt?N$eJC&TQpoEhA1xkh0(bHwRL_(;(hkqMc(?m-InI;eC zM|uydBi?1IhwD(rXTOcKHq~5YBq2nMy-=VWvN{r6rYJIo_U->RGOwvNhKw2FXOx5c z&b>%CWA*iNnc9-m9&|Zye`IA-Z6P^_k`T&xl~c#+>*F%@AYyUmqnDsu83soM7I zXwQh!o$5KOO^v462%hJs`nR|DbJdV>C<%I~rTevKMEOqjvelL(bIyFIy}iFH@2(=} zaB?%mCiZR>Ik5d;(ViArlZ0t`xgZ;6>8}&_0T7_#ZWClua}^f-J@-W`WV^B zj#YmQ1u)uGc~6mZA=yH;@-);LalX+m({-|i0`fPY<-63GSjD_O2<@~7tIf52Ky!fV zA!-MxV_oUZi=2xkbv4v^alWxGQ%kBZME$CVHNwA3olmhs%?VN`@5O3!?L5@+*bG9| z?m)9$l|T!~CMtnatpcjY`LbOm8&F+TEd?-!OLuj*>ceZxFm+D_USqT-yZzqWFm-Vv z)S0gIm?GygNxcSjcbspg%QOmV2zmu*>~3`rRwcAk6;@-ku0S7W|FvERLY?iZgt}T% zTQx0E_Q&~V6RncEFWwrFv|FvhD!-2&Du9;{V6~Ozg8GECng(>PE4@{bvs6Nd0X-7u zn@h0r15mYIa}&7W-mMMfv) zcdMtcdSBS;;GUFG2=;TvaZKItBI!m1Yp=kX- zsJg2X>OM)0GZiR*#`$!jRZ@>bRrjcl9yXPiErcRq&uOg2YEAa|y>r6Q#mj&ey3%8d zoChUz1kjWozCwakm()2nqIHitxQA`Aq;~oVud!NJs85Bd>YGrDT$NCdOKLvUv>v`9 zf>lCYeF@e*Y6e!hM6C_hvsmq*xq#|VhpCI#LtXAl?@;9QOX^2ZNA&P5Ct4-d4>fm> zItr_jdiESvJ7`m(J`;wj9|J9RRRTRPp+|vc_wW_FO!_uSUD%Ik-J_1fYn!mw!58s* zzg7TsVVJsj2h^3W^!tmPS0wdMsFQm5RuZfdn#rxc(mm>AtV-y{OIW>M+q}oGd!G$c z)qPN3cU3~YC8-H_(X{sPy-u`B>UpT;d(@d&wS=uUx{B2Yw1Zgn(5eMHti^}u1>SJw zJy7IS=~oz;(+EaA3Uq!C$D1zQ)G{(WtbM9KHyih;3-AiHnymCKQP=2PAJDEqU4+$O z-x7NQ>RYZFs7)mGX{f#)jxvH(LVp3;WUsmtt8K&3OF+}RYR&dC{#hKRminQ7;L7V- zQFH6N;-?DPWvhU(g@9>8lmQm6z9V9!mwKB#3veMwTUK>gU2_h6ATR#Fc_ zJ=(+Z3Bf9%;~%m{Ox>#cR^*JA&}PlJ3DCo#e@?VY>iBf-VDDAW;k6Fc z;ft*7rfrA%s-!k)(B8h?W$s?&OqA4ksF!>AwiB!p`fs2I_o`R18Y`_jeUW+HHT^hL zucS7Ey2Is#nk1>2P;d6|?VxGpW{aKN)YbS5Ys8hk>K|CGLrwNY)^yiy0bMGgF+eL_ z*7zc)OG4)WP421ts)$xe{WsLu3iXkmHnjtQPz0n<0P$L4h2OhOQe&YWbeR*1oSBlk z4C=6+zJmm-gpMD|ZSM*-tEX*o9q3>RAVJs0Kz&V8yFxwe@rx>{0`pdNRb zdlxz9NNTg_0%dkj-*JK!>L7B92*@O^D%81Hg=z`bRaFL7duzvmzDdIpYy)y#Ku@~7 zKohBT zv!}0yVCBY;J!o|nk8zsqS9f6*Xeg{2jqpY4d5K!ge!q7usiF32EYx3JUZ@37L+#bm zQ1|xq{YtP(>aS4a_p23H?IfwAu$rhP0xgx$i9oNo%>5a(O6ZE{0$n-K(|3hvmDE|o ziPrtB-~LVpE1XTN#^tDU9Qu|7Sr zroXlj>IO-j3-x!Gc>tqUN&OD$>7Ksd306s+HG*K>ub#nb9cngK2WYE-Zj#V^pf_Az zpqnN1_h@c~p6ltmL9|NhuTZz{S1;g|o2IpuHI8B(plye`SyEqsddp>gh(W8Qwz!8z zu&3`9!78D%MiQ+1)vH*o1D&Ab^&#yz)b}Ozl?JEn|8;qx?vT_zP;d71{g-Qg?vC2Y z%_;CJ)GPbdKYH3?yOI(-1sYAn>OhSWVJms{Cf&K2{s7Z$Q1tt;qP+pMc37%I;?*VP$whkkKe8UJ_cic zUZIu*se|WJti!d%Q1?QGA#Prsp{_={t;36)-AFN!73eCU6B8Vx+$JB;K0)ZyKvy49 zCtgS!2Y zIs>aAs(|KWb%a(9biagN1vIZ(#(g3$I6^&P{NPC0d(?y*|aKAC4bV=i@b= zA{CXz#Srav*$C|l)G7`>Wc3fI^M}_!9SAivy0`(Hj;0DlUN7UU|4MKH6 zjq_0eW3;YE{N@8;s=omrpja@xatwD=B{e37J3({TzQmozR(PE=$$Da?^KqymTCw^x)N2X8e418C{Sm7Fh9-6CMt;tcp z`2^cG2v{xe3boLko?GO63TmKbsfhXvXi6_%A;AhX)UaFu8hcb7+{;!9)UF4;wynTx zuGSUm50aVywa8rw^;tD7;GQnkuYL)TTl`EvYF`i`|t_UzJwl zfoAve6%(uy>Ib^`s5%a-HufL#dg=gPAJ>*aJtL`^M8HaS-s45i*Ccf$)XBYks|Z#} zoimqS;HWwct58GGwnrFTJg#jA`jdo?#p-Iec~X({&HBV&r~np1o!!f~nrM~OBtEZn z@TfW$uYJSRaYs3^CTYi^o|V+cp}y(%LR}}VmH}PR%l9V1Dxn8~UOB4fW3?~)4|!d4 z46l>4TTstQ>I|r5Zu8V4=lha+5bDlezA}PUQgi3gvK&))VYOe_>Zuc0ovOtg^P4Y7 z=t7_$y1hU@sZace3gCCBdwcmlBw8i)3e@;xY6V^;we2aaPSp~jUX;`qpl)@Wr!i=i zR%2QhCBgcbw+%x#{|pjDUDIZ#jc@_k0MN~#~~vSaEQ zy!H=MPyK||>Dp?jS0%L+>gR4R)WZ_G0_eG3zRw9(37zu{!Fo)+fK^>m+n&SgbZtA- zYm)jN)a`Eb3`VVzx*h7}UcT)FtE46^AXty7SFt)EY<1iPtj^Gm1HCSxp8(zA_5#&^ zl++riH+%VZ5UrAW5bBj<>K}NO)HN5eIzzh!^`@l$6KbW~JcmIm&`^8btPKO9-i|7Q z6=+9tGq@POkb%$%HKjM7e|$($3{vR@p1VXhI7f>;;Wz(53Jfv2_=+~*U+yxfzmY;{ zie8{KRCjO30fH53Xms%v)Wj2NT5nq^(3~JN<1*ubxmps?KLOG*ia~3|9jA?h?)14u zx>KPO=bxbVfjXkMoRJWN1yI-@=!D*mqi$0t3B3h$^$B%SZ{1cdsg15u08eS9Q0rqfIKWZ?j*~=DszA;2v~r*gB=j)Q<8JFb zy~x=@QpZ4@+uL!%ZJI2pPeVO^LY>#!RxYXau3>ea=7)NRq#lQQ(p@&M$Z3(#IY9G! zJAQDRUY5}BfZjTx>N;K@mR_Nn7i#Jces3d5JqfkOZCzO86rY|96~IEMyLvk=xlJ1- z^>?T-Kd8I0DxvkRV|Aex3-nG2^#lFYU8X~|O6oGG6}=so-KIT~I`UcK>IZc{R-Mu+ zRCB(T1huK8{s{Go+nQhG>?5J8fgbAZxau~YmC&bwj`=~=kKk2O>)pg_zLpF1E=fHP z^*47JRJ){Zg?gg5;~K#l6^?-Kpf3DD{Q;{<(kf8%v)W>y;$x{)2 zq;7|Lrnlod(JHCGLtXuY`V&?qwca0CeO4=ls!8e>L0xwe-f>d`W@6;Kd66Vb)d8g)x20!Px-wqCH22h&8gPK zMb0NA^cK+MK8~nV(?$vX9cYYxN=@lwE0@%IjxQsa zPeUDZN*#e!Nv-F^>I+&f)HagZ1nNDhWk5X=8V_`AA4l_4QzI^qLe158K=p;E)NH(R zeN@|CK{daqEr!}wQcX}>q*`Ara=s*~iBKo@akNY|b&}NIp{_oqPQt2$)=S3fi&`nr z_7d8xQG4CEH?<6^S5h;fPV3{iFV!?yQb!gNt*6u(SRE{_LN))NRt~j;q~3$om{jZk z6**T(=op}L`#4&qnkGx=(}h+&;`k|b9$qE2UJ73SPxC{4KvH9%woWaBS|X`)pyu~+ zv`IC+EUDjN_0}m>$LbJi6{xvDQ&02JQVDI{h|k|zQ>_I>&JB{f5bCZzjyR%KQh$dU zb6VYvRY|Qk7^?+ZEYvQN8jIB)sbxURBy<_jiax%c1gnIOT*^6+bXq-t*GHsRsOhh0 znNS~;)cc_(q~^U+pk*iWX&tuLZICxw5#5z zy}eJW`PCw)A*oxTp6=u8L$qo#TA?mGt)9WEOIn4R_o}uUYMi8Y1KKy$3-oIV-466z zA75XBRYHH)p>92`UcjrQ)^p?aRc$-eo{}05H8Iuv_abMdq#lHNxsNZAV3pL7MT`Vb zt5>n=mR5o0{arf_G(kf3UQh?5dZB(NsmGz-?BjTdXqD8bq24;J{)tsdt(QhzEz_Eu z@q2qqY9i2#)bwRV&T63C1Q$b=D?n3hz6^pDXh#wmvgqGKjXk3dw%L+W!}pmAp_VPv zxtm_jVn(e{IgLbRjexqq=Ex>mp^9BmS<{yj0cTVnR-uYrVburKx>{@Y z6CX&Wu1KUV2c=`4)id{*}F<&H2e+GLS>7`?v5X^_0!__3h}>Hpl!_(=&nl zA9b=D^HaTV7Cmpdo&Bb^751Rp*xP?nFJXIV9e|jd=E)bvuu zuu#opC3Xub<&?gTrNk~!JBd`?@Yndf#97td*OoLad=;~D)R#PeE7g*qy2I4+$DuAu zO@D_$EYwgyyajbcU&m_%FI0L~LH!o$)U)c?zP56x77*fsV>DLZ(G~+uBOn4{Ham6( z&=sla>lnjIXjKQDkIeLStRi@$!_?u$oDpZ$X?V>HQ`d}zx=t&Hnh~a!&V#x-)w-TB zEL7SF5xbYMI=8Rm4PqB)s8qiNdi<<9534{$sbDoDTc-nCulb=4gUSIAyo>XpzL{DE zHC-0#HK_T09d8l5(&{fzZ=F?jtY(F+)*DBgxLH%r`Mp_TtFbQtElag-W(*sKMzz%M zr?2hn_<)ucs<1_|&RIcUdrsYrSEx#`SfeIjb+Z-=bws$Xl3s!OVQLxF97(kSt?29c zh?Z7DuK-Ovr|!qY=`lj|o;uowJgG;W_mP zR_jnFVf8&N7wBjSeFNwxsbxU(BvhXd^+aFCr$noyUV*ysocaS^M@X-evHHHY80uI_ zeFy4isn+)y!%FH(plA9zwh^onI%gFF!*l9SSd~ycY6@Q8*Gi#gOX_=2KTj=#>VX>S zz_vlX(AV(~g7uzo2lflp?dQ~sSRJV-CAcN7P60J<(aM32BLav^(I##Mx;@ppg)wXx zsz)7wdbO|P3!+t0hrdp=o>Q;kRZ^duhSe>aAL@iKwe%CHJ5tM_dc)MH6F~py>-Z(9g6RV?Yt?DstXW(_Kre5%SCx)r9UqG!)wQgk)E2-C@Ciinx5v-E>Bh;7+ zYDzy_d6*jG1M1zX#R8oahL-*l=)Y3SfR@xk^@^yd2e^#s=Qu#LN^0tAqV{v6cjt?+?}%>sL?@rdmH{3|mXBh`JAGRzJrff>lDF0y^e`Is&V;P@ccl zn~m3xwOpuE!qn1zP!Fe;K`oQi1gK;CIgSvll6n&A!V79PR!4`et^sQPL|Y7WS{NF; zALw_f)=wD2hM+uui+Tv^#D0#WM609@e1mAcpiaW8q&nte^%JcW>Wnb8^bpkVQ_G+l z(&{Ln)A~7%5vl|!8wrp6wJdOX$oDT7!^oegzv zKgS7zRZci_;&Y$3k)pkCEjqO^qi+=B1sGP8zSn3(5mr}jk8N)&icCLlXf$r_+xSVQw z5@_8&<8rF`i=yX`lUF={3jcZEigp2>2bfiW%LP~;p8f^nSW>7Q(Z8++ocyToD)9=K z(^E9rU%$ztl8fpw+&)GM#wdgN3mCinhuQ#*dqU$T(A zb^rVq)tmin`k?H(iOm1e&-Z7l>HFKt%x+GzmKQz$`|a#$k`ZZa6lhr?pn}rVxq5Qn#lpt9)!Be zxc-iv)L?R=Ep{A9L9a7?Tzq_`ZN20-zYz9X-jFYf-Q+}wyp;qBTPDv6ubkm%~x3Hpgm@v@)Rg0}Vy(OrRBsj-F|zH9$k- zx8omh{hfGO-H%tOmS6#F+f92=p(R26TiB}_3pGB?TESC(sKNX2h0CBGN^~TonS4yk>Jh9?2wUB@2dfoYF3?xPrRsk`eE+^zS{c+{;bJZP2XbXrDCew>;&S&;vlvBsy$qrg|;I5%8G)5zXvn^(VaM zO0N}o{Z=c5S{N<>e{ZOL)5@R@gc=$aUx9id(a|r>)E25WSOEV9y8W_x5vxE;NaPgQ zwjZnewQ`_EKqCSz%wqi^sEKLm`+3R_HFWuDevpUUiH-q8tE8rG<ijk&50?r$rV)J_M8 z)`MEttA0x{)VhE1gfKq+{eS$J1q}!Y9G?(KwU*?1&=E!3+jlp8mLb~4aML{sN?!OMy8oQ zfEtRyypQ>K^i_32f16)IuLDg#tStk&It0~e<;OrBm6mt7$T>?=pMpBMzvIy~QYvg4M&?R;X`EtGPf&r_}&`MnabXo!Q?pCe3sy1Qox3kn;%_>sQs; zc$L&`NAY?@I|#KTOf8=Tb!=MRks{|JN&OJ&{Qi!|(o9kJh6~_3py#iu3$Xe`*y_q- zSUsX$0lGE_)#>JvWn)gJJ zb1l?RKXh+5o-+4$%p+Q%+BpfRt7o7tyr!PQ>XW1p@SNJ6PBSVwsV#%LiIiaDUiu2q z`DxyhMb1qU+85}#{*DC%YXHjl1L_T^NuwKH>~H&7Q0x9(>hD`f>q_QOn>}P3H}|fo z*ZSLHr-XaLnP+IRe$dY2;JvVe*w^^Y5m(*EMQwI17XQ|EbG}N>Kz9L#zN&OjW(seZhtCG46 zs`ZTKg8GrP`WDdTY3XNp&@Z9S0v$2Hx17fHKE_|60ltk- z)Q`i|@=~b9X_Zh9OX@PH*#msV3C5_*8_b$trF;u5?Tgy#sJ^z z3P);!s_h(Jf713r{YRLZ^d8hV($at8LBFJa0(IU1-x~z0v|0_+ ze_frA)fr){D}k2%q@4%)1*5^*2zVdrTWOV0f0NYhQ1t=6w}@6r{T-@$Q}tn0P$@t$ z#DrS;Sj#3i{g!`{QunXfO?CGGo1eUvVBU-ioG$0Jt~dR<*}y^YjLrQ72Op(Xo-cAn z+!5~KPvT(z0LNBZ*O>50_{~3PTyCm|2H0}*!qk};xx;=z8*|fd{xS^p?*RHqTG<7L zqY`TF&Io6K@6$Bh6ep=ew-YWm)l+zt)WS=L&~}p&8occ1&~~JiU1ans4=o+)9|L^-O^NHTxc`R2BgNcuw^_K+0v*-8!1H2?_>7feXCSOFys@vLxub!xKgbjr;tFgd^Q0RTfWcJBMq+Hj zIy<*T6%YT&W3ZjUHg?wA#WpbQ0#2`Qr`7c^Z-`}8?Ef7SMFa}5(hxdK`VrEFSnpwK zAmuxjkp~$_Im$BfAOk7ivy42*K*}+ekp~$_InFZjAOk7-2@<-n(1K}8gdroJ45Zmv z=RpQiPO^+V$Uw>u%nS3mq#Mk0^oA$_alZ|Dkby+3+1s;Bui{~OKbU9P5IgZOj|`+d$1?IDLlkc|Q>5gOjy%Xf$~g2G^Ax|KGS5L8 z%~>z@b(;C-MEoscBjiB_Ql4iSd60pW#VjKaGLZ5D%gBQaq`b&7@*o2#|Hm@&AOk5c zv5Y*(K+4N3BM&lOX8+0(5|9TONckJf$b$@|6tIju$Uw>~EF%vxkn$?a$b$@|{GDaw zK?YL1EF%vxkW$Dp@*qR!KV>Ni$b$@|6tRpv$Uw?6mXQY;NLkJ@@*o2#ud$3g$UsUl z%gBS2*O^BiWC)406{H~#(hdGoR+4}`$Uw>}mXQY;NO=pDkS4^u2N}q|hk2xQV}2qM z_5Ccmm-#!$gY0*bM@&T=n3)%9OrA*68jJcD2~n(!A)yu1_Dr{uhLlg3|A={{lrb;# z0rSZ7A$iGTCyxgiB9GYSW73cZ8Dh#d2J*0tA+}{ZyVw>fAF+Rfjg?PHL>{E9W*&Kv zfs{8`MjoLO(nOxmNJAcEAY~iN$b$@|e9kgbMCr6)-bcEa|Au+wK?YLvy(Az5Df^g5 z9x-LnPO%zdV~W&+3{g6mP~IdBd60pWX{dsEvE2dEk%5$hER*gL>yYv-%gBQar0i$^ zcK-7q11XhcKptcurHWOpGb~H=65mu zigY{kT@X{nBI@742FQa9q&&1)N znouLedWHN-Yu1%8-GtsH9eI#}l+7$74>FMQ9?Lrad60pW_enq=WFTb=%gBQaG5@mXQY;V*V@Uk%5%mEQ?Y@22zq(Mjm7!C7EU9LAt?z%0Lp32N_67VYw?}>Olq) zmp^voK?YI=vpj)iWW2+2Czgdox`lLPAf+wyq!~yV!aA0f2bnVO8A4?m%qWkLfIP@R zii>6BK?YLXEF%vxkdlhZNn`3kMmozGEF%vxkTR5Iwo=1Zl`XV!&oc9%LY86wAni3{fgfl}AZK9;B>e9vR5fm8p;} zR*Yr^N2BayiaaJ(AkQ?WNSRJLQtm_I)FO`|^3`LClnE$;JZ7eANIQd0Gw(<1Nk<-J zAmt90$?HK%XL0`Xp9d*XtPtwRGO{;diVUPQWEpvoxJ7119%LY;Da*)%3>3I4)P;Fs zLFtYjV7<^L@*o4*pCFym^o$ere-DYNB&4wdd60p`=M(J6Bc_y)2N_5i!!q(911V!! zMjm8{DR4vVU^3}Q*~Rh?OsiQ&9?}ev{v^v!iu0cg9#$AgImJ9H45Un99rCc=F4B>K zlnpE+4>H8`YoG#MPnIxkRjBL`B_YnGMjZe|9OyslsP0I4>FK4mu2KZ z22!448F`R_lzA*8V;pH>ij=2GLmp%xWj@QugAAlR!!q(91L?{F5|9TONLk1-@*o2# z`79%k5J6~&K%7Au@*o2#c`PGkJZVe~F+YC;%x`BN8UJRUGr=y-hB&6kgAAnf zV7Z4l|Cuq6(vt+_K?YLdSw1}XDY_}cG8T-HAd)(6D28hM#76B6^N5|y#N1rru_ zRzpddnN~BkGPR2mW2folvoNi>1D?*#83rrq$jnajL@{%)7G#JcBHc>5NU$(1K{f28 znyH1U8Kt8uy{0$I zqUuP?W17y?+6NZ%WgXcDd0Eb3*}~K#(oqiia#*fp-XKp6Dq*>V<#eV7Qww=KqJ&$M zCe(&B_E(1AN@O%p>MPX^ivN629bcT#MIDq{CY(|<)ul?ir05j+eMW1E`Ga7vI-iZKsR&FrD3c*p(GzHQS{l@pHolcJo+Y z$-#O>fwS9cw#}nfMO#`aBu-EwsG4aFQdn6hv#?v{tN}{bAr4wB>_cNuY4UFb6%@K7Y z4hX~IGN_W}8jeR{eI>Gz#%j?KDP}WyL?JV8pL>^#f0j1Q$Z~K-}DrQlMq*=sN7+`xZ%hl{LhxL`1^@8@WjlvE~n0T2N7X}Kl zB1!to*Jzex0WvCK)sX&E@wcf!Yi791O(}^^u zV(4dPTFKPHw3=y&sBp?U2cHVZr{L8t)-!KLB^-AN-t5$m!qkGys7xI1-K=ZKovRXH zb_z!PdDtKipcyI5o2i(RnBw())S-GMrtCZ0pLy;~hOg*ftMt0WQ#WJ$9E{CWsL9~zbY0MZLVf9!N9|Mw2 z1{Amn!c-y6Ko;gbVjc66D;V7zcEC$ug2F^VXQ#nMFv?L`MBKpfpd7IymP;sAG19jPUNmV;ElkB|z>ah~3t~u6f;_lZm|BFI zk;byPRa|`+Q*jL=(r{fZoFhe;XJTPp&Mam`K4d{Ts070vF^`dIR(mk42qU3up=y&D z(*m)GA`?e9j7+EmiR;d40Y#Q^tVas6BMaLoVw+5+$b#%hbZphln2H^Uol@t4j+Mon zddzoc9aDvT7E~gB(^(7~EwN;7Pl9mBywZ(y&XgRARbiu&9xTrUKvCLRCx(|LLIc>A z;L*x!ym&@4wT(`e zlF4L6)ktBro$Q9dh)qQukfsQ`Vx6$gZtZQ^Rad4++zqLwEK8UgNFfMBS6+=x4`pg$ zJ_p%R3CkX)hL}gXK|-}iu#mt8Vz?j%iY3T{a%M6`C1T1>ErhaNoC3(wm}wT_qw;c)$3ngi z08#b*h^Yq!uD)2#L89v|A+1C#Gqo_ai*&&fQ!{E$T08O}PkT;w3o|+YkFGa?iz-R- z$0;a4PEnB?8|6@rLMX8Cz}Z3+MLG@2ne>IA|kTP4AP9Fc8@#L?r&$0|2N)I;LQB}7%#K(y_Xpo85tQF5&1x2G!+2k z$af%}0N5a}hF+5)BbqQrUJWF+0c27y0F{)26Dw`-9H0`=w*jch@r)_J0$Hr(q!*gh?126%o zq=o@ASlQC(NrJR15K+EAm5E=@Vf)~OhB|5#(x4YsM+8Fq|ty(ssK=l zN-|MlB|uIO1JnREfC-d!P&omfwW0SQ>MBU@Gz!Tv=%B_j%WS_l>lr2YIsf!jZA>K zIskIyqrne0NY%C>B|x2(D3cQpkfeePCfzoZ!G#oExi%_5Ixz>8AdSZFXrwljM@5yC z$5e|ZqzG9cWJ5hbWom{f`vu-bBWgf+A_>n!WKEFRq7=`op+hzhS(yMez{E;CgEU-@ z-*Qt_paDRdsg4@}8~m07CXiP{+JSUpK0p)qXa$Kv88t)z4vz+MYJ?O(Z4d5AOY}@2 z-`r3o2;7m1SMgW}2o_Cv+2T>)BnKWH7$r4SSxK+r_XNs2kR{Wl4Tx=nyc~Ut#^6L_ z6y<dRZCIDn^wgHgI zIU0}&s04HXCIDnr$N`yvi2ya$P)|nt3Dhxxlr`2PUrB)9(Wpa>>H)|B(I}S#$jBc} z?*%e=02w*Jh6)3b0@MIS%8^dUkw>Zq$iy?1^ep9pNG8%sx<|bwgiuxqkW<4{4|;C{kOyG=Gm(h~R01-! zaC0SI#B7ar!*9%pN?kl0jdC!K9Cn1RCzZ z%uvIUgg=5FLVtJ?f5-6LYOiML4bNLrDgLhHHB&XG>`mG44Y;d_OVri*RFg|J#Qbd$ z|A0uuKOqtcw={)YjHZS{Ay$Yr6k;ufSX&{UqY&#V#CnQ3s<*ZI>a>M-w1w)lHH2G2 zz1lnuB5f`Hmhgy%$k|XsU5hR{bkU~EJZDBrBo-a@)>h%Dp-wmE(`7DKg$DcR9KJps zAr-LE5wOt_n$i)l(GjrG5wOt_I-|qa$B1-vqO&)Nvj1}(pNROB#lwPcO{7T(8PG+a zFVfT#GWt|(DZDPcFH#puG=z*;$Y=|hIgF6g7cvHXMqN{3t*|y!SkF~h8!4>kDXix! ztQRP(jTP253Tsnp@8xBUFC+Us-) zVaiY!9;_5=;4wzsn)@Mgw$o6ji-y208gm>)qAUv)osBf+D6H+#uBN6och%q%5ud8_ zsZcKFf6qZG79I0a7cErfOt>85r3=pBZtH5$i}awbhCnK@NMUWMuwJOJHgk^0J)Y+J zD(=)5&=u*61P0Jo@wvW8U;%xRzytcaGcW5hGq3B;ystY`f$mHVx~eL4jCnkC777^? z0W}>H6+@Z|Wtzf_)imUu2m7;hRA+eF36of)!*jhzQ{ZAv0dY-To;>Ozz8aB^p+fAa z5W8}<@pZZJzl5JcDh!X#GACex{|{C=F)SzWolv36|JE^5Wq83O(lHVq(lJu?(?}q^ zj*)=0j*&ok9U}pMSQ2MmR^#4g3{a)o%=>CH6{yYBpf;-t)eJULQ^^D))rbPW8MIUb ziqe^SRRfArEk@Nt(M-jnnTpkCFrFDABlQ`C)n_VJpFvoC24VG?devvu%gZsyA0u^k zV!kIzs0%^`SwYYsE3gl;s*yJmoUg{xO%hJYF~BcmY@kkK(xtyjp-P*7urf*LavR0#m^ z*G$ElGZkyilxoc?6`BJx&Wx89T4Q)LwfN@Ld6}ig&rdGl3pKf4T3o_UVG?eTh&o(C zQxw1SxI~{z)c6^w#?L@CUO=jeY5l|FYJAOVeAQ}v-D-U0YJBZ#eD!L4{c1u327E(? zd^(p;jkr|AH!R{C7V#YtX)^o+e8VEXVG-Z3h;LY35a~Rk8vOHEo7oO%@Q8`|o{ISf zvBt3X#e9Qe{(Uk3zL?=F5c3U+`3A*8g?vxNd{4!EPsMys#e7dS`Gz(5hBZY(fzWqN zq4SzT?=`WibM)5~@%U(B31ku0ROc(w;tRBd-+Yg>_#SEV_qF-^+WdWO;XdDEZN3F< zzQfvFhZ${wbF}#$3%sMv_e`4~L+yDSX4>=lbOE2znhGA$rWKV^Q$980(m6bWIzq}L zs>346fOC0Fb$Cp5`3H6R2X*-#>GIF%^3Un<&*=*(|GYl`yql2n@3{#>;wB7Co&guVgogWNE83PctIvGkI*6-WYN@x*1Sn!ZKtsIQdqB~ zRr0}F_QI}657x4)(Sx<@GV)-p24BkQSoE7A$wV0vOO%oXq?F_lr6l_vtmUyi<~5I1 zFXJ`DB2|XfGpU5tGbzI=Pn20mx+G;xgp8?>G2=3fSmY=aISCnOA>*R3rnTU~N)G>( z>=KAy8af~pPb-0BLMjq68bU@aWORj$hN_6s&=d;AGcTxai)Zd?sh-nT

RSwAm0O_78M8SC!!BN^Dl`#tB2_m;>Z&pof+7`yA{Bxn6@nraf}%O9cU7p0 zR8$b@=@c+L=jp2+G*IPKeG;kqB;v3pUR5D2nnBuB^{$yJXQ9ejs&ZDU9AmA@E>h(_ zQswMbIbpctL`zj=%Tzf>RnAG3b5`Xfs+_ATx17r{=!u)E&|Q_2s&XExoTn!i8YNqeu;oV`x) zEI6s5Oidkt8){+z?y6}4@Q4~cqXWUszJuofoB4&QOM5d)N&Z{pQymHE!+EVE0*6PJ0$gi7J#* zCn#m@2}r32^qcl5l+sp~QrewRN?Q|3XgJr#xUS zq>uVcR)fnjR4mrG3LLOylmQ{lcD|J#L6HTcw&PhtAeQCM3ktgW4nTjZ3l z=dRcVv%jEXaH$rblBUIIYQoaTa_1aw=S&77mK7<(^R1ZILEUEdXCjp$&Pc@CzDUi` z6ch(@AtPajTFmjHnBzn-&!b{&2+97iR?Kb(Ddjh3!uDC%Fst*82|HzVJ-&VoVTx#| zFZ*6gL(R)63vz%iI&4mZy^7f@SE9@27qC}jrz{4KFJyn1uvb&|x|_YmvR6Y9m#DGH zB0k{?KjMCU#Q$O&R{w}=^dqj-k2Kl$KGNb6Z8ovt-m^jf311uT4IAza8}5z8T&0V- zN*8mF*m5u0a`$Yxd$!y?JMNwxch8tlxJQh+M~vAPbVS%C6NyBc8VsM|Z(tzU8yE;S zWj7Bb>gK5{ta&Tb90)y_o#raUMhfwKg?NENY^)G3RESL!VpE0KOd&Q`h%FRiONH1< zA+}bC7b(OaDa1Ak@nVH|i9&3v5Zful_6o6sLcEkwh?gnE%N1fbh1gvomMX*^3bCg` zyh0(CfpvHr0&Air2GbJwinX9p$sD1?LddAN(Ml+B6*9|(jGHhK84;LJn4jpqDl3Mq zQ!sj|>_H;cdZ4Xle8)G{H7D8CAoJK4{y~~Yjj{%_js_OxKIyF)eA$#~r_5EV1^=Y` zO>5ICHQkSwu2?8uXY6OHB~{3FE-mpZxu;$*DVtJf)LT70HRYYQkY zMSfp6tXLQ_DRU^%-dOVUl$N~H_j2vA@bZ)UP_M!=Y(QaQUH&*EIRANRVka`nmy#s1y#p@|0)g4RoYQsdTd*dg&<=L;0HHeb0?bLvWM)|CX^ z%wwUQr;4I#2CG)gdm>im&s!MOs;^@JjCAWQ%*@nu$Nh>OLS=sMfrvEJVQ-0Sr%e0U zv6tI5Gz!(_otD|>fzSPsh=}JE6+3n@5#~U{{K(fC)rI#nbd#JlDkoMXr^Uu3Cm#50 zOH4{U=p1tzjcyzm%o;3O+w0TY{;WosTeK>xwFqsVSc?At#o<$vsp48wKlFRbcz7rJ zZh5f|%{;9b3oDH%|JV%OjWCNSim}m|FvZ7eo;&DsbY~$6u#Ot>7 zrq?%8=_R)|H((^bC6j&nXkGE4owAJ^Y1rkR)f2o#7W8IVQCZ_v(PIgUqsV!p; zYmJSLjA77!TrJPA0L>Eic9R~E!5;|F7Rw_zRp$sal!f!(h)N?&AIs&1&NLp^T9uh(_^KQ_}JaRc>TUjwedZh<^bcK+}@U)vQvcd)x~AS zOKlee<0W1WkKXNZV1Tl1ZQe1|c-JbNt*u;lU)efc;>L`G7~;n5JA5{z#-@L^|3G3| zDyq)Dl2BK3^2(L?O$n&}US82a>$&`*)|^whXu^VsB5iIiD|T;UDHG!P*DHZ=C& z%Ft*ZS{xjSxL_GoHWoQr7GV~3ArgbK)xuXVmWg%FSmS(Lx1!?qkwRObuB*LG@=FlYwE$%A&!6 z+^kNT6W(7*+muai-$?VSZr!}O`c_MmTU(3QtyOtdUaMA`0@vTmyh0o{hMoYPOy}Ru z_f1cAcTM!kv->8ehx&)QyQcf(r+=F68=D#$9|P`Zo?C4*i!xIzBCONWovJG=^^QAh zEY_{o)2Ql0u5!YiW!3c?B))#cuGz${Ira7N{lv0QiDixFEgWd!_;%J1c`!6az8ItJ z>q8!M;}lEd)YsF;kCnl;!H|G?+Xe&K@zT7u*tsIf(bl;lksGpwU=nvUnPez&nR3cC z4BF>(r6(oOb?#Z$Hv=S_je;~=0~c$8E+);&>tB1WZgIS9LsQ0c;p2DRj2{@VuxG04 zG&e8NruqG`1<+|Zd(YpH=l0- zMzs!J7qH$>3M@`0yS@ezDY}l!YG3B&qVu=D889g79o+Vk9U6z3p^>gyZB*yYu*~y& z*-~R!=uZ24gp6uDPIOK6$?GOZfK1-=^C4v~p6_A>S&`GB|qRYEEjZi+-bi+_E|A>-yhKV zG4O#T$914l|E^Nd%w82d5<`#wNy-tTN>3Gb5_>#jkQD zDJ~5psXonmGFa74N)m`=&*T>=2W!e|ih5@e%kIiq!#6>$xvq1GTz04G`*R`l8UpF< zlV!Z1H(Xp@d}%S3lJUiRhPTTcFm=|P$O+HRIRVtaC=I(`T88E1M zN!x>^>CUB737eo%g|_79_A=1X=ChjArNvOC7CrKl3Az-Pj5U|D6T%asslqX{AUy*t z(`mHYRUPGLzJwM$Pd7>I?pRd(yB?j)V_%)Gc~+$42Qu3c`pF_`=+YldShXZzXl!VD zsB47CJ6vjIxs4gMx)52u%bN7D#}Vb0FF@-bd1fS9FWy{HT^O+7Yj%1c{X8I}x&quN z!ICK15-bT?zXHwHlAVdhFrWE(>taXP||>|?c8 z_JyC$KB2~7n0Jj>MFj;sD+Rf>n(LNds!KFyDdrd(lW|~$B$kNg9ltE$bY1PsURu$= z%E=lSeA04g?=}B z?r#|ubl)m`7s$zcS>~&EMhU4}SWavHs<@1p4;K3kt_F?uxh~yWqyuk)EZ=1Bvv9?{ z??yT>a!Zt+-!#jb%`8iSf#=n$B-fX$2zey6^P~lTvU^{6_uX!^c=B;@P{3fG5os%y zUne?R(rUkWyYC8yU$NGw*4J{Y)fbx#p0s##3YM~|yx5CXuoiz8f*Nm6z8aH{^o>23 zekkuAADx)&o8s5VER!7tsD1fRY`_8y^CL;e3!N(}NF-NIY=}R6AU-uNJ}y8dLc9&Q zDROxZ!!7HxA^|F}|GD{t((E3fUFeBC!G zKlW<+Vc*y^E!*63ecvo19HK4Q+S&qwt$KI4y3z?a?G7NVQm3xkm&6*sU{o>_?y+fc z@jDXtrY5HD1vBlL&aKyvb9&P+8F&LRqg~XRRnr8edk_MO+jv~QRDAQgr_5-X(yOi6 zonx<$eM^RS$~Kq|Yn4nL0+Jb|_Q-3eyGAFV17QF*KOcK&85UMxNs5nt`B3-d_|$m+ zw45mz>lu1I)bpxq1k$Gm?{I39>Xl~?Be2@dekFT+bhK}>8?)%2ykWHPQOIZ+-nf>u z*|P9R#SxEcjjDpLE2=eOFq1UOHm}JD$XJ6>F;B_ZvC$WQ#?JeiV@lxLl(z#phH-U) z4;ljvCzs_k=IF<5f)4Q(YvbOQfraKlB%Uf&PhRF!3_NysS#AU9m3FqVo}T??Ajq2b zLaT)ZH1Dc()osY*YOGGuyv0iIm2H@gSe&~3Ol5Z8G2p7_ybM0sH!|HN&%RtLC!%0H z$0tFCzC7c?kg$<4+OPdMOA6;Z=~aNg%s;m!1#E3%>LKiz;;?I44{3}EyQ~)rjwIIw zQuG8mgt7c0FlJTJp#40cSL?W1>2=E^ZwceQTIqI6x;oEp32j^KLmo>pUmq=5vHsC~ z+vAwG-%i}^YaE(>NK^ONSkLab{U?T|Ar^tzEDgzs6OKQAs3BD!owvEV(Bcwy9jk)Z zZIJBP!fT{>SbIW9vDMrwyDiX2gRu=>uk9D@iW`$F%X5Ny1@RsmW;Xiw6gQ}_R zzEX+1bR{iGTj~Y9%%LaO#ZPPFvfM4SLt)rGgtm{)LQ)dHYuRMb+wzb^i;Nd*j+ZM- zZM>uwW>uc6Y4^g)w(+K&#Y>He(b-+y{@RC=;hflILD0m*!1`V>tZm?yc1me>yxJkav5m#saux4#_&8X?X4+N<~P0M*AA1Lx0>8; z)->Otp;>eyRHM)XT6@W!Vws6wD4IS#)iX6TOJ_&3b3Qf*e2_=#;rE&IoyrS9c<81< zKEBY9?`Snhk_93_n0|FRzxD1Q)0)#c0ETe7;&rp7$vf{#o7+w3QefD{R~)fy6#5O% z-}rR<4?p{1ACE@=#4CB1Fk!J*fc&YO!sYxp1Q01$oU$BrKkp%=VOqXrVPaENqWJ<# z^k1?g$Ug`>1fO7xzxTdZHI7%W&SBz~>AMDEua)b{Y6tJ-7zxjLz3f1YJj6ga3G2&} zGK|B_5NLo`ht`LHRqY<__64VY&2uUi8ZheR?6~mk6WKt?Kv3lMwhbEpy%x{d&TyN3 zO2&r62e!w50`wYZrurO+=oHeG*Vnl;HYT4XE#%zq2K|e^1Kln!@rJ&s#2RZvs%P`6 z)tE-V;}-kao-q}ffQO$&m>%t*zTaeT+ePsL%j`xe9-i{rt7S(r-XfJTxu*X@bn4|bs()S_F{Hz<%}R5 zc=XWNxCde}qWn49|8i6L=U8dyC1#|l88hCs4fR3wfsGqp=eo>=ytfZpd(^Y2^;A*s z(K+q;FVW7~%U8cDt^+fSpTjp?x3AC~3K@3T>7c#jFMh>n%;S1`_`X#1PiyDdfB|fi zu66X8C((HCTIIUJ%f>edq58(&8nCT2g6;MOuCQOR5Y?7rbyMDCT5dKM-}IvBRk(9eFu?}}+}Sgpcibi5~gbm~F)>pj5dmnwXoTZRRgzlaQYMg*pglf)l@SqAGct4Mz)SqZUqXSvXi znm4)iH94uU0XeqC4N$*YRQz3LpQ*YV6C;UDONFL)z&{QbY>VR4(P1Z{!}c!qHIn3hrvHO0rApdk?*Cds}0NqxocO1N#CXWz^^{ z(&1E-!Mr+vmE}hZj~wwhB0W+NuqJ>e#8Dqr4Q5f{RD<66vF8=f3d=&C?FzFXNwQpD zg+cf95R1XYAaQD6H0=RH5i$?QT+$V-BOg~tg>JOh`LITr0Nv7jD}2>3P$s}=fVjzRha zrZ{ig+ubUzEayWR8v@8_eHVRAZtWq8`KHzLPHAzAY$fzj&o&b) zD~u<2Q~g$Pw&|no+1mGDeDr%-;6WN6nw=OP`e}Fg(C7qgk3-Yp>9jZpT7(5)S-xKy zS%J|@L)T~xHcuigGz{p_a+?$%BiWyx#_UNBEVVCX~I=qv! z{~ckvy2HC(^$bm)h6!PsI522rmtIuqSeSVft1YJK=+TN-cqFz07;MPcy?4JPaX&dG z*1=7e1Qto!@>;*qzW(gnfj13r8d6i8(jHuGq`mOKsSBO0J?&2hi+b&6oB2%Iq~5E) z@@i{=nU>KVFVyl1mF=ALlNEVw3>^kHohhiS?dz7G9_x|UzMGov8)b)dEb^I|;zC7) zIp}iD|5&+`rAAdtEi7ojh30D9j)Tl+cylCO_;V za8iNaQ>lrT{d>RANtuk{w4d7;9&it>mDs~ob`4Elc{kBFg@$)xcr2m<%ASvG4_g$n ztK151kY{A1gM9O^PC8oX?BQHk=xkfjmz1QpdkxQFi3cRHF=X%A57%NmY4_m&Wi*!> zBK9`H>|-IJJ}f)U3|p^m&B7;p({eBlyi^!VBI|hFf>_?1 z#jBtPfp>cRUf%=h$&&p^i9YGE35kc|x3ca-l0#6*HZ;CYKDp&=!%HSNmvyO~f?4wx z(C;a_U@+L*)Y<`yS9@-I6S>@Br$#48HlY)kN4JVsulBIIa@~{Nd124McZZ$sOBE(q zZIaNdF07YuWwGYt9pEA?k!PMi7j_8{Omoo@hE~VLzDZ>PYm$7D^emIe97^^Q^dSc8 zV_bq{f10p5)~D3RpM@78)fM|fnqfdVr!}|rGC#Xi$`k4TO*flBcd1t!RODsKTV4>@ z7ioVpEE`^D;%Dlh@Pk!ai{Yeb_h@%G4F6+OU09pO#|nBd1i<SO`(|7uj=Mn_Y0D%eV2Yu5p zm;qY_hwYh2xXHrHLc$`WSpEG+NKg*nH9U80;}L~pb$?nalflnU0a5$LMmP`a`g2`a z`zNt9k+`G1)4fL7;Gd<;Z*K*n^&EvwzVTXF>v^kHg(<6<0#oVFQ+tXXo{~Ol>Iuuq zM$;+Qeo_Iv;bNTVo17XS>l!)9uu%X+Ypk2Q^uo-dpfd!QTaoRSrsYvvy`-bDdX~;d zqzg6|R{Mg|#2OGQlD%Y9#umdHdn(PdaO1yjc#ylr^~c`iWx1|F*ZNZoB?gdyU!eyb z`B|+w?N5}0y)W06`4Y~ zd3c-ej?YpLFfoTEhsZi*&ngFv@qy%Te~%?MCwH(FhHyUMqL%3G-ez*8#_nqKs&Bk* zDamAD?Dz8qGCXfo8J^D^J1PHr+w&%)LDT#v4`KV63%kqW8Kq8BI4YOLk4spG-{9)m_hTOd;3yu59PXRs2Acff~R2M}xRI4av!v8*?O7EiVjV|GP#u2 zpd&D8M?(OPPhzt$O6zE}{2!x&hScXX-G_d5DDnGZn6^u{7cZa1qjxLDAZfm|`FshP zsp8UTOS#0c#}Ohr^m3Lm3ym8$dn)03@KSn1s;xUG#2d*wokt&xLajO+u%k3$BrGhV z%#t?oj^7@4F2p7_qgs#Dg%ukP?~hN1xrq1=&T((?7FX6g3q4oPIdaiPfnZ=j_k^e| zAh~90Y;@vv9NM^dZpVUi7qHj4mY^Fz^}3_N`1Jkhi5aXPw6-S~I>;8+6fQy|FSng_ z^P=kc%}q<)Tbtcill~(oU)AxR@lp6);oF!PAH!@y_1e!OB6gKS+xgMv^CUfXn-QN8 zpBx{1ARcSOfdlD@yAK|SmmK(PKecuzxh|(6nH(2(C;7M#{S(-2lgst1oTj3z-YkxX z`M5C)^y-P9AM?)w$6}!rVlVO2JI;4A#5v8QVEc)9II`>67+5B)g7=jB!|YR-#DyQ| zfW<3_aeOe(V`5<%NR9OYqJ-YMxA2o>9$VVk4t@WnK|2N1WYs8{K~i=+Ip4JrZ-lNw zu*z!Xbx*H0sB9P4n>u{D)2{^jg2Pi`^HR;bOpayCuRsR%O>>x@d0r7x7L^yZ%Yw+p zyHP*+Tw_*1xUE_bKLy(Vv` z-uXz_Ed$Ty5UZpeB|bdUn~z`vAh4eyHk5j-Vr8J_7T1P`z&#H4w$QeNMWDBTa%2EI zBa@ZNmYdQt3(MPPkb5CAKbh%pI?Wq$*I+B;i@AQjiw!l}v17D!?D<%Qxpfchz9;#B zHyt=tPUUy#ZiVFq1Cq}@|-JS{F4O)5~AysDP=XqD? z0z~V;H}pu#MpeajAzBAsq3~`tvMMkb(K>-=1372wmpTa6In|rbJ6yR|S4lZ{xwix2 zxEOnfjl5U+-U$S9-JR^={mP}4m#!9sjQPz+B#m&9<6B=bt)cVy8@kQ-RH5k8vg0<=Q&r$(vreMK`;BbwAh1ujL^EbZyK;9z0YgUebNfUX%HfAib$5&tg2pYWo}N+ zGuah4^2c0UH|4qEFT*CqWcH}$1nuR%5rnz*Tx5hs^U5Nz$uN%?e~3W63z3T;)yo5t z;Ek+svi!O*p!)ui`D|nmGzXS0ThsT(q$YmOMp%I;Vj{}f1ShOf8^3#!)r9aC)|A_% z3K>0FM}EBVZC;@cCF_C6*VBDJO`m4Qy5aTixp?_lPY*>Cp!*vlSn>6JzK7+v`T2=h zS{5An7QJ7X$ZaF8rnZ}ig{m7rvEReZeZEo^fMKMpmm)R?1KRav$!FNnuJa)OS zdwjA7gy=8b5xgTmG zuTroDlc+*Nf9NRc9cWi(HErYLZt8D(HF@5Y)=6(lF%q|=U$x0#uLUZa2oH7G_;)11 z{;Rrwa;R^tXXIV>_^Yw$$#=XMfAT@>@^ezwSY2(KUWRjZl8P%7DKUx3!RhgP;?uF( z^1ECxq+h*jF709Z9ocZPTX{j68#unifYoAddfb%ON^djLo2<*XjV9@e(4~G$Lw63J zn}Qqesfhw+ELPvYG4<;1^kiROdDl-vqpwC;rzWfI&yS=@8eukjSNrASfJ+5VwgH6{ zM+Y4;=3rbRtRLQ|ct$d;+ma(mF=V5;LVw3R>F5Yi*1*B@fr+T#CT!cqvKFG-(7DGU z;-M21C11!o1VcN^%^Cg&d3tEmwo*A(W3m0rNKF;4J9n~wW4$zBDN`zLT zw}vEcJQS0J_`{NvgUJUH_s66kU?eGUy0US7-mmKW8vA4?);fFa@l0jxI>E8}ba?kP%t*lT!AONA zly2)eQJnQCtqfzBSh2>L=^`Qp@krRPp+fxD`A%G8PNRL!*)0(ExB80)u?Hp930RaW zrERR)afvsfvI1-+gavHR-WWP1qoqnf;V!oI#PJUz&9Nxyh2$-uU|y(4K*6$_Njj>V zeu;PMtjdT#0IyxJ&z7yJ$(U<*_B7_C<}|)^JjDgWmjDaemDvM_a^OJwF*`oueMP9B z7o3Vk>k;j~^QElh(9}*pOu8deebaC#=3P8lFgEduM9>o!j{t-xm4`e#&jgP=3mc&r z^|=*^rzIh zfLLAwJetZHc@-A#sf@V+*NlS`P4OzDX^!pIIT#kxMIrQ|iI=8hqFh$C3I%J@%W9eC3 z+4N17+p6X&ujb}jCAM{oIJ(Y9?3aUL4~$D2?P(%>JsZ{6m;0u;(*%bf&qBBC0=Azl z#&bE0&2^81tUws}Zs73sWn%WjK?`hm0o??Fm|NOKzDO^rE$b^TlFT+VJz(AC3|z|$6C`YgV};MelpT7{@<;LGvs zMbA(_hM0B*tTco#OWJQa(w^v=?tXZzXLM)`Nb}SkVX;0FZ1%z|+$b!fyaEK~Ce!x< zg$r#hH>U?w1AmUrVI2BF@jjpU`llu$x+H_`fH&8H4NTqZ{^_8`AP^iq!2XEu06dYP zHqW}3cye>dv+PT_19d5nIe)~2L!Df`1!KQg5&L_NDe}*cRdD>kV|#S-k~&5&mckOS z-p+RdTkzBl_E*4ww>LFDE@a&X6=T>VE+vRaeFa*MDTk;SIsoR_HXRD-xXkk~0uErL zajIGZrWofCB?k8U>rI%D>?x44kjJ!(nP4rxS5BP9WP8MMMX;IG6WH)9i-PBYD+IY< zamG>?)J3>kQu&$>uvN(g@CLBuNy}ji-T-9@VV*TOgu%*$vyO-f{;6_?nTeAr4vr@- zF)}7x$O+82;{wJLm~DTDE@Ja95Elo}gV{ph1k5#(V!(8keDI~|MiNY*D?M5=lbvml43J}|uYDUysmg90-&CxXX#Sz%oG2m$+Ha0AfRN|0^Kxn*OX#pWfm zLZ!LM=YuX_MI}qAFC8BOC;yRM<5TqG=!D4IH-U^Rg>C+Tg{|m!gRLz!q|<`l2$+X` z&CP3dp64ykwiY&alj3MN-U!X!_*A`QO2(-GFh&D=DD&Znbv-slJ~XVgQLwVZZW0(!EH?1%iBrwAxy^fU)McQOMd@dkeFg5k6Z!)`UqU-L^2;$~h zhui>YYh-;P@;)L}uy>`kjdrd{M_0G?S+EfX2lvN(M!Q6tz0lo1jrq(bHfDd!?nIm@ z^;Z9QEB$XR9dayw=siPqC(T!Ih%MKeab7IC`h|=tE+IqZHed zMMvlOC4$BEYP0(#>Fujb3n@7=IDnx{uiLqYqD-Yw9tA^k1(B9jVZ#fKT{#vG0DYmA zMV%>)EVT^N+g2V?Mh3~PkON8c3iUGJaM%Z9uO+rgU2GIS5GTb}vO7H{HBPdb&Qspm zi+Q#o(6t}uAHQ=-aiz^9NZWc6M$-INPn>Qj>NUvfCBq-B4kqqOH?L-sue@%PLGt5u zFn~$dKaPXk3ZS!U-94lIK&ogga%4yFyb#p^+vg$kXxukls@qoufoh(3;Gl$JDmMMm zvG-J+ed4RD_NSP-x-2aF+E?3al!L982ioC4ebV|64SxgkCwqbin@G2t#a_xAZnr$! zDfH+TkXTeQ=@;to18Wa8>DGE@H**4(H2*WBQ?;XAlhfT@lRc&5@X-Ljuo=5xNJOdC zi(REw=FgeuVPs)IC$nn<1Yl1Zq2SrZ9 zj=4fGC*rIKIdjOeM}|Ed09^*QeJWV?a0>K0Y|zVL+GCAui*1=I*fT#S-JfR@}3jq9&;T51oy_5K3w z;XG=B(BKdJiPQn1#j`NQHPf!~q6aLAJN-=8`@v&Dc9{rf0*0Bc5jy&Sj4g0&7gqUMaC+L|&un~W4qVw#R6%-*V1PpOl&0a?2K#==myZ2!>bYZSPsPfY zN3UloFFfHK@t5JlUb*sSv8Pvy6rqzgh<^Yp6;5XFgbzl0es?zn#PKnhkv}{LX13EH z@azkHcJO;1R*-!YjtMqQkX)3USG zoFod$>HjCk+tc#7v&04YRT#GzoD`KxJwH5A%&_b3omc_APy1Q)z$Rw}M8@4&M8KD8 zRBhg4+k~L}v2>j-SG_e?J@~;Tx4u8u73PDS`j9M=J(|5BDi~FVe7b675OXBn(q$|4jzTEOI3}< z?ZL4_ihsIa+Fwyo+8=n<8ewQ@=7pbSEGR7NZK4k#NMfb?Q+G?fq@R*dVf&V>l|9Ax z?Vd zK@y8?B`z*uSZL*Zj(%>W&`ROerZ80_9xFZ5Nor6djed-SA9aUX8T{^Uzp9nC(o%Dw z6+hEieVN|9XZIwrJ@q9jXP`fvZ>9Q7Q<ILRWHJ9rn&@WU{}9*nzsTx~z;T zYsCOjU;LJOc&I2gjp0%C<%0f$nN|urXSL$#wknD5OU_v>hmESPJQ=%NFA%J)yuwUL zTyT)%a)d4o!(oOPru2>X)Mch6O@(4}Pw>Lwr%`5+_g{=5;3_O4;Mp!jbXZ$Iw*p)I z*rs1uj+Tgg=phULfbiB}isZggx5a^5%S@7@KT`Mq#X% zM!{ruu|qMW^klKNI(r0L8^+^|i(SJbeed80i#s1qG~8%`K)Dg%_5EkM5wXtqlN>Dy zKG{d|&zcRAqj{U)Qs0o1E0NUCxcp3W@jZ>ErkX6)1IK+z;ZhT}L9&}I*Exq6eNN$H zPvgfSckiAveoP)fhWjkUnQp8YBO^my?3&Ge9%3*!c*nd2JGKYUI0Khk=p{MF#s=uk z@(6D5^$FS#80hcAI_TJMUCdxdYdH7O3sVEl6${4#Ll?>4i9K?|rHA?a