json-bert.js 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773
  1. function clean(r) { for(var k in r) if(!r[k]) delete r[k]; return r; }
  2. function check_len(x) { try { return (eval('len'+utf8_dec(x.v[0].v))() == x.v.length) ? true : false }
  3. catch (e) { return false; } }
  4. function scalar(data) {
  5. var res = undefined;
  6. switch (typeof data) {
  7. case 'string': res = bin(data); break; case 'number': res = number(data); break;
  8. default: console.log('Strange data: ' + data); }
  9. return res; };
  10. function nil() { return {t: 106, v: undefined}; };
  11. function decode(x) {
  12. if (x == undefined) {
  13. return [];
  14. } if (x % 1 === 0) {
  15. return x;
  16. } else if (x.t == 108) {
  17. var r = []; x.v.forEach(function(y) { r.push(decode(y)) }); return r;
  18. } else if (x.t == 109) {
  19. return utf8_dec(x.v);
  20. } else if (x.t == 104 && check_len(x)) {
  21. return eval('dec'+x.v[0].v)(x);
  22. } else if (x.t == 104) {
  23. var r=[]; x.v.forEach(function(a){r.push(decode(a))});
  24. return Object.assign({tup:'$'}, r);
  25. } else return x.v;
  26. }
  27. function encode(x) {
  28. if (Array.isArray(x)) {
  29. var r = []; x.forEach(function(y) { r.push(encode(y)) }); return {t:108,v:r};
  30. } else if (typeof x == 'object') {
  31. switch (x.tup) {
  32. case '$': delete x['tup']; var r=[];
  33. Object.keys(x).map(function(p){return x[p];}).forEach(function(a){r.push(encode(a))});
  34. return {t:104, v:r};
  35. default: return eval('enc'+x.tup)(x); }
  36. } else return scalar(x);
  37. }
  38. function encwriter(d) {
  39. var tup = atom('writer');
  40. var id = 'id' in d && d.id ? encode(d.id) : nil();
  41. var count = 'count' in d && d.count ? number(d.count) : nil();
  42. var cache = 'cache' in d && d.cache ? encode(d.cache) : nil();
  43. var args = 'args' in d && d.args ? encode(d.args) : nil();
  44. var first = 'first' in d && d.first ? encode(d.first) : nil();
  45. return tuple(tup,id,count,cache,args,first); }
  46. function lenwriter() { return 6; }
  47. function decwriter(d) {
  48. var r={}; r.tup = 'writer';
  49. r.id = d && d.v[1] ? decode(d.v[1].v) : undefined;
  50. r.count = d && d.v[2] ? d.v[2].v : undefined;
  51. r.cache = d && d.v[3] ? decode(d.v[3].v) : undefined;
  52. r.args = d && d.v[4] ? decode(d.v[4].v) : undefined;
  53. r.first = d && d.v[5] ? decode(d.v[5].v) : undefined;
  54. return clean(r); }
  55. function encreader(d) {
  56. var tup = atom('reader');
  57. var id = 'id' in d && d.id ? encode(d.id) : nil();
  58. var pos = 'pos' in d && d.pos ? number(d.pos) : nil();
  59. var cache = 'cache' in d && d.cache ? number(d.cache) : nil();
  60. var args = 'args' in d && d.args ? encode(d.args) : nil();
  61. var feed = 'feed' in d && d.feed ? encode(d.feed) : nil();
  62. var dir = 'dir' in d && d.dir ? encode(d.dir) : nil();
  63. return tuple(tup,id,pos,cache,args,feed,dir); }
  64. function lenreader() { return 7; }
  65. function decreader(d) {
  66. var r={}; r.tup = 'reader';
  67. r.id = d && d.v[1] ? decode(d.v[1].v) : undefined;
  68. r.pos = d && d.v[2] ? d.v[2].v : undefined;
  69. r.cache = d && d.v[3] ? d.v[3].v : undefined;
  70. r.args = d && d.v[4] ? decode(d.v[4].v) : undefined;
  71. r.feed = d && d.v[5] ? decode(d.v[5].v) : undefined;
  72. r.dir = d && d.v[6] ? decode(d.v[6]) : undefined;
  73. return clean(r); }
  74. function enccur(d) {
  75. var tup = atom('cur');
  76. var id = 'id' in d && d.id ? encode(d.id) : nil();
  77. var top = 'top' in d && d.top ? number(d.top) : nil();
  78. var bot = 'bot' in d && d.bot ? number(d.bot) : nil();
  79. var dir = 'dir' in d && d.dir ? encode(d.dir) : nil();
  80. var reader = 'reader' in d && d.reader ? encode(d.reader) : nil();
  81. var writer = 'writer' in d && d.writer ? encode(d.writer) : nil();
  82. var args = []; if ('args' in d && d.args)
  83. { d.args.forEach(function(x){
  84. args.push(encode(x))});
  85. args={t:108,v:args}; } else { args = nil() };
  86. return tuple(tup,id,top,bot,dir,reader,writer,args); }
  87. function lencur() { return 8; }
  88. function deccur(d) {
  89. var r={}; r.tup = 'cur';
  90. r.id = d && d.v[1] ? decode(d.v[1].v) : undefined;
  91. r.top = d && d.v[2] ? d.v[2].v : undefined;
  92. r.bot = d && d.v[3] ? d.v[3].v : undefined;
  93. r.dir = d && d.v[4] ? decode(d.v[4]) : undefined;
  94. r.reader = d && d.v[5] ? decode(d.v[5].v) : undefined;
  95. r.writer = d && d.v[6] ? decode(d.v[6].v) : undefined;
  96. r.args = [];
  97. (d && d.v[7] && d.v[7].v) ?
  98. d.v[7].v.forEach(function(x){r.args.push(decode(x))}) :
  99. r.args = undefined;
  100. return clean(r); }
  101. function enciter(d) {
  102. var tup = atom('iter');
  103. var id = 'id' in d && d.id ? number(d.id) : nil();
  104. var container = 'container' in d && d.container ? atom(d.container) : nil();
  105. var feed = 'feed' in d && d.feed ? encode(d.feed) : nil();
  106. var next = 'next' in d && d.next ? number(d.next) : nil();
  107. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  108. return tuple(tup,id,container,feed,next,prev); }
  109. function leniter() { return 6; }
  110. function deciter(d) {
  111. var r={}; r.tup = 'iter';
  112. r.id = d && d.v[1] ? d.v[1].v : undefined;
  113. r.container = d && d.v[2] ? d.v[2].v : undefined;
  114. r.feed = d && d.v[3] ? decode(d.v[3].v) : undefined;
  115. r.next = d && d.v[4] ? d.v[4].v : undefined;
  116. r.prev = d && d.v[5] ? d.v[5].v : undefined;
  117. return clean(r); }
  118. function enccontainer(d) {
  119. var tup = atom('container');
  120. var id = 'id' in d && d.id ? number(d.id) : nil();
  121. var top = 'top' in d && d.top ? number(d.top) : nil();
  122. var rear = 'rear' in d && d.rear ? number(d.rear) : nil();
  123. var count = 'count' in d && d.count ? number(d.count) : nil();
  124. return tuple(tup,id,top,rear,count); }
  125. function lencontainer() { return 5; }
  126. function deccontainer(d) {
  127. var r={}; r.tup = 'container';
  128. r.id = d && d.v[1] ? d.v[1].v : undefined;
  129. r.top = d && d.v[2] ? d.v[2].v : undefined;
  130. r.rear = d && d.v[3] ? d.v[3].v : undefined;
  131. r.count = d && d.v[4] ? d.v[4].v : undefined;
  132. return clean(r); }
  133. function enciterator(d) {
  134. var tup = atom('iterator');
  135. var id = 'id' in d && d.id ? number(d.id) : nil();
  136. var container = 'container' in d && d.container ? atom(d.container) : nil();
  137. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  138. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  139. var next = 'next' in d && d.next ? number(d.next) : nil();
  140. var feeds = []; if ('feeds' in d && d.feeds)
  141. { d.feeds.forEach(function(x){
  142. feeds.push(encode(x))});
  143. feeds={t:108,v:feeds}; } else { feeds = nil() };
  144. return tuple(tup,id,container,feed_id,prev,next,feeds); }
  145. function leniterator() { return 7; }
  146. function deciterator(d) {
  147. var r={}; r.tup = 'iterator';
  148. r.id = d && d.v[1] ? d.v[1].v : undefined;
  149. r.container = d && d.v[2] ? d.v[2].v : undefined;
  150. r.feed_id = d && d.v[3] ? decode(d.v[3].v) : undefined;
  151. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  152. r.next = d && d.v[5] ? d.v[5].v : undefined;
  153. r.feeds = [];
  154. (d && d.v[6] && d.v[6].v) ?
  155. d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) :
  156. r.feeds = undefined;
  157. return clean(r); }
  158. function enclog(d) {
  159. var tup = atom('log');
  160. var id = 'id' in d && d.id ? number(d.id) : nil();
  161. var top = 'top' in d && d.top ? number(d.top) : nil();
  162. var rear = 'rear' in d && d.rear ? number(d.rear) : nil();
  163. var count = 'count' in d && d.count ? number(d.count) : nil();
  164. return tuple(tup,id,top,rear,count); }
  165. function lenlog() { return 5; }
  166. function declog(d) {
  167. var r={}; r.tup = 'log';
  168. r.id = d && d.v[1] ? d.v[1].v : undefined;
  169. r.top = d && d.v[2] ? d.v[2].v : undefined;
  170. r.rear = d && d.v[3] ? d.v[3].v : undefined;
  171. r.count = d && d.v[4] ? d.v[4].v : undefined;
  172. return clean(r); }
  173. function encoperation(d) {
  174. var tup = atom('operation');
  175. var id = 'id' in d && d.id ? number(d.id) : nil();
  176. var container = 'container' in d && d.container ? atom(d.container) : nil();
  177. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  178. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  179. var next = 'next' in d && d.next ? number(d.next) : nil();
  180. var feeds = []; if ('feeds' in d && d.feeds)
  181. { d.feeds.forEach(function(x){
  182. feeds.push(encode(x))});
  183. feeds={t:108,v:feeds}; } else { feeds = nil() };
  184. return tuple(tup,id,container,feed_id,prev,next,feeds); }
  185. function lenoperation() { return 7; }
  186. function decoperation(d) {
  187. var r={}; r.tup = 'operation';
  188. r.id = d && d.v[1] ? d.v[1].v : undefined;
  189. r.container = d && d.v[2] ? d.v[2].v : undefined;
  190. r.feed_id = d && d.v[3] ? decode(d.v[3].v) : undefined;
  191. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  192. r.next = d && d.v[5] ? d.v[5].v : undefined;
  193. r.feeds = [];
  194. (d && d.v[6] && d.v[6].v) ?
  195. d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) :
  196. r.feeds = undefined;
  197. return clean(r); }
  198. function encfeed(d) {
  199. var tup = atom('feed');
  200. var id = 'id' in d && d.id ? number(d.id) : nil();
  201. var top = 'top' in d && d.top ? number(d.top) : nil();
  202. var rear = 'rear' in d && d.rear ? number(d.rear) : nil();
  203. var count = 'count' in d && d.count ? number(d.count) : nil();
  204. return tuple(tup,id,top,rear,count); }
  205. function lenfeed() { return 5; }
  206. function decfeed(d) {
  207. var r={}; r.tup = 'feed';
  208. r.id = d && d.v[1] ? d.v[1].v : undefined;
  209. r.top = d && d.v[2] ? d.v[2].v : undefined;
  210. r.rear = d && d.v[3] ? d.v[3].v : undefined;
  211. r.count = d && d.v[4] ? d.v[4].v : undefined;
  212. return clean(r); }
  213. function encmax_tour(d) {
  214. var tup = atom('max_tour');
  215. var count = 'count' in d && d.count ? number(d.count) : nil();
  216. var joined = 'joined' in d && d.joined ? number(d.joined) : nil();
  217. return tuple(tup,count,joined); }
  218. function lenmax_tour() { return 3; }
  219. function decmax_tour(d) {
  220. var r={}; r.tup = 'max_tour';
  221. r.count = d && d.v[1] ? d.v[1].v : undefined;
  222. r.joined = d && d.v[2] ? d.v[2].v : undefined;
  223. return clean(r); }
  224. function encjoin_application(d) {
  225. var tup = atom('join_application');
  226. var id = 'id' in d && d.id ? number(d.id) : nil();
  227. var name = 'name' in d && d.name ? bin(d.name) : nil();
  228. var data = 'data' in d && d.data ? encode(d.data) : nil();
  229. return tuple(tup,id,name,data); }
  230. function lenjoin_application() { return 4; }
  231. function decjoin_application(d) {
  232. var r={}; r.tup = 'join_application';
  233. r.id = d && d.v[1] ? d.v[1].v : undefined;
  234. r.name = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  235. r.data = d && d.v[3] ? decode(d.v[3].v) : undefined;
  236. return clean(r); }
  237. function enctour_list(d) {
  238. var tup = atom('tour_list');
  239. var users = []; if ('users' in d && d.users)
  240. { d.users.forEach(function(x){
  241. users.push(encode(x))});
  242. users={t:108,v:users}; } else { users = nil() };
  243. return tuple(tup,users); }
  244. function lentour_list() { return 2; }
  245. function dectour_list(d) {
  246. var r={}; r.tup = 'tour_list';
  247. r.users = [];
  248. (d && d.v[1] && d.v[1].v) ?
  249. d.v[1].v.forEach(function(x){r.users.push(decode(x))}) :
  250. r.users = undefined;
  251. return clean(r); }
  252. function enctask(d) {
  253. var tup = atom('task');
  254. var name = 'name' in d && d.name ? atom(d.name) : nil();
  255. var roles = 'roles' in d && d.roles ? bin(d.roles) : nil();
  256. var module = 'module' in d && d.module ? atom(d.module) : nil();
  257. return tuple(tup,name,roles,module); }
  258. function lentask() { return 4; }
  259. function dectask(d) {
  260. var r={}; r.tup = 'task';
  261. r.name = d && d.v[1] ? d.v[1].v : undefined;
  262. r.roles = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  263. r.module = d && d.v[3] ? d.v[3].v : undefined;
  264. return clean(r); }
  265. function encuserTask(d) {
  266. var tup = atom('userTask');
  267. var name = 'name' in d && d.name ? atom(d.name) : nil();
  268. var roles = 'roles' in d && d.roles ? bin(d.roles) : nil();
  269. var module = 'module' in d && d.module ? atom(d.module) : nil();
  270. return tuple(tup,name,roles,module); }
  271. function lenuserTask() { return 4; }
  272. function decuserTask(d) {
  273. var r={}; r.tup = 'userTask';
  274. r.name = d && d.v[1] ? d.v[1].v : undefined;
  275. r.roles = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  276. r.module = d && d.v[3] ? d.v[3].v : undefined;
  277. return clean(r); }
  278. function encserviceTask(d) {
  279. var tup = atom('serviceTask');
  280. var name = 'name' in d && d.name ? atom(d.name) : nil();
  281. var roles = 'roles' in d && d.roles ? bin(d.roles) : nil();
  282. var module = 'module' in d && d.module ? atom(d.module) : nil();
  283. return tuple(tup,name,roles,module); }
  284. function lenserviceTask() { return 4; }
  285. function decserviceTask(d) {
  286. var r={}; r.tup = 'serviceTask';
  287. r.name = d && d.v[1] ? d.v[1].v : undefined;
  288. r.roles = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  289. r.module = d && d.v[3] ? d.v[3].v : undefined;
  290. return clean(r); }
  291. function encreceiveTask(d) {
  292. var tup = atom('receiveTask');
  293. var name = 'name' in d && d.name ? atom(d.name) : nil();
  294. var roles = 'roles' in d && d.roles ? bin(d.roles) : nil();
  295. var module = 'module' in d && d.module ? atom(d.module) : nil();
  296. return tuple(tup,name,roles,module); }
  297. function lenreceiveTask() { return 4; }
  298. function decreceiveTask(d) {
  299. var r={}; r.tup = 'receiveTask';
  300. r.name = d && d.v[1] ? d.v[1].v : undefined;
  301. r.roles = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  302. r.module = d && d.v[3] ? d.v[3].v : undefined;
  303. return clean(r); }
  304. function encmessageEvent(d) {
  305. var tup = atom('messageEvent');
  306. var name = 'name' in d && d.name ? atom(d.name) : nil();
  307. var payload = 'payload' in d && d.payload ? bin(d.payload) : nil();
  308. var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil();
  309. return tuple(tup,name,payload,timeout); }
  310. function lenmessageEvent() { return 4; }
  311. function decmessageEvent(d) {
  312. var r={}; r.tup = 'messageEvent';
  313. r.name = d && d.v[1] ? d.v[1].v : undefined;
  314. r.payload = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  315. r.timeout = d && d.v[3] ? decode(d.v[3].v) : undefined;
  316. return clean(r); }
  317. function encboundaryEvent(d) {
  318. var tup = atom('boundaryEvent');
  319. var name = 'name' in d && d.name ? atom(d.name) : nil();
  320. var payload = 'payload' in d && d.payload ? bin(d.payload) : nil();
  321. var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil();
  322. var timeDate = 'timeDate' in d && d.timeDate ? bin(d.timeDate) : nil();
  323. var timeDuration = 'timeDuration' in d && d.timeDuration ? bin(d.timeDuration) : nil();
  324. var timeCycle = 'timeCycle' in d && d.timeCycle ? bin(d.timeCycle) : nil();
  325. var module = 'module' in d && d.module ? atom(d.module) : nil();
  326. return tuple(tup,name,payload,timeout,timeDate,timeDuration,timeCycle,module); }
  327. function lenboundaryEvent() { return 8; }
  328. function decboundaryEvent(d) {
  329. var r={}; r.tup = 'boundaryEvent';
  330. r.name = d && d.v[1] ? d.v[1].v : undefined;
  331. r.payload = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  332. r.timeout = d && d.v[3] ? decode(d.v[3].v) : undefined;
  333. r.timeDate = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  334. r.timeDuration = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  335. r.timeCycle = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  336. r.module = d && d.v[7] ? d.v[7].v : undefined;
  337. return clean(r); }
  338. function enctimeoutEvent(d) {
  339. var tup = atom('timeoutEvent');
  340. var name = 'name' in d && d.name ? atom(d.name) : nil();
  341. var payload = 'payload' in d && d.payload ? bin(d.payload) : nil();
  342. var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil();
  343. var timeDate = 'timeDate' in d && d.timeDate ? bin(d.timeDate) : nil();
  344. var timeDuration = 'timeDuration' in d && d.timeDuration ? bin(d.timeDuration) : nil();
  345. var timeCycle = 'timeCycle' in d && d.timeCycle ? bin(d.timeCycle) : nil();
  346. var module = 'module' in d && d.module ? atom(d.module) : nil();
  347. return tuple(tup,name,payload,timeout,timeDate,timeDuration,timeCycle,module); }
  348. function lentimeoutEvent() { return 8; }
  349. function dectimeoutEvent(d) {
  350. var r={}; r.tup = 'timeoutEvent';
  351. r.name = d && d.v[1] ? d.v[1].v : undefined;
  352. r.payload = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  353. r.timeout = d && d.v[3] ? decode(d.v[3].v) : undefined;
  354. r.timeDate = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  355. r.timeDuration = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  356. r.timeCycle = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  357. r.module = d && d.v[7] ? d.v[7].v : undefined;
  358. return clean(r); }
  359. function encbeginEvent(d) {
  360. var tup = atom('beginEvent');
  361. var name = 'name' in d && d.name ? atom(d.name) : nil();
  362. var module = 'module' in d && d.module ? atom(d.module) : nil();
  363. return tuple(tup,name,module); }
  364. function lenbeginEvent() { return 3; }
  365. function decbeginEvent(d) {
  366. var r={}; r.tup = 'beginEvent';
  367. r.name = d && d.v[1] ? d.v[1].v : undefined;
  368. r.module = d && d.v[2] ? d.v[2].v : undefined;
  369. return clean(r); }
  370. function encendEvent(d) {
  371. var tup = atom('endEvent');
  372. var name = 'name' in d && d.name ? atom(d.name) : nil();
  373. var module = 'module' in d && d.module ? atom(d.module) : nil();
  374. return tuple(tup,name,module); }
  375. function lenendEvent() { return 3; }
  376. function decendEvent(d) {
  377. var r={}; r.tup = 'endEvent';
  378. r.name = d && d.v[1] ? d.v[1].v : undefined;
  379. r.module = d && d.v[2] ? d.v[2].v : undefined;
  380. return clean(r); }
  381. function encsequenceFlow(d) {
  382. var tup = atom('sequenceFlow');
  383. var source = 'source' in d && d.source ? atom(d.source) : nil();
  384. var target = 'target' in d && d.target ? atom(d.target) : nil();
  385. return tuple(tup,source,target); }
  386. function lensequenceFlow() { return 3; }
  387. function decsequenceFlow(d) {
  388. var r={}; r.tup = 'sequenceFlow';
  389. r.source = d && d.v[1] ? d.v[1].v : undefined;
  390. r.target = d && d.v[2] ? d.v[2].v : undefined;
  391. return clean(r); }
  392. function enchist(d) {
  393. var tup = atom('hist');
  394. var id = 'id' in d && d.id ? number(d.id) : nil();
  395. var container = 'container' in d && d.container ? atom(d.container) : nil();
  396. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  397. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  398. var next = 'next' in d && d.next ? number(d.next) : nil();
  399. var feeds = []; if ('feeds' in d && d.feeds)
  400. { d.feeds.forEach(function(x){
  401. feeds.push(encode(x))});
  402. feeds={t:108,v:feeds}; } else { feeds = nil() };
  403. var name = 'name' in d && d.name ? bin(d.name) : nil();
  404. var task = 'task' in d && d.task ? atom(d.task) : nil();
  405. var time = 'time' in d && d.time ? encode(d.time) : nil();
  406. return tuple(tup,id,container,feed_id,prev,next,feeds,name,task,time); }
  407. function lenhist() { return 10; }
  408. function dechist(d) {
  409. var r={}; r.tup = 'hist';
  410. r.id = d && d.v[1] ? d.v[1].v : undefined;
  411. r.container = d && d.v[2] ? d.v[2].v : undefined;
  412. r.feed_id = d && d.v[3] ? decode(d.v[3].v) : undefined;
  413. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  414. r.next = d && d.v[5] ? d.v[5].v : undefined;
  415. r.feeds = [];
  416. (d && d.v[6] && d.v[6].v) ?
  417. d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) :
  418. r.feeds = undefined;
  419. r.name = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  420. r.task = d && d.v[8] ? d.v[8].v : undefined;
  421. r.time = d && d.v[9] ? decode(d.v[9].v) : undefined;
  422. return clean(r); }
  423. function encprocess(d) {
  424. var tup = atom('process');
  425. var id = 'id' in d && d.id ? number(d.id) : nil();
  426. var container = 'container' in d && d.container ? atom(d.container) : nil();
  427. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  428. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  429. var next = 'next' in d && d.next ? number(d.next) : nil();
  430. var feeds = []; if ('feeds' in d && d.feeds)
  431. { d.feeds.forEach(function(x){
  432. feeds.push(encode(x))});
  433. feeds={t:108,v:feeds}; } else { feeds = nil() };
  434. var name = 'name' in d && d.name ? bin(d.name) : nil();
  435. var roles = []; if ('roles' in d && d.roles)
  436. { d.roles.forEach(function(x){
  437. roles.push(encode(x))});
  438. roles={t:108,v:roles}; } else { roles = nil() };
  439. var tasks = []; if ('tasks' in d && d.tasks)
  440. { d.tasks.forEach(function(x){
  441. tasks.push(encode(x))});
  442. tasks={t:108,v:tasks}; } else { tasks = nil() };
  443. var events = []; if ('events' in d && d.events)
  444. { d.events.forEach(function(x){
  445. events.push(encode(x))});
  446. events={t:108,v:events}; } else { events = nil() };
  447. var hist = 'hist' in d && d.hist ? encode(d.hist) : nil();
  448. var flows = []; if ('flows' in d && d.flows)
  449. { d.flows.forEach(function(x){
  450. flows.push(encode(x))});
  451. flows={t:108,v:flows}; } else { flows = nil() };
  452. var rules = 'rules' in d && d.rules ? encode(d.rules) : nil();
  453. var docs = []; if ('docs' in d && d.docs)
  454. { d.docs.forEach(function(x){
  455. docs.push(encode(x))});
  456. docs={t:108,v:docs}; } else { docs = nil() };
  457. var options = 'options' in d && d.options ? encode(d.options) : nil();
  458. var task = 'task' in d && d.task ? atom(d.task) : nil();
  459. var timer = 'timer' in d && d.timer ? bin(d.timer) : nil();
  460. var notifications = 'notifications' in d && d.notifications ? encode(d.notifications) : nil();
  461. var result = 'result' in d && d.result ? bin(d.result) : nil();
  462. var started = 'started' in d && d.started ? bin(d.started) : nil();
  463. var beginEvent = 'beginEvent' in d && d.beginEvent ? atom(d.beginEvent) : nil();
  464. var endEvent = 'endEvent' in d && d.endEvent ? atom(d.endEvent) : nil();
  465. return tuple(tup,id,container,feed_id,prev,next,feeds,name,roles,tasks,events,
  466. hist,flows,rules,docs,options,task,timer,notifications,result,started,beginEvent,endEvent); }
  467. function lenprocess() { return 23; }
  468. function decprocess(d) {
  469. var r={}; r.tup = 'process';
  470. r.id = d && d.v[1] ? d.v[1].v : undefined;
  471. r.container = d && d.v[2] ? d.v[2].v : undefined;
  472. r.feed_id = d && d.v[3] ? decode(d.v[3].v) : undefined;
  473. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  474. r.next = d && d.v[5] ? d.v[5].v : undefined;
  475. r.feeds = [];
  476. (d && d.v[6] && d.v[6].v) ?
  477. d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) :
  478. r.feeds = undefined;
  479. r.name = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  480. r.roles = [];
  481. (d && d.v[8] && d.v[8].v) ?
  482. d.v[8].v.forEach(function(x){r.roles.push(decode(x))}) :
  483. r.roles = undefined;
  484. r.tasks = [];
  485. (d && d.v[9] && d.v[9].v) ?
  486. d.v[9].v.forEach(function(x){r.tasks.push(decode(x))}) :
  487. r.tasks = undefined;
  488. r.events = [];
  489. (d && d.v[10] && d.v[10].v) ?
  490. d.v[10].v.forEach(function(x){r.events.push(decode(x))}) :
  491. r.events = undefined;
  492. r.hist = d && d.v[11] ? decode(d.v[11]) : undefined;
  493. r.flows = [];
  494. (d && d.v[12] && d.v[12].v) ?
  495. d.v[12].v.forEach(function(x){r.flows.push(decode(x))}) :
  496. r.flows = undefined;
  497. r.rules = d && d.v[13] ? decode(d.v[13]) : undefined;
  498. r.docs = [];
  499. (d && d.v[14] && d.v[14].v) ?
  500. d.v[14].v.forEach(function(x){r.docs.push(decode(x))}) :
  501. r.docs = undefined;
  502. r.options = d && d.v[15] ? decode(d.v[15].v) : undefined;
  503. r.task = d && d.v[16] ? d.v[16].v : undefined;
  504. r.timer = d && d.v[17] ? utf8_dec(d.v[17].v) : undefined;
  505. r.notifications = d && d.v[18] ? decode(d.v[18].v) : undefined;
  506. r.result = d && d.v[19] ? utf8_dec(d.v[19].v) : undefined;
  507. r.started = d && d.v[20] ? utf8_dec(d.v[20].v) : undefined;
  508. r.beginEvent = d && d.v[21] ? d.v[21].v : undefined;
  509. r.endEvent = d && d.v[22] ? d.v[22].v : undefined;
  510. return clean(r); }
  511. function enccomplete(d) {
  512. var tup = atom('complete');
  513. var id = 'id' in d && d.id ? number(d.id) : nil();
  514. return tuple(tup,id); }
  515. function lencomplete() { return 2; }
  516. function deccomplete(d) {
  517. var r={}; r.tup = 'complete';
  518. r.id = d && d.v[1] ? d.v[1].v : undefined;
  519. return clean(r); }
  520. function encproc(d) {
  521. var tup = atom('proc');
  522. var id = 'id' in d && d.id ? number(d.id) : nil();
  523. return tuple(tup,id); }
  524. function lenproc() { return 2; }
  525. function decproc(d) {
  526. var r={}; r.tup = 'proc';
  527. r.id = d && d.v[1] ? d.v[1].v : undefined;
  528. return clean(r); }
  529. function enchisto(d) {
  530. var tup = atom('histo');
  531. var id = 'id' in d && d.id ? number(d.id) : nil();
  532. return tuple(tup,id); }
  533. function lenhisto() { return 2; }
  534. function dechisto(d) {
  535. var r={}; r.tup = 'histo';
  536. r.id = d && d.v[1] ? d.v[1].v : undefined;
  537. return clean(r); }
  538. function enccreate(d) {
  539. var tup = atom('create');
  540. var proc = 'proc' in d && d.proc ? encode(d.proc) : nil();
  541. var docs = []; if ('docs' in d && d.docs)
  542. { d.docs.forEach(function(x){
  543. docs.push(encode(x))});
  544. docs={t:108,v:docs}; } else { docs = nil() };
  545. return tuple(tup,proc,docs); }
  546. function lencreate() { return 3; }
  547. function deccreate(d) {
  548. var r={}; r.tup = 'create';
  549. r.proc = d && d.v[1] ? decode(d.v[1]) : undefined;
  550. r.docs = [];
  551. (d && d.v[2] && d.v[2].v) ?
  552. d.v[2].v.forEach(function(x){r.docs.push(decode(x))}) :
  553. r.docs = undefined;
  554. return clean(r); }
  555. function encamend(d) {
  556. var tup = atom('amend');
  557. var id = 'id' in d && d.id ? number(d.id) : nil();
  558. var docs = []; if ('docs' in d && d.docs)
  559. { d.docs.forEach(function(x){
  560. docs.push(encode(x))});
  561. docs={t:108,v:docs}; } else { docs = nil() };
  562. return tuple(tup,id,docs); }
  563. function lenamend() { return 3; }
  564. function decamend(d) {
  565. var r={}; r.tup = 'amend';
  566. r.id = d && d.v[1] ? d.v[1].v : undefined;
  567. r.docs = [];
  568. (d && d.v[2] && d.v[2].v) ?
  569. d.v[2].v.forEach(function(x){r.docs.push(decode(x))}) :
  570. r.docs = undefined;
  571. return clean(r); }
  572. function encchain(d) {
  573. var tup = atom('chain');
  574. var id = 'id' in d && d.id ? number(d.id) : nil();
  575. var top = 'top' in d && d.top ? number(d.top) : nil();
  576. var rear = 'rear' in d && d.rear ? number(d.rear) : nil();
  577. var count = 'count' in d && d.count ? number(d.count) : nil();
  578. return tuple(tup,id,top,rear,count); }
  579. function lenchain() { return 5; }
  580. function decchain(d) {
  581. var r={}; r.tup = 'chain';
  582. r.id = d && d.v[1] ? d.v[1].v : undefined;
  583. r.top = d && d.v[2] ? d.v[2].v : undefined;
  584. r.rear = d && d.v[3] ? d.v[3].v : undefined;
  585. r.count = d && d.v[4] ? d.v[4].v : undefined;
  586. return clean(r); }
  587. function encpush(d) {
  588. var tup = atom('push');
  589. var model = 'model' in d && d.model ? encode(d.model) : nil();
  590. var type = 'type' in d && d.type ? bin(d.type) : nil();
  591. var title = 'title' in d && d.title ? bin(d.title) : nil();
  592. var alert = 'alert' in d && d.alert ? bin(d.alert) : nil();
  593. var badge = 'badge' in d && d.badge ? number(d.badge) : nil();
  594. var sound = 'sound' in d && d.sound ? bin(d.sound) : nil();
  595. return tuple(tup,model,type,title,alert,badge,sound); }
  596. function lenpush() { return 7; }
  597. function decpush(d) {
  598. var r={}; r.tup = 'push';
  599. r.model = d && d.v[1] ? decode(d.v[1].v) : undefined;
  600. r.type = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  601. r.title = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  602. r.alert = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  603. r.badge = d && d.v[5] ? d.v[5].v : undefined;
  604. r.sound = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  605. return clean(r); }
  606. function encSearch(d) {
  607. var tup = atom('Search');
  608. var id = 'id' in d && d.id ? number(d.id) : nil();
  609. var ref = 'ref' in d && d.ref ? bin(d.ref) : nil();
  610. var field = 'field' in d && d.field ? bin(d.field) : nil();
  611. var type = 'type' in d && d.type ? atom(d.type) : nil();
  612. var value = 'value' in d && d.value ? encode(d.value) : nil();
  613. var status = 'status' in d && d.status ? atom(d.status) : nil();
  614. return tuple(tup,id,ref,field,type,value,status); }
  615. function lenSearch() { return 7; }
  616. function decSearch(d) {
  617. var r={}; r.tup = 'Search';
  618. r.id = d && d.v[1] ? d.v[1].v : undefined;
  619. r.ref = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  620. r.field = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  621. r.type = d && d.v[4] ? decode(d.v[4]) : undefined;
  622. r.value = d && d.v[5] ? decode(d.v[5].v) : undefined;
  623. r.status = d && d.v[6] ? decode(d.v[6]) : undefined;
  624. return clean(r); }
  625. function encp2p(d) {
  626. var tup = atom('p2p');
  627. var from = 'from' in d && d.from ? bin(d.from) : nil();
  628. var to = 'to' in d && d.to ? bin(d.to) : nil();
  629. return tuple(tup,from,to); }
  630. function lenp2p() { return 3; }
  631. function decp2p(d) {
  632. var r={}; r.tup = 'p2p';
  633. r.from = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  634. r.to = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  635. return clean(r); }
  636. function encmuc(d) {
  637. var tup = atom('muc');
  638. var name = 'name' in d && d.name ? bin(d.name) : nil();
  639. return tuple(tup,name); }
  640. function lenmuc() { return 2; }
  641. function decmuc(d) {
  642. var r={}; r.tup = 'muc';
  643. r.name = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  644. return clean(r); }
  645. function encmqi(d) {
  646. var tup = atom('mqi');
  647. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  648. var query = 'query' in d && d.query ? bin(d.query) : nil();
  649. var status = 'status' in d && d.status ? atom(d.status) : nil();
  650. return tuple(tup,feed_id,query,status); }
  651. function lenmqi() { return 4; }
  652. function decmqi(d) {
  653. var r={}; r.tup = 'mqi';
  654. r.feed_id = d && d.v[1] ? decode(d.v[1]) : undefined;
  655. r.query = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  656. r.status = d && d.v[3] ? decode(d.v[3]) : undefined;
  657. return clean(r); }
  658. function encCDR(d) {
  659. var tup = atom('CDR');
  660. var id = 'id' in d && d.id ? number(d.id) : nil();
  661. var container = 'container' in d && d.container ? atom(d.container) : nil();
  662. var feed = 'feed' in d && d.feed ? encode(d.feed) : nil();
  663. var next = 'next' in d && d.next ? number(d.next) : nil();
  664. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  665. var from = 'from' in d && d.from ? bin(d.from) : nil();
  666. var to = 'to' in d && d.to ? bin(d.to) : nil();
  667. var start = 'start' in d && d.start ? number(d.start) : nil();
  668. var stop = 'stop' in d && d.stop ? number(d.stop) : nil();
  669. var type = 'type' in d && d.type ? atom(d.type) : nil();
  670. var desc = 'desc' in d && d.desc ? bin(d.desc) : nil();
  671. var bill = 'bill' in d && d.bill ? number(d.bill) : nil();
  672. var tariff = 'tariff' in d && d.tariff ? bin(d.tariff) : nil();
  673. return tuple(tup,id,container,feed,next,prev,from,to,start,stop,type,
  674. desc,bill,tariff); }
  675. function lenCDR() { return 14; }
  676. function decCDR(d) {
  677. var r={}; r.tup = 'CDR';
  678. r.id = d && d.v[1] ? d.v[1].v : undefined;
  679. r.container = d && d.v[2] ? d.v[2].v : undefined;
  680. r.feed = d && d.v[3] ? decode(d.v[3].v) : undefined;
  681. r.next = d && d.v[4] ? d.v[4].v : undefined;
  682. r.prev = d && d.v[5] ? d.v[5].v : undefined;
  683. r.from = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  684. r.to = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  685. r.start = d && d.v[8] ? d.v[8].v : undefined;
  686. r.stop = d && d.v[9] ? d.v[9].v : undefined;
  687. r.type = d && d.v[10] ? decode(d.v[10]) : undefined;
  688. r.desc = d && d.v[11] ? utf8_dec(d.v[11].v) : undefined;
  689. r.bill = d && d.v[12] ? d.v[12].v : undefined;
  690. r.tariff = d && d.v[13] ? utf8_dec(d.v[13].v) : undefined;
  691. return clean(r); }
  692. function encFeature(d) {
  693. var tup = atom('Feature');
  694. var id = 'id' in d && d.id ? bin(d.id) : nil();
  695. var key = 'key' in d && d.key ? bin(d.key) : nil();
  696. var value = 'value' in d && d.value ? bin(d.value) : nil();
  697. var group = 'group' in d && d.group ? bin(d.group) : nil();
  698. return tuple(tup,id,key,value,group); }
  699. function lenFeature() { return 5; }
  700. function decFeature(d) {
  701. var r={}; r.tup = 'Feature';
  702. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  703. r.key = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  704. r.value = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  705. r.group = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  706. return clean(r); }
  707. function encService(d) {
  708. var tup = atom('Service');
  709. var id = 'id' in d && d.id ? bin(d.id) : nil();
  710. var type = 'type' in d && d.type ? atom(d.type) : nil();
  711. var data = 'data' in d && d.data ? encode(d.data) : nil();
  712. var login = 'login' in d && d.login ? bin(d.login) : nil();
  713. var password = 'password' in d && d.password ? bin(d.password) : nil();
  714. var expiration = 'expiration' in d && d.expiration ? number(d.expiration) : nil();
  715. var status = 'status' in d && d.status ? atom(d.status) : nil();
  716. return tuple(tup,id,type,data,login,password,expiration,status); }
  717. function lenService() { return 8; }
  718. function decService(d) {
  719. var r={}; r.tup = 'Service';
  720. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  721. r.type = d && d.v[2] ? decode(d.v[2]) : undefined;
  722. r.data = d && d.v[3] ? decode(d.v[3].v) : undefined;
  723. r.login = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  724. r.password = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  725. r.expiration = d && d.v[6] ? d.v[6].v : undefined;
  726. r.status = d && d.v[7] ? decode(d.v[7]) : undefined;
  727. return clean(r); }
  728. function encMember(d) {
  729. var tup = atom('Member');
  730. var id = 'id' in d && d.id ? number(d.id) : nil();
  731. var container = 'container' in d && d.container ? atom(d.container) : nil();
  732. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  733. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  734. var next = 'next' in d && d.next ? number(d.next) : nil();
  735. var feeds = []; if ('feeds' in d && d.feeds)
  736. { d.feeds.forEach(function(x){
  737. feeds.push(encode(x))});
  738. feeds={t:108,v:feeds}; } else { feeds = nil() };
  739. var phone_id = 'phone_id' in d && d.phone_id ? bin(d.phone_id) : nil();
  740. var avatar = 'avatar' in d && d.avatar ? bin(d.avatar) : nil();
  741. var names = 'names' in d && d.names ? bin(d.names) : nil();
  742. var surnames = 'surnames' in d && d.surnames ? bin(d.surnames) : nil();
  743. var alias = 'alias' in d && d.alias ? bin(d.alias) : nil();
  744. var reader = 'reader' in d && d.reader ? number(d.reader) : nil();
  745. var update = 'update' in d && d.update ? number(d.update) : nil();
  746. var settings = []; if ('settings' in d && d.settings)
  747. { d.settings.forEach(function(x){
  748. settings.push(encode(x))});
  749. settings={t:108,v:settings}; } else { settings = nil() };
  750. var services = []; if ('services' in d && d.services)
  751. { d.services.forEach(function(x){
  752. services.push(encode(x))});
  753. services={t:108,v:services}; } else { services = nil() };
  754. var presence = 'presence' in d && d.presence ? atom(d.presence) : nil();
  755. var status = 'status' in d && d.status ? atom(d.status) : nil();
  756. return tuple(tup,id,container,feed_id,prev,next,feeds,phone_id,avatar,names,surnames,
  757. alias,reader,update,settings,services,presence,status); }
  758. function lenMember() { return 18; }
  759. function decMember(d) {
  760. var r={}; r.tup = 'Member';
  761. r.id = d && d.v[1] ? d.v[1].v : undefined;
  762. r.container = d && d.v[2] ? decode(d.v[2]) : undefined;
  763. r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined;
  764. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  765. r.next = d && d.v[5] ? d.v[5].v : undefined;
  766. r.feeds = [];
  767. (d && d.v[6] && d.v[6].v) ?
  768. d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) :
  769. r.feeds = undefined;
  770. r.phone_id = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  771. r.avatar = d && d.v[8] ? utf8_dec(d.v[8].v) : undefined;
  772. r.names = d && d.v[9] ? utf8_dec(d.v[9].v) : undefined;
  773. r.surnames = d && d.v[10] ? utf8_dec(d.v[10].v) : undefined;
  774. r.alias = d && d.v[11] ? utf8_dec(d.v[11].v) : undefined;
  775. r.reader = d && d.v[12] ? d.v[12].v : undefined;
  776. r.update = d && d.v[13] ? d.v[13].v : undefined;
  777. r.settings = [];
  778. (d && d.v[14] && d.v[14].v) ?
  779. d.v[14].v.forEach(function(x){r.settings.push(decode(x))}) :
  780. r.settings = undefined;
  781. r.services = [];
  782. (d && d.v[15] && d.v[15].v) ?
  783. d.v[15].v.forEach(function(x){r.services.push(decode(x))}) :
  784. r.services = undefined;
  785. r.presence = d && d.v[16] ? decode(d.v[16]) : undefined;
  786. r.status = d && d.v[17] ? decode(d.v[17]) : undefined;
  787. return clean(r); }
  788. function encDesc(d) {
  789. var tup = atom('Desc');
  790. var id = 'id' in d && d.id ? bin(d.id) : nil();
  791. var mime = 'mime' in d && d.mime ? bin(d.mime) : nil();
  792. var payload = 'payload' in d && d.payload ? bin(d.payload) : nil();
  793. var parentid = 'parentid' in d && d.parentid ? bin(d.parentid) : nil();
  794. var data = []; if ('data' in d && d.data)
  795. { d.data.forEach(function(x){
  796. data.push(encode(x))});
  797. data={t:108,v:data}; } else { data = nil() };
  798. return tuple(tup,id,mime,payload,parentid,data); }
  799. function lenDesc() { return 6; }
  800. function decDesc(d) {
  801. var r={}; r.tup = 'Desc';
  802. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  803. r.mime = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  804. r.payload = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  805. r.parentid = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  806. r.data = [];
  807. (d && d.v[5] && d.v[5].v) ?
  808. d.v[5].v.forEach(function(x){r.data.push(decode(x))}) :
  809. r.data = undefined;
  810. return clean(r); }
  811. function encStickerPack(d) {
  812. var tup = atom('StickerPack');
  813. var id = 'id' in d && d.id ? number(d.id) : nil();
  814. var name = 'name' in d && d.name ? bin(d.name) : nil();
  815. var keywords = []; if ('keywords' in d && d.keywords)
  816. { d.keywords.forEach(function(x){
  817. keywords.push(encode(x))});
  818. keywords={t:108,v:keywords}; } else { keywords = nil() };
  819. var description = 'description' in d && d.description ? bin(d.description) : nil();
  820. var author = 'author' in d && d.author ? bin(d.author) : nil();
  821. var stickers = []; if ('stickers' in d && d.stickers)
  822. { d.stickers.forEach(function(x){
  823. stickers.push(encode(x))});
  824. stickers={t:108,v:stickers}; } else { stickers = nil() };
  825. var created = 'created' in d && d.created ? number(d.created) : nil();
  826. var updated = 'updated' in d && d.updated ? number(d.updated) : nil();
  827. var downloaded = 'downloaded' in d && d.downloaded ? number(d.downloaded) : nil();
  828. return tuple(tup,id,name,keywords,description,author,stickers,created,updated,downloaded); }
  829. function lenStickerPack() { return 10; }
  830. function decStickerPack(d) {
  831. var r={}; r.tup = 'StickerPack';
  832. r.id = d && d.v[1] ? d.v[1].v : undefined;
  833. r.name = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  834. r.keywords = [];
  835. (d && d.v[3] && d.v[3].v) ?
  836. d.v[3].v.forEach(function(x){r.keywords.push(decode(x))}) :
  837. r.keywords = undefined;
  838. r.description = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  839. r.author = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  840. r.stickers = [];
  841. (d && d.v[6] && d.v[6].v) ?
  842. d.v[6].v.forEach(function(x){r.stickers.push(decode(x))}) :
  843. r.stickers = undefined;
  844. r.created = d && d.v[7] ? d.v[7].v : undefined;
  845. r.updated = d && d.v[8] ? d.v[8].v : undefined;
  846. r.downloaded = d && d.v[9] ? d.v[9].v : undefined;
  847. return clean(r); }
  848. function encMessage(d) {
  849. var tup = atom('Message');
  850. var id = 'id' in d && d.id ? number(d.id) : nil();
  851. var container = 'container' in d && d.container ? atom(d.container) : nil();
  852. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  853. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  854. var next = 'next' in d && d.next ? number(d.next) : nil();
  855. var msg_id = 'msg_id' in d && d.msg_id ? bin(d.msg_id) : nil();
  856. var from = 'from' in d && d.from ? bin(d.from) : nil();
  857. var to = 'to' in d && d.to ? bin(d.to) : nil();
  858. var created = 'created' in d && d.created ? number(d.created) : nil();
  859. var files = []; if ('files' in d && d.files)
  860. { d.files.forEach(function(x){
  861. files.push(encode(x))});
  862. files={t:108,v:files}; } else { files = nil() };
  863. var type = []; if ('type' in d && d.type)
  864. { d.type.forEach(function(x){
  865. type.push(encode(x))});
  866. type={t:108,v:type}; } else { type = nil() };
  867. var link = 'link' in d && d.link ? number(d.link) : nil();
  868. var seenby = []; if ('seenby' in d && d.seenby)
  869. { d.seenby.forEach(function(x){
  870. seenby.push(encode(x))});
  871. seenby={t:108,v:seenby}; } else { seenby = nil() };
  872. var repliedby = []; if ('repliedby' in d && d.repliedby)
  873. { d.repliedby.forEach(function(x){
  874. repliedby.push(encode(x))});
  875. repliedby={t:108,v:repliedby}; } else { repliedby = nil() };
  876. var mentioned = []; if ('mentioned' in d && d.mentioned)
  877. { d.mentioned.forEach(function(x){
  878. mentioned.push(encode(x))});
  879. mentioned={t:108,v:mentioned}; } else { mentioned = nil() };
  880. var status = 'status' in d && d.status ? atom(d.status) : nil();
  881. return tuple(tup,id,container,feed_id,prev,next,msg_id,from,to,created,files,
  882. type,link,seenby,repliedby,mentioned,status); }
  883. function lenMessage() { return 17; }
  884. function decMessage(d) {
  885. var r={}; r.tup = 'Message';
  886. r.id = d && d.v[1] ? d.v[1].v : undefined;
  887. r.container = d && d.v[2] ? decode(d.v[2]) : undefined;
  888. r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined;
  889. r.prev = d && d.v[4] ? d.v[4].v : undefined;
  890. r.next = d && d.v[5] ? d.v[5].v : undefined;
  891. r.msg_id = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  892. r.from = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  893. r.to = d && d.v[8] ? utf8_dec(d.v[8].v) : undefined;
  894. r.created = d && d.v[9] ? d.v[9].v : undefined;
  895. r.files = [];
  896. (d && d.v[10] && d.v[10].v) ?
  897. d.v[10].v.forEach(function(x){r.files.push(decode(x))}) :
  898. r.files = undefined;
  899. r.type = [];
  900. (d && d.v[11] && d.v[11].v) ?
  901. d.v[11].v.forEach(function(x){r.type.push(decode(x))}) :
  902. r.type = undefined;
  903. r.link = d && d.v[12] ? d.v[12].v : undefined;
  904. r.seenby = [];
  905. (d && d.v[13] && d.v[13].v) ?
  906. d.v[13].v.forEach(function(x){r.seenby.push(decode(x))}) :
  907. r.seenby = undefined;
  908. r.repliedby = [];
  909. (d && d.v[14] && d.v[14].v) ?
  910. d.v[14].v.forEach(function(x){r.repliedby.push(decode(x))}) :
  911. r.repliedby = undefined;
  912. r.mentioned = [];
  913. (d && d.v[15] && d.v[15].v) ?
  914. d.v[15].v.forEach(function(x){r.mentioned.push(decode(x))}) :
  915. r.mentioned = undefined;
  916. r.status = d && d.v[16] ? decode(d.v[16]) : undefined;
  917. return clean(r); }
  918. function encLink(d) {
  919. var tup = atom('Link');
  920. var id = 'id' in d && d.id ? bin(d.id) : nil();
  921. var name = 'name' in d && d.name ? bin(d.name) : nil();
  922. var room_id = 'room_id' in d && d.room_id ? bin(d.room_id) : nil();
  923. var created = 'created' in d && d.created ? number(d.created) : nil();
  924. var status = 'status' in d && d.status ? encode(d.status) : nil();
  925. return tuple(tup,id,name,room_id,created,status); }
  926. function lenLink() { return 6; }
  927. function decLink(d) {
  928. var r={}; r.tup = 'Link';
  929. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  930. r.name = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  931. r.room_id = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  932. r.created = d && d.v[4] ? d.v[4].v : undefined;
  933. r.status = d && d.v[5] ? decode(d.v[5]) : undefined;
  934. return clean(r); }
  935. function encRoom(d) {
  936. var tup = atom('Room');
  937. var id = 'id' in d && d.id ? bin(d.id) : nil();
  938. var name = 'name' in d && d.name ? bin(d.name) : nil();
  939. var links = []; if ('links' in d && d.links)
  940. { d.links.forEach(function(x){
  941. links.push(encode(x))});
  942. links={t:108,v:links}; } else { links = nil() };
  943. var description = 'description' in d && d.description ? bin(d.description) : nil();
  944. var settings = []; if ('settings' in d && d.settings)
  945. { d.settings.forEach(function(x){
  946. settings.push(encode(x))});
  947. settings={t:108,v:settings}; } else { settings = nil() };
  948. var members = []; if ('members' in d && d.members)
  949. { d.members.forEach(function(x){
  950. members.push(encode(x))});
  951. members={t:108,v:members}; } else { members = nil() };
  952. var admins = []; if ('admins' in d && d.admins)
  953. { d.admins.forEach(function(x){
  954. admins.push(encode(x))});
  955. admins={t:108,v:admins}; } else { admins = nil() };
  956. var data = []; if ('data' in d && d.data)
  957. { d.data.forEach(function(x){
  958. data.push(encode(x))});
  959. data={t:108,v:data}; } else { data = nil() };
  960. var type = 'type' in d && d.type ? atom(d.type) : nil();
  961. var tos = 'tos' in d && d.tos ? bin(d.tos) : nil();
  962. var tos_update = 'tos_update' in d && d.tos_update ? number(d.tos_update) : nil();
  963. var unread = 'unread' in d && d.unread ? number(d.unread) : nil();
  964. var mentions = []; if ('mentions' in d && d.mentions)
  965. { d.mentions.forEach(function(x){
  966. mentions.push(encode(x))});
  967. mentions={t:108,v:mentions}; } else { mentions = nil() };
  968. var readers = []; if ('readers' in d && d.readers)
  969. { d.readers.forEach(function(x){
  970. readers.push(encode(x))});
  971. readers={t:108,v:readers}; } else { readers = nil() };
  972. var last_msg = 'last_msg' in d && d.last_msg ? encode(d.last_msg) : nil();
  973. var update = 'update' in d && d.update ? number(d.update) : nil();
  974. var created = 'created' in d && d.created ? number(d.created) : nil();
  975. var status = 'status' in d && d.status ? atom(d.status) : nil();
  976. return tuple(tup,id,name,links,description,settings,members,admins,data,type,tos,
  977. tos_update,unread,mentions,readers,last_msg,update,created,status); }
  978. function lenRoom() { return 19; }
  979. function decRoom(d) {
  980. var r={}; r.tup = 'Room';
  981. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  982. r.name = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  983. r.links = [];
  984. (d && d.v[3] && d.v[3].v) ?
  985. d.v[3].v.forEach(function(x){r.links.push(decode(x))}) :
  986. r.links = undefined;
  987. r.description = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  988. r.settings = [];
  989. (d && d.v[5] && d.v[5].v) ?
  990. d.v[5].v.forEach(function(x){r.settings.push(decode(x))}) :
  991. r.settings = undefined;
  992. r.members = [];
  993. (d && d.v[6] && d.v[6].v) ?
  994. d.v[6].v.forEach(function(x){r.members.push(decode(x))}) :
  995. r.members = undefined;
  996. r.admins = [];
  997. (d && d.v[7] && d.v[7].v) ?
  998. d.v[7].v.forEach(function(x){r.admins.push(decode(x))}) :
  999. r.admins = undefined;
  1000. r.data = [];
  1001. (d && d.v[8] && d.v[8].v) ?
  1002. d.v[8].v.forEach(function(x){r.data.push(decode(x))}) :
  1003. r.data = undefined;
  1004. r.type = d && d.v[9] ? decode(d.v[9]) : undefined;
  1005. r.tos = d && d.v[10] ? utf8_dec(d.v[10].v) : undefined;
  1006. r.tos_update = d && d.v[11] ? d.v[11].v : undefined;
  1007. r.unread = d && d.v[12] ? d.v[12].v : undefined;
  1008. r.mentions = [];
  1009. (d && d.v[13] && d.v[13].v) ?
  1010. d.v[13].v.forEach(function(x){r.mentions.push(decode(x))}) :
  1011. r.mentions = undefined;
  1012. r.readers = [];
  1013. (d && d.v[14] && d.v[14].v) ?
  1014. d.v[14].v.forEach(function(x){r.readers.push(decode(x))}) :
  1015. r.readers = undefined;
  1016. r.last_msg = d && d.v[15] ? decode(d.v[15]) : undefined;
  1017. r.update = d && d.v[16] ? d.v[16].v : undefined;
  1018. r.created = d && d.v[17] ? d.v[17].v : undefined;
  1019. r.status = d && d.v[18] ? decode(d.v[18]) : undefined;
  1020. return clean(r); }
  1021. function encTag(d) {
  1022. var tup = atom('Tag');
  1023. var roster_id = 'roster_id' in d && d.roster_id ? bin(d.roster_id) : nil();
  1024. var name = 'name' in d && d.name ? bin(d.name) : nil();
  1025. var color = 'color' in d && d.color ? bin(d.color) : nil();
  1026. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1027. return tuple(tup,roster_id,name,color,status); }
  1028. function lenTag() { return 5; }
  1029. function decTag(d) {
  1030. var r={}; r.tup = 'Tag';
  1031. r.roster_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1032. r.name = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1033. r.color = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  1034. r.status = d && d.v[4] ? decode(d.v[4]) : undefined;
  1035. return clean(r); }
  1036. function encStar(d) {
  1037. var tup = atom('Star');
  1038. var id = 'id' in d && d.id ? number(d.id) : nil();
  1039. var client_id = 'client_id' in d && d.client_id ? bin(d.client_id) : nil();
  1040. var roster_id = 'roster_id' in d && d.roster_id ? number(d.roster_id) : nil();
  1041. var message = 'message' in d && d.message ? encode(d.message) : nil();
  1042. var tags = []; if ('tags' in d && d.tags)
  1043. { d.tags.forEach(function(x){
  1044. tags.push(encode(x))});
  1045. tags={t:108,v:tags}; } else { tags = nil() };
  1046. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1047. return tuple(tup,id,client_id,roster_id,message,tags,status); }
  1048. function lenStar() { return 7; }
  1049. function decStar(d) {
  1050. var r={}; r.tup = 'Star';
  1051. r.id = d && d.v[1] ? d.v[1].v : undefined;
  1052. r.client_id = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1053. r.roster_id = d && d.v[3] ? d.v[3].v : undefined;
  1054. r.message = d && d.v[4] ? decode(d.v[4]) : undefined;
  1055. r.tags = [];
  1056. (d && d.v[5] && d.v[5].v) ?
  1057. d.v[5].v.forEach(function(x){r.tags.push(decode(x))}) :
  1058. r.tags = undefined;
  1059. r.status = d && d.v[6] ? decode(d.v[6]) : undefined;
  1060. return clean(r); }
  1061. function encTyping(d) {
  1062. var tup = atom('Typing');
  1063. var phone_id = 'phone_id' in d && d.phone_id ? bin(d.phone_id) : nil();
  1064. var comments = 'comments' in d && d.comments ? encode(d.comments) : nil();
  1065. return tuple(tup,phone_id,comments); }
  1066. function lenTyping() { return 3; }
  1067. function decTyping(d) {
  1068. var r={}; r.tup = 'Typing';
  1069. r.phone_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1070. r.comments = d && d.v[2] ? decode(d.v[2].v) : undefined;
  1071. return clean(r); }
  1072. function encContact(d) {
  1073. var tup = atom('Contact');
  1074. var phone_id = 'phone_id' in d && d.phone_id ? bin(d.phone_id) : nil();
  1075. var avatar = 'avatar' in d && d.avatar ? bin(d.avatar) : nil();
  1076. var names = 'names' in d && d.names ? bin(d.names) : nil();
  1077. var surnames = 'surnames' in d && d.surnames ? bin(d.surnames) : nil();
  1078. var nick = 'nick' in d && d.nick ? bin(d.nick) : nil();
  1079. var reader = []; if ('reader' in d && d.reader)
  1080. { d.reader.forEach(function(x){
  1081. reader.push(encode(x))});
  1082. reader={t:108,v:reader}; } else { reader = nil() };
  1083. var unread = 'unread' in d && d.unread ? number(d.unread) : nil();
  1084. var last_msg = 'last_msg' in d && d.last_msg ? encode(d.last_msg) : nil();
  1085. var update = 'update' in d && d.update ? number(d.update) : nil();
  1086. var created = 'created' in d && d.created ? number(d.created) : nil();
  1087. var settings = []; if ('settings' in d && d.settings)
  1088. { d.settings.forEach(function(x){
  1089. settings.push(encode(x))});
  1090. settings={t:108,v:settings}; } else { settings = nil() };
  1091. var services = []; if ('services' in d && d.services)
  1092. { d.services.forEach(function(x){
  1093. services.push(encode(x))});
  1094. services={t:108,v:services}; } else { services = nil() };
  1095. var presence = 'presence' in d && d.presence ? atom(d.presence) : nil();
  1096. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1097. return tuple(tup,phone_id,avatar,names,surnames,nick,reader,unread,last_msg,update,created,
  1098. settings,services,presence,status); }
  1099. function lenContact() { return 15; }
  1100. function decContact(d) {
  1101. var r={}; r.tup = 'Contact';
  1102. r.phone_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1103. r.avatar = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1104. r.names = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  1105. r.surnames = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  1106. r.nick = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  1107. r.reader = [];
  1108. (d && d.v[6] && d.v[6].v) ?
  1109. d.v[6].v.forEach(function(x){r.reader.push(decode(x))}) :
  1110. r.reader = undefined;
  1111. r.unread = d && d.v[7] ? d.v[7].v : undefined;
  1112. r.last_msg = d && d.v[8] ? decode(d.v[8]) : undefined;
  1113. r.update = d && d.v[9] ? d.v[9].v : undefined;
  1114. r.created = d && d.v[10] ? d.v[10].v : undefined;
  1115. r.settings = [];
  1116. (d && d.v[11] && d.v[11].v) ?
  1117. d.v[11].v.forEach(function(x){r.settings.push(decode(x))}) :
  1118. r.settings = undefined;
  1119. r.services = [];
  1120. (d && d.v[12] && d.v[12].v) ?
  1121. d.v[12].v.forEach(function(x){r.services.push(decode(x))}) :
  1122. r.services = undefined;
  1123. r.presence = d && d.v[13] ? decode(d.v[13]) : undefined;
  1124. r.status = d && d.v[14] ? decode(d.v[14]) : undefined;
  1125. return clean(r); }
  1126. function encExtendedStar(d) {
  1127. var tup = atom('ExtendedStar');
  1128. var star = 'star' in d && d.star ? encode(d.star) : nil();
  1129. var from = 'from' in d && d.from ? encode(d.from) : nil();
  1130. return tuple(tup,star,from); }
  1131. function lenExtendedStar() { return 3; }
  1132. function decExtendedStar(d) {
  1133. var r={}; r.tup = 'ExtendedStar';
  1134. r.star = d && d.v[1] ? decode(d.v[1]) : undefined;
  1135. r.from = d && d.v[2] ? decode(d.v[2]) : undefined;
  1136. return clean(r); }
  1137. function encAuth(d) {
  1138. var tup = atom('Auth');
  1139. var client_id = 'client_id' in d && d.client_id ? bin(d.client_id) : nil();
  1140. var dev_key = 'dev_key' in d && d.dev_key ? bin(d.dev_key) : nil();
  1141. var user_id = 'user_id' in d && d.user_id ? bin(d.user_id) : nil();
  1142. var phone = 'phone' in d && d.phone ? bin(d.phone) : nil();
  1143. var token = 'token' in d && d.token ? bin(d.token) : nil();
  1144. var type = 'type' in d && d.type ? atom(d.type) : nil();
  1145. var sms_code = 'sms_code' in d && d.sms_code ? bin(d.sms_code) : nil();
  1146. var attempts = 'attempts' in d && d.attempts ? number(d.attempts) : nil();
  1147. var services = []; if ('services' in d && d.services)
  1148. { d.services.forEach(function(x){
  1149. services.push(encode(x))});
  1150. services={t:108,v:services}; } else { services = nil() };
  1151. var settings = []; if ('settings' in d && d.settings)
  1152. { d.settings.forEach(function(x){
  1153. settings.push(encode(x))});
  1154. settings={t:108,v:settings}; } else { settings = nil() };
  1155. var push = 'push' in d && d.push ? bin(d.push) : nil();
  1156. var os = 'os' in d && d.os ? atom(d.os) : nil();
  1157. var created = 'created' in d && d.created ? number(d.created) : nil();
  1158. var last_online = 'last_online' in d && d.last_online ? number(d.last_online) : nil();
  1159. return tuple(tup,client_id,dev_key,user_id,phone,token,type,sms_code,attempts,services,settings,
  1160. push,os,created,last_online); }
  1161. function lenAuth() { return 15; }
  1162. function decAuth(d) {
  1163. var r={}; r.tup = 'Auth';
  1164. r.client_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1165. r.dev_key = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1166. r.user_id = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  1167. r.phone = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  1168. r.token = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  1169. r.type = d && d.v[6] ? d.v[6].v : undefined;
  1170. r.sms_code = d && d.v[7] ? utf8_dec(d.v[7].v) : undefined;
  1171. r.attempts = d && d.v[8] ? d.v[8].v : undefined;
  1172. r.services = [];
  1173. (d && d.v[9] && d.v[9].v) ?
  1174. d.v[9].v.forEach(function(x){r.services.push(decode(x))}) :
  1175. r.services = undefined;
  1176. r.settings = [];
  1177. (d && d.v[10] && d.v[10].v) ?
  1178. d.v[10].v.forEach(function(x){r.settings.push(decode(x))}) :
  1179. r.settings = undefined;
  1180. r.push = d && d.v[11] ? utf8_dec(d.v[11].v) : undefined;
  1181. r.os = d && d.v[12] ? decode(d.v[12]) : undefined;
  1182. r.created = d && d.v[13] ? d.v[13].v : undefined;
  1183. r.last_online = d && d.v[14] ? d.v[14].v : undefined;
  1184. return clean(r); }
  1185. function encRoster(d) {
  1186. var tup = atom('Roster');
  1187. var id = 'id' in d && d.id ? number(d.id) : nil();
  1188. var names = 'names' in d && d.names ? bin(d.names) : nil();
  1189. var surnames = 'surnames' in d && d.surnames ? bin(d.surnames) : nil();
  1190. var email = 'email' in d && d.email ? bin(d.email) : nil();
  1191. var nick = 'nick' in d && d.nick ? bin(d.nick) : nil();
  1192. var userlist = []; if ('userlist' in d && d.userlist)
  1193. { d.userlist.forEach(function(x){
  1194. userlist.push(encode(x))});
  1195. userlist={t:108,v:userlist}; } else { userlist = nil() };
  1196. var roomlist = []; if ('roomlist' in d && d.roomlist)
  1197. { d.roomlist.forEach(function(x){
  1198. roomlist.push(encode(x))});
  1199. roomlist={t:108,v:roomlist}; } else { roomlist = nil() };
  1200. var favorite = []; if ('favorite' in d && d.favorite)
  1201. { d.favorite.forEach(function(x){
  1202. favorite.push(encode(x))});
  1203. favorite={t:108,v:favorite}; } else { favorite = nil() };
  1204. var tags = []; if ('tags' in d && d.tags)
  1205. { d.tags.forEach(function(x){
  1206. tags.push(encode(x))});
  1207. tags={t:108,v:tags}; } else { tags = nil() };
  1208. var phone = 'phone' in d && d.phone ? bin(d.phone) : nil();
  1209. var avatar = 'avatar' in d && d.avatar ? bin(d.avatar) : nil();
  1210. var update = 'update' in d && d.update ? number(d.update) : nil();
  1211. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1212. return tuple(tup,id,names,surnames,email,nick,userlist,roomlist,favorite,tags,phone,
  1213. avatar,update,status); }
  1214. function lenRoster() { return 14; }
  1215. function decRoster(d) {
  1216. var r={}; r.tup = 'Roster';
  1217. r.id = d && d.v[1] ? d.v[1].v : undefined;
  1218. r.names = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1219. r.surnames = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  1220. r.email = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  1221. r.nick = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  1222. r.userlist = [];
  1223. (d && d.v[6] && d.v[6].v) ?
  1224. d.v[6].v.forEach(function(x){r.userlist.push(decode(x))}) :
  1225. r.userlist = undefined;
  1226. r.roomlist = [];
  1227. (d && d.v[7] && d.v[7].v) ?
  1228. d.v[7].v.forEach(function(x){r.roomlist.push(decode(x))}) :
  1229. r.roomlist = undefined;
  1230. r.favorite = [];
  1231. (d && d.v[8] && d.v[8].v) ?
  1232. d.v[8].v.forEach(function(x){r.favorite.push(decode(x))}) :
  1233. r.favorite = undefined;
  1234. r.tags = [];
  1235. (d && d.v[9] && d.v[9].v) ?
  1236. d.v[9].v.forEach(function(x){r.tags.push(decode(x))}) :
  1237. r.tags = undefined;
  1238. r.phone = d && d.v[10] ? utf8_dec(d.v[10].v) : undefined;
  1239. r.avatar = d && d.v[11] ? utf8_dec(d.v[11].v) : undefined;
  1240. r.update = d && d.v[12] ? d.v[12].v : undefined;
  1241. r.status = d && d.v[13] ? decode(d.v[13]) : undefined;
  1242. return clean(r); }
  1243. function encProfile(d) {
  1244. var tup = atom('Profile');
  1245. var phone = 'phone' in d && d.phone ? bin(d.phone) : nil();
  1246. var services = []; if ('services' in d && d.services)
  1247. { d.services.forEach(function(x){
  1248. services.push(encode(x))});
  1249. services={t:108,v:services}; } else { services = nil() };
  1250. var rosters = []; if ('rosters' in d && d.rosters)
  1251. { d.rosters.forEach(function(x){
  1252. rosters.push(encode(x))});
  1253. rosters={t:108,v:rosters}; } else { rosters = nil() };
  1254. var settings = []; if ('settings' in d && d.settings)
  1255. { d.settings.forEach(function(x){
  1256. settings.push(encode(x))});
  1257. settings={t:108,v:settings}; } else { settings = nil() };
  1258. var update = 'update' in d && d.update ? number(d.update) : nil();
  1259. var balance = 'balance' in d && d.balance ? number(d.balance) : nil();
  1260. var presence = 'presence' in d && d.presence ? atom(d.presence) : nil();
  1261. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1262. return tuple(tup,phone,services,rosters,settings,update,balance,presence,status); }
  1263. function lenProfile() { return 9; }
  1264. function decProfile(d) {
  1265. var r={}; r.tup = 'Profile';
  1266. r.phone = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1267. r.services = [];
  1268. (d && d.v[2] && d.v[2].v) ?
  1269. d.v[2].v.forEach(function(x){r.services.push(decode(x))}) :
  1270. r.services = undefined;
  1271. r.rosters = [];
  1272. (d && d.v[3] && d.v[3].v) ?
  1273. d.v[3].v.forEach(function(x){r.rosters.push(decode(x))}) :
  1274. r.rosters = undefined;
  1275. r.settings = [];
  1276. (d && d.v[4] && d.v[4].v) ?
  1277. d.v[4].v.forEach(function(x){r.settings.push(decode(x))}) :
  1278. r.settings = undefined;
  1279. r.update = d && d.v[5] ? d.v[5].v : undefined;
  1280. r.balance = d && d.v[6] ? d.v[6].v : undefined;
  1281. r.presence = d && d.v[7] ? decode(d.v[7]) : undefined;
  1282. r.status = d && d.v[8] ? decode(d.v[8]) : undefined;
  1283. return clean(r); }
  1284. function encLoc(d) {
  1285. var tup = atom('Loc');
  1286. var x = 'x' in d && d.x ? bin(d.x) : nil();
  1287. var y = 'y' in d && d.y ? bin(d.y) : nil();
  1288. var place_id = 'place_id' in d && d.place_id ? bin(d.place_id) : nil();
  1289. return tuple(tup,x,y,place_id); }
  1290. function lenLoc() { return 4; }
  1291. function decLoc(d) {
  1292. var r={}; r.tup = 'Loc';
  1293. r.x = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1294. r.y = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1295. r.place_id = d && d.v[3] ? utf8_dec(d.v[3].v) : undefined;
  1296. return clean(r); }
  1297. function encFriend(d) {
  1298. var tup = atom('Friend');
  1299. var phone_id = 'phone_id' in d && d.phone_id ? bin(d.phone_id) : nil();
  1300. var friend_id = 'friend_id' in d && d.friend_id ? bin(d.friend_id) : nil();
  1301. var settings = []; if ('settings' in d && d.settings)
  1302. { d.settings.forEach(function(x){
  1303. settings.push(encode(x))});
  1304. settings={t:108,v:settings}; } else { settings = nil() };
  1305. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1306. return tuple(tup,phone_id,friend_id,settings,status); }
  1307. function lenFriend() { return 5; }
  1308. function decFriend(d) {
  1309. var r={}; r.tup = 'Friend';
  1310. r.phone_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1311. r.friend_id = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1312. r.settings = [];
  1313. (d && d.v[3] && d.v[3].v) ?
  1314. d.v[3].v.forEach(function(x){r.settings.push(decode(x))}) :
  1315. r.settings = undefined;
  1316. r.status = d && d.v[4] ? decode(d.v[4]) : undefined;
  1317. return clean(r); }
  1318. function encCallMember(d) {
  1319. var tup = atom('CallMember');
  1320. var id = 'id' in d && d.id ? number(d.id) : nil();
  1321. var feed_id = 'feed_id' in d && d.feed_id ? bin(d.feed_id) : nil();
  1322. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  1323. var next = 'next' in d && d.next ? number(d.next) : nil();
  1324. var contact = 'contact' in d && d.contact ? encode(d.contact) : nil();
  1325. var start = 'start' in d && d.start ? number(d.start) : nil();
  1326. var stop = 'stop' in d && d.stop ? number(d.stop) : nil();
  1327. var type = 'type' in d && d.type ? atom(d.type) : nil();
  1328. var desc = 'desc' in d && d.desc ? bin(d.desc) : nil();
  1329. var tariff = 'tariff' in d && d.tariff ? bin(d.tariff) : nil();
  1330. var bill = 'bill' in d && d.bill ? number(d.bill) : nil();
  1331. var duration = 'duration' in d && d.duration ? number(d.duration) : nil();
  1332. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1333. return tuple(tup,id,feed_id,prev,next,contact,start,stop,type,desc,tariff,
  1334. bill,duration,status); }
  1335. function lenCallMember() { return 14; }
  1336. function decCallMember(d) {
  1337. var r={}; r.tup = 'CallMember';
  1338. r.id = d && d.v[1] ? d.v[1].v : undefined;
  1339. r.feed_id = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1340. r.prev = d && d.v[3] ? d.v[3].v : undefined;
  1341. r.next = d && d.v[4] ? d.v[4].v : undefined;
  1342. r.contact = d && d.v[5] ? decode(d.v[5]) : undefined;
  1343. r.start = d && d.v[6] ? d.v[6].v : undefined;
  1344. r.stop = d && d.v[7] ? d.v[7].v : undefined;
  1345. r.type = d && d.v[8] ? decode(d.v[8]) : undefined;
  1346. r.desc = d && d.v[9] ? utf8_dec(d.v[9].v) : undefined;
  1347. r.tariff = d && d.v[10] ? utf8_dec(d.v[10].v) : undefined;
  1348. r.bill = d && d.v[11] ? d.v[11].v : undefined;
  1349. r.duration = d && d.v[12] ? d.v[12].v : undefined;
  1350. r.status = d && d.v[13] ? decode(d.v[13]) : undefined;
  1351. return clean(r); }
  1352. function encCall(d) {
  1353. var tup = atom('Call');
  1354. var id = 'id' in d && d.id ? bin(d.id) : nil();
  1355. var from = 'from' in d && d.from ? bin(d.from) : nil();
  1356. var members = []; if ('members' in d && d.members)
  1357. { d.members.forEach(function(x){
  1358. members.push(encode(x))});
  1359. members={t:108,v:members}; } else { members = nil() };
  1360. var start = 'start' in d && d.start ? number(d.start) : nil();
  1361. var stop = 'stop' in d && d.stop ? number(d.stop) : nil();
  1362. var vox_url = 'vox_url' in d && d.vox_url ? bin(d.vox_url) : nil();
  1363. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1364. return tuple(tup,id,from,members,start,stop,vox_url,status); }
  1365. function lenCall() { return 8; }
  1366. function decCall(d) {
  1367. var r={}; r.tup = 'Call';
  1368. r.id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1369. r.from = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1370. r.members = [];
  1371. (d && d.v[3] && d.v[3].v) ?
  1372. d.v[3].v.forEach(function(x){r.members.push(decode(x))}) :
  1373. r.members = undefined;
  1374. r.start = d && d.v[4] ? d.v[4].v : undefined;
  1375. r.stop = d && d.v[5] ? d.v[5].v : undefined;
  1376. r.vox_url = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  1377. r.status = d && d.v[7] ? decode(d.v[7]) : undefined;
  1378. return clean(r); }
  1379. function encact(d) {
  1380. var tup = atom('act');
  1381. var name = 'name' in d && d.name ? bin(d.name) : nil();
  1382. var data = 'data' in d && d.data ? encode(d.data) : nil();
  1383. return tuple(tup,name,data); }
  1384. function lenact() { return 3; }
  1385. function decact(d) {
  1386. var r={}; r.tup = 'act';
  1387. r.name = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1388. r.data = d && d.v[2] ? decode(d.v[2]) : undefined;
  1389. return clean(r); }
  1390. function encJob(d) {
  1391. var tup = atom('Job');
  1392. var id = 'id' in d && d.id ? number(d.id) : nil();
  1393. var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil();
  1394. var prev = 'prev' in d && d.prev ? number(d.prev) : nil();
  1395. var next = 'next' in d && d.next ? number(d.next) : nil();
  1396. var context = 'context' in d && d.context ? encode(d.context) : nil();
  1397. var proc = 'proc' in d && d.proc ? encode(d.proc) : nil();
  1398. var time = 'time' in d && d.time ? number(d.time) : nil();
  1399. var data = []; if ('data' in d && d.data)
  1400. { d.data.forEach(function(x){
  1401. data.push(encode(x))});
  1402. data={t:108,v:data}; } else { data = nil() };
  1403. var events = []; if ('events' in d && d.events)
  1404. { d.events.forEach(function(x){
  1405. events.push(encode(x))});
  1406. events={t:108,v:events}; } else { events = nil() };
  1407. var settings = []; if ('settings' in d && d.settings)
  1408. { d.settings.forEach(function(x){
  1409. settings.push(encode(x))});
  1410. settings={t:108,v:settings}; } else { settings = nil() };
  1411. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1412. return tuple(tup,id,feed_id,prev,next,context,proc,time,data,events,settings,status); }
  1413. function lenJob() { return 12; }
  1414. function decJob(d) {
  1415. var r={}; r.tup = 'Job';
  1416. r.id = d && d.v[1] ? d.v[1].v : undefined;
  1417. r.feed_id = d && d.v[2] ? decode(d.v[2]) : undefined;
  1418. r.prev = d && d.v[3] ? d.v[3].v : undefined;
  1419. r.next = d && d.v[4] ? d.v[4].v : undefined;
  1420. r.context = d && d.v[5] ? decode(d.v[5]) : undefined;
  1421. r.proc = d && d.v[6] ? decode(d.v[6]) : undefined;
  1422. r.time = d && d.v[7] ? d.v[7].v : undefined;
  1423. r.data = [];
  1424. (d && d.v[8] && d.v[8].v) ?
  1425. d.v[8].v.forEach(function(x){r.data.push(decode(x))}) :
  1426. r.data = undefined;
  1427. r.events = [];
  1428. (d && d.v[9] && d.v[9].v) ?
  1429. d.v[9].v.forEach(function(x){r.events.push(decode(x))}) :
  1430. r.events = undefined;
  1431. r.settings = [];
  1432. (d && d.v[10] && d.v[10].v) ?
  1433. d.v[10].v.forEach(function(x){r.settings.push(decode(x))}) :
  1434. r.settings = undefined;
  1435. r.status = d && d.v[11] ? decode(d.v[11]) : undefined;
  1436. return clean(r); }
  1437. function encHistory(d) {
  1438. var tup = atom('History');
  1439. var roster_id = 'roster_id' in d && d.roster_id ? bin(d.roster_id) : nil();
  1440. var feed = 'feed' in d && d.feed ? encode(d.feed) : nil();
  1441. var size = 'size' in d && d.size ? number(d.size) : nil();
  1442. var entity_id = 'entity_id' in d && d.entity_id ? number(d.entity_id) : nil();
  1443. var data = []; if ('data' in d && d.data)
  1444. { d.data.forEach(function(x){
  1445. data.push(encode(x))});
  1446. data={t:108,v:data}; } else { data = nil() };
  1447. var status = 'status' in d && d.status ? atom(d.status) : nil();
  1448. return tuple(tup,roster_id,feed,size,entity_id,data,status); }
  1449. function lenHistory() { return 7; }
  1450. function decHistory(d) {
  1451. var r={}; r.tup = 'History';
  1452. r.roster_id = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1453. r.feed = d && d.v[2] ? decode(d.v[2]) : undefined;
  1454. r.size = d && d.v[3] ? d.v[3].v : undefined;
  1455. r.entity_id = d && d.v[4] ? d.v[4].v : undefined;
  1456. r.data = [];
  1457. (d && d.v[5] && d.v[5].v) ?
  1458. d.v[5].v.forEach(function(x){r.data.push(decode(x))}) :
  1459. r.data = undefined;
  1460. r.status = d && d.v[6] ? decode(d.v[6]) : undefined;
  1461. return clean(r); }
  1462. function encSchedule(d) {
  1463. var tup = atom('Schedule');
  1464. var id = 'id' in d && d.id ? number(d.id) : nil();
  1465. var proc = 'proc' in d && d.proc ? number(d.proc) : nil();
  1466. var data = []; if ('data' in d && d.data)
  1467. { d.data.forEach(function(x){
  1468. data.push(encode(x))});
  1469. data={t:108,v:data}; } else { data = nil() };
  1470. var state = 'state' in d && d.state ? encode(d.state) : nil();
  1471. return tuple(tup,id,proc,data,state); }
  1472. function lenSchedule() { return 5; }
  1473. function decSchedule(d) {
  1474. var r={}; r.tup = 'Schedule';
  1475. r.id = d && d.v[1] ? d.v[1].v : undefined;
  1476. r.proc = d && d.v[2] ? d.v[2].v : undefined;
  1477. r.data = [];
  1478. (d && d.v[3] && d.v[3].v) ?
  1479. d.v[3].v.forEach(function(x){r.data.push(decode(x))}) :
  1480. r.data = undefined;
  1481. r.state = d && d.v[4] ? decode(d.v[4].v) : undefined;
  1482. return clean(r); }
  1483. function encIndex(d) {
  1484. var tup = atom('Index');
  1485. var id = 'id' in d && d.id ? encode(d.id) : nil();
  1486. var roster = []; if ('roster' in d && d.roster)
  1487. { d.roster.forEach(function(x){
  1488. roster.push(encode(x))});
  1489. roster={t:108,v:roster}; } else { roster = nil() };
  1490. return tuple(tup,id,roster); }
  1491. function lenIndex() { return 3; }
  1492. function decIndex(d) {
  1493. var r={}; r.tup = 'Index';
  1494. r.id = d && d.v[1] ? decode(d.v[1].v) : undefined;
  1495. r.roster = [];
  1496. (d && d.v[2] && d.v[2].v) ?
  1497. d.v[2].v.forEach(function(x){r.roster.push(decode(x))}) :
  1498. r.roster = undefined;
  1499. return clean(r); }
  1500. function encWhitelist(d) {
  1501. var tup = atom('Whitelist');
  1502. var phone = 'phone' in d && d.phone ? bin(d.phone) : nil();
  1503. var created = 'created' in d && d.created ? number(d.created) : nil();
  1504. return tuple(tup,phone,created); }
  1505. function lenWhitelist() { return 3; }
  1506. function decWhitelist(d) {
  1507. var r={}; r.tup = 'Whitelist';
  1508. r.phone = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1509. r.created = d && d.v[2] ? d.v[2].v : undefined;
  1510. return clean(r); }
  1511. function encerror(d) {
  1512. var tup = atom('error');
  1513. var code = 'code' in d && d.code ? bin(d.code) : nil();
  1514. return tuple(tup,code); }
  1515. function lenerror() { return 2; }
  1516. function decerror(d) {
  1517. var r={}; r.tup = 'error';
  1518. r.code = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1519. return clean(r); }
  1520. function encok(d) {
  1521. var tup = atom('ok');
  1522. var code = 'code' in d && d.code ? bin(d.code) : nil();
  1523. return tuple(tup,code); }
  1524. function lenok() { return 2; }
  1525. function decok(d) {
  1526. var r={}; r.tup = 'ok';
  1527. r.code = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1528. return clean(r); }
  1529. function encerror2(d) {
  1530. var tup = atom('error2');
  1531. var code = 'code' in d && d.code ? atom(d.code) : nil();
  1532. var src = 'src' in d && d.src ? encode(d.src) : nil();
  1533. return tuple(tup,code,src); }
  1534. function lenerror2() { return 3; }
  1535. function decerror2(d) {
  1536. var r={}; r.tup = 'error2';
  1537. r.code = d && d.v[1] ? d.v[1].v : undefined;
  1538. r.src = d && d.v[2] ? decode(d.v[2]) : undefined;
  1539. return clean(r); }
  1540. function encok2(d) {
  1541. var tup = atom('ok2');
  1542. var code = 'code' in d && d.code ? atom(d.code) : nil();
  1543. var src = 'src' in d && d.src ? encode(d.src) : nil();
  1544. return tuple(tup,code,src); }
  1545. function lenok2() { return 3; }
  1546. function decok2(d) {
  1547. var r={}; r.tup = 'ok2';
  1548. r.code = d && d.v[1] ? d.v[1].v : undefined;
  1549. r.src = d && d.v[2] ? decode(d.v[2]) : undefined;
  1550. return clean(r); }
  1551. function encio(d) {
  1552. var tup = atom('io');
  1553. var code = 'code' in d && d.code ? encode(d.code) : nil();
  1554. var data = 'data' in d && d.data ? encode(d.data) : nil();
  1555. return tuple(tup,code,data); }
  1556. function lenio() { return 3; }
  1557. function decio(d) {
  1558. var r={}; r.tup = 'io';
  1559. r.code = d && d.v[1] ? decode(d.v[1]) : undefined;
  1560. r.data = d && d.v[2] ? decode(d.v[2]) : undefined;
  1561. return clean(r); }
  1562. function encerrors(d) {
  1563. var tup = atom('errors');
  1564. var code = []; if ('code' in d && d.code)
  1565. { d.code.forEach(function(x){
  1566. code.push(encode(x))});
  1567. code={t:108,v:code}; } else { code = nil() };
  1568. var data = 'data' in d && d.data ? encode(d.data) : nil();
  1569. return tuple(tup,code,data); }
  1570. function lenerrors() { return 3; }
  1571. function decerrors(d) {
  1572. var r={}; r.tup = 'errors';
  1573. r.code = [];
  1574. (d && d.v[1] && d.v[1].v) ?
  1575. d.v[1].v.forEach(function(x){r.code.push(decode(x))}) :
  1576. r.code = undefined;
  1577. r.data = d && d.v[2] ? decode(d.v[2].v) : undefined;
  1578. return clean(r); }
  1579. function encPushService(d) {
  1580. var tup = atom('PushService');
  1581. var recipients = []; if ('recipients' in d && d.recipients)
  1582. { d.recipients.forEach(function(x){
  1583. recipients.push(encode(x))});
  1584. recipients={t:108,v:recipients}; } else { recipients = nil() };
  1585. var id = 'id' in d && d.id ? bin(d.id) : nil();
  1586. var ttl = 'ttl' in d && d.ttl ? number(d.ttl) : nil();
  1587. var module = 'module' in d && d.module ? bin(d.module) : nil();
  1588. var priority = 'priority' in d && d.priority ? bin(d.priority) : nil();
  1589. var payload = 'payload' in d && d.payload ? bin(d.payload) : nil();
  1590. return tuple(tup,recipients,id,ttl,module,priority,payload); }
  1591. function lenPushService() { return 7; }
  1592. function decPushService(d) {
  1593. var r={}; r.tup = 'PushService';
  1594. r.recipients = [];
  1595. (d && d.v[1] && d.v[1].v) ?
  1596. d.v[1].v.forEach(function(x){r.recipients.push(decode(x))}) :
  1597. r.recipients = undefined;
  1598. r.id = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1599. r.ttl = d && d.v[3] ? d.v[3].v : undefined;
  1600. r.module = d && d.v[4] ? utf8_dec(d.v[4].v) : undefined;
  1601. r.priority = d && d.v[5] ? utf8_dec(d.v[5].v) : undefined;
  1602. r.payload = d && d.v[6] ? utf8_dec(d.v[6].v) : undefined;
  1603. return clean(r); }
  1604. function encPublishService(d) {
  1605. var tup = atom('PublishService');
  1606. var message = 'message' in d && d.message ? bin(d.message) : nil();
  1607. var topic = 'topic' in d && d.topic ? bin(d.topic) : nil();
  1608. var qos = 'qos' in d && d.qos ? number(d.qos) : nil();
  1609. return tuple(tup,message,topic,qos); }
  1610. function lenPublishService() { return 4; }
  1611. function decPublishService(d) {
  1612. var r={}; r.tup = 'PublishService';
  1613. r.message = d && d.v[1] ? utf8_dec(d.v[1].v) : undefined;
  1614. r.topic = d && d.v[2] ? utf8_dec(d.v[2].v) : undefined;
  1615. r.qos = d && d.v[3] ? d.v[3].v : undefined;
  1616. return clean(r); }
  1617. function encTest(d) {
  1618. var tup = atom('Test');
  1619. var type = 'type' in d && d.type ? atom(d.type) : nil();
  1620. var count = 'count' in d && d.count ? number(d.count) : nil();
  1621. return tuple(tup,type,count); }
  1622. function lenTest() { return 3; }
  1623. function decTest(d) {
  1624. var r={}; r.tup = 'Test';
  1625. r.type = d && d.v[1] ? decode(d.v[1]) : undefined;
  1626. r.count = d && d.v[2] ? d.v[2].v : undefined;
  1627. return clean(r); }