| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486 | /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/"use strict";var $protobuf = require("protobufjs/minimal");// Common aliasesvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;// Exported root namespacevar $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});$root.market = (function() {    /**     * Namespace market.     * @exports market     * @namespace     */    var market = {};    market.v2 = (function() {        /**         * Namespace v2.         * @memberof market         * @namespace         */        var v2 = {};        v2.trade = (function() {            /**             * Namespace trade.             * @memberof market.v2             * @namespace             */            var trade = {};            trade.Response = (function() {                /**                 * Properties of a Response.                 * @memberof market.v2.trade                 * @interface IResponse                 * @property {number|null} [code] Response code                 * @property {string|null} [msg] Response msg                 * @property {string|null} [status] Response status                 * @property {number|Long|null} [ts] Response ts                 * @property {string|null} [ch] Response ch                 * @property {market.v2.trade.IKlineList|null} [klinelist] Response klinelist                 * @property {market.v2.trade.ITradeDepthVO|null} [tradedepthvo] Response tradedepthvo                 * @property {market.v2.trade.ITradeDetailList|null} [tradedetaillist] Response tradedetaillist                 * @property {market.v2.trade.ITradeAreaPair|null} [tradeareapair] Response tradeareapair                 * @property {market.v2.trade.IMainPair|null} [mainpair] Response mainpair                 * @property {market.v2.trade.IRecommendPair|null} [recommendpair] Response recommendpair                 * @property {market.v2.trade.IUpPair|null} [uppair] Response uppair                 * @property {market.v2.trade.IAmtPair|null} [amtpair] Response amtpair                 * @property {market.v2.trade.IStarPair|null} [starpair] Response starpair                 * @property {market.v2.trade.ITradeTickerVO|null} [tradetickervo] Response tradetickervo                 * @property {market.v2.trade.IEntrustVO|null} [entrustvo] Response entrustvo                 * @property {market.v2.trade.IUserAssetBalance|null} [userassetbalance] Response userassetbalance                 * @property {market.v2.trade.IMarketTickerList|null} [markettickerlist] Response markettickerlist                 * @property {market.v2.trade.IMarginCrossAssetVO|null} [margincrossassetvo] Response margincrossassetvo                 * @property {market.v2.trade.IMarginIsolatedAssetVO|null} [marginisolatedassetvo] Response marginisolatedassetvo                 * @property {market.v2.trade.INewListingPair|null} [newlistingpair] Response newlistingpair                 * @property {market.v2.trade.IChgdistributions|null} [chgdistributions] Response chgdistributions                 * @property {market.v2.trade.IMarketZones|null} [marketzones] Response marketzones                 * @property {market.v2.trade.IKlineOrders|null} [klineorders] Response klineorders                 * @property {market.v2.trade.INotificationPush|null} [notificationpush] Response notificationpush                 * @property {market.v2.trade.ITradeHotListing|null} [tradehotlisting] Response tradehotlisting                 * @property {market.v2.trade.ICtcGoingOrderNum|null} [ctcgoingordernum] Response ctcgoingordernum                 * @property {market.v2.trade.IMultiChange|null} [multichange] Response multichange                 * @property {market.v2.trade.IHeatmap|null} [heatmap] Response heatmap                 * @property {market.v2.trade.IDownPair|null} [downpair] Response downpair                 * @property {market.v2.trade.IHeatVol|null} [heatvol] Response heatvol                 * @property {market.v2.trade.ICurrencyRate|null} [currencyrate] Response currencyrate                 * @property {market.v2.trade.IMarketMonit|null} [marketmonit] Response marketmonit                 */                /**                 * Constructs a new Response.                 * @memberof market.v2.trade                 * @classdesc Represents a Response.                 * @implements IResponse                 * @constructor                 * @param {market.v2.trade.IResponse=} [properties] Properties to set                 */                function Response(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Response code.                 * @member {number} code                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.code = 0;                /**                 * Response msg.                 * @member {string} msg                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.msg = "";                /**                 * Response status.                 * @member {string} status                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.status = "";                /**                 * Response ts.                 * @member {number|Long} ts                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Response ch.                 * @member {string} ch                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.ch = "";                /**                 * Response klinelist.                 * @member {market.v2.trade.IKlineList|null|undefined} klinelist                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.klinelist = null;                /**                 * Response tradedepthvo.                 * @member {market.v2.trade.ITradeDepthVO|null|undefined} tradedepthvo                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.tradedepthvo = null;                /**                 * Response tradedetaillist.                 * @member {market.v2.trade.ITradeDetailList|null|undefined} tradedetaillist                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.tradedetaillist = null;                /**                 * Response tradeareapair.                 * @member {market.v2.trade.ITradeAreaPair|null|undefined} tradeareapair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.tradeareapair = null;                /**                 * Response mainpair.                 * @member {market.v2.trade.IMainPair|null|undefined} mainpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.mainpair = null;                /**                 * Response recommendpair.                 * @member {market.v2.trade.IRecommendPair|null|undefined} recommendpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.recommendpair = null;                /**                 * Response uppair.                 * @member {market.v2.trade.IUpPair|null|undefined} uppair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.uppair = null;                /**                 * Response amtpair.                 * @member {market.v2.trade.IAmtPair|null|undefined} amtpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.amtpair = null;                /**                 * Response starpair.                 * @member {market.v2.trade.IStarPair|null|undefined} starpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.starpair = null;                /**                 * Response tradetickervo.                 * @member {market.v2.trade.ITradeTickerVO|null|undefined} tradetickervo                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.tradetickervo = null;                /**                 * Response entrustvo.                 * @member {market.v2.trade.IEntrustVO|null|undefined} entrustvo                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.entrustvo = null;                /**                 * Response userassetbalance.                 * @member {market.v2.trade.IUserAssetBalance|null|undefined} userassetbalance                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.userassetbalance = null;                /**                 * Response markettickerlist.                 * @member {market.v2.trade.IMarketTickerList|null|undefined} markettickerlist                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.markettickerlist = null;                /**                 * Response margincrossassetvo.                 * @member {market.v2.trade.IMarginCrossAssetVO|null|undefined} margincrossassetvo                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.margincrossassetvo = null;                /**                 * Response marginisolatedassetvo.                 * @member {market.v2.trade.IMarginIsolatedAssetVO|null|undefined} marginisolatedassetvo                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.marginisolatedassetvo = null;                /**                 * Response newlistingpair.                 * @member {market.v2.trade.INewListingPair|null|undefined} newlistingpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.newlistingpair = null;                /**                 * Response chgdistributions.                 * @member {market.v2.trade.IChgdistributions|null|undefined} chgdistributions                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.chgdistributions = null;                /**                 * Response marketzones.                 * @member {market.v2.trade.IMarketZones|null|undefined} marketzones                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.marketzones = null;                /**                 * Response klineorders.                 * @member {market.v2.trade.IKlineOrders|null|undefined} klineorders                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.klineorders = null;                /**                 * Response notificationpush.                 * @member {market.v2.trade.INotificationPush|null|undefined} notificationpush                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.notificationpush = null;                /**                 * Response tradehotlisting.                 * @member {market.v2.trade.ITradeHotListing|null|undefined} tradehotlisting                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.tradehotlisting = null;                /**                 * Response ctcgoingordernum.                 * @member {market.v2.trade.ICtcGoingOrderNum|null|undefined} ctcgoingordernum                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.ctcgoingordernum = null;                /**                 * Response multichange.                 * @member {market.v2.trade.IMultiChange|null|undefined} multichange                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.multichange = null;                /**                 * Response heatmap.                 * @member {market.v2.trade.IHeatmap|null|undefined} heatmap                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.heatmap = null;                /**                 * Response downpair.                 * @member {market.v2.trade.IDownPair|null|undefined} downpair                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.downpair = null;                /**                 * Response heatvol.                 * @member {market.v2.trade.IHeatVol|null|undefined} heatvol                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.heatvol = null;                /**                 * Response currencyrate.                 * @member {market.v2.trade.ICurrencyRate|null|undefined} currencyrate                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.currencyrate = null;                /**                 * Response marketmonit.                 * @member {market.v2.trade.IMarketMonit|null|undefined} marketmonit                 * @memberof market.v2.trade.Response                 * @instance                 */                Response.prototype.marketmonit = null;                /**                 * Creates a new Response instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.Response                 * @static                 * @param {market.v2.trade.IResponse=} [properties] Properties to set                 * @returns {market.v2.trade.Response} Response instance                 */                Response.create = function create(properties) {                    return new Response(properties);                };                /**                 * Encodes the specified Response message. Does not implicitly {@link market.v2.trade.Response.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.Response                 * @static                 * @param {market.v2.trade.IResponse} message Response message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Response.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.code != null && Object.hasOwnProperty.call(message, "code"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code);                    if (message.msg != null && Object.hasOwnProperty.call(message, "msg"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);                    if (message.status != null && Object.hasOwnProperty.call(message, "status"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.status);                    if (message.ts != null && Object.hasOwnProperty.call(message, "ts"))                        writer.uint32(/* id 4, wireType 0 =*/32).int64(message.ts);                    if (message.ch != null && Object.hasOwnProperty.call(message, "ch"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.ch);                    if (message.klinelist != null && Object.hasOwnProperty.call(message, "klinelist"))                        $root.market.v2.trade.KlineList.encode(message.klinelist, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim();                    if (message.tradedepthvo != null && Object.hasOwnProperty.call(message, "tradedepthvo"))                        $root.market.v2.trade.TradeDepthVO.encode(message.tradedepthvo, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim();                    if (message.tradedetaillist != null && Object.hasOwnProperty.call(message, "tradedetaillist"))                        $root.market.v2.trade.TradeDetailList.encode(message.tradedetaillist, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim();                    if (message.tradeareapair != null && Object.hasOwnProperty.call(message, "tradeareapair"))                        $root.market.v2.trade.TradeAreaPair.encode(message.tradeareapair, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim();                    if (message.mainpair != null && Object.hasOwnProperty.call(message, "mainpair"))                        $root.market.v2.trade.MainPair.encode(message.mainpair, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim();                    if (message.recommendpair != null && Object.hasOwnProperty.call(message, "recommendpair"))                        $root.market.v2.trade.RecommendPair.encode(message.recommendpair, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();                    if (message.uppair != null && Object.hasOwnProperty.call(message, "uppair"))                        $root.market.v2.trade.UpPair.encode(message.uppair, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim();                    if (message.amtpair != null && Object.hasOwnProperty.call(message, "amtpair"))                        $root.market.v2.trade.AmtPair.encode(message.amtpair, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim();                    if (message.starpair != null && Object.hasOwnProperty.call(message, "starpair"))                        $root.market.v2.trade.StarPair.encode(message.starpair, writer.uint32(/* id 29, wireType 2 =*/234).fork()).ldelim();                    if (message.tradetickervo != null && Object.hasOwnProperty.call(message, "tradetickervo"))                        $root.market.v2.trade.TradeTickerVO.encode(message.tradetickervo, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim();                    if (message.entrustvo != null && Object.hasOwnProperty.call(message, "entrustvo"))                        $root.market.v2.trade.EntrustVO.encode(message.entrustvo, writer.uint32(/* id 31, wireType 2 =*/250).fork()).ldelim();                    if (message.userassetbalance != null && Object.hasOwnProperty.call(message, "userassetbalance"))                        $root.market.v2.trade.UserAssetBalance.encode(message.userassetbalance, writer.uint32(/* id 32, wireType 2 =*/258).fork()).ldelim();                    if (message.markettickerlist != null && Object.hasOwnProperty.call(message, "markettickerlist"))                        $root.market.v2.trade.MarketTickerList.encode(message.markettickerlist, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim();                    if (message.marketmonit != null && Object.hasOwnProperty.call(message, "marketmonit"))                        $root.market.v2.trade.MarketMonit.encode(message.marketmonit, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim();                    if (message.margincrossassetvo != null && Object.hasOwnProperty.call(message, "margincrossassetvo"))                        $root.market.v2.trade.MarginCrossAssetVO.encode(message.margincrossassetvo, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim();                    if (message.marginisolatedassetvo != null && Object.hasOwnProperty.call(message, "marginisolatedassetvo"))                        $root.market.v2.trade.MarginIsolatedAssetVO.encode(message.marginisolatedassetvo, writer.uint32(/* id 36, wireType 2 =*/290).fork()).ldelim();                    if (message.newlistingpair != null && Object.hasOwnProperty.call(message, "newlistingpair"))                        $root.market.v2.trade.NewListingPair.encode(message.newlistingpair, writer.uint32(/* id 37, wireType 2 =*/298).fork()).ldelim();                    if (message.chgdistributions != null && Object.hasOwnProperty.call(message, "chgdistributions"))                        $root.market.v2.trade.Chgdistributions.encode(message.chgdistributions, writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim();                    if (message.marketzones != null && Object.hasOwnProperty.call(message, "marketzones"))                        $root.market.v2.trade.MarketZones.encode(message.marketzones, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim();                    if (message.klineorders != null && Object.hasOwnProperty.call(message, "klineorders"))                        $root.market.v2.trade.KlineOrders.encode(message.klineorders, writer.uint32(/* id 40, wireType 2 =*/322).fork()).ldelim();                    if (message.notificationpush != null && Object.hasOwnProperty.call(message, "notificationpush"))                        $root.market.v2.trade.NotificationPush.encode(message.notificationpush, writer.uint32(/* id 41, wireType 2 =*/330).fork()).ldelim();                    if (message.tradehotlisting != null && Object.hasOwnProperty.call(message, "tradehotlisting"))                        $root.market.v2.trade.TradeHotListing.encode(message.tradehotlisting, writer.uint32(/* id 42, wireType 2 =*/338).fork()).ldelim();                    if (message.ctcgoingordernum != null && Object.hasOwnProperty.call(message, "ctcgoingordernum"))                        $root.market.v2.trade.CtcGoingOrderNum.encode(message.ctcgoingordernum, writer.uint32(/* id 43, wireType 2 =*/346).fork()).ldelim();                    if (message.multichange != null && Object.hasOwnProperty.call(message, "multichange"))                        $root.market.v2.trade.MultiChange.encode(message.multichange, writer.uint32(/* id 44, wireType 2 =*/354).fork()).ldelim();                    if (message.heatmap != null && Object.hasOwnProperty.call(message, "heatmap"))                        $root.market.v2.trade.Heatmap.encode(message.heatmap, writer.uint32(/* id 45, wireType 2 =*/362).fork()).ldelim();                    if (message.downpair != null && Object.hasOwnProperty.call(message, "downpair"))                        $root.market.v2.trade.DownPair.encode(message.downpair, writer.uint32(/* id 46, wireType 2 =*/370).fork()).ldelim();                    if (message.heatvol != null && Object.hasOwnProperty.call(message, "heatvol"))                        $root.market.v2.trade.HeatVol.encode(message.heatvol, writer.uint32(/* id 47, wireType 2 =*/378).fork()).ldelim();                    if (message.currencyrate != null && Object.hasOwnProperty.call(message, "currencyrate"))                        $root.market.v2.trade.CurrencyRate.encode(message.currencyrate, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified Response message, length delimited. Does not implicitly {@link market.v2.trade.Response.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.Response                 * @static                 * @param {market.v2.trade.IResponse} message Response message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Response.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a Response message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.Response                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.Response} Response                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Response.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.Response();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.code = reader.int32();                                break;                            }                        case 2: {                                message.msg = reader.string();                                break;                            }                        case 3: {                                message.status = reader.string();                                break;                            }                        case 4: {                                message.ts = reader.int64();                                break;                            }                        case 5: {                                message.ch = reader.string();                                break;                            }                        case 21: {                                message.klinelist = $root.market.v2.trade.KlineList.decode(reader, reader.uint32());                                break;                            }                        case 22: {                                message.tradedepthvo = $root.market.v2.trade.TradeDepthVO.decode(reader, reader.uint32());                                break;                            }                        case 23: {                                message.tradedetaillist = $root.market.v2.trade.TradeDetailList.decode(reader, reader.uint32());                                break;                            }                        case 24: {                                message.tradeareapair = $root.market.v2.trade.TradeAreaPair.decode(reader, reader.uint32());                                break;                            }                        case 25: {                                message.mainpair = $root.market.v2.trade.MainPair.decode(reader, reader.uint32());                                break;                            }                        case 26: {                                message.recommendpair = $root.market.v2.trade.RecommendPair.decode(reader, reader.uint32());                                break;                            }                        case 27: {                                message.uppair = $root.market.v2.trade.UpPair.decode(reader, reader.uint32());                                break;                            }                        case 28: {                                message.amtpair = $root.market.v2.trade.AmtPair.decode(reader, reader.uint32());                                break;                            }                        case 29: {                                message.starpair = $root.market.v2.trade.StarPair.decode(reader, reader.uint32());                                break;                            }                        case 30: {                                message.tradetickervo = $root.market.v2.trade.TradeTickerVO.decode(reader, reader.uint32());                                break;                            }                        case 31: {                                message.entrustvo = $root.market.v2.trade.EntrustVO.decode(reader, reader.uint32());                                break;                            }                        case 32: {                                message.userassetbalance = $root.market.v2.trade.UserAssetBalance.decode(reader, reader.uint32());                                break;                            }                        case 33: {                                message.markettickerlist = $root.market.v2.trade.MarketTickerList.decode(reader, reader.uint32());                                break;                            }                        case 35: {                                message.margincrossassetvo = $root.market.v2.trade.MarginCrossAssetVO.decode(reader, reader.uint32());                                break;                            }                        case 36: {                                message.marginisolatedassetvo = $root.market.v2.trade.MarginIsolatedAssetVO.decode(reader, reader.uint32());                                break;                            }                        case 37: {                                message.newlistingpair = $root.market.v2.trade.NewListingPair.decode(reader, reader.uint32());                                break;                            }                        case 38: {                                message.chgdistributions = $root.market.v2.trade.Chgdistributions.decode(reader, reader.uint32());                                break;                            }                        case 39: {                                message.marketzones = $root.market.v2.trade.MarketZones.decode(reader, reader.uint32());                                break;                            }                        case 40: {                                message.klineorders = $root.market.v2.trade.KlineOrders.decode(reader, reader.uint32());                                break;                            }                        case 41: {                                message.notificationpush = $root.market.v2.trade.NotificationPush.decode(reader, reader.uint32());                                break;                            }                        case 42: {                                message.tradehotlisting = $root.market.v2.trade.TradeHotListing.decode(reader, reader.uint32());                                break;                            }                        case 43: {                                message.ctcgoingordernum = $root.market.v2.trade.CtcGoingOrderNum.decode(reader, reader.uint32());                                break;                            }                        case 44: {                                message.multichange = $root.market.v2.trade.MultiChange.decode(reader, reader.uint32());                                break;                            }                        case 45: {                                message.heatmap = $root.market.v2.trade.Heatmap.decode(reader, reader.uint32());                                break;                            }                        case 46: {                                message.downpair = $root.market.v2.trade.DownPair.decode(reader, reader.uint32());                                break;                            }                        case 47: {                                message.heatvol = $root.market.v2.trade.HeatVol.decode(reader, reader.uint32());                                break;                            }                        case 48: {                                message.currencyrate = $root.market.v2.trade.CurrencyRate.decode(reader, reader.uint32());                                break;                            }                        case 34: {                                message.marketmonit = $root.market.v2.trade.MarketMonit.decode(reader, reader.uint32());                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a Response message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.Response                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.Response} Response                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Response.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a Response message.                 * @function verify                 * @memberof market.v2.trade.Response                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                Response.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.code != null && message.hasOwnProperty("code"))                        if (!$util.isInteger(message.code))                            return "code: integer expected";                    if (message.msg != null && message.hasOwnProperty("msg"))                        if (!$util.isString(message.msg))                            return "msg: string expected";                    if (message.status != null && message.hasOwnProperty("status"))                        if (!$util.isString(message.status))                            return "status: string expected";                    if (message.ts != null && message.hasOwnProperty("ts"))                        if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))                            return "ts: integer|Long expected";                    if (message.ch != null && message.hasOwnProperty("ch"))                        if (!$util.isString(message.ch))                            return "ch: string expected";                    if (message.klinelist != null && message.hasOwnProperty("klinelist")) {                        var error = $root.market.v2.trade.KlineList.verify(message.klinelist);                        if (error)                            return "klinelist." + error;                    }                    if (message.tradedepthvo != null && message.hasOwnProperty("tradedepthvo")) {                        var error = $root.market.v2.trade.TradeDepthVO.verify(message.tradedepthvo);                        if (error)                            return "tradedepthvo." + error;                    }                    if (message.tradedetaillist != null && message.hasOwnProperty("tradedetaillist")) {                        var error = $root.market.v2.trade.TradeDetailList.verify(message.tradedetaillist);                        if (error)                            return "tradedetaillist." + error;                    }                    if (message.tradeareapair != null && message.hasOwnProperty("tradeareapair")) {                        var error = $root.market.v2.trade.TradeAreaPair.verify(message.tradeareapair);                        if (error)                            return "tradeareapair." + error;                    }                    if (message.mainpair != null && message.hasOwnProperty("mainpair")) {                        var error = $root.market.v2.trade.MainPair.verify(message.mainpair);                        if (error)                            return "mainpair." + error;                    }                    if (message.recommendpair != null && message.hasOwnProperty("recommendpair")) {                        var error = $root.market.v2.trade.RecommendPair.verify(message.recommendpair);                        if (error)                            return "recommendpair." + error;                    }                    if (message.uppair != null && message.hasOwnProperty("uppair")) {                        var error = $root.market.v2.trade.UpPair.verify(message.uppair);                        if (error)                            return "uppair." + error;                    }                    if (message.amtpair != null && message.hasOwnProperty("amtpair")) {                        var error = $root.market.v2.trade.AmtPair.verify(message.amtpair);                        if (error)                            return "amtpair." + error;                    }                    if (message.starpair != null && message.hasOwnProperty("starpair")) {                        var error = $root.market.v2.trade.StarPair.verify(message.starpair);                        if (error)                            return "starpair." + error;                    }                    if (message.tradetickervo != null && message.hasOwnProperty("tradetickervo")) {                        var error = $root.market.v2.trade.TradeTickerVO.verify(message.tradetickervo);                        if (error)                            return "tradetickervo." + error;                    }                    if (message.entrustvo != null && message.hasOwnProperty("entrustvo")) {                        var error = $root.market.v2.trade.EntrustVO.verify(message.entrustvo);                        if (error)                            return "entrustvo." + error;                    }                    if (message.userassetbalance != null && message.hasOwnProperty("userassetbalance")) {                        var error = $root.market.v2.trade.UserAssetBalance.verify(message.userassetbalance);                        if (error)                            return "userassetbalance." + error;                    }                    if (message.markettickerlist != null && message.hasOwnProperty("markettickerlist")) {                        var error = $root.market.v2.trade.MarketTickerList.verify(message.markettickerlist);                        if (error)                            return "markettickerlist." + error;                    }                    if (message.margincrossassetvo != null && message.hasOwnProperty("margincrossassetvo")) {                        var error = $root.market.v2.trade.MarginCrossAssetVO.verify(message.margincrossassetvo);                        if (error)                            return "margincrossassetvo." + error;                    }                    if (message.marginisolatedassetvo != null && message.hasOwnProperty("marginisolatedassetvo")) {                        var error = $root.market.v2.trade.MarginIsolatedAssetVO.verify(message.marginisolatedassetvo);                        if (error)                            return "marginisolatedassetvo." + error;                    }                    if (message.newlistingpair != null && message.hasOwnProperty("newlistingpair")) {                        var error = $root.market.v2.trade.NewListingPair.verify(message.newlistingpair);                        if (error)                            return "newlistingpair." + error;                    }                    if (message.chgdistributions != null && message.hasOwnProperty("chgdistributions")) {                        var error = $root.market.v2.trade.Chgdistributions.verify(message.chgdistributions);                        if (error)                            return "chgdistributions." + error;                    }                    if (message.marketzones != null && message.hasOwnProperty("marketzones")) {                        var error = $root.market.v2.trade.MarketZones.verify(message.marketzones);                        if (error)                            return "marketzones." + error;                    }                    if (message.klineorders != null && message.hasOwnProperty("klineorders")) {                        var error = $root.market.v2.trade.KlineOrders.verify(message.klineorders);                        if (error)                            return "klineorders." + error;                    }                    if (message.notificationpush != null && message.hasOwnProperty("notificationpush")) {                        var error = $root.market.v2.trade.NotificationPush.verify(message.notificationpush);                        if (error)                            return "notificationpush." + error;                    }                    if (message.tradehotlisting != null && message.hasOwnProperty("tradehotlisting")) {                        var error = $root.market.v2.trade.TradeHotListing.verify(message.tradehotlisting);                        if (error)                            return "tradehotlisting." + error;                    }                    if (message.ctcgoingordernum != null && message.hasOwnProperty("ctcgoingordernum")) {                        var error = $root.market.v2.trade.CtcGoingOrderNum.verify(message.ctcgoingordernum);                        if (error)                            return "ctcgoingordernum." + error;                    }                    if (message.multichange != null && message.hasOwnProperty("multichange")) {                        var error = $root.market.v2.trade.MultiChange.verify(message.multichange);                        if (error)                            return "multichange." + error;                    }                    if (message.heatmap != null && message.hasOwnProperty("heatmap")) {                        var error = $root.market.v2.trade.Heatmap.verify(message.heatmap);                        if (error)                            return "heatmap." + error;                    }                    if (message.downpair != null && message.hasOwnProperty("downpair")) {                        var error = $root.market.v2.trade.DownPair.verify(message.downpair);                        if (error)                            return "downpair." + error;                    }                    if (message.heatvol != null && message.hasOwnProperty("heatvol")) {                        var error = $root.market.v2.trade.HeatVol.verify(message.heatvol);                        if (error)                            return "heatvol." + error;                    }                    if (message.currencyrate != null && message.hasOwnProperty("currencyrate")) {                        var error = $root.market.v2.trade.CurrencyRate.verify(message.currencyrate);                        if (error)                            return "currencyrate." + error;                    }                    if (message.marketmonit != null && message.hasOwnProperty("marketmonit")) {                        var error = $root.market.v2.trade.MarketMonit.verify(message.marketmonit);                        if (error)                            return "marketmonit." + error;                    }                    return null;                };                /**                 * Creates a Response message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.Response                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.Response} Response                 */                Response.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.Response)                        return object;                    var message = new $root.market.v2.trade.Response();                    if (object.code != null)                        message.code = object.code | 0;                    if (object.msg != null)                        message.msg = String(object.msg);                    if (object.status != null)                        message.status = String(object.status);                    if (object.ts != null)                        if ($util.Long)                            (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;                        else if (typeof object.ts === "string")                            message.ts = parseInt(object.ts, 10);                        else if (typeof object.ts === "number")                            message.ts = object.ts;                        else if (typeof object.ts === "object")                            message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();                    if (object.ch != null)                        message.ch = String(object.ch);                    if (object.klinelist != null) {                        if (typeof object.klinelist !== "object")                            throw TypeError(".market.v2.trade.Response.klinelist: object expected");                        message.klinelist = $root.market.v2.trade.KlineList.fromObject(object.klinelist);                    }                    if (object.tradedepthvo != null) {                        if (typeof object.tradedepthvo !== "object")                            throw TypeError(".market.v2.trade.Response.tradedepthvo: object expected");                        message.tradedepthvo = $root.market.v2.trade.TradeDepthVO.fromObject(object.tradedepthvo);                    }                    if (object.tradedetaillist != null) {                        if (typeof object.tradedetaillist !== "object")                            throw TypeError(".market.v2.trade.Response.tradedetaillist: object expected");                        message.tradedetaillist = $root.market.v2.trade.TradeDetailList.fromObject(object.tradedetaillist);                    }                    if (object.tradeareapair != null) {                        if (typeof object.tradeareapair !== "object")                            throw TypeError(".market.v2.trade.Response.tradeareapair: object expected");                        message.tradeareapair = $root.market.v2.trade.TradeAreaPair.fromObject(object.tradeareapair);                    }                    if (object.mainpair != null) {                        if (typeof object.mainpair !== "object")                            throw TypeError(".market.v2.trade.Response.mainpair: object expected");                        message.mainpair = $root.market.v2.trade.MainPair.fromObject(object.mainpair);                    }                    if (object.recommendpair != null) {                        if (typeof object.recommendpair !== "object")                            throw TypeError(".market.v2.trade.Response.recommendpair: object expected");                        message.recommendpair = $root.market.v2.trade.RecommendPair.fromObject(object.recommendpair);                    }                    if (object.uppair != null) {                        if (typeof object.uppair !== "object")                            throw TypeError(".market.v2.trade.Response.uppair: object expected");                        message.uppair = $root.market.v2.trade.UpPair.fromObject(object.uppair);                    }                    if (object.amtpair != null) {                        if (typeof object.amtpair !== "object")                            throw TypeError(".market.v2.trade.Response.amtpair: object expected");                        message.amtpair = $root.market.v2.trade.AmtPair.fromObject(object.amtpair);                    }                    if (object.starpair != null) {                        if (typeof object.starpair !== "object")                            throw TypeError(".market.v2.trade.Response.starpair: object expected");                        message.starpair = $root.market.v2.trade.StarPair.fromObject(object.starpair);                    }                    if (object.tradetickervo != null) {                        if (typeof object.tradetickervo !== "object")                            throw TypeError(".market.v2.trade.Response.tradetickervo: object expected");                        message.tradetickervo = $root.market.v2.trade.TradeTickerVO.fromObject(object.tradetickervo);                    }                    if (object.entrustvo != null) {                        if (typeof object.entrustvo !== "object")                            throw TypeError(".market.v2.trade.Response.entrustvo: object expected");                        message.entrustvo = $root.market.v2.trade.EntrustVO.fromObject(object.entrustvo);                    }                    if (object.userassetbalance != null) {                        if (typeof object.userassetbalance !== "object")                            throw TypeError(".market.v2.trade.Response.userassetbalance: object expected");                        message.userassetbalance = $root.market.v2.trade.UserAssetBalance.fromObject(object.userassetbalance);                    }                    if (object.markettickerlist != null) {                        if (typeof object.markettickerlist !== "object")                            throw TypeError(".market.v2.trade.Response.markettickerlist: object expected");                        message.markettickerlist = $root.market.v2.trade.MarketTickerList.fromObject(object.markettickerlist);                    }                    if (object.margincrossassetvo != null) {                        if (typeof object.margincrossassetvo !== "object")                            throw TypeError(".market.v2.trade.Response.margincrossassetvo: object expected");                        message.margincrossassetvo = $root.market.v2.trade.MarginCrossAssetVO.fromObject(object.margincrossassetvo);                    }                    if (object.marginisolatedassetvo != null) {                        if (typeof object.marginisolatedassetvo !== "object")                            throw TypeError(".market.v2.trade.Response.marginisolatedassetvo: object expected");                        message.marginisolatedassetvo = $root.market.v2.trade.MarginIsolatedAssetVO.fromObject(object.marginisolatedassetvo);                    }                    if (object.newlistingpair != null) {                        if (typeof object.newlistingpair !== "object")                            throw TypeError(".market.v2.trade.Response.newlistingpair: object expected");                        message.newlistingpair = $root.market.v2.trade.NewListingPair.fromObject(object.newlistingpair);                    }                    if (object.chgdistributions != null) {                        if (typeof object.chgdistributions !== "object")                            throw TypeError(".market.v2.trade.Response.chgdistributions: object expected");                        message.chgdistributions = $root.market.v2.trade.Chgdistributions.fromObject(object.chgdistributions);                    }                    if (object.marketzones != null) {                        if (typeof object.marketzones !== "object")                            throw TypeError(".market.v2.trade.Response.marketzones: object expected");                        message.marketzones = $root.market.v2.trade.MarketZones.fromObject(object.marketzones);                    }                    if (object.klineorders != null) {                        if (typeof object.klineorders !== "object")                            throw TypeError(".market.v2.trade.Response.klineorders: object expected");                        message.klineorders = $root.market.v2.trade.KlineOrders.fromObject(object.klineorders);                    }                    if (object.notificationpush != null) {                        if (typeof object.notificationpush !== "object")                            throw TypeError(".market.v2.trade.Response.notificationpush: object expected");                        message.notificationpush = $root.market.v2.trade.NotificationPush.fromObject(object.notificationpush);                    }                    if (object.tradehotlisting != null) {                        if (typeof object.tradehotlisting !== "object")                            throw TypeError(".market.v2.trade.Response.tradehotlisting: object expected");                        message.tradehotlisting = $root.market.v2.trade.TradeHotListing.fromObject(object.tradehotlisting);                    }                    if (object.ctcgoingordernum != null) {                        if (typeof object.ctcgoingordernum !== "object")                            throw TypeError(".market.v2.trade.Response.ctcgoingordernum: object expected");                        message.ctcgoingordernum = $root.market.v2.trade.CtcGoingOrderNum.fromObject(object.ctcgoingordernum);                    }                    if (object.multichange != null) {                        if (typeof object.multichange !== "object")                            throw TypeError(".market.v2.trade.Response.multichange: object expected");                        message.multichange = $root.market.v2.trade.MultiChange.fromObject(object.multichange);                    }                    if (object.heatmap != null) {                        if (typeof object.heatmap !== "object")                            throw TypeError(".market.v2.trade.Response.heatmap: object expected");                        message.heatmap = $root.market.v2.trade.Heatmap.fromObject(object.heatmap);                    }                    if (object.downpair != null) {                        if (typeof object.downpair !== "object")                            throw TypeError(".market.v2.trade.Response.downpair: object expected");                        message.downpair = $root.market.v2.trade.DownPair.fromObject(object.downpair);                    }                    if (object.heatvol != null) {                        if (typeof object.heatvol !== "object")                            throw TypeError(".market.v2.trade.Response.heatvol: object expected");                        message.heatvol = $root.market.v2.trade.HeatVol.fromObject(object.heatvol);                    }                    if (object.currencyrate != null) {                        if (typeof object.currencyrate !== "object")                            throw TypeError(".market.v2.trade.Response.currencyrate: object expected");                        message.currencyrate = $root.market.v2.trade.CurrencyRate.fromObject(object.currencyrate);                    }                    if (object.marketmonit != null) {                        if (typeof object.marketmonit !== "object")                            throw TypeError(".market.v2.trade.Response.marketmonit: object expected");                        message.marketmonit = $root.market.v2.trade.MarketMonit.fromObject(object.marketmonit);                    }                    return message;                };                /**                 * Creates a plain object from a Response message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.Response                 * @static                 * @param {market.v2.trade.Response} message Response                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                Response.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.code = 0;                        object.msg = "";                        object.status = "";                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.ts = options.longs === String ? "0" : 0;                        object.ch = "";                        object.klinelist = null;                        object.tradedepthvo = null;                        object.tradedetaillist = null;                        object.tradeareapair = null;                        object.mainpair = null;                        object.recommendpair = null;                        object.uppair = null;                        object.amtpair = null;                        object.starpair = null;                        object.tradetickervo = null;                        object.entrustvo = null;                        object.userassetbalance = null;                        object.markettickerlist = null;                        object.marketmonit = null;                        object.margincrossassetvo = null;                        object.marginisolatedassetvo = null;                        object.newlistingpair = null;                        object.chgdistributions = null;                        object.marketzones = null;                        object.klineorders = null;                        object.notificationpush = null;                        object.tradehotlisting = null;                        object.ctcgoingordernum = null;                        object.multichange = null;                        object.heatmap = null;                        object.downpair = null;                        object.heatvol = null;                        object.currencyrate = null;                    }                    if (message.code != null && message.hasOwnProperty("code"))                        object.code = message.code;                    if (message.msg != null && message.hasOwnProperty("msg"))                        object.msg = message.msg;                    if (message.status != null && message.hasOwnProperty("status"))                        object.status = message.status;                    if (message.ts != null && message.hasOwnProperty("ts"))                        if (typeof message.ts === "number")                            object.ts = options.longs === String ? String(message.ts) : message.ts;                        else                            object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;                    if (message.ch != null && message.hasOwnProperty("ch"))                        object.ch = message.ch;                    if (message.klinelist != null && message.hasOwnProperty("klinelist"))                        object.klinelist = $root.market.v2.trade.KlineList.toObject(message.klinelist, options);                    if (message.tradedepthvo != null && message.hasOwnProperty("tradedepthvo"))                        object.tradedepthvo = $root.market.v2.trade.TradeDepthVO.toObject(message.tradedepthvo, options);                    if (message.tradedetaillist != null && message.hasOwnProperty("tradedetaillist"))                        object.tradedetaillist = $root.market.v2.trade.TradeDetailList.toObject(message.tradedetaillist, options);                    if (message.tradeareapair != null && message.hasOwnProperty("tradeareapair"))                        object.tradeareapair = $root.market.v2.trade.TradeAreaPair.toObject(message.tradeareapair, options);                    if (message.mainpair != null && message.hasOwnProperty("mainpair"))                        object.mainpair = $root.market.v2.trade.MainPair.toObject(message.mainpair, options);                    if (message.recommendpair != null && message.hasOwnProperty("recommendpair"))                        object.recommendpair = $root.market.v2.trade.RecommendPair.toObject(message.recommendpair, options);                    if (message.uppair != null && message.hasOwnProperty("uppair"))                        object.uppair = $root.market.v2.trade.UpPair.toObject(message.uppair, options);                    if (message.amtpair != null && message.hasOwnProperty("amtpair"))                        object.amtpair = $root.market.v2.trade.AmtPair.toObject(message.amtpair, options);                    if (message.starpair != null && message.hasOwnProperty("starpair"))                        object.starpair = $root.market.v2.trade.StarPair.toObject(message.starpair, options);                    if (message.tradetickervo != null && message.hasOwnProperty("tradetickervo"))                        object.tradetickervo = $root.market.v2.trade.TradeTickerVO.toObject(message.tradetickervo, options);                    if (message.entrustvo != null && message.hasOwnProperty("entrustvo"))                        object.entrustvo = $root.market.v2.trade.EntrustVO.toObject(message.entrustvo, options);                    if (message.userassetbalance != null && message.hasOwnProperty("userassetbalance"))                        object.userassetbalance = $root.market.v2.trade.UserAssetBalance.toObject(message.userassetbalance, options);                    if (message.markettickerlist != null && message.hasOwnProperty("markettickerlist"))                        object.markettickerlist = $root.market.v2.trade.MarketTickerList.toObject(message.markettickerlist, options);                    if (message.marketmonit != null && message.hasOwnProperty("marketmonit"))                        object.marketmonit = $root.market.v2.trade.MarketMonit.toObject(message.marketmonit, options);                    if (message.margincrossassetvo != null && message.hasOwnProperty("margincrossassetvo"))                        object.margincrossassetvo = $root.market.v2.trade.MarginCrossAssetVO.toObject(message.margincrossassetvo, options);                    if (message.marginisolatedassetvo != null && message.hasOwnProperty("marginisolatedassetvo"))                        object.marginisolatedassetvo = $root.market.v2.trade.MarginIsolatedAssetVO.toObject(message.marginisolatedassetvo, options);                    if (message.newlistingpair != null && message.hasOwnProperty("newlistingpair"))                        object.newlistingpair = $root.market.v2.trade.NewListingPair.toObject(message.newlistingpair, options);                    if (message.chgdistributions != null && message.hasOwnProperty("chgdistributions"))                        object.chgdistributions = $root.market.v2.trade.Chgdistributions.toObject(message.chgdistributions, options);                    if (message.marketzones != null && message.hasOwnProperty("marketzones"))                        object.marketzones = $root.market.v2.trade.MarketZones.toObject(message.marketzones, options);                    if (message.klineorders != null && message.hasOwnProperty("klineorders"))                        object.klineorders = $root.market.v2.trade.KlineOrders.toObject(message.klineorders, options);                    if (message.notificationpush != null && message.hasOwnProperty("notificationpush"))                        object.notificationpush = $root.market.v2.trade.NotificationPush.toObject(message.notificationpush, options);                    if (message.tradehotlisting != null && message.hasOwnProperty("tradehotlisting"))                        object.tradehotlisting = $root.market.v2.trade.TradeHotListing.toObject(message.tradehotlisting, options);                    if (message.ctcgoingordernum != null && message.hasOwnProperty("ctcgoingordernum"))                        object.ctcgoingordernum = $root.market.v2.trade.CtcGoingOrderNum.toObject(message.ctcgoingordernum, options);                    if (message.multichange != null && message.hasOwnProperty("multichange"))                        object.multichange = $root.market.v2.trade.MultiChange.toObject(message.multichange, options);                    if (message.heatmap != null && message.hasOwnProperty("heatmap"))                        object.heatmap = $root.market.v2.trade.Heatmap.toObject(message.heatmap, options);                    if (message.downpair != null && message.hasOwnProperty("downpair"))                        object.downpair = $root.market.v2.trade.DownPair.toObject(message.downpair, options);                    if (message.heatvol != null && message.hasOwnProperty("heatvol"))                        object.heatvol = $root.market.v2.trade.HeatVol.toObject(message.heatvol, options);                    if (message.currencyrate != null && message.hasOwnProperty("currencyrate"))                        object.currencyrate = $root.market.v2.trade.CurrencyRate.toObject(message.currencyrate, options);                    return object;                };                /**                 * Converts this Response to JSON.                 * @function toJSON                 * @memberof market.v2.trade.Response                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                Response.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for Response                 * @function getTypeUrl                 * @memberof market.v2.trade.Response                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                Response.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.Response";                };                return Response;            })();            trade.KlineList = (function() {                /**                 * Properties of a KlineList.                 * @memberof market.v2.trade                 * @interface IKlineList                 */                /**                 * Constructs a new KlineList.                 * @memberof market.v2.trade                 * @classdesc Represents a KlineList.                 * @implements IKlineList                 * @constructor                 * @param {market.v2.trade.IKlineList=} [properties] Properties to set                 */                function KlineList(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new KlineList instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {market.v2.trade.IKlineList=} [properties] Properties to set                 * @returns {market.v2.trade.KlineList} KlineList instance                 */                KlineList.create = function create(properties) {                    return new KlineList(properties);                };                /**                 * Encodes the specified KlineList message. Does not implicitly {@link market.v2.trade.KlineList.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {market.v2.trade.IKlineList} message KlineList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                KlineList.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified KlineList message, length delimited. Does not implicitly {@link market.v2.trade.KlineList.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {market.v2.trade.IKlineList} message KlineList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                KlineList.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a KlineList message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.KlineList} KlineList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                KlineList.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.KlineList();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a KlineList message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.KlineList} KlineList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                KlineList.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a KlineList message.                 * @function verify                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                KlineList.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a KlineList message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.KlineList} KlineList                 */                KlineList.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.KlineList)                        return object;                    return new $root.market.v2.trade.KlineList();                };                /**                 * Creates a plain object from a KlineList message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {market.v2.trade.KlineList} message KlineList                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                KlineList.toObject = function toObject() {                    return {};                };                /**                 * Converts this KlineList to JSON.                 * @function toJSON                 * @memberof market.v2.trade.KlineList                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                KlineList.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for KlineList                 * @function getTypeUrl                 * @memberof market.v2.trade.KlineList                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                KlineList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.KlineList";                };                return KlineList;            })();            trade.TradeDepthVO = (function() {                /**                 * Properties of a TradeDepthVO.                 * @memberof market.v2.trade                 * @interface ITradeDepthVO                 * @property {market.v2.trade.TradeDepthVO.IBids|null} [bids] TradeDepthVO bids                 * @property {market.v2.trade.TradeDepthVO.IAsks|null} [asks] TradeDepthVO asks                 * @property {string|null} [last] TradeDepthVO last                 * @property {string|null} [open] TradeDepthVO open                 * @property {string|null} [cny] TradeDepthVO cny                 * @property {string|null} [netvalue] TradeDepthVO netvalue                 * @property {string|null} [buyorsellcnyprice] TradeDepthVO buyorsellcnyprice                 * @property {boolean|null} [isfiatconvert] TradeDepthVO isfiatconvert                 * @property {boolean|null} [isrisktip] TradeDepthVO isrisktip                 */                /**                 * Constructs a new TradeDepthVO.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeDepthVO.                 * @implements ITradeDepthVO                 * @constructor                 * @param {market.v2.trade.ITradeDepthVO=} [properties] Properties to set                 */                function TradeDepthVO(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeDepthVO bids.                 * @member {market.v2.trade.TradeDepthVO.IBids|null|undefined} bids                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.bids = null;                /**                 * TradeDepthVO asks.                 * @member {market.v2.trade.TradeDepthVO.IAsks|null|undefined} asks                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.asks = null;                /**                 * TradeDepthVO last.                 * @member {string} last                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.last = "";                /**                 * TradeDepthVO open.                 * @member {string} open                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.open = "";                /**                 * TradeDepthVO cny.                 * @member {string} cny                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.cny = "";                /**                 * TradeDepthVO netvalue.                 * @member {string} netvalue                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.netvalue = "";                /**                 * TradeDepthVO buyorsellcnyprice.                 * @member {string} buyorsellcnyprice                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.buyorsellcnyprice = "";                /**                 * TradeDepthVO isfiatconvert.                 * @member {boolean} isfiatconvert                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.isfiatconvert = false;                /**                 * TradeDepthVO isrisktip.                 * @member {boolean} isrisktip                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 */                TradeDepthVO.prototype.isrisktip = false;                /**                 * Creates a new TradeDepthVO instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {market.v2.trade.ITradeDepthVO=} [properties] Properties to set                 * @returns {market.v2.trade.TradeDepthVO} TradeDepthVO instance                 */                TradeDepthVO.create = function create(properties) {                    return new TradeDepthVO(properties);                };                /**                 * Encodes the specified TradeDepthVO message. Does not implicitly {@link market.v2.trade.TradeDepthVO.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {market.v2.trade.ITradeDepthVO} message TradeDepthVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDepthVO.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.bids != null && Object.hasOwnProperty.call(message, "bids"))                        $root.market.v2.trade.TradeDepthVO.Bids.encode(message.bids, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    if (message.asks != null && Object.hasOwnProperty.call(message, "asks"))                        $root.market.v2.trade.TradeDepthVO.Asks.encode(message.asks, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.last);                    if (message.open != null && Object.hasOwnProperty.call(message, "open"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.open);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.cny);                    if (message.netvalue != null && Object.hasOwnProperty.call(message, "netvalue"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.netvalue);                    if (message.buyorsellcnyprice != null && Object.hasOwnProperty.call(message, "buyorsellcnyprice"))                        writer.uint32(/* id 7, wireType 2 =*/58).string(message.buyorsellcnyprice);                    if (message.isfiatconvert != null && Object.hasOwnProperty.call(message, "isfiatconvert"))                        writer.uint32(/* id 8, wireType 0 =*/64).bool(message.isfiatconvert);                    if (message.isrisktip != null && Object.hasOwnProperty.call(message, "isrisktip"))                        writer.uint32(/* id 9, wireType 0 =*/72).bool(message.isrisktip);                    return writer;                };                /**                 * Encodes the specified TradeDepthVO message, length delimited. Does not implicitly {@link market.v2.trade.TradeDepthVO.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {market.v2.trade.ITradeDepthVO} message TradeDepthVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDepthVO.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeDepthVO message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeDepthVO} TradeDepthVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDepthVO.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDepthVO();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.bids = $root.market.v2.trade.TradeDepthVO.Bids.decode(reader, reader.uint32());                                break;                            }                        case 2: {                                message.asks = $root.market.v2.trade.TradeDepthVO.Asks.decode(reader, reader.uint32());                                break;                            }                        case 3: {                                message.last = reader.string();                                break;                            }                        case 4: {                                message.open = reader.string();                                break;                            }                        case 5: {                                message.cny = reader.string();                                break;                            }                        case 6: {                                message.netvalue = reader.string();                                break;                            }                        case 7: {                                message.buyorsellcnyprice = reader.string();                                break;                            }                        case 8: {                                message.isfiatconvert = reader.bool();                                break;                            }                        case 9: {                                message.isrisktip = reader.bool();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeDepthVO message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeDepthVO} TradeDepthVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDepthVO.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeDepthVO message.                 * @function verify                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeDepthVO.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.bids != null && message.hasOwnProperty("bids")) {                        var error = $root.market.v2.trade.TradeDepthVO.Bids.verify(message.bids);                        if (error)                            return "bids." + error;                    }                    if (message.asks != null && message.hasOwnProperty("asks")) {                        var error = $root.market.v2.trade.TradeDepthVO.Asks.verify(message.asks);                        if (error)                            return "asks." + error;                    }                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.open != null && message.hasOwnProperty("open"))                        if (!$util.isString(message.open))                            return "open: string expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.netvalue != null && message.hasOwnProperty("netvalue"))                        if (!$util.isString(message.netvalue))                            return "netvalue: string expected";                    if (message.buyorsellcnyprice != null && message.hasOwnProperty("buyorsellcnyprice"))                        if (!$util.isString(message.buyorsellcnyprice))                            return "buyorsellcnyprice: string expected";                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        if (typeof message.isfiatconvert !== "boolean")                            return "isfiatconvert: boolean expected";                    if (message.isrisktip != null && message.hasOwnProperty("isrisktip"))                        if (typeof message.isrisktip !== "boolean")                            return "isrisktip: boolean expected";                    return null;                };                /**                 * Creates a TradeDepthVO message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeDepthVO} TradeDepthVO                 */                TradeDepthVO.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeDepthVO)                        return object;                    var message = new $root.market.v2.trade.TradeDepthVO();                    if (object.bids != null) {                        if (typeof object.bids !== "object")                            throw TypeError(".market.v2.trade.TradeDepthVO.bids: object expected");                        message.bids = $root.market.v2.trade.TradeDepthVO.Bids.fromObject(object.bids);                    }                    if (object.asks != null) {                        if (typeof object.asks !== "object")                            throw TypeError(".market.v2.trade.TradeDepthVO.asks: object expected");                        message.asks = $root.market.v2.trade.TradeDepthVO.Asks.fromObject(object.asks);                    }                    if (object.last != null)                        message.last = String(object.last);                    if (object.open != null)                        message.open = String(object.open);                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.netvalue != null)                        message.netvalue = String(object.netvalue);                    if (object.buyorsellcnyprice != null)                        message.buyorsellcnyprice = String(object.buyorsellcnyprice);                    if (object.isfiatconvert != null)                        message.isfiatconvert = Boolean(object.isfiatconvert);                    if (object.isrisktip != null)                        message.isrisktip = Boolean(object.isrisktip);                    return message;                };                /**                 * Creates a plain object from a TradeDepthVO message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {market.v2.trade.TradeDepthVO} message TradeDepthVO                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeDepthVO.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.bids = null;                        object.asks = null;                        object.last = "";                        object.open = "";                        object.cny = "";                        object.netvalue = "";                        object.buyorsellcnyprice = "";                        object.isfiatconvert = false;                        object.isrisktip = false;                    }                    if (message.bids != null && message.hasOwnProperty("bids"))                        object.bids = $root.market.v2.trade.TradeDepthVO.Bids.toObject(message.bids, options);                    if (message.asks != null && message.hasOwnProperty("asks"))                        object.asks = $root.market.v2.trade.TradeDepthVO.Asks.toObject(message.asks, options);                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.open != null && message.hasOwnProperty("open"))                        object.open = message.open;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.netvalue != null && message.hasOwnProperty("netvalue"))                        object.netvalue = message.netvalue;                    if (message.buyorsellcnyprice != null && message.hasOwnProperty("buyorsellcnyprice"))                        object.buyorsellcnyprice = message.buyorsellcnyprice;                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        object.isfiatconvert = message.isfiatconvert;                    if (message.isrisktip != null && message.hasOwnProperty("isrisktip"))                        object.isrisktip = message.isrisktip;                    return object;                };                /**                 * Converts this TradeDepthVO to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeDepthVO                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeDepthVO.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeDepthVO                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeDepthVO                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeDepthVO.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeDepthVO";                };                TradeDepthVO.Bids = (function() {                    /**                     * Properties of a Bids.                     * @memberof market.v2.trade.TradeDepthVO                     * @interface IBids                     */                    /**                     * Constructs a new Bids.                     * @memberof market.v2.trade.TradeDepthVO                     * @classdesc Represents a Bids.                     * @implements IBids                     * @constructor                     * @param {market.v2.trade.TradeDepthVO.IBids=} [properties] Properties to set                     */                    function Bids(properties) {                        if (properties)                            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                                if (properties[keys[i]] != null)                                    this[keys[i]] = properties[keys[i]];                    }                    /**                     * Creates a new Bids instance using the specified properties.                     * @function create                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {market.v2.trade.TradeDepthVO.IBids=} [properties] Properties to set                     * @returns {market.v2.trade.TradeDepthVO.Bids} Bids instance                     */                    Bids.create = function create(properties) {                        return new Bids(properties);                    };                    /**                     * Encodes the specified Bids message. Does not implicitly {@link market.v2.trade.TradeDepthVO.Bids.verify|verify} messages.                     * @function encode                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {market.v2.trade.TradeDepthVO.IBids} message Bids message or plain object to encode                     * @param {$protobuf.Writer} [writer] Writer to encode to                     * @returns {$protobuf.Writer} Writer                     */                    Bids.encode = function encode(message, writer) {                        if (!writer)                            writer = $Writer.create();                        return writer;                    };                    /**                     * Encodes the specified Bids message, length delimited. Does not implicitly {@link market.v2.trade.TradeDepthVO.Bids.verify|verify} messages.                     * @function encodeDelimited                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {market.v2.trade.TradeDepthVO.IBids} message Bids message or plain object to encode                     * @param {$protobuf.Writer} [writer] Writer to encode to                     * @returns {$protobuf.Writer} Writer                     */                    Bids.encodeDelimited = function encodeDelimited(message, writer) {                        return this.encode(message, writer).ldelim();                    };                    /**                     * Decodes a Bids message from the specified reader or buffer.                     * @function decode                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                     * @param {number} [length] Message length if known beforehand                     * @returns {market.v2.trade.TradeDepthVO.Bids} Bids                     * @throws {Error} If the payload is not a reader or valid buffer                     * @throws {$protobuf.util.ProtocolError} If required fields are missing                     */                    Bids.decode = function decode(reader, length) {                        if (!(reader instanceof $Reader))                            reader = $Reader.create(reader);                        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDepthVO.Bids();                        while (reader.pos < end) {                            var tag = reader.uint32();                            switch (tag >>> 3) {                            default:                                reader.skipType(tag & 7);                                break;                            }                        }                        return message;                    };                    /**                     * Decodes a Bids message from the specified reader or buffer, length delimited.                     * @function decodeDelimited                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                     * @returns {market.v2.trade.TradeDepthVO.Bids} Bids                     * @throws {Error} If the payload is not a reader or valid buffer                     * @throws {$protobuf.util.ProtocolError} If required fields are missing                     */                    Bids.decodeDelimited = function decodeDelimited(reader) {                        if (!(reader instanceof $Reader))                            reader = new $Reader(reader);                        return this.decode(reader, reader.uint32());                    };                    /**                     * Verifies a Bids message.                     * @function verify                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {Object.<string,*>} message Plain object to verify                     * @returns {string|null} `null` if valid, otherwise the reason why it is not                     */                    Bids.verify = function verify(message) {                        if (typeof message !== "object" || message === null)                            return "object expected";                        return null;                    };                    /**                     * Creates a Bids message from a plain object. Also converts values to their respective internal types.                     * @function fromObject                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {Object.<string,*>} object Plain object                     * @returns {market.v2.trade.TradeDepthVO.Bids} Bids                     */                    Bids.fromObject = function fromObject(object) {                        if (object instanceof $root.market.v2.trade.TradeDepthVO.Bids)                            return object;                        return new $root.market.v2.trade.TradeDepthVO.Bids();                    };                    /**                     * Creates a plain object from a Bids message. Also converts values to other types if specified.                     * @function toObject                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {market.v2.trade.TradeDepthVO.Bids} message Bids                     * @param {$protobuf.IConversionOptions} [options] Conversion options                     * @returns {Object.<string,*>} Plain object                     */                    Bids.toObject = function toObject() {                        return {};                    };                    /**                     * Converts this Bids to JSON.                     * @function toJSON                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @instance                     * @returns {Object.<string,*>} JSON object                     */                    Bids.prototype.toJSON = function toJSON() {                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                    };                    /**                     * Gets the default type url for Bids                     * @function getTypeUrl                     * @memberof market.v2.trade.TradeDepthVO.Bids                     * @static                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                     * @returns {string} The default type url                     */                    Bids.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                        if (typeUrlPrefix === undefined) {                            typeUrlPrefix = "type.googleapis.com";                        }                        return typeUrlPrefix + "/market.v2.trade.TradeDepthVO.Bids";                    };                    return Bids;                })();                TradeDepthVO.Asks = (function() {                    /**                     * Properties of an Asks.                     * @memberof market.v2.trade.TradeDepthVO                     * @interface IAsks                     * @property {Array.<market.v2.trade.TradeDepthVO.Asks.IAskData>|null} [askdataList] Asks askdataList                     */                    /**                     * Constructs a new Asks.                     * @memberof market.v2.trade.TradeDepthVO                     * @classdesc Represents an Asks.                     * @implements IAsks                     * @constructor                     * @param {market.v2.trade.TradeDepthVO.IAsks=} [properties] Properties to set                     */                    function Asks(properties) {                        this.askdataList = [];                        if (properties)                            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                                if (properties[keys[i]] != null)                                    this[keys[i]] = properties[keys[i]];                    }                    /**                     * Asks askdataList.                     * @member {Array.<market.v2.trade.TradeDepthVO.Asks.IAskData>} askdataList                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @instance                     */                    Asks.prototype.askdataList = $util.emptyArray;                    /**                     * Creates a new Asks instance using the specified properties.                     * @function create                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {market.v2.trade.TradeDepthVO.IAsks=} [properties] Properties to set                     * @returns {market.v2.trade.TradeDepthVO.Asks} Asks instance                     */                    Asks.create = function create(properties) {                        return new Asks(properties);                    };                    /**                     * Encodes the specified Asks message. Does not implicitly {@link market.v2.trade.TradeDepthVO.Asks.verify|verify} messages.                     * @function encode                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {market.v2.trade.TradeDepthVO.IAsks} message Asks message or plain object to encode                     * @param {$protobuf.Writer} [writer] Writer to encode to                     * @returns {$protobuf.Writer} Writer                     */                    Asks.encode = function encode(message, writer) {                        if (!writer)                            writer = $Writer.create();                        if (message.askdataList != null && message.askdataList.length)                            for (var i = 0; i < message.askdataList.length; ++i)                                $root.market.v2.trade.TradeDepthVO.Asks.AskData.encode(message.askdataList[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                        return writer;                    };                    /**                     * Encodes the specified Asks message, length delimited. Does not implicitly {@link market.v2.trade.TradeDepthVO.Asks.verify|verify} messages.                     * @function encodeDelimited                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {market.v2.trade.TradeDepthVO.IAsks} message Asks message or plain object to encode                     * @param {$protobuf.Writer} [writer] Writer to encode to                     * @returns {$protobuf.Writer} Writer                     */                    Asks.encodeDelimited = function encodeDelimited(message, writer) {                        return this.encode(message, writer).ldelim();                    };                    /**                     * Decodes an Asks message from the specified reader or buffer.                     * @function decode                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                     * @param {number} [length] Message length if known beforehand                     * @returns {market.v2.trade.TradeDepthVO.Asks} Asks                     * @throws {Error} If the payload is not a reader or valid buffer                     * @throws {$protobuf.util.ProtocolError} If required fields are missing                     */                    Asks.decode = function decode(reader, length) {                        if (!(reader instanceof $Reader))                            reader = $Reader.create(reader);                        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDepthVO.Asks();                        while (reader.pos < end) {                            var tag = reader.uint32();                            switch (tag >>> 3) {                            case 1: {                                    if (!(message.askdataList && message.askdataList.length))                                        message.askdataList = [];                                    message.askdataList.push($root.market.v2.trade.TradeDepthVO.Asks.AskData.decode(reader, reader.uint32()));                                    break;                                }                            default:                                reader.skipType(tag & 7);                                break;                            }                        }                        return message;                    };                    /**                     * Decodes an Asks message from the specified reader or buffer, length delimited.                     * @function decodeDelimited                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                     * @returns {market.v2.trade.TradeDepthVO.Asks} Asks                     * @throws {Error} If the payload is not a reader or valid buffer                     * @throws {$protobuf.util.ProtocolError} If required fields are missing                     */                    Asks.decodeDelimited = function decodeDelimited(reader) {                        if (!(reader instanceof $Reader))                            reader = new $Reader(reader);                        return this.decode(reader, reader.uint32());                    };                    /**                     * Verifies an Asks message.                     * @function verify                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {Object.<string,*>} message Plain object to verify                     * @returns {string|null} `null` if valid, otherwise the reason why it is not                     */                    Asks.verify = function verify(message) {                        if (typeof message !== "object" || message === null)                            return "object expected";                        if (message.askdataList != null && message.hasOwnProperty("askdataList")) {                            if (!Array.isArray(message.askdataList))                                return "askdataList: array expected";                            for (var i = 0; i < message.askdataList.length; ++i) {                                var error = $root.market.v2.trade.TradeDepthVO.Asks.AskData.verify(message.askdataList[i]);                                if (error)                                    return "askdataList." + error;                            }                        }                        return null;                    };                    /**                     * Creates an Asks message from a plain object. Also converts values to their respective internal types.                     * @function fromObject                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {Object.<string,*>} object Plain object                     * @returns {market.v2.trade.TradeDepthVO.Asks} Asks                     */                    Asks.fromObject = function fromObject(object) {                        if (object instanceof $root.market.v2.trade.TradeDepthVO.Asks)                            return object;                        var message = new $root.market.v2.trade.TradeDepthVO.Asks();                        if (object.askdataList) {                            if (!Array.isArray(object.askdataList))                                throw TypeError(".market.v2.trade.TradeDepthVO.Asks.askdataList: array expected");                            message.askdataList = [];                            for (var i = 0; i < object.askdataList.length; ++i) {                                if (typeof object.askdataList[i] !== "object")                                    throw TypeError(".market.v2.trade.TradeDepthVO.Asks.askdataList: object expected");                                message.askdataList[i] = $root.market.v2.trade.TradeDepthVO.Asks.AskData.fromObject(object.askdataList[i]);                            }                        }                        return message;                    };                    /**                     * Creates a plain object from an Asks message. Also converts values to other types if specified.                     * @function toObject                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {market.v2.trade.TradeDepthVO.Asks} message Asks                     * @param {$protobuf.IConversionOptions} [options] Conversion options                     * @returns {Object.<string,*>} Plain object                     */                    Asks.toObject = function toObject(message, options) {                        if (!options)                            options = {};                        var object = {};                        if (options.arrays || options.defaults)                            object.askdataList = [];                        if (message.askdataList && message.askdataList.length) {                            object.askdataList = [];                            for (var j = 0; j < message.askdataList.length; ++j)                                object.askdataList[j] = $root.market.v2.trade.TradeDepthVO.Asks.AskData.toObject(message.askdataList[j], options);                        }                        return object;                    };                    /**                     * Converts this Asks to JSON.                     * @function toJSON                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @instance                     * @returns {Object.<string,*>} JSON object                     */                    Asks.prototype.toJSON = function toJSON() {                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                    };                    /**                     * Gets the default type url for Asks                     * @function getTypeUrl                     * @memberof market.v2.trade.TradeDepthVO.Asks                     * @static                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                     * @returns {string} The default type url                     */                    Asks.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                        if (typeUrlPrefix === undefined) {                            typeUrlPrefix = "type.googleapis.com";                        }                        return typeUrlPrefix + "/market.v2.trade.TradeDepthVO.Asks";                    };                    Asks.AskData = (function() {                        /**                         * Properties of an AskData.                         * @memberof market.v2.trade.TradeDepthVO.Asks                         * @interface IAskData                         */                        /**                         * Constructs a new AskData.                         * @memberof market.v2.trade.TradeDepthVO.Asks                         * @classdesc Represents an AskData.                         * @implements IAskData                         * @constructor                         * @param {market.v2.trade.TradeDepthVO.Asks.IAskData=} [properties] Properties to set                         */                        function AskData(properties) {                            if (properties)                                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                                    if (properties[keys[i]] != null)                                        this[keys[i]] = properties[keys[i]];                        }                        /**                         * Creates a new AskData instance using the specified properties.                         * @function create                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {market.v2.trade.TradeDepthVO.Asks.IAskData=} [properties] Properties to set                         * @returns {market.v2.trade.TradeDepthVO.Asks.AskData} AskData instance                         */                        AskData.create = function create(properties) {                            return new AskData(properties);                        };                        /**                         * Encodes the specified AskData message. Does not implicitly {@link market.v2.trade.TradeDepthVO.Asks.AskData.verify|verify} messages.                         * @function encode                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {market.v2.trade.TradeDepthVO.Asks.IAskData} message AskData message or plain object to encode                         * @param {$protobuf.Writer} [writer] Writer to encode to                         * @returns {$protobuf.Writer} Writer                         */                        AskData.encode = function encode(message, writer) {                            if (!writer)                                writer = $Writer.create();                            return writer;                        };                        /**                         * Encodes the specified AskData message, length delimited. Does not implicitly {@link market.v2.trade.TradeDepthVO.Asks.AskData.verify|verify} messages.                         * @function encodeDelimited                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {market.v2.trade.TradeDepthVO.Asks.IAskData} message AskData message or plain object to encode                         * @param {$protobuf.Writer} [writer] Writer to encode to                         * @returns {$protobuf.Writer} Writer                         */                        AskData.encodeDelimited = function encodeDelimited(message, writer) {                            return this.encode(message, writer).ldelim();                        };                        /**                         * Decodes an AskData message from the specified reader or buffer.                         * @function decode                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                         * @param {number} [length] Message length if known beforehand                         * @returns {market.v2.trade.TradeDepthVO.Asks.AskData} AskData                         * @throws {Error} If the payload is not a reader or valid buffer                         * @throws {$protobuf.util.ProtocolError} If required fields are missing                         */                        AskData.decode = function decode(reader, length) {                            if (!(reader instanceof $Reader))                                reader = $Reader.create(reader);                            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDepthVO.Asks.AskData();                            while (reader.pos < end) {                                var tag = reader.uint32();                                switch (tag >>> 3) {                                default:                                    reader.skipType(tag & 7);                                    break;                                }                            }                            return message;                        };                        /**                         * Decodes an AskData message from the specified reader or buffer, length delimited.                         * @function decodeDelimited                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                         * @returns {market.v2.trade.TradeDepthVO.Asks.AskData} AskData                         * @throws {Error} If the payload is not a reader or valid buffer                         * @throws {$protobuf.util.ProtocolError} If required fields are missing                         */                        AskData.decodeDelimited = function decodeDelimited(reader) {                            if (!(reader instanceof $Reader))                                reader = new $Reader(reader);                            return this.decode(reader, reader.uint32());                        };                        /**                         * Verifies an AskData message.                         * @function verify                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {Object.<string,*>} message Plain object to verify                         * @returns {string|null} `null` if valid, otherwise the reason why it is not                         */                        AskData.verify = function verify(message) {                            if (typeof message !== "object" || message === null)                                return "object expected";                            return null;                        };                        /**                         * Creates an AskData message from a plain object. Also converts values to their respective internal types.                         * @function fromObject                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {Object.<string,*>} object Plain object                         * @returns {market.v2.trade.TradeDepthVO.Asks.AskData} AskData                         */                        AskData.fromObject = function fromObject(object) {                            if (object instanceof $root.market.v2.trade.TradeDepthVO.Asks.AskData)                                return object;                            return new $root.market.v2.trade.TradeDepthVO.Asks.AskData();                        };                        /**                         * Creates a plain object from an AskData message. Also converts values to other types if specified.                         * @function toObject                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {market.v2.trade.TradeDepthVO.Asks.AskData} message AskData                         * @param {$protobuf.IConversionOptions} [options] Conversion options                         * @returns {Object.<string,*>} Plain object                         */                        AskData.toObject = function toObject() {                            return {};                        };                        /**                         * Converts this AskData to JSON.                         * @function toJSON                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @instance                         * @returns {Object.<string,*>} JSON object                         */                        AskData.prototype.toJSON = function toJSON() {                            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                        };                        /**                         * Gets the default type url for AskData                         * @function getTypeUrl                         * @memberof market.v2.trade.TradeDepthVO.Asks.AskData                         * @static                         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                         * @returns {string} The default type url                         */                        AskData.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                            if (typeUrlPrefix === undefined) {                                typeUrlPrefix = "type.googleapis.com";                            }                            return typeUrlPrefix + "/market.v2.trade.TradeDepthVO.Asks.AskData";                        };                        return AskData;                    })();                    return Asks;                })();                return TradeDepthVO;            })();            trade.TradeDetailList = (function() {                /**                 * Properties of a TradeDetailList.                 * @memberof market.v2.trade                 * @interface ITradeDetailList                 * @property {Array.<market.v2.trade.ITradeDetailInfo>|null} [list] TradeDetailList list                 */                /**                 * Constructs a new TradeDetailList.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeDetailList.                 * @implements ITradeDetailList                 * @constructor                 * @param {market.v2.trade.ITradeDetailList=} [properties] Properties to set                 */                function TradeDetailList(properties) {                    this.list = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeDetailList list.                 * @member {Array.<market.v2.trade.ITradeDetailInfo>} list                 * @memberof market.v2.trade.TradeDetailList                 * @instance                 */                TradeDetailList.prototype.list = $util.emptyArray;                /**                 * Creates a new TradeDetailList instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {market.v2.trade.ITradeDetailList=} [properties] Properties to set                 * @returns {market.v2.trade.TradeDetailList} TradeDetailList instance                 */                TradeDetailList.create = function create(properties) {                    return new TradeDetailList(properties);                };                /**                 * Encodes the specified TradeDetailList message. Does not implicitly {@link market.v2.trade.TradeDetailList.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {market.v2.trade.ITradeDetailList} message TradeDetailList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDetailList.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.list != null && message.list.length)                        for (var i = 0; i < message.list.length; ++i)                            $root.market.v2.trade.TradeDetailInfo.encode(message.list[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified TradeDetailList message, length delimited. Does not implicitly {@link market.v2.trade.TradeDetailList.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {market.v2.trade.ITradeDetailList} message TradeDetailList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDetailList.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeDetailList message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeDetailList} TradeDetailList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDetailList.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDetailList();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                if (!(message.list && message.list.length))                                    message.list = [];                                message.list.push($root.market.v2.trade.TradeDetailInfo.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeDetailList message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeDetailList} TradeDetailList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDetailList.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeDetailList message.                 * @function verify                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeDetailList.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.list != null && message.hasOwnProperty("list")) {                        if (!Array.isArray(message.list))                            return "list: array expected";                        for (var i = 0; i < message.list.length; ++i) {                            var error = $root.market.v2.trade.TradeDetailInfo.verify(message.list[i]);                            if (error)                                return "list." + error;                        }                    }                    return null;                };                /**                 * Creates a TradeDetailList message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeDetailList} TradeDetailList                 */                TradeDetailList.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeDetailList)                        return object;                    var message = new $root.market.v2.trade.TradeDetailList();                    if (object.list) {                        if (!Array.isArray(object.list))                            throw TypeError(".market.v2.trade.TradeDetailList.list: array expected");                        message.list = [];                        for (var i = 0; i < object.list.length; ++i) {                            if (typeof object.list[i] !== "object")                                throw TypeError(".market.v2.trade.TradeDetailList.list: object expected");                            message.list[i] = $root.market.v2.trade.TradeDetailInfo.fromObject(object.list[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a TradeDetailList message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {market.v2.trade.TradeDetailList} message TradeDetailList                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeDetailList.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.list = [];                    if (message.list && message.list.length) {                        object.list = [];                        for (var j = 0; j < message.list.length; ++j)                            object.list[j] = $root.market.v2.trade.TradeDetailInfo.toObject(message.list[j], options);                    }                    return object;                };                /**                 * Converts this TradeDetailList to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeDetailList                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeDetailList.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeDetailList                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeDetailList                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeDetailList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeDetailList";                };                return TradeDetailList;            })();            trade.TradeDetailInfo = (function() {                /**                 * Properties of a TradeDetailInfo.                 * @memberof market.v2.trade                 * @interface ITradeDetailInfo                 * @property {number|Long|null} [tradeid] TradeDetailInfo tradeid                 * @property {string|null} [amount] TradeDetailInfo amount                 * @property {string|null} [ts] TradeDetailInfo ts                 * @property {string|null} [price] TradeDetailInfo price                 * @property {string|null} [direction] TradeDetailInfo direction                 */                /**                 * Constructs a new TradeDetailInfo.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeDetailInfo.                 * @implements ITradeDetailInfo                 * @constructor                 * @param {market.v2.trade.ITradeDetailInfo=} [properties] Properties to set                 */                function TradeDetailInfo(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeDetailInfo tradeid.                 * @member {number|Long} tradeid                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 */                TradeDetailInfo.prototype.tradeid = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * TradeDetailInfo amount.                 * @member {string} amount                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 */                TradeDetailInfo.prototype.amount = "";                /**                 * TradeDetailInfo ts.                 * @member {string} ts                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 */                TradeDetailInfo.prototype.ts = "";                /**                 * TradeDetailInfo price.                 * @member {string} price                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 */                TradeDetailInfo.prototype.price = "";                /**                 * TradeDetailInfo direction.                 * @member {string} direction                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 */                TradeDetailInfo.prototype.direction = "";                /**                 * Creates a new TradeDetailInfo instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {market.v2.trade.ITradeDetailInfo=} [properties] Properties to set                 * @returns {market.v2.trade.TradeDetailInfo} TradeDetailInfo instance                 */                TradeDetailInfo.create = function create(properties) {                    return new TradeDetailInfo(properties);                };                /**                 * Encodes the specified TradeDetailInfo message. Does not implicitly {@link market.v2.trade.TradeDetailInfo.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {market.v2.trade.ITradeDetailInfo} message TradeDetailInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDetailInfo.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.tradeid != null && Object.hasOwnProperty.call(message, "tradeid"))                        writer.uint32(/* id 1, wireType 0 =*/8).int64(message.tradeid);                    if (message.amount != null && Object.hasOwnProperty.call(message, "amount"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.amount);                    if (message.ts != null && Object.hasOwnProperty.call(message, "ts"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.ts);                    if (message.price != null && Object.hasOwnProperty.call(message, "price"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.price);                    if (message.direction != null && Object.hasOwnProperty.call(message, "direction"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.direction);                    return writer;                };                /**                 * Encodes the specified TradeDetailInfo message, length delimited. Does not implicitly {@link market.v2.trade.TradeDetailInfo.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {market.v2.trade.ITradeDetailInfo} message TradeDetailInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeDetailInfo.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeDetailInfo message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeDetailInfo} TradeDetailInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDetailInfo.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeDetailInfo();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.tradeid = reader.int64();                                break;                            }                        case 2: {                                message.amount = reader.string();                                break;                            }                        case 3: {                                message.ts = reader.string();                                break;                            }                        case 4: {                                message.price = reader.string();                                break;                            }                        case 5: {                                message.direction = reader.string();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeDetailInfo message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeDetailInfo} TradeDetailInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeDetailInfo.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeDetailInfo message.                 * @function verify                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeDetailInfo.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (!$util.isInteger(message.tradeid) && !(message.tradeid && $util.isInteger(message.tradeid.low) && $util.isInteger(message.tradeid.high)))                            return "tradeid: integer|Long expected";                    if (message.amount != null && message.hasOwnProperty("amount"))                        if (!$util.isString(message.amount))                            return "amount: string expected";                    if (message.ts != null && message.hasOwnProperty("ts"))                        if (!$util.isString(message.ts))                            return "ts: string expected";                    if (message.price != null && message.hasOwnProperty("price"))                        if (!$util.isString(message.price))                            return "price: string expected";                    if (message.direction != null && message.hasOwnProperty("direction"))                        if (!$util.isString(message.direction))                            return "direction: string expected";                    return null;                };                /**                 * Creates a TradeDetailInfo message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeDetailInfo} TradeDetailInfo                 */                TradeDetailInfo.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeDetailInfo)                        return object;                    var message = new $root.market.v2.trade.TradeDetailInfo();                    if (object.tradeid != null)                        if ($util.Long)                            (message.tradeid = $util.Long.fromValue(object.tradeid)).unsigned = false;                        else if (typeof object.tradeid === "string")                            message.tradeid = parseInt(object.tradeid, 10);                        else if (typeof object.tradeid === "number")                            message.tradeid = object.tradeid;                        else if (typeof object.tradeid === "object")                            message.tradeid = new $util.LongBits(object.tradeid.low >>> 0, object.tradeid.high >>> 0).toNumber();                    if (object.amount != null)                        message.amount = String(object.amount);                    if (object.ts != null)                        message.ts = String(object.ts);                    if (object.price != null)                        message.price = String(object.price);                    if (object.direction != null)                        message.direction = String(object.direction);                    return message;                };                /**                 * Creates a plain object from a TradeDetailInfo message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {market.v2.trade.TradeDetailInfo} message TradeDetailInfo                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeDetailInfo.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.tradeid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.tradeid = options.longs === String ? "0" : 0;                        object.amount = "";                        object.ts = "";                        object.price = "";                        object.direction = "";                    }                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (typeof message.tradeid === "number")                            object.tradeid = options.longs === String ? String(message.tradeid) : message.tradeid;                        else                            object.tradeid = options.longs === String ? $util.Long.prototype.toString.call(message.tradeid) : options.longs === Number ? new $util.LongBits(message.tradeid.low >>> 0, message.tradeid.high >>> 0).toNumber() : message.tradeid;                    if (message.amount != null && message.hasOwnProperty("amount"))                        object.amount = message.amount;                    if (message.ts != null && message.hasOwnProperty("ts"))                        object.ts = message.ts;                    if (message.price != null && message.hasOwnProperty("price"))                        object.price = message.price;                    if (message.direction != null && message.hasOwnProperty("direction"))                        object.direction = message.direction;                    return object;                };                /**                 * Converts this TradeDetailInfo to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeDetailInfo                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeDetailInfo.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeDetailInfo                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeDetailInfo                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeDetailInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeDetailInfo";                };                return TradeDetailInfo;            })();            trade.TradeAreaPair = (function() {                /**                 * Properties of a TradeAreaPair.                 * @memberof market.v2.trade                 * @interface ITradeAreaPair                 * @property {Array.<market.v2.trade.ITradeAreaPairInfo>|null} [listList] TradeAreaPair listList                 */                /**                 * Constructs a new TradeAreaPair.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeAreaPair.                 * @implements ITradeAreaPair                 * @constructor                 * @param {market.v2.trade.ITradeAreaPair=} [properties] Properties to set                 */                function TradeAreaPair(properties) {                    this.listList = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeAreaPair listList.                 * @member {Array.<market.v2.trade.ITradeAreaPairInfo>} listList                 * @memberof market.v2.trade.TradeAreaPair                 * @instance                 */                TradeAreaPair.prototype.listList = $util.emptyArray;                /**                 * Creates a new TradeAreaPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {market.v2.trade.ITradeAreaPair=} [properties] Properties to set                 * @returns {market.v2.trade.TradeAreaPair} TradeAreaPair instance                 */                TradeAreaPair.create = function create(properties) {                    return new TradeAreaPair(properties);                };                /**                 * Encodes the specified TradeAreaPair message. Does not implicitly {@link market.v2.trade.TradeAreaPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {market.v2.trade.ITradeAreaPair} message TradeAreaPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeAreaPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.listList != null && message.listList.length)                        for (var i = 0; i < message.listList.length; ++i)                            $root.market.v2.trade.TradeAreaPairInfo.encode(message.listList[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified TradeAreaPair message, length delimited. Does not implicitly {@link market.v2.trade.TradeAreaPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {market.v2.trade.ITradeAreaPair} message TradeAreaPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeAreaPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeAreaPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeAreaPair} TradeAreaPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeAreaPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeAreaPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                if (!(message.listList && message.listList.length))                                    message.listList = [];                                message.listList.push($root.market.v2.trade.TradeAreaPairInfo.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeAreaPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeAreaPair} TradeAreaPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeAreaPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeAreaPair message.                 * @function verify                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeAreaPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.listList != null && message.hasOwnProperty("listList")) {                        if (!Array.isArray(message.listList))                            return "listList: array expected";                        for (var i = 0; i < message.listList.length; ++i) {                            var error = $root.market.v2.trade.TradeAreaPairInfo.verify(message.listList[i]);                            if (error)                                return "listList." + error;                        }                    }                    return null;                };                /**                 * Creates a TradeAreaPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeAreaPair} TradeAreaPair                 */                TradeAreaPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeAreaPair)                        return object;                    var message = new $root.market.v2.trade.TradeAreaPair();                    if (object.listList) {                        if (!Array.isArray(object.listList))                            throw TypeError(".market.v2.trade.TradeAreaPair.listList: array expected");                        message.listList = [];                        for (var i = 0; i < object.listList.length; ++i) {                            if (typeof object.listList[i] !== "object")                                throw TypeError(".market.v2.trade.TradeAreaPair.listList: object expected");                            message.listList[i] = $root.market.v2.trade.TradeAreaPairInfo.fromObject(object.listList[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a TradeAreaPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {market.v2.trade.TradeAreaPair} message TradeAreaPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeAreaPair.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.listList = [];                    if (message.listList && message.listList.length) {                        object.listList = [];                        for (var j = 0; j < message.listList.length; ++j)                            object.listList[j] = $root.market.v2.trade.TradeAreaPairInfo.toObject(message.listList[j], options);                    }                    return object;                };                /**                 * Converts this TradeAreaPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeAreaPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeAreaPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeAreaPair                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeAreaPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeAreaPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeAreaPair";                };                return TradeAreaPair;            })();            trade.TradeAreaPairInfo = (function() {                /**                 * Properties of a TradeAreaPairInfo.                 * @memberof market.v2.trade                 * @interface ITradeAreaPairInfo                 * @property {number|null} [tradeid] TradeAreaPairInfo tradeid                 * @property {string|null} [cny] TradeAreaPairInfo cny                 * @property {string|null} [buy] TradeAreaPairInfo buy                 * @property {string|null} [lever] TradeAreaPairInfo lever                 * @property {string|null} [sell] TradeAreaPairInfo sell                 * @property {string|null} [last] TradeAreaPairInfo last                 * @property {string|null} [volume] TradeAreaPairInfo volume                 * @property {string|null} [change] TradeAreaPairInfo change                 * @property {string|null} [high] TradeAreaPairInfo high                 * @property {string|null} [low] TradeAreaPairInfo low                 * @property {string|null} [isopen] TradeAreaPairInfo isopen                 * @property {string|null} [open] TradeAreaPairInfo open                 * @property {string|null} [amount] TradeAreaPairInfo amount                 * @property {boolean|null} [isfiatconvert] TradeAreaPairInfo isfiatconvert                 */                /**                 * Constructs a new TradeAreaPairInfo.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeAreaPairInfo.                 * @implements ITradeAreaPairInfo                 * @constructor                 * @param {market.v2.trade.ITradeAreaPairInfo=} [properties] Properties to set                 */                function TradeAreaPairInfo(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeAreaPairInfo tradeid.                 * @member {number} tradeid                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.tradeid = 0;                /**                 * TradeAreaPairInfo cny.                 * @member {string} cny                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.cny = "";                /**                 * TradeAreaPairInfo buy.                 * @member {string} buy                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.buy = "";                /**                 * TradeAreaPairInfo lever.                 * @member {string} lever                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.lever = "";                /**                 * TradeAreaPairInfo sell.                 * @member {string} sell                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.sell = "";                /**                 * TradeAreaPairInfo last.                 * @member {string} last                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.last = "";                /**                 * TradeAreaPairInfo volume.                 * @member {string} volume                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.volume = "";                /**                 * TradeAreaPairInfo change.                 * @member {string} change                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.change = "";                /**                 * TradeAreaPairInfo high.                 * @member {string} high                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.high = "";                /**                 * TradeAreaPairInfo low.                 * @member {string} low                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.low = "";                /**                 * TradeAreaPairInfo isopen.                 * @member {string} isopen                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.isopen = "";                /**                 * TradeAreaPairInfo open.                 * @member {string} open                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.open = "";                /**                 * TradeAreaPairInfo amount.                 * @member {string} amount                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.amount = "";                /**                 * TradeAreaPairInfo isfiatconvert.                 * @member {boolean} isfiatconvert                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 */                TradeAreaPairInfo.prototype.isfiatconvert = false;                /**                 * Creates a new TradeAreaPairInfo instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {market.v2.trade.ITradeAreaPairInfo=} [properties] Properties to set                 * @returns {market.v2.trade.TradeAreaPairInfo} TradeAreaPairInfo instance                 */                TradeAreaPairInfo.create = function create(properties) {                    return new TradeAreaPairInfo(properties);                };                /**                 * Encodes the specified TradeAreaPairInfo message. Does not implicitly {@link market.v2.trade.TradeAreaPairInfo.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {market.v2.trade.ITradeAreaPairInfo} message TradeAreaPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeAreaPairInfo.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.tradeid != null && Object.hasOwnProperty.call(message, "tradeid"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.tradeid);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.cny);                    if (message.buy != null && Object.hasOwnProperty.call(message, "buy"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.buy);                    if (message.lever != null && Object.hasOwnProperty.call(message, "lever"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.lever);                    if (message.sell != null && Object.hasOwnProperty.call(message, "sell"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.sell);                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.last);                    if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))                        writer.uint32(/* id 7, wireType 2 =*/58).string(message.volume);                    if (message.change != null && Object.hasOwnProperty.call(message, "change"))                        writer.uint32(/* id 8, wireType 2 =*/66).string(message.change);                    if (message.high != null && Object.hasOwnProperty.call(message, "high"))                        writer.uint32(/* id 9, wireType 2 =*/74).string(message.high);                    if (message.low != null && Object.hasOwnProperty.call(message, "low"))                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.low);                    if (message.isopen != null && Object.hasOwnProperty.call(message, "isopen"))                        writer.uint32(/* id 11, wireType 2 =*/90).string(message.isopen);                    if (message.open != null && Object.hasOwnProperty.call(message, "open"))                        writer.uint32(/* id 12, wireType 2 =*/98).string(message.open);                    if (message.amount != null && Object.hasOwnProperty.call(message, "amount"))                        writer.uint32(/* id 13, wireType 2 =*/106).string(message.amount);                    if (message.isfiatconvert != null && Object.hasOwnProperty.call(message, "isfiatconvert"))                        writer.uint32(/* id 14, wireType 0 =*/112).bool(message.isfiatconvert);                    return writer;                };                /**                 * Encodes the specified TradeAreaPairInfo message, length delimited. Does not implicitly {@link market.v2.trade.TradeAreaPairInfo.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {market.v2.trade.ITradeAreaPairInfo} message TradeAreaPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeAreaPairInfo.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeAreaPairInfo message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeAreaPairInfo} TradeAreaPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeAreaPairInfo.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeAreaPairInfo();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.tradeid = reader.int32();                                break;                            }                        case 2: {                                message.cny = reader.string();                                break;                            }                        case 3: {                                message.buy = reader.string();                                break;                            }                        case 4: {                                message.lever = reader.string();                                break;                            }                        case 5: {                                message.sell = reader.string();                                break;                            }                        case 6: {                                message.last = reader.string();                                break;                            }                        case 7: {                                message.volume = reader.string();                                break;                            }                        case 8: {                                message.change = reader.string();                                break;                            }                        case 9: {                                message.high = reader.string();                                break;                            }                        case 10: {                                message.low = reader.string();                                break;                            }                        case 11: {                                message.isopen = reader.string();                                break;                            }                        case 12: {                                message.open = reader.string();                                break;                            }                        case 13: {                                message.amount = reader.string();                                break;                            }                        case 14: {                                message.isfiatconvert = reader.bool();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeAreaPairInfo message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeAreaPairInfo} TradeAreaPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeAreaPairInfo.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeAreaPairInfo message.                 * @function verify                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeAreaPairInfo.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (!$util.isInteger(message.tradeid))                            return "tradeid: integer expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.buy != null && message.hasOwnProperty("buy"))                        if (!$util.isString(message.buy))                            return "buy: string expected";                    if (message.lever != null && message.hasOwnProperty("lever"))                        if (!$util.isString(message.lever))                            return "lever: string expected";                    if (message.sell != null && message.hasOwnProperty("sell"))                        if (!$util.isString(message.sell))                            return "sell: string expected";                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.volume != null && message.hasOwnProperty("volume"))                        if (!$util.isString(message.volume))                            return "volume: string expected";                    if (message.change != null && message.hasOwnProperty("change"))                        if (!$util.isString(message.change))                            return "change: string expected";                    if (message.high != null && message.hasOwnProperty("high"))                        if (!$util.isString(message.high))                            return "high: string expected";                    if (message.low != null && message.hasOwnProperty("low"))                        if (!$util.isString(message.low))                            return "low: string expected";                    if (message.isopen != null && message.hasOwnProperty("isopen"))                        if (!$util.isString(message.isopen))                            return "isopen: string expected";                    if (message.open != null && message.hasOwnProperty("open"))                        if (!$util.isString(message.open))                            return "open: string expected";                    if (message.amount != null && message.hasOwnProperty("amount"))                        if (!$util.isString(message.amount))                            return "amount: string expected";                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        if (typeof message.isfiatconvert !== "boolean")                            return "isfiatconvert: boolean expected";                    return null;                };                /**                 * Creates a TradeAreaPairInfo message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeAreaPairInfo} TradeAreaPairInfo                 */                TradeAreaPairInfo.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeAreaPairInfo)                        return object;                    var message = new $root.market.v2.trade.TradeAreaPairInfo();                    if (object.tradeid != null)                        message.tradeid = object.tradeid | 0;                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.buy != null)                        message.buy = String(object.buy);                    if (object.lever != null)                        message.lever = String(object.lever);                    if (object.sell != null)                        message.sell = String(object.sell);                    if (object.last != null)                        message.last = String(object.last);                    if (object.volume != null)                        message.volume = String(object.volume);                    if (object.change != null)                        message.change = String(object.change);                    if (object.high != null)                        message.high = String(object.high);                    if (object.low != null)                        message.low = String(object.low);                    if (object.isopen != null)                        message.isopen = String(object.isopen);                    if (object.open != null)                        message.open = String(object.open);                    if (object.amount != null)                        message.amount = String(object.amount);                    if (object.isfiatconvert != null)                        message.isfiatconvert = Boolean(object.isfiatconvert);                    return message;                };                /**                 * Creates a plain object from a TradeAreaPairInfo message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {market.v2.trade.TradeAreaPairInfo} message TradeAreaPairInfo                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeAreaPairInfo.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.tradeid = 0;                        object.cny = "";                        object.buy = "";                        object.lever = "";                        object.sell = "";                        object.last = "";                        object.volume = "";                        object.change = "";                        object.high = "";                        object.low = "";                        object.isopen = "";                        object.open = "";                        object.amount = "";                        object.isfiatconvert = false;                    }                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        object.tradeid = message.tradeid;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.buy != null && message.hasOwnProperty("buy"))                        object.buy = message.buy;                    if (message.lever != null && message.hasOwnProperty("lever"))                        object.lever = message.lever;                    if (message.sell != null && message.hasOwnProperty("sell"))                        object.sell = message.sell;                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.volume != null && message.hasOwnProperty("volume"))                        object.volume = message.volume;                    if (message.change != null && message.hasOwnProperty("change"))                        object.change = message.change;                    if (message.high != null && message.hasOwnProperty("high"))                        object.high = message.high;                    if (message.low != null && message.hasOwnProperty("low"))                        object.low = message.low;                    if (message.isopen != null && message.hasOwnProperty("isopen"))                        object.isopen = message.isopen;                    if (message.open != null && message.hasOwnProperty("open"))                        object.open = message.open;                    if (message.amount != null && message.hasOwnProperty("amount"))                        object.amount = message.amount;                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        object.isfiatconvert = message.isfiatconvert;                    return object;                };                /**                 * Converts this TradeAreaPairInfo to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeAreaPairInfo.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeAreaPairInfo                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeAreaPairInfo                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeAreaPairInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeAreaPairInfo";                };                return TradeAreaPairInfo;            })();            trade.MainPair = (function() {                /**                 * Properties of a MainPair.                 * @memberof market.v2.trade                 * @interface IMainPair                 * @property {Array.<market.v2.trade.IMainPairInfo>|null} [listList] MainPair listList                 */                /**                 * Constructs a new MainPair.                 * @memberof market.v2.trade                 * @classdesc Represents a MainPair.                 * @implements IMainPair                 * @constructor                 * @param {market.v2.trade.IMainPair=} [properties] Properties to set                 */                function MainPair(properties) {                    this.listList = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * MainPair listList.                 * @member {Array.<market.v2.trade.IMainPairInfo>} listList                 * @memberof market.v2.trade.MainPair                 * @instance                 */                MainPair.prototype.listList = $util.emptyArray;                /**                 * Creates a new MainPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {market.v2.trade.IMainPair=} [properties] Properties to set                 * @returns {market.v2.trade.MainPair} MainPair instance                 */                MainPair.create = function create(properties) {                    return new MainPair(properties);                };                /**                 * Encodes the specified MainPair message. Does not implicitly {@link market.v2.trade.MainPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {market.v2.trade.IMainPair} message MainPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MainPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.listList != null && message.listList.length)                        for (var i = 0; i < message.listList.length; ++i)                            $root.market.v2.trade.MainPairInfo.encode(message.listList[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified MainPair message, length delimited. Does not implicitly {@link market.v2.trade.MainPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {market.v2.trade.IMainPair} message MainPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MainPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MainPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MainPair} MainPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MainPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MainPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                if (!(message.listList && message.listList.length))                                    message.listList = [];                                message.listList.push($root.market.v2.trade.MainPairInfo.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MainPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MainPair} MainPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MainPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MainPair message.                 * @function verify                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MainPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.listList != null && message.hasOwnProperty("listList")) {                        if (!Array.isArray(message.listList))                            return "listList: array expected";                        for (var i = 0; i < message.listList.length; ++i) {                            var error = $root.market.v2.trade.MainPairInfo.verify(message.listList[i]);                            if (error)                                return "listList." + error;                        }                    }                    return null;                };                /**                 * Creates a MainPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MainPair} MainPair                 */                MainPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MainPair)                        return object;                    var message = new $root.market.v2.trade.MainPair();                    if (object.listList) {                        if (!Array.isArray(object.listList))                            throw TypeError(".market.v2.trade.MainPair.listList: array expected");                        message.listList = [];                        for (var i = 0; i < object.listList.length; ++i) {                            if (typeof object.listList[i] !== "object")                                throw TypeError(".market.v2.trade.MainPair.listList: object expected");                            message.listList[i] = $root.market.v2.trade.MainPairInfo.fromObject(object.listList[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a MainPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {market.v2.trade.MainPair} message MainPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MainPair.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.listList = [];                    if (message.listList && message.listList.length) {                        object.listList = [];                        for (var j = 0; j < message.listList.length; ++j)                            object.listList[j] = $root.market.v2.trade.MainPairInfo.toObject(message.listList[j], options);                    }                    return object;                };                /**                 * Converts this MainPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MainPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MainPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MainPair                 * @function getTypeUrl                 * @memberof market.v2.trade.MainPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MainPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MainPair";                };                return MainPair;            })();            trade.MainPairInfo = (function() {                /**                 * Properties of a MainPairInfo.                 * @memberof market.v2.trade                 * @interface IMainPairInfo                 * @property {number|null} [tradeId] MainPairInfo tradeId                 * @property {string|null} [cny] MainPairInfo cny                 * @property {string|null} [totalamount] MainPairInfo totalamount                 * @property {string|null} [last] MainPairInfo last                 * @property {string|null} [volume] MainPairInfo volume                 * @property {string|null} [change] MainPairInfo change                 */                /**                 * Constructs a new MainPairInfo.                 * @memberof market.v2.trade                 * @classdesc Represents a MainPairInfo.                 * @implements IMainPairInfo                 * @constructor                 * @param {market.v2.trade.IMainPairInfo=} [properties] Properties to set                 */                function MainPairInfo(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * MainPairInfo tradeId.                 * @member {number} tradeId                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.tradeId = 0;                /**                 * MainPairInfo cny.                 * @member {string} cny                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.cny = "";                /**                 * MainPairInfo totalamount.                 * @member {string} totalamount                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.totalamount = "";                /**                 * MainPairInfo last.                 * @member {string} last                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.last = "";                /**                 * MainPairInfo volume.                 * @member {string} volume                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.volume = "";                /**                 * MainPairInfo change.                 * @member {string} change                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 */                MainPairInfo.prototype.change = "";                /**                 * Creates a new MainPairInfo instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {market.v2.trade.IMainPairInfo=} [properties] Properties to set                 * @returns {market.v2.trade.MainPairInfo} MainPairInfo instance                 */                MainPairInfo.create = function create(properties) {                    return new MainPairInfo(properties);                };                /**                 * Encodes the specified MainPairInfo message. Does not implicitly {@link market.v2.trade.MainPairInfo.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {market.v2.trade.IMainPairInfo} message MainPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MainPairInfo.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.tradeId != null && Object.hasOwnProperty.call(message, "tradeId"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.tradeId);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.cny);                    if (message.totalamount != null && Object.hasOwnProperty.call(message, "totalamount"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.totalamount);                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.last);                    if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.volume);                    if (message.change != null && Object.hasOwnProperty.call(message, "change"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.change);                    return writer;                };                /**                 * Encodes the specified MainPairInfo message, length delimited. Does not implicitly {@link market.v2.trade.MainPairInfo.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {market.v2.trade.IMainPairInfo} message MainPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MainPairInfo.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MainPairInfo message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MainPairInfo} MainPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MainPairInfo.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MainPairInfo();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.tradeId = reader.int32();                                break;                            }                        case 2: {                                message.cny = reader.string();                                break;                            }                        case 3: {                                message.totalamount = reader.string();                                break;                            }                        case 4: {                                message.last = reader.string();                                break;                            }                        case 5: {                                message.volume = reader.string();                                break;                            }                        case 6: {                                message.change = reader.string();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MainPairInfo message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MainPairInfo} MainPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MainPairInfo.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MainPairInfo message.                 * @function verify                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MainPairInfo.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.tradeId != null && message.hasOwnProperty("tradeId"))                        if (!$util.isInteger(message.tradeId))                            return "tradeId: integer expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.totalamount != null && message.hasOwnProperty("totalamount"))                        if (!$util.isString(message.totalamount))                            return "totalamount: string expected";                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.volume != null && message.hasOwnProperty("volume"))                        if (!$util.isString(message.volume))                            return "volume: string expected";                    if (message.change != null && message.hasOwnProperty("change"))                        if (!$util.isString(message.change))                            return "change: string expected";                    return null;                };                /**                 * Creates a MainPairInfo message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MainPairInfo} MainPairInfo                 */                MainPairInfo.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MainPairInfo)                        return object;                    var message = new $root.market.v2.trade.MainPairInfo();                    if (object.tradeId != null)                        message.tradeId = object.tradeId | 0;                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.totalamount != null)                        message.totalamount = String(object.totalamount);                    if (object.last != null)                        message.last = String(object.last);                    if (object.volume != null)                        message.volume = String(object.volume);                    if (object.change != null)                        message.change = String(object.change);                    return message;                };                /**                 * Creates a plain object from a MainPairInfo message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {market.v2.trade.MainPairInfo} message MainPairInfo                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MainPairInfo.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.tradeId = 0;                        object.cny = "";                        object.totalamount = "";                        object.last = "";                        object.volume = "";                        object.change = "";                    }                    if (message.tradeId != null && message.hasOwnProperty("tradeId"))                        object.tradeId = message.tradeId;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.totalamount != null && message.hasOwnProperty("totalamount"))                        object.totalamount = message.totalamount;                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.volume != null && message.hasOwnProperty("volume"))                        object.volume = message.volume;                    if (message.change != null && message.hasOwnProperty("change"))                        object.change = message.change;                    return object;                };                /**                 * Converts this MainPairInfo to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MainPairInfo                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MainPairInfo.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MainPairInfo                 * @function getTypeUrl                 * @memberof market.v2.trade.MainPairInfo                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MainPairInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MainPairInfo";                };                return MainPairInfo;            })();            trade.RecommendPair = (function() {                /**                 * Properties of a RecommendPair.                 * @memberof market.v2.trade                 * @interface IRecommendPair                 * @property {Array.<market.v2.trade.IRecommendPairInfo>|null} [listList] RecommendPair listList                 */                /**                 * Constructs a new RecommendPair.                 * @memberof market.v2.trade                 * @classdesc Represents a RecommendPair.                 * @implements IRecommendPair                 * @constructor                 * @param {market.v2.trade.IRecommendPair=} [properties] Properties to set                 */                function RecommendPair(properties) {                    this.listList = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * RecommendPair listList.                 * @member {Array.<market.v2.trade.IRecommendPairInfo>} listList                 * @memberof market.v2.trade.RecommendPair                 * @instance                 */                RecommendPair.prototype.listList = $util.emptyArray;                /**                 * Creates a new RecommendPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {market.v2.trade.IRecommendPair=} [properties] Properties to set                 * @returns {market.v2.trade.RecommendPair} RecommendPair instance                 */                RecommendPair.create = function create(properties) {                    return new RecommendPair(properties);                };                /**                 * Encodes the specified RecommendPair message. Does not implicitly {@link market.v2.trade.RecommendPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {market.v2.trade.IRecommendPair} message RecommendPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                RecommendPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.listList != null && message.listList.length)                        for (var i = 0; i < message.listList.length; ++i)                            $root.market.v2.trade.RecommendPairInfo.encode(message.listList[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified RecommendPair message, length delimited. Does not implicitly {@link market.v2.trade.RecommendPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {market.v2.trade.IRecommendPair} message RecommendPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                RecommendPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a RecommendPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.RecommendPair} RecommendPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                RecommendPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.RecommendPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                if (!(message.listList && message.listList.length))                                    message.listList = [];                                message.listList.push($root.market.v2.trade.RecommendPairInfo.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a RecommendPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.RecommendPair} RecommendPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                RecommendPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a RecommendPair message.                 * @function verify                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                RecommendPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.listList != null && message.hasOwnProperty("listList")) {                        if (!Array.isArray(message.listList))                            return "listList: array expected";                        for (var i = 0; i < message.listList.length; ++i) {                            var error = $root.market.v2.trade.RecommendPairInfo.verify(message.listList[i]);                            if (error)                                return "listList." + error;                        }                    }                    return null;                };                /**                 * Creates a RecommendPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.RecommendPair} RecommendPair                 */                RecommendPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.RecommendPair)                        return object;                    var message = new $root.market.v2.trade.RecommendPair();                    if (object.listList) {                        if (!Array.isArray(object.listList))                            throw TypeError(".market.v2.trade.RecommendPair.listList: array expected");                        message.listList = [];                        for (var i = 0; i < object.listList.length; ++i) {                            if (typeof object.listList[i] !== "object")                                throw TypeError(".market.v2.trade.RecommendPair.listList: object expected");                            message.listList[i] = $root.market.v2.trade.RecommendPairInfo.fromObject(object.listList[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a RecommendPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {market.v2.trade.RecommendPair} message RecommendPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                RecommendPair.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.listList = [];                    if (message.listList && message.listList.length) {                        object.listList = [];                        for (var j = 0; j < message.listList.length; ++j)                            object.listList[j] = $root.market.v2.trade.RecommendPairInfo.toObject(message.listList[j], options);                    }                    return object;                };                /**                 * Converts this RecommendPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.RecommendPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                RecommendPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for RecommendPair                 * @function getTypeUrl                 * @memberof market.v2.trade.RecommendPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                RecommendPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.RecommendPair";                };                return RecommendPair;            })();            trade.RecommendPairInfo = (function() {                /**                 * Properties of a RecommendPairInfo.                 * @memberof market.v2.trade                 * @interface IRecommendPairInfo                 * @property {number|null} [tradeId] RecommendPairInfo tradeId                 * @property {string|null} [cny] RecommendPairInfo cny                 * @property {string|null} [totalamount] RecommendPairInfo totalamount                 * @property {string|null} [last] RecommendPairInfo last                 * @property {string|null} [volume] RecommendPairInfo volume                 * @property {string|null} [change] RecommendPairInfo change                 */                /**                 * Constructs a new RecommendPairInfo.                 * @memberof market.v2.trade                 * @classdesc Represents a RecommendPairInfo.                 * @implements IRecommendPairInfo                 * @constructor                 * @param {market.v2.trade.IRecommendPairInfo=} [properties] Properties to set                 */                function RecommendPairInfo(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * RecommendPairInfo tradeId.                 * @member {number} tradeId                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.tradeId = 0;                /**                 * RecommendPairInfo cny.                 * @member {string} cny                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.cny = "";                /**                 * RecommendPairInfo totalamount.                 * @member {string} totalamount                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.totalamount = "";                /**                 * RecommendPairInfo last.                 * @member {string} last                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.last = "";                /**                 * RecommendPairInfo volume.                 * @member {string} volume                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.volume = "";                /**                 * RecommendPairInfo change.                 * @member {string} change                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 */                RecommendPairInfo.prototype.change = "";                /**                 * Creates a new RecommendPairInfo instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {market.v2.trade.IRecommendPairInfo=} [properties] Properties to set                 * @returns {market.v2.trade.RecommendPairInfo} RecommendPairInfo instance                 */                RecommendPairInfo.create = function create(properties) {                    return new RecommendPairInfo(properties);                };                /**                 * Encodes the specified RecommendPairInfo message. Does not implicitly {@link market.v2.trade.RecommendPairInfo.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {market.v2.trade.IRecommendPairInfo} message RecommendPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                RecommendPairInfo.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.tradeId != null && Object.hasOwnProperty.call(message, "tradeId"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.tradeId);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.cny);                    if (message.totalamount != null && Object.hasOwnProperty.call(message, "totalamount"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.totalamount);                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.last);                    if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.volume);                    if (message.change != null && Object.hasOwnProperty.call(message, "change"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.change);                    return writer;                };                /**                 * Encodes the specified RecommendPairInfo message, length delimited. Does not implicitly {@link market.v2.trade.RecommendPairInfo.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {market.v2.trade.IRecommendPairInfo} message RecommendPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                RecommendPairInfo.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a RecommendPairInfo message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.RecommendPairInfo} RecommendPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                RecommendPairInfo.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.RecommendPairInfo();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.tradeId = reader.int32();                                break;                            }                        case 2: {                                message.cny = reader.string();                                break;                            }                        case 3: {                                message.totalamount = reader.string();                                break;                            }                        case 4: {                                message.last = reader.string();                                break;                            }                        case 5: {                                message.volume = reader.string();                                break;                            }                        case 6: {                                message.change = reader.string();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a RecommendPairInfo message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.RecommendPairInfo} RecommendPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                RecommendPairInfo.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a RecommendPairInfo message.                 * @function verify                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                RecommendPairInfo.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.tradeId != null && message.hasOwnProperty("tradeId"))                        if (!$util.isInteger(message.tradeId))                            return "tradeId: integer expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.totalamount != null && message.hasOwnProperty("totalamount"))                        if (!$util.isString(message.totalamount))                            return "totalamount: string expected";                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.volume != null && message.hasOwnProperty("volume"))                        if (!$util.isString(message.volume))                            return "volume: string expected";                    if (message.change != null && message.hasOwnProperty("change"))                        if (!$util.isString(message.change))                            return "change: string expected";                    return null;                };                /**                 * Creates a RecommendPairInfo message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.RecommendPairInfo} RecommendPairInfo                 */                RecommendPairInfo.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.RecommendPairInfo)                        return object;                    var message = new $root.market.v2.trade.RecommendPairInfo();                    if (object.tradeId != null)                        message.tradeId = object.tradeId | 0;                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.totalamount != null)                        message.totalamount = String(object.totalamount);                    if (object.last != null)                        message.last = String(object.last);                    if (object.volume != null)                        message.volume = String(object.volume);                    if (object.change != null)                        message.change = String(object.change);                    return message;                };                /**                 * Creates a plain object from a RecommendPairInfo message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {market.v2.trade.RecommendPairInfo} message RecommendPairInfo                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                RecommendPairInfo.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.tradeId = 0;                        object.cny = "";                        object.totalamount = "";                        object.last = "";                        object.volume = "";                        object.change = "";                    }                    if (message.tradeId != null && message.hasOwnProperty("tradeId"))                        object.tradeId = message.tradeId;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.totalamount != null && message.hasOwnProperty("totalamount"))                        object.totalamount = message.totalamount;                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.volume != null && message.hasOwnProperty("volume"))                        object.volume = message.volume;                    if (message.change != null && message.hasOwnProperty("change"))                        object.change = message.change;                    return object;                };                /**                 * Converts this RecommendPairInfo to JSON.                 * @function toJSON                 * @memberof market.v2.trade.RecommendPairInfo                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                RecommendPairInfo.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for RecommendPairInfo                 * @function getTypeUrl                 * @memberof market.v2.trade.RecommendPairInfo                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                RecommendPairInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.RecommendPairInfo";                };                return RecommendPairInfo;            })();            trade.UpPair = (function() {                /**                 * Properties of an UpPair.                 * @memberof market.v2.trade                 * @interface IUpPair                 */                /**                 * Constructs a new UpPair.                 * @memberof market.v2.trade                 * @classdesc Represents an UpPair.                 * @implements IUpPair                 * @constructor                 * @param {market.v2.trade.IUpPair=} [properties] Properties to set                 */                function UpPair(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new UpPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {market.v2.trade.IUpPair=} [properties] Properties to set                 * @returns {market.v2.trade.UpPair} UpPair instance                 */                UpPair.create = function create(properties) {                    return new UpPair(properties);                };                /**                 * Encodes the specified UpPair message. Does not implicitly {@link market.v2.trade.UpPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {market.v2.trade.IUpPair} message UpPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UpPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified UpPair message, length delimited. Does not implicitly {@link market.v2.trade.UpPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {market.v2.trade.IUpPair} message UpPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UpPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes an UpPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.UpPair} UpPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UpPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.UpPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes an UpPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.UpPair} UpPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UpPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies an UpPair message.                 * @function verify                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                UpPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates an UpPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.UpPair} UpPair                 */                UpPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.UpPair)                        return object;                    return new $root.market.v2.trade.UpPair();                };                /**                 * Creates a plain object from an UpPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {market.v2.trade.UpPair} message UpPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                UpPair.toObject = function toObject() {                    return {};                };                /**                 * Converts this UpPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.UpPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                UpPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for UpPair                 * @function getTypeUrl                 * @memberof market.v2.trade.UpPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                UpPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.UpPair";                };                return UpPair;            })();            trade.AmtPair = (function() {                /**                 * Properties of an AmtPair.                 * @memberof market.v2.trade                 * @interface IAmtPair                 */                /**                 * Constructs a new AmtPair.                 * @memberof market.v2.trade                 * @classdesc Represents an AmtPair.                 * @implements IAmtPair                 * @constructor                 * @param {market.v2.trade.IAmtPair=} [properties] Properties to set                 */                function AmtPair(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new AmtPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {market.v2.trade.IAmtPair=} [properties] Properties to set                 * @returns {market.v2.trade.AmtPair} AmtPair instance                 */                AmtPair.create = function create(properties) {                    return new AmtPair(properties);                };                /**                 * Encodes the specified AmtPair message. Does not implicitly {@link market.v2.trade.AmtPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {market.v2.trade.IAmtPair} message AmtPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                AmtPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified AmtPair message, length delimited. Does not implicitly {@link market.v2.trade.AmtPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {market.v2.trade.IAmtPair} message AmtPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                AmtPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes an AmtPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.AmtPair} AmtPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                AmtPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.AmtPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes an AmtPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.AmtPair} AmtPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                AmtPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies an AmtPair message.                 * @function verify                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                AmtPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates an AmtPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.AmtPair} AmtPair                 */                AmtPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.AmtPair)                        return object;                    return new $root.market.v2.trade.AmtPair();                };                /**                 * Creates a plain object from an AmtPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {market.v2.trade.AmtPair} message AmtPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                AmtPair.toObject = function toObject() {                    return {};                };                /**                 * Converts this AmtPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.AmtPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                AmtPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for AmtPair                 * @function getTypeUrl                 * @memberof market.v2.trade.AmtPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                AmtPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.AmtPair";                };                return AmtPair;            })();            trade.StarPair = (function() {                /**                 * Properties of a StarPair.                 * @memberof market.v2.trade                 * @interface IStarPair                 */                /**                 * Constructs a new StarPair.                 * @memberof market.v2.trade                 * @classdesc Represents a StarPair.                 * @implements IStarPair                 * @constructor                 * @param {market.v2.trade.IStarPair=} [properties] Properties to set                 */                function StarPair(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new StarPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {market.v2.trade.IStarPair=} [properties] Properties to set                 * @returns {market.v2.trade.StarPair} StarPair instance                 */                StarPair.create = function create(properties) {                    return new StarPair(properties);                };                /**                 * Encodes the specified StarPair message. Does not implicitly {@link market.v2.trade.StarPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {market.v2.trade.IStarPair} message StarPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                StarPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified StarPair message, length delimited. Does not implicitly {@link market.v2.trade.StarPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {market.v2.trade.IStarPair} message StarPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                StarPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a StarPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.StarPair} StarPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                StarPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.StarPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a StarPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.StarPair} StarPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                StarPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a StarPair message.                 * @function verify                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                StarPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a StarPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.StarPair} StarPair                 */                StarPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.StarPair)                        return object;                    return new $root.market.v2.trade.StarPair();                };                /**                 * Creates a plain object from a StarPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {market.v2.trade.StarPair} message StarPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                StarPair.toObject = function toObject() {                    return {};                };                /**                 * Converts this StarPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.StarPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                StarPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for StarPair                 * @function getTypeUrl                 * @memberof market.v2.trade.StarPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                StarPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.StarPair";                };                return StarPair;            })();            trade.TradeTickerVO = (function() {                /**                 * Properties of a TradeTickerVO.                 * @memberof market.v2.trade                 * @interface ITradeTickerVO                 * @property {number|null} [tradeid] TradeTickerVO tradeid                 * @property {string|null} [high] TradeTickerVO high                 * @property {string|null} [open] TradeTickerVO open                 * @property {string|null} [low] TradeTickerVO low                 * @property {string|null} [close] TradeTickerVO close                 * @property {string|null} [volume] TradeTickerVO volume                 * @property {string|null} [change] TradeTickerVO change                 * @property {string|null} [cny] TradeTickerVO cny                 * @property {string|null} [last] TradeTickerVO last                 * @property {string|null} [netvalue] TradeTickerVO netvalue                 * @property {string|null} [amount] TradeTickerVO amount                 * @property {boolean|null} [isfiatconvert] TradeTickerVO isfiatconvert                 */                /**                 * Constructs a new TradeTickerVO.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeTickerVO.                 * @implements ITradeTickerVO                 * @constructor                 * @param {market.v2.trade.ITradeTickerVO=} [properties] Properties to set                 */                function TradeTickerVO(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * TradeTickerVO tradeid.                 * @member {number} tradeid                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.tradeid = 0;                /**                 * TradeTickerVO high.                 * @member {string} high                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.high = "";                /**                 * TradeTickerVO open.                 * @member {string} open                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.open = "";                /**                 * TradeTickerVO low.                 * @member {string} low                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.low = "";                /**                 * TradeTickerVO close.                 * @member {string} close                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.close = "";                /**                 * TradeTickerVO volume.                 * @member {string} volume                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.volume = "";                /**                 * TradeTickerVO change.                 * @member {string} change                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.change = "";                /**                 * TradeTickerVO cny.                 * @member {string} cny                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.cny = "";                /**                 * TradeTickerVO last.                 * @member {string} last                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.last = "";                /**                 * TradeTickerVO netvalue.                 * @member {string} netvalue                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.netvalue = "";                /**                 * TradeTickerVO amount.                 * @member {string} amount                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.amount = "";                /**                 * TradeTickerVO isfiatconvert.                 * @member {boolean} isfiatconvert                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 */                TradeTickerVO.prototype.isfiatconvert = false;                /**                 * Creates a new TradeTickerVO instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {market.v2.trade.ITradeTickerVO=} [properties] Properties to set                 * @returns {market.v2.trade.TradeTickerVO} TradeTickerVO instance                 */                TradeTickerVO.create = function create(properties) {                    return new TradeTickerVO(properties);                };                /**                 * Encodes the specified TradeTickerVO message. Does not implicitly {@link market.v2.trade.TradeTickerVO.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {market.v2.trade.ITradeTickerVO} message TradeTickerVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeTickerVO.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.tradeid != null && Object.hasOwnProperty.call(message, "tradeid"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.tradeid);                    if (message.high != null && Object.hasOwnProperty.call(message, "high"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.high);                    if (message.open != null && Object.hasOwnProperty.call(message, "open"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.open);                    if (message.low != null && Object.hasOwnProperty.call(message, "low"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.low);                    if (message.close != null && Object.hasOwnProperty.call(message, "close"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.close);                    if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.volume);                    if (message.change != null && Object.hasOwnProperty.call(message, "change"))                        writer.uint32(/* id 7, wireType 2 =*/58).string(message.change);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 8, wireType 2 =*/66).string(message.cny);                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 9, wireType 2 =*/74).string(message.last);                    if (message.netvalue != null && Object.hasOwnProperty.call(message, "netvalue"))                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.netvalue);                    if (message.amount != null && Object.hasOwnProperty.call(message, "amount"))                        writer.uint32(/* id 11, wireType 2 =*/90).string(message.amount);                    if (message.isfiatconvert != null && Object.hasOwnProperty.call(message, "isfiatconvert"))                        writer.uint32(/* id 12, wireType 0 =*/96).bool(message.isfiatconvert);                    return writer;                };                /**                 * Encodes the specified TradeTickerVO message, length delimited. Does not implicitly {@link market.v2.trade.TradeTickerVO.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {market.v2.trade.ITradeTickerVO} message TradeTickerVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeTickerVO.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeTickerVO message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeTickerVO} TradeTickerVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeTickerVO.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeTickerVO();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.tradeid = reader.int32();                                break;                            }                        case 2: {                                message.high = reader.string();                                break;                            }                        case 3: {                                message.open = reader.string();                                break;                            }                        case 4: {                                message.low = reader.string();                                break;                            }                        case 5: {                                message.close = reader.string();                                break;                            }                        case 6: {                                message.volume = reader.string();                                break;                            }                        case 7: {                                message.change = reader.string();                                break;                            }                        case 8: {                                message.cny = reader.string();                                break;                            }                        case 9: {                                message.last = reader.string();                                break;                            }                        case 10: {                                message.netvalue = reader.string();                                break;                            }                        case 11: {                                message.amount = reader.string();                                break;                            }                        case 12: {                                message.isfiatconvert = reader.bool();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeTickerVO message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeTickerVO} TradeTickerVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeTickerVO.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeTickerVO message.                 * @function verify                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeTickerVO.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (!$util.isInteger(message.tradeid))                            return "tradeid: integer expected";                    if (message.high != null && message.hasOwnProperty("high"))                        if (!$util.isString(message.high))                            return "high: string expected";                    if (message.open != null && message.hasOwnProperty("open"))                        if (!$util.isString(message.open))                            return "open: string expected";                    if (message.low != null && message.hasOwnProperty("low"))                        if (!$util.isString(message.low))                            return "low: string expected";                    if (message.close != null && message.hasOwnProperty("close"))                        if (!$util.isString(message.close))                            return "close: string expected";                    if (message.volume != null && message.hasOwnProperty("volume"))                        if (!$util.isString(message.volume))                            return "volume: string expected";                    if (message.change != null && message.hasOwnProperty("change"))                        if (!$util.isString(message.change))                            return "change: string expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.netvalue != null && message.hasOwnProperty("netvalue"))                        if (!$util.isString(message.netvalue))                            return "netvalue: string expected";                    if (message.amount != null && message.hasOwnProperty("amount"))                        if (!$util.isString(message.amount))                            return "amount: string expected";                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        if (typeof message.isfiatconvert !== "boolean")                            return "isfiatconvert: boolean expected";                    return null;                };                /**                 * Creates a TradeTickerVO message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeTickerVO} TradeTickerVO                 */                TradeTickerVO.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeTickerVO)                        return object;                    var message = new $root.market.v2.trade.TradeTickerVO();                    if (object.tradeid != null)                        message.tradeid = object.tradeid | 0;                    if (object.high != null)                        message.high = String(object.high);                    if (object.open != null)                        message.open = String(object.open);                    if (object.low != null)                        message.low = String(object.low);                    if (object.close != null)                        message.close = String(object.close);                    if (object.volume != null)                        message.volume = String(object.volume);                    if (object.change != null)                        message.change = String(object.change);                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.last != null)                        message.last = String(object.last);                    if (object.netvalue != null)                        message.netvalue = String(object.netvalue);                    if (object.amount != null)                        message.amount = String(object.amount);                    if (object.isfiatconvert != null)                        message.isfiatconvert = Boolean(object.isfiatconvert);                    return message;                };                /**                 * Creates a plain object from a TradeTickerVO message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {market.v2.trade.TradeTickerVO} message TradeTickerVO                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeTickerVO.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.tradeid = 0;                        object.high = "";                        object.open = "";                        object.low = "";                        object.close = "";                        object.volume = "";                        object.change = "";                        object.cny = "";                        object.last = "";                        object.netvalue = "";                        object.amount = "";                        object.isfiatconvert = false;                    }                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        object.tradeid = message.tradeid;                    if (message.high != null && message.hasOwnProperty("high"))                        object.high = message.high;                    if (message.open != null && message.hasOwnProperty("open"))                        object.open = message.open;                    if (message.low != null && message.hasOwnProperty("low"))                        object.low = message.low;                    if (message.close != null && message.hasOwnProperty("close"))                        object.close = message.close;                    if (message.volume != null && message.hasOwnProperty("volume"))                        object.volume = message.volume;                    if (message.change != null && message.hasOwnProperty("change"))                        object.change = message.change;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.netvalue != null && message.hasOwnProperty("netvalue"))                        object.netvalue = message.netvalue;                    if (message.amount != null && message.hasOwnProperty("amount"))                        object.amount = message.amount;                    if (message.isfiatconvert != null && message.hasOwnProperty("isfiatconvert"))                        object.isfiatconvert = message.isfiatconvert;                    return object;                };                /**                 * Converts this TradeTickerVO to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeTickerVO                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeTickerVO.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeTickerVO                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeTickerVO                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeTickerVO.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeTickerVO";                };                return TradeTickerVO;            })();            trade.EntrustVO = (function() {                /**                 * Properties of an EntrustVO.                 * @memberof market.v2.trade                 * @interface IEntrustVO                 * @property {number|Long|null} [id] EntrustVO id                 * @property {number|null} [tradeid] EntrustVO tradeid                 * @property {number|Long|null} [entrusttime] EntrustVO entrusttime                 * @property {string|null} [buycoinshortname] EntrustVO buycoinshortname                 * @property {string|null} [sellcoinshortname] EntrustVO sellcoinshortname                 * @property {number|null} [type] EntrustVO type                 * @property {number|null} [direction] EntrustVO direction                 * @property {number|null} [matchtype] EntrustVO matchtype                 * @property {string|null} [pricetype] EntrustVO pricetype                 * @property {string|null} [entrustprice] EntrustVO entrustprice                 * @property {string|null} [count] EntrustVO count                 * @property {string|null} [successcount] EntrustVO successcount                 * @property {string|null} [averageprice] EntrustVO averageprice                 * @property {number|null} [status] EntrustVO status                 * @property {boolean|null} [history] EntrustVO history                 * @property {number|Long|null} [pushversion] EntrustVO pushversion                 * @property {boolean|null} [remove] EntrustVO remove                 * @property {string|null} [amount] EntrustVO amount                 * @property {string|null} [marketunit] EntrustVO marketunit                 * @property {string|null} [funds] EntrustVO funds                 * @property {string|null} [leftfunds] EntrustVO leftfunds                 * @property {string|null} [triggerprice] EntrustVO triggerprice                 * @property {string|null} [marginmode] EntrustVO marginmode                 * @property {string|null} [margintrademode] EntrustVO margintrademode                 * @property {boolean|null} [forcedliquidation] EntrustVO forcedliquidation                 * @property {string|null} [remark] EntrustVO remark                 * @property {string|null} [successamount] EntrustVO successamount                 * @property {number|null} [tradearea] EntrustVO tradearea                 * @property {string|null} [fee] EntrustVO fee                 * @property {string|null} [trailingdelta] EntrustVO trailingdelta                 * @property {string|null} [activationprice] EntrustVO activationprice                 * @property {number|Long|null} [activationtime] EntrustVO activationtime                 * @property {number|null} [triggersign] EntrustVO triggersign                 * @property {string|null} [orderid] EntrustVO orderid                 */                /**                 * Constructs a new EntrustVO.                 * @memberof market.v2.trade                 * @classdesc Represents an EntrustVO.                 * @implements IEntrustVO                 * @constructor                 * @param {market.v2.trade.IEntrustVO=} [properties] Properties to set                 */                function EntrustVO(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * EntrustVO id.                 * @member {number|Long} id                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.id = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * EntrustVO tradeid.                 * @member {number} tradeid                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.tradeid = 0;                /**                 * EntrustVO entrusttime.                 * @member {number|Long} entrusttime                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.entrusttime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * EntrustVO buycoinshortname.                 * @member {string} buycoinshortname                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.buycoinshortname = "";                /**                 * EntrustVO sellcoinshortname.                 * @member {string} sellcoinshortname                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.sellcoinshortname = "";                /**                 * EntrustVO type.                 * @member {number} type                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.type = 0;                /**                 * EntrustVO direction.                 * @member {number} direction                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.direction = 0;                /**                 * EntrustVO matchtype.                 * @member {number} matchtype                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.matchtype = 0;                /**                 * EntrustVO pricetype.                 * @member {string} pricetype                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.pricetype = "";                /**                 * EntrustVO entrustprice.                 * @member {string} entrustprice                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.entrustprice = "";                /**                 * EntrustVO count.                 * @member {string} count                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.count = "";                /**                 * EntrustVO successcount.                 * @member {string} successcount                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.successcount = "";                /**                 * EntrustVO averageprice.                 * @member {string} averageprice                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.averageprice = "";                /**                 * EntrustVO status.                 * @member {number} status                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.status = 0;                /**                 * EntrustVO history.                 * @member {boolean} history                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.history = false;                /**                 * EntrustVO pushversion.                 * @member {number|Long} pushversion                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.pushversion = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * EntrustVO remove.                 * @member {boolean} remove                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.remove = false;                /**                 * EntrustVO amount.                 * @member {string} amount                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.amount = "";                /**                 * EntrustVO marketunit.                 * @member {string} marketunit                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.marketunit = "";                /**                 * EntrustVO funds.                 * @member {string} funds                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.funds = "";                /**                 * EntrustVO leftfunds.                 * @member {string} leftfunds                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.leftfunds = "";                /**                 * EntrustVO triggerprice.                 * @member {string} triggerprice                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.triggerprice = "";                /**                 * EntrustVO marginmode.                 * @member {string} marginmode                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.marginmode = "";                /**                 * EntrustVO margintrademode.                 * @member {string} margintrademode                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.margintrademode = "";                /**                 * EntrustVO forcedliquidation.                 * @member {boolean} forcedliquidation                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.forcedliquidation = false;                /**                 * EntrustVO remark.                 * @member {string} remark                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.remark = "";                /**                 * EntrustVO successamount.                 * @member {string} successamount                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.successamount = "";                /**                 * EntrustVO tradearea.                 * @member {number} tradearea                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.tradearea = 0;                /**                 * EntrustVO fee.                 * @member {string} fee                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.fee = "";                /**                 * EntrustVO trailingdelta.                 * @member {string} trailingdelta                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.trailingdelta = "";                /**                 * EntrustVO activationprice.                 * @member {string} activationprice                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.activationprice = "";                /**                 * EntrustVO activationtime.                 * @member {number|Long} activationtime                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.activationtime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * EntrustVO triggersign.                 * @member {number} triggersign                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.triggersign = 0;                /**                 * EntrustVO orderid.                 * @member {string} orderid                 * @memberof market.v2.trade.EntrustVO                 * @instance                 */                EntrustVO.prototype.orderid = "";                /**                 * Creates a new EntrustVO instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {market.v2.trade.IEntrustVO=} [properties] Properties to set                 * @returns {market.v2.trade.EntrustVO} EntrustVO instance                 */                EntrustVO.create = function create(properties) {                    return new EntrustVO(properties);                };                /**                 * Encodes the specified EntrustVO message. Does not implicitly {@link market.v2.trade.EntrustVO.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {market.v2.trade.IEntrustVO} message EntrustVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                EntrustVO.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.id != null && Object.hasOwnProperty.call(message, "id"))                        writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id);                    if (message.tradeid != null && Object.hasOwnProperty.call(message, "tradeid"))                        writer.uint32(/* id 2, wireType 0 =*/16).int32(message.tradeid);                    if (message.entrusttime != null && Object.hasOwnProperty.call(message, "entrusttime"))                        writer.uint32(/* id 3, wireType 0 =*/24).int64(message.entrusttime);                    if (message.buycoinshortname != null && Object.hasOwnProperty.call(message, "buycoinshortname"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.buycoinshortname);                    if (message.sellcoinshortname != null && Object.hasOwnProperty.call(message, "sellcoinshortname"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.sellcoinshortname);                    if (message.type != null && Object.hasOwnProperty.call(message, "type"))                        writer.uint32(/* id 6, wireType 0 =*/48).int32(message.type);                    if (message.direction != null && Object.hasOwnProperty.call(message, "direction"))                        writer.uint32(/* id 7, wireType 0 =*/56).int32(message.direction);                    if (message.matchtype != null && Object.hasOwnProperty.call(message, "matchtype"))                        writer.uint32(/* id 8, wireType 0 =*/64).int32(message.matchtype);                    if (message.pricetype != null && Object.hasOwnProperty.call(message, "pricetype"))                        writer.uint32(/* id 9, wireType 2 =*/74).string(message.pricetype);                    if (message.entrustprice != null && Object.hasOwnProperty.call(message, "entrustprice"))                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.entrustprice);                    if (message.count != null && Object.hasOwnProperty.call(message, "count"))                        writer.uint32(/* id 11, wireType 2 =*/90).string(message.count);                    if (message.successcount != null && Object.hasOwnProperty.call(message, "successcount"))                        writer.uint32(/* id 12, wireType 2 =*/98).string(message.successcount);                    if (message.averageprice != null && Object.hasOwnProperty.call(message, "averageprice"))                        writer.uint32(/* id 13, wireType 2 =*/106).string(message.averageprice);                    if (message.status != null && Object.hasOwnProperty.call(message, "status"))                        writer.uint32(/* id 14, wireType 0 =*/112).int32(message.status);                    if (message.history != null && Object.hasOwnProperty.call(message, "history"))                        writer.uint32(/* id 15, wireType 0 =*/120).bool(message.history);                    if (message.pushversion != null && Object.hasOwnProperty.call(message, "pushversion"))                        writer.uint32(/* id 16, wireType 0 =*/128).int64(message.pushversion);                    if (message.remove != null && Object.hasOwnProperty.call(message, "remove"))                        writer.uint32(/* id 17, wireType 0 =*/136).bool(message.remove);                    if (message.amount != null && Object.hasOwnProperty.call(message, "amount"))                        writer.uint32(/* id 18, wireType 2 =*/146).string(message.amount);                    if (message.marketunit != null && Object.hasOwnProperty.call(message, "marketunit"))                        writer.uint32(/* id 19, wireType 2 =*/154).string(message.marketunit);                    if (message.funds != null && Object.hasOwnProperty.call(message, "funds"))                        writer.uint32(/* id 20, wireType 2 =*/162).string(message.funds);                    if (message.leftfunds != null && Object.hasOwnProperty.call(message, "leftfunds"))                        writer.uint32(/* id 21, wireType 2 =*/170).string(message.leftfunds);                    if (message.triggerprice != null && Object.hasOwnProperty.call(message, "triggerprice"))                        writer.uint32(/* id 22, wireType 2 =*/178).string(message.triggerprice);                    if (message.marginmode != null && Object.hasOwnProperty.call(message, "marginmode"))                        writer.uint32(/* id 23, wireType 2 =*/186).string(message.marginmode);                    if (message.margintrademode != null && Object.hasOwnProperty.call(message, "margintrademode"))                        writer.uint32(/* id 24, wireType 2 =*/194).string(message.margintrademode);                    if (message.forcedliquidation != null && Object.hasOwnProperty.call(message, "forcedliquidation"))                        writer.uint32(/* id 25, wireType 0 =*/200).bool(message.forcedliquidation);                    if (message.remark != null && Object.hasOwnProperty.call(message, "remark"))                        writer.uint32(/* id 26, wireType 2 =*/210).string(message.remark);                    if (message.successamount != null && Object.hasOwnProperty.call(message, "successamount"))                        writer.uint32(/* id 27, wireType 2 =*/218).string(message.successamount);                    if (message.tradearea != null && Object.hasOwnProperty.call(message, "tradearea"))                        writer.uint32(/* id 28, wireType 0 =*/224).int32(message.tradearea);                    if (message.fee != null && Object.hasOwnProperty.call(message, "fee"))                        writer.uint32(/* id 29, wireType 2 =*/234).string(message.fee);                    if (message.trailingdelta != null && Object.hasOwnProperty.call(message, "trailingdelta"))                        writer.uint32(/* id 30, wireType 2 =*/242).string(message.trailingdelta);                    if (message.activationprice != null && Object.hasOwnProperty.call(message, "activationprice"))                        writer.uint32(/* id 31, wireType 2 =*/250).string(message.activationprice);                    if (message.activationtime != null && Object.hasOwnProperty.call(message, "activationtime"))                        writer.uint32(/* id 32, wireType 0 =*/256).int64(message.activationtime);                    if (message.triggersign != null && Object.hasOwnProperty.call(message, "triggersign"))                        writer.uint32(/* id 33, wireType 0 =*/264).int32(message.triggersign);                    if (message.orderid != null && Object.hasOwnProperty.call(message, "orderid"))                        writer.uint32(/* id 34, wireType 2 =*/274).string(message.orderid);                    return writer;                };                /**                 * Encodes the specified EntrustVO message, length delimited. Does not implicitly {@link market.v2.trade.EntrustVO.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {market.v2.trade.IEntrustVO} message EntrustVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                EntrustVO.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes an EntrustVO message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.EntrustVO} EntrustVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                EntrustVO.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.EntrustVO();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.id = reader.int64();                                break;                            }                        case 2: {                                message.tradeid = reader.int32();                                break;                            }                        case 3: {                                message.entrusttime = reader.int64();                                break;                            }                        case 4: {                                message.buycoinshortname = reader.string();                                break;                            }                        case 5: {                                message.sellcoinshortname = reader.string();                                break;                            }                        case 6: {                                message.type = reader.int32();                                break;                            }                        case 7: {                                message.direction = reader.int32();                                break;                            }                        case 8: {                                message.matchtype = reader.int32();                                break;                            }                        case 9: {                                message.pricetype = reader.string();                                break;                            }                        case 10: {                                message.entrustprice = reader.string();                                break;                            }                        case 11: {                                message.count = reader.string();                                break;                            }                        case 12: {                                message.successcount = reader.string();                                break;                            }                        case 13: {                                message.averageprice = reader.string();                                break;                            }                        case 14: {                                message.status = reader.int32();                                break;                            }                        case 15: {                                message.history = reader.bool();                                break;                            }                        case 16: {                                message.pushversion = reader.int64();                                break;                            }                        case 17: {                                message.remove = reader.bool();                                break;                            }                        case 18: {                                message.amount = reader.string();                                break;                            }                        case 19: {                                message.marketunit = reader.string();                                break;                            }                        case 20: {                                message.funds = reader.string();                                break;                            }                        case 21: {                                message.leftfunds = reader.string();                                break;                            }                        case 22: {                                message.triggerprice = reader.string();                                break;                            }                        case 23: {                                message.marginmode = reader.string();                                break;                            }                        case 24: {                                message.margintrademode = reader.string();                                break;                            }                        case 25: {                                message.forcedliquidation = reader.bool();                                break;                            }                        case 26: {                                message.remark = reader.string();                                break;                            }                        case 27: {                                message.successamount = reader.string();                                break;                            }                        case 28: {                                message.tradearea = reader.int32();                                break;                            }                        case 29: {                                message.fee = reader.string();                                break;                            }                        case 30: {                                message.trailingdelta = reader.string();                                break;                            }                        case 31: {                                message.activationprice = reader.string();                                break;                            }                        case 32: {                                message.activationtime = reader.int64();                                break;                            }                        case 33: {                                message.triggersign = reader.int32();                                break;                            }                        case 34: {                                message.orderid = reader.string();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes an EntrustVO message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.EntrustVO} EntrustVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                EntrustVO.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies an EntrustVO message.                 * @function verify                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                EntrustVO.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.id != null && message.hasOwnProperty("id"))                        if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high)))                            return "id: integer|Long expected";                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (!$util.isInteger(message.tradeid))                            return "tradeid: integer expected";                    if (message.entrusttime != null && message.hasOwnProperty("entrusttime"))                        if (!$util.isInteger(message.entrusttime) && !(message.entrusttime && $util.isInteger(message.entrusttime.low) && $util.isInteger(message.entrusttime.high)))                            return "entrusttime: integer|Long expected";                    if (message.buycoinshortname != null && message.hasOwnProperty("buycoinshortname"))                        if (!$util.isString(message.buycoinshortname))                            return "buycoinshortname: string expected";                    if (message.sellcoinshortname != null && message.hasOwnProperty("sellcoinshortname"))                        if (!$util.isString(message.sellcoinshortname))                            return "sellcoinshortname: string expected";                    if (message.type != null && message.hasOwnProperty("type"))                        if (!$util.isInteger(message.type))                            return "type: integer expected";                    if (message.direction != null && message.hasOwnProperty("direction"))                        if (!$util.isInteger(message.direction))                            return "direction: integer expected";                    if (message.matchtype != null && message.hasOwnProperty("matchtype"))                        if (!$util.isInteger(message.matchtype))                            return "matchtype: integer expected";                    if (message.pricetype != null && message.hasOwnProperty("pricetype"))                        if (!$util.isString(message.pricetype))                            return "pricetype: string expected";                    if (message.entrustprice != null && message.hasOwnProperty("entrustprice"))                        if (!$util.isString(message.entrustprice))                            return "entrustprice: string expected";                    if (message.count != null && message.hasOwnProperty("count"))                        if (!$util.isString(message.count))                            return "count: string expected";                    if (message.successcount != null && message.hasOwnProperty("successcount"))                        if (!$util.isString(message.successcount))                            return "successcount: string expected";                    if (message.averageprice != null && message.hasOwnProperty("averageprice"))                        if (!$util.isString(message.averageprice))                            return "averageprice: string expected";                    if (message.status != null && message.hasOwnProperty("status"))                        if (!$util.isInteger(message.status))                            return "status: integer expected";                    if (message.history != null && message.hasOwnProperty("history"))                        if (typeof message.history !== "boolean")                            return "history: boolean expected";                    if (message.pushversion != null && message.hasOwnProperty("pushversion"))                        if (!$util.isInteger(message.pushversion) && !(message.pushversion && $util.isInteger(message.pushversion.low) && $util.isInteger(message.pushversion.high)))                            return "pushversion: integer|Long expected";                    if (message.remove != null && message.hasOwnProperty("remove"))                        if (typeof message.remove !== "boolean")                            return "remove: boolean expected";                    if (message.amount != null && message.hasOwnProperty("amount"))                        if (!$util.isString(message.amount))                            return "amount: string expected";                    if (message.marketunit != null && message.hasOwnProperty("marketunit"))                        if (!$util.isString(message.marketunit))                            return "marketunit: string expected";                    if (message.funds != null && message.hasOwnProperty("funds"))                        if (!$util.isString(message.funds))                            return "funds: string expected";                    if (message.leftfunds != null && message.hasOwnProperty("leftfunds"))                        if (!$util.isString(message.leftfunds))                            return "leftfunds: string expected";                    if (message.triggerprice != null && message.hasOwnProperty("triggerprice"))                        if (!$util.isString(message.triggerprice))                            return "triggerprice: string expected";                    if (message.marginmode != null && message.hasOwnProperty("marginmode"))                        if (!$util.isString(message.marginmode))                            return "marginmode: string expected";                    if (message.margintrademode != null && message.hasOwnProperty("margintrademode"))                        if (!$util.isString(message.margintrademode))                            return "margintrademode: string expected";                    if (message.forcedliquidation != null && message.hasOwnProperty("forcedliquidation"))                        if (typeof message.forcedliquidation !== "boolean")                            return "forcedliquidation: boolean expected";                    if (message.remark != null && message.hasOwnProperty("remark"))                        if (!$util.isString(message.remark))                            return "remark: string expected";                    if (message.successamount != null && message.hasOwnProperty("successamount"))                        if (!$util.isString(message.successamount))                            return "successamount: string expected";                    if (message.tradearea != null && message.hasOwnProperty("tradearea"))                        if (!$util.isInteger(message.tradearea))                            return "tradearea: integer expected";                    if (message.fee != null && message.hasOwnProperty("fee"))                        if (!$util.isString(message.fee))                            return "fee: string expected";                    if (message.trailingdelta != null && message.hasOwnProperty("trailingdelta"))                        if (!$util.isString(message.trailingdelta))                            return "trailingdelta: string expected";                    if (message.activationprice != null && message.hasOwnProperty("activationprice"))                        if (!$util.isString(message.activationprice))                            return "activationprice: string expected";                    if (message.activationtime != null && message.hasOwnProperty("activationtime"))                        if (!$util.isInteger(message.activationtime) && !(message.activationtime && $util.isInteger(message.activationtime.low) && $util.isInteger(message.activationtime.high)))                            return "activationtime: integer|Long expected";                    if (message.triggersign != null && message.hasOwnProperty("triggersign"))                        if (!$util.isInteger(message.triggersign))                            return "triggersign: integer expected";                    if (message.orderid != null && message.hasOwnProperty("orderid"))                        if (!$util.isString(message.orderid))                            return "orderid: string expected";                    return null;                };                /**                 * Creates an EntrustVO message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.EntrustVO} EntrustVO                 */                EntrustVO.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.EntrustVO)                        return object;                    var message = new $root.market.v2.trade.EntrustVO();                    if (object.id != null)                        if ($util.Long)                            (message.id = $util.Long.fromValue(object.id)).unsigned = false;                        else if (typeof object.id === "string")                            message.id = parseInt(object.id, 10);                        else if (typeof object.id === "number")                            message.id = object.id;                        else if (typeof object.id === "object")                            message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber();                    if (object.tradeid != null)                        message.tradeid = object.tradeid | 0;                    if (object.entrusttime != null)                        if ($util.Long)                            (message.entrusttime = $util.Long.fromValue(object.entrusttime)).unsigned = false;                        else if (typeof object.entrusttime === "string")                            message.entrusttime = parseInt(object.entrusttime, 10);                        else if (typeof object.entrusttime === "number")                            message.entrusttime = object.entrusttime;                        else if (typeof object.entrusttime === "object")                            message.entrusttime = new $util.LongBits(object.entrusttime.low >>> 0, object.entrusttime.high >>> 0).toNumber();                    if (object.buycoinshortname != null)                        message.buycoinshortname = String(object.buycoinshortname);                    if (object.sellcoinshortname != null)                        message.sellcoinshortname = String(object.sellcoinshortname);                    if (object.type != null)                        message.type = object.type | 0;                    if (object.direction != null)                        message.direction = object.direction | 0;                    if (object.matchtype != null)                        message.matchtype = object.matchtype | 0;                    if (object.pricetype != null)                        message.pricetype = String(object.pricetype);                    if (object.entrustprice != null)                        message.entrustprice = String(object.entrustprice);                    if (object.count != null)                        message.count = String(object.count);                    if (object.successcount != null)                        message.successcount = String(object.successcount);                    if (object.averageprice != null)                        message.averageprice = String(object.averageprice);                    if (object.status != null)                        message.status = object.status | 0;                    if (object.history != null)                        message.history = Boolean(object.history);                    if (object.pushversion != null)                        if ($util.Long)                            (message.pushversion = $util.Long.fromValue(object.pushversion)).unsigned = false;                        else if (typeof object.pushversion === "string")                            message.pushversion = parseInt(object.pushversion, 10);                        else if (typeof object.pushversion === "number")                            message.pushversion = object.pushversion;                        else if (typeof object.pushversion === "object")                            message.pushversion = new $util.LongBits(object.pushversion.low >>> 0, object.pushversion.high >>> 0).toNumber();                    if (object.remove != null)                        message.remove = Boolean(object.remove);                    if (object.amount != null)                        message.amount = String(object.amount);                    if (object.marketunit != null)                        message.marketunit = String(object.marketunit);                    if (object.funds != null)                        message.funds = String(object.funds);                    if (object.leftfunds != null)                        message.leftfunds = String(object.leftfunds);                    if (object.triggerprice != null)                        message.triggerprice = String(object.triggerprice);                    if (object.marginmode != null)                        message.marginmode = String(object.marginmode);                    if (object.margintrademode != null)                        message.margintrademode = String(object.margintrademode);                    if (object.forcedliquidation != null)                        message.forcedliquidation = Boolean(object.forcedliquidation);                    if (object.remark != null)                        message.remark = String(object.remark);                    if (object.successamount != null)                        message.successamount = String(object.successamount);                    if (object.tradearea != null)                        message.tradearea = object.tradearea | 0;                    if (object.fee != null)                        message.fee = String(object.fee);                    if (object.trailingdelta != null)                        message.trailingdelta = String(object.trailingdelta);                    if (object.activationprice != null)                        message.activationprice = String(object.activationprice);                    if (object.activationtime != null)                        if ($util.Long)                            (message.activationtime = $util.Long.fromValue(object.activationtime)).unsigned = false;                        else if (typeof object.activationtime === "string")                            message.activationtime = parseInt(object.activationtime, 10);                        else if (typeof object.activationtime === "number")                            message.activationtime = object.activationtime;                        else if (typeof object.activationtime === "object")                            message.activationtime = new $util.LongBits(object.activationtime.low >>> 0, object.activationtime.high >>> 0).toNumber();                    if (object.triggersign != null)                        message.triggersign = object.triggersign | 0;                    if (object.orderid != null)                        message.orderid = String(object.orderid);                    return message;                };                /**                 * Creates a plain object from an EntrustVO message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {market.v2.trade.EntrustVO} message EntrustVO                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                EntrustVO.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.id = options.longs === String ? "0" : 0;                        object.tradeid = 0;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.entrusttime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.entrusttime = options.longs === String ? "0" : 0;                        object.buycoinshortname = "";                        object.sellcoinshortname = "";                        object.type = 0;                        object.direction = 0;                        object.matchtype = 0;                        object.pricetype = "";                        object.entrustprice = "";                        object.count = "";                        object.successcount = "";                        object.averageprice = "";                        object.status = 0;                        object.history = false;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.pushversion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.pushversion = options.longs === String ? "0" : 0;                        object.remove = false;                        object.amount = "";                        object.marketunit = "";                        object.funds = "";                        object.leftfunds = "";                        object.triggerprice = "";                        object.marginmode = "";                        object.margintrademode = "";                        object.forcedliquidation = false;                        object.remark = "";                        object.successamount = "";                        object.tradearea = 0;                        object.fee = "";                        object.trailingdelta = "";                        object.activationprice = "";                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.activationtime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.activationtime = options.longs === String ? "0" : 0;                        object.triggersign = 0;                        object.orderid = "";                    }                    if (message.id != null && message.hasOwnProperty("id"))                        if (typeof message.id === "number")                            object.id = options.longs === String ? String(message.id) : message.id;                        else                            object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id;                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        object.tradeid = message.tradeid;                    if (message.entrusttime != null && message.hasOwnProperty("entrusttime"))                        if (typeof message.entrusttime === "number")                            object.entrusttime = options.longs === String ? String(message.entrusttime) : message.entrusttime;                        else                            object.entrusttime = options.longs === String ? $util.Long.prototype.toString.call(message.entrusttime) : options.longs === Number ? new $util.LongBits(message.entrusttime.low >>> 0, message.entrusttime.high >>> 0).toNumber() : message.entrusttime;                    if (message.buycoinshortname != null && message.hasOwnProperty("buycoinshortname"))                        object.buycoinshortname = message.buycoinshortname;                    if (message.sellcoinshortname != null && message.hasOwnProperty("sellcoinshortname"))                        object.sellcoinshortname = message.sellcoinshortname;                    if (message.type != null && message.hasOwnProperty("type"))                        object.type = message.type;                    if (message.direction != null && message.hasOwnProperty("direction"))                        object.direction = message.direction;                    if (message.matchtype != null && message.hasOwnProperty("matchtype"))                        object.matchtype = message.matchtype;                    if (message.pricetype != null && message.hasOwnProperty("pricetype"))                        object.pricetype = message.pricetype;                    if (message.entrustprice != null && message.hasOwnProperty("entrustprice"))                        object.entrustprice = message.entrustprice;                    if (message.count != null && message.hasOwnProperty("count"))                        object.count = message.count;                    if (message.successcount != null && message.hasOwnProperty("successcount"))                        object.successcount = message.successcount;                    if (message.averageprice != null && message.hasOwnProperty("averageprice"))                        object.averageprice = message.averageprice;                    if (message.status != null && message.hasOwnProperty("status"))                        object.status = message.status;                    if (message.history != null && message.hasOwnProperty("history"))                        object.history = message.history;                    if (message.pushversion != null && message.hasOwnProperty("pushversion"))                        if (typeof message.pushversion === "number")                            object.pushversion = options.longs === String ? String(message.pushversion) : message.pushversion;                        else                            object.pushversion = options.longs === String ? $util.Long.prototype.toString.call(message.pushversion) : options.longs === Number ? new $util.LongBits(message.pushversion.low >>> 0, message.pushversion.high >>> 0).toNumber() : message.pushversion;                    if (message.remove != null && message.hasOwnProperty("remove"))                        object.remove = message.remove;                    if (message.amount != null && message.hasOwnProperty("amount"))                        object.amount = message.amount;                    if (message.marketunit != null && message.hasOwnProperty("marketunit"))                        object.marketunit = message.marketunit;                    if (message.funds != null && message.hasOwnProperty("funds"))                        object.funds = message.funds;                    if (message.leftfunds != null && message.hasOwnProperty("leftfunds"))                        object.leftfunds = message.leftfunds;                    if (message.triggerprice != null && message.hasOwnProperty("triggerprice"))                        object.triggerprice = message.triggerprice;                    if (message.marginmode != null && message.hasOwnProperty("marginmode"))                        object.marginmode = message.marginmode;                    if (message.margintrademode != null && message.hasOwnProperty("margintrademode"))                        object.margintrademode = message.margintrademode;                    if (message.forcedliquidation != null && message.hasOwnProperty("forcedliquidation"))                        object.forcedliquidation = message.forcedliquidation;                    if (message.remark != null && message.hasOwnProperty("remark"))                        object.remark = message.remark;                    if (message.successamount != null && message.hasOwnProperty("successamount"))                        object.successamount = message.successamount;                    if (message.tradearea != null && message.hasOwnProperty("tradearea"))                        object.tradearea = message.tradearea;                    if (message.fee != null && message.hasOwnProperty("fee"))                        object.fee = message.fee;                    if (message.trailingdelta != null && message.hasOwnProperty("trailingdelta"))                        object.trailingdelta = message.trailingdelta;                    if (message.activationprice != null && message.hasOwnProperty("activationprice"))                        object.activationprice = message.activationprice;                    if (message.activationtime != null && message.hasOwnProperty("activationtime"))                        if (typeof message.activationtime === "number")                            object.activationtime = options.longs === String ? String(message.activationtime) : message.activationtime;                        else                            object.activationtime = options.longs === String ? $util.Long.prototype.toString.call(message.activationtime) : options.longs === Number ? new $util.LongBits(message.activationtime.low >>> 0, message.activationtime.high >>> 0).toNumber() : message.activationtime;                    if (message.triggersign != null && message.hasOwnProperty("triggersign"))                        object.triggersign = message.triggersign;                    if (message.orderid != null && message.hasOwnProperty("orderid"))                        object.orderid = message.orderid;                    return object;                };                /**                 * Converts this EntrustVO to JSON.                 * @function toJSON                 * @memberof market.v2.trade.EntrustVO                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                EntrustVO.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for EntrustVO                 * @function getTypeUrl                 * @memberof market.v2.trade.EntrustVO                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                EntrustVO.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.EntrustVO";                };                return EntrustVO;            })();            trade.UserAssetBalance = (function() {                /**                 * Properties of a UserAssetBalance.                 * @memberof market.v2.trade                 * @interface IUserAssetBalance                 * @property {string|null} [usdtassets] UserAssetBalance usdtassets                 * @property {string|null} [usdtavailableassets] UserAssetBalance usdtavailableassets                 * @property {string|null} [totalassets] UserAssetBalance totalassets                 * @property {string|null} [btcassets] UserAssetBalance btcassets                 * @property {Array.<market.v2.trade.IUserWallet>|null} [userwalletlist] UserAssetBalance userwalletlist                 */                /**                 * Constructs a new UserAssetBalance.                 * @memberof market.v2.trade                 * @classdesc Represents a UserAssetBalance.                 * @implements IUserAssetBalance                 * @constructor                 * @param {market.v2.trade.IUserAssetBalance=} [properties] Properties to set                 */                function UserAssetBalance(properties) {                    this.userwalletlist = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * UserAssetBalance usdtassets.                 * @member {string} usdtassets                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 */                UserAssetBalance.prototype.usdtassets = "";                /**                 * UserAssetBalance usdtavailableassets.                 * @member {string} usdtavailableassets                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 */                UserAssetBalance.prototype.usdtavailableassets = "";                /**                 * UserAssetBalance totalassets.                 * @member {string} totalassets                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 */                UserAssetBalance.prototype.totalassets = "";                /**                 * UserAssetBalance btcassets.                 * @member {string} btcassets                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 */                UserAssetBalance.prototype.btcassets = "";                /**                 * UserAssetBalance userwalletlist.                 * @member {Array.<market.v2.trade.IUserWallet>} userwalletlist                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 */                UserAssetBalance.prototype.userwalletlist = $util.emptyArray;                /**                 * Creates a new UserAssetBalance instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {market.v2.trade.IUserAssetBalance=} [properties] Properties to set                 * @returns {market.v2.trade.UserAssetBalance} UserAssetBalance instance                 */                UserAssetBalance.create = function create(properties) {                    return new UserAssetBalance(properties);                };                /**                 * Encodes the specified UserAssetBalance message. Does not implicitly {@link market.v2.trade.UserAssetBalance.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {market.v2.trade.IUserAssetBalance} message UserAssetBalance message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserAssetBalance.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.usdtassets != null && Object.hasOwnProperty.call(message, "usdtassets"))                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.usdtassets);                    if (message.usdtavailableassets != null && Object.hasOwnProperty.call(message, "usdtavailableassets"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.usdtavailableassets);                    if (message.totalassets != null && Object.hasOwnProperty.call(message, "totalassets"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.totalassets);                    if (message.btcassets != null && Object.hasOwnProperty.call(message, "btcassets"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.btcassets);                    if (message.userwalletlist != null && message.userwalletlist.length)                        for (var i = 0; i < message.userwalletlist.length; ++i)                            $root.market.v2.trade.UserWallet.encode(message.userwalletlist[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified UserAssetBalance message, length delimited. Does not implicitly {@link market.v2.trade.UserAssetBalance.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {market.v2.trade.IUserAssetBalance} message UserAssetBalance message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserAssetBalance.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a UserAssetBalance message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.UserAssetBalance} UserAssetBalance                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserAssetBalance.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.UserAssetBalance();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.usdtassets = reader.string();                                break;                            }                        case 2: {                                message.usdtavailableassets = reader.string();                                break;                            }                        case 3: {                                message.totalassets = reader.string();                                break;                            }                        case 4: {                                message.btcassets = reader.string();                                break;                            }                        case 5: {                                if (!(message.userwalletlist && message.userwalletlist.length))                                    message.userwalletlist = [];                                message.userwalletlist.push($root.market.v2.trade.UserWallet.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a UserAssetBalance message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.UserAssetBalance} UserAssetBalance                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserAssetBalance.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a UserAssetBalance message.                 * @function verify                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                UserAssetBalance.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.usdtassets != null && message.hasOwnProperty("usdtassets"))                        if (!$util.isString(message.usdtassets))                            return "usdtassets: string expected";                    if (message.usdtavailableassets != null && message.hasOwnProperty("usdtavailableassets"))                        if (!$util.isString(message.usdtavailableassets))                            return "usdtavailableassets: string expected";                    if (message.totalassets != null && message.hasOwnProperty("totalassets"))                        if (!$util.isString(message.totalassets))                            return "totalassets: string expected";                    if (message.btcassets != null && message.hasOwnProperty("btcassets"))                        if (!$util.isString(message.btcassets))                            return "btcassets: string expected";                    if (message.userwalletlist != null && message.hasOwnProperty("userwalletlist")) {                        if (!Array.isArray(message.userwalletlist))                            return "userwalletlist: array expected";                        for (var i = 0; i < message.userwalletlist.length; ++i) {                            var error = $root.market.v2.trade.UserWallet.verify(message.userwalletlist[i]);                            if (error)                                return "userwalletlist." + error;                        }                    }                    return null;                };                /**                 * Creates a UserAssetBalance message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.UserAssetBalance} UserAssetBalance                 */                UserAssetBalance.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.UserAssetBalance)                        return object;                    var message = new $root.market.v2.trade.UserAssetBalance();                    if (object.usdtassets != null)                        message.usdtassets = String(object.usdtassets);                    if (object.usdtavailableassets != null)                        message.usdtavailableassets = String(object.usdtavailableassets);                    if (object.totalassets != null)                        message.totalassets = String(object.totalassets);                    if (object.btcassets != null)                        message.btcassets = String(object.btcassets);                    if (object.userwalletlist) {                        if (!Array.isArray(object.userwalletlist))                            throw TypeError(".market.v2.trade.UserAssetBalance.userwalletlist: array expected");                        message.userwalletlist = [];                        for (var i = 0; i < object.userwalletlist.length; ++i) {                            if (typeof object.userwalletlist[i] !== "object")                                throw TypeError(".market.v2.trade.UserAssetBalance.userwalletlist: object expected");                            message.userwalletlist[i] = $root.market.v2.trade.UserWallet.fromObject(object.userwalletlist[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a UserAssetBalance message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {market.v2.trade.UserAssetBalance} message UserAssetBalance                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                UserAssetBalance.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.userwalletlist = [];                    if (options.defaults) {                        object.usdtassets = "";                        object.usdtavailableassets = "";                        object.totalassets = "";                        object.btcassets = "";                    }                    if (message.usdtassets != null && message.hasOwnProperty("usdtassets"))                        object.usdtassets = message.usdtassets;                    if (message.usdtavailableassets != null && message.hasOwnProperty("usdtavailableassets"))                        object.usdtavailableassets = message.usdtavailableassets;                    if (message.totalassets != null && message.hasOwnProperty("totalassets"))                        object.totalassets = message.totalassets;                    if (message.btcassets != null && message.hasOwnProperty("btcassets"))                        object.btcassets = message.btcassets;                    if (message.userwalletlist && message.userwalletlist.length) {                        object.userwalletlist = [];                        for (var j = 0; j < message.userwalletlist.length; ++j)                            object.userwalletlist[j] = $root.market.v2.trade.UserWallet.toObject(message.userwalletlist[j], options);                    }                    return object;                };                /**                 * Converts this UserAssetBalance to JSON.                 * @function toJSON                 * @memberof market.v2.trade.UserAssetBalance                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                UserAssetBalance.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for UserAssetBalance                 * @function getTypeUrl                 * @memberof market.v2.trade.UserAssetBalance                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                UserAssetBalance.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.UserAssetBalance";                };                return UserAssetBalance;            })();            trade.UserWallet = (function() {                /**                 * Properties of a UserWallet.                 * @memberof market.v2.trade                 * @interface IUserWallet                 * @property {Array.<market.v2.trade.IUserWalletPairInfo>|null} [listList] UserWallet listList                 */                /**                 * Constructs a new UserWallet.                 * @memberof market.v2.trade                 * @classdesc Represents a UserWallet.                 * @implements IUserWallet                 * @constructor                 * @param {market.v2.trade.IUserWallet=} [properties] Properties to set                 */                function UserWallet(properties) {                    this.listList = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * UserWallet listList.                 * @member {Array.<market.v2.trade.IUserWalletPairInfo>} listList                 * @memberof market.v2.trade.UserWallet                 * @instance                 */                UserWallet.prototype.listList = $util.emptyArray;                /**                 * Creates a new UserWallet instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {market.v2.trade.IUserWallet=} [properties] Properties to set                 * @returns {market.v2.trade.UserWallet} UserWallet instance                 */                UserWallet.create = function create(properties) {                    return new UserWallet(properties);                };                /**                 * Encodes the specified UserWallet message. Does not implicitly {@link market.v2.trade.UserWallet.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {market.v2.trade.IUserWallet} message UserWallet message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserWallet.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.listList != null && message.listList.length)                        for (var i = 0; i < message.listList.length; ++i)                            $root.market.v2.trade.UserWalletPairInfo.encode(message.listList[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified UserWallet message, length delimited. Does not implicitly {@link market.v2.trade.UserWallet.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {market.v2.trade.IUserWallet} message UserWallet message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserWallet.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a UserWallet message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.UserWallet} UserWallet                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserWallet.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.UserWallet();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                if (!(message.listList && message.listList.length))                                    message.listList = [];                                message.listList.push($root.market.v2.trade.UserWalletPairInfo.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a UserWallet message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.UserWallet} UserWallet                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserWallet.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a UserWallet message.                 * @function verify                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                UserWallet.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.listList != null && message.hasOwnProperty("listList")) {                        if (!Array.isArray(message.listList))                            return "listList: array expected";                        for (var i = 0; i < message.listList.length; ++i) {                            var error = $root.market.v2.trade.UserWalletPairInfo.verify(message.listList[i]);                            if (error)                                return "listList." + error;                        }                    }                    return null;                };                /**                 * Creates a UserWallet message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.UserWallet} UserWallet                 */                UserWallet.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.UserWallet)                        return object;                    var message = new $root.market.v2.trade.UserWallet();                    if (object.listList) {                        if (!Array.isArray(object.listList))                            throw TypeError(".market.v2.trade.UserWallet.listList: array expected");                        message.listList = [];                        for (var i = 0; i < object.listList.length; ++i) {                            if (typeof object.listList[i] !== "object")                                throw TypeError(".market.v2.trade.UserWallet.listList: object expected");                            message.listList[i] = $root.market.v2.trade.UserWalletPairInfo.fromObject(object.listList[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a UserWallet message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {market.v2.trade.UserWallet} message UserWallet                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                UserWallet.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.listList = [];                    if (message.listList && message.listList.length) {                        object.listList = [];                        for (var j = 0; j < message.listList.length; ++j)                            object.listList[j] = $root.market.v2.trade.UserWalletPairInfo.toObject(message.listList[j], options);                    }                    return object;                };                /**                 * Converts this UserWallet to JSON.                 * @function toJSON                 * @memberof market.v2.trade.UserWallet                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                UserWallet.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for UserWallet                 * @function getTypeUrl                 * @memberof market.v2.trade.UserWallet                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                UserWallet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.UserWallet";                };                return UserWallet;            })();            trade.UserWalletPairInfo = (function() {                /**                 * Properties of a UserWalletPairInfo.                 * @memberof market.v2.trade                 * @interface IUserWalletPairInfo                 * @property {number|null} [coinid] UserWalletPairInfo coinid                 * @property {string|null} [totalAmount] UserWalletPairInfo totalAmount                 * @property {string|null} [total] UserWalletPairInfo total                 * @property {string|null} [frozen] UserWalletPairInfo frozen                 * @property {string|null} [borrow] UserWalletPairInfo borrow                 * @property {string|null} [coinname] UserWalletPairInfo coinname                 * @property {string|null} [shortName] UserWalletPairInfo shortName                 * @property {boolean|null} [withdraw] UserWalletPairInfo withdraw                 * @property {boolean|null} [recharge] UserWalletPairInfo recharge                 * @property {string|null} [usdtprice] UserWalletPairInfo usdtprice                 * @property {string|null} [price] UserWalletPairInfo price                 * @property {number|null} [sortid] UserWalletPairInfo sortid                 */                /**                 * Constructs a new UserWalletPairInfo.                 * @memberof market.v2.trade                 * @classdesc Represents a UserWalletPairInfo.                 * @implements IUserWalletPairInfo                 * @constructor                 * @param {market.v2.trade.IUserWalletPairInfo=} [properties] Properties to set                 */                function UserWalletPairInfo(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * UserWalletPairInfo coinid.                 * @member {number} coinid                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.coinid = 0;                /**                 * UserWalletPairInfo totalAmount.                 * @member {string} totalAmount                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.totalAmount = "";                /**                 * UserWalletPairInfo total.                 * @member {string} total                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.total = "";                /**                 * UserWalletPairInfo frozen.                 * @member {string} frozen                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.frozen = "";                /**                 * UserWalletPairInfo borrow.                 * @member {string} borrow                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.borrow = "";                /**                 * UserWalletPairInfo coinname.                 * @member {string} coinname                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.coinname = "";                /**                 * UserWalletPairInfo shortName.                 * @member {string} shortName                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.shortName = "";                /**                 * UserWalletPairInfo withdraw.                 * @member {boolean} withdraw                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.withdraw = false;                /**                 * UserWalletPairInfo recharge.                 * @member {boolean} recharge                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.recharge = false;                /**                 * UserWalletPairInfo usdtprice.                 * @member {string} usdtprice                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.usdtprice = "";                /**                 * UserWalletPairInfo price.                 * @member {string} price                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.price = "";                /**                 * UserWalletPairInfo sortid.                 * @member {number} sortid                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 */                UserWalletPairInfo.prototype.sortid = 0;                /**                 * Creates a new UserWalletPairInfo instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {market.v2.trade.IUserWalletPairInfo=} [properties] Properties to set                 * @returns {market.v2.trade.UserWalletPairInfo} UserWalletPairInfo instance                 */                UserWalletPairInfo.create = function create(properties) {                    return new UserWalletPairInfo(properties);                };                /**                 * Encodes the specified UserWalletPairInfo message. Does not implicitly {@link market.v2.trade.UserWalletPairInfo.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {market.v2.trade.IUserWalletPairInfo} message UserWalletPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserWalletPairInfo.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.coinid != null && Object.hasOwnProperty.call(message, "coinid"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.coinid);                    if (message.totalAmount != null && Object.hasOwnProperty.call(message, "totalAmount"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.totalAmount);                    if (message.total != null && Object.hasOwnProperty.call(message, "total"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.total);                    if (message.frozen != null && Object.hasOwnProperty.call(message, "frozen"))                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.frozen);                    if (message.borrow != null && Object.hasOwnProperty.call(message, "borrow"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.borrow);                    if (message.coinname != null && Object.hasOwnProperty.call(message, "coinname"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.coinname);                    if (message.shortName != null && Object.hasOwnProperty.call(message, "shortName"))                        writer.uint32(/* id 7, wireType 2 =*/58).string(message.shortName);                    if (message.withdraw != null && Object.hasOwnProperty.call(message, "withdraw"))                        writer.uint32(/* id 8, wireType 0 =*/64).bool(message.withdraw);                    if (message.recharge != null && Object.hasOwnProperty.call(message, "recharge"))                        writer.uint32(/* id 9, wireType 0 =*/72).bool(message.recharge);                    if (message.usdtprice != null && Object.hasOwnProperty.call(message, "usdtprice"))                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.usdtprice);                    if (message.price != null && Object.hasOwnProperty.call(message, "price"))                        writer.uint32(/* id 11, wireType 2 =*/90).string(message.price);                    if (message.sortid != null && Object.hasOwnProperty.call(message, "sortid"))                        writer.uint32(/* id 12, wireType 0 =*/96).int32(message.sortid);                    return writer;                };                /**                 * Encodes the specified UserWalletPairInfo message, length delimited. Does not implicitly {@link market.v2.trade.UserWalletPairInfo.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {market.v2.trade.IUserWalletPairInfo} message UserWalletPairInfo message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                UserWalletPairInfo.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a UserWalletPairInfo message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.UserWalletPairInfo} UserWalletPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserWalletPairInfo.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.UserWalletPairInfo();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.coinid = reader.int32();                                break;                            }                        case 2: {                                message.totalAmount = reader.string();                                break;                            }                        case 3: {                                message.total = reader.string();                                break;                            }                        case 4: {                                message.frozen = reader.string();                                break;                            }                        case 5: {                                message.borrow = reader.string();                                break;                            }                        case 6: {                                message.coinname = reader.string();                                break;                            }                        case 7: {                                message.shortName = reader.string();                                break;                            }                        case 8: {                                message.withdraw = reader.bool();                                break;                            }                        case 9: {                                message.recharge = reader.bool();                                break;                            }                        case 10: {                                message.usdtprice = reader.string();                                break;                            }                        case 11: {                                message.price = reader.string();                                break;                            }                        case 12: {                                message.sortid = reader.int32();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a UserWalletPairInfo message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.UserWalletPairInfo} UserWalletPairInfo                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                UserWalletPairInfo.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a UserWalletPairInfo message.                 * @function verify                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                UserWalletPairInfo.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.coinid != null && message.hasOwnProperty("coinid"))                        if (!$util.isInteger(message.coinid))                            return "coinid: integer expected";                    if (message.totalAmount != null && message.hasOwnProperty("totalAmount"))                        if (!$util.isString(message.totalAmount))                            return "totalAmount: string expected";                    if (message.total != null && message.hasOwnProperty("total"))                        if (!$util.isString(message.total))                            return "total: string expected";                    if (message.frozen != null && message.hasOwnProperty("frozen"))                        if (!$util.isString(message.frozen))                            return "frozen: string expected";                    if (message.borrow != null && message.hasOwnProperty("borrow"))                        if (!$util.isString(message.borrow))                            return "borrow: string expected";                    if (message.coinname != null && message.hasOwnProperty("coinname"))                        if (!$util.isString(message.coinname))                            return "coinname: string expected";                    if (message.shortName != null && message.hasOwnProperty("shortName"))                        if (!$util.isString(message.shortName))                            return "shortName: string expected";                    if (message.withdraw != null && message.hasOwnProperty("withdraw"))                        if (typeof message.withdraw !== "boolean")                            return "withdraw: boolean expected";                    if (message.recharge != null && message.hasOwnProperty("recharge"))                        if (typeof message.recharge !== "boolean")                            return "recharge: boolean expected";                    if (message.usdtprice != null && message.hasOwnProperty("usdtprice"))                        if (!$util.isString(message.usdtprice))                            return "usdtprice: string expected";                    if (message.price != null && message.hasOwnProperty("price"))                        if (!$util.isString(message.price))                            return "price: string expected";                    if (message.sortid != null && message.hasOwnProperty("sortid"))                        if (!$util.isInteger(message.sortid))                            return "sortid: integer expected";                    return null;                };                /**                 * Creates a UserWalletPairInfo message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.UserWalletPairInfo} UserWalletPairInfo                 */                UserWalletPairInfo.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.UserWalletPairInfo)                        return object;                    var message = new $root.market.v2.trade.UserWalletPairInfo();                    if (object.coinid != null)                        message.coinid = object.coinid | 0;                    if (object.totalAmount != null)                        message.totalAmount = String(object.totalAmount);                    if (object.total != null)                        message.total = String(object.total);                    if (object.frozen != null)                        message.frozen = String(object.frozen);                    if (object.borrow != null)                        message.borrow = String(object.borrow);                    if (object.coinname != null)                        message.coinname = String(object.coinname);                    if (object.shortName != null)                        message.shortName = String(object.shortName);                    if (object.withdraw != null)                        message.withdraw = Boolean(object.withdraw);                    if (object.recharge != null)                        message.recharge = Boolean(object.recharge);                    if (object.usdtprice != null)                        message.usdtprice = String(object.usdtprice);                    if (object.price != null)                        message.price = String(object.price);                    if (object.sortid != null)                        message.sortid = object.sortid | 0;                    return message;                };                /**                 * Creates a plain object from a UserWalletPairInfo message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {market.v2.trade.UserWalletPairInfo} message UserWalletPairInfo                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                UserWalletPairInfo.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.coinid = 0;                        object.totalAmount = "";                        object.total = "";                        object.frozen = "";                        object.borrow = "";                        object.coinname = "";                        object.shortName = "";                        object.withdraw = false;                        object.recharge = false;                        object.usdtprice = "";                        object.price = "";                        object.sortid = 0;                    }                    if (message.coinid != null && message.hasOwnProperty("coinid"))                        object.coinid = message.coinid;                    if (message.totalAmount != null && message.hasOwnProperty("totalAmount"))                        object.totalAmount = message.totalAmount;                    if (message.total != null && message.hasOwnProperty("total"))                        object.total = message.total;                    if (message.frozen != null && message.hasOwnProperty("frozen"))                        object.frozen = message.frozen;                    if (message.borrow != null && message.hasOwnProperty("borrow"))                        object.borrow = message.borrow;                    if (message.coinname != null && message.hasOwnProperty("coinname"))                        object.coinname = message.coinname;                    if (message.shortName != null && message.hasOwnProperty("shortName"))                        object.shortName = message.shortName;                    if (message.withdraw != null && message.hasOwnProperty("withdraw"))                        object.withdraw = message.withdraw;                    if (message.recharge != null && message.hasOwnProperty("recharge"))                        object.recharge = message.recharge;                    if (message.usdtprice != null && message.hasOwnProperty("usdtprice"))                        object.usdtprice = message.usdtprice;                    if (message.price != null && message.hasOwnProperty("price"))                        object.price = message.price;                    if (message.sortid != null && message.hasOwnProperty("sortid"))                        object.sortid = message.sortid;                    return object;                };                /**                 * Converts this UserWalletPairInfo to JSON.                 * @function toJSON                 * @memberof market.v2.trade.UserWalletPairInfo                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                UserWalletPairInfo.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for UserWalletPairInfo                 * @function getTypeUrl                 * @memberof market.v2.trade.UserWalletPairInfo                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                UserWalletPairInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.UserWalletPairInfo";                };                return UserWalletPairInfo;            })();            trade.MarketTickerList = (function() {                /**                 * Properties of a MarketTickerList.                 * @memberof market.v2.trade                 * @interface IMarketTickerList                 */                /**                 * Constructs a new MarketTickerList.                 * @memberof market.v2.trade                 * @classdesc Represents a MarketTickerList.                 * @implements IMarketTickerList                 * @constructor                 * @param {market.v2.trade.IMarketTickerList=} [properties] Properties to set                 */                function MarketTickerList(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new MarketTickerList instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {market.v2.trade.IMarketTickerList=} [properties] Properties to set                 * @returns {market.v2.trade.MarketTickerList} MarketTickerList instance                 */                MarketTickerList.create = function create(properties) {                    return new MarketTickerList(properties);                };                /**                 * Encodes the specified MarketTickerList message. Does not implicitly {@link market.v2.trade.MarketTickerList.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {market.v2.trade.IMarketTickerList} message MarketTickerList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketTickerList.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified MarketTickerList message, length delimited. Does not implicitly {@link market.v2.trade.MarketTickerList.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {market.v2.trade.IMarketTickerList} message MarketTickerList message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketTickerList.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MarketTickerList message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MarketTickerList} MarketTickerList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketTickerList.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MarketTickerList();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MarketTickerList message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MarketTickerList} MarketTickerList                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketTickerList.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MarketTickerList message.                 * @function verify                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MarketTickerList.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a MarketTickerList message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MarketTickerList} MarketTickerList                 */                MarketTickerList.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MarketTickerList)                        return object;                    return new $root.market.v2.trade.MarketTickerList();                };                /**                 * Creates a plain object from a MarketTickerList message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {market.v2.trade.MarketTickerList} message MarketTickerList                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MarketTickerList.toObject = function toObject() {                    return {};                };                /**                 * Converts this MarketTickerList to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MarketTickerList                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MarketTickerList.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MarketTickerList                 * @function getTypeUrl                 * @memberof market.v2.trade.MarketTickerList                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MarketTickerList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MarketTickerList";                };                return MarketTickerList;            })();            trade.MarketMonit = (function() {                /**                 * Properties of a MarketMonit.                 * @memberof market.v2.trade                 * @interface IMarketMonit                 * @property {number|Long|null} [id] MarketMonit id                 * @property {string|null} [indexkey] MarketMonit indexkey                 * @property {number|null} [scope] MarketMonit scope                 * @property {number|null} [tradeid] MarketMonit tradeid                 * @property {string|null} [tradecode] MarketMonit tradecode                 * @property {string|null} [indexbase] MarketMonit indexbase                 * @property {string|null} [quote] MarketMonit quote                 * @property {string|null} [lever] MarketMonit lever                 * @property {string|null} [chg] MarketMonit chg                 * @property {string|null} [last] MarketMonit last                 * @property {string|null} [cny] MarketMonit cny                 * @property {string|null} [createtime] MarketMonit createtime                 * @property {string|null} [biztype] MarketMonit biztype                 * @property {string|null} [contracttype] MarketMonit contracttype                 * @property {number|Long|null} [liquidationdate] MarketMonit liquidationdate                 * @property {number|Long|null} [movetime] MarketMonit movetime                 */                /**                 * Constructs a new MarketMonit.                 * @memberof market.v2.trade                 * @classdesc Represents a MarketMonit.                 * @implements IMarketMonit                 * @constructor                 * @param {market.v2.trade.IMarketMonit=} [properties] Properties to set                 */                function MarketMonit(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * MarketMonit id.                 * @member {number|Long} id                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.id = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * MarketMonit indexkey.                 * @member {string} indexkey                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.indexkey = "";                /**                 * MarketMonit scope.                 * @member {number} scope                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.scope = 0;                /**                 * MarketMonit tradeid.                 * @member {number} tradeid                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.tradeid = 0;                /**                 * MarketMonit tradecode.                 * @member {string} tradecode                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.tradecode = "";                /**                 * MarketMonit indexbase.                 * @member {string} indexbase                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.indexbase = "";                /**                 * MarketMonit quote.                 * @member {string} quote                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.quote = "";                /**                 * MarketMonit lever.                 * @member {string} lever                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.lever = "";                /**                 * MarketMonit chg.                 * @member {string} chg                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.chg = "";                /**                 * MarketMonit last.                 * @member {string} last                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.last = "";                /**                 * MarketMonit cny.                 * @member {string} cny                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.cny = "";                /**                 * MarketMonit createtime.                 * @member {string} createtime                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.createtime = "";                /**                 * MarketMonit biztype.                 * @member {string} biztype                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.biztype = "";                /**                 * MarketMonit contracttype.                 * @member {string} contracttype                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.contracttype = "";                /**                 * MarketMonit liquidationdate.                 * @member {number|Long} liquidationdate                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.liquidationdate = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * MarketMonit movetime.                 * @member {number|Long} movetime                 * @memberof market.v2.trade.MarketMonit                 * @instance                 */                MarketMonit.prototype.movetime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Creates a new MarketMonit instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {market.v2.trade.IMarketMonit=} [properties] Properties to set                 * @returns {market.v2.trade.MarketMonit} MarketMonit instance                 */                MarketMonit.create = function create(properties) {                    return new MarketMonit(properties);                };                /**                 * Encodes the specified MarketMonit message. Does not implicitly {@link market.v2.trade.MarketMonit.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {market.v2.trade.IMarketMonit} message MarketMonit message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketMonit.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.id != null && Object.hasOwnProperty.call(message, "id"))                        writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id);                    if (message.indexkey != null && Object.hasOwnProperty.call(message, "indexkey"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.indexkey);                    if (message.scope != null && Object.hasOwnProperty.call(message, "scope"))                        writer.uint32(/* id 3, wireType 0 =*/24).int32(message.scope);                    if (message.tradeid != null && Object.hasOwnProperty.call(message, "tradeid"))                        writer.uint32(/* id 4, wireType 0 =*/32).int32(message.tradeid);                    if (message.tradecode != null && Object.hasOwnProperty.call(message, "tradecode"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.tradecode);                    if (message.indexbase != null && Object.hasOwnProperty.call(message, "indexbase"))                        writer.uint32(/* id 6, wireType 2 =*/50).string(message.indexbase);                    if (message.quote != null && Object.hasOwnProperty.call(message, "quote"))                        writer.uint32(/* id 7, wireType 2 =*/58).string(message.quote);                    if (message.lever != null && Object.hasOwnProperty.call(message, "lever"))                        writer.uint32(/* id 8, wireType 2 =*/66).string(message.lever);                    if (message.chg != null && Object.hasOwnProperty.call(message, "chg"))                        writer.uint32(/* id 9, wireType 2 =*/74).string(message.chg);                    if (message.last != null && Object.hasOwnProperty.call(message, "last"))                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.last);                    if (message.cny != null && Object.hasOwnProperty.call(message, "cny"))                        writer.uint32(/* id 11, wireType 2 =*/90).string(message.cny);                    if (message.createtime != null && Object.hasOwnProperty.call(message, "createtime"))                        writer.uint32(/* id 12, wireType 2 =*/98).string(message.createtime);                    if (message.biztype != null && Object.hasOwnProperty.call(message, "biztype"))                        writer.uint32(/* id 13, wireType 2 =*/106).string(message.biztype);                    if (message.contracttype != null && Object.hasOwnProperty.call(message, "contracttype"))                        writer.uint32(/* id 14, wireType 2 =*/114).string(message.contracttype);                    if (message.liquidationdate != null && Object.hasOwnProperty.call(message, "liquidationdate"))                        writer.uint32(/* id 15, wireType 0 =*/120).int64(message.liquidationdate);                    if (message.movetime != null && Object.hasOwnProperty.call(message, "movetime"))                        writer.uint32(/* id 16, wireType 0 =*/128).int64(message.movetime);                    return writer;                };                /**                 * Encodes the specified MarketMonit message, length delimited. Does not implicitly {@link market.v2.trade.MarketMonit.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {market.v2.trade.IMarketMonit} message MarketMonit message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketMonit.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MarketMonit message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MarketMonit} MarketMonit                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketMonit.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MarketMonit();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.id = reader.int64();                                break;                            }                        case 2: {                                message.indexkey = reader.string();                                break;                            }                        case 3: {                                message.scope = reader.int32();                                break;                            }                        case 4: {                                message.tradeid = reader.int32();                                break;                            }                        case 5: {                                message.tradecode = reader.string();                                break;                            }                        case 6: {                                message.indexbase = reader.string();                                break;                            }                        case 7: {                                message.quote = reader.string();                                break;                            }                        case 8: {                                message.lever = reader.string();                                break;                            }                        case 9: {                                message.chg = reader.string();                                break;                            }                        case 10: {                                message.last = reader.string();                                break;                            }                        case 11: {                                message.cny = reader.string();                                break;                            }                        case 12: {                                message.createtime = reader.string();                                break;                            }                        case 13: {                                message.biztype = reader.string();                                break;                            }                        case 14: {                                message.contracttype = reader.string();                                break;                            }                        case 15: {                                message.liquidationdate = reader.int64();                                break;                            }                        case 16: {                                message.movetime = reader.int64();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MarketMonit message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MarketMonit} MarketMonit                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketMonit.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MarketMonit message.                 * @function verify                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MarketMonit.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.id != null && message.hasOwnProperty("id"))                        if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high)))                            return "id: integer|Long expected";                    if (message.indexkey != null && message.hasOwnProperty("indexkey"))                        if (!$util.isString(message.indexkey))                            return "indexkey: string expected";                    if (message.scope != null && message.hasOwnProperty("scope"))                        if (!$util.isInteger(message.scope))                            return "scope: integer expected";                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        if (!$util.isInteger(message.tradeid))                            return "tradeid: integer expected";                    if (message.tradecode != null && message.hasOwnProperty("tradecode"))                        if (!$util.isString(message.tradecode))                            return "tradecode: string expected";                    if (message.indexbase != null && message.hasOwnProperty("indexbase"))                        if (!$util.isString(message.indexbase))                            return "indexbase: string expected";                    if (message.quote != null && message.hasOwnProperty("quote"))                        if (!$util.isString(message.quote))                            return "quote: string expected";                    if (message.lever != null && message.hasOwnProperty("lever"))                        if (!$util.isString(message.lever))                            return "lever: string expected";                    if (message.chg != null && message.hasOwnProperty("chg"))                        if (!$util.isString(message.chg))                            return "chg: string expected";                    if (message.last != null && message.hasOwnProperty("last"))                        if (!$util.isString(message.last))                            return "last: string expected";                    if (message.cny != null && message.hasOwnProperty("cny"))                        if (!$util.isString(message.cny))                            return "cny: string expected";                    if (message.createtime != null && message.hasOwnProperty("createtime"))                        if (!$util.isString(message.createtime))                            return "createtime: string expected";                    if (message.biztype != null && message.hasOwnProperty("biztype"))                        if (!$util.isString(message.biztype))                            return "biztype: string expected";                    if (message.contracttype != null && message.hasOwnProperty("contracttype"))                        if (!$util.isString(message.contracttype))                            return "contracttype: string expected";                    if (message.liquidationdate != null && message.hasOwnProperty("liquidationdate"))                        if (!$util.isInteger(message.liquidationdate) && !(message.liquidationdate && $util.isInteger(message.liquidationdate.low) && $util.isInteger(message.liquidationdate.high)))                            return "liquidationdate: integer|Long expected";                    if (message.movetime != null && message.hasOwnProperty("movetime"))                        if (!$util.isInteger(message.movetime) && !(message.movetime && $util.isInteger(message.movetime.low) && $util.isInteger(message.movetime.high)))                            return "movetime: integer|Long expected";                    return null;                };                /**                 * Creates a MarketMonit message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MarketMonit} MarketMonit                 */                MarketMonit.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MarketMonit)                        return object;                    var message = new $root.market.v2.trade.MarketMonit();                    if (object.id != null)                        if ($util.Long)                            (message.id = $util.Long.fromValue(object.id)).unsigned = false;                        else if (typeof object.id === "string")                            message.id = parseInt(object.id, 10);                        else if (typeof object.id === "number")                            message.id = object.id;                        else if (typeof object.id === "object")                            message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber();                    if (object.indexkey != null)                        message.indexkey = String(object.indexkey);                    if (object.scope != null)                        message.scope = object.scope | 0;                    if (object.tradeid != null)                        message.tradeid = object.tradeid | 0;                    if (object.tradecode != null)                        message.tradecode = String(object.tradecode);                    if (object.indexbase != null)                        message.indexbase = String(object.indexbase);                    if (object.quote != null)                        message.quote = String(object.quote);                    if (object.lever != null)                        message.lever = String(object.lever);                    if (object.chg != null)                        message.chg = String(object.chg);                    if (object.last != null)                        message.last = String(object.last);                    if (object.cny != null)                        message.cny = String(object.cny);                    if (object.createtime != null)                        message.createtime = String(object.createtime);                    if (object.biztype != null)                        message.biztype = String(object.biztype);                    if (object.contracttype != null)                        message.contracttype = String(object.contracttype);                    if (object.liquidationdate != null)                        if ($util.Long)                            (message.liquidationdate = $util.Long.fromValue(object.liquidationdate)).unsigned = false;                        else if (typeof object.liquidationdate === "string")                            message.liquidationdate = parseInt(object.liquidationdate, 10);                        else if (typeof object.liquidationdate === "number")                            message.liquidationdate = object.liquidationdate;                        else if (typeof object.liquidationdate === "object")                            message.liquidationdate = new $util.LongBits(object.liquidationdate.low >>> 0, object.liquidationdate.high >>> 0).toNumber();                    if (object.movetime != null)                        if ($util.Long)                            (message.movetime = $util.Long.fromValue(object.movetime)).unsigned = false;                        else if (typeof object.movetime === "string")                            message.movetime = parseInt(object.movetime, 10);                        else if (typeof object.movetime === "number")                            message.movetime = object.movetime;                        else if (typeof object.movetime === "object")                            message.movetime = new $util.LongBits(object.movetime.low >>> 0, object.movetime.high >>> 0).toNumber();                    return message;                };                /**                 * Creates a plain object from a MarketMonit message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {market.v2.trade.MarketMonit} message MarketMonit                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MarketMonit.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.id = options.longs === String ? "0" : 0;                        object.indexkey = "";                        object.scope = 0;                        object.tradeid = 0;                        object.tradecode = "";                        object.indexbase = "";                        object.quote = "";                        object.lever = "";                        object.chg = "";                        object.last = "";                        object.cny = "";                        object.createtime = "";                        object.biztype = "";                        object.contracttype = "";                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.liquidationdate = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.liquidationdate = options.longs === String ? "0" : 0;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.movetime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.movetime = options.longs === String ? "0" : 0;                    }                    if (message.id != null && message.hasOwnProperty("id"))                        if (typeof message.id === "number")                            object.id = options.longs === String ? String(message.id) : message.id;                        else                            object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id;                    if (message.indexkey != null && message.hasOwnProperty("indexkey"))                        object.indexkey = message.indexkey;                    if (message.scope != null && message.hasOwnProperty("scope"))                        object.scope = message.scope;                    if (message.tradeid != null && message.hasOwnProperty("tradeid"))                        object.tradeid = message.tradeid;                    if (message.tradecode != null && message.hasOwnProperty("tradecode"))                        object.tradecode = message.tradecode;                    if (message.indexbase != null && message.hasOwnProperty("indexbase"))                        object.indexbase = message.indexbase;                    if (message.quote != null && message.hasOwnProperty("quote"))                        object.quote = message.quote;                    if (message.lever != null && message.hasOwnProperty("lever"))                        object.lever = message.lever;                    if (message.chg != null && message.hasOwnProperty("chg"))                        object.chg = message.chg;                    if (message.last != null && message.hasOwnProperty("last"))                        object.last = message.last;                    if (message.cny != null && message.hasOwnProperty("cny"))                        object.cny = message.cny;                    if (message.createtime != null && message.hasOwnProperty("createtime"))                        object.createtime = message.createtime;                    if (message.biztype != null && message.hasOwnProperty("biztype"))                        object.biztype = message.biztype;                    if (message.contracttype != null && message.hasOwnProperty("contracttype"))                        object.contracttype = message.contracttype;                    if (message.liquidationdate != null && message.hasOwnProperty("liquidationdate"))                        if (typeof message.liquidationdate === "number")                            object.liquidationdate = options.longs === String ? String(message.liquidationdate) : message.liquidationdate;                        else                            object.liquidationdate = options.longs === String ? $util.Long.prototype.toString.call(message.liquidationdate) : options.longs === Number ? new $util.LongBits(message.liquidationdate.low >>> 0, message.liquidationdate.high >>> 0).toNumber() : message.liquidationdate;                    if (message.movetime != null && message.hasOwnProperty("movetime"))                        if (typeof message.movetime === "number")                            object.movetime = options.longs === String ? String(message.movetime) : message.movetime;                        else                            object.movetime = options.longs === String ? $util.Long.prototype.toString.call(message.movetime) : options.longs === Number ? new $util.LongBits(message.movetime.low >>> 0, message.movetime.high >>> 0).toNumber() : message.movetime;                    return object;                };                /**                 * Converts this MarketMonit to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MarketMonit                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MarketMonit.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MarketMonit                 * @function getTypeUrl                 * @memberof market.v2.trade.MarketMonit                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MarketMonit.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MarketMonit";                };                return MarketMonit;            })();            trade.MarginCrossAssetVO = (function() {                /**                 * Properties of a MarginCrossAssetVO.                 * @memberof market.v2.trade                 * @interface IMarginCrossAssetVO                 */                /**                 * Constructs a new MarginCrossAssetVO.                 * @memberof market.v2.trade                 * @classdesc Represents a MarginCrossAssetVO.                 * @implements IMarginCrossAssetVO                 * @constructor                 * @param {market.v2.trade.IMarginCrossAssetVO=} [properties] Properties to set                 */                function MarginCrossAssetVO(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new MarginCrossAssetVO instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {market.v2.trade.IMarginCrossAssetVO=} [properties] Properties to set                 * @returns {market.v2.trade.MarginCrossAssetVO} MarginCrossAssetVO instance                 */                MarginCrossAssetVO.create = function create(properties) {                    return new MarginCrossAssetVO(properties);                };                /**                 * Encodes the specified MarginCrossAssetVO message. Does not implicitly {@link market.v2.trade.MarginCrossAssetVO.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {market.v2.trade.IMarginCrossAssetVO} message MarginCrossAssetVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarginCrossAssetVO.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified MarginCrossAssetVO message, length delimited. Does not implicitly {@link market.v2.trade.MarginCrossAssetVO.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {market.v2.trade.IMarginCrossAssetVO} message MarginCrossAssetVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarginCrossAssetVO.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MarginCrossAssetVO message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MarginCrossAssetVO} MarginCrossAssetVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarginCrossAssetVO.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MarginCrossAssetVO();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MarginCrossAssetVO message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MarginCrossAssetVO} MarginCrossAssetVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarginCrossAssetVO.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MarginCrossAssetVO message.                 * @function verify                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MarginCrossAssetVO.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a MarginCrossAssetVO message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MarginCrossAssetVO} MarginCrossAssetVO                 */                MarginCrossAssetVO.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MarginCrossAssetVO)                        return object;                    return new $root.market.v2.trade.MarginCrossAssetVO();                };                /**                 * Creates a plain object from a MarginCrossAssetVO message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {market.v2.trade.MarginCrossAssetVO} message MarginCrossAssetVO                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MarginCrossAssetVO.toObject = function toObject() {                    return {};                };                /**                 * Converts this MarginCrossAssetVO to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MarginCrossAssetVO.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MarginCrossAssetVO                 * @function getTypeUrl                 * @memberof market.v2.trade.MarginCrossAssetVO                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MarginCrossAssetVO.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MarginCrossAssetVO";                };                return MarginCrossAssetVO;            })();            trade.MarginIsolatedAssetVO = (function() {                /**                 * Properties of a MarginIsolatedAssetVO.                 * @memberof market.v2.trade                 * @interface IMarginIsolatedAssetVO                 */                /**                 * Constructs a new MarginIsolatedAssetVO.                 * @memberof market.v2.trade                 * @classdesc Represents a MarginIsolatedAssetVO.                 * @implements IMarginIsolatedAssetVO                 * @constructor                 * @param {market.v2.trade.IMarginIsolatedAssetVO=} [properties] Properties to set                 */                function MarginIsolatedAssetVO(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new MarginIsolatedAssetVO instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {market.v2.trade.IMarginIsolatedAssetVO=} [properties] Properties to set                 * @returns {market.v2.trade.MarginIsolatedAssetVO} MarginIsolatedAssetVO instance                 */                MarginIsolatedAssetVO.create = function create(properties) {                    return new MarginIsolatedAssetVO(properties);                };                /**                 * Encodes the specified MarginIsolatedAssetVO message. Does not implicitly {@link market.v2.trade.MarginIsolatedAssetVO.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {market.v2.trade.IMarginIsolatedAssetVO} message MarginIsolatedAssetVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarginIsolatedAssetVO.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified MarginIsolatedAssetVO message, length delimited. Does not implicitly {@link market.v2.trade.MarginIsolatedAssetVO.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {market.v2.trade.IMarginIsolatedAssetVO} message MarginIsolatedAssetVO message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarginIsolatedAssetVO.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MarginIsolatedAssetVO message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MarginIsolatedAssetVO} MarginIsolatedAssetVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarginIsolatedAssetVO.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MarginIsolatedAssetVO();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MarginIsolatedAssetVO message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MarginIsolatedAssetVO} MarginIsolatedAssetVO                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarginIsolatedAssetVO.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MarginIsolatedAssetVO message.                 * @function verify                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MarginIsolatedAssetVO.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a MarginIsolatedAssetVO message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MarginIsolatedAssetVO} MarginIsolatedAssetVO                 */                MarginIsolatedAssetVO.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MarginIsolatedAssetVO)                        return object;                    return new $root.market.v2.trade.MarginIsolatedAssetVO();                };                /**                 * Creates a plain object from a MarginIsolatedAssetVO message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {market.v2.trade.MarginIsolatedAssetVO} message MarginIsolatedAssetVO                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MarginIsolatedAssetVO.toObject = function toObject() {                    return {};                };                /**                 * Converts this MarginIsolatedAssetVO to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MarginIsolatedAssetVO.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MarginIsolatedAssetVO                 * @function getTypeUrl                 * @memberof market.v2.trade.MarginIsolatedAssetVO                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MarginIsolatedAssetVO.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MarginIsolatedAssetVO";                };                return MarginIsolatedAssetVO;            })();            trade.NewListingPair = (function() {                /**                 * Properties of a NewListingPair.                 * @memberof market.v2.trade                 * @interface INewListingPair                 */                /**                 * Constructs a new NewListingPair.                 * @memberof market.v2.trade                 * @classdesc Represents a NewListingPair.                 * @implements INewListingPair                 * @constructor                 * @param {market.v2.trade.INewListingPair=} [properties] Properties to set                 */                function NewListingPair(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new NewListingPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {market.v2.trade.INewListingPair=} [properties] Properties to set                 * @returns {market.v2.trade.NewListingPair} NewListingPair instance                 */                NewListingPair.create = function create(properties) {                    return new NewListingPair(properties);                };                /**                 * Encodes the specified NewListingPair message. Does not implicitly {@link market.v2.trade.NewListingPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {market.v2.trade.INewListingPair} message NewListingPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                NewListingPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified NewListingPair message, length delimited. Does not implicitly {@link market.v2.trade.NewListingPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {market.v2.trade.INewListingPair} message NewListingPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                NewListingPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a NewListingPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.NewListingPair} NewListingPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                NewListingPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.NewListingPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a NewListingPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.NewListingPair} NewListingPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                NewListingPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a NewListingPair message.                 * @function verify                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                NewListingPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a NewListingPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.NewListingPair} NewListingPair                 */                NewListingPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.NewListingPair)                        return object;                    return new $root.market.v2.trade.NewListingPair();                };                /**                 * Creates a plain object from a NewListingPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {market.v2.trade.NewListingPair} message NewListingPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                NewListingPair.toObject = function toObject() {                    return {};                };                /**                 * Converts this NewListingPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.NewListingPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                NewListingPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for NewListingPair                 * @function getTypeUrl                 * @memberof market.v2.trade.NewListingPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                NewListingPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.NewListingPair";                };                return NewListingPair;            })();            trade.Chgdistributions = (function() {                /**                 * Properties of a Chgdistributions.                 * @memberof market.v2.trade                 * @interface IChgdistributions                 * @property {number|Long|null} [upnum] Chgdistributions upnum                 * @property {number|Long|null} [flatnum] Chgdistributions flatnum                 * @property {number|Long|null} [downnum] Chgdistributions downnum                 * @property {Array.<market.v2.trade.IDistributionPb>|null} [list] Chgdistributions list                 */                /**                 * Constructs a new Chgdistributions.                 * @memberof market.v2.trade                 * @classdesc Represents a Chgdistributions.                 * @implements IChgdistributions                 * @constructor                 * @param {market.v2.trade.IChgdistributions=} [properties] Properties to set                 */                function Chgdistributions(properties) {                    this.list = [];                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Chgdistributions upnum.                 * @member {number|Long} upnum                 * @memberof market.v2.trade.Chgdistributions                 * @instance                 */                Chgdistributions.prototype.upnum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Chgdistributions flatnum.                 * @member {number|Long} flatnum                 * @memberof market.v2.trade.Chgdistributions                 * @instance                 */                Chgdistributions.prototype.flatnum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Chgdistributions downnum.                 * @member {number|Long} downnum                 * @memberof market.v2.trade.Chgdistributions                 * @instance                 */                Chgdistributions.prototype.downnum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Chgdistributions list.                 * @member {Array.<market.v2.trade.IDistributionPb>} list                 * @memberof market.v2.trade.Chgdistributions                 * @instance                 */                Chgdistributions.prototype.list = $util.emptyArray;                /**                 * Creates a new Chgdistributions instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {market.v2.trade.IChgdistributions=} [properties] Properties to set                 * @returns {market.v2.trade.Chgdistributions} Chgdistributions instance                 */                Chgdistributions.create = function create(properties) {                    return new Chgdistributions(properties);                };                /**                 * Encodes the specified Chgdistributions message. Does not implicitly {@link market.v2.trade.Chgdistributions.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {market.v2.trade.IChgdistributions} message Chgdistributions message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Chgdistributions.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.upnum != null && Object.hasOwnProperty.call(message, "upnum"))                        writer.uint32(/* id 1, wireType 0 =*/8).int64(message.upnum);                    if (message.flatnum != null && Object.hasOwnProperty.call(message, "flatnum"))                        writer.uint32(/* id 2, wireType 0 =*/16).int64(message.flatnum);                    if (message.downnum != null && Object.hasOwnProperty.call(message, "downnum"))                        writer.uint32(/* id 3, wireType 0 =*/24).int64(message.downnum);                    if (message.list != null && message.list.length)                        for (var i = 0; i < message.list.length; ++i)                            $root.market.v2.trade.DistributionPb.encode(message.list[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();                    return writer;                };                /**                 * Encodes the specified Chgdistributions message, length delimited. Does not implicitly {@link market.v2.trade.Chgdistributions.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {market.v2.trade.IChgdistributions} message Chgdistributions message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Chgdistributions.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a Chgdistributions message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.Chgdistributions} Chgdistributions                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Chgdistributions.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.Chgdistributions();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.upnum = reader.int64();                                break;                            }                        case 2: {                                message.flatnum = reader.int64();                                break;                            }                        case 3: {                                message.downnum = reader.int64();                                break;                            }                        case 4: {                                if (!(message.list && message.list.length))                                    message.list = [];                                message.list.push($root.market.v2.trade.DistributionPb.decode(reader, reader.uint32()));                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a Chgdistributions message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.Chgdistributions} Chgdistributions                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Chgdistributions.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a Chgdistributions message.                 * @function verify                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                Chgdistributions.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.upnum != null && message.hasOwnProperty("upnum"))                        if (!$util.isInteger(message.upnum) && !(message.upnum && $util.isInteger(message.upnum.low) && $util.isInteger(message.upnum.high)))                            return "upnum: integer|Long expected";                    if (message.flatnum != null && message.hasOwnProperty("flatnum"))                        if (!$util.isInteger(message.flatnum) && !(message.flatnum && $util.isInteger(message.flatnum.low) && $util.isInteger(message.flatnum.high)))                            return "flatnum: integer|Long expected";                    if (message.downnum != null && message.hasOwnProperty("downnum"))                        if (!$util.isInteger(message.downnum) && !(message.downnum && $util.isInteger(message.downnum.low) && $util.isInteger(message.downnum.high)))                            return "downnum: integer|Long expected";                    if (message.list != null && message.hasOwnProperty("list")) {                        if (!Array.isArray(message.list))                            return "list: array expected";                        for (var i = 0; i < message.list.length; ++i) {                            var error = $root.market.v2.trade.DistributionPb.verify(message.list[i]);                            if (error)                                return "list." + error;                        }                    }                    return null;                };                /**                 * Creates a Chgdistributions message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.Chgdistributions} Chgdistributions                 */                Chgdistributions.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.Chgdistributions)                        return object;                    var message = new $root.market.v2.trade.Chgdistributions();                    if (object.upnum != null)                        if ($util.Long)                            (message.upnum = $util.Long.fromValue(object.upnum)).unsigned = false;                        else if (typeof object.upnum === "string")                            message.upnum = parseInt(object.upnum, 10);                        else if (typeof object.upnum === "number")                            message.upnum = object.upnum;                        else if (typeof object.upnum === "object")                            message.upnum = new $util.LongBits(object.upnum.low >>> 0, object.upnum.high >>> 0).toNumber();                    if (object.flatnum != null)                        if ($util.Long)                            (message.flatnum = $util.Long.fromValue(object.flatnum)).unsigned = false;                        else if (typeof object.flatnum === "string")                            message.flatnum = parseInt(object.flatnum, 10);                        else if (typeof object.flatnum === "number")                            message.flatnum = object.flatnum;                        else if (typeof object.flatnum === "object")                            message.flatnum = new $util.LongBits(object.flatnum.low >>> 0, object.flatnum.high >>> 0).toNumber();                    if (object.downnum != null)                        if ($util.Long)                            (message.downnum = $util.Long.fromValue(object.downnum)).unsigned = false;                        else if (typeof object.downnum === "string")                            message.downnum = parseInt(object.downnum, 10);                        else if (typeof object.downnum === "number")                            message.downnum = object.downnum;                        else if (typeof object.downnum === "object")                            message.downnum = new $util.LongBits(object.downnum.low >>> 0, object.downnum.high >>> 0).toNumber();                    if (object.list) {                        if (!Array.isArray(object.list))                            throw TypeError(".market.v2.trade.Chgdistributions.list: array expected");                        message.list = [];                        for (var i = 0; i < object.list.length; ++i) {                            if (typeof object.list[i] !== "object")                                throw TypeError(".market.v2.trade.Chgdistributions.list: object expected");                            message.list[i] = $root.market.v2.trade.DistributionPb.fromObject(object.list[i]);                        }                    }                    return message;                };                /**                 * Creates a plain object from a Chgdistributions message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {market.v2.trade.Chgdistributions} message Chgdistributions                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                Chgdistributions.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.arrays || options.defaults)                        object.list = [];                    if (options.defaults) {                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.upnum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.upnum = options.longs === String ? "0" : 0;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.flatnum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.flatnum = options.longs === String ? "0" : 0;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.downnum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.downnum = options.longs === String ? "0" : 0;                    }                    if (message.upnum != null && message.hasOwnProperty("upnum"))                        if (typeof message.upnum === "number")                            object.upnum = options.longs === String ? String(message.upnum) : message.upnum;                        else                            object.upnum = options.longs === String ? $util.Long.prototype.toString.call(message.upnum) : options.longs === Number ? new $util.LongBits(message.upnum.low >>> 0, message.upnum.high >>> 0).toNumber() : message.upnum;                    if (message.flatnum != null && message.hasOwnProperty("flatnum"))                        if (typeof message.flatnum === "number")                            object.flatnum = options.longs === String ? String(message.flatnum) : message.flatnum;                        else                            object.flatnum = options.longs === String ? $util.Long.prototype.toString.call(message.flatnum) : options.longs === Number ? new $util.LongBits(message.flatnum.low >>> 0, message.flatnum.high >>> 0).toNumber() : message.flatnum;                    if (message.downnum != null && message.hasOwnProperty("downnum"))                        if (typeof message.downnum === "number")                            object.downnum = options.longs === String ? String(message.downnum) : message.downnum;                        else                            object.downnum = options.longs === String ? $util.Long.prototype.toString.call(message.downnum) : options.longs === Number ? new $util.LongBits(message.downnum.low >>> 0, message.downnum.high >>> 0).toNumber() : message.downnum;                    if (message.list && message.list.length) {                        object.list = [];                        for (var j = 0; j < message.list.length; ++j)                            object.list[j] = $root.market.v2.trade.DistributionPb.toObject(message.list[j], options);                    }                    return object;                };                /**                 * Converts this Chgdistributions to JSON.                 * @function toJSON                 * @memberof market.v2.trade.Chgdistributions                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                Chgdistributions.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for Chgdistributions                 * @function getTypeUrl                 * @memberof market.v2.trade.Chgdistributions                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                Chgdistributions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.Chgdistributions";                };                return Chgdistributions;            })();            trade.DistributionPb = (function() {                /**                 * Properties of a DistributionPb.                 * @memberof market.v2.trade                 * @interface IDistributionPb                 * @property {string|null} [name] DistributionPb name                 * @property {number|null} [chgType] DistributionPb chgType                 * @property {number|Long|null} [num] DistributionPb num                 */                /**                 * Constructs a new DistributionPb.                 * @memberof market.v2.trade                 * @classdesc Represents a DistributionPb.                 * @implements IDistributionPb                 * @constructor                 * @param {market.v2.trade.IDistributionPb=} [properties] Properties to set                 */                function DistributionPb(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * DistributionPb name.                 * @member {string} name                 * @memberof market.v2.trade.DistributionPb                 * @instance                 */                DistributionPb.prototype.name = "";                /**                 * DistributionPb chgType.                 * @member {number} chgType                 * @memberof market.v2.trade.DistributionPb                 * @instance                 */                DistributionPb.prototype.chgType = 0;                /**                 * DistributionPb num.                 * @member {number|Long} num                 * @memberof market.v2.trade.DistributionPb                 * @instance                 */                DistributionPb.prototype.num = $util.Long ? $util.Long.fromBits(0,0,false) : 0;                /**                 * Creates a new DistributionPb instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {market.v2.trade.IDistributionPb=} [properties] Properties to set                 * @returns {market.v2.trade.DistributionPb} DistributionPb instance                 */                DistributionPb.create = function create(properties) {                    return new DistributionPb(properties);                };                /**                 * Encodes the specified DistributionPb message. Does not implicitly {@link market.v2.trade.DistributionPb.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {market.v2.trade.IDistributionPb} message DistributionPb message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                DistributionPb.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.name != null && Object.hasOwnProperty.call(message, "name"))                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);                    if (message.chgType != null && Object.hasOwnProperty.call(message, "chgType"))                        writer.uint32(/* id 2, wireType 0 =*/16).int32(message.chgType);                    if (message.num != null && Object.hasOwnProperty.call(message, "num"))                        writer.uint32(/* id 3, wireType 0 =*/24).int64(message.num);                    return writer;                };                /**                 * Encodes the specified DistributionPb message, length delimited. Does not implicitly {@link market.v2.trade.DistributionPb.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {market.v2.trade.IDistributionPb} message DistributionPb message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                DistributionPb.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a DistributionPb message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.DistributionPb} DistributionPb                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                DistributionPb.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.DistributionPb();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.name = reader.string();                                break;                            }                        case 2: {                                message.chgType = reader.int32();                                break;                            }                        case 3: {                                message.num = reader.int64();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a DistributionPb message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.DistributionPb} DistributionPb                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                DistributionPb.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a DistributionPb message.                 * @function verify                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                DistributionPb.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.name != null && message.hasOwnProperty("name"))                        if (!$util.isString(message.name))                            return "name: string expected";                    if (message.chgType != null && message.hasOwnProperty("chgType"))                        if (!$util.isInteger(message.chgType))                            return "chgType: integer expected";                    if (message.num != null && message.hasOwnProperty("num"))                        if (!$util.isInteger(message.num) && !(message.num && $util.isInteger(message.num.low) && $util.isInteger(message.num.high)))                            return "num: integer|Long expected";                    return null;                };                /**                 * Creates a DistributionPb message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.DistributionPb} DistributionPb                 */                DistributionPb.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.DistributionPb)                        return object;                    var message = new $root.market.v2.trade.DistributionPb();                    if (object.name != null)                        message.name = String(object.name);                    if (object.chgType != null)                        message.chgType = object.chgType | 0;                    if (object.num != null)                        if ($util.Long)                            (message.num = $util.Long.fromValue(object.num)).unsigned = false;                        else if (typeof object.num === "string")                            message.num = parseInt(object.num, 10);                        else if (typeof object.num === "number")                            message.num = object.num;                        else if (typeof object.num === "object")                            message.num = new $util.LongBits(object.num.low >>> 0, object.num.high >>> 0).toNumber();                    return message;                };                /**                 * Creates a plain object from a DistributionPb message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {market.v2.trade.DistributionPb} message DistributionPb                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                DistributionPb.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults) {                        object.name = "";                        object.chgType = 0;                        if ($util.Long) {                            var long = new $util.Long(0, 0, false);                            object.num = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;                        } else                            object.num = options.longs === String ? "0" : 0;                    }                    if (message.name != null && message.hasOwnProperty("name"))                        object.name = message.name;                    if (message.chgType != null && message.hasOwnProperty("chgType"))                        object.chgType = message.chgType;                    if (message.num != null && message.hasOwnProperty("num"))                        if (typeof message.num === "number")                            object.num = options.longs === String ? String(message.num) : message.num;                        else                            object.num = options.longs === String ? $util.Long.prototype.toString.call(message.num) : options.longs === Number ? new $util.LongBits(message.num.low >>> 0, message.num.high >>> 0).toNumber() : message.num;                    return object;                };                /**                 * Converts this DistributionPb to JSON.                 * @function toJSON                 * @memberof market.v2.trade.DistributionPb                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                DistributionPb.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for DistributionPb                 * @function getTypeUrl                 * @memberof market.v2.trade.DistributionPb                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                DistributionPb.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.DistributionPb";                };                return DistributionPb;            })();            trade.MarketZones = (function() {                /**                 * Properties of a MarketZones.                 * @memberof market.v2.trade                 * @interface IMarketZones                 */                /**                 * Constructs a new MarketZones.                 * @memberof market.v2.trade                 * @classdesc Represents a MarketZones.                 * @implements IMarketZones                 * @constructor                 * @param {market.v2.trade.IMarketZones=} [properties] Properties to set                 */                function MarketZones(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new MarketZones instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {market.v2.trade.IMarketZones=} [properties] Properties to set                 * @returns {market.v2.trade.MarketZones} MarketZones instance                 */                MarketZones.create = function create(properties) {                    return new MarketZones(properties);                };                /**                 * Encodes the specified MarketZones message. Does not implicitly {@link market.v2.trade.MarketZones.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {market.v2.trade.IMarketZones} message MarketZones message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketZones.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified MarketZones message, length delimited. Does not implicitly {@link market.v2.trade.MarketZones.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {market.v2.trade.IMarketZones} message MarketZones message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MarketZones.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MarketZones message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MarketZones} MarketZones                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketZones.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MarketZones();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MarketZones message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MarketZones} MarketZones                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MarketZones.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MarketZones message.                 * @function verify                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MarketZones.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a MarketZones message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MarketZones} MarketZones                 */                MarketZones.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MarketZones)                        return object;                    return new $root.market.v2.trade.MarketZones();                };                /**                 * Creates a plain object from a MarketZones message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {market.v2.trade.MarketZones} message MarketZones                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MarketZones.toObject = function toObject() {                    return {};                };                /**                 * Converts this MarketZones to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MarketZones                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MarketZones.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MarketZones                 * @function getTypeUrl                 * @memberof market.v2.trade.MarketZones                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MarketZones.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MarketZones";                };                return MarketZones;            })();            trade.KlineOrders = (function() {                /**                 * Properties of a KlineOrders.                 * @memberof market.v2.trade                 * @interface IKlineOrders                 */                /**                 * Constructs a new KlineOrders.                 * @memberof market.v2.trade                 * @classdesc Represents a KlineOrders.                 * @implements IKlineOrders                 * @constructor                 * @param {market.v2.trade.IKlineOrders=} [properties] Properties to set                 */                function KlineOrders(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new KlineOrders instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {market.v2.trade.IKlineOrders=} [properties] Properties to set                 * @returns {market.v2.trade.KlineOrders} KlineOrders instance                 */                KlineOrders.create = function create(properties) {                    return new KlineOrders(properties);                };                /**                 * Encodes the specified KlineOrders message. Does not implicitly {@link market.v2.trade.KlineOrders.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {market.v2.trade.IKlineOrders} message KlineOrders message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                KlineOrders.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified KlineOrders message, length delimited. Does not implicitly {@link market.v2.trade.KlineOrders.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {market.v2.trade.IKlineOrders} message KlineOrders message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                KlineOrders.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a KlineOrders message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.KlineOrders} KlineOrders                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                KlineOrders.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.KlineOrders();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a KlineOrders message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.KlineOrders} KlineOrders                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                KlineOrders.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a KlineOrders message.                 * @function verify                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                KlineOrders.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a KlineOrders message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.KlineOrders} KlineOrders                 */                KlineOrders.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.KlineOrders)                        return object;                    return new $root.market.v2.trade.KlineOrders();                };                /**                 * Creates a plain object from a KlineOrders message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {market.v2.trade.KlineOrders} message KlineOrders                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                KlineOrders.toObject = function toObject() {                    return {};                };                /**                 * Converts this KlineOrders to JSON.                 * @function toJSON                 * @memberof market.v2.trade.KlineOrders                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                KlineOrders.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for KlineOrders                 * @function getTypeUrl                 * @memberof market.v2.trade.KlineOrders                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                KlineOrders.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.KlineOrders";                };                return KlineOrders;            })();            trade.NotificationPush = (function() {                /**                 * Properties of a NotificationPush.                 * @memberof market.v2.trade                 * @interface INotificationPush                 * @property {number|null} [userid] NotificationPush userid                 * @property {string|null} [title] NotificationPush title                 * @property {string|null} [body] NotificationPush body                 * @property {number|null} [badge] NotificationPush badge                 * @property {string|null} [group] NotificationPush group                 * @property {Object.<string,string>|null} [extrasMap] NotificationPush extrasMap                 */                /**                 * Constructs a new NotificationPush.                 * @memberof market.v2.trade                 * @classdesc Represents a NotificationPush.                 * @implements INotificationPush                 * @constructor                 * @param {market.v2.trade.INotificationPush=} [properties] Properties to set                 */                function NotificationPush(properties) {                    this.extrasMap = {};                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * NotificationPush userid.                 * @member {number} userid                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.userid = 0;                /**                 * NotificationPush title.                 * @member {string} title                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.title = "";                /**                 * NotificationPush body.                 * @member {string} body                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.body = "";                /**                 * NotificationPush badge.                 * @member {number} badge                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.badge = 0;                /**                 * NotificationPush group.                 * @member {string} group                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.group = "";                /**                 * NotificationPush extrasMap.                 * @member {Object.<string,string>} extrasMap                 * @memberof market.v2.trade.NotificationPush                 * @instance                 */                NotificationPush.prototype.extrasMap = $util.emptyObject;                /**                 * Creates a new NotificationPush instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {market.v2.trade.INotificationPush=} [properties] Properties to set                 * @returns {market.v2.trade.NotificationPush} NotificationPush instance                 */                NotificationPush.create = function create(properties) {                    return new NotificationPush(properties);                };                /**                 * Encodes the specified NotificationPush message. Does not implicitly {@link market.v2.trade.NotificationPush.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {market.v2.trade.INotificationPush} message NotificationPush message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                NotificationPush.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.userid != null && Object.hasOwnProperty.call(message, "userid"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userid);                    if (message.title != null && Object.hasOwnProperty.call(message, "title"))                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.title);                    if (message.body != null && Object.hasOwnProperty.call(message, "body"))                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.body);                    if (message.badge != null && Object.hasOwnProperty.call(message, "badge"))                        writer.uint32(/* id 4, wireType 0 =*/32).int32(message.badge);                    if (message.group != null && Object.hasOwnProperty.call(message, "group"))                        writer.uint32(/* id 5, wireType 2 =*/42).string(message.group);                    if (message.extrasMap != null && Object.hasOwnProperty.call(message, "extrasMap"))                        for (var keys = Object.keys(message.extrasMap), i = 0; i < keys.length; ++i)                            writer.uint32(/* id 6, wireType 2 =*/50).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.extrasMap[keys[i]]).ldelim();                    return writer;                };                /**                 * Encodes the specified NotificationPush message, length delimited. Does not implicitly {@link market.v2.trade.NotificationPush.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {market.v2.trade.INotificationPush} message NotificationPush message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                NotificationPush.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a NotificationPush message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.NotificationPush} NotificationPush                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                NotificationPush.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.NotificationPush(), key, value;                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.userid = reader.int32();                                break;                            }                        case 2: {                                message.title = reader.string();                                break;                            }                        case 3: {                                message.body = reader.string();                                break;                            }                        case 4: {                                message.badge = reader.int32();                                break;                            }                        case 5: {                                message.group = reader.string();                                break;                            }                        case 6: {                                if (message.extrasMap === $util.emptyObject)                                    message.extrasMap = {};                                var end2 = reader.uint32() + reader.pos;                                key = "";                                value = "";                                while (reader.pos < end2) {                                    var tag2 = reader.uint32();                                    switch (tag2 >>> 3) {                                    case 1:                                        key = reader.string();                                        break;                                    case 2:                                        value = reader.string();                                        break;                                    default:                                        reader.skipType(tag2 & 7);                                        break;                                    }                                }                                message.extrasMap[key] = value;                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a NotificationPush message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.NotificationPush} NotificationPush                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                NotificationPush.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a NotificationPush message.                 * @function verify                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                NotificationPush.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.userid != null && message.hasOwnProperty("userid"))                        if (!$util.isInteger(message.userid))                            return "userid: integer expected";                    if (message.title != null && message.hasOwnProperty("title"))                        if (!$util.isString(message.title))                            return "title: string expected";                    if (message.body != null && message.hasOwnProperty("body"))                        if (!$util.isString(message.body))                            return "body: string expected";                    if (message.badge != null && message.hasOwnProperty("badge"))                        if (!$util.isInteger(message.badge))                            return "badge: integer expected";                    if (message.group != null && message.hasOwnProperty("group"))                        if (!$util.isString(message.group))                            return "group: string expected";                    if (message.extrasMap != null && message.hasOwnProperty("extrasMap")) {                        if (!$util.isObject(message.extrasMap))                            return "extrasMap: object expected";                        var key = Object.keys(message.extrasMap);                        for (var i = 0; i < key.length; ++i)                            if (!$util.isString(message.extrasMap[key[i]]))                                return "extrasMap: string{k:string} expected";                    }                    return null;                };                /**                 * Creates a NotificationPush message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.NotificationPush} NotificationPush                 */                NotificationPush.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.NotificationPush)                        return object;                    var message = new $root.market.v2.trade.NotificationPush();                    if (object.userid != null)                        message.userid = object.userid | 0;                    if (object.title != null)                        message.title = String(object.title);                    if (object.body != null)                        message.body = String(object.body);                    if (object.badge != null)                        message.badge = object.badge | 0;                    if (object.group != null)                        message.group = String(object.group);                    if (object.extrasMap) {                        if (typeof object.extrasMap !== "object")                            throw TypeError(".market.v2.trade.NotificationPush.extrasMap: object expected");                        message.extrasMap = {};                        for (var keys = Object.keys(object.extrasMap), i = 0; i < keys.length; ++i)                            message.extrasMap[keys[i]] = String(object.extrasMap[keys[i]]);                    }                    return message;                };                /**                 * Creates a plain object from a NotificationPush message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {market.v2.trade.NotificationPush} message NotificationPush                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                NotificationPush.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.objects || options.defaults)                        object.extrasMap = {};                    if (options.defaults) {                        object.userid = 0;                        object.title = "";                        object.body = "";                        object.badge = 0;                        object.group = "";                    }                    if (message.userid != null && message.hasOwnProperty("userid"))                        object.userid = message.userid;                    if (message.title != null && message.hasOwnProperty("title"))                        object.title = message.title;                    if (message.body != null && message.hasOwnProperty("body"))                        object.body = message.body;                    if (message.badge != null && message.hasOwnProperty("badge"))                        object.badge = message.badge;                    if (message.group != null && message.hasOwnProperty("group"))                        object.group = message.group;                    var keys2;                    if (message.extrasMap && (keys2 = Object.keys(message.extrasMap)).length) {                        object.extrasMap = {};                        for (var j = 0; j < keys2.length; ++j)                            object.extrasMap[keys2[j]] = message.extrasMap[keys2[j]];                    }                    return object;                };                /**                 * Converts this NotificationPush to JSON.                 * @function toJSON                 * @memberof market.v2.trade.NotificationPush                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                NotificationPush.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for NotificationPush                 * @function getTypeUrl                 * @memberof market.v2.trade.NotificationPush                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                NotificationPush.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.NotificationPush";                };                return NotificationPush;            })();            trade.TradeHotListing = (function() {                /**                 * Properties of a TradeHotListing.                 * @memberof market.v2.trade                 * @interface ITradeHotListing                 */                /**                 * Constructs a new TradeHotListing.                 * @memberof market.v2.trade                 * @classdesc Represents a TradeHotListing.                 * @implements ITradeHotListing                 * @constructor                 * @param {market.v2.trade.ITradeHotListing=} [properties] Properties to set                 */                function TradeHotListing(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new TradeHotListing instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {market.v2.trade.ITradeHotListing=} [properties] Properties to set                 * @returns {market.v2.trade.TradeHotListing} TradeHotListing instance                 */                TradeHotListing.create = function create(properties) {                    return new TradeHotListing(properties);                };                /**                 * Encodes the specified TradeHotListing message. Does not implicitly {@link market.v2.trade.TradeHotListing.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {market.v2.trade.ITradeHotListing} message TradeHotListing message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeHotListing.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified TradeHotListing message, length delimited. Does not implicitly {@link market.v2.trade.TradeHotListing.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {market.v2.trade.ITradeHotListing} message TradeHotListing message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                TradeHotListing.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a TradeHotListing message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.TradeHotListing} TradeHotListing                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeHotListing.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.TradeHotListing();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a TradeHotListing message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.TradeHotListing} TradeHotListing                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                TradeHotListing.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a TradeHotListing message.                 * @function verify                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                TradeHotListing.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a TradeHotListing message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.TradeHotListing} TradeHotListing                 */                TradeHotListing.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.TradeHotListing)                        return object;                    return new $root.market.v2.trade.TradeHotListing();                };                /**                 * Creates a plain object from a TradeHotListing message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {market.v2.trade.TradeHotListing} message TradeHotListing                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                TradeHotListing.toObject = function toObject() {                    return {};                };                /**                 * Converts this TradeHotListing to JSON.                 * @function toJSON                 * @memberof market.v2.trade.TradeHotListing                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                TradeHotListing.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for TradeHotListing                 * @function getTypeUrl                 * @memberof market.v2.trade.TradeHotListing                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                TradeHotListing.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.TradeHotListing";                };                return TradeHotListing;            })();            trade.CtcGoingOrderNum = (function() {                /**                 * Properties of a CtcGoingOrderNum.                 * @memberof market.v2.trade                 * @interface ICtcGoingOrderNum                 * @property {number|null} [ordernum] CtcGoingOrderNum ordernum                 */                /**                 * Constructs a new CtcGoingOrderNum.                 * @memberof market.v2.trade                 * @classdesc Represents a CtcGoingOrderNum.                 * @implements ICtcGoingOrderNum                 * @constructor                 * @param {market.v2.trade.ICtcGoingOrderNum=} [properties] Properties to set                 */                function CtcGoingOrderNum(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * CtcGoingOrderNum ordernum.                 * @member {number} ordernum                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @instance                 */                CtcGoingOrderNum.prototype.ordernum = 0;                /**                 * Creates a new CtcGoingOrderNum instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {market.v2.trade.ICtcGoingOrderNum=} [properties] Properties to set                 * @returns {market.v2.trade.CtcGoingOrderNum} CtcGoingOrderNum instance                 */                CtcGoingOrderNum.create = function create(properties) {                    return new CtcGoingOrderNum(properties);                };                /**                 * Encodes the specified CtcGoingOrderNum message. Does not implicitly {@link market.v2.trade.CtcGoingOrderNum.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {market.v2.trade.ICtcGoingOrderNum} message CtcGoingOrderNum message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                CtcGoingOrderNum.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    if (message.ordernum != null && Object.hasOwnProperty.call(message, "ordernum"))                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ordernum);                    return writer;                };                /**                 * Encodes the specified CtcGoingOrderNum message, length delimited. Does not implicitly {@link market.v2.trade.CtcGoingOrderNum.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {market.v2.trade.ICtcGoingOrderNum} message CtcGoingOrderNum message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                CtcGoingOrderNum.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a CtcGoingOrderNum message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.CtcGoingOrderNum} CtcGoingOrderNum                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                CtcGoingOrderNum.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.CtcGoingOrderNum();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        case 1: {                                message.ordernum = reader.int32();                                break;                            }                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a CtcGoingOrderNum message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.CtcGoingOrderNum} CtcGoingOrderNum                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                CtcGoingOrderNum.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a CtcGoingOrderNum message.                 * @function verify                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                CtcGoingOrderNum.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    if (message.ordernum != null && message.hasOwnProperty("ordernum"))                        if (!$util.isInteger(message.ordernum))                            return "ordernum: integer expected";                    return null;                };                /**                 * Creates a CtcGoingOrderNum message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.CtcGoingOrderNum} CtcGoingOrderNum                 */                CtcGoingOrderNum.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.CtcGoingOrderNum)                        return object;                    var message = new $root.market.v2.trade.CtcGoingOrderNum();                    if (object.ordernum != null)                        message.ordernum = object.ordernum | 0;                    return message;                };                /**                 * Creates a plain object from a CtcGoingOrderNum message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {market.v2.trade.CtcGoingOrderNum} message CtcGoingOrderNum                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                CtcGoingOrderNum.toObject = function toObject(message, options) {                    if (!options)                        options = {};                    var object = {};                    if (options.defaults)                        object.ordernum = 0;                    if (message.ordernum != null && message.hasOwnProperty("ordernum"))                        object.ordernum = message.ordernum;                    return object;                };                /**                 * Converts this CtcGoingOrderNum to JSON.                 * @function toJSON                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                CtcGoingOrderNum.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for CtcGoingOrderNum                 * @function getTypeUrl                 * @memberof market.v2.trade.CtcGoingOrderNum                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                CtcGoingOrderNum.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.CtcGoingOrderNum";                };                return CtcGoingOrderNum;            })();            trade.MultiChange = (function() {                /**                 * Properties of a MultiChange.                 * @memberof market.v2.trade                 * @interface IMultiChange                 */                /**                 * Constructs a new MultiChange.                 * @memberof market.v2.trade                 * @classdesc Represents a MultiChange.                 * @implements IMultiChange                 * @constructor                 * @param {market.v2.trade.IMultiChange=} [properties] Properties to set                 */                function MultiChange(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new MultiChange instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {market.v2.trade.IMultiChange=} [properties] Properties to set                 * @returns {market.v2.trade.MultiChange} MultiChange instance                 */                MultiChange.create = function create(properties) {                    return new MultiChange(properties);                };                /**                 * Encodes the specified MultiChange message. Does not implicitly {@link market.v2.trade.MultiChange.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {market.v2.trade.IMultiChange} message MultiChange message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MultiChange.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified MultiChange message, length delimited. Does not implicitly {@link market.v2.trade.MultiChange.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {market.v2.trade.IMultiChange} message MultiChange message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                MultiChange.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a MultiChange message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.MultiChange} MultiChange                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MultiChange.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.MultiChange();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a MultiChange message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.MultiChange} MultiChange                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                MultiChange.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a MultiChange message.                 * @function verify                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                MultiChange.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a MultiChange message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.MultiChange} MultiChange                 */                MultiChange.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.MultiChange)                        return object;                    return new $root.market.v2.trade.MultiChange();                };                /**                 * Creates a plain object from a MultiChange message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {market.v2.trade.MultiChange} message MultiChange                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                MultiChange.toObject = function toObject() {                    return {};                };                /**                 * Converts this MultiChange to JSON.                 * @function toJSON                 * @memberof market.v2.trade.MultiChange                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                MultiChange.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for MultiChange                 * @function getTypeUrl                 * @memberof market.v2.trade.MultiChange                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                MultiChange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.MultiChange";                };                return MultiChange;            })();            trade.Heatmap = (function() {                /**                 * Properties of a Heatmap.                 * @memberof market.v2.trade                 * @interface IHeatmap                 */                /**                 * Constructs a new Heatmap.                 * @memberof market.v2.trade                 * @classdesc Represents a Heatmap.                 * @implements IHeatmap                 * @constructor                 * @param {market.v2.trade.IHeatmap=} [properties] Properties to set                 */                function Heatmap(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new Heatmap instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {market.v2.trade.IHeatmap=} [properties] Properties to set                 * @returns {market.v2.trade.Heatmap} Heatmap instance                 */                Heatmap.create = function create(properties) {                    return new Heatmap(properties);                };                /**                 * Encodes the specified Heatmap message. Does not implicitly {@link market.v2.trade.Heatmap.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {market.v2.trade.IHeatmap} message Heatmap message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Heatmap.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified Heatmap message, length delimited. Does not implicitly {@link market.v2.trade.Heatmap.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {market.v2.trade.IHeatmap} message Heatmap message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                Heatmap.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a Heatmap message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.Heatmap} Heatmap                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Heatmap.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.Heatmap();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a Heatmap message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.Heatmap} Heatmap                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                Heatmap.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a Heatmap message.                 * @function verify                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                Heatmap.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a Heatmap message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.Heatmap} Heatmap                 */                Heatmap.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.Heatmap)                        return object;                    return new $root.market.v2.trade.Heatmap();                };                /**                 * Creates a plain object from a Heatmap message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {market.v2.trade.Heatmap} message Heatmap                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                Heatmap.toObject = function toObject() {                    return {};                };                /**                 * Converts this Heatmap to JSON.                 * @function toJSON                 * @memberof market.v2.trade.Heatmap                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                Heatmap.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for Heatmap                 * @function getTypeUrl                 * @memberof market.v2.trade.Heatmap                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                Heatmap.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.Heatmap";                };                return Heatmap;            })();            trade.DownPair = (function() {                /**                 * Properties of a DownPair.                 * @memberof market.v2.trade                 * @interface IDownPair                 */                /**                 * Constructs a new DownPair.                 * @memberof market.v2.trade                 * @classdesc Represents a DownPair.                 * @implements IDownPair                 * @constructor                 * @param {market.v2.trade.IDownPair=} [properties] Properties to set                 */                function DownPair(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new DownPair instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {market.v2.trade.IDownPair=} [properties] Properties to set                 * @returns {market.v2.trade.DownPair} DownPair instance                 */                DownPair.create = function create(properties) {                    return new DownPair(properties);                };                /**                 * Encodes the specified DownPair message. Does not implicitly {@link market.v2.trade.DownPair.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {market.v2.trade.IDownPair} message DownPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                DownPair.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified DownPair message, length delimited. Does not implicitly {@link market.v2.trade.DownPair.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {market.v2.trade.IDownPair} message DownPair message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                DownPair.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a DownPair message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.DownPair} DownPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                DownPair.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.DownPair();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a DownPair message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.DownPair} DownPair                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                DownPair.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a DownPair message.                 * @function verify                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                DownPair.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a DownPair message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.DownPair} DownPair                 */                DownPair.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.DownPair)                        return object;                    return new $root.market.v2.trade.DownPair();                };                /**                 * Creates a plain object from a DownPair message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {market.v2.trade.DownPair} message DownPair                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                DownPair.toObject = function toObject() {                    return {};                };                /**                 * Converts this DownPair to JSON.                 * @function toJSON                 * @memberof market.v2.trade.DownPair                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                DownPair.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for DownPair                 * @function getTypeUrl                 * @memberof market.v2.trade.DownPair                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                DownPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.DownPair";                };                return DownPair;            })();            trade.HeatVol = (function() {                /**                 * Properties of a HeatVol.                 * @memberof market.v2.trade                 * @interface IHeatVol                 */                /**                 * Constructs a new HeatVol.                 * @memberof market.v2.trade                 * @classdesc Represents a HeatVol.                 * @implements IHeatVol                 * @constructor                 * @param {market.v2.trade.IHeatVol=} [properties] Properties to set                 */                function HeatVol(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new HeatVol instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {market.v2.trade.IHeatVol=} [properties] Properties to set                 * @returns {market.v2.trade.HeatVol} HeatVol instance                 */                HeatVol.create = function create(properties) {                    return new HeatVol(properties);                };                /**                 * Encodes the specified HeatVol message. Does not implicitly {@link market.v2.trade.HeatVol.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {market.v2.trade.IHeatVol} message HeatVol message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                HeatVol.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified HeatVol message, length delimited. Does not implicitly {@link market.v2.trade.HeatVol.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {market.v2.trade.IHeatVol} message HeatVol message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                HeatVol.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a HeatVol message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.HeatVol} HeatVol                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                HeatVol.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.HeatVol();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a HeatVol message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.HeatVol} HeatVol                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                HeatVol.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a HeatVol message.                 * @function verify                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                HeatVol.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a HeatVol message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.HeatVol} HeatVol                 */                HeatVol.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.HeatVol)                        return object;                    return new $root.market.v2.trade.HeatVol();                };                /**                 * Creates a plain object from a HeatVol message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {market.v2.trade.HeatVol} message HeatVol                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                HeatVol.toObject = function toObject() {                    return {};                };                /**                 * Converts this HeatVol to JSON.                 * @function toJSON                 * @memberof market.v2.trade.HeatVol                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                HeatVol.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for HeatVol                 * @function getTypeUrl                 * @memberof market.v2.trade.HeatVol                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                HeatVol.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.HeatVol";                };                return HeatVol;            })();            trade.CurrencyRate = (function() {                /**                 * Properties of a CurrencyRate.                 * @memberof market.v2.trade                 * @interface ICurrencyRate                 */                /**                 * Constructs a new CurrencyRate.                 * @memberof market.v2.trade                 * @classdesc Represents a CurrencyRate.                 * @implements ICurrencyRate                 * @constructor                 * @param {market.v2.trade.ICurrencyRate=} [properties] Properties to set                 */                function CurrencyRate(properties) {                    if (properties)                        for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)                            if (properties[keys[i]] != null)                                this[keys[i]] = properties[keys[i]];                }                /**                 * Creates a new CurrencyRate instance using the specified properties.                 * @function create                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {market.v2.trade.ICurrencyRate=} [properties] Properties to set                 * @returns {market.v2.trade.CurrencyRate} CurrencyRate instance                 */                CurrencyRate.create = function create(properties) {                    return new CurrencyRate(properties);                };                /**                 * Encodes the specified CurrencyRate message. Does not implicitly {@link market.v2.trade.CurrencyRate.verify|verify} messages.                 * @function encode                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {market.v2.trade.ICurrencyRate} message CurrencyRate message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                CurrencyRate.encode = function encode(message, writer) {                    if (!writer)                        writer = $Writer.create();                    return writer;                };                /**                 * Encodes the specified CurrencyRate message, length delimited. Does not implicitly {@link market.v2.trade.CurrencyRate.verify|verify} messages.                 * @function encodeDelimited                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {market.v2.trade.ICurrencyRate} message CurrencyRate message or plain object to encode                 * @param {$protobuf.Writer} [writer] Writer to encode to                 * @returns {$protobuf.Writer} Writer                 */                CurrencyRate.encodeDelimited = function encodeDelimited(message, writer) {                    return this.encode(message, writer).ldelim();                };                /**                 * Decodes a CurrencyRate message from the specified reader or buffer.                 * @function decode                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @param {number} [length] Message length if known beforehand                 * @returns {market.v2.trade.CurrencyRate} CurrencyRate                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                CurrencyRate.decode = function decode(reader, length) {                    if (!(reader instanceof $Reader))                        reader = $Reader.create(reader);                    var end = length === undefined ? reader.len : reader.pos + length, message = new $root.market.v2.trade.CurrencyRate();                    while (reader.pos < end) {                        var tag = reader.uint32();                        switch (tag >>> 3) {                        default:                            reader.skipType(tag & 7);                            break;                        }                    }                    return message;                };                /**                 * Decodes a CurrencyRate message from the specified reader or buffer, length delimited.                 * @function decodeDelimited                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from                 * @returns {market.v2.trade.CurrencyRate} CurrencyRate                 * @throws {Error} If the payload is not a reader or valid buffer                 * @throws {$protobuf.util.ProtocolError} If required fields are missing                 */                CurrencyRate.decodeDelimited = function decodeDelimited(reader) {                    if (!(reader instanceof $Reader))                        reader = new $Reader(reader);                    return this.decode(reader, reader.uint32());                };                /**                 * Verifies a CurrencyRate message.                 * @function verify                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {Object.<string,*>} message Plain object to verify                 * @returns {string|null} `null` if valid, otherwise the reason why it is not                 */                CurrencyRate.verify = function verify(message) {                    if (typeof message !== "object" || message === null)                        return "object expected";                    return null;                };                /**                 * Creates a CurrencyRate message from a plain object. Also converts values to their respective internal types.                 * @function fromObject                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {Object.<string,*>} object Plain object                 * @returns {market.v2.trade.CurrencyRate} CurrencyRate                 */                CurrencyRate.fromObject = function fromObject(object) {                    if (object instanceof $root.market.v2.trade.CurrencyRate)                        return object;                    return new $root.market.v2.trade.CurrencyRate();                };                /**                 * Creates a plain object from a CurrencyRate message. Also converts values to other types if specified.                 * @function toObject                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {market.v2.trade.CurrencyRate} message CurrencyRate                 * @param {$protobuf.IConversionOptions} [options] Conversion options                 * @returns {Object.<string,*>} Plain object                 */                CurrencyRate.toObject = function toObject() {                    return {};                };                /**                 * Converts this CurrencyRate to JSON.                 * @function toJSON                 * @memberof market.v2.trade.CurrencyRate                 * @instance                 * @returns {Object.<string,*>} JSON object                 */                CurrencyRate.prototype.toJSON = function toJSON() {                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);                };                /**                 * Gets the default type url for CurrencyRate                 * @function getTypeUrl                 * @memberof market.v2.trade.CurrencyRate                 * @static                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")                 * @returns {string} The default type url                 */                CurrencyRate.getTypeUrl = function getTypeUrl(typeUrlPrefix) {                    if (typeUrlPrefix === undefined) {                        typeUrlPrefix = "type.googleapis.com";                    }                    return typeUrlPrefix + "/market.v2.trade.CurrencyRate";                };                return CurrencyRate;            })();            return trade;        })();        return v2;    })();    return market;})();module.exports = $root;
 |