ChangeLog 1.5 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512
  1. Changes in version 0.3.5.4-alpha - 2018-11-08
  2. Tor 0.3.5.4-alpha includes numerous bugfixes on earlier versions and
  3. improves our continuous integration support. It continues our attempts
  4. to stabilize this alpha branch and build it into a foundation for an
  5. acceptable long-term-support release.
  6. o Major bugfixes (compilation, rust):
  7. - Rust tests can now build and run successfully with the
  8. --enable-fragile-hardening option enabled. Doing this currently
  9. requires the rust beta channel; it will be possible with stable
  10. rust once Rust version 1.31 is released. Patch from Alex Crichton.
  11. Fixes bugs 27272, 27273, and 27274. Bugfix on 0.3.1.1-alpha.
  12. o Major bugfixes (embedding, main loop):
  13. - When DisableNetwork becomes set, actually disable periodic events
  14. that are already enabled. (Previously, we would refrain from
  15. enabling new ones, but we would leave the old ones turned on.)
  16. Fixes bug 28348; bugfix on 0.3.4.1-alpha.
  17. o Minor features (continuous integration):
  18. - Add a Travis CI build for --enable-nss on Linux gcc. Closes
  19. ticket 27751.
  20. - Add new CI job to Travis configuration to run stem-based
  21. integration tests. Closes ticket 27913.
  22. o Minor features (Windows, continuous integration):
  23. - Build tor on Windows Server 2012 R2 and Windows Server 2016 using
  24. Appveyor's CI. Closes ticket 28318.
  25. o Minor bugfixes (C correctness, also in 0.3.4.9):
  26. - Avoid undefined behavior in an end-of-string check when parsing
  27. the BEGIN line in a directory object. Fixes bug 28202; bugfix
  28. on 0.2.0.3-alpha.
  29. o Minor bugfixes (compilation):
  30. - Fix a pair of missing headers on OpenBSD. Fixes bug 28303; bugfix
  31. on 0.3.5.1-alpha. Patch from Kris Katterjohn.
  32. o Minor bugfixes (compilation, OpenSolaris):
  33. - Fix compilation on OpenSolaris and its descendants by adding a
  34. missing include to compat_pthreads.c. Fixes bug 27963; bugfix
  35. on 0.3.5.1-alpha.
  36. o Minor bugfixes (configuration):
  37. - Refuse to start with relative file paths and RunAsDaemon set
  38. (regression from the fix for bug 22731). Fixes bug 28298; bugfix
  39. on 0.3.3.1-alpha.
  40. o Minor bugfixes (directory authority, also in 0.3.4.9):
  41. - Log additional info when we get a relay that shares an ed25519 ID
  42. with a different relay, instead of a BUG() warning with a
  43. backtrace. Fixes bug 27800; bugfix on 0.3.2.1-alpha.
  44. o Minor bugfixes (onion service v3):
  45. - Build the service descriptor's signing key certificate before
  46. uploading, so we always have a fresh one: leaving no chances for
  47. it to expire service side. Fixes bug 27838; bugfix
  48. on 0.3.2.1-alpha.
  49. o Minor bugfixes (onion service v3, client authorization):
  50. - Fix an assert() when adding a client authorization for the first
  51. time and then sending a HUP signal to the service. Before that,
  52. Tor would stop abruptly. Fixes bug 27995; bugfix on 0.3.5.1-alpha.
  53. o Minor bugfixes (onion services):
  54. - Unless we have explicitly set HiddenServiceVersion, detect the
  55. onion service version and then look for invalid options.
  56. Previously, we did the reverse, but that broke existing configs
  57. which were pointed to a v2 service and had options like
  58. HiddenServiceAuthorizeClient set. Fixes bug 28127; bugfix on
  59. 0.3.5.1-alpha. Patch by Neel Chauhan.
  60. o Minor bugfixes (portability):
  61. - Make the OPE code (which is used for v3 onion services) run
  62. correctly on big-endian platforms. Fixes bug 28115; bugfix
  63. on 0.3.5.1-alpha.
  64. o Minor bugfixes (protover, rust):
  65. - Reject extra commas in version strings. Fixes bug 27197; bugfix
  66. on 0.3.3.3-alpha.
  67. o Minor bugfixes (relay shutdown, systemd):
  68. - Notify systemd of ShutdownWaitLength so it can be set to longer
  69. than systemd's TimeoutStopSec. In Tor's systemd service file, set
  70. TimeoutSec to 60 seconds to allow Tor some time to shut down.
  71. Fixes bug 28113; bugfix on 0.2.6.2-alpha.
  72. o Minor bugfixes (rust, also in 0.3.4.9):
  73. - Fix a potential null dereference in protover_all_supported(). Add
  74. a test for it. Fixes bug 27804; bugfix on 0.3.3.1-alpha.
  75. - Return a string that can be safely freed by C code, not one
  76. created by the rust allocator, in protover_all_supported(). Fixes
  77. bug 27740; bugfix on 0.3.3.1-alpha.
  78. o Minor bugfixes (rust, directory authority, also in 0.3.4.9):
  79. - Fix an API mismatch in the rust implementation of
  80. protover_compute_vote(). This bug could have caused crashes on any
  81. directory authorities running Tor with Rust (which we do not yet
  82. recommend). Fixes bug 27741; bugfix on 0.3.3.6.
  83. o Minor bugfixes (testing):
  84. - Avoid hangs and race conditions in test_rebind.py. Fixes bug
  85. 27968; bugfix on 0.3.5.1-alpha.
  86. o Minor bugfixes (testing, also in 0.3.4.9):
  87. - Treat backtrace test failures as expected on BSD-derived systems
  88. (NetBSD, OpenBSD, and macOS/Darwin) until we solve bug 17808.
  89. (FreeBSD failures have been treated as expected since 18204 in
  90. 0.2.8.) Fixes bug 27948; bugfix on 0.2.5.2-alpha.
  91. o Documentation (onion service manpage):
  92. - Improve HSv3 client authorization by making some options more
  93. explicit and detailed. Closes ticket 28026. Patch by Mike Tigas.
  94. Changes in version 0.3.4.9 - 2018-11-02
  95. Tor 0.3.4.9 is the second stable release in its series; it backports
  96. numerous fixes, including a fix for a bandwidth management bug that
  97. was causing memory exhaustion on relays. Anyone running an earlier
  98. version of Tor 0.3.4.9 should upgrade.
  99. o Major bugfixes (compilation, backport from 0.3.5.3-alpha):
  100. - Fix compilation on ARM (and other less-used CPUs) when compiling
  101. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  102. o Major bugfixes (mainloop, bootstrap, backport from 0.3.5.3-alpha):
  103. - Make sure Tor bootstraps and works properly if only the
  104. ControlPort is set. Prior to this fix, Tor would only bootstrap
  105. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  106. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  107. o Major bugfixes (relay, backport from 0.3.5.3-alpha):
  108. - When our write bandwidth limit is exhausted, stop writing on the
  109. connection. Previously, we had a typo in the code that would make
  110. us stop reading instead, leading to relay connections being stuck
  111. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  112. on 0.3.4.1-alpha.
  113. o Major bugfixes (restart-in-process, backport from 0.3.5.1-alpha):
  114. - Fix a use-after-free error that could be caused by passing Tor an
  115. impossible set of options that would fail during options_act().
  116. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  117. o Minor features (continuous integration, backport from 0.3.5.1-alpha):
  118. - Don't do a distcheck with --disable-module-dirauth in Travis.
  119. Implements ticket 27252.
  120. - Only run one online rust build in Travis, to reduce network
  121. errors. Skip offline rust builds on Travis for Linux gcc, because
  122. they're redundant. Implements ticket 27252.
  123. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  124. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  125. Linux with default settings, because all the non-default builds
  126. use gcc on Linux. Implements ticket 27252.
  127. o Minor features (continuous integration, backport from 0.3.5.3-alpha):
  128. - Use the Travis Homebrew addon to install packages on macOS during
  129. Travis CI. The package list is the same, but the Homebrew addon
  130. does not do a `brew update` by default. Implements ticket 27738.
  131. o Minor features (geoip):
  132. - Update geoip and geoip6 to the October 9 2018 Maxmind GeoLite2
  133. Country database. Closes ticket 27991.
  134. o Minor bugfixes (32-bit OSX and iOS, timing, backport from 0.3.5.2-alpha):
  135. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  136. difference algorithm for 32-bit Apple platforms. Previously, it
  137. would overflow when calculating the difference between two times
  138. more than 47 days apart. Fixes part of bug 27139; bugfix
  139. on 0.3.4.1-alpha.
  140. - Improve the precision of our 32-bit millisecond difference
  141. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  142. bugfix on 0.3.4.1-alpha.
  143. - Relax the tolerance on the mainloop/update_time_jumps test when
  144. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  145. on 0.3.4.1-alpha.
  146. o Minor bugfixes (C correctness, to appear in 0.3.5.4-alpha):
  147. - Avoid undefined behavior in an end-of-string check when parsing
  148. the BEGIN line in a directory object. Fixes bug 28202; bugfix
  149. on 0.2.0.3-alpha.
  150. o Minor bugfixes (CI, appveyor, to appear in 0.3.5.4-alpha):
  151. - Only install the necessary mingw packages during our appveyor
  152. builds. This change makes the build a little faster, and prevents
  153. a conflict with a preinstalled mingw openssl that appveyor now
  154. ships. Fixes bugs 27943 and 27765; bugfix on 0.3.4.2-alpha.
  155. o Minor bugfixes (code safety, backport from 0.3.5.3-alpha):
  156. - Rewrite our assertion macros so that they no longer suppress the
  157. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  158. o Minor bugfixes (continuous integration, backport from 0.3.5.1-alpha):
  159. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  160. 27464; bugfix on 0.3.4.1-alpha.
  161. o Minor bugfixes (directory authority, to appear in 0.3.5.4-alpha):
  162. - Log additional info when we get a relay that shares an ed25519 ID
  163. with a different relay, instead making a BUG() warning. Fixes bug
  164. 27800; bugfix on 0.3.2.1-alpha.
  165. o Minor bugfixes (directory connection shutdown, backport from 0.3.5.1-alpha):
  166. - Avoid a double-close when shutting down a stalled directory
  167. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  168. o Minor bugfixes (HTTP tunnel, backport from 0.3.5.1-alpha):
  169. - Fix a bug warning when closing an HTTP tunnel connection due to an
  170. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  171. on 0.3.2.1-alpha.
  172. o Minor bugfixes (netflow padding, backport from 0.3.5.1-alpha):
  173. - Ensure circuitmux queues are empty before scheduling or sending
  174. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  175. o Minor bugfixes (onion service v3, backport from 0.3.5.1-alpha):
  176. - When the onion service directory can't be created or has the wrong
  177. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  178. on 0.3.2.1-alpha.
  179. o Minor bugfixes (onion service v3, backport from 0.3.5.2-alpha):
  180. - Close all SOCKS request (for the same .onion) if the newly fetched
  181. descriptor is unusable. Before that, we would close only the first
  182. one leaving the other hanging and let to time out by themselves.
  183. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  184. o Minor bugfixes (onion service v3, backport from 0.3.5.3-alpha):
  185. - When selecting a v3 rendezvous point, don't only look at the
  186. protover, but also check whether the curve25519 onion key is
  187. present. This way we avoid picking a relay that supports the v3
  188. rendezvous but for which we don't have the microdescriptor. Fixes
  189. bug 27797; bugfix on 0.3.2.1-alpha.
  190. o Minor bugfixes (protover, backport from 0.3.5.3-alpha):
  191. - Reject protocol names containing bytes other than alphanumeric
  192. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  193. on 0.2.9.4-alpha.
  194. o Minor bugfixes (rust, backport from 0.3.5.1-alpha):
  195. - Compute protover votes correctly in the rust version of the
  196. protover code. Previously, the protover rewrite in 24031 allowed
  197. repeated votes from the same voter for the same protocol version
  198. to be counted multiple times in protover_compute_vote(). Fixes bug
  199. 27649; bugfix on 0.3.3.5-rc.
  200. - Reject protover names that contain invalid characters. Fixes bug
  201. 27687; bugfix on 0.3.3.1-alpha.
  202. o Minor bugfixes (rust, backport from 0.3.5.2-alpha):
  203. - protover_all_supported() would attempt to allocate up to 16GB on
  204. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  205. bugfix on 0.3.3.5-rc.
  206. o Minor bugfixes (rust, directory authority, to appear in 0.3.5.4-alpha):
  207. - Fix an API mismatch in the rust implementation of
  208. protover_compute_vote(). This bug could have caused crashes on any
  209. directory authorities running Tor with Rust (which we do not yet
  210. recommend). Fixes bug 27741; bugfix on 0.3.3.6.
  211. o Minor bugfixes (rust, to appear in 0.3.5.4-alpha):
  212. - Fix a potential null dereference in protover_all_supported(). Add
  213. a test for it. Fixes bug 27804; bugfix on 0.3.3.1-alpha.
  214. - Return a string that can be safely freed by C code, not one
  215. created by the rust allocator, in protover_all_supported(). Fixes
  216. bug 27740; bugfix on 0.3.3.1-alpha.
  217. o Minor bugfixes (testing, backport from 0.3.5.1-alpha):
  218. - If a unit test running in a subprocess exits abnormally or with a
  219. nonzero status code, treat the test as having failed, even if the
  220. test reported success. Without this fix, memory leaks don't cause
  221. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  222. bugfix on 0.2.2.4-alpha.
  223. o Minor bugfixes (testing, backport from 0.3.5.3-alpha):
  224. - Make the hs_service tests use the same time source when creating
  225. the introduction point and when testing it. Now tests work better
  226. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  227. on 0.3.2.1-alpha.
  228. o Minor bugfixes (testing, to appear in 0.3.5.4-alpha):
  229. - Treat backtrace test failures as expected on BSD-derived systems
  230. (NetBSD, OpenBSD, and macOS/Darwin) until we solve bug 17808.
  231. (FreeBSD failures have been treated as expected since 18204 in
  232. 0.2.8.) Fixes bug 27948; bugfix on 0.2.5.2-alpha.
  233. Changes in version 0.3.5.3-alpha - 2018-10-17
  234. Tor 0.3.5.3-alpha fixes several bugs, mostly from previous 0.3.5.x
  235. versions. One important fix for relays addresses a problem with rate-
  236. limiting code from back in 0.3.4.x: If the fix works out, we'll be
  237. backporting it soon. This release is still an alpha, but we hope it's
  238. getting closer and closer to stability.
  239. o Major features (onion services):
  240. - Version 3 onion services can now use the per-service
  241. HiddenServiceExportCircuitID option to differentiate client
  242. circuits. It communicates with the service by using the HAProxy
  243. protocol to assign virtual IP addresses to inbound client
  244. circuits. Closes ticket 4700. Patch by Mahrud Sayrafi.
  245. o Major bugfixes (compilation):
  246. - Fix compilation on ARM (and other less-used CPUs) when compiling
  247. with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
  248. o Major bugfixes (initialization, crash):
  249. - Fix an assertion crash that would stop Tor from starting up if it
  250. tried to activate a periodic event too early. Fixes bug 27861;
  251. bugfix on 0.3.5.1-alpha.
  252. o Major bugfixes (mainloop, bootstrap):
  253. - Make sure Tor bootstraps and works properly if only the
  254. ControlPort is set. Prior to this fix, Tor would only bootstrap
  255. when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
  256. port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
  257. o Major bugfixes (relay):
  258. - When our write bandwidth limit is exhausted, stop writing on the
  259. connection. Previously, we had a typo in the code that would make
  260. us stop reading instead, leading to relay connections being stuck
  261. indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
  262. on 0.3.4.1-alpha.
  263. o Minor features (continuous integration):
  264. - Use the Travis Homebrew addon to install packages on macOS during
  265. Travis CI. The package list is the same, but the Homebrew addon
  266. does not do a `brew update` by default. Implements ticket 27738.
  267. - Report what program produced the mysterious core file that we
  268. occasionally see on Travis CI during make distcheck. Closes
  269. ticket 28024.
  270. o Minor features (geoip):
  271. - Update geoip and geoip6 to the October 9 2018 Maxmind GeoLite2
  272. Country database. Closes ticket 27991.
  273. o Minor bugfixes (code safety):
  274. - Rewrite our assertion macros so that they no longer suppress the
  275. compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
  276. on 0.0.6.
  277. o Minor bugfixes (compilation):
  278. - Compile the ed25519-donna code with a correct declaration of
  279. crypto_strongest_rand(). Previously, we built it with one type,
  280. but linked it against another in the unit tests, which caused
  281. compilation failures with LTO enabled. This could have caused
  282. other undefined behavior in the tests. Fixes bug 27728; bugfix
  283. on 0.3.5.1-alpha.
  284. o Minor bugfixes (compilation, netbsd):
  285. - Add a missing include back into procmon.c. Fixes bug 27990; bugfix
  286. on 0.3.5.1-alpha.
  287. o Minor bugfixes (continuous integration, appveyor):
  288. - Install only the necessary mingw packages during our appveyor
  289. builds. This change makes the build a little faster, and prevents
  290. a conflict with a preinstalled mingw openssl that appveyor now
  291. ships. Fixes bugs 27765 and 27943; bugfix on 0.3.4.2-alpha.
  292. o Minor bugfixes (directory permissions):
  293. - When a user requests a group-readable DataDirectory, give it to
  294. them. Previously, when the DataDirectory and the CacheDirectory
  295. were the same, the default setting (0) for
  296. CacheDirectoryGroupReadable would override the setting for
  297. DataDirectoryGroupReadable. Fixes bug 26913; bugfix
  298. on 0.3.3.1-alpha.
  299. o Minor bugfixes (memory leaks):
  300. - Fix a small memory leak when calling Tor with --dump-config. Fixes
  301. bug 27893; bugfix on 0.3.2.1-alpha.
  302. o Minor bugfixes (networking):
  303. - In retry_listeners_ports(), make sure that we're removing a member
  304. of old_conns smartlist at most once. Fixes bug 27808; bugfix
  305. on 0.3.5.1-alpha.
  306. - Refrain from attempting socket rebinding when old and new
  307. listeners are in different address families. Fixes bug 27928;
  308. bugfix on 0.3.5.1-alpha.
  309. o Minor bugfixes (onion service v3):
  310. - Stop dumping a stack trace when trying to connect to an intro
  311. point without having a descriptor for it. Fixes bug 27774; bugfix
  312. on 0.3.2.1-alpha.
  313. - Don't warn so loudly when Tor is unable to decode an onion
  314. descriptor. This can now happen as a normal use case if a client
  315. gets a descriptor with client authorization but the client is not
  316. authorized. Fixes bug 27550; bugfix on 0.3.5.1-alpha.
  317. - When selecting a v3 rendezvous point, don't only look at the
  318. protover, but also check whether the curve25519 onion key is
  319. present. This way we avoid picking a relay that supports the v3
  320. rendezvous but for which we don't have the microdescriptor. Fixes
  321. bug 27797; bugfix on 0.3.2.1-alpha.
  322. o Minor bugfixes (protover):
  323. - Reject protocol names containing bytes other than alphanumeric
  324. characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
  325. on 0.2.9.4-alpha.
  326. o Minor bugfixes (testing):
  327. - Make the hs_service tests use the same time source when creating
  328. the introduction point and when testing it. Now tests work better
  329. on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
  330. on 0.3.2.1-alpha.
  331. - In test_rebind.py, check if the Python version is in the supported
  332. range. Fixes bug 27675; bugfix on 0.3.5.1-alpha.
  333. o Code simplification and refactoring:
  334. - Divide more large Tor source files -- especially ones that span
  335. multiple areas of functionality -- into smaller parts, including
  336. onion.c and main.c. Closes ticket 26747.
  337. - Divide the "routerparse.c" module into separate modules for each
  338. group of parsed objects. Closes ticket 27924.
  339. - Move protover_rust.c to the same place protover.c was moved to.
  340. Closes ticket 27814.
  341. - Split directory.c into separate pieces for client, server, and
  342. common functionality. Closes ticket 26744.
  343. - Split the non-statistics-related parts from the rephist.c and
  344. geoip.c modules. Closes ticket 27892.
  345. - Split the router.c file into relay-only and shared components, to
  346. help with future modularization. Closes ticket 27864.
  347. o Documentation:
  348. - In the tor-resolve(1) manpage, fix the reference to socks-
  349. extensions.txt by adding a web URL. Resolves ticket 27853.
  350. - Mention that we require Python to be 2.7 or newer for some
  351. integration tests that we ship with Tor. Resolves ticket 27677.
  352. Changes in version 0.3.5.2-alpha - 2018-09-21
  353. Tor 0.3.5.2-alpha fixes several bugs in 0.3.5.1-alpha, including one
  354. that made Tor think it had run out of sockets. Anybody running a relay
  355. or an onion service on 0.3.5.1-alpha should upgrade.
  356. o Major bugfixes (relay bandwidth statistics):
  357. - When we close relayed circuits, report the data in the circuit
  358. queues as being written in our relay bandwidth stats. This
  359. mitigates guard discovery and other attacks that close circuits
  360. for the explicit purpose of noticing this discrepancy in
  361. statistics. Fixes bug 23512; bugfix on 0.0.8pre3.
  362. o Major bugfixes (socket accounting):
  363. - In our socket accounting code, count a socket as closed even when
  364. it is closed indirectly by the TLS layer. Previously, we would
  365. count these sockets as still in use, and incorrectly believe that
  366. we had run out of sockets. Fixes bug 27795; bugfix
  367. on 0.3.5.1-alpha.
  368. o Minor bugfixes (32-bit OSX and iOS, timing):
  369. - Fix an integer overflow bug in our optimized 32-bit millisecond-
  370. difference algorithm for 32-bit Apple platforms. Previously, it
  371. would overflow when calculating the difference between two times
  372. more than 47 days apart. Fixes part of bug 27139; bugfix
  373. on 0.3.4.1-alpha.
  374. - Improve the precision of our 32-bit millisecond difference
  375. algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
  376. bugfix on 0.3.4.1-alpha.
  377. - Relax the tolerance on the mainloop/update_time_jumps test when
  378. running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
  379. on 0.3.4.1-alpha.
  380. o Minor bugfixes (onion service v3):
  381. - Close all SOCKS request (for the same .onion) if the newly fetched
  382. descriptor is unusable. Before that, we would close only the first
  383. one leaving the other hanging and let to time out by themselves.
  384. Fixes bug 27410; bugfix on 0.3.2.1-alpha.
  385. o Minor bugfixes (memory leak):
  386. - Fix an unlikely memory leak when trying to read a private key from
  387. a ridiculously large file. Fixes bug 27764; bugfix on
  388. 0.3.5.1-alpha. This is CID 1439488.
  389. o Minor bugfixes (NSS):
  390. - Correctly detect failure to open a dummy TCP socket when stealing
  391. ownership of an fd from the NSS layer. Fixes bug 27782; bugfix
  392. on 0.3.5.1-alpha.
  393. o Minor bugfixes (rust):
  394. - protover_all_supported() would attempt to allocate up to 16GB on
  395. some inputs, leading to a potential memory DoS. Fixes bug 27206;
  396. bugfix on 0.3.3.5-rc.
  397. o Minor bugfixes (testing):
  398. - Revise the "conditionvar_timeout" test so that it succeeds even on
  399. heavily loaded systems where the test threads are not scheduled
  400. within 200 msec. Fixes bug 27073; bugfix on 0.2.6.3-alpha.
  401. o Code simplification and refactoring:
  402. - Divide the routerlist.c and dirserv.c modules into smaller parts.
  403. Closes ticket 27799.
  404. Changes in version 0.3.5.1-alpha - 2018-09-18
  405. Tor 0.3.5.1-alpha is the first release of the 0.3.5.x series. It adds
  406. client authorization for modern (v3) onion services, improves
  407. bootstrap reporting, begins reorganizing Tor's codebase, adds optional
  408. support for NSS in place of OpenSSL, and much more.
  409. o Major features (onion services, UI change):
  410. - For a newly created onion service, the default version is now 3.
  411. Tor still supports existing version 2 services, but the operator
  412. now needs to set "HiddenServiceVersion 2" in order to create a new
  413. version 2 service. For existing services, Tor now learns the
  414. version by reading the key file. Closes ticket 27215.
  415. o Major features (relay, UI change):
  416. - Relays no longer run as exits by default. If the "ExitRelay"
  417. option is auto (or unset), and no exit policy is specified with
  418. ExitPolicy or ReducedExitPolicy, we now treat ExitRelay as 0.
  419. Previously in this case, we allowed exit traffic and logged a
  420. warning message. Closes ticket 21530. Patch by Neel Chauhan.
  421. - Tor now validates that the ContactInfo config option is valid UTF-
  422. 8 when parsing torrc. Closes ticket 27428.
  423. o Major features (bootstrap):
  424. - Don't report directory progress until after a connection to a
  425. relay or bridge has succeeded. Previously, we'd report 80%
  426. progress based on cached directory information when we couldn't
  427. even connect to the network. Closes ticket 27169.
  428. o Major features (new code layout):
  429. - Nearly all of Tor's source code has been moved around into more
  430. logical places. The "common" directory is now divided into a set
  431. of libraries in "lib", and files in the "or" directory have been
  432. split into "core" (logic absolutely needed for onion routing),
  433. "feature" (independent modules in Tor), and "app" (to configure
  434. and invoke the rest of Tor). See doc/HACKING/CodeStructure.md for
  435. more information. Closes ticket 26481.
  436. This refactoring is not complete: although the libraries have been
  437. refactored to be acyclic, the main body of Tor is still too
  438. interconnected. We will attempt to improve this in the future.
  439. o Major features (onion services v3):
  440. - Implement onion service client authorization at the descriptor
  441. level: only authorized clients can decrypt a service's descriptor
  442. to find out how to contact it. A new torrc option was added to
  443. control this client side: ClientOnionAuthDir <path>. On the
  444. service side, if the "authorized_clients/" directory exists in the
  445. onion service directory path, client configurations are read from
  446. the files within. See the manpage for more details. Closes ticket
  447. 27547. Patch done by Suphanat Chunhapanya (haxxpop).
  448. - Improve revision counter generation in next-gen onion services.
  449. Onion services can now scale by hosting multiple instances on
  450. different hosts without synchronization between them, which was
  451. previously impossible because descriptors would get rejected by
  452. HSDirs. Addresses ticket 25552.
  453. o Major features (portability, cryptography, experimental, TLS):
  454. - Tor now has the option to compile with the NSS library instead of
  455. OpenSSL. This feature is experimental, and we expect that bugs may
  456. remain. It is mainly intended for environments where Tor's
  457. performance is not CPU-bound, and where NSS is already known to be
  458. installed. To try it out, configure Tor with the --enable-nss
  459. flag. Closes tickets 26631, 26815, and 26816.
  460. If you are experimenting with this option and using an old cached
  461. consensus, Tor may fail to start. To solve this, delete your
  462. "cached-consensus" and "cached-microdesc-consensus" files,
  463. (if present), and restart Tor.
  464. o Major bugfixes (directory authority):
  465. - Actually check that the address we get from DirAuthority
  466. configuration line is valid IPv4. Explicitly disallow DirAuthority
  467. address to be a DNS hostname. Fixes bug 26488; bugfix
  468. on 0.1.2.10-rc.
  469. o Major bugfixes (restart-in-process):
  470. - Fix a use-after-free error that could be caused by passing Tor an
  471. impossible set of options that would fail during options_act().
  472. Fixes bug 27708; bugfix on 0.3.3.1-alpha.
  473. o Minor features (admin tools):
  474. - Add a new --key-expiration option to print the expiration date of
  475. the signing cert in an ed25519_signing_cert file. Resolves
  476. issue 19506.
  477. o Minor features (build):
  478. - If you pass the "--enable-pic" option to configure, Tor will try
  479. to tell the compiler to build position-independent code suitable
  480. to link into a dynamic library. (The default remains -fPIE, for
  481. code suitable for a relocatable executable.) Closes ticket 23846.
  482. o Minor features (code correctness, testing):
  483. - Tor's build process now includes a "check-includes" make target to
  484. verify that no module of Tor relies on any headers from a higher-
  485. level module. We hope to use this feature over time to help
  486. refactor our codebase. Closes ticket 26447.
  487. o Minor features (code layout):
  488. - We have a new "lowest-level" error-handling API for use by code
  489. invoked from within the logging module. With this interface, the
  490. logging code is no longer at risk of calling into itself if a
  491. failure occurs while it is trying to log something. Closes
  492. ticket 26427.
  493. o Minor features (compilation):
  494. - Tor's configure script now supports a --with-malloc= option to
  495. select your malloc implementation. Supported options are
  496. "tcmalloc", "jemalloc", "openbsd" (deprecated), and "system" (the
  497. default). Addresses part of ticket 20424. Based on a patch from
  498. Alex Xu.
  499. o Minor features (config):
  500. - The "auto" keyword in torrc is now case-insensitive. Closes
  501. ticket 26663.
  502. o Minor features (continuous integration):
  503. - Don't do a distcheck with --disable-module-dirauth in Travis.
  504. Implements ticket 27252.
  505. - Install libcap-dev and libseccomp2-dev so these optional
  506. dependencies get tested on Travis CI. Closes ticket 26560.
  507. - Only run one online rust build in Travis, to reduce network
  508. errors. Skip offline rust builds on Travis for Linux gcc, because
  509. they're redundant. Implements ticket 27252.
  510. - Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
  511. duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
  512. Linux with default settings, because all the non-default builds
  513. use gcc on Linux. Implements ticket 27252.
  514. o Minor features (controller):
  515. - Emit CIRC_BW events as soon as we detect that we processed an
  516. invalid or otherwise dropped cell on a circuit. This allows
  517. vanguards and other controllers to react more quickly to dropped
  518. cells. Closes ticket 27678.
  519. - For purposes of CIRC_BW-based dropped cell detection, track half-
  520. closed stream ids, and allow their ENDs, SENDMEs, DATA and path
  521. bias check cells to arrive without counting it as dropped until
  522. either the END arrives, or the windows are empty. Closes
  523. ticket 25573.
  524. - Implement a 'GETINFO md/all' controller command to enable getting
  525. all known microdescriptors. Closes ticket 8323.
  526. - The GETINFO command now support an "uptime" argument, to return
  527. Tor's uptime in seconds. Closes ticket 25132.
  528. o Minor features (denial-of-service avoidance):
  529. - Make our OOM handler aware of the DNS cache so that it doesn't
  530. fill up the memory. This check is important for our DoS mitigation
  531. subsystem. Closes ticket 18642. Patch by Neel Chauhan.
  532. o Minor features (development):
  533. - Tor's makefile now supports running the "clippy" Rust style tool
  534. on our Rust code. Closes ticket 22156.
  535. o Minor features (directory authority):
  536. - There is no longer an artificial upper limit on the length of
  537. bandwidth lines. Closes ticket 26223.
  538. - When a bandwidth file is used to obtain the bandwidth measurements,
  539. include this bandwidth file headers in the votes. Closes
  540. ticket 3723.
  541. - Improved support for networks with only a single authority or a
  542. single fallback directory. Patch from Gabriel Somlo. Closes
  543. ticket 25928.
  544. o Minor features (embedding API):
  545. - The Tor controller API now supports a function to launch Tor with
  546. a preconstructed owning controller FD, so that embedding
  547. applications don't need to manage controller ports and
  548. authentication. Closes ticket 24204.
  549. - The Tor controller API now has a function that returns the name
  550. and version of the backend implementing the API. Closes
  551. ticket 26947.
  552. o Minor features (geoip):
  553. - Update geoip and geoip6 to the September 6 2018 Maxmind GeoLite2
  554. Country database. Closes ticket 27631.
  555. o Minor features (memory management):
  556. - Get Libevent to use the same memory allocator as Tor, by calling
  557. event_set_mem_functions() during initialization. Resolves
  558. ticket 8415.
  559. o Minor features (memory usage):
  560. - When not using them, store legacy TAP public onion keys in DER-
  561. encoded format, rather than as expanded public keys. This should
  562. save several megabytes on typical clients. Closes ticket 27246.
  563. o Minor features (OpenSSL):
  564. - When possible, use RFC5869 HKDF implementation from OpenSSL rather
  565. than our own. Resolves ticket 19979.
  566. o Minor features (Rust, code quality):
  567. - Improve rust code quality in the rust protover implementation by
  568. making it more idiomatic. Includes changing an internal API to
  569. take &str instead of &String. Closes ticket 26492.
  570. o Minor features (testing):
  571. - Add scripts/test/chutney-git-bisect.sh, for bisecting using
  572. chutney. Implements ticket 27211.
  573. o Minor features (tor-resolve):
  574. - The tor-resolve utility can now be used with IPv6 SOCKS proxies.
  575. Side-effect of the refactoring for ticket 26526.
  576. o Minor features (UI):
  577. - Log each included configuration file or directory as we read it,
  578. to provide more visibility about where Tor is reading from. Patch
  579. from Unto Sten; closes ticket 27186.
  580. - Lower log level of "Scheduler type KIST has been enabled" to INFO.
  581. Closes ticket 26703.
  582. o Minor bugfixes (bootstrap):
  583. - Try harder to get descriptors in non-exit test networks, by using
  584. the mid weight for the third hop when there are no exits. Fixes
  585. bug 27237; bugfix on 0.2.6.2-alpha.
  586. o Minor bugfixes (C correctness):
  587. - Avoid casting smartlist index to int implicitly, as it may trigger
  588. a warning (-Wshorten-64-to-32). Fixes bug 26282; bugfix on
  589. 0.2.3.13-alpha, 0.2.7.1-alpha and 0.2.1.1-alpha.
  590. - Use time_t for all values in
  591. predicted_ports_prediction_time_remaining(). Rework the code that
  592. computes difference between durations/timestamps. Fixes bug 27165;
  593. bugfix on 0.3.1.1-alpha.
  594. o Minor bugfixes (client, memory usage):
  595. - When not running as a directory cache, there is no need to store
  596. the text of the current consensus networkstatus in RAM.
  597. Previously, however, clients would store it anyway, at a cost of
  598. over 5 MB. Now, they do not. Fixes bug 27247; bugfix
  599. on 0.3.0.1-alpha.
  600. o Minor bugfixes (client, reachableaddresses):
  601. - Instead of adding a "reject *:*" line to ReachableAddresses when
  602. loading the configuration, add one to the policy after parsing it
  603. in parse_reachable_addresses(). This prevents extra "reject *.*"
  604. lines from accumulating on reloads. Fixes bug 20874; bugfix on
  605. 0.1.1.5-alpha. Patch by Neel Chauhan.
  606. o Minor bugfixes (code quality):
  607. - Rename sandbox_getaddrinfo() and other functions to no longer
  608. misleadingly suggest that they are sandbox-only. Fixes bug 26525;
  609. bugfix on 0.2.7.1-alpha.
  610. o Minor bugfixes (configuration, Onion Services):
  611. - In rend_service_parse_port_config(), disallow any input to remain
  612. after address-port pair was parsed. This will catch address and
  613. port being whitespace-separated by mistake of the user. Fixes bug
  614. 27044; bugfix on 0.2.9.10.
  615. o Minor bugfixes (continuous integration):
  616. - Stop reinstalling identical packages in our Windows CI. Fixes bug
  617. 27464; bugfix on 0.3.4.1-alpha.
  618. o Minor bugfixes (controller):
  619. - Consider all routerinfo errors other than "not a server" to be
  620. transient for the purpose of "GETINFO exit-policy/*" controller
  621. request. Print stacktrace in the unlikely case of failing to
  622. recompute routerinfo digest. Fixes bug 27034; bugfix
  623. on 0.3.4.1-alpha.
  624. o Minor bugfixes (directory connection shutdown):
  625. - Avoid a double-close when shutting down a stalled directory
  626. connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
  627. o Minor bugfixes (HTTP tunnel):
  628. - Fix a bug warning when closing an HTTP tunnel connection due to an
  629. HTTP request we couldn't handle. Fixes bug 26470; bugfix
  630. on 0.3.2.1-alpha.
  631. o Minor bugfixes (ipv6):
  632. - In addrs_in_same_network_family(), we choose the subnet size based
  633. on the IP version (IPv4 or IPv6). Previously, we chose a fixed
  634. subnet size of /16 for both IPv4 and IPv6 addresses. Fixes bug
  635. 15518; bugfix on 0.2.3.1-alpha. Patch by Neel Chauhan.
  636. o Minor bugfixes (logging):
  637. - As a precaution, do an early return from log_addr_has_changed() if
  638. Tor is running as client. Also, log a stack trace for debugging as
  639. this function should only be called when Tor runs as server. Fixes
  640. bug 26892; bugfix on 0.1.1.9-alpha.
  641. - Refrain from mentioning bug 21018 in the logs, as it is already
  642. fixed. Fixes bug 25477; bugfix on 0.2.9.8.
  643. o Minor bugfixes (logging, documentation):
  644. - When SafeLogging is enabled, scrub IP address in
  645. channel_tls_process_netinfo_cell(). Also, add a note to manpage
  646. that scrubbing is not guaranteed on loglevels below Notice. Fixes
  647. bug 26882; bugfix on 0.2.4.10-alpha.
  648. o Minor bugfixes (netflow padding):
  649. - Ensure circuitmux queues are empty before scheduling or sending
  650. padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
  651. o Minor bugfixes (onion service v2):
  652. - Log at level "info", not "warning", in the case that we do not
  653. have a consensus when a .onion request comes in. This can happen
  654. normally while bootstrapping. Fixes bug 27040; bugfix
  655. on 0.2.8.2-alpha.
  656. o Minor bugfixes (onion service v3):
  657. - When the onion service directory can't be created or has the wrong
  658. permissions, do not log a stack trace. Fixes bug 27335; bugfix
  659. on 0.3.2.1-alpha.
  660. o Minor bugfixes (OS compatibility):
  661. - Properly handle configuration changes that move a listener to/from
  662. wildcard IP address. If the first attempt to bind a socket fails,
  663. close the old listener and try binding the socket again. Fixes bug
  664. 17873; bugfix on 0.0.8pre-1.
  665. o Minor bugfixes (performance)::
  666. - Rework node_is_a_configured_bridge() to no longer call
  667. node_get_all_orports(), which was performing too many memory
  668. allocations. Fixes bug 27224; bugfix on 0.2.3.9.
  669. o Minor bugfixes (relay statistics):
  670. - Update relay descriptor on bandwidth changes only when the uptime
  671. is smaller than 24h, in order to reduce the efficiency of guard
  672. discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
  673. o Minor bugfixes (relays):
  674. - Consider the fact that we'll be making direct connections to our
  675. entry and guard nodes when computing the fraction of nodes that
  676. have their descriptors. Also, if we are using bridges and there is
  677. at least one bridge with a full descriptor, treat the fraction of
  678. guards available as 100%. Fixes bug 25886; bugfix on 0.2.4.10-alpha.
  679. Patch by Neel Chauhan.
  680. - Update the message logged on relays when DirCache is disabled.
  681. Since 0.3.3.5-rc, authorities require DirCache (V2Dir) for the
  682. Guard flag. Fixes bug 24312; bugfix on 0.3.3.5-rc.
  683. o Minor bugfixes (rust, protover):
  684. - Compute protover votes correctly in the rust version of the
  685. protover code. Previously, the protover rewrite in 24031 allowed
  686. repeated votes from the same voter for the same protocol version
  687. to be counted multiple times in protover_compute_vote(). Fixes bug
  688. 27649; bugfix on 0.3.3.5-rc.
  689. - Reject protover names that contain invalid characters. Fixes bug
  690. 27687; bugfix on 0.3.3.1-alpha.
  691. o Minor bugfixes (testing):
  692. - Fix two unit tests to work when HOME environment variable is not
  693. set. Fixes bug 27096; bugfix on 0.2.8.1-alpha.
  694. - If a unit test running in a subprocess exits abnormally or with a
  695. nonzero status code, treat the test as having failed, even if the
  696. test reported success. Without this fix, memory leaks don't cause
  697. the tests to fail, even with LeakSanitizer. Fixes bug 27658;
  698. bugfix on 0.2.2.4-alpha.
  699. - When logging a version mismatch in our openssl_version tests,
  700. report the actual offending version strings. Fixes bug 26152;
  701. bugfix on 0.2.9.1-alpha.
  702. - Fix forking tests on Windows when there is a space somewhere in
  703. the path. Fixes bug 26437; bugfix on 0.2.2.4-alpha.
  704. o Code simplification and refactoring:
  705. - 'updateFallbackDirs.py' now ignores the blacklist file, as it's not
  706. longer needed. Closes ticket 26502.
  707. - Include paths to header files within Tor are now qualified by
  708. directory within the top-level src directory.
  709. - Many structures have been removed from the centralized "or.h"
  710. header, and moved into their own headers. This will allow us to
  711. reduce the number of places in the code that rely on each
  712. structure's contents and layout. Closes ticket 26383.
  713. - Remove ATTR_NONNULL macro from codebase. Resolves ticket 26527.
  714. - Remove GetAdaptersAddresses_fn_t. The code that used it was
  715. removed as part of the 26481 refactor. Closes ticket 27467.
  716. - Rework Tor SOCKS server code to use Trunnel and benefit from
  717. autogenerated functions for parsing and generating SOCKS wire
  718. format. New implementation is cleaner, more maintainable and
  719. should be less prone to heartbleed-style vulnerabilities.
  720. Implements a significant fraction of ticket 3569.
  721. - Split sampled_guards_update_from_consensus() and
  722. select_entry_guard_for_circuit() into subfunctions. In
  723. entry_guards_update_primary() unite three smartlist enumerations
  724. into one and move smartlist comparison code out of the function.
  725. Closes ticket 21349.
  726. - Tor now assumes that you have standards-conformant stdint.h and
  727. inttypes.h headers when compiling. Closes ticket 26626.
  728. - Unify our bloom filter logic. Previously we had two copies of this
  729. code: one for routerlist filtering, and one for address set
  730. calculations. Closes ticket 26510.
  731. - Use the simpler strcmpstart() helper in
  732. rend_parse_v2_service_descriptor instead of strncmp(). Closes
  733. ticket 27630.
  734. - Utility functions that can perform a DNS lookup are now wholly
  735. separated from those that can't, in separate headers and C
  736. modules. Closes ticket 26526.
  737. o Documentation:
  738. - Copy paragraph and URL to Tor's code of conduct document from
  739. CONTRIBUTING to new CODE_OF_CONDUCT file. Resolves ticket 26638.
  740. - Remove old instructions from INSTALL document. Closes ticket 26588.
  741. - Warn users that they should not include MyFamily line(s) in their
  742. torrc when running Tor bridge. Closes ticket 26908.
  743. o Removed features:
  744. - Tor no longer supports building with the dmalloc library. For
  745. debugging memory issues, we suggest using gperftools or msan
  746. instead. Closes ticket 26426.
  747. - Tor no longer attempts to run on Windows environments without the
  748. GetAdaptersAddresses() function. This function has existed since
  749. Windows XP, which is itself already older than we support.
  750. - Remove Tor2web functionality for version 2 onion services. The
  751. Tor2webMode and Tor2webRendezvousPoints options are now obsolete.
  752. (This feature was never shipped in vanilla Tor and it was only
  753. possible to use this feature by building the support at compile
  754. time. Tor2webMode is not implemented for version 3 onion services.)
  755. Closes ticket 26367.
  756. Changes in version 0.2.9.17 - 2018-09-10
  757. Tor 0.2.9.17 backports numerous bugfixes from later versions of Tor.
  758. o Minor features (compatibility, backport from 0.3.4.8):
  759. - Tell OpenSSL to maintain backward compatibility with previous
  760. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  761. ciphers are disabled by default. Closes ticket 27344.
  762. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  763. - Enable macOS builds in our Travis CI configuration. Closes
  764. ticket 24629.
  765. - Install libcap-dev and libseccomp2-dev so these optional
  766. dependencies get tested on Travis CI. Closes ticket 26560.
  767. - Run asciidoc during Travis CI. Implements ticket 27087.
  768. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  769. o Minor features (geoip):
  770. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  771. Country database. Closes ticket 27089.
  772. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  773. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  774. tell the compiler not to include the system malloc implementation.
  775. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  776. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  777. - Silence a spurious compiler warning on the GetAdaptersAddresses
  778. function pointer cast. This issue is already fixed by 26481 in
  779. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  780. bugfix on 0.2.3.11-alpha.
  781. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  782. supported, and always fails. Some compilers warn about the
  783. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  784. on 0.2.2.23-alpha.
  785. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  786. - Don't link or search for pthreads when building for Windows, even
  787. if we are using build environment (like mingw) that provides a
  788. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  789. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  790. - Skip a pair of unreliable key generation tests on Windows, until
  791. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  792. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  793. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  794. - Pass the module flags to distcheck configure, and log the flags
  795. before running configure. (Backported to 0.2.9 and later as a
  796. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  797. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  798. - When a Travis build fails, and showing a log fails, keep trying to
  799. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  800. - When we use echo in Travis, don't pass a --flag as the first
  801. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  802. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  803. - When voting for recommended versions, make sure that all of the
  804. versions are well-formed and parsable. Fixes bug 26485; bugfix
  805. on 0.1.1.6-alpha.
  806. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  807. - Fix a bug in out sandboxing rules for the openat() syscall.
  808. Previously, no openat() call would be permitted, which would break
  809. filesystem operations on recent glibc versions. Fixes bug 25440;
  810. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  811. o Minor bugfixes (onion services, backport from 0.3.4.8):
  812. - Silence a spurious compiler warning in
  813. rend_client_send_introduction(). Fixes bug 27463; bugfix
  814. on 0.1.1.2-alpha.
  815. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  816. - Log a protocol warning when single onion services or Tor2web clients
  817. fail to authenticate direct connections to relays.
  818. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  819. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  820. - Disable core dumps in test_bt.sh, to avoid failures in "make
  821. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  822. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  823. - Before running make test-network-all, delete old logs and test
  824. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  825. on 0.2.7.3-rc.
  826. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  827. - Our "tortls/cert_matches_key" unit test no longer relies on
  828. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  829. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  830. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  831. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  832. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  833. 27185; bugfix on 0.2.2.2-alpha.
  834. Changes in version 0.3.2.12 - 2018-09-10
  835. Tor 0.3.2.12 backport numerous fixes from later versions of Tor.
  836. o Minor features (compatibility, backport from 0.3.4.8):
  837. - Tell OpenSSL to maintain backward compatibility with previous
  838. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  839. ciphers are disabled by default. Closes ticket 27344.
  840. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  841. - Enable macOS builds in our Travis CI configuration. Closes
  842. ticket 24629.
  843. - Install libcap-dev and libseccomp2-dev so these optional
  844. dependencies get tested on Travis CI. Closes ticket 26560.
  845. - Run asciidoc during Travis CI. Implements ticket 27087.
  846. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  847. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  848. - Use cargo cache in our Travis CI configuration. Closes
  849. ticket 26952.
  850. o Minor features (controller, backport from 0.3.4.6-rc):
  851. - The control port now exposes the list of HTTPTunnelPorts and
  852. ExtOrPorts via GETINFO net/listeners/httptunnel and
  853. net/listeners/extor respectively. Closes ticket 26647.
  854. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  855. - Authorities no longer vote to make the subprotocol version
  856. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  857. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  858. o Minor features (geoip):
  859. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  860. Country database. Closes ticket 27089.
  861. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  862. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  863. tell the compiler not to include the system malloc implementation.
  864. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  865. - Don't try to use a pragma to temporarily disable the
  866. -Wunused-const-variable warning if the compiler doesn't support
  867. it. Fixes bug 26785; bugfix on 0.3.2.11.
  868. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  869. - Silence a spurious compiler warning on the GetAdaptersAddresses
  870. function pointer cast. This issue is already fixed by 26481 in
  871. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  872. bugfix on 0.2.3.11-alpha.
  873. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  874. supported, and always fails. Some compilers warn about the
  875. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  876. on 0.2.2.23-alpha.
  877. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  878. - Don't link or search for pthreads when building for Windows, even
  879. if we are using build environment (like mingw) that provides a
  880. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  881. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  882. - Skip a pair of unreliable key generation tests on Windows, until
  883. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  884. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  885. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  886. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  887. - Pass the module flags to distcheck configure, and log the flags
  888. before running configure. (Backported to 0.2.9 and later as a
  889. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  890. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  891. - When a Travis build fails, and showing a log fails, keep trying to
  892. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  893. - When we use echo in Travis, don't pass a --flag as the first
  894. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  895. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  896. - When voting for recommended versions, make sure that all of the
  897. versions are well-formed and parsable. Fixes bug 26485; bugfix
  898. on 0.1.1.6-alpha.
  899. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  900. - Fix a bug in out sandboxing rules for the openat() syscall.
  901. Previously, no openat() call would be permitted, which would break
  902. filesystem operations on recent glibc versions. Fixes bug 25440;
  903. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  904. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  905. - Improve the log message when connection initiators fail to
  906. authenticate direct connections to relays. Fixes bug 26927; bugfix
  907. on 0.3.0.1-alpha.
  908. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  909. - Fix bug that causes services to not ever rotate their descriptors
  910. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  911. on 0.3.2.1-alpha.
  912. o Minor bugfixes (onion services, backport from 0.3.4.8):
  913. - Silence a spurious compiler warning in
  914. rend_client_send_introduction(). Fixes bug 27463; bugfix
  915. on 0.1.1.2-alpha.
  916. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  917. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  918. on 0.3.1.5-alpha.
  919. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  920. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  921. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  922. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  923. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  924. - Log a protocol warning when single onion services or Tor2web clients
  925. fail to authenticate direct connections to relays.
  926. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  927. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  928. - Disable core dumps in test_bt.sh, to avoid failures in "make
  929. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  930. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  931. - When running make test-network-all, use the mixed+hs-v2 network.
  932. (A previous fix to chutney removed v3 onion services from the
  933. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  934. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  935. - Before running make test-network-all, delete old logs and test
  936. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  937. on 0.2.7.3-rc.
  938. o Minor bugfixes (testing, openssl compatibility):
  939. - Our "tortls/cert_matches_key" unit test no longer relies on OpenSSL
  940. internals. Previously, it relied on unsupported OpenSSL behavior in
  941. a way that caused it to crash with OpenSSL 1.0.2p. Fixes bug 27226;
  942. bugfix on 0.2.5.1-alpha.
  943. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  944. - Our "tortls/cert_matches_key" unit test no longer relies on
  945. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  946. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  947. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  948. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  949. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  950. 27185; bugfix on 0.2.2.2-alpha.
  951. Changes in version 0.3.3.10 - 2018-09-10
  952. Tor 0.3.3.10 backports numerous fixes from later versions of Tor.
  953. o Minor features (bug workaround, backport from 0.3.4.7-rc):
  954. - Compile correctly on systems that provide the C11 stdatomic.h
  955. header, but where C11 atomic functions don't actually compile.
  956. Closes ticket 26779; workaround for Debian issue 903709.
  957. o Minor features (compatibility, backport from 0.3.4.8):
  958. - Tell OpenSSL to maintain backward compatibility with previous
  959. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  960. ciphers are disabled by default. Closes ticket 27344.
  961. o Minor features (continuous integration, backport from 0.3.4.7-rc):
  962. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  963. - Enable macOS builds in our Travis CI configuration. Closes
  964. ticket 24629.
  965. - Install libcap-dev and libseccomp2-dev so these optional
  966. dependencies get tested on Travis CI. Closes ticket 26560.
  967. - Run asciidoc during Travis CI. Implements ticket 27087.
  968. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  969. o Minor features (continuous integration, rust, backport from 0.3.4.7-rc):
  970. - Use cargo cache in our Travis CI configuration. Closes
  971. ticket 26952.
  972. o Minor features (controller, backport from 0.3.4.6-rc):
  973. - The control port now exposes the list of HTTPTunnelPorts and
  974. ExtOrPorts via GETINFO net/listeners/httptunnel and
  975. net/listeners/extor respectively. Closes ticket 26647.
  976. o Minor features (directory authorities, backport from 0.3.4.7-rc):
  977. - Authorities no longer vote to make the subprotocol version
  978. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  979. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  980. o Minor features (geoip):
  981. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  982. Country database. Closes ticket 27089.
  983. o Minor bugfixes (compilation, backport from 0.3.4.6-rc):
  984. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  985. tell the compiler not to include the system malloc implementation.
  986. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  987. - Don't try to use a pragma to temporarily disable the
  988. -Wunused-const-variable warning if the compiler doesn't support
  989. it. Fixes bug 26785; bugfix on 0.3.2.11.
  990. o Minor bugfixes (compilation, backport from 0.3.4.7-rc):
  991. - Silence a spurious compiler warning on the GetAdaptersAddresses
  992. function pointer cast. This issue is already fixed by 26481 in
  993. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  994. bugfix on 0.2.3.11-alpha.
  995. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  996. supported, and always fails. Some compilers warn about the
  997. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  998. on 0.2.2.23-alpha.
  999. o Minor bugfixes (compilation, windows, backport from 0.3.4.7-rc):
  1000. - Don't link or search for pthreads when building for Windows, even
  1001. if we are using build environment (like mingw) that provides a
  1002. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  1003. o Minor bugfixes (continuous integration, backport from 0.3.4.6-rc):
  1004. - Skip a pair of unreliable key generation tests on Windows, until
  1005. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  1006. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  1007. o Minor bugfixes (continuous integration, backport from 0.3.4.7-rc):
  1008. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  1009. - Pass the module flags to distcheck configure, and log the flags
  1010. before running configure. (Backported to 0.2.9 and later as a
  1011. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  1012. o Minor bugfixes (continuous integration, backport from 0.3.4.8):
  1013. - When a Travis build fails, and showing a log fails, keep trying to
  1014. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  1015. - When we use echo in Travis, don't pass a --flag as the first
  1016. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  1017. o Minor bugfixes (directory authority, backport from 0.3.4.6-rc):
  1018. - When voting for recommended versions, make sure that all of the
  1019. versions are well-formed and parsable. Fixes bug 26485; bugfix
  1020. on 0.1.1.6-alpha.
  1021. o Minor bugfixes (in-process restart, backport from 0.3.4.7-rc):
  1022. - Always call tor_free_all() when leaving tor_run_main(). When we
  1023. did not, restarting tor in-process would cause an assertion
  1024. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  1025. o Minor bugfixes (linux seccomp2 sandbox, backport from 0.3.4.7-rc):
  1026. - Fix a bug in our sandboxing rules for the openat() syscall.
  1027. Previously, no openat() call would be permitted, which would break
  1028. filesystem operations on recent glibc versions. Fixes bug 25440;
  1029. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  1030. o Minor bugfixes (logging, backport from 0.3.4.6-rc):
  1031. - Improve the log message when connection initiators fail to
  1032. authenticate direct connections to relays. Fixes bug 26927; bugfix
  1033. on 0.3.0.1-alpha.
  1034. o Minor bugfixes (onion services, backport from 0.3.4.7-rc):
  1035. - Fix bug that causes services to not ever rotate their descriptors
  1036. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  1037. on 0.3.2.1-alpha.
  1038. o Minor bugfixes (onion services, backport from 0.3.4.8):
  1039. - Silence a spurious compiler warning in
  1040. rend_client_send_introduction(). Fixes bug 27463; bugfix
  1041. on 0.1.1.2-alpha.
  1042. o Minor bugfixes (portability, backport from 0.3.4.6-rc):
  1043. - Work around two different bugs in the OS X 10.10 and later SDKs
  1044. that would prevent us from successfully targeting earlier versions
  1045. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  1046. o Minor bugfixes (portability, backport from 0.3.4.7-rc):
  1047. - Fix compilation of the unit tests on GNU/Hurd, which does not
  1048. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  1049. from "paulusASol".
  1050. o Minor bugfixes (rust, backport from 0.3.4.7-rc):
  1051. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  1052. on 0.3.1.5-alpha.
  1053. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  1054. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  1055. - Protover parsing was accepting the presence of whitespace in
  1056. version strings, which the C implementation would choke on, e.g.
  1057. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  1058. - Protover parsing was ignoring a 2nd hyphen and everything after
  1059. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  1060. on 0.3.3.1-alpha.
  1061. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  1062. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  1063. - cd to ${abs_top_builddir}/src/rust before running cargo in
  1064. src/test/test_rust.sh. This makes the working directory consistent
  1065. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  1066. o Minor bugfixes (single onion services, Tor2web, backport from 0.3.4.6-rc):
  1067. - Log a protocol warning when single onion services or Tor2web clients
  1068. fail to authenticate direct connections to relays.
  1069. Fixes bug 26924; bugfix on 0.2.9.1-alpha.
  1070. o Minor bugfixes (testing, backport from 0.3.4.6-rc):
  1071. - Disable core dumps in test_bt.sh, to avoid failures in "make
  1072. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  1073. o Minor bugfixes (testing, chutney, backport from 0.3.4.8):
  1074. - When running make test-network-all, use the mixed+hs-v2 network.
  1075. (A previous fix to chutney removed v3 onion services from the
  1076. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  1077. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  1078. - Before running make test-network-all, delete old logs and test
  1079. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  1080. on 0.2.7.3-rc.
  1081. o Minor bugfixes (testing, openssl compatibility, backport from 0.3.4.7-rc):
  1082. - Our "tortls/cert_matches_key" unit test no longer relies on
  1083. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  1084. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  1085. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  1086. o Minor bugfixes (v3 onion services, backport from 0.3.4.6-rc):
  1087. - Stop sending ed25519 link specifiers in v3 onion service introduce
  1088. cells and descriptors, when the rendezvous or introduction point
  1089. doesn't support ed25519 link authentication. Fixes bug 26627;
  1090. bugfix on 0.3.2.4-alpha.
  1091. o Minor bugfixes (Windows, compilation, backport from 0.3.4.7-rc):
  1092. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  1093. 27185; bugfix on 0.2.2.2-alpha.
  1094. Changes in version 0.3.4.8 - 2018-09-10
  1095. Tor 0.3.4.8 is the first stable release in its series; it includes
  1096. compilation and portability fixes.
  1097. The Tor 0.3.4 series includes improvements for running Tor in
  1098. low-power and embedded environments, which should help performance in
  1099. general. We've begun work on better modularity, and included preliminary
  1100. changes on the directory authority side to accommodate a new bandwidth
  1101. measurement system. We've also integrated more continuous-integration
  1102. systems into our development process, and made corresponding changes to
  1103. Tor's testing infrastructure. Finally, we've continued to refine
  1104. our anti-denial-of-service code.
  1105. Below are the changes since 0.3.4.7-rc. For a complete list of changes
  1106. since 0.3.3.9, see the ReleaseNotes file.
  1107. o Minor features (compatibility):
  1108. - Tell OpenSSL to maintain backward compatibility with previous
  1109. RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
  1110. ciphers are disabled by default. Closes ticket 27344.
  1111. o Minor features (continuous integration):
  1112. - Log the compiler path and version during Appveyor builds.
  1113. Implements ticket 27449.
  1114. - Show config.log and test-suite.log after failed Appveyor builds.
  1115. Also upload the zipped full logs as a build artifact. Implements
  1116. ticket 27430.
  1117. o Minor bugfixes (compilation):
  1118. - Silence a spurious compiler warning on the GetAdaptersAddresses
  1119. function pointer cast. This issue is already fixed by 26481 in
  1120. 0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
  1121. bugfix on 0.2.3.11-alpha.
  1122. - Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
  1123. supported, and always fails. Some compilers warn about the
  1124. function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
  1125. on 0.2.2.23-alpha.
  1126. o Minor bugfixes (continuous integration):
  1127. - Disable gcc hardening in Appveyor Windows 64-bit builds. As of
  1128. August 29 2018, Appveyor images come with gcc 8.2.0 by default.
  1129. Executables compiled for 64-bit Windows with this version of gcc
  1130. crash when Tor's --enable-gcc-hardening flag is set. Fixes bug
  1131. 27460; bugfix on 0.3.4.1-alpha.
  1132. - When a Travis build fails, and showing a log fails, keep trying to
  1133. show the other logs. Fixes bug 27453; bugfix on 0.3.4.7-rc.
  1134. - When we use echo in Travis, don't pass a --flag as the first
  1135. argument. Fixes bug 27418; bugfix on 0.3.4.7-rc.
  1136. o Minor bugfixes (onion services):
  1137. - Silence a spurious compiler warning in
  1138. rend_client_send_introduction(). Fixes bug 27463; bugfix
  1139. on 0.1.1.2-alpha.
  1140. o Minor bugfixes (testing, chutney):
  1141. - When running make test-network-all, use the mixed+hs-v2 network.
  1142. (A previous fix to chutney removed v3 onion services from the
  1143. mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
  1144. confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
  1145. - Before running make test-network-all, delete old logs and test
  1146. result files, to avoid spurious failures. Fixes bug 27295; bugfix
  1147. on 0.2.7.3-rc.
  1148. Changes in version 0.3.4.7-rc - 2018-08-24
  1149. Tor 0.3.4.7-rc fixes several small compilation, portability, and
  1150. correctness issues in previous versions of Tor. This version is a
  1151. release candidate: if no serious bugs are found, we expect that the
  1152. stable 0.3.4 release will be (almost) the same as this release.
  1153. o Minor features (bug workaround):
  1154. - Compile correctly on systems that provide the C11 stdatomic.h
  1155. header, but where C11 atomic functions don't actually compile.
  1156. Closes ticket 26779; workaround for Debian issue 903709.
  1157. o Minor features (continuous integration):
  1158. - Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
  1159. - Enable macOS builds in our Travis CI configuration. Closes
  1160. ticket 24629.
  1161. - Install libcap-dev and libseccomp2-dev so these optional
  1162. dependencies get tested on Travis CI. Closes ticket 26560.
  1163. - Only post Appveyor IRC notifications when the build fails.
  1164. Implements ticket 27275.
  1165. - Run asciidoc during Travis CI. Implements ticket 27087.
  1166. - Use ccache in our Travis CI configuration. Closes ticket 26952.
  1167. o Minor features (continuous integration, rust):
  1168. - Use cargo cache in our Travis CI configuration. Closes
  1169. ticket 26952.
  1170. o Minor features (directory authorities):
  1171. - Authorities no longer vote to make the subprotocol version
  1172. "LinkAuth=1" a requirement: it is unsupportable with NSS, and
  1173. hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
  1174. o Minor features (geoip):
  1175. - Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
  1176. Country database. Closes ticket 27089.
  1177. o Minor bugfixes (compilation, windows):
  1178. - Don't link or search for pthreads when building for Windows, even
  1179. if we are using build environment (like mingw) that provides a
  1180. pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
  1181. o Minor bugfixes (continuous integration):
  1182. - Improve Appveyor CI IRC logging. Generate correct branches and
  1183. URLs for pull requests and tags. Use unambiguous short commits.
  1184. Fixes bug 26979; bugfix on master.
  1185. - Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
  1186. - Pass the module flags to distcheck configure, and log the flags
  1187. before running configure. (Backported to 0.2.9 and later as a
  1188. precaution.) Fixes bug 27088; bugfix on 0.3.4.1-alpha.
  1189. o Minor bugfixes (in-process restart):
  1190. - Always call tor_free_all() when leaving tor_run_main(). When we
  1191. did not, restarting tor in-process would cause an assertion
  1192. failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
  1193. o Minor bugfixes (linux seccomp2 sandbox):
  1194. - Fix a bug in out sandboxing rules for the openat() syscall.
  1195. Previously, no openat() call would be permitted, which would break
  1196. filesystem operations on recent glibc versions. Fixes bug 25440;
  1197. bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
  1198. o Minor bugfixes (onion services):
  1199. - Fix bug that causes services to not ever rotate their descriptors
  1200. if they were getting SIGHUPed often. Fixes bug 26932; bugfix
  1201. on 0.3.2.1-alpha.
  1202. o Minor bugfixes (portability):
  1203. - Fix compilation of the unit tests on GNU/Hurd, which does not
  1204. define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
  1205. from "paulusASol".
  1206. o Minor bugfixes (rust):
  1207. - Backport test_rust.sh from master. Fixes bug 26497; bugfix
  1208. on 0.3.1.5-alpha.
  1209. - Consistently use ../../.. as a fallback for $abs_top_srcdir in
  1210. test_rust.sh. Fixes bug 27093; bugfix on 0.3.4.3-alpha.
  1211. - Protover parsing was accepting the presence of whitespace in
  1212. version strings, which the C implementation would choke on, e.g.
  1213. "Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
  1214. - Protover parsing was ignoring a 2nd hyphen and everything after
  1215. it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
  1216. on 0.3.3.1-alpha.
  1217. - Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
  1218. $HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
  1219. - cd to ${abs_top_builddir}/src/rust before running cargo in
  1220. src/test/test_rust.sh. This makes the working directory consistent
  1221. between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
  1222. o Minor bugfixes (testing, bootstrap):
  1223. - When calculating bootstrap progress, check exit policies and the
  1224. exit flag. Previously, Tor would only check the exit flag, which
  1225. caused race conditions in small and fast networks like chutney.
  1226. Fixes bug 27236; bugfix on 0.2.6.3-alpha.
  1227. o Minor bugfixes (testing, openssl compatibility):
  1228. - Our "tortls/cert_matches_key" unit test no longer relies on
  1229. OpenSSL internals. Previously, it relied on unsupported OpenSSL
  1230. behavior in a way that caused it to crash with OpenSSL 1.0.2p.
  1231. Fixes bug 27226; bugfix on 0.2.5.1-alpha.
  1232. o Minor bugfixes (Windows, compilation):
  1233. - Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
  1234. 27185; bugfix on 0.2.2.2-alpha.
  1235. Changes in version 0.3.4.6-rc - 2018-08-06
  1236. Tor 0.3.4.6-rc fixes several small compilation, portability, and
  1237. correctness issues in previous versions of Tor. This version is a
  1238. release candidate: if no serious bugs are found, we expect that the
  1239. stable 0.3.4 release will be (almost) the same as this release.
  1240. o Major bugfixes (event scheduler):
  1241. - When we enable a periodic event, schedule it in the event loop
  1242. rather than running it immediately. Previously, we would re-run
  1243. periodic events immediately in the middle of (for example)
  1244. changing our options, with unpredictable effects. Fixes bug 27003;
  1245. bugfix on 0.3.4.1-alpha.
  1246. o Minor features (compilation):
  1247. - When building Tor, prefer to use Python 3 over Python 2, and more
  1248. recent (contemplated) versions over older ones. Closes
  1249. ticket 26372.
  1250. - When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
  1251. tell the compiler not to include the system malloc implementation.
  1252. Fixes bug 20424; bugfix on 0.2.0.20-rc.
  1253. - Don't try to use a pragma to temporarily disable the
  1254. -Wunused-const-variable warning if the compiler doesn't support
  1255. it. Fixes bug 26785; bugfix on 0.3.2.11.
  1256. o Minor bugfixes (continuous integration):
  1257. - Skip a pair of unreliable key generation tests on Windows, until
  1258. the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
  1259. bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
  1260. o Minor features (controller):
  1261. - The control port now exposes the list of HTTPTunnelPorts and
  1262. ExtOrPorts via GETINFO net/listeners/httptunnel and
  1263. net/listeners/extor respectively. Closes ticket 26647.
  1264. o Minor bugfixes (directory authority):
  1265. - When voting for recommended versions, make sure that all of the
  1266. versions are well-formed and parsable. Fixes bug 26485; bugfix
  1267. on 0.1.1.6-alpha.
  1268. o Minor features (geoip):
  1269. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  1270. Country database. Closes ticket 26674.
  1271. o Minor features (Rust, portability):
  1272. - Rust cross-compilation is now supported. Closes ticket 25895.
  1273. o Minor bugfixes (compilation):
  1274. - Update build system so that tor builds again with --disable-unittests
  1275. after recent refactoring. Fixes bug 26789; bugfix on 0.3.4.3-alpha.
  1276. - Fix a compilation warning on some versions of GCC when building
  1277. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1278. that the second call will succeed if the first one did. Fixes bug
  1279. 26269; bugfix on 0.2.8.2-alpha.
  1280. o Minor bugfixes (controller):
  1281. - Report the port correctly when a port is configured to bind to
  1282. "auto". Fixes bug 26568; bugfix on 0.3.4.1-alpha.
  1283. - Parse the "HSADDRESS=" parameter in HSPOST commands properly.
  1284. Previously, it was misparsed and ignored. Fixes bug 26523; bugfix
  1285. on 0.3.3.1-alpha. Patch by "akwizgran".
  1286. o Minor bugfixes (correctness, flow control):
  1287. - Upon receiving a stream-level SENDME cell, verify that our window
  1288. has not grown too large. Fixes bug 26214; bugfix on svn
  1289. r54 (pre-0.0.1).
  1290. o Minor bugfixes (memory, correctness):
  1291. - Fix a number of small memory leaks identified by coverity. Fixes
  1292. bug 26467; bugfix on numerous Tor versions.
  1293. o Minor bugfixes (logging):
  1294. - Improve the log message when connection initiators fail to
  1295. authenticate direct connections to relays. Fixes bug 26927; bugfix
  1296. on 0.3.0.1-alpha.
  1297. o Minor bugfixes (portability):
  1298. - Avoid a compilation error in test_bwmgt.c on Solaris 10. Fixes bug
  1299. 26994; bugfix on 0.3.4.1-alpha.
  1300. - Work around two different bugs in the OS X 10.10 and later SDKs
  1301. that would prevent us from successfully targeting earlier versions
  1302. of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
  1303. o Minor bugfixes (single onion services, Tor2web):
  1304. - Log a protocol warning when single onion services or Tor2web
  1305. clients fail to authenticate direct connections to relays. Fixes
  1306. bug 26924; bugfix on 0.2.9.1-alpha.
  1307. o Minor bugfixes (testing):
  1308. - Disable core dumps in test_bt.sh, to avoid failures in "make
  1309. distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
  1310. o Minor bugfixes (testing, compatibility):
  1311. - When running the ntor_ref.py and hs_ntor_ref.py tests, make sure
  1312. only to pass strings (rather than "bytes" objects) to the Python
  1313. subprocess module. Python 3 on Windows seems to require this.
  1314. Fixes bug 26535; bugfix on 0.2.5.5-alpha (for ntor_ref.py) and
  1315. 0.3.1.1-alpha (for hs_ntor_ref.py).
  1316. o Minor bugfixes (v3 onion services):
  1317. - Stop sending ed25519 link specifiers in v3 onion service introduce
  1318. cells and descriptors, when the rendezvous or introduction point
  1319. doesn't support ed25519 link authentication. Fixes bug 26627;
  1320. bugfix on 0.3.2.4-alpha.
  1321. Changes in version 0.3.4.5-rc - 2018-07-13
  1322. Tor 0.3.4.5-rc moves to a new bridge authority, meaning people running
  1323. bridge relays should upgrade.
  1324. o Directory authority changes:
  1325. - The "Bifroest" bridge authority has been retired; the new bridge
  1326. authority is "Serge", and it is operated by George from the
  1327. TorBSD project. Closes ticket 26771.
  1328. Changes in version 0.3.3.9 - 2018-07-13
  1329. Tor 0.3.3.9 moves to a new bridge authority, meaning people running
  1330. bridge relays should upgrade.
  1331. o Directory authority changes:
  1332. - The "Bifroest" bridge authority has been retired; the new bridge
  1333. authority is "Serge", and it is operated by George from the
  1334. TorBSD project. Closes ticket 26771.
  1335. Changes in version 0.3.2.11 - 2018-07-13
  1336. Tor 0.3.2.11 moves to a new bridge authority, meaning people running
  1337. bridge relays should upgrade. We also take this opportunity to backport
  1338. other minor fixes.
  1339. o Directory authority changes:
  1340. - The "Bifroest" bridge authority has been retired; the new bridge
  1341. authority is "Serge", and it is operated by George from the
  1342. TorBSD project. Closes ticket 26771.
  1343. o Directory authority changes (backport from 0.3.3.7):
  1344. - Add an IPv6 address for the "dannenberg" directory authority.
  1345. Closes ticket 26343.
  1346. o Major bugfixes (directory authorities, backport from 0.3.4.1-alpha):
  1347. - When directory authorities read a zero-byte bandwidth file, they
  1348. would previously log a warning with the contents of an
  1349. uninitialised buffer. They now log a warning about the empty file
  1350. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  1351. o Major bugfixes (onion service, backport from 0.3.4.1-alpha):
  1352. - Correctly detect when onion services get disabled after HUP. Fixes
  1353. bug 25761; bugfix on 0.3.2.1.
  1354. o Minor features (sandbox, backport from 0.3.3.4-alpha):
  1355. - Explicitly permit the poll() system call when the Linux
  1356. seccomp2-based sandbox is enabled: apparently, some versions of
  1357. libc use poll() when calling getpwnam(). Closes ticket 25313.
  1358. o Minor feature (continuous integration, backport from 0.3.3.5-rc):
  1359. - Update the Travis CI configuration to use the stable Rust channel,
  1360. now that we have decided to require that. Closes ticket 25714.
  1361. o Minor features (continuous integration, backport from 0.3.4.1-alpha):
  1362. - Our .travis.yml configuration now includes support for testing the
  1363. results of "make distcheck". (It's not uncommon for "make check"
  1364. to pass but "make distcheck" to fail.) Closes ticket 25814.
  1365. - Our Travis CI configuration now integrates with the Coveralls
  1366. coverage analysis tool. Closes ticket 25818.
  1367. o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
  1368. - Add several checks to detect whether Tor relays are uploading
  1369. their descriptors without specifying why they regenerated them.
  1370. Diagnostic for ticket 25686.
  1371. o Minor features (compilation, backport from 0.3.4.4-rc):
  1372. - When building Tor, prefer to use Python 3 over Python 2, and more
  1373. recent (contemplated) versions over older ones. Closes
  1374. ticket 26372.
  1375. o Minor features (geoip):
  1376. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  1377. Country database. Closes ticket 26674.
  1378. o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
  1379. - Upon receiving a malformed connected cell, stop processing the
  1380. cell immediately. Previously we would mark the connection for
  1381. close, but continue processing the cell as if the connection were
  1382. open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
  1383. o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
  1384. - Allow the nanosleep() system call, which glibc uses to implement
  1385. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  1386. o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
  1387. - When running the hs_ntor_ref.py test, make sure only to pass
  1388. strings (rather than "bytes" objects) to the Python subprocess
  1389. module. Python 3 on Windows seems to require this. Fixes bug
  1390. 26535; bugfix on 0.3.1.1-alpha.
  1391. - When running the ntor_ref.py test, make sure only to pass strings
  1392. (rather than "bytes" objects) to the Python subprocess module.
  1393. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  1394. on 0.2.5.5-alpha.
  1395. o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
  1396. - Work around a change in OpenSSL 1.1.1 where return values that
  1397. would previously indicate "no password" now indicate an empty
  1398. password. Without this workaround, Tor instances running with
  1399. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  1400. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  1401. o Minor bugfixes (documentation, backport from 0.3.3.5-rc):
  1402. - Document that the PerConnBW{Rate,Burst} options will fall back to
  1403. their corresponding consensus parameters only if those parameters
  1404. are set. Previously we had claimed that these values would always
  1405. be set in the consensus. Fixes bug 25296; bugfix on 0.2.2.7-alpha.
  1406. o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
  1407. - Fix a compilation warning on some versions of GCC when building
  1408. code that calls routerinfo_get_my_routerinfo() twice, assuming
  1409. that the second call will succeed if the first one did. Fixes bug
  1410. 26269; bugfix on 0.2.8.2-alpha.
  1411. o Minor bugfixes (client, backport from 0.3.4.1-alpha):
  1412. - Don't consider Tor running as a client if the ControlPort is open,
  1413. but no actual client ports are open. Fixes bug 26062; bugfix
  1414. on 0.2.9.4-alpha.
  1415. o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
  1416. - Prevent a possible out-of-bounds smartlist read in
  1417. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  1418. o Minor bugfixes (C correctness, backport from 0.3.3.4-alpha):
  1419. - Fix a very unlikely (impossible, we believe) null pointer
  1420. dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
  1421. Coverity; this is CID 1430932.
  1422. o Minor bugfixes (onion service, backport from 0.3.4.1-alpha):
  1423. - Fix a memory leak when a v3 onion service is configured and gets a
  1424. SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
  1425. - When parsing the descriptor signature, look for the token plus an
  1426. extra white-space at the end. This is more correct but also will
  1427. allow us to support new fields that might start with "signature".
  1428. Fixes bug 26069; bugfix on 0.3.0.1-alpha.
  1429. o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
  1430. - Relays now correctly block attempts to re-extend to the previous
  1431. relay by Ed25519 identity. Previously they would warn in this
  1432. case, but not actually reject the attempt. Fixes bug 26158; bugfix
  1433. on 0.3.0.1-alpha.
  1434. o Minor bugfixes (relay, crash, backport from 0.3.4.1-alpha):
  1435. - Avoid a crash when running with DirPort set but ORPort turned off.
  1436. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
  1437. o Minor bugfixes (compilation, backport from 0.3.4.2-alpha):
  1438. - Silence unused-const-variable warnings in zstd.h with some GCC
  1439. versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
  1440. o Minor bugfixes (testing, backport from 0.3.3.4-alpha):
  1441. - Avoid intermittent test failures due to a test that had relied on
  1442. onion service introduction point creation finishing within 5
  1443. seconds of real clock time. Fixes bug 25450; bugfix
  1444. on 0.3.1.3-alpha.
  1445. o Minor bugfixes (compilation, backport from 0.3.3.4-alpha):
  1446. - Fix a C99 compliance issue in our configuration script that caused
  1447. compilation issues when compiling Tor with certain versions of
  1448. xtools. Fixes bug 25474; bugfix on 0.3.2.5-alpha.
  1449. o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
  1450. - Fix a number of small memory leaks identified by coverity. Fixes
  1451. bug 26467; bugfix on numerous Tor versions.
  1452. o Code simplification and refactoring (backport from 0.3.3.5-rc):
  1453. - Move the list of default directory authorities to its own file.
  1454. Closes ticket 24854. Patch by "beastr0".
  1455. Changes in version 0.2.9.16 - 2018-07-13
  1456. Tor 0.2.9.16 moves to a new bridge authority, meaning people running
  1457. bridge relays should up