[added user list and user's recent changes links. added optional geoip support. getzdan@gmail.com**20070205133439] { hunk ./INSTALL 8 +REQUIREMENTS +~~~~~~~~~~~~ + +OPTIONAL SOFTWARE +~~~~~~~~~~~~~~~~~ +- Debian's python-geoip and dependencies + hunk ./app/accounts.py 15 +N_ = lambda x: x hunk ./app/accounts.py 118 - first_name = forms.CharField(label=_('First name'),max_length=30) - last_name = forms.CharField(label=_('Last name'),max_length=30) - location = forms.CharField(label=_('Location'),max_length=30,required=False) - otro_lang = forms.ChoiceField(label=_('Language'),choices=settings.LANGUAGES,required=False) - otro_first_name = forms.CharField(label=_('First name in language'),max_length=30,required=False) - otro_last_name = forms.CharField(label=_('Last name in language'),max_length=30,required=False) + first_name = forms.CharField(label=N_('First name'),max_length=30,translate=True) + last_name = forms.CharField(label=N_('Last name'),max_length=30,translate=True) + location = forms.CharField(label=N_('Location'),max_length=30,required=False,translate=True) + otro_lang = forms.ChoiceField(label=N_('Language'),choices=settings.LANGUAGES,required=False,translate=True) + otro_first_name = forms.CharField(label=N_('First name in language'),max_length=30,required=False,translate=True) + otro_last_name = forms.CharField(label=N_('Last name in language'),max_length=30,required=False,translate=True) hunk ./app/accounts.py 184 - return http.HttpResponseRedirect('%s/accounts/thankyou' % (site_base)) + return http.HttpResponseRedirect('%s/accounts/info/' % (site_base)) hunk ./app/contact.py 8 +N_ = lambda x: x hunk ./app/contact.py 17 - name = forms.CharField(label=_('Name'),max_length=20) - email = forms.EmailField(label=_('E-mail address')) - subject = forms.CharField(label=_('Subject'),max_length=30) - inquiry = forms.ChoiceField(label=_('Inquiry'),choices=email_choices) - contents = forms.CharField(label=_('Contents'),widget=forms.Textarea(attrs={'rows': 14, 'cols': 60})) + name = forms.CharField(label=N_('Name'),max_length=20,translate=True) + email = forms.EmailField(label=N_('E-mail address'),translate=True) + subject = forms.CharField(label=N_('Subject'),max_length=30,translate=True) + inquiry = forms.ChoiceField(label=N_('Inquiry'),choices=email_choices,translate=True) + contents = forms.CharField(label=N_('Contents'),widget=forms.Textarea(attrs={'rows': 14, 'cols': 60}),translate=True) hunk ./app/models.py 21 - create_date = models.DateField(auto_now_add=True,null=True) + create_date = models.DateField(auto_now_add=True) hunk ./app/models.py 26 - otro_lang = models.CharField(_('Language'),null=True,maxlength=10,choices=settings.LANGUAGES,default=settings.LANGUAGE_CODE[:2], blank=True) + otro_lang = models.CharField(_('Language'),maxlength=10,choices=settings.LANGUAGES,default=settings.LANGUAGE_CODE[:2], blank=True) hunk ./app/models.py 28 - otro_first_name = models.CharField(null=True,maxlength=30, blank=True) - otro_last_name = models.CharField(null=True,maxlength=30, blank=True) + otro_first_name = models.CharField(maxlength=30, blank=True) + otro_last_name = models.CharField(maxlength=30, blank=True) hunk ./app/models.py 45 - mtime = models.DateTimeField(auto_now = True,null=True) + mtime = models.DateTimeField(auto_now = True) hunk ./app/models.py 47 - msg = models.TextField(maxlength=65535,null=True) + msg = models.TextField(maxlength=65535) hunk ./app/templates/base.html 38 - Account Management
+ Account Management:
hunk ./app/templates/base.html 42 +Recent Activity
hunk ./app/templates/locale/he/base.html 41 +פעולות אחרונות
hunk ./app/templates/locale/he/wiki.html 16 -
גרסה מתורגמת חסרה. הקלק תקגום בתחתית העמוד כדי להוסיפה בעצמך. +
גרסה מתורגמת חסרה. הקלק תרגום בתחתית העמוד כדי להוסיפה בעצמך. hunk ./app/templates/locale/he/wikibase.html 17 +משתמשים
hunk ./app/templates/wikibase.html 16 +User list
hunk ./app/views.py 7 -from ghestalt.app.models import Log +from ghestalt.app.models import Log, UserProfile hunk ./app/views.py 109 +def wiki_roster(request): + userlist = UserProfile.objects.all().order_by('create_date')[:50] + return render_to_response('roster.html',{'userlist':userlist}, + RequestContext(request)) + hunk ./app/views.py 186 +def recent_actions(request): + user = User.objects.get(id=request.user.id) + log = Log.objects.filter(muser=user.username).order_by('-id')[:5] + return render_to_response('recent_activity.html',{'theuser':user.username,'log':log}, + RequestContext(request)) + +recent_actions = login_required(recent_actions) hunk ./i18n/utils.py 41 - if len(page)<3: - return page + try: + if len(page)<3: + return page + except TypeError: + return '' hunk ./local_settings.py 27 +ENABLE_GEOIP = False + +CC2LANG = {'IL' : 'he'} + hunk ./middleware/localeurl.py 26 + if settings.ENABLE_GEOIP: + import GeoIP + gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE) + cc = gi.country_code_by_addr(request.META['REMOTE_ADDR']) + if settings.CC2LANG.has_key(cc): + return settings.CC2LANG[cc] binary ./static/images/ghestalt.png oldhex *89504e470d0a1a0a0000000d4948445200000105000000580806000000fcf1e20c00000006624b *474400ff00ff00ffa0bda793000000097048597300000b1300000b1301009a9c18000000077449 *4d4507d7011a121b146d6570850000001d74455874436f6d6d656e740043726561746564207769 *7468205468652047494d50ef64256e000010d34944415478daed9d7bb855c575c07f17bd228a0a *2824a2c820885131d84403220aa255a934629bf8481b8d494d1a12ada11a5b53153f53b5e6a1a1 *564d529368e2a335522a510b4a4b7cc4478b0f408a5161e28b800614441e5eb8fd63addbefe47a *f69e39e7ec7deede87f5fbbef37d70f76366af3db3f6cc9ab5d680611886611886611886611846 *edb499080ca33938e73a1bed8fdefbdcebb963f9443b2320d819a6e80ca3017a99080cc330a560 *18862905c330e2d8d144601401e75c2f602cf02b10839a738eae7f1b71f2f3deffaa526e5dffae *24245b530a464f36e43d80138129c064602fd4025fad311b61f939e7da2a8e275d672305a3500d *79a436e229c078a0dda4522cf99952309acd0b268262cbcf0c8d86619852300cc394826118a614 *0cc330a56018862905c3304c291886614ac1308c6661ce4b3d84736e08701c70147020300cd803 *d805d8026c0056022f030b818781c7bcf75b73aa4f3fe00f8149c0e1c02060a07e38de015600cf *693dee03deeebab66cb109ceb9c3f459c70023807d80be8877e006e0772af76781ff02e6039bab *ddab15e3324a989024eb242b33fac08c8d4d6a8cbd80d38069888b6aadf25f05fc0cf8aef7fe8d *8cea3414980e7c01d835f2b22dc03dc055c0926a1d2422cb506e6db85a4775cef5063e0f5c008c *acb18cb5c04f816b81d7eb550e35665eea31f965a514f606fe18381a3804d80fd85d8fad03f6cc *5029344bf9b465ac1026003701076570bbcdc0b7812bbdf79bebac4f9b7690ab809debac4727f0 *efc085fa65fdff0e5224a5e09c9b0cdc00ecdf60599b80abf5f77eadca617b510a1380af032735 *cf3ed12ca5908d7270ceed00fc837e8db31e992d013ee9bd5f51639d060077eb54210bd6015f04 *fea5088dbaab63aaecbf057c2de332ff1b980abc518b62288b52a8b723efa35f8805c01fd1d206 *cb199d0d2884de2aa7bfce69aa360a78ca3937ba863a0d041ec95021a0a3c2bb803f2990dd6047 *60760e0a01e008e029e08084b24bdde2ebe9cc53babe506c37d4ae18b451de0d9c9c73e5f602e6 *39e70e88a8533b30073838877a3c02dc5b9437e6bdef005ec9b1887d1003e4beada6186a550ae7 *e997af1fdb1d352b866bd4ce12e265e09bc0386088ceeff7452ce397034b23ee310898e59cdb25 *70de657adf34162146c7e15a97ddf58b782a702bb0beca35ab8033808e82bdb4bfd28e5b556f00 *d7eb346004d05f9fd7212b13372306c63486a8e26f6f25c550cb90761af04f05e89c3d58f63567 *c3a6db22bec89381fb03a76d042e05aef3de6f4bb9571b70aeda2542caf846effd5712eef321ed *086946c5ef035fadecdc558c7603802b812f6bfbd90a9c00fc67684e5dc7bc3a78bf8877d11f78 *b262a8bf12b818b81dd8966613d0a9d6f7803303c55c91d4306b5c9189e98f9d19f6e9aab28dbd *c124601eb043e0bc5f02b7216bd92bf56f7b03c7009f0526165b29cc686b74c9d339d707781ef1 *3b48e26d6092f7fe991a1af70895efe0408319e7bd7fa2caf57f8358cd93781049edd519d9b94f *02ee00be03fc7d6c076eb652d0320f049ed051c3b94923801403e155c0dfa614b149a7642b024a *a66594c26e6a43d82fe59cb5c0d93a5f0dd9236ed3a15a12bf410c68efd6398c9f00331ece77aa *90ac189c731721ebd949bc071c57ade34634ee91c0636a47486281f7fed82ad72e10d924325eef *1ddd119d73fb01af7aef3b6393acf68452d072f7079677252dade8a8b1cffa23e09c94536ed6d1 *53e995428c4d617a4021bca3f3e13911f7fa859efb4eca394369cc62fcd19e9a5ce86ac3f4c069 *5faf4721e80bfc35f0a5c069139d73e3aafc7d54e0baa7eba8cf2bdefbceaec65564ef3eeffdf2 *aefa55d6b3863a4f077e9b72fc6c12fc71ca665b082985dec0f98173ce0596d550e632644d3b8d *0bb4ec7abef23764338da88b53800f079efde6061bf72c9d9ea551ed8bb547e09abd30d2e4feb6 *da0e92e8037caa159e35a4144e0606a41c5f82585f6be56e2adc63ab3000f17f282889d38b3f0f *5c787d46b10bd7058e4f75ceedd4ed6feb03d79c695d3fc81d3afd4be2d3db8352382170fc6775 *96db89587f1b293bef8e5fd36841a70ec7a79cd2c1ef7bfc35c2fd881761127d11e36e25ab02f7 *bc14185dd6216f93460beb9060b0248e4a1ae196499e21a5f0f1c0f1471b283b74edc74ad6668e *d42164128feb10348bc6b985e4f5f72ebadb151e0f9cdf1778a852b19962a8ca9329c776063e51 *f6070c854e875ac5f206ca0ef9eb0f2b992c0f0f1c7f3c87c6796a0d4af53ed2ade75d7685b9c0 *8dc025c0fa56deba4dbd4e8f4196ca3f8e044c7d188916ed005623e1e28f2251a1cb9130f63446 *23de9d2dab1442c6a9b50d94bda6c1b28b4668d5e3b98ccbfbdf1a95ea6c6423910323468f5f05 *fe5415c36dc0b656520e1a2e7e3ef039926d66edc84ad850c4a5ff5ac4c07b67e0f607975d3e96 *64253b42239bdb9d73b737b13e83bb4d39b63ae7a623cbc231f692bd811f234b717f87c635c4ae *eb175419f4415610cea7bed5ad63f8a0ada63bc3cbde904336857702c7fb3750f68006cb2e1a83 *0b569fbe556c11f723f114b5702812eff20c1205d9e69ca3eb572285300ac9a47411752f7747f1 *a156570aa14f4223492b425fd615c516dd079625f72c5805ab367ceffd95480056ad1ca6f3ea85 *48c05057672b8342381ed9e27e64138a1bd4ea4a21e4e536be81b2c7375876d1e853b0fa6c49d4 *f4de5f8a3890d593b5e90f903898dbbb146191470d9af1ea5ec45dbf19ecdaea4a615ee0f89fd5 *596e5bc4b5f34a26cba26da99e6a04f6deff1059575f5ae7fd3fa38a7b4c51470dceb9613aba89 *51d8ab81998881f5009ddeb6abe21b8d78eece2321b2b2829d5b5d29fc82f4558243a9cf8bebd3 *a4fbe2af211c7a5c343617ac3e2f854ef0de2fd42fffa5843d1eabb11f12b939b5688a4143ce7f *1231addb80181e8722f91766a9ecd622cb926bbcf78bbcf7ffecbd3f91b053dd4e65570a3b4634 *f47f24dd38f5436031f1f10f1f017e10386766013b5988f7025f89fe59392f65893a427dd33977 *339267e0cb350e817b033f47b254cfea520c0558a13893f04ac1cbc872e3d204d954fbdbfc5677 *ea8a8992fc0ef05acaf13d10234e4c96a1297a6e9a0fc2abc0774b28cbb702c70b6d95f6debfe5 *bdbf087158bb5abfa0b1ec80f8338c2ad088e11b81e3bf43120e472b84ed8518a5b01ef1844b0b *e4e98f187316e8b9c3914d4d76d17f9f836caa3187f465ccad7aeefa12caf2d5c0f12165780855 *0e97e87bbb29f0de2bd95547958dd256652a50ebd4e148c24e445f499a62955c21d41ab3539752 *00f1898fc9713001f8910a7b83fe5ed2bf4d8cb8fe02c23efd45e5c5c0f15279ba79ef5779efa7 *a9cd21d6457b62e590bdced1421686ba2981e34f03ffdaa21ffa86e5574be2d6b9393e48a72a9d *1b4afc32423ef14796f1a1bcf78b91558a8b23470d5303c73b9aa014c6068edf494206a3128c12 *3a8aa21476457ce7f3601de229777dc93574e86b3a49372729a362e8f4de5f0b9c4e381d586844 *b82970bc7f06550e39293d54e27696bbfc6295c21564b3dd5977ee47963567975c21e0bd7f1ec9 *2f99c4206443d9323fe33d11a3b97d02c74381704333a86a288bd46b257e0db9cb2f46290c46f6 *7bc872aaf01fda414e26df0d3b9acdacc0f10b5ae01943e9e442312dab03c7b308280af90ad41d *57a31beaf424b9cb2f46297c2e42c8df42f685b8030911ee72fce8d07f3fa7c7a62156f8c954ec *13d04284fc2f263be78e2df933867268bcd7e0f559d85e427518d8c0bdf72fb8fc1b965f4ce8f4 *8981e3b3914d664196b0b65bbcf7cb9c730fa8d24be216e7dce1defb35257dcc50c0cf6f02c743 *6ed55928cddf22bb3e257134f5a7c63ba387e59fbbfc62460a87048e5f8351c925a41be38601f7 *e94e4b75e39c1bec9cfb37e75cbf1aaf3bc43977ab736ea73a43a043cb7d4f058e870cb2c3a892 *ebb2c63a86bc6bcfab53e6c391d0eb9ea42ef9059eab66a510ca80b4d8f4c0ef8d169e25bcbdde *58e051cd00544fe31c87ec78341571338fbdae8f7e21cf4262165c2d9d4eb79ebbac41bbcaa3c8 *9679695c51ad6dd6a01842e9d08e022e8ce920157fdf17b185f5741464ddf28b550c3117be1938 *3ec254c107b838e26b7510b0d8397761acf1ca39d7cf39f76d242d589787e4a79c735f8cacd7cc *8a91df58647bbbcb51e360daa8c13977a8969be6aefd82769c34a5f91ef040a09ee380ab02b2d8 *df3937db3937a672c4a3f5bf274216d7a6299f4a3938e74e45fc507abcad67253fb58dcca65b94 *ab732eca25723eb29764da70714a84f2c888c6f67a6c5659ba35fc1384adf100af234145731043 *d24a249ea01f1289f8317dd1a7247ca93602877bef97a6d4e774e0ae84c39b90b5fb0790d894d7 *100bfd0024a1e919488051c8067512154e6e297b334e22ce7375b676de453a251ba8b2380d0971 *6e47f61039adcab5f712178ff302b2cc3a1f5909eb50b98fd011c5591153e8ee24b58b86b77cd3 *6def72955f4c07fa3c704be09cb5483ebfb94842d137093b59b4b452d0c63f46bf9cfd9aa02d97 *004778ef3755fbaa22e9d476cfb1fc6ba8d88435624fc9d0c72696adda81bb17f8117de6acf31b *3c86a4ba1bdd534a216ff9c54c1fee24ecd7df1f49f03957b5ed461540da6f9b2a9397f4bacb55 *33b7927de1497d716f34a1b88d29f69f41c40736d5c34d8881b516be4436816f3b50ddff6319f0 *97193fe7bb48c6aa22b8e3e726bf5e918ded801c1eaa4dbfa0c391c41533d488b208d9acb3ad45 *14c3334850d1833915b10d71113fda7bbf2aa10e4fe8dcf17f322e7b9336a8695d5fc1d88d66bd *f72f21b90cd665508f2f248cc66e05fe02783f8332d6eb347929928a6e6d0fb7abdce417a3143a *9bfcbc87221973e653be0d61925ee06aeffd093a3f7d3dc35b3f098cf7de7fcd7bbf3950871711 *c796e91935e88791bd2ebe173b65a852a70548ac44a323a917936c37defb5b908d7a1a51884b55 *76bfacf850de528076958bfc7a154c2154722c62f43a8816c17bff53c4ea7b2ee9db8f85e68073 *8129defbb1defbc76b28bfc37b7f1de21f3f9df08632d57848bf98132ba795f54617ea486aa48e *14dfadf1f2c5c067b5d32f4f9a7f7bef1721ab2de72069de6b992e5c86185b9fef76ec46c2f91a *9b3512cd547e4943f4d391cd40d276378ed96d280b5623e9c557ca7fcb63680ce164dd6b12b2b2 *7020e237d00f494eb31571d77d53ed344b90959eb9defbb7b27a425d6a3c4e3bcd4864a97337fd *60acd1f29f4712e83c88a4306b4811a4d46537adcb4988957ca0feda7598fc86da0a9e4592a82e *4c520481728e50b91fad53e33dd51eb301d98877a1deffe7491dad8821d659c82ff1de3a7f0a19 *0ad121d5c548c28a253a347e37e2da5a7f776118468f31275221d44b9b7e893eaa06aaa72315c3 *687b3586d17c3e11e898792cc5b421a9b5b705cabed25e8f61e44f7743e36702e7bf95431d3a11 *0bf6ccc079c7dbeb328ce6f35ce06b3d2ac7b20f0a94fd8abd1ec3683eeb021d33cffd127b07ca *de6cafc7309a3f7d086dd1dd37c7ba84b6f7da64afcb309aaf145606ce1f93635d42710fbfb6d7 *6518cde7cec0103eaf9da0db110fbfb4b2afb6d76318cde714c2fe0259a7a3da098975482bb383 *7c82b20cc388984e2c8a500c33236c0031659d80c4bc87cabbc95e8d6134876abefb47221170a1 *2c3b5dd97a1e41022b5e41e214d621a1aadbf41e3b231e8c0311bffa91885ff671487c45886588 *53d57a7b5d86d1739c47f6f10bf5fc5e239bcd410cc3c8806ff4b042584acf6fbc61184637ce22 *9fa8c7d0ef27e49b4fd0308c06188e84466f6b823258004c30911b4639188164ec5d96b12258a4 *f73dd8446c183d4fbd99838620de8d87e9486228b2ba3000c91ad48e2c39be0f6c41560ed62059 *6d5620d97b9e45f2e6bd69afc1300cc3300cc3300cc3300cc3300cc3300cc3305a95ff03ac27c4 *ecc7b280ac0000000049454e44ae426082 newhex *89504e470d0a1a0a0000000d49484452000000fa0000005a080600000091f04bd300000006624b *4744000000000000f943bb7f000000097048597300007b0800007b080178241da1000000077449 *4d4507d702031409393e724254000018bf4944415478daed9d7b945c559def3fdf535da7aaf30e *10200828844890302002f212c85c04019900e9aa30e125c200a33caef2583ac20dac85e885d109 *8a02a3882088e94e02a20e1060500630c3532420cf4b604c78442090477755779fdffde39c4e77 *923aa74f5757f52bfbbb56af54ea549db36beffdddbfc7feeddf4f66868383c3c886e7bac0c1c1 *11ddc1c1c111ddc1c1c111ddc1c16148a061b83474a2664c6845dbc0582087cf58ca640cc63281 *c9cbdfb68bd6bae1747018e6445f4bfb6c18f5030802032bd181f00d025bc37bc7010fb8e17470 *1831aabbb4fe151288cee1b35e393838899e8ae63d5e1b610c40c68da383c3c821ba1146f74492 *dcd483ec0e0e030d5fc5bd84a654ba56a6fc27b33b5f7344af4a9a4b604124d915608187d4e9e6 *9cc3a0d8bd76a6616757ba96a5e102e0c7ce46af52a277d9e5d16b0ccca9ee0e0e2388e85aef88 *b3f5ff37c0497407871126d1ad07ed8dc08473c639388c281b7d53e28702be930e37920e0e2391 *e85ee88fc3c070fbe80e0e238be8d1969a051860e66db8b5eee0e030dc6df42ee75b97532e24b9 *db477770185144efa2bb45923d702c777018a94437a2fd731ccf1d1c4620d1c3ed353323b06ee9 *2e1730334c304933c74a723e953e604b9d3c6eb394e862c3c019810b811d26245f4deeb75070c9 *4e5222afd947aea17ce9664774217539e440cedd3e4c304673b6f988dc62c30e74bd910e39cd2e *1ac10241632dee37ecb6d782704b8dae736ba1b5ee02668632c9dbe9b81f6c37d71be9d0a8d927 *43f0536a18f4394c0fb584f25c918dee02661cc94712c9831a937c98aaee5da477702477241f91 *4467239287cabbb9432d8ee48ee48361a34b1a5da1c1ad40b6c73327470b4d16d83a7a6f34e427 *64188de14ff418dd18e05b86d19303b2bb7b11c9b591943782ef35eaca0f3d1a65b06dbc46405b *80bde9a165424f74a047daec6bafd65d1351d16fa073ff0cdebe017c4ab03528facdf696f05606 *d8b32278b8cc1e4bcde606b56fc38c8606b63ac08303c1fe0e342e6ac307601f01af839e2ec3e3 *d0b2ccaaacd5251d3fc527f30068fb4ad7c7931db7a54e4eb551f23e53d7a4e90be90a2fcbb37b *40e6200f3e65e1dcda16d400bc03b6167855f0581e7fc92abbfd83a144f2bc0a171a7c37e6d765 *d36eb1bdcf871d66bf5957f12efda9bd26691be028e060605a44de49c0a814448f2163de206fd0 *681e8d74bd163913a331f241f87ea389bc89468c51ebdfeb9b2980093d2bec076bb870a1d5382f *55a38a3b1a7cddb026609b946d7a35c0ae6b67ec4d6637b7f59fe0c78ef2c99f079c05ec98f25b *2f03bf2cc37cb3e6576b45f22a74b73d4ab6e0c5b8abe355dca20d3b5f30c760a794ad2c19410b *78d795adf9a97e12f43a83b363b4ce0bcad6f2e37424d777c06ab089a4074bd6fc859aa9ee92f6 *917427b01cb81938033808d89930f17a25f5a3318d06615d4f00d90604f0143ae350b7e2dee58c *abce66b7301dd55e9df0b346beff605ed74cad8df43c75744e85ab02ec2f867d352dc9a336ed22 *34cf67cd0b79cd3eb23fedf0356bff1cf9a7802bd3931cc03e0976b98f3d9f53a1c55771bf8127 *79b204f7553cb7157b05f8567a9203584ee864618fe555f857e9e8dce04b72abfb4eb1d747828f *977433f038705c3dec89c8ab1e91774375a3a733ae87022f751d6aeb9ff4d82783f7e0287defe0 *fe4dc2e3a7f8b43d0a5c0cf8fdb8d50e86fd26a7c2dc6aa2c91a357b86f0ee35d8a59ff3e338c1 *237915771d0a24df42c5f13e4b5b84fd9ba03f51639ec1053ea3ff304933c70e2d757d10892e69 *0ab004f812753c1ada25b52d54abd5c3f1661b7f52eb534a8511723570f24d10fc729cbe37ad9a *efe774c2749f86ff02dbbd46bd21e0d21c4dd7f46db199b57380dd15fa3c6ad30e8b59d47dcdda *dba7e1fe8191e4c5c675f03be01f6a78dbcf7c486e9174c58039a6732a5e3190244fed8c93b41d *703f7d5291526119f0ad68c1191349c0ad808c87b60db9679381ac6057c3b689168248840b3033 *d402f69a87f2106cd1edd8f3c687e4b509c0644b11656430a1036e92ae38d46c6e471fc8f5719f *cce2c84751e3c58f0b7c15fe5ab69679a95476bcebc046d57bf2f89ab53778f7021307440aa283 *0282cfd65e8bb4c37c965e045c5ddf854aca51f857b0f3075a836848d1380ff8552f247f075804 *bc007c18a9f49f00f6030e239e609f002e058e36b365c993eae0b3816bbb9576adff378377fb1a *bbec815eecba86318c9fda41e72ca133c0b64cf8f81ea3197b32f0f374037874ce67cc22b049bd *38da5e07ee09b0a73df42e40806deda1fd0d3b063439e1bb57f96afa43d9163cd39b34f7c91c9e *64c9083d16600b32787f013a3be9d8d923b30770846153d3fde6d3f359bc7b354024ef03d6002f *81fe1a2e76da3ef439249b99862e9ea8e3fffd03bb7355bd1a9665d6e93608244f2bd1cf063e17 *73ad03b802b8daccca310bc538e01c602ea1377e63ec06dc23693f335bddbbfd2ebafd74a13d9f *66af2692ce7f01ae1cab1fde1850bec5c2dd823813e27ce98a5bd36ceff88cbe34dcb28a5f083d *bc6fb461779835576aee2dd2d1b92ca3ce14fa4eccc29815de0dd2150724b5298bbe18efdc9119 *c1574bd6f2938d2e3cd4bda09eb0a747e6cb06a7465a560c7e5e6ae0a4bd2b5de9a4f47abcada8 *29c24fb57dd8caf2b753cee3b5423fef84f91db42cd9786b70824e9ad84af9ac48a8e463a4fa84 *b5644e046ea817d9c6d3deb296b18b37edaff2696097c76873b736909b9b8ecc415b554497e447 *9d1347f253cdec8e6482d947c0d59197fe77402589318dd066f96a0afbbdfb7f0455a5925a6de7 *ad94ae9edd48e68168a1a9d4c1bb8c62cca781a792fba869aa8f7751bc04d5f30d648e5e6b77ac *48eea7ff28013ff235eb8fe02d168caff0a9bd7d5e381e58184f246fe7f85d427bb06c0b7e92d4 *8eb22d7a16b860ac4efd7699b6af819d5389f01199fe5ad9062dc4debf0d969bdd56ab03879d82 *5b1bc85eb6c67ef94edc87a27df3ff9b55f1610f7b20ce492af4f97a127da5fd7a35b07a536db5 *6955dc112d0fad5b67b7fdb5deceb82f00dbc55cbbb637926f34315e01be087c14f39133a37df9 *7456eb7a3bbd3a6fbbd925abc13b2f291795e07ff5ea5821730958dc82b9a281dc51bd917c43a2 *2d7cdac33b3dbe4dc105bd2c86491ee415e917c35bdf2d59f337b36837e0560dbdf4f96f7b7847 *b559cb594924ef89766bfe63921d2e349d118ade883e336e1e10eecdf6915cf6327055ac060cc7 *f4a6ba772587ecb6d4abdf835c675f7b1c7834c16edb3fe9fbe334672bc38a092dfedf6bed176f *f5b55d6d36ff37c4948136f8acd43435a18fd6255c3b409ad1a768c835d6fc76c95ace68b3e697 *86d0bc7d2e8bf66db5f90ff5f58b19f453a0a2e91024fb6d4634d1f78d79ff3e33abd669f113e2 *a543af7bd8a1f8f5d4fdbadf5894f0b444c7541bedc7c679b785969469b9abda46097d3f6ecc72 *a16644e5c91a3c9320eda7fa4cba6c384f58c1236574c81a6b7ebb9aefafb3e6e571268720279d *9ddd1c89be73ccfb8f56fb40337b1f782ee6f20ee906dbe819f5de9fa89d20dc368cc3f64ac86f *21ecc804c2dd6cfd882f2eb1e66143ab63348d43e32556ee4150c2b6a0fd4b5e851f48a7e787df *74b5974be858b3e635fd5b2c1467f3e6b7e2edfce648f4b86db10ffbf9dc6571da708a157d03c2 *5b3f057bab5df886627e8f41663cdf9d90d09a38d53ec8e3dfddaf296dff51f2e04f31973f1d17 *2dd76ab7bf0176672f5ad13ffbac7d22ab59870ca7c9da6acd6ff697e4918adece66866a4faff5 *3718234e4a96fbbc3623f5b72493a1d7c0f6aedca0dc286093d34e6354dc16f8584cab5e5bcdaa *d5fd8da3ce32facd988eda6e02c78d0756556e73f0cd2c992f28d13167d33c320fe4d4d452c6bb *d4acf9f5cd65d27b48b6996534e88de86d31a4ee6f88e7de31efbf954cc8300bacd7439e876a7c *7f4fdbda8a8436c5ad483b2ad1161ebda69e03b78eccc7e2886eb6f08d4615ce0bd0cdc907264c *a0a20f5fcca970dd38cadf8db680461ca4e24e396c96c129c0a7363789de9beafeff62de3f51d2 *98ea3a5c9f4bb0c55fec457ecba35b6555941336d3ff9c71ef562115b619cc810bf02626abb92d *b71b5c906cafaf27fc28e0928fc8fe39a7e2f12365728fd62993f32a5c985361898fbd68f09dcd *91e46988fee798f72712765a5f49ded0cbf7fe9052d50ee566a47ed56083b7cf2b45b25a5c7f64 *52c4b297adf97a612718bc9ff2576d0fd69c5361fe049d3471b892db57e12b7915ffb383b665d1 *e191cf304cb3290d14d17f9b70ed5c49dfec23c97f4c786e3d4e6d7fb837d5bddbc0578ff7063e *396427961bcc8133948a886dd6724f3bc17e420ff7e1f627b4527e2a3cb4323c9057f1f33915e6 *77d0f69ae05ac33e1733bfd71a5ab5b911bd37862c045e03a6c45cbf4ad274e062335b9140f269 *c03c202991c28fcc92bda1d1b155ebda5eeba9c6f7cb7e43e5be3a673cbcbf197121dbb6d0c3bb *a49e03d746ebdf522f0ab6f00d49876799f515a12b498c615f8f1dc05b9cd7ec93da6cfe7d4375 *02376af68c00bb0a6c9f841136618f06706b3b6ac98647780f75445f3f41ac2ce934c2bde6b8ad *b6394093a45f030f4676fdbb8469a5a61246bbfd3d611aa9382c8b168254d3b6db4ec53cd4efec *1786bd17afd3774c22cca4b3a9508f5d38bcad5badf9cda134d0d19efe8f46a9785727f67dd0f1 *bd6536118c37acd957d311655bf0df43e9f748a7e773acbdc6b0b31234d395c0cda2e396365bf4 *72d79b7e422cfee62ad131b34725cd047e9d40761f28447f7d453b709a99ad4d4148ebce40d353 *75af5f01876c6c1c7bfbab71a13a864d91a4fe04ccd40b5164d8ec46150e0be0fbc01ebdf4fa28 *a1456354fc4cb5d168b5c624cd1c9b23f7db84ca2f2b0c5dd3cee89fd622efdee660a37791fdfe *48d579afe6a62e9c61660ff7fdabb6be0e5be720d8e82526bd0e2ac55cde2ecbf17f379407bed5 *5a7e5f46fb1a3adf2ac4096c84addb09e60d85764b45ff43fc3b2b935c26b8b68c762f5bf3758e *e47d24baa41d816f00136af8ec7709134efca20fb6b4c28c32eb2567bf23e3aa57856f6c277e57 *029119f2db5466cd9d656bbebe017d1ab8b797a972424e4d83be78f9f02d55b4af6546e73fb759 *cb45b5889edbec882ee913c093c009d426196407f0efc05e66b6b88fb6b41191bd7b4fdd06b1d6 *a2dd17df56ce1dafe216c36112acb3e6e565a6cf24318f9909346730dbd9a8933e0e5c18e34fb8 *b56c0b6f7294ae5ea2ff98ca79d04a91b3c35292fb49e0326017333bdbccdeaaa6c161c5354f16 *7ae58c41ac8f6ed8ddf1ed647c099b5b8fe7d6e38495d9dca0ccf4b9424b129e9c36363ed6df32 *9e6cd5995b03ca2712b3ad19c0f5c39786f1fea980604cdd891e2585acb425761bb0a5996d4d98 *9ae7e3c001c011c0893dfe6612062b4c34b37dcdec4a337ba3ea098e141058b7e24e541f7d70aa *a9966dc13342ff9d20d5bfe26bd619b523b8e46bd697b2bc1f9b0525afe20fc769ce56d592ddb0 *dfc4f7bfa5bcafc5dafceb68ab3ac1a8c5260291b587f90a872544e6c378826aca4048f4bd633e *73599797dcccca66f6a6992d31b3fbcd6c7e8fbfbbcdec6933ab99cde4e1a9eb886a18ed3eb89e *6dc3ae4d1e446f9eafc299fd7d4e4e4dbbfb34dd2bbc9f28cc941bd79ea6363a96fa2a9c5a4d3e *780b2beac4fd9a947dedbd9f30710feddbe2d69d86d94b3cc6dcaae14af480cef7e2c7437ba72d *c954a9cfd2123dee016307bf7bc2232da1836ef0ca269759b04028e97c7e5e70bdafc2cf47e9e4 *edfb3660525ec563722adc037a9a301e218584b02d0537f9343d9257e1a8f4cf2b663c343b7e42 *daffa41c9b841c67de3952b131cd5db22a1c98e5f91e7e1065e3fc070d34ee395c89de4126a15f *2db786d23929c7af31a7c2253e4b2fee2bd1e3d4ec6f48ca0c0ebd37a1fbe04a7433333ace258c *0748201f2775527e31afe28d39159bc669ce561b4b5ca938469ab5b3afa6d37c35ddecd3f49a85 *515c87535dacf67e0677e7547cac51c539d2b1b1f1f15beae4713ec1ad867d36e137fc57cae726 *9833b6b38ffd2aae3a8a54f4732acccca978af077f10b67f8fefbe13af29d8d7d334ac5185c3e8 *436e3849aa77d699e88870d2c1aacb732ac62ec0a374f2f63915fec5277809f836155270f7260a *9f22dc3bdf3897d61c604f4977007f248c6c5bd95bbae61ac870530faa87af0769c5e981922d5a *eaabe9eb423fece517e40cbe0c7cb9443b599a3eccabf07ee44cdac287f1f5397b61fb06704b96 *fc0739151e30ece10c99973ae95ce5a18f193a08829392f2ca47f75990ee799d7742e68a840f1c *fd11fe4b79157e1dc04b91ff652bb0bdb2b03f30be928f57f0a485b5022a5172665ec58bdbacf9 *9a3869e78765b2be212c96b87fa3611251a6d6bc8abbfa34cd2bf3c179405dabee0aef2e23382b *4eb901bb2dafe2b9863d6c046f086f6bc1d6863e1795a7ce242544ee2d04b64dd23554de76d99d *0d13440692824d34dbd033dff5ef72c210d99709ebb7bd60664175840f436686ca91a4b22db821 *afc29e0667a61f5cc65b94d679200ccca8d84241a81010445e8e2e3d49bdf5f96d655bf07cca85 *ef2fbe8abf177658c2c726199ca98d743525b7ff4e83afc4a9ef0657f92a7c5ee826e0390824bc *1dc08ef0c3a8cd6d7b6bbb4f669eaf598b847724a133794072c8197603e1dcf1123eb33fb07fd7 *acb78a3a6e15448ff06f84a5917b73a278151ad940e89187caf9dcdf96d402dc60662ff43e5125 *c30285c921d74bf7a19287b8c4f4afe6783e6bd8697526ec3b03fcd3deccf5f1908ee8f81a641e *234519acb468b596dffb2a3c249891d03733c06674eb7c7db5ecec28e11d35e073c79a9fcbab78 *7d547db7e6e855204615588e266579a23e625be03ce0394937486a4c3789ac07f1a96bac7bdf6c *adb94189967fb25045ac475eb2e51e3aadc4f473e2577d2dad35c9cbe8f0d5d6bcb2afe68cf00a *84598a6a86763ace32546528b64ce8670cd1adb8122b2f025a0685e851b59633086ba8d50b1e61 *e9a7fb258d4dfe60b703ab3bfcb561c80c969959d95ae6197688d06335baeb1bc0ff29d3b87bab *35ff32a92453d99a3fef8585377e0704fd7ceec22cd903abcd27d766f3ef338243855eab9698c0 *e20dfbf7ce6584bf6f459fee845e11f6c5366b3edb529e9434b43a5cb4572e1b98b9f35047199d *02ba3c5d66a04a6de67df09ee813d125ed063c01fc80b02062bd7110e4e725d9e65d7f5d125d30 *e8ceb8189bfdc9122d8779784719fc828468b158bf10cc171c53c6dbb5642ddf31bb35d53d5aad *e5c192b51c5746d3802b855ee923b9ee151c53b20527a6ad8212df0f0b9f2e91ff0c61d5dc1529 *09f69ed0cf0c0e2859cbac0a8bd99f32e40e12dc9cbc98a943f00830a7c4eed3dbac6571a8154c *bf45706d7c5c80d609aef7e153656b9967f6d080a98c66cd9d256bfe36b01fd8c2f484d733862e *1a833e59b2f90b371dd598dda928b7dbddf47e90a54c98ebed25c253503da37c2612eec5ef4098 *237eebdebc3e221f3430e6b3655bf9e486ed993106fc89d048238d91e9d708e4d986b12b5fb7cb *ab5611a5abc73656ac75063bd1faeef336b7dcdf010c8b288ed90d823d853715f08d20720ea95d *b0d2d05b8237052f946879b956c75cc36dbc1376cce31d1aa02946b093d036420d86ad33ec03e1 *2d077ba28186257d2921d5d73e68a0711f0fef10c37613de58c1b88060b947665d40f08c112ced *60abc7a34343bd62b4fe71bb76ca47086f9ac1640fde0b557bbd98a3fdf71fd9a258353fa71376 *1399a3c19b16d0990bfb80a746d1fe409aaaaa1374d2c412ed1535d031943ea845a2cdd13a6572 *07a543841d186013c19b2c6835825542ff03deb365ca8f479a4ec2f25d612e499a0a3c467c0456 *10a9863703f798595bca09b72361228af3090b2b5622ba89fc759df6c1a0949775701889d884e8 *5110c77f26d8e4af10268af8633f248c0fdc087ca912d121f75260ab7673c3e3e0503fa21f4e7c *99a2e7801966d6ef041492b2c0b36c52b6386fa2d18c895b98bdf6a11b220787fea392332e2ee0 *a31d28d482e4a1d3c1da813b3695e8a13bc6a77d07373c0e0e75207aa4b6c7a9ec779b59ad4be7 *562cb6684040e778373c0e0ef591e81381b80a24f5c8025af1dcb2dcb83838d495e849b1c0a53a *3cff6395a4b96a94afddc1c1a132d1938ecaed5387e71fb96983c2b0d60ebc656e781c1c6a830d *bcee9127fc3d2a279628017bd6ca4e97b42761d45d7643b53d6f905f61acda6128e645777018f6 *123df284c72517c8017749daa10624ff04b08098238086ee72247770a89fea0e612ae6384c039e *94f48fd5649891e4493a8530a1c52e95494ee0c30d6e681c1ceaa4ba47645424d50feae5bb2f03 *bf22acb8fa67332bc5913b5a208e258c849b967cdbdc8d666de7b8a17170a823d12372ee44b89d *3629e57dda08d349bd03f4ccf8ba0db02be993492e050eac774a2a070747f46eb2ef05dc4778e2 *6c20f032f0f766b6dc0d8b8343fd6df4d05636fb13f069e0810168c77dc0c18ee40e0e034cf488 *ec2b08abafcca63ee9779603a710165b5ce986c3c1618055f70aaabc4718e0721ae199f26a6b42 *0591fd7f13707bdab3ec0e0e0e0340f48d489f27ccbf7d30b007f049c26caf132b7cfc6f84299e *97024b80c5fda9bfe6e0e03040448f21bf08836a3c603261386dbb93d80e0e2388e80e0e0e4317 *9eeb020707477407070747740707074774070707477407070747740707871ae1ff0370f12c0cf2 *3065d80000000049454e44ae426082 }