| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238 | // 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 pbd = global::Google.Protobuf.Descriptors;using scg = global::System.Collections.Generic;namespace Google.Protobuf.TestProtos {  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public static partial class UnittestProto3 {    #region Static variables    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.NestedTestAllTypes> internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestDeprecatedFields> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.ForeignMessage> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReservedFields__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReservedFields> internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestForeignNested> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRecursiveMessage> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionA> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionB> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage> internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SparseEnumMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.SparseEnumMessage> internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneString> internal__static_protobuf_unittest_OneString__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreString__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreString> internal__static_protobuf_unittest_MoreString__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneBytes> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreBytes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreBytes> internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int32Message__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int32Message> internal__static_protobuf_unittest_Int32Message__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint32Message__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint32Message> internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int64Message__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int64Message> internal__static_protobuf_unittest_Int64Message__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint64Message__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint64Message> internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BoolMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BoolMessage> internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestOneof> internal__static_protobuf_unittest_TestOneof__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestPackedTypes> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestUnpackedTypes> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCommentInjectionMessage> internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooRequest> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooResponse> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooClientMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooClientMessage> internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooServerMessage__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooServerMessage> internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarRequest> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;    internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarResponse> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;    #endregion    #region Descriptor    public static pbd::FileDescriptor Descriptor {      get { return descriptor; }    }    private static pbd::FileDescriptor descriptor;    static UnittestProto3() {      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",             "dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSLrAgoXVGVz",             "dENhbWVsQ2FzZUZpZWxkTmFtZXMSFgoOUHJpbWl0aXZlRmllbGQYASABKAUS",             "EwoLU3RyaW5nRmllbGQYAiABKAkSMQoJRW51bUZpZWxkGAMgASgOMh4ucHJv",             "dG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SNwoMTWVzc2FnZUZpZWxkGAQg",             "ASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USHgoWUmVw",             "ZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0Zp",             "ZWxkGAggAygJEjkKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh4ucHJvdG9i",             "dWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SPwoUUmVwZWF0ZWRNZXNzYWdlRmll",             "bGQYCiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZSLH",             "AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEoCRIOCgZt",             "eV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAISUwoVc2luZ2xlX25lc3Rl",             "ZF9tZXNzYWdlGMgBIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVs",             "ZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlGicKDU5lc3RlZE1lc3NhZ2USCgoC",             "b28YAiABKAMSCgoCYmIYASABKAUiSwoRU3BhcnNlRW51bU1lc3NhZ2USNgoL",             "c3BhcnNlX2VudW0YASABKA4yIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0U3Bh",             "cnNlRW51bSIZCglPbmVTdHJpbmcSDAoEZGF0YRgBIAEoCSIaCgpNb3JlU3Ry",             "aW5nEgwKBGRhdGEYASADKAkiGAoIT25lQnl0ZXMSDAoEZGF0YRgBIAEoDCIZ",             "CglNb3JlQnl0ZXMSDAoEZGF0YRgBIAEoDCIcCgxJbnQzMk1lc3NhZ2USDAoE",             "ZGF0YRgBIAEoBSIdCg1VaW50MzJNZXNzYWdlEgwKBGRhdGEYASABKA0iHAoM",             "SW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAMiHQoNVWludDY0TWVzc2FnZRIM",             "CgRkYXRhGAEgASgEIhsKC0Jvb2xNZXNzYWdlEgwKBGRhdGEYASABKAgicwoJ",             "VGVzdE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIg",             "ASgJSAASNgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVz",             "dC5UZXN0QWxsVHlwZXNIAEIFCgNmb28iqgMKD1Rlc3RQYWNrZWRUeXBlcxIY",             "CgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMo",             "A0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3Vp",             "bnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoN",             "cGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCAD",             "KAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRf",             "c2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEIC",             "EAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91Ymxl",             "GGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESNwoLcGFja2Vk",             "X2VudW0YZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUIC",             "EAEiyAMKEVRlc3RVbnBhY2tlZFR5cGVzEhoKDnVucGFja2VkX2ludDMyGFog",             "AygFQgIQABIaCg51bnBhY2tlZF9pbnQ2NBhbIAMoA0ICEAASGwoPdW5wYWNr",             "ZWRfdWludDMyGFwgAygNQgIQABIbCg91bnBhY2tlZF91aW50NjQYXSADKARC",             "AhAAEhsKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEAASGwoPdW5wYWNrZWRf",             "c2ludDY0GF8gAygSQgIQABIcChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQ",             "ABIcChB1bnBhY2tlZF9maXhlZDY0GGEgAygGQgIQABIdChF1bnBhY2tlZF9z",             "Zml4ZWQzMhhiIAMoD0ICEAASHQoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBC",             "AhAAEhoKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQABIbCg91bnBhY2tlZF9k",             "b3VibGUYZSADKAFCAhAAEhkKDXVucGFja2VkX2Jvb2wYZiADKAhCAhAAEjkK",             "DXVucGFja2VkX2VudW0YZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3Jl",             "aWduRW51bUICEAAiwAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRh",             "Z1NpemVzEhgKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRf",             "aW50MzIYDSADKAUSGQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVw",             "ZWF0ZWRfaW50NjQY/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAIS",             "GQoPcmVwZWF0ZWRfdWludDY0GP//DyADKAQiKAobVGVzdENvbW1lbnRJbmpl",             "Y3Rpb25NZXNzYWdlEgkKAWEYASABKAkiDAoKRm9vUmVxdWVzdCINCgtGb29S",             "ZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3Nh",             "Z2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSpZCgtGb3JlaWduRW51",             "bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIP",             "CgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1X",             "aXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BF",             "Q0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08y",             "EAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9T",             "UEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BB",             "UlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////",             "////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIymQEK",             "C1Rlc3RTZXJ2aWNlEkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1Jl",             "cXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXIS",             "HS5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5p",             "dHRlc3QuQmFyUmVzcG9uc2VCOkINVW5pdHRlc3RQcm90b0gBgAEBiAEBkAEB",           "+AEBqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NiBnByb3RvMw=="));      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {        descriptor = root;        internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];        internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,                new string[] { "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", "OneofField", });        internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];        internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,                new string[] { "Bb", });        internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor = Descriptor.MessageTypes[1];        internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.NestedTestAllTypes>(internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor,                new string[] { "Child", "Payload", "RepeatedChild", });        internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[2];        internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestDeprecatedFields>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,                new string[] { "DeprecatedInt32", });        internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[3];        internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.ForeignMessage>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,                new string[] { "C", });        internal__static_protobuf_unittest_TestReservedFields__Descriptor = Descriptor.MessageTypes[4];        internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReservedFields>(internal__static_protobuf_unittest_TestReservedFields__Descriptor,                new string[] { });        internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[5];        internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestForeignNested>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,                new string[] { "ForeignNested", });        internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[6];        internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,                new string[] { "A", "Bb", });        internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[7];        internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRecursiveMessage>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,                new string[] { "A", "I", });        internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[8];        internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionA>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,                new string[] { "Bb", });        internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[9];        internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionB>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,                new string[] { "A", "OptionalInt32", });        internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[10];        internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,                new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", });        internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[11];        internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,                new string[] { "MyString", "MyInt", "MyFloat", "SingleNestedMessage", });        internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestFieldOrderings__Descriptor.NestedTypes[0];        internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage>(internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor,                new string[] { "Oo", "Bb", });        internal__static_protobuf_unittest_SparseEnumMessage__Descriptor = Descriptor.MessageTypes[12];        internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.SparseEnumMessage>(internal__static_protobuf_unittest_SparseEnumMessage__Descriptor,                new string[] { "SparseEnum", });        internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[13];        internal__static_protobuf_unittest_OneString__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneString>(internal__static_protobuf_unittest_OneString__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_MoreString__Descriptor = Descriptor.MessageTypes[14];        internal__static_protobuf_unittest_MoreString__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreString>(internal__static_protobuf_unittest_MoreString__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[15];        internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneBytes>(internal__static_protobuf_unittest_OneBytes__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_MoreBytes__Descriptor = Descriptor.MessageTypes[16];        internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreBytes>(internal__static_protobuf_unittest_MoreBytes__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_Int32Message__Descriptor = Descriptor.MessageTypes[17];        internal__static_protobuf_unittest_Int32Message__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int32Message>(internal__static_protobuf_unittest_Int32Message__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_Uint32Message__Descriptor = Descriptor.MessageTypes[18];        internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint32Message>(internal__static_protobuf_unittest_Uint32Message__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_Int64Message__Descriptor = Descriptor.MessageTypes[19];        internal__static_protobuf_unittest_Int64Message__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int64Message>(internal__static_protobuf_unittest_Int64Message__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_Uint64Message__Descriptor = Descriptor.MessageTypes[20];        internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint64Message>(internal__static_protobuf_unittest_Uint64Message__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_BoolMessage__Descriptor = Descriptor.MessageTypes[21];        internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BoolMessage>(internal__static_protobuf_unittest_BoolMessage__Descriptor,                new string[] { "Data", });        internal__static_protobuf_unittest_TestOneof__Descriptor = Descriptor.MessageTypes[22];        internal__static_protobuf_unittest_TestOneof__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestOneof>(internal__static_protobuf_unittest_TestOneof__Descriptor,                new string[] { "FooInt", "FooString", "FooMessage", "Foo", });        internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[23];        internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestPackedTypes>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,                new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });        internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[24];        internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestUnpackedTypes>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,                new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });        internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[25];        internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,                new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });        internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor = Descriptor.MessageTypes[26];        internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCommentInjectionMessage>(internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor,                new string[] { "A", });        internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[27];        internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooRequest>(internal__static_protobuf_unittest_FooRequest__Descriptor,                new string[] { });        internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[28];        internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooResponse>(internal__static_protobuf_unittest_FooResponse__Descriptor,                new string[] { });        internal__static_protobuf_unittest_FooClientMessage__Descriptor = Descriptor.MessageTypes[29];        internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooClientMessage>(internal__static_protobuf_unittest_FooClientMessage__Descriptor,                new string[] { });        internal__static_protobuf_unittest_FooServerMessage__Descriptor = Descriptor.MessageTypes[30];        internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooServerMessage>(internal__static_protobuf_unittest_FooServerMessage__Descriptor,                new string[] { });        internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[31];        internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarRequest>(internal__static_protobuf_unittest_BarRequest__Descriptor,                new string[] { });        internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[32];        internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarResponse>(internal__static_protobuf_unittest_BarResponse__Descriptor,                new string[] { });      };      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,          new pbd::FileDescriptor[] {          global::Google.Protobuf.TestProtos.UnittestImportProto3.Descriptor,           }, assigner);    }    #endregion  }  #region Enums  public enum ForeignEnum {    FOREIGN_UNSPECIFIED = 0,    FOREIGN_FOO = 4,    FOREIGN_BAR = 5,    FOREIGN_BAZ = 6,  }  public enum TestEnumWithDupValue {    TEST_ENUM_WITH_DUP_VALUE_UNSPECIFIED = 0,    FOO1 = 1,    BAR1 = 2,    BAZ = 3,    FOO2 = 1,    BAR2 = 2,  }  public enum TestSparseEnum {    TEST_SPARSE_ENUM_UNSPECIFIED = 0,    SPARSE_A = 123,    SPARSE_B = 62374,    SPARSE_C = 12589234,    SPARSE_D = -15,    SPARSE_E = -53452,    SPARSE_G = 2,  }  #endregion  #region Messages  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes> {    private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());    public static pb::MessageParser<TestAllTypes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "repeated_bool", "repeated_bytes", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_public_import_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_uint32", "repeated_uint64", "single_bool", "single_bytes", "single_double", "single_fixed32", "single_fixed64", "single_float", "single_foreign_enum", "single_foreign_message", "single_import_enum", "single_import_message", "single_int32", "single_int64", "single_nested_enum", "single_nested_message", "single_public_import_message", "single_sfixed32", "single_sfixed64", "single_sint32", "single_sint64", "single_string", "single_uint32", "single_uint64" };    private static readonly uint[] _fieldTags = new uint[] { 914, 898, 906, 888, 346, 362, 338, 298, 306, 330, 418, 394, 426, 402, 250, 258, 410, 386, 434, 314, 322, 282, 290, 354, 266, 274, 104, 122, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 168, 146, 210, 77, 81, 40, 48, 114, 24, 32 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestAllTypes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }    }    public TestAllTypes() { }    public TestAllTypes(TestAllTypes other) {      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;      }    }    public TestAllTypes Clone() {      return new TestAllTypes(this);    }    public const int SingleInt32FieldNumber = 1;    private int singleInt32_;    public int SingleInt32 {      get { return singleInt32_; }      set { singleInt32_ = value; }    }    public const int SingleInt64FieldNumber = 2;    private long singleInt64_;    public long SingleInt64 {      get { return singleInt64_; }      set { singleInt64_ = value; }    }    public const int SingleUint32FieldNumber = 3;    private uint singleUint32_;    public uint SingleUint32 {      get { return singleUint32_; }      set { singleUint32_ = value; }    }    public const int SingleUint64FieldNumber = 4;    private ulong singleUint64_;    public ulong SingleUint64 {      get { return singleUint64_; }      set { singleUint64_ = value; }    }    public const int SingleSint32FieldNumber = 5;    private int singleSint32_;    public int SingleSint32 {      get { return singleSint32_; }      set { singleSint32_ = value; }    }    public const int SingleSint64FieldNumber = 6;    private long singleSint64_;    public long SingleSint64 {      get { return singleSint64_; }      set { singleSint64_ = value; }    }    public const int SingleFixed32FieldNumber = 7;    private uint singleFixed32_;    public uint SingleFixed32 {      get { return singleFixed32_; }      set { singleFixed32_ = value; }    }    public const int SingleFixed64FieldNumber = 8;    private ulong singleFixed64_;    public ulong SingleFixed64 {      get { return singleFixed64_; }      set { singleFixed64_ = value; }    }    public const int SingleSfixed32FieldNumber = 9;    private int singleSfixed32_;    public int SingleSfixed32 {      get { return singleSfixed32_; }      set { singleSfixed32_ = value; }    }    public const int SingleSfixed64FieldNumber = 10;    private long singleSfixed64_;    public long SingleSfixed64 {      get { return singleSfixed64_; }      set { singleSfixed64_ = value; }    }    public const int SingleFloatFieldNumber = 11;    private float singleFloat_;    public float SingleFloat {      get { return singleFloat_; }      set { singleFloat_ = value; }    }    public const int SingleDoubleFieldNumber = 12;    private double singleDouble_;    public double SingleDouble {      get { return singleDouble_; }      set { singleDouble_ = value; }    }    public const int SingleBoolFieldNumber = 13;    private bool singleBool_;    public bool SingleBool {      get { return singleBool_; }      set { singleBool_ = value; }    }    public const int SingleStringFieldNumber = 14;    private string singleString_ = "";    public string SingleString {      get { return singleString_; }      set { singleString_ = value ?? ""; }    }    public const int SingleBytesFieldNumber = 15;    private pb::ByteString singleBytes_ = pb::ByteString.Empty;    public pb::ByteString SingleBytes {      get { return singleBytes_; }      set { singleBytes_ = value ?? pb::ByteString.Empty; }    }    public const int SingleNestedMessageFieldNumber = 18;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage singleNestedMessage_;    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage SingleNestedMessage {      get { return singleNestedMessage_; }      set { singleNestedMessage_ = value; }    }    public const int SingleForeignMessageFieldNumber = 19;    private global::Google.Protobuf.TestProtos.ForeignMessage singleForeignMessage_;    public global::Google.Protobuf.TestProtos.ForeignMessage SingleForeignMessage {      get { return singleForeignMessage_; }      set { singleForeignMessage_ = value; }    }    public const int SingleImportMessageFieldNumber = 20;    private global::Google.Protobuf.TestProtos.ImportMessage singleImportMessage_;    public global::Google.Protobuf.TestProtos.ImportMessage SingleImportMessage {      get { return singleImportMessage_; }      set { singleImportMessage_ = value; }    }    public const int SingleNestedEnumFieldNumber = 21;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum singleNestedEnum_ = global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED;    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum SingleNestedEnum {      get { return singleNestedEnum_; }      set { singleNestedEnum_ = value; }    }    public const int SingleForeignEnumFieldNumber = 22;    private global::Google.Protobuf.TestProtos.ForeignEnum singleForeignEnum_ = global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED;    public global::Google.Protobuf.TestProtos.ForeignEnum SingleForeignEnum {      get { return singleForeignEnum_; }      set { singleForeignEnum_ = value; }    }    public const int SingleImportEnumFieldNumber = 23;    private global::Google.Protobuf.TestProtos.ImportEnum singleImportEnum_ = global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED;    public global::Google.Protobuf.TestProtos.ImportEnum SingleImportEnum {      get { return singleImportEnum_; }      set { singleImportEnum_ = value; }    }    public const int SinglePublicImportMessageFieldNumber = 26;    private global::Google.Protobuf.TestProtos.PublicImportMessage singlePublicImportMessage_;    public global::Google.Protobuf.TestProtos.PublicImportMessage SinglePublicImportMessage {      get { return singlePublicImportMessage_; }      set { singlePublicImportMessage_ = value; }    }    public const int RepeatedInt32FieldNumber = 31;    private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> RepeatedInt32 {      get { return repeatedInt32_; }    }    public const int RepeatedInt64FieldNumber = 32;    private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> RepeatedInt64 {      get { return repeatedInt64_; }    }    public const int RepeatedUint32FieldNumber = 33;    private readonly pbc::RepeatedField<uint> repeatedUint32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> RepeatedUint32 {      get { return repeatedUint32_; }    }    public const int RepeatedUint64FieldNumber = 34;    private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> RepeatedUint64 {      get { return repeatedUint64_; }    }    public const int RepeatedSint32FieldNumber = 35;    private readonly pbc::RepeatedField<int> repeatedSint32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> RepeatedSint32 {      get { return repeatedSint32_; }    }    public const int RepeatedSint64FieldNumber = 36;    private readonly pbc::RepeatedField<long> repeatedSint64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> RepeatedSint64 {      get { return repeatedSint64_; }    }    public const int RepeatedFixed32FieldNumber = 37;    private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> RepeatedFixed32 {      get { return repeatedFixed32_; }    }    public const int RepeatedFixed64FieldNumber = 38;    private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> RepeatedFixed64 {      get { return repeatedFixed64_; }    }    public const int RepeatedSfixed32FieldNumber = 39;    private readonly pbc::RepeatedField<int> repeatedSfixed32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> RepeatedSfixed32 {      get { return repeatedSfixed32_; }    }    public const int RepeatedSfixed64FieldNumber = 40;    private readonly pbc::RepeatedField<long> repeatedSfixed64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> RepeatedSfixed64 {      get { return repeatedSfixed64_; }    }    public const int RepeatedFloatFieldNumber = 41;    private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();    public pbc::RepeatedField<float> RepeatedFloat {      get { return repeatedFloat_; }    }    public const int RepeatedDoubleFieldNumber = 42;    private readonly pbc::RepeatedField<double> repeatedDouble_ = new pbc::RepeatedField<double>();    public pbc::RepeatedField<double> RepeatedDouble {      get { return repeatedDouble_; }    }    public const int RepeatedBoolFieldNumber = 43;    private readonly pbc::RepeatedField<bool> repeatedBool_ = new pbc::RepeatedField<bool>();    public pbc::RepeatedField<bool> RepeatedBool {      get { return repeatedBool_; }    }    public const int RepeatedStringFieldNumber = 44;    private readonly pbc::RepeatedField<string> repeatedString_ = new pbc::RepeatedField<string>();    public pbc::RepeatedField<string> RepeatedString {      get { return repeatedString_; }    }    public const int RepeatedBytesFieldNumber = 45;    private readonly pbc::RepeatedField<pb::ByteString> repeatedBytes_ = new pbc::RepeatedField<pb::ByteString>();    public pbc::RepeatedField<pb::ByteString> RepeatedBytes {      get { return repeatedBytes_; }    }    public const int RepeatedNestedMessageFieldNumber = 48;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessage {      get { return repeatedNestedMessage_; }    }    public const int RepeatedForeignMessageFieldNumber = 49;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedForeignMessage {      get { return repeatedForeignMessage_; }    }    public const int RepeatedImportMessageFieldNumber = 50;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> RepeatedImportMessage {      get { return repeatedImportMessage_; }    }    public const int RepeatedNestedEnumFieldNumber = 51;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnum {      get { return repeatedNestedEnum_; }    }    public const int RepeatedForeignEnumFieldNumber = 52;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedForeignEnum {      get { return repeatedForeignEnum_; }    }    public const int RepeatedImportEnumFieldNumber = 53;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> RepeatedImportEnum {      get { return repeatedImportEnum_; }    }    public const int RepeatedPublicImportMessageFieldNumber = 54;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> repeatedPublicImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> RepeatedPublicImportMessage {      get { return repeatedPublicImportMessage_; }    }    public const int OneofUint32FieldNumber = 111;    public uint OneofUint32 {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }      set {        oneofField_ = value;        oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;      }    }    public const int OneofNestedMessageFieldNumber = 112;    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;      }    }    public const int OneofStringFieldNumber = 113;    public string OneofString {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }      set {        oneofField_ = value ?? "";        oneofFieldCase_ = OneofFieldOneofCase.OneofString;      }    }    public const int OneofBytesFieldNumber = 114;    public pb::ByteString OneofBytes {      get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }      set {        oneofField_ = value ?? pb::ByteString.Empty;        oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;      }    }    private object oneofField_;    public enum OneofFieldOneofCase {      None = 0,      OneofUint32 = 111,      OneofNestedMessage = 112,      OneofString = 113,      OneofBytes = 114,    }    private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;    public OneofFieldOneofCase OneofFieldCase {      get { return oneofFieldCase_; }    }    public void ClearOneofField() {      oneofFieldCase_ = OneofFieldOneofCase.None;      oneofField_ = null;    }    public override bool Equals(object other) {      return Equals(other as TestAllTypes);    }    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;      return true;    }    public override int GetHashCode() {      int hash = 0;      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 != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) hash ^= SingleNestedEnum.GetHashCode();      if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) hash ^= SingleForeignEnum.GetHashCode();      if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) 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();      return hash;    }    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 != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {        output.WriteRawTag(168, 1);        output.WriteEnum((int) SingleNestedEnum);      }      if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        output.WriteRawTag(176, 1);        output.WriteEnum((int) SingleForeignEnum);      }      if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {        output.WriteRawTag(184, 1);        output.WriteEnum((int) SingleImportEnum);      }      if (singlePublicImportMessage_ != null) {        output.WriteRawTag(210, 1);        output.WriteMessage(SinglePublicImportMessage);      }      if (repeatedInt32_.Count > 0) {        output.WriteRawTag(250, 1);        output.WritePackedInt32Array(repeatedInt32_);      }      if (repeatedInt64_.Count > 0) {        output.WriteRawTag(130, 2);        output.WritePackedInt64Array(repeatedInt64_);      }      if (repeatedUint32_.Count > 0) {        output.WriteRawTag(138, 2);        output.WritePackedUInt32Array(repeatedUint32_);      }      if (repeatedUint64_.Count > 0) {        output.WriteRawTag(146, 2);        output.WritePackedUInt64Array(repeatedUint64_);      }      if (repeatedSint32_.Count > 0) {        output.WriteRawTag(154, 2);        output.WritePackedSInt32Array(repeatedSint32_);      }      if (repeatedSint64_.Count > 0) {        output.WriteRawTag(162, 2);        output.WritePackedSInt64Array(repeatedSint64_);      }      if (repeatedFixed32_.Count > 0) {        output.WriteRawTag(170, 2);        output.WritePackedFixed32Array(repeatedFixed32_);      }      if (repeatedFixed64_.Count > 0) {        output.WriteRawTag(178, 2);        output.WritePackedFixed64Array(repeatedFixed64_);      }      if (repeatedSfixed32_.Count > 0) {        output.WriteRawTag(186, 2);        output.WritePackedSFixed32Array(repeatedSfixed32_);      }      if (repeatedSfixed64_.Count > 0) {        output.WriteRawTag(194, 2);        output.WritePackedSFixed64Array(repeatedSfixed64_);      }      if (repeatedFloat_.Count > 0) {        output.WriteRawTag(202, 2);        output.WritePackedFloatArray(repeatedFloat_);      }      if (repeatedDouble_.Count > 0) {        output.WriteRawTag(210, 2);        output.WritePackedDoubleArray(repeatedDouble_);      }      if (repeatedBool_.Count > 0) {        output.WriteRawTag(218, 2);        output.WritePackedBoolArray(repeatedBool_);      }      if (repeatedString_.Count > 0) {        output.WriteStringArray(44, repeatedString_);      }      if (repeatedBytes_.Count > 0) {        output.WriteBytesArray(45, repeatedBytes_);      }      if (repeatedNestedMessage_.Count > 0) {        output.WriteMessageArray(48, repeatedNestedMessage_);      }      if (repeatedForeignMessage_.Count > 0) {        output.WriteMessageArray(49, repeatedForeignMessage_);      }      if (repeatedImportMessage_.Count > 0) {        output.WriteMessageArray(50, repeatedImportMessage_);      }      if (repeatedNestedEnum_.Count > 0) {        output.WriteRawTag(154, 3);        output.WritePackedEnumArray(repeatedNestedEnum_);      }      if (repeatedForeignEnum_.Count > 0) {        output.WriteRawTag(162, 3);        output.WritePackedEnumArray(repeatedForeignEnum_);      }      if (repeatedImportEnum_.Count > 0) {        output.WriteRawTag(170, 3);        output.WritePackedEnumArray(repeatedImportEnum_);      }      if (repeatedPublicImportMessage_.Count > 0) {        output.WriteMessageArray(54, repeatedPublicImportMessage_);      }      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);      }    }    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 != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleNestedEnum);      }      if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleForeignEnum);      }      if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleImportEnum);      }      if (singlePublicImportMessage_ != null) {        size += 2 + pb::CodedOutputStream.ComputeMessageSize(SinglePublicImportMessage);      }      if (repeatedInt32_.Count > 0) {        int dataSize = 0;        foreach (int element in repeatedInt32_) {          dataSize += pb::CodedOutputStream.ComputeInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedInt64_.Count > 0) {        int dataSize = 0;        foreach (long element in repeatedInt64_) {          dataSize += pb::CodedOutputStream.ComputeInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedUint32_.Count > 0) {        int dataSize = 0;        foreach (uint element in repeatedUint32_) {          dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedUint64_.Count > 0) {        int dataSize = 0;        foreach (ulong element in repeatedUint64_) {          dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedSint32_.Count > 0) {        int dataSize = 0;        foreach (int element in repeatedSint32_) {          dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedSint64_.Count > 0) {        int dataSize = 0;        foreach (long element in repeatedSint64_) {          dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedFixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * repeatedFixed32_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedFixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * repeatedFixed64_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedSfixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * repeatedSfixed32_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedSfixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * repeatedSfixed64_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedFloat_.Count > 0) {        int dataSize = 0;        dataSize = 4 * repeatedFloat_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedDouble_.Count > 0) {        int dataSize = 0;        dataSize = 8 * repeatedDouble_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedBool_.Count > 0) {        int dataSize = 0;        dataSize = 1 * repeatedBool_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedString_.Count > 0) {        int dataSize = 0;        foreach (string element in repeatedString_) {          dataSize += pb::CodedOutputStream.ComputeStringSize(element);        }        size += dataSize;        size += 2 * repeatedString_.Count;      }      if (repeatedBytes_.Count > 0) {        int dataSize = 0;        foreach (pb::ByteString element in repeatedBytes_) {          dataSize += pb::CodedOutputStream.ComputeBytesSize(element);        }        size += dataSize;        size += 2 * repeatedBytes_.Count;      }      if (repeatedNestedMessage_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage element in repeatedNestedMessage_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 2 * repeatedNestedMessage_.Count;      }      if (repeatedForeignMessage_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.ForeignMessage element in repeatedForeignMessage_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 2 * repeatedForeignMessage_.Count;      }      if (repeatedImportMessage_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.ImportMessage element in repeatedImportMessage_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 2 * repeatedImportMessage_.Count;      }      if (repeatedNestedEnum_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);      }      if (repeatedForeignEnum_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedForeignEnum_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);      }      if (repeatedImportEnum_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.ImportEnum element in repeatedImportEnum_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);      }      if (repeatedPublicImportMessage_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.PublicImportMessage element in repeatedPublicImportMessage_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 2 * repeatedPublicImportMessage_.Count;      }      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;    }    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 != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {        SingleNestedEnum = other.SingleNestedEnum;      }      if (other.SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        SingleForeignEnum = other.SingleForeignEnum;      }      if (other.SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {        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;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            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: {            input.ReadInt32Array(repeatedInt32_);            break;          }          case 258:          case 256: {            input.ReadInt64Array(repeatedInt64_);            break;          }          case 266:          case 264: {            input.ReadUInt32Array(repeatedUint32_);            break;          }          case 274:          case 272: {            input.ReadUInt64Array(repeatedUint64_);            break;          }          case 282:          case 280: {            input.ReadSInt32Array(repeatedSint32_);            break;          }          case 290:          case 288: {            input.ReadSInt64Array(repeatedSint64_);            break;          }          case 298:          case 301: {            input.ReadFixed32Array(repeatedFixed32_);            break;          }          case 306:          case 305: {            input.ReadFixed64Array(repeatedFixed64_);            break;          }          case 314:          case 317: {            input.ReadSFixed32Array(repeatedSfixed32_);            break;          }          case 322:          case 321: {            input.ReadSFixed64Array(repeatedSfixed64_);            break;          }          case 330:          case 333: {            input.ReadFloatArray(repeatedFloat_);            break;          }          case 338:          case 337: {            input.ReadDoubleArray(repeatedDouble_);            break;          }          case 346:          case 344: {            input.ReadBoolArray(repeatedBool_);            break;          }          case 354: {            input.ReadStringArray(repeatedString_);            break;          }          case 362: {            input.ReadBytesArray(repeatedBytes_);            break;          }          case 386: {            input.ReadMessageArray(repeatedNestedMessage_, global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage.Parser);            break;          }          case 394: {            input.ReadMessageArray(repeatedForeignMessage_, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);            break;          }          case 402: {            input.ReadMessageArray(repeatedImportMessage_, global::Google.Protobuf.TestProtos.ImportMessage.Parser);            break;          }          case 410:          case 408: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum>(repeatedNestedEnum_);            break;          }          case 418:          case 416: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(repeatedForeignEnum_);            break;          }          case 426:          case 424: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.ImportEnum>(repeatedImportEnum_);            break;          }          case 434: {            input.ReadMessageArray(repeatedPublicImportMessage_, global::Google.Protobuf.TestProtos.PublicImportMessage.Parser);            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    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]    public static partial class Types {      public enum NestedEnum {        NESTED_ENUM_UNSPECIFIED = 0,        FOO = 1,        BAR = 2,        BAZ = 3,        NEG = -1,      }      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]      public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {        private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());        public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }        private static readonly string[] _fieldNames = new string[] { "bb" };        private static readonly uint[] _fieldTags = new uint[] { 8 };        public static pbd::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }        }        public pb::FieldAccess.FieldAccessorTable<NestedMessage> Fields {          get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }        }        public NestedMessage() { }        public NestedMessage(NestedMessage other) {          bb_ = other.bb_;        }        public NestedMessage Clone() {          return new NestedMessage(this);        }        public const int BbFieldNumber = 1;        private int bb_;        public int Bb {          get { return bb_; }          set { bb_ = value; }        }        public override bool Equals(object other) {          return Equals(other as NestedMessage);        }        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;        }        public override int GetHashCode() {          int hash = 0;          if (Bb != 0) hash ^= Bb.GetHashCode();          return hash;        }        public void WriteTo(pb::CodedOutputStream output) {          if (Bb != 0) {            output.WriteRawTag(8);            output.WriteInt32(Bb);          }        }        public int CalculateSize() {          int size = 0;          if (Bb != 0) {            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);          }          return size;        }        public void MergeFrom(NestedMessage other) {          if (other == null) {            return;          }          if (other.Bb != 0) {            Bb = other.Bb;          }        }        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while (input.ReadTag(out tag)) {            switch(tag) {              case 0:                throw pb::InvalidProtocolBufferException.InvalidTag();              default:                if (pb::WireFormat.IsEndGroupTag(tag)) {                  return;                }                break;              case 8: {                Bb = input.ReadInt32();                break;              }            }          }        }      }    }    #endregion  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class NestedTestAllTypes : pb::IMessage<NestedTestAllTypes> {    private static readonly pb::MessageParser<NestedTestAllTypes> _parser = new pb::MessageParser<NestedTestAllTypes>(() => new NestedTestAllTypes());    public static pb::MessageParser<NestedTestAllTypes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "child", "payload", "repeated_child" };    private static readonly uint[] _fieldTags = new uint[] { 10, 18, 26 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<NestedTestAllTypes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable; }    }    public NestedTestAllTypes() { }    public NestedTestAllTypes(NestedTestAllTypes other) {      Child = other.child_ != null ? other.Child.Clone() : null;      Payload = other.payload_ != null ? other.Payload.Clone() : null;      repeatedChild_ = other.repeatedChild_.Clone();    }    public NestedTestAllTypes Clone() {      return new NestedTestAllTypes(this);    }    public const int ChildFieldNumber = 1;    private global::Google.Protobuf.TestProtos.NestedTestAllTypes child_;    public global::Google.Protobuf.TestProtos.NestedTestAllTypes Child {      get { return child_; }      set { child_ = value; }    }    public const int PayloadFieldNumber = 2;    private global::Google.Protobuf.TestProtos.TestAllTypes payload_;    public global::Google.Protobuf.TestProtos.TestAllTypes Payload {      get { return payload_; }      set { payload_ = value; }    }    public const int RepeatedChildFieldNumber = 3;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> repeatedChild_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> RepeatedChild {      get { return repeatedChild_; }    }    public override bool Equals(object other) {      return Equals(other as NestedTestAllTypes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (child_ != null) hash ^= Child.GetHashCode();      if (payload_ != null) hash ^= Payload.GetHashCode();      hash ^= repeatedChild_.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (child_ != null) {        output.WriteRawTag(10);        output.WriteMessage(Child);      }      if (payload_ != null) {        output.WriteRawTag(18);        output.WriteMessage(Payload);      }      if (repeatedChild_.Count > 0) {        output.WriteMessageArray(3, repeatedChild_);      }    }    public int CalculateSize() {      int size = 0;      if (child_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Child);      }      if (payload_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Payload);      }      if (repeatedChild_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.NestedTestAllTypes element in repeatedChild_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 1 * repeatedChild_.Count;      }      return size;    }    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_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            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: {            input.ReadMessageArray(repeatedChild_, global::Google.Protobuf.TestProtos.NestedTestAllTypes.Parser);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestDeprecatedFields : pb::IMessage<TestDeprecatedFields> {    private static readonly pb::MessageParser<TestDeprecatedFields> _parser = new pb::MessageParser<TestDeprecatedFields>(() => new TestDeprecatedFields());    public static pb::MessageParser<TestDeprecatedFields> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "deprecated_int32" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }    }    public TestDeprecatedFields() { }    public TestDeprecatedFields(TestDeprecatedFields other) {      deprecatedInt32_ = other.deprecatedInt32_;    }    public TestDeprecatedFields Clone() {      return new TestDeprecatedFields(this);    }    public const int DeprecatedInt32FieldNumber = 1;    private int deprecatedInt32_;    [global::System.ObsoleteAttribute()]    public int DeprecatedInt32 {      get { return deprecatedInt32_; }      set { deprecatedInt32_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestDeprecatedFields);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (DeprecatedInt32 != 0) hash ^= DeprecatedInt32.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (DeprecatedInt32 != 0) {        output.WriteRawTag(8);        output.WriteInt32(DeprecatedInt32);      }    }    public int CalculateSize() {      int size = 0;      if (DeprecatedInt32 != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeprecatedInt32);      }      return size;    }    public void MergeFrom(TestDeprecatedFields other) {      if (other == null) {        return;      }      if (other.DeprecatedInt32 != 0) {        DeprecatedInt32 = other.DeprecatedInt32;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            DeprecatedInt32 = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class ForeignMessage : pb::IMessage<ForeignMessage> {    private static readonly pb::MessageParser<ForeignMessage> _parser = new pb::MessageParser<ForeignMessage>(() => new ForeignMessage());    public static pb::MessageParser<ForeignMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "c" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<ForeignMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }    }    public ForeignMessage() { }    public ForeignMessage(ForeignMessage other) {      c_ = other.c_;    }    public ForeignMessage Clone() {      return new ForeignMessage(this);    }    public const int CFieldNumber = 1;    private int c_;    public int C {      get { return c_; }      set { c_ = value; }    }    public override bool Equals(object other) {      return Equals(other as ForeignMessage);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (C != 0) hash ^= C.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (C != 0) {        output.WriteRawTag(8);        output.WriteInt32(C);      }    }    public int CalculateSize() {      int size = 0;      if (C != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(C);      }      return size;    }    public void MergeFrom(ForeignMessage other) {      if (other == null) {        return;      }      if (other.C != 0) {        C = other.C;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            C = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestReservedFields : pb::IMessage<TestReservedFields> {    private static readonly pb::MessageParser<TestReservedFields> _parser = new pb::MessageParser<TestReservedFields>(() => new TestReservedFields());    public static pb::MessageParser<TestReservedFields> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReservedFields__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestReservedFields> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable; }    }    public TestReservedFields() { }    public TestReservedFields(TestReservedFields other) {    }    public TestReservedFields Clone() {      return new TestReservedFields(this);    }    public override bool Equals(object other) {      return Equals(other as TestReservedFields);    }    public bool Equals(TestReservedFields other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(TestReservedFields other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestForeignNested : pb::IMessage<TestForeignNested> {    private static readonly pb::MessageParser<TestForeignNested> _parser = new pb::MessageParser<TestForeignNested>(() => new TestForeignNested());    public static pb::MessageParser<TestForeignNested> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "foreign_nested" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestForeignNested> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }    }    public TestForeignNested() { }    public TestForeignNested(TestForeignNested other) {      ForeignNested = other.foreignNested_ != null ? other.ForeignNested.Clone() : null;    }    public TestForeignNested Clone() {      return new TestForeignNested(this);    }    public const int ForeignNestedFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;    public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {      get { return foreignNested_; }      set { foreignNested_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestForeignNested);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (foreignNested_ != null) hash ^= ForeignNested.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (foreignNested_ != null) {        output.WriteRawTag(10);        output.WriteMessage(ForeignNested);      }    }    public int CalculateSize() {      int size = 0;      if (foreignNested_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ForeignNested);      }      return size;    }    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);      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            if (foreignNested_ == null) {              foreignNested_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();            }            input.ReadMessage(foreignNested_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestReallyLargeTagNumber : pb::IMessage<TestReallyLargeTagNumber> {    private static readonly pb::MessageParser<TestReallyLargeTagNumber> _parser = new pb::MessageParser<TestReallyLargeTagNumber>(() => new TestReallyLargeTagNumber());    public static pb::MessageParser<TestReallyLargeTagNumber> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "a", "bb" };    private static readonly uint[] _fieldTags = new uint[] { 8, 2147483640 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }    }    public TestReallyLargeTagNumber() { }    public TestReallyLargeTagNumber(TestReallyLargeTagNumber other) {      a_ = other.a_;      bb_ = other.bb_;    }    public TestReallyLargeTagNumber Clone() {      return new TestReallyLargeTagNumber(this);    }    public const int AFieldNumber = 1;    private int a_;    public int A {      get { return a_; }      set { a_ = value; }    }    public const int BbFieldNumber = 268435455;    private int bb_;    public int Bb {      get { return bb_; }      set { bb_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestReallyLargeTagNumber);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (A != 0) hash ^= A.GetHashCode();      if (Bb != 0) hash ^= Bb.GetHashCode();      return hash;    }    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);      }    }    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;    }    public void MergeFrom(TestReallyLargeTagNumber other) {      if (other == null) {        return;      }      if (other.A != 0) {        A = other.A;      }      if (other.Bb != 0) {        Bb = other.Bb;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            A = input.ReadInt32();            break;          }          case 2147483640: {            Bb = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestRecursiveMessage : pb::IMessage<TestRecursiveMessage> {    private static readonly pb::MessageParser<TestRecursiveMessage> _parser = new pb::MessageParser<TestRecursiveMessage>(() => new TestRecursiveMessage());    public static pb::MessageParser<TestRecursiveMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "a", "i" };    private static readonly uint[] _fieldTags = new uint[] { 10, 16 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }    }    public TestRecursiveMessage() { }    public TestRecursiveMessage(TestRecursiveMessage other) {      A = other.a_ != null ? other.A.Clone() : null;      i_ = other.i_;    }    public TestRecursiveMessage Clone() {      return new TestRecursiveMessage(this);    }    public const int AFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestRecursiveMessage a_;    public global::Google.Protobuf.TestProtos.TestRecursiveMessage A {      get { return a_; }      set { a_ = value; }    }    public const int IFieldNumber = 2;    private int i_;    public int I {      get { return i_; }      set { i_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestRecursiveMessage);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (a_ != null) hash ^= A.GetHashCode();      if (I != 0) hash ^= I.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (a_ != null) {        output.WriteRawTag(10);        output.WriteMessage(A);      }      if (I != 0) {        output.WriteRawTag(16);        output.WriteInt32(I);      }    }    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;    }    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;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            if (a_ == null) {              a_ = new global::Google.Protobuf.TestProtos.TestRecursiveMessage();            }            input.ReadMessage(a_);            break;          }          case 16: {            I = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestMutualRecursionA : pb::IMessage<TestMutualRecursionA> {    private static readonly pb::MessageParser<TestMutualRecursionA> _parser = new pb::MessageParser<TestMutualRecursionA>(() => new TestMutualRecursionA());    public static pb::MessageParser<TestMutualRecursionA> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "bb" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }    }    public TestMutualRecursionA() { }    public TestMutualRecursionA(TestMutualRecursionA other) {      Bb = other.bb_ != null ? other.Bb.Clone() : null;    }    public TestMutualRecursionA Clone() {      return new TestMutualRecursionA(this);    }    public const int BbFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestMutualRecursionB bb_;    public global::Google.Protobuf.TestProtos.TestMutualRecursionB Bb {      get { return bb_; }      set { bb_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestMutualRecursionA);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (bb_ != null) hash ^= Bb.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (bb_ != null) {        output.WriteRawTag(10);        output.WriteMessage(Bb);      }    }    public int CalculateSize() {      int size = 0;      if (bb_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bb);      }      return size;    }    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);      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            if (bb_ == null) {              bb_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionB();            }            input.ReadMessage(bb_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestMutualRecursionB : pb::IMessage<TestMutualRecursionB> {    private static readonly pb::MessageParser<TestMutualRecursionB> _parser = new pb::MessageParser<TestMutualRecursionB>(() => new TestMutualRecursionB());    public static pb::MessageParser<TestMutualRecursionB> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "a", "optional_int32" };    private static readonly uint[] _fieldTags = new uint[] { 10, 16 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }    }    public TestMutualRecursionB() { }    public TestMutualRecursionB(TestMutualRecursionB other) {      A = other.a_ != null ? other.A.Clone() : null;      optionalInt32_ = other.optionalInt32_;    }    public TestMutualRecursionB Clone() {      return new TestMutualRecursionB(this);    }    public const int AFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestMutualRecursionA a_;    public global::Google.Protobuf.TestProtos.TestMutualRecursionA A {      get { return a_; }      set { a_ = value; }    }    public const int OptionalInt32FieldNumber = 2;    private int optionalInt32_;    public int OptionalInt32 {      get { return optionalInt32_; }      set { optionalInt32_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestMutualRecursionB);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (a_ != null) hash ^= A.GetHashCode();      if (OptionalInt32 != 0) hash ^= OptionalInt32.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (a_ != null) {        output.WriteRawTag(10);        output.WriteMessage(A);      }      if (OptionalInt32 != 0) {        output.WriteRawTag(16);        output.WriteInt32(OptionalInt32);      }    }    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;    }    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;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            if (a_ == null) {              a_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionA();            }            input.ReadMessage(a_);            break;          }          case 16: {            OptionalInt32 = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestCamelCaseFieldNames : pb::IMessage<TestCamelCaseFieldNames> {    private static readonly pb::MessageParser<TestCamelCaseFieldNames> _parser = new pb::MessageParser<TestCamelCaseFieldNames>(() => new TestCamelCaseFieldNames());    public static pb::MessageParser<TestCamelCaseFieldNames> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "EnumField", "MessageField", "PrimitiveField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "StringField" };    private static readonly uint[] _fieldTags = new uint[] { 24, 34, 8, 74, 82, 58, 66, 18 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }    }    public TestCamelCaseFieldNames() { }    public TestCamelCaseFieldNames(TestCamelCaseFieldNames other) {      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();    }    public TestCamelCaseFieldNames Clone() {      return new TestCamelCaseFieldNames(this);    }    public const int PrimitiveFieldFieldNumber = 1;    private int primitiveField_;    public int PrimitiveField {      get { return primitiveField_; }      set { primitiveField_ = value; }    }    public const int StringFieldFieldNumber = 2;    private string stringField_ = "";    public string StringField {      get { return stringField_; }      set { stringField_ = value ?? ""; }    }    public const int EnumFieldFieldNumber = 3;    private global::Google.Protobuf.TestProtos.ForeignEnum enumField_ = global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED;    public global::Google.Protobuf.TestProtos.ForeignEnum EnumField {      get { return enumField_; }      set { enumField_ = value; }    }    public const int MessageFieldFieldNumber = 4;    private global::Google.Protobuf.TestProtos.ForeignMessage messageField_;    public global::Google.Protobuf.TestProtos.ForeignMessage MessageField {      get { return messageField_; }      set { messageField_ = value; }    }    public const int RepeatedPrimitiveFieldFieldNumber = 7;    private readonly pbc::RepeatedField<int> repeatedPrimitiveField_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> RepeatedPrimitiveField {      get { return repeatedPrimitiveField_; }    }    public const int RepeatedStringFieldFieldNumber = 8;    private readonly pbc::RepeatedField<string> repeatedStringField_ = new pbc::RepeatedField<string>();    public pbc::RepeatedField<string> RepeatedStringField {      get { return repeatedStringField_; }    }    public const int RepeatedEnumFieldFieldNumber = 9;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedEnumField {      get { return repeatedEnumField_; }    }    public const int RepeatedMessageFieldFieldNumber = 10;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedMessageField {      get { return repeatedMessageField_; }    }    public override bool Equals(object other) {      return Equals(other as TestCamelCaseFieldNames);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (PrimitiveField != 0) hash ^= PrimitiveField.GetHashCode();      if (StringField.Length != 0) hash ^= StringField.GetHashCode();      if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) hash ^= EnumField.GetHashCode();      if (messageField_ != null) hash ^= MessageField.GetHashCode();      hash ^= repeatedPrimitiveField_.GetHashCode();      hash ^= repeatedStringField_.GetHashCode();      hash ^= repeatedEnumField_.GetHashCode();      hash ^= repeatedMessageField_.GetHashCode();      return hash;    }    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 != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        output.WriteRawTag(24);        output.WriteEnum((int) EnumField);      }      if (messageField_ != null) {        output.WriteRawTag(34);        output.WriteMessage(MessageField);      }      if (repeatedPrimitiveField_.Count > 0) {        output.WriteRawTag(58);        output.WritePackedInt32Array(repeatedPrimitiveField_);      }      if (repeatedStringField_.Count > 0) {        output.WriteStringArray(8, repeatedStringField_);      }      if (repeatedEnumField_.Count > 0) {        output.WriteRawTag(74);        output.WritePackedEnumArray(repeatedEnumField_);      }      if (repeatedMessageField_.Count > 0) {        output.WriteMessageArray(10, repeatedMessageField_);      }    }    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 != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) EnumField);      }      if (messageField_ != null) {        size += 1 + pb::CodedOutputStream.ComputeMessageSize(MessageField);      }      if (repeatedPrimitiveField_.Count > 0) {        int dataSize = 0;        foreach (int element in repeatedPrimitiveField_) {          dataSize += pb::CodedOutputStream.ComputeInt32Size(element);        }        size += dataSize;        size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedStringField_.Count > 0) {        int dataSize = 0;        foreach (string element in repeatedStringField_) {          dataSize += pb::CodedOutputStream.ComputeStringSize(element);        }        size += dataSize;        size += 1 * repeatedStringField_.Count;      }      if (repeatedEnumField_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedEnumField_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 1 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);      }      if (repeatedMessageField_.Count > 0) {        foreach (global::Google.Protobuf.TestProtos.ForeignMessage element in repeatedMessageField_) {          size += pb::CodedOutputStream.ComputeMessageSize(element);        }        size += 1 * repeatedMessageField_.Count;      }      return size;    }    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 != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {        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_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            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: {            input.ReadInt32Array(repeatedPrimitiveField_);            break;          }          case 66: {            input.ReadStringArray(repeatedStringField_);            break;          }          case 74:          case 72: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(repeatedEnumField_);            break;          }          case 82: {            input.ReadMessageArray(repeatedMessageField_, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestFieldOrderings : pb::IMessage<TestFieldOrderings> {    private static readonly pb::MessageParser<TestFieldOrderings> _parser = new pb::MessageParser<TestFieldOrderings>(() => new TestFieldOrderings());    public static pb::MessageParser<TestFieldOrderings> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "my_float", "my_int", "my_string", "single_nested_message" };    private static readonly uint[] _fieldTags = new uint[] { 813, 8, 90, 1602 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestFieldOrderings> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }    }    public TestFieldOrderings() { }    public TestFieldOrderings(TestFieldOrderings other) {      myString_ = other.myString_;      myInt_ = other.myInt_;      myFloat_ = other.myFloat_;      SingleNestedMessage = other.singleNestedMessage_ != null ? other.SingleNestedMessage.Clone() : null;    }    public TestFieldOrderings Clone() {      return new TestFieldOrderings(this);    }    public const int MyStringFieldNumber = 11;    private string myString_ = "";    public string MyString {      get { return myString_; }      set { myString_ = value ?? ""; }    }    public const int MyIntFieldNumber = 1;    private long myInt_;    public long MyInt {      get { return myInt_; }      set { myInt_ = value; }    }    public const int MyFloatFieldNumber = 101;    private float myFloat_;    public float MyFloat {      get { return myFloat_; }      set { myFloat_ = value; }    }    public const int SingleNestedMessageFieldNumber = 200;    private global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage singleNestedMessage_;    public global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage SingleNestedMessage {      get { return singleNestedMessage_; }      set { singleNestedMessage_ = value; }    }    public override bool Equals(object other) {      return Equals(other as TestFieldOrderings);    }    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;    }    public override int GetHashCode() {      int hash = 0;      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;    }    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);      }    }    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;    }    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);      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            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    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]    public static partial class Types {      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]      public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {        private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());        public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }        private static readonly string[] _fieldNames = new string[] { "bb", "oo" };        private static readonly uint[] _fieldTags = new uint[] { 8, 16 };        public static pbd::MessageDescriptor Descriptor {          get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor; }        }        public pb::FieldAccess.FieldAccessorTable<NestedMessage> Fields {          get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable; }        }        public NestedMessage() { }        public NestedMessage(NestedMessage other) {          oo_ = other.oo_;          bb_ = other.bb_;        }        public NestedMessage Clone() {          return new NestedMessage(this);        }        public const int OoFieldNumber = 2;        private long oo_;        public long Oo {          get { return oo_; }          set { oo_ = value; }        }        public const int BbFieldNumber = 1;        private int bb_;        public int Bb {          get { return bb_; }          set { bb_ = value; }        }        public override bool Equals(object other) {          return Equals(other as NestedMessage);        }        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;        }        public override int GetHashCode() {          int hash = 0;          if (Oo != 0L) hash ^= Oo.GetHashCode();          if (Bb != 0) hash ^= Bb.GetHashCode();          return hash;        }        public void WriteTo(pb::CodedOutputStream output) {          if (Bb != 0) {            output.WriteRawTag(8);            output.WriteInt32(Bb);          }          if (Oo != 0L) {            output.WriteRawTag(16);            output.WriteInt64(Oo);          }        }        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;        }        public void MergeFrom(NestedMessage other) {          if (other == null) {            return;          }          if (other.Oo != 0L) {            Oo = other.Oo;          }          if (other.Bb != 0) {            Bb = other.Bb;          }        }        public void MergeFrom(pb::CodedInputStream input) {          uint tag;          while (input.ReadTag(out tag)) {            switch(tag) {              case 0:                throw pb::InvalidProtocolBufferException.InvalidTag();              default:                if (pb::WireFormat.IsEndGroupTag(tag)) {                  return;                }                break;              case 8: {                Bb = input.ReadInt32();                break;              }              case 16: {                Oo = input.ReadInt64();                break;              }            }          }        }      }    }    #endregion  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class SparseEnumMessage : pb::IMessage<SparseEnumMessage> {    private static readonly pb::MessageParser<SparseEnumMessage> _parser = new pb::MessageParser<SparseEnumMessage>(() => new SparseEnumMessage());    public static pb::MessageParser<SparseEnumMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "sparse_enum" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_SparseEnumMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<SparseEnumMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable; }    }    public SparseEnumMessage() { }    public SparseEnumMessage(SparseEnumMessage other) {      sparseEnum_ = other.sparseEnum_;    }    public SparseEnumMessage Clone() {      return new SparseEnumMessage(this);    }    public const int SparseEnumFieldNumber = 1;    private global::Google.Protobuf.TestProtos.TestSparseEnum sparseEnum_ = global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED;    public global::Google.Protobuf.TestProtos.TestSparseEnum SparseEnum {      get { return sparseEnum_; }      set { sparseEnum_ = value; }    }    public override bool Equals(object other) {      return Equals(other as SparseEnumMessage);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) hash ^= SparseEnum.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {        output.WriteRawTag(8);        output.WriteEnum((int) SparseEnum);      }    }    public int CalculateSize() {      int size = 0;      if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SparseEnum);      }      return size;    }    public void MergeFrom(SparseEnumMessage other) {      if (other == null) {        return;      }      if (other.SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {        SparseEnum = other.SparseEnum;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            sparseEnum_ = (global::Google.Protobuf.TestProtos.TestSparseEnum) input.ReadEnum();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class OneString : pb::IMessage<OneString> {    private static readonly pb::MessageParser<OneString> _parser = new pb::MessageParser<OneString>(() => new OneString());    public static pb::MessageParser<OneString> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneString__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<OneString> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }    }    public OneString() { }    public OneString(OneString other) {      data_ = other.data_;    }    public OneString Clone() {      return new OneString(this);    }    public const int DataFieldNumber = 1;    private string data_ = "";    public string Data {      get { return data_; }      set { data_ = value ?? ""; }    }    public override bool Equals(object other) {      return Equals(other as OneString);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data.Length != 0) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteString(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(Data);      }      return size;    }    public void MergeFrom(OneString other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            Data = input.ReadString();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class MoreString : pb::IMessage<MoreString> {    private static readonly pb::MessageParser<MoreString> _parser = new pb::MessageParser<MoreString>(() => new MoreString());    public static pb::MessageParser<MoreString> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreString__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<MoreString> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreString__FieldAccessorTable; }    }    public MoreString() { }    public MoreString(MoreString other) {      data_ = other.data_.Clone();    }    public MoreString Clone() {      return new MoreString(this);    }    public const int DataFieldNumber = 1;    private readonly pbc::RepeatedField<string> data_ = new pbc::RepeatedField<string>();    public pbc::RepeatedField<string> Data {      get { return data_; }    }    public override bool Equals(object other) {      return Equals(other as MoreString);    }    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;    }    public override int GetHashCode() {      int hash = 0;      hash ^= data_.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (data_.Count > 0) {        output.WriteStringArray(1, data_);      }    }    public int CalculateSize() {      int size = 0;      if (data_.Count > 0) {        int dataSize = 0;        foreach (string element in data_) {          dataSize += pb::CodedOutputStream.ComputeStringSize(element);        }        size += dataSize;        size += 1 * data_.Count;      }      return size;    }    public void MergeFrom(MoreString other) {      if (other == null) {        return;      }      data_.Add(other.data_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            input.ReadStringArray(data_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class OneBytes : pb::IMessage<OneBytes> {    private static readonly pb::MessageParser<OneBytes> _parser = new pb::MessageParser<OneBytes>(() => new OneBytes());    public static pb::MessageParser<OneBytes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneBytes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<OneBytes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }    }    public OneBytes() { }    public OneBytes(OneBytes other) {      data_ = other.data_;    }    public OneBytes Clone() {      return new OneBytes(this);    }    public const int DataFieldNumber = 1;    private pb::ByteString data_ = pb::ByteString.Empty;    public pb::ByteString Data {      get { return data_; }      set { data_ = value ?? pb::ByteString.Empty; }    }    public override bool Equals(object other) {      return Equals(other as OneBytes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data.Length != 0) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteBytes(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);      }      return size;    }    public void MergeFrom(OneBytes other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            Data = input.ReadBytes();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class MoreBytes : pb::IMessage<MoreBytes> {    private static readonly pb::MessageParser<MoreBytes> _parser = new pb::MessageParser<MoreBytes>(() => new MoreBytes());    public static pb::MessageParser<MoreBytes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreBytes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<MoreBytes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable; }    }    public MoreBytes() { }    public MoreBytes(MoreBytes other) {      data_ = other.data_;    }    public MoreBytes Clone() {      return new MoreBytes(this);    }    public const int DataFieldNumber = 1;    private pb::ByteString data_ = pb::ByteString.Empty;    public pb::ByteString Data {      get { return data_; }      set { data_ = value ?? pb::ByteString.Empty; }    }    public override bool Equals(object other) {      return Equals(other as MoreBytes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data.Length != 0) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data.Length != 0) {        output.WriteRawTag(10);        output.WriteBytes(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);      }      return size;    }    public void MergeFrom(MoreBytes other) {      if (other == null) {        return;      }      if (other.Data.Length != 0) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            Data = input.ReadBytes();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class Int32Message : pb::IMessage<Int32Message> {    private static readonly pb::MessageParser<Int32Message> _parser = new pb::MessageParser<Int32Message>(() => new Int32Message());    public static pb::MessageParser<Int32Message> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int32Message__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<Int32Message> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int32Message__FieldAccessorTable; }    }    public Int32Message() { }    public Int32Message(Int32Message other) {      data_ = other.data_;    }    public Int32Message Clone() {      return new Int32Message(this);    }    public const int DataFieldNumber = 1;    private int data_;    public int Data {      get { return data_; }      set { data_ = value; }    }    public override bool Equals(object other) {      return Equals(other as Int32Message);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data != 0) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data != 0) {        output.WriteRawTag(8);        output.WriteInt32(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data != 0) {        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);      }      return size;    }    public void MergeFrom(Int32Message other) {      if (other == null) {        return;      }      if (other.Data != 0) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            Data = input.ReadInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class Uint32Message : pb::IMessage<Uint32Message> {    private static readonly pb::MessageParser<Uint32Message> _parser = new pb::MessageParser<Uint32Message>(() => new Uint32Message());    public static pb::MessageParser<Uint32Message> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint32Message__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<Uint32Message> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable; }    }    public Uint32Message() { }    public Uint32Message(Uint32Message other) {      data_ = other.data_;    }    public Uint32Message Clone() {      return new Uint32Message(this);    }    public const int DataFieldNumber = 1;    private uint data_;    public uint Data {      get { return data_; }      set { data_ = value; }    }    public override bool Equals(object other) {      return Equals(other as Uint32Message);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data != 0) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data != 0) {        output.WriteRawTag(8);        output.WriteUInt32(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data != 0) {        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Data);      }      return size;    }    public void MergeFrom(Uint32Message other) {      if (other == null) {        return;      }      if (other.Data != 0) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            Data = input.ReadUInt32();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class Int64Message : pb::IMessage<Int64Message> {    private static readonly pb::MessageParser<Int64Message> _parser = new pb::MessageParser<Int64Message>(() => new Int64Message());    public static pb::MessageParser<Int64Message> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int64Message__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<Int64Message> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int64Message__FieldAccessorTable; }    }    public Int64Message() { }    public Int64Message(Int64Message other) {      data_ = other.data_;    }    public Int64Message Clone() {      return new Int64Message(this);    }    public const int DataFieldNumber = 1;    private long data_;    public long Data {      get { return data_; }      set { data_ = value; }    }    public override bool Equals(object other) {      return Equals(other as Int64Message);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data != 0L) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data != 0L) {        output.WriteRawTag(8);        output.WriteInt64(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data != 0L) {        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Data);      }      return size;    }    public void MergeFrom(Int64Message other) {      if (other == null) {        return;      }      if (other.Data != 0L) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            Data = input.ReadInt64();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class Uint64Message : pb::IMessage<Uint64Message> {    private static readonly pb::MessageParser<Uint64Message> _parser = new pb::MessageParser<Uint64Message>(() => new Uint64Message());    public static pb::MessageParser<Uint64Message> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint64Message__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<Uint64Message> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable; }    }    public Uint64Message() { }    public Uint64Message(Uint64Message other) {      data_ = other.data_;    }    public Uint64Message Clone() {      return new Uint64Message(this);    }    public const int DataFieldNumber = 1;    private ulong data_;    public ulong Data {      get { return data_; }      set { data_ = value; }    }    public override bool Equals(object other) {      return Equals(other as Uint64Message);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data != 0UL) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data != 0UL) {        output.WriteRawTag(8);        output.WriteUInt64(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data != 0UL) {        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Data);      }      return size;    }    public void MergeFrom(Uint64Message other) {      if (other == null) {        return;      }      if (other.Data != 0UL) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            Data = input.ReadUInt64();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class BoolMessage : pb::IMessage<BoolMessage> {    private static readonly pb::MessageParser<BoolMessage> _parser = new pb::MessageParser<BoolMessage>(() => new BoolMessage());    public static pb::MessageParser<BoolMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "data" };    private static readonly uint[] _fieldTags = new uint[] { 8 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BoolMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<BoolMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable; }    }    public BoolMessage() { }    public BoolMessage(BoolMessage other) {      data_ = other.data_;    }    public BoolMessage Clone() {      return new BoolMessage(this);    }    public const int DataFieldNumber = 1;    private bool data_;    public bool Data {      get { return data_; }      set { data_ = value; }    }    public override bool Equals(object other) {      return Equals(other as BoolMessage);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (Data != false) hash ^= Data.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (Data != false) {        output.WriteRawTag(8);        output.WriteBool(Data);      }    }    public int CalculateSize() {      int size = 0;      if (Data != false) {        size += 1 + 1;      }      return size;    }    public void MergeFrom(BoolMessage other) {      if (other == null) {        return;      }      if (other.Data != false) {        Data = other.Data;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 8: {            Data = input.ReadBool();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestOneof : pb::IMessage<TestOneof> {    private static readonly pb::MessageParser<TestOneof> _parser = new pb::MessageParser<TestOneof>(() => new TestOneof());    public static pb::MessageParser<TestOneof> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "foo_int", "foo_message", "foo_string" };    private static readonly uint[] _fieldTags = new uint[] { 8, 26, 18 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestOneof__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestOneof> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestOneof__FieldAccessorTable; }    }    public TestOneof() { }    public TestOneof(TestOneof other) {      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;      }    }    public TestOneof Clone() {      return new TestOneof(this);    }    public const int FooIntFieldNumber = 1;    public int FooInt {      get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }      set {        foo_ = value;        fooCase_ = FooOneofCase.FooInt;      }    }    public const int FooStringFieldNumber = 2;    public string FooString {      get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }      set {        foo_ = value ?? "";        fooCase_ = FooOneofCase.FooString;      }    }    public const int FooMessageFieldNumber = 3;    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_;    public enum FooOneofCase {      None = 0,      FooInt = 1,      FooString = 2,      FooMessage = 3,    }    private FooOneofCase fooCase_ = FooOneofCase.None;    public FooOneofCase FooCase {      get { return fooCase_; }    }    public void ClearFoo() {      fooCase_ = FooOneofCase.None;      foo_ = null;    }    public override bool Equals(object other) {      return Equals(other as TestOneof);    }    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;  return true;    }    public override int GetHashCode() {      int hash = 0;      if (fooCase_ == FooOneofCase.FooInt) hash ^= FooInt.GetHashCode();      if (fooCase_ == FooOneofCase.FooString) hash ^= FooString.GetHashCode();      if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();      return hash;    }    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);      }    }    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;    }    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;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            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;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestPackedTypes : pb::IMessage<TestPackedTypes> {    private static readonly pb::MessageParser<TestPackedTypes> _parser = new pb::MessageParser<TestPackedTypes>(() => new TestPackedTypes());    public static pb::MessageParser<TestPackedTypes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };    private static readonly uint[] _fieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestPackedTypes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }    }    public TestPackedTypes() { }    public TestPackedTypes(TestPackedTypes other) {      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();    }    public TestPackedTypes Clone() {      return new TestPackedTypes(this);    }    public const int PackedInt32FieldNumber = 90;    private readonly pbc::RepeatedField<int> packedInt32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> PackedInt32 {      get { return packedInt32_; }    }    public const int PackedInt64FieldNumber = 91;    private readonly pbc::RepeatedField<long> packedInt64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> PackedInt64 {      get { return packedInt64_; }    }    public const int PackedUint32FieldNumber = 92;    private readonly pbc::RepeatedField<uint> packedUint32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> PackedUint32 {      get { return packedUint32_; }    }    public const int PackedUint64FieldNumber = 93;    private readonly pbc::RepeatedField<ulong> packedUint64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> PackedUint64 {      get { return packedUint64_; }    }    public const int PackedSint32FieldNumber = 94;    private readonly pbc::RepeatedField<int> packedSint32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> PackedSint32 {      get { return packedSint32_; }    }    public const int PackedSint64FieldNumber = 95;    private readonly pbc::RepeatedField<long> packedSint64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> PackedSint64 {      get { return packedSint64_; }    }    public const int PackedFixed32FieldNumber = 96;    private readonly pbc::RepeatedField<uint> packedFixed32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> PackedFixed32 {      get { return packedFixed32_; }    }    public const int PackedFixed64FieldNumber = 97;    private readonly pbc::RepeatedField<ulong> packedFixed64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> PackedFixed64 {      get { return packedFixed64_; }    }    public const int PackedSfixed32FieldNumber = 98;    private readonly pbc::RepeatedField<int> packedSfixed32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> PackedSfixed32 {      get { return packedSfixed32_; }    }    public const int PackedSfixed64FieldNumber = 99;    private readonly pbc::RepeatedField<long> packedSfixed64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> PackedSfixed64 {      get { return packedSfixed64_; }    }    public const int PackedFloatFieldNumber = 100;    private readonly pbc::RepeatedField<float> packedFloat_ = new pbc::RepeatedField<float>();    public pbc::RepeatedField<float> PackedFloat {      get { return packedFloat_; }    }    public const int PackedDoubleFieldNumber = 101;    private readonly pbc::RepeatedField<double> packedDouble_ = new pbc::RepeatedField<double>();    public pbc::RepeatedField<double> PackedDouble {      get { return packedDouble_; }    }    public const int PackedBoolFieldNumber = 102;    private readonly pbc::RepeatedField<bool> packedBool_ = new pbc::RepeatedField<bool>();    public pbc::RepeatedField<bool> PackedBool {      get { return packedBool_; }    }    public const int PackedEnumFieldNumber = 103;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> packedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> PackedEnum {      get { return packedEnum_; }    }    public override bool Equals(object other) {      return Equals(other as TestPackedTypes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      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;    }    public void WriteTo(pb::CodedOutputStream output) {      if (packedInt32_.Count > 0) {        output.WriteRawTag(210, 5);        output.WritePackedInt32Array(packedInt32_);      }      if (packedInt64_.Count > 0) {        output.WriteRawTag(218, 5);        output.WritePackedInt64Array(packedInt64_);      }      if (packedUint32_.Count > 0) {        output.WriteRawTag(226, 5);        output.WritePackedUInt32Array(packedUint32_);      }      if (packedUint64_.Count > 0) {        output.WriteRawTag(234, 5);        output.WritePackedUInt64Array(packedUint64_);      }      if (packedSint32_.Count > 0) {        output.WriteRawTag(242, 5);        output.WritePackedSInt32Array(packedSint32_);      }      if (packedSint64_.Count > 0) {        output.WriteRawTag(250, 5);        output.WritePackedSInt64Array(packedSint64_);      }      if (packedFixed32_.Count > 0) {        output.WriteRawTag(130, 6);        output.WritePackedFixed32Array(packedFixed32_);      }      if (packedFixed64_.Count > 0) {        output.WriteRawTag(138, 6);        output.WritePackedFixed64Array(packedFixed64_);      }      if (packedSfixed32_.Count > 0) {        output.WriteRawTag(146, 6);        output.WritePackedSFixed32Array(packedSfixed32_);      }      if (packedSfixed64_.Count > 0) {        output.WriteRawTag(154, 6);        output.WritePackedSFixed64Array(packedSfixed64_);      }      if (packedFloat_.Count > 0) {        output.WriteRawTag(162, 6);        output.WritePackedFloatArray(packedFloat_);      }      if (packedDouble_.Count > 0) {        output.WriteRawTag(170, 6);        output.WritePackedDoubleArray(packedDouble_);      }      if (packedBool_.Count > 0) {        output.WriteRawTag(178, 6);        output.WritePackedBoolArray(packedBool_);      }      if (packedEnum_.Count > 0) {        output.WriteRawTag(186, 6);        output.WritePackedEnumArray(packedEnum_);      }    }    public int CalculateSize() {      int size = 0;      if (packedInt32_.Count > 0) {        int dataSize = 0;        foreach (int element in packedInt32_) {          dataSize += pb::CodedOutputStream.ComputeInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedInt64_.Count > 0) {        int dataSize = 0;        foreach (long element in packedInt64_) {          dataSize += pb::CodedOutputStream.ComputeInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedUint32_.Count > 0) {        int dataSize = 0;        foreach (uint element in packedUint32_) {          dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedUint64_.Count > 0) {        int dataSize = 0;        foreach (ulong element in packedUint64_) {          dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedSint32_.Count > 0) {        int dataSize = 0;        foreach (int element in packedSint32_) {          dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedSint64_.Count > 0) {        int dataSize = 0;        foreach (long element in packedSint64_) {          dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedFixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * packedFixed32_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedFixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * packedFixed64_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedSfixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * packedSfixed32_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedSfixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * packedSfixed64_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedFloat_.Count > 0) {        int dataSize = 0;        dataSize = 4 * packedFloat_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedDouble_.Count > 0) {        int dataSize = 0;        dataSize = 8 * packedDouble_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedBool_.Count > 0) {        int dataSize = 0;        dataSize = 1 * packedBool_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (packedEnum_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in packedEnum_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);      }      return size;    }    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_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 722:          case 720: {            input.ReadInt32Array(packedInt32_);            break;          }          case 730:          case 728: {            input.ReadInt64Array(packedInt64_);            break;          }          case 738:          case 736: {            input.ReadUInt32Array(packedUint32_);            break;          }          case 746:          case 744: {            input.ReadUInt64Array(packedUint64_);            break;          }          case 754:          case 752: {            input.ReadSInt32Array(packedSint32_);            break;          }          case 762:          case 760: {            input.ReadSInt64Array(packedSint64_);            break;          }          case 770:          case 773: {            input.ReadFixed32Array(packedFixed32_);            break;          }          case 778:          case 777: {            input.ReadFixed64Array(packedFixed64_);            break;          }          case 786:          case 789: {            input.ReadSFixed32Array(packedSfixed32_);            break;          }          case 794:          case 793: {            input.ReadSFixed64Array(packedSfixed64_);            break;          }          case 802:          case 805: {            input.ReadFloatArray(packedFloat_);            break;          }          case 810:          case 809: {            input.ReadDoubleArray(packedDouble_);            break;          }          case 818:          case 816: {            input.ReadBoolArray(packedBool_);            break;          }          case 826:          case 824: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(packedEnum_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestUnpackedTypes : pb::IMessage<TestUnpackedTypes> {    private static readonly pb::MessageParser<TestUnpackedTypes> _parser = new pb::MessageParser<TestUnpackedTypes>(() => new TestUnpackedTypes());    public static pb::MessageParser<TestUnpackedTypes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };    private static readonly uint[] _fieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }    }    public TestUnpackedTypes() { }    public TestUnpackedTypes(TestUnpackedTypes other) {      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();    }    public TestUnpackedTypes Clone() {      return new TestUnpackedTypes(this);    }    public const int UnpackedInt32FieldNumber = 90;    private readonly pbc::RepeatedField<int> unpackedInt32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> UnpackedInt32 {      get { return unpackedInt32_; }    }    public const int UnpackedInt64FieldNumber = 91;    private readonly pbc::RepeatedField<long> unpackedInt64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> UnpackedInt64 {      get { return unpackedInt64_; }    }    public const int UnpackedUint32FieldNumber = 92;    private readonly pbc::RepeatedField<uint> unpackedUint32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> UnpackedUint32 {      get { return unpackedUint32_; }    }    public const int UnpackedUint64FieldNumber = 93;    private readonly pbc::RepeatedField<ulong> unpackedUint64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> UnpackedUint64 {      get { return unpackedUint64_; }    }    public const int UnpackedSint32FieldNumber = 94;    private readonly pbc::RepeatedField<int> unpackedSint32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> UnpackedSint32 {      get { return unpackedSint32_; }    }    public const int UnpackedSint64FieldNumber = 95;    private readonly pbc::RepeatedField<long> unpackedSint64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> UnpackedSint64 {      get { return unpackedSint64_; }    }    public const int UnpackedFixed32FieldNumber = 96;    private readonly pbc::RepeatedField<uint> unpackedFixed32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> UnpackedFixed32 {      get { return unpackedFixed32_; }    }    public const int UnpackedFixed64FieldNumber = 97;    private readonly pbc::RepeatedField<ulong> unpackedFixed64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> UnpackedFixed64 {      get { return unpackedFixed64_; }    }    public const int UnpackedSfixed32FieldNumber = 98;    private readonly pbc::RepeatedField<int> unpackedSfixed32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> UnpackedSfixed32 {      get { return unpackedSfixed32_; }    }    public const int UnpackedSfixed64FieldNumber = 99;    private readonly pbc::RepeatedField<long> unpackedSfixed64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> UnpackedSfixed64 {      get { return unpackedSfixed64_; }    }    public const int UnpackedFloatFieldNumber = 100;    private readonly pbc::RepeatedField<float> unpackedFloat_ = new pbc::RepeatedField<float>();    public pbc::RepeatedField<float> UnpackedFloat {      get { return unpackedFloat_; }    }    public const int UnpackedDoubleFieldNumber = 101;    private readonly pbc::RepeatedField<double> unpackedDouble_ = new pbc::RepeatedField<double>();    public pbc::RepeatedField<double> UnpackedDouble {      get { return unpackedDouble_; }    }    public const int UnpackedBoolFieldNumber = 102;    private readonly pbc::RepeatedField<bool> unpackedBool_ = new pbc::RepeatedField<bool>();    public pbc::RepeatedField<bool> UnpackedBool {      get { return unpackedBool_; }    }    public const int UnpackedEnumFieldNumber = 103;    private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();    public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> UnpackedEnum {      get { return unpackedEnum_; }    }    public override bool Equals(object other) {      return Equals(other as TestUnpackedTypes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      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;    }    public void WriteTo(pb::CodedOutputStream output) {      if (unpackedInt32_.Count > 0) {        output.WriteInt32Array(90, unpackedInt32_);      }      if (unpackedInt64_.Count > 0) {        output.WriteInt64Array(91, unpackedInt64_);      }      if (unpackedUint32_.Count > 0) {        output.WriteUInt32Array(92, unpackedUint32_);      }      if (unpackedUint64_.Count > 0) {        output.WriteUInt64Array(93, unpackedUint64_);      }      if (unpackedSint32_.Count > 0) {        output.WriteSInt32Array(94, unpackedSint32_);      }      if (unpackedSint64_.Count > 0) {        output.WriteSInt64Array(95, unpackedSint64_);      }      if (unpackedFixed32_.Count > 0) {        output.WriteFixed32Array(96, unpackedFixed32_);      }      if (unpackedFixed64_.Count > 0) {        output.WriteFixed64Array(97, unpackedFixed64_);      }      if (unpackedSfixed32_.Count > 0) {        output.WriteSFixed32Array(98, unpackedSfixed32_);      }      if (unpackedSfixed64_.Count > 0) {        output.WriteSFixed64Array(99, unpackedSfixed64_);      }      if (unpackedFloat_.Count > 0) {        output.WriteFloatArray(100, unpackedFloat_);      }      if (unpackedDouble_.Count > 0) {        output.WriteDoubleArray(101, unpackedDouble_);      }      if (unpackedBool_.Count > 0) {        output.WriteBoolArray(102, unpackedBool_);      }      if (unpackedEnum_.Count > 0) {        output.WriteEnumArray(103, unpackedEnum_);      }    }    public int CalculateSize() {      int size = 0;      if (unpackedInt32_.Count > 0) {        int dataSize = 0;        foreach (int element in unpackedInt32_) {          dataSize += pb::CodedOutputStream.ComputeInt32Size(element);        }        size += dataSize;        size += 2 * unpackedInt32_.Count;      }      if (unpackedInt64_.Count > 0) {        int dataSize = 0;        foreach (long element in unpackedInt64_) {          dataSize += pb::CodedOutputStream.ComputeInt64Size(element);        }        size += dataSize;        size += 2 * unpackedInt64_.Count;      }      if (unpackedUint32_.Count > 0) {        int dataSize = 0;        foreach (uint element in unpackedUint32_) {          dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);        }        size += dataSize;        size += 2 * unpackedUint32_.Count;      }      if (unpackedUint64_.Count > 0) {        int dataSize = 0;        foreach (ulong element in unpackedUint64_) {          dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);        }        size += dataSize;        size += 2 * unpackedUint64_.Count;      }      if (unpackedSint32_.Count > 0) {        int dataSize = 0;        foreach (int element in unpackedSint32_) {          dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);        }        size += dataSize;        size += 2 * unpackedSint32_.Count;      }      if (unpackedSint64_.Count > 0) {        int dataSize = 0;        foreach (long element in unpackedSint64_) {          dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);        }        size += dataSize;        size += 2 * unpackedSint64_.Count;      }      if (unpackedFixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * unpackedFixed32_.Count;        size += dataSize;        size += 2 * unpackedFixed32_.Count;      }      if (unpackedFixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * unpackedFixed64_.Count;        size += dataSize;        size += 2 * unpackedFixed64_.Count;      }      if (unpackedSfixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * unpackedSfixed32_.Count;        size += dataSize;        size += 2 * unpackedSfixed32_.Count;      }      if (unpackedSfixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * unpackedSfixed64_.Count;        size += dataSize;        size += 2 * unpackedSfixed64_.Count;      }      if (unpackedFloat_.Count > 0) {        int dataSize = 0;        dataSize = 4 * unpackedFloat_.Count;        size += dataSize;        size += 2 * unpackedFloat_.Count;      }      if (unpackedDouble_.Count > 0) {        int dataSize = 0;        dataSize = 8 * unpackedDouble_.Count;        size += dataSize;        size += 2 * unpackedDouble_.Count;      }      if (unpackedBool_.Count > 0) {        int dataSize = 0;        dataSize = 1 * unpackedBool_.Count;        size += dataSize;        size += 2 * unpackedBool_.Count;      }      if (unpackedEnum_.Count > 0) {        int dataSize = 0;        foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in unpackedEnum_) {          dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);        }        size += dataSize;        size += 2 * unpackedEnum_.Count;      }      return size;    }    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_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 722:          case 720: {            input.ReadInt32Array(unpackedInt32_);            break;          }          case 730:          case 728: {            input.ReadInt64Array(unpackedInt64_);            break;          }          case 738:          case 736: {            input.ReadUInt32Array(unpackedUint32_);            break;          }          case 746:          case 744: {            input.ReadUInt64Array(unpackedUint64_);            break;          }          case 754:          case 752: {            input.ReadSInt32Array(unpackedSint32_);            break;          }          case 762:          case 760: {            input.ReadSInt64Array(unpackedSint64_);            break;          }          case 770:          case 773: {            input.ReadFixed32Array(unpackedFixed32_);            break;          }          case 778:          case 777: {            input.ReadFixed64Array(unpackedFixed64_);            break;          }          case 786:          case 789: {            input.ReadSFixed32Array(unpackedSfixed32_);            break;          }          case 794:          case 793: {            input.ReadSFixed64Array(unpackedSfixed64_);            break;          }          case 802:          case 805: {            input.ReadFloatArray(unpackedFloat_);            break;          }          case 810:          case 809: {            input.ReadDoubleArray(unpackedDouble_);            break;          }          case 818:          case 816: {            input.ReadBoolArray(unpackedBool_);            break;          }          case 826:          case 824: {            input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(unpackedEnum_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::IMessage<TestRepeatedScalarDifferentTagSizes> {    private static readonly pb::MessageParser<TestRepeatedScalarDifferentTagSizes> _parser = new pb::MessageParser<TestRepeatedScalarDifferentTagSizes>(() => new TestRepeatedScalarDifferentTagSizes());    public static pb::MessageParser<TestRepeatedScalarDifferentTagSizes> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };    private static readonly uint[] _fieldTags = new uint[] { 98, 16370, 2097138, 106, 16378, 2097146 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }    }    public TestRepeatedScalarDifferentTagSizes() { }    public TestRepeatedScalarDifferentTagSizes(TestRepeatedScalarDifferentTagSizes other) {      repeatedFixed32_ = other.repeatedFixed32_.Clone();      repeatedInt32_ = other.repeatedInt32_.Clone();      repeatedFixed64_ = other.repeatedFixed64_.Clone();      repeatedInt64_ = other.repeatedInt64_.Clone();      repeatedFloat_ = other.repeatedFloat_.Clone();      repeatedUint64_ = other.repeatedUint64_.Clone();    }    public TestRepeatedScalarDifferentTagSizes Clone() {      return new TestRepeatedScalarDifferentTagSizes(this);    }    public const int RepeatedFixed32FieldNumber = 12;    private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();    public pbc::RepeatedField<uint> RepeatedFixed32 {      get { return repeatedFixed32_; }    }    public const int RepeatedInt32FieldNumber = 13;    private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();    public pbc::RepeatedField<int> RepeatedInt32 {      get { return repeatedInt32_; }    }    public const int RepeatedFixed64FieldNumber = 2046;    private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> RepeatedFixed64 {      get { return repeatedFixed64_; }    }    public const int RepeatedInt64FieldNumber = 2047;    private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();    public pbc::RepeatedField<long> RepeatedInt64 {      get { return repeatedInt64_; }    }    public const int RepeatedFloatFieldNumber = 262142;    private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();    public pbc::RepeatedField<float> RepeatedFloat {      get { return repeatedFloat_; }    }    public const int RepeatedUint64FieldNumber = 262143;    private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();    public pbc::RepeatedField<ulong> RepeatedUint64 {      get { return repeatedUint64_; }    }    public override bool Equals(object other) {      return Equals(other as TestRepeatedScalarDifferentTagSizes);    }    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;    }    public override int GetHashCode() {      int hash = 0;      hash ^= repeatedFixed32_.GetHashCode();      hash ^= repeatedInt32_.GetHashCode();      hash ^= repeatedFixed64_.GetHashCode();      hash ^= repeatedInt64_.GetHashCode();      hash ^= repeatedFloat_.GetHashCode();      hash ^= repeatedUint64_.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (repeatedFixed32_.Count > 0) {        output.WriteRawTag(98);        output.WritePackedFixed32Array(repeatedFixed32_);      }      if (repeatedInt32_.Count > 0) {        output.WriteRawTag(106);        output.WritePackedInt32Array(repeatedInt32_);      }      if (repeatedFixed64_.Count > 0) {        output.WriteRawTag(242, 127);        output.WritePackedFixed64Array(repeatedFixed64_);      }      if (repeatedInt64_.Count > 0) {        output.WriteRawTag(250, 127);        output.WritePackedInt64Array(repeatedInt64_);      }      if (repeatedFloat_.Count > 0) {        output.WriteRawTag(242, 255, 127);        output.WritePackedFloatArray(repeatedFloat_);      }      if (repeatedUint64_.Count > 0) {        output.WriteRawTag(250, 255, 127);        output.WritePackedUInt64Array(repeatedUint64_);      }    }    public int CalculateSize() {      int size = 0;      if (repeatedFixed32_.Count > 0) {        int dataSize = 0;        dataSize = 4 * repeatedFixed32_.Count;        size += dataSize;        size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedInt32_.Count > 0) {        int dataSize = 0;        foreach (int element in repeatedInt32_) {          dataSize += pb::CodedOutputStream.ComputeInt32Size(element);        }        size += dataSize;        size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedFixed64_.Count > 0) {        int dataSize = 0;        dataSize = 8 * repeatedFixed64_.Count;        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedInt64_.Count > 0) {        int dataSize = 0;        foreach (long element in repeatedInt64_) {          dataSize += pb::CodedOutputStream.ComputeInt64Size(element);        }        size += dataSize;        size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedFloat_.Count > 0) {        int dataSize = 0;        dataSize = 4 * repeatedFloat_.Count;        size += dataSize;        size += 3 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      if (repeatedUint64_.Count > 0) {        int dataSize = 0;        foreach (ulong element in repeatedUint64_) {          dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);        }        size += dataSize;        size += 3 + pb::CodedOutputStream.ComputeInt32Size(dataSize);      }      return size;    }    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_);    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 98:          case 101: {            input.ReadFixed32Array(repeatedFixed32_);            break;          }          case 106:          case 104: {            input.ReadInt32Array(repeatedInt32_);            break;          }          case 16370:          case 16369: {            input.ReadFixed64Array(repeatedFixed64_);            break;          }          case 16378:          case 16376: {            input.ReadInt64Array(repeatedInt64_);            break;          }          case 2097138:          case 2097141: {            input.ReadFloatArray(repeatedFloat_);            break;          }          case 2097146:          case 2097144: {            input.ReadUInt64Array(repeatedUint64_);            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class TestCommentInjectionMessage : pb::IMessage<TestCommentInjectionMessage> {    private static readonly pb::MessageParser<TestCommentInjectionMessage> _parser = new pb::MessageParser<TestCommentInjectionMessage>(() => new TestCommentInjectionMessage());    public static pb::MessageParser<TestCommentInjectionMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] { "a" };    private static readonly uint[] _fieldTags = new uint[] { 10 };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<TestCommentInjectionMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable; }    }    public TestCommentInjectionMessage() { }    public TestCommentInjectionMessage(TestCommentInjectionMessage other) {      a_ = other.a_;    }    public TestCommentInjectionMessage Clone() {      return new TestCommentInjectionMessage(this);    }    public const int AFieldNumber = 1;    private string a_ = "";    public string A {      get { return a_; }      set { a_ = value ?? ""; }    }    public override bool Equals(object other) {      return Equals(other as TestCommentInjectionMessage);    }    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;    }    public override int GetHashCode() {      int hash = 0;      if (A.Length != 0) hash ^= A.GetHashCode();      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {      if (A.Length != 0) {        output.WriteRawTag(10);        output.WriteString(A);      }    }    public int CalculateSize() {      int size = 0;      if (A.Length != 0) {        size += 1 + pb::CodedOutputStream.ComputeStringSize(A);      }      return size;    }    public void MergeFrom(TestCommentInjectionMessage other) {      if (other == null) {        return;      }      if (other.A.Length != 0) {        A = other.A;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;          case 10: {            A = input.ReadString();            break;          }        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class FooRequest : pb::IMessage<FooRequest> {    private static readonly pb::MessageParser<FooRequest> _parser = new pb::MessageParser<FooRequest>(() => new FooRequest());    public static pb::MessageParser<FooRequest> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooRequest__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<FooRequest> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }    }    public FooRequest() { }    public FooRequest(FooRequest other) {    }    public FooRequest Clone() {      return new FooRequest(this);    }    public override bool Equals(object other) {      return Equals(other as FooRequest);    }    public bool Equals(FooRequest other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(FooRequest other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class FooResponse : pb::IMessage<FooResponse> {    private static readonly pb::MessageParser<FooResponse> _parser = new pb::MessageParser<FooResponse>(() => new FooResponse());    public static pb::MessageParser<FooResponse> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooResponse__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<FooResponse> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }    }    public FooResponse() { }    public FooResponse(FooResponse other) {    }    public FooResponse Clone() {      return new FooResponse(this);    }    public override bool Equals(object other) {      return Equals(other as FooResponse);    }    public bool Equals(FooResponse other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(FooResponse other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class FooClientMessage : pb::IMessage<FooClientMessage> {    private static readonly pb::MessageParser<FooClientMessage> _parser = new pb::MessageParser<FooClientMessage>(() => new FooClientMessage());    public static pb::MessageParser<FooClientMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooClientMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<FooClientMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable; }    }    public FooClientMessage() { }    public FooClientMessage(FooClientMessage other) {    }    public FooClientMessage Clone() {      return new FooClientMessage(this);    }    public override bool Equals(object other) {      return Equals(other as FooClientMessage);    }    public bool Equals(FooClientMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(FooClientMessage other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class FooServerMessage : pb::IMessage<FooServerMessage> {    private static readonly pb::MessageParser<FooServerMessage> _parser = new pb::MessageParser<FooServerMessage>(() => new FooServerMessage());    public static pb::MessageParser<FooServerMessage> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooServerMessage__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<FooServerMessage> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable; }    }    public FooServerMessage() { }    public FooServerMessage(FooServerMessage other) {    }    public FooServerMessage Clone() {      return new FooServerMessage(this);    }    public override bool Equals(object other) {      return Equals(other as FooServerMessage);    }    public bool Equals(FooServerMessage other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(FooServerMessage other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class BarRequest : pb::IMessage<BarRequest> {    private static readonly pb::MessageParser<BarRequest> _parser = new pb::MessageParser<BarRequest>(() => new BarRequest());    public static pb::MessageParser<BarRequest> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarRequest__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<BarRequest> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }    }    public BarRequest() { }    public BarRequest(BarRequest other) {    }    public BarRequest Clone() {      return new BarRequest(this);    }    public override bool Equals(object other) {      return Equals(other as BarRequest);    }    public bool Equals(BarRequest other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(BarRequest other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]  public sealed partial class BarResponse : pb::IMessage<BarResponse> {    private static readonly pb::MessageParser<BarResponse> _parser = new pb::MessageParser<BarResponse>(() => new BarResponse());    public static pb::MessageParser<BarResponse> Parser { get { return _parser; } }    private static readonly string[] _fieldNames = new string[] {  };    private static readonly uint[] _fieldTags = new uint[] {  };    public static pbd::MessageDescriptor Descriptor {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarResponse__Descriptor; }    }    public pb::FieldAccess.FieldAccessorTable<BarResponse> Fields {      get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }    }    public BarResponse() { }    public BarResponse(BarResponse other) {    }    public BarResponse Clone() {      return new BarResponse(this);    }    public override bool Equals(object other) {      return Equals(other as BarResponse);    }    public bool Equals(BarResponse other) {      if (ReferenceEquals(other, null)) {        return false;      }      if (ReferenceEquals(other, this)) {        return true;      }      return true;    }    public override int GetHashCode() {      int hash = 0;      return hash;    }    public void WriteTo(pb::CodedOutputStream output) {    }    public int CalculateSize() {      int size = 0;      return size;    }    public void MergeFrom(BarResponse other) {      if (other == null) {        return;      }    }    public void MergeFrom(pb::CodedInputStream input) {      uint tag;      while (input.ReadTag(out tag)) {        switch(tag) {          case 0:            throw pb::InvalidProtocolBufferException.InvalidTag();          default:            if (pb::WireFormat.IsEndGroupTag(tag)) {              return;            }            break;        }      }    }  }  #endregion}#endregion Designer generated code
 |