| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766 | // Generated by the protocol buffer compiler.  DO NOT EDIT!// source: google/protobuf/unittest_proto3.proto#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.TestProtos {  /// <summary>Holder for reflection information generated from google/protobuf/unittest_proto3.proto</summary>  public static partial class UnittestProto3Reflection {    #region Descriptor    /// <summary>File descriptor for google/protobuf/unittest_proto3.proto</summary>    public static pbr::FileDescriptor Descriptor {      get { return descriptor; }    }    private static pbr::FileDescriptor descriptor;    static UnittestProto3Reflection() {      byte[] descriptorData = global::System.Convert.FromBase64String(          string.Concat(            "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEhFwcm90",            "b2J1Zl91bml0dGVzdBosZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X2ltcG9y",            "dF9wcm90bzMucHJvdG8i8A8KDFRlc3RBbGxUeXBlcxIUCgxzaW5nbGVfaW50",            "MzIYASABKAUSFAoMc2luZ2xlX2ludDY0GAIgASgDEhUKDXNpbmdsZV91aW50",            "MzIYAyABKA0SFQoNc2luZ2xlX3VpbnQ2NBgEIAEoBBIVCg1zaW5nbGVfc2lu",            "dDMyGAUgASgREhUKDXNpbmdsZV9zaW50NjQYBiABKBISFgoOc2luZ2xlX2Zp",            "eGVkMzIYByABKAcSFgoOc2luZ2xlX2ZpeGVkNjQYCCABKAYSFwoPc2luZ2xl",            "X3NmaXhlZDMyGAkgASgPEhcKD3NpbmdsZV9zZml4ZWQ2NBgKIAEoEBIUCgxz",            "aW5nbGVfZmxvYXQYCyABKAISFQoNc2luZ2xlX2RvdWJsZRgMIAEoARITCgtz",            "aW5nbGVfYm9vbBgNIAEoCBIVCg1zaW5nbGVfc3RyaW5nGA4gASgJEhQKDHNp",            "bmdsZV9ieXRlcxgPIAEoDBJMChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiAB",            "KAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVz",            "c2FnZRJBChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9i",            "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USRgoVc2luZ2xlX2ltcG9ydF9t",            "ZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9y",            "dE1lc3NhZ2USRgoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMioucHJvdG9i",            "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoTc2luZ2xl",            "X2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVp",            "Z25FbnVtEkAKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVm",            "X3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtElMKHHNpbmdsZV9wdWJsaWNf",            "aW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBv",            "cnQuUHVibGljSW1wb3J0TWVzc2FnZRIWCg5yZXBlYXRlZF9pbnQzMhgfIAMo",            "BRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMoAxIXCg9yZXBlYXRlZF91aW50MzIY",            "ISADKA0SFwoPcmVwZWF0ZWRfdWludDY0GCIgAygEEhcKD3JlcGVhdGVkX3Np",            "bnQzMhgjIAMoERIXCg9yZXBlYXRlZF9zaW50NjQYJCADKBISGAoQcmVwZWF0",            "ZWRfZml4ZWQzMhglIAMoBxIYChByZXBlYXRlZF9maXhlZDY0GCYgAygGEhkK",            "EXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPEhkKEXJlcGVhdGVkX3NmaXhlZDY0",            "GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0GCkgAygCEhcKD3JlcGVhdGVkX2Rv",            "dWJsZRgqIAMoARIVCg1yZXBlYXRlZF9ib29sGCsgAygIEhcKD3JlcGVhdGVk",            "X3N0cmluZxgsIAMoCRIWCg5yZXBlYXRlZF9ieXRlcxgtIAMoDBJOChdyZXBl",            "YXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0",            "LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkMKGHJlcGVhdGVkX2ZvcmVp",            "Z25fbWVzc2FnZRgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25N",            "ZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJv",            "dG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USSAoUcmVwZWF0",            "ZWRfbmVzdGVkX2VudW0YMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0",            "QWxsVHlwZXMuTmVzdGVkRW51bRI9ChVyZXBlYXRlZF9mb3JlaWduX2VudW0Y",            "NCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRJCChRyZXBl",            "YXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2lt",            "cG9ydC5JbXBvcnRFbnVtElUKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVz",            "c2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJ",            "bXBvcnRNZXNzYWdlEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEk0KFG9uZW9m",            "X25lc3RlZF9tZXNzYWdlGHAgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVz",            "dEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSAB",            "KAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAGhsKDU5lc3RlZE1lc3NhZ2US",            "CgoCYmIYASABKAUiVgoKTmVzdGVkRW51bRIbChdORVNURURfRU5VTV9VTlNQ",            "RUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD/",            "//////////8BQg0KC29uZW9mX2ZpZWxkIrsBChJOZXN0ZWRUZXN0QWxsVHlw",            "ZXMSNAoFY2hpbGQYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRU",            "ZXN0QWxsVHlwZXMSMAoHcGF5bG9hZBgCIAEoCzIfLnByb3RvYnVmX3VuaXR0",            "ZXN0LlRlc3RBbGxUeXBlcxI9Cg5yZXBlYXRlZF9jaGlsZBgDIAMoCzIlLnBy",            "b3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcyI0ChRUZXN0RGVw",            "cmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYASIb",            "Cg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIjAKElRlc3RSZXNlcnZlZEZp",            "ZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiWgoRVGVzdEZvcmVp",            "Z25OZXN0ZWQSRQoOZm9yZWlnbl9uZXN0ZWQYASABKAsyLS5wcm90b2J1Zl91",            "bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZSI0ChhUZXN0UmVh",            "bGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEoBRINCgJiYhj///9/IAEoBSJV",            "ChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFhGAEgASgLMicucHJvdG9idWZf",            "dW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSJLChRU",            "ZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgBIAEoCzInLnByb3RvYnVmX3Vu",            "aXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CImIKFFRlc3RNdXR1YWxSZWN1",            "cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0",            "dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSJMChJUZXN0",            "RW51bUFsbG93QWxpYXMSNgoFdmFsdWUYASABKA4yJy5wcm90b2J1Zl91bml0",            "dGVzdC5UZXN0RW51bVdpdGhEdXBWYWx1ZSLrAgoXVGVzdENhbWVsQ2FzZUZp",            "ZWxkTmFtZXMSFgoOUHJpbWl0aXZlRmllbGQYASABKAUSEwoLU3RyaW5nRmll",            "bGQYAiABKAkSMQoJRW51bUZpZWxkGAMgASgOMh4ucHJvdG9idWZfdW5pdHRl",            "c3QuRm9yZWlnbkVudW0SNwoMTWVzc2FnZUZpZWxkGAQgASgLMiEucHJvdG9i",            "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USHgoWUmVwZWF0ZWRQcmltaXRp",            "dmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJEjkK",            "EVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh4ucHJvdG9idWZfdW5pdHRlc3Qu",            "Rm9yZWlnbkVudW0SPwoUUmVwZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyIS5w",            "cm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZSLHAQoSVGVzdEZpZWxk",            "T3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEoCRIOCgZteV9pbnQYASABKAMS",            "EAoIbXlfZmxvYXQYZSABKAISUwoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgB",            "IAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncy5O",            "ZXN0ZWRNZXNzYWdlGicKDU5lc3RlZE1lc3NhZ2USCgoCb28YAiABKAMSCgoC",            "YmIYASABKAUiSwoRU3BhcnNlRW51bU1lc3NhZ2USNgoLc3BhcnNlX2VudW0Y",            "ASABKA4yIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0U3BhcnNlRW51bSIZCglP",            "bmVTdHJpbmcSDAoEZGF0YRgBIAEoCSIaCgpNb3JlU3RyaW5nEgwKBGRhdGEY",            "ASADKAkiGAoIT25lQnl0ZXMSDAoEZGF0YRgBIAEoDCIZCglNb3JlQnl0ZXMS",            "DAoEZGF0YRgBIAEoDCIcCgxJbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoBSId",            "Cg1VaW50MzJNZXNzYWdlEgwKBGRhdGEYASABKA0iHAoMSW50NjRNZXNzYWdl",            "EgwKBGRhdGEYASABKAMiHQoNVWludDY0TWVzc2FnZRIMCgRkYXRhGAEgASgE",            "IhsKC0Jvb2xNZXNzYWdlEgwKBGRhdGEYASABKAgicwoJVGVzdE9uZW9mEhEK",            "B2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASNgoLZm9v",            "X21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlw",            "ZXNIAEIFCgNmb28iqgMKD1Rlc3RQYWNrZWRUeXBlcxIYCgxwYWNrZWRfaW50",            "MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAESGQoNcGFj",            "a2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3VpbnQ2NBhdIAMoBEIC",            "EAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoNcGFja2VkX3NpbnQ2",            "NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABEhoKDnBh",            "Y2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRfc2ZpeGVkMzIYYiAD",            "KA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAESGAoMcGFja2Vk",            "X2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQARIX",            "CgtwYWNrZWRfYm9vbBhmIAMoCEICEAESNwoLcGFja2VkX2VudW0YZyADKA4y",            "Hi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEAEiyAMKEVRlc3RV",            "bnBhY2tlZFR5cGVzEhoKDnVucGFja2VkX2ludDMyGFogAygFQgIQABIaCg51",            "bnBhY2tlZF9pbnQ2NBhbIAMoA0ICEAASGwoPdW5wYWNrZWRfdWludDMyGFwg",            "AygNQgIQABIbCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAEhsKD3VucGFj",            "a2VkX3NpbnQzMhheIAMoEUICEAASGwoPdW5wYWNrZWRfc2ludDY0GF8gAygS",            "QgIQABIcChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQABIcChB1bnBhY2tl",            "ZF9maXhlZDY0GGEgAygGQgIQABIdChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMo",            "D0ICEAASHQoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAEhoKDnVucGFj",            "a2VkX2Zsb2F0GGQgAygCQgIQABIbCg91bnBhY2tlZF9kb3VibGUYZSADKAFC",            "AhAAEhkKDXVucGFja2VkX2Jvb2wYZiADKAhCAhAAEjkKDXVucGFja2VkX2Vu",            "dW0YZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEAAi",            "wAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgKEHJl",            "cGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSADKAUS",            "GQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50NjQY",            "/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0ZWRf",            "dWludDY0GP//DyADKAQiKAobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdl",            "EgkKAWEYASABKAkiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBG",            "b29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVx",            "dWVzdCINCgtCYXJSZXNwb25zZSpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdO",            "X1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JB",            "UhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUS",            "KAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoE",            "Rk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhAC",            "GgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9V",            "TlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8K",            "CFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFS",            "U0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIymQEKC1Rlc3RTZXJ2aWNl",            "EkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1JlcXVlc3QaHi5wcm90",            "b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXISHS5wcm90b2J1Zl91",            "bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVz",            "cG9uc2VCOkINVW5pdHRlc3RQcm90b0gBgAEBiAEBkAEB+AEBqgIaR29vZ2xl",            "LlByb3RvYnVmLlRlc3RQcm90b3NiBnByb3RvMw=="));      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,          new pbr::FileDescriptor[] { global::Google.Protobuf.TestProtos.UnittestImportProto3Reflection.Descriptor, },          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Protobuf.TestProtos.ForeignEnum), typeof(global::Google.Protobuf.TestProtos.TestEnumWithDupValue), typeof(global::Google.Protobuf.TestProtos.TestSparseEnum), }, new pbr::GeneratedClrTypeInfo[] {            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestAllTypes), global::Google.Protobuf.TestProtos.TestAllTypes.Parser, new[]{ "SingleInt32", "SingleInt64", "SingleUint32", "SingleUint64", "SingleSint32", "SingleSint64", "SingleFixed32", "SingleFixed64", "SingleSfixed32", "SingleSfixed64", "SingleFloat", "SingleDouble", "SingleBool", "SingleString", "SingleBytes", "SingleNestedMessage", "SingleForeignMessage", "SingleImportMessage", "SingleNestedEnum", "SingleForeignEnum", "SingleImportEnum", "SinglePublicImportMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedPublicImportMessage", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes" }, new[]{ "OneofField" }, new[]{ typeof(global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage), global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage.Parser, new[]{ "Bb" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.NestedTestAllTypes), global::Google.Protobuf.TestProtos.NestedTestAllTypes.Parser, new[]{ "Child", "Payload", "RepeatedChild" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestDeprecatedFields), global::Google.Protobuf.TestProtos.TestDeprecatedFields.Parser, new[]{ "DeprecatedInt32" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.ForeignMessage), global::Google.Protobuf.TestProtos.ForeignMessage.Parser, new[]{ "C" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestReservedFields), global::Google.Protobuf.TestProtos.TestReservedFields.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestForeignNested), global::Google.Protobuf.TestProtos.TestForeignNested.Parser, new[]{ "ForeignNested" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber), global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber.Parser, new[]{ "A", "Bb" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestRecursiveMessage), global::Google.Protobuf.TestProtos.TestRecursiveMessage.Parser, new[]{ "A", "I" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestMutualRecursionA), global::Google.Protobuf.TestProtos.TestMutualRecursionA.Parser, new[]{ "Bb" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestMutualRecursionB), global::Google.Protobuf.TestProtos.TestMutualRecursionB.Parser, new[]{ "A", "OptionalInt32" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestEnumAllowAlias), global::Google.Protobuf.TestProtos.TestEnumAllowAlias.Parser, new[]{ "Value" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames), global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames.Parser, new[]{ "PrimitiveField", "StringField", "EnumField", "MessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestFieldOrderings), global::Google.Protobuf.TestProtos.TestFieldOrderings.Parser, new[]{ "MyString", "MyInt", "MyFloat", "SingleNestedMessage" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage), global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage.Parser, new[]{ "Oo", "Bb" }, null, null, null)}),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.SparseEnumMessage), global::Google.Protobuf.TestProtos.SparseEnumMessage.Parser, new[]{ "SparseEnum" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.OneString), global::Google.Protobuf.TestProtos.OneString.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.MoreString), global::Google.Protobuf.TestProtos.MoreString.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.OneBytes), global::Google.Protobuf.TestProtos.OneBytes.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.MoreBytes), global::Google.Protobuf.TestProtos.MoreBytes.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Int32Message), global::Google.Protobuf.TestProtos.Int32Message.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Uint32Message), global::Google.Protobuf.TestProtos.Uint32Message.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Int64Message), global::Google.Protobuf.TestProtos.Int64Message.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Uint64Message), global::Google.Protobuf.TestProtos.Uint64Message.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.BoolMessage), global::Google.Protobuf.TestProtos.BoolMessage.Parser, new[]{ "Data" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestOneof), global::Google.Protobuf.TestProtos.TestOneof.Parser, new[]{ "FooInt", "FooString", "FooMessage" }, new[]{ "Foo" }, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestPackedTypes), global::Google.Protobuf.TestProtos.TestPackedTypes.Parser, new[]{ "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestUnpackedTypes), global::Google.Protobuf.TestProtos.TestUnpackedTypes.Parser, new[]{ "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes), global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes.Parser, new[]{ "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.TestCommentInjectionMessage), global::Google.Protobuf.TestProtos.TestCommentInjectionMessage.Parser, new[]{ "A" }, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.FooRequest), global::Google.Protobuf.TestProtos.FooRequest.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.FooResponse), global::Google.Protobuf.TestProtos.FooResponse.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.FooClientMessage), global::Google.Protobuf.TestProtos.FooClientMessage.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.FooServerMessage), global::Google.Protobuf.TestProtos.FooServerMessage.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.BarRequest), global::Google.Protobuf.TestProtos.BarRequest.Parser, null, null, null, null),            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.BarResponse), global::Google.Protobuf.TestProtos.BarResponse.Parser, null, null, null, null)          }));    }    #endregion  }  #region Enums  public enum ForeignEnum {    [pbr::OriginalName("FOREIGN_UNSPECIFIED")] ForeignUnspecified = 0,    [pbr::OriginalName("FOREIGN_FOO")] ForeignFoo = 4,    [pbr::OriginalName("FOREIGN_BAR")] ForeignBar = 5,    [pbr::OriginalName("FOREIGN_BAZ")] ForeignBaz = 6,  }  /// <summary>  /// Test an enum that has multiple values with the same number.  /// </summary>  public enum TestEnumWithDupValue {    [pbr::OriginalName("TEST_ENUM_WITH_DUP_VALUE_UNSPECIFIED")] Unspecified = 0,    [pbr::OriginalName("FOO1")] Foo1 = 1,    [pbr::OriginalName("BAR1")] Bar1 = 2,    [pbr::OriginalName("BAZ")] Baz = 3,    [pbr::OriginalName("FOO2", PreferredAlias = false)] Foo2 = 1,    [pbr::OriginalName("BAR2", PreferredAlias = false)] Bar2 = 2,  }  /// <summary>  /// Test an enum with large, unordered values.  /// </summary>  public enum TestSparseEnum {    [pbr::OriginalName("TEST_SPARSE_ENUM_UNSPECIFIED")] Unspecified = 0,    [pbr::OriginalName("SPARSE_A")] SparseA = 123,    [pbr::OriginalName("SPARSE_B")] SparseB = 62374,    [pbr::OriginalName("SPARSE_C")] SparseC = 12589234,    [pbr::OriginalName("SPARSE_D")] SparseD = -15,    [pbr::OriginalName("SPARSE_E")] SparseE = -53452,    /// <summary>    /// In proto3, value 0 must be the first one specified    /// SPARSE_F = 0;    /// </summary>    [pbr::OriginalName("SPARSE_G")] SparseG = 2,  }  #endregion  #region Messages  /// <summary>  /// This proto includes every type of field in both singular and repeated  /// forms.  /// </summary>  public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes> {    private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestAllTypes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[0]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestAllTypes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestAllTypes(TestAllTypes other) : this() {      singleInt32_ = other.singleInt32_;      singleInt64_ = other.singleInt64_;      singleUint32_ = other.singleUint32_;      singleUint64_ = other.singleUint64_;      singleSint32_ = other.singleSint32_;      singleSint64_ = other.singleSint64_;      singleFixed32_ = other.singleFixed32_;      singleFixed64_ = other.singleFixed64_;      singleSfixed32_ = other.singleSfixed32_;      singleSfixed64_ = other.singleSfixed64_;      singleFloat_ = other.singleFloat_;      singleDouble_ = other.singleDouble_;      singleBool_ = other.singleBool_;      singleString_ = other.singleString_;      singleBytes_ = other.singleBytes_;      SingleNestedMessage = other.singleNestedMessage_ != null ? other.SingleNestedMessage.Clone() : null;      SingleForeignMessage = other.singleForeignMessage_ != null ? other.SingleForeignMessage.Clone() : null;      SingleImportMessage = other.singleImportMessage_ != null ? other.SingleImportMessage.Clone() : null;      singleNestedEnum_ = other.singleNestedEnum_;      singleForeignEnum_ = other.singleForeignEnum_;      singleImportEnum_ = other.singleImportEnum_;      SinglePublicImportMessage = other.singlePublicImportMessage_ != null ? other.SinglePublicImportMessage.Clone() : null;      repeatedInt32_ = other.repeatedInt32_.Clone();      repeatedInt64_ = other.repeatedInt64_.Clone();      repeatedUint32_ = other.repeatedUint32_.Clone();      repeatedUint64_ = other.repeatedUint64_.Clone();      repeatedSint32_ = other.repeatedSint32_.Clone();      repeatedSint64_ = other.repeatedSint64_.Clone();      repeatedFixed32_ = other.repeatedFixed32_.Clone();      repeatedFixed64_ = other.repeatedFixed64_.Clone();      repeatedSfixed32_ = other.repeatedSfixed32_.Clone();      repeatedSfixed64_ = other.repeatedSfixed64_.Clone();      repeatedFloat_ = other.repeatedFloat_.Clone();      repeatedDouble_ = other.repeatedDouble_.Clone();      repeatedBool_ = other.repeatedBool_.Clone();      repeatedString_ = other.repeatedString_.Clone();      repeatedBytes_ = other.repeatedBytes_.Clone();      repeatedNestedMessage_ = other.repeatedNestedMessage_.Clone();      repeatedForeignMessage_ = other.repeatedForeignMessage_.Clone();      repeatedImportMessage_ = other.repeatedImportMessage_.Clone();      repeatedNestedEnum_ = other.repeatedNestedEnum_.Clone();      repeatedForeignEnum_ = other.repeatedForeignEnum_.Clone();      repeatedImportEnum_ = other.repeatedImportEnum_.Clone();      repeatedPublicImportMessage_ = other.repeatedPublicImportMessage_.Clone();      switch (other.OneofFieldCase) {        case OneofFieldOneofCase.OneofUint32:          OneofUint32 = other.OneofUint32;          break;        case OneofFieldOneofCase.OneofNestedMessage:          OneofNestedMessage = other.OneofNestedMessage.Clone();          break;        case OneofFieldOneofCase.OneofString:          OneofString = other.OneofString;          break;        case OneofFieldOneofCase.OneofBytes:          OneofBytes = other.OneofBytes;          break;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestAllTypes Clone() {      return new TestAllTypes(this);    }    /// <summary>Field number for the "single_int32" field.</summary>    public const int SingleInt32FieldNumber = 1;    private int singleInt32_;    /// <summary>    /// Singular    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int SingleInt32 {      get { return singleInt32_; }      set {        singleInt32_ = value;      }    }    /// <summary>Field number for the "single_int64" field.</summary>    public const int SingleInt64FieldNumber = 2;    private long singleInt64_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long SingleInt64 {      get { return singleInt64_; }      set {        singleInt64_ = value;      }    }    /// <summary>Field number for the "single_uint32" field.</summary>    public const int SingleUint32FieldNumber = 3;    private uint singleUint32_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public uint SingleUint32 {      get { return singleUint32_; }      set {        singleUint32_ = value;      }    }    /// <summary>Field number for the "single_uint64" field.</summary>    public const int SingleUint64FieldNumber = 4;    private ulong singleUint64_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ulong SingleUint64 {      get { return singleUint64_; }      set {        singleUint64_ = value;      }    }    /// <summary>Field number for the "single_sint32" field.</summary>    public const int SingleSint32FieldNumber = 5;    private int singleSint32_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int SingleSint32 {      get { return singleSint32_; }      set {        singleSint32_ = value;      }    }    /// <summary>Field number for the "single_sint64" field.</summary>    public const int SingleSint64FieldNumber = 6;    private long singleSint64_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long SingleSint64 {      get { return singleSint64_; }      set {        singleSint64_ = value;      }    }    /// <summary>Field number for the "single_fixed32" field.</summary>    public const int SingleFixed32FieldNumber = 7;    private uint singleFixed32_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public uint SingleFixed32 {      get { return singleFixed32_; }      set {        singleFixed32_ = value;      }    }    /// <summary>Field number for the "single_fixed64" field.</summary>    public const int SingleFixed64FieldNumber = 8;    private ulong singleFixed64_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ulong SingleFixed64 {      get { return singleFixed64_; }      set {        singleFixed64_ = value;      }    }    /// <summary>Field number for the "single_sfixed32" field.</summary>    public const int SingleSfixed32FieldNumber = 9;    private int singleSfixed32_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int SingleSfixed32 {      get { return singleSfixed32_; }      set {        singleSfixed32_ = value;      }    }    /// <summary>Field number for the "single_sfixed64" field.</summary>    public const int SingleSfixed64FieldNumber = 10;    private long singleSfixed64_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long SingleSfixed64 {      get { return singleSfixed64_; }      set {        singleSfixed64_ = value;      }    }    /// <summary>Field number for the "single_float" field.</summary>    public const int SingleFloatFieldNumber = 11;    private float singleFloat_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public float SingleFloat {      get { return singleFloat_; }      set {        singleFloat_ = value;      }    }    /// <summary>Field number for the "single_double" field.</summary>    public const int SingleDoubleFieldNumber = 12;    private double singleDouble_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public double SingleDouble {      get { return singleDouble_; }      set {        singleDouble_ = value;      }    }    /// <summary>Field number for the "single_bool" field.</summary>    public const int SingleBoolFieldNumber = 13;    private bool singleBool_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool SingleBool {      get { return singleBool_; }      set {        singleBool_ = value;      }    }    /// <summary>Field number for the "single_string" field.</summary>    public const int SingleStringFieldNumber = 14;    private string singleString_ = "";    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string SingleString {      get { return singleString_; }      set {        singleString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Field number for the "single_bytes" field.</summary>    public const int SingleBytesFieldNumber = 15;    private pb::ByteString singleBytes_ = pb::ByteString.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pb::ByteString SingleBytes {      get { return singleBytes_; }      set {        singleBytes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Field number for the "single_nested_message" field.</summary>    public const int SingleNestedMessageFieldNumber = 18;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage singleNestedMessage_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage SingleNestedMessage {      get { return singleNestedMessage_; }      set {        singleNestedMessage_ = value;      }    }    /// <summary>Field number for the "single_foreign_message" field.</summary>    public const int SingleForeignMessageFieldNumber = 19;    private global::Google.Protobuf.TestProtos.ForeignMessage singleForeignMessage_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ForeignMessage SingleForeignMessage {      get { return singleForeignMessage_; }      set {        singleForeignMessage_ = value;      }    }    /// <summary>Field number for the "single_import_message" field.</summary>    public const int SingleImportMessageFieldNumber = 20;    private global::Google.Protobuf.TestProtos.ImportMessage singleImportMessage_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ImportMessage SingleImportMessage {      get { return singleImportMessage_; }      set {        singleImportMessage_ = value;      }    }    /// <summary>Field number for the "single_nested_enum" field.</summary>    public const int SingleNestedEnumFieldNumber = 21;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum singleNestedEnum_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum SingleNestedEnum {      get { return singleNestedEnum_; }      set {        singleNestedEnum_ = value;      }    }    /// <summary>Field number for the "single_foreign_enum" field.</summary>    public const int SingleForeignEnumFieldNumber = 22;    private global::Google.Protobuf.TestProtos.ForeignEnum singleForeignEnum_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ForeignEnum SingleForeignEnum {      get { return singleForeignEnum_; }      set {        singleForeignEnum_ = value;      }    }    /// <summary>Field number for the "single_import_enum" field.</summary>    public const int SingleImportEnumFieldNumber = 23;    private global::Google.Protobuf.TestProtos.ImportEnum singleImportEnum_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ImportEnum SingleImportEnum {      get { return singleImportEnum_; }      set {        singleImportEnum_ = value;      }    }    /// <summary>Field number for the "single_public_import_message" field.</summary>    public const int SinglePublicImportMessageFieldNumber = 26;    private global::Google.Protobuf.TestProtos.PublicImportMessage singlePublicImportMessage_;    /// <summary>    /// Defined in unittest_import_public.proto    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.PublicImportMessage SinglePublicImportMessage {      get { return singlePublicImportMessage_; }      set {        singlePublicImportMessage_ = value;      }    }    /// <summary>Field number for the "repeated_int32" field.</summary>    public const int RepeatedInt32FieldNumber = 31;    private static readonly pb::FieldCodec<int> _repeated_repeatedInt32_codec        = pb::FieldCodec.ForInt32(250);    private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();    /// <summary>    /// Repeated    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> RepeatedInt32 {      get { return repeatedInt32_; }    }    /// <summary>Field number for the "repeated_int64" field.</summary>    public const int RepeatedInt64FieldNumber = 32;    private static readonly pb::FieldCodec<long> _repeated_repeatedInt64_codec        = pb::FieldCodec.ForInt64(258);    private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> RepeatedInt64 {      get { return repeatedInt64_; }    }    /// <summary>Field number for the "repeated_uint32" field.</summary>    public const int RepeatedUint32FieldNumber = 33;    private static readonly pb::FieldCodec<uint> _repeated_repeatedUint32_codec        = pb::FieldCodec.ForUInt32(266);    private readonly pbc::RepeatedField<uint> repeatedUint32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> RepeatedUint32 {      get { return repeatedUint32_; }    }    /// <summary>Field number for the "repeated_uint64" field.</summary>    public const int RepeatedUint64FieldNumber = 34;    private static readonly pb::FieldCodec<ulong> _repeated_repeatedUint64_codec        = pb::FieldCodec.ForUInt64(274);    private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> RepeatedUint64 {      get { return repeatedUint64_; }    }    /// <summary>Field number for the "repeated_sint32" field.</summary>    public const int RepeatedSint32FieldNumber = 35;    private static readonly pb::FieldCodec<int> _repeated_repeatedSint32_codec        = pb::FieldCodec.ForSInt32(282);    private readonly pbc::RepeatedField<int> repeatedSint32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> RepeatedSint32 {      get { return repeatedSint32_; }    }    /// <summary>Field number for the "repeated_sint64" field.</summary>    public const int RepeatedSint64FieldNumber = 36;    private static readonly pb::FieldCodec<long> _repeated_repeatedSint64_codec        = pb::FieldCodec.ForSInt64(290);    private readonly pbc::RepeatedField<long> repeatedSint64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> RepeatedSint64 {      get { return repeatedSint64_; }    }    /// <summary>Field number for the "repeated_fixed32" field.</summary>    public const int RepeatedFixed32FieldNumber = 37;    private static readonly pb::FieldCodec<uint> _repeated_repeatedFixed32_codec        = pb::FieldCodec.ForFixed32(298);    private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> RepeatedFixed32 {      get { return repeatedFixed32_; }    }    /// <summary>Field number for the "repeated_fixed64" field.</summary>    public const int RepeatedFixed64FieldNumber = 38;    private static readonly pb::FieldCodec<ulong> _repeated_repeatedFixed64_codec        = pb::FieldCodec.ForFixed64(306);    private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> RepeatedFixed64 {      get { return repeatedFixed64_; }    }    /// <summary>Field number for the "repeated_sfixed32" field.</summary>    public const int RepeatedSfixed32FieldNumber = 39;    private static readonly pb::FieldCodec<int> _repeated_repeatedSfixed32_codec        = pb::FieldCodec.ForSFixed32(314);    private readonly pbc::RepeatedField<int> repeatedSfixed32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> RepeatedSfixed32 {      get { return repeatedSfixed32_; }    }    /// <summary>Field number for the "repeated_sfixed64" field.</summary>    public const int RepeatedSfixed64FieldNumber = 40;    private static readonly pb::FieldCodec<long> _repeated_repeatedSfixed64_codec        = pb::FieldCodec.ForSFixed64(322);    private readonly pbc::RepeatedField<long> repeatedSfixed64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> RepeatedSfixed64 {      get { return repeatedSfixed64_; }    }    /// <summary>Field number for the "repeated_float" field.</summary>    public const int RepeatedFloatFieldNumber = 41;    private static readonly pb::FieldCodec<float> _repeated_repeatedFloat_codec        = pb::FieldCodec.ForFloat(330);    private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<float> RepeatedFloat {      get { return repeatedFloat_; }    }    /// <summary>Field number for the "repeated_double" field.</summary>    public const int RepeatedDoubleFieldNumber = 42;    private static readonly pb::FieldCodec<double> _repeated_repeatedDouble_codec        = pb::FieldCodec.ForDouble(338);    private readonly pbc::RepeatedField<double> repeatedDouble_ = new pbc::RepeatedField<double>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<double> RepeatedDouble {      get { return repeatedDouble_; }    }    /// <summary>Field number for the "repeated_bool" field.</summary>    public const int RepeatedBoolFieldNumber = 43;    private static readonly pb::FieldCodec<bool> _repeated_repeatedBool_codec        = pb::FieldCodec.ForBool(346);    private readonly pbc::RepeatedField<bool> repeatedBool_ = new pbc::RepeatedField<bool>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<bool> RepeatedBool {      get { return repeatedBool_; }    }    /// <summary>Field number for the "repeated_string" field.</summary>    public const int RepeatedStringFieldNumber = 44;    private static readonly pb::FieldCodec<string> _repeated_repeatedString_codec        = pb::FieldCodec.ForString(354);    private readonly pbc::RepeatedField<string> repeatedString_ = new pbc::RepeatedField<string>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> RepeatedString {      get { return repeatedString_; }    }    /// <summary>Field number for the "repeated_bytes" field.</summary>    public const int RepeatedBytesFieldNumber = 45;    private static readonly pb::FieldCodec<pb::ByteString> _repeated_repeatedBytes_codec        = pb::FieldCodec.ForBytes(362);    private readonly pbc::RepeatedField<pb::ByteString> repeatedBytes_ = new pbc::RepeatedField<pb::ByteString>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<pb::ByteString> RepeatedBytes {      get { return repeatedBytes_; }    }    /// <summary>Field number for the "repeated_nested_message" field.</summary>    public const int RepeatedNestedMessageFieldNumber = 48;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> _repeated_repeatedNestedMessage_codec        = pb::FieldCodec.ForMessage(386, global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessage {      get { return repeatedNestedMessage_; }    }    /// <summary>Field number for the "repeated_foreign_message" field.</summary>    public const int RepeatedForeignMessageFieldNumber = 49;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignMessage> _repeated_repeatedForeignMessage_codec        = pb::FieldCodec.ForMessage(394, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedForeignMessage {      get { return repeatedForeignMessage_; }    }    /// <summary>Field number for the "repeated_import_message" field.</summary>    public const int RepeatedImportMessageFieldNumber = 50;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ImportMessage> _repeated_repeatedImportMessage_codec        = pb::FieldCodec.ForMessage(402, global::Google.Protobuf.TestProtos.ImportMessage.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> RepeatedImportMessage {      get { return repeatedImportMessage_; }    }    /// <summary>Field number for the "repeated_nested_enum" field.</summary>    public const int RepeatedNestedEnumFieldNumber = 51;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> _repeated_repeatedNestedEnum_codec        = pb::FieldCodec.ForEnum(410, x => (int) x, x => (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnum {      get { return repeatedNestedEnum_; }    }    /// <summary>Field number for the "repeated_foreign_enum" field.</summary>    public const int RepeatedForeignEnumFieldNumber = 52;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignEnum> _repeated_repeatedForeignEnum_codec        = pb::FieldCodec.ForEnum(418, x => (int) x, x => (global::Google.Protobuf.TestProtos.ForeignEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedForeignEnum {      get { return repeatedForeignEnum_; }    }    /// <summary>Field number for the "repeated_import_enum" field.</summary>    public const int RepeatedImportEnumFieldNumber = 53;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ImportEnum> _repeated_repeatedImportEnum_codec        = pb::FieldCodec.ForEnum(426, x => (int) x, x => (global::Google.Protobuf.TestProtos.ImportEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> RepeatedImportEnum {      get { return repeatedImportEnum_; }    }    /// <summary>Field number for the "repeated_public_import_message" field.</summary>    public const int RepeatedPublicImportMessageFieldNumber = 54;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.PublicImportMessage> _repeated_repeatedPublicImportMessage_codec        = pb::FieldCodec.ForMessage(434, global::Google.Protobuf.TestProtos.PublicImportMessage.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> repeatedPublicImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage>();    /// <summary>    /// Defined in unittest_import_public.proto    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> RepeatedPublicImportMessage {      get { return repeatedPublicImportMessage_; }    }    /// <summary>Field number for the "oneof_uint32" field.</summary>    public const int OneofUint32FieldNumber = 111;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public uint OneofUint32 {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }      set {        oneofField_ = value;        oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;      }    }    /// <summary>Field number for the "oneof_nested_message" field.</summary>    public const int OneofNestedMessageFieldNumber = 112;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage) oneofField_ : null; }      set {        oneofField_ = value;        oneofFieldCase_ = value == null ? OneofFieldOneofCase.None : OneofFieldOneofCase.OneofNestedMessage;      }    }    /// <summary>Field number for the "oneof_string" field.</summary>    public const int OneofStringFieldNumber = 113;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string OneofString {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }      set {        oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");        oneofFieldCase_ = OneofFieldOneofCase.OneofString;      }    }    /// <summary>Field number for the "oneof_bytes" field.</summary>    public const int OneofBytesFieldNumber = 114;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pb::ByteString OneofBytes {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }      set {        oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");        oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;      }    }    private object oneofField_;    /// <summary>Enum of possible cases for the "oneof_field" oneof.</summary>    public enum OneofFieldOneofCase {      None = 0,      OneofUint32 = 111,      OneofNestedMessage = 112,      OneofString = 113,      OneofBytes = 114,    }    private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneofFieldOneofCase OneofFieldCase {      get { return oneofFieldCase_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearOneofField() {      oneofFieldCase_ = OneofFieldOneofCase.None;      oneofField_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestAllTypes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestAllTypes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (SingleInt32 != other.SingleInt32) return false;      if (SingleInt64 != other.SingleInt64) return false;      if (SingleUint32 != other.SingleUint32) return false;      if (SingleUint64 != other.SingleUint64) return false;      if (SingleSint32 != other.SingleSint32) return false;      if (SingleSint64 != other.SingleSint64) return false;      if (SingleFixed32 != other.SingleFixed32) return false;      if (SingleFixed64 != other.SingleFixed64) return false;      if (SingleSfixed32 != other.SingleSfixed32) return false;      if (SingleSfixed64 != other.SingleSfixed64) return false;      if (SingleFloat != other.SingleFloat) return false;      if (SingleDouble != other.SingleDouble) return false;      if (SingleBool != other.SingleBool) return false;      if (SingleString != other.SingleString) return false;      if (SingleBytes != other.SingleBytes) return false;      if (!object.Equals(SingleNestedMessage, other.SingleNestedMessage)) return false;      if (!object.Equals(SingleForeignMessage, other.SingleForeignMessage)) return false;      if (!object.Equals(SingleImportMessage, other.SingleImportMessage)) return false;      if (SingleNestedEnum != other.SingleNestedEnum) return false;      if (SingleForeignEnum != other.SingleForeignEnum) return false;      if (SingleImportEnum != other.SingleImportEnum) return false;      if (!object.Equals(SinglePublicImportMessage, other.SinglePublicImportMessage)) return false;      if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;      if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;      if(!repeatedUint32_.Equals(other.repeatedUint32_)) return false;      if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;      if(!repeatedSint32_.Equals(other.repeatedSint32_)) return false;      if(!repeatedSint64_.Equals(other.repeatedSint64_)) return false;      if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;      if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;      if(!repeatedSfixed32_.Equals(other.repeatedSfixed32_)) return false;      if(!repeatedSfixed64_.Equals(other.repeatedSfixed64_)) return false;      if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;      if(!repeatedDouble_.Equals(other.repeatedDouble_)) return false;      if(!repeatedBool_.Equals(other.repeatedBool_)) return false;      if(!repeatedString_.Equals(other.repeatedString_)) return false;      if(!repeatedBytes_.Equals(other.repeatedBytes_)) return false;      if(!repeatedNestedMessage_.Equals(other.repeatedNestedMessage_)) return false;      if(!repeatedForeignMessage_.Equals(other.repeatedForeignMessage_)) return false;      if(!repeatedImportMessage_.Equals(other.repeatedImportMessage_)) return false;      if(!repeatedNestedEnum_.Equals(other.repeatedNestedEnum_)) return false;      if(!repeatedForeignEnum_.Equals(other.repeatedForeignEnum_)) return false;      if(!repeatedImportEnum_.Equals(other.repeatedImportEnum_)) return false;      if(!repeatedPublicImportMessage_.Equals(other.repeatedPublicImportMessage_)) return false;      if (OneofUint32 != other.OneofUint32) return false;      if (!object.Equals(OneofNestedMessage, other.OneofNestedMessage)) return false;      if (OneofString != other.OneofString) return false;      if (OneofBytes != other.OneofBytes) return false;      if (OneofFieldCase != other.OneofFieldCase) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (SingleInt32 != 0) hash ^= SingleInt32.GetHashCode();      if (SingleInt64 != 0L) hash ^= SingleInt64.GetHashCode();      if (SingleUint32 != 0) hash ^= SingleUint32.GetHashCode();      if (SingleUint64 != 0UL) hash ^= SingleUint64.GetHashCode();      if (SingleSint32 != 0) hash ^= SingleSint32.GetHashCode();      if (SingleSint64 != 0L) hash ^= SingleSint64.GetHashCode();      if (SingleFixed32 != 0) hash ^= SingleFixed32.GetHashCode();      if (SingleFixed64 != 0UL) hash ^= SingleFixed64.GetHashCode();      if (SingleSfixed32 != 0) hash ^= SingleSfixed32.GetHashCode();      if (SingleSfixed64 != 0L) hash ^= SingleSfixed64.GetHashCode();      if (SingleFloat != 0F) hash ^= SingleFloat.GetHashCode();      if (SingleDouble != 0D) hash ^= SingleDouble.GetHashCode();      if (SingleBool != false) hash ^= SingleBool.GetHashCode();      if (SingleString.Length != 0) hash ^= SingleString.GetHashCode();      if (SingleBytes.Length != 0) hash ^= SingleBytes.GetHashCode();      if (singleNestedMessage_ != null) hash ^= SingleNestedMessage.GetHashCode();      if (singleForeignMessage_ != null) hash ^= SingleForeignMessage.GetHashCode();      if (singleImportMessage_ != null) hash ^= SingleImportMessage.GetHashCode();      if (SingleNestedEnum != 0) hash ^= SingleNestedEnum.GetHashCode();      if (SingleForeignEnum != 0) hash ^= SingleForeignEnum.GetHashCode();      if (SingleImportEnum != 0) hash ^= SingleImportEnum.GetHashCode();      if (singlePublicImportMessage_ != null) hash ^= SinglePublicImportMessage.GetHashCode();      hash ^= repeatedInt32_.GetHashCode();      hash ^= repeatedInt64_.GetHashCode();      hash ^= repeatedUint32_.GetHashCode();      hash ^= repeatedUint64_.GetHashCode();      hash ^= repeatedSint32_.GetHashCode();      hash ^= repeatedSint64_.GetHashCode();      hash ^= repeatedFixed32_.GetHashCode();      hash ^= repeatedFixed64_.GetHashCode();      hash ^= repeatedSfixed32_.GetHashCode();      hash ^= repeatedSfixed64_.GetHashCode();      hash ^= repeatedFloat_.GetHashCode();      hash ^= repeatedDouble_.GetHashCode();      hash ^= repeatedBool_.GetHashCode();      hash ^= repeatedString_.GetHashCode();      hash ^= repeatedBytes_.GetHashCode();      hash ^= repeatedNestedMessage_.GetHashCode();      hash ^= repeatedForeignMessage_.GetHashCode();      hash ^= repeatedImportMessage_.GetHashCode();      hash ^= repeatedNestedEnum_.GetHashCode();      hash ^= repeatedForeignEnum_.GetHashCode();      hash ^= repeatedImportEnum_.GetHashCode();      hash ^= repeatedPublicImportMessage_.GetHashCode();      if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) hash ^= OneofUint32.GetHashCode();      if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) hash ^= OneofNestedMessage.GetHashCode();      if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) hash ^= OneofString.GetHashCode();      if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) hash ^= OneofBytes.GetHashCode();      hash ^= (int) oneofFieldCase_;      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 (SingleInt32 != 0) {        output.WriteRawTag(8);        output.WriteInt32(SingleInt32);      }      if (SingleInt64 != 0L) {        output.WriteRawTag(16);        output.WriteInt64(SingleInt64);      }      if (SingleUint32 != 0) {        output.WriteRawTag(24);        output.WriteUInt32(SingleUint32);      }      if (SingleUint64 != 0UL) {        output.WriteRawTag(32);        output.WriteUInt64(SingleUint64);      }      if (SingleSint32 != 0) {        output.WriteRawTag(40);        output.WriteSInt32(SingleSint32);      }      if (SingleSint64 != 0L) {        output.WriteRawTag(48);        output.WriteSInt64(SingleSint64);      }      if (SingleFixed32 != 0) {        output.WriteRawTag(61);        output.WriteFixed32(SingleFixed32);      }      if (SingleFixed64 != 0UL) {        output.WriteRawTag(65);        output.WriteFixed64(SingleFixed64);      }      if (SingleSfixed32 != 0) {        output.WriteRawTag(77);        output.WriteSFixed32(SingleSfixed32);      }      if (SingleSfixed64 != 0L) {        output.WriteRawTag(81);        output.WriteSFixed64(SingleSfixed64);      }      if (SingleFloat != 0F) {        output.WriteRawTag(93);        output.WriteFloat(SingleFloat);      }      if (SingleDouble != 0D) {        output.WriteRawTag(97);        output.WriteDouble(SingleDouble);      }      if (SingleBool != false) {        output.WriteRawTag(104);        output.WriteBool(SingleBool);      }      if (SingleString.Length != 0) {        output.WriteRawTag(114);        output.WriteString(SingleString);      }      if (SingleBytes.Length != 0) {        output.WriteRawTag(122);        output.WriteBytes(SingleBytes);      }      if (singleNestedMessage_ != null) {        output.WriteRawTag(146, 1);        output.WriteMessage(SingleNestedMessage);      }      if (singleForeignMessage_ != null) {        output.WriteRawTag(154, 1);        output.WriteMessage(SingleForeignMessage);      }      if (singleImportMessage_ != null) {        output.WriteRawTag(162, 1);        output.WriteMessage(SingleImportMessage);      }      if (SingleNestedEnum != 0) {        output.WriteRawTag(168, 1);        output.WriteEnum((int) SingleNestedEnum);      }      if (SingleForeignEnum != 0) {        output.WriteRawTag(176, 1);        output.WriteEnum((int) SingleForeignEnum);      }      if (SingleImportEnum != 0) {        output.WriteRawTag(184, 1);        output.WriteEnum((int) SingleImportEnum);      }      if (singlePublicImportMessage_ != null) {        output.WriteRawTag(210, 1);        output.WriteMessage(SinglePublicImportMessage);      }      repeatedInt32_.WriteTo(output, _repeated_repeatedInt32_codec);      repeatedInt64_.WriteTo(output, _repeated_repeatedInt64_codec);      repeatedUint32_.WriteTo(output, _repeated_repeatedUint32_codec);      repeatedUint64_.WriteTo(output, _repeated_repeatedUint64_codec);      repeatedSint32_.WriteTo(output, _repeated_repeatedSint32_codec);      repeatedSint64_.WriteTo(output, _repeated_repeatedSint64_codec);      repeatedFixed32_.WriteTo(output, _repeated_repeatedFixed32_codec);      repeatedFixed64_.WriteTo(output, _repeated_repeatedFixed64_codec);      repeatedSfixed32_.WriteTo(output, _repeated_repeatedSfixed32_codec);      repeatedSfixed64_.WriteTo(output, _repeated_repeatedSfixed64_codec);      repeatedFloat_.WriteTo(output, _repeated_repeatedFloat_codec);      repeatedDouble_.WriteTo(output, _repeated_repeatedDouble_codec);      repeatedBool_.WriteTo(output, _repeated_repeatedBool_codec);      repeatedString_.WriteTo(output, _repeated_repeatedString_codec);      repeatedBytes_.WriteTo(output, _repeated_repeatedBytes_codec);      repeatedNestedMessage_.WriteTo(output, _repeated_repeatedNestedMessage_codec);      repeatedForeignMessage_.WriteTo(output, _repeated_repeatedForeignMessage_codec);      repeatedImportMessage_.WriteTo(output, _repeated_repeatedImportMessage_codec);      repeatedNestedEnum_.WriteTo(output, _repeated_repeatedNestedEnum_codec);      repeatedForeignEnum_.WriteTo(output, _repeated_repeatedForeignEnum_codec);      repeatedImportEnum_.WriteTo(output, _repeated_repeatedImportEnum_codec);      repeatedPublicImportMessage_.WriteTo(output, _repeated_repeatedPublicImportMessage_codec);      if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {        output.WriteRawTag(248, 6);        output.WriteUInt32(OneofUint32);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {        output.WriteRawTag(130, 7);        output.WriteMessage(OneofNestedMessage);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {        output.WriteRawTag(138, 7);        output.WriteString(OneofString);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {        output.WriteRawTag(146, 7);        output.WriteBytes(OneofBytes);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (SingleInt32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SingleInt32);      }      if (SingleInt64 != 0L) {        size += 1 + pb::CodedOutputStream.ComputeInt64Size(SingleInt64);      }      if (SingleUint32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SingleUint32);      }      if (SingleUint64 != 0UL) {        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SingleUint64);      }      if (SingleSint32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeSInt32Size(SingleSint32);      }      if (SingleSint64 != 0L) {        size += 1 + pb::CodedOutputStream.ComputeSInt64Size(SingleSint64);      }      if (SingleFixed32 != 0) {        size += 1 + 4;      }      if (SingleFixed64 != 0UL) {        size += 1 + 8;      }      if (SingleSfixed32 != 0) {        size += 1 + 4;      }      if (SingleSfixed64 != 0L) {        size += 1 + 8;      }      if (SingleFloat != 0F) {        size += 1 + 4;      }      if (SingleDouble != 0D) {        size += 1 + 8;      }      if (SingleBool != false) {        size += 1 + 1;      }      if (SingleString.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(SingleString);      }      if (SingleBytes.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(SingleBytes);      }      if (singleNestedMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleNestedMessage);      }      if (singleForeignMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleForeignMessage);      }      if (singleImportMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleImportMessage);      }      if (SingleNestedEnum != 0) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleNestedEnum);      }      if (SingleForeignEnum != 0) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleForeignEnum);      }      if (SingleImportEnum != 0) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleImportEnum);      }      if (singlePublicImportMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SinglePublicImportMessage);      }      size += repeatedInt32_.CalculateSize(_repeated_repeatedInt32_codec);      size += repeatedInt64_.CalculateSize(_repeated_repeatedInt64_codec);      size += repeatedUint32_.CalculateSize(_repeated_repeatedUint32_codec);      size += repeatedUint64_.CalculateSize(_repeated_repeatedUint64_codec);      size += repeatedSint32_.CalculateSize(_repeated_repeatedSint32_codec);      size += repeatedSint64_.CalculateSize(_repeated_repeatedSint64_codec);      size += repeatedFixed32_.CalculateSize(_repeated_repeatedFixed32_codec);      size += repeatedFixed64_.CalculateSize(_repeated_repeatedFixed64_codec);      size += repeatedSfixed32_.CalculateSize(_repeated_repeatedSfixed32_codec);      size += repeatedSfixed64_.CalculateSize(_repeated_repeatedSfixed64_codec);      size += repeatedFloat_.CalculateSize(_repeated_repeatedFloat_codec);      size += repeatedDouble_.CalculateSize(_repeated_repeatedDouble_codec);      size += repeatedBool_.CalculateSize(_repeated_repeatedBool_codec);      size += repeatedString_.CalculateSize(_repeated_repeatedString_codec);      size += repeatedBytes_.CalculateSize(_repeated_repeatedBytes_codec);      size += repeatedNestedMessage_.CalculateSize(_repeated_repeatedNestedMessage_codec);      size += repeatedForeignMessage_.CalculateSize(_repeated_repeatedForeignMessage_codec);      size += repeatedImportMessage_.CalculateSize(_repeated_repeatedImportMessage_codec);      size += repeatedNestedEnum_.CalculateSize(_repeated_repeatedNestedEnum_codec);      size += repeatedForeignEnum_.CalculateSize(_repeated_repeatedForeignEnum_codec);      size += repeatedImportEnum_.CalculateSize(_repeated_repeatedImportEnum_codec);      size += repeatedPublicImportMessage_.CalculateSize(_repeated_repeatedPublicImportMessage_codec);      if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {        size += 2 + pb::CodedOutputStream.ComputeUInt32Size(OneofUint32);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(OneofNestedMessage);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {        size += 2 + pb::CodedOutputStream.ComputeStringSize(OneofString);      }      if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {        size += 2 + pb::CodedOutputStream.ComputeBytesSize(OneofBytes);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestAllTypes other) {      if (other == null) {        return;      }      if (other.SingleInt32 != 0) {        SingleInt32 = other.SingleInt32;      }      if (other.SingleInt64 != 0L) {        SingleInt64 = other.SingleInt64;      }      if (other.SingleUint32 != 0) {        SingleUint32 = other.SingleUint32;      }      if (other.SingleUint64 != 0UL) {        SingleUint64 = other.SingleUint64;      }      if (other.SingleSint32 != 0) {        SingleSint32 = other.SingleSint32;      }      if (other.SingleSint64 != 0L) {        SingleSint64 = other.SingleSint64;      }      if (other.SingleFixed32 != 0) {        SingleFixed32 = other.SingleFixed32;      }      if (other.SingleFixed64 != 0UL) {        SingleFixed64 = other.SingleFixed64;      }      if (other.SingleSfixed32 != 0) {        SingleSfixed32 = other.SingleSfixed32;      }      if (other.SingleSfixed64 != 0L) {        SingleSfixed64 = other.SingleSfixed64;      }      if (other.SingleFloat != 0F) {        SingleFloat = other.SingleFloat;      }      if (other.SingleDouble != 0D) {        SingleDouble = other.SingleDouble;      }      if (other.SingleBool != false) {        SingleBool = other.SingleBool;      }      if (other.SingleString.Length != 0) {        SingleString = other.SingleString;      }      if (other.SingleBytes.Length != 0) {        SingleBytes = other.SingleBytes;      }      if (other.singleNestedMessage_ != null) {        if (singleNestedMessage_ == null) {          singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();        }        SingleNestedMessage.MergeFrom(other.SingleNestedMessage);      }      if (other.singleForeignMessage_ != null) {        if (singleForeignMessage_ == null) {          singleForeignMessage_ = new global::Google.Protobuf.TestProtos.ForeignMessage();        }        SingleForeignMessage.MergeFrom(other.SingleForeignMessage);      }      if (other.singleImportMessage_ != null) {        if (singleImportMessage_ == null) {          singleImportMessage_ = new global::Google.Protobuf.TestProtos.ImportMessage();        }        SingleImportMessage.MergeFrom(other.SingleImportMessage);      }      if (other.SingleNestedEnum != 0) {        SingleNestedEnum = other.SingleNestedEnum;      }      if (other.SingleForeignEnum != 0) {        SingleForeignEnum = other.SingleForeignEnum;      }      if (other.SingleImportEnum != 0) {        SingleImportEnum = other.SingleImportEnum;      }      if (other.singlePublicImportMessage_ != null) {        if (singlePublicImportMessage_ == null) {          singlePublicImportMessage_ = new global::Google.Protobuf.TestProtos.PublicImportMessage();        }        SinglePublicImportMessage.MergeFrom(other.SinglePublicImportMessage);      }      repeatedInt32_.Add(other.repeatedInt32_);      repeatedInt64_.Add(other.repeatedInt64_);      repeatedUint32_.Add(other.repeatedUint32_);      repeatedUint64_.Add(other.repeatedUint64_);      repeatedSint32_.Add(other.repeatedSint32_);      repeatedSint64_.Add(other.repeatedSint64_);      repeatedFixed32_.Add(other.repeatedFixed32_);      repeatedFixed64_.Add(other.repeatedFixed64_);      repeatedSfixed32_.Add(other.repeatedSfixed32_);      repeatedSfixed64_.Add(other.repeatedSfixed64_);      repeatedFloat_.Add(other.repeatedFloat_);      repeatedDouble_.Add(other.repeatedDouble_);      repeatedBool_.Add(other.repeatedBool_);      repeatedString_.Add(other.repeatedString_);      repeatedBytes_.Add(other.repeatedBytes_);      repeatedNestedMessage_.Add(other.repeatedNestedMessage_);      repeatedForeignMessage_.Add(other.repeatedForeignMessage_);      repeatedImportMessage_.Add(other.repeatedImportMessage_);      repeatedNestedEnum_.Add(other.repeatedNestedEnum_);      repeatedForeignEnum_.Add(other.repeatedForeignEnum_);      repeatedImportEnum_.Add(other.repeatedImportEnum_);      repeatedPublicImportMessage_.Add(other.repeatedPublicImportMessage_);      switch (other.OneofFieldCase) {        case OneofFieldOneofCase.OneofUint32:          OneofUint32 = other.OneofUint32;          break;        case OneofFieldOneofCase.OneofNestedMessage:          OneofNestedMessage = other.OneofNestedMessage;          break;        case OneofFieldOneofCase.OneofString:          OneofString = other.OneofString;          break;        case OneofFieldOneofCase.OneofBytes:          OneofBytes = other.OneofBytes;          break;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            SingleInt32 = input.ReadInt32();            break;          }          case 16: {            SingleInt64 = input.ReadInt64();            break;          }          case 24: {            SingleUint32 = input.ReadUInt32();            break;          }          case 32: {            SingleUint64 = input.ReadUInt64();            break;          }          case 40: {            SingleSint32 = input.ReadSInt32();            break;          }          case 48: {            SingleSint64 = input.ReadSInt64();            break;          }          case 61: {            SingleFixed32 = input.ReadFixed32();            break;          }          case 65: {            SingleFixed64 = input.ReadFixed64();            break;          }          case 77: {            SingleSfixed32 = input.ReadSFixed32();            break;          }          case 81: {            SingleSfixed64 = input.ReadSFixed64();            break;          }          case 93: {            SingleFloat = input.ReadFloat();            break;          }          case 97: {            SingleDouble = input.ReadDouble();            break;          }          case 104: {            SingleBool = input.ReadBool();            break;          }          case 114: {            SingleString = input.ReadString();            break;          }          case 122: {            SingleBytes = input.ReadBytes();            break;          }          case 146: {            if (singleNestedMessage_ == null) {              singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();            }            input.ReadMessage(singleNestedMessage_);            break;          }          case 154: {            if (singleForeignMessage_ == null) {              singleForeignMessage_ = new global::Google.Protobuf.TestProtos.ForeignMessage();            }            input.ReadMessage(singleForeignMessage_);            break;          }          case 162: {            if (singleImportMessage_ == null) {              singleImportMessage_ = new global::Google.Protobuf.TestProtos.ImportMessage();            }            input.ReadMessage(singleImportMessage_);            break;          }          case 168: {            singleNestedEnum_ = (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum) input.ReadEnum();            break;          }          case 176: {            singleForeignEnum_ = (global::Google.Protobuf.TestProtos.ForeignEnum) input.ReadEnum();            break;          }          case 184: {            singleImportEnum_ = (global::Google.Protobuf.TestProtos.ImportEnum) input.ReadEnum();            break;          }          case 210: {            if (singlePublicImportMessage_ == null) {              singlePublicImportMessage_ = new global::Google.Protobuf.TestProtos.PublicImportMessage();            }            input.ReadMessage(singlePublicImportMessage_);            break;          }          case 250:          case 248: {            repeatedInt32_.AddEntriesFrom(input, _repeated_repeatedInt32_codec);            break;          }          case 258:          case 256: {            repeatedInt64_.AddEntriesFrom(input, _repeated_repeatedInt64_codec);            break;          }          case 266:          case 264: {            repeatedUint32_.AddEntriesFrom(input, _repeated_repeatedUint32_codec);            break;          }          case 274:          case 272: {            repeatedUint64_.AddEntriesFrom(input, _repeated_repeatedUint64_codec);            break;          }          case 282:          case 280: {            repeatedSint32_.AddEntriesFrom(input, _repeated_repeatedSint32_codec);            break;          }          case 290:          case 288: {            repeatedSint64_.AddEntriesFrom(input, _repeated_repeatedSint64_codec);            break;          }          case 298:          case 301: {            repeatedFixed32_.AddEntriesFrom(input, _repeated_repeatedFixed32_codec);            break;          }          case 306:          case 305: {            repeatedFixed64_.AddEntriesFrom(input, _repeated_repeatedFixed64_codec);            break;          }          case 314:          case 317: {            repeatedSfixed32_.AddEntriesFrom(input, _repeated_repeatedSfixed32_codec);            break;          }          case 322:          case 321: {            repeatedSfixed64_.AddEntriesFrom(input, _repeated_repeatedSfixed64_codec);            break;          }          case 330:          case 333: {            repeatedFloat_.AddEntriesFrom(input, _repeated_repeatedFloat_codec);            break;          }          case 338:          case 337: {            repeatedDouble_.AddEntriesFrom(input, _repeated_repeatedDouble_codec);            break;          }          case 346:          case 344: {            repeatedBool_.AddEntriesFrom(input, _repeated_repeatedBool_codec);            break;          }          case 354: {            repeatedString_.AddEntriesFrom(input, _repeated_repeatedString_codec);            break;          }          case 362: {            repeatedBytes_.AddEntriesFrom(input, _repeated_repeatedBytes_codec);            break;          }          case 386: {            repeatedNestedMessage_.AddEntriesFrom(input, _repeated_repeatedNestedMessage_codec);            break;          }          case 394: {            repeatedForeignMessage_.AddEntriesFrom(input, _repeated_repeatedForeignMessage_codec);            break;          }          case 402: {            repeatedImportMessage_.AddEntriesFrom(input, _repeated_repeatedImportMessage_codec);            break;          }          case 410:          case 408: {            repeatedNestedEnum_.AddEntriesFrom(input, _repeated_repeatedNestedEnum_codec);            break;          }          case 418:          case 416: {            repeatedForeignEnum_.AddEntriesFrom(input, _repeated_repeatedForeignEnum_codec);            break;          }          case 426:          case 424: {            repeatedImportEnum_.AddEntriesFrom(input, _repeated_repeatedImportEnum_codec);            break;          }          case 434: {            repeatedPublicImportMessage_.AddEntriesFrom(input, _repeated_repeatedPublicImportMessage_codec);            break;          }          case 888: {            OneofUint32 = input.ReadUInt32();            break;          }          case 898: {            global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();            if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {              subBuilder.MergeFrom(OneofNestedMessage);            }            input.ReadMessage(subBuilder);            OneofNestedMessage = subBuilder;            break;          }          case 906: {            OneofString = input.ReadString();            break;          }          case 914: {            OneofBytes = input.ReadBytes();            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the TestAllTypes message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      public enum NestedEnum {        [pbr::OriginalName("NESTED_ENUM_UNSPECIFIED")] Unspecified = 0,        [pbr::OriginalName("FOO")] Foo = 1,        [pbr::OriginalName("BAR")] Bar = 2,        [pbr::OriginalName("BAZ")] Baz = 3,        /// <summary>        /// Intentionally negative.        /// </summary>        [pbr::OriginalName("NEG")] Neg = -1,      }      public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {        private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.TestProtos.TestAllTypes.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage(NestedMessage other) : this() {          bb_ = other.bb_;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage Clone() {          return new NestedMessage(this);        }        /// <summary>Field number for the "bb" field.</summary>        public const int BbFieldNumber = 1;        private int bb_;        /// <summary>        /// The field name "b" fails to compile in proto1 because it conflicts with        /// a local variable named "b" in one of the generated methods.  Doh.        /// This file needs to compile in proto1 to test backwards-compatibility.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Bb {          get { return bb_; }          set {            bb_ = value;          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as NestedMessage);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(NestedMessage other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (Bb != other.Bb) return false;          return true;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (Bb != 0) hash ^= Bb.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 (Bb != 0) {            output.WriteRawTag(8);            output.WriteInt32(Bb);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (Bb != 0) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(NestedMessage other) {          if (other == null) {            return;          }          if (other.Bb != 0) {            Bb = other.Bb;          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                input.SkipLastField();                break;              case 8: {                Bb = input.ReadInt32();                break;              }            }          }        }      }    }    #endregion  }  /// <summary>  /// This proto includes a recusively nested message.  /// </summary>  public sealed partial class NestedTestAllTypes : pb::IMessage<NestedTestAllTypes> {    private static readonly pb::MessageParser<NestedTestAllTypes> _parser = new pb::MessageParser<NestedTestAllTypes>(() => new NestedTestAllTypes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<NestedTestAllTypes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[1]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public NestedTestAllTypes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public NestedTestAllTypes(NestedTestAllTypes other) : this() {      Child = other.child_ != null ? other.Child.Clone() : null;      Payload = other.payload_ != null ? other.Payload.Clone() : null;      repeatedChild_ = other.repeatedChild_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public NestedTestAllTypes Clone() {      return new NestedTestAllTypes(this);    }    /// <summary>Field number for the "child" field.</summary>    public const int ChildFieldNumber = 1;    private global::Google.Protobuf.TestProtos.NestedTestAllTypes child_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.NestedTestAllTypes Child {      get { return child_; }      set {        child_ = value;      }    }    /// <summary>Field number for the "payload" field.</summary>    public const int PayloadFieldNumber = 2;    private global::Google.Protobuf.TestProtos.TestAllTypes payload_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes Payload {      get { return payload_; }      set {        payload_ = value;      }    }    /// <summary>Field number for the "repeated_child" field.</summary>    public const int RepeatedChildFieldNumber = 3;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.NestedTestAllTypes> _repeated_repeatedChild_codec        = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.TestProtos.NestedTestAllTypes.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> repeatedChild_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> RepeatedChild {      get { return repeatedChild_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as NestedTestAllTypes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(NestedTestAllTypes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (!object.Equals(Child, other.Child)) return false;      if (!object.Equals(Payload, other.Payload)) return false;      if(!repeatedChild_.Equals(other.repeatedChild_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (child_ != null) hash ^= Child.GetHashCode();      if (payload_ != null) hash ^= Payload.GetHashCode();      hash ^= repeatedChild_.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 (child_ != null) {        output.WriteRawTag(10);        output.WriteMessage(Child);      }      if (payload_ != null) {        output.WriteRawTag(18);        output.WriteMessage(Payload);      }      repeatedChild_.WriteTo(output, _repeated_repeatedChild_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (child_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Child);      }      if (payload_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Payload);      }      size += repeatedChild_.CalculateSize(_repeated_repeatedChild_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(NestedTestAllTypes other) {      if (other == null) {        return;      }      if (other.child_ != null) {        if (child_ == null) {          child_ = new global::Google.Protobuf.TestProtos.NestedTestAllTypes();        }        Child.MergeFrom(other.Child);      }      if (other.payload_ != null) {        if (payload_ == null) {          payload_ = new global::Google.Protobuf.TestProtos.TestAllTypes();        }        Payload.MergeFrom(other.Payload);      }      repeatedChild_.Add(other.repeatedChild_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            if (child_ == null) {              child_ = new global::Google.Protobuf.TestProtos.NestedTestAllTypes();            }            input.ReadMessage(child_);            break;          }          case 18: {            if (payload_ == null) {              payload_ = new global::Google.Protobuf.TestProtos.TestAllTypes();            }            input.ReadMessage(payload_);            break;          }          case 26: {            repeatedChild_.AddEntriesFrom(input, _repeated_repeatedChild_codec);            break;          }        }      }    }  }  public sealed partial class TestDeprecatedFields : pb::IMessage<TestDeprecatedFields> {    private static readonly pb::MessageParser<TestDeprecatedFields> _parser = new pb::MessageParser<TestDeprecatedFields>(() => new TestDeprecatedFields());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestDeprecatedFields> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[2]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestDeprecatedFields() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestDeprecatedFields(TestDeprecatedFields other) : this() {      deprecatedInt32_ = other.deprecatedInt32_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestDeprecatedFields Clone() {      return new TestDeprecatedFields(this);    }    /// <summary>Field number for the "deprecated_int32" field.</summary>    public const int DeprecatedInt32FieldNumber = 1;    private int deprecatedInt32_;    [global::System.ObsoleteAttribute]    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int DeprecatedInt32 {      get { return deprecatedInt32_; }      set {        deprecatedInt32_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestDeprecatedFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestDeprecatedFields other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (DeprecatedInt32 != other.DeprecatedInt32) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (DeprecatedInt32 != 0) hash ^= DeprecatedInt32.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 (DeprecatedInt32 != 0) {        output.WriteRawTag(8);        output.WriteInt32(DeprecatedInt32);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (DeprecatedInt32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeprecatedInt32);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestDeprecatedFields other) {      if (other == null) {        return;      }      if (other.DeprecatedInt32 != 0) {        DeprecatedInt32 = other.DeprecatedInt32;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            DeprecatedInt32 = input.ReadInt32();            break;          }        }      }    }  }  /// <summary>  /// Define these after TestAllTypes to make sure the compiler can handle  /// that.  /// </summary>  public sealed partial class ForeignMessage : pb::IMessage<ForeignMessage> {    private static readonly pb::MessageParser<ForeignMessage> _parser = new pb::MessageParser<ForeignMessage>(() => new ForeignMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<ForeignMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[3]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ForeignMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ForeignMessage(ForeignMessage other) : this() {      c_ = other.c_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ForeignMessage Clone() {      return new ForeignMessage(this);    }    /// <summary>Field number for the "c" field.</summary>    public const int CFieldNumber = 1;    private int c_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int C {      get { return c_; }      set {        c_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as ForeignMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(ForeignMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (C != other.C) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (C != 0) hash ^= C.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 (C != 0) {        output.WriteRawTag(8);        output.WriteInt32(C);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (C != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(C);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(ForeignMessage other) {      if (other == null) {        return;      }      if (other.C != 0) {        C = other.C;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            C = input.ReadInt32();            break;          }        }      }    }  }  public sealed partial class TestReservedFields : pb::IMessage<TestReservedFields> {    private static readonly pb::MessageParser<TestReservedFields> _parser = new pb::MessageParser<TestReservedFields>(() => new TestReservedFields());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestReservedFields> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[4]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReservedFields() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReservedFields(TestReservedFields other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReservedFields Clone() {      return new TestReservedFields(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestReservedFields);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestReservedFields other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestReservedFields other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  /// <summary>  /// Test that we can use NestedMessage from outside TestAllTypes.  /// </summary>  public sealed partial class TestForeignNested : pb::IMessage<TestForeignNested> {    private static readonly pb::MessageParser<TestForeignNested> _parser = new pb::MessageParser<TestForeignNested>(() => new TestForeignNested());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestForeignNested> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[5]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestForeignNested() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestForeignNested(TestForeignNested other) : this() {      ForeignNested = other.foreignNested_ != null ? other.ForeignNested.Clone() : null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestForeignNested Clone() {      return new TestForeignNested(this);    }    /// <summary>Field number for the "foreign_nested" field.</summary>    public const int ForeignNestedFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {      get { return foreignNested_; }      set {        foreignNested_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestForeignNested);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestForeignNested other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (!object.Equals(ForeignNested, other.ForeignNested)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (foreignNested_ != null) hash ^= ForeignNested.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 (foreignNested_ != null) {        output.WriteRawTag(10);        output.WriteMessage(ForeignNested);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (foreignNested_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ForeignNested);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestForeignNested other) {      if (other == null) {        return;      }      if (other.foreignNested_ != null) {        if (foreignNested_ == null) {          foreignNested_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();        }        ForeignNested.MergeFrom(other.ForeignNested);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            if (foreignNested_ == null) {              foreignNested_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();            }            input.ReadMessage(foreignNested_);            break;          }        }      }    }  }  /// <summary>  /// Test that really large tag numbers don't break anything.  /// </summary>  public sealed partial class TestReallyLargeTagNumber : pb::IMessage<TestReallyLargeTagNumber> {    private static readonly pb::MessageParser<TestReallyLargeTagNumber> _parser = new pb::MessageParser<TestReallyLargeTagNumber>(() => new TestReallyLargeTagNumber());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestReallyLargeTagNumber> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[6]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReallyLargeTagNumber() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReallyLargeTagNumber(TestReallyLargeTagNumber other) : this() {      a_ = other.a_;      bb_ = other.bb_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestReallyLargeTagNumber Clone() {      return new TestReallyLargeTagNumber(this);    }    /// <summary>Field number for the "a" field.</summary>    public const int AFieldNumber = 1;    private int a_;    /// <summary>    /// The largest possible tag number is 2^28 - 1, since the wire format uses    /// three bits to communicate wire type.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int A {      get { return a_; }      set {        a_ = value;      }    }    /// <summary>Field number for the "bb" field.</summary>    public const int BbFieldNumber = 268435455;    private int bb_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int Bb {      get { return bb_; }      set {        bb_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestReallyLargeTagNumber);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestReallyLargeTagNumber other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (A != other.A) return false;      if (Bb != other.Bb) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (A != 0) hash ^= A.GetHashCode();      if (Bb != 0) hash ^= Bb.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 (A != 0) {        output.WriteRawTag(8);        output.WriteInt32(A);      }      if (Bb != 0) {        output.WriteRawTag(248, 255, 255, 255, 7);        output.WriteInt32(Bb);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (A != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);      }      if (Bb != 0) {        size += 5 + pb::CodedOutputStream.ComputeInt32Size(Bb);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestReallyLargeTagNumber other) {      if (other == null) {        return;      }      if (other.A != 0) {        A = other.A;      }      if (other.Bb != 0) {        Bb = other.Bb;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            A = input.ReadInt32();            break;          }          case 2147483640: {            Bb = input.ReadInt32();            break;          }        }      }    }  }  public sealed partial class TestRecursiveMessage : pb::IMessage<TestRecursiveMessage> {    private static readonly pb::MessageParser<TestRecursiveMessage> _parser = new pb::MessageParser<TestRecursiveMessage>(() => new TestRecursiveMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestRecursiveMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[7]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRecursiveMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRecursiveMessage(TestRecursiveMessage other) : this() {      A = other.a_ != null ? other.A.Clone() : null;      i_ = other.i_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRecursiveMessage Clone() {      return new TestRecursiveMessage(this);    }    /// <summary>Field number for the "a" field.</summary>    public const int AFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestRecursiveMessage a_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestRecursiveMessage A {      get { return a_; }      set {        a_ = value;      }    }    /// <summary>Field number for the "i" field.</summary>    public const int IFieldNumber = 2;    private int i_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int I {      get { return i_; }      set {        i_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestRecursiveMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestRecursiveMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (!object.Equals(A, other.A)) return false;      if (I != other.I) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (a_ != null) hash ^= A.GetHashCode();      if (I != 0) hash ^= I.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 (a_ != null) {        output.WriteRawTag(10);        output.WriteMessage(A);      }      if (I != 0) {        output.WriteRawTag(16);        output.WriteInt32(I);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (a_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);      }      if (I != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(I);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestRecursiveMessage other) {      if (other == null) {        return;      }      if (other.a_ != null) {        if (a_ == null) {          a_ = new global::Google.Protobuf.TestProtos.TestRecursiveMessage();        }        A.MergeFrom(other.A);      }      if (other.I != 0) {        I = other.I;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            if (a_ == null) {              a_ = new global::Google.Protobuf.TestProtos.TestRecursiveMessage();            }            input.ReadMessage(a_);            break;          }          case 16: {            I = input.ReadInt32();            break;          }        }      }    }  }  /// <summary>  /// Test that mutual recursion works.  /// </summary>  public sealed partial class TestMutualRecursionA : pb::IMessage<TestMutualRecursionA> {    private static readonly pb::MessageParser<TestMutualRecursionA> _parser = new pb::MessageParser<TestMutualRecursionA>(() => new TestMutualRecursionA());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestMutualRecursionA> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[8]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionA() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionA(TestMutualRecursionA other) : this() {      Bb = other.bb_ != null ? other.Bb.Clone() : null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionA Clone() {      return new TestMutualRecursionA(this);    }    /// <summary>Field number for the "bb" field.</summary>    public const int BbFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestMutualRecursionB bb_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestMutualRecursionB Bb {      get { return bb_; }      set {        bb_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestMutualRecursionA);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestMutualRecursionA other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (!object.Equals(Bb, other.Bb)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (bb_ != null) hash ^= Bb.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 (bb_ != null) {        output.WriteRawTag(10);        output.WriteMessage(Bb);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (bb_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bb);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestMutualRecursionA other) {      if (other == null) {        return;      }      if (other.bb_ != null) {        if (bb_ == null) {          bb_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionB();        }        Bb.MergeFrom(other.Bb);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            if (bb_ == null) {              bb_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionB();            }            input.ReadMessage(bb_);            break;          }        }      }    }  }  public sealed partial class TestMutualRecursionB : pb::IMessage<TestMutualRecursionB> {    private static readonly pb::MessageParser<TestMutualRecursionB> _parser = new pb::MessageParser<TestMutualRecursionB>(() => new TestMutualRecursionB());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestMutualRecursionB> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[9]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionB() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionB(TestMutualRecursionB other) : this() {      A = other.a_ != null ? other.A.Clone() : null;      optionalInt32_ = other.optionalInt32_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestMutualRecursionB Clone() {      return new TestMutualRecursionB(this);    }    /// <summary>Field number for the "a" field.</summary>    public const int AFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestMutualRecursionA a_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestMutualRecursionA A {      get { return a_; }      set {        a_ = value;      }    }    /// <summary>Field number for the "optional_int32" field.</summary>    public const int OptionalInt32FieldNumber = 2;    private int optionalInt32_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int OptionalInt32 {      get { return optionalInt32_; }      set {        optionalInt32_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestMutualRecursionB);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestMutualRecursionB other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (!object.Equals(A, other.A)) return false;      if (OptionalInt32 != other.OptionalInt32) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (a_ != null) hash ^= A.GetHashCode();      if (OptionalInt32 != 0) hash ^= OptionalInt32.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 (a_ != null) {        output.WriteRawTag(10);        output.WriteMessage(A);      }      if (OptionalInt32 != 0) {        output.WriteRawTag(16);        output.WriteInt32(OptionalInt32);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (a_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);      }      if (OptionalInt32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OptionalInt32);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestMutualRecursionB other) {      if (other == null) {        return;      }      if (other.a_ != null) {        if (a_ == null) {          a_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionA();        }        A.MergeFrom(other.A);      }      if (other.OptionalInt32 != 0) {        OptionalInt32 = other.OptionalInt32;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            if (a_ == null) {              a_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionA();            }            input.ReadMessage(a_);            break;          }          case 16: {            OptionalInt32 = input.ReadInt32();            break;          }        }      }    }  }  public sealed partial class TestEnumAllowAlias : pb::IMessage<TestEnumAllowAlias> {    private static readonly pb::MessageParser<TestEnumAllowAlias> _parser = new pb::MessageParser<TestEnumAllowAlias>(() => new TestEnumAllowAlias());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestEnumAllowAlias> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[10]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestEnumAllowAlias() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestEnumAllowAlias(TestEnumAllowAlias other) : this() {      value_ = other.value_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestEnumAllowAlias Clone() {      return new TestEnumAllowAlias(this);    }    /// <summary>Field number for the "value" field.</summary>    public const int ValueFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestEnumWithDupValue value_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestEnumWithDupValue Value {      get { return value_; }      set {        value_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestEnumAllowAlias);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestEnumAllowAlias other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Value != other.Value) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Value != 0) hash ^= Value.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 (Value != 0) {        output.WriteRawTag(8);        output.WriteEnum((int) Value);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Value != 0) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Value);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestEnumAllowAlias other) {      if (other == null) {        return;      }      if (other.Value != 0) {        Value = other.Value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            value_ = (global::Google.Protobuf.TestProtos.TestEnumWithDupValue) input.ReadEnum();            break;          }        }      }    }  }  /// <summary>  /// Test message with CamelCase field names.  This violates Protocol Buffer  /// standard style.  /// </summary>  public sealed partial class TestCamelCaseFieldNames : pb::IMessage<TestCamelCaseFieldNames> {    private static readonly pb::MessageParser<TestCamelCaseFieldNames> _parser = new pb::MessageParser<TestCamelCaseFieldNames>(() => new TestCamelCaseFieldNames());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestCamelCaseFieldNames> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[11]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCamelCaseFieldNames() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCamelCaseFieldNames(TestCamelCaseFieldNames other) : this() {      primitiveField_ = other.primitiveField_;      stringField_ = other.stringField_;      enumField_ = other.enumField_;      MessageField = other.messageField_ != null ? other.MessageField.Clone() : null;      repeatedPrimitiveField_ = other.repeatedPrimitiveField_.Clone();      repeatedStringField_ = other.repeatedStringField_.Clone();      repeatedEnumField_ = other.repeatedEnumField_.Clone();      repeatedMessageField_ = other.repeatedMessageField_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCamelCaseFieldNames Clone() {      return new TestCamelCaseFieldNames(this);    }    /// <summary>Field number for the "PrimitiveField" field.</summary>    public const int PrimitiveFieldFieldNumber = 1;    private int primitiveField_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int PrimitiveField {      get { return primitiveField_; }      set {        primitiveField_ = value;      }    }    /// <summary>Field number for the "StringField" field.</summary>    public const int StringFieldFieldNumber = 2;    private string stringField_ = "";    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string StringField {      get { return stringField_; }      set {        stringField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Field number for the "EnumField" field.</summary>    public const int EnumFieldFieldNumber = 3;    private global::Google.Protobuf.TestProtos.ForeignEnum enumField_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ForeignEnum EnumField {      get { return enumField_; }      set {        enumField_ = value;      }    }    /// <summary>Field number for the "MessageField" field.</summary>    public const int MessageFieldFieldNumber = 4;    private global::Google.Protobuf.TestProtos.ForeignMessage messageField_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.ForeignMessage MessageField {      get { return messageField_; }      set {        messageField_ = value;      }    }    /// <summary>Field number for the "RepeatedPrimitiveField" field.</summary>    public const int RepeatedPrimitiveFieldFieldNumber = 7;    private static readonly pb::FieldCodec<int> _repeated_repeatedPrimitiveField_codec        = pb::FieldCodec.ForInt32(58);    private readonly pbc::RepeatedField<int> repeatedPrimitiveField_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> RepeatedPrimitiveField {      get { return repeatedPrimitiveField_; }    }    /// <summary>Field number for the "RepeatedStringField" field.</summary>    public const int RepeatedStringFieldFieldNumber = 8;    private static readonly pb::FieldCodec<string> _repeated_repeatedStringField_codec        = pb::FieldCodec.ForString(66);    private readonly pbc::RepeatedField<string> repeatedStringField_ = new pbc::RepeatedField<string>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> RepeatedStringField {      get { return repeatedStringField_; }    }    /// <summary>Field number for the "RepeatedEnumField" field.</summary>    public const int RepeatedEnumFieldFieldNumber = 9;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignEnum> _repeated_repeatedEnumField_codec        = pb::FieldCodec.ForEnum(74, x => (int) x, x => (global::Google.Protobuf.TestProtos.ForeignEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedEnumField {      get { return repeatedEnumField_; }    }    /// <summary>Field number for the "RepeatedMessageField" field.</summary>    public const int RepeatedMessageFieldFieldNumber = 10;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignMessage> _repeated_repeatedMessageField_codec        = pb::FieldCodec.ForMessage(82, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedMessageField {      get { return repeatedMessageField_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestCamelCaseFieldNames);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestCamelCaseFieldNames other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (PrimitiveField != other.PrimitiveField) return false;      if (StringField != other.StringField) return false;      if (EnumField != other.EnumField) return false;      if (!object.Equals(MessageField, other.MessageField)) return false;      if(!repeatedPrimitiveField_.Equals(other.repeatedPrimitiveField_)) return false;      if(!repeatedStringField_.Equals(other.repeatedStringField_)) return false;      if(!repeatedEnumField_.Equals(other.repeatedEnumField_)) return false;      if(!repeatedMessageField_.Equals(other.repeatedMessageField_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (PrimitiveField != 0) hash ^= PrimitiveField.GetHashCode();      if (StringField.Length != 0) hash ^= StringField.GetHashCode();      if (EnumField != 0) hash ^= EnumField.GetHashCode();      if (messageField_ != null) hash ^= MessageField.GetHashCode();      hash ^= repeatedPrimitiveField_.GetHashCode();      hash ^= repeatedStringField_.GetHashCode();      hash ^= repeatedEnumField_.GetHashCode();      hash ^= repeatedMessageField_.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 (PrimitiveField != 0) {        output.WriteRawTag(8);        output.WriteInt32(PrimitiveField);      }      if (StringField.Length != 0) {        output.WriteRawTag(18);        output.WriteString(StringField);      }      if (EnumField != 0) {        output.WriteRawTag(24);        output.WriteEnum((int) EnumField);      }      if (messageField_ != null) {        output.WriteRawTag(34);        output.WriteMessage(MessageField);      }      repeatedPrimitiveField_.WriteTo(output, _repeated_repeatedPrimitiveField_codec);      repeatedStringField_.WriteTo(output, _repeated_repeatedStringField_codec);      repeatedEnumField_.WriteTo(output, _repeated_repeatedEnumField_codec);      repeatedMessageField_.WriteTo(output, _repeated_repeatedMessageField_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (PrimitiveField != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PrimitiveField);      }      if (StringField.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(StringField);      }      if (EnumField != 0) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) EnumField);      }      if (messageField_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(MessageField);      }      size += repeatedPrimitiveField_.CalculateSize(_repeated_repeatedPrimitiveField_codec);      size += repeatedStringField_.CalculateSize(_repeated_repeatedStringField_codec);      size += repeatedEnumField_.CalculateSize(_repeated_repeatedEnumField_codec);      size += repeatedMessageField_.CalculateSize(_repeated_repeatedMessageField_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestCamelCaseFieldNames other) {      if (other == null) {        return;      }      if (other.PrimitiveField != 0) {        PrimitiveField = other.PrimitiveField;      }      if (other.StringField.Length != 0) {        StringField = other.StringField;      }      if (other.EnumField != 0) {        EnumField = other.EnumField;      }      if (other.messageField_ != null) {        if (messageField_ == null) {          messageField_ = new global::Google.Protobuf.TestProtos.ForeignMessage();        }        MessageField.MergeFrom(other.MessageField);      }      repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);      repeatedStringField_.Add(other.repeatedStringField_);      repeatedEnumField_.Add(other.repeatedEnumField_);      repeatedMessageField_.Add(other.repeatedMessageField_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            PrimitiveField = input.ReadInt32();            break;          }          case 18: {            StringField = input.ReadString();            break;          }          case 24: {            enumField_ = (global::Google.Protobuf.TestProtos.ForeignEnum) input.ReadEnum();            break;          }          case 34: {            if (messageField_ == null) {              messageField_ = new global::Google.Protobuf.TestProtos.ForeignMessage();            }            input.ReadMessage(messageField_);            break;          }          case 58:          case 56: {            repeatedPrimitiveField_.AddEntriesFrom(input, _repeated_repeatedPrimitiveField_codec);            break;          }          case 66: {            repeatedStringField_.AddEntriesFrom(input, _repeated_repeatedStringField_codec);            break;          }          case 74:          case 72: {            repeatedEnumField_.AddEntriesFrom(input, _repeated_repeatedEnumField_codec);            break;          }          case 82: {            repeatedMessageField_.AddEntriesFrom(input, _repeated_repeatedMessageField_codec);            break;          }        }      }    }  }  /// <summary>  /// We list fields out of order, to ensure that we're using field number and not  /// field index to determine serialization order.  /// </summary>  public sealed partial class TestFieldOrderings : pb::IMessage<TestFieldOrderings> {    private static readonly pb::MessageParser<TestFieldOrderings> _parser = new pb::MessageParser<TestFieldOrderings>(() => new TestFieldOrderings());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestFieldOrderings> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[12]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestFieldOrderings() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestFieldOrderings(TestFieldOrderings other) : this() {      myString_ = other.myString_;      myInt_ = other.myInt_;      myFloat_ = other.myFloat_;      SingleNestedMessage = other.singleNestedMessage_ != null ? other.SingleNestedMessage.Clone() : null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestFieldOrderings Clone() {      return new TestFieldOrderings(this);    }    /// <summary>Field number for the "my_string" field.</summary>    public const int MyStringFieldNumber = 11;    private string myString_ = "";    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string MyString {      get { return myString_; }      set {        myString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    /// <summary>Field number for the "my_int" field.</summary>    public const int MyIntFieldNumber = 1;    private long myInt_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long MyInt {      get { return myInt_; }      set {        myInt_ = value;      }    }    /// <summary>Field number for the "my_float" field.</summary>    public const int MyFloatFieldNumber = 101;    private float myFloat_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public float MyFloat {      get { return myFloat_; }      set {        myFloat_ = value;      }    }    /// <summary>Field number for the "single_nested_message" field.</summary>    public const int SingleNestedMessageFieldNumber = 200;    private global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage singleNestedMessage_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage SingleNestedMessage {      get { return singleNestedMessage_; }      set {        singleNestedMessage_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestFieldOrderings);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestFieldOrderings other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (MyString != other.MyString) return false;      if (MyInt != other.MyInt) return false;      if (MyFloat != other.MyFloat) return false;      if (!object.Equals(SingleNestedMessage, other.SingleNestedMessage)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (MyString.Length != 0) hash ^= MyString.GetHashCode();      if (MyInt != 0L) hash ^= MyInt.GetHashCode();      if (MyFloat != 0F) hash ^= MyFloat.GetHashCode();      if (singleNestedMessage_ != null) hash ^= SingleNestedMessage.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 (MyInt != 0L) {        output.WriteRawTag(8);        output.WriteInt64(MyInt);      }      if (MyString.Length != 0) {        output.WriteRawTag(90);        output.WriteString(MyString);      }      if (MyFloat != 0F) {        output.WriteRawTag(173, 6);        output.WriteFloat(MyFloat);      }      if (singleNestedMessage_ != null) {        output.WriteRawTag(194, 12);        output.WriteMessage(SingleNestedMessage);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (MyString.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);      }      if (MyInt != 0L) {        size += 1 + pb::CodedOutputStream.ComputeInt64Size(MyInt);      }      if (MyFloat != 0F) {        size += 2 + 4;      }      if (singleNestedMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleNestedMessage);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestFieldOrderings other) {      if (other == null) {        return;      }      if (other.MyString.Length != 0) {        MyString = other.MyString;      }      if (other.MyInt != 0L) {        MyInt = other.MyInt;      }      if (other.MyFloat != 0F) {        MyFloat = other.MyFloat;      }      if (other.singleNestedMessage_ != null) {        if (singleNestedMessage_ == null) {          singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage();        }        SingleNestedMessage.MergeFrom(other.SingleNestedMessage);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            MyInt = input.ReadInt64();            break;          }          case 90: {            MyString = input.ReadString();            break;          }          case 813: {            MyFloat = input.ReadFloat();            break;          }          case 1602: {            if (singleNestedMessage_ == null) {              singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage();            }            input.ReadMessage(singleNestedMessage_);            break;          }        }      }    }    #region Nested types    /// <summary>Container for nested types declared in the TestFieldOrderings message type.</summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static partial class Types {      public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {        private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public static pbr::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.TestProtos.TestFieldOrderings.Descriptor.NestedTypes[0]; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        pbr::MessageDescriptor pb::IMessage.Descriptor {          get { return Descriptor; }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage() {          OnConstruction();        }        partial void OnConstruction();        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage(NestedMessage other) : this() {          oo_ = other.oo_;          bb_ = other.bb_;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public NestedMessage Clone() {          return new NestedMessage(this);        }        /// <summary>Field number for the "oo" field.</summary>        public const int OoFieldNumber = 2;        private long oo_;        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public long Oo {          get { return oo_; }          set {            oo_ = value;          }        }        /// <summary>Field number for the "bb" field.</summary>        public const int BbFieldNumber = 1;        private int bb_;        /// <summary>        /// The field name "b" fails to compile in proto1 because it conflicts with        /// a local variable named "b" in one of the generated methods.  Doh.        /// This file needs to compile in proto1 to test backwards-compatibility.        /// </summary>        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int Bb {          get { return bb_; }          set {            bb_ = value;          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override bool Equals(object other) {          return Equals(other as NestedMessage);        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public bool Equals(NestedMessage other) {          if (ReferenceEquals(other, null)) {            return false;          }          if (ReferenceEquals(other, this)) {            return true;          }          if (Oo != other.Oo) return false;          if (Bb != other.Bb) return false;          return true;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public override int GetHashCode() {          int hash = 1;          if (Oo != 0L) hash ^= Oo.GetHashCode();          if (Bb != 0) hash ^= Bb.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 (Bb != 0) {            output.WriteRawTag(8);            output.WriteInt32(Bb);          }          if (Oo != 0L) {            output.WriteRawTag(16);            output.WriteInt64(Oo);          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public int CalculateSize() {          int size = 0;          if (Oo != 0L) {            size += 1 + pb::CodedOutputStream.ComputeInt64Size(Oo);          }          if (Bb != 0) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);          }          return size;        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(NestedMessage other) {          if (other == null) {            return;          }          if (other.Oo != 0L) {            Oo = other.Oo;          }          if (other.Bb != 0) {            Bb = other.Bb;          }        }        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while ((tag = input.ReadTag()) != 0) {            switch(tag) {              default:                input.SkipLastField();                break;              case 8: {                Bb = input.ReadInt32();                break;              }              case 16: {                Oo = input.ReadInt64();                break;              }            }          }        }      }    }    #endregion  }  public sealed partial class SparseEnumMessage : pb::IMessage<SparseEnumMessage> {    private static readonly pb::MessageParser<SparseEnumMessage> _parser = new pb::MessageParser<SparseEnumMessage>(() => new SparseEnumMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<SparseEnumMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[13]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SparseEnumMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SparseEnumMessage(SparseEnumMessage other) : this() {      sparseEnum_ = other.sparseEnum_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public SparseEnumMessage Clone() {      return new SparseEnumMessage(this);    }    /// <summary>Field number for the "sparse_enum" field.</summary>    public const int SparseEnumFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestSparseEnum sparseEnum_ = 0;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestSparseEnum SparseEnum {      get { return sparseEnum_; }      set {        sparseEnum_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as SparseEnumMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(SparseEnumMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (SparseEnum != other.SparseEnum) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (SparseEnum != 0) hash ^= SparseEnum.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 (SparseEnum != 0) {        output.WriteRawTag(8);        output.WriteEnum((int) SparseEnum);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (SparseEnum != 0) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SparseEnum);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(SparseEnumMessage other) {      if (other == null) {        return;      }      if (other.SparseEnum != 0) {        SparseEnum = other.SparseEnum;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            sparseEnum_ = (global::Google.Protobuf.TestProtos.TestSparseEnum) input.ReadEnum();            break;          }        }      }    }  }  /// <summary>  /// Test String and Bytes: string is for valid UTF-8 strings  /// </summary>  public sealed partial class OneString : pb::IMessage<OneString> {    private static readonly pb::MessageParser<OneString> _parser = new pb::MessageParser<OneString>(() => new OneString());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<OneString> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[14]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneString() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneString(OneString other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneString Clone() {      return new OneString(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private string data_ = "";    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string Data {      get { return data_; }      set {        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as OneString);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(OneString other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data.Length != 0) hash ^= Data.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 (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteString(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(OneString other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            Data = input.ReadString();            break;          }        }      }    }  }  public sealed partial class MoreString : pb::IMessage<MoreString> {    private static readonly pb::MessageParser<MoreString> _parser = new pb::MessageParser<MoreString>(() => new MoreString());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<MoreString> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[15]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreString() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreString(MoreString other) : this() {      data_ = other.data_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreString Clone() {      return new MoreString(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private static readonly pb::FieldCodec<string> _repeated_data_codec        = pb::FieldCodec.ForString(10);    private readonly pbc::RepeatedField<string> data_ = new pbc::RepeatedField<string>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<string> Data {      get { return data_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as MoreString);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(MoreString other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!data_.Equals(other.data_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= data_.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) {      data_.WriteTo(output, _repeated_data_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += data_.CalculateSize(_repeated_data_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(MoreString other) {      if (other == null) {        return;      }      data_.Add(other.data_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            data_.AddEntriesFrom(input, _repeated_data_codec);            break;          }        }      }    }  }  public sealed partial class OneBytes : pb::IMessage<OneBytes> {    private static readonly pb::MessageParser<OneBytes> _parser = new pb::MessageParser<OneBytes>(() => new OneBytes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<OneBytes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[16]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneBytes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneBytes(OneBytes other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public OneBytes Clone() {      return new OneBytes(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private pb::ByteString data_ = pb::ByteString.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pb::ByteString Data {      get { return data_; }      set {        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as OneBytes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(OneBytes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data.Length != 0) hash ^= Data.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 (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteBytes(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(OneBytes other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            Data = input.ReadBytes();            break;          }        }      }    }  }  public sealed partial class MoreBytes : pb::IMessage<MoreBytes> {    private static readonly pb::MessageParser<MoreBytes> _parser = new pb::MessageParser<MoreBytes>(() => new MoreBytes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<MoreBytes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[17]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreBytes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreBytes(MoreBytes other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public MoreBytes Clone() {      return new MoreBytes(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private pb::ByteString data_ = pb::ByteString.Empty;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pb::ByteString Data {      get { return data_; }      set {        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as MoreBytes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(MoreBytes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data.Length != 0) hash ^= Data.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 (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteBytes(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(MoreBytes other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            Data = input.ReadBytes();            break;          }        }      }    }  }  /// <summary>  /// Test int32, uint32, int64, uint64, and bool are all compatible  /// </summary>  public sealed partial class Int32Message : pb::IMessage<Int32Message> {    private static readonly pb::MessageParser<Int32Message> _parser = new pb::MessageParser<Int32Message>(() => new Int32Message());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<Int32Message> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[18]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int32Message() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int32Message(Int32Message other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int32Message Clone() {      return new Int32Message(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private int data_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int Data {      get { return data_; }      set {        data_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as Int32Message);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(Int32Message other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data != 0) hash ^= Data.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 (Data != 0) {        output.WriteRawTag(8);        output.WriteInt32(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(Int32Message other) {      if (other == null) {        return;      }      if (other.Data != 0) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            Data = input.ReadInt32();            break;          }        }      }    }  }  public sealed partial class Uint32Message : pb::IMessage<Uint32Message> {    private static readonly pb::MessageParser<Uint32Message> _parser = new pb::MessageParser<Uint32Message>(() => new Uint32Message());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<Uint32Message> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[19]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint32Message() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint32Message(Uint32Message other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint32Message Clone() {      return new Uint32Message(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private uint data_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public uint Data {      get { return data_; }      set {        data_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as Uint32Message);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(Uint32Message other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data != 0) hash ^= Data.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 (Data != 0) {        output.WriteRawTag(8);        output.WriteUInt32(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data != 0) {        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(Uint32Message other) {      if (other == null) {        return;      }      if (other.Data != 0) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            Data = input.ReadUInt32();            break;          }        }      }    }  }  public sealed partial class Int64Message : pb::IMessage<Int64Message> {    private static readonly pb::MessageParser<Int64Message> _parser = new pb::MessageParser<Int64Message>(() => new Int64Message());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<Int64Message> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[20]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int64Message() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int64Message(Int64Message other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Int64Message Clone() {      return new Int64Message(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private long data_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public long Data {      get { return data_; }      set {        data_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as Int64Message);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(Int64Message other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data != 0L) hash ^= Data.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 (Data != 0L) {        output.WriteRawTag(8);        output.WriteInt64(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data != 0L) {        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(Int64Message other) {      if (other == null) {        return;      }      if (other.Data != 0L) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            Data = input.ReadInt64();            break;          }        }      }    }  }  public sealed partial class Uint64Message : pb::IMessage<Uint64Message> {    private static readonly pb::MessageParser<Uint64Message> _parser = new pb::MessageParser<Uint64Message>(() => new Uint64Message());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<Uint64Message> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[21]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint64Message() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint64Message(Uint64Message other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public Uint64Message Clone() {      return new Uint64Message(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private ulong data_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public ulong Data {      get { return data_; }      set {        data_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as Uint64Message);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(Uint64Message other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data != 0UL) hash ^= Data.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 (Data != 0UL) {        output.WriteRawTag(8);        output.WriteUInt64(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data != 0UL) {        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Data);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(Uint64Message other) {      if (other == null) {        return;      }      if (other.Data != 0UL) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            Data = input.ReadUInt64();            break;          }        }      }    }  }  public sealed partial class BoolMessage : pb::IMessage<BoolMessage> {    private static readonly pb::MessageParser<BoolMessage> _parser = new pb::MessageParser<BoolMessage>(() => new BoolMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<BoolMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[22]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BoolMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BoolMessage(BoolMessage other) : this() {      data_ = other.data_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BoolMessage Clone() {      return new BoolMessage(this);    }    /// <summary>Field number for the "data" field.</summary>    public const int DataFieldNumber = 1;    private bool data_;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Data {      get { return data_; }      set {        data_ = value;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as BoolMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(BoolMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (Data != other.Data) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (Data != false) hash ^= Data.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 (Data != false) {        output.WriteRawTag(8);        output.WriteBool(Data);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (Data != false) {        size += 1 + 1;      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(BoolMessage other) {      if (other == null) {        return;      }      if (other.Data != false) {        Data = other.Data;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            Data = input.ReadBool();            break;          }        }      }    }  }  /// <summary>  /// Test oneofs.  /// </summary>  public sealed partial class TestOneof : pb::IMessage<TestOneof> {    private static readonly pb::MessageParser<TestOneof> _parser = new pb::MessageParser<TestOneof>(() => new TestOneof());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestOneof> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[23]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestOneof() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestOneof(TestOneof other) : this() {      switch (other.FooCase) {        case FooOneofCase.FooInt:          FooInt = other.FooInt;          break;        case FooOneofCase.FooString:          FooString = other.FooString;          break;        case FooOneofCase.FooMessage:          FooMessage = other.FooMessage.Clone();          break;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestOneof Clone() {      return new TestOneof(this);    }    /// <summary>Field number for the "foo_int" field.</summary>    public const int FooIntFieldNumber = 1;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int FooInt {      get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }      set {        foo_ = value;        fooCase_ = FooOneofCase.FooInt;      }    }    /// <summary>Field number for the "foo_string" field.</summary>    public const int FooStringFieldNumber = 2;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string FooString {      get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }      set {        foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");        fooCase_ = FooOneofCase.FooString;      }    }    /// <summary>Field number for the "foo_message" field.</summary>    public const int FooMessageFieldNumber = 3;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public global::Google.Protobuf.TestProtos.TestAllTypes FooMessage {      get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.Protobuf.TestProtos.TestAllTypes) foo_ : null; }      set {        foo_ = value;        fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooMessage;      }    }    private object foo_;    /// <summary>Enum of possible cases for the "foo" oneof.</summary>    public enum FooOneofCase {      None = 0,      FooInt = 1,      FooString = 2,      FooMessage = 3,    }    private FooOneofCase fooCase_ = FooOneofCase.None;    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooOneofCase FooCase {      get { return fooCase_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void ClearFoo() {      fooCase_ = FooOneofCase.None;      foo_ = null;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestOneof);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestOneof other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (FooInt != other.FooInt) return false;      if (FooString != other.FooString) return false;      if (!object.Equals(FooMessage, other.FooMessage)) return false;      if (FooCase != other.FooCase) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (fooCase_ == FooOneofCase.FooInt) hash ^= FooInt.GetHashCode();      if (fooCase_ == FooOneofCase.FooString) hash ^= FooString.GetHashCode();      if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();      hash ^= (int) fooCase_;      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 (fooCase_ == FooOneofCase.FooInt) {        output.WriteRawTag(8);        output.WriteInt32(FooInt);      }      if (fooCase_ == FooOneofCase.FooString) {        output.WriteRawTag(18);        output.WriteString(FooString);      }      if (fooCase_ == FooOneofCase.FooMessage) {        output.WriteRawTag(26);        output.WriteMessage(FooMessage);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (fooCase_ == FooOneofCase.FooInt) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);      }      if (fooCase_ == FooOneofCase.FooString) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);      }      if (fooCase_ == FooOneofCase.FooMessage) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestOneof other) {      if (other == null) {        return;      }      switch (other.FooCase) {        case FooOneofCase.FooInt:          FooInt = other.FooInt;          break;        case FooOneofCase.FooString:          FooString = other.FooString;          break;        case FooOneofCase.FooMessage:          FooMessage = other.FooMessage;          break;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 8: {            FooInt = input.ReadInt32();            break;          }          case 18: {            FooString = input.ReadString();            break;          }          case 26: {            global::Google.Protobuf.TestProtos.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.TestAllTypes();            if (fooCase_ == FooOneofCase.FooMessage) {              subBuilder.MergeFrom(FooMessage);            }            input.ReadMessage(subBuilder);            FooMessage = subBuilder;            break;          }        }      }    }  }  public sealed partial class TestPackedTypes : pb::IMessage<TestPackedTypes> {    private static readonly pb::MessageParser<TestPackedTypes> _parser = new pb::MessageParser<TestPackedTypes>(() => new TestPackedTypes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestPackedTypes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[24]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestPackedTypes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestPackedTypes(TestPackedTypes other) : this() {      packedInt32_ = other.packedInt32_.Clone();      packedInt64_ = other.packedInt64_.Clone();      packedUint32_ = other.packedUint32_.Clone();      packedUint64_ = other.packedUint64_.Clone();      packedSint32_ = other.packedSint32_.Clone();      packedSint64_ = other.packedSint64_.Clone();      packedFixed32_ = other.packedFixed32_.Clone();      packedFixed64_ = other.packedFixed64_.Clone();      packedSfixed32_ = other.packedSfixed32_.Clone();      packedSfixed64_ = other.packedSfixed64_.Clone();      packedFloat_ = other.packedFloat_.Clone();      packedDouble_ = other.packedDouble_.Clone();      packedBool_ = other.packedBool_.Clone();      packedEnum_ = other.packedEnum_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestPackedTypes Clone() {      return new TestPackedTypes(this);    }    /// <summary>Field number for the "packed_int32" field.</summary>    public const int PackedInt32FieldNumber = 90;    private static readonly pb::FieldCodec<int> _repeated_packedInt32_codec        = pb::FieldCodec.ForInt32(722);    private readonly pbc::RepeatedField<int> packedInt32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> PackedInt32 {      get { return packedInt32_; }    }    /// <summary>Field number for the "packed_int64" field.</summary>    public const int PackedInt64FieldNumber = 91;    private static readonly pb::FieldCodec<long> _repeated_packedInt64_codec        = pb::FieldCodec.ForInt64(730);    private readonly pbc::RepeatedField<long> packedInt64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> PackedInt64 {      get { return packedInt64_; }    }    /// <summary>Field number for the "packed_uint32" field.</summary>    public const int PackedUint32FieldNumber = 92;    private static readonly pb::FieldCodec<uint> _repeated_packedUint32_codec        = pb::FieldCodec.ForUInt32(738);    private readonly pbc::RepeatedField<uint> packedUint32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> PackedUint32 {      get { return packedUint32_; }    }    /// <summary>Field number for the "packed_uint64" field.</summary>    public const int PackedUint64FieldNumber = 93;    private static readonly pb::FieldCodec<ulong> _repeated_packedUint64_codec        = pb::FieldCodec.ForUInt64(746);    private readonly pbc::RepeatedField<ulong> packedUint64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> PackedUint64 {      get { return packedUint64_; }    }    /// <summary>Field number for the "packed_sint32" field.</summary>    public const int PackedSint32FieldNumber = 94;    private static readonly pb::FieldCodec<int> _repeated_packedSint32_codec        = pb::FieldCodec.ForSInt32(754);    private readonly pbc::RepeatedField<int> packedSint32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> PackedSint32 {      get { return packedSint32_; }    }    /// <summary>Field number for the "packed_sint64" field.</summary>    public const int PackedSint64FieldNumber = 95;    private static readonly pb::FieldCodec<long> _repeated_packedSint64_codec        = pb::FieldCodec.ForSInt64(762);    private readonly pbc::RepeatedField<long> packedSint64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> PackedSint64 {      get { return packedSint64_; }    }    /// <summary>Field number for the "packed_fixed32" field.</summary>    public const int PackedFixed32FieldNumber = 96;    private static readonly pb::FieldCodec<uint> _repeated_packedFixed32_codec        = pb::FieldCodec.ForFixed32(770);    private readonly pbc::RepeatedField<uint> packedFixed32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> PackedFixed32 {      get { return packedFixed32_; }    }    /// <summary>Field number for the "packed_fixed64" field.</summary>    public const int PackedFixed64FieldNumber = 97;    private static readonly pb::FieldCodec<ulong> _repeated_packedFixed64_codec        = pb::FieldCodec.ForFixed64(778);    private readonly pbc::RepeatedField<ulong> packedFixed64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> PackedFixed64 {      get { return packedFixed64_; }    }    /// <summary>Field number for the "packed_sfixed32" field.</summary>    public const int PackedSfixed32FieldNumber = 98;    private static readonly pb::FieldCodec<int> _repeated_packedSfixed32_codec        = pb::FieldCodec.ForSFixed32(786);    private readonly pbc::RepeatedField<int> packedSfixed32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> PackedSfixed32 {      get { return packedSfixed32_; }    }    /// <summary>Field number for the "packed_sfixed64" field.</summary>    public const int PackedSfixed64FieldNumber = 99;    private static readonly pb::FieldCodec<long> _repeated_packedSfixed64_codec        = pb::FieldCodec.ForSFixed64(794);    private readonly pbc::RepeatedField<long> packedSfixed64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> PackedSfixed64 {      get { return packedSfixed64_; }    }    /// <summary>Field number for the "packed_float" field.</summary>    public const int PackedFloatFieldNumber = 100;    private static readonly pb::FieldCodec<float> _repeated_packedFloat_codec        = pb::FieldCodec.ForFloat(802);    private readonly pbc::RepeatedField<float> packedFloat_ = new pbc::RepeatedField<float>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<float> PackedFloat {      get { return packedFloat_; }    }    /// <summary>Field number for the "packed_double" field.</summary>    public const int PackedDoubleFieldNumber = 101;    private static readonly pb::FieldCodec<double> _repeated_packedDouble_codec        = pb::FieldCodec.ForDouble(810);    private readonly pbc::RepeatedField<double> packedDouble_ = new pbc::RepeatedField<double>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<double> PackedDouble {      get { return packedDouble_; }    }    /// <summary>Field number for the "packed_bool" field.</summary>    public const int PackedBoolFieldNumber = 102;    private static readonly pb::FieldCodec<bool> _repeated_packedBool_codec        = pb::FieldCodec.ForBool(818);    private readonly pbc::RepeatedField<bool> packedBool_ = new pbc::RepeatedField<bool>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<bool> PackedBool {      get { return packedBool_; }    }    /// <summary>Field number for the "packed_enum" field.</summary>    public const int PackedEnumFieldNumber = 103;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignEnum> _repeated_packedEnum_codec        = pb::FieldCodec.ForEnum(826, x => (int) x, x => (global::Google.Protobuf.TestProtos.ForeignEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> packedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> PackedEnum {      get { return packedEnum_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestPackedTypes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestPackedTypes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!packedInt32_.Equals(other.packedInt32_)) return false;      if(!packedInt64_.Equals(other.packedInt64_)) return false;      if(!packedUint32_.Equals(other.packedUint32_)) return false;      if(!packedUint64_.Equals(other.packedUint64_)) return false;      if(!packedSint32_.Equals(other.packedSint32_)) return false;      if(!packedSint64_.Equals(other.packedSint64_)) return false;      if(!packedFixed32_.Equals(other.packedFixed32_)) return false;      if(!packedFixed64_.Equals(other.packedFixed64_)) return false;      if(!packedSfixed32_.Equals(other.packedSfixed32_)) return false;      if(!packedSfixed64_.Equals(other.packedSfixed64_)) return false;      if(!packedFloat_.Equals(other.packedFloat_)) return false;      if(!packedDouble_.Equals(other.packedDouble_)) return false;      if(!packedBool_.Equals(other.packedBool_)) return false;      if(!packedEnum_.Equals(other.packedEnum_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= packedInt32_.GetHashCode();      hash ^= packedInt64_.GetHashCode();      hash ^= packedUint32_.GetHashCode();      hash ^= packedUint64_.GetHashCode();      hash ^= packedSint32_.GetHashCode();      hash ^= packedSint64_.GetHashCode();      hash ^= packedFixed32_.GetHashCode();      hash ^= packedFixed64_.GetHashCode();      hash ^= packedSfixed32_.GetHashCode();      hash ^= packedSfixed64_.GetHashCode();      hash ^= packedFloat_.GetHashCode();      hash ^= packedDouble_.GetHashCode();      hash ^= packedBool_.GetHashCode();      hash ^= packedEnum_.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) {      packedInt32_.WriteTo(output, _repeated_packedInt32_codec);      packedInt64_.WriteTo(output, _repeated_packedInt64_codec);      packedUint32_.WriteTo(output, _repeated_packedUint32_codec);      packedUint64_.WriteTo(output, _repeated_packedUint64_codec);      packedSint32_.WriteTo(output, _repeated_packedSint32_codec);      packedSint64_.WriteTo(output, _repeated_packedSint64_codec);      packedFixed32_.WriteTo(output, _repeated_packedFixed32_codec);      packedFixed64_.WriteTo(output, _repeated_packedFixed64_codec);      packedSfixed32_.WriteTo(output, _repeated_packedSfixed32_codec);      packedSfixed64_.WriteTo(output, _repeated_packedSfixed64_codec);      packedFloat_.WriteTo(output, _repeated_packedFloat_codec);      packedDouble_.WriteTo(output, _repeated_packedDouble_codec);      packedBool_.WriteTo(output, _repeated_packedBool_codec);      packedEnum_.WriteTo(output, _repeated_packedEnum_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += packedInt32_.CalculateSize(_repeated_packedInt32_codec);      size += packedInt64_.CalculateSize(_repeated_packedInt64_codec);      size += packedUint32_.CalculateSize(_repeated_packedUint32_codec);      size += packedUint64_.CalculateSize(_repeated_packedUint64_codec);      size += packedSint32_.CalculateSize(_repeated_packedSint32_codec);      size += packedSint64_.CalculateSize(_repeated_packedSint64_codec);      size += packedFixed32_.CalculateSize(_repeated_packedFixed32_codec);      size += packedFixed64_.CalculateSize(_repeated_packedFixed64_codec);      size += packedSfixed32_.CalculateSize(_repeated_packedSfixed32_codec);      size += packedSfixed64_.CalculateSize(_repeated_packedSfixed64_codec);      size += packedFloat_.CalculateSize(_repeated_packedFloat_codec);      size += packedDouble_.CalculateSize(_repeated_packedDouble_codec);      size += packedBool_.CalculateSize(_repeated_packedBool_codec);      size += packedEnum_.CalculateSize(_repeated_packedEnum_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestPackedTypes other) {      if (other == null) {        return;      }      packedInt32_.Add(other.packedInt32_);      packedInt64_.Add(other.packedInt64_);      packedUint32_.Add(other.packedUint32_);      packedUint64_.Add(other.packedUint64_);      packedSint32_.Add(other.packedSint32_);      packedSint64_.Add(other.packedSint64_);      packedFixed32_.Add(other.packedFixed32_);      packedFixed64_.Add(other.packedFixed64_);      packedSfixed32_.Add(other.packedSfixed32_);      packedSfixed64_.Add(other.packedSfixed64_);      packedFloat_.Add(other.packedFloat_);      packedDouble_.Add(other.packedDouble_);      packedBool_.Add(other.packedBool_);      packedEnum_.Add(other.packedEnum_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 722:          case 720: {            packedInt32_.AddEntriesFrom(input, _repeated_packedInt32_codec);            break;          }          case 730:          case 728: {            packedInt64_.AddEntriesFrom(input, _repeated_packedInt64_codec);            break;          }          case 738:          case 736: {            packedUint32_.AddEntriesFrom(input, _repeated_packedUint32_codec);            break;          }          case 746:          case 744: {            packedUint64_.AddEntriesFrom(input, _repeated_packedUint64_codec);            break;          }          case 754:          case 752: {            packedSint32_.AddEntriesFrom(input, _repeated_packedSint32_codec);            break;          }          case 762:          case 760: {            packedSint64_.AddEntriesFrom(input, _repeated_packedSint64_codec);            break;          }          case 770:          case 773: {            packedFixed32_.AddEntriesFrom(input, _repeated_packedFixed32_codec);            break;          }          case 778:          case 777: {            packedFixed64_.AddEntriesFrom(input, _repeated_packedFixed64_codec);            break;          }          case 786:          case 789: {            packedSfixed32_.AddEntriesFrom(input, _repeated_packedSfixed32_codec);            break;          }          case 794:          case 793: {            packedSfixed64_.AddEntriesFrom(input, _repeated_packedSfixed64_codec);            break;          }          case 802:          case 805: {            packedFloat_.AddEntriesFrom(input, _repeated_packedFloat_codec);            break;          }          case 810:          case 809: {            packedDouble_.AddEntriesFrom(input, _repeated_packedDouble_codec);            break;          }          case 818:          case 816: {            packedBool_.AddEntriesFrom(input, _repeated_packedBool_codec);            break;          }          case 826:          case 824: {            packedEnum_.AddEntriesFrom(input, _repeated_packedEnum_codec);            break;          }        }      }    }  }  /// <summary>  /// A message with the same fields as TestPackedTypes, but without packing. Used  /// to test packed <-> unpacked wire compatibility.  /// </summary>  public sealed partial class TestUnpackedTypes : pb::IMessage<TestUnpackedTypes> {    private static readonly pb::MessageParser<TestUnpackedTypes> _parser = new pb::MessageParser<TestUnpackedTypes>(() => new TestUnpackedTypes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestUnpackedTypes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[25]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestUnpackedTypes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestUnpackedTypes(TestUnpackedTypes other) : this() {      unpackedInt32_ = other.unpackedInt32_.Clone();      unpackedInt64_ = other.unpackedInt64_.Clone();      unpackedUint32_ = other.unpackedUint32_.Clone();      unpackedUint64_ = other.unpackedUint64_.Clone();      unpackedSint32_ = other.unpackedSint32_.Clone();      unpackedSint64_ = other.unpackedSint64_.Clone();      unpackedFixed32_ = other.unpackedFixed32_.Clone();      unpackedFixed64_ = other.unpackedFixed64_.Clone();      unpackedSfixed32_ = other.unpackedSfixed32_.Clone();      unpackedSfixed64_ = other.unpackedSfixed64_.Clone();      unpackedFloat_ = other.unpackedFloat_.Clone();      unpackedDouble_ = other.unpackedDouble_.Clone();      unpackedBool_ = other.unpackedBool_.Clone();      unpackedEnum_ = other.unpackedEnum_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestUnpackedTypes Clone() {      return new TestUnpackedTypes(this);    }    /// <summary>Field number for the "unpacked_int32" field.</summary>    public const int UnpackedInt32FieldNumber = 90;    private static readonly pb::FieldCodec<int> _repeated_unpackedInt32_codec        = pb::FieldCodec.ForInt32(720);    private readonly pbc::RepeatedField<int> unpackedInt32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> UnpackedInt32 {      get { return unpackedInt32_; }    }    /// <summary>Field number for the "unpacked_int64" field.</summary>    public const int UnpackedInt64FieldNumber = 91;    private static readonly pb::FieldCodec<long> _repeated_unpackedInt64_codec        = pb::FieldCodec.ForInt64(728);    private readonly pbc::RepeatedField<long> unpackedInt64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> UnpackedInt64 {      get { return unpackedInt64_; }    }    /// <summary>Field number for the "unpacked_uint32" field.</summary>    public const int UnpackedUint32FieldNumber = 92;    private static readonly pb::FieldCodec<uint> _repeated_unpackedUint32_codec        = pb::FieldCodec.ForUInt32(736);    private readonly pbc::RepeatedField<uint> unpackedUint32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> UnpackedUint32 {      get { return unpackedUint32_; }    }    /// <summary>Field number for the "unpacked_uint64" field.</summary>    public const int UnpackedUint64FieldNumber = 93;    private static readonly pb::FieldCodec<ulong> _repeated_unpackedUint64_codec        = pb::FieldCodec.ForUInt64(744);    private readonly pbc::RepeatedField<ulong> unpackedUint64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> UnpackedUint64 {      get { return unpackedUint64_; }    }    /// <summary>Field number for the "unpacked_sint32" field.</summary>    public const int UnpackedSint32FieldNumber = 94;    private static readonly pb::FieldCodec<int> _repeated_unpackedSint32_codec        = pb::FieldCodec.ForSInt32(752);    private readonly pbc::RepeatedField<int> unpackedSint32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> UnpackedSint32 {      get { return unpackedSint32_; }    }    /// <summary>Field number for the "unpacked_sint64" field.</summary>    public const int UnpackedSint64FieldNumber = 95;    private static readonly pb::FieldCodec<long> _repeated_unpackedSint64_codec        = pb::FieldCodec.ForSInt64(760);    private readonly pbc::RepeatedField<long> unpackedSint64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> UnpackedSint64 {      get { return unpackedSint64_; }    }    /// <summary>Field number for the "unpacked_fixed32" field.</summary>    public const int UnpackedFixed32FieldNumber = 96;    private static readonly pb::FieldCodec<uint> _repeated_unpackedFixed32_codec        = pb::FieldCodec.ForFixed32(773);    private readonly pbc::RepeatedField<uint> unpackedFixed32_ = new pbc::RepeatedField<uint>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> UnpackedFixed32 {      get { return unpackedFixed32_; }    }    /// <summary>Field number for the "unpacked_fixed64" field.</summary>    public const int UnpackedFixed64FieldNumber = 97;    private static readonly pb::FieldCodec<ulong> _repeated_unpackedFixed64_codec        = pb::FieldCodec.ForFixed64(777);    private readonly pbc::RepeatedField<ulong> unpackedFixed64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> UnpackedFixed64 {      get { return unpackedFixed64_; }    }    /// <summary>Field number for the "unpacked_sfixed32" field.</summary>    public const int UnpackedSfixed32FieldNumber = 98;    private static readonly pb::FieldCodec<int> _repeated_unpackedSfixed32_codec        = pb::FieldCodec.ForSFixed32(789);    private readonly pbc::RepeatedField<int> unpackedSfixed32_ = new pbc::RepeatedField<int>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> UnpackedSfixed32 {      get { return unpackedSfixed32_; }    }    /// <summary>Field number for the "unpacked_sfixed64" field.</summary>    public const int UnpackedSfixed64FieldNumber = 99;    private static readonly pb::FieldCodec<long> _repeated_unpackedSfixed64_codec        = pb::FieldCodec.ForSFixed64(793);    private readonly pbc::RepeatedField<long> unpackedSfixed64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> UnpackedSfixed64 {      get { return unpackedSfixed64_; }    }    /// <summary>Field number for the "unpacked_float" field.</summary>    public const int UnpackedFloatFieldNumber = 100;    private static readonly pb::FieldCodec<float> _repeated_unpackedFloat_codec        = pb::FieldCodec.ForFloat(805);    private readonly pbc::RepeatedField<float> unpackedFloat_ = new pbc::RepeatedField<float>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<float> UnpackedFloat {      get { return unpackedFloat_; }    }    /// <summary>Field number for the "unpacked_double" field.</summary>    public const int UnpackedDoubleFieldNumber = 101;    private static readonly pb::FieldCodec<double> _repeated_unpackedDouble_codec        = pb::FieldCodec.ForDouble(809);    private readonly pbc::RepeatedField<double> unpackedDouble_ = new pbc::RepeatedField<double>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<double> UnpackedDouble {      get { return unpackedDouble_; }    }    /// <summary>Field number for the "unpacked_bool" field.</summary>    public const int UnpackedBoolFieldNumber = 102;    private static readonly pb::FieldCodec<bool> _repeated_unpackedBool_codec        = pb::FieldCodec.ForBool(816);    private readonly pbc::RepeatedField<bool> unpackedBool_ = new pbc::RepeatedField<bool>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<bool> UnpackedBool {      get { return unpackedBool_; }    }    /// <summary>Field number for the "unpacked_enum" field.</summary>    public const int UnpackedEnumFieldNumber = 103;    private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.ForeignEnum> _repeated_unpackedEnum_codec        = pb::FieldCodec.ForEnum(824, x => (int) x, x => (global::Google.Protobuf.TestProtos.ForeignEnum) x);    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> UnpackedEnum {      get { return unpackedEnum_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestUnpackedTypes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestUnpackedTypes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!unpackedInt32_.Equals(other.unpackedInt32_)) return false;      if(!unpackedInt64_.Equals(other.unpackedInt64_)) return false;      if(!unpackedUint32_.Equals(other.unpackedUint32_)) return false;      if(!unpackedUint64_.Equals(other.unpackedUint64_)) return false;      if(!unpackedSint32_.Equals(other.unpackedSint32_)) return false;      if(!unpackedSint64_.Equals(other.unpackedSint64_)) return false;      if(!unpackedFixed32_.Equals(other.unpackedFixed32_)) return false;      if(!unpackedFixed64_.Equals(other.unpackedFixed64_)) return false;      if(!unpackedSfixed32_.Equals(other.unpackedSfixed32_)) return false;      if(!unpackedSfixed64_.Equals(other.unpackedSfixed64_)) return false;      if(!unpackedFloat_.Equals(other.unpackedFloat_)) return false;      if(!unpackedDouble_.Equals(other.unpackedDouble_)) return false;      if(!unpackedBool_.Equals(other.unpackedBool_)) return false;      if(!unpackedEnum_.Equals(other.unpackedEnum_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= unpackedInt32_.GetHashCode();      hash ^= unpackedInt64_.GetHashCode();      hash ^= unpackedUint32_.GetHashCode();      hash ^= unpackedUint64_.GetHashCode();      hash ^= unpackedSint32_.GetHashCode();      hash ^= unpackedSint64_.GetHashCode();      hash ^= unpackedFixed32_.GetHashCode();      hash ^= unpackedFixed64_.GetHashCode();      hash ^= unpackedSfixed32_.GetHashCode();      hash ^= unpackedSfixed64_.GetHashCode();      hash ^= unpackedFloat_.GetHashCode();      hash ^= unpackedDouble_.GetHashCode();      hash ^= unpackedBool_.GetHashCode();      hash ^= unpackedEnum_.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) {      unpackedInt32_.WriteTo(output, _repeated_unpackedInt32_codec);      unpackedInt64_.WriteTo(output, _repeated_unpackedInt64_codec);      unpackedUint32_.WriteTo(output, _repeated_unpackedUint32_codec);      unpackedUint64_.WriteTo(output, _repeated_unpackedUint64_codec);      unpackedSint32_.WriteTo(output, _repeated_unpackedSint32_codec);      unpackedSint64_.WriteTo(output, _repeated_unpackedSint64_codec);      unpackedFixed32_.WriteTo(output, _repeated_unpackedFixed32_codec);      unpackedFixed64_.WriteTo(output, _repeated_unpackedFixed64_codec);      unpackedSfixed32_.WriteTo(output, _repeated_unpackedSfixed32_codec);      unpackedSfixed64_.WriteTo(output, _repeated_unpackedSfixed64_codec);      unpackedFloat_.WriteTo(output, _repeated_unpackedFloat_codec);      unpackedDouble_.WriteTo(output, _repeated_unpackedDouble_codec);      unpackedBool_.WriteTo(output, _repeated_unpackedBool_codec);      unpackedEnum_.WriteTo(output, _repeated_unpackedEnum_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += unpackedInt32_.CalculateSize(_repeated_unpackedInt32_codec);      size += unpackedInt64_.CalculateSize(_repeated_unpackedInt64_codec);      size += unpackedUint32_.CalculateSize(_repeated_unpackedUint32_codec);      size += unpackedUint64_.CalculateSize(_repeated_unpackedUint64_codec);      size += unpackedSint32_.CalculateSize(_repeated_unpackedSint32_codec);      size += unpackedSint64_.CalculateSize(_repeated_unpackedSint64_codec);      size += unpackedFixed32_.CalculateSize(_repeated_unpackedFixed32_codec);      size += unpackedFixed64_.CalculateSize(_repeated_unpackedFixed64_codec);      size += unpackedSfixed32_.CalculateSize(_repeated_unpackedSfixed32_codec);      size += unpackedSfixed64_.CalculateSize(_repeated_unpackedSfixed64_codec);      size += unpackedFloat_.CalculateSize(_repeated_unpackedFloat_codec);      size += unpackedDouble_.CalculateSize(_repeated_unpackedDouble_codec);      size += unpackedBool_.CalculateSize(_repeated_unpackedBool_codec);      size += unpackedEnum_.CalculateSize(_repeated_unpackedEnum_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestUnpackedTypes other) {      if (other == null) {        return;      }      unpackedInt32_.Add(other.unpackedInt32_);      unpackedInt64_.Add(other.unpackedInt64_);      unpackedUint32_.Add(other.unpackedUint32_);      unpackedUint64_.Add(other.unpackedUint64_);      unpackedSint32_.Add(other.unpackedSint32_);      unpackedSint64_.Add(other.unpackedSint64_);      unpackedFixed32_.Add(other.unpackedFixed32_);      unpackedFixed64_.Add(other.unpackedFixed64_);      unpackedSfixed32_.Add(other.unpackedSfixed32_);      unpackedSfixed64_.Add(other.unpackedSfixed64_);      unpackedFloat_.Add(other.unpackedFloat_);      unpackedDouble_.Add(other.unpackedDouble_);      unpackedBool_.Add(other.unpackedBool_);      unpackedEnum_.Add(other.unpackedEnum_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 722:          case 720: {            unpackedInt32_.AddEntriesFrom(input, _repeated_unpackedInt32_codec);            break;          }          case 730:          case 728: {            unpackedInt64_.AddEntriesFrom(input, _repeated_unpackedInt64_codec);            break;          }          case 738:          case 736: {            unpackedUint32_.AddEntriesFrom(input, _repeated_unpackedUint32_codec);            break;          }          case 746:          case 744: {            unpackedUint64_.AddEntriesFrom(input, _repeated_unpackedUint64_codec);            break;          }          case 754:          case 752: {            unpackedSint32_.AddEntriesFrom(input, _repeated_unpackedSint32_codec);            break;          }          case 762:          case 760: {            unpackedSint64_.AddEntriesFrom(input, _repeated_unpackedSint64_codec);            break;          }          case 770:          case 773: {            unpackedFixed32_.AddEntriesFrom(input, _repeated_unpackedFixed32_codec);            break;          }          case 778:          case 777: {            unpackedFixed64_.AddEntriesFrom(input, _repeated_unpackedFixed64_codec);            break;          }          case 786:          case 789: {            unpackedSfixed32_.AddEntriesFrom(input, _repeated_unpackedSfixed32_codec);            break;          }          case 794:          case 793: {            unpackedSfixed64_.AddEntriesFrom(input, _repeated_unpackedSfixed64_codec);            break;          }          case 802:          case 805: {            unpackedFloat_.AddEntriesFrom(input, _repeated_unpackedFloat_codec);            break;          }          case 810:          case 809: {            unpackedDouble_.AddEntriesFrom(input, _repeated_unpackedDouble_codec);            break;          }          case 818:          case 816: {            unpackedBool_.AddEntriesFrom(input, _repeated_unpackedBool_codec);            break;          }          case 826:          case 824: {            unpackedEnum_.AddEntriesFrom(input, _repeated_unpackedEnum_codec);            break;          }        }      }    }  }  public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::IMessage<TestRepeatedScalarDifferentTagSizes> {    private static readonly pb::MessageParser<TestRepeatedScalarDifferentTagSizes> _parser = new pb::MessageParser<TestRepeatedScalarDifferentTagSizes>(() => new TestRepeatedScalarDifferentTagSizes());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestRepeatedScalarDifferentTagSizes> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[26]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRepeatedScalarDifferentTagSizes() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRepeatedScalarDifferentTagSizes(TestRepeatedScalarDifferentTagSizes other) : this() {      repeatedFixed32_ = other.repeatedFixed32_.Clone();      repeatedInt32_ = other.repeatedInt32_.Clone();      repeatedFixed64_ = other.repeatedFixed64_.Clone();      repeatedInt64_ = other.repeatedInt64_.Clone();      repeatedFloat_ = other.repeatedFloat_.Clone();      repeatedUint64_ = other.repeatedUint64_.Clone();    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestRepeatedScalarDifferentTagSizes Clone() {      return new TestRepeatedScalarDifferentTagSizes(this);    }    /// <summary>Field number for the "repeated_fixed32" field.</summary>    public const int RepeatedFixed32FieldNumber = 12;    private static readonly pb::FieldCodec<uint> _repeated_repeatedFixed32_codec        = pb::FieldCodec.ForFixed32(98);    private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();    /// <summary>    /// Parsing repeated fixed size values used to fail. This message needs to be    /// used in order to get a tag of the right size; all of the repeated fields    /// in TestAllTypes didn't trigger the check.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<uint> RepeatedFixed32 {      get { return repeatedFixed32_; }    }    /// <summary>Field number for the "repeated_int32" field.</summary>    public const int RepeatedInt32FieldNumber = 13;    private static readonly pb::FieldCodec<int> _repeated_repeatedInt32_codec        = pb::FieldCodec.ForInt32(106);    private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();    /// <summary>    /// Check for a varint type, just for good measure.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<int> RepeatedInt32 {      get { return repeatedInt32_; }    }    /// <summary>Field number for the "repeated_fixed64" field.</summary>    public const int RepeatedFixed64FieldNumber = 2046;    private static readonly pb::FieldCodec<ulong> _repeated_repeatedFixed64_codec        = pb::FieldCodec.ForFixed64(16370);    private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();    /// <summary>    /// These have two-byte tags.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> RepeatedFixed64 {      get { return repeatedFixed64_; }    }    /// <summary>Field number for the "repeated_int64" field.</summary>    public const int RepeatedInt64FieldNumber = 2047;    private static readonly pb::FieldCodec<long> _repeated_repeatedInt64_codec        = pb::FieldCodec.ForInt64(16378);    private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<long> RepeatedInt64 {      get { return repeatedInt64_; }    }    /// <summary>Field number for the "repeated_float" field.</summary>    public const int RepeatedFloatFieldNumber = 262142;    private static readonly pb::FieldCodec<float> _repeated_repeatedFloat_codec        = pb::FieldCodec.ForFloat(2097138);    private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();    /// <summary>    /// Three byte tags.    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<float> RepeatedFloat {      get { return repeatedFloat_; }    }    /// <summary>Field number for the "repeated_uint64" field.</summary>    public const int RepeatedUint64FieldNumber = 262143;    private static readonly pb::FieldCodec<ulong> _repeated_repeatedUint64_codec        = pb::FieldCodec.ForUInt64(2097146);    private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public pbc::RepeatedField<ulong> RepeatedUint64 {      get { return repeatedUint64_; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestRepeatedScalarDifferentTagSizes);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestRepeatedScalarDifferentTagSizes other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;      if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;      if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;      if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;      if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;      if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      hash ^= repeatedFixed32_.GetHashCode();      hash ^= repeatedInt32_.GetHashCode();      hash ^= repeatedFixed64_.GetHashCode();      hash ^= repeatedInt64_.GetHashCode();      hash ^= repeatedFloat_.GetHashCode();      hash ^= repeatedUint64_.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) {      repeatedFixed32_.WriteTo(output, _repeated_repeatedFixed32_codec);      repeatedInt32_.WriteTo(output, _repeated_repeatedInt32_codec);      repeatedFixed64_.WriteTo(output, _repeated_repeatedFixed64_codec);      repeatedInt64_.WriteTo(output, _repeated_repeatedInt64_codec);      repeatedFloat_.WriteTo(output, _repeated_repeatedFloat_codec);      repeatedUint64_.WriteTo(output, _repeated_repeatedUint64_codec);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      size += repeatedFixed32_.CalculateSize(_repeated_repeatedFixed32_codec);      size += repeatedInt32_.CalculateSize(_repeated_repeatedInt32_codec);      size += repeatedFixed64_.CalculateSize(_repeated_repeatedFixed64_codec);      size += repeatedInt64_.CalculateSize(_repeated_repeatedInt64_codec);      size += repeatedFloat_.CalculateSize(_repeated_repeatedFloat_codec);      size += repeatedUint64_.CalculateSize(_repeated_repeatedUint64_codec);      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestRepeatedScalarDifferentTagSizes other) {      if (other == null) {        return;      }      repeatedFixed32_.Add(other.repeatedFixed32_);      repeatedInt32_.Add(other.repeatedInt32_);      repeatedFixed64_.Add(other.repeatedFixed64_);      repeatedInt64_.Add(other.repeatedInt64_);      repeatedFloat_.Add(other.repeatedFloat_);      repeatedUint64_.Add(other.repeatedUint64_);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 98:          case 101: {            repeatedFixed32_.AddEntriesFrom(input, _repeated_repeatedFixed32_codec);            break;          }          case 106:          case 104: {            repeatedInt32_.AddEntriesFrom(input, _repeated_repeatedInt32_codec);            break;          }          case 16370:          case 16369: {            repeatedFixed64_.AddEntriesFrom(input, _repeated_repeatedFixed64_codec);            break;          }          case 16378:          case 16376: {            repeatedInt64_.AddEntriesFrom(input, _repeated_repeatedInt64_codec);            break;          }          case 2097138:          case 2097141: {            repeatedFloat_.AddEntriesFrom(input, _repeated_repeatedFloat_codec);            break;          }          case 2097146:          case 2097144: {            repeatedUint64_.AddEntriesFrom(input, _repeated_repeatedUint64_codec);            break;          }        }      }    }  }  public sealed partial class TestCommentInjectionMessage : pb::IMessage<TestCommentInjectionMessage> {    private static readonly pb::MessageParser<TestCommentInjectionMessage> _parser = new pb::MessageParser<TestCommentInjectionMessage>(() => new TestCommentInjectionMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<TestCommentInjectionMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[27]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCommentInjectionMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCommentInjectionMessage(TestCommentInjectionMessage other) : this() {      a_ = other.a_;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public TestCommentInjectionMessage Clone() {      return new TestCommentInjectionMessage(this);    }    /// <summary>Field number for the "a" field.</summary>    public const int AFieldNumber = 1;    private string a_ = "";    /// <summary>    /// */ <- This should not close the generated doc comment    /// </summary>    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public string A {      get { return a_; }      set {        a_ = pb::ProtoPreconditions.CheckNotNull(value, "value");      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as TestCommentInjectionMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(TestCommentInjectionMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      if (A != other.A) return false;      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      if (A.Length != 0) hash ^= A.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 (A.Length != 0) {        output.WriteRawTag(10);        output.WriteString(A);      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      if (A.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(A);      }      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(TestCommentInjectionMessage other) {      if (other == null) {        return;      }      if (other.A.Length != 0) {        A = other.A;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;          case 10: {            A = input.ReadString();            break;          }        }      }    }  }  /// <summary>  /// Test that RPC services work.  /// </summary>  public sealed partial class FooRequest : pb::IMessage<FooRequest> {    private static readonly pb::MessageParser<FooRequest> _parser = new pb::MessageParser<FooRequest>(() => new FooRequest());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FooRequest> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[28]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooRequest() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooRequest(FooRequest other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooRequest Clone() {      return new FooRequest(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FooRequest);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FooRequest other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FooRequest other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  public sealed partial class FooResponse : pb::IMessage<FooResponse> {    private static readonly pb::MessageParser<FooResponse> _parser = new pb::MessageParser<FooResponse>(() => new FooResponse());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FooResponse> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[29]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooResponse() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooResponse(FooResponse other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooResponse Clone() {      return new FooResponse(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FooResponse);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FooResponse other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FooResponse other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  public sealed partial class FooClientMessage : pb::IMessage<FooClientMessage> {    private static readonly pb::MessageParser<FooClientMessage> _parser = new pb::MessageParser<FooClientMessage>(() => new FooClientMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FooClientMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[30]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooClientMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooClientMessage(FooClientMessage other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooClientMessage Clone() {      return new FooClientMessage(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FooClientMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FooClientMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FooClientMessage other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  public sealed partial class FooServerMessage : pb::IMessage<FooServerMessage> {    private static readonly pb::MessageParser<FooServerMessage> _parser = new pb::MessageParser<FooServerMessage>(() => new FooServerMessage());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<FooServerMessage> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[31]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooServerMessage() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooServerMessage(FooServerMessage other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public FooServerMessage Clone() {      return new FooServerMessage(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as FooServerMessage);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(FooServerMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(FooServerMessage other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  public sealed partial class BarRequest : pb::IMessage<BarRequest> {    private static readonly pb::MessageParser<BarRequest> _parser = new pb::MessageParser<BarRequest>(() => new BarRequest());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<BarRequest> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[32]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarRequest() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarRequest(BarRequest other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarRequest Clone() {      return new BarRequest(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as BarRequest);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(BarRequest other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(BarRequest other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  public sealed partial class BarResponse : pb::IMessage<BarResponse> {    private static readonly pb::MessageParser<BarResponse> _parser = new pb::MessageParser<BarResponse>(() => new BarResponse());    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pb::MessageParser<BarResponse> Parser { get { return _parser; } }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public static pbr::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3Reflection.Descriptor.MessageTypes[33]; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    pbr::MessageDescriptor pb::IMessage.Descriptor {      get { return Descriptor; }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarResponse() {      OnConstruction();    }    partial void OnConstruction();    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarResponse(BarResponse other) : this() {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public BarResponse Clone() {      return new BarResponse(this);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override bool Equals(object other) {      return Equals(other as BarResponse);    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public bool Equals(BarResponse other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public override int GetHashCode() {      int hash = 1;      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) {    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public int CalculateSize() {      int size = 0;      return size;    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(BarResponse other) {      if (other == null) {        return;      }    }    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while ((tag = input.ReadTag()) != 0) {        switch(tag) {          default:            input.SkipLastField();            break;        }      }    }  }  #endregion}#endregion Designer generated code
 |