1 Star 1 Fork 0

Shuang/battery-historian

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
batterystats.pb.go 178.79 KB
Copy Edit Raw Blame History
Jocelyn Dang authored 2017-05-20 01:26 +08:00 . I/O 2017 release of Battery Historian.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461
// Code generated by protoc-gen-go.
// source: github.com/google/battery-historian/pb/batterystats_proto/batterystats.proto
// DO NOT EDIT!
/*
Package batterystats is a generated protocol buffer package.
It is generated from these files:
github.com/google/battery-historian/pb/batterystats_proto/batterystats.proto
It has these top-level messages:
BatteryStats
*/
package batterystats
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import build "github.com/google/battery-historian/pb/build_proto"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
const _ = proto.ProtoPackageIsVersion1
type BatteryStats_AggregationType int32
const (
// All of the data in the stats.
BatteryStats_SINCE_CHARGED BatteryStats_AggregationType = 0
// Only the last run in the stats.
BatteryStats_LAST BatteryStats_AggregationType = 1
// Only the current run in the stats.
BatteryStats_CURRENT BatteryStats_AggregationType = 2
// Only the run since the last time the device was unplugged in the stats.
BatteryStats_SINCE_UNPLUGGED BatteryStats_AggregationType = 3
)
var BatteryStats_AggregationType_name = map[int32]string{
0: "SINCE_CHARGED",
1: "LAST",
2: "CURRENT",
3: "SINCE_UNPLUGGED",
}
var BatteryStats_AggregationType_value = map[string]int32{
"SINCE_CHARGED": 0,
"LAST": 1,
"CURRENT": 2,
"SINCE_UNPLUGGED": 3,
}
func (x BatteryStats_AggregationType) Enum() *BatteryStats_AggregationType {
p := new(BatteryStats_AggregationType)
*p = x
return p
}
func (x BatteryStats_AggregationType) String() string {
return proto.EnumName(BatteryStats_AggregationType_name, int32(x))
}
func (x *BatteryStats_AggregationType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_AggregationType_value, data, "BatteryStats_AggregationType")
if err != nil {
return err
}
*x = BatteryStats_AggregationType(value)
return nil
}
func (BatteryStats_AggregationType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0}
}
type BatteryStats_App_UserActivity_Name int32
const (
BatteryStats_App_UserActivity_OTHER BatteryStats_App_UserActivity_Name = 0
BatteryStats_App_UserActivity_BUTTON BatteryStats_App_UserActivity_Name = 1
BatteryStats_App_UserActivity_TOUCH BatteryStats_App_UserActivity_Name = 2
// When an accessibility service takes an action on behalf of the user.
BatteryStats_App_UserActivity_ACCESSIBILITY BatteryStats_App_UserActivity_Name = 3
)
var BatteryStats_App_UserActivity_Name_name = map[int32]string{
0: "OTHER",
1: "BUTTON",
2: "TOUCH",
3: "ACCESSIBILITY",
}
var BatteryStats_App_UserActivity_Name_value = map[string]int32{
"OTHER": 0,
"BUTTON": 1,
"TOUCH": 2,
"ACCESSIBILITY": 3,
}
func (x BatteryStats_App_UserActivity_Name) Enum() *BatteryStats_App_UserActivity_Name {
p := new(BatteryStats_App_UserActivity_Name)
*p = x
return p
}
func (x BatteryStats_App_UserActivity_Name) String() string {
return proto.EnumName(BatteryStats_App_UserActivity_Name_name, int32(x))
}
func (x *BatteryStats_App_UserActivity_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_App_UserActivity_Name_value, data, "BatteryStats_App_UserActivity_Name")
if err != nil {
return err
}
*x = BatteryStats_App_UserActivity_Name(value)
return nil
}
func (BatteryStats_App_UserActivity_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 15, 0}
}
type BatteryStats_System_BluetoothState_Name int32
const (
BatteryStats_System_BluetoothState_INACTIVE BatteryStats_System_BluetoothState_Name = 0
BatteryStats_System_BluetoothState_LOW BatteryStats_System_BluetoothState_Name = 1
BatteryStats_System_BluetoothState_MEDIUM BatteryStats_System_BluetoothState_Name = 2
BatteryStats_System_BluetoothState_HIGH BatteryStats_System_BluetoothState_Name = 3
)
var BatteryStats_System_BluetoothState_Name_name = map[int32]string{
0: "INACTIVE",
1: "LOW",
2: "MEDIUM",
3: "HIGH",
}
var BatteryStats_System_BluetoothState_Name_value = map[string]int32{
"INACTIVE": 0,
"LOW": 1,
"MEDIUM": 2,
"HIGH": 3,
}
func (x BatteryStats_System_BluetoothState_Name) Enum() *BatteryStats_System_BluetoothState_Name {
p := new(BatteryStats_System_BluetoothState_Name)
*p = x
return p
}
func (x BatteryStats_System_BluetoothState_Name) String() string {
return proto.EnumName(BatteryStats_System_BluetoothState_Name_name, int32(x))
}
func (x *BatteryStats_System_BluetoothState_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_BluetoothState_Name_value, data, "BatteryStats_System_BluetoothState_Name")
if err != nil {
return err
}
*x = BatteryStats_System_BluetoothState_Name(value)
return nil
}
func (BatteryStats_System_BluetoothState_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 3, 0}
}
type BatteryStats_System_DataConnection_Name int32
const (
BatteryStats_System_DataConnection_NONE BatteryStats_System_DataConnection_Name = 0
BatteryStats_System_DataConnection_GPRS BatteryStats_System_DataConnection_Name = 1
BatteryStats_System_DataConnection_EDGE BatteryStats_System_DataConnection_Name = 2
BatteryStats_System_DataConnection_UMTS BatteryStats_System_DataConnection_Name = 3
BatteryStats_System_DataConnection_CDMA BatteryStats_System_DataConnection_Name = 4
BatteryStats_System_DataConnection_EVDO_0 BatteryStats_System_DataConnection_Name = 5
BatteryStats_System_DataConnection_EVDO_A BatteryStats_System_DataConnection_Name = 6
BatteryStats_System_DataConnection_ONE_X_RTT BatteryStats_System_DataConnection_Name = 7
BatteryStats_System_DataConnection_HSDPA BatteryStats_System_DataConnection_Name = 8
BatteryStats_System_DataConnection_HSUPA BatteryStats_System_DataConnection_Name = 9
BatteryStats_System_DataConnection_HSPA BatteryStats_System_DataConnection_Name = 10
BatteryStats_System_DataConnection_IDEN BatteryStats_System_DataConnection_Name = 11
BatteryStats_System_DataConnection_EVDO_B BatteryStats_System_DataConnection_Name = 12
BatteryStats_System_DataConnection_LTE BatteryStats_System_DataConnection_Name = 13
BatteryStats_System_DataConnection_EHRPD BatteryStats_System_DataConnection_Name = 14
BatteryStats_System_DataConnection_HSPAP BatteryStats_System_DataConnection_Name = 15
BatteryStats_System_DataConnection_OTHER BatteryStats_System_DataConnection_Name = 16
)
var BatteryStats_System_DataConnection_Name_name = map[int32]string{
0: "NONE",
1: "GPRS",
2: "EDGE",
3: "UMTS",
4: "CDMA",
5: "EVDO_0",
6: "EVDO_A",
7: "ONE_X_RTT",
8: "HSDPA",
9: "HSUPA",
10: "HSPA",
11: "IDEN",
12: "EVDO_B",
13: "LTE",
14: "EHRPD",
15: "HSPAP",
16: "OTHER",
}
var BatteryStats_System_DataConnection_Name_value = map[string]int32{
"NONE": 0,
"GPRS": 1,
"EDGE": 2,
"UMTS": 3,
"CDMA": 4,
"EVDO_0": 5,
"EVDO_A": 6,
"ONE_X_RTT": 7,
"HSDPA": 8,
"HSUPA": 9,
"HSPA": 10,
"IDEN": 11,
"EVDO_B": 12,
"LTE": 13,
"EHRPD": 14,
"HSPAP": 15,
"OTHER": 16,
}
func (x BatteryStats_System_DataConnection_Name) Enum() *BatteryStats_System_DataConnection_Name {
p := new(BatteryStats_System_DataConnection_Name)
*p = x
return p
}
func (x BatteryStats_System_DataConnection_Name) String() string {
return proto.EnumName(BatteryStats_System_DataConnection_Name_name, int32(x))
}
func (x *BatteryStats_System_DataConnection_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_DataConnection_Name_value, data, "BatteryStats_System_DataConnection_Name")
if err != nil {
return err
}
*x = BatteryStats_System_DataConnection_Name(value)
return nil
}
func (BatteryStats_System_DataConnection_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 6, 0}
}
type BatteryStats_System_DisplayState_State int32
const (
BatteryStats_System_DisplayState_MIXED BatteryStats_System_DisplayState_State = 0
BatteryStats_System_DisplayState_ON BatteryStats_System_DisplayState_State = 1
BatteryStats_System_DisplayState_OFF BatteryStats_System_DisplayState_State = 2
BatteryStats_System_DisplayState_DOZE BatteryStats_System_DisplayState_State = 3
BatteryStats_System_DisplayState_DOZE_SUSPEND BatteryStats_System_DisplayState_State = 4
)
var BatteryStats_System_DisplayState_State_name = map[int32]string{
0: "MIXED",
1: "ON",
2: "OFF",
3: "DOZE",
4: "DOZE_SUSPEND",
}
var BatteryStats_System_DisplayState_State_value = map[string]int32{
"MIXED": 0,
"ON": 1,
"OFF": 2,
"DOZE": 3,
"DOZE_SUSPEND": 4,
}
func (x BatteryStats_System_DisplayState_State) Enum() *BatteryStats_System_DisplayState_State {
p := new(BatteryStats_System_DisplayState_State)
*p = x
return p
}
func (x BatteryStats_System_DisplayState_State) String() string {
return proto.EnumName(BatteryStats_System_DisplayState_State_name, int32(x))
}
func (x *BatteryStats_System_DisplayState_State) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_DisplayState_State_value, data, "BatteryStats_System_DisplayState_State")
if err != nil {
return err
}
*x = BatteryStats_System_DisplayState_State(value)
return nil
}
func (BatteryStats_System_DisplayState_State) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 9, 0}
}
type BatteryStats_System_IdleMode_Mode int32
const (
// NO_DATA is intended for older reports that did not have an idle mode
// section.
BatteryStats_System_IdleMode_NO_DATA BatteryStats_System_IdleMode_Mode = 0
BatteryStats_System_IdleMode_MIXED BatteryStats_System_IdleMode_Mode = 1
BatteryStats_System_IdleMode_ON BatteryStats_System_IdleMode_Mode = 2
BatteryStats_System_IdleMode_OFF BatteryStats_System_IdleMode_Mode = 3
)
var BatteryStats_System_IdleMode_Mode_name = map[int32]string{
0: "NO_DATA",
1: "MIXED",
2: "ON",
3: "OFF",
}
var BatteryStats_System_IdleMode_Mode_value = map[string]int32{
"NO_DATA": 0,
"MIXED": 1,
"ON": 2,
"OFF": 3,
}
func (x BatteryStats_System_IdleMode_Mode) Enum() *BatteryStats_System_IdleMode_Mode {
p := new(BatteryStats_System_IdleMode_Mode)
*p = x
return p
}
func (x BatteryStats_System_IdleMode_Mode) String() string {
return proto.EnumName(BatteryStats_System_IdleMode_Mode_name, int32(x))
}
func (x *BatteryStats_System_IdleMode_Mode) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_IdleMode_Mode_value, data, "BatteryStats_System_IdleMode_Mode")
if err != nil {
return err
}
*x = BatteryStats_System_IdleMode_Mode(value)
return nil
}
func (BatteryStats_System_IdleMode_Mode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 13, 0}
}
type BatteryStats_System_PowerSaveMode_Mode int32
const (
BatteryStats_System_PowerSaveMode_MIXED BatteryStats_System_PowerSaveMode_Mode = 0
BatteryStats_System_PowerSaveMode_ON BatteryStats_System_PowerSaveMode_Mode = 1
BatteryStats_System_PowerSaveMode_OFF BatteryStats_System_PowerSaveMode_Mode = 2
)
var BatteryStats_System_PowerSaveMode_Mode_name = map[int32]string{
0: "MIXED",
1: "ON",
2: "OFF",
}
var BatteryStats_System_PowerSaveMode_Mode_value = map[string]int32{
"MIXED": 0,
"ON": 1,
"OFF": 2,
}
func (x BatteryStats_System_PowerSaveMode_Mode) Enum() *BatteryStats_System_PowerSaveMode_Mode {
p := new(BatteryStats_System_PowerSaveMode_Mode)
*p = x
return p
}
func (x BatteryStats_System_PowerSaveMode_Mode) String() string {
return proto.EnumName(BatteryStats_System_PowerSaveMode_Mode_name, int32(x))
}
func (x *BatteryStats_System_PowerSaveMode_Mode) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_PowerSaveMode_Mode_value, data, "BatteryStats_System_PowerSaveMode_Mode")
if err != nil {
return err
}
*x = BatteryStats_System_PowerSaveMode_Mode(value)
return nil
}
func (BatteryStats_System_PowerSaveMode_Mode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 16, 0}
}
type BatteryStats_System_PowerUseItem_Name int32
const (
BatteryStats_System_PowerUseItem_IDLE BatteryStats_System_PowerUseItem_Name = 0
BatteryStats_System_PowerUseItem_CELL BatteryStats_System_PowerUseItem_Name = 1
BatteryStats_System_PowerUseItem_PHONE BatteryStats_System_PowerUseItem_Name = 2
BatteryStats_System_PowerUseItem_WIFI BatteryStats_System_PowerUseItem_Name = 3
BatteryStats_System_PowerUseItem_BLUETOOTH BatteryStats_System_PowerUseItem_Name = 4
BatteryStats_System_PowerUseItem_SCREEN BatteryStats_System_PowerUseItem_Name = 5
BatteryStats_System_PowerUseItem_APP BatteryStats_System_PowerUseItem_Name = 6
BatteryStats_System_PowerUseItem_USER BatteryStats_System_PowerUseItem_Name = 7
BatteryStats_System_PowerUseItem_UNACCOUNTED BatteryStats_System_PowerUseItem_Name = 8
BatteryStats_System_PowerUseItem_OVERCOUNTED BatteryStats_System_PowerUseItem_Name = 9
BatteryStats_System_PowerUseItem_DEFAULT BatteryStats_System_PowerUseItem_Name = 10
BatteryStats_System_PowerUseItem_FLASHLIGHT BatteryStats_System_PowerUseItem_Name = 11
)
var BatteryStats_System_PowerUseItem_Name_name = map[int32]string{
0: "IDLE",
1: "CELL",
2: "PHONE",
3: "WIFI",
4: "BLUETOOTH",
5: "SCREEN",
6: "APP",
7: "USER",
8: "UNACCOUNTED",
9: "OVERCOUNTED",
10: "DEFAULT",
11: "FLASHLIGHT",
}
var BatteryStats_System_PowerUseItem_Name_value = map[string]int32{
"IDLE": 0,
"CELL": 1,
"PHONE": 2,
"WIFI": 3,
"BLUETOOTH": 4,
"SCREEN": 5,
"APP": 6,
"USER": 7,
"UNACCOUNTED": 8,
"OVERCOUNTED": 9,
"DEFAULT": 10,
"FLASHLIGHT": 11,
}
func (x BatteryStats_System_PowerUseItem_Name) Enum() *BatteryStats_System_PowerUseItem_Name {
p := new(BatteryStats_System_PowerUseItem_Name)
*p = x
return p
}
func (x BatteryStats_System_PowerUseItem_Name) String() string {
return proto.EnumName(BatteryStats_System_PowerUseItem_Name_name, int32(x))
}
func (x *BatteryStats_System_PowerUseItem_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_PowerUseItem_Name_value, data, "BatteryStats_System_PowerUseItem_Name")
if err != nil {
return err
}
*x = BatteryStats_System_PowerUseItem_Name(value)
return nil
}
func (BatteryStats_System_PowerUseItem_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 17, 0}
}
type BatteryStats_System_ScreenBrightness_Name int32
const (
BatteryStats_System_ScreenBrightness_DARK BatteryStats_System_ScreenBrightness_Name = 0
BatteryStats_System_ScreenBrightness_DIM BatteryStats_System_ScreenBrightness_Name = 1
BatteryStats_System_ScreenBrightness_MEDIUM BatteryStats_System_ScreenBrightness_Name = 2
BatteryStats_System_ScreenBrightness_LIGHT BatteryStats_System_ScreenBrightness_Name = 3
BatteryStats_System_ScreenBrightness_BRIGHT BatteryStats_System_ScreenBrightness_Name = 4
)
var BatteryStats_System_ScreenBrightness_Name_name = map[int32]string{
0: "DARK",
1: "DIM",
2: "MEDIUM",
3: "LIGHT",
4: "BRIGHT",
}
var BatteryStats_System_ScreenBrightness_Name_value = map[string]int32{
"DARK": 0,
"DIM": 1,
"MEDIUM": 2,
"LIGHT": 3,
"BRIGHT": 4,
}
func (x BatteryStats_System_ScreenBrightness_Name) Enum() *BatteryStats_System_ScreenBrightness_Name {
p := new(BatteryStats_System_ScreenBrightness_Name)
*p = x
return p
}
func (x BatteryStats_System_ScreenBrightness_Name) String() string {
return proto.EnumName(BatteryStats_System_ScreenBrightness_Name_name, int32(x))
}
func (x *BatteryStats_System_ScreenBrightness_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_ScreenBrightness_Name_value, data, "BatteryStats_System_ScreenBrightness_Name")
if err != nil {
return err
}
*x = BatteryStats_System_ScreenBrightness_Name(value)
return nil
}
func (BatteryStats_System_ScreenBrightness_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 19, 0}
}
type BatteryStats_System_SignalStrength_Name int32
const (
BatteryStats_System_SignalStrength_NONE_OR_UNKNOWN BatteryStats_System_SignalStrength_Name = 0
BatteryStats_System_SignalStrength_POOR BatteryStats_System_SignalStrength_Name = 1
BatteryStats_System_SignalStrength_MODERATE BatteryStats_System_SignalStrength_Name = 2
BatteryStats_System_SignalStrength_GOOD BatteryStats_System_SignalStrength_Name = 3
BatteryStats_System_SignalStrength_GREAT BatteryStats_System_SignalStrength_Name = 4
)
var BatteryStats_System_SignalStrength_Name_name = map[int32]string{
0: "NONE_OR_UNKNOWN",
1: "POOR",
2: "MODERATE",
3: "GOOD",
4: "GREAT",
}
var BatteryStats_System_SignalStrength_Name_value = map[string]int32{
"NONE_OR_UNKNOWN": 0,
"POOR": 1,
"MODERATE": 2,
"GOOD": 3,
"GREAT": 4,
}
func (x BatteryStats_System_SignalStrength_Name) Enum() *BatteryStats_System_SignalStrength_Name {
p := new(BatteryStats_System_SignalStrength_Name)
*p = x
return p
}
func (x BatteryStats_System_SignalStrength_Name) String() string {
return proto.EnumName(BatteryStats_System_SignalStrength_Name_name, int32(x))
}
func (x *BatteryStats_System_SignalStrength_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_SignalStrength_Name_value, data, "BatteryStats_System_SignalStrength_Name")
if err != nil {
return err
}
*x = BatteryStats_System_SignalStrength_Name(value)
return nil
}
func (BatteryStats_System_SignalStrength_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 21, 0}
}
type BatteryStats_System_WifiSignalStrength_Name int32
const (
BatteryStats_System_WifiSignalStrength_NONE BatteryStats_System_WifiSignalStrength_Name = 0
BatteryStats_System_WifiSignalStrength_POOR BatteryStats_System_WifiSignalStrength_Name = 1
BatteryStats_System_WifiSignalStrength_MODERATE BatteryStats_System_WifiSignalStrength_Name = 2
BatteryStats_System_WifiSignalStrength_GOOD BatteryStats_System_WifiSignalStrength_Name = 3
BatteryStats_System_WifiSignalStrength_GREAT BatteryStats_System_WifiSignalStrength_Name = 4
)
var BatteryStats_System_WifiSignalStrength_Name_name = map[int32]string{
0: "NONE",
1: "POOR",
2: "MODERATE",
3: "GOOD",
4: "GREAT",
}
var BatteryStats_System_WifiSignalStrength_Name_value = map[string]int32{
"NONE": 0,
"POOR": 1,
"MODERATE": 2,
"GOOD": 3,
"GREAT": 4,
}
func (x BatteryStats_System_WifiSignalStrength_Name) Enum() *BatteryStats_System_WifiSignalStrength_Name {
p := new(BatteryStats_System_WifiSignalStrength_Name)
*p = x
return p
}
func (x BatteryStats_System_WifiSignalStrength_Name) String() string {
return proto.EnumName(BatteryStats_System_WifiSignalStrength_Name_name, int32(x))
}
func (x *BatteryStats_System_WifiSignalStrength_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_WifiSignalStrength_Name_value, data, "BatteryStats_System_WifiSignalStrength_Name")
if err != nil {
return err
}
*x = BatteryStats_System_WifiSignalStrength_Name(value)
return nil
}
func (BatteryStats_System_WifiSignalStrength_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 23, 0}
}
type BatteryStats_System_WifiSupplicantState_Name int32
const (
BatteryStats_System_WifiSupplicantState_INVALID BatteryStats_System_WifiSupplicantState_Name = 0
BatteryStats_System_WifiSupplicantState_DISCONNECTED BatteryStats_System_WifiSupplicantState_Name = 1
BatteryStats_System_WifiSupplicantState_INTERFACE_DISABLED BatteryStats_System_WifiSupplicantState_Name = 2
BatteryStats_System_WifiSupplicantState_INACTIVE BatteryStats_System_WifiSupplicantState_Name = 3
BatteryStats_System_WifiSupplicantState_SCANNING BatteryStats_System_WifiSupplicantState_Name = 4
BatteryStats_System_WifiSupplicantState_AUTHENTICATING BatteryStats_System_WifiSupplicantState_Name = 5
BatteryStats_System_WifiSupplicantState_ASSOCIATING BatteryStats_System_WifiSupplicantState_Name = 6
BatteryStats_System_WifiSupplicantState_ASSOCIATED BatteryStats_System_WifiSupplicantState_Name = 7
BatteryStats_System_WifiSupplicantState_FOUR_WAY_HANDSHAKE BatteryStats_System_WifiSupplicantState_Name = 8
BatteryStats_System_WifiSupplicantState_GROUP_HANDSHAKE BatteryStats_System_WifiSupplicantState_Name = 9
BatteryStats_System_WifiSupplicantState_COMPLETED BatteryStats_System_WifiSupplicantState_Name = 10
BatteryStats_System_WifiSupplicantState_DORMANT BatteryStats_System_WifiSupplicantState_Name = 11
BatteryStats_System_WifiSupplicantState_UNINITIALIZED BatteryStats_System_WifiSupplicantState_Name = 12
)
var BatteryStats_System_WifiSupplicantState_Name_name = map[int32]string{
0: "INVALID",
1: "DISCONNECTED",
2: "INTERFACE_DISABLED",
3: "INACTIVE",
4: "SCANNING",
5: "AUTHENTICATING",
6: "ASSOCIATING",
7: "ASSOCIATED",
8: "FOUR_WAY_HANDSHAKE",
9: "GROUP_HANDSHAKE",
10: "COMPLETED",
11: "DORMANT",
12: "UNINITIALIZED",
}
var BatteryStats_System_WifiSupplicantState_Name_value = map[string]int32{
"INVALID": 0,
"DISCONNECTED": 1,
"INTERFACE_DISABLED": 2,
"INACTIVE": 3,
"SCANNING": 4,
"AUTHENTICATING": 5,
"ASSOCIATING": 6,
"ASSOCIATED": 7,
"FOUR_WAY_HANDSHAKE": 8,
"GROUP_HANDSHAKE": 9,
"COMPLETED": 10,
"DORMANT": 11,
"UNINITIALIZED": 12,
}
func (x BatteryStats_System_WifiSupplicantState_Name) Enum() *BatteryStats_System_WifiSupplicantState_Name {
p := new(BatteryStats_System_WifiSupplicantState_Name)
*p = x
return p
}
func (x BatteryStats_System_WifiSupplicantState_Name) String() string {
return proto.EnumName(BatteryStats_System_WifiSupplicantState_Name_name, int32(x))
}
func (x *BatteryStats_System_WifiSupplicantState_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_WifiSupplicantState_Name_value, data, "BatteryStats_System_WifiSupplicantState_Name")
if err != nil {
return err
}
*x = BatteryStats_System_WifiSupplicantState_Name(value)
return nil
}
func (BatteryStats_System_WifiSupplicantState_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 24, 0}
}
type BatteryStats_System_WifiState_Name int32
const (
BatteryStats_System_WifiState_OFF BatteryStats_System_WifiState_Name = 0
BatteryStats_System_WifiState_OFF_SCANNING BatteryStats_System_WifiState_Name = 1
BatteryStats_System_WifiState_ON_NO_NETWORKS BatteryStats_System_WifiState_Name = 2
BatteryStats_System_WifiState_ON_DISCONNECTED BatteryStats_System_WifiState_Name = 3
BatteryStats_System_WifiState_ON_CONNECTED_STA BatteryStats_System_WifiState_Name = 4
BatteryStats_System_WifiState_ON_CONNECTED_P2P BatteryStats_System_WifiState_Name = 5
BatteryStats_System_WifiState_ON_CONNECTED_STA_P2P BatteryStats_System_WifiState_Name = 6
BatteryStats_System_WifiState_SOFT_AP BatteryStats_System_WifiState_Name = 7
)
var BatteryStats_System_WifiState_Name_name = map[int32]string{
0: "OFF",
1: "OFF_SCANNING",
2: "ON_NO_NETWORKS",
3: "ON_DISCONNECTED",
4: "ON_CONNECTED_STA",
5: "ON_CONNECTED_P2P",
6: "ON_CONNECTED_STA_P2P",
7: "SOFT_AP",
}
var BatteryStats_System_WifiState_Name_value = map[string]int32{
"OFF": 0,
"OFF_SCANNING": 1,
"ON_NO_NETWORKS": 2,
"ON_DISCONNECTED": 3,
"ON_CONNECTED_STA": 4,
"ON_CONNECTED_P2P": 5,
"ON_CONNECTED_STA_P2P": 6,
"SOFT_AP": 7,
}
func (x BatteryStats_System_WifiState_Name) Enum() *BatteryStats_System_WifiState_Name {
p := new(BatteryStats_System_WifiState_Name)
*p = x
return p
}
func (x BatteryStats_System_WifiState_Name) String() string {
return proto.EnumName(BatteryStats_System_WifiState_Name_name, int32(x))
}
func (x *BatteryStats_System_WifiState_Name) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(BatteryStats_System_WifiState_Name_value, data, "BatteryStats_System_WifiState_Name")
if err != nil {
return err
}
*x = BatteryStats_System_WifiState_Name(value)
return nil
}
func (BatteryStats_System_WifiState_Name) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 25, 0}
}
type BatteryStats struct {
// Unique ID for the record. Concatenation of end_time_usec, shard, and the index in the shard.
RecordId *string `protobuf:"bytes,1,opt,name=record_id" json:"record_id,omitempty"`
// Encrypted android_id. Cleared for user/release-keys builds.
AndroidIdx *string `protobuf:"bytes,2,opt,name=android_idx" json:"android_idx,omitempty"`
// When aggregation starts.
StartTimeUsec *int64 `protobuf:"varint,3,opt,name=start_time_usec" json:"start_time_usec,omitempty"`
// When aggregation ends.
EndTimeUsec *int64 `protobuf:"varint,4,opt,name=end_time_usec" json:"end_time_usec,omitempty"`
// start_time_usec in "YYYY-MM-DD HH:MM:SS" (MTV time).
StartTimeStr *string `protobuf:"bytes,5,opt,name=start_time_str" json:"start_time_str,omitempty"`
// end_time_usec in "YYYY-MM-DD HH:MM:SS" (MTV time).
EndTimeStr *string `protobuf:"bytes,6,opt,name=end_time_str" json:"end_time_str,omitempty"`
// start_time_str in local time.
LocalStartTimeStr *string `protobuf:"bytes,7,opt,name=local_start_time_str" json:"local_start_time_str,omitempty"`
// end_time_str in local time.
LocalEndTimeStr *string `protobuf:"bytes,8,opt,name=local_end_time_str" json:"local_end_time_str,omitempty"`
// e.g., auto.googlefood.jellybean.
DeviceGroup []string `protobuf:"bytes,9,rep,name=device_group" json:"device_group,omitempty"`
// e.g., user-domain-google.com.
CheckinRule []string `protobuf:"bytes,10,rep,name=checkin_rule" json:"checkin_rule,omitempty"`
// True if it's Googler's data.
IsGoogler *bool `protobuf:"varint,11,opt,name=is_googler" json:"is_googler,omitempty"`
// True if it's user/release-keys.
IsUserRelease *bool `protobuf:"varint,12,opt,name=is_user_release" json:"is_user_release,omitempty"`
// Info from the build fingerprint.
Build *build.Build `protobuf:"bytes,13,opt,name=build" json:"build,omitempty"`
// Android SDK version.
SdkVersion *int32 `protobuf:"varint,14,opt,name=sdk_version" json:"sdk_version,omitempty"`
// GMS Core version.
GmsVersion *int32 `protobuf:"varint,15,opt,name=gms_version" json:"gms_version,omitempty"`
// System bootloader version.
Bootloader *string `protobuf:"bytes,16,opt,name=bootloader" json:"bootloader,omitempty"`
// Radio subsystem version.
Radio *string `protobuf:"bytes,17,opt,name=radio" json:"radio,omitempty"`
// e.g., Verizon Wireless/US.
Carrier *string `protobuf:"bytes,18,opt,name=carrier" json:"carrier,omitempty"`
// e.g., US.
CountryCode *string `protobuf:"bytes,19,opt,name=country_code" json:"country_code,omitempty"`
// e.g., America/Los_Angeles.
TimeZone *string `protobuf:"bytes,20,opt,name=time_zone" json:"time_zone,omitempty"`
// Checkin report version.
ReportVersion *int32 `protobuf:"varint,21,opt,name=report_version" json:"report_version,omitempty"`
// True for the original report.
IsOriginal *bool `protobuf:"varint,22,opt,name=is_original" json:"is_original,omitempty"`
// True for the latest report among originals sharing start_clock_time_msec.
IsLatest *bool `protobuf:"varint,23,opt,name=is_latest" json:"is_latest,omitempty"`
// True for the report generated from diff between originals or if such
// operation does not make sense. Note is_original and is_diff are not
// mutually exclusive.
IsDiff *bool `protobuf:"varint,24,opt,name=is_diff" json:"is_diff,omitempty"`
// True if the android wear device is paired to an ALT mode companion on iPhone.
IsAltMode *bool `protobuf:"varint,29,opt,name=is_alt_mode" json:"is_alt_mode,omitempty"`
// Warnings generated when parsing the report.
Warning []string `protobuf:"bytes,30,rep,name=warning" json:"warning,omitempty"`
// Errors generated when parsing the report.
Error []string `protobuf:"bytes,31,rep,name=error" json:"error,omitempty"`
AggregationType *BatteryStats_AggregationType `protobuf:"varint,25,opt,name=aggregation_type,enum=batterystats.BatteryStats_AggregationType" json:"aggregation_type,omitempty"`
App []*BatteryStats_App `protobuf:"bytes,26,rep,name=app" json:"app,omitempty"`
System *BatteryStats_System `protobuf:"bytes,27,opt,name=system" json:"system,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats) Reset() { *m = BatteryStats{} }
func (m *BatteryStats) String() string { return proto.CompactTextString(m) }
func (*BatteryStats) ProtoMessage() {}
func (*BatteryStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *BatteryStats) GetRecordId() string {
if m != nil && m.RecordId != nil {
return *m.RecordId
}
return ""
}
func (m *BatteryStats) GetAndroidIdx() string {
if m != nil && m.AndroidIdx != nil {
return *m.AndroidIdx
}
return ""
}
func (m *BatteryStats) GetStartTimeUsec() int64 {
if m != nil && m.StartTimeUsec != nil {
return *m.StartTimeUsec
}
return 0
}
func (m *BatteryStats) GetEndTimeUsec() int64 {
if m != nil && m.EndTimeUsec != nil {
return *m.EndTimeUsec
}
return 0
}
func (m *BatteryStats) GetStartTimeStr() string {
if m != nil && m.StartTimeStr != nil {
return *m.StartTimeStr
}
return ""
}
func (m *BatteryStats) GetEndTimeStr() string {
if m != nil && m.EndTimeStr != nil {
return *m.EndTimeStr
}
return ""
}
func (m *BatteryStats) GetLocalStartTimeStr() string {
if m != nil && m.LocalStartTimeStr != nil {
return *m.LocalStartTimeStr
}
return ""
}
func (m *BatteryStats) GetLocalEndTimeStr() string {
if m != nil && m.LocalEndTimeStr != nil {
return *m.LocalEndTimeStr
}
return ""
}
func (m *BatteryStats) GetDeviceGroup() []string {
if m != nil {
return m.DeviceGroup
}
return nil
}
func (m *BatteryStats) GetCheckinRule() []string {
if m != nil {
return m.CheckinRule
}
return nil
}
func (m *BatteryStats) GetIsGoogler() bool {
if m != nil && m.IsGoogler != nil {
return *m.IsGoogler
}
return false
}
func (m *BatteryStats) GetIsUserRelease() bool {
if m != nil && m.IsUserRelease != nil {
return *m.IsUserRelease
}
return false
}
func (m *BatteryStats) GetBuild() *build.Build {
if m != nil {
return m.Build
}
return nil
}
func (m *BatteryStats) GetSdkVersion() int32 {
if m != nil && m.SdkVersion != nil {
return *m.SdkVersion
}
return 0
}
func (m *BatteryStats) GetGmsVersion() int32 {
if m != nil && m.GmsVersion != nil {
return *m.GmsVersion
}
return 0
}
func (m *BatteryStats) GetBootloader() string {
if m != nil && m.Bootloader != nil {
return *m.Bootloader
}
return ""
}
func (m *BatteryStats) GetRadio() string {
if m != nil && m.Radio != nil {
return *m.Radio
}
return ""
}
func (m *BatteryStats) GetCarrier() string {
if m != nil && m.Carrier != nil {
return *m.Carrier
}
return ""
}
func (m *BatteryStats) GetCountryCode() string {
if m != nil && m.CountryCode != nil {
return *m.CountryCode
}
return ""
}
func (m *BatteryStats) GetTimeZone() string {
if m != nil && m.TimeZone != nil {
return *m.TimeZone
}
return ""
}
func (m *BatteryStats) GetReportVersion() int32 {
if m != nil && m.ReportVersion != nil {
return *m.ReportVersion
}
return 0
}
func (m *BatteryStats) GetIsOriginal() bool {
if m != nil && m.IsOriginal != nil {
return *m.IsOriginal
}
return false
}
func (m *BatteryStats) GetIsLatest() bool {
if m != nil && m.IsLatest != nil {
return *m.IsLatest
}
return false
}
func (m *BatteryStats) GetIsDiff() bool {
if m != nil && m.IsDiff != nil {
return *m.IsDiff
}
return false
}
func (m *BatteryStats) GetIsAltMode() bool {
if m != nil && m.IsAltMode != nil {
return *m.IsAltMode
}
return false
}
func (m *BatteryStats) GetWarning() []string {
if m != nil {
return m.Warning
}
return nil
}
func (m *BatteryStats) GetError() []string {
if m != nil {
return m.Error
}
return nil
}
func (m *BatteryStats) GetAggregationType() BatteryStats_AggregationType {
if m != nil && m.AggregationType != nil {
return *m.AggregationType
}
return BatteryStats_SINCE_CHARGED
}
func (m *BatteryStats) GetApp() []*BatteryStats_App {
if m != nil {
return m.App
}
return nil
}
func (m *BatteryStats) GetSystem() *BatteryStats_System {
if m != nil {
return m.System
}
return nil
}
// Data collected about a single UID.
//
// In some cases, times are 'apportioned' (i.e. refer to the blame apportioned
// to this app amongst all apps) rather than the actual time spent. For
// example, if two apps hold wakelocks simultaneously, the time apportioned to
// a single app is actually only part of the time it spent holding the
// wakelock, estimating how much of the device's total wakelock time can be
// blamed on this app. Other times are 'actual', meaning that they
// do not take into account usage by other apps.
// For example, suppose app A is holding wakelock w for 10 minutes and, in the
// middle of those 10 minutes, app B holds wakelock w for 4 minutes. Then
// App A actual wakelock time is 10 minutes.
// App B actual wakelock time is 4 minutes.
// App A apportioned wakelock time might be (10-4) + 4/2 = 8 minutes.
// App B apportioned wakelock time might be 4/2 = 2 minutes.
// Note that the sum of the apportioned times is 10 minutes, which is the
// length of the time period that wakelock w was held.
type BatteryStats_App struct {
// e.g., com.google.android.gms.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// e.g., 4224038.
VersionCode *int32 `protobuf:"varint,2,opt,name=version_code" json:"version_code,omitempty"`
// e.g., 1000.
Uid *int32 `protobuf:"varint,3,opt,name=uid" json:"uid,omitempty"`
// e.g. 1.3
VersionName *string `protobuf:"bytes,24,opt,name=version_name" json:"version_name,omitempty"`
Child []*BatteryStats_App_Child `protobuf:"bytes,13,rep,name=child" json:"child,omitempty"`
// For the most important child (to make it easy to query by dremel).
// e.g., gms for Google Services.
HeadChild *BatteryStats_App_Child `protobuf:"bytes,18,opt,name=head_child" json:"head_child,omitempty"`
Apk *BatteryStats_App_Apk `protobuf:"bytes,4,opt,name=apk" json:"apk,omitempty"`
Audio *BatteryStats_App_Audio `protobuf:"bytes,19,opt,name=audio" json:"audio,omitempty"`
// Idle for bluetooth is associated with scanning.
BluetoothController *BatteryStats_ControllerActivity `protobuf:"bytes,25,opt,name=bluetooth_controller" json:"bluetooth_controller,omitempty"`
BluetoothMisc *BatteryStats_App_BluetoothMisc `protobuf:"bytes,28,opt,name=bluetooth_misc" json:"bluetooth_misc,omitempty"`
Camera *BatteryStats_App_Camera `protobuf:"bytes,20,opt,name=camera" json:"camera,omitempty"`
Cpu *BatteryStats_App_Cpu `protobuf:"bytes,23,opt,name=cpu" json:"cpu,omitempty"`
Flashlight *BatteryStats_App_Flashlight `protobuf:"bytes,21,opt,name=flashlight" json:"flashlight,omitempty"`
Foreground *BatteryStats_App_Foreground `protobuf:"bytes,5,opt,name=foreground" json:"foreground,omitempty"`
// The modem controller doesn't provide a mechanism for determining when an
// app has the modem active but is not transmitting data, so there's no way
// to idle modem time to a specific UID, hence, idle time will always be 0
// for app.modem_controller.
ModemController *BatteryStats_ControllerActivity `protobuf:"bytes,26,opt,name=modem_controller" json:"modem_controller,omitempty"`
Network *BatteryStats_App_Network `protobuf:"bytes,6,opt,name=network" json:"network,omitempty"`
PowerUseItem *BatteryStats_App_PowerUseItem `protobuf:"bytes,7,opt,name=power_use_item" json:"power_use_item,omitempty"`
Process []*BatteryStats_App_Process `protobuf:"bytes,8,rep,name=process" json:"process,omitempty"`
ScheduledJob []*BatteryStats_App_ScheduledJob `protobuf:"bytes,14,rep,name=scheduled_job" json:"scheduled_job,omitempty"`
Sensor []*BatteryStats_App_Sensor `protobuf:"bytes,9,rep,name=sensor" json:"sensor,omitempty"`
StateTime *BatteryStats_App_StateTime `protobuf:"bytes,15,opt,name=state_time" json:"state_time,omitempty"`
Sync []*BatteryStats_App_Sync `protobuf:"bytes,16,rep,name=sync" json:"sync,omitempty"`
UserActivity []*BatteryStats_App_UserActivity `protobuf:"bytes,17,rep,name=user_activity" json:"user_activity,omitempty"`
Vibrator *BatteryStats_App_Vibrator `protobuf:"bytes,10,opt,name=vibrator" json:"vibrator,omitempty"`
Video *BatteryStats_App_Video `protobuf:"bytes,22,opt,name=video" json:"video,omitempty"`
Wakelock []*BatteryStats_App_Wakelock `protobuf:"bytes,11,rep,name=wakelock" json:"wakelock,omitempty"`
// If an apk doesn't have service stats, then the APK_DATA line isn't
// printed, so apk.wakeups could be 0 even though there are WakeupAlarm
// entries here.
WakeupAlarm []*BatteryStats_App_WakeupAlarm `protobuf:"bytes,29,rep,name=wakeup_alarm" json:"wakeup_alarm,omitempty"`
Wifi *BatteryStats_App_Wifi `protobuf:"bytes,12,opt,name=wifi" json:"wifi,omitempty"`
// Idle for wifi is associated with wifi full locks.
WifiController *BatteryStats_ControllerActivity `protobuf:"bytes,27,opt,name=wifi_controller" json:"wifi_controller,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App) Reset() { *m = BatteryStats_App{} }
func (m *BatteryStats_App) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App) ProtoMessage() {}
func (*BatteryStats_App) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
func (m *BatteryStats_App) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App) GetVersionCode() int32 {
if m != nil && m.VersionCode != nil {
return *m.VersionCode
}
return 0
}
func (m *BatteryStats_App) GetUid() int32 {
if m != nil && m.Uid != nil {
return *m.Uid
}
return 0
}
func (m *BatteryStats_App) GetVersionName() string {
if m != nil && m.VersionName != nil {
return *m.VersionName
}
return ""
}
func (m *BatteryStats_App) GetChild() []*BatteryStats_App_Child {
if m != nil {
return m.Child
}
return nil
}
func (m *BatteryStats_App) GetHeadChild() *BatteryStats_App_Child {
if m != nil {
return m.HeadChild
}
return nil
}
func (m *BatteryStats_App) GetApk() *BatteryStats_App_Apk {
if m != nil {
return m.Apk
}
return nil
}
func (m *BatteryStats_App) GetAudio() *BatteryStats_App_Audio {
if m != nil {
return m.Audio
}
return nil
}
func (m *BatteryStats_App) GetBluetoothController() *BatteryStats_ControllerActivity {
if m != nil {
return m.BluetoothController
}
return nil
}
func (m *BatteryStats_App) GetBluetoothMisc() *BatteryStats_App_BluetoothMisc {
if m != nil {
return m.BluetoothMisc
}
return nil
}
func (m *BatteryStats_App) GetCamera() *BatteryStats_App_Camera {
if m != nil {
return m.Camera
}
return nil
}
func (m *BatteryStats_App) GetCpu() *BatteryStats_App_Cpu {
if m != nil {
return m.Cpu
}
return nil
}
func (m *BatteryStats_App) GetFlashlight() *BatteryStats_App_Flashlight {
if m != nil {
return m.Flashlight
}
return nil
}
func (m *BatteryStats_App) GetForeground() *BatteryStats_App_Foreground {
if m != nil {
return m.Foreground
}
return nil
}
func (m *BatteryStats_App) GetModemController() *BatteryStats_ControllerActivity {
if m != nil {
return m.ModemController
}
return nil
}
func (m *BatteryStats_App) GetNetwork() *BatteryStats_App_Network {
if m != nil {
return m.Network
}
return nil
}
func (m *BatteryStats_App) GetPowerUseItem() *BatteryStats_App_PowerUseItem {
if m != nil {
return m.PowerUseItem
}
return nil
}
func (m *BatteryStats_App) GetProcess() []*BatteryStats_App_Process {
if m != nil {
return m.Process
}
return nil
}
func (m *BatteryStats_App) GetScheduledJob() []*BatteryStats_App_ScheduledJob {
if m != nil {
return m.ScheduledJob
}
return nil
}
func (m *BatteryStats_App) GetSensor() []*BatteryStats_App_Sensor {
if m != nil {
return m.Sensor
}
return nil
}
func (m *BatteryStats_App) GetStateTime() *BatteryStats_App_StateTime {
if m != nil {
return m.StateTime
}
return nil
}
func (m *BatteryStats_App) GetSync() []*BatteryStats_App_Sync {
if m != nil {
return m.Sync
}
return nil
}
func (m *BatteryStats_App) GetUserActivity() []*BatteryStats_App_UserActivity {
if m != nil {
return m.UserActivity
}
return nil
}
func (m *BatteryStats_App) GetVibrator() *BatteryStats_App_Vibrator {
if m != nil {
return m.Vibrator
}
return nil
}
func (m *BatteryStats_App) GetVideo() *BatteryStats_App_Video {
if m != nil {
return m.Video
}
return nil
}
func (m *BatteryStats_App) GetWakelock() []*BatteryStats_App_Wakelock {
if m != nil {
return m.Wakelock
}
return nil
}
func (m *BatteryStats_App) GetWakeupAlarm() []*BatteryStats_App_WakeupAlarm {
if m != nil {
return m.WakeupAlarm
}
return nil
}
func (m *BatteryStats_App) GetWifi() *BatteryStats_App_Wifi {
if m != nil {
return m.Wifi
}
return nil
}
func (m *BatteryStats_App) GetWifiController() *BatteryStats_ControllerActivity {
if m != nil {
return m.WifiController
}
return nil
}
// List of packages sharing the UID. (e.g., gms, gsf for Google Services)
type BatteryStats_App_Child struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
VersionCode *int32 `protobuf:"varint,2,opt,name=version_code" json:"version_code,omitempty"`
VersionName *string `protobuf:"bytes,3,opt,name=version_name" json:"version_name,omitempty"`
Apk *BatteryStats_App_Apk `protobuf:"bytes,4,opt,name=apk" json:"apk,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Child) Reset() { *m = BatteryStats_App_Child{} }
func (m *BatteryStats_App_Child) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Child) ProtoMessage() {}
func (*BatteryStats_App_Child) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 0} }
func (m *BatteryStats_App_Child) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_Child) GetVersionCode() int32 {
if m != nil && m.VersionCode != nil {
return *m.VersionCode
}
return 0
}
func (m *BatteryStats_App_Child) GetVersionName() string {
if m != nil && m.VersionName != nil {
return *m.VersionName
}
return ""
}
func (m *BatteryStats_App_Child) GetApk() *BatteryStats_App_Apk {
if m != nil {
return m.Apk
}
return nil
}
type BatteryStats_App_Apk struct {
// #wakeup alarms that executed. Not int because some packages share the UID.
// The wakeup count is split further by name in the wakeup_alarm field in
// report version 17 and up.
Wakeups *float32 `protobuf:"fixed32,1,opt,name=wakeups" json:"wakeups,omitempty"`
Service []*BatteryStats_App_Apk_Service `protobuf:"bytes,2,rep,name=service" json:"service,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Apk) Reset() { *m = BatteryStats_App_Apk{} }
func (m *BatteryStats_App_Apk) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Apk) ProtoMessage() {}
func (*BatteryStats_App_Apk) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 1} }
func (m *BatteryStats_App_Apk) GetWakeups() float32 {
if m != nil && m.Wakeups != nil {
return *m.Wakeups
}
return 0
}
func (m *BatteryStats_App_Apk) GetService() []*BatteryStats_App_Apk_Service {
if m != nil {
return m.Service
}
return nil
}
type BatteryStats_App_Apk_Service struct {
// e.g., com.google.android.gms.icing.service.IndexService.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Time spent started.
StartTimeMsec *float32 `protobuf:"fixed32,2,opt,name=start_time_msec" json:"start_time_msec,omitempty"`
// #times it was started.
Starts *float32 `protobuf:"fixed32,3,opt,name=starts" json:"starts,omitempty"`
// #times it was launched.
Launches *float32 `protobuf:"fixed32,4,opt,name=launches" json:"launches,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Apk_Service) Reset() { *m = BatteryStats_App_Apk_Service{} }
func (m *BatteryStats_App_Apk_Service) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Apk_Service) ProtoMessage() {}
func (*BatteryStats_App_Apk_Service) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 1, 0}
}
func (m *BatteryStats_App_Apk_Service) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_Apk_Service) GetStartTimeMsec() float32 {
if m != nil && m.StartTimeMsec != nil {
return *m.StartTimeMsec
}
return 0
}
func (m *BatteryStats_App_Apk_Service) GetStarts() float32 {
if m != nil && m.Starts != nil {
return *m.Starts
}
return 0
}
func (m *BatteryStats_App_Apk_Service) GetLaunches() float32 {
if m != nil && m.Launches != nil {
return *m.Launches
}
return 0
}
type BatteryStats_App_Audio struct {
// Duration spent running audio.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Audio) Reset() { *m = BatteryStats_App_Audio{} }
func (m *BatteryStats_App_Audio) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Audio) ProtoMessage() {}
func (*BatteryStats_App_Audio) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 2} }
func (m *BatteryStats_App_Audio) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Audio) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// Bluetooth misc data.
type BatteryStats_App_BluetoothMisc struct {
// Duration spent BLE scanning blamed on this App (i.e. apportioned to
// this app amongst all apps doing BLE scanning; see explanation of
// 'apportioned' in App's comment).
BleScanTimeMsec *int64 `protobuf:"varint,1,opt,name=ble_scan_time_msec" json:"ble_scan_time_msec,omitempty"`
// BLE scan count.
BleScanCount *int32 `protobuf:"varint,2,opt,name=ble_scan_count" json:"ble_scan_count,omitempty"`
// # of BLE scans when app is in background. (Included in ble_scan_count.)
BleScanCountBg *int32 `protobuf:"varint,3,opt,name=ble_scan_count_bg" json:"ble_scan_count_bg,omitempty"`
// Duration spent BLE scanning in total (irrespective of whether other
// apps were also simultaneously scanning; see explanation of
// 'apportioned' vs. 'actual' in App's comment).
// Includes both foreground + background use.
BleScanActualTimeMsec *int64 `protobuf:"varint,4,opt,name=ble_scan_actual_time_msec" json:"ble_scan_actual_time_msec,omitempty"`
// Duration spent BLE scanning when app is in background (irrespective of
// whether other apps were also simultaneously scanning; see explanation
// of 'apportioned' vs. 'actual' in App's comment).
// (Subtracting from ble_scan_actual_time_msec will yield
// foreground usage.)
BleScanActualTimeMsecBg *int64 `protobuf:"varint,5,opt,name=ble_scan_actual_time_msec_bg" json:"ble_scan_actual_time_msec_bg,omitempty"`
// Count of results returned by BLE scanning.
BleScanResultCount *int32 `protobuf:"varint,6,opt,name=ble_scan_result_count" json:"ble_scan_result_count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_BluetoothMisc) Reset() { *m = BatteryStats_App_BluetoothMisc{} }
func (m *BatteryStats_App_BluetoothMisc) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_BluetoothMisc) ProtoMessage() {}
func (*BatteryStats_App_BluetoothMisc) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 3}
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanTimeMsec() int64 {
if m != nil && m.BleScanTimeMsec != nil {
return *m.BleScanTimeMsec
}
return 0
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanCount() int32 {
if m != nil && m.BleScanCount != nil {
return *m.BleScanCount
}
return 0
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanCountBg() int32 {
if m != nil && m.BleScanCountBg != nil {
return *m.BleScanCountBg
}
return 0
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanActualTimeMsec() int64 {
if m != nil && m.BleScanActualTimeMsec != nil {
return *m.BleScanActualTimeMsec
}
return 0
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanActualTimeMsecBg() int64 {
if m != nil && m.BleScanActualTimeMsecBg != nil {
return *m.BleScanActualTimeMsecBg
}
return 0
}
func (m *BatteryStats_App_BluetoothMisc) GetBleScanResultCount() int32 {
if m != nil && m.BleScanResultCount != nil {
return *m.BleScanResultCount
}
return 0
}
type BatteryStats_App_Camera struct {
// Duration spent running camera.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Camera) Reset() { *m = BatteryStats_App_Camera{} }
func (m *BatteryStats_App_Camera) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Camera) ProtoMessage() {}
func (*BatteryStats_App_Camera) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 4} }
func (m *BatteryStats_App_Camera) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Camera) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Cpu struct {
// Total CPU time with processes executing in userspace. Summed up across
// multiple cores.
UserTimeMs *float32 `protobuf:"fixed32,1,opt,name=user_time_ms" json:"user_time_ms,omitempty"`
// Total CPU time with processes executing kernel syscalls. Summed up
// across multiple cores.
SystemTimeMs *float32 `protobuf:"fixed32,2,opt,name=system_time_ms" json:"system_time_ms,omitempty"`
// Total CPU power consumed in milli-ampere-milliseconds.
PowerMaMs *float32 `protobuf:"fixed32,3,opt,name=power_ma_ms" json:"power_ma_ms,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Cpu) Reset() { *m = BatteryStats_App_Cpu{} }
func (m *BatteryStats_App_Cpu) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Cpu) ProtoMessage() {}
func (*BatteryStats_App_Cpu) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 5} }
func (m *BatteryStats_App_Cpu) GetUserTimeMs() float32 {
if m != nil && m.UserTimeMs != nil {
return *m.UserTimeMs
}
return 0
}
func (m *BatteryStats_App_Cpu) GetSystemTimeMs() float32 {
if m != nil && m.SystemTimeMs != nil {
return *m.SystemTimeMs
}
return 0
}
func (m *BatteryStats_App_Cpu) GetPowerMaMs() float32 {
if m != nil && m.PowerMaMs != nil {
return *m.PowerMaMs
}
return 0
}
type BatteryStats_App_Flashlight struct {
// Duration spent running flashlight.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Flashlight) Reset() { *m = BatteryStats_App_Flashlight{} }
func (m *BatteryStats_App_Flashlight) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Flashlight) ProtoMessage() {}
func (*BatteryStats_App_Flashlight) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 6}
}
func (m *BatteryStats_App_Flashlight) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Flashlight) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Foreground struct {
// Duration spent running as foreground activity.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Foreground) Reset() { *m = BatteryStats_App_Foreground{} }
func (m *BatteryStats_App_Foreground) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Foreground) ProtoMessage() {}
func (*BatteryStats_App_Foreground) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 7}
}
func (m *BatteryStats_App_Foreground) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Foreground) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Network struct {
// Mobile data traffic (total, background + foreground).
MobileBytesRx *float32 `protobuf:"fixed32,1,opt,name=mobile_bytes_rx" json:"mobile_bytes_rx,omitempty"`
MobileBytesTx *float32 `protobuf:"fixed32,2,opt,name=mobile_bytes_tx" json:"mobile_bytes_tx,omitempty"`
// Wifi data traffic (total, background + foreground).
WifiBytesRx *float32 `protobuf:"fixed32,3,opt,name=wifi_bytes_rx" json:"wifi_bytes_rx,omitempty"`
WifiBytesTx *float32 `protobuf:"fixed32,4,opt,name=wifi_bytes_tx" json:"wifi_bytes_tx,omitempty"`
// In packets (total, background + foreground).
MobilePacketsRx *float32 `protobuf:"fixed32,5,opt,name=mobile_packets_rx" json:"mobile_packets_rx,omitempty"`
MobilePacketsTx *float32 `protobuf:"fixed32,6,opt,name=mobile_packets_tx" json:"mobile_packets_tx,omitempty"`
WifiPacketsRx *float32 `protobuf:"fixed32,7,opt,name=wifi_packets_rx" json:"wifi_packets_rx,omitempty"`
WifiPacketsTx *float32 `protobuf:"fixed32,8,opt,name=wifi_packets_tx" json:"wifi_packets_tx,omitempty"`
// Radio active duration.
MobileActiveTimeMsec *float32 `protobuf:"fixed32,9,opt,name=mobile_active_time_msec" json:"mobile_active_time_msec,omitempty"`
MobileActiveCount *float32 `protobuf:"fixed32,10,opt,name=mobile_active_count" json:"mobile_active_count,omitempty"`
BtBytesRx *int64 `protobuf:"varint,11,opt,name=bt_bytes_rx" json:"bt_bytes_rx,omitempty"`
BtBytesTx *int64 `protobuf:"varint,12,opt,name=bt_bytes_tx" json:"bt_bytes_tx,omitempty"`
// Number of times the app woke up the mobile radio.
MobileWakeupCount *int32 `protobuf:"varint,13,opt,name=mobile_wakeup_count" json:"mobile_wakeup_count,omitempty"`
// Number of times the app woke up the wifi radio.
WifiWakeupCount *int32 `protobuf:"varint,14,opt,name=wifi_wakeup_count" json:"wifi_wakeup_count,omitempty"`
// Mobile data traffic in the background only, included in total above.
MobileBytesBgRx *int64 `protobuf:"varint,15,opt,name=mobile_bytes_bg_rx" json:"mobile_bytes_bg_rx,omitempty"`
MobileBytesBgTx *int64 `protobuf:"varint,16,opt,name=mobile_bytes_bg_tx" json:"mobile_bytes_bg_tx,omitempty"`
// Wifi data traffic in the background only, included in total above.
WifiBytesBgRx *int64 `protobuf:"varint,17,opt,name=wifi_bytes_bg_rx" json:"wifi_bytes_bg_rx,omitempty"`
WifiBytesBgTx *int64 `protobuf:"varint,18,opt,name=wifi_bytes_bg_tx" json:"wifi_bytes_bg_tx,omitempty"`
// In packets (background only, included in total packets above).
MobilePacketsBgRx *int64 `protobuf:"varint,19,opt,name=mobile_packets_bg_rx" json:"mobile_packets_bg_rx,omitempty"`
MobilePacketsBgTx *int64 `protobuf:"varint,20,opt,name=mobile_packets_bg_tx" json:"mobile_packets_bg_tx,omitempty"`
WifiPacketsBgRx *int64 `protobuf:"varint,21,opt,name=wifi_packets_bg_rx" json:"wifi_packets_bg_rx,omitempty"`
WifiPacketsBgTx *int64 `protobuf:"varint,22,opt,name=wifi_packets_bg_tx" json:"wifi_packets_bg_tx,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Network) Reset() { *m = BatteryStats_App_Network{} }
func (m *BatteryStats_App_Network) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Network) ProtoMessage() {}
func (*BatteryStats_App_Network) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 8} }
func (m *BatteryStats_App_Network) GetMobileBytesRx() float32 {
if m != nil && m.MobileBytesRx != nil {
return *m.MobileBytesRx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileBytesTx() float32 {
if m != nil && m.MobileBytesTx != nil {
return *m.MobileBytesTx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiBytesRx() float32 {
if m != nil && m.WifiBytesRx != nil {
return *m.WifiBytesRx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiBytesTx() float32 {
if m != nil && m.WifiBytesTx != nil {
return *m.WifiBytesTx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobilePacketsRx() float32 {
if m != nil && m.MobilePacketsRx != nil {
return *m.MobilePacketsRx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobilePacketsTx() float32 {
if m != nil && m.MobilePacketsTx != nil {
return *m.MobilePacketsTx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiPacketsRx() float32 {
if m != nil && m.WifiPacketsRx != nil {
return *m.WifiPacketsRx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiPacketsTx() float32 {
if m != nil && m.WifiPacketsTx != nil {
return *m.WifiPacketsTx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileActiveTimeMsec() float32 {
if m != nil && m.MobileActiveTimeMsec != nil {
return *m.MobileActiveTimeMsec
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileActiveCount() float32 {
if m != nil && m.MobileActiveCount != nil {
return *m.MobileActiveCount
}
return 0
}
func (m *BatteryStats_App_Network) GetBtBytesRx() int64 {
if m != nil && m.BtBytesRx != nil {
return *m.BtBytesRx
}
return 0
}
func (m *BatteryStats_App_Network) GetBtBytesTx() int64 {
if m != nil && m.BtBytesTx != nil {
return *m.BtBytesTx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileWakeupCount() int32 {
if m != nil && m.MobileWakeupCount != nil {
return *m.MobileWakeupCount
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiWakeupCount() int32 {
if m != nil && m.WifiWakeupCount != nil {
return *m.WifiWakeupCount
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileBytesBgRx() int64 {
if m != nil && m.MobileBytesBgRx != nil {
return *m.MobileBytesBgRx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobileBytesBgTx() int64 {
if m != nil && m.MobileBytesBgTx != nil {
return *m.MobileBytesBgTx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiBytesBgRx() int64 {
if m != nil && m.WifiBytesBgRx != nil {
return *m.WifiBytesBgRx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiBytesBgTx() int64 {
if m != nil && m.WifiBytesBgTx != nil {
return *m.WifiBytesBgTx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobilePacketsBgRx() int64 {
if m != nil && m.MobilePacketsBgRx != nil {
return *m.MobilePacketsBgRx
}
return 0
}
func (m *BatteryStats_App_Network) GetMobilePacketsBgTx() int64 {
if m != nil && m.MobilePacketsBgTx != nil {
return *m.MobilePacketsBgTx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiPacketsBgRx() int64 {
if m != nil && m.WifiPacketsBgRx != nil {
return *m.WifiPacketsBgRx
}
return 0
}
func (m *BatteryStats_App_Network) GetWifiPacketsBgTx() int64 {
if m != nil && m.WifiPacketsBgTx != nil {
return *m.WifiPacketsBgTx
}
return 0
}
// APP only. See System.PowerUseItem for others.
type BatteryStats_App_PowerUseItem struct {
// Estimated power use in mAh.
ComputedPowerMah *float32 `protobuf:"fixed32,1,opt,name=computed_power_mah" json:"computed_power_mah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_PowerUseItem) Reset() { *m = BatteryStats_App_PowerUseItem{} }
func (m *BatteryStats_App_PowerUseItem) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_PowerUseItem) ProtoMessage() {}
func (*BatteryStats_App_PowerUseItem) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 9}
}
func (m *BatteryStats_App_PowerUseItem) GetComputedPowerMah() float32 {
if m != nil && m.ComputedPowerMah != nil {
return *m.ComputedPowerMah
}
return 0
}
type BatteryStats_App_Process struct {
// e.g., com.google.process.location.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Time spent executing in user code.
UserTimeMsec *float32 `protobuf:"fixed32,2,opt,name=user_time_msec" json:"user_time_msec,omitempty"`
// Time in system code.
SystemTimeMsec *float32 `protobuf:"fixed32,3,opt,name=system_time_msec" json:"system_time_msec,omitempty"`
// Time in the foreground.
ForegroundTimeMsec *float32 `protobuf:"fixed32,4,opt,name=foreground_time_msec" json:"foreground_time_msec,omitempty"`
// #times the process has been started.
Starts *float32 `protobuf:"fixed32,5,opt,name=starts" json:"starts,omitempty"`
// #times the process has ANRed.
Anrs *float32 `protobuf:"fixed32,6,opt,name=anrs" json:"anrs,omitempty"`
// #times the process has crashed.
Crashes *float32 `protobuf:"fixed32,7,opt,name=crashes" json:"crashes,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Process) Reset() { *m = BatteryStats_App_Process{} }
func (m *BatteryStats_App_Process) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Process) ProtoMessage() {}
func (*BatteryStats_App_Process) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 10} }
func (m *BatteryStats_App_Process) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_Process) GetUserTimeMsec() float32 {
if m != nil && m.UserTimeMsec != nil {
return *m.UserTimeMsec
}
return 0
}
func (m *BatteryStats_App_Process) GetSystemTimeMsec() float32 {
if m != nil && m.SystemTimeMsec != nil {
return *m.SystemTimeMsec
}
return 0
}
func (m *BatteryStats_App_Process) GetForegroundTimeMsec() float32 {
if m != nil && m.ForegroundTimeMsec != nil {
return *m.ForegroundTimeMsec
}
return 0
}
func (m *BatteryStats_App_Process) GetStarts() float32 {
if m != nil && m.Starts != nil {
return *m.Starts
}
return 0
}
func (m *BatteryStats_App_Process) GetAnrs() float32 {
if m != nil && m.Anrs != nil {
return *m.Anrs
}
return 0
}
func (m *BatteryStats_App_Process) GetCrashes() float32 {
if m != nil && m.Crashes != nil {
return *m.Crashes
}
return 0
}
type BatteryStats_App_ScheduledJob struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Duration of use. Includes both foreground + background use.
TotalTimeMsec *float32 `protobuf:"fixed32,2,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times of use.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
// Duration of use when app is in background.
// (Subtracting from total_time_msec will yield foreground usage.)
BackgroundTimeMsec *int64 `protobuf:"varint,4,opt,name=background_time_msec" json:"background_time_msec,omitempty"`
// #times of use when in background. (This is included in count above.)
BackgroundCount *int32 `protobuf:"varint,5,opt,name=background_count" json:"background_count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_ScheduledJob) Reset() { *m = BatteryStats_App_ScheduledJob{} }
func (m *BatteryStats_App_ScheduledJob) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_ScheduledJob) ProtoMessage() {}
func (*BatteryStats_App_ScheduledJob) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 11}
}
func (m *BatteryStats_App_ScheduledJob) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_ScheduledJob) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_ScheduledJob) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
func (m *BatteryStats_App_ScheduledJob) GetBackgroundTimeMsec() int64 {
if m != nil && m.BackgroundTimeMsec != nil {
return *m.BackgroundTimeMsec
}
return 0
}
func (m *BatteryStats_App_ScheduledJob) GetBackgroundCount() int32 {
if m != nil && m.BackgroundCount != nil {
return *m.BackgroundCount
}
return 0
}
type BatteryStats_App_Sensor struct {
// e.g., 24 (significant motion detector).
Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"`
// Duration of use blamed on this App (i.e. apportioned to this app
// amongst all apps using this sensor; see explanation of
// 'apportioned' in App's comment).
TotalTimeMsec *float32 `protobuf:"fixed32,2,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times of use.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
// #times of use when in background. This is included in count above.
BackgroundCount *int32 `protobuf:"varint,4,opt,name=background_count" json:"background_count,omitempty"`
// Duration of use (irrespective of whether other apps were also
// simultaneously using the sensor; see explanation of
// 'apportioned' vs. 'actual' in App's comment).
// Includes both foreground + background use.
ActualTimeMsec *int64 `protobuf:"varint,5,opt,name=actual_time_msec" json:"actual_time_msec,omitempty"`
// Duration of use when app is in background (irrespective of
// whether other apps were also simultaneously using the sensor; see
// explanation of 'apportioned' vs. 'actual' in App's comment).
// (Subtracting from actual_time_msec will yield foreground usage.)
BackgroundActualTimeMsec *int64 `protobuf:"varint,6,opt,name=background_actual_time_msec" json:"background_actual_time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Sensor) Reset() { *m = BatteryStats_App_Sensor{} }
func (m *BatteryStats_App_Sensor) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Sensor) ProtoMessage() {}
func (*BatteryStats_App_Sensor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 12} }
func (m *BatteryStats_App_Sensor) GetNumber() int32 {
if m != nil && m.Number != nil {
return *m.Number
}
return 0
}
func (m *BatteryStats_App_Sensor) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Sensor) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
func (m *BatteryStats_App_Sensor) GetBackgroundCount() int32 {
if m != nil && m.BackgroundCount != nil {
return *m.BackgroundCount
}
return 0
}
func (m *BatteryStats_App_Sensor) GetActualTimeMsec() int64 {
if m != nil && m.ActualTimeMsec != nil {
return *m.ActualTimeMsec
}
return 0
}
func (m *BatteryStats_App_Sensor) GetBackgroundActualTimeMsec() int64 {
if m != nil && m.BackgroundActualTimeMsec != nil {
return *m.BackgroundActualTimeMsec
}
return 0
}
type BatteryStats_App_StateTime struct {
// Time the uid had any processes in an active foreground state, but none
// in the "top sleeping" or better state.
ForegroundTimeMsec *float32 `protobuf:"fixed32,1,opt,name=foreground_time_msec" json:"foreground_time_msec,omitempty"`
// Time the uid had any process in active state (not cached).
// Deprecated as of report version 17.
ActiveTimeMsec *float32 `protobuf:"fixed32,2,opt,name=active_time_msec" json:"active_time_msec,omitempty"`
// Time the uid had any processes that were sitting around cached, not in
// one of the other active states.
CachedTimeMsec *float32 `protobuf:"fixed32,3,opt,name=cached_time_msec" json:"cached_time_msec,omitempty"`
// Time the uid had any processes in the top state (or above, such as
// persistent).
TopTimeMsec *int64 `protobuf:"varint,4,opt,name=top_time_msec" json:"top_time_msec,omitempty"`
// Time the uid had any process with a started out bound foreground
// service, but none in the "top" state.
ForegroundServiceTimeMsec *int64 `protobuf:"varint,5,opt,name=foreground_service_time_msec" json:"foreground_service_time_msec,omitempty"`
// Time the uid had any process that is top while the device was sleeping,
// but none in the "foreground service" or better state.
// Sleeping is mostly screen off, but also includes the time when the
// screen is on but the device has not yet been unlocked.
TopSleepingTimeMsec *int64 `protobuf:"varint,6,opt,name=top_sleeping_time_msec" json:"top_sleeping_time_msec,omitempty"`
// Time the uid had any process in an active background state, but none in
// the "foreground" or better state.
BackgroundTimeMsec *int64 `protobuf:"varint,7,opt,name=background_time_msec" json:"background_time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_StateTime) Reset() { *m = BatteryStats_App_StateTime{} }
func (m *BatteryStats_App_StateTime) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_StateTime) ProtoMessage() {}
func (*BatteryStats_App_StateTime) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 13}
}
func (m *BatteryStats_App_StateTime) GetForegroundTimeMsec() float32 {
if m != nil && m.ForegroundTimeMsec != nil {
return *m.ForegroundTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetActiveTimeMsec() float32 {
if m != nil && m.ActiveTimeMsec != nil {
return *m.ActiveTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetCachedTimeMsec() float32 {
if m != nil && m.CachedTimeMsec != nil {
return *m.CachedTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetTopTimeMsec() int64 {
if m != nil && m.TopTimeMsec != nil {
return *m.TopTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetForegroundServiceTimeMsec() int64 {
if m != nil && m.ForegroundServiceTimeMsec != nil {
return *m.ForegroundServiceTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetTopSleepingTimeMsec() int64 {
if m != nil && m.TopSleepingTimeMsec != nil {
return *m.TopSleepingTimeMsec
}
return 0
}
func (m *BatteryStats_App_StateTime) GetBackgroundTimeMsec() int64 {
if m != nil && m.BackgroundTimeMsec != nil {
return *m.BackgroundTimeMsec
}
return 0
}
type BatteryStats_App_Sync struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Duration of use. Includes both foreground + background use.
TotalTimeMsec *float32 `protobuf:"fixed32,2,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times of use.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
// Duration of use when app is in background.
// (Subtracting from total_time_msec will yield foreground usage.)
BackgroundTimeMsec *int64 `protobuf:"varint,4,opt,name=background_time_msec" json:"background_time_msec,omitempty"`
// #times of use when in background. (This is included in count above.)
BackgroundCount *int32 `protobuf:"varint,5,opt,name=background_count" json:"background_count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Sync) Reset() { *m = BatteryStats_App_Sync{} }
func (m *BatteryStats_App_Sync) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Sync) ProtoMessage() {}
func (*BatteryStats_App_Sync) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 14} }
func (m *BatteryStats_App_Sync) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_Sync) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Sync) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
func (m *BatteryStats_App_Sync) GetBackgroundTimeMsec() int64 {
if m != nil && m.BackgroundTimeMsec != nil {
return *m.BackgroundTimeMsec
}
return 0
}
func (m *BatteryStats_App_Sync) GetBackgroundCount() int32 {
if m != nil && m.BackgroundCount != nil {
return *m.BackgroundCount
}
return 0
}
type BatteryStats_App_UserActivity struct {
Name *BatteryStats_App_UserActivity_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_App_UserActivity_Name" json:"name,omitempty"`
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_UserActivity) Reset() { *m = BatteryStats_App_UserActivity{} }
func (m *BatteryStats_App_UserActivity) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_UserActivity) ProtoMessage() {}
func (*BatteryStats_App_UserActivity) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 15}
}
func (m *BatteryStats_App_UserActivity) GetName() BatteryStats_App_UserActivity_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_App_UserActivity_OTHER
}
func (m *BatteryStats_App_UserActivity) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Vibrator struct {
// Duration of use.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times of use.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Vibrator) Reset() { *m = BatteryStats_App_Vibrator{} }
func (m *BatteryStats_App_Vibrator) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Vibrator) ProtoMessage() {}
func (*BatteryStats_App_Vibrator) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 16}
}
func (m *BatteryStats_App_Vibrator) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Vibrator) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Video struct {
// Duration spent with video on.
TotalTimeMsec *float32 `protobuf:"fixed32,1,opt,name=total_time_msec" json:"total_time_msec,omitempty"`
// #times.
Count *float32 `protobuf:"fixed32,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Video) Reset() { *m = BatteryStats_App_Video{} }
func (m *BatteryStats_App_Video) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Video) ProtoMessage() {}
func (*BatteryStats_App_Video) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 17} }
func (m *BatteryStats_App_Video) GetTotalTimeMsec() float32 {
if m != nil && m.TotalTimeMsec != nil {
return *m.TotalTimeMsec
}
return 0
}
func (m *BatteryStats_App_Video) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Wakelock struct {
// PII-free wakelock names as a result of:
// 1. regexp replacement (e.g., email address).
// 2. removal of "unpopular" wakelock names that appear less than X%
// (in terms of #unique android_id's) of all daily reports.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Full wakelocks keep the screen on. Based on
// PowerManager.SCREEN_BRIGHT_WAKE_LOCK (deprecated in API 13) and
// PowerManager.SCREEN_DIM_WAKE_LOCK (deprecated in API 17).
// If multiple full wakelocks are held at the same time, the total time
// is split evenly between them, so this value (full_time_msec) may not
// constitute the complete duration the wakelock was held. That is, this
// value is 'apportioned' in the sense described in App's comment.
FullTimeMsec *float32 `protobuf:"fixed32,2,opt,name=full_time_msec" json:"full_time_msec,omitempty"`
FullCount *float32 `protobuf:"fixed32,3,opt,name=full_count" json:"full_count,omitempty"`
// Currently, current and max (as of their introduction in v19) and total
// (as of its introduction in v21) durations are not tracked for
// full wakelocks, and 0 or -1 will always be printed out for them.
FullCurrentDurationMsec *int64 `protobuf:"varint,8,opt,name=full_current_duration_msec" json:"full_current_duration_msec,omitempty"`
FullMaxDurationMsec *int64 `protobuf:"varint,9,opt,name=full_max_duration_msec" json:"full_max_duration_msec,omitempty"`
FullTotalDurationMsec *int64 `protobuf:"varint,14,opt,name=full_total_duration_msec" json:"full_total_duration_msec,omitempty"`
// Partial wakelocks ensure the CPU is running while allowing the screen
// to turn off. Based on PowerManager.PARTIAL_WAKE_LOCK.
// Partial wakelock metrics are only recorded when the device is unplugged
// *and* the screen is off.
// If multiple partial wakelocks are held at the same time, the total time
// is split evenly between them, so this value (partial_time_msec) may not
// constitute the complete duration the wakelock was held. That is, this
// value is 'apportioned' in the sense described in App's comment.
PartialTimeMsec *float32 `protobuf:"fixed32,4,opt,name=partial_time_msec" json:"partial_time_msec,omitempty"`
PartialCount *float32 `protobuf:"fixed32,5,opt,name=partial_count" json:"partial_count,omitempty"`
// If the wakelock was being held at the time of the report, this will be
// how long the current hold had been active for. Unlike
// partial_time_msec, this duration is not split between wakelocks and so
// constitutes the complete current wakelock duration.
PartialCurrentDurationMsec *int64 `protobuf:"varint,10,opt,name=partial_current_duration_msec" json:"partial_current_duration_msec,omitempty"`
// The maximum duration the wakelock had been held for. Unlike
// partial_time_msec, this duration is not split between wakelocks and so
// constitutes the complete maximum wakelock duration.
PartialMaxDurationMsec *int64 `protobuf:"varint,11,opt,name=partial_max_duration_msec" json:"partial_max_duration_msec,omitempty"`
// The total duration the wakelock had been held for. Unlike
// partial_time_msec, this duration is not split between wakelocks and so
// constitutes the complete total wakelock duration. That is, this
// value is 'actual' in the sense described in App's comment.
PartialTotalDurationMsec *int64 `protobuf:"varint,15,opt,name=partial_total_duration_msec" json:"partial_total_duration_msec,omitempty"`
// Window wakelocks keep the screen on.
// If multiple window wakelocks are held at the same time, the total time
// is split evenly between them, so this value (window_time_msec) may not
// constitute the complete duration the wakelock was held. That is, this
// value is 'apportioned' in the sense described in App's comment.
WindowTimeMsec *float32 `protobuf:"fixed32,6,opt,name=window_time_msec" json:"window_time_msec,omitempty"`
WindowCount *float32 `protobuf:"fixed32,7,opt,name=window_count" json:"window_count,omitempty"`
// Currently, current and max (as of their introduction in v19) and total
// (as of its introduction in v21) durations are not tracked for
// window wakelocks, and 0 or -1 will always be printed out for them.
WindowCurrentDurationMsec *int64 `protobuf:"varint,12,opt,name=window_current_duration_msec" json:"window_current_duration_msec,omitempty"`
WindowMaxDurationMsec *int64 `protobuf:"varint,13,opt,name=window_max_duration_msec" json:"window_max_duration_msec,omitempty"`
WindowTotalDurationMsec *int64 `protobuf:"varint,16,opt,name=window_total_duration_msec" json:"window_total_duration_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Wakelock) Reset() { *m = BatteryStats_App_Wakelock{} }
func (m *BatteryStats_App_Wakelock) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Wakelock) ProtoMessage() {}
func (*BatteryStats_App_Wakelock) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 18}
}
func (m *BatteryStats_App_Wakelock) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_Wakelock) GetFullTimeMsec() float32 {
if m != nil && m.FullTimeMsec != nil {
return *m.FullTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetFullCount() float32 {
if m != nil && m.FullCount != nil {
return *m.FullCount
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetFullCurrentDurationMsec() int64 {
if m != nil && m.FullCurrentDurationMsec != nil {
return *m.FullCurrentDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetFullMaxDurationMsec() int64 {
if m != nil && m.FullMaxDurationMsec != nil {
return *m.FullMaxDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetFullTotalDurationMsec() int64 {
if m != nil && m.FullTotalDurationMsec != nil {
return *m.FullTotalDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetPartialTimeMsec() float32 {
if m != nil && m.PartialTimeMsec != nil {
return *m.PartialTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetPartialCount() float32 {
if m != nil && m.PartialCount != nil {
return *m.PartialCount
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetPartialCurrentDurationMsec() int64 {
if m != nil && m.PartialCurrentDurationMsec != nil {
return *m.PartialCurrentDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetPartialMaxDurationMsec() int64 {
if m != nil && m.PartialMaxDurationMsec != nil {
return *m.PartialMaxDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetPartialTotalDurationMsec() int64 {
if m != nil && m.PartialTotalDurationMsec != nil {
return *m.PartialTotalDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetWindowTimeMsec() float32 {
if m != nil && m.WindowTimeMsec != nil {
return *m.WindowTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetWindowCount() float32 {
if m != nil && m.WindowCount != nil {
return *m.WindowCount
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetWindowCurrentDurationMsec() int64 {
if m != nil && m.WindowCurrentDurationMsec != nil {
return *m.WindowCurrentDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetWindowMaxDurationMsec() int64 {
if m != nil && m.WindowMaxDurationMsec != nil {
return *m.WindowMaxDurationMsec
}
return 0
}
func (m *BatteryStats_App_Wakelock) GetWindowTotalDurationMsec() int64 {
if m != nil && m.WindowTotalDurationMsec != nil {
return *m.WindowTotalDurationMsec
}
return 0
}
type BatteryStats_App_WakeupAlarm struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Count *int32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_WakeupAlarm) Reset() { *m = BatteryStats_App_WakeupAlarm{} }
func (m *BatteryStats_App_WakeupAlarm) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_WakeupAlarm) ProtoMessage() {}
func (*BatteryStats_App_WakeupAlarm) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 0, 19}
}
func (m *BatteryStats_App_WakeupAlarm) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_App_WakeupAlarm) GetCount() int32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_App_Wifi struct {
// Duration holding Wifi-lock.
FullWifiLockTimeMsec *float32 `protobuf:"fixed32,1,opt,name=full_wifi_lock_time_msec" json:"full_wifi_lock_time_msec,omitempty"`
// Duration performing Wifi-scan blamed on this App (i.e. apportioned to
// this app amongst all apps doing Wifi-scanning; see explanation of
// 'apportioned' in App's comment).
ScanTimeMsec *float32 `protobuf:"fixed32,2,opt,name=scan_time_msec" json:"scan_time_msec,omitempty"`
// Duration running Wifi.
RunningTimeMsec *float32 `protobuf:"fixed32,3,opt,name=running_time_msec" json:"running_time_msec,omitempty"`
ScanCount *float32 `protobuf:"fixed32,4,opt,name=scan_count" json:"scan_count,omitempty"`
IdleTimeMsec *float32 `protobuf:"fixed32,5,opt,name=idle_time_msec" json:"idle_time_msec,omitempty"`
RxTimeMsec *float32 `protobuf:"fixed32,6,opt,name=rx_time_msec" json:"rx_time_msec,omitempty"`
TxTimeMsec *float32 `protobuf:"fixed32,7,opt,name=tx_time_msec" json:"tx_time_msec,omitempty"`
// #scans performed when app is in background. (Included in scan_count.)
ScanCountBg *int32 `protobuf:"varint,8,opt,name=scan_count_bg" json:"scan_count_bg,omitempty"`
// Duration performing Wifi-scan in total (irrespective of whether other
// apps were also simultaneously scanning; see explanation of
// 'apportioned' vs. 'actual' in App's comment).
// Includes both foreground + background use.
ScanActualTimeMsec *int64 `protobuf:"varint,9,opt,name=scan_actual_time_msec" json:"scan_actual_time_msec,omitempty"`
// Duration performing Wifi-scan when app is in background (irrespective
// of whether other apps were also simultaneously scanning; see
// explanation of 'apportioned' vs. 'actual' in App's comment).
// (Subtracting from scan_actual_time_msec will yield foreground
// usage.)
ScanActualTimeMsecBg *int64 `protobuf:"varint,10,opt,name=scan_actual_time_msec_bg" json:"scan_actual_time_msec_bg,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_App_Wifi) Reset() { *m = BatteryStats_App_Wifi{} }
func (m *BatteryStats_App_Wifi) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_App_Wifi) ProtoMessage() {}
func (*BatteryStats_App_Wifi) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0, 20} }
func (m *BatteryStats_App_Wifi) GetFullWifiLockTimeMsec() float32 {
if m != nil && m.FullWifiLockTimeMsec != nil {
return *m.FullWifiLockTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetScanTimeMsec() float32 {
if m != nil && m.ScanTimeMsec != nil {
return *m.ScanTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetRunningTimeMsec() float32 {
if m != nil && m.RunningTimeMsec != nil {
return *m.RunningTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetScanCount() float32 {
if m != nil && m.ScanCount != nil {
return *m.ScanCount
}
return 0
}
func (m *BatteryStats_App_Wifi) GetIdleTimeMsec() float32 {
if m != nil && m.IdleTimeMsec != nil {
return *m.IdleTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetRxTimeMsec() float32 {
if m != nil && m.RxTimeMsec != nil {
return *m.RxTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetTxTimeMsec() float32 {
if m != nil && m.TxTimeMsec != nil {
return *m.TxTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetScanCountBg() int32 {
if m != nil && m.ScanCountBg != nil {
return *m.ScanCountBg
}
return 0
}
func (m *BatteryStats_App_Wifi) GetScanActualTimeMsec() int64 {
if m != nil && m.ScanActualTimeMsec != nil {
return *m.ScanActualTimeMsec
}
return 0
}
func (m *BatteryStats_App_Wifi) GetScanActualTimeMsecBg() int64 {
if m != nil && m.ScanActualTimeMsecBg != nil {
return *m.ScanActualTimeMsecBg
}
return 0
}
type BatteryStats_ControllerActivity struct {
// Time (milliseconds) spent in the idle state.
IdleTimeMsec *int64 `protobuf:"varint,1,opt,name=idle_time_msec" json:"idle_time_msec,omitempty"`
// Time (milliseconds) spent in the receive state.
RxTimeMsec *int64 `protobuf:"varint,2,opt,name=rx_time_msec" json:"rx_time_msec,omitempty"`
// Total power (mAh) consumed by the controller in all states. The value may
// always be 0 if the device doesn't support power calculations.
PowerMah *int64 `protobuf:"varint,3,opt,name=power_mah" json:"power_mah,omitempty"`
Tx []*BatteryStats_ControllerActivity_TxLevel `protobuf:"bytes,4,rep,name=tx" json:"tx,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_ControllerActivity) Reset() { *m = BatteryStats_ControllerActivity{} }
func (m *BatteryStats_ControllerActivity) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_ControllerActivity) ProtoMessage() {}
func (*BatteryStats_ControllerActivity) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 1}
}
func (m *BatteryStats_ControllerActivity) GetIdleTimeMsec() int64 {
if m != nil && m.IdleTimeMsec != nil {
return *m.IdleTimeMsec
}
return 0
}
func (m *BatteryStats_ControllerActivity) GetRxTimeMsec() int64 {
if m != nil && m.RxTimeMsec != nil {
return *m.RxTimeMsec
}
return 0
}
func (m *BatteryStats_ControllerActivity) GetPowerMah() int64 {
if m != nil && m.PowerMah != nil {
return *m.PowerMah
}
return 0
}
func (m *BatteryStats_ControllerActivity) GetTx() []*BatteryStats_ControllerActivity_TxLevel {
if m != nil {
return m.Tx
}
return nil
}
// Represents a transmit level, where each level may draw a different amount
// of power. The levels themselves are controller-specific (and may possibly
// be device specific...yet to be confirmed).
type BatteryStats_ControllerActivity_TxLevel struct {
// Transmit level. Higher levels draw more power.
Level *int32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
// Time spent in this specific transmit level state.
TimeMsec *int64 `protobuf:"varint,2,opt,name=time_msec" json:"time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_ControllerActivity_TxLevel) Reset() {
*m = BatteryStats_ControllerActivity_TxLevel{}
}
func (m *BatteryStats_ControllerActivity_TxLevel) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_ControllerActivity_TxLevel) ProtoMessage() {}
func (*BatteryStats_ControllerActivity_TxLevel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 1, 0}
}
func (m *BatteryStats_ControllerActivity_TxLevel) GetLevel() int32 {
if m != nil && m.Level != nil {
return *m.Level
}
return 0
}
func (m *BatteryStats_ControllerActivity_TxLevel) GetTimeMsec() int64 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
type BatteryStats_System struct {
Battery *BatteryStats_System_Battery `protobuf:"bytes,1,opt,name=battery" json:"battery,omitempty"`
BatteryDischarge *BatteryStats_System_BatteryDischarge `protobuf:"bytes,2,opt,name=battery_discharge" json:"battery_discharge,omitempty"`
BatteryLevel *BatteryStats_System_BatteryLevel `protobuf:"bytes,3,opt,name=battery_level" json:"battery_level,omitempty"`
BluetoothState []*BatteryStats_System_BluetoothState `protobuf:"bytes,4,rep,name=bluetooth_state" json:"bluetooth_state,omitempty"`
ChargeStep []*BatteryStats_System_ChargeStep `protobuf:"bytes,18,rep,name=charge_step" json:"charge_step,omitempty"`
ChargeTimeRemaining *BatteryStats_System_ChargeTimeRemaining `protobuf:"bytes,25,opt,name=charge_time_remaining" json:"charge_time_remaining,omitempty"`
DataConnection []*BatteryStats_System_DataConnection `protobuf:"bytes,5,rep,name=data_connection" json:"data_connection,omitempty"`
DischargeStep []*BatteryStats_System_DischargeStep `protobuf:"bytes,19,rep,name=discharge_step" json:"discharge_step,omitempty"`
DischargeTimeRemaining *BatteryStats_System_DischargeTimeRemaining `protobuf:"bytes,26,opt,name=discharge_time_remaining" json:"discharge_time_remaining,omitempty"`
GlobalBluetooth *BatteryStats_System_GlobalBluetooth `protobuf:"bytes,20,opt,name=global_bluetooth" json:"global_bluetooth,omitempty"`
// tx_time and power were swapped during report version 17, so they cannot
// be trusted in version 17.
GlobalBluetoothController *BatteryStats_ControllerActivity `protobuf:"bytes,22,opt,name=global_bluetooth_controller" json:"global_bluetooth_controller,omitempty"`
GlobalModemController *BatteryStats_ControllerActivity `protobuf:"bytes,23,opt,name=global_modem_controller" json:"global_modem_controller,omitempty"`
GlobalNetwork *BatteryStats_System_GlobalNetwork `protobuf:"bytes,6,opt,name=global_network" json:"global_network,omitempty"`
GlobalWifi *BatteryStats_System_GlobalWifi `protobuf:"bytes,21,opt,name=global_wifi" json:"global_wifi,omitempty"`
GlobalWifiController *BatteryStats_ControllerActivity `protobuf:"bytes,24,opt,name=global_wifi_controller" json:"global_wifi_controller,omitempty"`
KernelWakelock []*BatteryStats_System_KernelWakelock `protobuf:"bytes,7,rep,name=kernel_wakelock" json:"kernel_wakelock,omitempty"`
Misc *BatteryStats_System_Misc `protobuf:"bytes,8,opt,name=misc" json:"misc,omitempty"`
PowerUseItem []*BatteryStats_System_PowerUseItem `protobuf:"bytes,9,rep,name=power_use_item" json:"power_use_item,omitempty"`
PowerUseSummary *BatteryStats_System_PowerUseSummary `protobuf:"bytes,10,opt,name=power_use_summary" json:"power_use_summary,omitempty"`
ScreenBrightness []*BatteryStats_System_ScreenBrightness `protobuf:"bytes,11,rep,name=screen_brightness" json:"screen_brightness,omitempty"`
SignalScanningTime *BatteryStats_System_SignalScanningTime `protobuf:"bytes,12,opt,name=signal_scanning_time" json:"signal_scanning_time,omitempty"`
SignalStrength []*BatteryStats_System_SignalStrength `protobuf:"bytes,13,rep,name=signal_strength" json:"signal_strength,omitempty"`
WakeupReason []*BatteryStats_System_WakeupReason `protobuf:"bytes,14,rep,name=wakeup_reason" json:"wakeup_reason,omitempty"`
WifiSignalStrength []*BatteryStats_System_WifiSignalStrength `protobuf:"bytes,16,rep,name=wifi_signal_strength" json:"wifi_signal_strength,omitempty"`
WifiSupplicantState []*BatteryStats_System_WifiSupplicantState `protobuf:"bytes,17,rep,name=wifi_supplicant_state" json:"wifi_supplicant_state,omitempty"`
WifiState []*BatteryStats_System_WifiState `protobuf:"bytes,15,rep,name=wifi_state" json:"wifi_state,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System) Reset() { *m = BatteryStats_System{} }
func (m *BatteryStats_System) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System) ProtoMessage() {}
func (*BatteryStats_System) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 2} }
func (m *BatteryStats_System) GetBattery() *BatteryStats_System_Battery {
if m != nil {
return m.Battery
}
return nil
}
func (m *BatteryStats_System) GetBatteryDischarge() *BatteryStats_System_BatteryDischarge {
if m != nil {
return m.BatteryDischarge
}
return nil
}
func (m *BatteryStats_System) GetBatteryLevel() *BatteryStats_System_BatteryLevel {
if m != nil {
return m.BatteryLevel
}
return nil
}
func (m *BatteryStats_System) GetBluetoothState() []*BatteryStats_System_BluetoothState {
if m != nil {
return m.BluetoothState
}
return nil
}
func (m *BatteryStats_System) GetChargeStep() []*BatteryStats_System_ChargeStep {
if m != nil {
return m.ChargeStep
}
return nil
}
func (m *BatteryStats_System) GetChargeTimeRemaining() *BatteryStats_System_ChargeTimeRemaining {
if m != nil {
return m.ChargeTimeRemaining
}
return nil
}
func (m *BatteryStats_System) GetDataConnection() []*BatteryStats_System_DataConnection {
if m != nil {
return m.DataConnection
}
return nil
}
func (m *BatteryStats_System) GetDischargeStep() []*BatteryStats_System_DischargeStep {
if m != nil {
return m.DischargeStep
}
return nil
}
func (m *BatteryStats_System) GetDischargeTimeRemaining() *BatteryStats_System_DischargeTimeRemaining {
if m != nil {
return m.DischargeTimeRemaining
}
return nil
}
func (m *BatteryStats_System) GetGlobalBluetooth() *BatteryStats_System_GlobalBluetooth {
if m != nil {
return m.GlobalBluetooth
}
return nil
}
func (m *BatteryStats_System) GetGlobalBluetoothController() *BatteryStats_ControllerActivity {
if m != nil {
return m.GlobalBluetoothController
}
return nil
}
func (m *BatteryStats_System) GetGlobalModemController() *BatteryStats_ControllerActivity {
if m != nil {
return m.GlobalModemController
}
return nil
}
func (m *BatteryStats_System) GetGlobalNetwork() *BatteryStats_System_GlobalNetwork {
if m != nil {
return m.GlobalNetwork
}
return nil
}
func (m *BatteryStats_System) GetGlobalWifi() *BatteryStats_System_GlobalWifi {
if m != nil {
return m.GlobalWifi
}
return nil
}
func (m *BatteryStats_System) GetGlobalWifiController() *BatteryStats_ControllerActivity {
if m != nil {
return m.GlobalWifiController
}
return nil
}
func (m *BatteryStats_System) GetKernelWakelock() []*BatteryStats_System_KernelWakelock {
if m != nil {
return m.KernelWakelock
}
return nil
}
func (m *BatteryStats_System) GetMisc() *BatteryStats_System_Misc {
if m != nil {
return m.Misc
}
return nil
}
func (m *BatteryStats_System) GetPowerUseItem() []*BatteryStats_System_PowerUseItem {
if m != nil {
return m.PowerUseItem
}
return nil
}
func (m *BatteryStats_System) GetPowerUseSummary() *BatteryStats_System_PowerUseSummary {
if m != nil {
return m.PowerUseSummary
}
return nil
}
func (m *BatteryStats_System) GetScreenBrightness() []*BatteryStats_System_ScreenBrightness {
if m != nil {
return m.ScreenBrightness
}
return nil
}
func (m *BatteryStats_System) GetSignalScanningTime() *BatteryStats_System_SignalScanningTime {
if m != nil {
return m.SignalScanningTime
}
return nil
}
func (m *BatteryStats_System) GetSignalStrength() []*BatteryStats_System_SignalStrength {
if m != nil {
return m.SignalStrength
}
return nil
}
func (m *BatteryStats_System) GetWakeupReason() []*BatteryStats_System_WakeupReason {
if m != nil {
return m.WakeupReason
}
return nil
}
func (m *BatteryStats_System) GetWifiSignalStrength() []*BatteryStats_System_WifiSignalStrength {
if m != nil {
return m.WifiSignalStrength
}
return nil
}
func (m *BatteryStats_System) GetWifiSupplicantState() []*BatteryStats_System_WifiSupplicantState {
if m != nil {
return m.WifiSupplicantState
}
return nil
}
func (m *BatteryStats_System) GetWifiState() []*BatteryStats_System_WifiState {
if m != nil {
return m.WifiState
}
return nil
}
type BatteryStats_System_Battery struct {
// #times the device has been started.
StartCount *float32 `protobuf:"fixed32,1,opt,name=start_count" json:"start_count,omitempty"`
// Realtime on battery.
BatteryRealtimeMsec *float32 `protobuf:"fixed32,2,opt,name=battery_realtime_msec" json:"battery_realtime_msec,omitempty"`
// Uptime (i.e., not suspend).
BatteryUptimeMsec *float32 `protobuf:"fixed32,3,opt,name=battery_uptime_msec" json:"battery_uptime_msec,omitempty"`
// Total realtime. Should match battery_realtime_msec for SINCE_UNPLUGGED.
TotalRealtimeMsec *float32 `protobuf:"fixed32,4,opt,name=total_realtime_msec" json:"total_realtime_msec,omitempty"`
TotalUptimeMsec *float32 `protobuf:"fixed32,5,opt,name=total_uptime_msec" json:"total_uptime_msec,omitempty"`
// Wall clock time when the data collection started.
StartClockTimeMsec *int64 `protobuf:"varint,6,opt,name=start_clock_time_msec" json:"start_clock_time_msec,omitempty"`
// Time spent on battery with the screen off.
ScreenOffRealtimeMsec *float32 `protobuf:"fixed32,7,opt,name=screen_off_realtime_msec" json:"screen_off_realtime_msec,omitempty"`
ScreenOffUptimeMsec *float32 `protobuf:"fixed32,8,opt,name=screen_off_uptime_msec" json:"screen_off_uptime_msec,omitempty"`
// The estimated real battery capacity, which may be less than the
// declared battery capacity (for example, because of battery aging).
EstimatedBatteryCapacityMah *int64 `protobuf:"varint,9,opt,name=estimated_battery_capacity_mah" json:"estimated_battery_capacity_mah,omitempty"`
// The minimum learned battery capacity in uAh.
MinLearnedBatteryCapacityUah *int64 `protobuf:"varint,10,opt,name=min_learned_battery_capacity_uah" json:"min_learned_battery_capacity_uah,omitempty"`
// The maximum learned battery capacity in uAh.
MaxLearnedBatteryCapacityUah *int64 `protobuf:"varint,11,opt,name=max_learned_battery_capacity_uah" json:"max_learned_battery_capacity_uah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_Battery) Reset() { *m = BatteryStats_System_Battery{} }
func (m *BatteryStats_System_Battery) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_Battery) ProtoMessage() {}
func (*BatteryStats_System_Battery) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 0}
}
func (m *BatteryStats_System_Battery) GetStartCount() float32 {
if m != nil && m.StartCount != nil {
return *m.StartCount
}
return 0
}
func (m *BatteryStats_System_Battery) GetBatteryRealtimeMsec() float32 {
if m != nil && m.BatteryRealtimeMsec != nil {
return *m.BatteryRealtimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetBatteryUptimeMsec() float32 {
if m != nil && m.BatteryUptimeMsec != nil {
return *m.BatteryUptimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetTotalRealtimeMsec() float32 {
if m != nil && m.TotalRealtimeMsec != nil {
return *m.TotalRealtimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetTotalUptimeMsec() float32 {
if m != nil && m.TotalUptimeMsec != nil {
return *m.TotalUptimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetStartClockTimeMsec() int64 {
if m != nil && m.StartClockTimeMsec != nil {
return *m.StartClockTimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetScreenOffRealtimeMsec() float32 {
if m != nil && m.ScreenOffRealtimeMsec != nil {
return *m.ScreenOffRealtimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetScreenOffUptimeMsec() float32 {
if m != nil && m.ScreenOffUptimeMsec != nil {
return *m.ScreenOffUptimeMsec
}
return 0
}
func (m *BatteryStats_System_Battery) GetEstimatedBatteryCapacityMah() int64 {
if m != nil && m.EstimatedBatteryCapacityMah != nil {
return *m.EstimatedBatteryCapacityMah
}
return 0
}
func (m *BatteryStats_System_Battery) GetMinLearnedBatteryCapacityUah() int64 {
if m != nil && m.MinLearnedBatteryCapacityUah != nil {
return *m.MinLearnedBatteryCapacityUah
}
return 0
}
func (m *BatteryStats_System_Battery) GetMaxLearnedBatteryCapacityUah() int64 {
if m != nil && m.MaxLearnedBatteryCapacityUah != nil {
return *m.MaxLearnedBatteryCapacityUah
}
return 0
}
type BatteryStats_System_BatteryDischarge struct {
// Discharged battery percentage points since the stats were last reset
// after charging (lower bound approximation).
LowerBound *float32 `protobuf:"fixed32,1,opt,name=lower_bound" json:"lower_bound,omitempty"`
// Upper bound approximation.
UpperBound *float32 `protobuf:"fixed32,2,opt,name=upper_bound" json:"upper_bound,omitempty"`
// Discharged points while screen is on.
ScreenOn *float32 `protobuf:"fixed32,3,opt,name=screen_on" json:"screen_on,omitempty"`
ScreenOff *float32 `protobuf:"fixed32,4,opt,name=screen_off" json:"screen_off,omitempty"`
// Total amount of battery discharged in mAh. This will only be non-zero
// for devices that report battery discharge via a coulomb counter.
TotalMah *int64 `protobuf:"varint,5,opt,name=total_mah" json:"total_mah,omitempty"`
// Total amount of battery discharged while the screen was off in mAh.
// This will only be non-zero for devices that report battery discharge
// via a coulomb counter.
TotalMahScreenOff *int64 `protobuf:"varint,6,opt,name=total_mah_screen_off" json:"total_mah_screen_off,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_BatteryDischarge) Reset() { *m = BatteryStats_System_BatteryDischarge{} }
func (m *BatteryStats_System_BatteryDischarge) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_BatteryDischarge) ProtoMessage() {}
func (*BatteryStats_System_BatteryDischarge) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 1}
}
func (m *BatteryStats_System_BatteryDischarge) GetLowerBound() float32 {
if m != nil && m.LowerBound != nil {
return *m.LowerBound
}
return 0
}
func (m *BatteryStats_System_BatteryDischarge) GetUpperBound() float32 {
if m != nil && m.UpperBound != nil {
return *m.UpperBound
}
return 0
}
func (m *BatteryStats_System_BatteryDischarge) GetScreenOn() float32 {
if m != nil && m.ScreenOn != nil {
return *m.ScreenOn
}
return 0
}
func (m *BatteryStats_System_BatteryDischarge) GetScreenOff() float32 {
if m != nil && m.ScreenOff != nil {
return *m.ScreenOff
}
return 0
}
func (m *BatteryStats_System_BatteryDischarge) GetTotalMah() int64 {
if m != nil && m.TotalMah != nil {
return *m.TotalMah
}
return 0
}
func (m *BatteryStats_System_BatteryDischarge) GetTotalMahScreenOff() int64 {
if m != nil && m.TotalMahScreenOff != nil {
return *m.TotalMahScreenOff
}
return 0
}
type BatteryStats_System_BatteryLevel struct {
// The battery percentage level at the last time the device was unplugged.
StartLevel *float32 `protobuf:"fixed32,1,opt,name=start_level" json:"start_level,omitempty"`
// The current level.
CurrentLevel *float32 `protobuf:"fixed32,2,opt,name=current_level" json:"current_level,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_BatteryLevel) Reset() { *m = BatteryStats_System_BatteryLevel{} }
func (m *BatteryStats_System_BatteryLevel) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_BatteryLevel) ProtoMessage() {}
func (*BatteryStats_System_BatteryLevel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 2}
}
func (m *BatteryStats_System_BatteryLevel) GetStartLevel() float32 {
if m != nil && m.StartLevel != nil {
return *m.StartLevel
}
return 0
}
func (m *BatteryStats_System_BatteryLevel) GetCurrentLevel() float32 {
if m != nil && m.CurrentLevel != nil {
return *m.CurrentLevel
}
return 0
}
type BatteryStats_System_BluetoothState struct {
Name *BatteryStats_System_BluetoothState_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_BluetoothState_Name" json:"name,omitempty"`
// Duration running in the given state.
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
// #times entering the state.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_BluetoothState) Reset() { *m = BatteryStats_System_BluetoothState{} }
func (m *BatteryStats_System_BluetoothState) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_BluetoothState) ProtoMessage() {}
func (*BatteryStats_System_BluetoothState) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 3}
}
func (m *BatteryStats_System_BluetoothState) GetName() BatteryStats_System_BluetoothState_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_BluetoothState_INACTIVE
}
func (m *BatteryStats_System_BluetoothState) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_BluetoothState) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// ChargeStep tracks data for which conditions were continuously held for
// the entire duration. Field for which the conditions were not consistent
// for the entire duration should be marked MIXED.
type BatteryStats_System_ChargeStep struct {
TimeMsec *float32 `protobuf:"fixed32,1,opt,name=time_msec" json:"time_msec,omitempty"`
// Battery level
Level *float32 `protobuf:"fixed32,2,opt,name=level" json:"level,omitempty"`
// State of the display.
DisplayState *BatteryStats_System_DisplayState_State `protobuf:"varint,3,opt,name=display_state,enum=batterystats.BatteryStats_System_DisplayState_State" json:"display_state,omitempty"`
// Indicates status in power save mode.
PowerSaveMode *BatteryStats_System_PowerSaveMode_Mode `protobuf:"varint,4,opt,name=power_save_mode,enum=batterystats.BatteryStats_System_PowerSaveMode_Mode" json:"power_save_mode,omitempty"`
// Indicates status in Doze mode.
IdleMode *BatteryStats_System_IdleMode_Mode `protobuf:"varint,5,opt,name=idle_mode,enum=batterystats.BatteryStats_System_IdleMode_Mode" json:"idle_mode,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_ChargeStep) Reset() { *m = BatteryStats_System_ChargeStep{} }
func (m *BatteryStats_System_ChargeStep) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_ChargeStep) ProtoMessage() {}
func (*BatteryStats_System_ChargeStep) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 4}
}
func (m *BatteryStats_System_ChargeStep) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_ChargeStep) GetLevel() float32 {
if m != nil && m.Level != nil {
return *m.Level
}
return 0
}
func (m *BatteryStats_System_ChargeStep) GetDisplayState() BatteryStats_System_DisplayState_State {
if m != nil && m.DisplayState != nil {
return *m.DisplayState
}
return BatteryStats_System_DisplayState_MIXED
}
func (m *BatteryStats_System_ChargeStep) GetPowerSaveMode() BatteryStats_System_PowerSaveMode_Mode {
if m != nil && m.PowerSaveMode != nil {
return *m.PowerSaveMode
}
return BatteryStats_System_PowerSaveMode_MIXED
}
func (m *BatteryStats_System_ChargeStep) GetIdleMode() BatteryStats_System_IdleMode_Mode {
if m != nil && m.IdleMode != nil {
return *m.IdleMode
}
return BatteryStats_System_IdleMode_NO_DATA
}
// Approximation for how much time remains until the battery is fully
// charged. The device will print -1 if there wasn't enough data to
// calculate an estimate, or if the battery is currently discharging.
type BatteryStats_System_ChargeTimeRemaining struct {
Usec *int64 `protobuf:"varint,1,opt,name=usec" json:"usec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_ChargeTimeRemaining) Reset() {
*m = BatteryStats_System_ChargeTimeRemaining{}
}
func (m *BatteryStats_System_ChargeTimeRemaining) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_ChargeTimeRemaining) ProtoMessage() {}
func (*BatteryStats_System_ChargeTimeRemaining) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 5}
}
func (m *BatteryStats_System_ChargeTimeRemaining) GetUsec() int64 {
if m != nil && m.Usec != nil {
return *m.Usec
}
return 0
}
type BatteryStats_System_DataConnection struct {
Name *BatteryStats_System_DataConnection_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_DataConnection_Name" json:"name,omitempty"`
// Duration running in the given state.
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
// #times entering the state.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_DataConnection) Reset() { *m = BatteryStats_System_DataConnection{} }
func (m *BatteryStats_System_DataConnection) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_DataConnection) ProtoMessage() {}
func (*BatteryStats_System_DataConnection) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 6}
}
func (m *BatteryStats_System_DataConnection) GetName() BatteryStats_System_DataConnection_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_DataConnection_NONE
}
func (m *BatteryStats_System_DataConnection) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_DataConnection) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// DischargeStep tracks data for which conditions were continuously held for
// the entire duration. Field for which the conditions were not consistent
// for the entire duration should be marked MIXED.
type BatteryStats_System_DischargeStep struct {
TimeMsec *float32 `protobuf:"fixed32,1,opt,name=time_msec" json:"time_msec,omitempty"`
// Battery level
Level *float32 `protobuf:"fixed32,2,opt,name=level" json:"level,omitempty"`
// State of the display.
DisplayState *BatteryStats_System_DisplayState_State `protobuf:"varint,3,opt,name=display_state,enum=batterystats.BatteryStats_System_DisplayState_State" json:"display_state,omitempty"`
// Indicates status in power save mode.
PowerSaveMode *BatteryStats_System_PowerSaveMode_Mode `protobuf:"varint,4,opt,name=power_save_mode,enum=batterystats.BatteryStats_System_PowerSaveMode_Mode" json:"power_save_mode,omitempty"`
// Indicates status in idle mode.
IdleMode *BatteryStats_System_IdleMode_Mode `protobuf:"varint,5,opt,name=idle_mode,enum=batterystats.BatteryStats_System_IdleMode_Mode" json:"idle_mode,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_DischargeStep) Reset() { *m = BatteryStats_System_DischargeStep{} }
func (m *BatteryStats_System_DischargeStep) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_DischargeStep) ProtoMessage() {}
func (*BatteryStats_System_DischargeStep) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 7}
}
func (m *BatteryStats_System_DischargeStep) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_DischargeStep) GetLevel() float32 {
if m != nil && m.Level != nil {
return *m.Level
}
return 0
}
func (m *BatteryStats_System_DischargeStep) GetDisplayState() BatteryStats_System_DisplayState_State {
if m != nil && m.DisplayState != nil {
return *m.DisplayState
}
return BatteryStats_System_DisplayState_MIXED
}
func (m *BatteryStats_System_DischargeStep) GetPowerSaveMode() BatteryStats_System_PowerSaveMode_Mode {
if m != nil && m.PowerSaveMode != nil {
return *m.PowerSaveMode
}
return BatteryStats_System_PowerSaveMode_MIXED
}
func (m *BatteryStats_System_DischargeStep) GetIdleMode() BatteryStats_System_IdleMode_Mode {
if m != nil && m.IdleMode != nil {
return *m.IdleMode
}
return BatteryStats_System_IdleMode_NO_DATA
}
// Approximation for how much run time is remaining on the battery. The
// device will print -1 if there wasn't enough data to calculate an estimate
// or if the battery is currently charging.
type BatteryStats_System_DischargeTimeRemaining struct {
Usec *int64 `protobuf:"varint,1,opt,name=usec" json:"usec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_DischargeTimeRemaining) Reset() {
*m = BatteryStats_System_DischargeTimeRemaining{}
}
func (m *BatteryStats_System_DischargeTimeRemaining) String() string {
return proto.CompactTextString(m)
}
func (*BatteryStats_System_DischargeTimeRemaining) ProtoMessage() {}
func (*BatteryStats_System_DischargeTimeRemaining) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 8}
}
func (m *BatteryStats_System_DischargeTimeRemaining) GetUsec() int64 {
if m != nil && m.Usec != nil {
return *m.Usec
}
return 0
}
type BatteryStats_System_DisplayState struct {
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_DisplayState) Reset() { *m = BatteryStats_System_DisplayState{} }
func (m *BatteryStats_System_DisplayState) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_DisplayState) ProtoMessage() {}
func (*BatteryStats_System_DisplayState) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 9}
}
// Total bluetooth data
type BatteryStats_System_GlobalBluetooth struct {
BluetoothIdleTimeMsec *float32 `protobuf:"fixed32,1,opt,name=bluetooth_idle_time_msec" json:"bluetooth_idle_time_msec,omitempty"`
BluetoothRxTimeMsec *float32 `protobuf:"fixed32,2,opt,name=bluetooth_rx_time_msec" json:"bluetooth_rx_time_msec,omitempty"`
BluetoothTxTimeMsec *float32 `protobuf:"fixed32,3,opt,name=bluetooth_tx_time_msec" json:"bluetooth_tx_time_msec,omitempty"`
BluetoothPowerMah *float32 `protobuf:"fixed32,4,opt,name=bluetooth_power_mah" json:"bluetooth_power_mah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_GlobalBluetooth) Reset() { *m = BatteryStats_System_GlobalBluetooth{} }
func (m *BatteryStats_System_GlobalBluetooth) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_GlobalBluetooth) ProtoMessage() {}
func (*BatteryStats_System_GlobalBluetooth) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 10}
}
func (m *BatteryStats_System_GlobalBluetooth) GetBluetoothIdleTimeMsec() float32 {
if m != nil && m.BluetoothIdleTimeMsec != nil {
return *m.BluetoothIdleTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalBluetooth) GetBluetoothRxTimeMsec() float32 {
if m != nil && m.BluetoothRxTimeMsec != nil {
return *m.BluetoothRxTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalBluetooth) GetBluetoothTxTimeMsec() float32 {
if m != nil && m.BluetoothTxTimeMsec != nil {
return *m.BluetoothTxTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalBluetooth) GetBluetoothPowerMah() float32 {
if m != nil && m.BluetoothPowerMah != nil {
return *m.BluetoothPowerMah
}
return 0
}
// "Total" view (vs. Network).
type BatteryStats_System_GlobalNetwork struct {
MobileBytesRx *float32 `protobuf:"fixed32,1,opt,name=mobile_bytes_rx" json:"mobile_bytes_rx,omitempty"`
MobileBytesTx *float32 `protobuf:"fixed32,2,opt,name=mobile_bytes_tx" json:"mobile_bytes_tx,omitempty"`
WifiBytesRx *float32 `protobuf:"fixed32,3,opt,name=wifi_bytes_rx" json:"wifi_bytes_rx,omitempty"`
WifiBytesTx *float32 `protobuf:"fixed32,4,opt,name=wifi_bytes_tx" json:"wifi_bytes_tx,omitempty"`
MobilePacketsRx *float32 `protobuf:"fixed32,5,opt,name=mobile_packets_rx" json:"mobile_packets_rx,omitempty"`
MobilePacketsTx *float32 `protobuf:"fixed32,6,opt,name=mobile_packets_tx" json:"mobile_packets_tx,omitempty"`
WifiPacketsRx *float32 `protobuf:"fixed32,7,opt,name=wifi_packets_rx" json:"wifi_packets_rx,omitempty"`
WifiPacketsTx *float32 `protobuf:"fixed32,8,opt,name=wifi_packets_tx" json:"wifi_packets_tx,omitempty"`
BtBytesRx *int64 `protobuf:"varint,9,opt,name=bt_bytes_rx" json:"bt_bytes_rx,omitempty"`
BtBytesTx *int64 `protobuf:"varint,10,opt,name=bt_bytes_tx" json:"bt_bytes_tx,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_GlobalNetwork) Reset() { *m = BatteryStats_System_GlobalNetwork{} }
func (m *BatteryStats_System_GlobalNetwork) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_GlobalNetwork) ProtoMessage() {}
func (*BatteryStats_System_GlobalNetwork) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 11}
}
func (m *BatteryStats_System_GlobalNetwork) GetMobileBytesRx() float32 {
if m != nil && m.MobileBytesRx != nil {
return *m.MobileBytesRx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetMobileBytesTx() float32 {
if m != nil && m.MobileBytesTx != nil {
return *m.MobileBytesTx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetWifiBytesRx() float32 {
if m != nil && m.WifiBytesRx != nil {
return *m.WifiBytesRx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetWifiBytesTx() float32 {
if m != nil && m.WifiBytesTx != nil {
return *m.WifiBytesTx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetMobilePacketsRx() float32 {
if m != nil && m.MobilePacketsRx != nil {
return *m.MobilePacketsRx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetMobilePacketsTx() float32 {
if m != nil && m.MobilePacketsTx != nil {
return *m.MobilePacketsTx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetWifiPacketsRx() float32 {
if m != nil && m.WifiPacketsRx != nil {
return *m.WifiPacketsRx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetWifiPacketsTx() float32 {
if m != nil && m.WifiPacketsTx != nil {
return *m.WifiPacketsTx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetBtBytesRx() int64 {
if m != nil && m.BtBytesRx != nil {
return *m.BtBytesRx
}
return 0
}
func (m *BatteryStats_System_GlobalNetwork) GetBtBytesTx() int64 {
if m != nil && m.BtBytesTx != nil {
return *m.BtBytesTx
}
return 0
}
// Total wifi data (includes app wifi usage).
type BatteryStats_System_GlobalWifi struct {
// Wifi on and wifi running are mostly legacy and shouldn't have a
// difference in practice.
WifiOnTimeMsec *float32 `protobuf:"fixed32,1,opt,name=wifi_on_time_msec" json:"wifi_on_time_msec,omitempty"`
WifiRunningTimeMsec *float32 `protobuf:"fixed32,2,opt,name=wifi_running_time_msec" json:"wifi_running_time_msec,omitempty"`
WifiIdleTimeMsec *float32 `protobuf:"fixed32,3,opt,name=wifi_idle_time_msec" json:"wifi_idle_time_msec,omitempty"`
// Rx and Tx times are reported from the Wifi chip. Running time is
// recorded based on API calls, so it's more of an estimate.
// RxTime + TxTime doesn't need to equal RunningTime.
WifiRxTimeMsec *float32 `protobuf:"fixed32,4,opt,name=wifi_rx_time_msec" json:"wifi_rx_time_msec,omitempty"`
WifiTxTimeMsec *float32 `protobuf:"fixed32,5,opt,name=wifi_tx_time_msec" json:"wifi_tx_time_msec,omitempty"`
WifiPowerMah *float32 `protobuf:"fixed32,6,opt,name=wifi_power_mah" json:"wifi_power_mah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_GlobalWifi) Reset() { *m = BatteryStats_System_GlobalWifi{} }
func (m *BatteryStats_System_GlobalWifi) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_GlobalWifi) ProtoMessage() {}
func (*BatteryStats_System_GlobalWifi) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 12}
}
func (m *BatteryStats_System_GlobalWifi) GetWifiOnTimeMsec() float32 {
if m != nil && m.WifiOnTimeMsec != nil {
return *m.WifiOnTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalWifi) GetWifiRunningTimeMsec() float32 {
if m != nil && m.WifiRunningTimeMsec != nil {
return *m.WifiRunningTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalWifi) GetWifiIdleTimeMsec() float32 {
if m != nil && m.WifiIdleTimeMsec != nil {
return *m.WifiIdleTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalWifi) GetWifiRxTimeMsec() float32 {
if m != nil && m.WifiRxTimeMsec != nil {
return *m.WifiRxTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalWifi) GetWifiTxTimeMsec() float32 {
if m != nil && m.WifiTxTimeMsec != nil {
return *m.WifiTxTimeMsec
}
return 0
}
func (m *BatteryStats_System_GlobalWifi) GetWifiPowerMah() float32 {
if m != nil && m.WifiPowerMah != nil {
return *m.WifiPowerMah
}
return 0
}
type BatteryStats_System_IdleMode struct {
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_IdleMode) Reset() { *m = BatteryStats_System_IdleMode{} }
func (m *BatteryStats_System_IdleMode) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_IdleMode) ProtoMessage() {}
func (*BatteryStats_System_IdleMode) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 13}
}
// Similar to Wakelock.
// Kernel wakelock metrics are only recorded when the device is unplugged
// *and* the screen is off.
type BatteryStats_System_KernelWakelock struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
// The kernel doesn't have the data to enable printing out current and max
// durations, so -1 is always printed out for them.
CurrentDurationMsec *int64 `protobuf:"varint,4,opt,name=current_duration_msec" json:"current_duration_msec,omitempty"`
MaxDurationMsec *int64 `protobuf:"varint,5,opt,name=max_duration_msec" json:"max_duration_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_KernelWakelock) Reset() { *m = BatteryStats_System_KernelWakelock{} }
func (m *BatteryStats_System_KernelWakelock) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_KernelWakelock) ProtoMessage() {}
func (*BatteryStats_System_KernelWakelock) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 14}
}
func (m *BatteryStats_System_KernelWakelock) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_System_KernelWakelock) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_KernelWakelock) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
func (m *BatteryStats_System_KernelWakelock) GetCurrentDurationMsec() int64 {
if m != nil && m.CurrentDurationMsec != nil {
return *m.CurrentDurationMsec
}
return 0
}
func (m *BatteryStats_System_KernelWakelock) GetMaxDurationMsec() int64 {
if m != nil && m.MaxDurationMsec != nil {
return *m.MaxDurationMsec
}
return 0
}
// "Total" view (vs. other App-specific stats above).
type BatteryStats_System_Misc struct {
ScreenOnTimeMsec *float32 `protobuf:"fixed32,1,opt,name=screen_on_time_msec" json:"screen_on_time_msec,omitempty"`
// battery_realtime - screen_on_time.
ScreenOffTimeMsec *float32 `protobuf:"fixed32,2,opt,name=screen_off_time_msec" json:"screen_off_time_msec,omitempty"`
// Active phone call time.
PhoneOnTimeMsec *float32 `protobuf:"fixed32,3,opt,name=phone_on_time_msec" json:"phone_on_time_msec,omitempty"`
// Duration of Wifi being enabled.
WifiOnTimeMsec *float32 `protobuf:"fixed32,4,opt,name=wifi_on_time_msec" json:"wifi_on_time_msec,omitempty"`
// Duration of Wifi being on and the driver being in the running state.
WifiRunningTimeMsec *float32 `protobuf:"fixed32,5,opt,name=wifi_running_time_msec" json:"wifi_running_time_msec,omitempty"`
BluetoothOnTimeMsec *float32 `protobuf:"fixed32,6,opt,name=bluetooth_on_time_msec" json:"bluetooth_on_time_msec,omitempty"`
MobileBytesRx *float32 `protobuf:"fixed32,7,opt,name=mobile_bytes_rx" json:"mobile_bytes_rx,omitempty"`
MobileBytesTx *float32 `protobuf:"fixed32,8,opt,name=mobile_bytes_tx" json:"mobile_bytes_tx,omitempty"`
WifiBytesRx *float32 `protobuf:"fixed32,9,opt,name=wifi_bytes_rx" json:"wifi_bytes_rx,omitempty"`
WifiBytesTx *float32 `protobuf:"fixed32,10,opt,name=wifi_bytes_tx" json:"wifi_bytes_tx,omitempty"`
FullWakelockTimeMsec *float32 `protobuf:"fixed32,11,opt,name=full_wakelock_time_msec" json:"full_wakelock_time_msec,omitempty"`
PartialWakelockTimeMsec *float32 `protobuf:"fixed32,12,opt,name=partial_wakelock_time_msec" json:"partial_wakelock_time_msec,omitempty"`
MobileActiveTimeMsec *float32 `protobuf:"fixed32,13,opt,name=mobile_active_time_msec" json:"mobile_active_time_msec,omitempty"`
MobileActiveAdjustedTimeMsec *float32 `protobuf:"fixed32,14,opt,name=mobile_active_adjusted_time_msec" json:"mobile_active_adjusted_time_msec,omitempty"`
InteractiveTimeMsec *float32 `protobuf:"fixed32,15,opt,name=interactive_time_msec" json:"interactive_time_msec,omitempty"`
// Amount of time power save mode was on.
LowPowerModeEnabledTimeMsec *float32 `protobuf:"fixed32,16,opt,name=low_power_mode_enabled_time_msec" json:"low_power_mode_enabled_time_msec,omitempty"`
// #times that connectivity state changed.
ConnectivityChanges *float32 `protobuf:"fixed32,17,opt,name=connectivity_changes" json:"connectivity_changes,omitempty"`
// When the device has seen no activity, it goes into
// idle (Doze) mode. https://youtu.be/N72ksDKrX6c
DeviceIdleModeEnabledTimeMsec *float32 `protobuf:"fixed32,18,opt,name=device_idle_mode_enabled_time_msec" json:"device_idle_mode_enabled_time_msec,omitempty"`
DeviceIdleModeEnabledCount *float32 `protobuf:"fixed32,19,opt,name=device_idle_mode_enabled_count" json:"device_idle_mode_enabled_count,omitempty"`
// Idling time encompasses "idle" time and the idle maintenance windows that allow apps to operate.
DeviceIdlingTimeMsec *float32 `protobuf:"fixed32,20,opt,name=device_idling_time_msec" json:"device_idling_time_msec,omitempty"`
DeviceIdlingCount *float32 `protobuf:"fixed32,21,opt,name=device_idling_count" json:"device_idling_count,omitempty"`
// # times the mobile radio was active.
MobileActiveCount *float32 `protobuf:"fixed32,22,opt,name=mobile_active_count" json:"mobile_active_count,omitempty"`
// Amount of time the mobile radio was on but the time couldn't be attributed to any app.
MobileActiveUnknownTime *float32 `protobuf:"fixed32,23,opt,name=mobile_active_unknown_time" json:"mobile_active_unknown_time,omitempty"`
// Light-weight idle (Doze) mode turns on after the screen has been off for some time,
// and then cycles through periods of light-weight idle with maintenance
// windows, regardless of whether the device is moving around.
DeviceLightIdleModeEnabledTimeMsec *int64 `protobuf:"varint,24,opt,name=device_light_idle_mode_enabled_time_msec" json:"device_light_idle_mode_enabled_time_msec,omitempty"`
DeviceLightIdleModeEnabledCount *int32 `protobuf:"varint,25,opt,name=device_light_idle_mode_enabled_count" json:"device_light_idle_mode_enabled_count,omitempty"`
// Light idling time encompasses "light idle" time and the maintenance
// windows that allow apps to operate.
DeviceLightIdlingTimeMsec *int64 `protobuf:"varint,26,opt,name=device_light_idling_time_msec" json:"device_light_idling_time_msec,omitempty"`
DeviceLightIdlingCount *int32 `protobuf:"varint,27,opt,name=device_light_idling_count" json:"device_light_idling_count,omitempty"`
MaxDeviceLightIdleModeEnabledTimeMsec *int64 `protobuf:"varint,28,opt,name=max_device_light_idle_mode_enabled_time_msec" json:"max_device_light_idle_mode_enabled_time_msec,omitempty"`
MaxDeviceIdleModeEnabledTimeMsec *int64 `protobuf:"varint,29,opt,name=max_device_idle_mode_enabled_time_msec" json:"max_device_idle_mode_enabled_time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_Misc) Reset() { *m = BatteryStats_System_Misc{} }
func (m *BatteryStats_System_Misc) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_Misc) ProtoMessage() {}
func (*BatteryStats_System_Misc) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 2, 15} }
func (m *BatteryStats_System_Misc) GetScreenOnTimeMsec() float32 {
if m != nil && m.ScreenOnTimeMsec != nil {
return *m.ScreenOnTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetScreenOffTimeMsec() float32 {
if m != nil && m.ScreenOffTimeMsec != nil {
return *m.ScreenOffTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetPhoneOnTimeMsec() float32 {
if m != nil && m.PhoneOnTimeMsec != nil {
return *m.PhoneOnTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetWifiOnTimeMsec() float32 {
if m != nil && m.WifiOnTimeMsec != nil {
return *m.WifiOnTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetWifiRunningTimeMsec() float32 {
if m != nil && m.WifiRunningTimeMsec != nil {
return *m.WifiRunningTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetBluetoothOnTimeMsec() float32 {
if m != nil && m.BluetoothOnTimeMsec != nil {
return *m.BluetoothOnTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileBytesRx() float32 {
if m != nil && m.MobileBytesRx != nil {
return *m.MobileBytesRx
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileBytesTx() float32 {
if m != nil && m.MobileBytesTx != nil {
return *m.MobileBytesTx
}
return 0
}
func (m *BatteryStats_System_Misc) GetWifiBytesRx() float32 {
if m != nil && m.WifiBytesRx != nil {
return *m.WifiBytesRx
}
return 0
}
func (m *BatteryStats_System_Misc) GetWifiBytesTx() float32 {
if m != nil && m.WifiBytesTx != nil {
return *m.WifiBytesTx
}
return 0
}
func (m *BatteryStats_System_Misc) GetFullWakelockTimeMsec() float32 {
if m != nil && m.FullWakelockTimeMsec != nil {
return *m.FullWakelockTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetPartialWakelockTimeMsec() float32 {
if m != nil && m.PartialWakelockTimeMsec != nil {
return *m.PartialWakelockTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileActiveTimeMsec() float32 {
if m != nil && m.MobileActiveTimeMsec != nil {
return *m.MobileActiveTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileActiveAdjustedTimeMsec() float32 {
if m != nil && m.MobileActiveAdjustedTimeMsec != nil {
return *m.MobileActiveAdjustedTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetInteractiveTimeMsec() float32 {
if m != nil && m.InteractiveTimeMsec != nil {
return *m.InteractiveTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetLowPowerModeEnabledTimeMsec() float32 {
if m != nil && m.LowPowerModeEnabledTimeMsec != nil {
return *m.LowPowerModeEnabledTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetConnectivityChanges() float32 {
if m != nil && m.ConnectivityChanges != nil {
return *m.ConnectivityChanges
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceIdleModeEnabledTimeMsec() float32 {
if m != nil && m.DeviceIdleModeEnabledTimeMsec != nil {
return *m.DeviceIdleModeEnabledTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceIdleModeEnabledCount() float32 {
if m != nil && m.DeviceIdleModeEnabledCount != nil {
return *m.DeviceIdleModeEnabledCount
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceIdlingTimeMsec() float32 {
if m != nil && m.DeviceIdlingTimeMsec != nil {
return *m.DeviceIdlingTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceIdlingCount() float32 {
if m != nil && m.DeviceIdlingCount != nil {
return *m.DeviceIdlingCount
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileActiveCount() float32 {
if m != nil && m.MobileActiveCount != nil {
return *m.MobileActiveCount
}
return 0
}
func (m *BatteryStats_System_Misc) GetMobileActiveUnknownTime() float32 {
if m != nil && m.MobileActiveUnknownTime != nil {
return *m.MobileActiveUnknownTime
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceLightIdleModeEnabledTimeMsec() int64 {
if m != nil && m.DeviceLightIdleModeEnabledTimeMsec != nil {
return *m.DeviceLightIdleModeEnabledTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceLightIdleModeEnabledCount() int32 {
if m != nil && m.DeviceLightIdleModeEnabledCount != nil {
return *m.DeviceLightIdleModeEnabledCount
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceLightIdlingTimeMsec() int64 {
if m != nil && m.DeviceLightIdlingTimeMsec != nil {
return *m.DeviceLightIdlingTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetDeviceLightIdlingCount() int32 {
if m != nil && m.DeviceLightIdlingCount != nil {
return *m.DeviceLightIdlingCount
}
return 0
}
func (m *BatteryStats_System_Misc) GetMaxDeviceLightIdleModeEnabledTimeMsec() int64 {
if m != nil && m.MaxDeviceLightIdleModeEnabledTimeMsec != nil {
return *m.MaxDeviceLightIdleModeEnabledTimeMsec
}
return 0
}
func (m *BatteryStats_System_Misc) GetMaxDeviceIdleModeEnabledTimeMsec() int64 {
if m != nil && m.MaxDeviceIdleModeEnabledTimeMsec != nil {
return *m.MaxDeviceIdleModeEnabledTimeMsec
}
return 0
}
type BatteryStats_System_PowerSaveMode struct {
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_PowerSaveMode) Reset() { *m = BatteryStats_System_PowerSaveMode{} }
func (m *BatteryStats_System_PowerSaveMode) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_PowerSaveMode) ProtoMessage() {}
func (*BatteryStats_System_PowerSaveMode) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 16}
}
type BatteryStats_System_PowerUseItem struct {
Name *BatteryStats_System_PowerUseItem_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_PowerUseItem_Name" json:"name,omitempty"`
ComputedPowerMah *float32 `protobuf:"fixed32,2,opt,name=computed_power_mah" json:"computed_power_mah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_PowerUseItem) Reset() { *m = BatteryStats_System_PowerUseItem{} }
func (m *BatteryStats_System_PowerUseItem) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_PowerUseItem) ProtoMessage() {}
func (*BatteryStats_System_PowerUseItem) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 17}
}
func (m *BatteryStats_System_PowerUseItem) GetName() BatteryStats_System_PowerUseItem_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_PowerUseItem_IDLE
}
func (m *BatteryStats_System_PowerUseItem) GetComputedPowerMah() float32 {
if m != nil && m.ComputedPowerMah != nil {
return *m.ComputedPowerMah
}
return 0
}
type BatteryStats_System_PowerUseSummary struct {
BatteryCapacityMah *float32 `protobuf:"fixed32,1,opt,name=battery_capacity_mah" json:"battery_capacity_mah,omitempty"`
ComputedPowerMah *float32 `protobuf:"fixed32,2,opt,name=computed_power_mah" json:"computed_power_mah,omitempty"`
// Lower bound of actual power drained.
MinDrainedPowerMah *float32 `protobuf:"fixed32,3,opt,name=min_drained_power_mah" json:"min_drained_power_mah,omitempty"`
// Upper bound of actual power drained.
MaxDrainedPowerMah *float32 `protobuf:"fixed32,4,opt,name=max_drained_power_mah" json:"max_drained_power_mah,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_PowerUseSummary) Reset() { *m = BatteryStats_System_PowerUseSummary{} }
func (m *BatteryStats_System_PowerUseSummary) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_PowerUseSummary) ProtoMessage() {}
func (*BatteryStats_System_PowerUseSummary) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 18}
}
func (m *BatteryStats_System_PowerUseSummary) GetBatteryCapacityMah() float32 {
if m != nil && m.BatteryCapacityMah != nil {
return *m.BatteryCapacityMah
}
return 0
}
func (m *BatteryStats_System_PowerUseSummary) GetComputedPowerMah() float32 {
if m != nil && m.ComputedPowerMah != nil {
return *m.ComputedPowerMah
}
return 0
}
func (m *BatteryStats_System_PowerUseSummary) GetMinDrainedPowerMah() float32 {
if m != nil && m.MinDrainedPowerMah != nil {
return *m.MinDrainedPowerMah
}
return 0
}
func (m *BatteryStats_System_PowerUseSummary) GetMaxDrainedPowerMah() float32 {
if m != nil && m.MaxDrainedPowerMah != nil {
return *m.MaxDrainedPowerMah
}
return 0
}
type BatteryStats_System_ScreenBrightness struct {
Name *BatteryStats_System_ScreenBrightness_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_ScreenBrightness_Name" json:"name,omitempty"`
// Duration.
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_ScreenBrightness) Reset() { *m = BatteryStats_System_ScreenBrightness{} }
func (m *BatteryStats_System_ScreenBrightness) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_ScreenBrightness) ProtoMessage() {}
func (*BatteryStats_System_ScreenBrightness) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 19}
}
func (m *BatteryStats_System_ScreenBrightness) GetName() BatteryStats_System_ScreenBrightness_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_ScreenBrightness_DARK
}
func (m *BatteryStats_System_ScreenBrightness) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
type BatteryStats_System_SignalScanningTime struct {
// Duration trying to acquire a signal.
TimeMsec *float32 `protobuf:"fixed32,1,opt,name=time_msec" json:"time_msec,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_SignalScanningTime) Reset() {
*m = BatteryStats_System_SignalScanningTime{}
}
func (m *BatteryStats_System_SignalScanningTime) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_SignalScanningTime) ProtoMessage() {}
func (*BatteryStats_System_SignalScanningTime) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 20}
}
func (m *BatteryStats_System_SignalScanningTime) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
type BatteryStats_System_SignalStrength struct {
Name *BatteryStats_System_SignalStrength_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_SignalStrength_Name" json:"name,omitempty"`
// Duration running with the given signal strength.
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
// #times entering the given signal strength.
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_SignalStrength) Reset() { *m = BatteryStats_System_SignalStrength{} }
func (m *BatteryStats_System_SignalStrength) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_SignalStrength) ProtoMessage() {}
func (*BatteryStats_System_SignalStrength) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 21}
}
func (m *BatteryStats_System_SignalStrength) GetName() BatteryStats_System_SignalStrength_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_SignalStrength_NONE_OR_UNKNOWN
}
func (m *BatteryStats_System_SignalStrength) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_SignalStrength) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// Similar to KernelWakelock.
type BatteryStats_System_WakeupReason struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_WakeupReason) Reset() { *m = BatteryStats_System_WakeupReason{} }
func (m *BatteryStats_System_WakeupReason) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_WakeupReason) ProtoMessage() {}
func (*BatteryStats_System_WakeupReason) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 22}
}
func (m *BatteryStats_System_WakeupReason) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *BatteryStats_System_WakeupReason) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_WakeupReason) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// Similar to SignalStrength.
type BatteryStats_System_WifiSignalStrength struct {
Name *BatteryStats_System_WifiSignalStrength_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_WifiSignalStrength_Name" json:"name,omitempty"`
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_WifiSignalStrength) Reset() {
*m = BatteryStats_System_WifiSignalStrength{}
}
func (m *BatteryStats_System_WifiSignalStrength) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_WifiSignalStrength) ProtoMessage() {}
func (*BatteryStats_System_WifiSignalStrength) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 23}
}
func (m *BatteryStats_System_WifiSignalStrength) GetName() BatteryStats_System_WifiSignalStrength_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_WifiSignalStrength_NONE
}
func (m *BatteryStats_System_WifiSignalStrength) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_WifiSignalStrength) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
type BatteryStats_System_WifiSupplicantState struct {
Name *BatteryStats_System_WifiSupplicantState_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_WifiSupplicantState_Name" json:"name,omitempty"`
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_WifiSupplicantState) Reset() {
*m = BatteryStats_System_WifiSupplicantState{}
}
func (m *BatteryStats_System_WifiSupplicantState) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_WifiSupplicantState) ProtoMessage() {}
func (*BatteryStats_System_WifiSupplicantState) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 24}
}
func (m *BatteryStats_System_WifiSupplicantState) GetName() BatteryStats_System_WifiSupplicantState_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_WifiSupplicantState_INVALID
}
func (m *BatteryStats_System_WifiSupplicantState) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_WifiSupplicantState) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
// Similar to WifiSupplicantState.
type BatteryStats_System_WifiState struct {
Name *BatteryStats_System_WifiState_Name `protobuf:"varint,1,opt,name=name,enum=batterystats.BatteryStats_System_WifiState_Name" json:"name,omitempty"`
TimeMsec *float32 `protobuf:"fixed32,2,opt,name=time_msec" json:"time_msec,omitempty"`
Count *float32 `protobuf:"fixed32,3,opt,name=count" json:"count,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *BatteryStats_System_WifiState) Reset() { *m = BatteryStats_System_WifiState{} }
func (m *BatteryStats_System_WifiState) String() string { return proto.CompactTextString(m) }
func (*BatteryStats_System_WifiState) ProtoMessage() {}
func (*BatteryStats_System_WifiState) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{0, 2, 25}
}
func (m *BatteryStats_System_WifiState) GetName() BatteryStats_System_WifiState_Name {
if m != nil && m.Name != nil {
return *m.Name
}
return BatteryStats_System_WifiState_OFF
}
func (m *BatteryStats_System_WifiState) GetTimeMsec() float32 {
if m != nil && m.TimeMsec != nil {
return *m.TimeMsec
}
return 0
}
func (m *BatteryStats_System_WifiState) GetCount() float32 {
if m != nil && m.Count != nil {
return *m.Count
}
return 0
}
func init() {
proto.RegisterType((*BatteryStats)(nil), "batterystats.BatteryStats")
proto.RegisterType((*BatteryStats_App)(nil), "batterystats.BatteryStats.App")
proto.RegisterType((*BatteryStats_App_Child)(nil), "batterystats.BatteryStats.App.Child")
proto.RegisterType((*BatteryStats_App_Apk)(nil), "batterystats.BatteryStats.App.Apk")
proto.RegisterType((*BatteryStats_App_Apk_Service)(nil), "batterystats.BatteryStats.App.Apk.Service")
proto.RegisterType((*BatteryStats_App_Audio)(nil), "batterystats.BatteryStats.App.Audio")
proto.RegisterType((*BatteryStats_App_BluetoothMisc)(nil), "batterystats.BatteryStats.App.BluetoothMisc")
proto.RegisterType((*BatteryStats_App_Camera)(nil), "batterystats.BatteryStats.App.Camera")
proto.RegisterType((*BatteryStats_App_Cpu)(nil), "batterystats.BatteryStats.App.Cpu")
proto.RegisterType((*BatteryStats_App_Flashlight)(nil), "batterystats.BatteryStats.App.Flashlight")
proto.RegisterType((*BatteryStats_App_Foreground)(nil), "batterystats.BatteryStats.App.Foreground")
proto.RegisterType((*BatteryStats_App_Network)(nil), "batterystats.BatteryStats.App.Network")
proto.RegisterType((*BatteryStats_App_PowerUseItem)(nil), "batterystats.BatteryStats.App.PowerUseItem")
proto.RegisterType((*BatteryStats_App_Process)(nil), "batterystats.BatteryStats.App.Process")
proto.RegisterType((*BatteryStats_App_ScheduledJob)(nil), "batterystats.BatteryStats.App.ScheduledJob")
proto.RegisterType((*BatteryStats_App_Sensor)(nil), "batterystats.BatteryStats.App.Sensor")
proto.RegisterType((*BatteryStats_App_StateTime)(nil), "batterystats.BatteryStats.App.StateTime")
proto.RegisterType((*BatteryStats_App_Sync)(nil), "batterystats.BatteryStats.App.Sync")
proto.RegisterType((*BatteryStats_App_UserActivity)(nil), "batterystats.BatteryStats.App.UserActivity")
proto.RegisterType((*BatteryStats_App_Vibrator)(nil), "batterystats.BatteryStats.App.Vibrator")
proto.RegisterType((*BatteryStats_App_Video)(nil), "batterystats.BatteryStats.App.Video")
proto.RegisterType((*BatteryStats_App_Wakelock)(nil), "batterystats.BatteryStats.App.Wakelock")
proto.RegisterType((*BatteryStats_App_WakeupAlarm)(nil), "batterystats.BatteryStats.App.WakeupAlarm")
proto.RegisterType((*BatteryStats_App_Wifi)(nil), "batterystats.BatteryStats.App.Wifi")
proto.RegisterType((*BatteryStats_ControllerActivity)(nil), "batterystats.BatteryStats.ControllerActivity")
proto.RegisterType((*BatteryStats_ControllerActivity_TxLevel)(nil), "batterystats.BatteryStats.ControllerActivity.TxLevel")
proto.RegisterType((*BatteryStats_System)(nil), "batterystats.BatteryStats.System")
proto.RegisterType((*BatteryStats_System_Battery)(nil), "batterystats.BatteryStats.System.Battery")
proto.RegisterType((*BatteryStats_System_BatteryDischarge)(nil), "batterystats.BatteryStats.System.BatteryDischarge")
proto.RegisterType((*BatteryStats_System_BatteryLevel)(nil), "batterystats.BatteryStats.System.BatteryLevel")
proto.RegisterType((*BatteryStats_System_BluetoothState)(nil), "batterystats.BatteryStats.System.BluetoothState")
proto.RegisterType((*BatteryStats_System_ChargeStep)(nil), "batterystats.BatteryStats.System.ChargeStep")
proto.RegisterType((*BatteryStats_System_ChargeTimeRemaining)(nil), "batterystats.BatteryStats.System.ChargeTimeRemaining")
proto.RegisterType((*BatteryStats_System_DataConnection)(nil), "batterystats.BatteryStats.System.DataConnection")
proto.RegisterType((*BatteryStats_System_DischargeStep)(nil), "batterystats.BatteryStats.System.DischargeStep")
proto.RegisterType((*BatteryStats_System_DischargeTimeRemaining)(nil), "batterystats.BatteryStats.System.DischargeTimeRemaining")
proto.RegisterType((*BatteryStats_System_DisplayState)(nil), "batterystats.BatteryStats.System.DisplayState")
proto.RegisterType((*BatteryStats_System_GlobalBluetooth)(nil), "batterystats.BatteryStats.System.GlobalBluetooth")
proto.RegisterType((*BatteryStats_System_GlobalNetwork)(nil), "batterystats.BatteryStats.System.GlobalNetwork")
proto.RegisterType((*BatteryStats_System_GlobalWifi)(nil), "batterystats.BatteryStats.System.GlobalWifi")
proto.RegisterType((*BatteryStats_System_IdleMode)(nil), "batterystats.BatteryStats.System.IdleMode")
proto.RegisterType((*BatteryStats_System_KernelWakelock)(nil), "batterystats.BatteryStats.System.KernelWakelock")
proto.RegisterType((*BatteryStats_System_Misc)(nil), "batterystats.BatteryStats.System.Misc")
proto.RegisterType((*BatteryStats_System_PowerSaveMode)(nil), "batterystats.BatteryStats.System.PowerSaveMode")
proto.RegisterType((*BatteryStats_System_PowerUseItem)(nil), "batterystats.BatteryStats.System.PowerUseItem")
proto.RegisterType((*BatteryStats_System_PowerUseSummary)(nil), "batterystats.BatteryStats.System.PowerUseSummary")
proto.RegisterType((*BatteryStats_System_ScreenBrightness)(nil), "batterystats.BatteryStats.System.ScreenBrightness")
proto.RegisterType((*BatteryStats_System_SignalScanningTime)(nil), "batterystats.BatteryStats.System.SignalScanningTime")
proto.RegisterType((*BatteryStats_System_SignalStrength)(nil), "batterystats.BatteryStats.System.SignalStrength")
proto.RegisterType((*BatteryStats_System_WakeupReason)(nil), "batterystats.BatteryStats.System.WakeupReason")
proto.RegisterType((*BatteryStats_System_WifiSignalStrength)(nil), "batterystats.BatteryStats.System.WifiSignalStrength")
proto.RegisterType((*BatteryStats_System_WifiSupplicantState)(nil), "batterystats.BatteryStats.System.WifiSupplicantState")
proto.RegisterType((*BatteryStats_System_WifiState)(nil), "batterystats.BatteryStats.System.WifiState")
proto.RegisterEnum("batterystats.BatteryStats_AggregationType", BatteryStats_AggregationType_name, BatteryStats_AggregationType_value)
proto.RegisterEnum("batterystats.BatteryStats_App_UserActivity_Name", BatteryStats_App_UserActivity_Name_name, BatteryStats_App_UserActivity_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_BluetoothState_Name", BatteryStats_System_BluetoothState_Name_name, BatteryStats_System_BluetoothState_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_DataConnection_Name", BatteryStats_System_DataConnection_Name_name, BatteryStats_System_DataConnection_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_DisplayState_State", BatteryStats_System_DisplayState_State_name, BatteryStats_System_DisplayState_State_value)
proto.RegisterEnum("batterystats.BatteryStats_System_IdleMode_Mode", BatteryStats_System_IdleMode_Mode_name, BatteryStats_System_IdleMode_Mode_value)
proto.RegisterEnum("batterystats.BatteryStats_System_PowerSaveMode_Mode", BatteryStats_System_PowerSaveMode_Mode_name, BatteryStats_System_PowerSaveMode_Mode_value)
proto.RegisterEnum("batterystats.BatteryStats_System_PowerUseItem_Name", BatteryStats_System_PowerUseItem_Name_name, BatteryStats_System_PowerUseItem_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_ScreenBrightness_Name", BatteryStats_System_ScreenBrightness_Name_name, BatteryStats_System_ScreenBrightness_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_SignalStrength_Name", BatteryStats_System_SignalStrength_Name_name, BatteryStats_System_SignalStrength_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_WifiSignalStrength_Name", BatteryStats_System_WifiSignalStrength_Name_name, BatteryStats_System_WifiSignalStrength_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_WifiSupplicantState_Name", BatteryStats_System_WifiSupplicantState_Name_name, BatteryStats_System_WifiSupplicantState_Name_value)
proto.RegisterEnum("batterystats.BatteryStats_System_WifiState_Name", BatteryStats_System_WifiState_Name_name, BatteryStats_System_WifiState_Name_value)
}
var fileDescriptor0 = []byte{
// 4118 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0xe3, 0x58,
0x72, 0x8f, 0x24, 0xcb, 0xb2, 0x4a, 0xb2, 0xc4, 0xa6, 0xdd, 0x6e, 0x35, 0x3d, 0x3d, 0x33, 0xeb,
0xf9, 0xd8, 0xc9, 0xcc, 0xac, 0xbb, 0xd7, 0xd3, 0x8d, 0xcd, 0xcc, 0xec, 0xce, 0x86, 0x96, 0x64,
0x5b, 0x69, 0x5b, 0x12, 0xf4, 0xd1, 0xbd, 0x3b, 0x08, 0x40, 0x50, 0x12, 0x5b, 0xe6, 0x5a, 0x22,
0x05, 0x92, 0xea, 0x8f, 0x45, 0x2e, 0x39, 0x06, 0x48, 0x16, 0x09, 0x10, 0x24, 0x48, 0x90, 0x9c,
0x03, 0x04, 0xf9, 0x07, 0x72, 0xd9, 0x20, 0x01, 0x92, 0xfb, 0xdc, 0x73, 0x0f, 0x90, 0x43, 0x92,
0x3f, 0x21, 0xf5, 0xea, 0xf1, 0x51, 0x24, 0x25, 0x5b, 0x74, 0x1f, 0x72, 0x08, 0xf6, 0xd2, 0xa0,
0xdf, 0xab, 0xaa, 0xf7, 0x5e, 0x55, 0xbd, 0xaa, 0x5f, 0xd5, 0x53, 0xc3, 0xf9, 0xd8, 0xf4, 0x2e,
0xe7, 0x83, 0xc3, 0xa1, 0x3d, 0x7d, 0x38, 0xb6, 0xed, 0xf1, 0xc4, 0x78, 0x38, 0xd0, 0x3d, 0xcf,
0x70, 0xde, 0xfc, 0xe0, 0xd2, 0x74, 0x3d, 0xdb, 0x31, 0x75, 0xeb, 0xe1, 0x6c, 0x20, 0x06, 0x5d,
0x4f, 0xf7, 0x5c, 0x6d, 0xe6, 0xd8, 0x9e, 0x1d, 0x19, 0x3a, 0xa4, 0x21, 0xb9, 0x18, 0x1e, 0x53,
0xbe, 0x49, 0x2a, 0x7b, 0x6e, 0x4e, 0x46, 0x42, 0x28, 0xfb, 0xe6, 0xd2, 0x0e, 0xbe, 0x1b, 0x43,
0xf1, 0x98, 0x33, 0x74, 0x99, 0x40, 0xf9, 0x0e, 0xe4, 0x1d, 0x63, 0x68, 0x3b, 0x23, 0xcd, 0x1c,
0x55, 0x52, 0xef, 0xa7, 0x3e, 0xc9, 0xcb, 0x3b, 0x50, 0xd0, 0xad, 0x91, 0x63, 0x9b, 0x6c, 0xec,
0x75, 0x25, 0x4d, 0x83, 0xf7, 0xa0, 0x8c, 0x3b, 0x70, 0x3c, 0xcd, 0x33, 0xa7, 0x86, 0x36, 0x77,
0x8d, 0x61, 0x25, 0x83, 0x13, 0x19, 0xf9, 0x2e, 0x6c, 0x1b, 0xd6, 0x28, 0x34, 0xbc, 0x41, 0xc3,
0x7b, 0x50, 0x0a, 0xd1, 0xbb, 0x9e, 0x53, 0xc9, 0x92, 0x9c, 0x5d, 0x28, 0x06, 0xe4, 0x6c, 0x74,
0x93, 0x46, 0xdf, 0x81, 0xdd, 0x89, 0x3d, 0xd4, 0x27, 0x5a, 0x8c, 0x27, 0x47, 0xb3, 0x0a, 0xc8,
0x7c, 0x36, 0xc2, 0xb9, 0x25, 0xe4, 0x8d, 0x8c, 0x97, 0xe6, 0xd0, 0xd0, 0xc6, 0x8e, 0x3d, 0x9f,
0x55, 0xf2, 0xef, 0x67, 0xf8, 0xe8, 0xf0, 0xd2, 0x18, 0x5e, 0x99, 0x96, 0xe6, 0xcc, 0x27, 0x46,
0x05, 0x68, 0x54, 0x06, 0x30, 0x5d, 0x8d, 0xab, 0xcd, 0xa9, 0x14, 0x90, 0x7f, 0x8b, 0x9d, 0x0b,
0xc7, 0x70, 0xe3, 0x8e, 0xe6, 0x18, 0x13, 0x43, 0x77, 0x8d, 0x4a, 0x91, 0x26, 0xf6, 0x21, 0x4b,
0x8a, 0xab, 0x6c, 0xe3, 0x9f, 0x85, 0xa3, 0xe2, 0x21, 0x57, 0xe3, 0x31, 0xfb, 0x97, 0xa9, 0xc8,
0x1d, 0x5d, 0x69, 0x2f, 0x0d, 0xc7, 0x35, 0x6d, 0xab, 0x52, 0x42, 0x92, 0x2c, 0x1b, 0x1c, 0x4f,
0xdd, 0x60, 0xb0, 0x4c, 0x83, 0xb8, 0xe6, 0xc0, 0xb6, 0xbd, 0x89, 0xad, 0x8f, 0x70, 0x4d, 0x89,
0xf6, 0xbc, 0x0d, 0x59, 0x47, 0x1f, 0x99, 0x76, 0xe5, 0x0e, 0xfd, 0x59, 0x86, 0xdc, 0x50, 0x77,
0x1c, 0x13, 0xe7, 0x65, 0x71, 0xa6, 0xa1, 0x3d, 0xb7, 0x3c, 0xe7, 0x8d, 0x36, 0xb4, 0x47, 0x46,
0x65, 0x87, 0x46, 0xd1, 0x52, 0x74, 0xf6, 0x5f, 0xda, 0x96, 0x51, 0xd9, 0xa5, 0x21, 0x54, 0xb2,
0x63, 0xcc, 0x6c, 0xd4, 0x98, 0x58, 0xf4, 0xae, 0xd8, 0x09, 0x1e, 0x0a, 0x9d, 0x61, 0x6c, 0x5a,
0xfa, 0xa4, 0xb2, 0x47, 0x07, 0x42, 0x7e, 0x1c, 0x9c, 0xe8, 0x9e, 0xe1, 0x7a, 0x95, 0x7b, 0x34,
0x84, 0x2b, 0xe3, 0xd0, 0xc8, 0x7c, 0xf1, 0xa2, 0x52, 0xa1, 0x01, 0xce, 0xa8, 0x4f, 0x3c, 0x6d,
0xca, 0x16, 0x7e, 0x20, 0xa8, 0x5e, 0xe9, 0x8e, 0x65, 0x5a, 0xe3, 0xca, 0xbb, 0xa4, 0x47, 0xdc,
0xbf, 0xe1, 0x38, 0xb6, 0x53, 0x79, 0x8f, 0xfe, 0xac, 0x81, 0xa4, 0x8f, 0xc7, 0x8e, 0x31, 0xd6,
0x3d, 0xdc, 0x82, 0xe6, 0xbd, 0x99, 0x19, 0x95, 0xfb, 0xc8, 0x59, 0x3a, 0xfa, 0xf4, 0x30, 0xe2,
0xd0, 0x61, 0xc7, 0x3b, 0x54, 0x17, 0x2c, 0x3d, 0xe4, 0x90, 0x3f, 0x83, 0x8c, 0x3e, 0x9b, 0x55,
0x14, 0x14, 0x59, 0x38, 0x7a, 0xf7, 0x26, 0xc6, 0xd9, 0x4c, 0xfe, 0x21, 0x6c, 0xba, 0x38, 0x67,
0x4c, 0x2b, 0xfb, 0x64, 0x9d, 0xef, 0xdd, 0x40, 0xdf, 0x25, 0x42, 0xe5, 0x7f, 0x3e, 0x82, 0x0c,
0x63, 0x2d, 0xc2, 0x86, 0xa5, 0x4f, 0x0d, 0xdf, 0xd7, 0x51, 0xd5, 0xbe, 0xea, 0xb8, 0xaa, 0xd3,
0xa4, 0xbf, 0x02, 0x64, 0xe6, 0x78, 0x1d, 0x32, 0xf4, 0x47, 0x88, 0x84, 0x18, 0x2b, 0xc4, 0xf8,
0x05, 0x64, 0x87, 0x97, 0xdc, 0x3d, 0xd8, 0x86, 0x3f, 0xbc, 0x79, 0xc3, 0x87, 0x55, 0x46, 0x2b,
0xff, 0x18, 0xe0, 0xd2, 0xd0, 0x47, 0x1a, 0xe7, 0x94, 0x69, 0xeb, 0x89, 0x38, 0x8f, 0xd3, 0x95,
0x94, 0xfc, 0x90, 0x69, 0xe8, 0x8a, 0xee, 0x57, 0xe1, 0xe8, 0x60, 0x0d, 0x9b, 0x3a, 0xbb, 0x62,
0x7b, 0xd4, 0xe7, 0xcc, 0xcf, 0x76, 0x12, 0xad, 0xa4, 0x32, 0x5a, 0xf9, 0x29, 0xec, 0x0e, 0x26,
0x73, 0xc3, 0x43, 0xa7, 0xbd, 0x44, 0x9d, 0xa0, 0x17, 0xda, 0x13, 0x76, 0x5d, 0xee, 0x93, 0x8c,
0x1f, 0xdc, 0x20, 0xa3, 0x1a, 0x10, 0xab, 0x43, 0xcf, 0x7c, 0x69, 0x7a, 0x6f, 0xd0, 0x35, 0x4a,
0x0b, 0x61, 0x53, 0xd3, 0x1d, 0x56, 0xde, 0x21, 0x31, 0x9f, 0xaf, 0xd9, 0xca, 0xb1, 0x60, 0xba,
0x40, 0x1e, 0xf9, 0x09, 0x6c, 0x0e, 0x51, 0xf3, 0x8e, 0x4e, 0x6e, 0x5f, 0x38, 0xfa, 0x68, 0x9d,
0xca, 0x88, 0x98, 0xe9, 0x6b, 0x38, 0x9b, 0x93, 0xab, 0xaf, 0xd7, 0x57, 0x75, 0x36, 0x97, 0x7f,
0x02, 0xf0, 0x62, 0xa2, 0xbb, 0x97, 0x13, 0x73, 0x7c, 0xe9, 0xd1, 0x55, 0x2a, 0x1c, 0xfd, 0xf6,
0x1a, 0xbe, 0x93, 0x80, 0x81, 0xd8, 0x6d, 0xf4, 0x69, 0x8c, 0x43, 0xd6, 0x88, 0xc2, 0x5d, 0x02,
0xf6, 0x80, 0x41, 0x3e, 0x05, 0x89, 0x5d, 0xba, 0x69, 0x58, 0xe9, 0xca, 0xdb, 0x28, 0xfd, 0x47,
0x90, 0xb3, 0x0c, 0xef, 0x95, 0xed, 0x5c, 0x51, 0x74, 0x2d, 0x1c, 0x7d, 0xbc, 0x66, 0x13, 0x4d,
0x4e, 0x2d, 0x57, 0xa1, 0x34, 0xb3, 0x5f, 0x61, 0x24, 0xc4, 0x70, 0xa8, 0x99, 0xec, 0x76, 0xe5,
0x88, 0xff, 0xb3, 0x35, 0xfc, 0x6d, 0xc6, 0xd4, 0x77, 0x8d, 0x06, 0xb2, 0xb0, 0xd5, 0x31, 0xd5,
0x0c, 0x0d, 0xd7, 0xc5, 0x08, 0x9d, 0x49, 0xb0, 0x7a, 0x9b, 0x53, 0xcb, 0xc7, 0xb0, 0xed, 0x62,
0xd0, 0x1e, 0x61, 0xbc, 0x1e, 0x69, 0xbf, 0xb0, 0x07, 0x18, 0x55, 0x33, 0x09, 0x16, 0xef, 0x0a,
0x9e, 0xdf, 0xb3, 0x07, 0xcc, 0x53, 0x5c, 0xc3, 0x72, 0x31, 0x34, 0xe5, 0x89, 0x79, 0x9d, 0xa7,
0x74, 0x89, 0x98, 0xdd, 0x4b, 0x46, 0x60, 0x50, 0x72, 0xa1, 0xc0, 0x5d, 0x38, 0xfa, 0x64, 0x1d,
0x2b, 0x63, 0xe8, 0x21, 0x3d, 0x06, 0xa3, 0x0d, 0xf7, 0x8d, 0x35, 0xc4, 0xe0, 0xce, 0x96, 0xfc,
0x60, 0x1d, 0x1f, 0x92, 0xb2, 0xb3, 0x52, 0xca, 0xd1, 0x7d, 0x9b, 0x61, 0x26, 0x48, 0x72, 0x56,
0xd4, 0xf1, 0xc2, 0xcc, 0x5f, 0xc2, 0xd6, 0x4b, 0x73, 0xe0, 0xe8, 0x98, 0xf4, 0x31, 0xbf, 0xb1,
0x2d, 0x7f, 0x7f, 0x0d, 0xfb, 0x33, 0x9f, 0x9c, 0x05, 0x86, 0x97, 0xe6, 0xc8, 0xb0, 0x29, 0x33,
0xac, 0x0f, 0x0c, 0xcf, 0x18, 0x2d, 0x5b, 0xef, 0x95, 0x7e, 0x65, 0x60, 0x26, 0xbe, 0xc2, 0xdc,
0x99, 0x49, 0xb0, 0xde, 0x73, 0x9f, 0x5c, 0xfe, 0x5d, 0x28, 0x32, 0xd6, 0xf9, 0x0c, 0x53, 0x8b,
0xee, 0x4c, 0x31, 0xaf, 0x30, 0xf6, 0x4f, 0x13, 0xb0, 0xcf, 0x67, 0x2a, 0xe3, 0x60, 0x3a, 0x7e,
0x65, 0xbe, 0x30, 0x29, 0x37, 0xaf, 0xd7, 0xf1, 0x73, 0x24, 0x95, 0x4f, 0xa0, 0xcc, 0x58, 0xc2,
0xd7, 0x69, 0xff, 0x2d, 0xae, 0x93, 0xe2, 0x40, 0x96, 0x47, 0xef, 0x24, 0x99, 0x23, 0x9e, 0x2c,
0x32, 0x44, 0x7b, 0xdb, 0xc8, 0xad, 0xfc, 0x5d, 0x8a, 0x25, 0xab, 0x2b, 0x9e, 0x7a, 0x99, 0x16,
0x5c, 0x5a, 0x35, 0x2d, 0x7f, 0x0d, 0x39, 0xf4, 0x01, 0x86, 0x77, 0x70, 0xc1, 0x24, 0x4a, 0x44,
0x29, 0xe8, 0xe5, 0xc4, 0xa1, 0x74, 0x20, 0xe7, 0x7f, 0xc6, 0xce, 0x12, 0x05, 0x77, 0x53, 0x86,
0xe2, 0xd2, 0xb4, 0x5c, 0x09, 0xef, 0x13, 0x9b, 0x70, 0xe9, 0x20, 0x69, 0x59, 0x82, 0xad, 0x89,
0x3e, 0xb7, 0xf0, 0xca, 0xb9, 0x74, 0x9a, 0xb4, 0xf2, 0x10, 0xb2, 0x3c, 0x6f, 0xa0, 0x0c, 0xcf,
0xf6, 0x10, 0xa4, 0x2d, 0x64, 0xf0, 0x2d, 0x23, 0x5a, 0x20, 0x34, 0xc3, 0x45, 0x2a, 0xff, 0x96,
0x82, 0xed, 0x68, 0x78, 0x47, 0x78, 0x37, 0x98, 0x20, 0xa6, 0x1b, 0xea, 0x56, 0x8c, 0x99, 0x60,
0x64, 0x30, 0xb7, 0x90, 0x92, 0x95, 0xef, 0xc3, 0x9d, 0xe8, 0xb8, 0x36, 0x18, 0xfb, 0xf9, 0xfa,
0x7b, 0x70, 0x3f, 0x98, 0xc2, 0xfb, 0x35, 0x8f, 0x6c, 0x89, 0x83, 0xd3, 0x0f, 0xe1, 0x9d, 0x6b,
0x49, 0x98, 0xa0, 0x2c, 0x51, 0x3d, 0x80, 0xbb, 0x01, 0x95, 0x63, 0xb8, 0x73, 0x44, 0x45, 0x7c,
0x0b, 0x2c, 0xaa, 0x66, 0x95, 0x47, 0xb0, 0xe9, 0x27, 0x9a, 0xa4, 0x47, 0x3f, 0x83, 0x0c, 0x4b,
0x33, 0xe8, 0x23, 0x74, 0xf9, 0x7d, 0x6a, 0x9f, 0x96, 0x01, 0x66, 0x42, 0x2a, 0xc1, 0x38, 0x37,
0x01, 0x42, 0x32, 0x1e, 0x94, 0xa7, 0x3a, 0x1b, 0x24, 0x3b, 0x28, 0x8f, 0x01, 0x42, 0x89, 0x27,
0xe9, 0xfa, 0x8c, 0x6b, 0x91, 0x6f, 0x92, 0x72, 0x7d, 0xb7, 0x01, 0x39, 0x91, 0x21, 0x90, 0x67,
0x6a, 0x0f, 0x4c, 0xd4, 0xca, 0xe0, 0x0d, 0xe2, 0x48, 0xcd, 0x79, 0xed, 0xf3, 0xc4, 0x27, 0xbc,
0xd7, 0xfe, 0xf6, 0xb1, 0x3c, 0xa0, 0x5b, 0x18, 0xd0, 0x67, 0x56, 0x0c, 0x23, 0x35, 0x79, 0x13,
0x33, 0xab, 0x2f, 0x66, 0xa6, 0x0f, 0xaf, 0x0c, 0x8f, 0x38, 0xb2, 0xd7, 0x4c, 0x21, 0xd7, 0xa6,
0x58, 0x9c, 0x84, 0x85, 0x78, 0x72, 0x2b, 0x27, 0x90, 0x63, 0x8b, 0x26, 0xde, 0x83, 0x7b, 0xbe,
0x30, 0x8a, 0xc0, 0x46, 0x48, 0x07, 0x79, 0x22, 0xd8, 0x87, 0x9d, 0x28, 0x01, 0xd7, 0x08, 0x08,
0x93, 0x0c, 0xbc, 0xc5, 0x89, 0x0a, 0xe4, 0x2d, 0xe1, 0x41, 0x5c, 0xa7, 0x48, 0x83, 0x0b, 0x31,
0x7e, 0xfc, 0xe3, 0x62, 0xb6, 0x85, 0x0f, 0xd3, 0xee, 0x22, 0x53, 0xbc, 0x94, 0xc0, 0x2b, 0x11,
0x51, 0xe7, 0x60, 0xcc, 0x16, 0x2a, 0x93, 0xcc, 0x15, 0x73, 0xb8, 0x9e, 0x44, 0x73, 0x15, 0x90,
0x42, 0x6a, 0xe5, 0x5c, 0x77, 0x56, 0xcf, 0x20, 0x8f, 0x4c, 0x33, 0x58, 0x7b, 0xc5, 0x14, 0xcb,
0xf9, 0x76, 0xae, 0x9f, 0x45, 0xde, 0x5d, 0xb1, 0x97, 0x88, 0x82, 0x39, 0xe7, 0xdd, 0xeb, 0xe6,
0x90, 0x8f, 0x65, 0x9c, 0x8c, 0xf2, 0x29, 0x14, 0x23, 0xa0, 0x01, 0x69, 0xb1, 0xa2, 0x9d, 0xcd,
0x3d, 0x4c, 0xfd, 0xc2, 0xdb, 0x2f, 0xb9, 0x6b, 0x29, 0x7f, 0x91, 0x82, 0x9c, 0xc0, 0x08, 0xd1,
0xb0, 0x85, 0x57, 0x26, 0x7c, 0x91, 0x82, 0xa8, 0x85, 0x67, 0x8d, 0x5e, 0x25, 0xbf, 0x58, 0x4d,
0xb3, 0xd3, 0x2c, 0x20, 0x5a, 0x2c, 0x2c, 0x84, 0xa3, 0x1d, 0x77, 0x39, 0x5c, 0x4d, 0xb7, 0x1c,
0xd7, 0xf7, 0x32, 0x56, 0xa6, 0x39, 0x78, 0xe7, 0x30, 0xf4, 0x91, 0x77, 0x29, 0x7f, 0x00, 0xc5,
0x08, 0xf8, 0x58, 0x8a, 0xa9, 0xf1, 0xeb, 0x95, 0x8e, 0x5e, 0xaf, 0x60, 0x4b, 0x03, 0xd4, 0xd0,
0xca, 0x2d, 0x91, 0xd9, 0x42, 0xb3, 0x9c, 0x2f, 0x4b, 0xe1, 0xe7, 0xaf, 0x52, 0xb0, 0xe9, 0xc3,
0x17, 0xdc, 0xb7, 0x35, 0x9f, 0x0e, 0x30, 0xc1, 0xa5, 0xc8, 0x7b, 0x92, 0x2e, 0xbd, 0x4a, 0xf8,
0x06, 0x49, 0xc0, 0x99, 0xa5, 0xd0, 0xc9, 0x83, 0xe2, 0x07, 0xb0, 0x1f, 0xe2, 0x59, 0x22, 0xda,
0x24, 0xf3, 0xfe, 0x7b, 0x0a, 0xf2, 0x0b, 0x7c, 0x74, 0x9d, 0xd2, 0x53, 0xfe, 0xf9, 0xa5, 0xa5,
0x3b, 0x48, 0xbb, 0xa5, 0x9a, 0x07, 0x37, 0x32, 0xd4, 0x99, 0x92, 0x97, 0x4c, 0x89, 0x11, 0xc4,
0xb3, 0x67, 0xab, 0x42, 0x7b, 0x68, 0x31, 0x3f, 0x57, 0x2e, 0x9d, 0xe2, 0x5d, 0xd8, 0x63, 0xcc,
0xee, 0xc4, 0x30, 0x66, 0x58, 0xd7, 0xc6, 0x0f, 0x70, 0xad, 0x51, 0x72, 0x74, 0x3c, 0x0f, 0x36,
0x08, 0xc5, 0xfd, 0xdf, 0x1a, 0xfc, 0xaf, 0x53, 0x50, 0x8c, 0x00, 0xc0, 0x6f, 0x42, 0xcb, 0x97,
0x8e, 0x1e, 0xdd, 0x02, 0x3b, 0x1e, 0x36, 0x91, 0x2f, 0x16, 0xe7, 0x0f, 0xbe, 0x86, 0x0d, 0x1a,
0xce, 0x43, 0xb6, 0xd5, 0x3b, 0xab, 0x77, 0xa4, 0xdf, 0x92, 0x01, 0x36, 0x8f, 0xfb, 0xbd, 0x5e,
0xab, 0x29, 0xa5, 0xd8, 0x70, 0xaf, 0xd5, 0xaf, 0x9e, 0x49, 0x69, 0xf9, 0x0e, 0x6c, 0xab, 0xd5,
0x6a, 0xbd, 0xdb, 0x6d, 0x1c, 0x37, 0xce, 0x1b, 0xbd, 0x9f, 0x4b, 0x19, 0xe5, 0x08, 0xb6, 0x02,
0x74, 0x99, 0x34, 0xb1, 0x20, 0x74, 0xe0, 0xc8, 0x32, 0x29, 0xc3, 0x7f, 0x64, 0x60, 0x2b, 0xc0,
0x94, 0x4b, 0xa1, 0xe0, 0xc5, 0x7c, 0xb2, 0xac, 0x7b, 0x3c, 0x02, 0x8d, 0x87, 0x0d, 0x70, 0x00,
0x0a, 0x1f, 0x9b, 0x3b, 0x8e, 0x81, 0xc8, 0x61, 0x34, 0x77, 0x78, 0xe7, 0x82, 0xf8, 0xb6, 0x84,
0x83, 0x10, 0xcd, 0x54, 0x7f, 0x1d, 0x9b, 0xcf, 0xd3, 0xfc, 0xfb, 0x50, 0xe1, 0xeb, 0xd1, 0xbe,
0xa3, 0x14, 0x25, 0xa2, 0xc0, 0xe8, 0x3e, 0xc3, 0x58, 0x62, 0x2e, 0xc1, 0x0f, 0x72, 0x5d, 0x31,
0xb5, 0x30, 0x70, 0x5a, 0xfe, 0x08, 0x1e, 0x04, 0xc3, 0x2b, 0xb7, 0x06, 0x24, 0x18, 0xf1, 0x8d,
0x20, 0x5b, 0xde, 0x5d, 0x41, 0x5c, 0xd2, 0x60, 0xed, 0x15, 0x1b, 0x2c, 0x2f, 0x32, 0x82, 0x35,
0xb2, 0x5f, 0xc5, 0xbc, 0x3f, 0xcd, 0x00, 0x8a, 0x3f, 0xc3, 0xb7, 0xc7, 0x93, 0x29, 0xde, 0x2c,
0x31, 0xba, 0x72, 0x77, 0x45, 0xa1, 0x18, 0x9f, 0x6a, 0x79, 0x73, 0xdb, 0x44, 0x81, 0xea, 0x17,
0xeb, 0xae, 0xd8, 0x9b, 0xe4, 0xe7, 0x87, 0x42, 0x18, 0xfd, 0x47, 0x6d, 0x1d, 0xf1, 0x8a, 0xac,
0xf2, 0x97, 0x69, 0xd8, 0x20, 0xc0, 0x2f, 0x6c, 0x42, 0x59, 0x87, 0xf9, 0xc8, 0x92, 0x3f, 0x31,
0x8c, 0x15, 0x45, 0x99, 0x69, 0x81, 0x2d, 0x9c, 0xb9, 0x65, 0x45, 0x23, 0x41, 0x46, 0x38, 0x50,
0x08, 0x7c, 0x72, 0xfb, 0x29, 0x50, 0x32, 0x47, 0x93, 0x78, 0x54, 0x11, 0x01, 0xab, 0xe8, 0xbc,
0x8e, 0x6b, 0x54, 0xcc, 0x78, 0xaf, 0x63, 0xb1, 0x84, 0xcf, 0xdc, 0x65, 0x95, 0x6f, 0x18, 0xc8,
0x6e, 0x51, 0x10, 0x46, 0xfc, 0xb9, 0x1a, 0xc4, 0x06, 0x2e, 0x78, 0x2d, 0x80, 0x25, 0x4f, 0x51,
0xfe, 0x35, 0x05, 0xf2, 0x8a, 0xfe, 0xc0, 0xde, 0xd2, 0xf6, 0x39, 0xd6, 0xde, 0x8d, 0x6d, 0x3d,
0x4d, 0xa3, 0x77, 0x20, 0xbf, 0xc8, 0xc8, 0xbc, 0xe5, 0xab, 0x42, 0x9a, 0x10, 0x1b, 0xab, 0x3f,
0x9e, 0xdc, 0xaa, 0x98, 0x3a, 0xec, 0xbd, 0x3e, 0x37, 0x5e, 0x1a, 0x13, 0xe5, 0x33, 0xc8, 0xf9,
0x9f, 0xcc, 0x9c, 0x13, 0xf6, 0xe1, 0x27, 0x2f, 0xd1, 0xe6, 0x5c, 0x6c, 0x41, 0xf9, 0xf5, 0x97,
0x98, 0xea, 0x28, 0xa1, 0xcb, 0x5f, 0x41, 0xce, 0x5f, 0x8f, 0xc8, 0x6f, 0x6e, 0xb0, 0x70, 0x1e,
0x31, 0x26, 0x5f, 0x60, 0xcd, 0xc0, 0x3f, 0xb5, 0x11, 0xd6, 0x1d, 0x97, 0xba, 0x33, 0xe6, 0x65,
0x5b, 0xe1, 0xe8, 0x28, 0xb1, 0x94, 0x9a, 0xe0, 0x94, 0xeb, 0xb0, 0x2d, 0xc4, 0xf1, 0xfd, 0x67,
0x48, 0xd4, 0x61, 0x62, 0x51, 0xfc, 0xf8, 0x17, 0x50, 0x5e, 0xb4, 0xc8, 0xa8, 0x0b, 0xe1, 0x6b,
0xf6, 0x51, 0x02, 0x41, 0x82, 0x91, 0x92, 0x2d, 0xf9, 0x92, 0x0a, 0x05, 0xbe, 0x3f, 0x94, 0x65,
0xcc, 0x10, 0xe2, 0x65, 0xd6, 0xb4, 0xdb, 0x7c, 0x51, 0x55, 0x62, 0xea, 0x22, 0x8f, 0xdc, 0x83,
0xbb, 0xbe, 0x08, 0x32, 0x84, 0x63, 0x4c, 0x75, 0x93, 0xba, 0xbf, 0xbc, 0x05, 0xf8, 0x24, 0xa9,
0x30, 0x96, 0xfc, 0x3b, 0x82, 0x59, 0x6e, 0x40, 0x79, 0xa4, 0x7b, 0x3a, 0x2b, 0xc7, 0x2d, 0x63,
0xc8, 0x2e, 0x3c, 0xde, 0x9a, 0x84, 0xe7, 0xac, 0x21, 0x63, 0x35, 0xe0, 0x93, 0x4f, 0xa1, 0x14,
0x18, 0x90, 0x1f, 0x73, 0x87, 0x24, 0x3d, 0x4c, 0x20, 0x49, 0xf0, 0xd1, 0x49, 0xbf, 0x85, 0xca,
0x42, 0x50, 0xec, 0xb0, 0xbc, 0xf5, 0xf6, 0x3b, 0xb7, 0x10, 0x19, 0x3d, 0x6f, 0x0b, 0xa4, 0xf1,
0xc4, 0x1e, 0xe0, 0xcd, 0x0c, 0xcc, 0xeb, 0xb7, 0x2f, 0x7f, 0xb8, 0x5e, 0xe6, 0x29, 0x71, 0x06,
0xe6, 0x25, 0xcb, 0x76, 0x60, 0x3f, 0x2e, 0x30, 0xdc, 0xdb, 0xd8, 0x7b, 0x9b, 0x56, 0x61, 0x13,
0xee, 0xf9, 0x32, 0x97, 0x5a, 0x8f, 0xf7, 0xde, 0x46, 0x1e, 0x5a, 0xc6, 0x97, 0x17, 0xed, 0x40,
0x3e, 0x4c, 0x7a, 0x64, 0x51, 0x68, 0xa2, 0x1b, 0xfb, 0x82, 0xa8, 0xed, 0x73, 0x77, 0x6d, 0xd7,
0x38, 0x22, 0x85, 0xd2, 0xc1, 0x05, 0xec, 0x85, 0x44, 0x84, 0x8f, 0x56, 0x79, 0x9b, 0xa3, 0xa1,
0xff, 0x5e, 0x19, 0x8e, 0x65, 0x4c, 0xb4, 0xa0, 0x0b, 0x96, 0x4b, 0xea, 0xbf, 0x4f, 0x89, 0x31,
0x80, 0x2e, 0x8f, 0x61, 0x83, 0x7a, 0xe1, 0x5b, 0x6b, 0xbb, 0xb3, 0x3e, 0x3f, 0xb5, 0x49, 0x4e,
0x96, 0xba, 0xb3, 0xbc, 0xc7, 0x99, 0x20, 0xe0, 0x44, 0x6a, 0xad, 0x73, 0x04, 0x26, 0x81, 0x1c,
0x77, 0x3e, 0x9d, 0xea, 0x18, 0x4c, 0x21, 0xa9, 0x67, 0x0a, 0x51, 0x5d, 0xce, 0xc8, 0x82, 0xaa,
0x3b, 0x74, 0x0c, 0xc3, 0xd2, 0x06, 0x0e, 0x6b, 0x46, 0x58, 0xac, 0xf1, 0xcb, 0xdb, 0x83, 0x09,
0x82, 0x6a, 0x97, 0x58, 0x8f, 0x03, 0x4e, 0x74, 0xf2, 0x5d, 0xd7, 0x1c, 0x5b, 0xec, 0x25, 0x10,
0x73, 0x5b, 0x90, 0x91, 0xfd, 0xbe, 0xdf, 0xe3, 0x04, 0x12, 0x89, 0xbb, 0xeb, 0x33, 0x53, 0xfd,
0x81, 0x96, 0x13, 0x32, 0x3d, 0xc4, 0x2d, 0x63, 0xbc, 0x88, 0xdb, 0x49, 0x2d, 0xe7, 0x8b, 0xf3,
0xf9, 0x58, 0xcc, 0xf7, 0xab, 0x75, 0xc7, 0xd0, 0x5d, 0x7a, 0xf9, 0x4b, 0x68, 0x02, 0x0e, 0x67,
0x3a, 0xc4, 0xc5, 0x4e, 0x49, 0x3e, 0x19, 0xdf, 0x16, 0xef, 0x20, 0x27, 0x38, 0x25, 0x73, 0xf0,
0xd8, 0xd6, 0x30, 0x6a, 0x73, 0x99, 0xf3, 0xd9, 0x6c, 0x62, 0xe2, 0xf9, 0x3d, 0x3f, 0x9b, 0xdc,
0x59, 0x9b, 0xa7, 0xc3, 0x42, 0x03, 0x6e, 0x4a, 0x29, 0xf2, 0x4f, 0x01, 0xb8, 0x54, 0x12, 0x55,
0x5e, 0xdb, 0xa5, 0x0e, 0x8b, 0x62, 0x2c, 0xca, 0x7f, 0xa7, 0x21, 0x27, 0x12, 0x30, 0x7b, 0x35,
0xa5, 0x36, 0x23, 0x07, 0x53, 0x1c, 0x93, 0xb1, 0x2e, 0x9b, 0x9f, 0x46, 0x51, 0xa7, 0x93, 0x38,
0x34, 0xdb, 0x87, 0x1d, 0x31, 0x3d, 0x9f, 0xc5, 0xc1, 0x19, 0x4e, 0x72, 0x0c, 0x19, 0xe5, 0x0c,
0x7a, 0x49, 0x7c, 0x32, 0xcc, 0x97, 0x15, 0x6b, 0xfa, 0x1b, 0x89, 0xc1, 0xc4, 0xcd, 0x05, 0xb2,
0x22, 0x9f, 0xb6, 0x5f, 0xbc, 0x88, 0xc9, 0xe6, 0x58, 0x18, 0xcb, 0x83, 0x10, 0x45, 0x78, 0x01,
0xde, 0x5f, 0xfa, 0x18, 0xde, 0x35, 0x5c, 0x1c, 0xd4, 0x59, 0x43, 0x43, 0xec, 0x7f, 0xa8, 0xcf,
0xf4, 0x21, 0x86, 0x12, 0x42, 0x52, 0x1c, 0xc3, 0x7d, 0x02, 0xef, 0x4f, 0x4d, 0x0b, 0xf1, 0x83,
0x8e, 0x01, 0x62, 0x05, 0xe5, 0x1c, 0x29, 0x21, 0xa0, 0x44, 0x40, 0x7d, 0x23, 0x25, 0x81, 0x7f,
0xe5, 0xcf, 0x53, 0x20, 0x2d, 0x81, 0x15, 0x54, 0xfd, 0x84, 0x2e, 0xfd, 0x80, 0x1e, 0xa7, 0x52,
0xa2, 0x8f, 0x85, 0xe6, 0x0e, 0x06, 0xb9, 0xc2, 0x11, 0x7f, 0x89, 0xa3, 0x59, 0x61, 0x0c, 0x2c,
0x4e, 0xeb, 0x6b, 0x97, 0xc1, 0x34, 0xd2, 0x2e, 0x3b, 0x4c, 0x56, 0x14, 0xcd, 0xc1, 0x90, 0x16,
0x62, 0xe0, 0x3d, 0x81, 0xaf, 0x82, 0x1f, 0x1e, 0x70, 0xdc, 0x13, 0x38, 0xc3, 0x02, 0xfc, 0x51,
0x65, 0x24, 0x8a, 0x0b, 0x3e, 0xcc, 0x0b, 0xbf, 0x7f, 0x48, 0x41, 0x29, 0x8a, 0x75, 0xe4, 0x6a,
0xa4, 0xf8, 0x7d, 0x72, 0x5b, 0xac, 0xc4, 0x2b, 0xe0, 0x25, 0xac, 0x19, 0x2f, 0xd6, 0x0f, 0xbe,
0xf0, 0x8b, 0xe2, 0x22, 0x6c, 0x35, 0x9a, 0x6a, 0xb5, 0xd7, 0x78, 0x56, 0xc7, 0xba, 0x38, 0x07,
0x99, 0xf3, 0xd6, 0x73, 0x2c, 0x8a, 0xb1, 0x40, 0xbe, 0xa8, 0xd7, 0x1a, 0xfd, 0x0b, 0xac, 0x8a,
0xb7, 0x60, 0xe3, 0xac, 0x71, 0x7a, 0x86, 0xc5, 0xf0, 0xaf, 0xd2, 0x00, 0x21, 0x3c, 0x15, 0x59,
0x25, 0x28, 0x6c, 0x43, 0xe7, 0x93, 0x9f, 0xc2, 0x36, 0xe2, 0x90, 0xd9, 0x44, 0x7f, 0xe3, 0x5f,
0xb4, 0x0c, 0x9d, 0xea, 0x71, 0x22, 0xf0, 0xc1, 0xd8, 0xf8, 0x99, 0xb8, 0x66, 0x10, 0x50, 0xf2,
0xf8, 0xee, 0xea, 0x2f, 0x0d, 0xfe, 0x8e, 0xbf, 0x91, 0x54, 0x1c, 0x45, 0xf7, 0x2e, 0xf2, 0x5d,
0x20, 0xdb, 0x21, 0xfb, 0x47, 0x3e, 0x86, 0x3c, 0x55, 0x0b, 0x24, 0x28, 0x4b, 0x82, 0x12, 0x64,
0xf3, 0x06, 0xb2, 0x04, 0x32, 0x94, 0x0f, 0x60, 0x67, 0x15, 0x24, 0xc4, 0xb2, 0x6e, 0x1e, 0x94,
0x1f, 0xca, 0x3f, 0xa6, 0xa1, 0x14, 0x03, 0x7a, 0xb7, 0x36, 0x72, 0x94, 0x3f, 0xa9, 0x91, 0xff,
0x29, 0xe5, 0x5b, 0x19, 0x4d, 0xd8, 0x6c, 0x35, 0x99, 0x85, 0xf1, 0xeb, 0xb4, 0xdd, 0xe9, 0xa2,
0x89, 0xf1, 0xab, 0x5e, 0x3b, 0xad, 0x73, 0x03, 0xf7, 0x2f, 0x7a, 0x5d, 0x29, 0xc3, 0xbe, 0xaa,
0xb5, 0x0b, 0x55, 0xda, 0x60, 0x0e, 0x50, 0x7f, 0x56, 0x6b, 0x69, 0x8f, 0xa4, 0x6c, 0xf0, 0xad,
0x4a, 0x9b, 0xb8, 0x42, 0x1e, 0x05, 0x69, 0x3f, 0xd3, 0x3a, 0xbd, 0x9e, 0x94, 0x63, 0xcd, 0x93,
0xb3, 0x6e, 0xad, 0xad, 0x4a, 0x5b, 0xfc, 0xb3, 0x8f, 0x9f, 0x79, 0xf2, 0x98, 0x2e, 0x7e, 0x01,
0xfb, 0x6a, 0xd4, 0xea, 0x4d, 0xa9, 0x10, 0x08, 0x39, 0x96, 0x8a, 0xe4, 0x66, 0xbd, 0xba, 0xb4,
0xcd, 0x78, 0xea, 0x67, 0x9d, 0x76, 0x4d, 0x2a, 0x71, 0xf6, 0xb6, 0xda, 0x96, 0xca, 0x8b, 0x46,
0x8d, 0xa4, 0xfc, 0x59, 0x1a, 0xb6, 0xa3, 0xd0, 0xf6, 0x37, 0x4e, 0xf7, 0x31, 0xec, 0x5d, 0x03,
0xcd, 0xa3, 0x7e, 0xd7, 0x82, 0x62, 0xf8, 0x40, 0x07, 0x3f, 0x85, 0x2c, 0x3f, 0x13, 0xea, 0xf7,
0xa2, 0xf1, 0xb3, 0x7a, 0x0d, 0xdd, 0x61, 0x13, 0xd2, 0xd4, 0x04, 0x43, 0x8b, 0xb4, 0x4e, 0x4e,
0xb8, 0x2f, 0xd4, 0x5a, 0xdf, 0xd6, 0xd1, 0x17, 0x24, 0x64, 0xc7, 0x2f, 0xad, 0xdb, 0xef, 0xb6,
0xeb, 0xcd, 0x9a, 0xb4, 0xa1, 0xfc, 0x69, 0x0a, 0xca, 0x31, 0x00, 0xcf, 0x52, 0xca, 0x02, 0xb5,
0xaf, 0xa8, 0xbe, 0x29, 0xa5, 0x2c, 0x28, 0x96, 0xea, 0xf0, 0xd8, 0x7c, 0xa4, 0x91, 0x10, 0xe4,
0xc2, 0xc5, 0xfc, 0xa2, 0x62, 0xe7, 0xaf, 0x74, 0x7f, 0x88, 0xfe, 0x11, 0x05, 0xd8, 0xff, 0x5f,
0x5e, 0x72, 0x62, 0x6f, 0x31, 0xf9, 0x55, 0x6f, 0x31, 0xbc, 0x1b, 0xf2, 0x2f, 0x29, 0x80, 0x50,
0x79, 0x20, 0x5e, 0x5f, 0x6c, 0x6b, 0x95, 0x29, 0x68, 0x6a, 0xb9, 0x27, 0x94, 0xf6, 0x5f, 0x8f,
0x76, 0x68, 0x3e, 0x66, 0xc7, 0x4c, 0xd0, 0xd0, 0x79, 0xe0, 0xcb, 0x8e, 0x98, 0x71, 0x63, 0x69,
0x3a, 0x62, 0xc5, 0x45, 0x0b, 0x49, 0x81, 0x12, 0x3f, 0x6b, 0x60, 0xc4, 0xa0, 0x89, 0xa4, 0x7c,
0x8d, 0x79, 0xc8, 0xf7, 0xf2, 0x83, 0x87, 0xb0, 0x41, 0x97, 0xa5, 0x00, 0xb9, 0x66, 0x4b, 0xab,
0xa9, 0x3d, 0x15, 0x3d, 0x35, 0x70, 0xda, 0x94, 0xef, 0xb4, 0x69, 0xe1, 0xb4, 0x19, 0xe5, 0x97,
0x50, 0x8a, 0x55, 0x22, 0xd1, 0xc6, 0xda, 0xda, 0x48, 0xc9, 0x80, 0xd3, 0xea, 0xe6, 0xdf, 0x86,
0xe8, 0x79, 0x2e, 0x77, 0xfd, 0x08, 0x1c, 0x28, 0xbf, 0xc2, 0x1b, 0x43, 0x65, 0x0c, 0xfa, 0x69,
0x80, 0x2f, 0x56, 0x3c, 0x06, 0xec, 0x86, 0x70, 0x55, 0x7c, 0x33, 0x0a, 0xc8, 0xb3, 0x4b, 0xdb,
0x32, 0xa2, 0x9c, 0x62, 0x67, 0x2b, 0xcc, 0xb9, 0x50, 0xf9, 0xc1, 0xb5, 0x26, 0xcd, 0x86, 0x69,
0x16, 0x37, 0x28, 0x22, 0x67, 0xd1, 0xc4, 0xdb, 0x5f, 0xbe, 0x36, 0xb9, 0x6b, 0x27, 0x85, 0x93,
0xd2, 0xe4, 0xfd, 0xf8, 0xf5, 0xc9, 0x5f, 0x33, 0xe5, 0x3b, 0x2c, 0x9f, 0x7a, 0x0f, 0xee, 0xf1,
0x9e, 0xa6, 0x6f, 0xb1, 0xd0, 0xa6, 0x0a, 0xa2, 0x99, 0x2d, 0x5a, 0xbd, 0x2b, 0x68, 0x8a, 0xeb,
0x5e, 0x3b, 0xb7, 0x89, 0x80, 0x81, 0xcb, 0x08, 0x81, 0x3e, 0xfa, 0xc5, 0xdc, 0xf5, 0x22, 0xaf,
0x2e, 0x25, 0xe1, 0x00, 0xa6, 0x85, 0x81, 0x77, 0x49, 0x50, 0x59, 0x08, 0x42, 0x98, 0x29, 0x3c,
0x17, 0x9d, 0x53, 0x33, 0x2c, 0x7d, 0x30, 0x89, 0x08, 0x92, 0x84, 0xa5, 0x45, 0x27, 0x88, 0x95,
0xd7, 0x1a, 0xc6, 0x69, 0x6b, 0x6c, 0xb8, 0xf4, 0x5a, 0x99, 0x96, 0x3f, 0x85, 0x03, 0xff, 0x57,
0x9d, 0x41, 0x1a, 0x58, 0x21, 0x49, 0x16, 0x58, 0xfb, 0x5a, 0x5a, 0xee, 0xbb, 0x3b, 0x42, 0x0b,
0x0b, 0xba, 0xa8, 0x0f, 0xec, 0x8a, 0x08, 0x1a, 0x25, 0xe0, 0xdc, 0x77, 0x6f, 0x7a, 0x10, 0xde,
0x13, 0x46, 0x88, 0x4e, 0xce, 0xad, 0x2b, 0xcb, 0x7e, 0xc5, 0x5d, 0x88, 0x3a, 0x29, 0x69, 0xf9,
0x11, 0x7c, 0xe2, 0x4b, 0xa7, 0x47, 0xfb, 0x1b, 0x0f, 0x56, 0xa1, 0xdb, 0xf4, 0x39, 0x7c, 0xb8,
0x86, 0x83, 0xef, 0xe1, 0x3e, 0xf5, 0x4d, 0x3f, 0x82, 0x07, 0x71, 0xea, 0xe8, 0x21, 0x15, 0xf1,
0x7a, 0xb0, 0x8a, 0x8c, 0x4b, 0xda, 0x27, 0x49, 0x8f, 0xe1, 0x73, 0xba, 0xc5, 0x49, 0x77, 0xfb,
0x0e, 0x09, 0x3e, 0x84, 0x8f, 0x43, 0x5c, 0x37, 0xd1, 0x3f, 0xa0, 0x80, 0xf0, 0x05, 0x6c, 0x47,
0x12, 0xff, 0xc1, 0x81, 0x1f, 0xce, 0x6e, 0x48, 0xbb, 0xca, 0x1f, 0xa7, 0x63, 0x0f, 0xc7, 0x6a,
0x04, 0x21, 0x7e, 0x71, 0xbb, 0x56, 0x08, 0xc7, 0x87, 0xab, 0xdf, 0x9e, 0xf9, 0x9b, 0xd8, 0xdf,
0x84, 0x90, 0x61, 0xa3, 0x76, 0xee, 0x23, 0xc3, 0x6a, 0xfd, 0xfc, 0x9c, 0xbf, 0x88, 0xb5, 0xcf,
0x18, 0x5c, 0x24, 0x38, 0xf0, 0xbc, 0x71, 0xd2, 0x40, 0x38, 0x80, 0xc0, 0xef, 0xf8, 0xbc, 0x5f,
0xef, 0xb5, 0x10, 0x9a, 0x71, 0x7c, 0xd8, 0xad, 0x76, 0xea, 0x08, 0xed, 0xb2, 0xec, 0x14, 0x6a,
0xbb, 0x8d, 0xe0, 0x90, 0x01, 0xc9, 0x2e, 0xe2, 0xb6, 0x9c, 0x5c, 0x86, 0x42, 0x1f, 0xcb, 0x8a,
0x6a, 0xab, 0xdf, 0xec, 0xe1, 0x89, 0xd9, 0x6f, 0x6d, 0x0b, 0xad, 0x67, 0xf5, 0x8e, 0x18, 0xc8,
0xb3, 0xe0, 0x5e, 0xab, 0x9f, 0xa8, 0xfd, 0xf3, 0x1e, 0xc2, 0xc4, 0x12, 0xc0, 0xc9, 0xb9, 0xda,
0x3d, 0x3b, 0xc7, 0x3a, 0xa3, 0x27, 0x15, 0x94, 0x3f, 0x42, 0xa4, 0x11, 0x6f, 0xc8, 0xd0, 0xf3,
0xe2, 0x8a, 0x82, 0x33, 0x25, 0x42, 0xe8, 0x75, 0x87, 0x65, 0x77, 0x9b, 0x15, 0xa3, 0x23, 0x07,
0x61, 0x52, 0x64, 0x3a, 0x88, 0xfd, 0x64, 0xe0, 0xa5, 0x69, 0x0e, 0x31, 0xfe, 0x1e, 0xcb, 0xce,
0xa5, 0x76, 0x4e, 0x3d, 0x62, 0x9e, 0x1f, 0xdd, 0xbe, 0x21, 0x74, 0x1d, 0x84, 0x3f, 0xf8, 0xf1,
0xc2, 0x30, 0x35, 0xb5, 0xf3, 0x94, 0x17, 0x65, 0xb5, 0xc6, 0x45, 0xac, 0x28, 0x43, 0x1b, 0x71,
0x65, 0x65, 0xe8, 0x31, 0xb3, 0x43, 0xdf, 0x1b, 0xca, 0xf7, 0x41, 0x5e, 0xd1, 0x28, 0x5a, 0xc6,
0xcc, 0xca, 0x3f, 0x63, 0xe5, 0x19, 0x6b, 0xb4, 0xdc, 0xba, 0x28, 0x89, 0xf2, 0x27, 0x2d, 0x4a,
0xce, 0xfc, 0x03, 0xee, 0x40, 0x99, 0xd5, 0x24, 0x5a, 0xab, 0xa3, 0xf5, 0x9b, 0x4f, 0x9b, 0xad,
0xe7, 0x4d, 0xee, 0x84, 0xed, 0x56, 0xab, 0x83, 0x87, 0xc5, 0xc2, 0xf4, 0xa2, 0x55, 0xab, 0x77,
0xd4, 0x9e, 0xef, 0x87, 0xa7, 0xad, 0x56, 0x0d, 0x4f, 0x8b, 0x07, 0x3f, 0xed, 0xd4, 0x55, 0x76,
0xd8, 0x6f, 0xa0, 0x18, 0xe9, 0x3e, 0xdd, 0x32, 0xe9, 0x2b, 0xbf, 0x4e, 0x81, 0xbc, 0xa2, 0xe1,
0x74, 0x1a, 0xd1, 0xc3, 0x97, 0x6f, 0xd3, 0xb4, 0x4a, 0xaa, 0x8b, 0x9f, 0xac, 0xaa, 0xcf, 0x92,
0x2b, 0xe0, 0xbf, 0xd2, 0xb0, 0xb3, 0xaa, 0xb9, 0x75, 0x16, 0x39, 0xc1, 0x57, 0x6f, 0xd5, 0x21,
0x4b, 0x7a, 0x84, 0xff, 0x14, 0x91, 0x04, 0x2f, 0x74, 0xa3, 0xf9, 0x4c, 0x3d, 0x6f, 0xb0, 0x00,
0xc7, 0x8a, 0x87, 0x46, 0xb7, 0xda, 0x6a, 0x36, 0xeb, 0xd5, 0x1e, 0x81, 0xb6, 0x3d, 0x90, 0x1b,
0x78, 0xf5, 0x3b, 0x27, 0x6a, 0xb5, 0xae, 0xe1, 0x9c, 0x7a, 0x7c, 0x8e, 0xe3, 0xe9, 0x48, 0x03,
0x22, 0xc3, 0xfe, 0xea, 0x56, 0xd5, 0x66, 0xb3, 0xd1, 0x3c, 0xc5, 0x20, 0x23, 0x43, 0x49, 0xed,
0x63, 0x25, 0xd8, 0xec, 0x35, 0xaa, 0x6a, 0x8f, 0x8d, 0x65, 0x59, 0x20, 0x51, 0xbb, 0xdd, 0x56,
0xb5, 0xc1, 0x07, 0x36, 0x59, 0xec, 0x10, 0x03, 0x28, 0x30, 0xc7, 0x16, 0x3a, 0x69, 0xf5, 0x3b,
0xda, 0x73, 0xf5, 0xe7, 0xda, 0x99, 0xda, 0xac, 0x75, 0xcf, 0xd4, 0xa7, 0x75, 0x89, 0xfd, 0x17,
0x80, 0xf2, 0x69, 0xa7, 0xd5, 0x6f, 0x87, 0x06, 0xd9, 0x93, 0x6b, 0xbe, 0xda, 0xba, 0x68, 0x9f,
0xd7, 0x19, 0x2f, 0x50, 0x50, 0x6a, 0x75, 0x2e, 0xd4, 0x26, 0x06, 0x21, 0xf6, 0x6b, 0x80, 0x3e,
0x6e, 0xa4, 0xd1, 0x6b, 0xe0, 0xa1, 0xbe, 0xc5, 0xf9, 0xa2, 0xf2, 0x27, 0x69, 0xc8, 0x07, 0x2d,
0xc0, 0x5b, 0xfc, 0x4e, 0x21, 0xde, 0x3d, 0x4c, 0xaa, 0xdc, 0xbf, 0x15, 0xca, 0xf5, 0x13, 0x05,
0x29, 0x16, 0x3f, 0xb4, 0x40, 0x49, 0x29, 0xa6, 0xa4, 0x56, 0x53, 0x43, 0xa0, 0xdc, 0xac, 0xf7,
0x9e, 0xb7, 0x3a, 0x4f, 0xbb, 0x12, 0x2b, 0x1e, 0xca, 0x38, 0x16, 0xb1, 0x00, 0x7b, 0x06, 0x95,
0x70, 0x30, 0x18, 0xd1, 0xba, 0x3d, 0x56, 0xe8, 0xc7, 0x47, 0xdb, 0x47, 0x6d, 0x89, 0xfd, 0x4e,
0x66, 0x37, 0x4e, 0x4b, 0x33, 0x9b, 0x4c, 0x45, 0xdd, 0xd6, 0x49, 0x4f, 0xc3, 0x4a, 0x3d, 0x77,
0xf0, 0xfb, 0x50, 0x8e, 0xff, 0x77, 0x07, 0xd4, 0x5a, 0xb7, 0xd1, 0x44, 0x1b, 0x57, 0xcf, 0xd4,
0xce, 0x29, 0x65, 0x3b, 0xbc, 0x97, 0x18, 0xdc, 0x7b, 0x52, 0x4a, 0x49, 0x6f, 0xa5, 0xd8, 0xcf,
0x8d, 0xaa, 0xfd, 0x4e, 0x07, 0x8d, 0x8a, 0x79, 0x8f, 0x0d, 0x60, 0x09, 0xc4, 0x39, 0xfa, 0xcd,
0xf6, 0x79, 0xff, 0x94, 0xf1, 0x64, 0xd8, 0xc4, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x39,
0xd0, 0x83, 0x70, 0x34, 0x00, 0x00,
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/shuhaihuang/battery-historian.git
git@gitee.com:shuhaihuang/battery-historian.git
shuhaihuang
battery-historian
battery-historian
d2356ba4fd5f

Search