| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102 | // <auto-generated>//     Generated by the protocol buffer compiler.  DO NOT EDIT!//     source: google/protobuf/descriptor.proto// </auto-generated>#pragma warning disable 1591, 0612, 3021#region Designer generated codeusing pb = global::Google.Protobuf;using pbc = global::Google.Protobuf.Collections;using pbr = global::Google.Protobuf.Reflection;using scg = global::System.Collections.Generic;namespace Google.Protobuf.Reflection {  /// <summary>Holder for reflection information generated from google/protobuf/descriptor.proto</summary>  internal static partial class DescriptorReflection {    #region Descriptor    /// <summary>File descriptor for google/protobuf/descriptor.proto</summary>    public static pbr::FileDescriptor Descriptor {      get { return descriptor; }    }    private static pbr::FileDescriptor descriptor;    static DescriptorReflection() {      byte[] descriptorData = global::System.Convert.FromBase64String(          string.Concat(            "CiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnBy",            "b3RvYnVmIkcKEUZpbGVEZXNjcmlwdG9yU2V0EjIKBGZpbGUYASADKAsyJC5n",            "b29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90byLbAwoTRmlsZURl",            "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEg8KB3BhY2thZ2UYAiABKAkS",            "EgoKZGVwZW5kZW5jeRgDIAMoCRIZChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMo",            "BRIXCg93ZWFrX2RlcGVuZGVuY3kYCyADKAUSNgoMbWVzc2FnZV90eXBlGAQg",            "AygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90bxI3CgllbnVt",            "X3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQ",            "cm90bxI4CgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZp",            "Y2VEZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xl",            "LnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvEi0KB29wdGlvbnMYCCAB",            "KAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMSOQoQc291cmNlX2Nv",            "ZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5m",            "bxIOCgZzeW50YXgYDCABKAkiqQUKD0Rlc2NyaXB0b3JQcm90bxIMCgRuYW1l",            "GAEgASgJEjQKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxk",            "RGVzY3JpcHRvclByb3RvEjgKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5w",            "cm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90bxI1CgtuZXN0ZWRfdHlwZRgD",            "IAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8SNwoJZW51",            "bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9y",            "UHJvdG8SSAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3Rv",            "YnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZRI5CgpvbmVvZl9k",            "ZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclBy",            "b3RvEjAKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2Fn",            "ZU9wdGlvbnMSRgoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJv",            "dG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2USFQoNcmVzZXJ2",            "ZWRfbmFtZRgKIAMoCRplCg5FeHRlbnNpb25SYW5nZRINCgVzdGFydBgBIAEo",            "BRILCgNlbmQYAiABKAUSNwoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90",            "b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnMaKwoNUmVzZXJ2ZWRSYW5nZRIN",            "CgVzdGFydBgBIAEoBRILCgNlbmQYAiABKAUiZwoVRXh0ZW5zaW9uUmFuZ2VP",            "cHRpb25zEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2ds",            "ZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIivAUK",            "FEZpZWxkRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDgoGbnVtYmVy",            "GAMgASgFEjoKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxk",            "RGVzY3JpcHRvclByb3RvLkxhYmVsEjgKBHR5cGUYBSABKA4yKi5nb29nbGUu",            "cHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRIRCgl0eXBlX25h",            "bWUYBiABKAkSEAoIZXh0ZW5kZWUYAiABKAkSFQoNZGVmYXVsdF92YWx1ZRgH",            "IAEoCRITCgtvbmVvZl9pbmRleBgJIAEoBRIRCglqc29uX25hbWUYCiABKAkS",            "LgoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlv",            "bnMitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAIS",            "DgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQz",            "MhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZ",            "UEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAK",            "DFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQz",            "MhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBF",            "X1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBAS",            "IkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFMEAESEgoOTEFCRUxfUkVRVUlS",            "RUQQAhISCg5MQUJFTF9SRVBFQVRFRBADIlQKFE9uZW9mRGVzY3JpcHRvclBy",            "b3RvEgwKBG5hbWUYASABKAkSLgoHb3B0aW9ucxgCIAEoCzIdLmdvb2dsZS5w",            "cm90b2J1Zi5PbmVvZk9wdGlvbnMipAIKE0VudW1EZXNjcmlwdG9yUHJvdG8S",            "DAoEbmFtZRgBIAEoCRI4CgV2YWx1ZRgCIAMoCzIpLmdvb2dsZS5wcm90b2J1",            "Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SLQoHb3B0aW9ucxgDIAEoCzIc",            "Lmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxJOCg5yZXNlcnZlZF9yYW5n",            "ZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3Rv",            "LkVudW1SZXNlcnZlZFJhbmdlEhUKDXJlc2VydmVkX25hbWUYBSADKAkaLwoR",            "RW51bVJlc2VydmVkUmFuZ2USDQoFc3RhcnQYASABKAUSCwoDZW5kGAIgASgF",            "ImwKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEg4K",            "Bm51bWJlchgCIAEoBRIyCgdvcHRpb25zGAMgASgLMiEuZ29vZ2xlLnByb3Rv",            "YnVmLkVudW1WYWx1ZU9wdGlvbnMikAEKFlNlcnZpY2VEZXNjcmlwdG9yUHJv",            "dG8SDAoEbmFtZRgBIAEoCRI2CgZtZXRob2QYAiADKAsyJi5nb29nbGUucHJv",            "dG9idWYuTWV0aG9kRGVzY3JpcHRvclByb3RvEjAKB29wdGlvbnMYAyABKAsy",            "Hy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMiwQEKFU1ldGhvZERl",            "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEhIKCmlucHV0X3R5cGUYAiAB",            "KAkSEwoLb3V0cHV0X3R5cGUYAyABKAkSLwoHb3B0aW9ucxgEIAEoCzIeLmdv",            "b2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zEh8KEGNsaWVudF9zdHJlYW1p",            "bmcYBSABKAg6BWZhbHNlEh8KEHNlcnZlcl9zdHJlYW1pbmcYBiABKAg6BWZh",            "bHNlIqYGCgtGaWxlT3B0aW9ucxIUCgxqYXZhX3BhY2thZ2UYASABKAkSHAoU",            "amF2YV9vdXRlcl9jbGFzc25hbWUYCCABKAkSIgoTamF2YV9tdWx0aXBsZV9m",            "aWxlcxgKIAEoCDoFZmFsc2USKQodamF2YV9nZW5lcmF0ZV9lcXVhbHNfYW5k",            "X2hhc2gYFCABKAhCAhgBEiUKFmphdmFfc3RyaW5nX2NoZWNrX3V0ZjgYGyAB",            "KAg6BWZhbHNlEkYKDG9wdGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5wcm90",            "b2J1Zi5GaWxlT3B0aW9ucy5PcHRpbWl6ZU1vZGU6BVNQRUVEEhIKCmdvX3Bh",            "Y2thZ2UYCyABKAkSIgoTY2NfZ2VuZXJpY19zZXJ2aWNlcxgQIAEoCDoFZmFs",            "c2USJAoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZRIiChNw",            "eV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZRIjChRwaHBfZ2VuZXJp",            "Y19zZXJ2aWNlcxgqIAEoCDoFZmFsc2USGQoKZGVwcmVjYXRlZBgXIAEoCDoF",            "ZmFsc2USHwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2USGQoRb2Jq",            "Y19jbGFzc19wcmVmaXgYJCABKAkSGAoQY3NoYXJwX25hbWVzcGFjZRglIAEo",            "CRIUCgxzd2lmdF9wcmVmaXgYJyABKAkSGAoQcGhwX2NsYXNzX3ByZWZpeBgo",            "IAEoCRIVCg1waHBfbmFtZXNwYWNlGCkgASgJEh4KFnBocF9tZXRhZGF0YV9u",            "YW1lc3BhY2UYLCABKAkSFAoMcnVieV9wYWNrYWdlGC0gASgJEkMKFHVuaW50",            "ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5Vbmlu",            "dGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0K",            "CUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgm",            "ECci8gEKDk1lc3NhZ2VPcHRpb25zEiYKF21lc3NhZ2Vfc2V0X3dpcmVfZm9y",            "bWF0GAEgASgIOgVmYWxzZRIuCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2Fj",            "Y2Vzc29yGAIgASgIOgVmYWxzZRIZCgpkZXByZWNhdGVkGAMgASgIOgVmYWxz",            "ZRIRCgltYXBfZW50cnkYByABKAgSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y",            "5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24q",            "CQjoBxCAgICAAkoECAgQCUoECAkQCiKeAwoMRmllbGRPcHRpb25zEjoKBWN0",            "eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlw",            "ZToGU1RSSU5HEg4KBnBhY2tlZBgCIAEoCBI/CgZqc3R5cGUYBiABKA4yJC5n",            "b29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFM",            "EhMKBGxhenkYBSABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYAyABKAg6BWZh",            "bHNlEhMKBHdlYWsYCiABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0",            "aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0",            "aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdf",            "UElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5H",            "EAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJeCgxPbmVvZk9w",            "dGlvbnMSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xl",            "LnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKTAQoL",            "RW51bU9wdGlvbnMSEwoLYWxsb3dfYWxpYXMYAiABKAgSGQoKZGVwcmVjYXRl",            "ZBgDIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygL",            "MiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCA",            "gICAAkoECAUQBiJ9ChBFbnVtVmFsdWVPcHRpb25zEhkKCmRlcHJlY2F0ZWQY",            "ASABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIk",            "Lmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICA",            "gAIiewoOU2VydmljZU9wdGlvbnMSGQoKZGVwcmVjYXRlZBghIAEoCDoFZmFs",            "c2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnBy",            "b3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKtAgoNTWV0",            "aG9kT3B0aW9ucxIZCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZRJfChFpZGVt",            "cG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RP",            "cHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV04S",            "QwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3Rv",            "YnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIX",            "ChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAES",            "DgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIingIKE1VuaW50ZXJwcmV0ZWRP",            "cHRpb24SOwoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVy",            "cHJldGVkT3B0aW9uLk5hbWVQYXJ0EhgKEGlkZW50aWZpZXJfdmFsdWUYAyAB",            "KAkSGgoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEEhoKEm5lZ2F0aXZlX2lu",            "dF92YWx1ZRgFIAEoAxIUCgxkb3VibGVfdmFsdWUYBiABKAESFAoMc3RyaW5n",            "X3ZhbHVlGAcgASgMEhcKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCRozCghOYW1l",            "UGFydBIRCgluYW1lX3BhcnQYASACKAkSFAoMaXNfZXh0ZW5zaW9uGAIgAigI",            "ItUBCg5Tb3VyY2VDb2RlSW5mbxI6Cghsb2NhdGlvbhgBIAMoCzIoLmdvb2ds",            "ZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvbhqGAQoITG9jYXRp",            "b24SEAoEcGF0aBgBIAMoBUICEAESEAoEc3BhbhgCIAMoBUICEAESGAoQbGVh",            "ZGluZ19jb21tZW50cxgDIAEoCRIZChF0cmFpbGluZ19jb21tZW50cxgEIAEo",            "CRIhChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJIqcBChFHZW5l",            "cmF0ZWRDb2RlSW5mbxJBCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnBy",            "b3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24aTwoKQW5ub3Rh",            "dGlvbhIQCgRwYXRoGAEgAygFQgIQARITCgtzb3VyY2VfZmlsZRgCIAEoCRIN",            "CgViZWdpbhgDIAEoBRILCgNlbmQYBCABKAVCjwEKE2NvbS5nb29nbGUucHJv",            "dG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcv",            "cHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4",            "AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbg=="));      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,          new pbr::FileDescriptor[] { },          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorSet), global::Google.Protobuf.Reflection.FileDescriptorSet.Parser, new[]{ "File" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorProto), global::Google.Protobuf.Reflection.FileDescriptorProto.Parser, new[]{ "Name", "Package", "Dependency", "PublicDependency", "WeakDependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", "Syntax" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto), global::Google.Protobuf.Reflection.DescriptorProto.Parser, new[]{ "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "OneofDecl", "Options", "ReservedRange", "ReservedName" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser, new[]{ "Start", "End", "Options" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser, new[]{ "Start", "End" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ExtensionRangeOptions), global::Google.Protobuf.Reflection.ExtensionRangeOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto), global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser, new[]{ "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "OneofIndex", "JsonName", "Options" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type), typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) }, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofDescriptorProto), global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser, new[]{ "Name", "Options" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumDescriptorProto), global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser, new[]{ "Name", "Value", "Options", "ReservedRange", "ReservedName" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange), global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Parser, new[]{ "Start", "End" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "PhpGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "SwiftPrefix", "PhpClassPrefix", "PhpNamespace", "PhpMetadataNamespace", "RubyPackage", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofOptions), global::Google.Protobuf.Reflection.OneofOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumOptions), global::Google.Protobuf.Reflection.EnumOptions.Parser, new[]{ "AllowAlias", "Deprecated", "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueOptions), global::Google.Protobuf.Reflection.EnumValueOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceOptions), global::Google.Protobuf.Reflection.ServiceOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodOptions), global::Google.Protobuf.Reflection.MethodOptions.Parser, new[]{ "Deprecated", "IdempotencyLevel", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel) }, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption), global::Google.Protobuf.Reflection.UninterpretedOption.Parser, new[]{ "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart), global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser, new[]{ "NamePart_", "IsExtension" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo), global::Google.Protobuf.Reflection.SourceCodeInfo.Parser, new[]{ "Location" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location), global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser, new[]{ "Path", "Span", "LeadingComments", "TrailingComments", "LeadingDetachedComments" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Parser, new[]{ "Annotation" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser, new[]{ "Path", "SourceFile", "Begin", "End" }, null, null, null)})          }));    }    #endregion  }  #region Messages  /// <summary>  /// The protocol compiler can output a FileDescriptorSet containing the .proto  /// files it parses.  /// </summary>  internal sealed partial class FileDescriptorSet : pb::IMessage<FileDescriptorSet> {    private static readonly pb::MessageParser<FileDescriptorSet> _parser = new pb::MessageParser<FileDescriptorSet>(() => new FileDescriptorSet());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FileDescriptorSet> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[0]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorSet() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorSet(FileDescriptorSet other) : this() {      file_ = other.file_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorSet Clone() {      return new FileDescriptorSet(this);    }    /// <summary>Field number for the "file" field.</summary>    public const int FileFieldNumber = 1;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FileDescriptorProto> _repeated_file_codec        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.FileDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> file_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> File {      get { return file_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FileDescriptorSet);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FileDescriptorSet other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!file_.Equals(other.file_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= file_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      file_.WriteTo(output, _repeated_file_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += file_.CalculateSize(_repeated_file_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FileDescriptorSet other) {      if (other == null) {        return;      }      file_.Add(other.file_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            file_.AddEntriesFrom(input, _repeated_file_codec);            break;          }        }      }    }  }  /// <summary>  /// Describes a complete .proto file.  /// </summary>  internal sealed partial class FileDescriptorProto : pb::IMessage<FileDescriptorProto> {    private static readonly pb::MessageParser<FileDescriptorProto> _parser = new pb::MessageParser<FileDescriptorProto>(() => new FileDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FileDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[1]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorProto(FileDescriptorProto other) : this() {      name_ = other.name_;      package_ = other.package_;      dependency_ = other.dependency_.Clone();      publicDependency_ = other.publicDependency_.Clone();      weakDependency_ = other.weakDependency_.Clone();      messageType_ = other.messageType_.Clone();      enumType_ = other.enumType_.Clone();      service_ = other.service_.Clone();      extension_ = other.extension_.Clone();      options_ = other.HasOptions ? other.options_.Clone() : null;      sourceCodeInfo_ = other.HasSourceCodeInfo ? other.sourceCodeInfo_.Clone() : null;      syntax_ = other.syntax_;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileDescriptorProto Clone() {      return new FileDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    /// <summary>    /// file name, relative to root of source tree    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "package" field.</summary>    public const int PackageFieldNumber = 2;    private readonly static string PackageDefaultValue = "";    private string package_;    /// <summary>    /// e.g. "foo", "foo.bar", etc.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Package {      get { return package_ ?? PackageDefaultValue; }      set {        package_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "package" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPackage {      get { return package_ != null; }    }    /// <summary>Clears the value of the "package" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPackage() {      package_ = null;    }    /// <summary>Field number for the "dependency" field.</summary>    public const int DependencyFieldNumber = 3;    private static readonly pb::FieldCodec<string> _repeated_dependency_codec        = pb::FieldCodec.ForString(26);    private readonly pbc::RepeatedField<string> dependency_ = new pbc::RepeatedField<string>();    /// <summary>    /// Names of files imported by this file.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> Dependency {      get { return dependency_; }    }    /// <summary>Field number for the "public_dependency" field.</summary>    public const int PublicDependencyFieldNumber = 10;    private static readonly pb::FieldCodec<int> _repeated_publicDependency_codec        = pb::FieldCodec.ForInt32(80);    private readonly pbc::RepeatedField<int> publicDependency_ = new pbc::RepeatedField<int>();    /// <summary>    /// Indexes of the public imported files in the dependency list above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> PublicDependency {      get { return publicDependency_; }    }    /// <summary>Field number for the "weak_dependency" field.</summary>    public const int WeakDependencyFieldNumber = 11;    private static readonly pb::FieldCodec<int> _repeated_weakDependency_codec        = pb::FieldCodec.ForInt32(88);    private readonly pbc::RepeatedField<int> weakDependency_ = new pbc::RepeatedField<int>();    /// <summary>    /// Indexes of the weak imported files in the dependency list.    /// For Google-internal migration only. Do not use.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> WeakDependency {      get { return weakDependency_; }    }    /// <summary>Field number for the "message_type" field.</summary>    public const int MessageTypeFieldNumber = 4;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_messageType_codec        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.DescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> messageType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();    /// <summary>    /// All top-level definitions in this file.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> MessageType {      get { return messageType_; }    }    /// <summary>Field number for the "enum_type" field.</summary>    public const int EnumTypeFieldNumber = 5;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec        = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {      get { return enumType_; }    }    /// <summary>Field number for the "service" field.</summary>    public const int ServiceFieldNumber = 6;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.ServiceDescriptorProto> _repeated_service_codec        = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> service_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> Service {      get { return service_; }    }    /// <summary>Field number for the "extension" field.</summary>    public const int ExtensionFieldNumber = 7;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec        = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {      get { return extension_; }    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 8;    private global::Google.Protobuf.Reflection.FileOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FileOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    /// <summary>Field number for the "source_code_info" field.</summary>    public const int SourceCodeInfoFieldNumber = 9;    private global::Google.Protobuf.Reflection.SourceCodeInfo sourceCodeInfo_;    /// <summary>    /// This field contains optional information about the original source code.    /// You may safely remove this entire field without harming runtime    /// functionality of the descriptors -- the information is needed only by    /// development tools.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.SourceCodeInfo SourceCodeInfo {      get { return sourceCodeInfo_; }      set {        sourceCodeInfo_ = value;      }    }    /// <summary>Gets whether the source_code_info field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasSourceCodeInfo {      get { return sourceCodeInfo_ != null; }    }    /// <summary>Clears the value of the source_code_info field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearSourceCodeInfo() {      sourceCodeInfo_ = null;    }    /// <summary>Field number for the "syntax" field.</summary>    public const int SyntaxFieldNumber = 12;    private readonly static string SyntaxDefaultValue = "";    private string syntax_;    /// <summary>    /// The syntax of the proto file.    /// The supported values are "proto2" and "proto3".    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Syntax {      get { return syntax_ ?? SyntaxDefaultValue; }      set {        syntax_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "syntax" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasSyntax {      get { return syntax_ != null; }    }    /// <summary>Clears the value of the "syntax" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearSyntax() {      syntax_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FileDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FileDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if (Package != other.Package) return false;      if(!dependency_.Equals(other.dependency_)) return false;      if(!publicDependency_.Equals(other.publicDependency_)) return false;      if(!weakDependency_.Equals(other.weakDependency_)) return false;      if(!messageType_.Equals(other.messageType_)) return false;      if(!enumType_.Equals(other.enumType_)) return false;      if(!service_.Equals(other.service_)) return false;      if(!extension_.Equals(other.extension_)) return false;      if (!object.Equals(Options, other.Options)) return false;      if (!object.Equals(SourceCodeInfo, other.SourceCodeInfo)) return false;      if (Syntax != other.Syntax) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      if (HasPackage) hash ^= Package.GetHashCode();      hash ^= dependency_.GetHashCode();      hash ^= publicDependency_.GetHashCode();      hash ^= weakDependency_.GetHashCode();      hash ^= messageType_.GetHashCode();      hash ^= enumType_.GetHashCode();      hash ^= service_.GetHashCode();      hash ^= extension_.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (HasSourceCodeInfo) hash ^= SourceCodeInfo.GetHashCode();      if (HasSyntax) hash ^= Syntax.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      if (HasPackage) {        output.WriteRawTag(18);        output.WriteString(Package);      }      dependency_.WriteTo(output, _repeated_dependency_codec);      messageType_.WriteTo(output, _repeated_messageType_codec);      enumType_.WriteTo(output, _repeated_enumType_codec);      service_.WriteTo(output, _repeated_service_codec);      extension_.WriteTo(output, _repeated_extension_codec);      if (HasOptions) {        output.WriteRawTag(66);        output.WriteMessage(Options);      }      if (HasSourceCodeInfo) {        output.WriteRawTag(74);        output.WriteMessage(SourceCodeInfo);      }      publicDependency_.WriteTo(output, _repeated_publicDependency_codec);      weakDependency_.WriteTo(output, _repeated_weakDependency_codec);      if (HasSyntax) {        output.WriteRawTag(98);        output.WriteString(Syntax);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      if (HasPackage) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Package);      }      size += dependency_.CalculateSize(_repeated_dependency_codec);      size += publicDependency_.CalculateSize(_repeated_publicDependency_codec);      size += weakDependency_.CalculateSize(_repeated_weakDependency_codec);      size += messageType_.CalculateSize(_repeated_messageType_codec);      size += enumType_.CalculateSize(_repeated_enumType_codec);      size += service_.CalculateSize(_repeated_service_codec);      size += extension_.CalculateSize(_repeated_extension_codec);      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (HasSourceCodeInfo) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SourceCodeInfo);      }      if (HasSyntax) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Syntax);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FileDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      if (other.HasPackage) {        Package = other.Package;      }      dependency_.Add(other.dependency_);      publicDependency_.Add(other.publicDependency_);      weakDependency_.Add(other.weakDependency_);      messageType_.Add(other.messageType_);      enumType_.Add(other.enumType_);      service_.Add(other.service_);      extension_.Add(other.extension_);      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.FileOptions();        }        Options.MergeFrom(other.Options);      }      if (other.HasSourceCodeInfo) {        if (!HasSourceCodeInfo) {          SourceCodeInfo = new global::Google.Protobuf.Reflection.SourceCodeInfo();        }        SourceCodeInfo.MergeFrom(other.SourceCodeInfo);      }      if (other.HasSyntax) {        Syntax = other.Syntax;      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            Package = input.ReadString();            break;          }          case 26: {            dependency_.AddEntriesFrom(input, _repeated_dependency_codec);            break;          }          case 34: {            messageType_.AddEntriesFrom(input, _repeated_messageType_codec);            break;          }          case 42: {            enumType_.AddEntriesFrom(input, _repeated_enumType_codec);            break;          }          case 50: {            service_.AddEntriesFrom(input, _repeated_service_codec);            break;          }          case 58: {            extension_.AddEntriesFrom(input, _repeated_extension_codec);            break;          }          case 66: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.FileOptions();            }            input.ReadMessage(Options);            break;          }          case 74: {            if (!HasSourceCodeInfo) {              SourceCodeInfo = new global::Google.Protobuf.Reflection.SourceCodeInfo();            }            input.ReadMessage(SourceCodeInfo);            break;          }          case 82:          case 80: {            publicDependency_.AddEntriesFrom(input, _repeated_publicDependency_codec);            break;          }          case 90:          case 88: {            weakDependency_.AddEntriesFrom(input, _repeated_weakDependency_codec);            break;          }          case 98: {            Syntax = input.ReadString();            break;          }        }      }    }  }  /// <summary>  /// Describes a message type.  /// </summary>  internal sealed partial class DescriptorProto : pb::IMessage<DescriptorProto> {    private static readonly pb::MessageParser<DescriptorProto> _parser = new pb::MessageParser<DescriptorProto>(() => new DescriptorProto());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<DescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[2]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public DescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public DescriptorProto(DescriptorProto other) : this() {      name_ = other.name_;      field_ = other.field_.Clone();      extension_ = other.extension_.Clone();      nestedType_ = other.nestedType_.Clone();      enumType_ = other.enumType_.Clone();      extensionRange_ = other.extensionRange_.Clone();      oneofDecl_ = other.oneofDecl_.Clone();      options_ = other.HasOptions ? other.options_.Clone() : null;      reservedRange_ = other.reservedRange_.Clone();      reservedName_ = other.reservedName_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public DescriptorProto Clone() {      return new DescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "field" field.</summary>    public const int FieldFieldNumber = 2;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_field_codec        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> field_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Field {      get { return field_; }    }    /// <summary>Field number for the "extension" field.</summary>    public const int ExtensionFieldNumber = 6;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec        = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {      get { return extension_; }    }    /// <summary>Field number for the "nested_type" field.</summary>    public const int NestedTypeFieldNumber = 3;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_nestedType_codec        = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.Reflection.DescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> nestedType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> NestedType {      get { return nestedType_; }    }    /// <summary>Field number for the "enum_type" field.</summary>    public const int EnumTypeFieldNumber = 4;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {      get { return enumType_; }    }    /// <summary>Field number for the "extension_range" field.</summary>    public const int ExtensionRangeFieldNumber = 5;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> _repeated_extensionRange_codec        = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> ExtensionRange {      get { return extensionRange_; }    }    /// <summary>Field number for the "oneof_decl" field.</summary>    public const int OneofDeclFieldNumber = 8;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.OneofDescriptorProto> _repeated_oneofDecl_codec        = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> oneofDecl_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> OneofDecl {      get { return oneofDecl_; }    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 7;    private global::Google.Protobuf.Reflection.MessageOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.MessageOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    /// <summary>Field number for the "reserved_range" field.</summary>    public const int ReservedRangeFieldNumber = 9;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> _repeated_reservedRange_codec        = pb::FieldCodec.ForMessage(74, global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> ReservedRange {      get { return reservedRange_; }    }    /// <summary>Field number for the "reserved_name" field.</summary>    public const int ReservedNameFieldNumber = 10;    private static readonly pb::FieldCodec<string> _repeated_reservedName_codec        = pb::FieldCodec.ForString(82);    private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();    /// <summary>    /// Reserved field names, which may not be used by fields in the same message.    /// A given name may only be reserved once.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> ReservedName {      get { return reservedName_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as DescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(DescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if(!field_.Equals(other.field_)) return false;      if(!extension_.Equals(other.extension_)) return false;      if(!nestedType_.Equals(other.nestedType_)) return false;      if(!enumType_.Equals(other.enumType_)) return false;      if(!extensionRange_.Equals(other.extensionRange_)) return false;      if(!oneofDecl_.Equals(other.oneofDecl_)) return false;      if (!object.Equals(Options, other.Options)) return false;      if(!reservedRange_.Equals(other.reservedRange_)) return false;      if(!reservedName_.Equals(other.reservedName_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      hash ^= field_.GetHashCode();      hash ^= extension_.GetHashCode();      hash ^= nestedType_.GetHashCode();      hash ^= enumType_.GetHashCode();      hash ^= extensionRange_.GetHashCode();      hash ^= oneofDecl_.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      hash ^= reservedRange_.GetHashCode();      hash ^= reservedName_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      field_.WriteTo(output, _repeated_field_codec);      nestedType_.WriteTo(output, _repeated_nestedType_codec);      enumType_.WriteTo(output, _repeated_enumType_codec);      extensionRange_.WriteTo(output, _repeated_extensionRange_codec);      extension_.WriteTo(output, _repeated_extension_codec);      if (HasOptions) {        output.WriteRawTag(58);        output.WriteMessage(Options);      }      oneofDecl_.WriteTo(output, _repeated_oneofDecl_codec);      reservedRange_.WriteTo(output, _repeated_reservedRange_codec);      reservedName_.WriteTo(output, _repeated_reservedName_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      size += field_.CalculateSize(_repeated_field_codec);      size += extension_.CalculateSize(_repeated_extension_codec);      size += nestedType_.CalculateSize(_repeated_nestedType_codec);      size += enumType_.CalculateSize(_repeated_enumType_codec);      size += extensionRange_.CalculateSize(_repeated_extensionRange_codec);      size += oneofDecl_.CalculateSize(_repeated_oneofDecl_codec);      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      size += reservedRange_.CalculateSize(_repeated_reservedRange_codec);      size += reservedName_.CalculateSize(_repeated_reservedName_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(DescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      field_.Add(other.field_);      extension_.Add(other.extension_);      nestedType_.Add(other.nestedType_);      enumType_.Add(other.enumType_);      extensionRange_.Add(other.extensionRange_);      oneofDecl_.Add(other.oneofDecl_);      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.MessageOptions();        }        Options.MergeFrom(other.Options);      }      reservedRange_.Add(other.reservedRange_);      reservedName_.Add(other.reservedName_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            field_.AddEntriesFrom(input, _repeated_field_codec);            break;          }          case 26: {            nestedType_.AddEntriesFrom(input, _repeated_nestedType_codec);            break;          }          case 34: {            enumType_.AddEntriesFrom(input, _repeated_enumType_codec);            break;          }          case 42: {            extensionRange_.AddEntriesFrom(input, _repeated_extensionRange_codec);            break;          }          case 50: {            extension_.AddEntriesFrom(input, _repeated_extension_codec);            break;          }          case 58: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.MessageOptions();            }            input.ReadMessage(Options);            break;          }          case 66: {            oneofDecl_.AddEntriesFrom(input, _repeated_oneofDecl_codec);            break;          }          case 74: {            reservedRange_.AddEntriesFrom(input, _repeated_reservedRange_codec);            break;          }          case 82: {            reservedName_.AddEntriesFrom(input, _repeated_reservedName_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the DescriptorProto message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      internal sealed partial class ExtensionRange : pb::IMessage<ExtensionRange> {        private static readonly pb::MessageParser<ExtensionRange> _parser = new pb::MessageParser<ExtensionRange>(() => new ExtensionRange());        private pb::UnknownFieldSet _unknownFields;        private int _hasBits0;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<ExtensionRange> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ExtensionRange() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ExtensionRange(ExtensionRange other) : this() {          _hasBits0 = other._hasBits0;          start_ = other.start_;          end_ = other.end_;          options_ = other.HasOptions ? other.options_.Clone() : null;          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ExtensionRange Clone() {          return new ExtensionRange(this);        }        /// <summary>Field number for the "start" field.</summary>        public const int StartFieldNumber = 1;        private readonly static int StartDefaultValue = 0;        private int start_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Start {          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }          set {            _hasBits0 |= 1;            start_ = value;          }        }        /// <summary>Gets whether the "start" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasStart {          get { return (_hasBits0 & 1) != 0; }        }        /// <summary>Clears the value of the "start" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearStart() {          _hasBits0 &= ~1;        }        /// <summary>Field number for the "end" field.</summary>        public const int EndFieldNumber = 2;        private readonly static int EndDefaultValue = 0;        private int end_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int End {          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }          set {            _hasBits0 |= 2;            end_ = value;          }        }        /// <summary>Gets whether the "end" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasEnd {          get { return (_hasBits0 & 2) != 0; }        }        /// <summary>Clears the value of the "end" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearEnd() {          _hasBits0 &= ~2;        }        /// <summary>Field number for the "options" field.</summary>        public const int OptionsFieldNumber = 3;        private global::Google.Protobuf.Reflection.ExtensionRangeOptions options_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public global::Google.Protobuf.Reflection.ExtensionRangeOptions Options {          get { return options_; }          set {            options_ = value;          }        }        /// <summary>Gets whether the options field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasOptions {          get { return options_ != null; }        }        /// <summary>Clears the value of the options field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearOptions() {          options_ = null;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as ExtensionRange);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(ExtensionRange other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (Start != other.Start) return false;          if (End != other.End) return false;          if (!object.Equals(Options, other.Options)) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (HasStart) hash ^= Start.GetHashCode();          if (HasEnd) hash ^= End.GetHashCode();          if (HasOptions) hash ^= Options.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          if (HasStart) {            output.WriteRawTag(8);            output.WriteInt32(Start);          }          if (HasEnd) {            output.WriteRawTag(16);            output.WriteInt32(End);          }          if (HasOptions) {            output.WriteRawTag(26);            output.WriteMessage(Options);          }          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (HasStart) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);          }          if (HasEnd) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);          }          if (HasOptions) {            size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);          }          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(ExtensionRange other) {          if (other == null) {            return;          }          if (other.HasStart) {            Start = other.Start;          }          if (other.HasEnd) {            End = other.End;          }          if (other.HasOptions) {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.ExtensionRangeOptions();            }            Options.MergeFrom(other.Options);          }          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 8: {                Start = input.ReadInt32();                break;              }              case 16: {                End = input.ReadInt32();                break;              }              case 26: {                if (!HasOptions) {                  Options = new global::Google.Protobuf.Reflection.ExtensionRangeOptions();                }                input.ReadMessage(Options);                break;              }            }          }        }      }      /// <summary>      /// Range of reserved tag numbers. Reserved tag numbers may not be used by      /// fields or extension ranges in the same message. Reserved ranges may      /// not overlap.      /// </summary>      internal sealed partial class ReservedRange : pb::IMessage<ReservedRange> {        private static readonly pb::MessageParser<ReservedRange> _parser = new pb::MessageParser<ReservedRange>(() => new ReservedRange());        private pb::UnknownFieldSet _unknownFields;        private int _hasBits0;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<ReservedRange> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[1]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ReservedRange() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ReservedRange(ReservedRange other) : this() {          _hasBits0 = other._hasBits0;          start_ = other.start_;          end_ = other.end_;          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public ReservedRange Clone() {          return new ReservedRange(this);        }        /// <summary>Field number for the "start" field.</summary>        public const int StartFieldNumber = 1;        private readonly static int StartDefaultValue = 0;        private int start_;        /// <summary>        /// Inclusive.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Start {          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }          set {            _hasBits0 |= 1;            start_ = value;          }        }        /// <summary>Gets whether the "start" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasStart {          get { return (_hasBits0 & 1) != 0; }        }        /// <summary>Clears the value of the "start" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearStart() {          _hasBits0 &= ~1;        }        /// <summary>Field number for the "end" field.</summary>        public const int EndFieldNumber = 2;        private readonly static int EndDefaultValue = 0;        private int end_;        /// <summary>        /// Exclusive.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int End {          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }          set {            _hasBits0 |= 2;            end_ = value;          }        }        /// <summary>Gets whether the "end" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasEnd {          get { return (_hasBits0 & 2) != 0; }        }        /// <summary>Clears the value of the "end" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearEnd() {          _hasBits0 &= ~2;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as ReservedRange);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(ReservedRange other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (Start != other.Start) return false;          if (End != other.End) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (HasStart) hash ^= Start.GetHashCode();          if (HasEnd) hash ^= End.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          if (HasStart) {            output.WriteRawTag(8);            output.WriteInt32(Start);          }          if (HasEnd) {            output.WriteRawTag(16);            output.WriteInt32(End);          }          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (HasStart) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);          }          if (HasEnd) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);          }          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(ReservedRange other) {          if (other == null) {            return;          }          if (other.HasStart) {            Start = other.Start;          }          if (other.HasEnd) {            End = other.End;          }          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 8: {                Start = input.ReadInt32();                break;              }              case 16: {                End = input.ReadInt32();                break;              }            }          }        }      }    }    #endregion  }  internal sealed partial class ExtensionRangeOptions : pb::IMessage<ExtensionRangeOptions> {    private static readonly pb::MessageParser<ExtensionRangeOptions> _parser = new pb::MessageParser<ExtensionRangeOptions>(() => new ExtensionRangeOptions());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<ExtensionRangeOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[3]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ExtensionRangeOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ExtensionRangeOptions(ExtensionRangeOptions other) : this() {      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ExtensionRangeOptions Clone() {      return new ExtensionRangeOptions(this);    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as ExtensionRangeOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(ExtensionRangeOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(ExtensionRangeOptions other) {      if (other == null) {        return;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  /// <summary>  /// Describes a field within a message.  /// </summary>  internal sealed partial class FieldDescriptorProto : pb::IMessage<FieldDescriptorProto> {    private static readonly pb::MessageParser<FieldDescriptorProto> _parser = new pb::MessageParser<FieldDescriptorProto>(() => new FieldDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FieldDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[4]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldDescriptorProto(FieldDescriptorProto other) : this() {      _hasBits0 = other._hasBits0;      name_ = other.name_;      number_ = other.number_;      label_ = other.label_;      type_ = other.type_;      typeName_ = other.typeName_;      extendee_ = other.extendee_;      defaultValue_ = other.defaultValue_;      oneofIndex_ = other.oneofIndex_;      jsonName_ = other.jsonName_;      options_ = other.HasOptions ? other.options_.Clone() : null;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldDescriptorProto Clone() {      return new FieldDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "number" field.</summary>    public const int NumberFieldNumber = 3;    private readonly static int NumberDefaultValue = 0;    private int number_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int Number {      get { if ((_hasBits0 & 1) != 0) { return number_; } else { return NumberDefaultValue; } }      set {        _hasBits0 |= 1;        number_ = value;      }    }    /// <summary>Gets whether the "number" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasNumber {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "number" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearNumber() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "label" field.</summary>    public const int LabelFieldNumber = 4;    private readonly static global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label LabelDefaultValue = global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label.Optional;    private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label label_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label Label {      get { if ((_hasBits0 & 2) != 0) { return label_; } else { return LabelDefaultValue; } }      set {        _hasBits0 |= 2;        label_ = value;      }    }    /// <summary>Gets whether the "label" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasLabel {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "label" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearLabel() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "type" field.</summary>    public const int TypeFieldNumber = 5;    private readonly static global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type TypeDefaultValue = global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Double;    private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type type_;    /// <summary>    /// If type_name is set, this need not be set.  If both this and type_name    /// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type Type {      get { if ((_hasBits0 & 4) != 0) { return type_; } else { return TypeDefaultValue; } }      set {        _hasBits0 |= 4;        type_ = value;      }    }    /// <summary>Gets whether the "type" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasType {      get { return (_hasBits0 & 4) != 0; }    }    /// <summary>Clears the value of the "type" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearType() {      _hasBits0 &= ~4;    }    /// <summary>Field number for the "type_name" field.</summary>    public const int TypeNameFieldNumber = 6;    private readonly static string TypeNameDefaultValue = "";    private string typeName_;    /// <summary>    /// For message and enum types, this is the name of the type.  If the name    /// starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping    /// rules are used to find the type (i.e. first the nested types within this    /// message are searched, then within the parent, on up to the root    /// namespace).    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string TypeName {      get { return typeName_ ?? TypeNameDefaultValue; }      set {        typeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "type_name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasTypeName {      get { return typeName_ != null; }    }    /// <summary>Clears the value of the "type_name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearTypeName() {      typeName_ = null;    }    /// <summary>Field number for the "extendee" field.</summary>    public const int ExtendeeFieldNumber = 2;    private readonly static string ExtendeeDefaultValue = "";    private string extendee_;    /// <summary>    /// For extensions, this is the name of the type being extended.  It is    /// resolved in the same manner as type_name.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Extendee {      get { return extendee_ ?? ExtendeeDefaultValue; }      set {        extendee_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "extendee" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasExtendee {      get { return extendee_ != null; }    }    /// <summary>Clears the value of the "extendee" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearExtendee() {      extendee_ = null;    }    /// <summary>Field number for the "default_value" field.</summary>    public const int DefaultValueFieldNumber = 7;    private readonly static string DefaultValueDefaultValue = "";    private string defaultValue_;    /// <summary>    /// For numeric types, contains the original text representation of the value.    /// For booleans, "true" or "false".    /// For strings, contains the default text contents (not escaped in any way).    /// For bytes, contains the C escaped value.  All bytes >= 128 are escaped.    /// TODO(kenton):  Base-64 encode?    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string DefaultValue {      get { return defaultValue_ ?? DefaultValueDefaultValue; }      set {        defaultValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "default_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDefaultValue {      get { return defaultValue_ != null; }    }    /// <summary>Clears the value of the "default_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDefaultValue() {      defaultValue_ = null;    }    /// <summary>Field number for the "oneof_index" field.</summary>    public const int OneofIndexFieldNumber = 9;    private readonly static int OneofIndexDefaultValue = 0;    private int oneofIndex_;    /// <summary>    /// If set, gives the index of a oneof in the containing type's oneof_decl    /// list.  This field is a member of that oneof.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int OneofIndex {      get { if ((_hasBits0 & 8) != 0) { return oneofIndex_; } else { return OneofIndexDefaultValue; } }      set {        _hasBits0 |= 8;        oneofIndex_ = value;      }    }    /// <summary>Gets whether the "oneof_index" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOneofIndex {      get { return (_hasBits0 & 8) != 0; }    }    /// <summary>Clears the value of the "oneof_index" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOneofIndex() {      _hasBits0 &= ~8;    }    /// <summary>Field number for the "json_name" field.</summary>    public const int JsonNameFieldNumber = 10;    private readonly static string JsonNameDefaultValue = "";    private string jsonName_;    /// <summary>    /// JSON name of this field. The value is set by protocol compiler. If the    /// user has set a "json_name" option on this field, that option's value    /// will be used. Otherwise, it's deduced from the field's name by converting    /// it to camelCase.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string JsonName {      get { return jsonName_ ?? JsonNameDefaultValue; }      set {        jsonName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "json_name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJsonName {      get { return jsonName_ != null; }    }    /// <summary>Clears the value of the "json_name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJsonName() {      jsonName_ = null;    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 8;    private global::Google.Protobuf.Reflection.FieldOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FieldOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FieldDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FieldDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if (Number != other.Number) return false;      if (Label != other.Label) return false;      if (Type != other.Type) return false;      if (TypeName != other.TypeName) return false;      if (Extendee != other.Extendee) return false;      if (DefaultValue != other.DefaultValue) return false;      if (OneofIndex != other.OneofIndex) return false;      if (JsonName != other.JsonName) return false;      if (!object.Equals(Options, other.Options)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      if (HasNumber) hash ^= Number.GetHashCode();      if (HasLabel) hash ^= Label.GetHashCode();      if (HasType) hash ^= Type.GetHashCode();      if (HasTypeName) hash ^= TypeName.GetHashCode();      if (HasExtendee) hash ^= Extendee.GetHashCode();      if (HasDefaultValue) hash ^= DefaultValue.GetHashCode();      if (HasOneofIndex) hash ^= OneofIndex.GetHashCode();      if (HasJsonName) hash ^= JsonName.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      if (HasExtendee) {        output.WriteRawTag(18);        output.WriteString(Extendee);      }      if (HasNumber) {        output.WriteRawTag(24);        output.WriteInt32(Number);      }      if (HasLabel) {        output.WriteRawTag(32);        output.WriteEnum((int) Label);      }      if (HasType) {        output.WriteRawTag(40);        output.WriteEnum((int) Type);      }      if (HasTypeName) {        output.WriteRawTag(50);        output.WriteString(TypeName);      }      if (HasDefaultValue) {        output.WriteRawTag(58);        output.WriteString(DefaultValue);      }      if (HasOptions) {        output.WriteRawTag(66);        output.WriteMessage(Options);      }      if (HasOneofIndex) {        output.WriteRawTag(72);        output.WriteInt32(OneofIndex);      }      if (HasJsonName) {        output.WriteRawTag(82);        output.WriteString(JsonName);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      if (HasNumber) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);      }      if (HasLabel) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Label);      }      if (HasType) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);      }      if (HasTypeName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeName);      }      if (HasExtendee) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Extendee);      }      if (HasDefaultValue) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(DefaultValue);      }      if (HasOneofIndex) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OneofIndex);      }      if (HasJsonName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonName);      }      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FieldDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      if (other.HasNumber) {        Number = other.Number;      }      if (other.HasLabel) {        Label = other.Label;      }      if (other.HasType) {        Type = other.Type;      }      if (other.HasTypeName) {        TypeName = other.TypeName;      }      if (other.HasExtendee) {        Extendee = other.Extendee;      }      if (other.HasDefaultValue) {        DefaultValue = other.DefaultValue;      }      if (other.HasOneofIndex) {        OneofIndex = other.OneofIndex;      }      if (other.HasJsonName) {        JsonName = other.JsonName;      }      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.FieldOptions();        }        Options.MergeFrom(other.Options);      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            Extendee = input.ReadString();            break;          }          case 24: {            Number = input.ReadInt32();            break;          }          case 32: {            Label = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) input.ReadEnum();            break;          }          case 40: {            Type = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type) input.ReadEnum();            break;          }          case 50: {            TypeName = input.ReadString();            break;          }          case 58: {            DefaultValue = input.ReadString();            break;          }          case 66: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.FieldOptions();            }            input.ReadMessage(Options);            break;          }          case 72: {            OneofIndex = input.ReadInt32();            break;          }          case 82: {            JsonName = input.ReadString();            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the FieldDescriptorProto message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      internal enum Type {        /// <summary>        /// 0 is reserved for errors.        /// Order is weird for historical reasons.        /// </summary>        [pbr::OriginalName("TYPE_DOUBLE")] Double = 1,        [pbr::OriginalName("TYPE_FLOAT")] Float = 2,        /// <summary>        /// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if        /// negative values are likely.        /// </summary>        [pbr::OriginalName("TYPE_INT64")] Int64 = 3,        [pbr::OriginalName("TYPE_UINT64")] Uint64 = 4,        /// <summary>        /// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if        /// negative values are likely.        /// </summary>        [pbr::OriginalName("TYPE_INT32")] Int32 = 5,        [pbr::OriginalName("TYPE_FIXED64")] Fixed64 = 6,        [pbr::OriginalName("TYPE_FIXED32")] Fixed32 = 7,        [pbr::OriginalName("TYPE_BOOL")] Bool = 8,        [pbr::OriginalName("TYPE_STRING")] String = 9,        /// <summary>        /// Tag-delimited aggregate.        /// Group type is deprecated and not supported in proto3. However, Proto3        /// implementations should still be able to parse the group wire format and        /// treat group fields as unknown fields.        /// </summary>        [pbr::OriginalName("TYPE_GROUP")] Group = 10,        /// <summary>        /// Length-delimited aggregate.        /// </summary>        [pbr::OriginalName("TYPE_MESSAGE")] Message = 11,        /// <summary>        /// New in version 2.        /// </summary>        [pbr::OriginalName("TYPE_BYTES")] Bytes = 12,        [pbr::OriginalName("TYPE_UINT32")] Uint32 = 13,        [pbr::OriginalName("TYPE_ENUM")] Enum = 14,        [pbr::OriginalName("TYPE_SFIXED32")] Sfixed32 = 15,        [pbr::OriginalName("TYPE_SFIXED64")] Sfixed64 = 16,        /// <summary>        /// Uses ZigZag encoding.        /// </summary>        [pbr::OriginalName("TYPE_SINT32")] Sint32 = 17,        /// <summary>        /// Uses ZigZag encoding.        /// </summary>        [pbr::OriginalName("TYPE_SINT64")] Sint64 = 18,      }      internal enum Label {        /// <summary>        /// 0 is reserved for errors        /// </summary>        [pbr::OriginalName("LABEL_OPTIONAL")] Optional = 1,        [pbr::OriginalName("LABEL_REQUIRED")] Required = 2,        [pbr::OriginalName("LABEL_REPEATED")] Repeated = 3,      }    }    #endregion  }  /// <summary>  /// Describes a oneof.  /// </summary>  internal sealed partial class OneofDescriptorProto : pb::IMessage<OneofDescriptorProto> {    private static readonly pb::MessageParser<OneofDescriptorProto> _parser = new pb::MessageParser<OneofDescriptorProto>(() => new OneofDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<OneofDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[5]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofDescriptorProto(OneofDescriptorProto other) : this() {      name_ = other.name_;      options_ = other.HasOptions ? other.options_.Clone() : null;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofDescriptorProto Clone() {      return new OneofDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 2;    private global::Google.Protobuf.Reflection.OneofOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.OneofOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as OneofDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(OneofDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if (!object.Equals(Options, other.Options)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      if (HasOptions) {        output.WriteRawTag(18);        output.WriteMessage(Options);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(OneofDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.OneofOptions();        }        Options.MergeFrom(other.Options);      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.OneofOptions();            }            input.ReadMessage(Options);            break;          }        }      }    }  }  /// <summary>  /// Describes an enum type.  /// </summary>  internal sealed partial class EnumDescriptorProto : pb::IMessage<EnumDescriptorProto> {    private static readonly pb::MessageParser<EnumDescriptorProto> _parser = new pb::MessageParser<EnumDescriptorProto>(() => new EnumDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<EnumDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[6]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumDescriptorProto(EnumDescriptorProto other) : this() {      name_ = other.name_;      value_ = other.value_.Clone();      options_ = other.HasOptions ? other.options_.Clone() : null;      reservedRange_ = other.reservedRange_.Clone();      reservedName_ = other.reservedName_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumDescriptorProto Clone() {      return new EnumDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "value" field.</summary>    public const int ValueFieldNumber = 2;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> _repeated_value_codec        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> value_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> Value {      get { return value_; }    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 3;    private global::Google.Protobuf.Reflection.EnumOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.EnumOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    /// <summary>Field number for the "reserved_range" field.</summary>    public const int ReservedRangeFieldNumber = 4;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> _repeated_reservedRange_codec        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange>();    /// <summary>    /// Range of reserved numeric values. Reserved numeric values may not be used    /// by enum values in the same enum declaration. Reserved ranges may not    /// overlap.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> ReservedRange {      get { return reservedRange_; }    }    /// <summary>Field number for the "reserved_name" field.</summary>    public const int ReservedNameFieldNumber = 5;    private static readonly pb::FieldCodec<string> _repeated_reservedName_codec        = pb::FieldCodec.ForString(42);    private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();    /// <summary>    /// Reserved enum value names, which may not be reused. A given name may only    /// be reserved once.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> ReservedName {      get { return reservedName_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as EnumDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(EnumDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if(!value_.Equals(other.value_)) return false;      if (!object.Equals(Options, other.Options)) return false;      if(!reservedRange_.Equals(other.reservedRange_)) return false;      if(!reservedName_.Equals(other.reservedName_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      hash ^= value_.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      hash ^= reservedRange_.GetHashCode();      hash ^= reservedName_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      value_.WriteTo(output, _repeated_value_codec);      if (HasOptions) {        output.WriteRawTag(26);        output.WriteMessage(Options);      }      reservedRange_.WriteTo(output, _repeated_reservedRange_codec);      reservedName_.WriteTo(output, _repeated_reservedName_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      size += value_.CalculateSize(_repeated_value_codec);      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      size += reservedRange_.CalculateSize(_repeated_reservedRange_codec);      size += reservedName_.CalculateSize(_repeated_reservedName_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(EnumDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      value_.Add(other.value_);      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.EnumOptions();        }        Options.MergeFrom(other.Options);      }      reservedRange_.Add(other.reservedRange_);      reservedName_.Add(other.reservedName_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            value_.AddEntriesFrom(input, _repeated_value_codec);            break;          }          case 26: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.EnumOptions();            }            input.ReadMessage(Options);            break;          }          case 34: {            reservedRange_.AddEntriesFrom(input, _repeated_reservedRange_codec);            break;          }          case 42: {            reservedName_.AddEntriesFrom(input, _repeated_reservedName_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the EnumDescriptorProto message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      /// <summary>      /// Range of reserved numeric values. Reserved values may not be used by      /// entries in the same enum. Reserved ranges may not overlap.      ///      /// Note that this is distinct from DescriptorProto.ReservedRange in that it      /// is inclusive such that it can appropriately represent the entire int32      /// domain.      /// </summary>      internal sealed partial class EnumReservedRange : pb::IMessage<EnumReservedRange> {        private static readonly pb::MessageParser<EnumReservedRange> _parser = new pb::MessageParser<EnumReservedRange>(() => new EnumReservedRange());        private pb::UnknownFieldSet _unknownFields;        private int _hasBits0;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<EnumReservedRange> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.EnumDescriptorProto.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public EnumReservedRange() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public EnumReservedRange(EnumReservedRange other) : this() {          _hasBits0 = other._hasBits0;          start_ = other.start_;          end_ = other.end_;          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public EnumReservedRange Clone() {          return new EnumReservedRange(this);        }        /// <summary>Field number for the "start" field.</summary>        public const int StartFieldNumber = 1;        private readonly static int StartDefaultValue = 0;        private int start_;        /// <summary>        /// Inclusive.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Start {          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }          set {            _hasBits0 |= 1;            start_ = value;          }        }        /// <summary>Gets whether the "start" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasStart {          get { return (_hasBits0 & 1) != 0; }        }        /// <summary>Clears the value of the "start" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearStart() {          _hasBits0 &= ~1;        }        /// <summary>Field number for the "end" field.</summary>        public const int EndFieldNumber = 2;        private readonly static int EndDefaultValue = 0;        private int end_;        /// <summary>        /// Inclusive.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int End {          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }          set {            _hasBits0 |= 2;            end_ = value;          }        }        /// <summary>Gets whether the "end" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasEnd {          get { return (_hasBits0 & 2) != 0; }        }        /// <summary>Clears the value of the "end" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearEnd() {          _hasBits0 &= ~2;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as EnumReservedRange);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(EnumReservedRange other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (Start != other.Start) return false;          if (End != other.End) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (HasStart) hash ^= Start.GetHashCode();          if (HasEnd) hash ^= End.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          if (HasStart) {            output.WriteRawTag(8);            output.WriteInt32(Start);          }          if (HasEnd) {            output.WriteRawTag(16);            output.WriteInt32(End);          }          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (HasStart) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);          }          if (HasEnd) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);          }          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(EnumReservedRange other) {          if (other == null) {            return;          }          if (other.HasStart) {            Start = other.Start;          }          if (other.HasEnd) {            End = other.End;          }          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 8: {                Start = input.ReadInt32();                break;              }              case 16: {                End = input.ReadInt32();                break;              }            }          }        }      }    }    #endregion  }  /// <summary>  /// Describes a value within an enum.  /// </summary>  internal sealed partial class EnumValueDescriptorProto : pb::IMessage<EnumValueDescriptorProto> {    private static readonly pb::MessageParser<EnumValueDescriptorProto> _parser = new pb::MessageParser<EnumValueDescriptorProto>(() => new EnumValueDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<EnumValueDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[7]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueDescriptorProto(EnumValueDescriptorProto other) : this() {      _hasBits0 = other._hasBits0;      name_ = other.name_;      number_ = other.number_;      options_ = other.HasOptions ? other.options_.Clone() : null;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueDescriptorProto Clone() {      return new EnumValueDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "number" field.</summary>    public const int NumberFieldNumber = 2;    private readonly static int NumberDefaultValue = 0;    private int number_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int Number {      get { if ((_hasBits0 & 1) != 0) { return number_; } else { return NumberDefaultValue; } }      set {        _hasBits0 |= 1;        number_ = value;      }    }    /// <summary>Gets whether the "number" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasNumber {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "number" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearNumber() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 3;    private global::Google.Protobuf.Reflection.EnumValueOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.EnumValueOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as EnumValueDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(EnumValueDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if (Number != other.Number) return false;      if (!object.Equals(Options, other.Options)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      if (HasNumber) hash ^= Number.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      if (HasNumber) {        output.WriteRawTag(16);        output.WriteInt32(Number);      }      if (HasOptions) {        output.WriteRawTag(26);        output.WriteMessage(Options);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      if (HasNumber) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);      }      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(EnumValueDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      if (other.HasNumber) {        Number = other.Number;      }      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.EnumValueOptions();        }        Options.MergeFrom(other.Options);      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 16: {            Number = input.ReadInt32();            break;          }          case 26: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.EnumValueOptions();            }            input.ReadMessage(Options);            break;          }        }      }    }  }  /// <summary>  /// Describes a service.  /// </summary>  internal sealed partial class ServiceDescriptorProto : pb::IMessage<ServiceDescriptorProto> {    private static readonly pb::MessageParser<ServiceDescriptorProto> _parser = new pb::MessageParser<ServiceDescriptorProto>(() => new ServiceDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<ServiceDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[8]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceDescriptorProto(ServiceDescriptorProto other) : this() {      name_ = other.name_;      method_ = other.method_.Clone();      options_ = other.HasOptions ? other.options_.Clone() : null;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceDescriptorProto Clone() {      return new ServiceDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "method" field.</summary>    public const int MethodFieldNumber = 2;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.MethodDescriptorProto> _repeated_method_codec        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> method_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> Method {      get { return method_; }    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 3;    private global::Google.Protobuf.Reflection.ServiceOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.ServiceOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as ServiceDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(ServiceDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if(!method_.Equals(other.method_)) return false;      if (!object.Equals(Options, other.Options)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      hash ^= method_.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      method_.WriteTo(output, _repeated_method_codec);      if (HasOptions) {        output.WriteRawTag(26);        output.WriteMessage(Options);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      size += method_.CalculateSize(_repeated_method_codec);      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(ServiceDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      method_.Add(other.method_);      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.ServiceOptions();        }        Options.MergeFrom(other.Options);      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            method_.AddEntriesFrom(input, _repeated_method_codec);            break;          }          case 26: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.ServiceOptions();            }            input.ReadMessage(Options);            break;          }        }      }    }  }  /// <summary>  /// Describes a method of a service.  /// </summary>  internal sealed partial class MethodDescriptorProto : pb::IMessage<MethodDescriptorProto> {    private static readonly pb::MessageParser<MethodDescriptorProto> _parser = new pb::MessageParser<MethodDescriptorProto>(() => new MethodDescriptorProto());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<MethodDescriptorProto> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[9]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodDescriptorProto() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodDescriptorProto(MethodDescriptorProto other) : this() {      _hasBits0 = other._hasBits0;      name_ = other.name_;      inputType_ = other.inputType_;      outputType_ = other.outputType_;      options_ = other.HasOptions ? other.options_.Clone() : null;      clientStreaming_ = other.clientStreaming_;      serverStreaming_ = other.serverStreaming_;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodDescriptorProto Clone() {      return new MethodDescriptorProto(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 1;    private readonly static string NameDefaultValue = "";    private string name_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Name {      get { return name_ ?? NameDefaultValue; }      set {        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "name" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasName {      get { return name_ != null; }    }    /// <summary>Clears the value of the "name" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearName() {      name_ = null;    }    /// <summary>Field number for the "input_type" field.</summary>    public const int InputTypeFieldNumber = 2;    private readonly static string InputTypeDefaultValue = "";    private string inputType_;    /// <summary>    /// Input and output type names.  These are resolved in the same way as    /// FieldDescriptorProto.type_name, but must refer to a message type.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string InputType {      get { return inputType_ ?? InputTypeDefaultValue; }      set {        inputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "input_type" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasInputType {      get { return inputType_ != null; }    }    /// <summary>Clears the value of the "input_type" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearInputType() {      inputType_ = null;    }    /// <summary>Field number for the "output_type" field.</summary>    public const int OutputTypeFieldNumber = 3;    private readonly static string OutputTypeDefaultValue = "";    private string outputType_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string OutputType {      get { return outputType_ ?? OutputTypeDefaultValue; }      set {        outputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "output_type" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOutputType {      get { return outputType_ != null; }    }    /// <summary>Clears the value of the "output_type" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOutputType() {      outputType_ = null;    }    /// <summary>Field number for the "options" field.</summary>    public const int OptionsFieldNumber = 4;    private global::Google.Protobuf.Reflection.MethodOptions options_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.MethodOptions Options {      get { return options_; }      set {        options_ = value;      }    }    /// <summary>Gets whether the options field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptions {      get { return options_ != null; }    }    /// <summary>Clears the value of the options field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptions() {      options_ = null;    }    /// <summary>Field number for the "client_streaming" field.</summary>    public const int ClientStreamingFieldNumber = 5;    private readonly static bool ClientStreamingDefaultValue = false;    private bool clientStreaming_;    /// <summary>    /// Identifies if client streams multiple client messages    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool ClientStreaming {      get { if ((_hasBits0 & 1) != 0) { return clientStreaming_; } else { return ClientStreamingDefaultValue; } }      set {        _hasBits0 |= 1;        clientStreaming_ = value;      }    }    /// <summary>Gets whether the "client_streaming" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasClientStreaming {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "client_streaming" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearClientStreaming() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "server_streaming" field.</summary>    public const int ServerStreamingFieldNumber = 6;    private readonly static bool ServerStreamingDefaultValue = false;    private bool serverStreaming_;    /// <summary>    /// Identifies if server streams multiple server messages    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool ServerStreaming {      get { if ((_hasBits0 & 2) != 0) { return serverStreaming_; } else { return ServerStreamingDefaultValue; } }      set {        _hasBits0 |= 2;        serverStreaming_ = value;      }    }    /// <summary>Gets whether the "server_streaming" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasServerStreaming {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "server_streaming" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearServerStreaming() {      _hasBits0 &= ~2;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as MethodDescriptorProto);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(MethodDescriptorProto other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Name != other.Name) return false;      if (InputType != other.InputType) return false;      if (OutputType != other.OutputType) return false;      if (!object.Equals(Options, other.Options)) return false;      if (ClientStreaming != other.ClientStreaming) return false;      if (ServerStreaming != other.ServerStreaming) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasName) hash ^= Name.GetHashCode();      if (HasInputType) hash ^= InputType.GetHashCode();      if (HasOutputType) hash ^= OutputType.GetHashCode();      if (HasOptions) hash ^= Options.GetHashCode();      if (HasClientStreaming) hash ^= ClientStreaming.GetHashCode();      if (HasServerStreaming) hash ^= ServerStreaming.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasName) {        output.WriteRawTag(10);        output.WriteString(Name);      }      if (HasInputType) {        output.WriteRawTag(18);        output.WriteString(InputType);      }      if (HasOutputType) {        output.WriteRawTag(26);        output.WriteString(OutputType);      }      if (HasOptions) {        output.WriteRawTag(34);        output.WriteMessage(Options);      }      if (HasClientStreaming) {        output.WriteRawTag(40);        output.WriteBool(ClientStreaming);      }      if (HasServerStreaming) {        output.WriteRawTag(48);        output.WriteBool(ServerStreaming);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasName) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);      }      if (HasInputType) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(InputType);      }      if (HasOutputType) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(OutputType);      }      if (HasOptions) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);      }      if (HasClientStreaming) {        size += 1 + 1;      }      if (HasServerStreaming) {        size += 1 + 1;      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(MethodDescriptorProto other) {      if (other == null) {        return;      }      if (other.HasName) {        Name = other.Name;      }      if (other.HasInputType) {        InputType = other.InputType;      }      if (other.HasOutputType) {        OutputType = other.OutputType;      }      if (other.HasOptions) {        if (!HasOptions) {          Options = new global::Google.Protobuf.Reflection.MethodOptions();        }        Options.MergeFrom(other.Options);      }      if (other.HasClientStreaming) {        ClientStreaming = other.ClientStreaming;      }      if (other.HasServerStreaming) {        ServerStreaming = other.ServerStreaming;      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            Name = input.ReadString();            break;          }          case 18: {            InputType = input.ReadString();            break;          }          case 26: {            OutputType = input.ReadString();            break;          }          case 34: {            if (!HasOptions) {              Options = new global::Google.Protobuf.Reflection.MethodOptions();            }            input.ReadMessage(Options);            break;          }          case 40: {            ClientStreaming = input.ReadBool();            break;          }          case 48: {            ServerStreaming = input.ReadBool();            break;          }        }      }    }  }  internal sealed partial class FileOptions : pb::IMessage<FileOptions> {    private static readonly pb::MessageParser<FileOptions> _parser = new pb::MessageParser<FileOptions>(() => new FileOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FileOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[10]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileOptions(FileOptions other) : this() {      _hasBits0 = other._hasBits0;      javaPackage_ = other.javaPackage_;      javaOuterClassname_ = other.javaOuterClassname_;      javaMultipleFiles_ = other.javaMultipleFiles_;      javaGenerateEqualsAndHash_ = other.javaGenerateEqualsAndHash_;      javaStringCheckUtf8_ = other.javaStringCheckUtf8_;      optimizeFor_ = other.optimizeFor_;      goPackage_ = other.goPackage_;      ccGenericServices_ = other.ccGenericServices_;      javaGenericServices_ = other.javaGenericServices_;      pyGenericServices_ = other.pyGenericServices_;      phpGenericServices_ = other.phpGenericServices_;      deprecated_ = other.deprecated_;      ccEnableArenas_ = other.ccEnableArenas_;      objcClassPrefix_ = other.objcClassPrefix_;      csharpNamespace_ = other.csharpNamespace_;      swiftPrefix_ = other.swiftPrefix_;      phpClassPrefix_ = other.phpClassPrefix_;      phpNamespace_ = other.phpNamespace_;      phpMetadataNamespace_ = other.phpMetadataNamespace_;      rubyPackage_ = other.rubyPackage_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FileOptions Clone() {      return new FileOptions(this);    }    /// <summary>Field number for the "java_package" field.</summary>    public const int JavaPackageFieldNumber = 1;    private readonly static string JavaPackageDefaultValue = "";    private string javaPackage_;    /// <summary>    /// Sets the Java package where classes generated from this .proto will be    /// placed.  By default, the proto package is used, but this is often    /// inappropriate because proto packages do not normally start with backwards    /// domain names.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string JavaPackage {      get { return javaPackage_ ?? JavaPackageDefaultValue; }      set {        javaPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "java_package" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaPackage {      get { return javaPackage_ != null; }    }    /// <summary>Clears the value of the "java_package" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaPackage() {      javaPackage_ = null;    }    /// <summary>Field number for the "java_outer_classname" field.</summary>    public const int JavaOuterClassnameFieldNumber = 8;    private readonly static string JavaOuterClassnameDefaultValue = "";    private string javaOuterClassname_;    /// <summary>    /// If set, all the classes from the .proto file are wrapped in a single    /// outer class with the given name.  This applies to both Proto1    /// (equivalent to the old "--one_java_file" option) and Proto2 (where    /// a .proto always translates to a single class, but you may want to    /// explicitly choose the class name).    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string JavaOuterClassname {      get { return javaOuterClassname_ ?? JavaOuterClassnameDefaultValue; }      set {        javaOuterClassname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "java_outer_classname" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaOuterClassname {      get { return javaOuterClassname_ != null; }    }    /// <summary>Clears the value of the "java_outer_classname" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaOuterClassname() {      javaOuterClassname_ = null;    }    /// <summary>Field number for the "java_multiple_files" field.</summary>    public const int JavaMultipleFilesFieldNumber = 10;    private readonly static bool JavaMultipleFilesDefaultValue = false;    private bool javaMultipleFiles_;    /// <summary>    /// If set true, then the Java code generator will generate a separate .java    /// file for each top-level message, enum, and service defined in the .proto    /// file.  Thus, these types will *not* be nested inside the outer class    /// named by java_outer_classname.  However, the outer class will still be    /// generated to contain the file's getDescriptor() method as well as any    /// top-level extensions defined in the file.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool JavaMultipleFiles {      get { if ((_hasBits0 & 2) != 0) { return javaMultipleFiles_; } else { return JavaMultipleFilesDefaultValue; } }      set {        _hasBits0 |= 2;        javaMultipleFiles_ = value;      }    }    /// <summary>Gets whether the "java_multiple_files" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaMultipleFiles {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "java_multiple_files" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaMultipleFiles() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "java_generate_equals_and_hash" field.</summary>    public const int JavaGenerateEqualsAndHashFieldNumber = 20;    private readonly static bool JavaGenerateEqualsAndHashDefaultValue = false;    private bool javaGenerateEqualsAndHash_;    /// <summary>    /// This option does nothing.    /// </summary>    [global::System.ObsoleteAttribute]    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool JavaGenerateEqualsAndHash {      get { if ((_hasBits0 & 32) != 0) { return javaGenerateEqualsAndHash_; } else { return JavaGenerateEqualsAndHashDefaultValue; } }      set {        _hasBits0 |= 32;        javaGenerateEqualsAndHash_ = value;      }    }    /// <summary>Gets whether the "java_generate_equals_and_hash" field is set</summary>    [global::System.ObsoleteAttribute]    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaGenerateEqualsAndHash {      get { return (_hasBits0 & 32) != 0; }    }    /// <summary>Clears the value of the "java_generate_equals_and_hash" field</summary>    [global::System.ObsoleteAttribute]    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaGenerateEqualsAndHash() {      _hasBits0 &= ~32;    }    /// <summary>Field number for the "java_string_check_utf8" field.</summary>    public const int JavaStringCheckUtf8FieldNumber = 27;    private readonly static bool JavaStringCheckUtf8DefaultValue = false;    private bool javaStringCheckUtf8_;    /// <summary>    /// If set true, then the Java2 code generator will generate code that    /// throws an exception whenever an attempt is made to assign a non-UTF-8    /// byte sequence to a string field.    /// Message reflection will do the same.    /// However, an extension field still accepts non-UTF-8 byte sequences.    /// This option has no effect on when used with the lite runtime.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool JavaStringCheckUtf8 {      get { if ((_hasBits0 & 128) != 0) { return javaStringCheckUtf8_; } else { return JavaStringCheckUtf8DefaultValue; } }      set {        _hasBits0 |= 128;        javaStringCheckUtf8_ = value;      }    }    /// <summary>Gets whether the "java_string_check_utf8" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaStringCheckUtf8 {      get { return (_hasBits0 & 128) != 0; }    }    /// <summary>Clears the value of the "java_string_check_utf8" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaStringCheckUtf8() {      _hasBits0 &= ~128;    }    /// <summary>Field number for the "optimize_for" field.</summary>    public const int OptimizeForFieldNumber = 9;    private readonly static global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode OptimizeForDefaultValue = global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.Speed;    private global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode optimizeFor_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode OptimizeFor {      get { if ((_hasBits0 & 1) != 0) { return optimizeFor_; } else { return OptimizeForDefaultValue; } }      set {        _hasBits0 |= 1;        optimizeFor_ = value;      }    }    /// <summary>Gets whether the "optimize_for" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasOptimizeFor {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "optimize_for" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOptimizeFor() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "go_package" field.</summary>    public const int GoPackageFieldNumber = 11;    private readonly static string GoPackageDefaultValue = "";    private string goPackage_;    /// <summary>    /// Sets the Go package where structs generated from this .proto will be    /// placed. If omitted, the Go package will be derived from the following:    ///   - The basename of the package import path, if provided.    ///   - Otherwise, the package statement in the .proto file, if present.    ///   - Otherwise, the basename of the .proto file, without extension.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string GoPackage {      get { return goPackage_ ?? GoPackageDefaultValue; }      set {        goPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "go_package" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasGoPackage {      get { return goPackage_ != null; }    }    /// <summary>Clears the value of the "go_package" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearGoPackage() {      goPackage_ = null;    }    /// <summary>Field number for the "cc_generic_services" field.</summary>    public const int CcGenericServicesFieldNumber = 16;    private readonly static bool CcGenericServicesDefaultValue = false;    private bool ccGenericServices_;    /// <summary>    /// Should generic services be generated in each language?  "Generic" services    /// are not specific to any particular RPC system.  They are generated by the    /// main code generators in each language (without additional plugins).    /// Generic services were the only kind of service generation supported by    /// early versions of google.protobuf.    ///    /// Generic services are now considered deprecated in favor of using plugins    /// that generate code specific to your particular RPC system.  Therefore,    /// these default to false.  Old code which depends on generic services should    /// explicitly set them to true.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool CcGenericServices {      get { if ((_hasBits0 & 4) != 0) { return ccGenericServices_; } else { return CcGenericServicesDefaultValue; } }      set {        _hasBits0 |= 4;        ccGenericServices_ = value;      }    }    /// <summary>Gets whether the "cc_generic_services" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasCcGenericServices {      get { return (_hasBits0 & 4) != 0; }    }    /// <summary>Clears the value of the "cc_generic_services" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearCcGenericServices() {      _hasBits0 &= ~4;    }    /// <summary>Field number for the "java_generic_services" field.</summary>    public const int JavaGenericServicesFieldNumber = 17;    private readonly static bool JavaGenericServicesDefaultValue = false;    private bool javaGenericServices_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool JavaGenericServices {      get { if ((_hasBits0 & 8) != 0) { return javaGenericServices_; } else { return JavaGenericServicesDefaultValue; } }      set {        _hasBits0 |= 8;        javaGenericServices_ = value;      }    }    /// <summary>Gets whether the "java_generic_services" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJavaGenericServices {      get { return (_hasBits0 & 8) != 0; }    }    /// <summary>Clears the value of the "java_generic_services" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJavaGenericServices() {      _hasBits0 &= ~8;    }    /// <summary>Field number for the "py_generic_services" field.</summary>    public const int PyGenericServicesFieldNumber = 18;    private readonly static bool PyGenericServicesDefaultValue = false;    private bool pyGenericServices_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool PyGenericServices {      get { if ((_hasBits0 & 16) != 0) { return pyGenericServices_; } else { return PyGenericServicesDefaultValue; } }      set {        _hasBits0 |= 16;        pyGenericServices_ = value;      }    }    /// <summary>Gets whether the "py_generic_services" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPyGenericServices {      get { return (_hasBits0 & 16) != 0; }    }    /// <summary>Clears the value of the "py_generic_services" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPyGenericServices() {      _hasBits0 &= ~16;    }    /// <summary>Field number for the "php_generic_services" field.</summary>    public const int PhpGenericServicesFieldNumber = 42;    private readonly static bool PhpGenericServicesDefaultValue = false;    private bool phpGenericServices_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool PhpGenericServices {      get { if ((_hasBits0 & 512) != 0) { return phpGenericServices_; } else { return PhpGenericServicesDefaultValue; } }      set {        _hasBits0 |= 512;        phpGenericServices_ = value;      }    }    /// <summary>Gets whether the "php_generic_services" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPhpGenericServices {      get { return (_hasBits0 & 512) != 0; }    }    /// <summary>Clears the value of the "php_generic_services" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPhpGenericServices() {      _hasBits0 &= ~512;    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 23;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this file deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for everything in the file, or it will be completely ignored; in the very    /// least, this is a formalization for deprecating files.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 64) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 64;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 64) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~64;    }    /// <summary>Field number for the "cc_enable_arenas" field.</summary>    public const int CcEnableArenasFieldNumber = 31;    private readonly static bool CcEnableArenasDefaultValue = false;    private bool ccEnableArenas_;    /// <summary>    /// Enables the use of arenas for the proto messages in this file. This applies    /// only to generated classes for C++.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool CcEnableArenas {      get { if ((_hasBits0 & 256) != 0) { return ccEnableArenas_; } else { return CcEnableArenasDefaultValue; } }      set {        _hasBits0 |= 256;        ccEnableArenas_ = value;      }    }    /// <summary>Gets whether the "cc_enable_arenas" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasCcEnableArenas {      get { return (_hasBits0 & 256) != 0; }    }    /// <summary>Clears the value of the "cc_enable_arenas" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearCcEnableArenas() {      _hasBits0 &= ~256;    }    /// <summary>Field number for the "objc_class_prefix" field.</summary>    public const int ObjcClassPrefixFieldNumber = 36;    private readonly static string ObjcClassPrefixDefaultValue = "";    private string objcClassPrefix_;    /// <summary>    /// Sets the objective c class prefix which is prepended to all objective c    /// generated classes from this .proto. There is no default.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string ObjcClassPrefix {      get { return objcClassPrefix_ ?? ObjcClassPrefixDefaultValue; }      set {        objcClassPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "objc_class_prefix" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasObjcClassPrefix {      get { return objcClassPrefix_ != null; }    }    /// <summary>Clears the value of the "objc_class_prefix" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearObjcClassPrefix() {      objcClassPrefix_ = null;    }    /// <summary>Field number for the "csharp_namespace" field.</summary>    public const int CsharpNamespaceFieldNumber = 37;    private readonly static string CsharpNamespaceDefaultValue = "";    private string csharpNamespace_;    /// <summary>    /// Namespace for generated classes; defaults to the package.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string CsharpNamespace {      get { return csharpNamespace_ ?? CsharpNamespaceDefaultValue; }      set {        csharpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "csharp_namespace" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasCsharpNamespace {      get { return csharpNamespace_ != null; }    }    /// <summary>Clears the value of the "csharp_namespace" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearCsharpNamespace() {      csharpNamespace_ = null;    }    /// <summary>Field number for the "swift_prefix" field.</summary>    public const int SwiftPrefixFieldNumber = 39;    private readonly static string SwiftPrefixDefaultValue = "";    private string swiftPrefix_;    /// <summary>    /// By default Swift generators will take the proto package and CamelCase it    /// replacing '.' with underscore and use that to prefix the types/symbols    /// defined. When this options is provided, they will use this value instead    /// to prefix the types/symbols defined.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string SwiftPrefix {      get { return swiftPrefix_ ?? SwiftPrefixDefaultValue; }      set {        swiftPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "swift_prefix" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasSwiftPrefix {      get { return swiftPrefix_ != null; }    }    /// <summary>Clears the value of the "swift_prefix" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearSwiftPrefix() {      swiftPrefix_ = null;    }    /// <summary>Field number for the "php_class_prefix" field.</summary>    public const int PhpClassPrefixFieldNumber = 40;    private readonly static string PhpClassPrefixDefaultValue = "";    private string phpClassPrefix_;    /// <summary>    /// Sets the php class prefix which is prepended to all php generated classes    /// from this .proto. Default is empty.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string PhpClassPrefix {      get { return phpClassPrefix_ ?? PhpClassPrefixDefaultValue; }      set {        phpClassPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "php_class_prefix" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPhpClassPrefix {      get { return phpClassPrefix_ != null; }    }    /// <summary>Clears the value of the "php_class_prefix" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPhpClassPrefix() {      phpClassPrefix_ = null;    }    /// <summary>Field number for the "php_namespace" field.</summary>    public const int PhpNamespaceFieldNumber = 41;    private readonly static string PhpNamespaceDefaultValue = "";    private string phpNamespace_;    /// <summary>    /// Use this option to change the namespace of php generated classes. Default    /// is empty. When this option is empty, the package name will be used for    /// determining the namespace.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string PhpNamespace {      get { return phpNamespace_ ?? PhpNamespaceDefaultValue; }      set {        phpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "php_namespace" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPhpNamespace {      get { return phpNamespace_ != null; }    }    /// <summary>Clears the value of the "php_namespace" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPhpNamespace() {      phpNamespace_ = null;    }    /// <summary>Field number for the "php_metadata_namespace" field.</summary>    public const int PhpMetadataNamespaceFieldNumber = 44;    private readonly static string PhpMetadataNamespaceDefaultValue = "";    private string phpMetadataNamespace_;    /// <summary>    /// Use this option to change the namespace of php generated metadata classes.    /// Default is empty. When this option is empty, the proto file name will be used    /// for determining the namespace.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string PhpMetadataNamespace {      get { return phpMetadataNamespace_ ?? PhpMetadataNamespaceDefaultValue; }      set {        phpMetadataNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "php_metadata_namespace" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPhpMetadataNamespace {      get { return phpMetadataNamespace_ != null; }    }    /// <summary>Clears the value of the "php_metadata_namespace" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPhpMetadataNamespace() {      phpMetadataNamespace_ = null;    }    /// <summary>Field number for the "ruby_package" field.</summary>    public const int RubyPackageFieldNumber = 45;    private readonly static string RubyPackageDefaultValue = "";    private string rubyPackage_;    /// <summary>    /// Use this option to change the package of ruby generated classes. Default    /// is empty. When this option is not set, the package name will be used for    /// determining the ruby package.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string RubyPackage {      get { return rubyPackage_ ?? RubyPackageDefaultValue; }      set {        rubyPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "ruby_package" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasRubyPackage {      get { return rubyPackage_ != null; }    }    /// <summary>Clears the value of the "ruby_package" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearRubyPackage() {      rubyPackage_ = null;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here.    /// See the documentation for the "Options" section above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FileOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FileOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (JavaPackage != other.JavaPackage) return false;      if (JavaOuterClassname != other.JavaOuterClassname) return false;      if (JavaMultipleFiles != other.JavaMultipleFiles) return false;      if (JavaGenerateEqualsAndHash != other.JavaGenerateEqualsAndHash) return false;      if (JavaStringCheckUtf8 != other.JavaStringCheckUtf8) return false;      if (OptimizeFor != other.OptimizeFor) return false;      if (GoPackage != other.GoPackage) return false;      if (CcGenericServices != other.CcGenericServices) return false;      if (JavaGenericServices != other.JavaGenericServices) return false;      if (PyGenericServices != other.PyGenericServices) return false;      if (PhpGenericServices != other.PhpGenericServices) return false;      if (Deprecated != other.Deprecated) return false;      if (CcEnableArenas != other.CcEnableArenas) return false;      if (ObjcClassPrefix != other.ObjcClassPrefix) return false;      if (CsharpNamespace != other.CsharpNamespace) return false;      if (SwiftPrefix != other.SwiftPrefix) return false;      if (PhpClassPrefix != other.PhpClassPrefix) return false;      if (PhpNamespace != other.PhpNamespace) return false;      if (PhpMetadataNamespace != other.PhpMetadataNamespace) return false;      if (RubyPackage != other.RubyPackage) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasJavaPackage) hash ^= JavaPackage.GetHashCode();      if (HasJavaOuterClassname) hash ^= JavaOuterClassname.GetHashCode();      if (HasJavaMultipleFiles) hash ^= JavaMultipleFiles.GetHashCode();      if (HasJavaGenerateEqualsAndHash) hash ^= JavaGenerateEqualsAndHash.GetHashCode();      if (HasJavaStringCheckUtf8) hash ^= JavaStringCheckUtf8.GetHashCode();      if (HasOptimizeFor) hash ^= OptimizeFor.GetHashCode();      if (HasGoPackage) hash ^= GoPackage.GetHashCode();      if (HasCcGenericServices) hash ^= CcGenericServices.GetHashCode();      if (HasJavaGenericServices) hash ^= JavaGenericServices.GetHashCode();      if (HasPyGenericServices) hash ^= PyGenericServices.GetHashCode();      if (HasPhpGenericServices) hash ^= PhpGenericServices.GetHashCode();      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      if (HasCcEnableArenas) hash ^= CcEnableArenas.GetHashCode();      if (HasObjcClassPrefix) hash ^= ObjcClassPrefix.GetHashCode();      if (HasCsharpNamespace) hash ^= CsharpNamespace.GetHashCode();      if (HasSwiftPrefix) hash ^= SwiftPrefix.GetHashCode();      if (HasPhpClassPrefix) hash ^= PhpClassPrefix.GetHashCode();      if (HasPhpNamespace) hash ^= PhpNamespace.GetHashCode();      if (HasPhpMetadataNamespace) hash ^= PhpMetadataNamespace.GetHashCode();      if (HasRubyPackage) hash ^= RubyPackage.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasJavaPackage) {        output.WriteRawTag(10);        output.WriteString(JavaPackage);      }      if (HasJavaOuterClassname) {        output.WriteRawTag(66);        output.WriteString(JavaOuterClassname);      }      if (HasOptimizeFor) {        output.WriteRawTag(72);        output.WriteEnum((int) OptimizeFor);      }      if (HasJavaMultipleFiles) {        output.WriteRawTag(80);        output.WriteBool(JavaMultipleFiles);      }      if (HasGoPackage) {        output.WriteRawTag(90);        output.WriteString(GoPackage);      }      if (HasCcGenericServices) {        output.WriteRawTag(128, 1);        output.WriteBool(CcGenericServices);      }      if (HasJavaGenericServices) {        output.WriteRawTag(136, 1);        output.WriteBool(JavaGenericServices);      }      if (HasPyGenericServices) {        output.WriteRawTag(144, 1);        output.WriteBool(PyGenericServices);      }      if (HasJavaGenerateEqualsAndHash) {        output.WriteRawTag(160, 1);        output.WriteBool(JavaGenerateEqualsAndHash);      }      if (HasDeprecated) {        output.WriteRawTag(184, 1);        output.WriteBool(Deprecated);      }      if (HasJavaStringCheckUtf8) {        output.WriteRawTag(216, 1);        output.WriteBool(JavaStringCheckUtf8);      }      if (HasCcEnableArenas) {        output.WriteRawTag(248, 1);        output.WriteBool(CcEnableArenas);      }      if (HasObjcClassPrefix) {        output.WriteRawTag(162, 2);        output.WriteString(ObjcClassPrefix);      }      if (HasCsharpNamespace) {        output.WriteRawTag(170, 2);        output.WriteString(CsharpNamespace);      }      if (HasSwiftPrefix) {        output.WriteRawTag(186, 2);        output.WriteString(SwiftPrefix);      }      if (HasPhpClassPrefix) {        output.WriteRawTag(194, 2);        output.WriteString(PhpClassPrefix);      }      if (HasPhpNamespace) {        output.WriteRawTag(202, 2);        output.WriteString(PhpNamespace);      }      if (HasPhpGenericServices) {        output.WriteRawTag(208, 2);        output.WriteBool(PhpGenericServices);      }      if (HasPhpMetadataNamespace) {        output.WriteRawTag(226, 2);        output.WriteString(PhpMetadataNamespace);      }      if (HasRubyPackage) {        output.WriteRawTag(234, 2);        output.WriteString(RubyPackage);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasJavaPackage) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaPackage);      }      if (HasJavaOuterClassname) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaOuterClassname);      }      if (HasJavaMultipleFiles) {        size += 1 + 1;      }      if (HasJavaGenerateEqualsAndHash) {        size += 2 + 1;      }      if (HasJavaStringCheckUtf8) {        size += 2 + 1;      }      if (HasOptimizeFor) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OptimizeFor);      }      if (HasGoPackage) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(GoPackage);      }      if (HasCcGenericServices) {        size += 2 + 1;      }      if (HasJavaGenericServices) {        size += 2 + 1;      }      if (HasPyGenericServices) {        size += 2 + 1;      }      if (HasPhpGenericServices) {        size += 2 + 1;      }      if (HasDeprecated) {        size += 2 + 1;      }      if (HasCcEnableArenas) {        size += 2 + 1;      }      if (HasObjcClassPrefix) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(ObjcClassPrefix);      }      if (HasCsharpNamespace) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(CsharpNamespace);      }      if (HasSwiftPrefix) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(SwiftPrefix);      }      if (HasPhpClassPrefix) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpClassPrefix);      }      if (HasPhpNamespace) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpNamespace);      }      if (HasPhpMetadataNamespace) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpMetadataNamespace);      }      if (HasRubyPackage) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(RubyPackage);      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FileOptions other) {      if (other == null) {        return;      }      if (other.HasJavaPackage) {        JavaPackage = other.JavaPackage;      }      if (other.HasJavaOuterClassname) {        JavaOuterClassname = other.JavaOuterClassname;      }      if (other.HasJavaMultipleFiles) {        JavaMultipleFiles = other.JavaMultipleFiles;      }      if (other.HasJavaGenerateEqualsAndHash) {        JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;      }      if (other.HasJavaStringCheckUtf8) {        JavaStringCheckUtf8 = other.JavaStringCheckUtf8;      }      if (other.HasOptimizeFor) {        OptimizeFor = other.OptimizeFor;      }      if (other.HasGoPackage) {        GoPackage = other.GoPackage;      }      if (other.HasCcGenericServices) {        CcGenericServices = other.CcGenericServices;      }      if (other.HasJavaGenericServices) {        JavaGenericServices = other.JavaGenericServices;      }      if (other.HasPyGenericServices) {        PyGenericServices = other.PyGenericServices;      }      if (other.HasPhpGenericServices) {        PhpGenericServices = other.PhpGenericServices;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      if (other.HasCcEnableArenas) {        CcEnableArenas = other.CcEnableArenas;      }      if (other.HasObjcClassPrefix) {        ObjcClassPrefix = other.ObjcClassPrefix;      }      if (other.HasCsharpNamespace) {        CsharpNamespace = other.CsharpNamespace;      }      if (other.HasSwiftPrefix) {        SwiftPrefix = other.SwiftPrefix;      }      if (other.HasPhpClassPrefix) {        PhpClassPrefix = other.PhpClassPrefix;      }      if (other.HasPhpNamespace) {        PhpNamespace = other.PhpNamespace;      }      if (other.HasPhpMetadataNamespace) {        PhpMetadataNamespace = other.PhpMetadataNamespace;      }      if (other.HasRubyPackage) {        RubyPackage = other.RubyPackage;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 10: {            JavaPackage = input.ReadString();            break;          }          case 66: {            JavaOuterClassname = input.ReadString();            break;          }          case 72: {            OptimizeFor = (global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) input.ReadEnum();            break;          }          case 80: {            JavaMultipleFiles = input.ReadBool();            break;          }          case 90: {            GoPackage = input.ReadString();            break;          }          case 128: {            CcGenericServices = input.ReadBool();            break;          }          case 136: {            JavaGenericServices = input.ReadBool();            break;          }          case 144: {            PyGenericServices = input.ReadBool();            break;          }          case 160: {            JavaGenerateEqualsAndHash = input.ReadBool();            break;          }          case 184: {            Deprecated = input.ReadBool();            break;          }          case 216: {            JavaStringCheckUtf8 = input.ReadBool();            break;          }          case 248: {            CcEnableArenas = input.ReadBool();            break;          }          case 290: {            ObjcClassPrefix = input.ReadString();            break;          }          case 298: {            CsharpNamespace = input.ReadString();            break;          }          case 314: {            SwiftPrefix = input.ReadString();            break;          }          case 322: {            PhpClassPrefix = input.ReadString();            break;          }          case 330: {            PhpNamespace = input.ReadString();            break;          }          case 336: {            PhpGenericServices = input.ReadBool();            break;          }          case 354: {            PhpMetadataNamespace = input.ReadString();            break;          }          case 362: {            RubyPackage = input.ReadString();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the FileOptions message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      /// <summary>      /// Generated classes can be optimized for speed or code size.      /// </summary>      internal enum OptimizeMode {        /// <summary>        /// Generate complete code for parsing, serialization,        /// </summary>        [pbr::OriginalName("SPEED")] Speed = 1,        /// <summary>        /// etc.        /// </summary>        [pbr::OriginalName("CODE_SIZE")] CodeSize = 2,        /// <summary>        /// Generate code using MessageLite and the lite runtime.        /// </summary>        [pbr::OriginalName("LITE_RUNTIME")] LiteRuntime = 3,      }    }    #endregion  }  internal sealed partial class MessageOptions : pb::IMessage<MessageOptions> {    private static readonly pb::MessageParser<MessageOptions> _parser = new pb::MessageParser<MessageOptions>(() => new MessageOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<MessageOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[11]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MessageOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MessageOptions(MessageOptions other) : this() {      _hasBits0 = other._hasBits0;      messageSetWireFormat_ = other.messageSetWireFormat_;      noStandardDescriptorAccessor_ = other.noStandardDescriptorAccessor_;      deprecated_ = other.deprecated_;      mapEntry_ = other.mapEntry_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MessageOptions Clone() {      return new MessageOptions(this);    }    /// <summary>Field number for the "message_set_wire_format" field.</summary>    public const int MessageSetWireFormatFieldNumber = 1;    private readonly static bool MessageSetWireFormatDefaultValue = false;    private bool messageSetWireFormat_;    /// <summary>    /// Set true to use the old proto1 MessageSet wire format for extensions.    /// This is provided for backwards-compatibility with the MessageSet wire    /// format.  You should not use this for any other reason:  It's less    /// efficient, has fewer features, and is more complicated.    ///    /// The message must be defined exactly as follows:    ///   message Foo {    ///     option message_set_wire_format = true;    ///     extensions 4 to max;    ///   }    /// Note that the message cannot have any defined fields; MessageSets only    /// have extensions.    ///    /// All extensions of your type must be singular messages; e.g. they cannot    /// be int32s, enums, or repeated messages.    ///    /// Because this is an option, the above two restrictions are not enforced by    /// the protocol compiler.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool MessageSetWireFormat {      get { if ((_hasBits0 & 1) != 0) { return messageSetWireFormat_; } else { return MessageSetWireFormatDefaultValue; } }      set {        _hasBits0 |= 1;        messageSetWireFormat_ = value;      }    }    /// <summary>Gets whether the "message_set_wire_format" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasMessageSetWireFormat {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "message_set_wire_format" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearMessageSetWireFormat() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "no_standard_descriptor_accessor" field.</summary>    public const int NoStandardDescriptorAccessorFieldNumber = 2;    private readonly static bool NoStandardDescriptorAccessorDefaultValue = false;    private bool noStandardDescriptorAccessor_;    /// <summary>    /// Disables the generation of the standard "descriptor()" accessor, which can    /// conflict with a field of the same name.  This is meant to make migration    /// from proto1 easier; new code should avoid fields named "descriptor".    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool NoStandardDescriptorAccessor {      get { if ((_hasBits0 & 2) != 0) { return noStandardDescriptorAccessor_; } else { return NoStandardDescriptorAccessorDefaultValue; } }      set {        _hasBits0 |= 2;        noStandardDescriptorAccessor_ = value;      }    }    /// <summary>Gets whether the "no_standard_descriptor_accessor" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasNoStandardDescriptorAccessor {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "no_standard_descriptor_accessor" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearNoStandardDescriptorAccessor() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 3;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this message deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for the message, or it will be completely ignored; in the very least,    /// this is a formalization for deprecating messages.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 4) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 4;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 4) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~4;    }    /// <summary>Field number for the "map_entry" field.</summary>    public const int MapEntryFieldNumber = 7;    private readonly static bool MapEntryDefaultValue = false;    private bool mapEntry_;    /// <summary>    /// Whether the message is an automatically generated map entry type for the    /// maps field.    ///    /// For maps fields:    ///     map<KeyType, ValueType> map_field = 1;    /// The parsed descriptor looks like:    ///     message MapFieldEntry {    ///         option map_entry = true;    ///         optional KeyType key = 1;    ///         optional ValueType value = 2;    ///     }    ///     repeated MapFieldEntry map_field = 1;    ///    /// Implementations may choose not to generate the map_entry=true message, but    /// use a native map in the target language to hold the keys and values.    /// The reflection APIs in such implementions still need to work as    /// if the field is a repeated message field.    ///    /// NOTE: Do not set the option in .proto files. Always use the maps syntax    /// instead. The option should only be implicitly set by the proto compiler    /// parser.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool MapEntry {      get { if ((_hasBits0 & 8) != 0) { return mapEntry_; } else { return MapEntryDefaultValue; } }      set {        _hasBits0 |= 8;        mapEntry_ = value;      }    }    /// <summary>Gets whether the "map_entry" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasMapEntry {      get { return (_hasBits0 & 8) != 0; }    }    /// <summary>Clears the value of the "map_entry" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearMapEntry() {      _hasBits0 &= ~8;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as MessageOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(MessageOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (MessageSetWireFormat != other.MessageSetWireFormat) return false;      if (NoStandardDescriptorAccessor != other.NoStandardDescriptorAccessor) return false;      if (Deprecated != other.Deprecated) return false;      if (MapEntry != other.MapEntry) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasMessageSetWireFormat) hash ^= MessageSetWireFormat.GetHashCode();      if (HasNoStandardDescriptorAccessor) hash ^= NoStandardDescriptorAccessor.GetHashCode();      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      if (HasMapEntry) hash ^= MapEntry.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasMessageSetWireFormat) {        output.WriteRawTag(8);        output.WriteBool(MessageSetWireFormat);      }      if (HasNoStandardDescriptorAccessor) {        output.WriteRawTag(16);        output.WriteBool(NoStandardDescriptorAccessor);      }      if (HasDeprecated) {        output.WriteRawTag(24);        output.WriteBool(Deprecated);      }      if (HasMapEntry) {        output.WriteRawTag(56);        output.WriteBool(MapEntry);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasMessageSetWireFormat) {        size += 1 + 1;      }      if (HasNoStandardDescriptorAccessor) {        size += 1 + 1;      }      if (HasDeprecated) {        size += 1 + 1;      }      if (HasMapEntry) {        size += 1 + 1;      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(MessageOptions other) {      if (other == null) {        return;      }      if (other.HasMessageSetWireFormat) {        MessageSetWireFormat = other.MessageSetWireFormat;      }      if (other.HasNoStandardDescriptorAccessor) {        NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      if (other.HasMapEntry) {        MapEntry = other.MapEntry;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 8: {            MessageSetWireFormat = input.ReadBool();            break;          }          case 16: {            NoStandardDescriptorAccessor = input.ReadBool();            break;          }          case 24: {            Deprecated = input.ReadBool();            break;          }          case 56: {            MapEntry = input.ReadBool();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  internal sealed partial class FieldOptions : pb::IMessage<FieldOptions> {    private static readonly pb::MessageParser<FieldOptions> _parser = new pb::MessageParser<FieldOptions>(() => new FieldOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FieldOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[12]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldOptions(FieldOptions other) : this() {      _hasBits0 = other._hasBits0;      ctype_ = other.ctype_;      packed_ = other.packed_;      jstype_ = other.jstype_;      lazy_ = other.lazy_;      deprecated_ = other.deprecated_;      weak_ = other.weak_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FieldOptions Clone() {      return new FieldOptions(this);    }    /// <summary>Field number for the "ctype" field.</summary>    public const int CtypeFieldNumber = 1;    private readonly static global::Google.Protobuf.Reflection.FieldOptions.Types.CType CtypeDefaultValue = global::Google.Protobuf.Reflection.FieldOptions.Types.CType.String;    private global::Google.Protobuf.Reflection.FieldOptions.Types.CType ctype_;    /// <summary>    /// The ctype option instructs the C++ code generator to use a different    /// representation of the field than it normally would.  See the specific    /// options below.  This option is not yet implemented in the open source    /// release -- sorry, we'll try to include it in a future version!    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FieldOptions.Types.CType Ctype {      get { if ((_hasBits0 & 1) != 0) { return ctype_; } else { return CtypeDefaultValue; } }      set {        _hasBits0 |= 1;        ctype_ = value;      }    }    /// <summary>Gets whether the "ctype" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasCtype {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "ctype" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearCtype() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "packed" field.</summary>    public const int PackedFieldNumber = 2;    private readonly static bool PackedDefaultValue = false;    private bool packed_;    /// <summary>    /// The packed option can be enabled for repeated primitive fields to enable    /// a more efficient representation on the wire. Rather than repeatedly    /// writing the tag and type for each element, the entire array is encoded as    /// a single length-delimited blob. In proto3, only explicit setting it to    /// false will avoid using packed encoding.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Packed {      get { if ((_hasBits0 & 2) != 0) { return packed_; } else { return PackedDefaultValue; } }      set {        _hasBits0 |= 2;        packed_ = value;      }    }    /// <summary>Gets whether the "packed" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPacked {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "packed" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPacked() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "jstype" field.</summary>    public const int JstypeFieldNumber = 6;    private readonly static global::Google.Protobuf.Reflection.FieldOptions.Types.JSType JstypeDefaultValue = global::Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNormal;    private global::Google.Protobuf.Reflection.FieldOptions.Types.JSType jstype_;    /// <summary>    /// The jstype option determines the JavaScript type used for values of the    /// field.  The option is permitted only for 64 bit integral and fixed types    /// (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING    /// is represented as JavaScript string, which avoids loss of precision that    /// can happen when a large value is converted to a floating point JavaScript.    /// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to    /// use the JavaScript "number" type.  The behavior of the default option    /// JS_NORMAL is implementation dependent.    ///    /// This option is an enum to permit additional types to be added, e.g.    /// goog.math.Integer.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.FieldOptions.Types.JSType Jstype {      get { if ((_hasBits0 & 16) != 0) { return jstype_; } else { return JstypeDefaultValue; } }      set {        _hasBits0 |= 16;        jstype_ = value;      }    }    /// <summary>Gets whether the "jstype" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasJstype {      get { return (_hasBits0 & 16) != 0; }    }    /// <summary>Clears the value of the "jstype" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearJstype() {      _hasBits0 &= ~16;    }    /// <summary>Field number for the "lazy" field.</summary>    public const int LazyFieldNumber = 5;    private readonly static bool LazyDefaultValue = false;    private bool lazy_;    /// <summary>    /// Should this field be parsed lazily?  Lazy applies only to message-type    /// fields.  It means that when the outer message is initially parsed, the    /// inner message's contents will not be parsed but instead stored in encoded    /// form.  The inner message will actually be parsed when it is first accessed.    ///    /// This is only a hint.  Implementations are free to choose whether to use    /// eager or lazy parsing regardless of the value of this option.  However,    /// setting this option true suggests that the protocol author believes that    /// using lazy parsing on this field is worth the additional bookkeeping    /// overhead typically needed to implement it.    ///    /// This option does not affect the public interface of any generated code;    /// all method signatures remain the same.  Furthermore, thread-safety of the    /// interface is not affected by this option; const methods remain safe to    /// call from multiple threads concurrently, while non-const methods continue    /// to require exclusive access.    ///    /// Note that implementations may choose not to check required fields within    /// a lazy sub-message.  That is, calling IsInitialized() on the outer message    /// may return true even if the inner message has missing required fields.    /// This is necessary because otherwise the inner message would have to be    /// parsed in order to perform the check, defeating the purpose of lazy    /// parsing.  An implementation which chooses not to check required fields    /// must be consistent about it.  That is, for any particular sub-message, the    /// implementation must either *always* check its required fields, or *never*    /// check its required fields, regardless of whether or not the message has    /// been parsed.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Lazy {      get { if ((_hasBits0 & 8) != 0) { return lazy_; } else { return LazyDefaultValue; } }      set {        _hasBits0 |= 8;        lazy_ = value;      }    }    /// <summary>Gets whether the "lazy" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasLazy {      get { return (_hasBits0 & 8) != 0; }    }    /// <summary>Clears the value of the "lazy" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearLazy() {      _hasBits0 &= ~8;    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 3;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this field deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for accessors, or it will be completely ignored; in the very least, this    /// is a formalization for deprecating fields.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 4) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 4;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 4) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~4;    }    /// <summary>Field number for the "weak" field.</summary>    public const int WeakFieldNumber = 10;    private readonly static bool WeakDefaultValue = false;    private bool weak_;    /// <summary>    /// For Google-internal migration only. Do not use.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Weak {      get { if ((_hasBits0 & 32) != 0) { return weak_; } else { return WeakDefaultValue; } }      set {        _hasBits0 |= 32;        weak_ = value;      }    }    /// <summary>Gets whether the "weak" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasWeak {      get { return (_hasBits0 & 32) != 0; }    }    /// <summary>Clears the value of the "weak" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearWeak() {      _hasBits0 &= ~32;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FieldOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FieldOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Ctype != other.Ctype) return false;      if (Packed != other.Packed) return false;      if (Jstype != other.Jstype) return false;      if (Lazy != other.Lazy) return false;      if (Deprecated != other.Deprecated) return false;      if (Weak != other.Weak) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasCtype) hash ^= Ctype.GetHashCode();      if (HasPacked) hash ^= Packed.GetHashCode();      if (HasJstype) hash ^= Jstype.GetHashCode();      if (HasLazy) hash ^= Lazy.GetHashCode();      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      if (HasWeak) hash ^= Weak.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasCtype) {        output.WriteRawTag(8);        output.WriteEnum((int) Ctype);      }      if (HasPacked) {        output.WriteRawTag(16);        output.WriteBool(Packed);      }      if (HasDeprecated) {        output.WriteRawTag(24);        output.WriteBool(Deprecated);      }      if (HasLazy) {        output.WriteRawTag(40);        output.WriteBool(Lazy);      }      if (HasJstype) {        output.WriteRawTag(48);        output.WriteEnum((int) Jstype);      }      if (HasWeak) {        output.WriteRawTag(80);        output.WriteBool(Weak);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasCtype) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Ctype);      }      if (HasPacked) {        size += 1 + 1;      }      if (HasJstype) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Jstype);      }      if (HasLazy) {        size += 1 + 1;      }      if (HasDeprecated) {        size += 1 + 1;      }      if (HasWeak) {        size += 1 + 1;      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FieldOptions other) {      if (other == null) {        return;      }      if (other.HasCtype) {        Ctype = other.Ctype;      }      if (other.HasPacked) {        Packed = other.Packed;      }      if (other.HasJstype) {        Jstype = other.Jstype;      }      if (other.HasLazy) {        Lazy = other.Lazy;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      if (other.HasWeak) {        Weak = other.Weak;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 8: {            Ctype = (global::Google.Protobuf.Reflection.FieldOptions.Types.CType) input.ReadEnum();            break;          }          case 16: {            Packed = input.ReadBool();            break;          }          case 24: {            Deprecated = input.ReadBool();            break;          }          case 40: {            Lazy = input.ReadBool();            break;          }          case 48: {            Jstype = (global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) input.ReadEnum();            break;          }          case 80: {            Weak = input.ReadBool();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the FieldOptions message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      internal enum CType {        /// <summary>        /// Default mode.        /// </summary>        [pbr::OriginalName("STRING")] String = 0,        [pbr::OriginalName("CORD")] Cord = 1,        [pbr::OriginalName("STRING_PIECE")] StringPiece = 2,      }      internal enum JSType {        /// <summary>        /// Use the default type.        /// </summary>        [pbr::OriginalName("JS_NORMAL")] JsNormal = 0,        /// <summary>        /// Use JavaScript strings.        /// </summary>        [pbr::OriginalName("JS_STRING")] JsString = 1,        /// <summary>        /// Use JavaScript numbers.        /// </summary>        [pbr::OriginalName("JS_NUMBER")] JsNumber = 2,      }    }    #endregion  }  internal sealed partial class OneofOptions : pb::IMessage<OneofOptions> {    private static readonly pb::MessageParser<OneofOptions> _parser = new pb::MessageParser<OneofOptions>(() => new OneofOptions());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<OneofOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[13]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofOptions(OneofOptions other) : this() {      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofOptions Clone() {      return new OneofOptions(this);    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as OneofOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(OneofOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(OneofOptions other) {      if (other == null) {        return;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  internal sealed partial class EnumOptions : pb::IMessage<EnumOptions> {    private static readonly pb::MessageParser<EnumOptions> _parser = new pb::MessageParser<EnumOptions>(() => new EnumOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<EnumOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[14]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumOptions(EnumOptions other) : this() {      _hasBits0 = other._hasBits0;      allowAlias_ = other.allowAlias_;      deprecated_ = other.deprecated_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumOptions Clone() {      return new EnumOptions(this);    }    /// <summary>Field number for the "allow_alias" field.</summary>    public const int AllowAliasFieldNumber = 2;    private readonly static bool AllowAliasDefaultValue = false;    private bool allowAlias_;    /// <summary>    /// Set this option to true to allow mapping different tag names to the same    /// value.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool AllowAlias {      get { if ((_hasBits0 & 1) != 0) { return allowAlias_; } else { return AllowAliasDefaultValue; } }      set {        _hasBits0 |= 1;        allowAlias_ = value;      }    }    /// <summary>Gets whether the "allow_alias" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasAllowAlias {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "allow_alias" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearAllowAlias() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 3;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this enum deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for the enum, or it will be completely ignored; in the very least, this    /// is a formalization for deprecating enums.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 2) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 2;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as EnumOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(EnumOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (AllowAlias != other.AllowAlias) return false;      if (Deprecated != other.Deprecated) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasAllowAlias) hash ^= AllowAlias.GetHashCode();      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasAllowAlias) {        output.WriteRawTag(16);        output.WriteBool(AllowAlias);      }      if (HasDeprecated) {        output.WriteRawTag(24);        output.WriteBool(Deprecated);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasAllowAlias) {        size += 1 + 1;      }      if (HasDeprecated) {        size += 1 + 1;      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(EnumOptions other) {      if (other == null) {        return;      }      if (other.HasAllowAlias) {        AllowAlias = other.AllowAlias;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 16: {            AllowAlias = input.ReadBool();            break;          }          case 24: {            Deprecated = input.ReadBool();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  internal sealed partial class EnumValueOptions : pb::IMessage<EnumValueOptions> {    private static readonly pb::MessageParser<EnumValueOptions> _parser = new pb::MessageParser<EnumValueOptions>(() => new EnumValueOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<EnumValueOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[15]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueOptions(EnumValueOptions other) : this() {      _hasBits0 = other._hasBits0;      deprecated_ = other.deprecated_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public EnumValueOptions Clone() {      return new EnumValueOptions(this);    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 1;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this enum value deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for the enum value, or it will be completely ignored; in the very least,    /// this is a formalization for deprecating enum values.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 1;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as EnumValueOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(EnumValueOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Deprecated != other.Deprecated) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasDeprecated) {        output.WriteRawTag(8);        output.WriteBool(Deprecated);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasDeprecated) {        size += 1 + 1;      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(EnumValueOptions other) {      if (other == null) {        return;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 8: {            Deprecated = input.ReadBool();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  internal sealed partial class ServiceOptions : pb::IMessage<ServiceOptions> {    private static readonly pb::MessageParser<ServiceOptions> _parser = new pb::MessageParser<ServiceOptions>(() => new ServiceOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<ServiceOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[16]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceOptions(ServiceOptions other) : this() {      _hasBits0 = other._hasBits0;      deprecated_ = other.deprecated_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ServiceOptions Clone() {      return new ServiceOptions(this);    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 33;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this service deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for the service, or it will be completely ignored; in the very least,    /// this is a formalization for deprecating services.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 1;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as ServiceOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(ServiceOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Deprecated != other.Deprecated) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasDeprecated) {        output.WriteRawTag(136, 2);        output.WriteBool(Deprecated);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasDeprecated) {        size += 2 + 1;      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(ServiceOptions other) {      if (other == null) {        return;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 264: {            Deprecated = input.ReadBool();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }  }  internal sealed partial class MethodOptions : pb::IMessage<MethodOptions> {    private static readonly pb::MessageParser<MethodOptions> _parser = new pb::MessageParser<MethodOptions>(() => new MethodOptions());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<MethodOptions> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[17]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    internal CustomOptions CustomOptions{ get; private set; } = CustomOptions.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodOptions() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodOptions(MethodOptions other) : this() {      _hasBits0 = other._hasBits0;      deprecated_ = other.deprecated_;      idempotencyLevel_ = other.idempotencyLevel_;      uninterpretedOption_ = other.uninterpretedOption_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MethodOptions Clone() {      return new MethodOptions(this);    }    /// <summary>Field number for the "deprecated" field.</summary>    public const int DeprecatedFieldNumber = 33;    private readonly static bool DeprecatedDefaultValue = false;    private bool deprecated_;    /// <summary>    /// Is this method deprecated?    /// Depending on the target platform, this can emit Deprecated annotations    /// for the method, or it will be completely ignored; in the very least,    /// this is a formalization for deprecating methods.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Deprecated {      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }      set {        _hasBits0 |= 1;        deprecated_ = value;      }    }    /// <summary>Gets whether the "deprecated" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDeprecated {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "deprecated" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDeprecated() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "idempotency_level" field.</summary>    public const int IdempotencyLevelFieldNumber = 34;    private readonly static global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel IdempotencyLevelDefaultValue = global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.IdempotencyUnknown;    private global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel idempotencyLevel_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel IdempotencyLevel {      get { if ((_hasBits0 & 2) != 0) { return idempotencyLevel_; } else { return IdempotencyLevelDefaultValue; } }      set {        _hasBits0 |= 2;        idempotencyLevel_ = value;      }    }    /// <summary>Gets whether the "idempotency_level" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasIdempotencyLevel {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "idempotency_level" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearIdempotencyLevel() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "uninterpreted_option" field.</summary>    public const int UninterpretedOptionFieldNumber = 999;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();    /// <summary>    /// The parser stores options it doesn't recognize here. See above.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {      get { return uninterpretedOption_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as MethodOptions);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(MethodOptions other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Deprecated != other.Deprecated) return false;      if (IdempotencyLevel != other.IdempotencyLevel) return false;      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (HasDeprecated) hash ^= Deprecated.GetHashCode();      if (HasIdempotencyLevel) hash ^= IdempotencyLevel.GetHashCode();      hash ^= uninterpretedOption_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      if (HasDeprecated) {        output.WriteRawTag(136, 2);        output.WriteBool(Deprecated);      }      if (HasIdempotencyLevel) {        output.WriteRawTag(144, 2);        output.WriteEnum((int) IdempotencyLevel);      }      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (HasDeprecated) {        size += 2 + 1;      }      if (HasIdempotencyLevel) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) IdempotencyLevel);      }      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(MethodOptions other) {      if (other == null) {        return;      }      if (other.HasDeprecated) {        Deprecated = other.Deprecated;      }      if (other.HasIdempotencyLevel) {        IdempotencyLevel = other.IdempotencyLevel;      }      uninterpretedOption_.Add(other.uninterpretedOption_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            CustomOptions = CustomOptions.ReadOrSkipUnknownField(input);            break;          case 264: {            Deprecated = input.ReadBool();            break;          }          case 272: {            IdempotencyLevel = (global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel) input.ReadEnum();            break;          }          case 7994: {            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the MethodOptions message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      /// <summary>      /// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,      /// or neither? HTTP based RPC implementation may choose GET verb for safe      /// methods, and PUT verb for idempotent methods instead of the default POST.      /// </summary>      internal enum IdempotencyLevel {        [pbr::OriginalName("IDEMPOTENCY_UNKNOWN")] IdempotencyUnknown = 0,        /// <summary>        /// implies idempotent        /// </summary>        [pbr::OriginalName("NO_SIDE_EFFECTS")] NoSideEffects = 1,        /// <summary>        /// idempotent, but may have side effects        /// </summary>        [pbr::OriginalName("IDEMPOTENT")] Idempotent = 2,      }    }    #endregion  }  /// <summary>  /// A message representing a option the parser does not recognize. This only  /// appears in options protos created by the compiler::Parser class.  /// DescriptorPool resolves these when building Descriptor objects. Therefore,  /// options protos in descriptor objects (e.g. returned by Descriptor::options(),  /// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions  /// in them.  /// </summary>  internal sealed partial class UninterpretedOption : pb::IMessage<UninterpretedOption> {    private static readonly pb::MessageParser<UninterpretedOption> _parser = new pb::MessageParser<UninterpretedOption>(() => new UninterpretedOption());    private pb::UnknownFieldSet _unknownFields;    private int _hasBits0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<UninterpretedOption> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[18]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public UninterpretedOption() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public UninterpretedOption(UninterpretedOption other) : this() {      _hasBits0 = other._hasBits0;      name_ = other.name_.Clone();      identifierValue_ = other.identifierValue_;      positiveIntValue_ = other.positiveIntValue_;      negativeIntValue_ = other.negativeIntValue_;      doubleValue_ = other.doubleValue_;      stringValue_ = other.stringValue_;      aggregateValue_ = other.aggregateValue_;      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public UninterpretedOption Clone() {      return new UninterpretedOption(this);    }    /// <summary>Field number for the "name" field.</summary>    public const int NameFieldNumber = 2;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> _repeated_name_codec        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> name_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> Name {      get { return name_; }    }    /// <summary>Field number for the "identifier_value" field.</summary>    public const int IdentifierValueFieldNumber = 3;    private readonly static string IdentifierValueDefaultValue = "";    private string identifierValue_;    /// <summary>    /// The value of the uninterpreted option, in whatever type the tokenizer    /// identified it as during parsing. Exactly one of these should be set.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string IdentifierValue {      get { return identifierValue_ ?? IdentifierValueDefaultValue; }      set {        identifierValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "identifier_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasIdentifierValue {      get { return identifierValue_ != null; }    }    /// <summary>Clears the value of the "identifier_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearIdentifierValue() {      identifierValue_ = null;    }    /// <summary>Field number for the "positive_int_value" field.</summary>    public const int PositiveIntValueFieldNumber = 4;    private readonly static ulong PositiveIntValueDefaultValue = 0UL;    private ulong positiveIntValue_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ulong PositiveIntValue {      get { if ((_hasBits0 & 1) != 0) { return positiveIntValue_; } else { return PositiveIntValueDefaultValue; } }      set {        _hasBits0 |= 1;        positiveIntValue_ = value;      }    }    /// <summary>Gets whether the "positive_int_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasPositiveIntValue {      get { return (_hasBits0 & 1) != 0; }    }    /// <summary>Clears the value of the "positive_int_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearPositiveIntValue() {      _hasBits0 &= ~1;    }    /// <summary>Field number for the "negative_int_value" field.</summary>    public const int NegativeIntValueFieldNumber = 5;    private readonly static long NegativeIntValueDefaultValue = 0L;    private long negativeIntValue_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long NegativeIntValue {      get { if ((_hasBits0 & 2) != 0) { return negativeIntValue_; } else { return NegativeIntValueDefaultValue; } }      set {        _hasBits0 |= 2;        negativeIntValue_ = value;      }    }    /// <summary>Gets whether the "negative_int_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasNegativeIntValue {      get { return (_hasBits0 & 2) != 0; }    }    /// <summary>Clears the value of the "negative_int_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearNegativeIntValue() {      _hasBits0 &= ~2;    }    /// <summary>Field number for the "double_value" field.</summary>    public const int DoubleValueFieldNumber = 6;    private readonly static double DoubleValueDefaultValue = 0D;    private double doubleValue_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public double DoubleValue {      get { if ((_hasBits0 & 4) != 0) { return doubleValue_; } else { return DoubleValueDefaultValue; } }      set {        _hasBits0 |= 4;        doubleValue_ = value;      }    }    /// <summary>Gets whether the "double_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasDoubleValue {      get { return (_hasBits0 & 4) != 0; }    }    /// <summary>Clears the value of the "double_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearDoubleValue() {      _hasBits0 &= ~4;    }    /// <summary>Field number for the "string_value" field.</summary>    public const int StringValueFieldNumber = 7;    private readonly static pb::ByteString StringValueDefaultValue = pb::ByteString.Empty;    private pb::ByteString stringValue_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pb::ByteString StringValue {      get { return stringValue_ ?? StringValueDefaultValue; }      set {        stringValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "string_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasStringValue {      get { return stringValue_ != null; }    }    /// <summary>Clears the value of the "string_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearStringValue() {      stringValue_ = null;    }    /// <summary>Field number for the "aggregate_value" field.</summary>    public const int AggregateValueFieldNumber = 8;    private readonly static string AggregateValueDefaultValue = "";    private string aggregateValue_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string AggregateValue {      get { return aggregateValue_ ?? AggregateValueDefaultValue; }      set {        aggregateValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Gets whether the "aggregate_value" field is set</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool HasAggregateValue {      get { return aggregateValue_ != null; }    }    /// <summary>Clears the value of the "aggregate_value" field</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearAggregateValue() {      aggregateValue_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as UninterpretedOption);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(UninterpretedOption other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!name_.Equals(other.name_)) return false;      if (IdentifierValue != other.IdentifierValue) return false;      if (PositiveIntValue != other.PositiveIntValue) return false;      if (NegativeIntValue != other.NegativeIntValue) return false;      if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DoubleValue, other.DoubleValue)) return false;      if (StringValue != other.StringValue) return false;      if (AggregateValue != other.AggregateValue) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= name_.GetHashCode();      if (HasIdentifierValue) hash ^= IdentifierValue.GetHashCode();      if (HasPositiveIntValue) hash ^= PositiveIntValue.GetHashCode();      if (HasNegativeIntValue) hash ^= NegativeIntValue.GetHashCode();      if (HasDoubleValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DoubleValue);      if (HasStringValue) hash ^= StringValue.GetHashCode();      if (HasAggregateValue) hash ^= AggregateValue.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      name_.WriteTo(output, _repeated_name_codec);      if (HasIdentifierValue) {        output.WriteRawTag(26);        output.WriteString(IdentifierValue);      }      if (HasPositiveIntValue) {        output.WriteRawTag(32);        output.WriteUInt64(PositiveIntValue);      }      if (HasNegativeIntValue) {        output.WriteRawTag(40);        output.WriteInt64(NegativeIntValue);      }      if (HasDoubleValue) {        output.WriteRawTag(49);        output.WriteDouble(DoubleValue);      }      if (HasStringValue) {        output.WriteRawTag(58);        output.WriteBytes(StringValue);      }      if (HasAggregateValue) {        output.WriteRawTag(66);        output.WriteString(AggregateValue);      }      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += name_.CalculateSize(_repeated_name_codec);      if (HasIdentifierValue) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(IdentifierValue);      }      if (HasPositiveIntValue) {        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PositiveIntValue);      }      if (HasNegativeIntValue) {        size += 1 + pb::CodedOutputStream.ComputeInt64Size(NegativeIntValue);      }      if (HasDoubleValue) {        size += 1 + 8;      }      if (HasStringValue) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(StringValue);      }      if (HasAggregateValue) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(AggregateValue);      }      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(UninterpretedOption other) {      if (other == null) {        return;      }      name_.Add(other.name_);      if (other.HasIdentifierValue) {        IdentifierValue = other.IdentifierValue;      }      if (other.HasPositiveIntValue) {        PositiveIntValue = other.PositiveIntValue;      }      if (other.HasNegativeIntValue) {        NegativeIntValue = other.NegativeIntValue;      }      if (other.HasDoubleValue) {        DoubleValue = other.DoubleValue;      }      if (other.HasStringValue) {        StringValue = other.StringValue;      }      if (other.HasAggregateValue) {        AggregateValue = other.AggregateValue;      }      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 18: {            name_.AddEntriesFrom(input, _repeated_name_codec);            break;          }          case 26: {            IdentifierValue = input.ReadString();            break;          }          case 32: {            PositiveIntValue = input.ReadUInt64();            break;          }          case 40: {            NegativeIntValue = input.ReadInt64();            break;          }          case 49: {            DoubleValue = input.ReadDouble();            break;          }          case 58: {            StringValue = input.ReadBytes();            break;          }          case 66: {            AggregateValue = input.ReadString();            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the UninterpretedOption message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      /// <summary>      /// The name of the uninterpreted option.  Each string represents a segment in      /// a dot-separated name.  is_extension is true iff a segment represents an      /// extension (denoted with parentheses in options specs in .proto files).      /// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents      /// "foo.(bar.baz).qux".      /// </summary>      internal sealed partial class NamePart : pb::IMessage<NamePart> {        private static readonly pb::MessageParser<NamePart> _parser = new pb::MessageParser<NamePart>(() => new NamePart());        private pb::UnknownFieldSet _unknownFields;        private int _hasBits0;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<NamePart> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.UninterpretedOption.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NamePart() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NamePart(NamePart other) : this() {          _hasBits0 = other._hasBits0;          namePart_ = other.namePart_;          isExtension_ = other.isExtension_;          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NamePart Clone() {          return new NamePart(this);        }        /// <summary>Field number for the "name_part" field.</summary>        public const int NamePart_FieldNumber = 1;        private readonly static string NamePart_DefaultValue = "";        private string namePart_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public string NamePart_ {          get { return namePart_ ?? NamePart_DefaultValue; }          set {            namePart_ = pb::ProtoPreconditions.CheckNotNull(value, "value");          }        }        /// <summary>Gets whether the "name_part" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasNamePart_ {          get { return namePart_ != null; }        }        /// <summary>Clears the value of the "name_part" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearNamePart_() {          namePart_ = null;        }        /// <summary>Field number for the "is_extension" field.</summary>        public const int IsExtensionFieldNumber = 2;        private readonly static bool IsExtensionDefaultValue = false;        private bool isExtension_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool IsExtension {          get { if ((_hasBits0 & 1) != 0) { return isExtension_; } else { return IsExtensionDefaultValue; } }          set {            _hasBits0 |= 1;            isExtension_ = value;          }        }        /// <summary>Gets whether the "is_extension" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasIsExtension {          get { return (_hasBits0 & 1) != 0; }        }        /// <summary>Clears the value of the "is_extension" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearIsExtension() {          _hasBits0 &= ~1;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as NamePart);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(NamePart other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (NamePart_ != other.NamePart_) return false;          if (IsExtension != other.IsExtension) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (HasNamePart_) hash ^= NamePart_.GetHashCode();          if (HasIsExtension) hash ^= IsExtension.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          if (HasNamePart_) {            output.WriteRawTag(10);            output.WriteString(NamePart_);          }          if (HasIsExtension) {            output.WriteRawTag(16);            output.WriteBool(IsExtension);          }          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (HasNamePart_) {            size += 1 + pb::CodedOutputStream.ComputeStringSize(NamePart_);          }          if (HasIsExtension) {            size += 1 + 1;          }          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(NamePart other) {          if (other == null) {            return;          }          if (other.HasNamePart_) {            NamePart_ = other.NamePart_;          }          if (other.HasIsExtension) {            IsExtension = other.IsExtension;          }          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 10: {                NamePart_ = input.ReadString();                break;              }              case 16: {                IsExtension = input.ReadBool();                break;              }            }          }        }      }    }    #endregion  }  /// <summary>  /// Encapsulates information about the original source file from which a  /// FileDescriptorProto was generated.  /// </summary>  internal sealed partial class SourceCodeInfo : pb::IMessage<SourceCodeInfo> {    private static readonly pb::MessageParser<SourceCodeInfo> _parser = new pb::MessageParser<SourceCodeInfo>(() => new SourceCodeInfo());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<SourceCodeInfo> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[19]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SourceCodeInfo() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SourceCodeInfo(SourceCodeInfo other) : this() {      location_ = other.location_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SourceCodeInfo Clone() {      return new SourceCodeInfo(this);    }    /// <summary>Field number for the "location" field.</summary>    public const int LocationFieldNumber = 1;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> _repeated_location_codec        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> location_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location>();    /// <summary>    /// A Location identifies a piece of source code in a .proto file which    /// corresponds to a particular definition.  This information is intended    /// to be useful to IDEs, code indexers, documentation generators, and similar    /// tools.    ///    /// For example, say we have a file like:    ///   message Foo {    ///     optional string foo = 1;    ///   }    /// Let's look at just the field definition:    ///   optional string foo = 1;    ///   ^       ^^     ^^  ^  ^^^    ///   a       bc     de  f  ghi    /// We have the following locations:    ///   span   path               represents    ///   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.    ///   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).    ///   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).    ///   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).    ///   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).    ///    /// Notes:    /// - A location may refer to a repeated field itself (i.e. not to any    ///   particular index within it).  This is used whenever a set of elements are    ///   logically enclosed in a single code segment.  For example, an entire    ///   extend block (possibly containing multiple extension definitions) will    ///   have an outer location whose path refers to the "extensions" repeated    ///   field without an index.    /// - Multiple locations may have the same path.  This happens when a single    ///   logical declaration is spread out across multiple places.  The most    ///   obvious example is the "extend" block again -- there may be multiple    ///   extend blocks in the same scope, each of which will have the same path.    /// - A location's span is not always a subset of its parent's span.  For    ///   example, the "extendee" of an extension declaration appears at the    ///   beginning of the "extend" block and is shared by all extensions within    ///   the block.    /// - Just because a location's span is a subset of some other location's span    ///   does not mean that it is a descendent.  For example, a "group" defines    ///   both a type and a field in a single declaration.  Thus, the locations    ///   corresponding to the type and field and their components will overlap.    /// - Code which tries to interpret locations should probably be designed to    ///   ignore those that it doesn't understand, as more types of locations could    ///   be recorded in the future.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> Location {      get { return location_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as SourceCodeInfo);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(SourceCodeInfo other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!location_.Equals(other.location_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= location_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      location_.WriteTo(output, _repeated_location_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += location_.CalculateSize(_repeated_location_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(SourceCodeInfo other) {      if (other == null) {        return;      }      location_.Add(other.location_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            location_.AddEntriesFrom(input, _repeated_location_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the SourceCodeInfo message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      internal sealed partial class Location : pb::IMessage<Location> {        private static readonly pb::MessageParser<Location> _parser = new pb::MessageParser<Location>(() => new Location());        private pb::UnknownFieldSet _unknownFields;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<Location> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.SourceCodeInfo.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Location() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Location(Location other) : this() {          path_ = other.path_.Clone();          span_ = other.span_.Clone();          leadingComments_ = other.leadingComments_;          trailingComments_ = other.trailingComments_;          leadingDetachedComments_ = other.leadingDetachedComments_.Clone();          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Location Clone() {          return new Location(this);        }        /// <summary>Field number for the "path" field.</summary>        public const int PathFieldNumber = 1;        private static readonly pb::FieldCodec<int> _repeated_path_codec            = pb::FieldCodec.ForInt32(10);        private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();        /// <summary>        /// Identifies which part of the FileDescriptorProto was defined at this        /// location.        ///        /// Each element is a field number or an index.  They form a path from        /// the root FileDescriptorProto to the place where the definition.  For        /// example, this path:        ///   [ 4, 3, 2, 7, 1 ]        /// refers to:        ///   file.message_type(3)  // 4, 3        ///       .field(7)         // 2, 7        ///       .name()           // 1        /// This is because FileDescriptorProto.message_type has field number 4:        ///   repeated DescriptorProto message_type = 4;        /// and DescriptorProto.field has field number 2:        ///   repeated FieldDescriptorProto field = 2;        /// and FieldDescriptorProto.name has field number 1:        ///   optional string name = 1;        ///        /// Thus, the above path gives the location of a field name.  If we removed        /// the last element:        ///   [ 4, 3, 2, 7 ]        /// this path refers to the whole field declaration (from the beginning        /// of the label to the terminating semicolon).        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public pbc::RepeatedField<int> Path {          get { return path_; }        }        /// <summary>Field number for the "span" field.</summary>        public const int SpanFieldNumber = 2;        private static readonly pb::FieldCodec<int> _repeated_span_codec            = pb::FieldCodec.ForInt32(18);        private readonly pbc::RepeatedField<int> span_ = new pbc::RepeatedField<int>();        /// <summary>        /// Always has exactly three or four elements: start line, start column,        /// end line (optional, otherwise assumed same as start line), end column.        /// These are packed into a single field for efficiency.  Note that line        /// and column numbers are zero-based -- typically you will want to add        /// 1 to each before displaying to a user.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public pbc::RepeatedField<int> Span {          get { return span_; }        }        /// <summary>Field number for the "leading_comments" field.</summary>        public const int LeadingCommentsFieldNumber = 3;        private readonly static string LeadingCommentsDefaultValue = "";        private string leadingComments_;        /// <summary>        /// If this SourceCodeInfo represents a complete declaration, these are any        /// comments appearing before and after the declaration which appear to be        /// attached to the declaration.        ///        /// A series of line comments appearing on consecutive lines, with no other        /// tokens appearing on those lines, will be treated as a single comment.        ///        /// leading_detached_comments will keep paragraphs of comments that appear        /// before (but not connected to) the current element. Each paragraph,        /// separated by empty lines, will be one comment element in the repeated        /// field.        ///        /// Only the comment content is provided; comment markers (e.g. //) are        /// stripped out.  For block comments, leading whitespace and an asterisk        /// will be stripped from the beginning of each line other than the first.        /// Newlines are included in the output.        ///        /// Examples:        ///        ///   optional int32 foo = 1;  // Comment attached to foo.        ///   // Comment attached to bar.        ///   optional int32 bar = 2;        ///        ///   optional string baz = 3;        ///   // Comment attached to baz.        ///   // Another line attached to baz.        ///        ///   // Comment attached to qux.        ///   //        ///   // Another line attached to qux.        ///   optional double qux = 4;        ///        ///   // Detached comment for corge. This is not leading or trailing comments        ///   // to qux or corge because there are blank lines separating it from        ///   // both.        ///        ///   // Detached comment for corge paragraph 2.        ///        ///   optional string corge = 5;        ///   /* Block comment attached        ///    * to corge.  Leading asterisks        ///    * will be removed. */        ///   /* Block comment attached to        ///    * grault. */        ///   optional int32 grault = 6;        ///        ///   // ignored detached comments.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public string LeadingComments {          get { return leadingComments_ ?? LeadingCommentsDefaultValue; }          set {            leadingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");          }        }        /// <summary>Gets whether the "leading_comments" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasLeadingComments {          get { return leadingComments_ != null; }        }        /// <summary>Clears the value of the "leading_comments" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearLeadingComments() {          leadingComments_ = null;        }        /// <summary>Field number for the "trailing_comments" field.</summary>        public const int TrailingCommentsFieldNumber = 4;        private readonly static string TrailingCommentsDefaultValue = "";        private string trailingComments_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public string TrailingComments {          get { return trailingComments_ ?? TrailingCommentsDefaultValue; }          set {            trailingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");          }        }        /// <summary>Gets whether the "trailing_comments" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasTrailingComments {          get { return trailingComments_ != null; }        }        /// <summary>Clears the value of the "trailing_comments" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearTrailingComments() {          trailingComments_ = null;        }        /// <summary>Field number for the "leading_detached_comments" field.</summary>        public const int LeadingDetachedCommentsFieldNumber = 6;        private static readonly pb::FieldCodec<string> _repeated_leadingDetachedComments_codec            = pb::FieldCodec.ForString(50);        private readonly pbc::RepeatedField<string> leadingDetachedComments_ = new pbc::RepeatedField<string>();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public pbc::RepeatedField<string> LeadingDetachedComments {          get { return leadingDetachedComments_; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as Location);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(Location other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if(!path_.Equals(other.path_)) return false;          if(!span_.Equals(other.span_)) return false;          if (LeadingComments != other.LeadingComments) return false;          if (TrailingComments != other.TrailingComments) return false;          if(!leadingDetachedComments_.Equals(other.leadingDetachedComments_)) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          hash ^= path_.GetHashCode();          hash ^= span_.GetHashCode();          if (HasLeadingComments) hash ^= LeadingComments.GetHashCode();          if (HasTrailingComments) hash ^= TrailingComments.GetHashCode();          hash ^= leadingDetachedComments_.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          path_.WriteTo(output, _repeated_path_codec);          span_.WriteTo(output, _repeated_span_codec);          if (HasLeadingComments) {            output.WriteRawTag(26);            output.WriteString(LeadingComments);          }          if (HasTrailingComments) {            output.WriteRawTag(34);            output.WriteString(TrailingComments);          }          leadingDetachedComments_.WriteTo(output, _repeated_leadingDetachedComments_codec);          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          size += path_.CalculateSize(_repeated_path_codec);          size += span_.CalculateSize(_repeated_span_codec);          if (HasLeadingComments) {            size += 1 + pb::CodedOutputStream.ComputeStringSize(LeadingComments);          }          if (HasTrailingComments) {            size += 1 + pb::CodedOutputStream.ComputeStringSize(TrailingComments);          }          size += leadingDetachedComments_.CalculateSize(_repeated_leadingDetachedComments_codec);          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(Location other) {          if (other == null) {            return;          }          path_.Add(other.path_);          span_.Add(other.span_);          if (other.HasLeadingComments) {            LeadingComments = other.LeadingComments;          }          if (other.HasTrailingComments) {            TrailingComments = other.TrailingComments;          }          leadingDetachedComments_.Add(other.leadingDetachedComments_);          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 10:              case 8: {                path_.AddEntriesFrom(input, _repeated_path_codec);                break;              }              case 18:              case 16: {                span_.AddEntriesFrom(input, _repeated_span_codec);                break;              }              case 26: {                LeadingComments = input.ReadString();                break;              }              case 34: {                TrailingComments = input.ReadString();                break;              }              case 50: {                leadingDetachedComments_.AddEntriesFrom(input, _repeated_leadingDetachedComments_codec);                break;              }            }          }        }      }    }    #endregion  }  /// <summary>  /// Describes the relationship between generated code and its original source  /// file. A GeneratedCodeInfo message is associated with only one generated  /// source file, but may contain references to different source .proto files.  /// </summary>  internal sealed partial class GeneratedCodeInfo : pb::IMessage<GeneratedCodeInfo> {    private static readonly pb::MessageParser<GeneratedCodeInfo> _parser = new pb::MessageParser<GeneratedCodeInfo>(() => new GeneratedCodeInfo());    private pb::UnknownFieldSet _unknownFields;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<GeneratedCodeInfo> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[20]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public GeneratedCodeInfo() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public GeneratedCodeInfo(GeneratedCodeInfo other) : this() {      annotation_ = other.annotation_.Clone();      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public GeneratedCodeInfo Clone() {      return new GeneratedCodeInfo(this);    }    /// <summary>Field number for the "annotation" field.</summary>    public const int AnnotationFieldNumber = 1;    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> _repeated_annotation_codec        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> annotation_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation>();    /// <summary>    /// An Annotation connects some span of text in generated code to an element    /// of its generating .proto file.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> Annotation {      get { return annotation_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as GeneratedCodeInfo);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(GeneratedCodeInfo other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!annotation_.Equals(other.annotation_)) return false;      return Equals(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= annotation_.GetHashCode();      if (_unknownFields != null) {        hash ^= _unknownFields.GetHashCode();      }      return hash;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override string ToString() {      return pb::JsonFormatter.ToDiagnosticString(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void WriteTo(pb::CodedOutputStream output) {      annotation_.WriteTo(output, _repeated_annotation_codec);      if (_unknownFields != null) {        _unknownFields.WriteTo(output);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += annotation_.CalculateSize(_repeated_annotation_codec);      if (_unknownFields != null) {        size += _unknownFields.CalculateSize();      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(GeneratedCodeInfo other) {      if (other == null) {        return;      }      annotation_.Add(other.annotation_);      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {              return;            }            break;          case 10: {            annotation_.AddEntriesFrom(input, _repeated_annotation_codec);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the GeneratedCodeInfo message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      internal sealed partial class Annotation : pb::IMessage<Annotation> {        private static readonly pb::MessageParser<Annotation> _parser = new pb::MessageParser<Annotation>(() => new Annotation());        private pb::UnknownFieldSet _unknownFields;        private int _hasBits0;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<Annotation> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.Reflection.GeneratedCodeInfo.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Annotation() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Annotation(Annotation other) : this() {          _hasBits0 = other._hasBits0;          path_ = other.path_.Clone();          sourceFile_ = other.sourceFile_;          begin_ = other.begin_;          end_ = other.end_;          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public Annotation Clone() {          return new Annotation(this);        }        /// <summary>Field number for the "path" field.</summary>        public const int PathFieldNumber = 1;        private static readonly pb::FieldCodec<int> _repeated_path_codec            = pb::FieldCodec.ForInt32(10);        private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();        /// <summary>        /// Identifies the element in the original source .proto file. This field        /// is formatted the same as SourceCodeInfo.Location.path.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public pbc::RepeatedField<int> Path {          get { return path_; }        }        /// <summary>Field number for the "source_file" field.</summary>        public const int SourceFileFieldNumber = 2;        private readonly static string SourceFileDefaultValue = "";        private string sourceFile_;        /// <summary>        /// Identifies the filesystem path to the original source .proto.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public string SourceFile {          get { return sourceFile_ ?? SourceFileDefaultValue; }          set {            sourceFile_ = pb::ProtoPreconditions.CheckNotNull(value, "value");          }        }        /// <summary>Gets whether the "source_file" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasSourceFile {          get { return sourceFile_ != null; }        }        /// <summary>Clears the value of the "source_file" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearSourceFile() {          sourceFile_ = null;        }        /// <summary>Field number for the "begin" field.</summary>        public const int BeginFieldNumber = 3;        private readonly static int BeginDefaultValue = 0;        private int begin_;        /// <summary>        /// Identifies the starting offset in bytes in the generated code        /// that relates to the identified object.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Begin {          get { if ((_hasBits0 & 1) != 0) { return begin_; } else { return BeginDefaultValue; } }          set {            _hasBits0 |= 1;            begin_ = value;          }        }        /// <summary>Gets whether the "begin" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasBegin {          get { return (_hasBits0 & 1) != 0; }        }        /// <summary>Clears the value of the "begin" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearBegin() {          _hasBits0 &= ~1;        }        /// <summary>Field number for the "end" field.</summary>        public const int EndFieldNumber = 4;        private readonly static int EndDefaultValue = 0;        private int end_;        /// <summary>        /// Identifies the ending offset in bytes in the generated code that        /// relates to the identified offset. The end offset should be one past        /// the last relevant byte (so the length of the text = end - begin).        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int End {          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }          set {            _hasBits0 |= 2;            end_ = value;          }        }        /// <summary>Gets whether the "end" field is set</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool HasEnd {          get { return (_hasBits0 & 2) != 0; }        }        /// <summary>Clears the value of the "end" field</summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void ClearEnd() {          _hasBits0 &= ~2;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as Annotation);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(Annotation other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if(!path_.Equals(other.path_)) return false;          if (SourceFile != other.SourceFile) return false;          if (Begin != other.Begin) return false;          if (End != other.End) return false;          return Equals(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          hash ^= path_.GetHashCode();          if (HasSourceFile) hash ^= SourceFile.GetHashCode();          if (HasBegin) hash ^= Begin.GetHashCode();          if (HasEnd) hash ^= End.GetHashCode();          if (_unknownFields != null) {            hash ^= _unknownFields.GetHashCode();          }          return hash;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override string ToString() {          return pb::JsonFormatter.ToDiagnosticString(this);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void WriteTo(pb::CodedOutputStream output) {          path_.WriteTo(output, _repeated_path_codec);          if (HasSourceFile) {            output.WriteRawTag(18);            output.WriteString(SourceFile);          }          if (HasBegin) {            output.WriteRawTag(24);            output.WriteInt32(Begin);          }          if (HasEnd) {            output.WriteRawTag(32);            output.WriteInt32(End);          }          if (_unknownFields != null) {            _unknownFields.WriteTo(output);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          size += path_.CalculateSize(_repeated_path_codec);          if (HasSourceFile) {            size += 1 + pb::CodedOutputStream.ComputeStringSize(SourceFile);          }          if (HasBegin) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Begin);          }          if (HasEnd) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);          }          if (_unknownFields != null) {            size += _unknownFields.CalculateSize();          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(Annotation other) {          if (other == null) {            return;          }          path_.Add(other.path_);          if (other.HasSourceFile) {            SourceFile = other.SourceFile;          }          if (other.HasBegin) {            Begin = other.Begin;          }          if (other.HasEnd) {            End = other.End;          }          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {                  return;                }                break;              case 10:              case 8: {                path_.AddEntriesFrom(input, _repeated_path_codec);                break;              }              case 18: {                SourceFile = input.ReadString();                break;              }              case 24: {                Begin = input.ReadInt32();                break;              }              case 32: {                End = input.ReadInt32();                break;              }            }          }        }      }    }    #endregion  }  #endregion}#endregion Designer generated code
 |