diff --git a/osx/.gitignore b/macos/.gitignore similarity index 100% rename from osx/.gitignore rename to macos/.gitignore diff --git a/osx/README.md b/macos/README.md similarity index 100% rename from osx/README.md rename to macos/README.md diff --git a/osx/build/build b/macos/build/build similarity index 75% rename from osx/build/build rename to macos/build/build index e90ecdc..9057ff8 100755 --- a/osx/build/build +++ b/macos/build/build @@ -12,15 +12,20 @@ cd $dir arch=$(uname -m) language=$(osascript -e 'user locale of (get system info)' | sed -e 's/_/-/g') -version="60.9.0esr" -i2pdversion="2.32.1" +version="78.11.0esr" +i2pdversion="2.38.0" ftpmirror="https://ftp.mozilla.org/pub/firefox/releases/${version}" curlfind=$(which curl) if [ -z $curlfind ]; then - echo "'cURL' does not seem to be installed. The script needs it!"; - exit 1; + echo "'cURL' does not seem to be installed. The script needs it!" + exit 1 +fi + +# We support only English (US) and Russian +if [ "$language" != "ru" ]; then + language="en-US" fi echo "This script is preparing Firefox $version for use with I2Pd" @@ -33,14 +38,14 @@ echo "Downloading $application..." tmpfilepath=$(echo $filepath | sed 's/ /%20/g') curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" if [ $? -ne 0 ]; then # Not found error, trying to cut language variable - echo "[TRY 2] I'll try downloading Firefox with shorter language code"; + echo "[TRY 2] I'll try downloading Firefox with shorter language code" language=$(echo $language | cut -c-2) # re-create variable with cutted lang filepath="mac/$language/$file" tmpfilepath=$(echo $filepath | sed 's/ /%20/g') curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" if [ $? -ne 0 ]; then # Not found error, trying to download english version - echo "[TRY 3] I'll try downloading Firefox with the English language code"; + echo "[TRY 3] I'll try downloading Firefox with the English language code" language="en_US" # re-create lang variable filepath="mac/$language/$file" @@ -48,14 +53,14 @@ if [ $? -ne 0 ]; then # Not found error, trying to cut language variable curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" if [ $? -ne 0 ]; then # After that i can say only that user haven't internet connection echo "[Error] Can't download file. Check your internet connectivity." - exit 1; + exit 1 fi fi fi if [ ! -f $file ]; then echo "[Error] Can't find downloaded file. Does it really exist?" - exit 1; + exit 1 fi echo "Downloading checksum file and checking SHA512 checksum" @@ -64,15 +69,17 @@ recv_sum=$(grep "$filepath" SHA512SUMS | cut -c-128) file_sum=$(shasum -a 512 "$file" | cut -c-128) if [ $recv_sum != $file_sum ]; then echo "[Error] File checksum failed!" - exit 1; + exit 1 else echo "Checksum correct." rm SHA512SUMS fi +exit + echo "Attaching image and copying files..." hdiutil attach "$file" -cp -rf /Volumes/Firefox/Firefox.app ../FirefoxESR.app +cp -r /Volumes/Firefox/Firefox.app ../FirefoxESR.app mkdir ../data echo "Detaching image and removing image file..." @@ -85,14 +92,8 @@ rm -r ../FirefoxESR.app/Contents/Library rm -r ../FirefoxESR.app/Contents/MacOS/crashreporter.app rm ../FirefoxESR.app/Contents/MacOS/pingsender rm -r ../FirefoxESR.app/Contents/MacOS/updater.app -rm ../FirefoxESR.app/Contents/Resources/browser/blocklist.xml rm ../FirefoxESR.app/Contents/Resources/browser/crashreporter-override.ini -rm ../FirefoxESR.app/Contents/Resources/browser/features/aushelper@mozilla.org.xpi -rm ../FirefoxESR.app/Contents/Resources/browser/features/firefox@getpocket.com.xpi -rm ../FirefoxESR.app/Contents/Resources/browser/features/followonsearch@mozilla.com.xpi rm ../FirefoxESR.app/Contents/Resources/browser/features/formautofill@mozilla.org.xpi -rm ../FirefoxESR.app/Contents/Resources/browser/features/jaws-esr@mozilla.org.xpi -rm ../FirefoxESR.app/Contents/Resources/browser/features/onboarding@mozilla.org.xpi rm ../FirefoxESR.app/Contents/Resources/browser/features/screenshots@mozilla.org.xpi rm ../FirefoxESR.app/Contents/Resources/precomplete rm ../FirefoxESR.app/Contents/Resources/removed-files @@ -103,15 +104,24 @@ sed -i '' -e "s/ServerURL=.*/ServerURL=-/" "../FirefoxESR.app/Contents/Resources # Done! echo "Downloading language packs..." -curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-ru@firefox.mozilla.org.xpi "https://addons.mozilla.org/firefox/downloads/file/978562/russian_ru_language_pack-60.0buildid20180605171542-an+fx.xpi" -curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-en-US@firefox.mozilla.org.xpi "https://addons.mozilla.org/firefox/downloads/file/978493/english_us_language_pack-60.0buildid20180605171542-an+fx.xpi" +mkdir ../FirefoxESR.app/Contents/Resources/browser/extensions +curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-ru@firefox.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3605589/russian_ru_language_pack-78.0buildid20200708170202-fx.xpi +curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/ru@dictionaries.addons.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/1163927/russian_spellchecking_dictionary-0.4.5.1webext.xpi +curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-en-US@firefox.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3605503/english_us_language_pack-78.0buildid20200708170202-fx.xpi +curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/en-US@dictionaries.addons.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3498005/english_united_states_dictionary-68.0.xpi echo "Downloading NoScript extension..." -curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi "https://addons.mozilla.org/firefox/downloads/file/3383315/noscript_security_suite-11.0.3-an+fx.xpi" +curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi https://addons.mozilla.org/firefox/downloads/file/3625174/noscript_security_suite-11.0.38-an+fx.xpi echo "Adding standard configs..." -cp profile/* ../data/ cp -r preferences/* ../FirefoxESR.app/Contents/Resources/ +cp -r profile/* ../data/ + +if [ "$language" = "ru" ]; then + cp -r profile-ru/* ../data/ +else + cp -r profile-en/* ../data/ +fi echo '#!/bin/sh' > "../i2pdbrowser-portable" echo 'dir=${0%/*}' >> "../i2pdbrowser-portable" diff --git a/macos/build/i2pd/addressbook/addresses.csv b/macos/build/i2pd/addressbook/addresses.csv new file mode 100644 index 0000000..9a5ec98 --- /dev/null +++ b/macos/build/i2pd/addressbook/addresses.csv @@ -0,0 +1,364 @@ +0pl.i2p,gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua +102chan-memorial.i2p,t6uwxydnfd7mo2knxklmnrudxafe4mw5ojiqikj7xfrc4ynltz3q +102chan.i2p,xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq +2ch.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq +333.i2p,ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza +aaa.i2p,zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa +abdlandrubbernetwork.i2p,asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca +acetone.i2p,tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a +agoradesk.i2p,ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta +albatcats.i2p,ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga +anek.i2p,iprnd5ceoj3sovmhoigwammwi7zuklrqwzfzrhvhjppspfxepvpa +animal.i2p,5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla +anongw.i2p,owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq +anonroms.i2p,w2sgx2i5n4uxtqjgekckxnhhpymigpn5lmgdaujyzib6sxq7j4cq +anonyradio.i2p,cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq +apt.idk.i2p,s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia +archaicbinarybbs.i2p,t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa +archiv.tutorials.i2p,lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq +archlinux.i2p,5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa +ardor-wallet.i2p,tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq +bandura-yacy.i2p,e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq +bandura.i2p,n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a +bbs.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua +bible4u.i2p,xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq +black.i2p,sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq +boerse.i2p,7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq +bofh.i2p,auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a +boran.i2p,boranyzcefxqw2ktndemy3npt4zhetpp6edldtlym2ap7n5azt5a +bote.i2p,bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a +boxs.i2p,owm3fy2t5vwbxowk5gsshihkwjfknqq7y4ylbeyhvzta7r3ybrpq +brain.i2p,wbmkweyyedl5dp74hfyo2iot6y7oq5yzbe6hbscdszyi5dci2dka +braindead.i2p,braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq +bunkerirc.i2p,mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq +ca.i2pd.i2p,u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba +cake.i2p,hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq +cathugger.i2p,vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba +cbs.i2p,u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq +chudo.i2p,iaublzhzc4ssa3rcrjbdigautm66mslt6g2sninugagiarl4at3q +ci.idk.i2p,antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq +cloaca.i2p,j462o64zr34ws6shsmpkwftbwrabtdo3u4yv3dfsrshkshwvcxtq +closedshop.i2p,6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq +co.i2p,3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q +cobalt.idk.i2p,m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q +coldhell.i2p,z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja +community.i2p,64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa +costeira.i2p,abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa +cs.i2p,kzaeunogz6s75ptgy6ifjzwwy75xdfenenswvrczd7mewxgrad5a +darkrealm.i2p,gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq +dashninja.i2p,dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma +dcherukhin.i2p,qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a +dead.i2p,7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq +deavmi.i2p,t4cvvenniup6dcdlu2ehdycos5r3luccfemwd6hhvyqv5zd6obgq +deepwebradio.i2p,2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la +def2.i2p,cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da +def3.i2p,xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la +def4.i2p,yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq +det.i2p,y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q +diasporg.i2p,edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua +diffyq.i2p,hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq +digcitlab.i2p,gijabxlt4ox2mblh2nfxnds6u4mlsdeoonizknbdksl7klmbpvoq +diva.i2p,auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka +dlms.i2p,krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq +dns.chudo.i2p,zzfmtnnmacop3xvpznc4c2jfvk226wpep2gaoanja3gfzf3ih7xq +dosje.i2p,ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q +dreadpiratessociety.i2p,fbdd4syj2v52x5zord67av2xclmjsg6bc6xdvrqmvqkyd3whij6q +dropbox.i2p,omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq +e8.i2p,5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a +easygpg2.i2p,bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora +ebooks.i2p,bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq +echo.idk.i2p,63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq +eddysblog.i2p,ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq +es.hiddenanswers.i2p,cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa +fa.i2p,6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka +false.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha +fantasy-worlds.i2p,62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq +fido.r4sas.i2p,i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q +flibs.i2p,ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a +flibusta.i2p,zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq +forum.idk.i2p,bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da +forum.rus.i2p,zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga +freefallheavens.i2p,7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka +freenet-inproxy.bandura.i2p,rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a +freifunkmobi.bandura.i2p,5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea +fresh.i2p,jii6utg6ubwxgls6jegu24ifrroo4qzbcizjfft2bemodp4k2i6a +fs.i2p,ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q +fsb.i2p,2jefiqburn5hu3su3dlg65xj32iuteqgz5bfpc5j57qbmkph7lya +fskn.i2p,nx2uzyxx7424cwj6vmrekjka4hplvyq53oljkzqbkiuzghmi2ayq +fsoc.i2p,vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q +fuka.i2p,e3aanmaobvwopjrmrnuqvrkr36gyubrv6f2lyygh5brku3ufwrsa +fxruby.i2p,lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq +gandc.i2p,m6zwig36wxbbhat5fxh5vzqo2uvq2vwl4q7kxc2f2w6wtzvzesoa +gedanken.i2p,kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a +ginnegappen.i2p,kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja +git.idk.i2p,7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a +git.qorg11.i2p,jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq +git.repo.i2p,vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq +git.volatile.i2p,gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq +gitssh.idk.i2p,g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka +gopher.anonroms.i2p,wqfhyrnpknap3ushsck3ih3r7inz6uoqlr3u3ktwvejur3bejqha +gostcoin.i2p,4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq +gusion.i2p,4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta +h0p3.i2p,k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq +h13.i2p,tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq +hagen.i2p,e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q +halifa.i2p,fpo5fq4kqulfxhb6odg25jskezvucbx4wlwzg6ngqsxhrzvmxtwa +heaven.i2p,y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq +heligoland.i2p,gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq +hgit.i2p,ny4ev7me2y2ibfi37mykakwvf2jhnl7lfql4etaiykjiwtd735pa +hiddenanswers.i2p,kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq +hiddenbooru.i2p,zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q +hiddenchan.i2p,6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa +hisdarkmaterials.i2p,qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq +homosexualchan.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq +horo.i2p,vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq +hotline.i2p,6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq +hp-net.bandura.i2p,z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq +hq.postman.i2p,7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra +http-false.telegram.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha +i2p-mirror.bandura.i2p,aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q +i2p-projekt.i2p,udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna +i2pd.i2p,4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa +i2pdocs.str4d.i2p,yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq +i2peek-a-boo.i2p,qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa +i2pforum.i2p,tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda +i2pjump.i2p,2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka +i2pmetrics.i2p,v65p4czypwxrn35zlrfkar2w77vr42acd7gbszegsrqq4u7sip5a +i2pnews.i2p,tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq +i2podisy.i2p,3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq +i2pseed.bandura.i2p,2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia +i2psurvey.i2p,pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia +i2pwiki.bandura.i2p,isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q +i2pyacy.bandura.i2p,owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq +i2speed.i2p,532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga +identiguy.i2p,3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva +idk.i2p,b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq +ilcosmista.i2p,6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q +ilita.i2p,isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba +in.i2p,r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq +infiniteszimaliumsztarzsdeeploopzsplungedigraverepeatplungeei.i2p,lii5rejifs32fdoevdexodeqfvz3xenlyiyonwqdifseptls2wra +infirium.i2p,4iovxkkupux5nnl3cnsdhpqzpjg3jmqatdmogpuu637gxdybjqhq +infoserver.i2p,jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q +inr.i2p,joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq +instantexchange.i2p,5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq +ioannism.i2p,g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa +irc.acetone.i2p,qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq +irc.coldhell.i2p,d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq +irc.echelon.i2p,ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq +irc.ilita.i2p,5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a +irc.kitsune.i2p,cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q +irc.postman.i2p,hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq +irc.r4sas.i2p,hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la +irc.rpi.i2p,ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q +isitup.i2p,xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq +isotoxin.i2p,wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq +ivorytower.i2p,fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq +javascript.i2p,idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva +jikx.i2p,aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq +k1773r.i2p,zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq +kallist.i2p,rpoqwcozn4pdxz7bp2vxsl7vfibpbccsymfuxg3c7v7yj3um4bta +kelvinchan.i2p,6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma +kenguru.i2p,u44uhokgilvmnfsg5hgwx5nddb2mw2b7dp6qz2rnhrr344ebotea +keys.dlms.i2p,znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq +keys.echelon.i2p,mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva +kibykarni.i2p,xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a +kill-9.i2p,3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q +kislitsa.i2p,khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq +kkk.i2p,kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva +knijka.i2p,knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa +kurator.i2p,sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q +kycklingar.i2p,gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva +lbt.i2p,5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq +legalloli.i2p,clxah7lssffdubl3iklopl5bkxewmmbi5zlerw7ryuxawo2dqx2q +legwork.i2p,cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a +li.i2p,jwzmbp5djo5t4mkbchhejq5mrx2yye7tkbwry22scihwy5s4hcba +linuxfarm.i2p,br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q +linuxmario.i2p,byo4esnp3p7imsmsn6j5syfhykt53zoh5ko66nodgdwp4427fqwa +lm.i2p,yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q +lodikon.i2p,u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a +lolicatgirls.i2p,pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra +longseason.i2p,ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da +losinka.i2p,r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq +lyoko.i2p,afuuortfaqejkesne272krqvmafn65mhls6nvcwv3t7l2ic2p4kq +man.i2p,progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q +marenostrum.i2p,tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq +masterdestroyer.i2p,yp2g7frk3ze5ljaxbmhmh6hhda3rmpwmpianozi6or2uzqzdur7q +mastodon.chudo.i2p,bba3rhijp3btiinfeixrk2jzz5rilnxxrxvjjx5os23ro4n6g4cq +mattermost.i2p,x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya +mayvaneday.i2p,zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa +mdleom.i2p,ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa +metavertex2.i2p,4k6h5tsysycyaefvrh7maltvincdx6ugj4t2a37zzyzm4wf4g4dq +metrics.i2p,z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq +mhatta.i2p,o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq +mk16de.bandura.i2p,rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq +moneroauth.i2p,kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa +monerujo.i2p,puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq +mooks.i2p,6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq +mosfet.i2p,s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q +mtn.i2p-projekt.i2p,f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa +mtproxy.ilita.i2p,vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q +mucats.i2p,4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha +mumble.acetone.i2p,plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa +muwire.i2p,c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa +nbtm.i2p,46iitklpnxzl7eeqweq5xq7nc3vcl2ll7wudpa4jcyyeahvfrgta +nekochan.i2p,dszr2z2swmeczeao2bqgop6fyh34jw5baeiybsavwtihllwa5qwq +neodome.i2p,5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq +neoniet.i2p,jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq +news-i2pn.i2p,wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca +news.neodome.i2p,trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq +nicksphere.i2p,nickg4tsj3wy3i23faxp5momjcnlwrvwl5ek5l7lkm5vrbblvgbq +nitter.i2p,axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q +normal.i2p,j5fex634r2altzb3kjvu35qekt2r3hgsqzg5qxoy7dp53heu5pma +notbob.i2p,nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a +novabbs.i2p,bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola +nsa.i2p,nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga +nvspc.i2p,anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra +obmen.i2p,vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa +ol.i2p,bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq +onelon.i2p,irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha +opal.i2p,li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa +opentracker.dg2.i2p,w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa +outproxy-tor.meeh.i2p,77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq +outproxy.bandura.i2p,smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q +p4bl0.i2p,lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga +packages.i2p,2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja +password.i2p,knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa +paste.idk.i2p,qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva +paste.r4sas.i2p,csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa +pehotin.i2p,e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa +pharos.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa +pharoz.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa +pirate.black.i2p,z67mwyo7o3tb42r3tjcckcx6gyh4tmnlh6sbmf2hz6qtn3lri2ta +pizdabol.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa +planet.i2p,pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq +play.infirium.i2p,3pesucgkmky2unpxceuec7jopajyz44pvb2sgwyqz6x43bfovnda +podger.i2p,56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya +polistern.i2p,ztqi2zewgtifrg4efs6eyxxi5www27ymley3aiz4obhulbnszlva +pomoyka.i2p,omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q +pool.gostcoin.i2p,m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa +pop.postman.i2p,i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq +pravtor.i2p,2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq +privatebin.i2p,e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a +privetalena.i2p,alenabivbkqo2xoikterpsc3gquqzacxfef6usbifrez5ioegjjq +project-future.i2p,ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta +proof-of-loss.i2p,ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a +psv.i2p,pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a +psy.i2p,s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q +psyco.i2p,eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q +pt.hiddenanswers.i2p,o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a +pt.i2p,umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna +pubsub.i2p,kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa +pull.git.repo.i2p,3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q +purokishi.i2p,ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca +push.git.repo.i2p,jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a +pwcq.i2p,hcwrhp454aj2jen6clgkw5odw7pvtixhf5dnqsx5ax4vkbxybk7q +qis.i2p,sxfs4mmqxe4kj6yovbi54czfhhkpzxtj7mbwxjsvazgfulhq4gka +qorg11.i2p,ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q +query.i2p,qzdh2potcfrqcwl2oejkidsyggaspvi63gfggmlz2xrhjkrnazda +quest.idk.i2p,k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa +r4sas.i2p,2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq +radio.r4sas.i2p,cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla +ramble.i2p,smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq +ransack.i2p,mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq +realsite.i2p,ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta +rebel.i2p,nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq +reg.i2p,shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa +reg.rus.i2p,k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa +reichsmarket.i2p,2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq +repo.i2p,uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa +repo.r4sas.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq +retrobbs.i2p,mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq +retrobbs2.i2p,ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q +rfocke.i2p,pphesm2icsbqi7uzsmxpgyy4kc22b3cdpb4uwplkkjmupexva7dq +ricycal.i2p,tfkz7rgqh6rwvlo2veftw4why2dej3gztiglzfqfvykyzak2syxa +rideronthestorm.i2p,xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq +rpi.i2p,56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq +rslight.i2p,bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq +rsync.anonroms.i2p,4q6llvjjpgncu6wbol2rqq24ksrtscu5njj65jjovqlsxounxbdq +ru.hiddenanswers.i2p,o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva +ru.i2p,m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja +rufurus.i2p,7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca +rus.i2p,gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga +rvklein.i2p,pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq +scamdemia.i2p,fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq +sdmr.i2p,o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q +secure.thetinhat.i2p,4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala +serien.i2p,3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda +sftp.anonroms.i2p,uozfd7ttkhjsofmgs7lfcy4pgngs4yp7kvnbhnppebjumgbjhjla +sharefile.i2p,o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta +shoieq3.i2p,3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q +skank.i2p,qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q +smtp.postman.i2p,3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q +solr.chudo.i2p,utl2ds5vztfomjgerohvxrgaq3g6zrspyku4s35knfmu4rihhgxq +spoika.i2p,u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq +spooks.i2p,lrlrsud2latpctgwmvfwn5hanv6m7rold4vk6n6w2p43danmvgsa +sportloto.i2p,sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq +spyware.i2p,36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq +ss.i2p,7gg7xiiwjmigrijsmkpsyzl6n4pd7hqiioovdr6vsip2xsdxpsaq +stats.i2p,kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq +status.str4d.i2p,ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q +sto-man.i2p,rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa +str4d.i2p,wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa +streams.darkrealm.i2p,ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq +svong.i2p,wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a +switching.software.i2p,4ntxofeih4fopdgl3hxn7xu3xkhrbtadnshvcc2ikrggi2qar4ba +syndie-project.i2p,xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq +syndie.echelon.i2p,vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta +tabak.i2p,y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia +tahoeserve.i2p,yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa +telegram.i2p,i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja +testmk16de.bandura.i2p,gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra +textboard.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua +texterochtankar.i2p,woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq +theyosh.i2p,5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita +thornworld.i2p,vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva +tmpsend.i2p,r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq +torrents.chudo.i2p,5ooemze55xiicrlvzjmz3il23dpo4fz5iqr7hmzrygdepan5m3lq +tosios.idk.i2p,4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a +trac.i2p2.i2p,i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa +tracker.chudo.i2p,swhb5i7wcjcohmus3gbt3w6du6pmvl3isdvxvepuhdxxkfbzao6q +tracker2.postman.i2p,6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea +traditio.i2p,wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq +triplechan.i2p,blrplscno3ecqb5ihhg73kufmypydjlv4r4gqiajftup5wmcdwna +tube.i2p,vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq +tumbach.i2p,u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq +tutorials.i2p,zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja +tv.i2p,znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q +unodice.i2p,fukkqcornjsfn2ggd2h4cgeitu4dbin7hymp5xf6zypwzif2pcoq +volatile.i2p,q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a +w.i2p,j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq +walker.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa +wallet.gostcoin.i2p,reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda +web.telegram.i2p,re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a +webcam.i2p,fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a +webhosting.i2p,hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq +weedforums.i2p,weedlt72zyludsl6adm5asdcalufihyzoruh6ca2klstbicj5iua +wiki.i2p-projekt.i2p,b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa +wiki.ilita.i2p,r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a +wlm.i2p,nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa +wopen.i2p,xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza +www.imule.i2p,657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq +www.infoserver.i2p,fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq +xeha.i2p,oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq +xmpp.chudo.i2p,gppd6rx5jkutmt637odkbxh4tjqxy63i4amyhllqn424yt7pd2hq +xmpp.rpi.i2p,3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca +xmrnode.i2p,moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq +xn--80aaid2dua.i2p,dvem3jrqrymufihxnagr32q3aezgstmzcfbfp2wj7evo3ch5inta +xn--hallchen-q4a.i2p,h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq +xn--i2p-5cdawgbask1ay4cjf2a9o.i2p,gar7ipdnhfy2mtbefo5dvoapzuupyphfriutu5nsnjruganiuknq +xn--n3h.i2p,6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq +xotc.i2p,gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq +yacy.idk.i2p,7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq +yat.i2p,zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq +yggdrasil.acetone.i2p,tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq +yiffme.i2p,sm6dk2ovxhgdjuu3rmqussc4e2xkfz6rmhng6i2t7parcb4v4y3a +yoitsu.i2p,yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa +yt2mp3.i2p,7ai77u54gxta2ry326amfq4ugiqgcxd4r663nmxtswcwezyxsbzq +zab.i2p,n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq +zerobin.i2p,3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq +zeronet.i2p,fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna +zhaoku.i2p,2hq32svuc6wxgumgsyavy4osfssiaqjpdgynpvtyblin5l5urr4q +znc.str4d.i2p,ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq +zog.i2p,7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a +zx.i2p,4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq +zzz.i2p,lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua diff --git a/osx/build/i2pd/certificates/family/gostcoin.crt b/macos/build/i2pd/certificates/family/gostcoin.crt similarity index 100% rename from osx/build/i2pd/certificates/family/gostcoin.crt rename to macos/build/i2pd/certificates/family/gostcoin.crt diff --git a/osx/build/i2pd/certificates/family/i2p-dev.crt b/macos/build/i2pd/certificates/family/i2p-dev.crt similarity index 100% rename from osx/build/i2pd/certificates/family/i2p-dev.crt rename to macos/build/i2pd/certificates/family/i2p-dev.crt diff --git a/osx/build/i2pd/certificates/family/i2pd-dev.crt b/macos/build/i2pd/certificates/family/i2pd-dev.crt similarity index 100% rename from osx/build/i2pd/certificates/family/i2pd-dev.crt rename to macos/build/i2pd/certificates/family/i2pd-dev.crt diff --git a/osx/build/i2pd/certificates/family/mca2-i2p.crt b/macos/build/i2pd/certificates/family/mca2-i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/family/mca2-i2p.crt rename to macos/build/i2pd/certificates/family/mca2-i2p.crt diff --git a/osx/build/i2pd/certificates/family/volatile.crt b/macos/build/i2pd/certificates/family/volatile.crt similarity index 100% rename from osx/build/i2pd/certificates/family/volatile.crt rename to macos/build/i2pd/certificates/family/volatile.crt diff --git a/macos/build/i2pd/certificates/reseed/acetone_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/acetone_at_mail.i2p.crt new file mode 100644 index 0000000..13f9f17 --- /dev/null +++ b/macos/build/i2pd/certificates/reseed/acetone_at_mail.i2p.crt @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFfzCCA2egAwIBAgIEctG1gDANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJY +WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnlt +b3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEZMBcGA1UEAwwQYWNldG9uZUBtYWls +LmkycDAeFw0yMTAxMjUxMDMyMjBaFw0zMTAxMjMxMDMyMjBaMHAxCzAJBgNVBAYT +AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u +eW1vdXMgTmV0d29yazEMMAoGA1UECwwDSTJQMRkwFwYDVQQDDBBhY2V0b25lQG1h +aWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwqF/BRRmvZ54 +5XArgxbytDi7m7MDjFE/whUADruHj/9jXGCxE8DDiiKTt3yhfakV0SNo5xk7AMD+ +wqiSNC5JCHTm18gd2M4cQLIaOVRqucLLge4XVgk2WPX6OT98wfxh7mqA3wlSdEpj +dY3Txtkf7VfZLicG76/RBtLFW3aBdsn63hZaQqZE4x/5MJyPVZx59+lys5RmMi0o +LpXJy4HOu1/Gl1iKDJoI/ARFG3y7uP/B+ZtZBitJetTs0HcqycnNJq0tVZf2HiGF +JNy67AL4foxNYPXP6QsvXvp6LRpGANaBCkFCBlriSF+x1zO2H3uAkRnuLYXuKIfB +HudejTp4R57VgZGiHYoawHaF17FVAApue9G8O82XYECjhET35B9yFoOBHTvaMxLU +CKrmayH8KMQon95mfe1qpoO3/YDa8DCxkjAfjdtytat7nt2pGZMH6/cLJxcFiofh +RtRVvb+omv/X12j/6iCFrwP4NvBnAZsa736igbjpyee5n+CSyYxd9cJkRX1vQVk7 +WFSqL58Pz+g6CKJmdMPvqNOfUQ6mieBeejmx35B4pLzLcoNxw8R3O1+I2l4dg042 +dEydKRQNwdzOec4jYwnKR40iwIyZxpchXWGRbBdyF5RQCbIIo60QBJlfXMJ2svan +q5lYIeWeY3mlODXu4KH4K09y10KT8FsCAwEAAaMhMB8wHQYDVR0OBBYEFMh+DoIL +APNiu2o+6I9A49joNYQuMA0GCSqGSIb3DQEBDQUAA4ICAQBFeOJi0rmkqN5/E3IB +nE2x4mUeLI82tUcN2D3Yu8J81vy4DnH+oMRQFDtYEHW5pfirRmgSZ7MQwYQnqWLp +iTE7SyCxlqGrmVsYp7PzfS1pUT2QeWPtsNYUDdraG0Zr9BkIGB60VMhjMSa9WUrj +lbchzr6E/j/EsEOE7IK08JxIDKCDZM2LLwis4tAM6tmiylkMf2RlUBIRBs1TCO+q +x3yByttNE2P4nQyQVQpjc1qsaOMvJvbxun37dwo+oTQy+hwkA86BWTDRYdN3xwOk +OfAOtlX6zM/wCKMN0ZRnjZoh59ZCn4JXokt3IjZ4n8qJOuJFRKeKGmGeKA8uaGW8 +ih5tdB99Gu5Z8LOT1FxAJKwQBn5My0JijPoMit4B0WKNC8hy2zc2YvNfflu1ZRj5 +wF4E5ktbtT/LWFSoRPas/GFS8wSXk/kbSB0ArDcRRszb3JHqbALmSQxngz3rfwb3 +SHwQIIg956gjMDueEX5CrGrMqigiK53b9fqtpghUrHDsqtEXqeImpAY65PX1asqo +metDNuETHF7XrAjP7TGJfnrYQyeK90iS7j1G68ScBGkKY2nsTnFoXkSk5s5D338E +SUzPaOlh91spmkVY6gQTVQ7BakADBHw+zBgDA1gBN/4JPvgN36hquj63+aG1cKy3 +3ZUnv2ipo2fpr69NtuBnutK6gw== +-----END CERTIFICATE----- diff --git a/osx/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt rename to macos/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt diff --git a/osx/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt rename to macos/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt diff --git a/osx/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt b/macos/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt rename to macos/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt diff --git a/osx/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt rename to macos/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt diff --git a/osx/build/i2pd/certificates/reseed/igor_at_novg.net.crt b/macos/build/i2pd/certificates/reseed/igor_at_novg.net.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/igor_at_novg.net.crt rename to macos/build/i2pd/certificates/reseed/igor_at_novg.net.crt diff --git a/osx/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt rename to macos/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt diff --git a/osx/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt b/macos/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt rename to macos/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt diff --git a/macos/build/i2pd/certificates/reseed/reseed_at_diva.exchange.crt b/macos/build/i2pd/certificates/reseed/reseed_at_diva.exchange.crt new file mode 100644 index 0000000..04b1524 --- /dev/null +++ b/macos/build/i2pd/certificates/reseed/reseed_at_diva.exchange.crt @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIIF0zCCA7ugAwIBAgIQWjHyC+NRh3emuuAwcEnKSjANBgkqhkiG9w0BAQsFADB0 +MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4wHAYDVQQK +ExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEdMBsGA1UEAwwU +cmVzZWVkQGRpdmEuZXhjaGFuZ2UwHhcNMjAwNjA5MDUzNjQ1WhcNMzAwNjA5MDUz +NjQ1WjB0MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4w +HAYDVQQKExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEdMBsG +A1UEAwwUcmVzZWVkQGRpdmEuZXhjaGFuZ2UwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQC6BJGeMEgoXk9dlzKVfmwHrT2VpwTT+wRJvh3eAM746u4uDT2y +NPHXhdGcQ9dRRZ63T98IshWCwOmWSlm1kdWkmKkVVb93GUoMQ3gziCi0apLJMAau +gEu/sPCbORS2dPsQeAPW2eIsJO7dSjTRiQAuquW//NcIXG4gnxDA52lgke1BvpKr +83SJlCrqECAy6OKtZ49yn75CqmPPWFn0b/E8bxruN5ffeipTTospvdEtT41gXUqk +hOz3k8ang+QTWiP//jOjk31KXZ2dbh0LOlNJOvRxCqQmBZafNxxCR4DH8RewfPlL +qOiOJVzbLSP9RjqPLwnny5BOjbLWXcaybN5Qv2Pyd4mKtN3EpqBwRu7VnzXpsuuG +gRbxNmfKJ/vBEGrZAHAxi0NkHHEEne3B7pPDc2dVZHOfTfCu31m9uDHZ4eHEsNOJ +SJRiGjq74l0chCSlBGLrD1Y9LPyqadjdwuB9bzM0tMFC1wPflanQCflhhnEzAfbN +BaU2GRXo/I1UCDW/dH1FIkqEe61eMW1Lwqr5tdlrUpdr5VIddTyNJRBJogbZ+HZE +8mcoJW2lXRAkYi7KEm4b4EQNe7sbRNTF0j+fAJ+3ZOZ3O3SMHss6ignlSa+giVim +VvL+Joc6wpSzxpeNPf6m82cEO/UvifFYeOC9TpiRriSt+vvgQVzQtfQ+fQIDAQAB +o2EwXzAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUF +BwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHJlc2VlZEBkaXZhLmV4Y2hh +bmdlMA0GCSqGSIb3DQEBCwUAA4ICAQCFGOb1dHlwjmgFHEER6oMiGWl1mI3Hb7GX +NNI6QUhZQ+iEWGYtsOTk3Q8xejL8t6AG/ZLXfZviLIJXZc5XZfPXk0ezDSC2cYxQ +ZAyYPw2dRP14brI86sCSqNAFIax/U5SM3zXhCbBiTfaEoBPfDpvKjx+VliaITUnc +sHTRn+C5ID5M8cZIqUSGECPEMU/bDtuRNJLTKYaJ98yXtYuS2CWsMEM4o0GGcnYQ +5HOZT/lbbwfq1Ks7IyJpeIpRaS5qckGcfgkxFY4eGujDuaFeWC+HCIh9RzBJrqZR +73Aly4Pyu7Jjg8xCCf9MswDjtqAjEHgWCmRLWL7p3H6cPipFKNMY6yomYZl5urE7 +q6DUAZFKwPqlZpyeaY4/SVvaHTxuPp7484s3db4kPhdmuQS/DOB/7d+cn/S580Vy +ALqlFQjtjLEaT16upceAV0gYktDInE6Rtym/OsqilrtYks/Sc0GROSz8lJhDDWbr +W3t92muSXDh0rYrEUYWl+xl1gSTpbIP75zzU+cUr1E/qlRY9qZn66FsJpOuN0I0q +UXsQS/bPDcA+IW48Hd9LfO9gtTWZslwFTimjEvQ2nJAnUlUQP6OfuPUKHoYX/CwY +2LCN8+pv2bKPDVHvp0lf6xrbbZNvFtzfR0G3AprZjYpuu2XgjVB5nJnwmbH74b9w +LD8d2z2Lgg== +-----END CERTIFICATE----- diff --git a/osx/build/i2pd/certificates/router/orignal_at_mail.i2p.crt b/macos/build/i2pd/certificates/router/orignal_at_mail.i2p.crt similarity index 100% rename from osx/build/i2pd/certificates/router/orignal_at_mail.i2p.crt rename to macos/build/i2pd/certificates/router/orignal_at_mail.i2p.crt diff --git a/osx/build/i2pd/i2pd b/macos/build/i2pd/i2pd similarity index 100% rename from osx/build/i2pd/i2pd rename to macos/build/i2pd/i2pd diff --git a/osx/build/i2pd/i2pd.conf b/macos/build/i2pd/i2pd.conf similarity index 74% rename from osx/build/i2pd/i2pd.conf rename to macos/build/i2pd/i2pd.conf index 7eeeb04..3ad455a 100644 --- a/osx/build/i2pd/i2pd.conf +++ b/macos/build/i2pd/i2pd.conf @@ -20,9 +20,6 @@ name = I2Pd [reseed] verify = true -[addressbook] -subscriptions = http://inr.i2p/export/alive-hosts.txt,http://identiguy.i2p/hosts.txt,http://stats.i2p/cgi-bin/newhosts.txt,http://i2p-projekt.i2p/hosts.txt - [http] enabled = true address = 127.0.0.1 @@ -45,5 +42,4 @@ port = 7656 [ntcp2] enabled = true -published = true -#port = +#published = true diff --git a/osx/build/i2pd/tunnels.conf b/macos/build/i2pd/tunnels.conf similarity index 55% rename from osx/build/i2pd/tunnels.conf rename to macos/build/i2pd/tunnels.conf index 756f861..bc085d4 100644 --- a/osx/build/i2pd/tunnels.conf +++ b/macos/build/i2pd/tunnels.conf @@ -1,11 +1,3 @@ -#[IRC] -#type = client -#address = 127.0.0.1 -#port = 6668 -#destination = irc.postman.i2p -#destinationport = 6667 -#keys = irc-keys.dat - #[SMTP] #type = client #address = 127.0.0.1 @@ -22,12 +14,4 @@ #destinationport = 110 #keys = pop3-keys.dat -#[MTN] -#type = client -#address = 127.0.0.1 -#port = 8998 -#destination = mtn.i2p-projekt.i2p -#destinationport = 4691 -#keys = mtn-keys.dat - # see more examples in /usr/share/doc/i2pd/configuration.md.gz diff --git a/osx/build/i2pd/tunnels.d/IRC-Ilita.conf b/macos/build/i2pd/tunnels.d/IRC-Ilita.conf similarity index 100% rename from osx/build/i2pd/tunnels.d/IRC-Ilita.conf rename to macos/build/i2pd/tunnels.d/IRC-Ilita.conf diff --git a/osx/build/i2pd/tunnels.d/IRC-Irc2P.conf b/macos/build/i2pd/tunnels.d/IRC-Irc2P.conf similarity index 100% rename from osx/build/i2pd/tunnels.d/IRC-Irc2P.conf rename to macos/build/i2pd/tunnels.d/IRC-Irc2P.conf diff --git a/osx/build/i2pd/tunnels.d/README b/macos/build/i2pd/tunnels.d/README similarity index 100% rename from osx/build/i2pd/tunnels.d/README rename to macos/build/i2pd/tunnels.d/README diff --git a/osx/build/preferences/browser/defaults/profile/bookmarks.html b/macos/build/preferences/browser/defaults/profile/bookmarks.html similarity index 100% rename from osx/build/preferences/browser/defaults/profile/bookmarks.html rename to macos/build/preferences/browser/defaults/profile/bookmarks.html diff --git a/osx/build/preferences/browser/override.ini b/macos/build/preferences/browser/override.ini similarity index 100% rename from osx/build/preferences/browser/override.ini rename to macos/build/preferences/browser/override.ini diff --git a/osx/build/preferences/defaults/pref/autoconfig.js b/macos/build/preferences/defaults/pref/autoconfig.js similarity index 100% rename from osx/build/preferences/defaults/pref/autoconfig.js rename to macos/build/preferences/defaults/pref/autoconfig.js diff --git a/macos/build/preferences/distribution/policies.json b/macos/build/preferences/distribution/policies.json new file mode 100644 index 0000000..5748d21 --- /dev/null +++ b/macos/build/preferences/distribution/policies.json @@ -0,0 +1,96 @@ +{ + "policies": { + "AppUpdateURL": "http://127.0.0.1/", + "CaptivePortal": false, + "Certificates": { + "ImportEnterpriseRoots": false + }, + "DNSOverHTTPS": { + "Enabled": false, + "Locked": true + }, + "DisableAppUpdate": true, + "DisableFeedbackCommands": true, + "DisableFirefoxAccounts": true, + "DisableFirefoxScreenshots": true, + "DisableFirefoxStudies": true, + "DisablePasswordReveal": true, + "DisablePocket": true, + "DisableProfileImport": true, + "DisableProfileRefresh": true, + "DisableSafeMode": true, + "DisableSetDesktopBackground": true, + "DisableSystemAddonUpdate": true, + "DisableTelemetry": true, + "DontCheckDefaultBrowser": true, + "ExtensionUpdate": false, + "Extensions": { + "Locked": [ + "73a6fe31-595d-460b-a920-fcc0f8843232" + ] + }, + "FirefoxHome": { + "Highlights": false, + "Pocket": false, + "Search": true, + "Snippets": false, + "TopSites": true + }, + "FlashPlugin": { + "Default": false + }, + "NetworkPrediction": false, + "NoDefaultBookmarks": true, + "OfferToSaveLoginsDefault": false, + "OverrideFirstRunPage": "http://i2pd.i2p/", + "OverridePostUpdatePage": "", + "Permissions": { + "Camera": { + "BlockNewRequests": true + }, + "Location": { + "BlockNewRequests": true + }, + "Microphone": { + "BlockNewRequests": true + } + }, + "PopupBlocking": { + "Default": true + }, + "Preferences": { + "browser.cache.disk.enable": true, + "browser.fixup.dns_first_for_single_words": false, + "browser.search.update": false, + "browser.tabs.warnOnClose": false, + "browser.urlbar.suggest.bookmark": true, + "browser.urlbar.suggest.history": true, + "browser.urlbar.suggest.openpage": true, + "datareporting.policy.dataSubmissionPolicyBypassNotification": true, + "dom.disable_window_flip": true, + "dom.disable_window_move_resize": true, + "dom.event.contextmenu.enabled": false, + "network.IDN_show_punycode": false, + "network.dns.disableIPv6": true, + "places.history.enabled": true, + "privacy.file_unique_origin": true + }, + "PromptForDownloadLocation": true, + "Proxy": { + "AutoLogin": true, + "FTPProxy": "127.0.0.1:4444", + "HTTPProxy": "127.0.0.1:4444", + "Mode": "manual", + "SOCKSVersion": 5, + "SSLProxy": "127.0.0.1:4444", + "UseHTTPProxyForAllProtocols": false, + "UseProxyForDNS": true + }, + "SearchBar": "unified", + "SearchSuggestEnabled": false, + "SupportMenu": { + "Title": "Ilita IRC", + "URL": "http://irc.r4sas.i2p/?nick=WebClient...&channels=dev%2Cen%2Cru&prompt=1&uio=OT10cnVlde" + } + } +} \ No newline at end of file diff --git a/osx/build/preferences/i2pdbrowser.cfg b/macos/build/preferences/i2pdbrowser.cfg similarity index 77% rename from osx/build/preferences/i2pdbrowser.cfg rename to macos/build/preferences/i2pdbrowser.cfg index 4872af6..8073053 100644 --- a/osx/build/preferences/i2pdbrowser.cfg +++ b/macos/build/preferences/i2pdbrowser.cfg @@ -6,38 +6,46 @@ * See full license text in LICENSE file at top of project tree */ -/* Do not edit this file. - * - * If you make changes to this file while the browser is running, - * the changes will be overwritten when the browser exits. - * - * To make a manual change to preferences, you can visit the URL about:config - * For more information, see http://www.mozilla.org/unix/customizing.html#prefs - */ - lockPref("accessibility.force_disabled", 1); defaultPref("app.normandy.first_run", false); +lockPref("app.normandy.enabled", false); +lockPref("app.normandy.optoutstudies.enabled", false); +lockPref("app.shield.optoutstudies.enabled", false); lockPref("app.update.auto", false); +lockPref("app.update.BITS.enabled", false); lockPref("app.update.channel", "i2pdbrowser"); +lockPref("app.update.disable_button.showUpdateHistory", true); lockPref("app.update.enabled", false); lockPref("app.update.interval", 0); lockPref("app.update.service.enabled", false); +lockPref("app.update.url", ""); defaultPref("beacon.enabled", false); pref("breakpad.reportURL", ""); -pref("browser.aboutHomeSnippets.updateUrl", ""); +defaultPref("browser.aboutHomeSnippets.updateUrl", ""); +lockPref("browser.aboutwelcome.enabled", false); defaultPref("browser.cache.disk.capacity", 131072); defaultPref("browser.cache.offline.enable", false); defaultPref("browser.casting.enabled", false); +lockPref("browser.contentblocking.database.enabled", false); +lockPref("browser.contentblocking.report.lockwise.enabled", false); +lockPref("browser.contentblocking.report.monitor.enabled", false); +lockPref("browser.discovery.enabled", false); pref("browser.download.manager.retention", 0); defaultPref("browser.download.useDownloadDir", false); defaultPref("browser.feeds.showFirstRunUI", false); defaultPref("browser.fixup.alternate.enabled", false); defaultPref("browser.formfill.enable", false); defaultPref("browser.formfill.expire_days", 0); +lockPref("browser.messaging-system.whatsNewPanel.enabled", false); +lockPref("browser.newtabpage.activity-stream.feeds.asrouterfeed", false); +lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); lockPref("browser.newtabpage.activity-stream.default.sites", "http://i2pd.i2p/,http://333.i2p/,http://inr.i2p/,http://102chan.i2p/,http://flibusta.i2p/,http://fsoc.i2p/,http://lifebox.i2p/,http://onelon.i2p/,http://wiki.ilita.i2p/"); +lockPref("browser.newtabpage.activity-stream.discoverystream.enabled", false); lockPref("browser.newtabpage.activity-stream.feeds.section.highlights", false); lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); defaultPref("browser.newtabpage.activity-stream.showSearch", true); +lockPref("browser.newtabpage.activity-stream.showSponsored", false); lockPref("browser.newtabpage.activity-stream.telemetry", false); pref("browser.newtabpage.activity-stream.topSitesRows", 2); pref("browser.newtabpage.enhanced", false); @@ -49,6 +57,7 @@ defaultPref("browser.onboarding.tour.onboarding-tour-performance.completed", tru defaultPref("browser.onboarding.tour.onboarding-tour-private-browsing.completed", true); defaultPref("browser.onboarding.tour.onboarding-tour-screenshots.completed", true); defaultPref("browser.pagethumbnails.capturing_disabled", true); +lockPref("browser.ping-centre.telemetry", false); defaultPref("browser.places.smartBookmarksVersion", -1); pref("browser.reader.detectedFirstArticle", false); pref("browser.rights.3.shown", true); @@ -83,7 +92,6 @@ defaultPref("browser.search.defaultenginename.US", "YaCy 'legwork'"); defaultPref("browser.search.geoSpecificDefaults", false); defaultPref("browser.search.geoSpecificDefaults.url", ""); defaultPref("browser.search.geoip.url", ""); -pref("browser.search.hiddenOneOffs", "Amazon.com,Bing,DuckDuckGo,eBay,Google,Twitter,Wikipedia (en)"); defaultPref("browser.search.official", false); defaultPref("browser.search.order.1", "YaCy 'legwork'"); defaultPref("browser.search.order.2", ""); @@ -96,11 +104,11 @@ defaultPref("browser.search.region", "US"); defaultPref("browser.search.searchEnginesURL", ""); defaultPref("browser.search.suggest.enabled", false); defaultPref("browser.search.update", false); -pref("browser.search.widget.inNavBar", true); lockPref("browser.send_pings", false); pref("browser.send_pings.require_same_host", true); defaultPref("browser.shell.checkDefaultBrowser", false); pref("browser.startup.homepage", "http://i2pd.i2p/"); +defaultPref("browser.startup.homepage_override.mstone", "ignore"); defaultPref("browser.tabs.closeWindowWithLastTab", false); lockPref("browser.tabs.crashReporting.sendReport", false); defaultPref("browser.translation.engine", ""); @@ -132,6 +140,8 @@ pref("devtools.debugger.remote-enabled", false); pref("devtools.webide.autoinstallADBHelper", false); pref("devtools.webide.autoinstallFxdtAdapters", false); pref("devtools.webide.enabled", false); +defaultPref("devtools.whatsnew.enabled", false); +defaultPref("devtools.whatsnew.feature-enabled", false); pref("dom.allow_cut_copy", false); pref("dom.archivereader.enabled", false); pref("dom.battery.enabled", false); @@ -146,6 +156,7 @@ pref("dom.maxHardwareConcurrency", 2); pref("dom.mozTCPSocket.enabled", false); pref("dom.netinfo.enabled", false); pref("dom.network.enabled", false); +defaultPref("dom.push.enabled", false); pref("dom.telephony.enabled", false); pref("dom.vibrator.enabled", false); pref("dom.vr.enabled", false); @@ -155,13 +166,17 @@ pref("dom.workers.enabled", false); pref("experiments.enabled", false); pref("experiments.manifest.uri", ""); pref("experiments.supported", false); +pref("extensions.abuseReport.enabled", false); pref("extensions.autoDisableScopes", 0); pref("extensions.blocklist.enabled", false); pref("extensions.blocklist.url", ""); -pref("extensions.getAddons.cache.enabled", false); +defaultPref("extensions.getAddons.cache.enabled", false); pref("extensions.lazarus.showDonateNotification", false); lockPref("extensions.pocket.enabled", false); +lockPref("extensions.screenshots.upload-disabled", true); pref("extensions.shownSelectionUI", true); +defaultPref("extensions.systemAddon.update.enabled", false); +defaultPref("extensions.systemAddon.update.url", ""); pref("extensions.ui.lastCategory", "addons://list/extension"); pref("extensions.update.autoUpdateDefault", false); defaultPref("extensions.update.enabled", false); @@ -170,23 +185,26 @@ pref("full-screen-api.warning.timeout", 0); pref("general.buildID.override", "20100101"); lockPref("general.platform.override", "Win32"); lockPref("general.useragent.locale", "en-US"); -lockPref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"); +lockPref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/78.0"); pref("general.warnOnAboutConfig", false); defaultPref("geo.enabled", false); lockPref("geo.wifi.logging.enabled", false); defaultPref("geo.wifi.uri", ""); +lockPref("identity.fxaccounts.commands.enabled", false); lockPref("identity.fxaccounts.enabled", false); defaultPref("intl.locale.matchOS", true); pref("javascript.use_us_english_locale", true); pref("keyword.enabled", false); pref("lightweightThemes.update.enabled", false); pref("loop.logDomains", false); +lockPref("marionette.enabled", false); defaultPref("media.eme.enabled", false); lockPref("media.getusermedia.audiocapture.enabled", false); lockPref("media.getusermedia.screensharing.enabled", false); pref("media.gmp-eme-adobe.enabled", false); -pref("media.gmp-gmpopenh264.enabled", false); +defaultPref("media.gmp-gmpopenh264.enabled", false); pref("media.gmp-gmpopenh264.provider.enabled", false); +pref("media.gmp-manager.cert.checkAttributes", false); pref("media.gmp-manager.url", ""); defaultPref("media.navigator.enabled", false); defaultPref("media.navigator.video.enabled", false); @@ -199,17 +217,21 @@ defaultPref("media.peerconnection.use_document_iceservers", false); defaultPref("media.video_stats.enabled", false); defaultPref("media.webspeech.recognition.enable", false); defaultPref("media.webspeech.synth.enabled", false); +defaultPref("messaging-system.rsexperimentloader.enabled", false); defaultPref("network.IDN.whitelist.i2p", true); defaultPref("network.IDN_show_punycode", true); defaultPref("network.allow-experiments", false); +lockPref("network.captive-portal-service.enabled", false); +lockPref("network.connectivity-service.enabled", false); pref("network.cookie.prefsMigrated", true); defaultPref("network.dns.disableIPv6", true); defaultPref("network.dns.disablePrefetchFromHTTPS", true); -defaultPref("network.dns.disableprefetch", true); -pref("network.http.speculative-parallel-limit", 0); +defaultPref("network.dns.disablePrefetch", true); +defaultPref("network.http.speculative-parallel-limit", 0); defaultPref("network.jar.open-unsafe-types", false); pref("network.manage-offline-status", false); defaultPref("network.negotiate-auth.allow-insecure-ntlm-v1", false); +defaultPref("network.notify.changed", false); pref("network.predictor.enabled", false); defaultPref("network.prefetch-next", false); pref("network.protocol-handler.expose-all", false); @@ -263,13 +285,17 @@ defaultPref("reader.parse-on-load.force-enabled", false); defaultPref("security.insecure_field_warning.contextual.enabled", false); defaultPref("security.insecure_password.ui.enabled", false); defaultPref("security.ssl.errorReporting.enabled", false); +defaultPref("security.OCSP.enabled", 0); defaultPref("services.blocklist.update_enabled", false); +pref("services.settings.server", ""); lockPref("services.sync.enabled", false); pref("services.sync.prefs.sync.browser.download.manager.scanWhenDone", false); pref("services.sync.prefs.sync.browser.safebrowsing.enabled", false); pref("services.sync.prefs.sync.browser.search.update", false); pref("services.sync.prefs.sync.extensions.update.enabled", false); pref("signon.autofillForms", false); +defaultPref("signon.management.page.breach-alerts.enabled", false); +defaultPref("signon.management.page.vulnerable-passwords.enabled", false); pref("signon.rememberSignons", false); defaultPref("startup.homepage_welcome_url", "http://i2pd.i2p/"); pref("startup.homepage_welcome_url.additional", "about:blank"); @@ -285,96 +311,3 @@ defaultPref("webgl.disable-fail-if-major-performance-caveat", true); defaultPref("webgl.disabled", true); defaultPref("webgl.enable-debug-renderer-info", false); defaultPref("webgl.min_capability_mode", true); - -var config = { - "cckVersion": "2.2.9", - "name": "I2Pd Browser", - "description": "Preconfigured for use with I2P browser", - "version": "1.2.8", - "homePage": "http://i2pd.i2p/", - "welcomePage": "http://i2pd.i2p/", - "titlemodifier": "I2Pd Browser", - "extension": { - "name": "I2Pd Browser" - }, - "noWelcomePage": true, - "noUpgradePage": true, - "removeSetDesktopBackground": true, - "removeSafeModeMenu": true, - "noGetAddons": true, - "noAddonCompatibilityCheck": true, - "disableSearchEngineInstall": true, - "removeDefaultSearchEngines": false, - "displayBookmarksToolbar": true, - "removeSmartBookmarks": true, - "removeDefaultBookmarks": true, - "removeDuplicateBookmarkNames": true, - "dontCheckDefaultBrowser": true, - "dontUseDownloadDir": true, - "disableFormFill": true, - "disableSync": true, - "disableCrashReporter": true, - "disableTelemetry": true, - "disableFirefoxHealthReportUpload": true, - "disableFirefoxHealthReport": true, - "disableFirefoxUpdates": true, - "removeSnippets": true, - "disableResetFirefox": true, - "disableWebApps": true, - "disableHello": true, - "disableSharePage": true, - "disableForget": true, - "disableHeartbeat": true, - "disablePocket": true, - "disableAboutSupport": true, - "disableAboutProfiles": true, - "showSearchBar": true, - "autoconfig": { - "disableProfileMigrator": true - }, - "id": "i2pdbrowser", - "hiddenUI": [ - "#defaultBrowserBox", - "#enableSearchUpdate", - "#dataCollectionCategory", - "#dataCollectionGroup", - ".help-button", - "#onboarding-overlay-button", - ".prefs-modal-inner-wrapper > section:nth-child(6)" - ], - "searchplugins": { - "YaCy 'legwork'": "resource://cck2_i2pdbrowser/searchengines/legwork.xml" - }, - "defaultSearchEngine": "YaCy 'legwork'", - "certs": { - "ca": [ - { - "url": "resource://cck2_i2pdbrowser/certs/purplei2p_ca.pem", - "trust": "CTc,CTc,CTc" - } - ] - } -}; - -var io = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); -var resource = io.getProtocolHandler("resource") - .QueryInterface(Components.interfaces.nsIResProtocolHandler); - -var greDir = Components.classes["@mozilla.org/file/directory_service;1"] - .getService(Components.interfaces.nsIProperties) - .get("GreD", Components.interfaces.nsIFile); -var cck2ModuleDir = greDir.clone(); -cck2ModuleDir.append("cck2"); -cck2ModuleDir.append("modules"); -var cck2Alias = io.newFileURI(cck2ModuleDir); -resource.setSubstitution("cck2", cck2Alias); - -var configModuleDir = greDir.clone(); -configModuleDir.append("cck2"); -configModuleDir.append("resources"); -var configAlias = io.newFileURI(configModuleDir); -resource.setSubstitution("cck2_i2pdbrowser", configAlias); - -Components.utils.import("resource://cck2/CCK2.jsm"); -CCK2.init(config, "ä"[0], "ä"); diff --git a/macos/build/profile-en/addonStartup.json.lz4 b/macos/build/profile-en/addonStartup.json.lz4 new file mode 100644 index 0000000..1c3d09f Binary files /dev/null and b/macos/build/profile-en/addonStartup.json.lz4 differ diff --git a/macos/build/profile-en/search.json.mozlz4 b/macos/build/profile-en/search.json.mozlz4 new file mode 100644 index 0000000..fc10c37 Binary files /dev/null and b/macos/build/profile-en/search.json.mozlz4 differ diff --git a/macos/build/profile-ru/search.json.mozlz4 b/macos/build/profile-ru/search.json.mozlz4 new file mode 100644 index 0000000..cc0c7a5 Binary files /dev/null and b/macos/build/profile-ru/search.json.mozlz4 differ diff --git a/osx/build/profile/bookmarks.html b/macos/build/profile/bookmarks.html similarity index 100% rename from osx/build/profile/bookmarks.html rename to macos/build/profile/bookmarks.html diff --git a/macos/build/profile/cert9.db b/macos/build/profile/cert9.db new file mode 100644 index 0000000..bcc5421 Binary files /dev/null and b/macos/build/profile/cert9.db differ diff --git a/macos/build/profile/certificates/purplei2p_ca.pem b/macos/build/profile/certificates/purplei2p_ca.pem new file mode 100644 index 0000000..bbbcc77 --- /dev/null +++ b/macos/build/profile/certificates/purplei2p_ca.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID7DCCAtSgAwIBAgIJAKXaTovgoTIUMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJXVzEUMBIGA1UECAwLSTJQIE5ldHdvcmsxEjAQBgNVBAoMCVB1cnBsZUky +UDEqMCgGA1UEAwwhUHVycGxlSTJQIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR0w +GwYJKoZIhvcNAQkBFg5yNHNhc0BtYWlsLmkycDAeFw0xODA4MjQyMTQ3NTJaFw0y +MzA4MjMyMTQ3NTJaMIGCMQswCQYDVQQGEwJXVzEUMBIGA1UECAwLSTJQIE5ldHdv +cmsxEjAQBgNVBAoMCVB1cnBsZUkyUDEqMCgGA1UEAwwhUHVycGxlSTJQIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MR0wGwYJKoZIhvcNAQkBFg5yNHNhc0BtYWlsLmky +cDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALAZnN/U5bgkmiBqp/Np +yiMOkUPjr2tLhV78Oba46xDLA6AiQ7yTPg+/ZYPIfbF2dPBTpfgGdly2M1xymRKc +3Pa+IUXkLw6oCA+lFzOFW0Swtekk9HRAgGyHgj6/Hvagva5Wer4HJIO1qRsFPew+ +XcM3uhhiXoiO8o+YGpJ/7kz0gED3p2b9OVsLPd8G/GfdR3miD+Au+kUx/27z/WdJ +ISfFILFnYeYZGffrpRcFtoGwuZUCugwnbLtpQpNKuGq8jDidm1v6Rb85JmkoH3Sg +lRaX1MK0aPhM4WfCf7aWCNe669FAWPNB3Ya2lue7ewPLI84ZUEqcoJwmWn2ci2SU +EXUCAwEAAaNjMGEwHQYDVR0OBBYEFG3hwzikpXqMasw678OHM8uLyjEoMB8GA1Ud +IwQYMBaAFG3hwzikpXqMasw678OHM8uLyjEoMA8GA1UdEwQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA07URxJMI/Ta9y1wIg+k7o +1aHXsl6YOXmd2ymhKZhZHrZlutE2U19IQSoEV0SBddP9D05xD6Ovsrwo7caeYzNt ++2DJnlJ2IY61NqYUIDEoJyNPL/S7WleH+xO+bcSqWvbntTNYAD6WQVfHCAimVE6P +RnSZGqG089i84DRCyrh/6F1OxnBd6j14z+2ctQD+h6NlQXiCAUIwzVirYoE7oGpH +Xta7Ei+RDvBXLXLAQRdXpzSP/Ddf7MCJzmH3VYAy+0sVuHr09hpFMtC59hTrdLVD +/qma0eKrBr1DGH6QrZMZDqpNfv4wUPyVQBsRbbn2/1fL9IqK43CIj8RUllCOsmyU +-----END CERTIFICATE----- diff --git a/osx/build/i2pd/addressbook/addresses.csv b/osx/build/i2pd/addressbook/addresses.csv deleted file mode 100644 index 2f4bfa4..0000000 --- a/osx/build/i2pd/addressbook/addresses.csv +++ /dev/null @@ -1,1197 +0,0 @@ -00.i2p,zmzpltxslembpaupg3srh4bbhv5txgh5jmms6sfj4hzsvlv3xugq -01-laienhaft.i2p,sc2psmpgvhy4witmedjqunywznukyzyz4y6izdeddkb4k6qugsya -02ch.i2p,6k3irsqo5v536bs45t5hn5f3s5pi7a3bp5nuxc6y72svjqp6vymq -0chan.i2p,ah7wvpwga7hlwa2f7gnnxuqycnng5j5bkglhfm5ychejpnjucmka -0ipfs.i2p,cdii3ou5mve5sfxyirs6kogt4tbvivk2d6o25awbcbazjrlhjeza -0pl.i2p,gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua -0x0.i2p,5kyswcuppi6pelnv2522mky4fodoter2h3cqhbzibppgimjlg4ka -0xcc.i2p,gawouxh2sg32cluwlqsnpy3dwedvoqtfroi4evvdvm2pfv7tdadq -1.fcp.freenet.i2p,cuxbeputgxn75ak4nr7ltp7fjktnzl5sul3wstwnsoytbbpb4ixq -102chan.i2p,xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq -1st.i2p,rduua7bhest6rwsmmyttzssfdw3p4eu6bgl3mb4hin32qo3x5zfq -2.fcp.freenet.i2p,ndsznnipoeyapnsg3gj3yi2dzsqduxwalmujm5mzjm7e6x374tta -2ch.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq -2chan.i2p,xnmlqiwaio6bg6dtbjqb63rtoznvgeud5acxklccomv5yytefmda -2channel.i2p,wirxk4kulmd7v6qmttltnu5nx2vtchzvrg7ewocejrvdjcaiv5sq -2hu.i2p,7jcjkstbxt4uqnvxnu5defexawuzzhwwux3np55bgoz2l5jljeva -2rqv7nn2.i2p,2rqv7nn2j4q3wcxe5lsrqpf73k4rmtutweft3dvbc2w245vpkdva -333.i2p,ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza -55cancri.i2p,b4iqenefh2fr4xtuq6civfc6nhnia6e2yo36pf7vcgdvrwmh7xua -7i3.i2p,y4gh4ocvlsxnyjgqbdlqb6eeff4a4e62wbzuewd3ralagyopzb4q -9.i2p,4serdqvuthqxeaovnfc5ybdjin3l7noperdgplthjwqovzxifvya -a-zine-repo.i2p,zt6okylza25s2ppso7ngqbz2ybeteatxezxqemvucwhbb5ajot7a -aaa.i2p,zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa -aargh.i2p,wp7dwr6rsd6374g6sjlazwiy775lshtrwpy6gidyejpvyowlkqyq -ababa.i2p,l454utm25jc4avll4byxmrpesbrinjbvxocryttvxqbcy3x2fbsq -acestream.i2p,2ojd3s4rb73d6qvwz36x4ysjzqbnkzluemdbxhuuuf7qbbfew26a -aconscientiousperson.i2p,6o6o65wdyljghdbaqxs6qqrgm54rrdi4ys3ows6dv74tkvy3sdqq -adab.i2p,pxjr6f2cig6v7v7ekam3smdnkqgmgseyy5cdwrozdyejm7jknkha -admin.open4you.i2p,hnlryqjvk52hsze2ixnz4qbuki4tf6qvygi25mf5bkllmbett2oa -admin2.open4you.i2p,d62hjvhu7yqd23m766dvs4tupxpvrsa2hzd2r5rdpm5apsmtmc6a -agaming468.i2p,4svcmhjnijtnclv2vdgf3ipdvzizgeyllysjfl6vu3xkqwa3w6sq -agora.anarplex.i2p,ydaal5nbvxmydnncny5esb3ipxupmpgkensow7yvhp6u7uioujna -agora.i2p,nvslgzpyqhxldfik5uwua7eqse5adqon5h4dbzqepw7ringod44q -agoradesk.i2p,ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta -aktie.i2p,4qwhpshwlp6ndzvtiwvf7myc3lll3vizqcdvvuxrzgaxv4g2qogq -alacast.i2p,sdlcbhe5jffgdsmzaharudzbzhipw4pth24ivy7m3nqm5paxgtuq -albatcats.i2p,ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga -alcb.i2p,jxjxuqkgblqlbsngarpjisyx6c36tr4zrk7c4jlglvgvqtx2mifa -alfogo.i2p,ffpoiodfwljmtar22coemsyrk5y5b2toa4cpjtatfutymn6o4kxq -alice.i2p,iq26r2ls2qlkhbn62cvgb6a4iib7m5lkoulohdua5z6uvzlovjtq -alterchan.i2p,6o6tlcrs3nj2vks5w4fehtbk7263dinlwd3brsbk3vdefsqkddda -alttechdenizen.i2p,a6doke6sicgf6kktwe6dxnpft5agsouvqnuqw2abfo7eyjbylzxa -always.i2p,wp43sdtuxum6gxbjvyeor35r5yvgtkp3dcu7dv47lx22zeb3relq -amazingmisc.i2p,ndmujfb6zp5shfctvcczwvervyncwhsdncuvhg44mihr3acbtosq -amazone.i2p,e6kq73lsxaeyiwpmykdbdo3uy4ppj64bl7y3viegp6mqrilqybqa -amber.proxynet.i2p,ibijzvwflctuyyqazduxt52ffldlkpbqdq6f6ykfnudikzxcivua -amiga.i2p,edy2xappzjjh7bxqounevji4wd2binqkv7gft4usrkan45xhbk5q -amobius.i2p,rj6432agdprun5baai2hj62xfhb4l75uvzl55dhj6z5zzoxv3htq -an0nmaz0n.i2p,ztooc5o6jqv67jnuqt7qqyo5v3ms6dbpujokbx73zoni4yh5gg7a -anarchistfaq.i2p,xosberjz2geveh5dcstztq5kwew6xx2brrqaorkjf2323bjzcd3q -anarplex.i2p,4qingryacppi5ed2vk2626qipri3d7c2v6iw3vr55zy6c2uc66za -andmp.i2p,rv6zugykqdhmwwsuglv7j6ktjojdbf5fqta66hixejg33qb2su3q -animal.i2p,5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla -anna.i2p,ou275m6qezujy66672l2ozowaqb6vk47wmitbizlkh75o75i444a -anodex.i2p,25cb5kixhxm6i6c6wequrhi65mez4duc4l5qk6ictbik3tnxlu6a -anodex.livingstone.i2p,yol5t4pjcaue57wf5f2iyub4hbm7xkwwtmzdfpz2kldhavdpm7eq -anoharsath.i2p,ydn72ascujpmy2afhpkotvy3e6z7mrqeg3l45nblxhj7b5jkyl4a -anon-box.i2p,kbv3jc2f4efmq2q4lj66p6xjkgmfhaed3jl7uzaml6y3oqc4jfpq -anonarchive.i2p,vblifonpbegzggx5mgev6wtgtfpkz5ykv5awgrzsqv2lcknjp7ea -anoncoin.i2p,nmi3loretkk4zbili32t2e5wyznwoxcsgzmd2z4ll3msgndyqpfa -anongw.i2p,owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq -anonime.i2p,mbctq7blcu2cqfjyn2ptf7plvgirwtqnqqo3bevs5omggxtaekya -anonirc.i2p,qm7il7eolcvyppflohqgbecjtgq6tqwtmqmtvfcew2otdmjpe7qq -anonsfw.i2p,ir6hzi66izmvqx3usjl6br3nndkpazonlckrzt3gtltqcy5ralyq -anonymnet.i2p,77ouyl2ane7ffgydosd4ye42g67aomtc4jrusmi76lds5qonlffa -anonymousfreeworld.i2p,ayt3o2lovn5vd5pal7p43bcqkbjymtqhoilbmhj5dj4yoo5qklia -anonymousfreeworldirc.i2p,7sshnegbgqk5grdoqx3qjgbd7vpr5jti3keemz4xt5x6wo3cqkoq -anonynanny.i2p,l2lnhq2dynnmf3m46tcbpcmbbn4kifjgt26go6n2hlapy4drhyja -anonyradio.i2p,cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq -anotoi.i2p,vthumgmniwvac2wcrjui2heaxpb7cuty46ovt4mvf5ontwusfima -ansoma.i2p,rapsznfm3sgsiubmfwp5xs3uvdrx2j3zjipfgfqjem33kvikb6ta -antipiracyagency.i2p,by4kcmklz7xnkai6ndfio47kts3rndm6wwleegtxghllimikdapq -antipiratbyran.i2p,y2qbhrvuciifbszaqqwxd5t75bomp7kzdqx4yxsrkaq542t75k3a -aosp.i2p,ly7raldsh2na2cgw5yvueyvqqjgx3vbqinecjrqdldgya76i2p2q -aplus.i2p,h67lym6btfqinjs5ye272fo6uze2uvjk6t7qabibocjedfcv5fva -aport.i2p,uvpczf5ljaptviombwxi6vmqxpzh6zpthyhvczzp57ihwfzrxnhq -apt.idk.i2p,s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia -apt.mirror.i2p,kazqug7jqkfokjuyfstok4s2wnhtk3pueoaiuucashwzjqgsvpra -arc2.i2p,rnmosuwvtftfcrk5sk7zoyhyadh2g4dhe2mif5ml7qjisgkyw2na -archaicbinarybbs.i2p,t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa -archer.i2p,6i4xsdvh3xxvi2gp32rdbkoyobpvywr2drq5dyq5v6uqlqvh2mtq -archiv.tutorials.i2p,lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq -archive.i2p,x54d5st3dl6mwgfxj6raiekqkypo5pdvuex3n62szwju7hgefiyq -archive.syndie.i2p,abbyu5n3mh3nj7pe3b6byldrxswvva5ttxcafsnnseidanurq3kq -archlinux.i2p,5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa -ardor-wallet.i2p,tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq -ardvark.i2p,jcmw2sol3hruwc6rfinonx4e23pjkukkg7lg7xt7xb2gpiyyraiq -arf.i2p,o46lsq4u7udxg3qqlidrmpj4lb4nr7ldxmbb2x53nftndaeyxqeq -aria2.i2p,ejtai4k4v3gechtoz6zd7eqlz6wptwyi45kp5pohfqjcobpy53xa -ark.i2p,svqersykedes2w5rxryiqfy65kqvfgojugdlyniio3qtgsjbhfva -arkan.i2p,7o5y2lyyrjx5tf6l4fyumywui7msjv5azaaheatvw5sqj7mxbuvq -arkwright.i2p,ebovdlxw47kodamth7p33nenfxy5kqsyu7usp2c3ni3dyfrbbvpa -armada.i2p,26qxgmyqczulza5ym3jij5er3onclacejyqzecuhjllwun3kxuzq -artik.i2p,3o7u6aag37cx6vvfort2xkorfra5begoz5j3pwgp27toczhjxgpa -arus.i2p,a5sf2rk77dbsam2pmqrl6o74nvbwj2gmld4ofdowaxjpfeulx45a -asciiwhite.i2p,itbzny5ktuenhjwjfqx3jravolhlj5wullhhr2m4qr6k2emnm5dq -aspnet.i2p,tsb7zqru57p4q2a7cto2lko4w5cg4lieglwm6t27c44fkphqmf2a -asylum.i2p,p45ejjw4p2q6nq3mzi6cm6ep35grtzshboidj2lojmrmic22noha -atesi2p.i2p,hlahr4wgobvhegluufw3ckzulr4etamxxborktgz3dkefok232ga -auchan.i2p,6vxz4yp3vhjwbkmxajj7wiikxafwujig63gkhjknbq6xh4rqpm5a -aum.i2p,ohdfneqxapfd3fwfbum4tut7z6k3rnr7rrguoxdrrfe2tln2kpbq -awen.i2p,yg2lo3fuqx4zjy7f7uocwdy6j7gb7svfrirmljwlxmfeir54zwxa -awup.i2p,v6g32duzrkacnrezfbll3pza5u37h7lnukr2wbsk6rqen6prhbga -b.i2p,272kt3gcx6wjurunzaiiwld7s5p4mpjewfubzmlcvw2vie62ckpq -b812.i2p,ltkr76etonbnqv7pk5o2rhiud334wqrmyl5eskp5b3wfpnik75ua -babylonastronaut.i2p,t7xrcwnbbmf24mwr4n5l2blzsmrieawporojjx72m3yjvczqw6mq -bacardi.i2p,hivhnx2v47vh234c7coi2urj5cyvbl4bu3ypjr7snklortyqeljq -backup.i2p,kepphem42whle3rkfv26wcksmnegdbg6rdp6t3oobdkc2fmzrdkq -badfish.i2p,f6v26gyr4eipy3a7pi2voulw5qvob6dg7zij6xpo2ywbi5tvbu6a -badtoyz.i2p,3qz6ubtwlt2c4iasofjirkckq43u5fgkzyg7mlutcsym5gzhijna -bandura-yacy.i2p,e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq -bandura.i2p,n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a -barry.i2p,4kyahq53ol52n23l44tefgeaxqpp3cbb632t5k3umdvqcooevdzq -bash.i2p,s3wouoilbl3mrefxjhp4qoyujgok34e7y6vmpbu6hx4342ivqo4q -bbs.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua -bdl.i2p,kp6fnuulenbjm7r26pfbmjcq3u7c7kvxeajodvgr5flcnskdgi5a -bdsm.i2p,pa7fxql5jljegg7j5tglhnnaod2sptq3gxvdn3ji6muqyhgn3poq -bee.i2p,gpgzc22souybsx6xo74radtybx7eo34nkwxnymfww7nhyj2jb3yq -beeftek.i2p,ahm3a32grgelzzwnzsa7qbva7usyev5vvozp4l7zymxqj36r4k7a -betaguru.i2p,d7cduwwhrcc2voameqfkvd66u3advu4jw2p6pysgax35vq6ovriq -beyond.i2p,uaicfqlrpjtitqbqkpfujanj5dollzfzee5glsuls67ekw6hlpoa -bible.i2p,pypz7ca24n3lyp4tm3kvncg3ltp3gd5pgnacc6zltoeffiyyegda -bible4u.i2p,xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq -bigbrother.i2p,tnxiifs6uticzyg6ac4lhv2l5luwi6xra7yngocro56ive5e4jsq -bitlox.i2p,lqw5khxcdntlv3u4vhn53upcqirplvnc4etjlmoytrzs66ytettq -bitmoney.i2p,sd7asgdgnicjyj6lkaavux77u4vyvhv62pm3dfmluoc4xuivxb4a -bitslair.i2p,q3k4tsw4fgw7wvm4ufpbstuw44rd6g6k6aymqvkij7fwehldecpq -bittorrent.i2p,pgax2vz572i4zsp6u6paox5xubmjrkqohq6g4hvlp6ruzzy56l5q -bk1k.i2p,nlyegmtyfffo5jfgg5h4dxxnlmqko2g36gpaye5a7vd3is35xxfq -bl.i2p,e73d6uhnfbylza6wqkhxejmqeyfb7thkzw35gn5ojmna64jzyk2a -blach.i2p,khjfx7pdxt4oqxqcgk6zupqvmelpjkpiafzjefe75sl3qxu5hcua -black.i2p,sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq -blackbox.i2p,7josyf7zjieoib3ovmr5a4dh5w64kmfh45lv5h436eljtgfegtqa -blackdragon.i2p,yj7fa7i4malizkewvvzufwgig4dypuig2o3ysfxtewpxs2eqaq5q -blackexchange.i2p,ztgr5kghkyn43fhhkuycroxgfti6cojo3vg4wdd3usqonyvrla5q -blacklong.i2p,dx2jfxy7pwj6bbmcnshunjgfyranab4xy2dmaid65cpxwt6idiba -blackmetal.i2p,xhcyocs3t4ifexiktqyld5t4ownetrm2oquhee57dgenwn6w2fjq -blog.curiosity.i2p,yiz6jec5k7ccxdgnh7msqa4ze52bqqmf6rpq6bqdyojra2erd4ta -blog.polecat.i2p,orlccceubewvxo3fbdyydq6e4uuidbs4xd5u2gyqbculnowo3ehq -blog.tinlans.i2p,ylkch2nkrwehakx4z6wiyjbeqwlgasknukdkex6r6yq4xusrjnda -blue.proxynet.i2p,wfigbdfs6tvajiw24xwohbwwy5pq3jcgzevwnsky2ucwzwgodumq -bluebeam.i2p,lvxp3cbcfwtol57d5pmrsck32t7ndutlxubjb4smaf32bynhlk6a -blueheron.i2p,anfb5jrhixjmvkyxctqwkezqer7dbob22wge2bh6wsewbhgnftfa -bmctn.i2p,yofmgvwn4bbn7flpdets2lckbppbwpike6bmqr7imdncmjbdvwcq -bmw.i2p,6naudpj2zozw6aiiqusv6znfzyprwitrufauz3zuejtdbotp6mxq -bmworc.i2p,w254y65la47elcmf6mo7xc2caamm3ikeusmjjfknwsavwsy4whzq -bnc.i2p,fr4zbcygmx2vdct6nrabakfys4b4derm6jqu2ovppkgqillvlqxa -bob.i2p,i76m7dwm5hnapljendbie6fc5y3mjlkdlduo3tvbwiwmvhxbpyaa -bobcat.i2p,ftuukjtcquuvppt726w37boit7gp5hf2yxwfop35prx3grzzzxlq -bobthebuilder.i2p,qlahgthqhr4uojkkwahnper2cl3ro5f5gtzy5t4lzapbzo4osy6q -boerse.i2p,7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq -bofh.i2p,auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a -boing.i2p,bgsq33bh74j66hn4oh7oovlvuhhdyw22lq2qi2fnv3jyh2ryap3a -books.i2p,4hoggh2mh3jvnqrjge4vl6hg5ud6lssu7k5n4wyftifnwlfp7p5q -books.manveru.i2p,eb2tisc2vr5jvjqrixrozcujiucwxg4m722stxwho5666ipl67zq -bote.i2p,bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a -bozo.i2p,7a2d23h6htprhzrol36vgwgklsbqrnuya4tbaaaspmaeaodt57iq -breaktheirbank.i2p,5c73sm3dky2pbsbdxnb5jqbgnnyimoonrln24yt7yao3nsus25vq -brittanyworld.i2p,e76umhhic3474sdxiuax25ixyfg7y3z7oojj4fmxvhgv3ruet6aa -bronzong.i2p,qqboneeyhdea3rm2mjkr6fb7mfuzhyrvovexyxi2dk4nudgye3wa -brown.proxynet.i2p,ray4pizoghc2cxegomwurcpfhi6xvq6b35eiydwfmg5n5jzcacwq -bs.i2p,bcr355ziz6uupqzsmfffa6zbk4bdte4yvkk3qy4xryy7hmw5axzq -bt.i2p,uhkuu54pg47zey76h45tnvsdtpkf5bthbtrjgnaloi5m54h4hlaq -bt.nnm-club.i2p,bmqz3v5ulhkvyqeahmp7co76ea4mwrxvb5nmtuclltpthm4mb47a -bttracker.i2p,spjpsgdhy764p2tgk5uffvzwhr2tnojdedyooglwgjvf3izz2yaa -bugfuzz.i2p,ubszn4gsf22vga67rvzzlg4qj2bfcq6o52fmxz46xruawqm6z7rq -burningcold.i2p,7sw4p3rhzl5q2olfcxwig54huc3rhhoqgqsz5cdpy7k5tlwfsriq -burntout.i2p,lkep3fd7tjvxrs25crr2c3jy7xm4s7bqiua5r327zgpw37sgyerq -bytepay.i2p,7amc4ztwkzu3cgsaaaw3223ohuihn5hlsqc6gpf2rxdyptdkyugq -ca.i2pd.i2p,u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba -cacapo.i2p,y7hb4kzomfzzhekib2mby72ydlntiexmuafuwtlxrxyigtnd63la -cases.i2p,kmpmk2fmineaiwublteqlifg4fkmewnhmxqlcgg7qwecz6daj43a -cash.i2p,6qscc7avdla6lzs6u2nzbppoxndhioh5krmoauolpwixfeuylo2q -catalufu.i2p,riuted4yhjwzttupiwzj4hnwr7o3jhhyqmtaogpi7gzupq3e27jq -catgirls.i2p,taxqiyvy24hk67dadf3hzdsj4jtzjadljs57wdfgaujt46qeujbq -cathugger.i2p,vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba -cbs.i2p,u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq -cerapadus.i2p,zroed2cxga5zeuu6rcvmp2yfi77nzduw7yhdplbeuqkuyxwbrzaq -cerebrum.i2p,u5gtsfn267udwfh2uq35jiabkufifvcbgv456zz34cydutsiw2eq -cerise.proxynet.i2p,tubipc7vuq5svzsuddz6lu35c4sl3uwviyui7l55rmxltxqncknq -cgan.i2p,43z65gdr52xe3fxmkumwp3dzhedu4tu4rdtzr24hz5b4awcpfbqa -chaoswebs.i2p,fz7l3tv3urnnhjvlrdylbd4uhxpglmm2i3xfvuqrhksjccdfzx6q -chat.i2p,ollpwnp6yidc3obbb3famgt6rw5jg5w3k3a6z7hhaegj6gcohiuq -chat.volatile.i2p,o2zogadvui65kr52h2sqeh2d67l4rx5qhd7gj53hkqbsj7y75wrq -chatfreedom.i2p,mxwg6hn6dicaziccpxvejfjj7ycrldp6vkvfaplfny3jxilq5cnq -check.kovri.i2p,7uea4hzuqwbow5c6hm3ghkr7mvyb5vafoo473wrcaa4rmua2d7pq -chen.i2p,l7fr75pvy3o66isse7bb4bdsy6coq2eb4irjkrsdlugbjanxqzzq -chess.fillament.i2p,tv6wbanei647yf5bie4dhg2wmybkjurezlpdfwftc5ajqlfswwya -chess.i2p,sbnoqznp5yzxals3vs6nzyqaj2fetvonys4e3b3x4ktmfeus54sa -china.i2p,wit6f2zx6dtuqqze6nhbykrds3idppfirxvhf2f7ydqoqf4xdzeq -chishir.i2p,gd3ijpmfcmcukfjgxupuepckitmx52vii35kt7monsv35ljmbkbq -chitanka.i2p,u4s3jneepk3akoez46kqiwikoezi6zyj2ibjkjyi4uuvsbcojzba -christian.i2p,7atkjb6iiru3z4dtb6q3k2hmcyhe4tigbgy55pqi5wwg33h6jwma -chsnec.i2p,ezfwl4zsb3tsm23jro6jeuwyb34rezzkz33s7lxjrbcycefhtk5a -ci.idk.i2p,antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq -ciaran.i2p,2r3645eete6xwbfu62ogonudcrcgqq25sbnij5v4geru74yrscna -ciphercraft.i2p,7s5pkqbpbfdkxtwuu2e2iwstbikyewvvscy76lij4x5pfbygbjca -city.i2p,q3x6msrirtu5gy5vilpki7afqlgrduvs3f6ywixu3qt5q6qc6sca -cloakbuffer.i2p,rxjexx7dole53hiuaoqqjyq2nljknmnjfws5hwyfoc7jmmhmwrpa -closedshop.i2p,6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq -cneal.i2p,g4za73ffigv3ht4jnhzy4dae52djjq7lqcguqsfg3w5cxzqm7nba -co.i2p,3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q -cobalt.idk.i2p,m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q -codevoid.i2p,2mukrqwtinsw27uoejtrz74zxtilyhnnfdyso7j3yo6vaa6nzlaa -colombo-bt.i2p,cyr75zgiu2uuzap5zeosforbgvpfbqos2g6spe4qfulvzpyhnzxa -complication.i2p,x2av6rwj5e5tp64yhdmifdyleo4wblw4ncrrcrabxwscuevpdv7a -comwiz.i2p,6p7zqfotzbd66etl5xqy3p6xvr5ijucru3am2xqa7wmnj6vf3djq -confessions.i2p,lh5vitshufxpmyr44zgyymebo5elc42eda7pxvn5lmtes47c7rxa -connelly.i2p,5yrris3nigb3fapvzrlrcaew6cdmzdknzvgrc7y2jpn3ntqurweq -conscious.i2p,vuudgshaznyenftsfgpyqcmsy7bs33uege3bymsxs5vgjagparua -costeira.i2p,abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa -covid19.i2p,j76d7matghmchkrx22z25kuchupqncnawep5lr5zed5emsekcwgq -cowsay.i2p,q4ghzfpah4ffvm3bhc6fdkrznk5f6jxfjm2daytlparznai5d54q -croquemort.i2p,j6damyqss2msf47sdxgc6dq7axz6wocqp5utjhn5wifdgabkwhfq -crstrack.i2p,mm3zx3besctrx6peq5wzzueil237jdgscuvn5ugwilxrwzyuajja -crumax.i2p,xg6ffstp3lnknou2ayhvnoc6nwdhic7fstzphy6idnjnner2wxnq -crypt.i2p,4xpb7orp7xmhxyiwvdvjm36dzp23h6jxxvagr6xuldodqto2hcqq -cryptdesign.i2p,ekfldb7x7hgmznu7wnw5d7ziryizyqr3dfhgjcnzshmbyn27zruq -crypthost.i2p,zywhrxtnkjc3rxxvxbocom7ml4hnutomgtuvqrwyf3rhuupnq5ca -cryption.i2p,hdfyl5jvzvlkamuz4fp5wokh7rzsmsnidr2qfoocke6myqgpxw2a -crypto.i2p,vffax5jzewwv6pfim55hvhqyynafkygdalvzoqd74lkib3hla3ta -cryptobank.i2p,cv2ccppauuoc5lq4drvbs6wdxzsa6iswnrxqf7idie36rxbqp6ra -cryptostorm.i2p,mlu7mswyirjf53usqq7gyamvqc6rqihezgdbevov3dkxmkfo57aq -curiosity.i2p,eomeif4xrykxlzhawc3icdilje5iammijos6tyizwhrfh3j7qdvq -cut.i2p,uk5jarq7yvogeuxnbmntdkheyoh56mqbbqeysphdzcllnkvz5e2a -cvs.i2p,yd6k7dzpsa2tnlzx4q7xqkmd4qsjk5xk5hbiqpiarwbeyvxaxgba -cyberarmy.i2p,anv363jl7fofuyvspenoiqgwgz2xrgsc7sik2zofergf4khxajfa -d73.i2p,uf6madmg2fv7uo25cjnvzpimd6iflsrozyemuypleyz46mxbyreq -dallashackers.i2p,lzkthydgao725tev3rsqdgy526t3rfae7q5xjxbmvy4huimlkiiq -dankest.i2p,t3xtjrbxfehmg3hnqf2mewezirny75mfgzflonhkd24sky4am75a -danrobi.i2p,nfw3voslnm6h5rpmkoo36k7lwpbac7lbmcjbduxqpvxf6esyiwkq -danwin1210.i2p,eoqdf4no5dxn4tw5n256kkd4lzz3uk4p47np4mepsykpsdzrnvba -darkness.i2p,gmzo72vjm5tssrxppnvqiiijipi3556o7xwk636f2kgepbyqs7ra -darknetlive.i2p,wflc3mc2istjnoff5e7ifycy57qkm6uwindckaryqmp645zzgzsa -darknetnow.i2p,gkx3o5fy7mv7l4psqqnhp35d5iun7rt3soci6ylf3rgb7a5a655q -darknut.i2p,2mk37gtvpk2i63o6vl7vna4dr46rqexxetupgn5efuuins7x3qya -darkrealm.i2p,gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq -darrob.i2p,hz2xhtpeo6btgiwi6od4qj2575ml5o2246rd5orarruyjhd63zja -dashninja.i2p,dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma -davidkra.i2p,nq7ca2egm563nir3xegfv52ocgmxstpz56droji4jgnzfoosk45a -dcherukhin.i2p,qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a -ddw.i2p,wlyy7ees7cumw7ggrs7ksp3uzld6holwopqr6qikncqjgj3vngka -de-ebook-archiv.i2p,6mhurvyn6b6j6xa4a3wpuz7ovpsejbuncvyl6rnhepasfgdgmn7q -de-ebooks.i2p,epqdyuuhtydkg5muwwq47n7jvr66pq4jheve7ky5euls6klzwuyq -dead.i2p,7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq -deadgod.i2p,63bveyh7wefb44hlia7wtxxb3jal3r67thd6jekmwrtq4ulaaksa -deb-mirror.i2p,l6ly7szjqvbffz7hacvjxqsbvpxoguh34ypkddtgse6bq3fljayq -debian-multimedia.i2p,cylxxz2y35x6cvyrl57wu3brckurtexatyi2i5awz3eeamqwjspq -decadence.i2p,pw5ys7k2grjb5myydpv6ohikm6nna7y6u2dro44i4rucgulu3ikq -deepwebradio.i2p,2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la -def.i2p,qon42l7zzzzylw7q2hxcwz67ada7lijqrzzwqqrrspff2qyycita -def2.i2p,cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da -def3.i2p,xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la -def4.i2p,yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq -deltalegion.i2p,lqcm5pncw5qiaqzzs5hrbpbf4fpo6t5tiehxfdby7dobdgcwvxcq -deploy.i2p,ujzspsqkbz5z272eozsrdv4ukl434h3fuliwrfxxnab74jmd7e6a -desdelaarena.i2p,7exkzayhcsmyqzbqn7oa7qjpny6tdvpc3av6g5236jrfle3xbn6a -det.i2p,y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q -detonate.i2p,nykapdsjjswdkjov7x3jzslhg4ig3cpkhmshxqzijuhbisx25jja -detra.i2p,nluwxqolosgyly5nzicm7dmjdnxj4e4d7mlfilef7qu5u7eqf3ma -dev.i2p,cfscxpnm3w3qxnlv3oikewxm4qrot4u6dwp52ec2iuo6m7xb5mna -devcron.i2p,isuao6uof4skihg5eg6xt3tb6xf3gpcp3fmc3inrff5hr4bwo4sa -devfs.i2p,3olqlrn3jutjmry5aaxndt6m7diktaf66zwp5fbrks6qf5ax5e4a -devilish.i2p,t3kova6elzks3rwldzhzc36o27w4h3csgxw6albjygv63huqs65a -devulgar.i2p,4mahjuyvnuinlzocrhrxo35xsdbwb6rcj2wxoakc253bpwhijqva -dg2.i2p,sjnqo3saada5pfldxmsvszns2rosi24uy5m54k7z6wqimewbke6a -dharma.i2p,oyq77v6d4sofxpfouisk3rwvsxkw2laydd5x3i4vdzqrnuewlwna -di.i2p,3irnooyt5spqiem66upksabez4f3yyrvvjwkmwyzlbealg64mgxa -diagnosis.i2p,bvj7lfuccblbe7c6nonfi7imcj2xvptyn33upmovjxy5qqi4opmq -diasporg.i2p,edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua -diffyq.i2p,hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq -diftracker.i2p,m4mer767ipj7mq6l7gdrmrq37yzvsj3kzezd7n7nsfuctntjseka -direct.i2p,upxcjhddpeeizq2cdtt4esotssrtuvs5y74gram2ktjmmcc6mmfq -diva.i2p,auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka -dk.i2p,cpt2op6bkcfw7mdnx7s7bql3kzpz2tzqx2jphn7jj67y5537hy7a -dlms.i2p,krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq -dm.i2p,heysbdivyeugdbggpscco5wje3dsvwgcpp5ot4sopooebnmiqvtq -dnca-anarplex.i2p,szdgwbm7utjqoawfnwtlmqtqemhycjucbvrxx46d3u2yecoicj3q -dnrs.i2p,p45lutcvpmt2o44lqnqnieo3gftjxqwhkpp64mruhztjbnmnxoza -docs.i2p,ato242wckzs4eaawlr5matzxudt6t5enw73e4p6r3wajwkxsm3za -docs.i2p2.i2p,las5l45ulwwf5i72nht6vk33sfkidcpr2okpf5b6mvgbk3a2ujna -documentheaven.i2p,3kbrghggbvqawdmxeesbnpqjtq7645evesf4dggj6hzbgvkzng2a -dollchan.i2p,hvmnvcq6xv7ok2efmllyxl6lei7ugidtkr3slgmcns2fjj3cytwa -doom.i2p,yvnq6yyiluav647i7qc3hpjkprrbx7x4hb7e6djgwflu46vwqodq -dosje.i2p,ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q -downloads.legion.i2p,xpmxdpuuptlekyhs7mmdwkvry7h2jbvpqpzsijqe3a5ctxgodesq -dox.i2p,vk27cjdrtegfdnrjqutebgxkpyrfj42trdfbsupl5zn2kp34wb3a -dozzzer.i2p,u4tkzwghkjkdujctdcuk5p4qiwqqarvs3bhexmuhgwn5e2zg6ljq -dropbox.i2p,omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq -duck.i2p,3u2mqm3mvcyc27yliky3xnr4khpgfd4eeadhwwjneaqhj25a65ua -dumpteam.i2p,2fwlpuouwxlk2nj4xklvm43m52tqyhqnu2fcfiuv7clvf3wd5nwa -dust.i2p,u6xgh6zhhhvdvefbqksfljfs3nyjvqcrmyamp5bryz5f4injmniq -dvdr-core.i2p,fg6l2ej6qrk5rkyfzdptxx5xkcm4kvdla4gg2tun7z7fm5cxxw5q -dyad.i2p,7n2ljphvp2dep7imoujvydxp4myuxfld3axwfgcny5xc5x6jj6ka -e-reading.i2p,z54dnry6rxtmzcg7e6y3qtsig5yf5fmehuvakcg5wnuahx3iafuq -e8.i2p,5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a -easygpg2.i2p,bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora -easysoft.i2p,ecbhsjzyt3pjp6zv6btqin5cbhlwqsgritljgyx5tc4aoarojeva -eboochka.i2p,ou7g64d5in4sugv5fgmmzwnunuw5hloixio7puthmrvrkwrp6egq -ebooks.i2p,bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq -eccs.i2p,n6jpy3ip4rmhln5i4f4uahsekhkhvqmhggho7y3b6qmwe5lrgqya -echelon.i2p,afvtspvugtd32rsalxircjglh3fhcjzk7gxrm3gw4s2yrpvzk6wq -echo.baffled.i2p,bfr3lyicr72psxvt2umqfb562rtex66w6q3hi3tktzkoyane2iha -echo.idk.i2p,63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq -eco.i2p,2dq2o5h6c6a674qaduipp55mid5iktumjbswuwmpsrcqaeowdvwa -eddysblog.i2p,ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq -edge.i2p,aknsl5wmzjmwyc4wxutfdwy2w5vgd3vcx52mqx647hcgvyurmqta -eeeiue.i2p,ilzqzqvzpclqdhhrog5oycul2aaxtwb7ndy325aphsfg3oefluqq -eepdot.i2p,t6edyotbxmxvy56fofdvmragvsj65te2gkhvzv5qnblicutyvgoa -eepme.i2p,i2dhxxmowponghj3tlxq43z7b2oqnht7pkxa5esoq2zcn4odussa -eepshare-project.i2p,sn26kom4qyuzouppv4lwnk6bqabdydcegtrilybviibwiq2s4nfq -eepsites.i2p,isskhl4ak3g7qevrarlmblddgr4ugnn3ckalwpjcvxafk5rjgypq -eepsquad.i2p,gsblvpx6kt5ops2w27clzwkvcnf2urreoi6kl4reoya4cr7l55va -eksprestren.i2p,m5eqo26xg2jddmh52t25idkbx3yybtf7usef3omhh5vmdu5wuzbq -electrico.i2p,65yj7dwjbne26e7pfvf4grwn3ohttvxtsbt5l5kyr3v67rjucyya -elf.i2p,duz6ey27ohpcp3llylklzdb63lylolzcixad6bh7rt5tkq42qqpa -elgoog.i2p,z6hrgkg2ajmuzlrddjlffrgctx7x7fkipm6c4hdzmohyn5wkr4ya -ems.i2p,734zw4jsegdf55zl3z6s22tqkbxcghu4qvk6q2wevjfmx7xhbn6q -eniologyktk.i2p,eniogu2clvvhs3nyag56yxcp5myuz5g5y6cyrqrbcmmqh3nr62qq -entr0py.i2p,k2v7tseaeoritp3qy2nehsi7e6flm5y67iywhjogk5s6vqeuaveq -epsilon.i2p,ze4bgohowgjzhoacnkuhb26stjktimoffyvt5nbfiuqis77fxgoa -epub-eepsite.i2p,yxvzjwd4vin6pnjauekdufh7lxaijal3kqe2bhakuf47g5zkb6xa -equine.i2p,3btnjagyljkocpgepkqrrdklzvesce3drdi6t5bjuy6mt733disa -erik-the-history.i2p,ab2lon2qoyiavdfofmukhsrspmiihnylucujmwouz632f7a5pqpa -erowidmirror.i2p,erowid4soqvh7s7u7jc7ywboaghsqkshrl2ptqq3oll7tqgsia3q -es.hiddenanswers.i2p,cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa -eschaton.i2p,xe75f5hzmrq6rkhsef2geslmi2v2yfngdiysmlmxvh7b4pyyjk4q -esuwiki.i2p,cwxuiwcpymb72vm5vluba66ofhugyf5qeevvwo7e2fqrxl243coa -evil.i2p,ljfl7cujtmxfffcydq77pgkqfxhgbikbc6qxjgkvcpn4wzd73a4a -evilchat.i2p,s5b7l3hzs3ea535vqc5qe2ufnutyxzd63ke5hdvnhz24ltp3pjla -evilgit.i2p,mx5vyoqhg77yuhthwznsxrepjsemq4uwitx4lxdzetk36ryl5rla -exch.i2p,vsyjsbbf2pyggtilpqwqnhgcc7mymjxblamarmxe5hmbxaxvcndq -exchange.gostcoin.i2p,n33uthzyqsbozl2qh5zii2bq2nnvbz6g6c4ew3mwp6uukk6u7wva -exchanged.i2p,ylmulgfskl6uiwac4hw4ecwqdzd3oxtwaemzj25zc6k5q4rkexra -exitpoint.i2p,5zmjurq3enudcenegnxu5hqmfmayz4lxvnik6ulch4xssa2ithta -exotrack.i2p,blbgywsjubw3d2zih2giokakhe3o2cko7jtte4risb3hohbcoyva -explorer.gostcoin.i2p,ktoacmumifddtqdw6ewns3szxths2hq2fat2o7xnwq4y3auga3za -exseti.i2p,rgzuvkgcgpm7tu3wiwdgmb54wyzipcrlpaxvdhm45bs3usjmyjbq -eye2p.i2p,szycufgqnbcc3rofk52nr5sf54btafj4omw4fx3ekm7rza7jd5gq -fa.i2p,6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka -fa1c0n.i2p,o5m4ckiiea3wv7qgb3iwvf6f3tr4rlaysitdxbgp2erhon6qmcra -fa1c0nsec.i2p,qvmto3fzqsskry2426kvrk56rlhoaqei5qispo55bpelnwzfcl4q -falafel.i2p,djpn5cbcgmpumwcriuzqistbae66txca2j4apjd2xesfgb7r5zmq -false.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha -false2.i2p,j5i2tfumh3ti5sdtafwzzbpupmlcbg5drysfay2kxbdpsaljrosa -fantasy-worlds.i2p,62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq -fazanka.i2p,fazanejlhnrydwqyrnwfk2qok35tnoydhmwco7g6zpca5dn2gbsa -fb2book.i2p,3a24ytysvevkcgtssyd6fjgy6efck3bfonkanh7bphal65fthfvq -fcp.entropy.i2p,de6h6ti5z3mcbdcwucu45vplikqyoeddsu3rqy7s2zy5i47j3peq -fcp.i2p,ndsznnipoeyapnsg3gj3yi2dzsqduxwalmujm5mzjm7e6x374tta -feddyob.i2p,lhl5ij5ddgmvbg3dfqt4aaubailhaphmw7ougfnldzixkmp3f25a -fedo.i2p,zoamh7e3k2vf2g6pfy46ho4taujk2f4mxqqsv3gbg554fxbvyfqq -fedor.i2p,mdlrk3gr4vecpmgii7lwpuaofoy3hcr3p2pyifq5wum6tsffkkwq -feedspace.i2p,kvtnpx4jylgeyojfhix4x462sqn5uork3roml4sfzotkxx62i4wa -ferret.i2p,kkqie5qmja7bkf3iad4zxhrdarwj7kbrx2m3etn5kmba3shgwj4q -fido.r4sas.i2p,i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q -fifi4all.i2p,v2stz6bsot7sbjzix5tky5dm5ej7gidmjnkvzqjju5xvz5sz6fwa -filehub.i2p,rsbtaakwwfvodxa6xyn7ea6tmi2andrfmlhdcasgy2xx32no2cpa -fileproxyxmpp.undefined.i2p,oc6caemyolql5xwav6y7kputwcb357qk2matzevmrlyrm3y7f5pa -files.hypercubus.i2p,qfglq25jwieszgyt7muz6dambzqsrmjhhszygzzx2ttubc77sffa -files.i2p,w2sy74xe6oqnuz6sfh5fhkzu7boholgzd5f3anhj47srxwpj2vaa -files.nickster.i2p,yil7dp2hg5pbqyovsiwb2ig6zjsq4tize3fnwemmqdrr6j5itdtq -fillament.i2p,udj2kiino4cylstsj4edpz2jsls77e32jvffn2a4knjn4222s2oq -fireaxe.i2p,ov3ev5dplhdz6ipy442ftb4kzz4dembm3ifs2jo25qhiyw6f4ogq -firerabbit.i2p,awqh7n3wskzl3epyvkdwgarmfybsncm7vye6psg4tpkmplh3mj2q -first-world.i2p,w35uyqjcbdrohmtwgk7pf36djxelyiq5gs76hzyrwovpnmkv2gcq -flapflap.i2p,y53ceza7iji2vq3oa7om64whzakt6nnzksaqhmkqiisk5tvqk56q -flibs.i2p,ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a -flibusta.i2p,zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq -flipkick.i2p,aso5rzc4ym6g2bcbxjy2n573bmbenkjawva2jg7fhyqhwtwgu6lq -flock.i2p,hflpi33ko5bi2655lx6bpzstdnjqgzrz23inovqjx5zpntyzyb3q -floureszination.i2p,vitpvfb25sikuk3crgcvtcdi7hajxnnq2t6weay3no7ulur2wwwq -fluxdirect.i2p,kudvuk4mc2rfqoi2f3khn5mz6af3hdaq4wx4bnvohut7hktoumua -fmnet.i2p,zveaklfzb6xmcayvmmkdvqnboibmcddnk7tvcw56l4au5zuyrkqq -forum-ru.i2p,fex6v4zccrovs7dixqbigbbqtrb7ylrmpgphwnwoyjutrg56qmoa -forum.anoncoin.i2p,sytfn37x3exrre77ctjuo3g7nhnky32bqgpcn6jr7e5lijz75nuq -forum.fr.i2p,onvelkowkbuwrglhw2cnocggvbdudi75sll5mfirde3cbopjqivq -forum.i2p,33pebl3dijgihcdxxuxm27m3m4rgldi5didiqmjqjtg4q6fla6ya -forum.idk.i2p,bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da -forum.rus.i2p,zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga -forums.i2p,tmlxlzag7lmkgwf6g2msygby3qttxvm6ixlfkq6s6cpgwubp33ya -forums.presto.i2p,qt3s4ooeegj2uu2qvb7q37m75mbllal4fy27ook2fs2l7qri36ca -fossil.z-lab.i2p,yltaujzwg3q5hcppo2xuun63i56ywfcr3hckn2fjo2apgdh3lj5a -fproxy.i2p,keknios3gm6kh6onez6x2bm2t7stv54oanvltuagphgdfjdw5e2a -fproxy.tino.i2p,fpaituvuvyxp6xdjnv3i27alnj2ifzcvqdweqb6yj5uybotzvyha -fproxy2.i2p,r4lgw4wmza25g7j5fjocjbwzwthfg4ymcbm52ref3hh2hogskcza -fr.i2p,ia6xlsnygorllplx2owokahtrkospukvsmysz7i7bzw3vejc4hdq -frankjin.i2p,jllhyhjs7uzhcez4nuvexkynpp6hrptjukxboolamgusno5sgrza -free-i2p.i2p,7qnxwbypvntysdse5o2x2w3kggrgzb7piuek75gbwish3dvt6wbq -freebel.i2p,itir2seplkvrcgvlcw4v7jp6zkzdhmu4tbu2kcev2zkn3foi77yq -freech.i2p,upld2ui3i7iylcqt7j64s6rpwssbvlxiuxsellrg5br6ksikiwwq -freeciv.nightblade.i2p,rluupsgxbvw5t7jno3apyzlrdirjkljft4gdoy4mxxh4fmd4xzta -freedomarchives.i2p,4ck6oliqfjz3sccpya2q4rh5xkj5xdxkqs76ieml37537nfhwd2q -freedomforum.i2p,abzmusjcm3p3llj4z7b5kkkexpsxcnsylikokouk5txfim3evqua -freefallheavens.i2p,giqnkltyugfmsb4ot5ywpvf3ievuswfurk6bjie4hxi2hh2axajq -freenet-inproxy.bandura.i2p,rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a -freenet.eco.i2p,2kf7ovb35ztqkrurkm76y34jfpwi6go25xj7peznnmxrl7aieo7a -freifunkmobi.bandura.i2p,5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea -frenchsharingforce.i2p,jgj72ptq43shnabzljbza2o3kx7qryrpjqhotscalllr7yqiq3ga -freshcoffee.i2p,sscuukigp6alcb3ylhkcugoejjfw5jqgtqbsbafw4hyku42lgc3q -frooze.i2p,m6ofa5dmyse4b4jg7kfmluuuc4pw5jqu6zh4qnboin4vropxepja -frosk.i2p,63naq7zb3hvbcppj2ng7qwf6ztusp4kwpyrzbt4ptafcdbu4pfjq -frostmirror.i2p,ycz3imuz6yte2zhlapmsm3bsvc46senvc2jxzwsbfdct5c72qulq -fs.i2p,ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q -fsec.i2p,z432orw3ba45bxy2adkb7bdycva5xrraqu4fbzki5bnluxiqtvsa -fsoc.i2p,vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q -fsociety.i2p,6dnueis33hzitgvimakyxoxfqu6o4erfiv662jzntrlyrnrb27wa -ftp.open4you.i2p,4ek4ltehr35aicnduha5gl3tiu6acnbk7v63yicjyd5sx6mzs5yq -ftp65000.open4you.i2p,vzv2sjdkcgzyb47u7ump63sqgli75za5qcgilnzpt5cyvpyez5va -ftp65001.open4you.i2p,e7sqiurf3njnhwbkeen5wjoqgfdhdpehcqgwyfpm62oew7c4lyzq -furry.i2p,nsp4dwzfkdldtly3z6fewmicrurncrie277catksd7mpt6xjmbna -fuubar.i2p,ptekidraefaa2k3333kyogg563jx7htwem7lova3tt5eqebpiebq -fxruby.i2p,lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq -galen.i2p,4weo7zkxscxbcouiqx4mlnb35uwl2lromikzk33er3fljktyvi2q -gallery.i2p,2ps7wt3v67ni2d535lwaubpsuuhxsg3igifsy7qlzolbrxaimunq -gamedev-blog.i2p,fdxgivqgwkuedxusw5ewyrrm3dxjwghr7oa2pato7ugilmdhmluq -games.nine.i2p,ov27guhkdyhgdkqcsi7ipxsbudytn7bj3qp6ovwk6ih2wwu6sl3q -gaming.i2p,rfxberwod6st2zc6gblqswxjl57nucgc3xrbwss43pe3dvqqzj4q -garden.i2p,qkk2dqx6nocycgt3vinsoc76cxkb4jreybcpgz3fcps2dbe4rowq -garlichan.i2p,fcu4dlmhtk5lnhvfjb7dmmxxavpjzd6e7ukqwpzml3aducdfjfja -gaytorrents.i2p,fnggbr2t2aulr6rvlo4aehotx6wecfob7u3k2nxsnvtm4xex424q -gedanken.i2p,kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a -gelboorumirror.i2p,lgjfssrj7sznvli7ebtadzo2leefvxi7uzyt7aprtgxyh3xmi2cq -general.i2p,5fklrsztdqpl3hkkwwrrw2rdowrq7wwhwb6h7avvk4fhansp4vvq -georgebartolomey.i2p,r4z5h7uystl6hy7yikw6uqcee45xeb4ghojcizz3rlokqx4jpz2a -gernika.i2p,wpzqv3lxpecdsvcaadvbmrhhwlc7kp4n2mijdv2qjw3zr3ye232a -ghostsh.i2p,pp7p7ww7ug7qwkirgfrnwyxplp4cmyv3aksk2mroplterz4p6axa -ginnegappen.i2p,kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja -git-ssh.crypthost.i2p,llcp7jvz3hgtt3yzkdgjolwobisgvhv4xqa5a4oddejllyozur5a -git.crypthost.i2p,7frihhdcisdcyrzdbax6jzvx5gvtgwsm7m6kcem2tlaw4jtahbqa -git.devfs.i2p,yklo4bsbwi66r2wlbug5jrkpx6tlquo34knzaopsboiz5dnxn5rq -git.idk.i2p,7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a -git.psi.i2p,em763732l4b7b7zhaolctpt6wewwr7zw3nsxfchr6qmceizzmgpa -git.repo.i2p,vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq -git.volatile.i2p,gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq -gitssh.idk.i2p,g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka -glog.i2p,ciaqmqmd2wnws3hcpyboqymauyz4dbwmkb3gm2eckklgvdca4rgq -gloinsblog.i2p,zqazjq6ttjtbf2psrtmmjthjeuxaubi742ujrk2eptcsaoam4k7a -glunews.i2p,2bka7rmfn75ollbwq2cgzf35yxx3qz3lttmwi7i5t7iptlj74yja -go.i2p,ll6q4lsirhwkln4dqxwqkh2xu4mu3jiy546b4uhe4fypyb4vvx2q -goliath.i2p,clw76fpe2y7wbo664xnsdccdmulmcl35b367lkwucnln2l4ckk2a -gonzo2000.i2p,nogsv7okydhbvrewv6hb4xdojncvhkusnyib4lglluc4uw67a37a -google.i2p,4p3ajq4cotnflmuv7fhef3ptop5qpm3uzzgp5bahxif3nc4w3ffq -gopher.khzae.i2p,ql4l3ftj7lmrt5lxincilpey6czhphmozl2typgumaieysy7jf4q -gostcoin.i2p,4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq -gott.i2p,dqows7dpftxxl2bd4bgcpkck6knrysdun6mtqy4ms5dxobbvg3ja -gray.proxynet.i2p,5qcbsqgj342snriycuzbwad5srkqx3qdpw5mk7hkjeafzfqnewaq -green.proxynet.i2p,tmg3bdw3eepv3efh24lfeahxw7dybzakomyct7hxvxyhtc63o4cq -greenflog.i2p,zny5ftmhzxulxzyczmeat53qjnue2xtqv2clisc7dg76lwfceecq -grimore.i2p,kbepzad33bwjfi3mqzwu6sefv3zeanwsgdqnotius6gemsjlyckq -gsatdesk.i2p,yfcliyat7jjuj3qfdbaunlbt25icteuilkmru7unl2tdmq5lxaba -gstbtc.i2p,n33uthzyqsbozl2qh5zii2bq2nnvbz6g6c4ew3mwp6uukk6u7wva -gusion.i2p,4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta -guttersnipe.i2p,kizkhzes2bzp45widihremo6geepfk7dl6juourkvzuvlc6y3spq -h13.i2p,tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq -hab.i2p,dtmzgkqferk2aobaneaeihwmadix2ljhcqr3z5zo2dv3zht3i2sq -hack8.i2p,un63fgjgi3auvi7zscznwqfol7ka4johgthvqf635mg3fefsjgpq -hackerculture.i2p,pl4pccq65gaee64zgo2slvn3ggjui56ewrcgxkmfuua5p7dwek2q -hagen.i2p,e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q -hankdock.i2p,skyf4qawmvxbanizjc3v6bampavfj6flm3x6evdvdppvu4iqkecq -hashshop.i2p,ltrposvzibc5ahwbcjgyk7akq52udeuetprotyy5sbclxp6v6yaq -heaven.i2p,y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq -heisenberg.i2p,jz4quyw7zt63tmw65jfp76fblwadjss4iyi4puqdg3dye7oaqlvq -heligoland.i2p,gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq -hello2600.i2p,khpazz3f747z5zet72s6g3dccw53bfdqyhxt5da4sv7ouve5veuq -helpu.i2p,3rs5qlv5bdpvwmsxhnh4gjw7yrta7eoe6wjcrny6fudzottnxmua -hidden.i2p,iqodhhqo473qv5gwhjcs2bsrbhlqtpzgpnuumpastfiyhuwb2kyq -hiddenanswers.i2p,kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq -hiddenbooru.i2p,zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q -hiddenchan.i2p,6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa -hiddengate.i2p,rvblcu54jvkkfffp3fobhunsvpgfc6546crcgzielzwe2s5m5hbq -hikiko.i2p,jwifa3ysjbrygc6szxchn2bck5zonnihhxwrotly24se5xob6p3q -hispagatos.space.i2p,tibqaokyoc74mljuwng5ugulim4jfv6ql7j5vocqfjyrjwxrz6qa -home.duck.i2p,jsh7yfvm2t5urdcnmfzdy4n6vegqskdtlwem53chgxli4ipfmuma -hopekiller.i2p,kcaelbgsvrkiwpx36b4wxofebrl3njx7rgm5amzfmqwbomt44cxa -horo.i2p,vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq -hosting.i2p,ice6ax5qrzwfwzsy64bctffj6zlzpuzdr5np65zsxlbt7hztyc6a -hotline.i2p,6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq -hp-net.bandura.i2p,z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq -hq.postman.i2p,27ivgyi2xhbwjyqmnx3ufjvc2slg6mv7767hxct74cfwzksjemaq -http.entropy.i2p,ytu7kz5bdoc26nkpw2hajwt3q7n5rcbg2eokyefhmkxmmslimbdq -http.i2p,ygzrfsuuytq6chx26qtdd5a3z5as3ylymqy7hxjnn4xaxisw4x6q -human.i2p,nrtcelq3humyfvoxmzmngpka6tmyifweouku5mbi5av4lc43hzaa -hypogeum.i2p,wryo5vzllas5g4hxjhofzmvp2cnrv6flpof7pwd7lrrdxeazb6tq -i.i2p,5lpdk3gft3wccs4npmadb5mh3hwb7uh63ehym2x5rdre77xtfleq -i2fund.i2p,ibtuscldyp6zog3dqxw43p5gcy57jfvmvaczohwqbydlj3rdf7dq -i2host.i2p,awdf3nnmxxup5q2i6dobhozgcbir7fxpccejwruqcde2ptld443q -i2jump.i2p,633kqgmwzzu6vhkevwvbf2pfyejt3gkes34i6upa4og57fgdfcxa -i2p-bt.postman.i2p,jeudwnx7mekjcowpqo6xpkwn7263c57y5piurrjrdzinjziu4fla -i2p-epub-eepsite.i2p,yxvzjwd4vin6pnjauekdufh7lxaijal3kqe2bhakuf47g5zkb6xa -i2p-javadocs.i2p,icgmr6hhjudl4yxhtuq4pxvss2pzypwddzowajgs5rdz6f55novq -i2p-mirror.bandura.i2p,aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q -i2p-projekt.i2p,udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna -i2p-scene.i2p,cc6z3xuw67d2mpq5horgu4mpk7hybmhutotmwvmzzpvoudggifuq -i2pbote.i2p,tjgidoycrw6s3guetge3kvrvynppqjmvqsosmtbmgqasa6vmsf6a -i2pbuggenie.i2p,bioq5jbcnfopqwvk7qssaxcl7avzeta6mu72jmxjeowflpcrhf6q -i2pchan.i2p,tduxyvfs7fzi26znvph3mu2d2ewaess7emomfci22wvownajphuq -i2pd.i2p,4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa -i2pdocs.str4d.i2p,yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq -i2pdproject.i2p,5a7tngsj4ewoz3ufqoklzaxchyg26qojmoivoj2ianiokebri6ba -i2peek-a-boo.i2p,qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa -i2pforum.i2p,tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda -i2pjump.i2p,2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka -i2plugins.i2p,bb63kmnmbpitsdu45ez54kmogvvljn3yudksurcxiyq7dn5abt7a -i2pmetrics.i2p,v65p4czypwxrn35zlrfkar2w77vr42acd7gbszegsrqq4u7sip5a -i2pnews.i2p,tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq -i2podisy.i2p,3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq -i2pseed.bandura.i2p,2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia -i2pshare.i2p,kvzex5aqmvpofk7fpyjuwsbxyhgqjvllqgltqu4uuwa7saddjtwq -i2psurvey.i2p,pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia -i2push.i2p,mabdiml4busx53hjh4el5wlyn4go5mgji2dxsfyelagi4v5mzjxq -i2pwiki.bandura.i2p,isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q -i2pwiki.i2p,nrbnshsndzb6homcipymkkngngw4s6twediqottzqdfyvrvjw3pq -i2speed.i2p,532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga -iamevil.i2p,au7jhslyt4cxkjp365bvqvend3hhykrrhbohtjqlgoqrlijbezja -icu812.i2p,bxgqwfsnr3bgnr6adn62anjcin5nuthqglotb3wn3dgynsfofeva -id3nt.i2p,ufuqdzsxltiz224vq5gnuslt3a3t72dhy5kq6i2xway53m6pzv6q -identiguy.i2p,3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva -idk.i2p,b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq -idlerpg.i2p,ghw3xixix5dk2y3pzjsvmlput7d3z6pawkwe6hme5jddxmzqkama -ilcosmista.i2p,6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q -ilita.i2p,isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba -illuminati.i2p,syi6jakreatlm2z22u76izyqvbm4yi4yj7hr7jb63lgru5yhwwla -imghost.i2p,bw3ncsqln6iiflm2tlf3ugxg2le4pb6lmy5uu6rb6csw5pzwxpeq -imhotep.i2p,qegmmhy52bdes2wqot4kfyqyg7xnxm5jzbafdb42rfoafadj2q7a -in.i2p,r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq -inach.i2p,nzusnipqsecluzj2ctbq5xywnfebcyg3e3i6ustodgk3kplnfeda -inclib.i2p,ux6prousphswf56bym7yo7kst4ybh45y2z2wrnw7dujmrz56hq4q -incobin.i2p,eorn2zs5nlj2noxflomqbbvo6qkl5xprz3jjoso6ap5ywupsxsjq -infosecurity.i2p,v3gkh5kqzawn2l3uzhw6xnszsh6w3nztjmlwil7p4kyrwrsm2dba -infoserver.i2p,jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q -inproxy.tino.i2p,ex5yf6eqqmjkrzxnkn6cgvefgne24qxsskqnpmarmajoit43pgma -inr.i2p,joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq -instantexchange.i2p,5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq -investigaciones.i2p,n7hqd4asxrdwf3zwo7rzv27y2qkcfmakmz6mjar6aw6hlc4c7mha -invidious.i2p,owxfohz4kjyv25fvlqilyxast7inivgiktls3th44jhk3ej3i7ya -invisible-internet.i2p,jnpykdpp46zenz4p64eb3opadl5g42dls3rurk2cvq6a3g3rvbvq -io.i2p,tx22i6crnorzuti3x6va4mijsbhoqswy2cfdxjbvprgsq4eerg7q -ioannism.i2p,g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa -ipfs-gw.i2p,6ox7c4vu2dwezfxbtlv62owd6n6ijgcpl66vv26q4sslfcp7yaxq -ipfsgw.i2p,uxqdckmpvrvgz4rkudi7ndgnhcz2xgm6msbql6dwpyqwg6zgdyva -irc.00.i2p,bvcja52pppgfspp2ueuipoysjnvvoyblz2h6smpxcmanjquogirq -irc.arcturus.i2p,5nywlbn35p2nwsymwpfmicu6fxono6g64vwusxbsvmm2qwz6vupq -irc.baffled.i2p,5zmtoopscym6qagkvpgyn7jnkp6dwnfai745xevkxlou77c2fsjq -irc.carambar.i2p,hxzbpivxqxy6nuae4t6fnkhcgnhs4c72vt6mmsqfmfhrkn2ca6gq -irc.cerapadus.i2p,e4ckznxcxvgyikzjmjsu72i2dbj2d76ogexyukklbjvpcnhp6zzq -irc.chatfreedom.i2p,n2y56bfettc7lyfdiw4uojt3ok3zfcgudwzispwj2a5po2k4gfxq -irc.devfs.i2p,2tnl43crujj7gfko6ln4gp64zl5fkh4djvcjx2piyjvvsl76c5ba -irc.dg.i2p,fvp3pkcw4uvijqabwtekcdilklp73gyasuek67wdcs2mucep4caq -irc.duck.i2p,chdpmm4gxffyn24xx5dhxvfd5httu42i5gtoe6cctjlsf4mbofeq -irc.echelon.i2p,ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq -irc.freshcoffee.i2p,ubiu2ehtfnrleemgpzsqkahwnvzuaifqa3u4wmaz5maaisd5ycfa -irc.i2p,l3ohmm4ccxvyuxuajeaddiptci5lsrnxtvtyq7iohphrt3oj2evq -irc.ilita.i2p,5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a -irc.ircbnc.i2p,4rqcsqd7xif6r4v55blqvmqu5er6due4eyene3mjorfkts4o3rxa -irc.killyourtv.i2p,wre4majmg2vnbi6id27et7yw6lnpf56wkbm6ftnlwpvxnktq73hq -irc.kitsune.i2p,cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q -irc.kovri.i2p,o4hfe2fyc74rjfo6o36h4vcif2l23rv45l5v3h2sjtfa4lpxd2eq -irc.livingstone.i2p,pbvmhz6osszi2jmmpsn6zbfuhhbolrpqnoosnzcbyxghh5kd6ehq -irc.nickster.i2p,dhq3fhd5scw3jqhj5ge7kqfpprfolcgxfjbaw24obohaiqjtdu7a -irc.orz.i2p,7gifacog4aoons3syybojbbnyqqaaqijhngrehn2xlq3eucuyjcq -irc.pacman.i2p,ckxfx7oo5qbufui2i7tshzs5hef4yafgpw4jsogsyetcgk5tbn7a -irc.postman.i2p,mpvr7qmek2yz2ekegp5rur573z7e77vp3xqt2lfbco5i6nkfppcq -irc.r4sas.i2p,hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la -irc.rpi.i2p,ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q -irc.sircd.i2p,iqevtbwle5p24wn3kjr5tft4dz6x5p7ybhjnqmly76t6jef2qvtq -irc.talkfreedom.i2p,bwicwfqn4kjotbxfwyflxmzqv3ohdeespcco6untb5c645hslebq -irc.undefined.i2p,t6phciy5wytbthyi6fxwz5towjtae44iqsgtlp56ygx725tetmhq -irc2p-qdb.i2p,j6k3cqiviwqlr2oudf3pezowtpd44gm3jgg2wg6c6d4m5gq6jweq -ircssl.cerapadus.i2p,4x2i745i4w52ss3he2kse6tzwt64pr62yvrcb72lgvrb63fup6ea -irongeeks.i2p,ecduxoion5uc5hnvzjxff6iiwhdwph6gse3dknyvlo7e6gaeho7a -iscofsi.i2p,enjgdxs4um2dmhdb2ajff2egrdijkjji3g47m6unb74swbrqsddq -ismismis.i2p,5bgjw3l4unhq2suqjosefozpbxlqfcb2ebuqmfh4awazgp6hr44q -isonomia.i2p,dkuoddjlafw436wathmwvubtxmfxe22gpqglgytwsaukdnh5aa3a -isotoxin.i2p,wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq -itemname.i2p,o35ut7hgywy35okvgkjkv3ufzv2ejv4luap4oytwbyy2jqy6u4vq -ivorytower.i2p,fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq -j.i2p,kjxvohlsf5sdrzxzfcrmvquccnoevi6ytbl63mstsru5wt2dx3ea -jabber-2.i2p,pvnmzgemetkwcuvt45omgowmeznwk5xw3nc3ygeoz7yekqxy57na -jabber.duck.i2p,rhdzvvzraqzzm67zpyegb7knpfrjeffitixqzeyymdoz56uh2rtq -jabber.i2p,32dft3x7pnwmgmc24yzl22r7kevefk22k66ms2dssd4w3skcgzqq -jade.proxynet.i2p,4tx6x7pc542gmxnlzuzlqf76g6gfom3id54dcag2kngfx6skcgyq -jake.i2p,v2axvy6pqefnla7gun5fmqs4lqe4xfyqovgzcundhxrpcdvfd7cq -jar.i2p,2fthkmujup3xiiu3yple24n6g4emzdiiimbuqwvpdddtsr3c4nrq -jazzy.i2p,ha5c3zafwkt6mwqwjcf4oqwvbwz473652ljjadiwrj4gfkfkjofa -jdot.i2p,kw4jr5qw4bhnj33avkwankjdh3zi7wtahlmgkjwvsv2isskkzgpq -jhor.i2p,c6rnm7oemydhuwzmhwwwxphkzanez5rnn7fkcs3lpgu6gkgtssoa -jikx.i2p,aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq -jisko.i2p,jxgfvr663uhr6m65hrgkscshysfshkq32ywdubc4ed7zda3e2pca -jmg.i2p,oglpnq7zungdukmk6gk5fzj5jp6wibuoihqgks453wztrwos4ggq -jnymo.i2p,nbfplxgykyfutyadlfko2rmizdsxox2pee2ahboj5mju4s3putda -jrandom.dev.i2p,htynimemonyzqmn76gworxyfkmqtsa7zcprbrd3i5cxqqm75tuzq -jrandom.i2p,dqows7dpftxxl2bd4bgcpkck6knrysdun6mtqy4ms5dxobbvg3ja -jrrecology.i2p,qxi24gpbum3w3kesuxvheyu3p5u5o6tuvoypaolub2gnvbld57xq -jwebcache.i2p,xdffxnxtjd6ji2zig3cgva7igvl2tiapyjoc7ylbzwqhxudbmvfa -k1773r.i2p,zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq -kaji.i2p,z5ic7gvm2k4doczphtrnrspl2w5sfbss2de4z3ihjijhtjw67ydq -kaji2.i2p,4lscgc6napekfx7ay5fdcjofeja4fnl7tqcd3fek63t4saavur2a -kehaar.i2p,awzzfuvi7rrq3ue2qoiuso5n6s2cgm5zevsycg6qv7tcipok4eya -kellett.i2p,cmhgn2lsgvfrhrgo5l2fqxkzpngrl2potp2v3jw7juti3jrr2rhq -kelvinchan.i2p,6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma -keys.dlms.i2p,znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq -keys.echelon.i2p,mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva -keys.i2p,6qv4x7ltaxckd4vbay5s4ntqqflq4efk6oke2d5yzicqrmk443ba -keyserver.sigterm.i2p,isoxvnflrdn7cm76yjlfg5tbcugoito2hur7eidbqmo33xmwz5ga -khzae.i2p,5rxgt7ppz6newvgfugr4iwxf26pazhhdzst64aqoklhszhbvsira -kibykarni.i2p,xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a -kill-all-fags.i2p,enovepzgagvhnkmchqix4eb2uhcmmlmt2gpggbjsu5zklffbsykq -killyourtv.i2p,aululz24ugumppq56jsaw3d7mkbmcgo7dl2lgeanvpniyk2cbrda -kinkyzero.i2p,zstwq5kvc3e3jqmcaekdb7eqb4e5rxlo6bncv5ny6nq3of2o4cka -kitsune.i2p,mubckotdo3ju3fof4z6t4hh6a6rhzmkexclh4vfhddfyo6tkqtta -knijka.i2p,knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa -knotwork.i2p,2yocdbcjiyfaqgxb4l6oenrrrrie6nydgmbnbfulqg7cik6bozxq -kobato.i2p,l4kzozq64uv7azieh2ggmsb22biqdv2lodbxbb2tlbnozyxfyzya -kohaar.i2p,qchpjehbhqjbxdo7w3m55jbkrtsneb7oqoxcr24qttiq6j5g3z5q -kovri.i2p,j3hdkil4juppzdz2z3hiybauoagcq4rz3lcqygge5tmg2ea7vs3q -krabs.i2p,3yamyk5bgfgovg6zpvtvpdjk37ivjj2wog2w7wha5agzgxxkqaca -krotcpp.i2p,v3zzorvnpwdmec35s22msqufk6mwthhmyiprhxw5l5o7oxntbvvq -kuroneko.i2p,wbit2huhhwlyqp2j4undccuyrodh6qcmzdeyuaoy5o4ym7g5gdgq -kycklingar.i2p,gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva -lainchan.i2p,7rov2od4lmtfswthoy7tziiuixupugkrexpdvyso5yj5pgicxvga -larvalstage.i2p,h6de62jrrpn7s7omf3y5n666fyzwyzolkctsatrgshgp4juozeja -latinum.i2p,n64izx6kyu3xv6yvc45mvpswlq4txbkc5y2okjwyoseb5lmzxoea -lawiki.i2p,ddwc3z7tm6yuvh4mzmqne2ifn7qglbz73zyqxtkewlpzl7kpmqzq -lawiki2p.i2p,dkb5f63obsb6wmzcgilebjvmgvw4wmcgzbkczu3sntgckmtzweza -lazyguy.i2p,ia6xlsnygorllplx2owokahtrkospukvsmysz7i7bzw3vejc4hdq -lbt.i2p,5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq -legion.i2p,5oirascyhwfy2tr2horw6mixozsre7z6s7jfq7qbnj523q3bkebq -legitimate.i2p,rjeymxhm76gabjcsdggyjaeskttt2kxnu5cba4j66hpkep6nleuq -legwork.i2p,cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a -lenta.i2p,nevfjzoo3eeef3lbj2nqsuwj5qh3veiztiw6gzeu2eokcowns3ra -leonamia.i2p,urcwgeiyaopohtu4pgfjo5s3mggthpjl6mgbgjfkwgcxio5x3d2a -leparano.i2p,kt35uyvyq7ntfny3dfqfno5crrlkzf6dzuabgqoqzldti5tyfveq -lg.i2p,3xqs2da7pnsqzmxqudsiq26vu6fcmd4ok7nsdytwyovz6omrggla -lib.i2p,nqolhhg7wtr3wyjsxszjhjgh45uztj3xlrtydagwi4fi7ftnbqsq -libertas.i2p,jpv23ou4splo2yd7pqj23s7gyc746bmnubejevokt6nd4sckxdoa -libertor.i2p,7gajvk4dnnob6wlkoo2zcws7nor3gunvoi7ofalcps5lc76wruuq -library.i2p,brqqaq44vbeagesj5o3sxcnkc5yivkwouafyxa77ciu7l644ei2a -libretto.i2p,pa2osj63tq57g56dfn2ql2yhxbn6pwe2vra6qw4prw3drny5di5a -lichtheim.i2p,wqm5qmhliy2bl47spbbmjzh7xzn2ulu7jkqzejkx2qjn2qhsiv3a -lifebox.i2p,pyqjnycm55cuxow22voqj62qysrjdnb6nbyladaiaiirqi7vp2yq -lifeware.i2p,3rqm2yt4dre3ztabc7pksgle7rqryd3y7hq7tontaq5iytpfruoa -linuxagent.i2p,ap5riaikrjq2uv5qvy7klzhhqywvqi7wqscyipsewcun7w2eynlq -linuxfarm.i2p,br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q -lists.i2p2.i2p,vmfwbic2brek2ez223j6fc6bl5mmouzqvbsch45msvyyzih3iqua -lithium.i2p,3h6ezhcq4ob7ve4spqh44ij3v7yxzputetlpft4kad2gelegmzqq -live.m16.i2p,gjd54vyxuvx2epu3eqpo3q3at7u3keqp45mmwzqxhv4cenranopa -livingstone.i2p,amtstumiegib6ujcihbjx5qjksxri4gagibn4wd7eqd425oybweq -lm.i2p,yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q -lodikon.i2p,u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a -loinen.i2p,fhlhdpvi6mag7k3ojtmjcwbmkkvhdz5qidjepdcjfs6mkgia425q -lolicatgirls.i2p,a4lzmjyba7aq7hl6okqpds7znnwymolqnr7xhvno2wraqb7uhfla -lolifox.i2p,7fd2clkiotjnaoeigdtxlkkb24eik675ovezjf67x26ysham4zca -longhorn.i2p,pohcihzxzttjclrazhs3p76wt3ih737egb5bovqb6ym3du6z3o7a -losinka.i2p,r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq -lostfaithinhumanity.i2p,xjv2xlfbipbyjptzgisescucanns7txvovq3ibntkc2cgzttftha -lotnv.i2p,ziwehd4aooxlcdoixbb6xxlgd2s3snmalffca3pzwc6tmuf2sftq -lp.i2p,jiklbujn3cbfikf4pca526jgmorx6mxhil3twqmfoteaplx6ddwq -lucky.i2p,wx36m3wnpt2y6bngdpg3ifrarvtkpwnluarx377bllpgvkuhybaa -luckypunk.i2p,y4t6cujjxnnrtln3rgmfbgbh46hic7wkef57krd7opitbgngohka -lunokhod.i2p,3yc6sp7xic4grmpfecbwuij6z3dp5kdgoo362pszaco7io42mnwa -lunta.i2p,2zzyzl3qany4rs2nze4nh2jzxnpp743ypsexda6safaw5jbcvblq -lyra.i2p,xfinw5aapff3ajbm3vnk4t5wor3lzcuwtq73rxz4yb7umlnmyl3q -m16.i2p,ucsr3eveuc4mx5y6gxnoaywd4ojvbel5q3ynns6s5yfw3vusmfva -mac7.i2p,3yjowssqzydciwa5zx55kazgf7q7w6g7rkocr7bngy35ii44t34q -madfrog.i2p,madkultsfghzjsdbfi6qk2s5s5oqsuz5agg7jeiymhjdyywvgtuq -madman2003.i2p,a2sam2xbhxbzmeyobphbxrkdwlppoerewq5qvibbyk3ftsr643qq -magi.i2p,ihmyjvrsrt6clo6mijrpmd5jbnqg2htinoxdeqh3d4ygsbyzcqva -magija.i2p,magicxcn7esskepeajskvckrpkj4hopj6h7j5wm2agws3a4wrzdq -magix.i2p,cgfnyxv62msfynsfbv3kju22j2mt6tfnopshhmrcmpcrxyts6xwq -magnetmotor.i2p,n7cwvtnbzrusgkx3y6426vxl2trrrxffikrxnlnsmip7uwz6wumq -magnets.i2p,snz46nez6hrrpg6336neinflw56l3vwatk6bzzytwu77xmsfsoca -make.i2p,yr7r4o4ijrz5w4movfmfsn3yrlox2mjofrgiartn2qna7us7pd3q -man.i2p,progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q -manas.i2p,6qolj62ikkoq6wdn3hbvcbdmlvf2rcyv432kgi5uy7mvrczmjtba -manofperdition.i2p,wy3gcnlkpgirkqnlv6gdo3jx6sh7wqxxudi4cklhmfvytojvxoya -manveru.i2p,pbmbofs76wpjnxi55eqtwg4y6ltyij72o4fm4sxfjol3y57ze5sq -mapkin.i2p,tgvm3kgikmjxadymcwvnzt7wqxku7vse2nkoyuccho5accsmpsta -marcos.i2p,vpo36bsil2voqaou53zshuegssqaroa5mbrzxfmhjywlbojckalq -marenostrum.i2p,tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq -marlin23732.i2p,wfpkmtqz5fzlkh4wpft2aei3itithbhthp5peyavx6zn3napipgq -marshmallow.i2p,svdqd6j3y3gwryufcl4fkzpmcujgvrvphvk2oy4r7m75xs327e2q -marxists.i2p,lepah55qyp2fhuwxlz7bwrhzckn4gkuofivnofoeuyfpmke5x2hq -mastodon.i2p,kmmmtwgfngtpyfetewqmyehxiyw7icqeq5nwftdpvbyywzdnenbq -matrix.livingstone.i2p,dp4h2qp2kjjjdw3jxnghkmv6udxiipffnoflgpi3mu2kyi2tdx4a -mattermost.i2p,x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya -mauve.proxynet.i2p,n2tqpnhkzankgmnrz6vxjmxhlodbjbsuvukj5odt2vxczkdicl3q -mdleom.i2p,ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa -me.i2p,dbpegthe42sx2yendpesxgispuohjixm4bds7ts5gjxzni5nu6na -meeh.i2p,4oes3rlgrpbkmzv4lqcfili23h3cvpwslqcfjlk6vvguxyggspwa -mei.i2p,ta6fwpneavr2lzwrguwx6y6v4l7ttjbih3eclkieblrogqvwl6lq -meinsite.i2p,rsmsn2hxjwlngsuiaiu2elwskjzzvkai2vo2eifk73u66qu2m6iq -mesh.firerabbit.i2p,3x5wokr4bjy5z3ynji4fyhvwzv4fvgry3xafi5df5h75doezjytq -meshforum.i2p,hp2uzysaur74tbeojtlcsl7apsy2jgqxydd7b5asgvztihz76jia -messageinabottle.i2p,avfhe3kvrrv7utxn2vre65lg7damxzzsewq3vukwie4llitd254a -metanomial.i2p,bqrlzrexzh4p3eukfajegt2ht63i32wqpb2tpqrqi37w253c3uja -meth.i2p,icdrmuhlxexj7gg64mphrx7kbdvymsh4g5pz5pgdhcqgeizpapnq -metrics.i2p,z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq -mhatta.i2p,o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq -microbleu.i2p,mtapervgibruizniems2yyr47pin2wpysyh7m632rigl26vjc6qa -microsoft.i2p,hvaqr5idszdyrjph34amb4mjosqd3ynggoxlnj7ciqhnx7q6plza -mindisl0st.i2p,u7rnqhvsuyxd3fabm4kyzn7brgz3i3cporj2emk2jmbpcmltyf7a -mindspore.i2p,uuh5dd3y2rqa7x2jpggm4p2pg6znarm5uanwsvybe4tk36ymwr4q -minecraft.undefined.i2p,oynvlg4vyyvzttklbccgktj4xkbx5w4pah2bnjrqjtvy3jrghhba -mirror.i2p,dfcysmvxvovmrhipxca3q4e3quz6akc3ls6q2zzputvo6sv4fcrq -mk16de.bandura.i2p,rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq -mochimochi.i2p,nijkdoagv343xps2pm5z2cjujz6pmrozrokrcyhhz3aeje3tfzqq -modulus.i2p,ctz3o6hdefrzwt3hlg6rjhdcbjk6irppbndq32u6jnn4lz72f62a -monero-build.i2p,wc7qzr43g2o33wsluagjhhd4rvrcx7h5hhhtfwl6i42kk3iuouja -monerotools.i2p,5bal7dngxde2ddmhuzbtfken6w5nmxmixtjlrlmxt3wbhnemv73q -monerujo.i2p,puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq -moonknight.i2p,gza3w4cf5pvdbvuah6fpop54qtg26m4n3v7ogn2u6thwvqfm4s3a -morbius.i2p,5zecnrlfdwaxfnj2m65mg7pnjketcdqyts2hg726fxvyl3oaepla -morket.i2p,aofuard3ltrd4h7uq6qp23u3f35dxjbi6l4xfc6cfe7swljtzx2q -morph.i2p,iovyp2dao5rta6g5v6hke2s4ugx2btkpcljddak2yhxfrx3l4dqa -mosbot.i2p,5bhmrp43mjwlzf4x64xgdrkwmw4luvng6eq5waa663a7vnkp732a -mosfet.i2p,s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q -motherfuckingwebsite.i2p,t6sdpyzhp4w54bp7sps2h7exvuzuhfazpj7k3rvaknqr66v4yo3a -motorcycle-manuals.i2p,6cgnqlkvmk7f52itvmrgda4d3fejwlnef4joksmbykmiyvuzloea -mousestepper.i2p,mir325bmbgsvogs44tnkl4mssmtygu2rle2bnx3vqvrpcba5l26a -moxonom.i2p,gcjdrvnlobgexh7ebv276pwmnoj3yoyaqm3w4vmmdha4lgxfinqq -mp3.aum.i2p,n7bmu5dwux7f6gedmdik6zrm77bnls4lkzo2vo3bf4bwegk7vkjq -mp3.tc.i2p,w3ied5s7ldjcvnhxu2gyofe3oogzbplkyxshzfkhspiy2526snsa -mpaa.i2p,m6cqnglo7xlytwxkdsmwf3d23d6lq5r446c3tktb2tdmuah36zya -mrbamboo.i2p,tmpmkx6wlbbrgsnexrqlrib7laoegpbfeop7bnyezegii7hecpxa -mrbyte.i2p,6swunwgixw555gvpgehunlkyhovbbpjkz46v5wupiwq33ninjofq -mrflibble.i2p,u7k2qcmkrril6yvudvwxjqz7k3dzgp3jdejjjeapej7liselj3eq -mrplod.i2p,fjn5hxtybxyfyvdf6u5v5seg2sjd47hb5by6sa6ais4w3xnrxwyq -mryuk.i2p,razf6cyxwygg5um3zud4zjvbc7pholxrma7jbzxinn4ewncv72da -mtn.i2p,xisk3h6sku3iqj52uriogaajmnku7pwjux7wa4omx2zloamuw6eq -mtn.i2p-projekt.i2p,f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa -mtn.i2p2.i2p,l6kuhtmgvbp57d7jwalj5nksi6nr4gfzbz4oit62lxgipb3llt5a -mtn.meeh.i2p,h7ylrsuzzynrxp3jql7anoozyqblavj7eqces6o3wngvuuxhs2la -mtproxy.ilita.i2p,vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q -mucats.i2p,4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha -mud.i2p,qcjtmicd3ow3q26iwcs62m5zu3dceu6emo3afezulh4c3fsgrkia -mudgaard.i2p,yz32lk42gtoesknesfolq3tt4erxxcejcote5pontaeqev3bj2kq -mumblei2p.i2p,62s3kmxenyxym2no4qpsyawcbblr4f3a4rvlhdoqo3tmfqyq47fq -murzilka.i2p,wu5ukmavxtb5334ncr6oi5a6fqutpurhmhzqtgl5ktkhycgq4s7q -mush.zeit.i2p,dk3sg23kljawxqp3cb6xz5mnzjlyckzvq5jhqs5gnvdsv7wqn6ha -music.i2p,akamh76yi6p7xxbvl3qv3yhaockne57yfuh77acogbgpjmwypvia -musicfile.i2p,vyp42nsgzhb4wuf4rraeu2dd574cc5goskxcwh75uokqn4u3z7yq -muwire.i2p,c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa -mysterious.i2p,p66g2a4nzfkvidd3l7nwphcnfa3ttyu5kiolcb4czec2rn2kvwsq -mystery.i2p,ccea4jybmr3xbfiykaoagfw7ezbvzyhtg44x2jgwhv7wscsxaa7a -mywastedlife.i2p,ceumy3puvvsrru5bmfmtgsajsx5qyehqac7l7a23xpwtfs2bvcgq -nacl.i2p,bm2fib3tumer72lopjh4nmqomwvqu2sdfyb2hmr6lnk7jbw3vvia -namesite.i2p,2uviv3enxrtwvrysyuzomh7yccvfnmryzzyqddzcyh7aqlrwo3oa -nano.i2p,ex5ssv7s3hj6jp7hvadxfw3wvbjbvnczxr4pbk7qw26ihiorjmba -nassai.i2p,v653cocvn3i6bgjdm3ciwbdnu32supglv6gn4fh23bohemsp545q -nastycomics.i2p,npws2lm55kcrdfk4fkaynxqzihduegwm5hlomhmhkaolie27vjrq -nefkon8002.i2p,cyihnmez5falat7zo2xo2jgdyyu47milwfcs7znj3okcmjqj4qiq -neodome.i2p,5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq -neoniet.i2p,jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq -news-i2pn.i2p,wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca -news-ru.i2p,65tnauyus3odr47c7tyaoo35fxymruzqldfxkq2pu57vtccyxvhq -news.neodome.i2p,trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq -news.underscore.i2p,rl7t3kspoktuatjcu7gf7xleu7y6biibs4fspzo24kll6n7hbq4q -newsbyte.i2p,gsk3rgsejxxrfabjxu5w5plplxsu47aoeoke22vvhlwwllzosnxq -newua.i2p,sl4dw7gpg3ravvmz4fsmj3mweaxyqpqdmb2aadqcxp3vozm4ticq -nibble.i2p,jmdxcpdzqafedn3clc4y7u6o56qocfiffrzbzncmtggqtio5qjpa -nic.i2p,vzu5ymab6klevpcdudv4ypisjqaznmt44e6lcg7dwiuza4saibxq -nickster.i2p,zkwsa6kvq2wdhovw5g5wqakpb7rlaylyhfriwmurots5pvwbqauq -nickster2.i2p,eofzi7npzpk4p5gb4qper4hmwgxo6kepo3dheeblakewedxj2bwq -nickyb.i2p,gmpxk4tje7mnud32kg2kjmf36f6cpwqakzc2dxuzjnnz4qr5w4sa -niconiconi.i2p,p5h4klccaaldvphjw7fllgj3x5tfy7thqnqu5yr6py7dofemeqiq -nightblade.i2p,p4gkon7ytswxrbwkl7vruw6mg7kfw5aofovqjgt4c7tnqmbq6lha -nightfort.i2p,6vth72b6i65jjbjvxvqxgsydpoy2i3hvn3rjcp73pvdm3l5xwevq -nine.i2p,gniusiswp2zhjwh6bxdlyzk2ocg2cx6xxjwcmih4mohjs5sokqsa -ninja.i2p,q6dg6hlb3egzdqz352ri5rc4fx4gcrdeu3tpiyfxlv73yfjgrhya -nm.i2p,3itdpqzyn3ii7sivppo4sxxwhvgtpskzkbokrdibim6gqpvlw5ya -nnm-club.i2p,xkk5fzxdmjra4xlijoa43h5cfcbusdjc6dbfplulvouxdbztokwq -nnmc.i2p,7xizivpjkrpkb76x3yf2yktxscax3wf5vrpofwqgp3wcrnuru53a -nnmclub.i2p,bntvsagecjxyrdpl7jshdrbh5m52gq7xt7sdtwxijofjwxrnae3a -nntp.baffled.i2p,kc6muo2tih5mttbpzecteegvtonuysjidk3emcy4cm4yifzild2a -nntp.duck.i2p,gvzzor4utsqxswvf6jaglfks7yxudlz2s326ftrk56i4lpd2s47q -nntp.fr.i2p,npoztnqadfnu4vrokoh6rusoi3yne47s6jurc3lzhcrzzia5eqva -nntp.i2p,wwdzmeyler4djegvyt2bxmkwrckfgg3epkkwowyb75s47he6df6q -no.i2p,lpsg4x4gdrf7antxcdy47cl6abcqei5ommgzt55retq7go5ku3ba -noname56.i2p,oiyoslismzyxuw7ehxoigmtkdj35idim6flmlplddxuiiif6msfa -noop.i2p,vyf6ixbltwkmhjs7p52ulsshbk3epaq7u3ipcnuz7d7vt3ah7bxa -nop.i2p,ssag45lathm4gqp46si7c4w4tioyvjpcza5uvz5x2zuljnplylca -normal.i2p,j5fex634r2altzb3kjvu35qekt2r3hgsqzg5qxoy7dp53heu5pma -normanabcd.i2p,si2vh43gvxjnw2shwr24j76xyanow4oa6gbu4idookbraoxl3s3a -notbob.i2p,nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a -nothingburger.i2p,tesfpn757ysc7nih7mxher2b3jstkc3l5fhfcyb5kxhzhvv52trq -nothingspecial.i2p,wzrwqrp52bilqijrlboclynuev4kzpjzfzlvzl5aqxqt5fdnpbga -novospice.i2p,ukqap24nwac4gns77s4zy7j5cagt7l7syb5zo7eukfg3zn5gg5qq -nsa.i2p,nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga -nvspc.i2p,anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra -nxt-wallet.i2p,33pp74k4ivy67z332qpyl3qlcqmi6gxqumrow4bldkblxxlxqq5a -obmen.i2p,vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa -obscuratus.i2p,i4j37hcmfssokfb6w3npup77v6v4awdxzxa65ranu34urjs4cota -ogg.aum.i2p,wchgsx6d6p3czloeqvna2db5jr7odw4v4kqrn4gr4qiipfyrbh5q -ogg.baffled.i2p,tfbvj2xal6lcuxv3hzuw7cw4g3whguombcv2zuotzvul4qtrimgq -ol.i2p,bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq -olanet.i2p,ymcs6sgtayeu72okqhxwstu6a47lkvzoyupifmfnduncrat34sbq -olymp.i2p,epw6gzczhyyk6a5hpccradb7wuue3nfntm7rsbxu2n4dqw2nqxma -onboard.i2p,qwlgxrmv62mhdu6bgkh4ufnxowxsatfb6tbs2zr666qyunwqnecq -onelon.i2p,irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha -onepost.i2p,jeljxbr4swq4qq4uwzyleta64foow6ihllh77jwng6bxz7jaazka -onhax.i2p,m7i6oe4i3bygx6pn44vn22pgf5kzikw7edr2y5t4cpe5gnqpt3ta -onhere.i2p,vwjowg5exhxxsmt4uhjeumuecf5tvticndq2qilfnhzrdumcnuva -oniichan.i2p,nnkikjorplul4dlytwfovkne66lwo7ln26xzuq33isvixw3wu3yq -onionforum.i2p,yadam2bp6hccgy7uvcigf5cabknovj5hrplcqxnufcu4ey33pu5q -ooo.i2p,iqp5wt326fyai5jajsa3vkkk5uk56ofn4anocgpe5iwlpisq6l7a -opal.i2p,li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa -opcheesecake.i2p,ervp5pore7nquim7flbpwg3wjsrn6rgyzpezcrpk3gxapxjrvk5q -open4you.i2p,ice6ax5qrzwfwzsy64bctffj6zlzpuzdr5np65zsxlbt7hztyc6a -openarea.i2p,nmju26n2m7tyqbuis6ghykekrslqmpfwd6fspd4lvm2riqmtojnq -opendiftracker.i2p,bikpeyxci4zuyy36eau5ycw665dplun4yxamn7vmsastejdqtfoq -openforums.i2p,lho7cvuuzddql24utu7x6mzfsdmxqq7virxp5bcqsxzry2vmwj5q -openspace.i2p,uy65dhftzexjgdncmpa64i4ndt3ztua3oq3fm6fxeenjqaqq4upq -opentracker.dg2.i2p,w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa -operapresto.i2p,taatejbzlrkotea34z45ojz7r5t2nkcolthfgfknjgqs4kxlzq7q -opsec.i2p,rlsjbyy5beucaiedaggyo2tpbq75ituqwnfx4a4qghyifpdk3rra -orange.proxynet.i2p,nuulzzn5cf5vs75ujqljkfoyiixlwikbg6ubvcjnvm2bptamu72a -orc.i2p,orcnge47kqnpdj4wb22bg6aqcv5v6yu7kmjf5ll3htvseiqayntq -organizedresistance.i2p,kpspvipmqbfe3dft2sgl27km5ncalvugpphewnyde3yyup6q5pca -orion.i2p,5vntdqqckjex274sma3uqckwqep2czxs5zew25zlntwoofxk3sga -orz.i2p,oxomqkekybmyk6befjlouesit5mhstonzvzd2xnvsk7i6uyrqsfq -os3.i2p,s7x4ww5osrrfein3xgwyq67wnk6lgliw4mzt7shtu66wrb2zdojq -osint.i2p,4pf7ftsi35ujbv4awbli2bgmrtkmmwezcw4l53x4q5kparfes3ba -osiristomb.i2p,t3slf77axkv3qm7c3gzpv3jgmkraoqqe2bojr6h66eipibofsyzq -ot.knotwork.i2p,cxhvvfkbp2qbv5qojph7zb46molpe2ffanghnerjag3xdmy6ltxq -outproxy-tor.meeh.i2p,77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq -outproxy.bandura.i2p,smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q -outproxy.h2ik.i2p,nwgvfpfarpnyjjl4pwsxr2zdsppcx5we3kos2vlwicbiukopgaza -outproxy.lcg.i2p,whkvsmth7qeduc7yrciy6jesuyr6qis4x3oke75upfw33qztsh2q -outproxyng.h2ik.i2p,v32zse2zczzgegelwxbx7n5i2lm2xhh2avltg76h6fz5tb53sfxq -overchan.oniichan.i2p,g7c54d4b7yva4ktpbaabqeu2yx6axalh4gevb44afpbwm23xuuya -p4bl0.i2p,lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga -pacman.i2p,hlkzt7mbciez64gf325u5ko3353hfxseblbj7bu4loti3lk2zfha -pannuba.i2p,tr7ffmkmr6fcope2pix2xokl6ak4ricryvcbf6yaz4gvku4filzq -pants.i2p,xez3clscjfafkqwk6f473ccp3yvac4kh6rdp6dptwxa2lhixizgq -papel.i2p,mxskjqntn2d34q4ovsnd5mud7cgde734tdjldd3lt4hczh2645zq -parazite2.i2p,s2kgme5ye22woyzlrxbpoo63uzxnnlohmy3g4t6mdcnugvbiiieq -passwd.i2p,ojugl3kbejhzcmyq7x52ms5lraxsig4ofkhvbgzleraer4zczroa -pasta-nojs.i2p,dkkl3ab6iovxfqnp44wsjgqaabznvu7u3hugpzyagbeqlxgvx3la -paste.crypthost.i2p,2zaj4u4s4l3lgas2h5p6c6pvzr2dckylkrh5ngabursj4oh25ozq -paste.i2p,v2bw3hiabaywor5ucakgourj3d2gfxhvdkvil3hxumi22uhvooma -paste.i2p2.i2p,b2gizskfea4sjxlw6ru2tb6kdrj47dsjc77cijsf5mzh4ogbmfvq -paste.idk.i2p,qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva -paste.r4sas.i2p,csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa -pastebin.i2p,mnicncxrg2qqi55qftigiitaheugnj4rpysbk7zabdrirgktelqa -pastethis.i2p,erkqiwnjl7vtysqd3wvddv6tfvnhswarqkbn4blhdlhfxn7cf2ha -pdforge.i2p,wzeg3ehf6d2mqjqji3sd3rns776thvhe2vam2r6gjlmsqis2dctq -perravida.i2p,uda2rkhskjdb4w7xiftz3btfpl7bhxsy5gwpiiiongte4gulbuza -perv.i2p,f3k3wm4ae7t7ottfjd4hu6is7zsls73izl2gm2qynzficxcdsiwq -pgp.duck.i2p,wujajyxj3cgsfsbtr3g7g7npv5ft3de6pcstxlav26zq6cxdjmha -pharos.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa -pharoz.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa -phonebooth.i2p,noxia7rv6uvamoy2fkcgyj4ssjpdt4io6lzgx6jl6wujpufxedrq -photo.i2p,fqhuy77ugd5htnubzkyy5guvwboqn6goahtmn2g7feewvdj7k3iq -phpsadness.i2p,7kjaywpkfmfg2xshgnebdv2g3pz345s4ih2livqk27dp6tc37daa -pidorchan.i2p,5fd222yoxytnmffvh73obszownatnoy3f7ewn565fqw5x4eh7orq -piespy.i2p,vzusfjzcu5ntnvobcvyzc4dcu4j6ommtnpmba2puk3kexgdzrl7a -pink.proxynet.i2p,q6ul3khwrszfp5gqttkwrcnwr2qayo2unw6sq2yqpyidcuip3nwa -pinkpaste.i2p,o5zdq6iuire5eatwehhhylj7vbsdfedhm7wkd2hoejh7wxwfbqnq -pisekot.i2p,7yzdwhy723fodqz4onp6k3nyvixra2sa6dl45tcblhmyoa7i36nq -pizdabol.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa -plain.i2p,y7f3c5s2n44j5pnsxncqpasluv6k7i5jtnhjfs5mfulcgcas6sqq -planet.i2p,y45f23mb2apgywmftrjmfg35oynzfwjed7rxs2mh76pbdeh4fatq -plazsekta.i2p,ha25hr5qvs5eclqt4bq4fl4w7dc3p3d7cfbstkglcv4tf645lfxa -plugins.i2p,wwgtflbaa7od2fxbw4u7q7uugmdclxf56alddvizugwcz5edjgia -pmail.i2p,4vuq2eku25cehr6yk5ly7ed2j2atliwhpzwnibxk7lpguunzk4ya -polecat.i2p,het5jrdn35nhkanxmom5mjyggyvmn2wdj2agyqlrv4mhzhtmavwq -poley.i2p,hu2qwmu2pfgkdhsyg66qm6fmnnnrgdpptln6izt7a23r4cs523dq -politguy.i2p,6dkkh3wnlwlr6k7wnlp4dbtf7pebjrph5afra2vqgfjnbihdglkq -pomoyka.i2p,omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q -pool.gostcoin.i2p,m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa -pools.plazsekta.i2p,ima2b6s3yjyvkab5qycexgsnkkvrhg57awjln4ctz6a5au4thqcq -pop.mail.i2p,bup6pmac7adgzkb5r6eknk2juczkxigolkwqkbmenawkes5s5qfq -pop.postman.i2p,ipkiowj7x4yjj7jc35yay3c6gauynkkl64gzzyxra3wmyhtfxlya -popeye.i2p,pbvpqyrtxe65flkry32fhms4ztq5y5yh4i6mecze53ykqk36wzua -popki.i2p,jiqcbrtrocof7btlbzg2riwfsqr7mkcllu7wgijt673oj5efjeeq -potatolivingstone.i2p,potatlpuvdqy7ps5ac5i3tkornq5rqyfy6d7nv56r2r2nejtpmsa -ppbbone.i2p,tpc7626frv5emypxua2zc6gps5knhmgfdpjsd6kbofkftf3mqkqa -prana.i2p,jp7ftuehpzuxyfeobq23udjhtdnfch7lfb256hr573j6aorfzgxq -pravtor.i2p,2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq -preppers.i2p,nv3zav3qgmpc5bpdp6zdtlkgcxtb4h6w2ftg2ocg27btnoy2tuiq -presto.i2p,rqmejrctgf5w6dxc6afbagvea3gbkg4gchybhp4biq73yazx5v6a -pris.i2p,ahiwycgzuutdxvfqu3wseqffdnhy675nes57s4it2uysy5pxmz6a -priv.i2p,h4asmxnsw2xz2ve43qt22mhoua7icerhx66ujog5msk6cretnaoq -privacyhawk.i2p,qnfdfjfrcycygz5p7drylkv6pde7b5ehxemefjt63blqtal4cpaa -privacysolutions.i2p,4m626tvfr4skzunz7tri6oti3alinbxnoglnvqeqmf4mwvdzyaeq -privatebin.i2p,e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a -project-future.i2p,ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta -projectmayhem2012-086.i2p,ehkjj4ptsagxlo27wpv4a5dk4zxqf4kg4p6fh35xrlz4y6mhe4eq -protokol.i2p,f4xre35ehc5l6ianjvt3zcktxkjlyp2iwdje65qnu2j6vurhy6nq -proxynet.i2p,7gar5a3n4hzvsgi73iizo65mjza4kujf7feopfxuwu5p6wtwog5a -psi.i2p,avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a -psp.i2p,2nfqfabeahfl3eeqxuum2sapzfedu4kkyydivlqjmp5ipvvqvmzq -psv.i2p,pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a -psy.i2p,s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q -psyco.i2p,eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q -pt.hiddenanswers.i2p,o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a -pt.i2p,umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna -ptm.i2p,7dna5745ynxgogpjermnq26hwrqyjdlsibpjfmjxlwig247bjisa -ptt.i2p,q7r32j7lc3xgrcw2ym33wv4lfgqbez7vtm4lts7n34qfe3iygeha -publicwww.i2p,oitoja234mwfbeuhtuibnxn6hd5v4nbtf7oxfgdhk5igrg6wkiqq -pull.git.repo.i2p,3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q -purokishi.i2p,ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca -purplemask.i2p,7u3x6deg5uotlmp4rypvnvvy4sf4nfip7zt5ykpm35gbcrnfgedq -push.git.repo.i2p,jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a -pycache.awup.i2p,w45lkxdnqhil4sgzanmxce62sv3q4szeowcjb2e72a5y5vbhm4ra -qq.i2p,iv2wcb7aoty5pwfvqc3lhpdxjrlw6cftlxkjrlbkhioirnj4nlta -qtmhkr.i2p,2jj2ikxixz372qzxcdmgkwpzu6kek3mjsvwtzctdkapacfg2epzq -quest.idk.i2p,k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa -r4sas.i2p,2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq -rabbithole.i2p,2ywckntwedn7ui5ltu44io2sildeh2m4ousyun2jeh6r6wnqvmgq -radio.r4sas.i2p,cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla -ragnarok.i2p,jpzw6kbuzz3ll2mfi3emcaan4gidyt7ysdhu62r5k5xawrva7kca -ramsay.i2p,svezv4xrp4l57ankyhu6qisd5jnk423n7oa5as3zd2554aaz6lkq -random.i2p,pwcgh3tffcmjsacdxd7ej2k5c5l2n7zedymnhbx34oh2pehvwpza -ransack.i2p,mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq -rany.i2p,tcnai23pvo6asfmefl23cllpp3vgrgp2jhtjare7vhloyzwm2pma -rasputin-sucks.i2p,fdozdbyak4rul4jwpqfisbkcx4xbrkuvf2o5r6fd3xryyrjgvjiq -rblcom.i2p,dysjyfzd3pd7i6lp54mt6hv33xpdvcblvr7nnzy7bfc3lyo4vaiq -rebel.i2p,nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq -red.i2p,fzbdltgsg7jrpz7gmjfvhpcdnw5yrglwspnxqp4zoym3bglntzfa -redpanda.i2p,3wcnp6afz4cikqzdu2ktb5wfz7hb3ejdbpn7ocpy7fmeqyzbaiea -redzara.i2p,ty7bt62rw5ryvk44dd3v5sua6c7wnbpxxqb6v4dohajmwmezi7va -reefer.i2p,4cde25mrrnt5n4nvp5tl62gej33nekfvq2viubmx4xdakhm5pfaa -reg.rus.i2p,k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa -reichsmarket.i2p,2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq -relatelist.i2p,utrer5zgnou72hs4eztmk37pmzdtfw3d6s23wwl7nk3lkqpzbdiq -rep.i2pdproject.i2p,rexmpwqbkjzietrp6aabxdih6ek2imqhrn6hu3crym3mqce2v5zq -repo.i2p,uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa -repo.r4sas.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq -republicat.i2p,jbzt3h2n6ggxx4cm3p7a6ywsbpeuxyfajq4sxh5ztwzeo2o6undq -reseed.i2p,j7xszhsjy7orrnbdys7yykrssv5imkn4eid7n5ikcnxuhpaaw6cq -retrobbs-nntp.i2p,fkyzl24oxcxvjzkx74t3533x7qjketzmvzk6bwn3d6hj5t7hlw6q -retrobbs.i2p,mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq -retrobbs2.i2p,ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q -revo-ua.i2p,hpojpumki22xjwhmhe6zkiy44oanyn7u4ctcfe3in2ibwm5l32hq -riaa.i2p,lfbezn7amkzhswnx7lb4lxihyggl2kuqo5c7vwkcv6bwqmr4cuoa -rideronthestorm.i2p,xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq -ripshod.i2p,ggqxxx443edukuay5z7lwdewkg4r5aev43hjcvueopw6fb5pwvkq -romster.i2p,eaf2stdqdbepylt53egvixdi34g2usvgi7a4oixsja6atkran43a -rootd.i2p,mzbe5wofwn7eaqq4yefrmxizqaxoslwqxrv5qcv2opx5lnhg64dq -rospravosudie.i2p,z55khrnlj6bzhs5zielutm6ae6t2bbhfuiujwlrp3teubqyc4w7q -rotten.i2p,j4bm3rvezlejnb44elniagi5v2gazh7jaqrzhbod2pbxmgeb2frq -rpi.i2p,56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq -rs-freenet.i2p,jhpvnnhfrozore2wlhi5m5bzggz5jcz5uwhou4w62ylkewtoxqba -rs-tor.i2p,zv2etzurnqjuuajmeb5gg3sjhfdcotxvlae6igxbfyahkjhhsx4a -rslight.i2p,bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq -rsync.thetower.i2p,w4brpcdod7wnfqhwqrxyt4sbf2acouqfk5wyosfpq4mxq4s35kqa -ru.hiddenanswers.i2p,o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva -ru.i2p,m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja -rufurus.i2p,7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca -rus.i2p,gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga -ruslibgen.i2p,kk566cv37hivbjafiij5ryoui2ebxnm7b25gb3troniixopaj6nq -rutor.i2p,tro5tvvtd2qg34naxhvqp4236it36jjaipbda5vnjmggp55navdq -rutracker.i2p,ujyqbawolalwvdpy33v2wjuaspnu4ym3fsl3fd6mldjblzzqlvlq -rvklein.i2p,pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq -s.i2p,bnpc454fvuzqk22ywguqb4m4vkhrcfj3pydrbfw4esqklymd7t3a -s01.0chan.i2p,v2ymvk4suxl2zghx6bhjn3yz32echagnxqwrkklul4iynmoqydrq -s02.0chan.i2p,znn2mmwnypu4hrwo75nzoibe5dzj6napwcmzzic5yqty7wnqfyya -s03.0chan.i2p,af2penimq2z3xprlnhpzkssc45bplfg73osqjcfezobgnwqcqfcq -s04.0chan.i2p,kpxqwmwciyz4q7dfsawmgdotwrv525cmc3n5cet3je4ngtact37q -salt.i2p,6aflphlze6btsbez5cm4x53ydrmwhqrkxsud535d3qjh4wq62rxq -samotyki-2018.i2p,y7fkqkhtsayuj3gwxvl3mpeda2zq7kuuqjjpoqhxrtxwfftpwe4a -sasquotch.i2p,p6535uyfk2y6etc3t47vd3oqxydznqior5jxcvq5bdxe5kw5th6q -saurer.i2p,m2uhvcknp4p33ehkybdpzyq7rhwswrcjgy4ak6wsg7tlsolfsi6q -sc.i2p,ovcw4qxa6fiosx3toiwjvtyywhfs2f5cfq2av5jakqhmvknajlza -schwarzwald.i2p,4gokilzy73mmudufy3pohgatm42fcstx7uzg5hjvnfyphxpnphuq -sciencebooks.i2p,ypftjpgck75swz3bnsu4nw7rmrlr2vqsn4mwivwt3zcc3rxln5cq -scio.i2p,a5nhlcbz5ohgezri53ioyyarcckb6ekkwcl67u45prittktbh2fa -scp.duck.i2p,ghbpsolpnveizxu4wbs7jbs2vj3kntnsexfcdleyhpqdhfpxleda -scussuni.i2p,f6mb7qcd72i3e4hec57nvysifeza5lmklhokpkrf554avv7johvq -sdmr.i2p,o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q -search.i2p,nz4qj6xaw5fda3rsmsax6yjthqy4c7uak2j3dzcehtkgyso4q46q -searx.i2p,lcjxhuo5lbrol3e5ijj3ga4gdhhelzdyslc7bm4blw6jy6cx4p5a -searxes.i2p,2v2wkxi52vukbmcfkyg356pml2nwrca3rf6xjnw7bstblxfmcldq -secondrealm.i2p,ykkgrp4u6kmcqiyefiahcbcc5bxkutwketp4n4dmgkgawwitcolq -secretchat.i2p,cl3j2zxhpw6u6jevny45i557ojhwfxn4g375nnuqhy6lp27mry2q -secure.thetinhat.i2p,4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala -seeker.i2p,ipll7sit24oyhnwawpvokz5u7dabq6klveuqpx3sbi6o5qemy2bq -sentralintellijenzeigency.i2p,kqq6r6z7twhz5nmqpy3hdqo5iifzaz2urker3zscs7m5mt77llta -seomon.i2p,5mvpsy4h45w4fx7upen7ay3vkrs5klphz5nptmtcqvc3fsajsm4q -septu.i2p,5lqvih7yzbqacfi63hwnmih57dxopu5g2o5o4e2aorq7bt4ooyra -serien.i2p,3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda -ses.i2p,5qfoz6qfgbo7z5sdi26naxstpi2xiltamkcdbhmj6y6q2bo4inja -shadowlife.i2p,jme44x4m5k3ikzwk3sopi6huyp5qsqzr27plno2ds65cl4nv2b4a -shiftfox.i2p,wpvnuzslu7hjy4gujvnphtyckchdoxccrlhbyomsmjizykczyseq -shoieq3.i2p,3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q -shoronil.i2p,7shqzgmb6tabiwrnwlasruq7pswy2d3emvfhaitehkqgod7i62sa -short.i2p,z5mt5rvnanlex6r3x3jnjhzzfqpv36r4ylesynigytegjmebauba -sigterm.i2p,5tuw3uj6x4p5xousgqg53ygbsi5ixozxnnkgzzwdqlhtoe2fbzqa -silc2p.i2p,wt4mvbvnpqniywcpkrrjubvcwyskskujxjkhk24xmhrojdeisoja -silkroadreloaded.i2p,hyn3mwmyeovcn2paujxur2eury2ufqpoahvbbqshfoggljn25tra -sion.i2p,lcbmmw2tvplvqh2dq5lmpxl3vnd5o4j3bdul5moa23deakjrso5q -sircd.i2p,vdtpi36ui2wav3qv6qfsxf3b776wljzi7m643naivbqf7x3n3ztq -sirup.i2p,aohdp4yajnkitrtw7v2mo3sp7swuqhjfwlsi5xwd7dudzftumsma -site.games.i2p,zeuczucfxeev3k7tvqlfcdpfbnqggheiknyyb5r2q4utn3d2auja -skank.i2p,qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q -slack.i2p,gfcsh2yrb2tx7hyvmobriv52skz7qoobn7n7y7n6xaehhh4rpbja -slacker.i2p,wq7m2wdguzweleb666ygv3bmfhha63zj74rub76vfesbyhsyk6iq -slump.i2p,pzo24fb6lfum67ovmyjd32ohthy7h35tk2puneqeilndtyr44mfa -smeghead.i2p,ojf4czveeuekxqkjvkszvv7eiop5dg7x2p6rgfzl4ng4xrjk6lja -smtp.mail.i2p,kdn7zx7fgoe4bn5abaaj5cb3e4ql22fklb5veui5yajpj4cxapya -smtp.postman.i2p,jj7pt6chsziz6oxxnzpqj7mzhxm2xfhcrbh7dl3tegifb577vx5q -snopyta.i2p,nppi6cyktvfgstqqzemkpp7nunt4uykwn5cwhwaxcfj2r4kjr7ua -society.i2p,d6atkbmzbvh3tqflgieqe6pa2sma5x24q2nsz6mzdl3x5qhzreea -socks1.tor.i2p,sifawcdexgdmoc3krv46pvvz74nzd6fkju2vzykjxsx3egqsb6wq -sonax.i2p,jmuxdhlok5ggojehesfjlit2e2q3fhzwwfxjndts7vzdshucbjjq -soup.i2p,s6lagaqbn572fvnr7vsxsqwbwxb6m3gr5hu6eetstykdm2opp2ia -spectre.i2p,b7fynfg42avzwv2qeioxm2bmfxm5fimkpzu27zqi4qg5wxqx3zwq -spoika.i2p,u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq -sponge.i2p,o5hu7phy7udffuhts6w5wn5mw3sepwe3hyvw6kthti33wa2xn5tq -squid.i2p,r4ll5zkbokgxlttqc2lrojvvey5yar4xr5prnndvnmggnqzjaeoq -squid2.i2p,hum4wlwizbsckbudcklflei66qxhpxsdkyo4l2rn256smmjleila -sqz.i2p,3jvbwc7sy4lnhj25nj7yepx7omli4ulqirnawv3mz6qlhgokjgzq -sr-ocho.i2p,7my7fc6glh2mwxtdup33gni3gzwycu7avsg2paschpcj54c7n2ka -ssh.i2p,xpvdadaouc4qr75pteymyozc7mcsynjfkuqqkkla542lpcsqionq -ssh0.rany.i2p,xhphpkziyinn7faroz5nitcrc5abbs33auqlxoauxsoi4jnhvrgq -stasher.i2p,6ilgpudnba4kroleunc2weh5txgoxys5yucij5gla6pjyki4oewa -stats.i2p,7tbay5p4kzeekxvyvbf6v7eauazemsnnl2aoyqhg5jzpr5eke7tq -status.str4d.i2p,ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q -sto-man.i2p,rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa -str4d.i2p,wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa -stream.i2p,prmbv3xm63ksoetnhbzqg4nzu2lhqdnqytgsydb7u3quxfrg7rna -streams.darkrealm.i2p,ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq -striker.i2p,4gswsrfpbd44hwjoj33jbqfbwzxfkwpuplb3ydq5zm7nfu2pxvdq -subrosa.i2p,g3lnglrnoual7wyabnwwv37uwhadgbxiqz36pf3f5cwfuxsx4mxq -subterra.i2p,vdmhe4u26unzgd7ysq6w36ubjncms5wzbhzr2gq576sq4xut5zwq -sugadude.i2p,yzjn76iyqard64wgggfrnywkxi7tbfkw7mjhpviqz3p2dguey4yq -suicidal.i2p,yfamynllow5xiqbbca7eh5xn733wtnuti5bi4ovc7dwycntqmiuq -sun.i2p,33mt3psjrtauk6wzt35ke7w4bkyizesnsjlal45fbosja2j5i74q -sungo.i2p,h67s3jw56rwfyoxqxj3fngrluybsgxc2meendngkehzqowxnpj3q -super.i2p,2oopfqdsylutqnxstwq4ppafbk5cmrl3be7pid3orcia4bnoisfa -surrender.adab.i2p,jgz7xglgfgnjfklrytyn427np2ubipztlm5bxrtbiucayglukrta -susi.i2p,qc6g2qfi2ccw7vjwpst6rwuofgzbeoewsb2usv7rubutf4gzqveq -svong.i2p,wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a -svs.i2p,zys6mammgvbu7h7n3gxp4dxnxs5u3u3giadgrq7vthjq5lwnkntq -syncline.i2p,5kcqmhislu3lmr7llgmdl72yu3efhyriljdc6wp774ftpwlcs5ra -syndie-project.i2p,xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq -syndie.echelon.i2p,vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta -syndie.i2p,7lm3yzpuejhpl4tt4l7o4ndqlu7hgijohofh7oaydx7q7kelenbq -syndie.tiny.i2p,lvxboy6ni52i7dwe4a54xe7uxz3dwhy66jaqcmn4q6yzdrrf2xya -syndie2.tiny.i2p,5iov5rqup5ji6os3zpxvgzfztnbpfp3d7jh2xchwyx6dmykwdzua -syndiemedia.i2p,4lrbbblclodhobn3jadt5bf2yab2pxzoz4ey4a2cvrl44tdv3jma -tabak.i2p,y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia -tahoeserve.i2p,yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa -talkfreedom.i2p,tbbikimv62ltdurcljry5fp3riokah3oi2dyksfa26e2pjugddwa -tc.i2p,qkv2yk6rof3rh7n3eelg5niujae6cmdzcpqbv3wsttedxtqqqj7a -tecsoc.i2p,kng3ri7scfoqdogy6pkschn5son2ls7z4kpwgnosi7zknit7lr2q -telegram.i2p,i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja -templar.i2p,zxeralsujowfpyi2ynyjooxy222pzz4apc2qcwrfx5ikhf64et7q -templeofmetal.i2p,cwtbmqx3cg7ae3jcrzgjzwcilpypnyz2biojrn4ca7ry5gukaixa -terror.i2p,wsijm6aqz4qtuyn2jedpx6imar5uq4yuhjdgtfqumxbqww47vbnq -testmk16de.bandura.i2p,gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra -textboard.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua -texterochtankar.i2p,woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq -thatonetimeatshmoo.i2p,qmpixe23s7ytn47pjifzl5ifo6m5glq6g2vgafvb3dhzpujbx3vq -thebland.i2p,oiviukgwapzxsrwxsoucpqa47s3wt6nfuhfjxvgbqsyrze2mwrda -thebreton.i2p,woutbsflcrlgppx4y7ag2kawlqijyenvlwrhbbvbkoaksuhf2hkq -thedarkside.i2p,fxt3z33nzkrg5kjrk7bp5vvmu7w2vsn4i6jo6cily3hsm6u664ca -theland.i2p,26ppxbseda6xmim37ksarccdb4q5ctdagfmt2u5aba6xjh452zsa -theslackpipe.i2p,hxw6ncycnyd7gttrsnushggmcerozrfybsqqvxe4h5casbck5fxq -thetower.i2p,3xqa5nype64y6fxgqjq6r5w2qpiqftoraj2niebumseat4cj654a -thisthingimade.i2p,bga2ae2ff3s5p2nskg2l37ns2ad6smczpvgjhm2olgxequogepja -thornworld.i2p,vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva -timechat.i2p,dwmlsvckkc5lq335u53ewajg7yjm74dm2mqjdwbvubavkkw53kza -tino.i2p,e4bfnhvaofu4s67ztcgiskos2mqyhskid64dvlqexxs2c2bno3iq -tiny.i2p,elmeki5nvczhe4mnq6yb64wpocilkwacw2cshyvq2hrvkhbivqya -tinyslibrary.i2p,nv5ysd44xz6dgc6y3hxe22tfonmcikegm76l633oqfuyfo26odva -tinyurl.i2p,mc4oxv3v7dnyzpvok7v5qxkwtgjprgyz6w7x3tag4fipsen6rdwa -tipped8.i2p,5l2mzforxf5kok7ndc6m53nfxve75m5tozb37m6eg2xsaf6hdlmq -tome.i2p,qktkxwawgixrm5lzofnj5n24zspbnzxy4pvjm7uvaxvmgwrsuvgq -tooman.i2p,auo7cuq4dovgniwojq5fbwyjuvmks3zv7aopu5f6onsckuihsdpa -top4ek.i2p,hm3fpmxchlvqc3p4atnu7igwbenqpn7f3czbptnnqataemputl4q -tor-gw.meeh.i2p,ounrqi7cfemnt66yhnhigt2u27fkctbvct527cp2522ozy3btjza -tor-www-proxy.i2p,xov45rvjks5fe4ofmpblkj23bnwxgslbypbgvchbr7yul2ujej2q -tor4.i2p,65dirba2db7yghufdiohgrm4kacs4pwx734azt5hohglw4lwho5q -torapa.i2p,eejqjtpko6mdd4opvntbpsuandstrebxpbymfhix7avp5obrw5ta -torrentfinder.i2p,mpc73okj7wq2xl6clofl64cn6v7vrvhpmi6d524nrsvbeuvjxalq -torrents.livingstone.i2p,6zymy5hg6si2xn6zwogo2zz2c73bdvln3zzryq4rqc74i5ctiiqa -torrfreedom.i2p,nfrjvknwcw47itotkzmk6mdlxmxfxsxhbhlr5ozhlsuavcogv4hq -tosios.idk.i2p,4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a -tourist-destinations.i2p,s4lyjsubxnlw5zytyvq2v2lroscuqwoxu3ukrg3akh6tybm25qfa -trac.i2p,kyioa2lgdi2za2fwfwajnb3ljz6zwlx7yzjdpnxnch5uw3iqn6ca -trac.i2p2.i2p,i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa -tracker-fr.i2p,qfrvqrfoqkistgzo2oxpfduz4ktkhtqopleozs3emblmm36fepea -tracker.awup.i2p,dl47cno335ltvqm6noi5zcij5hpvbj7vjkzuofu262efvu6yp6cq -tracker.crypthost.i2p,ri5a27ioqd4vkik72fawbcryglkmwyy4726uu5j3eg6zqh2jswfq -tracker.fr.i2p,rzwqr7pfibq5wlcq4a7akm6ohfyhz7hchmy4wz5t55lhd7dwao5q -tracker.i2p,lsjcplya2b4hhmezz2jy5gqh6zlk3nskisjkhhwapy3jjly4ds5q -tracker.icu812.i2p,h77hk3pr622mx5c6qmybvbtrdo5la7pxo6my4kzr47x2mlpnvm2a -tracker.livingstone.i2p,c3qqnsxm4gqt4kujhxtw2or5mb3ddkd4sxnuufztpqhenwh2shca -tracker.lodikon.i2p,q2a7tqlyddbyhxhtuia4bmtqpohpp266wsnrkm6cgoahdqrjo3ra -tracker.mastertracker.i2p,tiwurhqvaaguwpz2shdahqmcfze5ejre52ed2rmoadnjkkilskda -tracker.postman.i2p,jfcylf4j3gfmqogkltwy7v5m47wp4h7ffrnfsva6grfdavdn7ueq -tracker.psi.i2p,vmow3h54yljn7zvzbqepdddt5fmygijujycod2q6yznpy2rrzuwa -tracker.thebland.i2p,s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq -tracker.welterde.i2p,cfmqlafjfmgkzbt4r3jsfyhgsr5abgxryl6fnz3d3y5a365di5aa -tracker2.postman.i2p,ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna -traditio.i2p,wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq -traveller.i2p,ljprcbxo44dd3gnuqxtu3a3jznojzbwgxflvsjwnjlt25cls7cxq -trevorreznik.i2p,wc2z6o5fxm2saqzpfcawr63lejwccvzkysmgtfudkrigqopzfdma -true.i2p,pdilhl5vmefyzrrnmak5bnmxqxk2pmw7rpy4f7wbaeppqu2vvugq -trumpusa.i2p,vopyffqj3il2uapcvfxq2zkcdybf7ekmpvnrt6d4dbeuecbvs2ea -trwcln.i2p,evml6jiiujhulsgxkdu3wcmkwbokxlv4is6w5qj46tp3ajz3hqzq -trypanom.i2p,tgv5acj4khwvr6t44cmryohybd2e5o2kndysnzae6qwcr4hzda3q -ts.i2p,nebcjgfx3f7q4wzihqmguwcdeopaf7f6wyk2dojw4bcuku472zxq -ttc.i2p,wb4tsfyvfv4idgrultsq6o7inza4fxkc7dijsfpncbx7zko4cdlq -ttp.i2p,uuczclxejmetohwf2vqewovx3qcumdfh5zecjb3xkcdmk6e5j72a -tumbach.i2p,u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq -tutorials.i2p,zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja -ugha.i2p,z3f3owc72awbywk4p6qb5l2mxgitvs6ejztggbpn2a3ddmymfjda -uk.i2p,vydbychnep3mzkzhg43ptewp242issy47whamfbxodc4ma6wc63a -ukiyo.i2p,ytd3loo226pogdcx3ajdtew6vl5rsidppqzh6phbo5vlmigdxclq -ukraine.i2p,msk6mls32w6nh65r7ke5bjozf2r3z563ti7iwewts72jtkxhq4oq -underground.i2p,dlnuthb6tpw3kchlb7xoztyspy4ehlggjhl44l64vbcrulrfeica -underscore.i2p,3gmezyig6gvsjbpkq2kihoskpuqpkfrajmhhm7hpyrjuvtasgepa -unknown.i2p,xzdhmsewrhmjqpf5djuhm7cxfohzjqwcs5ur6qb7mtj3uyhtzjja -unqueued.i2p,3gvn4kwd7z74jxc2sn4ucx52dpvpscxbzjluux3ul4t3eu5g64xq -up.i2p,25it5olgdo7pht25z6buzd32sw7jvc65oziqeuocfozfhgua655q -update.dg.i2p,iqj6ysfh3wl26m4buvyna73yhduifv523l7bwuexxak4mgldexja -update.killyourtv.i2p,gqdfg25jlqtm35qnmt4b7r53d6u2vep4ob23fwd42iyy4j6cvdqq -update.postman.i2p,u5rbu6yohfafplp6lgbbmmcuip34s7g3zqdd63cp27dl3nbd7gtq -utansans.i2p,u2oyre7ygqv4qs5xjjijfg3x7ddwtod6nqwgbomuuzljzvnq4rda -v2mail.i2p,4gg7fykcqe7oaqt4w5fmlarnia7vtmwkv3h45zzgoj6o6crryg5a -vadino.i2p,aalttzlt3z25ktokesceweabm5yyhhvml2z3rfotndgpfyh6myra -veuch-tracker.i2p,dvydoczvi5pvrrgq4dfoaeqil64vxfh6klhraigbldbgs5o4uqvq -visibility.i2p,pwgma3snbsgkddxgb54mrxxkt3l4jzchrtp52vxmw7rbkjygylxq -volatile.i2p,q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a -voodoo.i2p,3tc76xvl5nulcflszmyycv2vhymtyz6taaus3mchjh7uafi4gtra -vpnbest.i2p,ov5f74ndsy5rfkuyps56waf42vxncufqu5rzm3vsnxkdtogccaea -vudu.i2p,3zlwci7pvgep2igygzyjej24ue7mjsktlhaff6crpsr75yquak2q -w.i2p,j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq -wa11ed.city.i2p,7mxwtmala3ycg2sybjwwfil7s6dqck2fbemeutghhwu73rznmqoa -wahoo.i2p,vqe5vkpe5wbda7lwekcd2jaj44ar3rawgv54u5rcolezbg5f5vwa -wallet.gostcoin.i2p,reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda -wallsgetbombed.i2p,tzhea5d65fllm4263wztghgw4ijdgibsca5xsecp6lk4xlsbdeuq -wanderer.i2p,zhzpf7bugq3rspkjw46yjqhufqrontrdudq4fas5i47zttrn6xwa -web.telegram.i2p,re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a -webviewer.aktie.i2p,gvofjbuvkl65f2npmyyig6wmi4ryvzdyli2pj4ufu56vtabc5pmq -weibo.i2p,hmgshf62bftau2zrn3rquiz3aollpt27xzolzquaovz5d7zvrrtq -whoopboo.i2p,7i4err7ik6r5sno33sfmanmu4x7tsbqc6a7dmg3ijel57zhoosma -wiht.i2p,yojmpj3sh76g3i6ogzgsf7eouipdgdij5o2blcpdgmu5oyjk5xca -wiki.fr.i2p,lrqa7hw52uxjb5q3pedmjs6hzos5zrod4y6a4e25hu7vcjhohvxq -wiki.i2p-projekt.i2p,b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa -wiki.ilita.i2p,r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a -wiki.meeh.i2p,df47gapq2gftoy25cqoldvgp5v7c4aaz5x3exee6jdulun3tim3q -wintermute.i2p,4gvlfrdy2rkmem33c342tjntpvqik65wekcvm4275qbkuwotoila -wipedlife.i2p,wipedvspi755caxyqcbbmpb4ziqt2h4g6gslygdofdk7p5sv4mha -wlm.i2p,nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa -wspucktracker.i2p,ubd2txda3kllumx7ftg4unzgqy536cn6dd2ax6mlhodczfas7rgq -wtfnix.i2p,ofjyswwcrgrom6ppqu433hl2odow37d42wkefotczzdkkkb3dqya -www.aum.i2p,3xolizygkzkqrldncjqsb734szznw2u36lliceuacqnbs2n65aeq -www.baffled.i2p,lqrsfslwu4xnubkk2hofhmuvvr4dia2zevxefinbzdsjurvehtqq -www.fr.i2p,rmkgvlfwo3vkb3xrr6epoypxasdzzuilv3sckcqbo6c4os5jo2ea -www.i2p,ojxyenivrrqvycgbxbm3phgisu5abspzq4g2us4fjlwz4tx222va -www.i2p2.i2p,rjxwbsw4zjhv4zsplma6jmf5nr24e4ymvvbycd3swgiinbvg7oga -www.imule.i2p,657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq -www.infoserver.i2p,fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq -www.janonymous.i2p,vosqx5qw22hwrzcgsm4ib7hymf5ryovsbtaexqrzmnzshy5bhakq -www.mail.i2p,nctas6ioo7aaekfstv3o45yh6ywzwa3vznrdae52ouupzke5pyba -www.nntp.i2p,kly3o7zmetuwyz7xonnhttw4lj2244pkbibjz26uflyfte3b3dka -www.postman.i2p,rb3srw2gaooyw63q62cp4udrxxa6molr2irbkgrloveylpkkblhq -www.syndie.i2p,vojgy5ep4wffmtpjmpnbpa4gq64bgn4yicuw6qmhbm6nqa2ysrva -www1.squid.i2p,vbh3bltd2duwbukafgj6f6vfi6aigwso7snucp5zohnf66a2hkpa -xc.i2p,mt45a2z3sb2iyy2mwauj4rwa2lwu4peanfy6gx6ybidwnbasusyq -xecut.i2p,y5mbioxpa5gocffimnhjudv7lq5rggh4njkvovur7mrcmfcxxloq -xeha.i2p,oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq -xilog.i2p,eoc5i5q52hutnmsmq56edvooulutaxfikddgdz27otmgtsxmiloq -xmpp.crypthost.i2p,ittkqpjuliwsdewdugkhvgzstejr2jp5tzou7p332lxx4xw7srba -xmpp.fazanka.i2p,fazan6gjj2fpgmnvrdi7it66zmtfbbjljbwgj37hqbd3o4xwhqca -xmpp.helpu.i2p,j6utejalk3mglymq3zaurbuxgpmiuoupr6px3lszy4mbreio7tfq -xmpp.rpi.i2p,3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca -xmpp.undefined.i2p,i7ihpnio5keiakl6i55ub26lxnpdo6yoguzikbamwhuoewi7e4dq -xmppfree.i2p,axzxqfmir6ixkx6np5zh3uuzoca27beonuaxhxhwdl2xt7ufjzaa -xn--hallchen-q4a.i2p,h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq -xn--l2bl5aw.i2p,d2epikjh5crt2l5xjmtceqw2ho44hzp6x3u7hgjrd4mi4wywikwa -xolotl.i2p,rwr6rrlmrotxfkxt22mah42cycliy2g5k7hgxyxkpcyyxkd2bgwq -xotc.i2p,gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq -xpyxpy.i2p,vwzdbqs7p4z5i6zob4gqrl7kejnkaxfo7haabowdq6tjqwltatuq -yacy.idk.i2p,7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq -yayponiesreloaded.i2p,sqpxarqcgkozjywghangtvbc5a3ugklffs625elbz73h55ywyhsq -yobyrf.i2p,suomfhdrqoedznx3dsc2vxve34bqm6j4broc4e5prgeysx4vu43q -yoitsu.i2p,yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa -yottabyte.i2p,zsdqh2ozauksuyeiaqypgcxus5ldmxgxxgz4yp76pglrjxzzu2ra -z-lab.i2p,s6g2pz3mrwzsl4ts65ox3scqawfj7mzvd7hn2ekiiycawopkriba -zab.i2p,n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq -zcash.i2p,zcashmliuw3yd2ptfyd5sadatcpyxj4ldiqahtjzg73cgoevxp4q -zede.i2p,ibzqdhlk556qst7sy45jec4rj3pxri3qqv6noh2tg3y53ppu5ubq -zener.i2p,mcbyglflte3dhwhqyafsfpnqtcapqkv2sepqd62wzd7fo2dzz4ca -zerobin.i2p,3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq -zeroman.i2p,gq77fmto535koofcd53f6yzcc5y57ccrxg3pb6twhcodc7v5dutq -zeronet.i2p,fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna -znc.i2p,uw2yt6njjl676fupd72hiezwmd4ouuywowrph6fvhkzhlnvp7jwa -znc.str4d.i2p,ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq -zog.i2p,7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a -zootopia.i2p,evlpg2m7n3nnqtu3jjy52zxhglj52teqgl4cgei7egccxjg3shva -zzz.i2p,ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq diff --git a/osx/build/i2pd/certificates/reseed/bugme_at_mail.i2p.crt b/osx/build/i2pd/certificates/reseed/bugme_at_mail.i2p.crt deleted file mode 100644 index 2b6acac..0000000 --- a/osx/build/i2pd/certificates/reseed/bugme_at_mail.i2p.crt +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFezCCA2OgAwIBAgIEUQYyQjANBgkqhkiG9w0BAQ0FADBuMQswCQYDVQQGEwJY -WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt -b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEXMBUGA1UEAwwOYnVnbWVAbWFpbC5p -MnAwHhcNMTQxMTA2MDkxMTE0WhcNMjQxMTA1MDkxMTE0WjBuMQswCQYDVQQGEwJY -WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt -b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEXMBUGA1UEAwwOYnVnbWVAbWFpbC5p -MnAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCrThOH0eSDT0VnCSBC -sqYmAydWH+O8eNttDXr2mSvZLhvAW+6/xHTkKhaWvkIvvS0Vh8hujMnD90Cgp4Fk -TKCxMj9K527o5xIZwWW05OevbjlBwIpVLO1PjmsfsoD1nIX14eEzJSEoAulKsv7V -jGUC/6hC11mmVvH9buQLSRv6sCjuAcMszmw3TAD+XYBIs+z57KuwYXtX3+OA543c -l1/ZKLYkkwY8cwzZqWDVWqTKP5TfVae58t40HhJk3bOsr21FZsaOjlmao3GO+d/3 -exKuUGJRcolSqskL3sZ1ovFqko81obvvx0upI0YA0iMr/NRGl3VPuf/LJvRppYGc -LsJHgy9TIgtHvaXRi5Nt4CbKl9sZh/7WkkTTI5YGvevu00btlabAN+DSAZZqdsB3 -wY8HhM1MHiA9SWsqwU65TwErcRrjNna2FiDHEu0xk5+/iAGl6CSKHZBmNcYKXSv8 -cwShB0jjmciK0a05nC638RPgj0fng7KRrSglyzfjXRrljmZ40LSBL/GGMZMWpOM7 -mEsBH5UZJ/2BEmjc9X9257zBdx8BK8y1TXpAligpNBsERcTw1WP1PJ35einZvlXW -qI3GwMf0sl26sn+evcK0gDl27jVDZ45MtNQEq64M4NV3Tn9zq0eg/39YvjVeqrI5 -l7sxmYqYGR6BuSncwdc4x+t6swIDAQABoyEwHzAdBgNVHQ4EFgQU/REZ7NMbVZHr -Xkao6Q8Ccqv2kAMwDQYJKoZIhvcNAQENBQADggIBACc2YjLVNbl1kJUdg2klCLJt -5LjNTiIZa2Cha5GStlC/lyoRRge6+q/y9TN3tTptlzLPS9pI9EE1GfIQaE+HAk+e -/bC3KUOAHgVuETvsNAbfpaVsPCdWpFuXmp/4b9iDN7qZy4afTKUPA/Ir/cLfNp14 -JULfP4z2yFOsCQZ5viNFAs1u99FrwobV2LBzUSIJQewsksuOwj96zIyau0Y629oJ -k+og88Tifd9EH3MVZNGhdpojQDDdwHQSITnCDgfRP5yER1WIA4jg6l+mM90QkvLY -5NjWTna5kJ3X6UizvgCk365yzT2sbN3R9UGXfCJa9GBcnnviJtJF3+/gC0abwY2f -NtVYp32Xky45NY/NdRhDg0bjHP3psxmX+Sc0M9NuQcDQ+fUR+CzM0IGeiszkzXOs -RG+bOou2cZ81G4oxWdAALHIRrn7VvLGlkFMxiIZyhYcTGQZzsTPT6n18dY99+DAV -yQWZfIRdm8DOnt0G+cwfeohc/9ZwDmj4jJAAi0aeTXdY6NEGIVydk6MAycEhg2Hx -9EV96kRwZNIW0AGY8CozECFL3Eyo2ClQVV4Q35SsBibsitDjM03usc2DJ/qjynXA -C8HoOSWgbddiBvqZueqK8GdhykOy3J3ysr+MNN/lbG48LqkQr1OWxev9rGGQ6RJT -wpBgPyAFAwouPy1whmnx ------END CERTIFICATE----- diff --git a/osx/build/i2pd/certificates/reseed/meeh_at_mail.i2p.crt b/osx/build/i2pd/certificates/reseed/meeh_at_mail.i2p.crt deleted file mode 100644 index 6014c96..0000000 --- a/osx/build/i2pd/certificates/reseed/meeh_at_mail.i2p.crt +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFeTCCA2GgAwIBAgIEZZozujANBgkqhkiG9w0BAQ0FADBtMQswCQYDVQQGEwJY -WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt -b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEWMBQGA1UEAwwNbWVlaEBtYWlsLmky -cDAeFw0xNDA2MjgyMjQ5MDlaFw0yNDA2MjcyMjQ5MDlaMG0xCzAJBgNVBAYTAlhY -MQswCQYDVQQIEwJYWDELMAkGA1UEBxMCWFgxHjAcBgNVBAoTFUkyUCBBbm9ueW1v -dXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRYwFAYDVQQDDA1tZWVoQG1haWwuaTJw -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnVnmPE4uUvCky0yCnnVH -cJEDqzwDPupx0zr0YDlhZk5VOPPecx5haayJ/V6nXPc1aVVWn+CHfedcF2aBgN4K -5aBueS/l6l5WHcv02DofAqlTmyAws3oQeR1qoTuW24cKRtLR7h5bxv63f6bgp6e+ -RihFNez6UxErnRPuJOJEO2Im6EgVp6fz7tQ7R35zxAUeES2YILPySvzy2vYm/EEG -jXX7Ap2A5svVo90xCMOeUZ/55vLsjyIshN+tV87U4xwvAkUmwsmWVHm3BQpHkI6z -zMJie6epB8Bqm0GYm0EcElJH4OCxGTvDLoghpswbuUO7iy3JSfoL7ZCnoiQdK9K4 -yVVChj8lG+r7KaTowK96iZep+sZefjOt5VFGuW2Fi/WBv3ldiLlJAo/ZfrUM4+vG -fyNBXbl6bX87uTCGOT1p3dazo+zJMsAZ+Y93DlM/mDEWFa1kKNrs74syzaWEqF4L -KQE6VoYn80OOzafSigTVQgSwUtQtB0XGhMzJhyxU2XHWe1LFIy7Pta0B+lDiZj7c -I8nXxYjsDfEu/Elj/Ra9N6bH0awmgB5JDa+Tbir+oEM5SyDfpSaCGuatdGxjweGI -kVmFU0SqCZV/8TXbIu6MUVzTZMZVT94edifFSRad4fqw7eZbSXlPu++3d1/btn6h -ibM04nkv0mm+FxCKB/wdAkECAwEAAaMhMB8wHQYDVR0OBBYEFO7jIkSRkoXyJcho -9/Q0gDOINa5EMA0GCSqGSIb3DQEBDQUAA4ICAQBzfWO7+8HWOKLaYWToJ6XZbpNF -3wXv1yC4W/HRR80m4JSsq9r0d7838Nvd7vLVP6MY6MaVb/JnV76FdQ5WQ6ticD0Y -o3zmpqqbKVSspN0lrkig4surT88AjfVQz/vEIzKNQEbpzc3hC2LCiE2u+cK/ix4j -b9RohnaPvwLnew5RNQRpcmk+XejaNITISr2yQIwXL7TEYy8HdGCfzFSSFhKe9vkb -GsWS5ASrUzRoprswmlgRe8gEHI+d51Z7mWgna0/5mBz9bH/3QXtpxlLWm3bVV+kt -pZjQDTHE0GqG2YsD1Gmp4LU/JFhCojMTtiPCXmr9KFtpiVlx06DuKm5PC8Ak+5w+ -m/DQYYfv9z+AA5Y430bjnzwg67bhqVyyek4wcDQinFswv3h4bIB7CJujDcEqXXza -lhG1ufPPCUTMrVjh7AShohZraqlSlyQPY9vEppLwD4W1d+MqDHM7ljOH7gQYaUPi -wE30AdXEOxLZcT3aRKxkKf2esNofSuUC/+NXQvPjpuI4UJKO3eegi+M9dbnKoNWs -MPPLPpycecWPheFYM5K6Ao63cjlUY2wYwCfDTFgjA5q8i/Rp7i6Z6fLE3YWJ4VdR -WOFB7hlluQ//jMW6M1qz6IYXmlUjcXl81VEvlOH/QBNrPvX3I3SYXYgVRnVGUudB -o3eNsanvTU+TIFBh2Q== ------END CERTIFICATE----- diff --git a/osx/build/preferences/cck2/chrome.manifest b/osx/build/preferences/cck2/chrome.manifest deleted file mode 100644 index b1b9a9b..0000000 --- a/osx/build/preferences/cck2/chrome.manifest +++ /dev/null @@ -1 +0,0 @@ -resource cck2 modules/ diff --git a/osx/build/preferences/cck2/modules/CAPSCheckLoadURIFramescript.js b/osx/build/preferences/cck2/modules/CAPSCheckLoadURIFramescript.js deleted file mode 100644 index 806fb3c..0000000 --- a/osx/build/preferences/cck2/modules/CAPSCheckLoadURIFramescript.js +++ /dev/null @@ -1,154 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -const EXPORTED_SYMBOLS = []; - -var gForceExternalHandler = false; - -XPCOMUtils.defineLazyServiceGetter(this, "extProtocolSvc", - "@mozilla.org/uriloader/external-protocol-service;1", "nsIExternalProtocolService"); - -var documentObserver = { - observe: function observe(subject, topic, data) { - if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') { - var doc = subject.document; - doc.addEventListener("DOMContentLoaded", function onLoad(event) { - event.target.removeEventListener("DOMContentLoaded", onLoad, false); - // If the parent document is a local file, don't do anything - // Links will just work - if (doc.location.href.indexOf("file://") == 0) { - return; - } - var links = event.target.getElementsByTagName("a"); - for (var i=0; i < links.length; i++) { - var link = links[i]; - if (link.href.indexOf("file://") != 0) { - continue; - } - link.addEventListener("click", function(link) { - return function(event) { - event.preventDefault(); - if (gForceExternalHandler) { - extProtocolSvc.loadUrl(Services.io.newURI(link.href, null, null)); - } else { - var target = "_self"; - if (link.hasAttribute("target")) { - target = link.getAttribute("target"); - } - // If we were told somewhere other than current (based on modifier keys), use it - var where = whereToOpenLink(event); - if (where != "current" || target == "_blank") { - sendAsyncMessage("cck2:open-url", { - "url": link.href, - "where": (target == "_blank") ? "tab" : where - }); - return; - } - switch (target) { - case "_self": - link.ownerDocument.location = link.href; - break; - case "_parent": - link.ownerDocument.defaultView.parent.document.location = link.href; - break; - case "_top": - link.ownerDocument.defaultView.top.document.location = link.href; - break; - default: - // Attempt to find the iframe that this goes into - var iframes = doc.defaultView.parent.document.getElementsByName(target); - if (iframes.length > 0) { - iframes[0].contentDocument.location = link.href; - } else { - link.ownerDocument.location = link.href; - } - break; - } - } - } - }(link), false); - } - }, false); - } - } -} - -// Don't do this check before Firefox 29 -if (Services.vc.compare(Services.appinfo.version, "29") > 0) { - try { - if (Services.prefs.getCharPref("capability.policy.default.checkloaduri.enabled") == "allAccess") { - gForceExternalHandler = !extProtocolSvc.isExposedProtocol('file'); - Services.obs.addObserver(documentObserver, "content-document-global-created", false); - addEventListener("unload", function() { - Services.obs.removeObserver(documentObserver, "content-document-global-created", false); - }) - } - } catch (e) {} -} - - -/* Copied from http://mxr.mozilla.org/mozilla-central/source/browser/base/content/utilityOverlay.js?raw=1 */ - -function getBoolPref(prefname, def) -{ - try { - return Services.prefs.getBoolPref(prefname); - } - catch(er) { - return def; - } -} - -/* whereToOpenLink() looks at an event to decide where to open a link. - * - * The event may be a mouse event (click, double-click, middle-click) or keypress event (enter). - * - * On Windows, the modifiers are: - * Ctrl new tab, selected - * Shift new window - * Ctrl+Shift new tab, in background - * Alt save - * - * Middle-clicking is the same as Ctrl+clicking (it opens a new tab). - * - * Exceptions: - * - Alt is ignored for menu items selected using the keyboard so you don't accidentally save stuff. - * (Currently, the Alt isn't sent here at all for menu items, but that will change in bug 126189.) - * - Alt is hard to use in context menus, because pressing Alt closes the menu. - * - Alt can't be used on the bookmarks toolbar because Alt is used for "treat this as something draggable". - * - The button is ignored for the middle-click-paste-URL feature, since it's always a middle-click. - */ -function whereToOpenLink( e, ignoreButton, ignoreAlt ) -{ - Components.utils.import("resource://gre/modules/AppConstants.jsm"); - - // This method must treat a null event like a left click without modifier keys (i.e. - // e = { shiftKey:false, ctrlKey:false, metaKey:false, altKey:false, button:0 }) - // for compatibility purposes. - if (!e) - return "current"; - - var shift = e.shiftKey; - var ctrl = e.ctrlKey; - var meta = e.metaKey; - var alt = e.altKey && !ignoreAlt; - - // ignoreButton allows "middle-click paste" to use function without always opening in a new window. - var middle = !ignoreButton && e.button == 1; - var middleUsesTabs = true; - - // Don't do anything special with right-mouse clicks. They're probably clicks on context menu items. - - var metaKey = AppConstants.platform == "macosx" ? meta : ctrl; - if (metaKey || (middle && middleUsesTabs)) - return shift ? "tabshifted" : "tab"; - - if (alt && getBoolPref("browser.altClickSave", false)) - return "save"; - - if (shift || (middle && !middleUsesTabs)) - return "window"; - - return "current"; -} diff --git a/osx/build/preferences/cck2/modules/CAPSClipboardFramescript.js b/osx/build/preferences/cck2/modules/CAPSClipboardFramescript.js deleted file mode 100644 index ffadb9d..0000000 --- a/osx/build/preferences/cck2/modules/CAPSClipboardFramescript.js +++ /dev/null @@ -1,183 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; -Cu.import("resource://gre/modules/Services.jsm"); - -const EXPORTED_SYMBOLS = []; - -var gAllowedPasteSites = []; -var gAllowedCutCopySites = []; -var gDeniedPasteSites = []; -var gDeniedCutCopySites = []; -var gDefaultPastePolicy = false; -var gDefaultCutCopyPolicy = false; - -function allowCutCopy(doc) { - var win = doc.defaultView; - if (win !== win.top) { - // It's an iframe. Use the top level window - // for security purposes - win = win.top; - } - - if (gDefaultCutCopyPolicy == true) { - for (var i=0; i < gDeniedCutCopySites.length; i++) { - if (win.location.href.indexOf(gDeniedCutCopySites[i]) == 0) { - return false; - } - } - return true; - } else { - for (var i=0; i < gAllowedCutCopySites.length; i++) { - if (win.location.href.indexOf(gAllowedCutCopySites[i]) == 0) { - return true; - } - } - return false; - } -} - -function allowPaste(doc) { - var win = doc.defaultView; - if (win !== win.top) { - // It's an iframe. Use the top level window - // for security purposes - win = win.top; - } - - if (gDefaultPastePolicy == true) { - for (var i=0; i < gDeniedPasteSites.length; i++) { - if (win.location.href.indexOf(gDeniedPasteSites[i]) == 0) { - return false; - break; - } - } - return true; - } else { - for (var i=0; i < gAllowedPasteSites.length; i++) { - if (win.location.href.indexOf(gAllowedPasteSites[i]) == 0) { - return true; - break; - } - } - return false; - } -} - -function myExecCommand(doc, originalExecCommand) { - return function(aCommandName, aShowDefaultUI, aValueArgument) { - switch (aCommandName.toLowerCase()) { - case "cut": - case "copy": - if (allowCutCopy(doc)) { - var win = Services.wm.getMostRecentWindow("navigator:browser"); - win.goDoCommand("cmd_" + aCommandName.toLowerCase()); - return true; - } - break; - case "paste": - if (allowPaste(doc)) { - var win = Services.wm.getMostRecentWindow("navigator:browser"); - win.goDoCommand("cmd_" + aCommandName.toLowerCase()); - return true; - } - break; - } - return originalExecCommand.call(doc, aCommandName, aShowDefaultUI, aValueArgument); - } -} - -function myQueryCommandSupported(doc, originalQueryCommandSupported) { - return function(aCommandName) { - switch (aCommandName.toLowerCase()) { - case "cut": - case "copy": - if (allowCutCopy(doc)) { - return true; - } - break; - case "paste": - if (allowPaste(doc)) { - return true; - } - break; - } - return originalQueryCommandSupported.call(doc, aCommandName, aShowDefaultUI, aValueArgument); - } -} - -var documentObserver = { - observe: function observe(subject, topic, data) { - if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') { - var doc = subject.document; - var cutCopyAllowed = allowCutCopy(doc); - var pasteAllowed = allowPaste(doc); - if (!cutCopyAllowed && !pasteAllowed) { - return; - } - var originalExecCommand = Cu.waiveXrays(doc).execCommand; - Cu.exportFunction(myExecCommand(doc, originalExecCommand), doc, {defineAs: "execCommand"}); - var originalQueryCommandSupported = Cu.waiveXrays(doc).queryCommandSupported; - Cu.exportFunction(myQueryCommandSupported(doc, originalQueryCommandSupported), doc, {defineAs: "queryCommandSupported"}); - var originalQueryCommandEnabled = Cu.waiveXrays(doc).queryCommandEnabled; - Cu.exportFunction(myQueryCommandSupported(doc, originalQueryCommandEnabled), doc, {defineAs: "queryCommandEnabled"}); - } - } -} - -// Don't do this check before Firefox 29 -if (Services.vc.compare(Services.appinfo.version, "29") > 0) { - try { - if (Services.prefs.getCharPref("capability.policy.default.Clipboard.cutcopy") == "allAccess") { - gDefaultCutCopyPolicy = true; - } - } catch (e) {} - try { - if (Services.prefs.getCharPref("capability.policy.default.Clipboard.paste") == "allAccess") { - gDefaultPastePolicy = true; - } - } catch (e) {} - try { - var policies = []; - policies = Services.prefs.getCharPref("capability.policy.policynames").split(', '); - for (var i=0; i < policies.length; i++ ) { - try { - if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.cutcopy") == "allAccess") { - var allowedCutCopySites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" "); - for (var j=0; j < allowedCutCopySites.length; j++) { - gAllowedCutCopySites.push(allowedCutCopySites[j]); - } - } - } catch(e) {} - try { - if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.cutcopy") == "noAccess") { - var deniedCutCopySites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" "); - for (var j=0; j < deniedCutCopySites.length; j++) { - gDeniedCutCopySites.push(deniedCutCopySites[j]); - } - } - } catch(e) {} - try { - if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.paste") == "allAccess") { - var allowedPasteSites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" "); - for (var j=0; j < allowedPasteSites.length; j++) { - gAllowedPasteSites.push(allowedPasteSites[j]); - } - } - } catch(e) {} - try { - if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.paste") == "noAccess") { - var deniedPasteSites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" "); - for (var j=0; j < deniedPasteSites.length; j++) { - gDeniedPasteSites.push(deniedPasteSites[j]); - } - } - } catch(e) {} - } - } catch (e) {} - if (gDefaultCutCopyPolicy || gDefaultPastePolicy || - gAllowedCutCopySites.length > 0 || gAllowedPasteSites> 0) { - Services.obs.addObserver(documentObserver, "content-document-global-created", false); - addEventListener("unload", function() { - Services.obs.removeObserver(documentObserver, "content-document-global-created", false); - }) - } -} diff --git a/osx/build/preferences/cck2/modules/CCK2.jsm b/osx/build/preferences/cck2/modules/CCK2.jsm deleted file mode 100644 index 2a63260..0000000 --- a/osx/build/preferences/cck2/modules/CCK2.jsm +++ /dev/null @@ -1,1495 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -var EXPORTED_SYMBOLS = ["CCK2"]; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/NetUtil.jsm"); -Cu.import("resource://gre/modules/FileUtils.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/PlacesUtils.jsm"); -try { - Cu.import("resource://gre/modules/Timer.jsm"); -} catch (ex) { - Cu.import("resource://cck2/Timer.jsm"); -} -Cu.import("resource://cck2/Preferences.jsm"); -Cu.import("resource://cck2/CTPPermissions.jsm"); -Cu.import("resource:///modules/distribution.js"); - -XPCOMUtils.defineLazyServiceGetter(this, "bmsvc", - "@mozilla.org/browser/nav-bookmarks-service;1", "nsINavBookmarksService"); -XPCOMUtils.defineLazyServiceGetter(this, "annos", - "@mozilla.org/browser/annotation-service;1", "nsIAnnotationService"); -XPCOMUtils.defineLazyServiceGetter(this, "override", - "@mozilla.org/security/certoverride;1", "nsICertOverrideService"); -XPCOMUtils.defineLazyServiceGetter(this, "uuid", - "@mozilla.org/uuid-generator;1", "nsIUUIDGenerator"); - -Cu.importGlobalProperties(["XMLHttpRequest"]); - -/* Hack to work around bug that AutoConfig is loaded in the wrong charset */ -/* Not used for Firefox 44 and above (see CCK2.init) */ -let fixupUTF8 = function(str) { - if (!str) { - return null; - } - var out, i, len, c; - var char2, char3; - - out = ""; - len = str.length; - i = 0; - while(i < len) { - c = str.charCodeAt(i++); - switch(c >> 4) - { - case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: - // 0xxxxxxx - out += str.charAt(i-1); - break; - case 12: case 13: - // 110x xxxx 10xx xxxx - char2 = str.charCodeAt(i++); - out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); - break; - case 14: - // 1110 xxxx 10xx xxxx 10xx xxxx - char2 = str.charCodeAt(i++); - char3 = str.charCodeAt(i++); - out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); - break; - } - } - - return out; -}; - -/* Crazy hack to work around distribution.ini bug */ -/* Basically if the distribution can't be parsed, make it null */ -let dirSvc = Cc["@mozilla.org/file/directory_service;1"]. - getService(Ci.nsIProperties); -let iniFile = dirSvc.get("XREAppDist", Ci.nsIFile); -iniFile.leafName = "distribution"; -iniFile.append("distribution.ini"); -if (iniFile.exists()) { - try { - let ini = Cc["@mozilla.org/xpcom/ini-parser-factory;1"]. - getService(Ci.nsIINIParserFactory). - createINIParser(iniFile); - } catch (e) { - DistributionCustomizer.prototype.__defineGetter__("_iniFile", function() { return null;}); - } -} - -var networkPrefMapping = { - proxyType: "network.proxy.type", - proxyHTTP: "network.proxy.http", - proxyHTTPPort: "network.proxy.http_port", - proxySSL: "network.proxy.ssl", - proxySSLPort: "network.proxy.ssl_port", - proxyFTP: "network.proxy.ftp", - proxyFTPPort: "network.proxy.ftp_port", - proxySOCKS: "network.proxy.socks", - proxySOCKSPort: "network.proxy.socks_port", - proxySocksVersion: "network.proxy.socks_version", - proxyNone: "network.proxy.no_proxies_on", - proxyAutoConfig: "network.proxy.autoconfig_url", - shareAllProxies: "network.proxy.share_proxy_settings", - proxySOCKSRemoteDNS: "network.proxy.socks_remote_dns", - proxyAutologin: "signon.autologin.proxy" -} - - -function alert(string) { - Services.prompt.alert(Services.wm.getMostRecentWindow("navigator:browser"), "", string); -} - -var gBundlePrefFiles = []; - -var CCK2 = { - configs: {}, - firstrun: false, - upgrade: false, - installedVersion: null, - initialized: false, - aboutFactories: [], - init: function(config, a, b) { - if (a == b) { - /* See bugzilla 1193625/1137799 */ - fixupUTF8 = function(str) { return str }; - } - // Bring back default profiles for >= FF46 - if (Services.vc.compare(Services.appinfo.version, "46") >= 0) { - // If it is a new profile - if (!Preferences.isSet("browser.startup.homepage_override.mstone")) { - var defaultProfileDir = Services.dirsvc.get("GreD", Ci.nsIFile); - defaultProfileDir.append("defaults"); - defaultProfileDir.append("profile"); - if (defaultProfileDir.exists()) { - var profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile); - try { - copyDir(defaultProfileDir, profileDir); - } catch(e) { - Components.utils.reportError("Error copying default profile directory: " + e); - } - } - } - } - try { - for (var id in this.configs) { - if (id == config.id) { - // We've already processed this config - return; - } - } - if (!config) { - // Try to get config from default preference. If it is there, default - // preference always wins - var configJSON = Preferences.defaults.get("extensions.cck2.config"); - if (!configJSON) { - configJSON = Preferences.defaults.get("extensions.cck2.config"); - } - if (!configJSON) { - // Try something else. Grou policy? - } - try { - config = JSON.parse(configJSON); - } catch (ex) { - return; - } - } - - if (!config) - return; - if (!config.id) { - alert("Missing ID in config"); - } - config.firstrun = Preferences.get("extensions.cck2." + config.id + ".firstrun", true); - Preferences.set("extensions.cck2." + config.id + ".firstrun", false); - if (!config.firstrun) { - config.installedVersion = Preferences.get("extensions.cck2." + config.id + ".installedVersion"); - config.upgrade = (config.installedVersion != config.version); - } - Preferences.set("extensions.cck2." + config.id + ".installedVersion", config.version); - Preferences.lock("distribution.id", config.id); - Preferences.lock("distribution.version", config.version + " (CCK2)"); -// Preferences.lock("distribution.about", String(config.id + " - " + config.version + " (CCK2)")); - - if (config.removeDefaultSearchEngines) { - Services.io.getProtocolHandler("resource").QueryInterface(Components.interfaces.nsIResProtocolHandler) - .setSubstitution("search-plugins", null); - } - if (config.noAddonCompatibilityCheck) { - Preferences.reset("extensions.lastAppVersion"); - } - if (config.preferences) { - for (var i in config.preferences) { - // For plugin.disable_full_page_plugin_for_types, there is - // a default user value (application/pdf). - // Because of this, setting the default value doesn't work. - // So if a user is trying to set the default value, we set - // the user value instead. - // But we only do that if it's set to application/pdf - // or not set (startup), or it's a CCK2 upgrade or first install - // As a side note, at Firefox install, application/pdf is added - // to the pref no matter what - if (i == "plugin.disable_full_page_plugin_for_types") { - if (!config.preferences[i].userset && - !config.preferences[i].locked && - !config.preferences[i].clear) { - if (Preferences.get(i) == "application/pdf" || - !Preferences.get(i) || // firstrun - config.upgrade || - config.firstrun) { - Preferences.set(i, config.preferences[i].value); - continue; - } - } - } - // Workaround bug where this pref is coming is as a string from import - if (i == "toolkit.telemetry.prompted") { - config.preferences[i].value = parseInt(config.preferences[i].value); - } - if (config.preferences[i].locked) { - Preferences.lock(i, config.preferences[i].value); - } else if (config.preferences[i].userset) { - Preferences.set(i, config.preferences[i].value); - } else if (config.preferences[i].clear) { - Preferences.reset(i); - } else { - if (i == "browser.startup.homepage" || - i == "gecko.handlerService.defaultHandlersVersion" || - i == "browser.menu.showCharacterEncoding" || - i == "intl.accept_languages" || - i.indexOf("browser.search.defaultenginename") == 0 || - i.indexOf("browser.search.order") == 0 || - i.indexOf("browser.contentHandlers.types") == 0 || - i.indexOf("gecko.handlerService.schemes") == 0) { - // If it's a complex preference, we need to set it differently - Preferences.defaults.set(i, "data:text/plain," + i + "=" + config.preferences[i].value); - } else { - Preferences.defaults.set(i, config.preferences[i].value); - } - } - } - } - if (config.registry && "@mozilla.org/windows-registry-key;1" in Cc) { - for (var i in config.registry) { - addRegistryKey(config.registry[i].rootkey, - config.registry[i].key, - config.registry[i].name, - config.registry[i].value, - config.registry[i].type); - } - } - if (config.permissions) { - for (var i in config.permissions) { - for (var j in config.permissions[i]) { - if (i.indexOf("http") == 0) { - Services.perms.add(NetUtil.newURI(i), j, config.permissions[i][j]); - } else { - var domain = i.replace(/^\*\./g, ''); - Services.perms.add(NetUtil.newURI("http://" + domain), j, config.permissions[i][j]); - Services.perms.add(NetUtil.newURI("https://" + domain), j, config.permissions[i][j]); - } - if (j == "plugins") { - var plugins = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost).getPluginTags({}); - for (var k=0; k < plugins.length; k++) { - if (i.indexOf("http") == 0) { - Services.perms.add(NetUtil.newURI(i), "plugin:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - Services.perms.add(NetUtil.newURI(i), "plugin-vulnerable:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - } else { - var domain = i.replace(/^\*\./g, ''); - Services.perms.add(NetUtil.newURI("http://" + domain), "plugin:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - Services.perms.add(NetUtil.newURI("http://" + domain), "plugin-vulnerable:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - Services.perms.add(NetUtil.newURI("https://" + domain), "plugin:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - Services.perms.add(NetUtil.newURI("https://" + domain), "plugin-vulnerable:" + CTP.getPluginPermissionFromTag(plugins[k]), config.permissions[i][j]); - } - } - } - } - if (Object.keys(config.permissions[i]).length === 0) { - let perms = Services.perms.enumerator; - while (perms.hasMoreElements()) { - let perm = perms.getNext(); - try { - // Firefox 41 and below - if (perm.host == i) { - Services.perms.remove(perm.host, perm.type); - } - } catch(e) { - if (i.indexOf("http") == 0) { - if (perm.matchesURI(NetUtil.newURI(i), false)) { - perm.remove(NetUtil.newURI(i), perm.type); - } - } else { - var domain = i.replace(/^\*\./g, ''); - if (perm.matchesURI(NetUtil.newURI("http://" + domain), false)) { - perm.remove(NetUtil.newURI("http://" + domain), perm.type); - } - if (perm.matchesURI(NetUtil.newURI("https://" + i), false)) { - perm.remove(NetUtil.newURI("https://" + domain), perm.type); - } - } - } - } - } - } - } - if (config.disablePrivateBrowsing) { - Preferences.lock("browser.taskbar.lists.tasks.enabled", false); - Preferences.lock("browser.privatebrowsing.autostart", false); - var aboutPrivateBrowsing = {}; - aboutPrivateBrowsing.classID = Components.ID(uuid.generateUUID().toString()); - aboutPrivateBrowsing.factory = disableAbout(aboutPrivateBrowsing.classID, - "Disable about:privatebrowsing - CCK", - "privatebrowsing"); - CCK2.aboutFactories.push(aboutPrivateBrowsing); - } - if (config.noGetAddons) { - Preferences.lock("extensions.getAddons.showPane", false); - } - if (config.noAddons) { - Preferences.lock("xpinstall.enabled", false); - } - if (config.disablePDFjs) { - Preferences.lock("pdfjs.disabled", true); - } - if (config.disableHello) { - Preferences.lock("loop.enabled", false); - } - if (config.disablePocket) { - Preferences.lock("browser.pocket.enabled", false); - Preferences.lock("extensions.pocket.enabled", false); - Preferences.lock("browser.newtabpage.activity-stream.feeds.section.topstories", false); - } - if (config.disableHeartbeat) { - Preferences.lock("browser.selfsupport.url", ""); - } - if (config.disableInContentPrefs) { - Preferences.lock("browser.preferences.inContent", false); - } - if (config.disableSync) { - var aboutAccounts = {}; - aboutAccounts.classID = Components.ID(uuid.generateUUID().toString()); - aboutAccounts.factory = disableAbout(aboutAccounts.classID, - "Disable about:accounts - CCK", - "accounts"); - CCK2.aboutFactories.push(aboutAccounts); - var aboutSyncLog = {}; - aboutSyncLog.classID = Components.ID(uuid.generateUUID().toString()); - aboutSyncLog.factory = disableAbout(aboutSyncLog.classID, - "Disable about:sync-log - CCK", - "sync-log"); - CCK2.aboutFactories.push(aboutSyncLog); - var aboutSyncProgress = {}; - aboutSyncProgress.classID = Components.ID(uuid.generateUUID().toString()); - aboutSyncProgress.factory = disableAbout(aboutSyncProgress.classID, - "Disable about:sync-progress - CCK", - "sync-progress"); - CCK2.aboutFactories.push(aboutSyncProgress); - var aboutSyncTabs = {}; - aboutSyncTabs.classID = Components.ID(uuid.generateUUID().toString()); - aboutSyncTabs.factory = disableAbout(aboutSyncTabs.classID, - "Disable about:sync-tabs - CCK", - "sync-tabs"); - CCK2.aboutFactories.push(aboutSyncTabs); - Preferences.lock("browser.syncPromoViewsLeftMap", JSON.stringify({bookmarks:0, passwords:0, addons:0})); - Preferences.lock("browser.newtabpage.activity-stream.migrationExpired", true); - Preferences.lock("identity.fxaccounts.enabled", false); - } - var disableAboutConfigFactory = null; - if (config.disableAboutConfig) { - var aboutConfig = {}; - aboutConfig.classID = Components.ID(uuid.generateUUID().toString()); - aboutConfig.factory = disableAbout(aboutConfig.classID, - "Disable about:config - CCK", - "config"); - CCK2.aboutFactories.push(aboutConfig); - } - if (config.disableAboutProfiles) { - var aboutProfiles = {}; - aboutProfiles.classID = Components.ID(uuid.generateUUID().toString()); - aboutProfiles.factory = disableAbout(aboutProfiles.classID, - "Disable about:profiles - CCK", - "profiles"); - CCK2.aboutFactories.push(aboutProfiles); - } - if (config.disableAboutSupport) { - var aboutSupport = {}; - aboutSupport.classID = Components.ID(uuid.generateUUID().toString()); - aboutSupport.factory = disableAbout(aboutSupport.classID, - "Disable about:support - CCK", - "support"); - CCK2.aboutFactories.push(aboutSupport); - } - if (config.disableAddonsManager) { - var aboutAddons = {}; - aboutAddons.classID = Components.ID(uuid.generateUUID().toString()); - aboutAddons.factory = disableAbout(aboutAddons.classID, - "Disable about:addons - CCK", - "addons"); - CCK2.aboutFactories.push(aboutAddons); - } - - if (config.alwaysDefaultBrowser) { - var shellSvc = Cc["@mozilla.org/browser/shell-service;1"].getService(Ci.nsIShellService); - if (shellSvc) { - try { - var isDefault = shellSvc.isDefaultBrowser(true, false); - if (!isDefault) { - shellSvc.setDefaultBrowser(true, false); - } - } catch (e) { - // setDefaultBrowser errors on Yosemite, so we're just ignoring the error. - // See Bugzilla bug #1063529 - } - } - } - if (config.dontCheckDefaultBrowser) { - Preferences.lock("browser.shell.checkDefaultBrowser", false); - } - if (config.dontUseDownloadDir) { - Preferences.lock("browser.download.useDownloadDir", false); - } - if (config.disableFormFill) { - Preferences.lock("browser.formfill.enable", false); - } - if (config.removeSmartBookmarks) { - Preferences.lock("browser.places.smartBookmarksVersion", -1); - } - if (config.disableCrashReporter) { - Preferences.lock("toolkit.crashreporter.enabled", false); - Preferences.lock("browser.crashReports.unsubmittedCheck.autoSubmit", false); - try { - Cc["@mozilla.org/toolkit/crash-reporter;1"]. - getService(Ci.nsICrashReporter).submitReports = false; - } catch (e) { - // There seem to be cases where the crash reporter isn't defined - } - var aboutCrashes = {}; - aboutCrashes.classID = Components.ID(uuid.generateUUID().toString()); - aboutCrashes.factory = disableAbout(aboutCrashes.classID, - "Disable about:crashes - CCK", - "crashes"); - CCK2.aboutFactories.push(aboutCrashes); - } - if (config.disableTelemetry) { - Preferences.lock("toolkit.telemetry.enabled", false); - Preferences.lock("toolkit.telemetry.prompted", 999); - Preferences.lock("datareporting.policy.dataSubmissionPolicyBypassNotification", true); - var aboutTelemetry = {}; - aboutTelemetry.classID = Components.ID(uuid.generateUUID().toString()); - aboutTelemetry.factory = disableAbout(aboutTelemetry.classID, - "Disable about:telemetry - CCK", - "telemetry"); - CCK2.aboutFactories.push(aboutTelemetry); - } - if (config.removeDeveloperTools) { - Preferences.lock("devtools.scratchpad.enabled", false); - Preferences.lock("devtools.responsiveUI.enabled", false); - Preferences.lock("devtools.toolbar.enabled", false); - Preferences.lock("devtools.styleeditor.enabled", false); - Preferences.lock("devtools.debugger.enabled", false); - Preferences.lock("devtools.profiler.enabled", false); - Preferences.lock("devtools.errorconsole.enabled", false); - Preferences.lock("devtools.inspector.enabled", false); - } - if (config.homePage && !config.lockHomePage) { - Preferences.defaults.set("browser.startup.homepage", "data:text/plain,browser.startup.homepage=" + config.homePage); - /* If you have a distribution.ini, browser.startup.homepage gets wiped out */ - /* We need to save it */ - if (!Preferences.isSet("browser.startup.homepage")) { - Preferences.set("browser.startup.homepage", config.homePage); - } - } - if (config.lockHomePage) { - if (config.homePage) { - Preferences.lock("browser.startup.homepage", config.homePage); - } else { - Preferences.lock("browser.startup.homepage"); - } - Preferences.lock("pref.browser.homepage.disable_button.current_page", true); - Preferences.lock("pref.browser.homepage.disable_button.bookmark_page", true); - Preferences.lock("pref.browser.homepage.disable_button.restore_default", true); - } - if (config.noWelcomePage) { - Preferences.lock("startup.homepage_welcome_url", ""); - Preferences.lock("startup.homepage_welcome_url.additional", ""); - Preferences.lock("browser.usedOnWindows10", true); - - } else if (config.welcomePage) { - Preferences.lock("startup.homepage_welcome_url", config.welcomePage); - } - if (config.noUpgradePage) { - Preferences.lock("browser.startup.homepage_override.mstone", "ignore"); - } else if (config.upgradePage) { - Preferences.lock("startup.homepage_override_url", config.upgradePage); - } - if (config.dontShowRights) { - Preferences.lock("browser.rights.override", true); - var rightsVersion = Preferences.get("browser.rights.version"); - Preferences.lock("browser.rights." + rightsVersion + ".shown", true); - } - if (config.dontRememberPasswords) { - Preferences.lock("signon.rememberSignons", false); - } - if (config.disableFirefoxHealthReport) { - Preferences.lock("datareporting.healthreport.uploadEnabled", false); - var aboutHealthReport = {}; - aboutHealthReport.classID = Components.ID(uuid.generateUUID().toString()); - aboutHealthReport.factory = disableAbout(aboutHealthReport.classID, - "Disable about:healthreport - CCK", - "healthreport"); - CCK2.aboutFactories.push(aboutHealthReport); - } - if (config.disableFirefoxHealthReportUpload) { - Preferences.lock("datareporting.healthreport.uploadEnabled", false); - } - if (config.disableResetFirefox) { - try { - Cu.import("resource:///modules/UITour.jsm"); - UITour.origOnPageEvent = UITour.onPageEvent; - UITour.onPageEvent = function(a, b) { - var aEvent = b; - if (!aEvent) { - aEvent = a; - } - if (aEvent.detail.action == "resetFirefox") { - Services.prompt.alert(null, "CCK2", "This has been disabled by your administrator"); - return; - } - UITour.origOnPageEvent(a, b); - } - Preferences.lock("browser.disableResetPrompt ", true); - } catch (e) {} - } - if (config.disableFirefoxUpdates) { - Preferences.lock("app.update.auto", false); - Preferences.lock("app.update.enabled", false); - } - if (config.network) { - for (var i in networkPrefMapping) { - if (i in config.network) { - Preferences.defaults.set(networkPrefMapping[i], config.network[i]); - } - if (config.network.locked) { - Preferences.lock(networkPrefMapping[i]); - } - } - } - if (config.removeSnippets) { - Preferences.lock("browser.newtabpage.activity-stream.disableSnippets", true); - } - // Fixup bad strings - if ("helpMenu" in config) { - if ("label" in config.helpMenu) { - config.helpMenu.label = fixupUTF8(config.helpMenu.label); - } - if ("accesskey" in config.helpMenu) { - config.helpMenu.accesskey = fixupUTF8(config.helpMenu.accesskey); - } - } - if ("titlemodifier" in config) { - config.titlemodifier = fixupUTF8(config.titlemodifier); - } - if ("defaultSearchEngine" in config) { - config.defaultSearchEngine = fixupUTF8(config.defaultSearchEngine); - } - this.configs[config.id] = config; - } catch (e) { - errorCritical(e); - } - }, - getConfigs: function() { - return this.configs; - }, - observe: function observe(subject, topic, data) { - switch (topic) { - case "distribution-customization-complete": - for (var id in this.configs) { - var config = this.configs[id]; - // Due to bug 947838, we have to reinitialize default preferences - { - var iniFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile); - iniFile.leafName = "distribution"; - iniFile.append("distribution.ini"); - if (iniFile.exists()) { - if (config.preferences) { - for (var i in config.preferences) { - // Workaround bug where this pref is coming is as a string from import - if (i == "toolkit.telemetry.prompted") { - config.preferences[i].value = parseInt(config.preferences[i].value); - } - if (!("locked" in config.preferences[i]) && - !("userset" in config.preferences[i]) && - !("clear" in config.preferences[i])) { - if (Preferences.defaults.has(i)) { - try { - // If it's a complex preference, we need to set it differently - Services.prefs.getComplexValue(i, Ci.nsIPrefLocalizedString).data; - Preferences.defaults.set(i, "data:text/plain," + i + "=" + config.preferences[i].value); - } catch (ex) { - Preferences.defaults.set(i, config.preferences[i].value); - } - } else { - Preferences.defaults.set(i, config.preferences[i].value); - } - } - } - } - } - if (config.homePage && !config.lockHomePage) { - Preferences.defaults.set("browser.startup.homepage", "data:text/plain,browser.startup.homepage=" + config.homePage); - /* If you have a distribution.ini, we changed browser.startup.homepage */ - /* Put it back */ - if (Preferences.get("browser.startup.homepage") == config.homePage) { - Preferences.reset("browser.startup.homepage"); - } - } - if (config.network) { - for (var i in networkPrefMapping) { - if (i in config.network) { - Preferences.defaults.set(networkPrefMapping[i], config.network[i]); - } - } - } - } - // Try to install devices every time just in case get added after install - if ("certs" in config && "devices" in config.certs) { - let pkcs11; - try { - pkcs11 = Components.classes["@mozilla.org/security/pkcs11;1"].getService(Ci.nsIPKCS11); - } catch (e) { - pkcs11 = Components.classes["@mozilla.org/security/pkcs11moduledb;1"].getService(Ci.nsIPKCS11ModuleDB); - } - for (var i=0; i < config.certs.devices.length; i++) { - var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - try { - file.initWithPath(config.certs.devices[i].path); - if (file.exists()) { - pkcs11.addModule(config.certs.devices[i].name, config.certs.devices[i].path, 0, 0); - } - } catch(e) { - // Ignore path errors in case we are on different OSes - } - } - } - if (!config.firstrun && config.installedVersion == config.version) { - continue; - } - if (config.removeSmartBookmarks) { - var smartBookmarks = annos.getItemsWithAnnotation("Places/SmartBookmark", {}); - for (var i = 0; i < smartBookmarks.length; i++) { - try { - bmsvc.removeItem(smartBookmarks[i]); - } catch (ex) {} - } - } - let syncBookmarks = false; - if ("getIdForItemAt" in bmsvc) { - syncBookmarks = true; - } - if (config.removeDefaultBookmarks) { - if (syncBookmarks) { - var firefoxFolder = bmsvc.getIdForItemAt(bmsvc.bookmarksMenuFolder, 3); - if ((firefoxFolder != -1) && (bmsvc.getItemType(firefoxFolder) == bmsvc.TYPE_FOLDER)) { - var aboutMozilla = bmsvc.getIdForItemAt(firefoxFolder, 3); - if (aboutMozilla != -1 && - bmsvc.getItemType(aboutMozilla) == bmsvc.TYPE_BOOKMARK && - /https?:\/\/www.mozilla.(com|org)\/.*\/about/.test(bmsvc.getBookmarkURI(aboutMozilla).spec)) { - bmsvc.removeItem(firefoxFolder); - } - } - var userAgentLocale = Preferences.defaults.get("general.useragent.locale"); - var gettingStartedURL = "https://www.mozilla.org/" + userAgentLocale + "/firefox/central/"; - var bookmarks = bmsvc.getBookmarkIdsForURI(NetUtil.newURI("https://www.mozilla.org/" + userAgentLocale + "/firefox/central/")); - if (bookmarks.length == 0) { - bookmarks = bmsvc.getBookmarkIdsForURI(NetUtil.newURI("http://www.mozilla.com/" + userAgentLocale + "/firefox/central/")); - } - if (bookmarks.length > 0) { - bmsvc.removeItem(bookmarks[0]) - } - var bookmarks = bmsvc.getBookmarkIdsForURI(NetUtil.newURI("https://www.mozilla.org/" + userAgentLocale + "/about/")); - if (bookmarks.length == 0) { - bookmarks = bmsvc.getBookmarkIdsForURI(NetUtil.newURI("http://www.mozilla.com/" + userAgentLocale + "/about/")); - } - if (bookmarks.length > 0) { - var mozillaFolder = bmsvc.getFolderIdForItem(bookmarks[0]); - if (mozillaFolder != -1) { - var mozillaFolderIndex = bmsvc.getItemIndex(mozillaFolder); - var mozillaFolderParent = bmsvc.getFolderIdForItem(mozillaFolder); - bmsvc.removeItem(mozillaFolder); - if (config.removeSmartBookmarks) { - var separator = bmsvc.getIdForItemAt(mozillaFolderParent, mozillaFolderIndex-1); - if (separator != -1) { - bmsvc.removeItem(separator); - } - } - } - } - - } else { - removeDefaultBookmarks(); - } - } - - // If we detect an old CCK Wizard, remove it's bookmarks - var bookmarksToRemove = []; - if ("extension" in config) { - var oldCCKVersion = Preferences.get("extensions." + config.extension.id + ".version", null); - if (oldCCKVersion) { - Preferences.reset("extensions." + config.extension.id + ".version"); - bookmarksToRemove = bookmarksToRemove.concat(annos.getItemsWithAnnotation(config.extension.id + "/" + oldCCKVersion, {})); - } - } - if (config.installedVersion != config.version) { - bookmarksToRemove = bookmarksToRemove.concat(annos.getItemsWithAnnotation(config.id + "/" + config.installedVersion, {})); - bookmarksToRemove = bookmarksToRemove.concat(annos.getItemsWithAnnotation(config.installedVersion + "/" + config.installedVersion, {})); - } - // Just in case, remove bookmarks for this version too - bookmarksToRemove = bookmarksToRemove.concat(annos.getItemsWithAnnotation(config.id + "/" + config.version, {})); - if (syncBookmarks) { - let bmFolders = []; - for (var i = 0; i < bookmarksToRemove.length; i++) { - try { - var itemType = bmsvc.getItemType(bookmarksToRemove[i]); - if (itemType == bmsvc.TYPE_FOLDER) { - bmFolders.push(bookmarksToRemove[i]); - } else { - bmsvc.removeItem(bookmarksToRemove[i]); - } - } catch (e) { - Components.utils.reportError(e); - } - } - if (bmFolders.length > 0) { - // Only remove folders if they are empty - for (var i = 0; i < bmFolders.length; i++) { - try { - var bmID = bmsvc.getIdForItemAt(bmFolders[i], 0); - if (bmID == -1) { - bmsvc.removeItem(bmFolders[i]); - } else { - var newTitle = bmsvc.getItemTitle(bmFolders[i]) + " (" + (oldCCKVersion || config.installedVersion) + ")"; - bmsvc.setItemTitle(bmFolders[i], newTitle); - } - } catch (e) { - bmsvc.removeItem(bmFolders[i]); - } - } - } - } else { - removeOldBookmarks(bookmarksToRemove, oldCCKVersion || config.installedVersion); - } - if (config.bookmarks) { - if (config.bookmarks.toolbar) { - if (syncBookmarks) { - addBookmarksSync(config.bookmarks.toolbar, bmsvc.toolbarFolder, config.id + "/" + config.version, config.removeDuplicateBookmarkNames); - } else { - addBookmarks(config.bookmarks.toolbar, PlacesUtils.bookmarks.toolbarGuid, config.id + "/" + config.version, config.removeDuplicateBookmarkNames); - } - } - if (config.bookmarks.menu) { - if (syncBookmarks) { - addBookmarksSync(config.bookmarks.menu, bmsvc.bookmarksMenuFolder, config.id + "/" + config.version, config.removeDuplicateBookmarkNames); - } else { - addBookmarks(config.bookmarks.menu, PlacesUtils.bookmarks.menuGuid, config.id + "/" + config.version, config.removeDuplicateBookmarkNames); - } - } - } - if (config.searchplugins || config.defaultSearchEngine) { - searchInitRun(function() { - if (Array.isArray(config.searchplugins)) { - for (var i=0; i < config.searchplugins.length; i++) { - Services.search.addEngine(config.searchplugins[i], Ci.nsISearchEngine.DATA_XML, null, false, { - onSuccess: function (engine) { - if (engine.name == config.defaultSearchEngine) { - Services.search.currentEngine = engine; - } - }, - onError: function (errorCode) { - Components.utils.reportError("Engine install error: " + errorCode); - // Ignore errors - } - }); - } - } else { - for (let enginename in config.searchplugins) { - var engine = Services.search.getEngineByName(enginename); - if (engine) { - Services.search.removeEngine(engine); - } - Services.search.addEngine(config.searchplugins[enginename], Ci.nsISearchEngine.DATA_XML, null, false, { - onSuccess: function (engine) { - if (engine.name == config.defaultSearchEngine) { - Services.search.currentEngine = engine; - } - }, - onError: function (errorCode) { - Components.utils.reportError("Engine install error: " + errorCode); - } - }); - } - } - - var defaultSearchEngine = Services.search.getEngineByName(config.defaultSearchEngine); - if (defaultSearchEngine) { - Services.search.currentEngine = defaultSearchEngine; - } - }); - } - if (config.disableSearchEngineInstall) { - try { - Cu.import("resource:///modules/ContentLinkHandler.jsm"); - ContentLinkHandler.origOnLinkAdded = ContentLinkHandler.onLinkAdded; - ContentLinkHandler.onLinkAdded = function(event, chromeGlobal) { - if (event.originalTarget.rel == "search") { - return; - } - ContentLinkHandler.origOnLinkAdded(event, chromeGlobal); - }; - } catch (e) { - // Just in case we are pre Firefox 31 - } - } - } - break; - case "browser-ui-startup-complete": - var disableWebApps = false; - for (var id in this.configs) { - var config = this.configs[id]; - if (config.disableWebApps) { - disableWebApps = true; - break; - } - } - if (!disableWebApps) { - return; - } - try { - Cu.import("resource://gre/modules/WebappManager.jsm"); - } catch (e) { - try { - Cu.import("resource:///modules/WebappManager.jsm"); - } catch (e) {} - } - try { - WebappManager.doInstall = function() { - var win = Services.wm.getMostRecentWindow("navigator:browser"); - var gBrowser = win.gBrowser; - var gNavigatorBundle = win.gNavigatorBundle - messageString = gNavigatorBundle.getString("xpinstallDisabledMessageLocked");; - var options = { - timeout: Date.now() + 30000 - }; - win.PopupNotifications.show(gBrowser.selectedBrowser, "xpinstall-disabled", - messageString, "addons-notification-icon", - null, null, options); - }; - } catch(e) { - // Web Apps was removed - } - break; - case "final-ui-startup": - for (var id in this.configs) { - var config = this.configs[id]; - // Delay loading unnecessary modules - // We should do this on a timeout - loadModules(config); - if (!config.firstrun && config.installedVersion == config.version) { - return; - } - if ("certs" in config) { - if ("override" in config.certs) { - for (var i=0; i < config.certs.override.length; i++) { - var xhr = new XMLHttpRequest(); - try { - xhr.open("GET", "https://" + config.certs.override[i]); - xhr.channel.notificationCallbacks = SSLExceptions; - xhr.send(null); - } catch (ex) {} - } - } - var certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); - var certdb2 = certdb; - try { - certdb2 = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB2); - } catch (e) {} - if (config.certs.ca) { - for (var i=0; i < config.certs.ca.length; i++) { - var certTrust; - if (config.certs.ca[i].trust){ - certTrust = config.certs.ca[i].trust - } else { - certTrust = ",,"; - } - if (config.certs.ca[i].url) { - try { - download(config.certs.ca[i].url, function(file, extraParams) { - var istream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); - istream.init(file, -1, -1, false); - var bstream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream); - bstream.setInputStream(istream); - var cert = bstream.readBytes(bstream.available()); - bstream.close(); - istream.close(); - if (/-----BEGIN CERTIFICATE-----/.test(cert)) { - certdb2.addCertFromBase64(fixupCert(cert), extraParams.trust, ""); - } else { - certdb.addCert(cert, extraParams.trust, ""); - } - }, errorCritical, {trust: certTrust}); - } catch (e) { - errorCritical("Unable to install " + config.certs.ca[i].url + " - " + e); - } - } else if (config.certs.ca[i].cert) { - certdb2.addCertFromBase64(fixupCert(config.certs.ca[i].cert), certTrust, ""); - } - } - } - if (config.certs.server) { - for (var i=0; i < config.certs.server.length; i++) { - try { - download(config.certs.server[i], function(file) { - try { - certdb.importCertsFromFile(null, file, Ci.nsIX509Cert.SERVER_CERT); - } catch(e) { - // API removed in bugzilla #1064402 (FF47) - } - }, errorCritical); - } catch (e) { - errorCritical("Unable to install " + config.certs.server[i] + " - " + e); - } - } - } - } - if (config.persona) { - var temp = {}; - Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", temp); - temp.LightweightThemeManager.currentTheme = config.persona; - } - if (config.addons) { - Cu.import("resource://gre/modules/AddonManager.jsm"); - var numAddonsInstalled = 0; - var numAddons = config.addons.length; - let listener = { - onInstallEnded: function(install, addon) { - if (addon.isActive) { - // restartless add-on, so we don't need to restart - numAddons--; - } else { - numAddonsInstalled++; - } - if (numAddonsInstalled > 0 && - numAddonsInstalled == numAddons) { - Services.startup.quit(Services.startup.eRestart | Services.startup.eAttemptQuit); - } - } - } - for (var i=0; i < config.addons.length; i++) { - try { - AddonManager.getInstallForURL(config.addons[i], function(addonInstall) { - addonInstall.addListener(listener); - addonInstall.install(); - }, "application/x-xpinstall"); - } catch (e) { - try { - AddonManager.getInstallForURL(config.addons[i], "application/x-xpinstall").then(addonInstall => { - addonInstall.addListener(listener); - addonInstall.install(); - }); - } catch (e) { - errorCriticial(e); - } - } - } - } - } - break; - case "load-extension-defaults": - if (gBundlePrefFiles.length > 0) { - // Create a temporary scope so the pref function works - var temp = {}; - temp.pref = function(a, b) { - Preferences.defaults.set(a, b); - } - gBundlePrefFiles.forEach(function(prefFile) { - Components.classes["@mozilla.org/moz/jssubscript-loader;1"] - .getService(Components.interfaces.mozIJSSubScriptLoader) - .loadSubScript(prefFile, temp); - }); - } - break; - case "quit-application": - var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); - for (var i=0; i < CCK2.aboutFactories.length; i++) - registrar.unregisterFactory(CCK2.aboutFactories[i].classID, CCK2.aboutFactories[i].factory); - break; - } - } -} - -async function removeDefaultBookmarks() { - var firefoxFolder = await PlacesUtils.bookmarks.fetch({ - parentGuid: PlacesUtils.bookmarks.menuGuid, - index: 0}); - if (firefoxFolder && firefoxFolder.type == PlacesUtils.bookmarks.TYPE_FOLDER) { - await PlacesUtils.bookmarks.remove(firefoxFolder); - } - var userAgentLocale = Preferences.defaults.get("general.useragent.locale"); - if (!userAgentLocale) { - userAgentLocale = Services.locale.getRequestedLocales()[0]; - } - var userAgentLocale = "en-US"; - var gettingStartedURL = "https://www.mozilla.org/" + userAgentLocale + "/firefox/central/"; - let bookmarks = []; - await PlacesUtils.bookmarks.fetch({url: gettingStartedURL}, b => bookmarks.push(b)); - for (let bookmark of bookmarks) { - await PlacesUtils.bookmarks.remove(bookmark); - } -} - -async function removeOldBookmarks(oldBookmarks, oldVersion) { - let bmFolders = []; - for (var i = 0; i < oldBookmarks.length; i++) { - try { - let guid = await PlacesUtils.promiseItemGuid(oldBookmarks[i]); - let bookmark = await PlacesUtils.bookmarks.fetch(guid); - if (bookmark.type == PlacesUtils.bookmarks.TYPE_FOLDER) { - bmFolders.push(bookmark); - } else { - await PlacesUtils.bookmarks.remove(bookmark); - } - } catch (ex) { - Components.utils.reportError(ex); - } - } - if (bmFolders.length > 0) { - // Only remove folders if they are empty - for (var i = 0; i < bmFolders.length; i++) { - let bookmarks = []; - await PlacesUtils.bookmarks.fetch({parentGuid: bmFolders[i].guid, index: 0}, b => bookmarks.push(b)); - if (bookmarks.length == 0) { - await PlacesUtils.bookmarks.remove(bmFolders[i]); - } else { - PlacesUtils.bookmarks.update({guid: bmFolders[i].guid, - title: `${bmFolders[i].title} (${oldVersion})`}); - } - } - } -} - -function loadModules(config) { - let globalMM = Cc["@mozilla.org/globalmessagemanager;1"].getService(); - globalMM.addMessageListener("cck2:get-configs", function(message) { - return CCK2.configs; - }); - globalMM.addMessageListener("cck2:open-url", function(message) { - var win = Services.wm.getMostRecentWindow("navigator:browser"); - if (win) { - win.openUILinkIn(message.data.url, message.data.where); - } - }); - Cu.import("resource://cck2/CCK2AboutDialogOverlay.jsm"); - Cu.import("resource://cck2/CCK2AboutAddonsOverlay.jsm"); - Cu.import("resource://cck2/CCK2PreferencesOverlay.jsm"); - globalMM.loadFrameScript("resource://cck2/CCK2Framescript.js", true); - globalMM.loadFrameScript("resource://cck2/CCK2AboutHomeFramescript.js", true); - globalMM.loadFrameScript("resource://cck2/CAPSCheckLoadURIFramescript.js", true); - globalMM.loadFrameScript("resource://cck2/CAPSClipboardFramescript.js", true); - Cu.import("resource://cck2/CCK2AboutSupportOverlay.jsm"); - Cu.import("resource://cck2/CCK2BrowserOverlay.jsm"); - Cu.import("resource://cck2/CCK2FileBlock.jsm"); -} - -function addRegistryKey(RootKey, Key, Name, NameValue, Type) { - const nsIWindowsRegKey = Ci.nsIWindowsRegKey; - var key = null; - - try { - key = Cc["@mozilla.org/windows-registry-key;1"] - .createInstance(nsIWindowsRegKey); - var rootKey; - switch (RootKey) { - case "HKEY_CLASSES_ROOT": - rootKey = nsIWindowsRegKey.ROOT_KEY_CLASSES_ROOT; - break; - case "HKEY_CURRENT_USER": - rootKey = nsIWindowsRegKey.ROOT_KEY_CURRENT_USER; - break; - default: - rootKey = nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE; - break; - } - - key.create(rootKey, Key, nsIWindowsRegKey.ACCESS_WRITE); - - switch (Type) { - case "REG_DWORD": - key.writeIntValue(Name, NameValue); - break; - case "REG_QWORD": - key.writeInt64Value(Name, NameValue); - break; - case "REG_BINARY": - key.writeBinaryValue(Name, NameValue); - break; - case "REG_SZ": - default: - key.writeStringValue(Name, NameValue); - break; - } - key.close(); - } catch (ex) { - /* This could fail if you don't have the right authority on Windows */ - if (key) { - key.close(); - } - } -} - -function addBookmarksSync(bookmarks, destination, annotation, removeDuplicateBookmarkNames) { - for (var i =0; i < bookmarks.length; i++) { - if (bookmarks[i].folder) { - var newFolderId = bmsvc.createFolder(destination, fixupUTF8(bookmarks[i].name), bmsvc.DEFAULT_INDEX); - annos.setItemAnnotation(newFolderId, annotation, "true", 0, annos.EXPIRE_NEVER); - addBookmarksSync(bookmarks[i].folder, newFolderId, annotation, removeDuplicateBookmarkNames); - } else if (bookmarks[i].type == "separator") { - var separatorId = bmsvc.insertSeparator(destination, bmsvc.DEFAULT_INDEX); - annos.setItemAnnotation(separatorId, annotation, "true", 0, annos.EXPIRE_NEVER); - } else { - try { - var uri = NetUtil.newURI(bookmarks[i].location); - var title = fixupUTF8(bookmarks[i].name); - var bookmarkIds = bmsvc.getBookmarkIdsForURI(uri, {}, {}); - if (bookmarkIds.length > 0) { - // Remove duplicate bookmarks - for (var j=0; j < bookmarkIds.length; j++) { - // Unfortunately there's no way to generically - // check for any annotation, so we assume it is ours. - // We at least check if the destination is the same - let folderID = bmsvc.getFolderIdForItem(bookmarkIds[j]); - if (bmsvc.getItemTitle(bookmarkIds[j]) == title && - destination == folderID) { - bmsvc.removeItem(bookmarkIds[j]); - } - } - } - if (removeDuplicateBookmarkNames) { - // This is hideous. There's no way to get the number of children - // in a folder, so we do a loop to get a quick count so we can - // work backwards. - let numItems = 0; - do { - let bmId = bmsvc.getIdForItemAt(destination, numItems); - if (bmId == -1) { - break; - } - numItems++; - } while (numItems < 50) // Failsafe just in case we somehow end up in a loop - for (var k=numItems; k > 0; k--) { - let bmId = bmsvc.getIdForItemAt(destination, k-1); - if (bmId == -1) { // Shouldn't happen - break; - } - if (bmsvc.getItemTitle(bmId) == title) { - bmsvc.removeItem(bmId); - } - } - } - var newBookmarkId = bmsvc.insertBookmark(destination, uri, bmsvc.DEFAULT_INDEX, title); - annos.setItemAnnotation(newBookmarkId, annotation, "true", 0, annos.EXPIRE_NEVER); - } catch(e) { - Components.utils.reportError(e); - } - } - } -} - -let BOOKMARK_GUID_PREFIX = "CCKB-"; -let FOLDER_GUID_PREFIX = "CCKF-"; -let SEPARATOR_GUID_PREFIX = "CCKS-"; - -function generateGuidWithPrefix(prefix) { - // Generates a random GUID and replace its beginning with the given - // prefix. We do this instead of just prepending the prefix to keep - // the correct character length. - return prefix + PlacesUtils.history.makeGuid().substring(prefix.length); -} - -async function addBookmarks(bookmarks, parentGuid, annotation, removeDuplicateBookmarkNames) { - for (var i =0; i < bookmarks.length; i++) { - if (bookmarks[i].folder) { - let guid = generateGuidWithPrefix(FOLDER_GUID_PREFIX); - await PlacesUtils.bookmarks.insert({ - type: PlacesUtils.bookmarks.TYPE_FOLDER, - title: fixupUTF8(bookmarks[i].name), - guid, - parentGuid - }); - let newFolderId = await PlacesUtils.promiseItemId(guid); - annos.setItemAnnotation(newFolderId, annotation, "true", 0, annos.EXPIRE_NEVER); - addBookmarks(bookmarks[i].folder, guid, annotation, removeDuplicateBookmarkNames); - } else if (bookmarks[i].type == "separator") { - let guid = generateGuidWithPrefix(SEPARATOR_GUID_PREFIX); - await PlacesUtils.bookmarks.insert({ - type: PlacesUtils.bookmarks.TYPE_SEPARATOR, - guid, - parentGuid - }); - let newSeparatorId = await PlacesUtils.promiseItemId(guid); - annos.setItemAnnotation(newSeparatorId, annotation, "true", 0, annos.EXPIRE_NEVER); - } else { - try { - var title = fixupUTF8(bookmarks[i].name); - let bookmarksArray = []; - await PlacesUtils.bookmarks.fetch({url: bookmarks[i].location}, b => bookmarksArray.push(b)); - for (let bookmark of bookmarksArray) { - // Unfortunately there's no way to generically - // check for any annotation, so we assume it is ours. - // We at least check if the destination is the same - if (bookmark.title == title && - bookmark.parentGuid == parentGuid) { - } - await PlacesUtils.bookmarks.remove(bookmark); - } - if (removeDuplicateBookmarkNames) { - try { - await PlacesUtils.bookmarks.fetch({parentGuid}, b => bookmarksArray.push(b)); - for (var k=bookmarksArray.length; k > 0; k--) { - if (bookmarks[i].title == title) { - await PlacesUtils.bookmarks.remove(bookmarksArray[i]); - } - } - } catch(e) { - // Bad index errors in some cases - } - } - let guid = generateGuidWithPrefix(BOOKMARK_GUID_PREFIX); - await PlacesUtils.bookmarks.insert({ - url: bookmarks[i].location, - title: fixupUTF8(bookmarks[i].name), - guid, - parentGuid - }); - let newBookmarkId = await PlacesUtils.promiseItemId(guid); - annos.setItemAnnotation(newBookmarkId, annotation, "true", 0, annos.EXPIRE_NEVER); - } catch(e) { - Components.utils.reportError(e); - } - } - } -} - -function errorCritical(e) { - var stack = e.stack; - if (!stack) { - stack = Error().stack; - } - Components.utils.reportError("CCK2: " + e + "\n\n" + stack); -} - -/** - * If the search service is not available, passing function - * to search service init - */ -function searchInitRun(func) -{ - if (Services.search.init && !Services.search.isInitialized) - Services.search.init(func); - else - func(); -} - -/** - * Remove all extraneous info from a certificates. addCertFromBase64 requires - * just the cert with no whitespace or anything. - * - * @param {String} certificate text - * @returns {String} certificate text cleaned up - */ -function fixupCert(cert) { - var beginCert = "-----BEGIN CERTIFICATE-----"; - var endCert = "-----END CERTIFICATE-----"; - - cert = cert.replace(/[\r\n]/g, ""); - var begin = cert.indexOf(beginCert); - var end = cert.indexOf(endCert); - return cert.substring(begin + beginCert.length, end); -} - -/** - * Download the given URL to the user's download directory - * - * @param {String} URL of the file - * @param {function} Function to call on success - called with nsIFile - * @param {String} Function to call on failure - * @param {Object} extraParams passed to callback - * @returns {nsIFile} Downloaded file - */ -function download(url, successCallback, errorCallback, extraParams) { - var uri = Services.io.newURI(url, null, null); - - var channel = Services.io.newChannelFromURI(uri); - - var downloader = Cc["@mozilla.org/network/downloader;1"].createInstance(Ci.nsIDownloader); - var listener = { - onDownloadComplete: function(downloader, request, ctxt, status, result) { - if (Components.isSuccessCode(status)) { - result.QueryInterface(Ci.nsIFile); - if (result.exists() && result.fileSize > 0) { - successCallback(result, extraParams); - return; - } - } - errorCallback(new Error("Download failed (" + status + " for " + url)); - } - } - downloader.init(listener, null); - channel.asyncOpen(downloader, null); -} - -/** - * Used to allow the overriding of certificates - */ -var SSLExceptions = { - getInterface: function(uuid) { - return this.QueryInterface(uuid); - }, - QueryInterface: function(uuid) { - if (uuid.equals(Ci.nsIBadCertListener2) || - uuid.equals(Ci.nsISupports)) - return this; - throw Components.results.NS_ERROR_NO_INTERFACE; - }, - - notifyCertProblem: function (socketInfo, status, targetSite) { - status.QueryInterface(Ci.nsISSLStatus); - - let flags = 0; - - if (status.isUntrusted) - flags |= override.ERROR_UNTRUSTED; - if (status.isDomainMismatch) - flags |= override.ERROR_MISMATCH; - if (status.isNotValidAtThisTime) - flags |= override.ERROR_TIME; - - var hostInfo = targetSite.split(":"); - - override.rememberValidityOverride( - hostInfo[0], - hostInfo[1], - status.serverCert, - flags, - false); - return true; // Don't show error UI - } -}; - -var gAboutXHTML = '' + -'' + -' ' + -' ' + -' ' + -' ' + -' ' + -' ' + -'
' + -'
' + -'

%s

' + -'
' + -'
' + -'
' + -'

Access to %s has been disabled by your administrator.

' + -'
' + -'
' + -'
' + -' ' + -' ' + -'' + -''; - -/** - * Register a component that replaces an about page - * - * @param {String} The ClassID of the class being registered. - * @param {String} The name of the class being registered. - * @param {String} The type of about to be disabled (config/addons/privatebrowsing) - * @returns {Object} The factory to be used to unregister - */ -function disableAbout(aClass, aClassName, aboutType) { - var gAbout = { - newChannel : function (aURI, aLoadInfo) { - var url = "data:text/html," + gAboutXHTML; - var channel = Services.io.newChannelFromURIWithLoadInfo(NetUtil.newURI(url), aLoadInfo); - channel.originalURI = aURI; - return channel; - }, - getURIFlags : function getURIFlags(aURI) { - return Ci.nsIAboutModule.HIDE_FROM_ABOUTABOUT; - }, - - QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]), - - createInstance: function(outer, iid) { - return this.QueryInterface(iid); - }, - }; - - var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); - registrar.registerFactory(aClass, aClassName, "@mozilla.org/network/protocol/about;1?what=" + aboutType, gAbout); - return gAbout; -} - -var documentObserver = { - observe: function observe(subject, topic, data) { - if (subject instanceof Ci.nsIDOMWindow) { - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - if (topic == "chrome-document-global-created" || - (topic == "content-document-global-created" && win.document.documentURIObject.scheme == "about")) { - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var configs = CCK2.getConfigs(); - for (var id in configs) { - var config = configs[id]; - if (config.hiddenUI) { - for (var i=0; i < config.hiddenUI.length; i++) { - var uiElements = doc.querySelectorAll(config.hiddenUI[i]); - for (var j=0; j < uiElements.length; j++) { - var uiElement = uiElements[j]; - uiElement.setAttribute("hidden", "true"); - } - } - } - } - }, false); - } - } - } -} - -function copyDir(aOriginal, aDestination) { - var enumerator = aOriginal.directoryEntries; - while (enumerator.hasMoreElements()) { - var file = enumerator.getNext().QueryInterface(Components.interfaces.nsIFile); - if (file.isDirectory()) { - var subdir = aDestination.clone(); - subdir.append(file.leafName); - subdir.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY); - copyDir(file, subdir); - } else { - file.copyTo(aDestination, null); - } - } -} - -function loadBundleDirs() { - var cck2BundleDir = Services.dirsvc.get("GreD", Ci.nsIFile); - cck2BundleDir.append("cck2"); - cck2BundleDir.append("bundles"); - if (!cck2BundleDir.exists() || !cck2BundleDir.isDirectory()) { - return; - } - var enumerator = cck2BundleDir.directoryEntries; - while (enumerator.hasMoreElements()) { - var file = enumerator.getNext().QueryInterface(Ci.nsIFile); - var dirName = file.leafName; - file.append("chrome.manifest"); - Components.manager.QueryInterface(Ci.nsIComponentRegistrar).autoRegister(file); - file.leafName = "defaults"; - file.append("preferences"); - if (!file.exists() || !file.isDirectory()) { - continue; - } - // In order to load prefs, we have to use a chrome URL. - // Create a resource that maps to the prefs directory. - var prefAlias = Services.io.newFileURI(file); - var resource = Services.io.getProtocolHandler("resource") - .QueryInterface(Ci.nsIResProtocolHandler); - resource.setSubstitution(dirName + "_prefs", prefAlias); - var prefEnumerator = file.directoryEntries; - while (prefEnumerator.hasMoreElements()) { - var prefFile = prefEnumerator.getNext().QueryInterface(Ci.nsIFile); - gBundlePrefFiles.push("resource://" + dirName + "_prefs/" + prefFile.leafName); - } - } -} - -Services.obs.addObserver(CCK2, "distribution-customization-complete", false); -Services.obs.addObserver(CCK2, "final-ui-startup", false); -Services.obs.addObserver(CCK2, "browser-ui-startup-complete", false); -Services.obs.addObserver(documentObserver, "chrome-document-global-created", false); -Services.obs.addObserver(documentObserver, "content-document-global-created", false); -Services.obs.addObserver(CCK2, "load-extension-defaults", false); -try { - loadBundleDirs() -} catch (e) { - Components.utils.reportError(e); -} diff --git a/osx/build/preferences/cck2/modules/CCK2AboutAddonsOverlay.jsm b/osx/build/preferences/cck2/modules/CCK2AboutAddonsOverlay.jsm deleted file mode 100644 index ea1bbd1..0000000 --- a/osx/build/preferences/cck2/modules/CCK2AboutAddonsOverlay.jsm +++ /dev/null @@ -1,111 +0,0 @@ -/* This file overlays about:addons. It does the following: */ -/* Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=1132971 */ -/* Hide the "Install Add-on From File" menu if xpinstall.enabled is false */ -/* Hides the discover pane if xpinstall.enabled is false */ -/* Hides the add-on entry if specified in the CCK2 config */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://cck2/CCK2.jsm"); - -var addonId = "cck2wizard@kaply.com"; - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "chrome-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "about:addons": - case "chrome://mozapps/content/extensions/extensions.xul": - var configs = CCK2.getConfigs(); - var hiddenAddons = []; - var requiredAddons = []; - for (let id in configs) { - var config = configs[id]; - if (config && "extension" in config && config.extension.hide) { - hiddenAddons.push(config.extension.id); - } - if (config.requiredAddons) { - requiredAddons.push.apply(requiredAddons, config.requiredAddons.split(",")); - } - } - if (hiddenAddons.length > 0 || requiredAddons.length > 0) { - var ss; - for (var i = 0; i < doc.styleSheets.length; i++) { - if (doc.styleSheets[i].href == "chrome://mozapps/skin/extensions/extensions.css") { - ss = doc.styleSheets[i]; - break; - } - } - for (var i=0; i < hiddenAddons.length; i++) { - ss.insertRule("richlistitem[value='" + hiddenAddons[i] + "'] { display: none;}", ss.cssRules.length); - } - for (var i=0; i < requiredAddons.length; i++) { - ss.insertRule("richlistitem[value='" + requiredAddons[i] + "'] button[anonid='disable-btn'] { display: none;}", ss.cssRules.length); - ss.insertRule("richlistitem[value='" + requiredAddons[i] + "'] button[anonid='remove-btn'] { display: none;}", ss.cssRules.length); - } - if (requiredAddons.length > 0) { - win.gViewController.commands.cmd_disableItem.origIsEnabled = win.gViewController.commands.cmd_disableItem.isEnabled; - win.gViewController.commands.cmd_disableItem.isEnabled = function(aAddon) { if (aAddon && requiredAddons.indexOf(aAddon.id) != -1) return false; return this.origIsEnabled;} - win.gViewController.commands.cmd_uninstallItem.origIsEnabled = win.gViewController.commands.cmd_disableItem.isEnabled; - win.gViewController.commands.cmd_uninstallItem.isEnabled = function(aAddon) { if (aAddon && requiredAddons.indexOf(aAddon.id) != -1) return false; return this.origIsEnabled;} - } - } - var showDiscoverPane = true; - var xpinstallEnabled = true; - try { - xpinstallEnabled = Services.prefs.getBoolPref("xpinstall.enabled"); - } catch (e) {} - try { - showDiscoverPane = Services.prefs.getBoolPref("extensions.getAddons.showPane"); - } catch (e) {} - if (!xpinstallEnabled || !showDiscoverPane) { - // Work around Mozilla bug 1132971 - // Hide the discover pane if it is the selected pane - if (E("view-port", doc) && E("view-port", doc).selectedIndex == 0) { - try { - win.gViewController.loadView("addons://list/extension"); - } catch (ex) { - // This fails with Webconverger installed. Ignore it. - } - } - } - if (!xpinstallEnabled) { - // Hide the "Install Add-on From File" separator - hide(E("utils-installFromFile-separator", doc)); - // Hide the "Install Add-on From File" menuitem - hide(E("utils-installFromFile", doc)); - win.gDragDrop.onDragOver = function(event) { - event.dataTransfer.dropEffect = "none"; - event.stopPropagation(); - event.preventDefault(); - }; - } - break; - } - }, false); - break; - } - } -} - -Services.obs.addObserver(observer, "chrome-document-global-created", false); - -function E(id, context) { - var element = context.getElementById(id); - return element; -} - -function hide(element) { - if (element) { - element.setAttribute("hidden", "true"); - } -} diff --git a/osx/build/preferences/cck2/modules/CCK2AboutDialogOverlay.jsm b/osx/build/preferences/cck2/modules/CCK2AboutDialogOverlay.jsm deleted file mode 100644 index 630e27b..0000000 --- a/osx/build/preferences/cck2/modules/CCK2AboutDialogOverlay.jsm +++ /dev/null @@ -1,33 +0,0 @@ -/* This file is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1139509 */ -/* It bolds the Firefox version in the about dialog and unbolds the distribution information */ -/* It can be removed once Firefox 38 ESR is out of support */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "chrome-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "chrome://browser/content/aboutDialog.xul": - doc.querySelector("#version").style.fontWeight = "bold"; - doc.querySelector("#distribution").style.fontWeight = "normal"; - doc.querySelector("#distributionId").style.fontWeight = "normal"; - break; - } - }, false); - break; - } - } -} - -Services.obs.addObserver(observer, "chrome-document-global-created", false); diff --git a/osx/build/preferences/cck2/modules/CCK2AboutHomeFramescript.js b/osx/build/preferences/cck2/modules/CCK2AboutHomeFramescript.js deleted file mode 100644 index 98e5b3d..0000000 --- a/osx/build/preferences/cck2/modules/CCK2AboutHomeFramescript.js +++ /dev/null @@ -1,79 +0,0 @@ -/* This file overrides about:home. It does the following: - * Remove the sync button if Sync is disabled - * Remove the Addons button if Sync is disabled - * Remove the snippets if snippets are disabled - */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); - -var configs = null; - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "content-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "about:home": - case "chrome://browser/content/abouthome/aboutHome.xhtml": - if (!configs) { - // TODO - Make this Async - configs = sendSyncMessage("cck2:get-configs")[0]; - } - for (let id in configs) { - var config = configs[id]; - if (config.disableSync) { - remove(E("sync", doc)); - } - if (config.disableAddonsManager) { - remove(E("addons", doc)); - } - if (config.disableWebApps) { - remove(E("apps", doc)); - } - if (config.removeSnippets) { - var snippets = E("snippets", doc); - if (snippets) { - snippets.style.display = "none"; - } - } - if (config.hiddenUI) { - for (var i=0; i < config.hiddenUI.length; i++) { - var uiElements = doc.querySelectorAll(config.hiddenUI[i]); - for (var j=0; j < uiElements.length; j++) { - var uiElement = uiElements[j]; - uiElement.setAttribute("hidden", "true"); - } - } - } - } - break; - } - }, false); - break; - } - } -} -Services.obs.addObserver(observer, "content-document-global-created", false); - -addEventListener("unload", function() { - Services.obs.removeObserver(observer, "content-document-global-created", false); -}) - -function E(id, context) { - var element = context.getElementById(id); - return element; -} - -function remove(element) { - if (element && element.parentNode) - element.parentNode.removeChild(element); -} diff --git a/osx/build/preferences/cck2/modules/CCK2AboutSupportOverlay.jsm b/osx/build/preferences/cck2/modules/CCK2AboutSupportOverlay.jsm deleted file mode 100644 index 4da8fba..0000000 --- a/osx/build/preferences/cck2/modules/CCK2AboutSupportOverlay.jsm +++ /dev/null @@ -1,62 +0,0 @@ -/* This file overrides about:support It does the following: - * Remove the reset Firefox button if disableResetFirefox is set - * Remove the safe mode Button if disableSafeMode is set - * Remove the box if both are set - */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://cck2/CCK2.jsm"); - -var configs = null; - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "chrome-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "about:support": - case "chrome://global/content/aboutSupport.xhtml": - if (!configs) { - configs = CCK2.getConfigs(); - } - for (let id in configs) { - var config = configs[id]; - if (config.disableResetFirefox) { - remove(E("reset-box", doc)); - } - if (config.disableSafeMode) { - remove(E("safe-mode-box", doc)); - } - if (config.disableResetFirefox && - config.disableSafeMode) { - remove(E("action-box", doc)); - } - } - break; - } - }, false); - break; - } - } -} -Services.obs.addObserver(observer, "chrome-document-global-created", false); - -function E(id, context) { - var element = context.getElementById(id); - return element; -} - - -function remove(element) { - if (element && element.parentNode) - element.parentNode.removeChild(element); -} diff --git a/osx/build/preferences/cck2/modules/CCK2BrowserOverlay.jsm b/osx/build/preferences/cck2/modules/CCK2BrowserOverlay.jsm deleted file mode 100644 index 52d59fb..0000000 --- a/osx/build/preferences/cck2/modules/CCK2BrowserOverlay.jsm +++ /dev/null @@ -1,373 +0,0 @@ -/* This file modifies the main browser window. It does the following: - * Goes through the hiddenUI list and hides any UI - * - */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource:///modules/CustomizableUI.jsm"); -Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm"); -Cu.import("resource://cck2/CCK2.jsm"); - -var configs = null; - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "chrome-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "chrome://browser/content/browser.xul": - // Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=1149617 - var origSetReportPhishingMenu = win.gSafeBrowsing.setReportPhishingMenu; - win.gSafeBrowsing.setReportPhishingMenu = function() { - try { - origSetReportPhishingMenu(); - } catch (e) {} - } - - win.addEventListener("unload", function onUnload(event) { - win.removeEventListener("unload", onUnload, false); - var panelUIPopup = doc.getElementById("PanelUI-popup"); - if (panelUIPopup) { - E("PanelUI-popup", doc).removeEventListener("popupshowing", onPanelShowing, false); - } - }); - var panelUIPopup = doc.getElementById("PanelUI-popup"); - if (panelUIPopup) { - E("PanelUI-popup", doc).addEventListener("popupshowing", onPanelShowing, false); - } - var appMenuPopup = doc.getElementById("appMenu-popup"); - if (appMenuPopup) { - E("appMenu-popup", doc).addEventListener("popupshowing", onAppMenuShowing, false); - } - configs = CCK2.getConfigs(); - for (let id in configs) { - config = configs[id]; - if (config.disablePrivateBrowsing && - PrivateBrowsingUtils.isWindowPrivate(win)) { - win.setTimeout(function() { - Services.prompt.alert(win, "Private Browsing", "Private Browsing has been disabled by your administrator"); - win.close(); - }, 0, false); - } - if (config.disablePrivateBrowsing) { - disablePrivateBrowsing(doc); - } - if (config.disableSync) { - disableSync(doc); - } - if (config.disableAddonsManager) { - disableAddonsManager(doc); - } - if (config.removeDeveloperTools) { - Services.tm.mainThread.dispatch(function() { - removeDeveloperTools(doc); - }, Ci.nsIThread.DISPATCH_NORMAL); - } - if (config.disableErrorConsole) { - disableErrorConsole(doc); - } - if (config.disableFirefoxHealthReport) { - var healthReportMenu = doc.getElementById("healthReport"); - if (healthReportMenu) { - healthReportMenu.parentNode.removeChild(healthReportMenu); - } - } - if (config.removeSafeModeMenu) { - hide(E("helpSafeMode", doc)); - } - if (config.titlemodifier) { - doc.getElementById("main-window").setAttribute("titlemodifier", config.titlemodifier); - } - if (config.removeSetDesktopBackground) { - // Because this is on a context menu, we can't use "hidden" - if (E("context-setDesktopBackground", doc)) { - E("context-setDesktopBackground", doc).setAttribute("style", "display: none;"); - } - } - if (config.disableWebApps) { - CustomizableUI.destroyWidget("web-apps-button"); - hide(E("menu_openApps", doc)); - } - if (config.disableHello) { - CustomizableUI.destroyWidget("loop-button"); - hide(E("menu_openLoop", doc)); - } - if (config.disablePocket) { - CustomizableUI.destroyWidget("pocket-button"); - } - if (config.disableSharePage) { - CustomizableUI.destroyWidget("social-share-button"); - // Because these are on a context menu, we can't use "hidden" - if (E("context-sharelink", doc)) { - E("context-sharelink", doc).setAttribute("style", "display: none;"); - } - if (E("context-shareselect", doc)) { - E("context-shareselect", doc).setAttribute("style", "display: none;"); - } - if (E("context-shareimage", doc)) { - E("context-shareimage", doc).setAttribute("style", "display: none;"); - } - if (E("context-sharevideo", doc)) { - E("context-sharevideo", doc).setAttribute("style", "display: none;"); - } - if (E("context-sharepage", doc)) { - E("context-sharepage", doc).setAttribute("style", "display: none;"); - } - } - if (config.disableSocialAPI) { - win.SocialActivationListener = {}; - } - if (config.disableForget) { - CustomizableUI.destroyWidget("panic-button"); - } - if (config.hiddenUI) { - hideUIElements(doc, config.hiddenUI); - } - if (config.helpMenu) { - // We need to run this function on a delay, because we won't know - // if the about menu is hidden for mac until after it is run. - Services.tm.mainThread.dispatch(function() { - var helpMenuPopup = doc.getElementById("menu_HelpPopup"); - var menuitem = doc.createElement("menuitem"); - menuitem.setAttribute("label", config.helpMenu.label); - if ("accesskey" in config.helpMenu) { - menuitem.setAttribute("accesskey", config.helpMenu.accesskey); - } - menuitem.setAttribute("oncommand", "openUILink('" + config.helpMenu.url + "');"); - menuitem.setAttribute("onclick", "checkForMiddleClick(this, event);"); - if (!E("aboutName", doc) || E("aboutName", doc).hidden) { - // Mac - helpMenuPopup.appendChild(menuitem); - } else { - helpMenuPopup.insertBefore(menuitem, E("aboutName", doc)); - helpMenuPopup.insertBefore(doc.createElement("menuseparator"), - E("aboutName", doc)); - } - }, Ci.nsIThread.DISPATCH_NORMAL); - } - if (config.firstrun || config.upgrade) { - if (config.displayBookmarksToolbar || (config.bookmarks && config.bookmarks.toolbar)) { - CustomizableUI.setToolbarVisibility("PersonalToolbar", "true"); - } - if (config.displayMenuBar) { - CustomizableUI.setToolbarVisibility("toolbar-menubar", "true"); - } - if (config.showSearchBar) { - CustomizableUI.addWidgetToArea("search-container", CustomizableUI.AREA_NAVBAR, - CustomizableUI.getPlacementOfWidget("urlbar-container").position + 1); - } - config.firstrun = false; - config.upgrade = false; - } - } - break; - case "chrome://browser/content/places/places.xul": - case "chrome://browser/content/bookmarks/bookmarksPanel.xul": - case "chrome://browser/content/history/history-panel.xul": - configs = CCK2.getConfigs(); - for (let id in configs) { - var config = configs[id]; - if (config.disablePrivateBrowsing) { - if (E("placesContext_open:newprivatewindow", doc)) { - E("placesContext_open:newprivatewindow", doc).setAttribute("style", "display: none;"); - } - } - if (config.hiddenUI) { - hideUIElements(doc, config.hiddenUI); - } - } - break; - } - }, false); - break; - } - } -} -Services.obs.addObserver(observer, "chrome-document-global-created", false); - -function disableSync(doc) { - var win = doc.defaultView; - if (win.gSyncUI) { - var mySyncUI = { - init: function() { - return; - }, - initUI: function() { - return; - }, - updateUI: function() { - hide(E("sync-setup-state", doc)); - hide(E("sync-syncnow-state", doc)); - hide(E("sync-setup", doc)); - hide(E("sync-syncnowitem", doc)); - } - } - win.gSyncUI = mySyncUI; - } - CustomizableUI.destroyWidget("sync-button"); - CustomizableUI.removeWidgetFromArea("sync-button"); - var toolbox = doc.getElementById("navigator-toolbox"); - if (toolbox && toolbox.palette) { - let element = toolbox.palette.querySelector("#sync-button"); - if (element) { - element.parentNode.removeChild(element); - } - } - hide(E("sync-setup-state", doc)); - hide(E("sync-syncnow-state", doc)); - hide(E("sync-setup", doc)); - hide(E("sync-syncnowitem", doc)); -} - -function disablePrivateBrowsing(doc) { - disable(E("Tools:PrivateBrowsing", doc)); - hide(E("menu_newPrivateWindow", doc)); - // Because this is on a context menu, we can't use "hidden" - if (E("context-openlinkprivate", doc)) - E("context-openlinkprivate", doc).setAttribute("style", "display: none;"); - if (E("placesContext_open:newprivatewindow", doc)) - E("placesContext_open:newprivatewindow", doc).setAttribute("style", "display: none;"); - CustomizableUI.destroyWidget("privatebrowsing-button") -} - -function disableAddonsManager(doc) { - hide(E("menu_openAddons", doc)); - disable(E("Tools:Addons", doc)); // Ctrl+Shift+A - CustomizableUI.destroyWidget("add-ons-button") -} - -function removeDeveloperTools(doc) { - var win = doc.defaultView; - // Need to delay this because devtools is created dynamically - win.setTimeout(function() { - CustomizableUI.destroyWidget("developer-button") - hide(E("webDeveloperMenu", doc)); - var devtoolsKeyset = doc.getElementById("devtoolsKeyset"); - if (devtoolsKeyset) { - for (var i = 0; i < devtoolsKeyset.childNodes.length; i++) { - devtoolsKeyset.childNodes[i].removeAttribute("oncommand"); - devtoolsKeyset.childNodes[i].removeAttribute("command"); - } - } - }, 0); - try { - doc.getElementById("Tools:ResponsiveUI").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:Scratchpad").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:BrowserConsole").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:BrowserToolbox").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:DevAppsMgr").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:DevToolbar").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:DevToolbox").removeAttribute("oncommand"); - } catch (e) {} - try { - doc.getElementById("Tools:DevToolbarFocus").removeAttribute("oncommand"); - } catch (e) {} - CustomizableUI.destroyWidget("developer-button") -} - -function disableErrorConsole(doc) { - doc.getElementById("Tools:ErrorConsole").removeAttribute("oncommand"); -} - -function onPanelShowing(event) { - var configs = CCK2.getConfigs(); - for (let id in configs) { - var config = configs[id]; - if (config.disableSync) { - hide(E("PanelUI-fxa-status", event.target.ownerDocument)); - hide(E("PanelUI-footer-fxa", event.target.ownerDocument)); // Firefox 42+ - } - } -} - -function onAppMenuShowing(event) { - var configs = CCK2.getConfigs(); - for (let id in configs) { - var config = configs[id]; - if (config.disableSync) { - hide(E("appMenu-fxa-container", event.target.ownerDocument)); - } - if (config.removeDeveloperTools) { - hide(E("appMenu-developer-button", event.target.ownerDocument)); - } - } -} - -function E(id, context) { - var element = context.getElementById(id); - return element; -} - -function hide(element) { - if (element) { - element.setAttribute("hidden", "true"); - } -} - -function disable(element) { - if (element) { - element.disabled = true; - element.setAttribute("disabled", "true"); - } -} - -function hideUIElements(doc, hiddenUI) { - for (var i=0; i < hiddenUI.length; i++) { - var uiElements = doc.querySelectorAll(hiddenUI[i]); - // Don't use .hidden since it doesn't work sometimes - var style = doc.getElementById("cck2-hidden-style"); - if (!style) { - style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style"); - style.setAttribute("id", "cck2-hidden-style"); - style.setAttribute("type", "text/css"); - doc.documentElement.appendChild(style); - } - style.textContent = style.textContent + hiddenUI[i] + "{display: none !important;}"; - if (!uiElements || uiElements.length == 0) { - continue; - } - for (var j=0; j < uiElements.length; j++) { - var uiElement = uiElements[j]; - if (uiElement.nodeName == "menuitem") { - uiElement.removeAttribute("key"); - uiElement.removeAttribute("oncommand"); - if (uiElement.hasAttribute("command")) { - var commandId = uiElement.getAttribute("command"); - uiElement.removeAttribute("command"); - var command = doc.getElementById(commandId); - command.removeAttribute("oncommand"); - var keys = doc.querySelectorAll("key[command='" + commandId + "']") - for (var k=0; k < keys.length; k++) { - keys[k].removeAttribute("command"); - } - } - } - // Horrible hack to work around the crappy Australis help menu - // Items on the menu always show up in the Australis menu, so we have to remove them. - if (uiElements[j].parentNode.id == "menu_HelpPopup") { - uiElements[j].parentNode.removeChild(uiElements[j]); - } - } - } -} diff --git a/osx/build/preferences/cck2/modules/CCK2FileBlock.jsm b/osx/build/preferences/cck2/modules/CCK2FileBlock.jsm deleted file mode 100644 index 5cad7de..0000000 --- a/osx/build/preferences/cck2/modules/CCK2FileBlock.jsm +++ /dev/null @@ -1,47 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -var EXPORTED_SYMBOLS = []; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -let CCK2FileBlock = { - chromeBlacklist: ["browser", "mozapps", "marionette", "specialpowers", - "branding", "alerts"], - shouldLoad: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) { - // Prevent the loading of chrome URLs into the main browser window - if (aContentLocation.scheme == "chrome") { - if (aRequestOrigin && - (aRequestOrigin.spec == "chrome://browser/content/browser.xul" || - aRequestOrigin.scheme == "moz-nullprincipal")) { - for (var i=0; i < this.chromeBlacklist.length; i++) { - if (aContentLocation.host == this.chromeBlacklist[i]) { - if (aContentLocation.spec.includes(".xul")) { - return Ci.nsIContentPolicy.REJECT_REQUEST; - } - } - } - } - } - return Ci.nsIContentPolicy.ACCEPT; - }, - shouldProcess: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) { - return Ci.nsIContentPolicy.ACCEPT; - }, - classDescription: "CCK2 FileBlock Service", - contractID: "@kaply.com/cck2-fileblock-service;1", - classID: Components.ID('{26e7afc9-e22d-4d12-bb57-c184fe24b828}'), - QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy]), - createInstance: function(outer, iid) { - return this.QueryInterface(iid); - }, -}; - -var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); -registrar.registerFactory(CCK2FileBlock.classID, - CCK2FileBlock.classDescription, - CCK2FileBlock.contractID, - CCK2FileBlock); - -var cm = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager); -cm.addCategoryEntry("content-policy", CCK2FileBlock.contractID, - CCK2FileBlock.contractID, false, true); diff --git a/osx/build/preferences/cck2/modules/CCK2Framescript.js b/osx/build/preferences/cck2/modules/CCK2Framescript.js deleted file mode 100644 index fda925c..0000000 --- a/osx/build/preferences/cck2/modules/CCK2Framescript.js +++ /dev/null @@ -1,51 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; -Cu.import("resource://gre/modules/Services.jsm"); - -var disableSearchEngineInstall = false; - -var documentObserver = { - observe: function observe(subject, topic, data) { - if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') { - var doc = subject.document; - doc.addEventListener("DOMContentLoaded", function onLoad(event) { - event.target.removeEventListener("DOMContentLoaded", onLoad, false); - if (disableSearchEngineInstall) { - subject.wrappedJSObject.external.AddSearchProvider = function() {}; - } - if (!doc.documentURI.startsWith("about:")) { - return; - } - for (let id in configs) { - var config = configs[id]; - if (config.hiddenUI) { - for (var i=0; i < config.hiddenUI.length; i++) { - // Don't use .hidden since it doesn't work sometimes - var style = doc.getElementById("cck2-hidden-style"); - if (!style) { - style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style"); - style.setAttribute("id", "cck2-hidden-style"); - style.setAttribute("type", "text/css"); - doc.documentElement.appendChild(style); - } - style.textContent = style.textContent + config.hiddenUI[i] + "{display: none !important;}"; - } - } - } - }, false); - } - } -} - -var configs = sendSyncMessage("cck2:get-configs")[0]; -for (var id in configs) { - var config = configs[id]; - if (config.disableSearchEngineInstall) { - disableSearchEngineInstall = true; - break; - } -} - -Services.obs.addObserver(documentObserver, "content-document-global-created", false); -addEventListener("unload", function() { - Services.obs.removeObserver(documentObserver, "content-document-global-created", false); -}) diff --git a/osx/build/preferences/cck2/modules/CCK2PreferencesOverlay.jsm b/osx/build/preferences/cck2/modules/CCK2PreferencesOverlay.jsm deleted file mode 100644 index 3f165bd..0000000 --- a/osx/build/preferences/cck2/modules/CCK2PreferencesOverlay.jsm +++ /dev/null @@ -1,123 +0,0 @@ -/* This file modifies the preferences dialogs. It does the following: - * Removes private browsing from the pref UI if it is disabled - * Removes Sync from the pref UI if it is diabled - * Disables the crash reporter button if crash reporter is disabled - * Removed the master password UI if it is disabled - * Goes through the hiddenUI list and hides any UI - * - */ - -const EXPORTED_SYMBOLS = []; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://cck2/CCK2.jsm"); - -var configs = null; - -var observer = { - observe: function observe(subject, topic, data) { - switch (topic) { - case "chrome-document-global-created": - var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow); - win.addEventListener("load", function onLoad(event) { - win.removeEventListener("load", onLoad, false); - var doc = event.target; - var url = doc.location.href.split("?")[0].split("#")[0]; - switch (url) { - case "chrome://browser/content/preferences/preferences.xul": - configs = CCK2.getConfigs(); - win.addEventListener("paneload", function(event) { - updatePrefUI(event.target.ownerDocument); - }, false); - updatePrefUI(doc); - for (let id in configs) { - var config = configs[id]; - if (!config.disableSync) { - continue; - } - var prefWindow = E("BrowserPreferences", doc); - var paneSyncRadio = doc.getAnonymousElementByAttribute(prefWindow, "pane", "paneSync"); - hide(paneSyncRadio); - var paneDeck = doc.getAnonymousElementByAttribute(prefWindow, "anonid", "paneDeck"); - var paneSync = E("paneSync", doc); - paneSync.removeAttribute("helpTopic"); - var weavePrefsDeck = E("weavePrefsDeck", doc); - if (weavePrefsDeck) - weavePrefsDeck.parentNode.removeChild(weavePrefsDeck); - if (prefWindow.currentPane == E("paneSync", doc)) - prefWindow.showPane(E("paneMain", doc)); - } - break; - case "about:preferences": - case "chrome://browser/content/preferences/in-content/preferences.xul": - configs = CCK2.getConfigs(); - for (let id in configs) { - var config = configs[id]; - if (config.disableSync) { - hide(E("category-sync", doc)); - } - } - updatePrefUI(doc); - break; - } - }, false); - break; - } - } -} -Services.obs.addObserver(observer, "chrome-document-global-created", false); - -// The IDs are the same, so I can reuse this for regular and in-content prefs -function updatePrefUI(doc) { - for (var id in configs) { - var config = configs[id]; - if (config.disablePrivateBrowsing) { - hide(E("privateBrowsingAutoStart", doc)); - var privateBrowsingMenu = doc.querySelector("menuitem[value='dontremember']"); - hide(privateBrowsingMenu, doc); - } - if (config.disableCrashReporter) { - disable(E("submitCrashesBox", doc)); - } - if (config.disableSync) { - hide(E("noFxaAccount", doc)); - hide(E("hasFxaAccount", doc)); - } - if (config.noMasterPassword == true) { - hide(E("useMasterPassword", doc)); - hide(E("changeMasterPassword", doc)); - } - if (config.hiddenUI) { - for (var i=0; i < config.hiddenUI.length; i++) { - // Don't use .hidden since it doesn't work sometimes - var style = doc.getElementById("cck2-hidden-style"); - if (!style) { - style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style"); - style.setAttribute("id", "cck2-hidden-style"); - style.setAttribute("type", "text/css"); - doc.documentElement.appendChild(style); - } - style.textContent = style.textContent + config.hiddenUI[i] + "{display: none !important;}"; - } - } - } -} - -function E(id, context) { - var element = context.getElementById(id); - return element; -} - -function hide(element) { - if (element) { - element.setAttribute("hidden", "true"); - } -} - -function disable(element) { - if (element) { - element.disabled = true; - } -} diff --git a/osx/build/preferences/cck2/modules/CTPPermissions.jsm b/osx/build/preferences/cck2/modules/CTPPermissions.jsm deleted file mode 100644 index 862ea48..0000000 --- a/osx/build/preferences/cck2/modules/CTPPermissions.jsm +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copied from https://github.com/jvillalobos/CTP-Manager/blob/master/extension/modules/permissions.js - **/ - -/** - * Copyright 2013 Jorge Villalobos - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - **/ - -var EXPORTED_SYMBOLS = ["CTP"]; - -const Cc = Components.classes; -const Ci = Components.interfaces; - -Components.utils.import("resource://gre/modules/Services.jsm"); - -var CTP = { - /** - * Cleans up the plugin name to a more readable form. - * Taken from /browser/base/content/pageinfo/permissions.js (Firefox 20) - * @param aPluginName the name to clean up. - * @return cleaned up plugin name. - */ - makeNicePluginName : function(aPluginName) { - let newName = - aPluginName.replace(/[\s\d\.\-\_\(\)]+$/, ""). - replace(/\bplug-?in\b/i, "").trim(); - - return newName; - }, - - /** - * Gets the plugin permission string from the tag object. In Firefox 20, this - * is the plugin filename. In 21 an above, the file extension is removed and - * Flash and Java are special-cased. - * @param aTag the tag object with the plugin information. - * @return permission string that corresponds to the plugin in the tag. - */ - getPluginPermissionFromTag : function(aTag) { - let permission = null; - let majorVersion = Services.appinfo.platformVersion.split(".")[0]; - - if (21 <= majorVersion) { - let mimeTypes = aTag.getMimeTypes(); - - if (CTP.isFlashPlugin(mimeTypes)) { - permission = "flash"; - } else if (CTP.isJavaPlugin(mimeTypes)) { - permission = "java"; - } else { - let lastPeriod = aTag.filename.lastIndexOf("."); - - permission = - ((0 < lastPeriod) ? aTag.filename.substring(0, lastPeriod) : - aTag.filename); - // Remove digits at the end - permission = permission.replace(/[0-9]+$/, ""); - permission = permission.toLowerCase(); - } - } else { - permission = aTag.filename; - } - - return permission; - }, - - /** - * Checks if the tag object corresponds to the Java plugin. - * @param aMimeTypes the list of MIME types for the plugin. - * @return true if the tag corresponds to the Java plugin. - */ - isJavaPlugin : function(aMimeTypes) { - let isJava = false; - let mimeType; - - for (let i = 0; i < aMimeTypes.length; i++) { - mimeType = - ((null != aMimeTypes[i].type) ? aMimeTypes[i].type : aMimeTypes[i]); - - if ((0 == mimeType.indexOf("application/x-java-vm")) || - (0 == mimeType.indexOf("application/x-java-applet")) || - (0 == mimeType.indexOf("application/x-java-bean"))) { - isJava = true; - break; - } - } - - return isJava; - }, - - /** - * Checks if the tag object corresponds to the Flash plugin. - * @param aMimeTypes the list of MIME types for the plugin. - * @return true if the tag corresponds to the Flash plugin. - */ - isFlashPlugin : function(aMimeTypes) { - let isFlash = false; - let mimeType; - - for (let i = 0; i < aMimeTypes.length; i++) { - mimeType = - ((null != aMimeTypes[i].type) ? aMimeTypes[i].type : aMimeTypes[i]); - - if (0 == mimeType.indexOf("application/x-shockwave-flash")) { - isFlash = true; - break; - } - } - - return isFlash; - } -}; diff --git a/osx/build/preferences/cck2/modules/Preferences.jsm b/osx/build/preferences/cck2/modules/Preferences.jsm deleted file mode 100644 index 2100911..0000000 --- a/osx/build/preferences/cck2/modules/Preferences.jsm +++ /dev/null @@ -1,629 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Preferences. - * - * The Initial Developer of the Original Code is Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Myk Melez - * Daniel Aquino - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -let EXPORTED_SYMBOLS = ["Preferences"]; - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cr = Components.results; -const Cu = Components.utils; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -// The minimum and maximum integers that can be set as preferences. -// The range of valid values is narrower than the range of valid JS values -// because the native preferences code treats integers as NSPR PRInt32s, -// which are 32-bit signed integers on all platforms. -const MAX_INT = Math.pow(2, 31) - 1; -const MIN_INT = -MAX_INT; - -function Preferences(args) { - if (isObject(args)) { - if (args.branch) - this._prefBranch = args.branch; - } - else if (args) - this._prefBranch = args; - this.isDefaultBranch = false; -} - -Preferences.prototype = { - /** - * Get the value of a pref, if any; otherwise return the default value. - * - * @param prefName {String|Array} - * the pref to get, or an array of prefs to get - * - * @param defaultValue - * the default value, if any, for prefs that don't have one - * - * @returns the value of the pref, if any; otherwise the default value - */ - get: function(prefName, defaultValue) { - if (isArray(prefName)) - return prefName.map(v => this.get(v, defaultValue)); - - return this._get(prefName, defaultValue); - }, - -// In all cases below, the preference might exist as a user pref, but not -// have a default value. In those cases, get* throws. Return the default value. - _get: function(prefName, defaultValue) { - switch (this._prefSvc.getPrefType(prefName)) { - case Ci.nsIPrefBranch.PREF_STRING: - try { - return this._prefSvc.getComplexValue(prefName, Ci.nsISupportsString).data; - } catch (ex) { - if (this.isDefaultBranch) - return defaultValue; - else - return this._prefSvc.getCharPref(prefName); - } - - case Ci.nsIPrefBranch.PREF_INT: - try { - return this._prefSvc.getIntPref(prefName); - } catch (ex) { - return defaultValue; - } - - case Ci.nsIPrefBranch.PREF_BOOL: - try { - return this._prefSvc.getBoolPref(prefName); - } catch (ex) { - return defaultValue; - } - - case Ci.nsIPrefBranch.PREF_INVALID: - return defaultValue; - - default: - // This should never happen. - throw "Error getting pref " + prefName + "; its value's type is " + - this._prefSvc.getPrefType(prefName) + ", which I don't know " + - "how to handle."; - } - }, - - /** - * Set a preference to a value. - * - * You can set multiple prefs by passing an object as the only parameter. - * In that case, this method will treat the properties of the object - * as preferences to set, where each property name is the name of a pref - * and its corresponding property value is the value of the pref. - * - * @param prefName {String|Object} - * the name of the pref to set; or an object containing a set - * of prefs to set - * - * @param prefValue {String|Number|Boolean} - * the value to which to set the pref - * - * Note: Preferences cannot store non-integer numbers or numbers outside - * the signed 32-bit range -(2^31-1) to 2^31-1, If you have such a number, - * store it as a string by calling toString() on the number before passing - * it to this method, i.e.: - * Preferences.set("pi", 3.14159.toString()) - * Preferences.set("big", Math.pow(2, 31).toString()). - */ - set: function(prefName, prefValue) { - if (isObject(prefName)) { - for (let [name, value] in Iterator(prefName)) - this.set(name, value); - return; - } - - this._set(prefName, prefValue); - }, - - _set: function(prefName, prefValue) { - let prefType; - if (typeof prefValue != "undefined" && prefValue != null) - prefType = prefValue.constructor.name; - - var existingPrefType = this._prefSvc.getPrefType(prefName); - if (existingPrefType != Ci.nsIPrefBranch.PREF_INVALID) - { - // convert - if (existingPrefType == Ci.nsIPrefBranch.PREF_INT && prefType == "String") - { - prefValue = parseInt(prefValue); - if (isNaN(prefValue)) - throw "Incompatible pref value type - " + prefName; - prefType = "Number"; - } - else if (existingPrefType == Ci.nsIPrefBranch.PREF_BOOL && prefType == "String") - { - if (prefValue == "true") - prefValue = true; - else if (prefValue == "false") - prefValue = false; - else - throw "Incompatible pref value type - " + prefName; - prefType = "Boolean"; - } - else if (existingPrefType == Ci.nsIPrefBranch.PREF_BOOL && prefType == "Number") - { - prefValue = prefValue != 0; - prefType = "Boolean"; - } - } - - switch (prefType) { - case "String": - { - try { - this._prefSvc.setStringPref(prefName, prefValue); - } catch (e) { - try { - let string = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString); - string.data = prefValue; - this._prefSvc.setComplexValue(prefName, Ci.nsISupportsString, string); - } catch (e2) { - Components.utils.reportError(e2); - } - } - } - break; - - case "Number": - // We throw if the number is outside the range, since the result - // will never be what the consumer wanted to store, but we only warn - // if the number is non-integer, since the consumer might not mind - // the loss of precision. - if (prefValue > MAX_INT || prefValue < MIN_INT) - throw("you cannot set the " + prefName + " pref to the number " + - prefValue + ", as number pref values must be in the signed " + - "32-bit integer range -(2^31-1) to 2^31-1. To store numbers " + - "outside that range, store them as strings."); - try { - this._prefSvc.setIntPref(prefName, prefValue); - } catch (e) { - throw new Error(e.toString() + " - " + prefName); - } - if (prefValue % 1 != 0) - Cu.reportError("Warning: setting the " + prefName + " pref to the " + - "non-integer number " + prefValue + " converted it " + - "to the integer number " + this.get(prefName) + - "; to retain fractional precision, store non-integer " + - "numbers as strings."); - break; - - case "Boolean": - this._prefSvc.setBoolPref(prefName, prefValue); - break; - - default: - throw "can't set pref " + prefName + " to value '" + prefValue + - "'; it isn't a String, Number, or Boolean"; - } - }, - - /** - * Whether or not the given pref has a value. This is different from isSet - * because it returns true whether the value of the pref is a default value - * or a user-set value, while isSet only returns true if the value - * is a user-set value. - * - * @param prefName {String|Array} - * the pref to check, or an array of prefs to check - * - * @returns {Boolean|Array} - * whether or not the pref has a value; or, if the caller provided - * an array of pref names, an array of booleans indicating whether - * or not the prefs have values - */ - has: function(prefName) { - if (isArray(prefName)) - return prefName.map(this.has, this); - - return this._has(prefName); - }, - - _has: function(prefName) { - return (this._prefSvc.getPrefType(prefName) != Ci.nsIPrefBranch.PREF_INVALID); - }, - - /** - * Whether or not the given pref has a user-set value. This is different - * from |has| because it returns true only if the value of the pref is a user- - * set value, while |has| returns true if the value of the pref is a default - * value or a user-set value. - * - * @param prefName {String|Array} - * the pref to check, or an array of prefs to check - * - * @returns {Boolean|Array} - * whether or not the pref has a user-set value; or, if the caller - * provided an array of pref names, an array of booleans indicating - * whether or not the prefs have user-set values - */ - isSet: function(prefName) { - if (isArray(prefName)) - return prefName.map(this.isSet, this); - - return (this.has(prefName) && this._prefSvc.prefHasUserValue(prefName)); - }, - - /** - * Whether or not the given pref has a user-set value. Use isSet instead, - * which is equivalent. - * @deprecated - */ - modified: function(prefName) { return this.isSet(prefName) }, - - reset: function(prefName) { - if (isArray(prefName)) { - prefName.map(v => this.reset(v)); - return; - } - - this._reset(prefName); - }, - - _reset: function(prefName) { - try { - this._prefSvc.clearUserPref(prefName); - } - catch(ex) { - // The pref service throws NS_ERROR_UNEXPECTED when the caller tries - // to reset a pref that doesn't exist or is already set to its default - // value. This interface fails silently in those cases, so callers - // can unconditionally reset a pref without having to check if it needs - // resetting first or trap exceptions after the fact. It passes through - // other exceptions, however, so callers know about them, since we don't - // know what other exceptions might be thrown and what they might mean. - if (ex.result != Cr.NS_ERROR_UNEXPECTED) - throw ex; - } - }, - - /** - * If you need to know the default values, without resetting the actual - * user prefs, you can use this. - * @returns {Preferences} a new Preferences object, which accesses - * the defaults rather than the user prefs. - * *Only* call get() on this. - * If you call set(), you will modify the defaults, so don't do that! - */ - get defaults() { - // nsIPrefService - let defaultBranch = Services.prefs. - getDefaultBranch(this._prefBranch). - QueryInterface(Ci.nsIPrefBranch); - let prefs = new Preferences(this._prefBranch); - // override. nasty, but this is internal, so OK. - Object.defineProperty(prefs, "_prefSvc", { - get: function() { - return defaultBranch; - } - }); - prefs.isDefaultBranch = true; - return prefs; - }, - - /** - * Lock a pref so it can't be changed. - * - * @param prefName {String|Array} - * the pref to lock, or an array of prefs to lock - * @param prefValue {String} (optional) - * default value of pref to lock only works if prefName isn't an array - */ - lock: function(prefName, prefValue) { - if (isArray(prefName)) - prefName.map(this.lock, this); - else if (typeof prefValue != "undefined") - this.defaults.set(prefName, prefValue); - - this._prefSvc.lockPref(prefName); - }, - - /** - * Unlock a pref so it can be changed. - * - * @param prefName {String|Array} - * the pref to lock, or an array of prefs to lock - */ - unlock: function(prefName) { - if (isArray(prefName)) - prefName.map(this.unlock, this); - - this._prefSvc.unlockPref(prefName); - }, - - /** - * Whether or not the given pref is locked against changes and - * if it is set to the passedi n value - * - * @param prefName {String|Array} - * the pref to check, or an array of prefs to check - * @param prefValue {String|Number|Boolean}} - * the pref value to compare against - * - * @returns {Boolean|Array} - * whether or not the pref is locked; or, if the caller - * provided an array of pref names, an array of booleans indicating - * whether or not the prefs are locked - * If a pref value was specified returns whether or not the pref - * was locked and equal to the passed in value. - */ - locked: function(prefName, prefValue) { - if (isArray(prefName)) - return prefName.map(this.locked, this); - - if (prefValue) - return this._prefSvc.prefIsLocked(prefName) && (this.get(prefName) == prefValue); - else - return this._prefSvc.prefIsLocked(prefName); - }, - - /** - * Start observing a pref. - * - * The callback can be a function or any object that implements nsIObserver. - * When the callback is a function and thisObject is provided, it gets called - * as a method of thisObject. - * - * @param prefName {String} - * the name of the pref to observe - * - * @param callback {Function|Object} - * the code to notify when the pref changes; - * - * @param thisObject {Object} [optional] - * the object to use as |this| when calling a Function callback; - * - * @returns the wrapped observer - */ - observe: function(prefName, callback, thisObject) { - let fullPrefName = this._prefBranch + (prefName || ""); - - let observer = new PrefObserver(fullPrefName, callback, thisObject); - Preferences._prefSvc.addObserver(fullPrefName, observer, true); - observers.push(observer); - - return observer; - }, - - /** - * Stop observing a pref. - * - * You must call this method with the same prefName, callback, and thisObject - * with which you originally registered the observer. However, you don't have - * to call this method on the same exact instance of Preferences; you can call - * it on any instance. For example, the following code first starts and then - * stops observing the "foo.bar.baz" preference: - * - * let observer = function() {...}; - * Preferences.observe("foo.bar.baz", observer); - * new Preferences("foo.bar.").ignore("baz", observer); - * - * @param prefName {String} - * the name of the pref being observed - * - * @param callback {Function|Object} - * the code being notified when the pref changes - * - * @param thisObject {Object} [optional] - * the object being used as |this| when calling a Function callback - */ - ignore: function(prefName, callback, thisObject) { - let fullPrefName = this._prefBranch + (prefName || ""); - - // This seems fairly inefficient, but I'm not sure how much better we can - // make it. We could index by fullBranch, but we can't index by callback - // or thisObject, as far as I know, since the keys to JavaScript hashes - // (a.k.a. objects) can apparently only be primitive values. - let [observer] = observers.filter(v => v.prefName == fullPrefName && - v.callback == callback && - v.thisObject == thisObject); - - if (observer) { - Preferences._prefSvc.removeObserver(fullPrefName, observer); - observers.splice(observers.indexOf(observer), 1); - } - }, - - /** - * Same as observe(), but automatically unregisters itself when - * the window closes, saving you from writing an unload handler and - * calling ignore(). - * @param win {nsIDOMWindow} your |window| - */ - observeAuto: function(win, prefName, callback, thisObject) { - if (!win instanceof Ci.nsIDOMWindow) - throw "Need your |window| as first parameter"; - this.observe(prefName, callback, thisObject); - var self = this; - win.addEventListener("unload", function() - { - self.ignore(prefName, callback, thisObject); - }, false); - win = null; // don't let closure hold on to window unnecessarily - }, - - resetBranch: function(prefBranch) { - try { - this._prefSvc.resetBranch(prefBranch); - } - catch(ex) { - // The current implementation of nsIPrefBranch in Mozilla - // doesn't implement resetBranch, so we do it ourselves. - if (ex.result == Cr.NS_ERROR_NOT_IMPLEMENTED) - this.reset(this._prefSvc.getChildList(prefBranch, [])); - else - throw ex; - } - }, - - /** - * Returns all child prefs of this pref branch. - * This equals nsIPrefBranch.getChildList(). - * This allows you to do e.g. - * var myPrefs = new Preferences("extensions.cooler."); - * var contents = myPrefs.branch("contents."); - * for each (let prefname in contents.childPrefNames()) - * dump("have " + contents.get(prefname) + " " + prefname + "\n"); - * - * @returns {Array of String} The names of the children, - * without the base pref branch, but with subbranch. - */ - childPrefNames : function() { - return this._prefSvc.getChildList("", []); - }, - - /** - * Returns an nsIPrefBranch for the pref branch that this object stands for. - * You can use this to use functions that are not supported here. - * @returns {nsIPrefBranch} - */ - get mozillaPrefBranch() { - return this._prefSvc; - }, - - /** - * Returns the base pref name that this object stands for. - * E.g. "extensions.yourcooler."; - * @returns {String} - */ - get prefBranchName() { - return this._prefBranch; - }, - - /** - * Returns an Preferences object for an sub pref branch - * underneath the current pref branch. - * @param subbranch {String} Will be appended to the - * current pref branch. Don't forget the trailing dot, - * where necessary. - * E.g. "contents." - * @returns {Preferences} - */ - branch : function(subbranch) { - return new Preferences(this._prefBranch + subbranch); - }, - - /** - * The branch of the preferences tree to which this instance provides access. - * @private - */ - _prefBranch: "", - - /** - * Preferences Service - * @private - */ - get _prefSvc() { - // nsIPrefService - let prefSvc = Services.prefs. - getBranch(this._prefBranch). - QueryInterface(Ci.nsIPrefBranch); - Object.defineProperty(this, "_prefSvc", { - get: function() { - return prefSvc; - } - }); - return this._prefSvc; - } - -}; - -// Give the constructor the same prototype as its instances, so users can access -// preferences directly via the constructor without having to create an instance -// first. -Preferences.__proto__ = Preferences.prototype; - -/** - * A cache of pref observers. - * - * We use this to remove observers when a caller calls Preferences::ignore. - * - * All Preferences instances share this object, because we want callers to be - * able to remove an observer using a different Preferences object than the one - * with which they added it. That means we have to identify the observers - * in this object by their complete pref name, not just their name relative to - * the root branch of the Preferences object with which they were created. - */ -let observers = []; - -function PrefObserver(prefName, callback, thisObject) { - this.prefName = prefName; - this.callback = callback; - this.thisObject = thisObject; -} - -PrefObserver.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]), - - observe: function(subject, topic, data) { - // The pref service only observes whole branches, but we only observe - // individual preferences, so we check here that the pref that changed - // is the exact one we're observing (and not some sub-pref on the branch). - if (data != this.prefName) - return; - - if (typeof this.callback == "function") { - let prefValue = Preferences.get(this.prefName); - - if (this.thisObject) - this.callback.call(this.thisObject, prefValue); - else - this.callback(prefValue); - } - else // typeof this.callback == "object" (nsIObserver) - this.callback.observe(subject, topic, data); - } -}; - -function isArray(val) { - // We can't check for |val.constructor == Array| here, since the value - // might be from a different context whose Array constructor is not the same - // as ours, so instead we match based on the name of the constructor. - return (typeof val != "undefined" && val != null && typeof val == "object" && - val.constructor.name == "Array"); -} - -function isObject(val) { - // We can't check for |val.constructor == Object| here, since the value - // might be from a different context whose Object constructor is not the same - // as ours, so instead we match based on the name of the constructor. - return (typeof val != "undefined" && val != null && typeof val == "object" && - val.constructor.name == "Object"); -} diff --git a/osx/build/preferences/cck2/modules/Timer.jsm b/osx/build/preferences/cck2/modules/Timer.jsm deleted file mode 100644 index d405b28..0000000 --- a/osx/build/preferences/cck2/modules/Timer.jsm +++ /dev/null @@ -1,43 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * JS module implementation of nsIDOMJSWindow.setTimeout and clearTimeout. - */ - -this.EXPORTED_SYMBOLS = ["setTimeout", "clearTimeout"]; - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cu = Components.utils; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -// This gives us >=2^30 unique timer IDs, enough for 1 per ms for 12.4 days. -let gNextTimeoutId = 1; // setTimeout must return a positive integer - -let gTimeoutTable = new Map(); // int -> nsITimer - -this.setTimeout = function setTimeout(aCallback, aMilliseconds) { - let id = gNextTimeoutId++; - let args = Array.slice(arguments, 2); - let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); - timer.initWithCallback(function setTimeout_timer() { - gTimeoutTable.delete(id); - aCallback.apply(null, args); - }, aMilliseconds, timer.TYPE_ONE_SHOT); - - gTimeoutTable.set(id, timer); - return id; -} - -this.clearTimeout = function clearTimeout(aId) { - if (gTimeoutTable.has(aId)) { - gTimeoutTable.get(aId).cancel(); - gTimeoutTable.delete(aId); - } -} - diff --git a/osx/build/preferences/cck2/modules/Utils.jsm b/osx/build/preferences/cck2/modules/Utils.jsm deleted file mode 100644 index 559bb0b..0000000 --- a/osx/build/preferences/cck2/modules/Utils.jsm +++ /dev/null @@ -1,10 +0,0 @@ -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -var EXPORTED_SYMBOLS = ["errorCritical"]; - -Components.utils.import("resource://gre/modules/Services.jsm"); - -function errorCritical(e) -{ - Services.prompt.alert(null, "", e); -} diff --git a/osx/build/preferences/cck2/resources/certs/purplei2p_ca.pem b/osx/build/preferences/cck2/resources/certs/purplei2p_ca.pem deleted file mode 100644 index a750237..0000000 --- a/osx/build/preferences/cck2/resources/certs/purplei2p_ca.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID9zCCAt+gAwIBAgIUervWv7EoWkk4Gt8J34xDR9nhH50wDQYJKoZIhvcNAQEL -BQAwgYIxCzAJBgNVBAYTAldXMRQwEgYDVQQIDAtJMlAgTmV0d29yazESMBAGA1UE -CgwJUHVycGxlSTJQMSowKAYDVQQDDCFQdXJwbGVJMlAgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDnI0c2FzQG1haWwuaTJwMB4XDTE5MDMw -MzE2MjcxNFoXDTI5MDIyODE2MjcxNFowgYIxCzAJBgNVBAYTAldXMRQwEgYDVQQI -DAtJMlAgTmV0d29yazESMBAGA1UECgwJUHVycGxlSTJQMSowKAYDVQQDDCFQdXJw -bGVJMlAgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDnI0 -c2FzQG1haWwuaTJwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwLEy -A0TamzrfORA+aIM/NRRGrKYkI9o5Q9UB/pTM8IFlSBREGleUfnC6LFHZeNV+Y1Tn -jrMBOZ7PmIKjPIv+fJP7KjhHACZdk6iqVZqkiGqE0/V17kG16g1+g05Bj2lkWr94 -mp1rhzBeKJJSI8cG82824qdfDcgWZheziye+O0okENhi0o2bDhg78EnyysJiN/tu -OuoZSGfC9ZdITbpMWgqwuQcdeBg0FNy4hEqUJWoYNgrghe5uc0WMOjTAegSntYPE -MeaaZyzlGICZ2F+rKZgTjnzVYW60QlHqfg7sShieSPYIZmeN5l5hZ5GZk9Giaj/X -4pz4sup2iafKclWAmQIDAQABo2MwYTAdBgNVHQ4EFgQUCARvpDaXqPaF4amObzzV -GaDoZm4wHwYDVR0jBBgwFoAUCARvpDaXqPaF4amObzzVGaDoZm4wDwYDVR0TBAgw -BgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKcmGUXV -gCw8PRHe0+XlkcSTX69e0TIPP+j5uJxMT3BHasvBdyV4FcjuUokHGjAnHal5OV4N -yWdbRPnIge7su4yLQZzlNM1OzbcRds1wSbqTEpb68R/6E8mv3ms6Rc8AcRoXwusc -byZvzS9tBSXTQ21wCVrltnIARAYabWlWu+URv+DFvlwMik6H8+DklHSVkPC6K3Ov -V1aMJztMnJ/XTTsFDS/yvaTfmJFG16LABIiSsEAW5QK64sWsN4sxvpcg0D6/EjWP -knyLM4KXuD3i08mzwzus8d97AjGxC5RCEFL5ADBpVaDU/5CpmZmZdY1daYjiHrXm -EVNoSbqid1fAVyA= ------END CERTIFICATE----- diff --git a/osx/build/preferences/cck2/resources/searchengines/legwork.xml b/osx/build/preferences/cck2/resources/searchengines/legwork.xml deleted file mode 100644 index 484edce..0000000 --- a/osx/build/preferences/cck2/resources/searchengines/legwork.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - YaCy 'legwork' - YaCy.net - Searching the I2P network - http://legwork.i2p/env/grafics/yacy.png - data:image/x-icon;base64,AAABAAEAEBAAAAAAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////Chiu+fBm+fRq+fRq+fRq+fRq+fRq8ehXMmk////////////////////////////++exjUqGfZsnjYsXbYsXbYsXbZsnjTp2W+fBr///////////////////////////+9exfs2r/69/L58+z58+z58+z59e/z59bChSn///////////////////////////+9fBnnz638+fX69O369e748un38Ob59O3Ll0fVrGz////////////////////////Jk0HJlUjXuYrWt4jVtYPr28T58+r59OzPn1fPnlX////////////////////////Rolu8eRXCiTPEjTvCijbNnlj169359e7Zs3vLlkf////////////////////////UqmrAgSLt3MP27eH1693169327+T59Ozo0rG/gB////////////////////////////+/gCDv4Mn48+v38Of59Oz58+v48+vr2b2+fRv///////////////////////////+9ehXr17n58+z48ejo0bDp07T48+zx49DBhCj///////////////////////////+/fhzjyJ/59Oz59OzQoVvNmU759Oz58+vKlUbXrnH////////////////////////LlkfUqmn59Oz48+vZtHzNm1D48+v59OzPoFjOnlX////////////////////////OnVPOnFL59e348+vq1rnEiC7u38j69vDXsHTIkT3////////////////////////UqWjIkD327+T58+3s2bzAgSLp07T79/Pmzqq+fBn///////////////////////////+/fx7v4Mr7+PTx5NDHkD3kyqP8+vjs2r+9exf///////////////////////////++fBjQoFnVq2zTp2bGjTjJk0LWrW7SpWC+exf////////////////////////////Nm1C6dQy7eBG8eBK9exe8ehS7dxC6dQzLlkj////////////AH///wB8x+sAf///AD/+PwA///8AP///AD///4A9PU+APoz/gB///4AdxvOAHoz/gB3368AfjU/AHT1PwB/+P - - en-us - UTF-8 - UTF-8 - true - YaCy is an open-source GPL-licensed software that can be used for stand-alone search engine installations or as a client for a multi-user P2P-based web indexing cluster. This is the access to peer 'legwork'. - - - - - - - - - See https://github.com/orgs/yacy/teams/yacy_developers - - YaCy Free Software Open Source P2P Peer-to-Peer Uncensored Distributed Web Search Engine - See http://legwork.i2p/ViewProfile.html?hash=localhash - http://yacy.net YaCy Software &copy; 2004-2014 by Michael Christen et al., YaCy.net; Content: ask peer owner - open - diff --git a/osx/build/profile/xulstore.json b/osx/build/profile/xulstore.json deleted file mode 100644 index 6fe09a3..0000000 --- a/osx/build/profile/xulstore.json +++ /dev/null @@ -1 +0,0 @@ -{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small"},"titlebar-placeholder-on-menubar-for-caption-buttons":{"width":"102"},"titlebar-placeholder-on-TabsToolbar-for-captions-buttons":{"width":"102"},"main-window":{"screenX":"30","screenY":"30","width":"1280","height":"720","sizemode":"normal"},"PersonalToolbar":{"collapsed":"false","currentset":"personal-bookmarks"},"toolbar-menubar":{"currentset":"menubar-items"},"TabsToolbar":{"currentset":"tabbrowser-tabs,new-tab-button,alltabs-button"},"addon-bar":{"currentset":"addonbar-closebutton,status-bar"},"nav-bar":{"currentset":"back-button,forward-button,stop-reload-button,urlbar-container,bookmarks-menu-button,downloads-button,_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action"},"sidebar-title":{"value":""}}} \ No newline at end of file